先说几个核心结论:Embedding(嵌入)技术是人工智能理解人类语言的基石,没有它,大模型连“猫”和“狗”的区别都无法识别。不过这个概念听起来确实抽象,咱们不妨从最基础的角度开始理解。

一、什么是 Embedding?
简而言之,Embedding(嵌入)是为每一个词语、句子乃至任何类型的信息,赋予一组专属的数字坐标——也就是向量。有了这组坐标,计算机就能通过计算来“感知”它们之间的语义关系。
可以这样想象:每个词汇都被“放置”在一个巨大的高维空间中,含义越接近的词汇,它们的坐标点就越靠近;含义差异越大的,坐标距离也越远。比如:
“猫”的坐标可能是 [0.5, 1.2, 0.3, …];
“狗”的坐标是 [0.51, 1.19, 0.29, …]——这两个点距离很近,因为语义相似;
而“苹果”的坐标很可能离它们很远,因为概念上完全不同。
这就是embedding最朴素的核心思想:用空间中的位置来反映语义上的关联。
二、什么是 Embedding Model?
搞清楚了embedding是什么,那么谁来生成它呢?这就是Embedding Model(嵌入模型)的任务。简单来说,它是一个专门将文本转化为数字向量的机器学习模型。
市面上常见的嵌入模型有不少:Word2Vec、GloVe、FastText,还有BERT内部的嵌入层,以及OpenAI的Text Embedding系列(例如ada-002)。
这些模型的核心能力完全一致:给定任意文本输入——无论是一个单词、一句话,还是一整篇文章——都能输出一个固定长度的数字向量。这个向量并非随机生成,而是精准捕捉了文本背后的语义信息。
三、Embedding 的作用是什么?
讲完概念,来看实际价值。Embedding的应用范围十分广泛,几乎构成了现代自然语言处理(NLP)应用的地基。
1. 相似度搜索与推荐
如果你想搜索与“苹果”相似的概念,embedding模型能迅速帮你找到“梨子”“水果”等关联词汇。推荐引擎同样依赖这种能力,通过计算用户兴趣向量与内容向量之间的距离,实现精准推送。
2. 自然语言处理任务的基础
所有大语言模型(LLM)的第一步,都是将文字信息转换成embedding向量,然后才能进行后续的理解与生成。没有这一步,后续操作都无法成立。
3. 分类任务与情感分析
借助embedding向量,计算机可以快速判断一段文本的情感倾向是正面、负面还是中性,或者将其归入某个话题类别。
4. 信息检索与问答系统(RAG)
这一点后面会重点展开。简单来说,它能迅速找到与用户提问最匹配的答案或文档内容。
四、Embedding 与 LLM 的关系
大语言模型理解用户输入的过程,本质上分两步走:首先,将用户的prompt通过embedding转成一串数字,捕捉其语义;然后,借助复杂的神经网络推理,输出答案,再把数字转回人类能读的文字。
因此,Embedding是大语言模型理解世界的第一步,也是最关键的一步。理解这一点,才算真正掌握了现代NLP的根基。
五、详细说下 RAG 和 Embedding 的关系
RAG(检索增强生成)这个概念大家都不陌生,它分为两个阶段:
检索:用户提问后,先在一个建好的知识库中找出最相关的内容片段。
生成:把检索到的内容连同问题一起交给大语言模型,生成最终答案。
而Embedding Model,正是在第一个检索阶段扮演核心角色。
Embedding Model 在 RAG 中的作用细节
具体来说体现在两个环节:
1)把知识库内容和用户问题都转成向量
Embedding模型会将知识库里的文档或文本片段提前转换成数字向量,构建一个向量数据库。用户每次提问时,问题本身也会通过同样的模型转换成一个向量。
举个例子:
用户问:“如何减轻焦虑感?”
→ 转为向量:[0.21, 0.92, 0.15, …]
文档片段:“冥想能有效减轻焦虑情绪……”
→ 转为向量:[0.20, 0.93, 0.14, …]
2)进行语义相似性检索
问题和知识库都被向量化之后,系统通过计算向量间的余弦相似度,快速从向量数据库里找出最相关的文本片段。相似度越高(向量距离越近),就越可能是用户需要的答案。
结果示例:
[用户问题] ↔ [文档片段1] → 0.95 ✅
[用户问题] ↔ [文档片段2] → 0.52 ❌
系统自然选取相似度最高的片段1,交给大模型做进一步回答。这就是RAG高效且精准的秘密所在。
六、Tokenization 和 Embedding 是什么关系?
很多人容易混淆这两个概念,其实它们是前后衔接的两个步骤。
1. Tokenization(分词)是什么?
Tokenization就是将原始文本拆分成更小的处理单元——token。在模型训练中,token是基本处理单位,它可以是单个词、子词(如BPE或WordPiece),甚至单个字符。
举一个例子:
原始句子:“我喜欢学习 AI 技术”
分词后可能变成:["我", "喜欢", "学习", "AI", "技术"]
为什么要分词?因为模型无法直接处理整句话,必须拆解成它容易消化的小单元。
2. Embedding(嵌入)是什么?
Embedding就是将上面拆分好的每一个token,进一步转化为数字向量。
再举个例子:
Token "喜欢" → 向量:[0.32, 1.20, -0.24, ...]
Token "学习" → 向量:[0.11, 0.85, -0.41, ...]
Embedding让模型能够用数学方式理解每个token背后的语义。
3. 它们的关系:前后顺序,缺一不可
在模型训练中,两者的关系非常清晰:
第一步:Tokenization——把句子变成token序列。
第二步:Embedding——把每个token转化成一个向量。
完整的流程就是:
原始文本 → 分词(Tokenization) → Token序列 → 嵌入(Embedding) → 数字向量序列
4. 总结一下二者的区别和联系
| 概念 | 处理对象 | 作用 | 举例 |
| Tokenization(分词) | 原始文本 | 将句子切割成更小的文本单元(token) | "学习AI" → ["学习", "AI"] |
| Embedding(嵌入) | token | 将token转化为数字向量,表达语义 | "学习" → [0.23, -0.17, …] |
没有分词,embedding就无从下手;没有embedding,分词出来的token就是一堆死符号。两者联手,才是AI真正“读懂”文字的关键。
