Skip to main content

Гібридний пошук (Dense + Sparse Search)(Гібридний семантичний та ключовий пошук (BM25 + Dense))

Архітектура ретривелу в сучасних RAG-системах, що поєднує семантичний векторний пошук (Dense Embeddings) із класичним повнотекстовим індексуванням за ключовими словами (Sparse / BM25) через алгоритми злиття рангів (RRF).

1. Огляд концепції та системна проблема

На старті створення RAG-систем інженери часто покладаються виключно на векторні бази даних: текст розбивається на чанки, пропускається через модель ембеддінгів і записується в індекс HNSW.

У продакшені такий підхід неминуче зіштовхується з «векторною сліпотою»:

  1. Провал на точних ідентифікаторах: Коли інженер шукає статус коду ERR_CONNECTION_REFUSED, векторний пошук повертає загальні статті про мережу, але пропускає точний рядок у логах.
  2. Провал на рідкісних власних назвах: Нові назви фреймворків, унікальні прізвища чи специфічні константи проєкту не мають щільного представлення у вагах моделі ембеддінгів.
  3. Обмеженість класичного повнотекстового пошуку (BM25): Класичний пошук, навпаки, не здатний зрозуміти абстрактні концепції, синоніми та перефразування.

Гібридний пошук (Hybrid Search) синтезує найкраще з обох світів: він паралельно шукає документи за точними ключовими словами (Sparse/BM25) та за семантичним змістом (Dense/Vectors), після чого об'єднує результати в єдину збалансовану видачу.

2. Архітектурна таксономія та ментальна модель

Гібридна пошукова система складається з трьох ключових архітектурних блоків:

  • 1. Шар розрідженого пошуку (Sparse / Lexical Retrieval): Алгоритм BM25 або TF-IDF над інвертованим індексом. Рахує точну частоту входження термінів з урахуванням довжини документа. Гарантує знаходження точних збігів слів, артикулів, змінних і номерів помилок.
  • 2. Шар щільного пошуку (Dense / Semantic Retrieval): Векторний пошук за евклідовою або косинусною відстанню (HNSW/IVF). Відповідає за вилучення документів зі схожим змістом, навіть якщо в запиті та тексті немає жодного спільного слова.
  • 3. Шар злиття рангів (Fusion Layer):
    • Reciprocal Rank Fusion (RRF): не залежить від шкал балів, оперує суто позиціями (рангами) у кожному списку. Найбільш стабільний стандарт.
    • Linear Weighted Fusion (Альфа-злиття): нормалізація балів і зважене додавання: $\text{Score} = \alpha \cdot S_{\text{dense}} + (1 - \alpha) \cdot S_{\text{sparse}}$.
  • 4. Навчені розріджені моделі (Learned Sparse / SPLADE): Сучасний напрямок, що поєднує нейромережевий аналіз зі структурою інвертованого індексу, самостійно розширюючи запит важливими ключовими словами.

3. Технічний пайплайн та внутрішня механіка

Життєвий цикл гібридного запиту в пошуковому рушії:

  1. Dual Query Dispatch (Паралельне розсилка): Вхідний запит користувача одночасно транслюється у вектор (через embedding API) і в текстовий запит для повнотекстового парсера (FTS query).
  2. Concurrent Index Lookup (Паралельний пошук):
    • Гілка А: векторний рушій сканує HNSW-граф і повертає топ-50 кандидатів за косинусною подібністю.
    • Гілка Б: інвертований індекс знаходить топ-50 кандидатів за формулою BM25.
  3. Score Normalization & RRF Aggregation (Злиття): Списки кандидатів дедуплікуються за ID документа. Кожному кандидату нараховується інтегральний бал RRF за його позицію в обох видачах.
  4. Final Cutoff & Re-ranking (Фінальна вибірка): Топ-$K$ найвищих за рейтингом документів передаються на фінальний етап крос-енкодерного реранкінгу (Re-ranker) або одразу в контекст LLM.

4. Практичні інженерні сценарії в продакшені

01. Інтелектуальний пошук у кодових репозиторіях

Розробник пише: «де реалізовано кешування сесій redis».

  • BM25 миттєво знаходить файли, де згадується константа 'REDIS_SESSION_KEY'.
  • Dense пошук підтягує модуль авторизації, де описано стратегію інвалідації сесій без прямого слова «кешування».
  • RRF піднімає на перше місце файл auth/session-cache.ts, який присутній в обох видачах.

02. E-Commerce пошук із сумішшю характеристик і назв

Користувач шукає: «тихий бездротовий пилосос v15». BM25 знаходить точну модель Dyson V15, а Dense-пошук фільтрує модифікації за семантикою низького шуму, забезпечуючи ідеальну точність конверсії.

03. Медичні та фармацевтичні довідники

Пошук за симптомами («тяжкість у правому підребер'ї») у поєднанні з точним латинським найменуванням діючої речовини препарату або медичним кодом діагнозу за МКХ-10.

5. Підводні камені, типові помилки та безпека

  • Несумісність шкал сирих балів (Score Incommensurability): Найгрубша помилка — пряме додавання косинусної близькості (від 0 до 1) до балу BM25 (який може сягати 25 і більше). Це повністю нівелює векторну складову. Завжди використовуйте RRF або Min-Max нормалізацію.
  • Подвійне навантаження на інфраструктуру (Latency Overhead): Послідовне виконання спочатку BM25, а потім векторного пошуку подвоює затримку. Обидва запити повинні виконуватися суворо асинхронно через Promise.all() або паралельні потоки БД.
  • Перекіс ваги $\alpha$ у крайні значення: Фіксація ваги $\alpha = 0.9$ перетворює гібридний пошук на звичайний векторний, зводячи нанівець витрати на підтримку інвертованого індексу.
/ Часті запитанняSchema.org FAQPage

FAQ: Гібридний пошук (Dense + Sparse Search)

Векторні моделі проектують зміст у безперервний простір і чудово розуміють синоніми («машина» ≈ «автомобіль»). Проте вони практично «сліпі» до точних літерно-цифрових послідовностей: артикулів деталей, номерів помилок (наприклад, `0x80070005`), назв функцій коду (`getUserBySessionId`) чи хешів комітів Git, де потрібен 100% точний символьний збіг.
/ Внутрішня перелінковка
Всі терміни
Промптинг & RAG

Переранжування (Cross-Encoder Reranking)

Двоетапна методологія пошуку в RAG-системах: швидкий первинний відбір кандидатів (Bi-Encoder / BM25) із подальшим точним ранжуванням через повнозв'язну крос-енкодерну модель (Cross-Encoder / Cohere Rerank / BGE-Reranker).

Читати термін
Промптинг & RAG

Векторні бази даних (Vector DBs & ANN Search)

Спеціалізовані СУБД та розширення (Qdrant, pgvector, Milvus, Chroma, Turso), оптимізовані для зберігання мільйонів багатовимірних векторів та надшвидкого наближеного пошуку найближчих сусідів (Approximate Nearest Neighbors).

Читати термін
Промптинг & RAG

RAG (Retrieval-Augmented Generation)

Архітектурний патерн корпоративного AI, що динамічно збагачує контекстне вікно моделі релевантними верифікованими знаннями із зовнішніх сховищ (векторних баз, графів, повнотекстових індексів) перед генерацією фінальної відповіді.

Читати термін
Промптинг & RAG

Чанкінг документів (Chunking Strategies)

Методологія декомпозиції масивних документів і кодових баз на інформаційно самодостатні фрагменти (чанки) для генерації векторних ембеддінгів та точного пошуку в RAG-системах.

Читати термін