预训练语言模型如BERT和T5,是向量检索(后续文中使用密集检索)的关键后端编码器。然而,这些模型通常表现出有限的泛化能力,并在提高领域内准确性方面面临挑战。最近的研究探索了使用大型语言模型(LLMs)作为检索器,实现了各种任务的最新性能。尽管取得了这些进展,LLMs相对于传统检索器的具体优势,以及不同LLM配置—例如参数大小、预训练持续时间和对齐过程—对检索任务的影响仍然不清楚。在这项工作中,我们对包括领域内准确性、数据效率、零样本泛化、长文本检索、基于指令的检索和多任务学习在内的广泛检索任务进行了全面的实证研究。我们评估了超过15种不同的后端LLMs和非LLMs。我们的发现揭示了更大的模型和广泛的预训练一致地提高了领域内准确性和数据效率。此外,更大的模型在零样本泛化、长文本检索、基于指令的检索和多任务学习方面显示出显著的潜力。这些结果强调了LLMs作为密集检索中通用且有效的后端编码器的优势,为未来在这一领域的研究和开发提供了宝贵的见解。
我们翻译解读最新论文:大型语言模型作为密集检索基础,文末有论文链接。
1 引言
密集检索,作为信息检索(IR)的一个新范式,随着深度神经网络的进步而出现。与传统的IR方法不同,密集检索将查询和文档编码为共享潜在空间中的嵌入,通过嵌入相似性捕获它们的语义关系。密集检索模型已成为近期神经检索方法中的主导选择,并广泛应用于各种下游任务,如网络搜索、问答和句子相似性(Karpukhin等人,2020年;Xiong等人,2020年;Muennighoff等人,2022年)。在过去的几年中,密集检索模型广泛采用了BERT(Devlin等人,2018年)和T5(Raffel等人,2020年)等预训练语言模型作为它们的后端编码器。这些模型在识别查询和文档之间的语义相似性方面表现出色。然而,它们在足够通用以处理广泛的检索任务方面仍面临重大挑战(Muennighoff等人,2022年)。它们的领域内检索准确性通常受到其后端编码器容量的限制,例如参数数量(Ni等人,2021年)。此外,密集检索模型通常难以泛化到未见过的数据,需要用大量标记数据进行微调,以便在目标领域表现良好。最后,实现密集检索模型的多功能性需要同时在多个检索任务上进行训练,这要求后端编码器具有足够的容量(Zhang等人,2023年;Xiao等人,2023年)。最近,大型语言模型(LLMs)被提示或微调为密集检索模型,由于它们在语义理解和丰富的世界知识方面的优越能力,因此在广泛的检索任务中取得了改进的性能(Li等人,2023年;Wang等人,2023年;Zhuang等人,2024年;Muennighoff等人,2024年)。这些模型的参数从20亿到560亿不等,预训练充分度从几百亿到数万亿个token不等,包括基础模型和人类偏好对齐的聊天模型。尽管普遍理解更大的模型通常会产生更好的性能(Kaplan等人,2020年;Biderman等人,2023年),但后端LLMs的不同配置(即不同的参数数量、预训练充分度和对齐过程)对不同检索任务的具体益处仍然不清楚。
2 相关工作
相关工作从两个方面进行回顾:密集检索,基于LLM的检索器。首先,在神经检索器领域,密集检索模型一贯展示了在广泛的检索任务中优于传统的稀疏模型如BM25(Karpukhin等人,2020年;Ni等人,2021年;Muennighoff等人,2022年)。密集检索模型成功的关键因素之一是使用强大的预训练语言模型作为它们的初始化。在过去的几年中,像BERT(Devlin等人,2018年)和T5(Raffel等人,2020年)这样的预训练语言模型被广泛用作密集检索的后端编码器。例如,GTR(Ni等人,2021年)突出了基于T5的密集检索模型的领域内准确性和泛化能力,模型参数达到48亿。Fang等人(2024年)探索了密集检索模型的扩展规律,但将他们的研究限制在最多1100万个参数的BERT后端上,并且只探索了领域内的情况。目前,最先进的密集检索器采用超过70亿参数或更多的模型作为后端。Neelakantan等人(2022年)讨论了大规模无监督文本嵌入预训练,观察到当GPT基础的密集检索模型大小从3亿扩展到1750亿参数时,性能持续提高。此外,最近的研究如Wang等人(2023年)已经表明,直接用标记数据进行微调可以实现强大的性能。我们的研究专注于直接使用标记数据进行微调,同时比较各种后端编码器。
大型语言模型(LLMs)最近显示出作为密集检索的后端编码器的显著潜力,这归功于它们大量的参数和广泛的预训练。Repllame(Ma等人,2023年)微调了Llama-2-7B和Llama-2-13B,使它们既可以作为密集检索器也可以作为点式重排器。LLaRA(Li等人,2023年)引入了两个特别设计的预训练任务,以更好地适应后端Llama-27B模型的密集检索,从而在监督和零样本场景中都取得了显著改进。E5-mistral和Gecko(Wang等人,2023年;Lee等人,2024年)使用合成数据增强了基于LLM的密集检索器的训练,采用1.5亿和7亿参数的模型在各种检索任务中取得了显著成果。GRIT(Muennighoff等人,2024年)成功地将文本嵌入和生成统一在一个单一的LLM中,使用一个具有560亿参数(140亿激活参数)的模型,保持了与专门的仅嵌入和仅生成模型相当的性能水平。LLM2Vec(BehnamGhader等人,2024年)提出了一种无监督方法,将仅解码器的LLMs转换为密集检索器,展示了以无监督方式适应LLM后端编码器进行密集检索的巨大前景。PromptReps(Zhuang等人,2024年)利用人类偏好对齐的聊天LLMs产生高质量的密集表示,无监督地进行。
这些模型的参数从15亿到560亿不等,预训练覆盖了数百亿到数万亿个token,包括基础LLMs和人类偏好对齐的聊天LLMs。尽管利用具有不同配置和多样化训练策略的各种LLMs在检索任务中取得了令人兴奋的进展,后端LLMs的参数数量、预训练范围和对齐过程的变化对检索任务的具体益处仍然不确定。
3 预备知识
密集检索利用编码器将查询 q 和候选段落 p 投影到共享的密集嵌入空间中,得到嵌入hq和hp。然后应用一个评分函数,例如内积或余弦相似度,来模拟这些密集向量的相关性:
这允许通过在嵌入空间内执行近似最近邻(ANN)搜索来检索相关文档。在我们的研究中,我们比较了15种以上的后端编码器,它们在模型架构(仅编码器和仅解码器)、模型大小(从0.1B到32B)和预训练充分度(最多15T个token)方面有所不同。与先前的研究一致,我们使用[CLS]标记来获取BERT模型的文本表示,并为T5模型采用均值池化。例如,BERT将输入文本标记化为序列 T: [CLS], t1, …, tN , [EOS]。然后BERT对这个标记序列进行编码,生成的输出嵌入被组合以形成文本嵌入,[CLS]标记执行此集成:
当使用大型语言模型(LLM)作为后端编码器时,需要以不同的方式创建文本嵌入。大多数LLM使用仅解码器架构和因果注意力机制,这意味着只有输入序列中的第一个标记可以访问全局上下文。因此,文本嵌入是从特殊标记[EOS]的输出嵌入中取出的:
给定查询-段落对(qi, pi+),,我们采用标准InfoNCE损失在批内负样本和硬负样本上进行训练:
其中 pj−是负样本集合,s(q, p) 是查询和段落的评分函数。在本文中,我们采用基于温度的余弦相似度函数如下:
温度超参数 τ 在所有实验中固定为0.02。
4 实证研究
在这一部分,我们旨在解决两个关键研究问题:1) 对于不同的检索任务,LLMs作为后端编码器相比非LLMs能提供哪些具体优势?2) 对于具有不同配置的LLMs(即不同的参数数量、预训练充分度和对齐过程),哪些因素更能贡献于不同检索任务的后端编码器。为了回答这些问题,我们在密集检索的六个关键维度上进行了全面的实证研究,每个维度包括几个具体的检索任务。这些维度使用各种预训练语言模型作为后端编码器进行调查,重点关注:领域内准确性(第4.1节)、数据效率(第4.2节)、零样本泛化(第4.3节)、长文本检索泛化(第4.4节)、基于指令的检索(第4.5节)和多任务学习(第4.6节)。
4.1 领域内准确性
设置: 我们使用MS MARCO(Nguyen等人,2016)来训练并评估具有不同后端编码器的密集检索模型的领域内准确性。具体来说,我们采用了BERT(Devlin等人,2018)的110M和330M参数(BERT-base和BERT-large)、T5(Raffel等人,2020)编码器,参数数量从110M到4.8B不等,以及包括Llama、Phi、Gemma和Qwen1.5系列在内的多种LLMs(Touvron等人,2023;Gunasekar等人,2023;Bai等人,2023;Team等人,2024)。需要注意的是,不同的LLMs具有不同的配置。例如,phi-1.5模型是一个轻量级LLM,具有13亿参数,并且在相对较少的token(1500亿)上进行了预训练,表明预训练充分度较低。相比之下,Llama-3-8B模型在超过15T的token上进行了广泛的预训练,远远超过了Llama-2-7B使用的2T token。Qwen1.5系列提供了不同大小的各种模型,所有这些模型都在相同的语料库上进行了预训练,使我们能够直接比较扩大模型大小的效果。所有模型都使用128的批量大小进行训练,并结合了7个硬负样本,以确保在领域内检索准确性方面的公平比较。所有训练操作都在8个A800(80GB)GPU上进行。我们使用Adam优化器,初始学习率为3e-4,并进行线性衰减。对于LLM检索器的训练,我们采用了LoRA(Hu等人,2021),它已被证明在检索任务中与全参数微调具有类似的效果(Ma等人,2023)。使用MS MARCO开发集评估每个模型的领域内准确性,该集包含6980个查询。我们使用NDCG@10、MRR@10、Recall@10和Recall@1000作为评估指标,全面分析领域内性能。
结果与分析: 如图1所示,结果表明,随着参数数量的增加,模型性能普遍提高。这一趋势在同一个系列的模型中尤为明显。例如,Qwen1.5系列展示了这一进展:Qwen1.5-0.5B模型得分为36.7,而Qwen1.5-32B模型达到了42.6,提高了5.9个百分点。这一趋势表明,增加模型大小是获得更好领域内准确性的可行方法。详细结果见表5。
此外,结果表明基于LLM的检索器显著优于基于非LLM的检索器。Gemma-2B的性能已经超过了所有基于BERT和T5的模型,尽管它的参数数量少于T5-xxl模型。这表明LLMs的广泛预训练和先进的语言理解能力作为密集检索的后端编码器提供了显著的优势。一个有趣的观察是,较小的模型有时可以略微优于较大的模型。Qwen1.5-0.5B模型,参数较少,超过了Phi-1.5-1.3B模型,并与Phi-2-2.7B模型竞争非常接近。这种性能差异可能归因于预训练充分度的差异。Qwen1.5模型从更广泛和多样化的预训练数据中受益,总计超过3万亿个token,而Phi模型在较小量的高质量数据上进行了预训练,Phi-1.5有1500亿个token,Phi-2有1.4万亿个token。这种广泛的预训练使Qwen1.5-0.5B模型在微调检索任务时表现更好。从Llama3-8B和Llama-2-7B模型之间,以及LLMs和非LLMs之间的比较中,可以得出类似的结论。后端编码器的广泛和多样化的预训练可以显著提高领域内检索准确性,即使补偿了较小的参数数量。
4.2 数据效率
设置: 我们使用在MS MARCO上训练了不同步数的模型的检查点,以评估它们在开发集上的表现,以更好地理解参数数量和预训练充分度对数据效率和收敛速度的影响。我们比较了BERT-large、Qwen1.5-0.5B和Llama-2-7B,以探索模型参数数量和预训练充分度对数据效率的影响。值得注意的是,BERT-large和Qwen1.5-0.5B具有相似的非嵌入参数数量,而Qwen1.5-0.5B基于解码器架构,并经过了更广泛的预训练。
结果与分析: 如图2所示,我们的发现表明,更大的模型大小导致更高的数据效率和更快的收敛。具体来说,在MS MARCO上训练100步后,Llama-2-7B比Qwen1.5-0.5B高出5.4个百分点,比BERT-large高出14.4个百分点。这表明随着参数数量的增加,可以少用标记数据就能获得更好的性能。此外,如表1所示,当比较100步和完整的3700步训练之间的相对分数差异时,Llama-2-7B的分数差异为8.8个百分点,小于Qwen1.5-0.5B的9.7个百分点和BERT-large的15.3个百分点。这表明更大的模型能够更快地收敛。实验结果还表明,即使参数大小相似,LLMs也比非LLMs具有更好的数据效率。例如,在MS MARCO上训练100步后,Qwen1.5-0.5B比BERT-large高出9个百分点。尽管参数数量相似,Qwen1.5-0.5B经过了更广泛的预训练(超过3万亿个token,与BERT的33亿个token相比),并采用了解码器架构,这增强了其语言理解能力,并在检索任务中的关键文本辨别能力上实现了更快的收敛。
4.3 零样本泛化
设置: 传统的密集检索模型通常在未见过数据的零样本检索上存在困难(Ni等人,2021)。我们研究了基于LLM的检索器能为零样本泛化带来的具体好处,重点关注不同模型大小和预训练充分度。我们在BEIR(Thakur等人,2021)评估套件上评估了所有模型的13个零样本检索任务,该套件涵盖了包括医疗检索、金融检索和重复检测在内的多样化检索任务和领域。所有模型在经过MS MARCO训练后直接进行了零样本评估。在评估期间,我们将查询的最大长度设置为64个token,将段落的最大长度设置为256个token。
结果与分析: 结果显示在图4中,通过在13个检索任务中平均性能的NDCG@10来衡量。基于LLM的检索器在零样本检索任务中显著优于非LLM检索器,表明LLMs的广泛知识和强大的泛化能力对于零样本检索非常有利。值得注意的是,这种改进并不仅仅是模型大小增加的结果:即使是Qwen1.5-0.5B模型,其非嵌入参数数量相似,也比BERT-large模型展现出更好的泛化能力(+1.6%)。这突出了LLMs作为各种检索领域的强大编码器的潜力。对于LLMs的不同配置,模型大小是影响其泛化能力的主要因素。与领域内准确性不同,在领域内准确性中模型大小和预训练充分度都很重要,泛化性能几乎直接与参数数量相关。例如,尽管Qwen-0.5B模型从更广泛的预训练中受益,但其性能却不如参数大小更大但预训练充分度较少的Phi-1.5-1.3B和Phi-2-2.7B模型。这表明更大的模型,具有更好的容量,可以防止过度拟合特定领域的检索数据,从而在未见数据上实现更好的泛化。
4.4 长文本检索泛化
设置: 传统的密集检索模型受到预训练和检索训练期间使用的最大输入长度的限制,而延长此长度会显著增加计算成本(Chen et al., 2024)。鉴于LLMs是使用更长的上下文窗口进行预训练的,我们调查它们是否可以在检索时有效地泛化到更长的长度,即使在训练时使用的是较短的段落长度。我们使用MS MARCO进行训练,并设置最大查询长度为64个token,最大段落长度为256个token。所有其他超参数与第4.1节中使用的一致。为了评估,我们使用NarrativeQA(Kočiský et al., 2018),它需要长上下文信息才能准确检索目标查询。评估在256到8192个token的不同最大长度下进行,目的是彻底评估每个模型在检索任务中的泛化能力。
结果与分析: 结果如图3所示。与BERT相比,LLMs的长上下文窗口改善了长度泛化。在NarrativeQA检索任务中,当评估上下文长度为256个token时,BERT-large比Qwen1.5-0.5B高出0.4个百分点。然而,当长度为512个token时,Qwen1.5-0.5B超过了BERT-large 0.9个百分点。这一有趣的发现表明,随着输入长度的增加,LLM检索器的泛化能力更好,而非LLM检索器如BERT在更长的输入上表现不佳,并受到512个token限制的约束,除非明确扩展。详细结果见表7。
4.5 基于指令的检索
设置: 密集检索模型通常缺乏适应用户不同检索意图的灵活性,这在现实世界的检索场景中既常见又关键(Su et al., 2022)。我们将指令纳入到密集检索模型的训练中,目的是评估具有不同后端编码器的模型对指令的理解能力。具体来说,我们准备了五个检索指令,并在MS MARCO上训练期间将它们添加到查询前。我们在六个检索任务上进行评估,包括领域内和领域外的场景,以确定是否加入指令可以增强对检索意图的理解,从而提高不同模型的一般性能。指令如图5所示。
结果与分析: 如表3所示,用指令训练显著提高了LLM检索器的性能,而BERT检索器的性能则有所下降。这表明LLMs具有更优越的语义理解能力,能够根据指令调整检索目标。
我们在MS MARCO开发集上使用训练期间未见过的指令评估模型。结果如表2所示。这些指令是对训练指令的复杂修改(见图5),旨在测试模型对新指令的鲁棒性。结果表明,LLM检索器对这些新指令表现出强大的鲁棒性,而BERT由于未见过的指令的干扰而性能下降。这意味着LLMs可以更好地利用它们在现实世界检索场景中作为密集检索后端编码器的能力,提供更好的定制性和适应性,以满足多样化的用户检索需求。
此外,我们采用聊天LLMs作为后端编码器,以调查这些对齐的模型是否能够更好地利用检索指令,结果如表3所示。与预期相反,当在与基础模型相同的设置下训练和测试时,聊天LLMs并没有显示出进一步的改进。
4.6 多任务学习
设置: 训练一个多功能的密集检索模型是具有挑战性的,因为不同的检索任务通常需要特定的语义信息,这可能导致相互干扰(Zhang et al., 2023; Xiao et al., 2023; Neelakantan et al., 2022)。我们探索了不同后端编码器的多任务学习能力,这对于开发强大的检索器至关重要。我们的研究包括四个不同的检索任务和一个文本相似性任务:1) ToolLLM (Qin et al., 2023):此任务评估检索器根据提供的指令和工具描述识别必要工具的能力。使用NDCG@5在测试集上进行性能评估。2) QReCC (Anantha et al., 2020):此任务涉及根据对话上下文和最近的查询的组合检索相关知识。按照之前的研究,使用NDCG@3进行性能评估。3) NLI (Bowman et al., 2015):我们使用NLI训练集建立文本相似性能力,并在MTEB (Muennighoff et al., 2022)上的STS任务中评估模型。4) HotpotQA (Yang et al., 2018):此任务测试在多跳问答场景中的检索性能。5) MS MARCO (Nguyen et al., 2016):此任务评估不同模型的网络搜索能力。
结果与分析: 如表4所示,结果表明了一个明显的趋势:随着模型大小的增加,五个不同检索任务的平均性能有所提高。这表明更大的模型表现出更强的通用性和容量,表明它们有更大的潜力作为多任务场景中的通用嵌入模型。除了比较每个模型在多个任务中的绝对性能外,我们还进行了实验,对比了分别在每个单独任务上训练的模型与联合多任务训练的性能。表4显示了相对性能差异。我们观察到,与单任务训练相比,多任务训练在所有任务中都导致了相对性能下降。这与(Neelakantan et al., 2022)提出的假设一致,表明某些检索任务可能具有固有的冲突定义,例如搜索和句子相似性任务。值得注意的是,随着模型大小的增加,性能下降减少,表明更大的模型可能能够在多任务训练期间学习任务之间的内在关系和区别。这种能力可能允许这些模型缩小多任务和单任务训练之间的性能差距,在某些情况下甚至超过单任务训练的性能。这表明具有更多参数数量的LLMs有潜力在多个检索任务中作为通用的通用检索器。
5 结论
在本文中,我们对大型语言模型(LLMs)作为密集检索任务的后端编码器的优势和配置进行了全面的实证调查。我们的重点是将LLMs与非LLMs进行比较,并分析各种LLM配置的影响,例如参数计数、预训练充分度和对齐过程。我们的研究突出了使用LLMs作为密集检索任务后端编码器的显著优势。我们发现,增加参数计数并确保后端编码器的充分预训练可以提高领域内准确性。此外,采用更大的模型在零样本检索泛化、长文本检索泛化和多任务学习中一致地获得性能提升。这些见解为未来的研究提供了基础,旨在通过平衡模型大小和后端LLMs的预训练充分度来优化密集检索模型,以在多样化的检索场景中实现卓越的性能。
参考资料
标题:Large Language Models as Foundations for Next-Gen Dense Retrieval: A Comprehensive Empirical Assessment
作者:Kun Luo, Minghao Qin, Zheng Liu, Shitao Xiao, Jun Zhao, Kang Liu
单位:中国科学院自动化研究所,北京人工智能研究院
概述:本文通过广泛的实证研究,评估了大型语言模型(LLMs)在密集检索任务中的性能,发现更大的模型和充分的预训练能显著提升检索准确性和泛化能力。
链接:https://arxiv.org/pdf/2408.12194
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。