Gecko 是一种通用的文本嵌入模型,可用于训练包括文档检索、语义相似度和分类等各种任务。
文本嵌入模型在自然语言处理中扮演着重要角色,为各种文本相关任务提供了强大的语义表示和计算能力。
在语义表示上,文本嵌入模型将文本转换为高维向量空间中的向量表示,其中语义上相似的文本在向量空间中距离较近,从而捕捉了文本的语义信息,这种表示有助于计算机更好地理解和处理自然语言;在文本相似度计算上,基于文本嵌入的向量表示,可以轻松地计算文本之间的相似度,从而支持各种应用,如信息检索、问答系统和推荐系统;在信息检索上,文本嵌入模型可以用于改善信息检索系统,通过将查询与文档嵌入进行比较,找到最相关的文档或段落;在文本分类和聚类上,通过将文本嵌入到向量空间中,可以进行文本分类和聚类任务。
不同于以往,最近的研究重点不是为每个下游任务构建单独的嵌入模型,而是寻求创建支持多个任务的通用嵌入模型。
然而,通用文本嵌入模型面临这样一个挑战:这些模型需要大量的训练数据才能全面覆盖所需的领域,研究主要集中在使用大量的训练示例来解决所面临的挑战。
LLM 的出现提供了一种强大的替代方案,因为 LLM 包含跨各个领域的大量知识,并且被认为是出色的小样本学习者。最近的研究已经证明了使用 LLM 进行合成数据生成的有效性,但重点主要是增强现有的人类标记数据或提高特定领域的性能。
这就促使研究者开始审视这一问题:我们可以在多大程度上直接利用 LLM 来改进文本嵌入模型。
为了回答这一问题,本文来自谷歌 DeepMind 的研究者提出了 Gecko,这是一种从 LLM 中蒸馏出来的多功能文本嵌入模型,其在 LLM 生成的合成数据集 FRet 上进行训练,并由 LLM 提供支持。
通过将 LLM 的知识进行提炼,然后融入到检索器中,Gecko 实现了强大的检索性能。在大规模文本嵌入基准(MTEB,Massive Text Embedding Benchmark)上,具有 256 个嵌入维度的 Gecko 优于具有 768 个嵌入尺寸的现有模型。具有 768 个嵌入维度的 Gecko 的平均得分为 66.31,在与 7 倍大的模型和 5 倍高维嵌入进行比较时,取得了相竞争的结果。
-
论文标题:Gecko: Versatile Text Embeddings Distilled from Large Language Models
方法介绍
Gecko 是一个基于 1.2B 参数预训练的 Transformer 语言模型,该模型经历了两个额外的训练阶段:预微调和微调。
预微调
该研究使用两个预微调数据集。首先是使用 Ni 等人提出的大规模社区 QA 数据集,该数据集包括来自在线论坛和 QA 网站的文本对。接下来,研究者从 Web 上抓取标题 - 正文文本对,这些文本对可以从网站上获得。
对大量无监督文本对进行预微调已被证明可以提高小型双编码器在各种下游任务中的性能,包括文档检索和语义相似性 。预微调阶段的目标是让模型接触大量的文本多样性,这对于训练紧凑型文本嵌入模型是必要的。
FRet :两步蒸馏
使用 LLM 生成 FRet 的两阶段方法。一般来讲,训练嵌入模型的传统方法依赖于大型的、手动标记的数据集。然而,创建此类数据集既耗时又昂贵,并且常常会导致不良偏差和缺乏多样性。在这项工作中,本文提出了一种生成合成数据来训练多任务文本嵌入模型的新方法,该方法通过两步蒸馏可以全面利用 LLM 掌握的知识。生成 FRet 的整体流程如图 2 所示:
统一微调混合
接下来,本文将 FRet 与其他学术训练数据集以相同的格式结合起来:任务描述、输入查询、正向段落(或目标)和负向段落(或干扰项),从而创建一种新颖的微调混合。然后,本文使用这种混合与标准损失函数来训练嵌入模型 Gecko。
除了 FRet 之外,学术训练数据集包括:Natural Questions 、HotpotQA、FEVER、MedMCQA、MedMCQA、SNLI、MNLI 以及来自 Huggingface 的几个分类数据集。对于多语言模型,本文添加了来自 MIRACL 的训练集。所有数据集都经过预处理,具有统一的编码格式,包含任务描述、查询、正向段落和负向段落。
实验
该研究在 MTEB 基准上评估了 Gecko。表 1 总结了 Gecko 和其他基线的比较结果。
Gecko 在每个文本嵌入任务上都显著超越了所有类似大小的基线模型(<= 1k 嵌入尺寸,<= 5B 参数)。与 text-embedding-3-large-256(OpenAI)、GTR 和 Instructor 研究相比,Gecko-1b-256 性能更好。Gecko-1b-768 通常可以匹配或超过更大模型的性能,包括 text-embedding-3-large (OpenAI)、E5-mistral、GRit 和 Echo 嵌入。值得注意的是,这些模型都使用 3-4k 嵌入维度并且参数均超过 7B。此外,该研究还观察到 Gecko 在分类、STS 和摘要方面达到了新的 SOTA 水平。
多语言检索结果。表 2 总结了 Gecko 和其他基线在 MTEB 上的性能比较。
表 3 总结了不同的标记策略用于 FRet 的结果,实验过程中使用了不同的正样本和负样本段落。从结果可以发现使用 LLM 选择的最相关段落总是优于使用原始段落。表 5 也说明了这种情况经常发生。
FRet 提供了对多种任务的查询结果,包括问答、搜索结果、事实检查和句子相似度。表 4 测试了 FRet 的多样性如何影响 MTEB 中任务之间的模型泛化性。首先,该研究使用来自特定任务(例如,FRet 问答)的 30 万个数据来训练各个模型。此外,研究者还使用原始采样分布或均匀采样分布从所有四个任务中抽取的 300k 样本(每个任务 75k;FRet-all-task)来训练模型。观察到 FRet-all-tasks 模型的卓越性能,特别是当任务被均匀采样时。该研究还发现统一格式显著影响嵌入的质量,因为它有助于模型更好地分离不同的任务。
表 4 的最后几行展示了 Gecko 如何学习更好的语义相似性和分类。
了解更多内容,请参考原论文。