Контекст и параметры генерации SillyTavern: практический расчёт
Длинный диалог может перестать помещаться в контекст, хотя сами веса модели всё ещё помещаются в VRAM. Каждому запросу нужно место для собранного промпта и ответа. SillyTavern управляет отправляемым текстом, но не отменяет ограничения памяти и конфигурации сервера.
Разделите три ограничения
| Ограничение | Откуда берётся | Что проверить |
|---|---|---|
| Возможности модели | Model card и поддерживаемая конфигурация позиций/контекста | Поддерживают ли runtime и ревизия модели заявленную длину |
| Выделение на сервере | Контекст Ollama или параметры запуска vLLM | Фактический контекст, свободную память, параллельные запросы |
| Бюджет клиента | Настройки контекста и ответа SillyTavern | Сколько истории и служебного текста можно включить |
Начните со значения не выше применимого лимита сервера и модели. В примере Ollama отдельное имя модели явно задаёт num_ctx 4 096. Изменение ползунка SillyTavern не задаёт этот параметр через OpenAI-совместимый API. Для vLLM смотрите --max-model-len работающего сервера, а не максимальное число из model card.
Пример бюджета на 4 096 токенов
Это план распределения, а не результат измерения токенизатором:
| Часть | Токены |
|---|---|
| Полный контекст | 4,096 |
| Резерв под ответ | 512 |
| Инструкции, персонаж, persona и форматирование | 700 |
| Активированные записи lorebook | 400 |
| Запас на различия подсчёта | 200 |
| Остаток для истории | 2,284 |
Остаток: 4096 - 512 - 700 - 400 - 200. Если описание персонажа удвоится, придётся сократить историю или другую часть. Настройка 4 096 не означает 4 096 токенов истории плюс ответ любой длины.
Проверяйте фактический промпт клиента и число токенов по данным backend, если он их возвращает. Токенизаторы и форматирование могут давать разные значения. Для русских слов и символов нет универсального постоянного коэффициента перевода в токены. Оставляйте место для следующего сообщения пользователя, а не заполняйте всё до последнего оценочного токена.
Простая исходная конфигурация
Начните с короткого описания персонажа, лимита ответа, например, 512 токенов и sampling, рекомендованного автором модели. Дополнительные samplers сначала оставьте по умолчанию. Это параметры эксперимента, а не гарантия качества или достаточной памяти.
| Симптом | Что проверить первым |
|---|---|
| Ответ обрывается посреди фразы | Причину завершения и лимит ответа; увеличивать только при наличии места |
| Исчезают старые факты | Какая история реально отправляется; сократить повторяющиеся инструкции |
| Описание персонажа повторяется в каждом ответе | Убрать избыточные описания и примеры из карточки |
| Повторяются фразы | Дублирование промпта и шаблон до изменения penalties |
| После многих ходов растёт задержка | Длину промпта, prefill, память и offloading |
Temperature меняет вариативность выбора токенов, но не добавляет знания и память. Агрессивные repetition/frequency penalties могут портить формулировки и имена. Один backend может принять параметр, который другой игнорирует или отвергает. Начните с минимального запроса и добавляйте по одной настройке.
Не применяйте шаблон дважды
В наших инструкциях выбран Chat Completion: сообщения передаются с ролями, chat template применяет backend. Не оборачивайте каждое сообщение вручную в управляющие токены другого семейства моделей. Instruct/context templates для Text Completion в SillyTavern относятся к другому пути запроса; при смене режима нужно заново проверить конфигурацию.
Ошибки отсутствующего шаблона, неподдерживаемых ролей и неверных параметров должны оставаться видимыми. Отключение проверки статуса их не исправляет. См. диагностику.
Связность без бесконечного контекста
Ведите короткое редактируемое резюме сцены с фактами, которые нужно сохранить. Автоматическое резюме может ошибаться: проверьте его до замены старой истории. Оригинальный экспорт разговора сохраните. Lorebook используйте для компактных устойчивых фактов и проверяйте активацию записей; не переносите весь разговор в постоянно включённую запись.
После смены модели, квантизации или контекста повторите тот же короткий диалог. Запишите изменение и задержку, прежде чем увеличивать следующий лимит. Ресурсные ограничения разобраны в памяти GPU и стоимости аренды.
Источники: форматирование SillyTavern, контекст Ollama, конфигурация vLLM.
Готовы запустить?
Запустить GPU-сервер