Что такое контекстное окно ИИ модели
Контекстное окно - это объём текста, который языковая модель «видит» за один запрос: ваш промпт, история диалога, загруженные документы и ответ модели. От размера окна зависит, поместится ли в один вызов API целая кодовая база, длинный договор или только короткий чат. Ниже - что такое контекстное окно, как его измеряют в токенах и почему это один из главных параметров при выборе модели.
Определение простыми словами
Контекстное окно (context window) - максимальное количество токенов, которое модель может обработать в рамках одного запроса. Токен - не слово и не символ: это фрагмент текста после токенизации. В русском и английском один токен примерно соответствует 3-4 символам или части слова; «программирование» может занять 2-3 токена.
Модель не «помнит» прошлые сессии сама по себе. Всё, что она знает в момент ответа, - то, что вы передали в текущем запросе в пределах окна. Если диалог или документ длиннее лимита, старые фрагменты обрезаются или их нужно сжимать отдельными техниками (RAG, суммаризация, разбиение на части).
Как устроено окно на практике
В типичном API-запросе в контекст входят:
- System prompt - инструкции модели (роль, формат ответа, ограничения).
- История сообщений - предыдущие реплики user и assistant в чате.
- Вложения - текст из PDF, код из репозитория, фрагменты базы знаний.
- Ответ модели - output тоже считается в общий лимит на многих моделях.
Схема простая: input + output ≤ размер контекстного окна (на части моделей input и output лимитируются отдельно, но логика та же - есть потолок на один вызов).
Пример для окна 128K токенов:
| Компонент | Примерный объём |
|---|---|
| System prompt | 500-2 000 токенов |
| История чата (20 сообщений) | 5 000-15 000 |
| Загруженный документ | 80 000 |
| Ответ модели | до 8 000-16 000 |
Если сумма превышает лимит, API вернёт ошибку или платформа автоматически обрежет начало истории - в зависимости от клиента.
Input context и output context
Разработчики часто путают два понятия:
- Input context - сколько токенов модель принимает на вход (промпт + история + файлы).
- Max output tokens - верхняя граница длины ответа за один вызов (отдельный параметр в API, например
max_tokens).
У модели с окном 1M токенов input может быть почти миллион, но ответ всё равно ограничен, например, 8K-64K токенов за раз. Для генерации длинного отчёта иногда нужны несколько последовательных запросов или streaming с продолжением.
На части тарифов long-context запросы (выше порога, например 200K input) тарифицируются дороже - это отражает большую нагрузку на inference.
Зачем нужно большое контекстное окно
Большой контекст полезен, когда в одном запросе нужно удержать много связанной информации:
- Анализ документов - договоры, отчёты, исследования на десятки страниц без предварительного сжатия.
- Работа с кодом - несколько файлов проекта, stack trace и история правок в одном промпте.
- Длинные диалоги - поддержка, консультации, где важна вся переписка, а не только последние 10 сообщений.
- Agentic-сценарии - агент накапливает наблюдения, вызовы инструментов и промежуточные результаты в одной сессии.
Маленькое окно (4K-32K) достаточно для коротких задач: классификация, извлечение полей из формы, перевод абзаца, простой чат-бот. Для enterprise-сценариев с документами и кодом обычно смотрят на 128K и выше.
Типичные размеры в 2026 году
К середине 2026 года рынок делится на несколько уровней:
| Уровень | Размер окна | Примеры моделей | Типичные задачи |
|---|---|---|---|
| Компактные | 8K-32K | Лёгкие локальные модели, старые API | Чат, классификация |
| Стандарт | 128K-200K | GPT-5.5, Claude Sonnet 5, Gemini 3.1 Pro | Код, документы, агенты |
| Расширенные | 1M-2M | GPT-5.6, Claude Fable 5, Gemini 3.5 Flash | Большие репозитории, корпуса |
Контекст растёт быстрее, чем «полезная» длина: модель технически принимает миллион токенов, но качество на самых длинных хвостах может падать (эффект «lost in the middle» - модель хуже использует информацию из середины длинного контекста). Поэтому большое окно - не замена продуманной архитектуре, а расширение возможностей.
Ограничения и обходные пути
Даже при окне 2M токенов не всё стоит складывать в один промпт:
- Стоимость - input тарифицируется по токенам; миллион токенов на каждый запрос быстро удорожает production.
- Latency - длинный контекст дольше обрабатывается на GPU.
- Качество - релевантные факты лучше подавать явно, а не «закопывать» в середину 500-страничного текста.
Рабочие паттерны при нехватке окна или для экономии:
- RAG (Retrieval-Augmented Generation) - поиск релевантных фрагментов в векторной базе и подстановка только их в промпт.
- Суммаризация - сжатие старых сообщений или глав документа отдельным вызовом модели.
- Chunking - разбиение текста на части с последующей агрегацией результатов.
- Скользящее окно - в историю чата попадают только последние N сообщений плюс краткое summary прошлого.
Для production часто комбинируют: RAG для фактов из базы знаний + умеренная история чата + модель с 128K-1M на случай «тяжёлых» запросов.
Как выбрать размер окна под задачу
| Задача | Рекомендуемый минимум | Комментарий |
|---|---|---|
| FAQ-бот, intent classification | 8K-16K | История короткая, документы через RAG |
| Copilot для одного репозитория | 128K-1M | Зависит от размера codebase |
| Legal / compliance review | 200K+ | Длинные PDF, ссылки между разделами |
| Мультимодальные документы | 1M+ | Текст + изображения съедают больше токенов |
Перед выбором модели оцените реальный объём input: посчитайте токены типичного запроса (через tiktoken, API tokenizer или count_tokens у провайдера), заложите 20-30% запаса на ответ и рост истории.
Итог
Контекстное окно - это «рабочая память» языковой модели на один запрос. Оно измеряется в токенах и включает промпт, историю, вложения и часто - место под ответ. Большие окна (128K-2M) открывают анализ длинных документов и кодовых баз без постоянного обрезания, но не отменяют RAG, суммаризацию и контроль стоимости. При выборе модели смотрите не только на цифру в спецификации, но и на качество работы с длинным контекстом, тарифы long-context и реальный размер ваших типичных запросов.
Часто задаваемые вопросы
Чем токен отличается от слова?
Токен - единица текста после токенизации модели. Одно слово может быть одним токеном или несколькими; знаки препинания и пробелы тоже учитываются. В среднем для русского и английского 1000 токенов ≈ 750-900 слов или 3000-4000 символов, но точное число зависит от языка и модели. Для оценки используйте tokenizer конкретного провайдера, а не «слова в Word».
Что происходит, если текст длиннее контекстного окна?
Зависит от платформы: API может вернуть ошибку «context length exceeded», обрезать начало истории (старые сообщения теряются первыми) или предложить сжатие. Модель не «дочитывает» текст за пределами окна - информация вне лимита для неё не существует. Решение: RAG, суммаризация, разбиение на части или модель с большим окном.
Больше контекста всегда значит лучше ответы?
Нет. Большое окно даёт возможность передать больше данных, но не гарантирует, что модель использует их все одинаково хорошо. На очень длинных вводах часто падает точность по фактам из середины текста, растёт стоимость и задержка. Лучше передавать релевантный контекст (через поиск или структурированный промпт), а не весь корпус «на всякий случай».
Как посчитать, сколько токенов займёт мой документ?
Используйте официальные инструменты: tiktoken для OpenAI-совместимых моделей, Anthropic tokenizer, Google AI Studio для Gemini или метод count_tokens в SDK провайдера. Для грубой оценки: 1 страница текста (≈500 слов) - порядка 650-800 токенов; код и таблицы могут давать больше токенов на символ из-за спецсимволов.
Нужна ли модель с 1M токенов для обычного чат-бота?
Для типичного чат-бота с короткими репликами и FAQ - нет, хватит 32K-128K плюс RAG по базе знаний. Окно 1M+ оправдано для анализа больших PDF, целых репозиториев, длинных agentic-сессий или когда нельзя заранее разбить данные без потери связности. Сначала измерьте реальный размер запросов в production - часто оказывается, что 128K достаточно при правильной архитектуре.