今天想和大家聊聊 RAG 系统中最核心的两个组件——Embedding 模型ReRank 模型 🔥

很多同学做 RAG 系统时,经常会遇到:

  • ❌ 检索结果不准确
  • ❌ 召回的内容不够相关
  • ❌ 排序不合理

这些问题很可能是因为没有选对 Embedding 和 ReRank 模型

这篇文章会帮你彻底理清:什么是 RAG?为什么需要它们?怎么选型?


一、RAG 是什么?🤔

1.1 一句话解释

RAG = 让 AI 读取自己的知识库

RAG(Retrieval Augmented Generation,检索增强生成)是一种结合了信息检索和文本生成的技术。


1.2 为什么需要 RAG?

LLM 的三大痛点 ⚠️

痛点 说明
📚 知识有限 不知道你们公司的具体政策、产品的详细信息
🤥 会胡说八道 可能编造答案(幻觉)
🕐 数据过时 训练数据是过去的,最新信息不知道

RAG 的解决方案 ✨

用户问题 → 检索知识库 → 拼接上下文 → LLM 生成回答

把相关文档检索出来,送给 LLM 作为参考,这样回答就准确了!


1.3 RAG 完整流程图 🗺️

┌─────────────────────────────────────────────────────────────┐

│                      📋 RAG 完整流程                          │

├─────────────────────────────────────────────────────────────┤

│                                                             │

│  ┌──────────┐    ┌──────────┐    ┌──────────┐           │

│  │  📂 文档  │ → │  ✂️ 切分  │ → │  🔢 向量  │           │

│  │   加载    │    │   文档    │    │   嵌入    │           │

│  └──────────┘    └──────────┘    └─────┬────┘           │

│                                          │                  │

│                                          ▼                  │

│           ┌──────────────────────────────┐                 │

│           │        📊 向量数据库          │                 │

│           │      (Chroma / FAISS)        │                 │

│           └──────────────────────────────┘                 │

│                                          │                  │

│                                          ▼                  │

│  ┌──────────┐    ┌──────────┐    ┌──────────┐           │

│  │  ❓ 用户  │ → │  🔍 向量  │ → │  🔄 重新  │           │

│  │   问题    │    │   检索    │    │   排序    │           │

│  └──────────┘    └─────┬────┘    └─────┬────┘           │

│                                          │                  │

│                                          ▼                  │

│                                   ┌──────────┐             │

│                                   │  🤖 LLM  │             │

│                                   │   生成   │             │

│                                   │   回答   │             │

│                                   └──────────┘             │

│                                                             │

└─────────────────────────────────────────────────────────────┘


二、Embedding 模型详解 📊

在这里插入图片描述

2.1 什么是 Embedding?

Embedding = 把文字转换成向量

就是把一段文本转换成一堆数字(向量),相似的文本会有相似的向量

通俗比喻 📝

"🐱 猫"     → [0.12, -0.34, 0.56, ...]  (1000维向量)

"🐕 狗"     → [0.11, -0.33, 0.55, ...]  (和猫的向量很接近!✅)

"🚗 汽车"   → [0.89, 0.12, -0.34, ...]  (和猫的向量差很远!❌)

💡 向量距离近 = 语义相似!


2.2 为什么需要 Embedding 模型?

❌ 不用 Embedding 的问题

# 关键词匹配(落伍了)defsearchquery, documentsforinifin# 只能精确匹配return# 问题:# 用户搜 "电脑"     → 找不到 "计算机" ❌# 用户搜 "买手机"   → 找不到 "购买手机" ❌# 用户搜 "error"   → 找不到 "bug" ❌

✅ 用 Embedding 的好处

# 语义匹配(更强!)defsearchquery, documents# 把查询和文档都转成向量# 计算相似度# 返回最相似的return# 优点:# "电脑" ≈ "计算机"        → 能找到!✅# "买手机" ≈ "购买手机"    → 能找到!✅# "error" ≈ "bug"        → 能找到!✅

2.3 Embedding 模型选型 📈

主流模型对比

模型 MTEB 分数 维度 特点 推荐场景
OpenAI text-embedding-3-large 64.3 3072 效果好,价格适中 通用场景
OpenAI text-embedding-3-small 62.3 1536 性价比高 成本敏感
Cohere embed-multilingual-v3.0 64.8 1024 多语言最强 🌏 国际化
BAAI/bge-large-zh-v1.5 64.5 1024 🇨🇳 中文开源最强 中文场景
BAAI/bge-base-zh-v1.5 62.0 768 轻量中文 中文/轻量
Qwen3-Embedding-8B 70.58 - 多语言冠军 多语言/高精度
Voyage-3 66.3 1024 长文本友好 📄 长文档
Jina AI v3 64.0 1024 开源免费 💰 省钱/自托管

📌 按场景选型

🇨🇳 场景1:中文场景
# 推荐:BGE 中文系列fromimport"BAAI/bge-large-zh-v1.5"'device''cpu'# 或者使用 APIfromimport"text-embedding-3-large"
🌍 场景2:多语言场景
# 推荐:Qwen3 或 Cohere"BAAI/bge-m3"# 支持 100+ 语言# 或使用 APIfromimport"embed-multilingual-v3.0"
📄 场景3:长文档
# 推荐:Voyage-3(支持 32K token)fromimport"voyage-3""your-key"
💰 场景4:省钱/自托管
# 推荐:Jina AI v3 开源版fromimport"jinaai/jina-embeddings-v3"'device''cpu'

2.4 Embedding 模型核心参数 ⚙️

# 完整配置示例fromimport"BAAI/bge-large-zh-v1.5"'device''cpu'# 或 'cuda''normalize_embeddings'True# 归一化(加速相似度计算)'batch_size'32# 批处理大小'show_progress_bar'True# 显示进度'convert_to_numpy'True# 转为 numpy# 使用"这是一个测试文本"printf"向量维度: {len(vector)}"

三、ReRank 模型详解 🎯

3.1 什么是 ReRank?

ReRank = 对检索结果进行重新排序

  • Embedding 负责"召回"(找出相关文档)
  • ReRank 负责"排序"(把最相关的排到前面)

3.2 为什么需要 ReRank?

❌ Embedding 的局限

⚠️ Embedding 的问题:

• 只能处理单个文档的语义

• 无法理解查询和文档的复杂关系

• 对长文档效果下降

✅ ReRank 的优势

✨ ReRank 的优势:

• 交叉编码,更精细地理解查询-文档关系

• 可以考虑更多特征

• 排序更准确

对比图 📊

┌─────────────────────────────────────────────────────────────┐

│                    检索阶段(Embedding)                     │

├─────────────────────────────────────────────────────────────┤

│                                                             │

│  用户:如何修复 Python 错误?                                │

│                                                             │

│  文档库:[Python 教程, Java 错误修复, Python 异常处理, JS 调试指南] │

│                                                             │

│                        ↓ 相似度计算                          │

│                                                             │

│  得分:[0.8,    0.3,     0.75,       0.2]                │

│                                                             │

│                        ↓ 排序结果                            │

│                                                             │

│  排序:1. Python 教程  2. Python 异常处理  3. Java 错误修复  4. JS 调试指南 │

│                    ❌ 问题:Python 教程是泛讲的,不是专门讲"错误修复"的     │

│                                                             │

└─────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────┐

│                    重排阶段(ReRank)                        │

├─────────────────────────────────────────────────────────────┤

│                                                             │

│  用户:如何修复 Python 错误?                                │

│                                                             │

│  候选文档:[Python 教程, Python 异常处理]                   │

│                                                             │

│                        ↓ ReRank 精细分析                    │

│                                                             │

│  • "Python 教程":泛讲 Python,不专门讲"错误修复" → 0.6分   │

│  • "Python 异常处理":专门讲错误处理,匹配度高    → 0.95分   │

│                                                             │

│                        ↓ 最终排序                            │

│                                                             │

│  最终:1. Python 异常处理  2. Python 教程 ✅               │

│                                                             │

└─────────────────────────────────────────────────────────────┘


3.3 ReRank 模型选型 🎯

主流模型对比

模型 类型 特点 推荐场景
Cohere rerank-v3.5 API 效果最好,速度快 🏆 生产环境
Voyage AI reranker-v2.0 API 长文本友好 📄 长文档
BAAI/bge-reranker-v2-m3 开源 🇨🇳 中文开源首选 中文/自托管
BAAI/bge-reranker-base 开源 轻量快速 轻量场景
jina-reranker-v2-base 开源 免费 💰 省钱
Cross-Encoder/ms-marco 开源 经典基准 📚 研究

📌 按场景选型

🏆 场景1:追求效果
# 推荐:Coherefromimport"rerank-v3.5""your-key"# 使用"如何修复 Python 错误"3
🇨🇳 场景2:中文场景
# 推荐:BGE Rerankerfromimport"BAAI/bge-reranker-v2-m3"'device''cpu'"如何修复 Python 错误"3
💰 场景3:省钱
# 推荐:Jina Reranker 开源版"jinaai/jina-reranker-v2-base"'device''cpu'

3.4 两阶段检索流程 🔄

fromimportfromimport# ===========================================================# 第一阶段:Embedding 召回(快速海选)# ==========================================================="similarity""k"20# 召回 20 个# ===========================================================# 第二阶段:ReRank 排序(精确决赛)# ==========================================================="BAAI/bge-reranker-v2-m3"5# 排序后取 top 5# 使用"如何修复 Python 错误"

四、实战:完整 RAG 流程 💻

4.1 代码示例

fromimportfromimportfromimportfromimportfromimportfromimportfromimportfromimport# ═══════════════════════════════════════════════════════════# 1️⃣ 加载文档# ═══════════════════════════════════════════════════════════"知识库.txt"# ═══════════════════════════════════════════════════════════# 2️⃣ 切分文档# ═══════════════════════════════════════════════════════════50050# ═══════════════════════════════════════════════════════════# 3️⃣ Embedding(第一阶段召回)# ═══════════════════════════════════════════════════════════"BAAI/bge-large-zh-v1.5""k"20# ═══════════════════════════════════════════════════════════# 4️⃣ ReRank(第二阶段排序)# ═══════════════════════════════════════════════════════════"BAAI/bge-reranker-v2-m3"'device''cpu'5# ═══════════════════════════════════════════════════════════# 5️⃣ 构建 RAG 链# ═══════════════════════════════════════════════════════════"""基于以下上下文回答问题。上下文:{context}问题:{question}回答:""""deepseek-chat""context""question"lambda"question"# ═══════════════════════════════════════════════════════════# 6️⃣ 查询# ═══════════════════════════════════════════════════════════"question""如何修复 Python 错误?"print

4.2 流程图

┌─────────────────────────────────────────────────────────────┐

│                   🚀 完整 RAG 流程                           │

├─────────────────────────────────────────────────────────────┤

│                                                             │

│                       用户问题                               │

│                          │                                   │

│                          ▼                                   │

│    ┌─────────────────────────────────────────────┐          │

│    │  1️⃣ 第一阶段:Embedding 召回                │          │

│    │     • 从向量库召回 top 20                  │          │

│    │     • 速度快                              │          │

│    │     • 粗筛(海选)                        │          │

│    └──────────────────┬──────────────────────┘          │

│                         │                                   │

│                         ▼                                   │

│    ┌─────────────────────────────────────────────┐          │

│    │  2️⃣ 第二阶段:ReRank 排序                  │          │

│    │     • 精细计算相关度                        │          │

│    │     • 排序后取 top 5                       │          │

│    │     • 精筛(决赛)                         │          │

│    └──────────────────┬──────────────────────┘          │

│                         │                                   │

│                         ▼                                   │

│    ┌─────────────────────────────────────────────┐          │

│    │  3️⃣ 第三阶段:LLM 生成                     │          │

│    │     • 拼接上下文                            │          │

│    │     • 生成回答                              │          │

│    └─────────────────────────────────────────────┘          │

│                                                             │

└─────────────────────────────────────────────────────────────┘


五、选型总结 📋

5.1 组合推荐

场景 Embedding ReRank 备注
🇨🇳 中文通用 BGE-large-zh-v1.5 BGE-reranker-v2-m3 性价比高
🌍 英文通用 OpenAI text-embedding-3-large Cohere rerank-v3.5 效果最好
🌍 多语言 Qwen3-Embedding-8B Cohere rerank-multilingual 支持 100+ 语言
📄 长文档 Voyage-3 Voyage AI reranker-v2 支持 32K token
💰 省钱 Jina AI v3 开源 jina-reranker-v2-base 免费自托管

5.2 选型决策树 🌳

❓ 需要选择 Embedding/ReRank 模型?

   │

   ├── 🇨🇳 中文场景?

   │   └── 是 → BGE 系列

   │

   ├── 🌍 多语言场景?

   │   └── 是 → Qwen3 / Cohere

   │

   ├── 📄 长文档?

   │   └── 是 → Voyage

   │

   ├── 💰 预算有限?

   │   └── 是 → Jina AI 开源版

   │

   └── 🎯 追求效果?

       └── 是 → OpenAI + Cohere


5.3 性能优化技巧 ⚡

Embedding 优化

# 1. 批处理"BAAI/bge-large-zh-v1.5"'batch_size'64# 增大批处理# 2. 归一化"BAAI/bge-large-zh-v1.5"'normalize_embeddings'True# 3. 使用 GPU"BAAI/bge-large-zh-v1.5"'device''cuda'

ReRank 优化

# 1. 控制召回数量"k"50# 多召回一些,给 ReRank 更多选择# 2. 使用轻量模型"BAAI/bge-reranker-base"# 比 v2 轻量'device''cpu'# 3. 异步处理importawait

六、总结 📝

6.1 一句话总结

组件 作用 比喻
Embedding 把文字转成向量,用于召回 🏊 海选
ReRank 精细排序 🎯 决赛

6.2 最佳实践 ✅

1️⃣ 先 Embedding 召回(20-50个)

2️⃣ 再 ReRank 排序(到 top 5)

3️⃣ 最后 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 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐