Контекстное окно

Важнейшая штука для повседневной работы.

14 мин
По колено
29.03.2026

Слушай. Вот только познакомились с рагом, а теперь контекстное окно какое-то. Нафига? Понимаю, да. Но тема реально важная, поверь.

Ведь если бы не ограничения контекстного окна, раг был бы в принципе не нужен.

— Это правда. Раг существует только из-за того, что ллмки пока не могут адекватно воспринимать много букав в запросе пользователя. Поэтому начинаем за контекстное окно.

Корректное использование любого инструмента подразумевает осведомленность о его ограничениях. Для повседневного обыденного использования ллмок основным таким ограничение будет размер контекстного окна.

Сейчас разберемся что это такое и как минимизировать галлюцинации при работе с любой моделью.

Контекстное окно — суй мне в лицо.

И так. Что же такое контекстное окно модели. Вообще, это максимально допустимое количество токенов в запросе пользователя, которое может обработать модель для генерации ответа. Если подзабыл, что такое токен обсудили в специальной статье Токен и токенизация.

Каждый разработчик отдельно указывает размер контекстного окна для своей модели, например, для Квен3.5 122б это 256 000 токенов. В зависимости от токенизатора, будем считать что один токен это примерно 3,6 символа. Тогда получается, что модель сможет проанализировать около 921 600 символов, что равняется примерно 320 страницам А4, написанных 12 кеглем. Довольно много на самом деле.

— Так давай кидать модели в лицо целую книгу и задавать по ней вопросы, в чём проблема? А она есть и даже не одна.

Ну давай, оценивай! Ты чего!
Ну давай, оценивай! Ты чего!

Системный промпт — делай как надо.

Во первых — контекстное уже содержит информацию, системный промпт. Чем он отличается от обычного? Только тем что системный промпт имеет приоритет при скульптурировании поведения модели и обычно пишется ИИ-инженером на этапе адаптации модели к требованиям конкретной компании или заказчика.

Этим системным промптом верхнеуровнево настраивается поведение модели:

  • 1. “Всегда отвечай просто, не используй длинных приложений”.
  • 2. “Если вопрос про корпоративную культуру, ответ начни с короткого описания ценностей, а потом отвечай на поставленный пользователем вопрос”.

Фишка в том, что системный промпт может быть длинной в десятки страниц А4 и содержать инструкции по структуре, последовательности предложений в ответе модели и много чего ещё.

Дальше.

Память — приходится записывать.

Замечал, что если задать вопрос чату гпт, то он будто помнит о чём вы общались ранее и при генерации своего ответа, учитывает эту историю. На самом деле так и происходит.

Есть различные подходы к формированию краткосрочной, долгосрочной и фактической памяти модели. Сейчас же нам важен сам факт — предыдущие сообщения пользователя и ответы модели также хранятся в этом контекстном окне. Сколько таких пар вопрос-ответ хранится, это органика или саммаризация, настраивает ИИ-инженер в зависимости от ситуации.

В общем, сильно упростив, представим что это тоже десятки страниц А4.

Дальше.

Тулколлинг — мои инструменты.

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

Описание доступных инструментов для использования моделью может занимать ещё с десяток листов А4 для продвинутых моделей.

Наверно, для общего представления этого хватит.

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

А ты ещё туда 320 страниц хочешь засунуть?

Сколько букв понимает модель.

Теперь. Как ты думаешь, насколько хорошо модель сможет воспринимать информацию из контекстного окна, в зависимости от её объема?

— Ну типо, вот я закину инфы на 10 страниц и на 300 страниц и модель одинаково кайфово мне ответик даст, так?

Нет.

Исследования, такие как Scaling inference-time compute показывают, что для передовых моделей, уже после заполнения контекстного окна более чем на 16 000 токенов, начинается заметная потеря поданной информации, при выполнении аналитических лингвистических задач. Модель просто не видит текст, который мы ей предлагаем. Пропускает случайные куски.

То есть, если закинешь модели 300 страниц А4 — больше половины она может просто не воспринять и сгенерить ответ на случайных фразах из оставшегося объема.

А теперь догадайся. Раг ситуативно расширяет эрудицию модели, подавая информацию куда именно? Да в тоже самое контекстное окно. И это четвёртая сущность, которая может хранится в контекстном окне и подаваться для анализа моделью..

Отсюжа вытекает новая формулировка: эффективный размер контекстного окна.

Чтобы минимизировать потерю данных и галлюцинации, важно стараться использовать не больше 30% заявленного контекстного окна. При этом, не забываем про системный промпт, память и туллколинг. Сколько эти данный займут сложно предсказать.
Но лучше бы снизить своё использование контекстного окна до 10% чтобы получать ответ понадёжнее.

— А теперь давай разберём, почему важно понимать, что такое контекстное окно, особенно работая в серьезной организации.

Практическое применение.

Представим, есть руководитель команды операторов колл-центра, которые звонят частным клиентам и бизнесу с предложением купить какой-то продукт. Он решил оценивать эффективность этих диалогов с применением генеративного ИИ.

Удачно совпало — на последнем эффективном тренинге по продажам, этому руководителю посоветовали действительно классную, реально работающую книгу, ноухау, мета-гипно-терапевтическую, таро-астрологичекую инструкцию как продавать и вылечить диабет. Волшебство не иначе.
В общем практически чит-код к этой жизни, где детально рассказывается как такие звонки должны проходить и как оператор должен общаться на самом деле.

Вот сейчас-то заживём.
Вот сейчас-то заживём.

Руководитель дурак чтоль? Он решил с её помощь и реализовать вот это оценивание своей команды. Скачал книгу в пдф, кинул её в ллмку, приложил диалоги и попросил модель провести оценку.

Она эту оценку конечно провела, сформировала убедительный отчёт, где каждый сотрудник получил оценку и даже рекомендации от модели по улучшения общения.

Руководитель воодушевленно пошел эти рекомендации ежедневно отправлять операторам, ну и сокращать линейных менеджеров, которые ранее такую оценку проводили руками.

Результат такого нововведения.

Прошел месяц. Треть команды операторов написали заявление по собственному желанию, а продажи упали. Рекомендации модели оказались непоследовательные, имели пространные формулировки типо:

“Чтобы продавать больше, продавай лучше!”

или

“Ты не продал продукт компании. Надо продавать!”

Вместо оценивания диалогов по книге, получилось случайное тыканье человека, используя философию, аутизм и смайлы.

Почему так вышло? Потому что руководитель не понимал как работать с контекстным окном модели и решил что раз результат для него выглядит убедительно, он будет убедителен для команды и точно полезным в работе.

Пам-пам.

То ни я, сё ни я и ответственность не моя.
То ни я, сё ни я и ответственность не моя.

Вывод.

Для общего понимания, можно считать что контекстное окно — это меняющийся от модели к модели объем данных, который она сможет как-то воспринять для генерации лучшего ответа. Фух.

С контекстным окном вроде разобрались, возвращаемся к рагу. Продолжаем разбирать его устройство простыми словами.