《Agent开发工程师成长指南》- 第2章 第5节:Embedding详解——AI为什么能理解“苹果”和“水果”是相近的?

第一卷:大模型 基础篇

第2章 大模型基础原理

第5节:Embedding详解——AI为什么能理解“苹果”和“水果”是相近的?

《Agent开发工程师成长指南》系列教程


引言

学习到这里,我们已经了解了:

接下来,我们要进入整个大模型应用开发中最重要的一个概念:

Embedding(向量化)

如果说:

那么:

Embedding负责让AI"认识世界"。

几乎所有企业级AI应用都会用到Embedding,例如:

可以说:

不会Embedding,就不可能真正理解RAG和Agent。


一、什么是Embedding?

先来看一个问题。

下面三个词:

苹果 香蕉 西瓜

请问:

它们有什么关系?

人类会立即回答:

都属于水果。

再看:

苹果 西红柿 CPU

我们的大脑会认为:

CPU明显不是水果。

为什么?

因为:

我们的大脑能够理解:

词语之间存在"语义距离"。

AI也是一样。

但是:

计算机不能理解:

苹果

是什么意思。

它只能理解:

101010101

所以:

需要一种方式:

把文字转换成:

模型能够计算的数字。

这就是:

Embedding。

一句话定义:

Embedding就是把文字、图片、声音等内容转换成数学向量,并尽可能保留它们之间的语义关系。


二、什么是向量(Vector)?

很多人第一次看到:

[0.21, -0.35, 0.84, ……]

都会懵。

其实:

这就是:

一个向量。

例如:

苹果 ↓ [0.31,0.52,-0.18,0.66......]

再例如:

香蕉 ↓ [0.30,0.55,-0.20,0.63......]

可以发现:

数字非常接近。

说明:

它们语义接近。

而:

CPU ↓ [-0.82,0.13,0.91,-0.52......]

完全不同。

说明:

语义距离很远。

所以:

模型真正比较的。

不是:

文字。

而是:

向量。


三、为什么Embedding能够表示语义?

来看下面几个词:

苹果 香蕉 西瓜 汽车 飞机 火车

如果画到二维空间。

可能是:

水果 苹果 香蕉 西瓜 汽车 飞机 火车

可以发现:

水果。

聚集在一起。

交通工具。

聚集在一起。

这就是:

Embedding空间。

也叫:

Vector Space(向量空间)。


模型训练过程中。

会自动学习:

哪些词:

应该靠近。

哪些词:

应该远离。

因此:

Embedding:

实际上就是:

语义地图。


四、Embedding是如何生成的?

来看整个流程。

文本 ↓ Tokenizer ↓ Token ↓ Embedding Model ↓ 向量(Vector) ↓ Transformer

例如:

输入:

苹果很好吃

Tokenizer:

苹果 很 好吃

然后:

Embedding模型:

把每一个Token。

变成:

768维。

或者:

1024维。

甚至:

3072维向量。

例如:

苹果 ↓ [0.18,0.21,-0.56……]

最后:

Transformer。

继续处理。


五、什么是Embedding模型?

很多新人认为:

GPT负责Embedding。

其实:

不是。

通常:

Embedding。

由专门模型完成。

例如:

企业开发中常见:

它们:

专门负责:

文本向量化。

而不是:

聊天。


因此:

RAG项目。

一般:

至少:

两个模型。

Embedding + LLM

分别负责:

向量。

生成答案。


六、为什么RAG离不开Embedding?

例如:

知识库:

文档A: 员工请假制度 文档B: 服务器部署规范 文档C: Java编码规范

用户:

提问:

年假怎么算?

如果:

关键词检索。

可能:

找不到:

请假制度

因为:

没有:

年假。

这个词。


但是:

Embedding。

发现:

年假 ↓ 请假 ↓ 休假 ↓ 假期

语义接近。

于是:

仍然能够找到:

正确文档。

这就是:

语义检索。


七、什么是向量相似度?

两个向量。

如何比较?

常见方法:


方法一:

余弦相似度(Cosine Similarity)

也是:

最常见方法。

例如:

苹果 香蕉 ≈ 0.95

说明:

非常相似。


而:

苹果 CPU ≈ 0.12

说明:

几乎无关。


企业里面。

绝大多数:

RAG。

都是:

Cosine Similarity。


方法二:

点积(Dot Product)

速度快。

适合:

部分模型。


方法三:

欧氏距离

计算:

空间距离。

目前:

使用较少。


八、Embedding在Agent中的应用

Embedding。

不仅仅:

用于RAG。

实际上:

Agent。

大量使用:

Embedding。

例如:

Memory

长期记忆。

全部:

向量化。


工具推荐

根据:

用户问题。

找到:

最适合:

Tool。


Skills匹配

自动:

找到:

最适合Agent。


多Agent协作

寻找:

最相关:

专家Agent。


因此:

Embedding。

其实贯穿:

整个Agent。


九、企业中如何选择Embedding模型?

主要考虑:


中文效果

例如:

BGE。

m3e。

通常:

中文更好。


多语言

例如:

E5。

支持:

多语言。


向量维度

768。

1024。

3072。

越高。

效果通常更好。

但是:

存储。

检索。

成本。

也更高。


推理速度

在线API。

还是:

本地部署。

也是:

重要因素。


十、Agent开发工程师需要掌握到什么程度?

至少需要理解:

✅ Embedding是什么?

✅ 为什么Embedding能够表示语义?

✅ 什么是向量空间?

✅ 什么是余弦相似度?

✅ Embedding模型与LLM的区别?

✅ 为什么RAG离不开Embedding?

如果掌握这些。

后面学习:

都会轻松很多。


面试题

问题1

什么是Embedding?

参考答案:

Embedding是将文本、图片等非结构化数据转换为高维向量表示的方法,使模型能够计算语义相似度,是RAG和语义检索的基础。


问题2

为什么Embedding能够理解语义?

参考答案:

因为Embedding模型通过大规模训练,将语义相近的内容映射到向量空间中相近的位置,使相似内容具有相似的向量表示。


问题3

RAG为什么需要Embedding?

参考答案:

RAG依赖Embedding将文档和用户问题转换为向量,通过计算向量相似度实现语义检索,而不仅仅依赖关键词匹配。


问题4

常见的向量相似度计算方法有哪些?

参考答案:

常见方法包括余弦相似度(Cosine Similarity)、点积(Dot Product)和欧氏距离(Euclidean Distance),其中余弦相似度是RAG应用中最常用的方法。


问题5

Embedding模型和大语言模型有什么区别?

参考答案:

Embedding模型专门用于生成向量表示,适合检索、聚类和相似度计算;大语言模型主要负责理解、推理和文本生成,两者通常在RAG系统中协同工作。


本章小结

本节我们学习了:

✅ Embedding 的定义与作用

✅ 向量(Vector)和向量空间

✅ Embedding 模型的工作流程

✅ 语义相似度计算原理

✅ Embedding 在 RAG 和 Agent 中的应用

✅ 企业级 Embedding 模型选型思路

至此,你已经掌握了RAG 的第一块基石——Embedding