文本向量化技术
文本向量化(Text Embedding)是将文本(无论是单词、句子还是段落)转换为数值向量的过程。这个向量捕捉了文本的语义信息,使得计算机能够理解和处理语言的含义。在 检索增强生成 RAG 系统中,高质量的文本向量化是实现精准语义检索的前提。
1. 向量化技术的核心思想
核心思想是将文本映射到一个高维的“语义空间”(Vector Space)。在这个空间中:
- 语义相似的文本在空间中的距离更近。例如,“猫”和“小猫”的向量会非常接近。
- 向量之间的关系可以反映文本之间的关系。经典的例子是
vector('King') - vector('Man') + vector('Woman')的结果在向量空间中非常接近vector('Queen')。
这个过程由嵌入模型 (Embedding Model) 完成,它通常是一个经过海量文本数据预训练的变形神经网络 Transformer编码器。
2. 关键的嵌入模型类型
当前主流的嵌入模型主要基于 Transformer 架构,它们在处理上下文和语义关系方面表现出色。
- BERT (Bidirectional Encoder Representations from Transformers):
- 特点:通过双向上下文理解,生成深度语境化的词向量。原始的 BERT 主要用于生成词级别的向量,可以通过池化(Pooling)操作(如取
[CLS]标志位的输出或对所有词向量取平均)来获得句子级别的向量。 - 代表模型:
BERT-base,BERT-large。
- 特点:通过双向上下文理解,生成深度语境化的词向量。原始的 BERT 主要用于生成词级别的向量,可以通过池化(Pooling)操作(如取
- Sentence-BERT (SBERT):
- 特点:在 BERT 的基础上进行了重要改进,专门为句子级别的语义相似度计算进行优化。它采用孪生网络(Siamese Network)或三元组网络(Triplet Network)结构进行微调,使得模型可以直接生成高质量的句子向量,非常适合于语义搜索任务。
- 代表模型:
all-mpnet-base-v2,multi-qa-mpnet-base-dot-v1。
- 领域专用模型:
- 特点:针对特定领域(如金融、医疗、法律)的文本进行训练或微调的模型。它们在该领域的术语和语义理解上通常优于通用模型。
- 例子:FinBERT (金融), BioBERT (生物医学)。
- 多语言模型:
- 特点:能够处理多种语言的文本,并将它们映射到同一个统一的语义空间中,支持跨语言的检索和比较。
- 代表模型:
paraphrase-multilingual-mpnet-base-v2, E5向量双向变形编码器 系列。
3. 如何选择合适的嵌入模型?
选择模型时需要综合考虑以下几个因素,通常可以通过 MTEB (Massive Text Embedding Benchmark) 排行榜来辅助决策:
- 性能 (Performance):
- 模型在相关的基准测试任务(如语义相似度 STS, 信息检索 IR)上的表现如何?
- MTEB 排行榜提供了各种模型在多个任务上的标准化评分,是重要的参考依据。
- 模型大小与速度 (Size & Speed):
- 模型的参数量有多大?它会占用多少计算资源(内存/显存)?
- 向量化的速度(每秒能处理多少文本)是否满足应用的时延要求?
- 通常,性能更强的模型也更大、更慢。需要在性能和效率之间做出权衡。
- 向量维度 (Dimensions):
- 生成的向量维度是多少(如 384, 768, 1024)?
- 更高维度通常能编码更丰富的信息,但也意味着更大的存储成本和可能更慢的检索速度。
- 领域适应性 (Domain Adaptability):
- 模型的训练数据是否与你的应用场景匹配?
- 对于高度专业化的领域,使用通用模型可能效果不佳,此时可以考虑在自有数据上对模型进行微调。
- 标准化 (Normalization):
- 模型输出的向量是否经过了归一化(Normalized)?
- 归一化的向量长度为 1,可以直接使用余弦相似度进行高效计算,这对于向量检索非常重要。
选择嵌入模型是 RAG 系统搭建中的关键决策点,直接影响最终的检索质量和系统性能。