AI 通关攻略 · 第 2 关 | Embedding:让 AI "读懂"文字的秘密

4 阅读5分钟

AI 通关攻略 · 第 2 关 | Embedding:让 AI "读懂"文字的秘密

故事从一个问题说起

要让 LLM 处理文字,第一步是把文字转成数字。但"文字转数字"这件事远比想象中复杂。

直接用字符编码(如 UTF-8 的数字 97 = 'a')行不行?不行。 因为这样编码完全丢失了语义信息——"狗"和"猫"在语义上是近义词,但它们的字符编码可能差得很远。

我们需要的是:让语义相近的词,在数字空间里距离也相近。

这就是 Embedding 要解决的问题。


1. 什么是 Embedding?

Embedding(嵌入)是将高维离散数据(文字、图片、声音等)映射到一个连续的低维向量空间的过程。

在 LLM 领域,Embedding 就是:把每个 token 映射为一个固定长度的数字向量(一串浮点数)。

简单理解:Embedding 就像给每个词发一张"身份证"——这张身份证上的数字不是随机编的,而是根据词的含义精心设计的。含义相近的词,它们的"身份证号码"也相近。


2. Embedding 是怎么生成的?

2.1 训练出来的,不是人工定义的

早期的词向量(如 Word2Vec、GloVe)是通过在大规模文本上训练得来的——让词的向量能预测它周围的词(类似"观其伴,知其义")。

现代 LLM 的 Embedding 更加强大:

  • 每个 token 的 Embedding 在进入 Transformer 之前就已经初始化
  • 经过层层 Attention 的处理,每个 token 的向量会不断被上下文所"更新"
  • 最终,LLM 内部每个 token 都有一个上下文感知的向量表示

换句话说:同一个词在不同上下文里,最终的向量是不同的。"苹果"在"吃苹果"和"买苹果股票"中的含义完全不同,经过 Transformer 处理后的向量也会有所区分。

2.2 向量的维度

一个 token 的 Embedding 向量通常有 512、768、1024、1280、4096 等维度。

维度越高,能表达的语义信息越丰富,但计算成本也越大。


3. 向量空间的核心特性

Embedding 向量空间有几个极其重要的特性,理解它们才能理解为什么 Embedding 这么强大:

3.1 语义相似性

在向量空间中,距离近的词 = 语义相近的词

可以用余弦相似度来衡量:

相似度 = cos(向量A, 向量B)
  • 相似度 = 1(完全相同)
  • 相似度 = 0(完全不相关)
  • 相似度 = -1(完全相反)

例子"国王""王后" 的余弦相似度很高,"国王""香蕉" 的相似度几乎为 0。

3.2 语义运算

Embedding 空间支持"语义加减法":

"国王" - "男人" + "女人""王后"
"巴黎" - "法国" + "日本""东京"

这叫语义向量运算,是 Embedding 强大能力的直观体现。


4. Embedding 模型

不是只有 LLM 才有 Embedding。专门用于生成 Embedding 的模型叫 Embedding Model

常见 Embedding 模型

模型公司维度特点
text-embedding-3-largeOpenAI3072最新一代,效果好
text-embedding-ada-002OpenAI1536经典,稳定
Cohere EmbedCohere1024多语言支持强
BGE国产开源1024开源免费,中文友好
M3E国产开源768开源免费,轻量

Embedding Model vs LLM

对比项Embedding ModelLLM
用途将文本转为向量生成文本
输出固定维度的向量变化的文本序列
计算量相对较小非常大
典型场景语义搜索、相似度计算、RAG对话、写作、推理

5. Embedding 的实际应用

5.1 语义搜索(Semantic Search)

传统搜索是关键词匹配("搜索'苹果'就只返回包含'苹果'的文档")。

语义搜索基于 Embedding:

  1. 把用户的问题转成向量
  2. 在向量数据库中找最相似的文档向量
  3. 返回对应的文档

例子:用户问"怎么种水果",Embedding 搜索能找到包含"果树栽培"的文档,即使文档里没有"水果"这个词。

5.2 RAG(Retrieval-Augmented Generation,检索增强生成)

RAG 是 Embedding 最重要的应用场景之一:

  1. 把知识库文档切成小块,每块转成向量存入向量数据库
  2. 用户提问时,把问题转成向量,检索最相关的文档块
  3. 把检索结果 + 用户问题一起发给 LLM,让它基于真实资料回答

5.3 文本分类 / 聚类

把文本转成向量后,可以做:

  • 相似文档的自动聚类
  • 垃圾邮件识别(正常邮件 vs 垃圾邮件向量差异大)
  • 情感分析(好评 vs 差评的向量分布不同)

5.4 推荐系统

用户兴趣和内容的向量相似度高,就推荐。这也是抖音、抖音推荐算法的底层逻辑之一。


6. Embedding 的局限

6.1 丢失的信息

Embedding 是对语义的"有损压缩"。一整篇文章被压缩成 1024 个浮点数,必然丢失大量细节。

例子:Embedding 可以区分"红色的苹果"和"绿色的苹果",但可能无法区分"稍微有点红的苹果"和"比较红的苹果"。

6.2 Embedding 质量依赖模型

Embedding 模型本身的理解能力决定了向量的质量。一个弱的 Embedding 模型生成的向量,语义相似性会很差。

6.3 跨语言问题

不同语言的 Embedding 空间不同。"Hello"和"你好"在中文 Embedding 模型里可能距离很远。跨语言应用需要专门的多语言 Embedding 模型


7. 一张图理解 Embedding

文字 → Embedding Model → 向量 → 存入向量数据库
用户问题 → Embedding Model → 向量 → 相似度搜索 → 检索结果

8. 总结

问题答案
Embedding 是什么?把文字/图片等转为固定维度向量的技术
核心特性是什么?语义相近的东西,向量距离也近
有什么用?语义搜索、RAG、分类、推荐
和 LLM 是什么关系?Embedding 是 LLM 的输入层,LLM 内部也有大量 Embedding 计算
和向量数据库是什么关系?向量数据库是存储和检索 Embedding 向量的基础设施