Gemini 1.5 Pro: Являются ли большие окна контекста решающим фактором?
Всего восемь месяцев назад утекшее письмо Google раскрыло, что компания испытывает трудности с опережением своих конкурентов в области ИИ. Не только не было никаких преимуществ в их предложениях ИИ — другими словами, не было накопленного бизнес-преимущества — у Google также не было никакого "секретного ингредиента", который мог бы изменить ситуацию. И даже когда они боролись с проблемой, они наблюдали, как разрыв между финансируемыми из частных источников проектами ИИ, подобными их собственным, и моделями ИИ с открытым исходным кодом сокращался с «удивительной» скоростью.
Еще рано говорить, чем закончится эта история. Возможно, ИИ с открытым исходным кодом продолжит развиваться на основе своих ранних успехов, а может быть, его заглушат ИИ, управляемые чрезвычайно богатыми конкурентами, такими как Google, Microsoft и Apple, и их ошеломляющими объемами данных. Прямо сейчас конфликт все еще разворачивается, поскольку различные организации выпускают серию быстрых достижений в области искусственного интеллекта. Недавно Google привлекла внимание в этой области, когда объявила о предварительном запуске своего новейшего LLM, Gemini 1.5 Pro. Еще один день, еще одна большая языковая модель — или так казалось, пока Google не описала поразительные изменения.
Gemini 1.5 Pro значительно расширяет окно контекста — по сути, меру того, сколько данных LLM может отслеживать одновременно. В предыдущих версиях Gemini было окно контекста до 128 000 токенов, как и у GPT-4. Новое окно контекста Gemini вмещает 1 миллион токенов, и последствия этого изменения огромны.
Но прежде чем мы сможем говорить об эффекте окон контекста на возможности LLM, нам нужно вернуться и кратко рассмотреть, как работают окна контекста.
Окна контекста (в двух словах)
Простыми словами, окно контекста устанавливает, какую часть вашей информации LLM может запомнить во время взаимодействия. Например, если вы используете ChatGPT, окно контекста состоит из текущего запроса, который вы ему задали, всего, что вы ввели в этот разговор ранее, и каждого ответа, который ChatGPT отправил вам в ответ. Если говорить достаточно долго, старые части разговора выпадут из окна контекста, и ChatGPT резко забудет эти детали.
Окна контекста в 128 000 токенов кажется большим, но это обманчиво. Во-первых, учтите, что среднее слово на самом деле составляет от 1 до 3 токенов, когда оно разбивается для LLM. (Правило — 4 токена для 3 слов, но оно увеличивается, когда язык становится более сложным или в специализированных областях, таких как юриспруденция или медицина.) Когда вы смотрите на длинные документы, продолжающиеся взаимодействия и приложения на базе искусственного интеллекта, вы быстро обнаружите, что вы можете вместить все, что хотите, чтобы LLM знал, в его окне контекста.
По этой причине мы разработали несколько умных способов обойти ограничение окна контекста. Например:
-
Разбиение. Вы можете разбить большой объем данных и заставить LLM рассмотреть его по частям. Это хорошо работает для некоторых задач (например, для резюмирования длинного документа), но не так хорошо, если вам нужно анализировать концепции, которые охватывают весь документ.
-
Микронастройка. Вы можете обучить LLM с использованием ваших конкретных данных. Основная проблема, помимо времени и расходов, заключается в том, что ваши новые данные легко переполняются гораздо большим набором данных общего назначения, которые LLM уже усвоил. Часто это просто не приживается. К тому же многие LLM вообще не поддерживают микронастройку, включая GPT-4 и Gemini.
-
Генерация с использованием дополненного поиска (RAG). Сначала вы преобразуете свой текстовый контент в специальное представление, называемое вложениями. (Вложения - важная часть работы LLM. По сути, это числовое представление, которое захватывает смысл содержания.) Как только у вас есть вложения, вы помещаете их в векторную базу данных. Теперь вы можете использовать магию семантического поиска, чтобы посмотреть запрос и найти части концептуально связанного контента в вашей базе данных, который вы передаете в LLM. Другими словами, вы даете ему только важные вещи.
Последний пункт является наиболее распространенным подходом на данный момент. RAG эффективен и предсказуем. Он удивительно хорошо работает, если у вас есть огромная коллекция слабо связанных документов. Например, представьте, что вы создаете чат-бота для технической поддержки, который черпает информацию из статей базы знаний вашей компании. С помощью RAG вы находите соответствующие данные и передаете их в LLM вместе с вашим запросом. По сути, вы говорите LLM, куда смотреть, когда он отвечает на запрос.
Но RAG не идеален. Он заставляет вас тратить гораздо больше времени на подготовку ваших данных. Он не облегчает переход к совершенно новому набору данных. И он неэффективен, если вам действительно нужно учитывать огромный объем информации сразу - например, если вы ищете основные темы в романе или функции в кодовой базе. Но несмотря на свои ограничения, RAG сегодня почти близок к лучшей практике.
По крайней мере, это было до тех пор, пока Gemini 1.5 Pro не перевернул ситуацию.
Момент "вау"
Хотя Gemini 1.5 Pro еще не выпущен, он доступен в ограниченной пробной версии. И результаты поражают воображение.
Некоторые из самых впечатляющих примеров показывают, как Gemini создает анализы, охватывающие огромные массивы знаний. Демонстрации Google предсказуемо впечатляют, но их обвиняли в том, что в прошлом они инсценировали демонстрации и выбирали примеры. Больше интересуют независимые тестеры, которые сообщили о не менее замечательных результатах.
Например, Конор Греннан загрузил в Gemini роман объемом 300 страниц и попросил его описать главных героев, найти сюжетные повороты и определить примеры персонажей, испытывающих определенные эмоции. У Gemini не возникло проблем с разработкой нюансированных аргументов, которые обосновывались на всем протяжении книги. Джефф Делани, создатель популярного канала Fireship на YouTube, загрузил в Gemini целую кодовую базу с тысячами файлов и попросил ее добавить новые функции. Gemini не только написал правильный код, но и следовал стилю существующего проекта, используя уже установленные компоненты, библиотеки и соглашения. Другие демонстрации показывают, как Gemini выявляет проблемы в приложении, извлекает ключевые примеры и пишет документацию API.
А если вам нужно что-то еще, чтобы заполнить огромное окно контекста Gemini, есть еще одна новая функция — видео. Видео токенизируется иначе, чем слова, и занимает гораздо больше места. Но даже несмотря на это, окно контекста в 1 миллион токенов может вместить около часа видео — достаточно, чтобы просмотреть фильм и ответить на сложные вопросы о его содержании. Именно это и сделала Google, когда попросила Gemini найти конкретные детали в фильме Бастера Китона, например слова, написанные на клочке бумаги в сцене, которую они не определили.
Будущее LLM
Являются ли большие окна контекста путем в будущее? До сих пор общепринятым было мнение, что большие окна контекста в лучшем случае являются частичным решением. Мы беспокоились, что они будут непомерно дорогими с точки зрения вычислительного времени. Одно исследование показало, что LLM не очень хорошо находят информацию в середине длинных окон контекста и лучше справляются с деталями, которые встречаются в начале или в конце. Все эти факторы подтверждали один и тот же вывод: грубое принудительное введение вашего контента в окно контекста было наивным и непомерно дорогим. Загрузка всех ваших данных в один запрос никогда не будет правильным способом общения с LLM.
Теперь кажется, что будущее внезапно изменилось. Большие окна контекста уже на горизонте, и они могут дать LLM более эффективное и целостное понимание широких наборов знаний. Задачи, которые были невозможны для текста в прошлом году, сейчас становятся возможными в видео. И Google Research работает с вариантом Gemini, который расширяет окно контекста до поразительных 10 миллионов токенов.
Два факта очевидны. Во-первых, выбирать победителя в войнах LLM — глупое занятие. А во-вторых, темпы изменений не замедляются — они только ускоряются.