MarkTechPost→ оригинал

BM25 مقابل RAG: لماذا يعطي البحث بالكلمات المفتاحية والبحث الدلالي إجابات مختلفة

لا يزال BM25 يشكّل أساس البحث التقليدي، لكنه يعمل فقط مع الكلمات المطابقة تمامًا في الاستعلام. أما RAG مع embeddings المتجهية فيخدم غرضًا مختلفًا: يعثر على المق

◐ Слушать статью

BM25 остаётся базовым механизмом поисковой выдачи в Elasticsearch и Lucene, но у него есть жёсткое ограничение: он понимает слова, а не смысл. На этом фоне RAG с векторными эмбеддингами решает другую задачу — находит релевантные фрагменты даже тогда, когда в запросе и документе нет точного совпадения формулировок.

Как работает BM25 BM25 ранжирует документы по трём главным сигналам:

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

Отдельно важен механизм насыщения term frequency. Если слово встретилось пять раз, это обычно заметно повышает релевантность; если пятьдесят — прирост уже почти не меняет картину. Параметр k1 регулирует, как быстро срабатывает это насыщение, а параметр b — насколько сильно наказывать длинные документы.

Слой IDF, то есть обратной частоты документа, усиливает редкие слова и ослабляет общие. Но фундаментальный минус у BM25 не исчезает ни при какой настройке: алгоритм видит текст как набор токенов и не различает контекст, порядок слов и смысл.

Где выигрывает RAG Векторный поиск, который обычно лежит внутри RAG-пайплайна, работает иначе.

Система превращает и документы, и сам запрос в плотные числовые векторы через embedding-модель, а затем сравнивает их по cosine similarity. В примере из статьи для этого используется модель OpenAI text-embedding-3-small с размерностью 1536. За счёт этого запрос про «поиск похожего контента без точного совпадения слов» может вывести релевантный текст, даже если нужные слова в документе вообще не повторяются.

«Ни один из подходов не лучше во всём: они ошибаются в противоположных направлениях».

Именно здесь появляется практический компромисс. BM25 можно поднять локально: токенизация, индекс, арифметика — и поиск готов. Векторный ретривер требует API-вызовов на этапе индексации и на этапе запроса, а ещё хранения самих эмбеддингов. Для маленького набора это мелочь, но на сотнях тысяч или миллионах чанков такая схема превращается в инфраструктурное и финансовое решение. Зато она лучше переживает синонимы, перефразирования и запросы, в которых пользователь формулирует смысл, а не точные ключевые слова.

Практика и компромиссы В статье сравнение построено на простом

Python-демо с 12 текстовыми чанками про BM25, TF-IDF, RAG, трансформеры, Django, PostgreSQL и другие темы. Для BM25 используется библиотека rank_bm25, а для эмбеддингов — OpenAI API и обычный расчёт cosine similarity. Дальше один и тот же запрос гоняют через оба ретривера и смотрят, какие фрагменты попадают в топ. Это наглядно показывает: системы отвечают на один вопрос, но приходят к результату через совершенно разные сигналы.

  • BM25 ищет точные слова из запроса и легко объясняет, почему документ оказался выше.
  • Векторный поиск ищет смысл и лучше подхватывает синонимы и перефразировки.
  • BM25 не требует GPU, модели и внешних вызовов.
  • Эмбеддинги требуют отдельного индекса, вызовов модели и места для хранения векторов.
  • Гибридный поиск объединяет оба подхода и поэтому стал стандартом для продакшена. Вывод статьи довольно приземлённый: спорить, что «лучше», бессмысленно вне контекста задачи. Если нужен быстрый, дешёвый и прозрачный поиск по явным ключевым словам, BM25 по-прежнему очень силён. Если важнее семантическое совпадение и устойчивость к разным формулировкам, выигрывает dense retrieval. Поэтому в реальных RAG-системах всё чаще сначала комбинируют обе выдачи, а уже потом отдают кандидатов в LLM для ответа.

Что это значит

Для команд, которые строят поиск по базе знаний, FAQ, PDF-документам или внутренним вики, это хороший ориентир без лишней магии. BM25 не устарел, а RAG не отменяет классический поиск. Наоборот, самые надёжные системы сегодня собираются из обоих слоёв: один даёт точность по ключевым словам, второй — понимание смысла и перефразировок.

ЖХ
Hamidun News
AI‑новости без шума. Ежедневный редакторский отбор из 400+ источников. Продукт Жемала Хамидуна, Head of AI в Alpina Digital.
Загружаем комментарии…