Контекстное окно
Контекстное окно — это максимальный объём текста, который языковая модель может «видеть» и учитывать за один раз: всё, что выходит за его пределы, модель просто не помнит.
Что это
Контекстное окно (context window) — это ограниченный «рабочий стол» языковой модели: максимальное количество токенов, которое модель может принять на вход и удержать в памяти в рамках одного запроса. Всё, что попадает в это окно — системный промпт, история диалога, загруженные документы, текущий вопрос пользователя — модель видит одновременно и использует при формировании ответа. Всё, что выходит за границу окна, для модели буквально не существует: она не может к этому обратиться, даже если вы обсуждали это пять минут назад.
Зачем это нужно
Размер контекстного окна напрямую определяет, насколько сложные задачи способна решать модель. Маленькое окно — и модель «забывает» начало длинного диалога, не может проанализировать объёмный документ, теряет нить рассуждений. Именно поэтому гонка за размером контекста стала одним из ключевых направлений развития LLM: GPT-3 в 2020 году работал с окном около 4 000 токенов, GPT-4 Turbo в 2023-м получил 128 000 токенов, а Claude 3 от Anthropic вышел с окном в 200 000 токенов — это примерно 500 страниц текста. Большое контекстное окно позволяет загружать целые кодовые базы, юридические договоры или книги и работать с ними как с единым документом.
Как это работает
Контекстное окно измеряется в токенах — единицах, на которые модель разбивает текст. Один токен — это примерно 3–4 символа в английском или 2–3 символа в русском языке. Слово «контекст» — это примерно 2–3 токена, а страница текста — около 500–700 токенов. Когда вы отправляете запрос, модель «упаковывает» в окно всё сразу: системные инструкции, всю историю переписки и ваш новый вопрос. Если суммарный объём превышает лимит, приложение либо обрезает старые сообщения (скользящее окно), либо выдаёт ошибку. Важно понимать: модель не хранит контекст между сессиями — каждый новый чат начинается с чистого листа, и вся «память» существует только внутри одного окна.
Примеры применения
- Анализ документов: с окном 128k токенов можно загрузить PDF-договор на 200 страниц и попросить найти все пункты о штрафных санкциях.
- Работа с кодом: разработчик загружает несколько файлов проекта целиком, и модель видит зависимости между функциями — не нужно копировать фрагменты вручную.
- Длинные диалоги: чат-бот поддержки помнит всё, что пользователь рассказал в начале разговора, и не переспрашивает одно и то же.
- Суммаризация книг: модель с большим окном может принять главу целиком и написать краткое содержание без потери деталей из-за обрезки.
- RAG-системы (Retrieval-Augmented Generation): найденные фрагменты из базы знаний подставляются в контекстное окно вместе с вопросом, чтобы модель отвечала на основе актуальных данных.
Связанные понятия
- Токен — базовая единица измерения текста в языковых моделях.
- Промпт — входной запрос пользователя, который занимает часть контекстного окна.
- RAG (Retrieval-Augmented Generation) — техника подгрузки внешних данных в контекст для расширения знаний модели.
- Embeddings — векторные представления текста, которые используются в RAG для поиска нужных фрагментов под контекстное окно.
- Long-context модели — отдельный класс LLM, оптимизированных для работы с очень большими контекстами (от 100k токенов и выше).
Частые заблуждения
Распространённый миф: «чем больше контекстное окно, тем лучше модель отвечает». На практике это не так. Исследования показывают эффект «потери в середине» (lost in the middle): модели хуже извлекают информацию из середины очень длинного контекста и лучше — с начала и конца. Кроме того, большое окно стоит дороже: стоимость запроса к API обычно считается именно в токенах, и загрузка лишнего текста напрямую увеличивает счёт. Ещё одно заблуждение — путать контекстное окно с долгосрочной памятью модели. Модель ничего не «запоминает» между сессиями сама по себе — это задача внешних систем хранения, которые разработчики подключают отдельно.