模型

Embedding

为什么需要 Embedding

LLM 擅长理解语义,但数据库和检索系统处理不了"语义",只认精确匹配。

当你问"找一下和'公司年度报告'相关的文档",传统做法是搜索"公司"、"年度"、"报告"这些关键词。但如果文档写的是"年报"而不是"年度报告",或者用了"年度财报"的说法,关键词搜索就找不到了——因为它只会找字面完全匹配的词。

Embedding 解决的就是这个问题:让计算机能比较"意思上是否接近",而不只是"字面上是否一样"


什么是 Embedding

一句话定义:Embedding 的本质是把文本转成一串数字(向量),让语义相近的内容在数字空间里距离也相近。

你可以把它理解成给每段文本颁发一个"指纹":

  • 语义相近的话,指纹也相近
  • 语义差很远的话,指纹就差很远

比如这三句话:

  • "猫在睡觉"
  • "小猫正在打盹"
  • "火箭发射成功"

前两句意思接近,所以 Embedding 后向量距离近;第三句意思完全不同,向量距离远。

这种"远近"通常用 Cosine Similarity(余弦相似度)来衡量——它计算的是向量"方向"有多接近,而不是大小。


怎么做:什么时候用 Embedding

适合用 Embedding 的场景

  • 语义搜索:按意思而不是按关键词找内容
  • RAG 知识库:为问答系统提供检索基础——这也是 RAG 的核心步骤之一
  • 推荐系统:找到语义接近的物品或内容
  • 文本聚类:把大量内容按主题自动分组

不适合用 Embedding 的场景

  • 精确匹配:查人名、编号、订单号——这时候还得靠关键词搜索
  • 无需语义理解的任务:纯粹的结构化查询

常见坑

  • Embedding 模型有领域差异:通用模型在法律、医疗、金融等专业领域不一定最优。关于 Embedding 模型的选择,可以看 Embedding Model 词条
  • Chunk 切分直接影响效果:切太碎会丢上下文,切太大又引入噪声
  • 向量接近不等于答案正确:检索到相似内容后,仍需后续判断

记住这一句:Embedding 就是把"语义"变成"数字",让计算机能比较"意思上是否接近"。

相关词条Cosine Similarity · RAG