Embedding 嵌入
将文本、图像等非结构化数据转换为高维向量表示的技术
简介
Embedding(嵌入)是一种将非结构化数据(文本、图像、音频等)转换为高维向量表示的技术。在向量空间中,语义相似的内容会被映射到相近的位置,这使得计算机能够理解和计算数据之间的语义关系。
核心原理
向量空间表示
- 每个数据点被映射为一个高维空间中的向量
- 向量维度通常在 128 到 4096 之间
- 语义相似的内容在向量空间中距离更近
相似度计算方法
| 方法 | 说明 | 适用场景 |
|---|---|---|
| 余弦相似度 | 计算两个向量夹角的余弦值 | 文本相似度匹配 |
| 欧氏距离 | 计算向量之间的直线距离 | 图像特征匹配 |
| 点积 | 直接计算向量对应元素乘积之和 | 大规模检索优化 |
在 AI 中的关键应用
1. RAG 检索增强生成
RAG 技术的核心组件之一:
- 文档向量化:将知识库文档切分后转换为向量
- 问题向量化:用户提问也转换为相同空间的向量
- 相似度检索:在向量库中找到最相关的文档片段
- 大模型综合:基于检索到的相关内容生成回答
标准 RAG 工作流:
企业文档 → 文本切分 → Embedding 向量化 → 向量数据库存储
↓
用户提问 → Embedding 向量化 → 检索相似文档 → 大模型综合回答
2. 搜索和推荐系统
- 基于语义的搜索引擎
- 个性化推荐算法
- 相似内容发现
3. 聚类和分类
- 无监督文本聚类
- 内容分类打标签
- 异常检测
主流 Embedding 模型
| 模型 | 提供商 | 特点 |
|---|---|---|
| text-embedding-ada-002 | OpenAI | 应用广泛,通用性好 |
| bge-large-zh | 智源 | 中文效果优秀 |
| m3e | 魔搭社区 | 多语言多任务 |
| LLaMA Embedding | Meta | 开源可本地化 |
实用信息
最佳实践
- 选择合适维度:平衡精度和性能,常用 768 或 1024 维
- 统一模型:查询和文档必须使用相同的 Embedding 模型
- 文本预处理:去除噪声,保证输入质量
- 批量处理:批量向量化提高效率
常见问题
- 冷启动问题:新领域数据需要重新微调模型
- 语义漂移:不同语境下同词不同义
- 长文本处理:需要合理的切分策略