很多RAG开发只单用向量召回,向量模型擅长语义模糊匹配,可遇到专业术语(k_1、b)设备编号(k_1、b)内部黑话时经常召回不到。BM25就是用来补齐这个短板的检索算法。
BM25是什么
全称 Best Match 25,可以理解为增强版TF-IDF。
TF-IDF只看词频和逆文档频率,忽略文档长度。BM25增加两大优化:
- 词频饱和:关键词重复多次,分数不会无限上涨
- 长度归一化:同等词频下,短文档更占优,避免长文档堆词刷分
核心作用:根据查询关键词,给文档打分并按相关性排序。
公式简单理解
score(D,Q)=∑i=1nIDF(qi)⋅f(qi,D)⋅(k1+1)f(qi,D)+k1⋅(1−b+b⋅∣D∣avgdl)
\\text{score}(D,Q) = \\sum_{i=1}^{n} \\text{IDF}(q_i) \\cdot \\frac{f(q_i,D) \\cdot (k_1+1)}{f(q_i,D) + k_1 \\cdot (1 – b + b \\cdot \\frac{|D|}{\\text{avgdl}})}
score(D,Q)=i=1∑nIDF(qi)⋅f(qi,D)+k1⋅(1−b+b⋅avgdl∣D∣)f(qi,D)⋅(k1+1)
- IDF:词越稀有,权重越高
- k1k_1k1(默认1.2):控制词频饱和
- bbb(默认0.75)(k_1、b)avgdl:文档长度修正
RAG工程3种用法
BM25抓精准关键词;向量召回负责语义同义拓展,两路合并,显著提升召回质量。
垂直领域向量模型识别缩写(k_1、b)小众名词容易跑偏,BM25保证核心关键词文档不漏。
先用BM25粗筛文本块,减少向量计算量,提速降成本。
落地避坑
总结
BM25和向量检索是互补关系,语义+关键词双检索,是RAG从Demo走向生产的关键,也是面试高频考点。
写在最后
想要系统学习大模型应用开发知识、或者想转行的朋友,欢迎了解购买主页《大模型入门精品课 +简历和面试指导》(对于小白和想转行小伙伴而已,如果没有简历和面试辅导是很难通过面试的),课程内容包括:
- 纯干货一个月学完(没有冗余的理论,项目都是大型企业生产项目,非教学demo)。
- 项目覆盖 RAG、智能体、Lora微调实战项目、VLLM私有化部署大模型、模型压缩(剪枝、量化、蒸馏)。
- 助力丰富个人项目技术栈和简历面试求职。课程地址:https://edu.csdn.net/course/detail/41422
网硕互联帮助中心





评论前必须登录!
注册