Новости
Модели
Продукты
keyboard_arrow_down
Читатель
Читайте URL-адреса и ищите информацию в Интернете для получения более подходящей подготовки для получения степени магистра права.
Вложения
Мультимодальные многоязычные вложения мирового класса.
Реранкер
Нейронный ретривер мирового класса для максимального повышения релевантности поиска.
Глубокий поиск
Ищите, читайте и рассуждайте, пока не найдете лучший ответ.
Более
keyboard_arrow_down
Классификатор
Классификация изображений и текста по нулевому и небольшому количеству кадров.
Сегментатор
Разрежьте длинный текст на куски и выполните токенизацию.

MCP-сервер
Добавьте mcp.jina.ai в качестве сервера MCP для доступа к нашему API в LLM.
open_in_new
API-документы
Автоматическая генерация кода для вашего второго пилота IDE или LLM
open_in_new


Компания
keyboard_arrow_down
О нас
Связаться с отделом продаж
Стажерская программа
Присоединяйтесь к нам
open_in_new
Скачать логотип
open_in_new
Условия использования


Авторизоваться
login
Что такое расширение запросов?
Расширение запросов с помощью LLM
Пробуем на практике
Результаты
Использование специфичных для задачи промптов
Ключевые аспекты расширения запросов
Будущие направления
Технический блог
февраль 18, 2025

Расширение поисковых запросов с помощью LLM: улучшаем поиск, говоря больше

Поиск сильно изменился с момента появления моделей эмбеддингов. Есть ли все еще место для лексических методов, таких как расширение запросов, в эпоху AI? Мы считаем, что да.
Michael Günther
Scott Martens
Michael Günther, Scott Martens • 9 минуты чтения

Расширение запросов долгое время было проверенным методом улучшения поисковых систем, хотя оно отошло на второй план после появления семантических эмбеддингов. Хотя некоторые могут считать его устаревшим в современных реалиях RAG и агентного поиска, не стоит его списывать со счетов. В этом глубоком анализе мы рассмотрим, как сочетание автоматического расширения запросов с jina-embeddings-v3 и LLM может поднять ваш поиск на новый уровень и обеспечить точные результаты.

tagЧто такое расширение запросов?

Расширение запросов было разработано для поисковых систем, которые оценивают релевантность путем сопоставления слов из запросов с документами, содержащими их, как tf-idf или другие схемы "разреженных векторов". Это имеет очевидные ограничения. Различные формы слов мешают сопоставлению, например "бежал" и "бегущий", или "оптимизировать" и "optimize". Предварительная обработка с учетом особенностей языка может смягчить некоторые из этих проблем, но не все. Технические термины, синонимы и связанные слова гораздо сложнее обрабатывать. Например, запрос медицинских исследований о "коронавирусе" не будет автоматически идентифицировать документы, в которых говорится о "COVID" или "SARS-CoV-2", хотя это были бы очень хорошие совпадения.

Расширение запросов было изобретено как решение.

Идея заключается в добавлении дополнительных слов и фраз к запросам для увеличения вероятности нахождения хороших совпадений. Таким образом, к запросу "коронавирус" могут быть добавлены термины "COVID" и "SARS-CoV-2". Это может значительно улучшить эффективность поиска.

Рисунок 1: Блок-схема расширения запросов с тезаурусом

Нелегко решить, какие термины следует добавить к запросу, и было проведено много работы над тем, как определить хорошие термины и как их взвешивать для поиска в стиле tf-idf. Общие подходы включают:

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

Однако предполагается, что семантические модели эмбеддингов устраняют необходимость в расширении запросов. Хорошие текстовые эмбеддинги для "коронавирус", "COVID" и "SARS-CoV-2" должны быть очень близки друг к другу в векторном пространстве эмбеддингов. Они должны естественным образом совпадать без какого-либо дополнения.

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

tagРасширение запросов с помощью LLM

Вместо использования тезауруса или лексического интеллектуального анализа данных мы рассмотрели использование LLM для расширения запросов. LLM имеют несколько важных потенциальных преимуществ:

  • Широкие лексические знания: Поскольку они обучены на больших, разнообразных наборах данных, меньше беспокойства о выборе подходящего тезауруса или получении правильных данных.
  • Способность к суждению: Не все предложенные термины расширения обязательно подходят к конкретному запросу. LLM могут не делать идеальных суждений о тематической релевантности, но альтернативы вообще не могут делать суждений.
  • Гибкость: Вы можете настроить ваш промпт под потребности задачи поиска, в то время как другие подходы жесткие и могут требовать много работы для адаптации к новым доменам или источникам данных.

После того как LLM предложила список терминов, расширение запросов для эмбеддингов работает так же, как традиционные схемы расширения запросов: мы добавляем термины к тексту запроса, а затем используем модель эмбеддингов для создания вектора эмбеддинга запроса.

Рисунок 2: Расширение запросов эмбеддингов с помощью LLM

Для работы этого подхода вам нужно:

  • Доступ к LLM.
  • Шаблон промпта для получения терминов расширения от LLM.
  • Модель текстовых эмбеддингов.

tagПробуем на практике

Мы провели несколько экспериментов, чтобы проверить, добавляет ли этот подход ценность при поиске текстовой информации. В наших тестах использовались:

  • Одна LLM: Gemini 2.0 Flash от Google.
  • Две модели эмбеддингов, чтобы проверить, обобщается ли расширение запросов LLM на разные модели: jina-embeddings-v3 и all-MiniLM-L6-v2.
  • Подмножество бенчмарков BEIR для информационного поиска.

Мы проводили наши эксперименты в двух условиях промптинга:

  • Использование общего шаблона промпта для получения терминов расширения.
  • Использование специфичных для задачи шаблонов промптов.

Наконец, мы написали наши промпты для получения разного количества добавляемых терминов: 100, 150 и 250.

Наш код и результаты доступны на GitHub для воспроизведения.

GitHub - jina-ai/llm-query-expansion: Query Expension for Better Query Embedding using LLMs
Query Expension for Better Query Embedding using LLMs - jina-ai/llm-query-expansion
GitHubjina-ai

tagРезультаты

tagИспользование общего промпта

После нескольких проб и ошибок мы обнаружили, что следующий промпт хорошо работает с Gemini 2.0 Flash:

Please provide additional search keywords and phrases for 
each of the key aspects of the following queries that make 
it easier to find the relevant documents (about {size} words 
per query):
{query}

Please respond in the following JSON schema:
Expansion = {"qid": str, "additional_info": str}
Return: list [Expansion]

Этот промпт позволяет нам пакетно обрабатывать наши запросы группами по 20-50 штук, присваивая каждому ID и получая обратно строку JSON, которая связывает каждый запрос со списком терминов расширения. Если вы используете другую LLM, возможно, вам придется поэкспериментировать, чтобы найти промпт, который работает для нее.

Мы применили эту настройку с jina-embeddings-v3, используя адаптер асимметричного поиска. При таком подходе запросы и документы кодируются по-разному — используя одну и ту же модель, но разные расширения LoRA — для оптимизации результирующих эмбеддингов для информационного поиска.

Наши результаты по различным бенчмаркам BEIR приведены в таблице ниже. Оценки представляют собой nDCG@10 (нормализованный накопленный дисконтированный выигрыш по десяти лучшим найденным элементам).

Бенчмарк Без расширения 100 терминов 150 терминов 250 терминов
SciFact
(Задача проверки фактов)
72.74 73.39 74.16 74.33
TRECCOVID
(Задача медицинского поиска)
77.55 76.74 77.12 79.28
FiQA
(Поиск финансовых опционов)
47.34 47.76 46.03 47.34
NFCorpus
(Поиск медицинской информации)
36.46 40.62 39.63 39.20
Touche2020
(Задача поиска аргументов)
26.24 26.91 27.15 27.54

Как видно, расширение запросов в большинстве случаев привело к улучшению поиска.

Чтобы проверить надежность этого подхода, мы повторили те же тесты с all-MiniLM-L6-v2, гораздо меньшей моделью, которая создает векторы вложений меньшего размера.

sentence-transformers/all-MiniLM-L6-v2 · Hugging Face
We're on a journey to advance and democratize artificial intelligence through open source and open science.

Результаты представлены в таблице ниже:

Benchmark No Expansion 100 terms 150 terms 250 terms
SciFact
(Fact Checking Task)
64.51 68.72 66.27 68.50
TRECCOVID
(Medical Retrieval Task)
47.25 67.90 70.18 69.60
FiQA
(Financial Option Retrieval)
36.87 33.96 32.60 31.84
NFCorpus
(Medical Information Retrieval)
31.59 33.76 33.76 33.35
Touche2020
(Argument Retrieval Task)
16.90 25.31 23.52 23.23

Здесь мы видим еще большее улучшение показателей поиска. В целом, меньшая модель получила больше пользы от расширения запросов. Среднее улучшение по всем задачам представлено в таблице ниже:

Model 100 terms 150 terms 250 terms
jina-embeddings-v3 +1.02 +0.75 +1.48
all-MiniLM-L6-v2 +6.51 +5.84 +5.88

Большая разница в чистом улучшении между двумя моделями, вероятно, связана с тем, что all-MiniLM-L6-v2 начинала с более низкого уровня производительности. Векторы запросов, создаваемые jina-embeddings-v3 в асимметричном режиме поиска, лучше способны улавливать ключевые семантические связи, и, следовательно, расширению запроса остается меньше пространства для добавления информации. Но этот результат показывает, насколько расширение запроса может улучшить производительность более компактных моделей, которые в некоторых случаях могут быть предпочтительнее больших моделей.

Тем не менее, расширение запроса принесло значимое улучшение поиска даже для высокопроизводительных моделей, таких как jina-embeddings-v3, хотя этот результат не идеально согласуется по всем задачам и условиям.

Для jina-embeddings-v3 добавление более 100 терминов к запросу было контрпродуктивным для тестов FiQA и NFCorpus. Мы не можем сказать, что больше терминов всегда лучше, но результаты по другим тестам показывают, что больше терминов как минимум иногда лучше.

Для all-MiniLM-L6-v2 добавление более 150 терминов всегда было контрпродуктивным, а в трех тестах добавление более 100 не улучшало показатели. В одном тесте (FiQA) добавление даже 100 терминов привело к значительно худшим результатам. Мы полагаем, это связано с тем, что jina-embeddings-v3 лучше справляется с захватом семантической информации в длинных текстах запросов.

Обе модели показали меньшую реакцию на расширение запросов в тестах FiQA и NFCorpus.

tagИспользование специфичных для задачи промптов

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

Мы взяли два теста — SciFact и FiQA — и создали более специфичные для предметной области промпты, как показано ниже:

Please provide additional search keywords and phrases for 
each of the key aspects of the following queries that make
it easier to find the relevant documents scientific document 
that supports or rejects the scientific fact in the query 
field (about {size} words per query):
{query}
Please respond in the following JSON schema:
Expansion = {"qid": str, "additional_info": str}
Return: list [Expansion]

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

Benchmark Model No Expansion 100
terms
150
terms
250
terms
SciFact jina-embeddings-v3 72.74 75.85 (+2.46) 75.07 (+0.91) 75.13 (+0.80)
SciFact all-MiniLM-L6-v2 64.51 69.12 (+0.40) 68.10 (+1.83) 67.83 (-0.67)
FiQA jina-embeddings-v3 47.34 47.77 (+0.01) 48.20 (+1.99) 47.75 (+0.41)
FiQA all-MiniLM-L6-v2 36.87 34.71 (+0.75) 34.68 (+2.08) 34.50 (+2.66)

Показатели улучшились во всех условиях, кроме добавления 250 терминов к запросам SciFact с all-MiniLM-L6-v2. Более того, этого улучшения было недостаточно, чтобы all-MiniLM-L6-v2 превзошла свой собственный базовый уровень на FiQA.

Для jina-embeddings-v3 мы видим, что лучшие результаты были получены при добавлении 100 или 150 терминов. Добавление 250 терминов было контрпродуктивным. Это подтверждает нашу интуицию о том, что можно добавить слишком много терминов в запрос, особенно если их значение начинает отклоняться от цели.

tagКлючевые аспекты расширения запросов

Расширение запросов явно может принести выгоду для поиска на основе эмбеддингов, но имеет некоторые оговорки:

tagЗатраты

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

tagИнжиниринг промптов

Разработка хороших шаблонов промптов — это эмпирическое и экспериментальное искусство. Мы не утверждаем, что те, которые мы использовали в этой работе, являются оптимальными или переносимыми на другие LLM. Наши эксперименты со специфичными для задач промптами показывают, что изменение промптов может иметь очень значительное влияние на качество результата. Результаты также значительно различаются между доменами.

Эти неопределенности увеличивают стоимость разработки и подрывают поддерживаемость. Любое изменение в системе — смена LLM, моделей эмбеддингов или информационного домена — означает необходимость перепроверки и возможно переработки всего процесса.

tagАльтернативы

Мы видим здесь, что расширение запросов добавило наибольшее улучшение модели эмбеддингов с самой низкой начальной производительностью. Расширение запросов, по крайней мере в этом эксперименте, не смогло закрыть разрыв в производительности между all-MiniLM-L6-v2 и jina-embeddings-v3, в то время как jina-embeddings-v3 увидела более скромные улучшения от расширения запросов.

В этих обстоятельствах пользователь all-MiniLM-L6-v2 получил бы лучшие результаты при меньших затратах, перейдя на jina-embeddings-v3, а не преследуя расширение запросов.

tagБудущие направления

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

  • Тестирование ценности терминологического улучшения при генерации эмбеддингов документов.
  • Изучение возможностей улучшения запросов в других методах AI-поиска, таких как переранжирование.
  • Сравнение расширения запросов на основе LLM с более старыми и вычислительно менее затратными источниками терминов, например, тезаурусом.
  • Обучение языковых моделей специально для лучшего расширения запросов и предоставление им более специфичного для домена обучения.
  • Ограничение количества добавляемых терминов. 100 может быть слишком много для начала.
  • Поиск способов идентификации полезных и бесполезных терминов расширения. Любое фиксированное число, которое мы накладываем на расширение запроса, не будет идеально подходить, и если бы мы могли динамически оценивать предлагаемые термины и сохранять только хорошие, результат, вероятно, привел бы к повышению производительности.

Это очень предварительное исследование, и мы оптимистично настроены на то, что такие методы принесут дальнейшие улучшения в базовые продукты поиска Jina AI.

Категории:
Технический блог
rss_feed
Офисы
location_on
Саннивейл, Калифорния
710 Lakeway Dr, Ste 200, Саннивейл, Калифорния 94085, США
location_on
Берлин, Германия (штаб-квартира)
Prinzessinnenstraße 19-20, 10969 Берлин, Германия
location_on
Пекин, Китай
Уровень 5, здание 6, ул. Хайдянь Вест, д. 48, Пекин, Китай
location_on
Шэньчжэнь, Китай
402, этаж 4, здание Fu'an Technology, Шэньчжэнь, Китай
Поиск Фонда
Читатель
Вложения
Реранкер
Глубокий поиск
Классификатор
Сегментатор
API-документация
Получить API-ключ Jina
Ограничение скорости
Статус API
Компания
О нас
Связаться с отделом продаж
отдел новостей
Стажерская программа
Присоединяйтесь к нам
open_in_new
Скачать логотип
open_in_new
Условия
Безопасность
Условия использования
Конфиденциальность
Управление файлами cookie
email
Jina AI © 2020-2025.