这篇论文的核心贡献是提出了一种名为 LLaRA (LLM adapted for dense RetrivAl) 的新方法,旨在解决大型语言模型(LLMs)在直接应用于稠密检索任务时的根本性问题。它通过一个高效的“事后适应”(post-hoc adaptation)阶段,显著提升了LLM作为检索模型基座(backbone)的能力。


问题 (Problem)

大型语言模型(LLMs)虽然在语义理解上能力强大,但其预训练方式与稠密检索的需求存在天然的“鸿沟” 。

  • LLM的预训练目标:LLM(如GPT系列)主要通过自回归的文本生成任务进行预训练,其目标是预测下一个词元(token)。这使得模型生成的文本嵌入(text embedding)更侧重于捕捉**局部和短期(local and near-future)**的语义信息,以便生成连贯的下文。
  • 稠密检索的需求:稠密检索需要将查询(query)和文档(document)映射到一个语义空间中,并通过向量相似度来判断其相关性。这要求文本嵌入能够高度概括和表示**全局(global)**的语义信息 。
  • 核心矛盾:直接使用LLM(尤其是decoder-only架构)最后一个词元的输出嵌入作为全局表征,其效果会受到限制,因为这个嵌入本质上是为了生成任务优化的,而不是为了全局表示。

方法 (Method)

为了解决上述问题,作者提出了LLaRA,它通过两个精心设计的预训练任务(pretext tasks)来调整LLM,使其生成的嵌入更适合稠密检索。

  • 核心思想:通过让LLM的文本嵌入去完成“预测整个句子”而非“预测下一个词”的任务,来迫使其学习全局语义表示。

  • 模型框架 (Framework - Figure 1 解读)
    Figure1

    • 该框架展示了LLaRA如何处理一段文本(例如来自维基百科的两句话)。
    • 输入: “Norwegian forest cat is a breed cat originating in Northern Europe. This natural breed is adapted to a very cold climate.”
    • 处理: 模型将第一句话作为输入,并拼接上两个特殊的提示(prompt):“the original sentence:” 和 “the next sentence:”。
    • 生成嵌入: LLM处理这个拼接后的序列,并在两个提示语后的特殊token(<\s>)位置分别生成两个文本嵌入,一个用于EBAE任务,一个用于EBAR任务。
    • 任务:
      1. EBAE (绿色箭头): 使用第一个嵌入来重构(预测)原始输入句子“Norwegian forest cat…”。
      2. EBAR (蓝色箭头): 使用第二个嵌入来重构(预测)原始输入的下一句“This natural breed…”。
  • 两个预训练任务 (Two Pretext Tasks)

    1. EBAE (Embedding-Based Auto-Encoding):

      • 目标:让文本嵌入能够表示输入文本自身的全局语义
      • 做法:使用LLM生成的文本嵌入 ete_t 来预测输入句子本身的所有词元。如果一个嵌入能还原整个输入,那么它必然蕴含了完整的全局信息。
      • 应用场景:这个任务训练出的嵌入能力,天然适合处理“相似性搜索”场景,比如查找与输入文本语义上最接近的内容。
    2. EBAR (Embedding-Based Auto-Regression):

      • 目标:让文本嵌入学会关联查询(query)和文档(doc)
      • 做法:使用文本嵌入 ete_t 来预测输入文本的下一个句子。作者认为,一个相关的文档(如问题的答案)可以被看作是查询的一种“合理的下一句”。
      • 应用场景:这个任务训练出的嵌入能力,更适合处理“问答”这类需要推理和关联匹配的场景。
  • 数学公式 (Mathematical Formulas)

    • 稠密检索基础: 查询 qq 和文档 dd 的相关性通过嵌入向量的相似度计算:sim(q,d)=eq,edsim(q, d) = \langle e_q, e_d \rangle
    • LLaRA嵌入生成:
      • 为了提升效率,两个任务的提示语被合并成一个联合提示(joint prompt):"[输入文本] The original sentence: <\s> The next sentence: <\s>"。并通过修改注意力掩码(attention mask)使两个任务的计算相互独立,在一个前向传播中同时得到两个嵌入。
      • EBAE 嵌入: etαLLaMA(T,SELF,\s)[1]e_{t}^{\alpha} \leftarrow LLaMA(T, SELF, \langle\backslash s\rangle)[-1],其中 SELF 代表提示 “The original sentence:”。
      • EBAR 嵌入: etβLLaMA(T,NEXT,s)[1]e_{t}^{\beta} \leftarrow LLaMA(T, NEXT, \langle s\rangle)[-1],其中 NEXT 代表提示 “The next sentence:”。
    • 训练目标 (Training Objective):
      • LLaRA的训练目标是让文本嵌入(etαe_t^\alphaetβe_t^\beta)通过一个线性投影层来预测目标句子中的每一个词元。这被构建为一个多分类问题,其目标函数如下:

        mintTexp(eTWt)vVexp(eTWv)\min \sum_{t \in \mathcal{T}} \frac{\exp(e^T W_t)}{\sum_{v \in V} \exp(e^T W_v)}

      • 公式解读:
        • ee: 指的是文本嵌入 etαe_t^\alphaetβe_t^\beta
        • WRV×dW \in \mathbb{R}^{|V| \times d}: 是一个线性投影矩阵,将维度为 dd 的文本嵌入映射到整个词表空间。VV 是词表空间。
        • T\mathcal{T}: 是目标句子的词元集合。对于EBAET\mathcal{T}是输入句子;对于EBART\mathcal{T}是下一句。
        • 这个公式本质上是计算用单个全局嵌入 ee 去预测目标句子 T\mathcal{T} 中所有词元的交叉熵损失之和。

Baseline

论文与多种基线模型进行了全面对比:

  • 稀疏检索: BM25。
  • 基于BERT的稠密检索模型: ANCE, RetroMAE, SimLM等。这些是基于中等规模预训练模型(~110M参数)的代表性工作。
  • 基于LLM的稠密检索模型:
    • GTR-XXL (4.8B), SGPT (5.8B), OpenAI-Ada-002
    • RepLLaMA (7B): 这是最重要的一个基线,因为它同样使用了LLaMA-2-7B模型和相同的微调方法(hard negatives),但没有经过LLaRA的适应性训练 。因此,与RepLLaMA的直接对比可以最干净地证明LLaRA方法本身的有效性。

数据集 (Datasets)

  • 适应性训练 (Adaptation Training): 在DPR整理的无标签维基百科语料库上进行。这说明LLaRA不需要任何有监督标注数据,成本较低。
  • 下游任务微调 (Fine-tuning): MS MARCO 通道检索(passage retrieval)数据集。
  • 评测 (Evaluation):
    • MS MARCO: 通道检索和文档检索(document retrieval)任务。
    • BEIR benchmark: 一个异构的、包含多种检索场景(如问答、事实核查等)的基准测试集,用于评估模型的零样本(zero-shot)泛化能力

可复现性 (Reproducibility)

  • 代码: 论文承诺模型和源代码将在BGE的GitHub仓库中公开发布(https://github.com/FlagOpen/FlagEmbedding)。
  • 算力:
    • 模型基座: LLaMA-2-7B (base)。
    • 适应性训练: 在维基百科语料上训练了10,000步,批大小(batch size)为256,序列长度为1024。这对算力有一定要求。
    • 微调: 微调阶段采用了LoRA(Low-Rank Adaptation)技术,这是一种参数高效的微调方法,可以显著降低LLM微调的资源消耗。

可改进的 1 个点

  • 与更先进的微调方法结合
    • 论文中明确提到,LLaRA在微调阶段仅使用了简单的“ANN hard negatives”方法。作者自己也指出,如果未来能够利用更先进的微调技术,LLaRA的性能很可能被进一步提升
    • 例如,可以尝试将LLaRA适应后的模型与知识蒸馏(knowledge distillation,从更强大的交叉编码器cross-encoder中学习)、更复杂的负采样策略(如SimANS)或其他对比学习框架结合,可能会在现有基础上取得更好的效果。

可以被引用的一些结论

  1. LLM与检索任务的不匹配性: 大型语言模型因其自回归的生成式预训练目标,其输出嵌入天然地偏向于捕捉局部语义,这与稠密检索所需的全局语义表示存在明显的不匹配。
  2. LLaRA适应训练的有效性: LLaRA提出的事后适应方法能显著提升LLM的文本嵌入能力。与使用相同基座模型但未经适应的RepLLaMA相比,LLaRA在MS MARCO通道检索MRR@10上提升了1.9%,在文档检索MRR@100上提升了1.9%,在BEIR零样本评测NDCG@10上提升了1.0%。
  3. LLM作为检索基座的巨大潜力: 从基于BERT的编码器转向基于LLM的编码器,为稠密检索带来了巨大的性能飞跃。例如,在MS MARCO通道检索任务上,LLaRA相比之前的SOTA(如RetroMAE)在MRR@10指标上高出近4个百分点。
  4. LLM显著提升检索模型的泛化能力: 相比于在零样本场景下表现不佳的BERT类模型,基于LLM的检索器(特别是经过LLaRA优化的模型)在BEIR基准测试上展现了强大的泛化能力,平均性能远超BM25和BERT基线。