RAG — это «поиск + ответ». Документы заранее режут на фрагменты, и для каждого считают вектор-«смысл» (эмбеддинг). На вопрос система находит самые близкие по смыслу фрагменты и подсовывает их LLM: «ответь по этому тексту». Мы проверили, какие модели лучше ищут по-русски и насколько хорошо Qwen3.5-4B отвечает по найденному.
Как это выглядит
Кто больше записал на свой счет мешков в команде в этом сезоне?
правильный ответ: Кейван Шорт
Сколько перехватов приписывают защите Пэнтерс в 2015 году?
правильный ответ: 24
Сколько очков уступила защита Пэнтерс?
правильный ответ: 308
Сколько лет было Пейтону Мэннингу, когда он играл в Суперкубке 50?
правильный ответ: 39
Без документов модель честно гадает (или нечестно — «12 перехватов» вместо 24). С документами отвечает точно. Слабое место видно в последнем примере: возраст надо вычислить из даты рождения, а модель предпочитает сказать «в тексте нет информации».
Поиск почти ничего не теряет: по трём найденным абзацам модель отвечает верно в 83% случаев, по заведомо правильному — в 87%. Разница — это вопросы, где нужный абзац нашёлся, но не первым, и модель отвлеклась на соседние.
Какой поиск взять
bge-m3 ищет лучше всех на большом корпусе. EmbeddingGemma-300M отстаёт на 4 пункта, но вдвое быстрее индексирует. На маленьком XQuAD все модели почти одинаковые: найти нужный абзац среди 240 легко.
Сколько это займёт
Сам поиск мгновенный: 50–120 мс на запрос. Время уходит на индексацию — каждый фрагмент нужно один раз прогнать через модель.
На практике
10 тысяч страниц документов — это ночь работы bge-m3 (~2.5 часа) или пара часов EmbeddingGemma-300M. Делается один раз, дальше дописываются только новые документы.
Qwen3-Embedding здесь не годится
На бумаге Qwen3-Embedding-4B лучший, но на этом iGPU он индексирует 0.4 фрагмента в секунду. 50 тысяч фрагментов — это полтора дня. Большой корпус MIRACL он за 3 часа не осилил.
А реранкер?
Реранкер — вторая модель, которая внимательно перечитывает найденные фрагменты попарно с вопросом и пересортировывает их точнее.
bge-reranker-v2-m3 действительно чаще ставит нужное первым: nDCG@10 88.1 вместо 84.3. Но цена кусается — 8.6 секунды на каждый вопрос, больше, чем сам ответ LLM. А для RAG по трём фрагментам выигрыш почти незаметен: нужный абзац и так попадает в топ-3 в 99% случаев. Qwen3-Reranker-0.6B не помог вовсе и работает ещё медленнее.
Вывод
Для домашнего RAG реранкер не нужен. Он имеет смысл, если важно, чтобы самый правильный документ оказался именно первым в выдаче, например в поиске для человека, а не для LLM. Тогда лучше пересортировывать топ-10, а не топ-20: так вдвое быстрее.
Ограничения
- Строгие метрики занижают результат. Стандартная метрика SQuAD считает «308 очков» неправильным ответом на «308», а «Мэннинга» — неправильным на «Мэннинг». Поэтому мы считаем «верно» с точностью до окончаний и единиц.
- Корпус MIRACL урезан до 31.7 тысяч фрагментов из 219 тысяч. На полном корпусе цифры будут ниже, порядок моделей — скорее всего, тот же.