Контекстное Окно (Context Window)
Максимальный рабочий объем токенов, который языковая модель может одновременно удерживать в механизме Self-Attention и памяти KV Cache во время вычисления одного инференс-запроса.
1. Обзор концепции и системная проблема
Разработчики-новички часто воспринимают контекстное окно как аналог жесткого диска: место, куда можно сбросить любое количество документации, чтобы модель «просто знала её».
Однако в реальной физике нейросетей контекстное окно — это оперативная память графического процессора (GPU VRAM), задействованная в интенсивных матричных вычислениях:
- Квадратичная сложность внимания: В классическом механизме Attention связь рассчитывается между каждой парой токенов ($O(N^2)$). Увеличение длины входа в 10 раз требует в 100 раз больше вычислительных ресурсов на этапе префикса (Prefill).
- Аппаратные ограничения памяти: Когда длина диалога достигает сотен тысяч токенов, размер KV Cache превышает ёмкость видеопамяти видеокарты (Out of Memory - OOM).
- Лимит экстраполяции позиций: Модель не может адекватно воспринимать позиции токенов, выходящие за пределы её обучения, без специальных методов интерполяции (RoPE / YaRN).
Контекстное окно (Context Window) определяет горизонт активной рабочей памяти системы: всё, что попадает внутрь окна, участвует в расчете вероятностей; всё, что остается за его пределами, для модели физически не существует.
2. Архитектурная таксономия и ментальная модель
Работа с контекстным окном делится на две фазы вычислений и соответствующие оптимизации:
- 1. Фаза префикса (Prefill Phase): Параллельная обработка всего входного запроса пользователя. Вычислительно ограниченная фаза (Compute-bound), оптимизируется технологиями, такими как FlashAttention-2/3, которые устраняют лишние обращения к глобальной памяти GPU.
- 2. Фаза декодирования (Decode Phase): Последовательная генерация новых токенов по одному за шаг. Ограниченная пропускной способностью памяти (Memory-bandwidth bound), где скорость зависит от выборки векторов из KV Cache.
- 3. Архитектуры длинного контекста:
- RoPE (Rotary Position Embeddings): поворотные позиционные эмбеддинги, позволяющие масштабировать окно с 8K до 1M токенов через частотное масштабирование.
- Ring Attention: распределение вычисления механизма внимания по кольцу из десятков серверов GPU для обработки миллионных последовательностей.
- 4. Структура бюджета окна:
Total Window = System Prompt + Long-term Memory + Ingestion Files + History + Tools Output + Max Generation Tokens.
3. Технический пайплайн и внутренняя механика
Жизненный цикл прохождения контекста через трансформер:
- Tokenization & BPE Mapping (Токенизация): Сырой рядок кода или текста трансформируется в числовой вектор ID токенов через словарь BPE/Tiktoken.
- Positional Encoding Injection (Внедрение координат): Каждый токен получает вектор позиции в последовательности (через матрицы вращения RoPE).
- Multi-Head Self-Attention & KV Cache Allocation (Расчет внимания): Вычисляются матрицы Query, Key, Value. Векторы $K$ и $V$ записываются в VRAM-буфер KV Cache для предотвращения повторных расчетов на следующих шагах.
- Context Length Enforcement (Контроль лимитов):
Если суммарное количество токенов превышает
max_context_length, рантайм либо сбрасывает ошибку400 BadRequest: context_length_exceeded, либо автоматически обрезает самые старые сообщения (Sliding Window Truncation).
4. Практические инженерные сценарии в продакшене
01. In-Context Learning над всем репозиторием проекта
Загрузка 200 000 токенов кодовой базы непосредственно в окно модели (Cursor / Claude Code). Модель видит все типы, импорты и архитектурные паттерны одновременно, генерируя новый модуль с идеальным сохранением конвенций проекта.
02. Анализ юридических пакетов M&A и аудитов
Передача 500-страничного пакета контрактов в окно Gemini 2.5/3 Pro (1M токенов) для поиска взаимных противоречий, неузгоденных финансовых условий и скрытых обязательств без потери контекста между документами.
03. Экономическая оптимизация через Prompt Caching
В долгоживущих ассистентах системный промпт и документация API (например, 40 000 токенов) кешируются провайдером (Anthropic/OpenAI). Благодаря этому каждый следующий запрос обрабатывается в 4 раза быстрее и стоит на 90% дешевле.
5. Подводные камни, типовые ошибки и безопасность
- Тихое обрезание контекста (Silent Truncation): Некоторые наивные клиенты автоматически выбрасывают начало диалога при приближении к лимиту. Если там содержались важные системные правила безопасности, модель становится уязвимой.
- Out of Memory (OOM) на self-hosted серверах: Запуск Llama 3 70B на собственной ноде с 80GB VRAM работает отлично на коротких тестах, но падает с критической ошибкой памяти, когда пользователь отправляет запрос на 64K токенов из-за раздувания KV Cache. Всегда ограничивайте
max_model_lenв vLLM. - Экспоненциальный рост счета: Неконтролируемая отправка истории с каждым сообщением приводит к тому, что простой чат на 20 реплик генерирует сотни тысяч оплачиваемых входных токенов.
FAQ: Контекстное Окно (Context Window)
Связанные термины
Деградация контекста (Context Rot & Attention Decay)
Системное снижение точности, следования инструкциям и логической согласованности LLM по мере накопления в рабочем окне диалогового шума, устаревших черновиков кода и выводов компилятора.
Кеширование Промптов (Prompt Caching & KV Cache Reuse)
Технология современных инференс-движков и облачных API (Anthropic, OpenAI, DeepSeek, vLLM), которая сохраняет предварительно вычисленные матрицы внимания (KV Cache) статического префикса, уменьшая стоимость обработки на 80–90% и сокращая время до первого токена (TTFT) в 4–8 раз.
Gemini Flash & Pro (Google Gemini)
Семейство мультимодальных моделей от Google DeepMind, объединяющее рекордное контекстное окно (до 2 млн токенов), экстремальную скорость генерации (более 150 токенов/с) и нативное восприятие видео и аудио.
Промпт-инжиниринг (Архитектура контекста и промпт-инжиниринг)
Инженерная дисциплина структурирования системных директив, XML-разметки, семантических делимитеров и примеров для достижения детерминированных, предсказуемых результатов от вероятностных моделей.