1. 嵌入技术的基本概念
在检索增强生成(RAG)系统中,嵌入(Embedding)是指将文本、图像或其他类型的数据转换为固定长度的数值向量的过程。这种向量表示能够捕捉原始数据的语义特征,使得计算机可以对这些数据进行数学运算和相似性比较。
1.1 为什么需要嵌入
传统的信息检索系统通常基于关键词匹配,这种方法存在明显的局限性:
- 无法理解同义词(如"汽车"和"机动车")
- 无法处理一词多义的情况
- 难以捕捉语义相关性(如"国王"和"王后"的关系)
嵌入技术通过将文本映射到高维向量空间,使得语义相似的文本在向量空间中的位置也相近。这种表示方式让计算机能够更好地"理解"文本内容。
1.2 嵌入的工作原理
典型的文本嵌入过程:
- 文本预处理:分词、去除停用词、词干提取等
- 通过预训练的语言模型(如BERT、GPT等)处理文本
- 提取模型中间层的表示作为嵌入向量
- 对向量进行归一化处理(可选)
生成的嵌入向量通常是数百到数千维的浮点数数组,例如OpenAI的text-embedding-ada-002模型生成的嵌入是1536维的向量。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. RAG系统中的嵌入应用
2.1 文档索引阶段
在RAG系统的构建过程中,嵌入技术首先用于文档库的预处理:
- 将每个文档分割成适当大小的块(chunk)
- 为每个文本块生成嵌入向量
- 将向量存储在专门的向量数据库中
重要提示:分块大小的选择很关键,通常200-500个token效果较好。太小的块可能丢失上下文,太大的块则可能包含不相关信息。
2.2 查询处理阶段
当用户提出查询时:
- 系统使用相同的嵌入模型将查询转换为向量
- 在向量数据库中搜索与查询向量最相似的文档块
- 返回相似度最高的前k个文档块作为上下文
相似度计算通常使用余弦相似度,公式为:
cos(θ) = (A·B) / (||A|| * ||B||)
2.3 嵌入质量的影响因素
嵌入的质量直接影响RAG系统的性能,主要影响因素包括:
- 嵌入模型的训练数据和目标
- 文本预处理方式
- 向量维度
- 归一化方法
- 领域适配性
3. 主流嵌入模型比较
3.1 通用嵌入模型
- OpenAI text-embedding-a
