Gemini 1.5 Flash стандартно поставляется с контекстным окном на 1 миллион токенов, а Gemini 1.5 Pro поставляется с контекстным окном на 2 миллиона токенов. Исторически сложилось так, что большие языковые модели (LLM) были существенно ограничены объемом текста (или токенов), который можно было передать в модель за один раз. Длинное контекстное окно Gemini 1.5 с почти идеальным поиском (>99%) открывает множество новых вариантов использования и парадигм разработчика.
Код, который вы уже используете для таких случаев, как генерация текста или мультимодальный ввод, будет работать «из коробки» с длинным контекстом.
В этом руководстве вы кратко изучите основы контекстного окна, то, как разработчикам следует думать о длинном контексте, различные реальные варианты использования длинного контекста и способы оптимизации использования длинного контекста.
Что такое контекстное окно?
Основной способ использования моделей Gemini 1.5 — передача информации (контекста) в модель, которая впоследствии генерирует ответ. Аналогией контекстного окна является кратковременная память. В чьей-то кратковременной памяти может храниться ограниченное количество информации, и то же самое справедливо и для генеративных моделей.
Подробнее о том, как модели работают «под капотом», можно прочитать в нашем руководстве по генеративным моделям .
Начало работы с длинным контекстом
Большинство генеративных моделей, созданных за последние несколько лет, были способны обрабатывать только 8000 токенов одновременно. Новые модели пошли еще дальше, приняв 32 000 или 128 000 жетонов. Gemini 1.5 — первая модель, способная принимать 1 миллион токенов, а теперь и 2 миллиона токенов с Gemini 1.5 Pro .
На практике 1 миллион токенов будет выглядеть так:
- 50 000 строк кода (стандартно 80 символов в строке)
- Все текстовые сообщения, которые вы отправили за последние 5 лет.
- 8 английских романов средней длины
- Стенограммы более 200 выпусков подкастов средней продолжительности
Несмотря на то, что модели могут охватывать все больше и больше контекста, большая часть общепринятых представлений об использовании больших языковых моделей предполагает это неотъемлемое ограничение модели, которое с 2024 года больше не имеет место.
Некоторые распространенные стратегии преодоления ограничений небольших контекстных окон включают в себя:
- Произвольное удаление старых сообщений/текста из контекстного окна при появлении нового текста.
- Обобщение предыдущего содержимого и замена его сводкой, когда контекстное окно приближается к заполнению.
- Использование RAG с семантическим поиском для перемещения данных из контекстного окна в векторную базу данных.
- Использование детерминированных или генеративных фильтров для удаления определенного текста/символов из подсказок для сохранения токенов.
Хотя многие из них по-прежнему актуальны в определенных случаях, по умолчанию теперь нужно просто поместить все токены в контекстное окно. Поскольку модели Gemini 1.5 были специально созданы с длинным контекстным окном, они гораздо лучше способны к контекстному обучению. Например, имея только учебные материалы (500-страничный справочник по грамматике, словарь и ≈ 400 дополнительных параллельных предложений), предоставленные в контексте, Gemini 1.5 Pro и Gemini 1.5 Flash способны научиться переводить с английского на каламанг — папуасский язык. язык, на котором говорят менее 200 человек и, следовательно, он почти не присутствует в Интернете — с качеством, аналогичным качеству человека, который учился по тем же материалам.
Этот пример подчеркивает, как вы можете начать думать о том, что возможно с длинным контекстом и возможностями обучения в контексте Gemini 1.5.
Варианты использования с длинным контекстом
Хотя стандартным вариантом использования большинства генеративных моделей по-прежнему является ввод текста, семейство моделей Gemini 1.5 обеспечивает новую парадигму мультимодальных вариантов использования. Эти модели могут изначально понимать текст, видео, аудио и изображения. Они сопровождаются API Gemini, который для удобства принимает мультимодальные типы файлов .
Длинный текст
Текст оказался слоем интеллекта, лежащим в основе большей части импульса LLM. Как упоминалось ранее, большая часть практических ограничений LLM связана с отсутствием достаточно большого контекстного окна для выполнения определенных задач. Это привело к быстрому внедрению расширенной генерации поиска (RAG) и других методов, которые динамически предоставляют модели соответствующую контекстную информацию. Теперь, когда контекстные окна все больше и больше (в настоящее время в Gemini 1.5 Pro их до 2 миллионов), становятся доступными новые методы, которые открывают новые варианты использования.
Некоторые новые и стандартные варианты использования длинного текстового контекста включают в себя:
- Обобщение больших объемов текста
- Предыдущие варианты суммирования с меньшими контекстными моделями требовали скользящего окна или другого метода для сохранения состояния предыдущих разделов по мере передачи в модель новых токенов.
- Вопрос и ответ
- Исторически это было возможно только с помощью RAG, учитывая ограниченный объем контекста и низкую фактическую запоминаемость моделей.
- Агентские рабочие процессы
- Текст — это основа того, как агенты сохраняют состояние того, что они сделали и что им нужно сделать; отсутствие достаточной информации о мире и цели агента — ограничение надежности агентов
Многоэтапное контекстное обучение — одна из самых уникальных возможностей, открываемых моделями с длинным контекстом. Исследования показали, что если взять обычную парадигму «одиночного кадра» или «многоэтапного примера», когда модель представлена одним или несколькими примерами задачи, и масштабировать ее до сотен, тысяч или даже сотен тысяч примеры могут привести к появлению новых возможностей модели. Также было показано, что этот многоэтапный подход работает аналогично моделям, которые были точно настроены для конкретной задачи. В случаях, когда производительности модели Gemini еще недостаточно для промышленного развертывания, вы можете попробовать многоэтапный подход. Как вы, возможно, узнаете позже в разделе «Оптимизация длинного контекста», кэширование контекста делает этот тип рабочей нагрузки с высокой входной токеном гораздо более экономически целесообразным, а в некоторых случаях даже снижает задержку.
Длинное видео
Полезность видеоконтента долгое время ограничивалась отсутствием доступности самого носителя. Было трудно просмотреть контент, стенограммы часто не могли передать нюансы видео, а большинство инструментов не обрабатывают изображение, текст и звук одновременно. В Gemini 1.5 возможности работы с длинным контекстом текста переводятся в способность рассуждать и отвечать на вопросы о мультимодальных входных данных с устойчивой производительностью. Gemini 1.5 Flash при тестировании на иголке в задаче стога сена видео с 1 млн токенов добился возврата видео в контекстном окне на >99,8%, а 1.5 Pro достигла высочайшего уровня производительности в тесте Video-MME .
Некоторые новые и стандартные варианты использования длинного контекста видео включают в себя:
- Видео вопрос и ответ
- Видеопамять, как показано в проекте Google Project Astra
- Субтитры к видео
- Системы видеорекомендаций, обогащающие существующие метаданные новым мультимодальным пониманием.
- Настройка видео путем просмотра массива данных и связанных с ними метаданных видео, а затем удаления частей видео, которые не имеют отношения к зрителю.
- Модерация видеоконтента
- Обработка видео в реальном времени
При работе с видео важно учитывать, как видео обрабатываются в токены , что влияет на выставление счетов и лимиты использования. Подробнее о подсказках с помощью видеофайлов можно узнать в Руководстве по подсказкам .
Длинное аудио
Модели Gemini 1.5 были первыми мультимодальными моделями с большим языком, которые могли понимать звук. Исторически сложилось так, что типичный рабочий процесс разработчика включал объединение нескольких моделей, специфичных для предметной области, таких как модель преобразования речи в текст и модель преобразования текста в текст, для обработки звука. Это привело к дополнительной задержке, необходимой для выполнения нескольких двусторонних запросов, и снижению производительности, обычно связанному с отключенными архитектурами настройки нескольких моделей.
При стандартных оценках сена аудио Gemini 1.5 Pro способен найти скрытый звук в 100% тестов, а Gemini 1.5 Flash способен найти его в 98,7% тестов . Gemini 1.5 Flash принимает до 9,5 часов аудио за один запрос , а Gemini 1.5 Pro может принимать до 19 часов аудио с использованием контекстного окна на 2 миллиона токенов. Кроме того, на тестовом наборе 15-минутных аудиоклипов Gemini 1.5 Pro зафиксировал коэффициент ошибок в словах (WER) ~5,5%, что намного ниже, чем даже у специализированных моделей преобразования речи в текст, без дополнительной сложности, связанной с дополнительной сегментацией ввода и предварительная обработка.
Некоторые новые и стандартные варианты использования аудиоконтекста включают в себя:
- Транскрипция и перевод в реальном времени
- Подкаст/видео вопросы и ответы
- Транскрипция и подведение итогов встречи
- Голосовые помощники
Подробнее о подсказках с помощью аудиофайлов можно узнать в Руководстве по подсказкам .
Оптимизация длинного контекста
Основная оптимизация при работе с длинным контекстом и моделями Gemini 1.5 заключается в использовании кэширования контекста . Помимо прежней невозможности обработки большого количества токенов за один запрос, другим основным ограничением была стоимость. Если у вас есть приложение «чат с вашими данными», в которое пользователь загружает 10 PDF-файлов, видео и некоторые рабочие документы, исторически вам приходилось работать с более сложным инструментом/фреймворком дополненной генерации (RAG) для их обработки. запросы и заплатить значительную сумму за токены, перемещенные в окно контекста. Теперь вы можете кэшировать файлы, загружаемые пользователем, и платить за их хранение почасово. Стоимость ввода/вывода на запрос, например, в Gemini 1.5 Flash примерно в 4 раза меньше стандартной стоимости ввода/вывода, поэтому, если пользователь достаточно общается со своими данными, это становится огромной экономией средств для вас как разработчика.
Ограничения длинного контекста
В различных разделах этого руководства мы говорили о том, как модели Gemini 1.5 достигают высокой производительности при различных проверках поиска по принципу «иголка в стоге сена». В этих тестах рассматривается самая базовая установка, при которой у вас есть одна игла, которую вы ищете. В тех случаях, когда у вас может быть несколько «иголок» или конкретных фрагментов информации, которые вы ищете, модель не будет работать с одинаковой точностью. Производительность может варьироваться в широких пределах в зависимости от контекста. Это важно учитывать, поскольку существует неизбежный компромисс между получением нужной информации и затратами. Вы можете получить ~99% за один запрос, но вам придется платить стоимость входного токена каждый раз, когда вы отправляете этот запрос. Таким образом, для получения 100 фрагментов информации, если вам нужна производительность 99%, вам, вероятно, придется отправить 100 запросов. Это хороший пример того, как кэширование контекста может значительно снизить затраты, связанные с использованием моделей Gemini, сохраняя при этом высокую производительность.
Часто задаваемые вопросы
Теряю ли я производительность модели, если добавляю в запрос больше токенов?
Как правило, если вам не нужны токены для передачи в модель, лучше избегать их передачи. Однако, если у вас есть большой кусок токенов с некоторой информацией и вы хотите задать вопросы об этой информации, модель вполне способна извлечь эту информацию (во многих случаях точность до 99%).
Как Gemini 1.5 Pro показал себя в стандартном тесте «иголка в стоге сена»?
Gemini 1.5 Pro обеспечивает 100% отзыв до 530 тыс. токенов и >99,7% отзыв до 1 млн токенов .
Как я могу снизить затраты на запросы с длинным контекстом?
Если у вас есть аналогичный набор токенов/контекста, который вы хотите использовать повторно много раз, кэширование контекста может помочь снизить затраты, связанные с заданием вопросов об этой информации.
Как я могу получить доступ к контекстному окну на 2 миллиона токенов?
Теперь все разработчики имеют доступ к контекстному окну на 2 миллиона токенов в Gemini 1.5 Pro.
Влияет ли длина контекста на задержку модели?
В любом запросе существует некоторая фиксированная задержка, независимо от размера, но обычно более длинные запросы будут иметь более высокую задержку (время до получения первого токена).
Отличаются ли возможности длинного контекста в Gemini 1.5 Flash и Gemini 1.5 Pro?
Да, некоторые цифры упоминались в разных разделах этого руководства, но в целом Gemini 1.5 Pro более эффективен в большинстве случаев использования с длинным контекстом.