Технологии

Что такое контекстное окно

Контекстное окно — сколько токенов модель может держать перед глазами за один запрос. В него входит всё сразу: инструкция, история, подмешанная память и сам ответ.

Контекстное окно — предельное число токенов, которые модель может обработать за один запрос. Формулировка «сколько модель помнит» здесь неточна и вводит в заблуждение: это не память, а размер стола, на который перед каждым ответом заново выкладывают все бумаги. После ответа стол убирают.

#Что лежит на этом столе

В окно входит не только ваш вопрос. Порядок примерно такой:

  1. Системный промпт — инструкция о характере и правилах, от полусотни до нескольких тысяч токенов.
  2. Подмешанная память и найденные документы — у ассистента с поиском по архиву это часто самая крупная доля.
  3. История диалога — все предыдущие реплики, ваши и модели, целиком, заново при каждом обращении.
  4. Ваш новый вопрос.
  5. Место под ответ — генерируемые токены занимают то же окно.

Последний пункт объясняет неочевидный симптом: вы задаёте вопрос, помещаетесь в лимит, а модель обрывает ответ на полуслове. Места хватило на вход, но не осталось на выход. У локальных движков это регулируется отдельным параметром длины генерации, у облачных — полем max_tokens.

Составляющая Растёт от чего Чем ограничить
Системный промпт ваших правок держать короче, вынести редкое в навык
Память и документы размера архива ограничить число подмешиваемых фрагментов
История диалога длины разговора суммаризация, новый чат под новую тему
Ответ задачи явный лимит длины

Вывод из таблицы: из четырёх строк вы почти всегда управляете двумя средними, и именно там прячется переполнение. Диалог на сорок реплик расходует окно не потому, что модель что-то накопила, а потому, что все сорок реплик отправляются заново.

#Где путают

Заблуждение первое: контекст — это память ассистента. Нет. Окно очищается после каждого запроса, а ощущение памяти создаётся тем, что клиент заново отправляет всю историю. Настоящая память — это отдельное хранилище с поиском, из которого нужные куски подкладываются в окно перед ответом. Если такого хранилища нет, всё, что вышло за пределы окна, потеряно окончательно.

Заблуждение второе: заявленное окно и рабочее окно — одно и то же. Модель с окном в миллион токенов физически принимает миллион, но качество работы с серединой такого объёма падает; отдельно разобрано в тексте про реальный и заявленный контекст.

Заблуждение третье: если модель поддерживает 128k, значит, у вас 128k. Локальный движок поднимает окно на значение из настроек, а не на максимум модели: в Ollama это num_ctx, в llama.cpp — -c. Значение по умолчанию обычно заметно меньше паспортного, и увеличение окна съедает видеопамять под KV-кэш. У облачных провайдеров работает встречное ограничение — их собственные лимиты на запрос, сведённые в обзоре лимитов контекста у провайдеров.

#Частые вопросы

#Что происходит, когда контекст переполняется?

Зависит от клиента. Одни обрезают самые старые сообщения и продолжают молча, другие возвращают ошибку, третьи сворачивают начало диалога в краткий пересказ. Худший вариант — первый: модель перестаёт помнить начало разговора, а вы об этом не узнаёте.

#Стоит ли выставлять максимальное окно, раз модель его поддерживает?

Только если это нужно задаче. Окно оплачивается видеопамятью под KV-кэш и временем обработки промпта: удвоение контекста удорожает не пропорционально, а сильнее. Практические пороги — в разборе контекста и VRAM под KV-кэш.

#Считается ли ответ модели в контекст следующего вопроса?

Да. Ответ становится частью истории и отправляется обратно вместе со следующей репликой. Поэтому длинные развёрнутые ответы расходуют окно вдвойне: сначала при генерации, затем при каждом последующем обращении.

#Миллион токенов контекста решает проблему памяти?

Не решает — меняет её характер. Что даёт и чего не даёт сверхдлинное окно, подробно разобрано в статье про контекстное окно на миллион токенов. Коротко: длинное окно дорого по времени и деньгам и не заменяет поиск по архиву.

Из чего состоит единица измерения окна — в справке про токен. Остальные термины — в глоссарии терминов ИИ.

Хотите ИИ, который помнит вас?

Persona держит контекст между чатами и работает на вашем железе — если развернуть её у себя и подключить локальную модель.

Создать аккаунт