У многих моделей Gemini большие окна контекста – на миллион или более токенов. Раньше большие языковые модели (LLM) были сильно ограничены объемом текста (или токенов), который можно было передать модели за один раз. Окно контекста для длинных диалогов в Gemini открывает множество новых вариантов использования и парадигм разработки.
Код, который вы уже используете для генерации текста или мультимодальных запросов, будет работать с длинным контекстом без изменений.
В этом документе рассказывается, что можно делать с помощью моделей с окнами контекста на 1 миллион и более токенов. На странице дается краткий обзор окна контекста и рассматривается, как разработчики должны думать о длинном контексте, различных реальных вариантах использования длинного контекста и способах оптимизации использования длинного контекста.
Размеры окон контекста для определенных моделей указаны на странице Модели.
Что такое окно контекста
Основной способ использования моделей Gemini – передача информации (контекста) модели, которая затем генерирует ответ. Контекстное окно можно сравнить с кратковременной памятью. В кратковременной памяти человека может храниться ограниченный объем информации. То же самое относится и к генеративным моделям.
В Gemini 4 (gemini-4-argon) окно контекста на 1 миллион токенов распределяется между входными, выходными и токенами мышления, а модель может генерировать до 1 миллиона выходных токенов, используя длинное декодирование. Если сумма входных токенов и max_output_tokens превышает 1 048 576 токенов, API автоматически ограничивает выходные токены оставшимся местом в окне контекста (1,048,576 минус входные токены). Более ранние модели Gemini 3 и 2.5 используют отдельные лимиты: 1 миллион токенов для входных данных и 64 тысячи – для выходных.
Подробнее о том, как работают модели, рассказывается в руководстве по генеративным моделям.
Начало работы с длинным контекстом
Более ранние версии генеративных моделей могли обрабатывать только 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. Как упоминалось ранее, многие практические ограничения LLM были связаны с тем, что у них не было достаточно большого окна контекста для выполнения определенных задач. Это привело к быстрому распространению генерации с расширенным поиском (RAG) и других методов, которые динамически предоставляют модели релевантную контекстную информацию. Теперь, когда окна контекста становятся всё больше, появляются новые методы, которые открывают новые возможности.
Вот некоторые стандартные и новые варианты использования длинного контекста на основе текста:
- Краткий пересказ больших объемов текста
- Предыдущие варианты обобщения с моделями меньшего контекста требовали бы скользящего окна или другого метода для сохранения состояния предыдущих разделов по мере передачи новых токенов в модель
- Вопросы и ответы
- Раньше это было возможно только с RAG из-за ограниченного объема контекста и низкого уровня фактического воспроизведения моделей.
- Агентные рабочие процессы
- Текст – это основа того, как агенты отслеживают, что они сделали и что им нужно сделать. Недостаток информации о мире и цели агента ограничивает его надежность.
Контекстное обучение на множестве примеров – одна из самых уникальных возможностей, которые открывают модели с длинным контекстом. Исследования показали, что если взять распространенную парадигму "одного примера" или "нескольких примеров", в которой модели предоставляется один или несколько примеров задачи, и масштабировать ее до сотен, тысяч или даже сотен тысяч примеров, то можно получить новые возможности модели. Этот подход с множеством примеров также показал результаты, аналогичные моделям, которые были настроены для конкретной задачи. Если производительность модели Gemini пока недостаточна для развертывания в рабочей среде, вы можете попробовать подход с несколькими примерами. Как вы узнаете из раздела об оптимизации длинного контекста, кеширование контекста делает рабочую нагрузку с большим количеством входных токенов экономически более целесообразной и даже позволяет снизить задержку в некоторых случаях.
Длинное видео
Полезность видеоконтента долгое время была ограничена отсутствием доступности самого носителя. Было сложно быстро просматривать контент, расшифровки часто не передавали нюансы видео, а большинство инструментов не обрабатывали изображения, текст и аудио вместе. Благодаря длинному контексту Gemini может рассуждать и отвечать на вопросы о мультимодальных входных данных с неизменно высоким качеством.
Вот некоторые стандартные и новые варианты использования длинного контекста для видео:
- Ответы на вопросы по видео
- Видеопамять, как в Project Astra от Google.
- Субтитры к видео
- Системы рекомендаций видео, которые дополняют существующие метаданные новыми мультимодальными данными.
- Настройка видео. На основе анализа данных и метаданных видео удаляются фрагменты, которые не интересны зрителю.
- Модерация видеоконтента
- Обработка видео в реальном времени
При работе с видео важно учитывать, как видео обрабатываются в токены, что влияет на выставление счетов и лимиты на использование. Подробнее о том, как использовать видеофайлы в запросах, можно узнать в руководстве по составлению запросов.
Длинные аудиозаписи
Модели Gemini стали первыми изначально мультимодальными большими языковыми моделями, способными понимать аудио. Раньше разработчикам приходилось объединять несколько моделей, например для преобразования речи в текст и текста в текст, чтобы обрабатывать аудио. Это приводило к дополнительной задержке, вызванной выполнением нескольких запросов туда и обратно, и снижению производительности, обычно связанному с разрозненной архитектурой нескольких моделей.
Вот несколько примеров использования аудиоконтекста:
- Расшифровка и перевод в реальном времени
- Вопросы и ответы по подкасту или видео
- Расшифровка и краткий пересказ встреч
- Голосовые помощники
Подробнее о запросах с аудиофайлами можно узнать из руководства по запросам.
Оптимизация длинного контекста
Основной способ оптимизации при работе с длинным контекстом и моделями Gemini – использовать кеширование контекста. Помимо невозможности обрабатывать большое количество токенов в одном запросе, другим основным ограничением была стоимость. Если у вас есть приложение для чата с данными, в которое пользователь загружает 10 PDF-файлов, видео и несколько рабочих документов, раньше вам приходилось работать с более сложным инструментом/фреймворком генерации с дополненной выборкой (RAG), чтобы обрабатывать эти запросы и платить значительную сумму за токены, перемещенные в окно контекста. Теперь вы можете кэшировать файлы, которые загружает пользователь, и платить за их хранение на почасовой основе. Например, стоимость ввода / вывода на запрос с Gemini Flash примерно в 4 раза меньше стандартной стоимости ввода / вывода, поэтому, если пользователь достаточно часто общается со своими данными, это становится огромной экономией средств для вас как разработчика.
Ограничения длинного контекста
В разных разделах этого руководства мы говорили о том, как модели Gemini достигают высокой производительности в различных тестах на поиск иголки в стоге сена. В этих тестах рассматривается самый простой случай, когда вам нужно найти одну иголку. Если вам нужно найти несколько "иголок" или конкретных фрагментов информации, точность модели снижается. Эффективность может сильно различаться в зависимости от контекста. Это важно учитывать, поскольку между получением нужной информации и стоимостью существует компромисс. Вы можете получить ~99% за один запрос, но вам придется платить за входные токены каждый раз, когда вы отправляете этот запрос. Таким образом, чтобы получить 100 единиц информации с эффективностью 99 %, вам, скорее всего, потребуется отправить 100 запросов. Это хороший пример того, как кеширование контекста может значительно снизить затраты, связанные с использованием моделей Gemini, при сохранении высокой производительности.
Часто задаваемые вопросы
Где лучше всего разместить запрос в окне контекста?
В большинстве случаев, особенно если контекст длинный, модель лучше работает, когда запрос или вопрос находится в конце подсказки (после всего остального контекста).
Снижается ли производительность модели, если добавить в запрос больше токенов?
Как правило, если токены не нужны для работы модели, лучше их не передавать. Однако, если у вас есть большой фрагмент текста, содержащий определенную информацию, и вы хотите задать вопросы об этой информации, модель может извлечь ее с высокой точностью (до 99% в большинстве случаев).
Как снизить расходы на запросы с длинным контекстом?
Если у вас есть набор токенов или контекст, который вы хотите использовать многократно, кеширование контекста поможет снизить расходы, связанные с запросами об этой информации.
Влияет ли длина контекста на задержку модели?
Для любого запроса, независимо от его размера, существует фиксированная задержка, но в целом более длинные запросы будут иметь более высокую задержку (время до первого токена).