文本向量化技术

文本向量化(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
  • 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) 排行榜来辅助决策:

  1. 性能 (Performance)
    • 模型在相关的基准测试任务(如语义相似度 STS, 信息检索 IR)上的表现如何?
    • MTEB 排行榜提供了各种模型在多个任务上的标准化评分,是重要的参考依据。
  2. 模型大小与速度 (Size & Speed)
    • 模型的参数量有多大?它会占用多少计算资源(内存/显存)?
    • 向量化的速度(每秒能处理多少文本)是否满足应用的时延要求?
    • 通常,性能更强的模型也更大、更慢。需要在性能和效率之间做出权衡。
  3. 向量维度 (Dimensions)
    • 生成的向量维度是多少(如 384, 768, 1024)?
    • 更高维度通常能编码更丰富的信息,但也意味着更大的存储成本和可能更慢的检索速度。
  4. 领域适应性 (Domain Adaptability)
    • 模型的训练数据是否与你的应用场景匹配?
    • 对于高度专业化的领域,使用通用模型可能效果不佳,此时可以考虑在自有数据上对模型进行微调
  5. 标准化 (Normalization)
    • 模型输出的向量是否经过了归一化(Normalized)?
    • 归一化的向量长度为 1,可以直接使用余弦相似度进行高效计算,这对于向量检索非常重要。

选择嵌入模型是 RAG 系统搭建中的关键决策点,直接影响最终的检索质量和系统性能。

链接