раздел 03 · подстраница 1
Что происходит при переполнении
Что это
Переполнение - это когда токенов набралось больше, чем влезает в контекстное окно. Окно не резиновое, и когда оно заполнено, что-то приходится выбрасывать или обрезать. Именно тут модель и начинает «забывать».
Зачем это понимать
Это объясняет добрую половину жалоб на модель: «договорились в начале, а она ведёт себя так, будто не помнит». Чаще всего это не глупость модели, а вытеснение из окна. Поняв механику, вы перестаёте на это злиться и начинаете строить диалоги так, чтобы важное не вытеснялось.
Что именно происходит
Возможны разные сценарии, в зависимости от инструмента:
- Вытеснение старого (обрезка истории). Чат-интерфейс выкидывает самые старые сообщения, чтобы влезло новое. Модель буквально перестаёт их видеть. Отсюда «забыла начало».
- Сжатие / суммаризация. Умные приложения не выкидывают, а сжимают старую историю в краткий пересказ - так теряется меньше смысла.
- Ошибка переполнения. При работе через API запрос, который не влезает в окно, может просто вернуть ошибку, а не обрезаться молча.
- Обрыв ответа. Если на вывод стоит лимит токенов, ответ оборвётся на полуслове, когда упрётся в этот лимит.
Пример
Окно 32K токенов, вы ведёте долгий диалог. К какому-то моменту история разрослась до 33K. Чат-интерфейс, чтобы влезть, выкидывает первые сообщения - а там как раз была ваша инструкция «отвечай только по-русски и коротко». Модель её больше не видит и начинает отвечать длинно и по-английски. Для вас это выглядит как «сломалась», а на деле инструкция вытеснена из окна.
Как с этим жить
- Повторяйте важное. Если правило критично, держите его в системной инструкции, которую интерфейс не выкидывает, или периодически напоминайте.
- Начинайте новый диалог под новую задачу. Не тащите гигантскую нерелевантную историю.
- Сжимайте сами. Попросите модель сделать краткое резюме длинного обсуждения и дальше работайте с резюме, а не с полной историей.
- Кладите ключевое в начало или конец. Не в середину длинного документа.
Антипаттерны
- Вести один бесконечный чат на все задачи сразу. Окно переполняется, старое теряется, цена каждого хода растёт.
- Класть главную инструкцию в первое сообщение длинного диалога. Её вытеснит первой.
- Считать оборванный ответ ошибкой модели. Часто это лимит выходных токенов - его можно поднять или попросить продолжить.
Что дальше
Мы разобрались с памятью модели. Осталась вторая большая тема, ради которой многие сюда и пришли, - деньги. Как считается цена в токенах и где её можно срезать.