一、召回技术原理与实现


在前三篇中,我们完成了离线阶段的全部准备工作:文档被分块、向量化、存入数据库并建好索引。现在用户提了一个问题——接下来系统要在毫秒级完成两件事:召回(快速找到候选证据)和重排(精准筛选最佳答案)。

▲ 在线阶段三大核心技术:召回构建候选、重排精准筛选、生成组织答案

这就像医生看病的过程:先做初步检查和化验(召回),缩小可能的病因范围;再做精密检查(重排),确定最终诊断。初步检查要快且不漏,精密检查要准且深入

召回阶段的核心定位

▲ 召回阶段:多通道并行检索构建候选池,融合去重后送入重排

召回是在线检索的第一道漏斗,核心职责是构建候选池。它不追求排序最优,而是优先提高覆盖率——确保相关证据"不被漏掉"。

维度 召回阶段定义
核心目标 从百万文档中快速筛出Top-K候选(通常50~200个)
优化原则 宁可多召回,不可漏召回(高覆盖率 + 低时延)
核心指标 Recall@K(召回率)、召回耗时(毫秒级)
关键约束 如果关键证据没被召回,后续重排和LLM都无能为力

**关键认知:**召回决定系统下限。如果关键证据在召回阶段就被丢掉,后续的重排和生成都是无用功。

向量相似度检索原理

▲ 向量空间中的相似度检索:红点为查询,橙点为近邻候选

召回的底层机制是相似度计算。用户问题和所有文档块都被编码为高维向量,系统通过计算向量间的"距离"来判断相关性。常用的相似度计算方法有三种:

1. 余弦相似度(Cosine Similarity)—— 最常用

公式:sim(A,B) = A·B / (|A| × |B|)

取值范围:[-1, 1],值越大越相似

特点:只看方向,不受向量长度影响

适用:通用场景首选,绝大多数RAG系统默认使用

2. 点积相似度(Dot Product)

公式:sim(A,B) = A·B

特点:同时考虑方向和幅度

适用:向量已归一化的场景(归一化后等价于余弦相似度)

3. 欧氏距离(Euclidean Distance)

公式:dist(A,B) = √Σ(A_i - B_i)²

取值范围:[0, +∞),值越小越相似

适用:需要考虑绝对位置差异的几何场景

▲ 余弦、点积、欧氏距离三种度量方式的直观对比

工程要点:关键不是选哪个"最强",而是保证Embedding训练、索引构建、线上检索三个环节使用同一种距离度量。不一致会导致离线评估结果无法复现到线上。

召回流程详解

▲ 从用户提问到候选池的完整召回流程

一次完整的召回过程是这样的:

用户查询 “Python异步编程教程”

Embedding模型将查询向量化 → [0.82, 0.61, 0.23, …]

向量数据库通过ANN索引快速检索(第三篇讲过的HNSW/IVF)

返回Top-K候选文档(K=100)

候选池送入重排阶段做精细排序

注意:召回阶段产出的是候选集合,而非最终答案。它的价值在于把搜索范围从百万级缩小到百级,同时保证相关文档不被遗漏。

Top-K策略:不是越大越好

K值是召回阶段最重要的参数。K太小会漏掉关键证据,K太大则把计算压力全部推给重排。这就像网鱼——网眼太大,鱼会漏掉;网太密,拉不动。

K值 召回时间 召回率 重排时间 总时间 端到端准确率
10 5ms 60% 2ms 7ms 75%
100 10ms 85% 15ms 25ms 92%
1000 30ms 95% 120ms 150ms 95%

从K=100到K=1000,准确率只提升3%,但总时延从25ms飙升到150ms——6倍的代价换来微弱的提升。通用场景的推荐起点是Top-100,性价比最高。

**一句话总结:**K=100是大多数RAG系统的甜点值。速度优先选K=50,精度优先选K=500。

多路召回:不要把鸡蛋放在一个篮子里

▲ 多路召回的收益曲线:覆盖率上升、漏召下降、端到端效果更稳定

单一的向量召回有一个明显弱点:它擅长语义理解(“如何编写异步代码"≈"async编程教程”),但对精确关键词匹配很弱(比如搜索"OpenAI API v2.0"时,向量检索可能返回"大语言模型接口调用"这样语义相近但不精确的结果)。

生产级RAG的解决方案是多路召回——从不同维度同时检索,再融合结果。就像查找一本书,你同时查"分类目录"(向量)和"关键词索引"(全文),两个途径互相补充。

召回通道 核心优势 明显短板 推荐召回数
向量召回(Semantic) 语义理解强,泛化能力好 精确匹配弱(ID、代码、专有名词) Top-100
BM25全文召回(Keyword) 关键词命中精准 语义理解弱(不理解同义词改写) Top-50
图召回(Graph) 捕捉实体关系,支持多跳推理 构建成本高,覆盖范围窄 Top-30
多路召回架构

▲ 并行召回 + RRF融合:总时延由最慢通道决定,召回覆盖由多路互补决定

RRF融合算法:让不同通道"说同一种语言"

多路召回面临一个现实问题:向量召回的分数是01的相似度,BM25的分数是0几十的TF-IDF值,两者尺度完全不同,无法直接相加。**RRF(Reciprocal Rank Fusion)**的巧妙之处在于——它不看分数,只看排名。

RRF(doc) = Σ 1 / (k + rank_i(doc))

k = 60(常用默认值)

rank_i = 文档在第 i 路召回中的排名位置

示例:文档A在向量召回排第3,在BM25召回排第5

RRF(A) = 1/(60+3) + 1/(60+5) = 0.0159 + 0.0154 = 0.0313

RRF的核心优点:不依赖各通道的分数尺度,只要排名靠前就能获得高融合分,天然适合异构召回通道的融合。

召回策略 召回率@100 准确率 召回耗时
仅向量召回 85% 88% 10ms
仅BM25召回 75% 82% 8ms
混合召回(RRF融合) 92% 94% 18ms

多路并行召回只增加了8ms时延(因为是并行执行,总时间取最慢通道),却将召回率从85%提升到92%——这7%的提升意味着更多关键证据被捕获,直接影响最终答案质量。

**一句话总结:**多路召回是生产级RAG的标配。向量负责语义理解,BM25负责精确匹配,RRF让两者无缝融合。

二、重排(Rerank)技术深度解析


▲ 重排阶段:从Top-100候选中精选Top-5送入LLM

召回阶段追求"快且全",结果中必然会混入一些"看起来相关但并非最佳"的文档。重排阶段的任务是对候选池做深度交互评分,把真正最相关的证据稳定排到前列。

为什么召回后还要重排?

看一个真实案例就明白了:

查询:“Python异步编程最佳实践”

候选A:“Python异步编程指南” → 向量相似度 0.85

候选B:“Python编程最佳实践” → 向量相似度 0.83

候选C:“JavaScript异步编程最佳实践” → 向量相似度 0.81

**问题:**三者分数非常接近!但候选A才是最相关的(同时包含"异步"和"Python")

向量召回可能把C排在B前面(因为C同时包含"异步"和"最佳实践")

这种细粒度的相关性判断,需要Query和文档进行Token级别的深度交互——不是只比两个向量的距离,而是让模型逐词理解"Python异步编程"这个查询跟每个候选文档到底有多匹配。

Bi-Encoder vs Cross-Encoder:两种完全不同的匹配方式

Bi-Encoder(双塔模型)—— 用于召回

▲ Bi-Encoder:Query/Doc独立编码,向量空间相似度匹配(召回)

Cross-Encoder(交叉编码器)—— 用于重排

▲ Cross-Encoder:Query与Doc联合编码,Token级深度交互(重排)

维度 Bi-Encoder(召回用) Cross-Encoder(重排用)
输入方式 Query与Doc独立编码 [Query, Doc]联合编码
交互粒度 向量级(粗粒度) Token级(细粒度)
处理能力 可全库检索(百万级) 只适合小候选池(百级)
核心职责 高召回率(不漏) 高排序精度(排准)

**反模式警告:**把Cross-Encoder直接用于全库检索。100万文档×Cross-Encoder = 数小时延迟,线上系统直接瘫痪。Cross-Encoder只能用在召回后的小候选池上。

主流重排模型选型

目前主流的重排模型可以分为两类:开源本地部署商业API。选择标准主要看语言需求、精度要求和部署方式。

BGE-reranker系列 —— 中文场景首选

**类型:**开源,智源研究院(BAAI)出品 | **上下文长度:**512 tokens

**核心优势:**中文效果优秀,开源免费,支持本地部署

**两个版本:**base(速度优先,精度★★★★☆)/ large(精度优先,精度★★★★★)

**适合谁:**中文RAG系统,有GPU资源的团队

Cohere Rerank —— 开箱即用的商业方案

**类型:**商业API | **上下文长度:**4096 tokens

**核心优势:**多语言效果顶级、无需自建GPU集群、一行代码接入

**主要限制:**成本较高、数据发送至第三方、定制性有限

**适合谁:**预算充足、追求最佳效果、多语言场景

jina-reranker系列 —— 长文档重排专家

**类型:**开源,支持多语言 | **上下文长度:**8192 tokens

**核心优势:**支持超长文本(是BGE的16倍),长文档场景效果好

**主要限制:**速度偏慢,模型体积较大

**适合谁:**法律、学术等文档偏长的场景

选型决策路径

你的场景是什么?

├─ 中文为主 → BGE-reranker-large(精度优先)

├─ 中文为主 + 速度敏感 → BGE-reranker-base

├─ 多语言 + 预算充足 → Cohere Rerank(最省心)

├─ 长文档(法律/学术) → jina-reranker-large

└─ 快速验证/原型 → Cohere Rerank(一行代码接入)

重排效果与成本分析

我们用一个实际案例来看重排带来的提升:

查询:“RAG技术的最新进展”

召回阶段排序(向量相似度):

第1名:Chunk 7 — “RAG技术综述”(0.85)

第2名:Chunk 2 — “2024年RAG最新应用案例”(0.83)

第3名:Chunk 4 — “RAG系统架构设计”(0.81)

重排后排序(Cross-Encoder深度评分):

第1名:Chunk 2 — “2024年RAG最新应用案例”(0.95)← 最相关!

第2名:Chunk 7 — “RAG技术综述”(0.88)

第3名:Chunk 4 — “RAG系统架构设计”(0.72)

重排准确地识别出用户真正想要的是"最新进展",把包含"2024年"的文档提到了第一名。这种细粒度的语义理解,正是Cross-Encoder的价值所在。

指标 不重排 使用重排
准确率 88% 95%(+7%)
幻觉问题 基准 减少30%
检索耗时 ~10ms ~160ms(+150ms)

重排增加了约150ms延迟,但带来了7%的准确率提升和30%的幻觉减少。对于绝大多数业务场景来说,这个权衡是值得的——160ms的总延迟对用户来说几乎无感知。

重排优化技巧

技巧一:两阶段重排(速度提升3倍)

召回:Top-100 候选文档

粗重排(base模型):Top-100 → Top-20(快速过滤)

精重排(large模型):Top-20 → Top-5(精确排序)

Top-5 送入 LLM 生成答案

这种"粗筛+精排"的策略,与单次large模型重排相比效果相当,但速度提升3倍。

技巧二:批量推理

将候选文档打包成batch(batch_size=1632)一次性送入GPU推理,而不是逐条处理。吞吐量提升510倍。

技巧三:热门查询缓存

对高频查询的重排结果做缓存,命中率通常可达30%~50%。命中缓存时直接返回,无需再跑重排模型。

**一句话总结:**重排是RAG系统从"能用"到"好用"的关键一步。生产环境建议必须加上重排。

总结


通过本文,我们深入了解了RAG系统在线检索的两大核心技术——召回与重排。

召回与重排的关键要点

召回决定下限 —— 宁可多召回,不可漏召回。多路召回是生产标配。

重排决定上限 —— Cross-Encoder深度交互,把最相关证据稳定排到Top-5。

指标必须分层 —— 召回看Recall@K,重排看MRR/NDCG,端到端看正确率和P95延迟。

推荐起步路径 —— 向量+BM25混合召回 → RRF融合 → Cross-Encoder重排 → LLM生成。

普通人如何抓住AI大模型的风口?

领取方式在文末

为什么要学习大模型?

目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。

目前,开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景,其中,应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过 30%。
在这里插入图片描述

随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:
在这里插入图片描述

人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!

最后

只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!

在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
在这里插入图片描述

大模型全套学习资料展示

自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。

图片

希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!

01 教学内容

在这里插入图片描述

  • 从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!

  • 大量真实项目案例: 带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!

02适学人群

应届毕业生‌: 无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌: 非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能突破瓶颈: 传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

image.png

vx扫描下方二维码即可
【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
在这里插入图片描述

本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!

03 入门到进阶学习路线图

大模型学习路线图,整体分为5个大的阶段:
图片

04 视频和书籍PDF合集

图片

从0到掌握主流大模型技术视频教程(涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向)

图片

新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路(不吹牛,真有用)
图片

05 行业报告+白皮书合集

收集70+报告与白皮书,了解行业最新动态!
图片

06 90+份面试题/经验

AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)图片
在这里插入图片描述

07 deepseek部署包+技巧大全

在这里插入图片描述

由于篇幅有限

只展示部分资料

并且还在持续更新中…

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
在这里插入图片描述

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐