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

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

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

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

Информацию о размерах контекстных окон для конкретных моделей см. на странице «Модели» .

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

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

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

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

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

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

  • 50 000 строк кода (со стандартным количеством символов в строке — 80)
  • Все текстовые сообщения, которые вы отправляли за последние 5 лет
  • 8 английских романов средней длины
  • Транскрипты более 200 эпизодов подкастов средней продолжительности.

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

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

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

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

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

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

К числу новых и стандартных вариантов использования текстового контекста относятся:

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

Многократное обучение в контексте — одна из самых уникальных возможностей, раскрываемых моделями с длинным контекстом. Исследования показали, что использование распространенной парадигмы «однократного» или «многократного» обучения, когда модели предоставляется один или несколько примеров задачи, и масштабирование этого до сотен, тысяч или даже сотен тысяч примеров может привести к появлению новых возможностей модели. Также было показано, что такой подход с множеством примеров демонстрирует результаты, аналогичные моделям, которые были доработаны для конкретной задачи. В случаях, когда производительности модели Gemini еще недостаточно для внедрения в производство, можно попробовать подход с множеством примеров. Как вы можете узнать позже в разделе оптимизации длинного контекста, кэширование контекста делает этот тип работы с большим количеством входных токенов гораздо более экономически целесообразным и даже снижает задержку в некоторых случаях.

Длинный видеоролик

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

К числу новых и стандартных вариантов использования длинного контекста видео относятся:

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

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

Длинный аудиоформат

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

К числу новых и стандартных вариантов использования аудиоконтекста относятся:

  • Транскрипция и перевод в режиме реального времени
  • Вопросы и ответы в формате подкаста/видео
  • Расшифровка и подведение итогов совещания
  • Голосовые помощники

Более подробную информацию о подсказках с помощью аудиофайлов вы можете найти в руководстве по подсказкам .

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

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

Ограничения, связанные с длинным контекстом

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

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

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

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

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

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

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

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

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

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