Многие модели Gemini поставляются с большими контекстными окнами в 1 миллион или более токенов. Исторически большие языковые модели (LLM) были существенно ограничены объемом текста (или токенов), который можно было передать модели за один раз. Длинное контекстное окно Gemini открывает множество новых вариантов использования и парадигм разработчиков.
Код, который вы уже используете для таких случаев, как генерация текста или многомодальный ввод, будет работать без каких-либо изменений с длинным контекстом.
Этот документ дает вам обзор того, чего можно достичь с помощью моделей с контекстными окнами размером 1 млн и более токенов. На странице дается краткий обзор контекстного окна и рассматривается, как разработчикам следует думать о длинном контексте, различные реальные случаи использования длинного контекста и способы оптимизации использования длинного контекста.
Размеры контекстных окон конкретных моделей см. на странице «Модели» .
Что такое контекстное окно?
Основной способ использования моделей Gemini — передача информации (контекста) модели, которая впоследствии сгенерирует ответ. Аналогом контекстного окна является кратковременная память. Существует ограниченное количество информации, которое может храниться в кратковременной памяти человека, и то же самое относится к генеративным моделям.
Подробнее о том, как работают модели, можно прочитать в нашем руководстве по генеративным моделям .
Начало работы с длинным контекстом
Более ранние версии генеративных моделей могли обрабатывать только 8000 токенов за раз. Новые модели пошли еще дальше, принимая 32000 или даже 128000 токенов. 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 Astra
- Субтитры к видео
- Системы рекомендаций видео, обогащающие существующие метаданные новым мультимодальным пониманием
- Настройка видео путем анализа массива данных и связанных с ним метаданных видео с последующим удалением частей видео, которые не имеют значения для зрителя.
- Модерация видеоконтента
- Обработка видео в реальном времени
При работе с видео важно учитывать, как видео преобразуются в токены , что влияет на выставление счетов и лимиты использования. Подробнее о подсказках с видеофайлами можно узнать в руководстве по подсказкам .
Длинная аудиозапись
Модели Gemini были первыми изначально многомодальными моделями большого языка, которые могли понимать аудио. Исторически типичный рабочий процесс разработчика включал бы связывание нескольких доменно-специфичных моделей, таких как модель преобразования речи в текст и модель преобразования текста в текст, для обработки аудио. Это приводило к дополнительной задержке, необходимой для выполнения нескольких запросов на передачу и снижения производительности, обычно приписываемой разрозненным архитектурам настройки нескольких моделей.
Некоторые новые и стандартные варианты использования аудиоконтекста включают в себя:
- Транскрипция и перевод в реальном времени
- Подкаст/видео вопросы и ответы
- Транскрипция и резюмирование встреч
- Голосовые помощники
Дополнительную информацию о подсказках с использованием аудиофайлов можно найти в Руководстве по подсказкам .
Оптимизация длинного контекста
Основная оптимизация при работе с длинным контекстом и моделями Gemini заключается в использовании кэширования контекста . Помимо предыдущей невозможности обработки большого количества токенов в одном запросе, другим основным ограничением была стоимость. Если у вас есть приложение «чат с вашими данными», в которое пользователь загружает 10 PDF-файлов, видео и некоторые рабочие документы, вам исторически приходилось работать с более сложным инструментом/фреймворком расширенной генерации (RAG) для обработки этих запросов и платить значительную сумму за токены, перемещенные в окно контекста. Теперь вы можете кэшировать файлы, загружаемые пользователем, и платить за их хранение на почасовой основе. Стоимость ввода/вывода на запрос с Gemini Flash, например, примерно в 4 раза меньше стандартной стоимости ввода/вывода, поэтому, если пользователь достаточно много общается со своими данными, это становится огромной экономией для вас как разработчика.
Ограничения длинного контекста
В различных разделах этого руководства мы говорили о том, как модели Gemini достигают высокой производительности при различных оценках поиска иголки в стоге сена. Эти тесты рассматривают самую базовую настройку, когда у вас есть одна иголка, которую вы ищете. В случаях, когда у вас может быть несколько «иголок» или определенных фрагментов информации, которые вы ищете, модель не работает с одинаковой точностью. Производительность может сильно различаться в зависимости от контекста. Это важно учитывать, поскольку существует неотъемлемый компромисс между получением правильной извлеченной информации и стоимостью. Вы можете получить ~99% на один запрос, но вам придется платить стоимость входного токена каждый раз, когда вы отправляете этот запрос. Таким образом, для получения 100 фрагментов информации, если вам нужна производительность 99%, вам, вероятно, потребуется отправить 100 запросов. Это хороший пример того, как кэширование контекста может значительно снизить стоимость, связанную с использованием моделей Gemini, сохраняя при этом высокую производительность.
Часто задаваемые вопросы
Где лучше всего разместить мой запрос в контекстном окне?
В большинстве случаев, особенно если общий контекст длинный, производительность модели будет выше, если вы поместите свой запрос/вопрос в конце подсказки (после всего остального контекста).
Теряю ли я производительность модели при добавлении дополнительных токенов в запрос?
Как правило, если вам не нужно передавать токены в модель, лучше избегать их передачи. Однако, если у вас есть большой кусок токенов с некоторой информацией и вы хотите задать вопросы об этой информации, модель вполне способна извлечь эту информацию (до 99% точности во многих случаях).
Как можно снизить затраты с помощью длинных контекстных запросов?
Если у вас есть похожий набор токенов/контекста, который вы хотите использовать многократно, кэширование контекста может помочь сократить затраты, связанные с постановкой вопросов об этой информации.
Влияет ли длина контекста на задержку модели?
В любом запросе существует фиксированная величина задержки, независимо от размера, но, как правило, более длинные запросы будут иметь большую задержку (время до первого токена).