3,583 papers
arXiv:2512.08078 65 8 дек. 2025 г. FREE

Сравнение методов поиска в RAG-системах: как retrieval влияет на точность ответов

КЛЮЧЕВАЯ СУТЬ
Исследование показывает, что качество ответа LLM зависит не от "галлюцинаций", а от того, какие документы система нашла перед генерацией ответа. Команда из Ankura Consulting сравнила 5 методов поиска (retrieval) в Azure AI Search на 290 тысячах юридических документов: keyword (поиск по словам), vector (поиск по смыслу), hybrid (комбинация), semantic и hybrid-semantic (с переранжированием результатов).
Адаптировать под запрос

TL;DR

Исследование показывает, что качество ответа LLM зависит не от "галлюцинаций", а от того, какие документы система нашла перед генерацией ответа. Команда из Ankura Consulting сравнила 5 методов поиска (retrieval) в Azure AI Search на 290 тысячах юридических документов: keyword (поиск по словам), vector (поиск по смыслу), hybrid (комбинация), semantic и hybrid-semantic (с переранжированием результатов).

Главная находка: ни один метод не работает универсально. Keyword-поиск находит точные термины (номера дел, имена), но пропускает смысловые совпадения. Vector-поиск ловит концептуально близкое, но теряет редкие или специфичные слова. Semantic reranking (переупорядочивание результатов по смыслу) иногда поднимает наверх нерелевантный текст — LLM получает не те документы и даёт уверенный, но неверный ответ. Например, в эксперименте модель приписала позицию Джорджа Буша по визам H1-B его брату Джебу — retrieval система выдала речь не того Буша, а LLM не отличила источник.

Для точных терминов (case number, nickname) нужен keyword-поиск или кавычки в запросе. Для концептуальных вопросов ("как климатическая политика Джеба отличалась от Джорджа") работает vector или hybrid. Semantic reranking улучшает релевантность, но может поднять касательный текст, если в исходных результатах нет прямого ответа — это создаёт риск ошибочной атрибуции фактов.

📌

Схема исследования

Это не техника промптинга, а анализ инфраструктуры. Схема RAG-пайплайна:

ИНДЕКСАЦИЯ:
Документы → Чанкинг (2000 токенов, overlap 500) → Эмбеддинги → Индекс

ПОИСК (5 методов):
1. Keyword: точное совпадение слов
2. Keyword-Semantic: keyword + переранжирование по смыслу
3. Vector: поиск по смысловой близости эмбеддингов
4. Hybrid: keyword + vector вместе
5. Hybrid-Semantic: keyword + vector + переранжирование

ГЕНЕРАЦИЯ:
Топ-5 чанков из 50 найденных → LLM (GPT-4o mini) → Ответ

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

📌

Ключевые находки

1. Keyword vs Vector — разные слепые зоны:

При запросе "What is case no. TO 98-103033, 32?" keyword-методы нашли правильные email'ы, vector-метод провалился — эмбеддинг не кодирует специфичные алфавитно-цифровые строки как значимый признак.

При запросе "What were the projected volumes of orange production in Florida?" наоборот: vector нашёл конкретные прогнозы урожая, keyword не нашёл — точные слова из запроса отсутствовали в документах с цифрами.

2. Semantic reranking — улучшает И портит:

Запрос: "Was D&B Television doing business in West Palm Beach?"

Keyword и vector пропустили email, где написано "D&B conducts business in South Florida". Semantic reranking распознал связь "West Palm Beach" = "South Florida" и поднял этот email наверх — LLM дала правильный ответ.

НО на запросе "What were Jeb Bush's views on H-1B visa?" semantic reranking поднял фрагмент речи Джорджа Буша (президента), а LLM приписала эту позицию Джебу Бушу (губернатору) — система не различает источник внутри похожих по теме текстов.

3. Кавычки меняют поведение retrieval:

"Who is T-Squred?" — keyword и vector не нашли (это nickname).

"Who is 'T-Squred'?" — keyword в кавычках нашёл точное совпадение.

Semantic reranking помог в обоих случаях.

4. Уточнения в промпте снижают ошибки атрибуции:

После двух неудачных попыток исследователи добавили: "Please ensure that all responses reflect Jeb Bush's own views specifically, not those of other individuals or political figures, including President Bush."

Теперь semantic reranking не поднял речь Джорджа Буша — LLM получила другой набор чанков и не сделала ошибочную атрибуцию.

📌

Применимые принципы для обычного чата

Ты не управляешь retrieval напрямую в ChatGPT/Claude, но понимание логики помогает лучше формулировать запросы:

📌

1. Заключай уникальные термины в кавычки

Если ищешь точное имя, номер, название — используй кавычки.

Пример:

❌ Найди информацию про компанию ИП Рога и Копыта
✅ Найди информацию про компанию "ИП Рога и Копыта"

Кавычки сигнализируют системе: это точный термин, не ищи синонимы.

📌

2. Уточняй источник, если есть риск путаницы персон

В документах с похожими персонажами (два брата, два руководителя, компания и её филиал) — явно укажи кого НЕ путать.

Пример:

❌ Какую позицию Павел Дуров занимал по модерации контента?

✅ Какую позицию Павел Дуров (основатель Telegram) занимал 
по модерации контента? Не путай с позицией Николая Дурова 
или других участников команды.
📌

3. Переформулируй запрос, если концептуальный поиск не сработал

Если система не нашла смысловое совпадение — добавь ключевые слова, которые точно есть в документах.

Пример:

❌ Какие прогнозы по урожаю апельсинов?
(система может не найти, если в документах написано "производство цитрусовых")

✅ Какие прогнозы по урожаю апельсинов, производству цитрусовых, 
объёмам во Флориде?

Комбинируй концептуальные ("экономический эффект") и точные ("апельсины", "тонн") формулировки.

📌

Почему retrieval важнее "галлюцинаций"

LLM не "выдумывает" — она генерирует текст на основе того, что ей подали. Если retrieval выдал фрагмент речи Джорджа Буша на запрос про Джеба Буша, модель не знает что это разные люди — она видит текст про "позицию Буша по визам" и добросовестно отвечает.

Классическая ошибка: "Модель галлюцинирует!" Реальность: Retrieval подсунул не тот документ, модель честно его пересказала.

Три слабости retrieval:

  1. Keyword-поиск не понимает синонимы ("West Palm Beach" ≠ "South Florida")
  2. Vector-поиск теряет редкие термины (nickname, case number)
  3. Semantic reranking поднимает близкие по теме, но не по сути тексты (речь брата вместо речи губернатора)

Сильная сторона LLM: она отлично синтезирует текст из того, что получила. Если дать правильные документы — ответ будет точным.

Как методы используют это: - Hybrid (keyword + vector) даёт два шанса найти документ — и точным словом, и по смыслу - Уточнения в промпте ("не путай с President Bush") меняют запрос к retrieval — система ищет другие документы - Кавычки форсят точное совпадение — обходят слабость vector-поиска на специфичных терминах

⚠️

Ограничения

⚠️ Нет доступа к настройкам retrieval в готовых чатах: В ChatGPT, Claude, Gemini ты не выбираешь keyword/vector/hybrid. Система сама решает как искать по загруженным файлам или базе знаний. Принципы из исследования применимы только через формулировку промпта, не через настройку инфраструктуры.

⚠️ Semantic reranking — чёрный ящик: Ты не видишь какие документы система нашла и почему поднялся конкретный фрагмент. Если модель ошиблась в атрибуции — сложно понять была ли это ошибка retrieval или генерации.

⚠️ Работает на больших базах документов: Эффекты видны когда LLM выбирает из сотен-тысяч чанков. На 5-10 документах разницы почти нет — все методы найдут релевантное.

🔍

Как исследовали

Команда из Ankura Consulting взяла 290 тысяч email'ов Джеба Буша (публичный датасет, похожий на юридические кейсы). Разбили каждый документ на чанки по 2000 токенов с перекрытием 500 токенов — получилось 491 тысяча фрагментов. Закодировали эмбеддингами text-embedding-ada-002 (1536 размерность).

Для каждого из 9 промптов запустили 5 методов поиска: keyword, keyword-semantic, vector, hybrid, hybrid-semantic. Каждый метод возвращал топ-50 чанков, из них топ-5 отправляли в GPT-4o mini для генерации ответа (temperature=0 для детерминированности).

Сравнивали: какие чанки нашлись, что ответила модель, где ошиблась. Оценка качественная — вручную читали цитаты и проверяли правильность атрибуции.

Почему результаты получились такими: - Keyword провалился на концептуальных запросах потому что точные слова из промпта отсутствовали в релевантных документах — он ищет совпадения терминов, не смысла - Vector провалился на case number потому что эмбеддинг-модель не обучена кодировать специфичные ID как значимый признак — для неё "TO 98-103033" это шум - Semantic reranking ошибся с атрибуцией потому что переупорядочил результаты по смысловой близости к запросу "H1-B visa views" — речь Джорджа Буша про визы оказалась ближе по теме, чем другие тексты, хотя автор не тот

Что удивило: Semantic reranking одновременно улучшил точность (нашёл "South Florida" для "West Palm Beach") и создал новые ошибки (перепутал авторов). Это не баг — это trade-off метода: он жертвует точностью источника ради релевантности темы.

Инсайт для практики: Многие "галлюцинации" LLM — на самом деле ошибки retrieval, а не генерации. Если модель уверенно врёт — проверь не те ли документы она получила, прежде чем обвинять её в выдумывании.

🔗

Ресурсы

A Comparative Study of Retrieval Methods in Azure AI Search

Qiang Mao, Fusheng Wei, Han Qin, Jianping Zhang, Robert Neary, Nathaniel Huber-Fliflet, Charles Wang

Ankura Consulting Group, LLC (Washington, D.C., USA & London, UK)

Microsoft Learn: Develop a RAG solution – Information-Retrieval Phase


📖 Простыми словами

Сравнение методов поиска в RAG-системах: как retrieval влияет на точность ответов

arXiv: 2512.08078

Качество ответа нейронки — это не вопрос её «фантазии» или галлюцинаций, а банальная проблема мусора на входе. Если ты кормишь модель кривыми данными, на выходе получишь бред, и никакие промпты это не исправят. Суть в том, что LLM работает как высококлассный юрист, которому принесли папку с документами: если в папке лежит чепуха, вердикт будет таким же. Весь успех системы RAG (поиск данных перед ответом) держится на этапе retrieval — того, как именно алгоритм выцепляет нужные куски текста из огромной кучи цифрового хлама.

Это как пытаться найти иголку в стоге сена, используя разные инструменты. Keyword search — это когда ты ищешь иголку, выкрикивая слово «иголка» и надеясь, что она откликнется. Vector search — это когда ты ищешь что-то «острое и металлическое», понимая суть предмета, но рискуя притащить гвоздь. А Hybrid-Semantic — это когда ты сначала собрал всё подозрительное магнитом, а потом опытный эксперт вручную перебрал улов и выкинул лишнее. Формально все ищут одно и то же, но результат отличается драматически.

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

Хотя тест проводили на скучных юридических документах, принцип универсален для любого корпоративного поиска, базы знаний или умного ассистента. Неважно, ищешь ты пункт в контракте или инструкцию к кофемашине — если поисковый движок выдает модели не те куски текста, она начнет врать, чтобы заполнить пустоту. Переход на Hybrid-Semantic — это не просто «улучшение», это переход от случайного угадывания к предсказуемой работе системы.

Короче: если твой чат-бот тупит, не пытайся переписывать промпты — чини поиск. Исследование четко показывает, что Azure AI Search с включенным семантическим ранжированием выдает лучший результат, потому что LLM получает на вход чистый концентрат смысла, а не случайную выборку слов. SEO для документов внутри компании становится важнее, чем само обучение моделей. Либо ты настраиваешь качественный retrieval, либо продолжаешь читать уверенную чушь от своего ИИ.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с