- 论文:https://arxiv.org/pdf/2401.00368
- 代码:https://github.com/microsoft/unilm/tree/master/e5
- 机构:微软
- 领域:嵌入模型
- 发表:BAAI 2024
这篇论文的标题是《Improving Text Embeddings with Large Language Models》,由微软公司的Liang Wang, Nan Yang, Xiaolong Huang, Linjun Yang, Rangan Majumder, Furu Wei等作者撰写。论文介绍了一种新颖且简单的方法,使用大型语言模型(Large Language Models, LLMs)生成的合成数据,以获得高质量的文本嵌入(text embeddings),并且只需要不到1000步的训练即可完成。这种方法与现有方法相比,不需要构建复杂的多阶段预训练流程,也不依赖于手动收集的数据集,这些手动收集的数据集通常受到任务多样性和语言覆盖的限制。
摘要(Abstract):
- 论文提出了一种使用合成数据和少于1k训练步骤获得高质量文本嵌入的方法。
- 该方法不依赖于多阶段中间预训练和少量标记数据集的微调。
- 使用专有的LLMs为93种语言生成了数十万个文本嵌入任务的多样化合成数据。
- 通过标准对比损失对开源的仅解码器LLMs进行微调。
- 实验表明,该方法在没有使用任何标记数据的情况下,在竞争性文本嵌入基准测试中取得了强大的性能。
- 当使用合成数据和标记数据的混合进行微调时,模型在BEIR和MTEB基准测试上取得了新的最先进结果。
引言(Introduction):
- 文本嵌入是自然语言的向量表示,广泛应用于各种自然语言处理(NLP)任务。
- 传统的基于预训练词嵌入的加权平均方法无法捕捉自然语言的丰富上下文信息。
- 随着预训练语言模型的出现,例如BERT,提出了Sentence-BERT和SimCSE等方法来学习文本嵌入。
- 现有的多阶段方法存在几个缺点。首先,它们需要复杂的多阶段训练管道,需要大量的工程工作来管理大量的相关对。其次,它们依赖于手动收集的数据集,而这些数据集通常受到任务多样性和语言覆盖范围的限制。 例如,Instructor (Su et al., 2023) 仅接受来自 330 个英语数据集的指令的训练,而 BGE (Xiao et al., 2023) 仅关注英语和中文等高资源语言。此外,大多数现有方法都采用 BERT 式编码器作为骨干,忽略了训练更好的 LLM 和上下文长度扩展等相关技术的最新进展(Rozière 等人,2023)。
- 本文工作:使用专有的LLM为 93 种语言的各种文本嵌入任务生成合成数据,涵盖数十万个嵌入任务。 具体来说,使用两步提示策略,首先提示LLM对候选任务池进行集体讨论,然后提示法学硕士从池中生成以给定任务为条件的数据。为了覆盖各种应用场景,我们为每种任务类型设计了多个提示模板,并将不同模板生成的数据组合起来以提高多样性。对于文本嵌入模型,我们选择微调强大的开源 LLM,而不是小型 BERT 风格的模型。由于 Mistral(Jiang 等人,2023)等LLM已经在网络规模数据上进行了广泛的预训练,因此事实证明对 BERT 模型很重要的对比预训练几乎没有带来额外的好处。
- 当仅根据合成数据进行微调时,Mistral-7B 在 BEIR和 MTEB基准上获得了具有竞争力的性能。 当对合成数据和标记数据的混合进行微调时,我们的模型实现了新的最先进的结果,显着超越了以前的方法 (+2%)。整个训练过程需要不到1k步。 此外,我们凭经验验证我们的模型可以通过改变位置嵌入的旋转基础,将上下文长度扩展到传统的 512 个令牌限制之外,有效地对最多 32k 个令牌的输入执行个性化密钥检索。就其多语言性而言,我们的模型在高资源语言上表现出色。
相关工作(Related Work):
- 文本嵌入在信息检索、问答和检索增强生成等领域有广泛应用。
- 早期工作包括潜在语义索引和词嵌入的加权平均。
Text Embedding: 最近的方法利用自然语言推理和标记的查询文档对(例如 MS-MARCO 段落排名数据集)。然而,标记数据在任务多样性和语言覆盖方面通常受到限制。为了应对这一挑战,Contriever (Izacard et al., 2021)、OpenAI Embeddings (Neelakantan et al., 2022)、E5 (Wang et al., 2022b) 和 BGE (Xiao et al., 2023) 等方法采用了多阶段训练范式。他们首先使用对比损失对大规模弱监督文本对进行预训练,然后对小规模但高质量的数据集进行微调。在本文中,我们证明可以通过单阶段训练获得最先进的文本嵌入。
合成数据: 合成数据生成是信息检索研究中广泛研究的主题,提出了各种方法来利用人工创建的数据来增强检索系统。Doc2query(Nogueira 等人,2019)、InPars(Bonifacio 等人,2022)和 Promptagator(Dai 等人,2022)生成未标记文档的综合查询,然后将其用于文档扩展或模型训练。 GPL(Wang 等人,2022a)采用交叉编码器为查询文档对生成伪标签。类似地,Query2doc(Wang et al., 2023)通过fewshot提示LLM生成用于查询扩展的伪文档。与这些方法不同,我们的方法不依赖于任何未标记的文档或查询,因此可以生成更多样化的合成数据。 另一个相关的工作重点是通过对黑盒LLM生成的合成数据进行训练,从黑盒LLM中提取知识。 DINO(Schick 和 Schütze,2021)生成合成文本对以实现语义文本相似性。 Unnatural instructions(Honovich et al., 2022)是通过提示现有法学硕士来遵循数据集的合成指令。 Orca (Mukherjee et al., 2023) 和 Phi (Gunasekar et al., 2023) 提出通过使用 GPT-3.5/4 (OpenAI, 2023) 的高质量合成数据来训练更好的小语言模型。
LLM for embedding:LLM也可以作为增强文本嵌入的基础模型。 RepLLaMA(Ma et al., 2023)提出使用双编码器架构微调 LLaMA-2 以进行临时检索。 SGPT (Muennighoff, 2022)、GTR (Ni et al., 2022b) 和 Udever (Zhang et al., 2023a) 凭经验证明了文本嵌入的缩放规律,但它们的性能仍然落后于 E5 (Wang等人,2022b)和 BGE(Xiao 等人,2023)。在本文中,我们提出了一种通过利用LLM和合成数据的最新进展来训练最先进的文本嵌入的新颖方法。
方法(Method):
- 利用先进的LLMs,如GPT-4,生成多样化的合成数据。
- 将嵌入任务分为几个类别,并为每个类别应用不同的提示模板。
非对称任务 此类别包括查询和文档在语义上相关但彼此互不转述的任务。根据查询和文档的长度,我们进一步将非对称任务分为四个子组:短长匹配、长短匹配、短短匹配和长长匹配。 例如,短长匹配任务涉及短查询和长文档,这是商业搜索引擎中的典型场景。 对于每个子组,我们设计了一个两步提示模板,首先提示LLM集体讨论任务列表,然后根据任务定义生成一个具体示例。在图 1 中,我们显示了短-长匹配子组的示例提示。表 16 提供了完整的输出。GPT-4 的输出大多是一致的且高质量。在我们的初步实验中,我们还尝试使用单个提示生成任务定义和查询文档对,但数据多样性不如所提出的两步方法令人满意。
对称任务 对称任务涉及具有相似语义但不同表面形式的查询和文档。我们研究了两个应用场景:单语语义文本相似性(STS)和双文本检索。我们为每个场景设计了两个不同的提示模板,根据其特定目标量身定制。由于任务定义很简单,我们省略了对称任务的头脑风暴步骤。
- 为增强提示的多样性,使用多个占位符在运行时随机采样。
- 训练过程中,使用预训练的LLM并采用InfoNCE损失函数。
实验(Experiments):
- 统计生成的合成数据,包括任务类型和语言分布。We manage to generate 500k examples with 150k unique instructions,which 25% are generated by GPT-35-Turbo and others are generated by GPT-4. The total token consumption is about 180M. The predominant language is English, with coverage extending to a total of 93 languages. For the bottom 75 low-resource languages, there are about 1k examples per language on average. Please see Table 16 in the appendix for examples of synthetic data.
- 微调预训练的Mistral-7b模型,并在MTEB基准上评估。
- 实验结果表明,模型在多种任务上取得了新的最佳成绩。
分析(Analysis):
- 对比了对比预训练的必要性,并发现对于已经预训练了数万亿个token的LLMs,对比预训练的影响微乎其微。
- 评估了模型在长文本嵌入方面的能力,并提出了适应更长上下文的潜在研究方向。
- 分析了不同的训练超参数对模型性能的影响。
结论(Conclusion):
- 论文展示了利用LLMs可以显著提高文本嵌入的质量。
- 通过在多语言上生成多样化的合成数据,结合Mistral模型的强大语言理解能力,在MTEB基准测试中几乎所有任务类别都取得了新的最先进结果。
- 训练过程比现有的多阶段方法更加简化和高效。
限制(Limitations):
- 使用LLMs进行文本嵌入会导致推理成本显著增加。
- 存储成本相对较高,嵌入维度为4096。
- 在合成数据生成方面,依赖于手动提示工程。
论文的核心贡献在于提出了一种新颖的方法,利用大型语言模型生成合成数据,并在此基础上训练文本嵌入模型,取得了显著的性能提升。此外,论文还探讨了对比预训练的必要性,以及如何适应更长文本的嵌入任务。