什么是 Embedding
Embedding(向量嵌入) 是将文本、图片等非结构化数据转换为固定长度向量(数字数组)的技术。转换后的向量能保留原始数据的语义信息,语义相似的内容在向量空间中距离更近。
用一句话理解:Embedding 是给文字打 GPS 坐标。"猫"和"狗"的坐标很近,"猫"和"汽车"的坐标很远。
工作原理
"我爱编程" → [0.12, -0.34, 0.56, ..., 0.78] (1536 维向量)
"我喜欢写代码" → [0.11, -0.32, 0.55, ..., 0.77] (相似向量)
"今天天气不错" → [-0.45, 0.23, -0.67, ..., 0.12] (差异大)
相似度计算
向量之间的"距离"代表语义相似度,常用计算方法:
| 方法 | 公式 | 适用场景 |
|---|---|---|
| 余弦相似度 | cos(θ) | 最常用(方向相似) |
| 欧氏距离 | √(Σ(a-b)²) | 绝对距离 |
| 点积 | Σ(a×b) | 归一化后等价余弦 |
常用 Embedding 模型
| 模型 | 维度 | 特点 | 价格 |
|---|---|---|---|
| OpenAI text-embedding-3-small | 1536 | 性价比高 | $0.02/1M tokens |
| OpenAI text-embedding-3-large | 3072 | 效果最好 | $0.13/1M tokens |
| BGE-large-zh | 1024 | 中文效果好 | 免费(开源) |
| Cohere embed v3 | 1024 | 多语言 | $0.10/1M tokens |
Embedding 的应用
1. 语义搜索
传统搜索靠关键词匹配,语义搜索靠意思匹配:
- 搜索"怎么省钱" → 能找到"降低成本的方案"(没有共同关键词,但语义相似)
2. RAG(检索增强生成)
- 把知识库文档 Embedding 后存入向量数据库
- 用户提问时,检索最相关的文档传给 LLM
3. 推荐系统
- 把用户兴趣和内容都 Embedding
- 推荐向量距离最近的内容
4. 分类聚类
- 把文本 Embedding 后用机器学习算法分类
- 相似主题的文本自动聚在一起
相关概念
- RAG:基于 Embedding 检索的 AI 架构
- 向量数据库:存储 Embedding 并支持相似度检索
- Token:Embedding 的输入单位
- 余弦相似度:计算 Embedding 相似度的常用方法