Alex上次聊了分块今天聊检索。你们 RAG 系统检索这块怎么做的小七向量检索用的 MilvusEmbedding 模型是 bge-large-zh-v1.5。Alex就纯向量检索小七对。Alex为什么不加 BM25小七愣了一下。小七BM25……就是传统的关键词检索我们觉得向量检索语义理解更好BM25 太老了。Alex太老了所以不用小七嗯……主要是觉得向量检索已经够用了。Alex我给你一个场景用户搜RFC 7231你们的系统会返回什么小七想了想。小七会返回和 HTTP 协议语义相关的文档……Alex那篇明确写了RFC 7231的文档排第几小七沉默了几秒。小七不一定排第一。向量检索看的是语义空间的距离RFC 7231这个字符串本身不一定和它的 Embedding 最近。Alex对。这就是纯向量检索的第一个问题。知识锚点 · 纯向量检索的三个致命问题精确匹配差专有名词、编号、代码片段如RFC 7231、GPT-4o、error_code: 4029在语义空间里找不到自己。专业术语召回低领域术语如医学、法律、金融的 Embedding 可能和通用语义偏差大。新词/生僻词丢失模型训练时没见过的词Embedding 质量差检索直接失效。BM25 不是老技术是互补技术它做的是字面匹配向量检索做的是语义匹配两者覆盖的是不同的失败场景。第二幕BM25 怎么工作Alex 没有停继续往下推。AlexBM25 的原理说一下。小七BM25 是基于词频的检索算法一个词在文档里出现越多、在整个语料库里越稀有得分越高。比 TF-IDF 多了文档长度归一化。Alex公式能写出来吗小七大概是……其中 是词在文档里的词频是文档长度是平均文档长度和是超参数通常。Alex和 分别控制什么小七控制词频饱和度—— 越大词频对得分的影响越大但会有边际递减 控制文档长度归一化的程度 完全归一化 不归一化。Alex好。那 BM25 有什么做不到的小七同义词。用户搜汽车文档里写的是轿车BM25 完全匹配不上。向量检索能处理这种语义等价的情况。Alex所以两个要一起用。小七对混合检索。知识锚点 · BM25 vs 向量检索维度BM25向量检索原理词频 逆文档频率语义空间距离擅长精确匹配、专有名词、编号同义词、语义理解、模糊查询失败场景同义词、语义等价表达精确字符串、新词、生僻词计算成本低倒排索引高ANN 近似最近邻结论两者是互补关系不是替代关系。生产环境混合检索是标配。第三幕两路结果怎么合并Alex 拿起笔在纸上画了两列。Alex向量检索返回一个排序列表BM25 返回一个排序列表怎么合成一个最终结果小七加权融合把两路的分数乘以权重加起来按总分排序。Alex权重怎么定小七嗯……可以调参或者根据查询类型动态调整——精确查询多给 BM25 权重语义查询多给向量权重。Alex加权融合有什么问题小七想了想。小七两路的分数量纲不一样。向量检索返回的是余弦相似度范围 0 到 1BM25 返回的是一个没有上界的分数直接加权不合理。Alex对。所以生产上更常用什么小七RRF——Reciprocal Rank Fusion倒数排名融合。不看分数只看排名。Alex公式小七每个文档的 RRF 得分是它在各路结果里排名的倒数之和def rrf_merge(vector_results, bm25_results, k60): scores {} for rank, doc in enumerate(vector_results): scores[doc.id] scores.get(doc.id, 0) 1 / (k rank 1) for rank, doc in enumerate(bm25_results): scores[doc.id] scores.get(doc.id, 0) 1 / (k rank 1) return sorted(scores.items(), keylambda x: x[1], reverseTrue)通常设 60是个平滑参数防止排名第一的文档得分过高。AlexRRF 的优势是什么小七不需要对两路分数做归一化也不需要学习权重鲁棒性更好。两路结果都排前面的文档最终得分最高。Alex效果怎么样小七混合检索相比纯向量检索召回准确率能提升 1%-9%具体看场景。Alex你们上了混合检索吗小七没有……我们还是纯向量。Alex为什么小七当时评估觉得够用没有专门做过对比实验。Alex你们怎么判断够用的小七停顿了一下意识到这个问题没有好答案。小七主要是用户反馈没有系统的评估指标。Alex嗯。知识锚点 · 两路结果合并加权 vs RRF方案原理优势劣势加权融合分数 × 权重求和直觉简单量纲不统一权重难调RRF排名倒数求和无需归一化无需学习权重鲁棒忽略分数差距信息RRF 参数 k60平滑参数防止第一名得分过高。实践中 k 在 20-100 之间效果差异不大60 是经验默认值。混合检索效果相比纯向量检索召回准确率提升 1%-9%arXiv:2410.20381。提升幅度取决于知识库中精确匹配需求的比例。第四幕Rerank值得加吗Alex 看了看时间还有十分钟。Alex混合检索之后你会加 Rerank 吗小七会。混合检索拿到 Top-20 候选再用 Cross-Encoder 精排取 Top-5 给 LLM。Alex为什么检索阶段不直接用 Cross-Encoder小七Cross-Encoder 要把 query 和每个文档拼在一起过一遍模型计算量是 O(n)百万级文档根本跑不完。Bi-Encoder 是 query 和文档分别编码可以提前把文档向量存好检索时只算 query 的向量再做 ANN 近似最近邻速度快几个数量级。AlexCross-Encoder 为什么精度更高小七Bi-Encoder 是独立编码query 和文档之间没有 token 级别的交互。Cross-Encoder 把两者拼在一起模型能看到 query 里每个词和文档里每个词的关系精度更高但慢。AlexRerank 的效果数据有印象吗小七加了 Rerank 之后Top-5 召回率能从 71% 提升到 89%Top-3 准确率从 65% 提升到 84%——这是某个测试场景下的数据不同场景会有差异。Alex什么情况下可以不加 Rerank小七检索数量很少比如只检索 3-5 个文档而且索引质量已经很高的情况下Rerank 的收益有限可以省掉这一步降低延迟。AlexRerank 的延迟大概多少小七取决于候选集大小和模型大小。Top-20 候选用 bge-reranker-v2-m3大概 50-200ms具体要看部署环境。Alex好今天就到这里。知识锚点 · 双阶段检索架构查询 ↓[粗筛] 向量检索 BM25 → Top-20~50 候选毫秒级 ↓[精排] Cross-Encoder Rerank → Top-3~550-200ms ↓LLM 生成阶段模型类型速度精度处理量粗筛Bi-Encoder快近似百万级精排Cross-Encoder慢约慢100倍精确Top-20~50常用 Rerank 模型•bge-reranker-v2-m3中文效果好开源可本地部署•bce-reranker-base_v1中文场景轻量级• Cohere RerankAPI 调用英文效果好加了 Rerank 的效果Top-5 召回率 71% → 89%Top-3 准确率 65% → 84%特定测试场景。面试结果走出会议室小七看了眼手机——面试整整一小时。第二天HR 发来消息“两轮技术面都通过了下周 Offer 沟通。”小七在备忘录里写下一行字回去把 BM25 加上做个 A/B 测试。小七的复盘“今天最大的教训够用’不是一个答案‘我们没有系统评估过’才是真相。Alex 问’你们怎么判断够用的’我答不上来——不是因为不懂技术是因为我们从来没有认真量化过检索质量。下次面试这个坑我不会再踩。”学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
AI Agent 面试官又来拷打我了:“为什么不用纯向量检索“,我愣了三秒
Alex上次聊了分块今天聊检索。你们 RAG 系统检索这块怎么做的小七向量检索用的 MilvusEmbedding 模型是 bge-large-zh-v1.5。Alex就纯向量检索小七对。Alex为什么不加 BM25小七愣了一下。小七BM25……就是传统的关键词检索我们觉得向量检索语义理解更好BM25 太老了。Alex太老了所以不用小七嗯……主要是觉得向量检索已经够用了。Alex我给你一个场景用户搜RFC 7231你们的系统会返回什么小七想了想。小七会返回和 HTTP 协议语义相关的文档……Alex那篇明确写了RFC 7231的文档排第几小七沉默了几秒。小七不一定排第一。向量检索看的是语义空间的距离RFC 7231这个字符串本身不一定和它的 Embedding 最近。Alex对。这就是纯向量检索的第一个问题。知识锚点 · 纯向量检索的三个致命问题精确匹配差专有名词、编号、代码片段如RFC 7231、GPT-4o、error_code: 4029在语义空间里找不到自己。专业术语召回低领域术语如医学、法律、金融的 Embedding 可能和通用语义偏差大。新词/生僻词丢失模型训练时没见过的词Embedding 质量差检索直接失效。BM25 不是老技术是互补技术它做的是字面匹配向量检索做的是语义匹配两者覆盖的是不同的失败场景。第二幕BM25 怎么工作Alex 没有停继续往下推。AlexBM25 的原理说一下。小七BM25 是基于词频的检索算法一个词在文档里出现越多、在整个语料库里越稀有得分越高。比 TF-IDF 多了文档长度归一化。Alex公式能写出来吗小七大概是……其中 是词在文档里的词频是文档长度是平均文档长度和是超参数通常。Alex和 分别控制什么小七控制词频饱和度—— 越大词频对得分的影响越大但会有边际递减 控制文档长度归一化的程度 完全归一化 不归一化。Alex好。那 BM25 有什么做不到的小七同义词。用户搜汽车文档里写的是轿车BM25 完全匹配不上。向量检索能处理这种语义等价的情况。Alex所以两个要一起用。小七对混合检索。知识锚点 · BM25 vs 向量检索维度BM25向量检索原理词频 逆文档频率语义空间距离擅长精确匹配、专有名词、编号同义词、语义理解、模糊查询失败场景同义词、语义等价表达精确字符串、新词、生僻词计算成本低倒排索引高ANN 近似最近邻结论两者是互补关系不是替代关系。生产环境混合检索是标配。第三幕两路结果怎么合并Alex 拿起笔在纸上画了两列。Alex向量检索返回一个排序列表BM25 返回一个排序列表怎么合成一个最终结果小七加权融合把两路的分数乘以权重加起来按总分排序。Alex权重怎么定小七嗯……可以调参或者根据查询类型动态调整——精确查询多给 BM25 权重语义查询多给向量权重。Alex加权融合有什么问题小七想了想。小七两路的分数量纲不一样。向量检索返回的是余弦相似度范围 0 到 1BM25 返回的是一个没有上界的分数直接加权不合理。Alex对。所以生产上更常用什么小七RRF——Reciprocal Rank Fusion倒数排名融合。不看分数只看排名。Alex公式小七每个文档的 RRF 得分是它在各路结果里排名的倒数之和def rrf_merge(vector_results, bm25_results, k60): scores {} for rank, doc in enumerate(vector_results): scores[doc.id] scores.get(doc.id, 0) 1 / (k rank 1) for rank, doc in enumerate(bm25_results): scores[doc.id] scores.get(doc.id, 0) 1 / (k rank 1) return sorted(scores.items(), keylambda x: x[1], reverseTrue)通常设 60是个平滑参数防止排名第一的文档得分过高。AlexRRF 的优势是什么小七不需要对两路分数做归一化也不需要学习权重鲁棒性更好。两路结果都排前面的文档最终得分最高。Alex效果怎么样小七混合检索相比纯向量检索召回准确率能提升 1%-9%具体看场景。Alex你们上了混合检索吗小七没有……我们还是纯向量。Alex为什么小七当时评估觉得够用没有专门做过对比实验。Alex你们怎么判断够用的小七停顿了一下意识到这个问题没有好答案。小七主要是用户反馈没有系统的评估指标。Alex嗯。知识锚点 · 两路结果合并加权 vs RRF方案原理优势劣势加权融合分数 × 权重求和直觉简单量纲不统一权重难调RRF排名倒数求和无需归一化无需学习权重鲁棒忽略分数差距信息RRF 参数 k60平滑参数防止第一名得分过高。实践中 k 在 20-100 之间效果差异不大60 是经验默认值。混合检索效果相比纯向量检索召回准确率提升 1%-9%arXiv:2410.20381。提升幅度取决于知识库中精确匹配需求的比例。第四幕Rerank值得加吗Alex 看了看时间还有十分钟。Alex混合检索之后你会加 Rerank 吗小七会。混合检索拿到 Top-20 候选再用 Cross-Encoder 精排取 Top-5 给 LLM。Alex为什么检索阶段不直接用 Cross-Encoder小七Cross-Encoder 要把 query 和每个文档拼在一起过一遍模型计算量是 O(n)百万级文档根本跑不完。Bi-Encoder 是 query 和文档分别编码可以提前把文档向量存好检索时只算 query 的向量再做 ANN 近似最近邻速度快几个数量级。AlexCross-Encoder 为什么精度更高小七Bi-Encoder 是独立编码query 和文档之间没有 token 级别的交互。Cross-Encoder 把两者拼在一起模型能看到 query 里每个词和文档里每个词的关系精度更高但慢。AlexRerank 的效果数据有印象吗小七加了 Rerank 之后Top-5 召回率能从 71% 提升到 89%Top-3 准确率从 65% 提升到 84%——这是某个测试场景下的数据不同场景会有差异。Alex什么情况下可以不加 Rerank小七检索数量很少比如只检索 3-5 个文档而且索引质量已经很高的情况下Rerank 的收益有限可以省掉这一步降低延迟。AlexRerank 的延迟大概多少小七取决于候选集大小和模型大小。Top-20 候选用 bge-reranker-v2-m3大概 50-200ms具体要看部署环境。Alex好今天就到这里。知识锚点 · 双阶段检索架构查询 ↓[粗筛] 向量检索 BM25 → Top-20~50 候选毫秒级 ↓[精排] Cross-Encoder Rerank → Top-3~550-200ms ↓LLM 生成阶段模型类型速度精度处理量粗筛Bi-Encoder快近似百万级精排Cross-Encoder慢约慢100倍精确Top-20~50常用 Rerank 模型•bge-reranker-v2-m3中文效果好开源可本地部署•bce-reranker-base_v1中文场景轻量级• Cohere RerankAPI 调用英文效果好加了 Rerank 的效果Top-5 召回率 71% → 89%Top-3 准确率 65% → 84%特定测试场景。面试结果走出会议室小七看了眼手机——面试整整一小时。第二天HR 发来消息“两轮技术面都通过了下周 Offer 沟通。”小七在备忘录里写下一行字回去把 BM25 加上做个 A/B 测试。小七的复盘“今天最大的教训够用’不是一个答案‘我们没有系统评估过’才是真相。Alex 问’你们怎么判断够用的’我答不上来——不是因为不懂技术是因为我们从来没有认真量化过检索质量。下次面试这个坑我不会再踩。”学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】