第 10 章 · 大模型算法岗
RAG 与检索系统
从切分、Embedding、混合检索和 Rerank 走到生成、评测与系统化排障。
RAG 是什么,为什么不只靠模型参数?
30 秒口述版
RAG 在生成前检索外部证据并放入上下文,使知识可更新、可引用并覆盖私有数据。
原理与推导
它不能自动消除幻觉,效果取决于索引、检索、上下文组织和生成约束。
公式、代码或工程案例
画出 ingestion→index→retrieve→rerank→generate。
高频追问
- RAG 与微调怎样选择?
- 如果规模、数据分布或延迟约束变化,方案应怎样调整?
易错点
不要把搜索到文本等同于模型一定使用了证据。
权威来源
文档切分 Chunk 应怎样设计?
30 秒口述版
切分要在语义完整性、检索粒度和上下文成本间折中,并保留标题、路径与邻接关系。
原理与推导
固定 token、递归结构和语义切分各有边界,应按问句和文档类型评测。
公式、代码或工程案例
对 FAQ、代码和长报告分别设策略。
高频追问
- Overlap 多大合适?
- 如果规模、数据分布或延迟约束变化,方案应怎样调整?
易错点
不要用字符数代替 tokenizer token 数。
权威来源
Embedding 模型怎样选择?
30 秒口述版
看语言与领域、查询/文档长度、维度、归一化、吞吐和目标检索指标。
原理与推导
排行榜只是起点,必须在自有 query-document 标注集上测 Recall@k、nDCG 和延迟。
公式、代码或工程案例
对比通用与领域模型并做 hard negatives。
高频追问
- 维度越高越好吗?
- 如果规模、数据分布或延迟约束变化,方案应怎样调整?
易错点
不要混用要求不同 instruction 前缀的编码方式。
权威来源
向量相似度用余弦、点积还是 L2?
30 秒口述版
选择要与 embedding 训练目标和是否归一化一致;单位向量上余弦与点积排序等价。
原理与推导
向量库距离名称与返回分数方向可能不同,必须用探针验证。
公式、代码或工程案例
插入已知向量检查排序和阈值。
高频追问
- 归一化会丢失什么?
- 如果规模、数据分布或延迟约束变化,方案应怎样调整?
易错点
不要跨模型复用固定阈值。
权威来源
BM25 为什么仍然重要?
30 秒口述版
BM25 对关键词、实体、编号和稀有词精确匹配强,且无需向量训练。
原理与推导
向量检索擅长语义改写,两者互补,混合检索常比单路更稳。
公式、代码或工程案例
构造产品编号与同义问法两类查询。
高频追问
- BM25 的长度归一化如何作用?
- 如果规模、数据分布或延迟约束变化,方案应怎样调整?
易错点
不要认为传统检索已经被 embedding 淘汰。
权威来源
混合检索怎样融合结果?
30 秒口述版
可归一化分数加权,也可用 Reciprocal Rank Fusion 按排名融合。
原理与推导
不同检索器分数不可直接相加,权重应按验证集与查询类型校准。
公式、代码或工程案例
实现 RRF:Σ1/(k+rank)。
高频追问
- 何时动态调整稀疏/稠密权重?
- 如果规模、数据分布或延迟约束变化,方案应怎样调整?
易错点
不要把两个 top-k 简单拼接后截断。
权威来源
Rerank 为什么有效?
30 秒口述版
双编码检索独立编码查询和文档,速度快但交互弱;cross-encoder 联合编码候选,能更细致判断相关性。
原理与推导
通常先大召回再对几十条重排,以延迟换精度。
公式、代码或工程案例
测 Recall@50 与 rerank 后 nDCG@10。
高频追问
- LLM reranker 何时值得?
- 如果规模、数据分布或延迟约束变化,方案应怎样调整?
易错点
不要让 reranker 看不到关键文档元数据。
权威来源
查询改写和 Multi-Query 有什么作用?
30 秒口述版
把模糊问题补全、拆解或生成多个表达,可扩大召回并处理复合问题。
原理与推导
改写也可能引入错误意图,因此要保留原 query、去重并评测。
公式、代码或工程案例
对多跳问题拆成子查询后合并证据。
高频追问
- HyDE 的思路是什么?
- 如果规模、数据分布或延迟约束变化,方案应怎样调整?
易错点
不要让生成的假答案作为最终事实。
权威来源
Metadata Filter 应放在哪个阶段?
30 秒口述版
权限、租户和硬条件应尽量检索前过滤;软偏好可在召回或重排使用。
原理与推导
先召回后权限过滤可能导致泄漏或候选不足。
公式、代码或工程案例
在索引中保存 tenant、时间和文档类型字段。
高频追问
- 过滤会怎样影响 ANN 召回?
- 如果规模、数据分布或延迟约束变化,方案应怎样调整?
易错点
不要只在 prompt 层做访问控制。
权威来源
向量数据库和 FAISS 怎样选择?
30 秒口述版
FAISS 是高性能向量索引库;数据库还提供持久化、过滤、分片、复制和运维接口。
原理与推导
单机实验可用 FAISS,生产选择取决于规模、更新、过滤、SLA 与团队能力。
公式、代码或工程案例
列出写入、查询、备份和多租户需求。
高频追问
- HNSW 与 IVF 如何权衡?
- 如果规模、数据分布或延迟约束变化,方案应怎样调整?
易错点
不要仅按 benchmark QPS 选型。
权威来源
HNSW 的核心原理是什么?
30 秒口述版
HNSW 构建多层近邻图,从稀疏高层快速导航,再在底层扩展搜索。
原理与推导
M、efConstruction 和 efSearch 控制内存、构建时间、召回与延迟。
公式、代码或工程案例
绘制 Recall-Latency 曲线选择 efSearch。
高频追问
- 删除和更新为何麻烦?
- 如果规模、数据分布或延迟约束变化,方案应怎样调整?
易错点
不要把 ANN 结果当精确 top-k。
权威来源
RAG 上下文怎样组织?
30 秒口述版
按相关性和逻辑顺序放证据,保留标题与来源,去重并控制总 token,可要求答案逐条引用。
原理与推导
过多上下文会引入噪声和位置偏置,应做压缩或选择而非全部塞入。
公式、代码或工程案例
在 prompt 中明确“证据不足则说明”。
高频追问
- Contextual compression 有何风险?
- 如果规模、数据分布或延迟约束变化,方案应怎样调整?
易错点
不要让来源编号与真实文档错位。
权威来源
RAG 如何端到端评测?
30 秒口述版
分开测检索召回/排序、上下文相关性、答案正确性、忠实度、引用与延迟成本。
原理与推导
端到端失败要回溯是哪一段,而不是只调 prompt。
公式、代码或工程案例
维护带证据标注的黄金问答集和失败分类。
高频追问
- 无参考答案如何评测?
- 如果规模、数据分布或延迟约束变化,方案应怎样调整?
易错点
不要只用 LLM-as-Judge 单裁判。
权威来源
RAG 效果不好怎样系统排查?
30 秒口述版
先判断正确证据是否入库、能否召回、是否被重排保留、是否进入 prompt、模型是否使用。
原理与推导
按链路记录文档 ID、分数、版本、token 截断和最终引用,才能定位。
公式、代码或工程案例
用已知答案的探针 query 做逐阶段回放。
高频追问
- 召回高但答案差可能是什么?
- 如果规模、数据分布或延迟约束变化,方案应怎样调整?
易错点
不要同时改 embedding、chunk 和 prompt 而失去归因。
