Skip to content

嵌入(Embedding)是让计算机理解"语义"的关键技术,也是 RAG、语义搜索、向量检索的地基。本笔记讲清 Embedding 是什么、怎么做语义检索。

什么是 Embedding

Embedding 是把文本映射成高维向量(一串数字),让语义相近的内容在向量空间中距离更近。

"猫" → [0.1, 0.8, -0.3, ...]   (几百到几千维的向量)
"猫咪" → [0.12, 0.79, -0.31, ...]  ← 语义相近,向量相近
"汽车" → [0.7, -0.2, 0.5, ...]   ← 语义远,向量远

为什么有用:传统关键词搜索按字面匹配,搜"猫咪"找不到"猫"。向量检索按语义匹配,能理解"意思相近"。

相似度衡量

向量之间的"距离"用相似度函数衡量:

指标说明
余弦相似度(Cosine)最常用,衡量方向一致性,取值 -1~1
内积(Dot Product)常用于归一化向量
欧氏距离(L2)绝对距离

余弦相似度越高,语义越相近。这是向量检索"找到最相关文档"的数学基础。

向量检索流程(在 RAG 中的应用)

1. 离线:把文档切成块 → Embedding → 存入向量数据库(建索引)
2. 在线:查询文本 → Embedding → 在向量库找余弦相似度最高的 N 块
3. 返回最相关的块作为上下文 → 交给 LLM 生成

向量数据库

专门存储和检索向量的数据库:

工具特点
Chroma轻量、Python 友好,入门首选
FAISSMeta 开源,高性能相似度搜索
pgvectorPostgreSQL 扩展,业务库集成方便
Qdrant / Milvus企业级向量库

核心洞察

  • Embedding 把"语义"变成"可计算的数字",是 RAG、语义搜索、推荐系统、知识库检索的共同地基
  • 未来 Claude Code 接 Obsidian(Vault PKM 等)就是靠 Embedding + 向量检索理解知识库
  • 提示词、Agent、MCP 解决"怎么用",Embedding 解决"怎么找到对的资料"

一句话总结

Embedding 把语义变成可计算的向量,检索靠余弦相似度而非字面匹配(搜「猫咪」也能命中「猫」);它解决的是"怎么找到对的资料"。

关联概念