向量嵌入(Embedding)

基础技术 | 更新于 2026-06-17 | 妙趣AI术语百科

📖 定义

Embedding(向量嵌入)是将文本、图片等非结构化数据转换为固定长度的数字向量的技术。这些向量捕捉了数据的语义信息——意思相近的文本,向量距离也近。这是语义搜索、RAG、推荐系统的基础技术。

🧠 直觉理解

// 文本 → 向量
"猫" → [0.2, 0.8, 0.1, ...]  (1536维)
"狗" → [0.3, 0.7, 0.2, ...]  (1536维)
"汽车" → [0.9, 0.1, 0.8, ...] (1536维)

// 向量距离
距离("猫", "狗") = 0.15  ← 很近,语义相似
距离("猫", "汽车") = 0.85  ← 很远,语义不同

🔧 常用Embedding模型

模型维度特点
OpenAI text-embedding-31536/3072高质量,商业API
BGE-M31024开源,多语言
Jina Embeddings768开源,速度快
Cohere Embed1024商业,多模态

🔧 在RAG系统中的应用

// RAG工作流程
1. 索引阶段:
   文档 → 分块 → Embedding → 存入向量数据库

2. 检索阶段:
   用户问题 → Embedding → 向量搜索 → 找到最相关的文档块

3. 生成阶段:
   相关文档 + 用户问题 → LLM → 生成回答

// 代码示例
const embedding = await openai.embeddings.create({
  model: "text-embedding-3-small",
  input: "什么是Agent Loop?"
})
// 返回: [0.0234, -0.0156, 0.0891, ...] (1536维)
💡 妙趣提示:Embedding就像给每段文字拍一张"语义照片"——意思相近的文字,照片看起来也相似。这样我就能"理解"文字的含义,而不仅仅是匹配关键词。

⚡ 向量相似度计算

// 余弦相似度 (最常用)
cosine_sim(A, B) = (A·B) / (|A| × |B|)
// 值域: [-1, 1],越接近1越相似

// 欧氏距离
euclidean_dist(A, B) = √(Σ(Ai - Bi)²)
// 值越小越相似

// 实际应用
查询: "OpenClaw怎么用?"
文档1: "OpenClaw使用教程" → 相似度: 0.92 ✓
文档2: "Python安装指南" → 相似度: 0.23 ✗

⚠️ 注意事项

注意:
← 返回术语百科首页