Что такое контекстное окно?

Контекстное окно — это максимальный объём текста, который большая языковая модель может обработать за одно взаимодействие, измеряемый в токенах. Узнайте, как оно работает и почему это важно.

Контекстное окно — это максимальный объём текста, измеряемый в токенах, который большая языковая модель (LLM) может обработать за одно взаимодействие. Оно определяет общий объём информации, к которой модель может обращаться одновременно, включая запрос пользователя, любые прикреплённые документы, историю предыдущего разговора и собственный сгенерированный моделью ответ. Когда разговор или документ превышает контекстное окно, более раннее содержимое обычно обрезается или отбрасывается, из-за чего модель может «забывать» детали, переданные ей всего несколько мгновений назад.

Как работает контекстное окно

Прежде чем текст попадает в LLM, он разбивается на токены — небольшие фрагменты (примерно слова или части слов), которые модель фактически считывает. Контекстное окно — это фиксированный бюджет токенов, который модель может удерживать в своей рабочей памяти одновременно. Если модель заявляет контекстное окно в 128 000 токенов, значит, всё — системные инструкции, извлечённые документы, полная история чата и генерируемый ответ — должно уместиться в эти 128 000 токенов.

Внутри модель использует механизм, называемый вниманием (attention), чтобы взвешивать связи между каждым токеном в этом окне. Поскольку каждый токен взаимодействует с каждым другим, вычислительные затраты и расход памяти растут примерно пропорционально квадрату размера окна, поэтому расширение контекстного окна остаётся активной областью исследований. Практические эффекты проявляются быстро: тест «иголка в стоге сена» на 200 000 токенов, где конкретный факт спрятан в длинном документе, показывает, способна ли модель по-прежнему вспомнить этот факт, когда позже в запросе её об этом спрашивают.

Почему это важно

Контекстное окно — это единственное самое важное ограничение того, что LLM может сделать за данный ход. Маленькое окно вынуждает пользователей разбивать длинные документы на части, суммировать более ранние разделы или прибегать к генерации с дополненной выборкой (RAG), чтобы подавать на вход только наиболее релевантные фрагменты. Более крупное окно позволяет модели проглатывать целые кодовые базы, длинные юридические контракты, полные расшифровки или часы разговора, не теряя из виду более ранние детали.

Для разработчиков размер окна определяет архитектурные решения: как строятся конвейеры извлечения, как управляется память чата и как проектируются запросы, чтобы оставаться в пределах лимита. Для конечных пользователей это разница между тем, чтобы вставить в чат-бот главу и вставить целую книгу, — и тем, способна ли модель всё ещё ответить на вопрос о третьей странице, когда речь уже дошла до пятьдесят.

Основные типы и текущие размеры

  • Короткий контекст (2K–8K токенов): раннее поколение потребительских LLM, примерно соответствующее длине длинного письма или нескольких страниц прозы.
  • Стандартный контекст (32K–128K токенов): распространён в современных передовых моделях, достаточно для целого романа, средней кодовой базы или длинной расшифровки совещания.
  • Длинный контекст (200K–1M+ токенов): новые модели «с длинным контекстом», способные за один проход проглатывать целые книги, многофайловые репозитории или многочасовые разговоры.
  • Эффективный и заявленный контекст: заявленное окно — это максимальный размер входных данных, тогда как эффективное окно — это та часть, в пределах которой модель надёжно извлекает информацию и рассуждает о ней. Независимые тесты часто показывают, что эффективное окно меньше заявленного.

Контекстные окна значительно расширились с 2023 года, но больше — не всегда лучше: более длинные окна требуют больше памяти, работают медленнее и могут размывать фокус модели. Для большинства задач выбрать модель с контекстным окном, которое комфортно вмещает входные данные, полезнее, чем гнаться за самой большой цифрой в спецификации.

Вам также может понравиться

Похожие статьи