引言
在检索增强生成(Retrieval-Augmented Generation,RAG)系统中,向量化模型(嵌入模型)扮演着至关重要的角色。它们负责将文本转换为向量表示,使得计算机能够理解和比较文本之间的语义相似性。选择合适的嵌入模型并对其进行优化,直接影响着RAG系统的检索质量和整体性能。
本文将深入探讨嵌入模型的发展历程、不同类型的嵌入模型比较、微调技术、多语言挑战以及嵌入维度与性能的权衡等关键问题,并通过实例分析不同嵌入模型在特定领域的表现。
嵌入模型的发展与比较
嵌入模型的发展历程
嵌入模型的发展可以追溯到早期的词向量模型,经历了从简单到复杂、从静态到动态、从通用到专业的演变过程:
-
早期词向量模型(2013年前):如One-hot编码、TF-IDF等简单模型,能够捕捉词频信息但无法表示语义关系。
-
静态词嵌入时代(2013-2017):
- Word2Vec(2013):通过"词的上下文"预测任务学习词向量,首次在向量空间中体现词语间的语义关系。
- GloVe(2014):结合全局矩阵分解和局部上下文窗口方法,改进了语义表示能力。
- FastText(2016):引入子词信息,能更好地处理未登录词和形态丰富的语言。
-
上下文感知嵌入时代(2018-2020):
- ELMo(2018):首个基于双向LSTM的上下文化词表示模型,同一个词在不同上下文中有不同的表示。
- BERT(2018):基于Transformer架构的预训练语言模型,通过掩码语言模型任务学习深层双向表示。
- RoBERTa、XLNet等(2019):BERT的改进版本,通过优化训练方法和数据量提升性能。
-
专用嵌入模型时代(2020至今):
- Sentence-BERT(2019):针对句子级别相似度计算优化的BERT变体。
- DPR(Dense Passage Retriever,2020):专为检索任务设计的双塔结构嵌入模型。
- E5、BGE、GTE等(2022-2023):专门为检索和语义匹配优化的嵌入模型。
- Jina Embeddings、OpenAI text-embedding-3等(2023-2024):支持长文本和多语言的高性能嵌入模型。
主流嵌入模型性能比较
模型名称 | 发布时间 | 参数量 | 最大输入长度 | MTEB基准分数 | 特点 |
---|---|---|---|---|---|
OpenAI text-embedding-3-large | 2024 | 未公开 | 8192 | 65.0+ | 高性能,支持多语言,闭源 |
Jina Embeddings v3 | 2024 | 5.7亿 | 8192 | 64.5+ | 开源,多语言支持,任务特定LoRA |
BGE-M3 | 2023 | 1.5亿 | 8192 | 63.5+ | 开源,多语言支持 |
E5-large-v2 | 2023 | 3.35亿 | 512 | 62.5+ | 开源,专注英文检索 |
GTE-large | 2023 | 3.35亿 | 512 | 62.0+ | 开源,中英双语 |
Cohere Embed | 2023 | 未公开 | 2048 | 62.0+ | 闭源,多语言支持 |