从 Embedding 到 Rerank 进阶:RAG 技术实践完整教程
本教程将带你完整回顾一位开发者在 RAG 项目中从单纯依赖 Embedding(嵌入) 到引入 Rerank(重排序) 的真实成长历程,并为你提供可直接复用的模型清单与本地部署代码。
1. 技术演进:从“万物可嵌入”到“精排必重排序”
1.1 V1.0 起点:Embedding 模型与 Bi-Encoder 架构
大多数 RAG 开发者的第一个版本都从 Embedding 模型 + 向量数据库 开始。核心原理是 Bi-Encoder(双编码器),工作流程分为三步:
- 离线索引(Indexing):将知识库所有文档通过编码器生成向量,存入向量数据库。
- 在线检索(Retrieval):用户提问时,用同一编码器将问题也计算为查询向量。
- 相似度计算(Similarity Search):通过余弦相似度等运算,找出 Top-K 个最相似的文档。
余弦相似度公式:
similarity = cos(θ) = (A·B) / (|A| * |B|)
结果 ∈ [-1, 1],越接近 1 表示语义越相似。
优势:速度快,适合大规模粗筛。
局限:仅能比较语义方向,无法理解查询与文档之间的深层交互。
