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

Контекстное окно — максимальный объём текста в токенах, который языковая модель способна «удерживать в памяти» при генерации одного ответа. Всё, что не влезает в окно, модель не видит. Это ключевое техническое ограничение при проектировании длинных диалогов и RAG-систем.

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

Токен — базовая единица, которой оперирует LLM. Один токен примерно соответствует 4 символам латиницы или 2–3 символам кириллицы. Слово «чат-бот» — это 2–3 токена. Одна страница A4 плотного текста — около 600–700 токенов. Контекстное окно измеряется в токенах и включает и входящий текст (промпт + история диалога), и генерируемый ответ.

Лимиты контекстного окна у разных моделей

GPT-4o — 128 000 токенов (около 200 страниц A4). Claude 3.5 Sonnet — 200 000 токенов. YandexGPT Pro — 32 000 токенов. GigaChat Max — 32 000 токенов. Для большинства диалоговых ботов достаточно 8 000–16 000 токенов: это покрывает 30–50 сообщений в одной сессии плюс системный промпт плюс RAG-контекст.

Важный нюанс: стоимость API-вызова пропорциональна числу токенов. Если в каждый запрос передавать полную историю диалога из 30 сообщений, стоимость одного обращения вырастает в 5–10 раз по сравнению с оптимизированной передачей только последних 5–10 сообщений.

Управление памятью диалога

Есть три стратегии: (1) Скользящее окно — передавать только последние N сообщений. Просто, но модель забывает данные, названные в начале. (2) Суммаризация — при приближении к лимиту сжимать старую часть диалога в краткое резюме. Требует дополнительного вызова LLM. (3) Persistent memory — хранить ключевые факты о пользователе в отдельной базе и подгружать их в контекст. Лучший баланс памяти и стоимости.

Сколько токенов нужно под задачи

Правило большого пальца: 1000 слов ≈ 1300–1500 токенов. Для типовых бизнес-задач: системный промпт занимает 500–2000 токенов, история диалога из 10 сообщений — 800–2000 токенов, один фрагмент базы знаний из RAG — 400–800 токенов. Итого активный диалог с RAG требует 3000–7000 токенов контекста. Модели с 8k-окном начинают терять начало истории при длинных диалогах.

Стратегии работы с ограниченным контекстом

  • Скользящее окно. Сохранять только последние N сообщений, отбрасывая старые — простой подход, теряет важный контекст.
  • Суммаризация. Периодически заменять историю кратким резюме — сложнее, но сохраняет ключевые факты.
  • Внешняя память. Факты о пользователе (имя, предпочтения, открытые вопросы) хранить в БД и подставлять в промпт по запросу.
Сергей Полухин

Сергей Полухин

Co-Founder & CTO PapAI Soft · профиль

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

Когда нужна модель с большим контекстным окном?

Длинное окно (128k+ токенов) нужно для: анализа длинных документов целиком (договоры, регламенты), диалогов с многочасовой историей, кода с большой кодовой базой. Для типового чат-бота службы поддержки хватает 8–32k токенов — история диалога редко превышает 5000 токенов.

Влияет ли длина контекста на качество ответов?

Да, есть эффект «потери в середине» (lost in the middle): модели лучше помнят начало и конец контекста, чем середину. Важные инструкции лучше дублировать в конце промпта. Длинный контекст также повышает стоимость запроса — токены в начале промпта тарифицируются так же, как в конце.

Связанные термины

  • LLM — модель с конкретным лимитом контекстного окна
  • RAG — как документы вставляются в контекстное окно
  • Промпт-инжиниринг — как системный промпт занимает часть окна
  • Чат-бот — управление историей диалога в рамках окна

Где применяется

Разработка ИИ-ассистентов → Чат-бот на основе GPT →

Хотите оптимизировать работу бота с памятью диалога? Обсудим задачу.

Связаться с нами