Большое окно контекста

Многие модели Gemini имеют большие окна контекста на миллион или более токенов. Раньше большие языковые модели (LLM) были сильно ограничены объемом текста (или токенов), который можно было передать модели за один раз. Окно контекста для длинных диалогов в Gemini открывает множество новых вариантов использования и парадигм разработки.

Код, который вы уже используете для генерации текста или мультимодальных запросов, будет работать с длинным контекстом без изменений.

В этом документе рассказывается о том, чего можно достичь, используя модели с контекстным окном на 1 млн и более токенов. На странице дается краткий обзор окна контекста и рассматривается, как разработчики должны думать о длинном контексте, различных реальных вариантах использования длинного контекста и способах оптимизации использования длинного контекста.

Размеры окон контекста для определенных моделей указаны на странице Модели.

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

Основной способ использования моделей Gemini – передача информации (контекста) модели, которая затем генерирует ответ. Контекстное окно можно сравнить с кратковременной памятью. В кратковременной памяти человека может храниться ограниченный объем информации, и то же самое верно для генеративных моделей.

В Gemini 4 (gemini-4-argon) окно контекста на миллион токенов используется совместно для входных, промежуточных и выходных токенов, и модель может генерировать до миллиона выходных токенов с помощью длинного декодирования. Если сумма входных токенов и max_output_tokens превышает 1 048 576 токенов, API автоматически ограничивает выходные токены оставшимся местом в окне контекста (1,048,576 минус входные токены). Более ранние модели Gemini 3 и 2.5 используют отдельные бюджеты на входные данные (1 млн токенов) и выходные данные (64 000 токенов).

Подробнее о том, как работают модели, рассказывается в руководстве по генеративным моделям.

Начало работы с длинным контекстом

Более ранние версии генеративных моделей могли обрабатывать только 8000 токенов за раз. Более новые модели могут принимать 32 000 или даже 128 000 токенов. Gemini – первая модель, способная принимать 1 миллион токенов.

На практике 1 миллион токенов будет выглядеть так:

  • 50 000 строк кода (по 80 символов в строке).
  • Все текстовые сообщения, отправленные вами за последние пять лет.
  • 8 романов на английском языке средней длины
  • Расшифровки более 200 выпусков подкастов средней продолжительности

Ограниченное окно контекста, характерное для многих других моделей, часто требует использования таких стратегий, как произвольное удаление старых сообщений, обобщение контента, использование RAG с векторными базами данных или фильтрация запросов для экономии токенов.

Хотя эти методы по-прежнему полезны в определенных ситуациях, обширное окно контекста Gemini позволяет использовать более прямой подход: предоставлять всю необходимую информацию сразу. Поскольку модели Gemini были специально разработаны с огромными возможностями контекста, они демонстрируют мощное обучение в контексте. Например, используя только контекстные учебные материалы (500-страничный справочник по грамматике, словарь и около 400 параллельных предложений), Gemini научилась переводить с английского на каламанг – папуасский язык, на котором говорят менее 200 человек. Качество перевода было сопоставимо с тем, которое показал человек, обучавшийся по тем же материалам. Это иллюстрирует смену парадигмы, ставшую возможной благодаря длинному контексту Gemini, который открывает новые возможности за счет надежного обучения в контексте.

Примеры использования длинного контекста

Хотя стандартным вариантом использования большинства генеративных моделей по-прежнему является ввод текста, семейство моделей Gemini позволяет использовать новую парадигму мультимодальных вариантов использования. Эти модели могут понимать текст, видео, аудио и изображения. Для удобства они сопровождаются Gemini API, который принимает мультимодальные типы файлов.

Длинный текст

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

Вот некоторые новые и стандартные варианты использования текстового расширенного контекста:

  • Обобщение больших объемов текста
    • Предыдущие варианты обобщения с моделями меньшего контекста требовали бы скользящего окна или другого метода для сохранения состояния предыдущих разделов по мере передачи новых токенов в модель
  • Вопросы и ответы
    • Раньше это было возможно только с помощью RAG, поскольку объем контекста был ограничен, а модели плохо запоминали факты.
  • Агентные рабочие процессы
    • Текст – это основа того, как агенты отслеживают свои действия и задачи. Недостаток информации о мире и цели агента ограничивает надежность агентов.

Обучение в контексте с несколькими примерами – одна из самых уникальных возможностей, которые открывают модели с длинным контекстом. Исследования показывают, что если взять распространенную парадигму "одного примера" или "нескольких примеров", когда модели предоставляется один или несколько примеров задачи, и масштабировать ее до сотен, тысяч или даже сотен тысяч примеров, то можно получить новые возможности модели. Кроме того, такой подход с несколькими примерами позволяет достичь результатов, сравнимых с результатами моделей, которые были специально обучены для выполнения определенной задачи. Если производительность модели Gemini пока недостаточна для развертывания в рабочей среде, вы можете попробовать подход с несколькими примерами. Как вы узнаете позже из раздела об оптимизации длинного контекста, кеширование контекста делает этот тип рабочей нагрузки с высоким количеством входных токенов гораздо более экономически целесообразным и даже снижает задержку в некоторых случаях.

Длинное видео

Полезность видеоконтента долгое время была ограничена из-за отсутствия доступности самого носителя. Бегло просматривать контент было сложно, расшифровки часто не передавали нюансы видео, а большинство инструментов не обрабатывали изображения, текст и аудио вместе. Благодаря Gemini возможности работы с длинными текстами позволяют анализировать мультимодальные входные данные и отвечать на вопросы о них без потери производительности.

Вот некоторые стандартные и новые варианты использования длинного контекста в видео:

  • Ответы на вопросы по видео
  • Видеопамять, как в Project Astra от Google.
  • Субтитры к видео
  • Системы рекомендаций видео, которые дополняют существующие метаданные новыми мультимодальными данными.
  • Настройка видео. На основе анализа данных и метаданных видео удаляются фрагменты, которые не интересны зрителю.
  • Модерация видеоконтента
  • Обработка видео в реальном времени

При работе с видео важно учитывать, как они преобразуются в токены, поскольку это влияет на оплату и лимиты на использование. Подробнее о том, как использовать видеофайлы в запросах, рассказывается в руководстве по составлению запросов.

Длинные аудиозаписи

Модели Gemini стали первыми изначально мультимодальными большими языковыми моделями, способными понимать аудио. Раньше разработчикам приходилось объединять несколько моделей, например для преобразования речи в текст и текста в текст, чтобы обрабатывать аудио. Это приводило к дополнительной задержке, вызванной выполнением нескольких запросов туда и обратно, и снижению производительности, обычно связанному с разрозненной архитектурой нескольких моделей.

Вот несколько примеров использования аудиоконтекста:

  • Расшифровка и перевод в реальном времени
  • Ответы на вопросы о подкастах и видео
  • Расшифровка и пересказ встреч
  • Голосовые помощники

Подробнее о запросах с аудиофайлами можно узнать из руководства по запросам.

Оптимизация длинного контекста

Основной способ оптимизации при работе с длинным контекстом и моделями Gemini – использовать кеширование контекста. Помимо невозможности обрабатывать большое количество токенов в одном запросе, другим основным ограничением была стоимость. Если у вас есть приложение для чата с данными, в которое пользователь загружает 10 PDF-файлов, видео и несколько рабочих документов, раньше вам приходилось работать с более сложным инструментом/фреймворком генерации с дополненной выборкой (RAG), чтобы обрабатывать эти запросы и платить значительную сумму за токены, перемещенные в окно контекста. Теперь вы можете кэшировать файлы, которые загружает пользователь, и платить за их хранение на почасовой основе. Например, стоимость ввода / вывода на запрос с Gemini Flash примерно в 4 раза меньше стандартной стоимости ввода / вывода, поэтому, если пользователь достаточно часто общается со своими данными, это становится огромной экономией средств для вас как разработчика.

Ограничения на длину контекста

В разных разделах этого руководства мы рассказывали о том, как модели Gemini достигают высокой эффективности при поиске иголки в стоге сена. В этих тестах рассматривается самая базовая настройка, когда вы ищете одну иглу. Если вам нужно найти несколько "иголок" или конкретных фрагментов информации, точность модели снижается. Эффективность может сильно различаться в зависимости от контекста. Это важно учитывать, поскольку существует неизбежный компромисс между получением нужной информации и стоимостью. Вы можете получить точность около 99% при одном запросе, но вам придется платить за входные токены каждый раз, когда вы отправляете этот запрос. Таким образом, чтобы получить 100 фрагментов информации с эффективностью 99 %, вам, скорее всего, потребуется отправить 100 запросов. Это хороший пример того, как кеширование контекста может значительно снизить стоимость использования моделей Gemini, сохраняя при этом высокую производительность.

Часто задаваемые вопросы

Где лучше всего разместить запрос в окне контекста?

В большинстве случаев, особенно если контекст длинный, модель будет работать лучше, если вы поместите запрос или вопрос в конец подсказки (после всего остального контекста).

Снижается ли эффективность модели при добавлении токенов в запрос?

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

Как снизить расходы на запросы с длинным контекстом?

Если вы хотите многократно использовать один и тот же набор токенов или контекст, кеширование контекста поможет снизить расходы, связанные с запросами информации.

Влияет ли длина контекста на задержку модели?

В любом запросе есть определенная задержка, независимо от его размера, но обычно более длинные запросы имеют более высокую задержку (время до первого токена).