RAG中的Embedding入门基础教程(非常详细),过百度二面看这篇就够了!
👔面试官:RAG 里的 Embedding 是什么?你是怎么选模型的?
🙋♂️我:Embedding 就是把文本变成向量,用 OpenAI 的模型就行了,效果最好。
👔面试官:「把文本变成向量」说了等于没说。向量的关键特性是什么?为什么语义相似的文本向量就靠近?这个原理你能解释吗?而且 OpenAI 的模型在中文场景上效果就一定好吗?
🙋♂️我:那我就选排行榜分数最高的模型,MTEB 排行榜第一名应该没问题吧?
👔面试官:MTEB 用的是通用数据集,你的业务是做医疗问答还是法律咨询?通用排行榜能代表你的场景效果?你有没有在自己的数据上做过评估?Hit@K 是什么指标你知道吗?
🙋♂️我:呃……Hit@K 没听过,我们就直接用 OpenAI 的,没测过别的。
👔面试官:选模型不测试,全靠感觉和排行榜,这样做出来的系统能好用就怪了。
好吧,Embedding 这块看似只是调个 API,但选型不当整个 RAG 的检索质量都会受影响。下面我来讲清楚。
💡 简要回答
Embedding 我理解就是把一段文本转成一串数字向量的过程。它有一个很关键的特性,就是语义相近的文本,转出来的向量在数学空间里的距离也近。RAG 里的语义检索就是靠这个实现的,不是关键词匹配,而是看两段内容的意思相不相近。选模型的话,我主要看三个维度:第一是中文支持,中文场景我会优先选 BGE 系列,效果其实比 OpenAI 的模型还要好;第二是向量维度,维度越高精度越好,但存储成本也越大;第三是最大输入长度,这个决定了能处理多长的 chunk。评估这块我的建议是不要只看通用排行榜,一定要在自己的业务数据上跑召回测试,那个才是真正有参考价值的。
📝 详细解析
Embedding 是什么?
Embedding 模型做的事情本质上是「语义压缩」,把一段自然语言文本映射成一个固定长度的浮点数向量。比如一个 1024 维的 Embedding 模型,不管输入的文本是 10 个字还是 500 个字,输出都是一个长度为 1024 的数字列表。

这个映射最关键的性质是:语义相近的文本,向量的余弦相似度高。余弦相似度衡量的是两个向量的方向有多接近,方向越一致,余弦值越接近 1,说明语义越相近。你可以把它理解成:两段话如果「指向同一个意思」,它们的向量箭头就朝着同一个方向。
你可能会觉得这没什么了不起的,关键词搜索不也能找到相关内容吗?还真不一样。比如「苹果手机怎么截图」和「iPhone 如何截屏」,这两句话一个字都不一样,关键词搜索根本匹配不上,但经过 Embedding 之后,两个向量的余弦相似度可能高达 0.95;而「苹果手机」和「苹果汁」虽然都有「苹果」,但语义相差很远,向量距离也会拉开。这就是语义检索比关键词匹配强的核心原因,它能处理同义词、近义词和不同的表达方式。很多人以为向量检索就是高级的关键词匹配,其实完全不是一回事,它是从「意思」层面在做匹配。
常见 Embedding 模型对比
理解了 Embedding 的原理,接下来就是选模型了。目前主流的选择大概分三类。
- 第一类是 OpenAI 的 text-embedding 系列,
text-embedding-3-small是性价比最高的,1536 维,支持降维到 256 维来节省存储,调用方便,英文效果非常好;缺点是 API 调用有费用,而且数据要发到 OpenAI 服务器,有些企业有数据出境合规问题。 - 第二类是 BGE 系列(北京智源研究院出品),这是目前中文 RAG 场景的首选开源模型,
bge-large-zh在中文语义检索上的效果甚至超过 OpenAI 的模型,1024 维,可以本地部署,数据不出境。如果你的知识库主要是中文内容,BGE 几乎是最优解。 - 第三类是多语言模型,比如
bge-m3,同时支持中英日等多种语言,向量维度 1024,适合知识库里中英文混排的场景。
如何选择 Embedding 模型?
聊完了模型分类,具体到你自己的项目,该怎么选?选模型的时候主要看这几个判断点。
- 第一是中英文比例:知识库以中文为主,选
bge-large-zh;中英混合,选bge-m3;纯英文或追求省事,选text-embedding-3-small。 - 第二是数据合规要求:数据不能出境,就必须用可以本地部署的开源模型,BGE 系列是最优选择。
- 第三是向量维度对存储和检索速度的影响:维度越高精度越好,但存储空间和检索时间都会增加。百万量级的知识库,1024 维是个合理的平衡点;如果规模很小,1536 维也无所谓。
如何评估 Embedding 模型?
这里有一个常见的误区:很多人拿 MTEB 这类通用排行榜的分数来选模型,觉得分数高就一定好。MTEB 是一个权威的文本 Embedding 通用排行榜,用多种标准数据集评测模型的语义搜索能力,是好的参考。但它用的是通用数据集,你的业务场景(比如医疗问诊、法律文档、客服知识库)和通用数据分布差异很大,排行榜第一的模型不一定适合你。就好比高考状元不一定擅长你那个行业的专业考试,测评的数据分布不对,分数就没有参考意义。
正确的评估方法是在自己的业务数据上测:准备几百条业务相关的「问题 + 正确答案 chunk」对,分别用候选模型做检索,看正确的 chunk 有没有出现在前 K 条结果里。这个指标叫 Hit@K,Hit@5 = 0.8 的意思就是,80% 的问题,它对应的答案都出现在了检索结果的前 5 条里。通常 Hit@5 低于 0.7 就要考虑换模型或者改进 Chunking 策略了。这种贴近真实场景的评估,比排行榜分数更有参考价值。
把常见的选型维度汇总对比一下:
| 模型 | 维度 | 中文效果 | 是否开源 | 适用场景 |
|---|---|---|---|---|
| text-embedding-3-small | 1536(可降维) | 一般 | 否(API) | 英文为主、快速上手 |
| text-embedding-3-large | 3072(可降维) | 一般 | 否(API) | 英文为主、精度要求高 |
| bge-large-zh | 1024 | 很好 | 是 | 中文知识库首选 |
| bge-m3 | 1024 | 好 | 是 | 中英混合、多语言场景 |
🎯 面试总结
回到开头那段面试,Embedding 这个问题考察的是你对 RAG 检索层基础的理解。
回答要讲清三点。第一,Embedding 不只是「文本变向量」,关键是语义相近的文本向量距离近,这才是语义检索的基础。第二,选模型要看场景:中文首选 BGE,中英混合用 bge-m3,有数据合规要求就用开源模型本地部署。第三,评估模型不要只看 MTEB 排行榜,要在自己的业务数据上跑 Hit@K 测试,这才是真正有参考价值的。
如果面试官追问「你用的什么模型,为什么选它」,你就说「中文场景用 bge-large-zh,在自己的业务数据上 Hit@5 达到 0.8 以上」,这个回答有理有据。
学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%免费】

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

所有评论(0)