раздел 03

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

Что это

Контекстное окно - это максимальное число токенов, которое модель может держать перед глазами за один раз. Сюда входит всё: системная инструкция, история диалога, ваш вопрос, загруженные документы и сам генерируемый ответ. Всё это должно поместиться в окно.

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

Зачем это понимать

Размер окна определяет, сколько модель может учесть одновременно. Можно ли скормить ей весь договор целиком или придётся резать на куски. Удержит ли она длинный диалог. Влезет ли большой документ вместе с вопросом. Когда окно переполнено, начинается самое неприятное - модель теряет часть информации, и ответы плывут.

Как токены наполняют окно

Каждый элемент запроса занимает место:

[ системная инструкция ][ история диалога ][ документы ][ ваш вопрос ][ ответ модели ]
|------------------------- всё это должно влезть в окно ------------------------|

С каждым ходом диалога история растёт, и свободного места в окне становится меньше. В какой-то момент новому уже некуда поместиться - и начинается вытеснение старого.

Типичные размеры окон

Размеры окон у современных моделей сильно выросли. Ориентиры (диапазоны, не точные числа конкретных версий):

| Поколение / класс | Окно (ориентир) | | --- | --- | | Старые / компактные модели | от нескольких тысяч до ≈ 32K токенов | | Современные массовые модели | ≈ 128K - 200K токенов | | Модели с очень большим окном | до 1M токенов и больше |

Чтобы прикинуть: 128K токенов - это примерно небольшая книга. 1M токенов - это уже несколько книг сразу. Но большое окно не бесплатно: чем больше токенов вы реально кладёте в окно, тем дороже запрос и тем медленнее ответ.

Пример

Окно 128K токенов. Вы хотите проанализировать документ на 100K токенов. Влезет, но почти впритык: на системную инструкцию, ваш вопрос и сам ответ останется около 28K. Если документ 150K - он целиком не влезет, придётся резать на части или брать модель с большим окном.

Антипаттерны

  • Путать окно с долговременной памятью. Закрыли чат - контекст пропал, если приложение его не сохранило.
  • Забивать окно «на всякий случай». Лишний контекст - это лишние деньги и медленный ответ, а иногда и хуже качество.
  • Удивляться, что модель «забыла» начало длинного диалога. Это вытеснение, и оно ожидаемо. Подробно - на следующей странице.

Подразделы