Улучшите поиск по сайту: контекстные ответы с помощью генеративного искусственного интеллекта

Андре Чиприани Бандарра
André Cipriani Bandarra

Генеративный ИИ подразумевает использование искусственного интеллекта для создания нового контента, такого как текст, изображения, музыка, аудио и видео. Генеративный ИИ опирается на модель машинного обучения (ML) для изучения закономерностей и взаимосвязей в наборе данных контента, созданного человеком.

Эта технология продемонстрировала невероятные возможности благодаря таким приложениям, как Gemini . Вам может быть интересно, как мне внедрить инструменты генеративного искусственного интеллекта в свои веб-продукты?

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

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

Предположим, такая функция существует на этом сайте. Пользователь хочет узнать, какие API включены в Interop 2024, и вводит следующий запрос:

What are the features included in Interop 24?

К сожалению, вывод, скорее всего, будет неверным по нескольким причинам:

  • Пользователь предоставил LLM мало контекста для вопроса, поэтому LLM более склонен давать неправильные ответы или галлюцинации.
  • Вероятно, LLM прошел обучение до создания Interop 2024 или определения его функций, поэтому эта информация ему неизвестна.

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

Используйте оперативное проектирование

Оперативное проектирование — это набор методов, позволяющих получить максимальную отдачу от LLM.

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

Продолжая наш пример Interop, наш первый шаг — предоставить полное содержание статьи в качестве контекста. Затем добавьте вопрос в качестве входных данных для ответа LLM. Например:

Context:
Following on from the success of Interop 2022 and Interop 2023, we
are excited about the opportunity to collaborate once again with
all key browser vendors and other relevant stakeholders...
(trimmed to fit in this article)

Input:
What are the features included in Interop 2024?

Вы можете ожидать, что Gemini выведет что-то вроде следующего:

The features included in Interop 24 are Accessibility, CSS Nesting, Custom
Properties, Declarative Shadow DOM, font-size-adjust, HTTPS URLs for
WebSocket, IndexedDB, Layout, Pointer and Mouse Events, Popover, Relative
Color Syntax, requestVideoFrameCallback, Scrollbar Styling, @starting-style
and, transition-behavior, Text Directionality, text-wrap: balance,URL

Этот ответ, вероятно, намного лучше, чем ответ без контекста, поскольку ответ основан на предоставленном контексте.

Масштабируйтесь с помощью RAG

Например, вместо того, чтобы отвечать на вопрос об одной статье, мы хотим, чтобы LLM ответил на больше вопросов о web.dev, используя любую статью в качестве дополнительного контекста. Хотя это может быть возможно для небольших сайтов, учитывая контекстное окно Gemini 1.5, содержащее 1 миллион токенов , более крупные запросы выполняются медленнее и дороже .

Длина входных и выходных данных LLM измеряется и оплачивается в токенах, которые представляют собой способ представления общей последовательности символов, встречающихся при вводе текста. Количество токенов обычно превышает количество слов. Например, входные данные в первом примере содержали 775 слов, представленных 1097 токенами. Различные LLM могут рассчитывать токены по-разному, и большинство из них предоставляют API или конечную точку для расчета количества токенов для ввода текста.

Одним из решений является предоставление LLM актуальных статей. Эту задачу следует разделить на две части:

  1. Добавьте содержание популярных статей в качестве контекста при запросе LLM.
  2. Найдите в контенте статьи, связ��нные с темой «Какие функции включены в Interop 2024?».

Мы хотим, чтобы результаты Gemini возвращали контент на основе следующих статей:

Ввод должен выглядеть следующим образом:

Context:
Article 1:
Over the past two years... (trimmed)

Article 2:
At the end of last year Interop 2023 wrapped up. This effort... (trimmed)

Article 3:
Following on from the success of Interop 2022... (trimmed)

Input:
What are the features included in Interop 2024?

Этот контекст дает ожидаемый результат.

* Accessibility * CSS Nesting * Custom Properties
* Declarative Shadow DOM * font-size-adjust
* HTTPS URLs for WebSocket * IndexedDB * Layout
* Pointer and Mouse Events * Popover * Relative Color Syntax
* requestVideoFrameCallback * Scrollbar Styling
* @starting-style and transition-behavior * Text Directionality
* text-wrap: balance * URL

Для тех, кто знаком с методами искусственного интеллекта, в этом подходе используется RAG — распространенная практика, позволяющая повысить вероятность получения реальных ответов от инструментов генеративного искусственного интеллекта.

Хотя метод RAG может работать с обычным полнотекстовым поиском, у этого подхода есть недостатки.

  • Полнотекстовый поиск помогает ИИ находить точные совпадения ключевых слов. Однако LLM не могут определить предполагаемое значение запроса пользователя. Это может привести к тому, что выходные данные будут неполными или неверными.
  • Могут возникнуть проблемы, если слова имеют несколько значений или в запросах используются синонимы. Например, «банк» (финансовое учреждение или берег реки) может привести к нерелевантным результатам.
  • Полнотекстовый поиск может выдавать результаты, которые содержат ключевые слова, но не соответствуют целям пользователя.

Семантический поиск — это метод повышения точности поиска, фокусирующийся на следующих ключевых аспектах:

  • Цель поисковика: он пытается понять причину, по которой пользователь что-то ищет. Что они пытаются найти или достичь?
  • Контекстуально�� значение: он интерпретирует слова и фразы в зависимости от окружающего их текста, а также других факторов, таких как местоположение пользователя или история поиск��.
  • Связь между понятиями. Семантический поиск использует графы знаний (большие сети связанных объектов) и обработку естественного языка, чтобы понять, как связаны слова и идеи.

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

Прямо сейчас вы можете реализовать два инструмента поиска, использующих семантический поиск: Vertex AI Search и Algolia AI Search .

Черпайте ответы из опубликованного контента

Вы узнали, как использовать разработку подсказок, чтобы позволить LLM предоставлять ответы, связанные с содержимым, которое он никогда не видел, путем добавления контекста к подсказке. И вы узнали, как масштабировать этот подход от отдельных статей до целого массива контента, используя метод поисково-дополненной генерации (RAG) . Вы узнали, как семантический поиск может улучшить результаты поисковых запросов пользователей, лучше внедрив RAG в ваш продукт.

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