RankingGPT论文笔记

大模型应用论文

1.基础知识补充完善

1.1大语言模型

大型语言模型是深度学习的一个子集,可以预训练并进行特定目的的微调。这些模型经过训练,可以解决诸如文本分类、问题回答、文档摘要、跨行业的文本生成等常见语言问题。然后,可以利用相对较小的领域数据集对这些模型进行定制,以解决零售、金融、娱乐等不同领域的特定问题

大型语言模型的三个主要特征是大型、通用性和预训练微调

"大型"既指训练数据集的巨大规模,也指参数的数量。

"通用性"意味着这些模型足够解决常见问题。

"预训练和微调"是指用大型数据集对大型语言模型进行一般性的预训练,然后用较小的数据集对其进行特定目的的微调。

使用大型语言模型的好处包括:一种模型可用于不同的任务;微调大型语言模型需要的领域训练数据较少;随着数据和参数的增加,大型语言模型的性能也在持续增长。

"Query-document"这个词组在论文中通常指的是查询(query)与文档(document)之间的相关性匹配问题。在信息检索领域,这个问题主要关注如何有效地评估一个给定查询与一组文档中每个文档的相关性,并据此进行排序或筛选 1。具体来说,相关性匹配可以基于全局的匹配信号,也可以基于局部的term级别的匹配信号 1。例如,Deep Relevance Matching Model (DRMM) 是一种基于全局匹配信号的方法,它通过创建匹配直方图来捕捉查询和文档之间的相关性

1.2文本排序

文本排序是根据候选文档与给定查询的相关性对候选文档进行排序的任务。

使用大语言模型(LLM)进行文本排序任务时,通常涉及到通过模型的语言理解能力来对文本进行语义排序、情感排序或其他更复杂的排序任务。以下是一些使用LLM进行文本排序的常见方法:

1. 语义排序
  • 任务描述:将一组文本按照与某一特定主题或查询的相关性进行排序。
  • 实现方法
    • 文本嵌入:利用LLM生成文本的嵌入向量,将文本映射到高维空间中。
    • 相似度计算:计算每个文本与查询文本之间的相似度(如余弦相似度),然后按相似度排序。
    • 排序结果:根据相似度对文本进行排序,最相关的文本排在最前面。
2. 情感排序
  • 任务描述:根据文本的情感强度或类型(正面、负面、中性等)进行排序。
  • 实现方法
    • 情感分析:利用LLM进行情感分析,获取每个文本的情感得分。
    • 排序规则:根据情感得分进行排序。例如,可以按正面情感强度从高到低排序,或者按负面情感强度从低到高排序。
3. 复杂排序任务
  • 任务描述:结合多个因素(如语义、情感、文本长度等)进行综合排序。
  • 实现方法
    • 多维度特征提取:从文本中提取多个维度的特征,如语义相似度、情感得分、长度等。
    • 加权排序:根据各个维度的权重进行综合评分,然后根据综合评分对文本排序。
    • 自定义模型:可以通过训练特定的模型,让LLM对不同因素进行权衡,实现自定义排序。
4.示例代码

以下是一个简单的示例,展示如何使用LLM进行语义排序:

from transformers import pipeline
from sklearn.metrics.pairwise import cosine_similarity
import numpy as np

# 初始化一个文本嵌入模型(使用预训练的LLM)
embedder = pipeline('feature-extraction', model='bert-base-uncased')

# 输入文本和查询
texts = [
    "The cat sits on the mat.",
    "A quick brown fox jumps over the lazy dog.",
    "Artificial intelligence is transforming the world."
]
query = "AI and machine learning"

# 生成文本嵌入
text_embeddings = np.array([np.mean(embedder(text), axis=1)[0] for text in texts])
query_embedding = np.mean(embedder(query), axis=1)[0]

# 计算相似度并排序
similarities = cosine_similarity([query_embedding], text_embeddings)[0]
sorted_indices = np.argsort(similarities)[::-1]
sorted_texts = [texts[i] for i in sorted_indices]

# 输出排序结果
print("排序后的文本:")
for text in sorted_texts:
    print(text)
5.适用场景
  • 文档检索:根据查询对大量文档进行排序,以返回最相关的结果。
  • 内容推荐:根据用户偏好或历史记录对内容进行排序,以提供个性化推荐。
  • 文本分类与分组:对文本进行分类后按类别排序,或根据类别相关性排序。

通过上述方法,LLM可以帮助解决各种复杂的文本排序任务,并且能根据任务需求进行灵活调整。

6.补充

候选文件通常由检索器模块从大规模语料库中选择。

域内场景 (In-Domain):

  • 在域内场景中,查询(query)和文档(document)都来自同一个主题或领域。这种情况下,系统期望能够准确理解查询的语义,并在相同主题的文档中找到最相关的信息。例如,在电子商务产品搜索中,如果用户搜索“红色耐克跑鞋”,系统需要在跑鞋类产品中找到符合这一描述的相关商品。在这种情况下,相关性匹配模型可能会利用统计方法或深度学习方法来评估查询和文档之间的语义相似度,如DSSM模型或其变体CNN_DSSM模型,这些模型通过学习query和doc的表示来进行匹配打分 。

域外场景 (Out-of-Domain):

  • 域外场景指的是查询和文档来自不同的领域或主题。在这种情况下,系统面临的挑战是如何在不同领域的文档中找到与查询相关的信息。例如,如果一个用户在医疗领域的文档库中搜索关于“心脏病”的信息,但是输入了一个与技术相关的查询,如“服务器故障”,系统需要能够识别出即使在医疗领域中也与“服务器”相关的文档。这通常需要更高级的语义理解能力,可能需要使用更复杂的模型,如引入混合学习策略或迁移学习来增强模型对于不同领域文档的适应性 18。

2.论文粗读(翻译)

摘要(Abstract):

论文讨论了文本排名在各种信息检索应用中的重要性,并指出了大型语言模型(LLMs)在自然语言处理中的成功激发了将其应用于文本排名的兴趣。作者指出,尽管已有方法显示了潜力,但存在一个显著的差异,即LLMs的训练目标通常集中在下一个词的预测上,而文本排名目标是评估查询-文档的相关性。为了解决这一差距,作者提出了一种渐进的多阶段训练策略,通过弱监督数据集和监督训练来提升LLMs在文本排名任务中的潜力。

引言(Introduction):

文本排名任务是将候选文档根据与给定查询的相关性进行排序。作者提到了预训练语言模型(PLMs)的出现,如BERT,以及大规模标注数据集,例如MS MARCO,这些进步显著提高了文本排名模型的性能。此外,LLMs的出现,如LLaMA和GPT4,为自然语言处理带来了范式转变。

相关工作(Related Work):

论文回顾了文本排名的相关研究,包括点式(pointwise)、对式(pairwise)和列表式(listwise)的无监督文本排名方法,以及基于PLMs的监督文本排名模型。

方法(Method):

作者提出了一个两阶段的训练方法,包括弱监督相关性预训练阶段和监督微调阶段。在弱监督阶段,使用大规模的弱监督文本对进行连续预训练。在监督微调阶段,利用预训练的LLM和高质量的监督数据来进一步提升模型的文本排名能力。

实验(Experiments):

论文进行了一系列的实验来评估所提出方法的有效性。实验使用了不同的LLMs,包括BLOOM 560M-7B、LLaMA-7B、Baichuan7B和Qwen-7B,并在多个基准测试中进行了评估,包括MS MARCO、TREC 2019和TREC 2020等。

结论(Conclusion):

作者通过两阶段训练方法解决了LLMs预训练目标与文本排名任务目标之间的不一致性,并证明了该方法在领域内和跨领域场景中的有效性。

3.论文图表

figure 1

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

图一:图 1 在论文中提供了一个关于真实查询(ground truth query)和由大型语言模型(LLM)生成的查询(LLaMA-generated query)的比较示例。这个示例来自于 MS MARCO 数据集。

为什么要比较生成的查询,而不是论文标题所提出的文本排序结果?

  1. 查询-文档相关性:在文本排名任务中,系统需要理解查询与文档之间的相关性。如果一个LLM能够生成与文档内容紧密相关的查询,这表明它能够更好地捕捉到文档的关键信息,从而提高排名的准确性。
  2. 评估LLMs的理解能力:通过比较生成的查询和真实查询,研究者可以评估LLM对文档内容的理解程度。如果LLM能够生成高质量的查询,这表明模型能够理解并处理复杂的文本信息。
  3. 优化文本排名模型:论文中提出的渐进式多阶段训练策略(Progressive Two-Stage Training, PTST)旨在通过弱监督预训练和监督微调来优化LLMs的文本排名能力。生成的查询提供了一种方式来评估训练策略的效果。

为什么比较结果相较于Ground-Truth有明显差距?

大型语言模型的训练是基于预测下一个词的任务,这种训练方式与实际应用中需要评估文本相关性的目标不一致。虽然这些模型在生成以输入文本为条件的连贯且与上下文相关的文本。方面表现很好,但在处理文本排序任务时,可能无法完全满足实际需求。

因此LLM 生成的文本与语义相关的文本之间存在差异,与黄金参考具有明显差别,生成的查询通常包含有关文档的不相关信息

MS MARCO(Microsoft MAchine Reading COmprehension)

是微软发布的一个大规模机器阅读理解数据集和评测任务。它主要用于训练和评估自然语言处理(NLP)模型在问答、文本排序、和信息检索等任务上的表现。MS MARCO 是自然语言处理领域的重要基准之一,广泛用于开发和评估新一代的问答系统和搜索引擎。

MS MARCO 的主要组成部分

  1. 问答数据集
    • 包含来自Bing搜索引擎的真实用户查询和相应的回答。
    • 数据集由数百万个问题及其对应的相关文档或段落构成。
    • 目标是让模型能够阅读文档内容,并生成简洁的答案。
  2. 信息检索任务(MS MARCO Passage Ranking)
    • 该任务要求模型根据查询对一组文本段落(passages)进行排序,目的是找到最相关的段落。
    • 数据集包含大量查询与多个候选段落,每个段落都需要根据其与查询的相关性进行排序。
  3. 文档检索任务(MS MARCO Document Ranking)
    • 类似于段落排序任务,但检索对象从段落扩展到了完整的文档。
    • 目标是从大量文档中找出与查询最相关的文档并进行排序。
  4. 对话式问答
    • 这一部分数据集针对多轮对话场景中的问答任务设计,模型需要理解上下文对话并提供连续性答案。

MS MARCO 的应用

  • 自然语言处理研究:MS MARCO 被广泛应用于训练和评估各种 NLP 模型,包括 BERT、RoBERTa、T5 等。
  • 搜索引擎优化:许多搜索引擎和推荐系统使用 MS MARCO 数据集进行模型训练,以提高搜索结果的相关性和用户体验。
  • 问答系统开发:该数据集为开发更为精确和人性化的问答系统提供了一个强大的训练资源。

MS MARCO 的挑战

  • 大规模数据处理:由于数据集非常庞大,处理和训练需要强大的计算资源。
  • 复杂性:数据集中包含许多复杂的查询,模型需要能够理解上下文并从大量信息中提取相关内容。
  • 评测标准:MS MARCO 使用各种标准(如 MRR, NDCG)来评估模型的排序和检索性能。

MS MARCO 为NLP领域带来了巨大的推动力,特别是在问答系统和信息检索方面,是当前最重要的基准数据集之一。

结论

依靠大型语言模型生成文本的概率来判断文本与查询的相关性,可能不能充分满足文本排序任务的需求

figure2

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这张图展示了一个两阶段的训练流程,主要用于提升大型语言模型(LLM)在文本排序任务中的表现。以下是对图中每个部分的详细解释:

Step 1: Continuous Pre-training

连续预训练阶段

  • 输入:模型接收多种形式的文本输入,如文档正文(Body)、答案(Answer)、评论(Comment)等。
  • 输出:模型生成与输入文本相关的标题(Title)、问题(Question)、帖子(Post)等内容。这些生成的内容用于加强模型对文本理解和生成的能力。
  • 目的:通过对大量弱监督数据进行连续预训练,让模型能够生成与输入文档相关的查询,从而在文本排序任务中打好基础。

Step 2: Supervised Fine-tuning

监督微调阶段

  • 输入:在这个阶段,模型接收一个查询(Query)和多个候选文档作为输入。这些候选文档包括一个正样本((d+))和若干个负样本((d_1-), (d_2^-), … , (d_m^-))。
  • 输出:模型的任务是根据输入的查询,确定哪个文档最相关。图中用对勾表示正样本,叉号表示负样本。通过对比学习(通常是对比学习损失),模型被训练为在对比多个文档时能够正确地将相关文档排在前面。
  • 目的:微调阶段的目标是通过利用高质量的监督数据进一步优化模型,使其在排序任务中表现得更好,同时在生成能力上保持一致性。

Training Pipeline(训练管道)

  • p i r a w pi_{raw} piraw, p i p r e d pi_{pred} pipred, p i s f t pi_{sft} pisft:这些标记表示模型在不同阶段的状态。
    • p i r a w pi_{raw} piraw 表示原始预训练模型的状态。
    • p i p r e d pi_{pred} pipred 表示经过第一阶段预训练后的模型状态。
    • ** p i s f t pi_{sft} pisft**表示经过第二阶段监督微调后的模型状态。

整体流程

  1. 第一阶段通过处理大量弱监督数据,模型增强了生成与文档相关的查询的能力。
  2. 第二阶段利用高质量的监督数据,通过微调进一步优化模型的排序能力,使其能够更准确地从候选文档中选出最相关的文档。

总结来说,这张图描述了一个逐步增强大型语言模型在文本排序任务中表现的训练流程,从连续预训练到监督微调,目的是让模型在理解和生成文本上更加精确和有效。

figure 3

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在这张图中,各个字符和符号代表的含义如下:

  1. SFT(Supervised Fine-Tuning):
    这个符号表示监督微调的过程,即在预训练模型的基础上,通过有标注的数据进一步优化模型,以提升其在特定任务上的性能。

  2. PEFT(Parameter-Efficient Fine-Tuning):
    这表示一种高效的参数微调方法,旨在通过减少微调时的参数量,来保持模型在预训练阶段所学到的有益特性。

  3. NTP(Next Token Prediction):
    这个符号代表“下一个Token预测”任务。在这个过程中,模型基于输入的正样本文档 (d^+) 生成一个相关的查询 (q),以巩固模型在预训练时对文档和查询关系的理解。

  4. DP(Difference Penalty):

    差异惩罚策略,表示通过比较预训练模型 ($ \pi_{\text{pred}} $) 和微调后模型 ( π sft \pi_{\text{sft}} πsft ) 的差异,并施加惩罚,来减少模型在微调过程中偏离原始预训练模型的程度。

  5. π_raw、π_pred、π_sft:

    • π_raw 表示原始的预训练模型。
    • π_pred 表示在连续预训练阶段之后的模型。
    • π_sft 表示经过监督微调之后的模型。

PEFT

通过冻结模型的大部分参数来限制微调模型与预训练参数的显著差异,从而维持持续的预训练改进。

根据 《What does BERT learn about the structure of language? 》表明,在多层 PLM 中,下层捕获一般语义特征,而上层编码特定于任务的信息,我们的方法只需要微调大型语言模型 (LLM) 的 top-k 转换器层,而其他结构保持不变。

NTP(next token prediction)

根据论文公式2,对 正对(q,d+)进行next token预测任务,并将其损失作为 L N T P {L}_{NTP} LNTP

DP(difference penalty)

差分惩罚 (DP):差分惩罚考虑了微调模型 πsft 和连续预训练模型 πpred 之间token-level概率分布的差异。通过最小化这种惩罚,微调过程被规范化,从而约束模型在适应新的任务特定目标的同时保持忠实于训练前的分布。此约束可以表述为:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个公式表示了两种模型状态之间的差异度量。具体来说:

  • $\mathcal{L}{\text{DP}}(\pi{\text{pred}}, \pi_{\text{sft}}) $表示 “差异保持”(Difference Preservation) 损失,它度量了连续预训练模型 π sft \pi_{\text{sft}} πsft之间的分布差异。这个损失函数的目标是在保持模型在预训练阶段获得的能力的同时,尽可能减少模型微调后的变化。

  • (|T|) 表示文档集合 (T) 的大小,(|V|) 表示词汇表 (V) 的大小。

  • $p_{\text{pred}}^{j,k} 和 和 p_{\text{sft}}^{j,k} 分别表示模型 分别表示模型 分别表示模型 \pi_{\text{pred}} 和 和 \pi_{\text{sft}}$在词汇表 (V) 中第 (k) 个词对于第 (j) 个文档的概率分布。

  • K L ( p pred j , k , p sft j , k ) KL(p_{\text{pred}}^{j,k}, p_{\text{sft}}^{j,k}) KL(ppredj,k,psftj,k) 是 Kullback-Leibler 散度,用来度量两个概率分布之间的差异。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

通过这个损失函数,模型在微调时能够尽量保持在预训练阶段所学到的知识,而不会因为微调的目标而导致显著的能力丧失。

4.论文精读

LLM 的出现,因其令人印象深刻的性能而带来了自然语言处理的范式转变。

先前方法:

prompting LLMs to perform unsupervised ranking using pointwise

pairwise

listwise

近来的尝试:

train pointwise rankers in a supervised manner, leveraging LLMs(RankLLaMA)

区别:

有监督无监督

先前方法缺点:

大型语言模型在训练过程中是根据预测下一个词来学习的,但这种训练目标和实际应用中对模型的期望之间存在很大的差距或不一致性。

创新点方法

为了解决LLM预训练任务(预测下一个词)文本排序任务(评估相关性)之间的不匹配,我们提出了一种渐进式两阶段训练(PTST)方法PTST由一个弱监督相关性预训练阶段和一个有监督的微调阶段****组成。在弱监督相关性预训练阶段,我们使用 Web 资源构建了一个大规模的弱监督文本对数据集*。然后,该数据集用于连续预训练,其中目标与原始 LLM 预训练任务对齐。通过合并这些弱监督文本对,模型自然可以生成与输入文档相关的查询。此阶段为后续微调奠定了基础

问题1原文提到经过第一阶段的预训练之后,模型便可以输出相应的查询,为什么?***

弱监督数据的构建

  • 在这个阶段,使用网络资源构建了一个大规模的弱监督文本对数据集。弱监督意味着这些数据对并不是完全手动标注的,而是通过一些自动化的方法(如基于规则或简单的模型)生成的。这些文本对通常由一个文档和一个与之相关的文本(如查询或标题)组成。这样使得该预训练任务与LLM的原始预训练任务(预测下一个词)保持一致,这样模型可以在已经熟悉的任务框架内继续学习。这种持续的学习能够让模型更好地捕捉到文本之间的相关性。通过这种方式,模型在进入第二阶段的监督微调之前,已经具备了生成相关查询的基本能力,从而使后续的微调更加有效。

预训练目标为何一致

  1. 数据集是文本对形式,例如:
  • 网页 ,正文 -> 标题
  • 学术出版物, 摘要 -> 标题
  • 社区论坛, 评论 -> 帖子标题
  • 知识问答, 答案 -> 问题

这里与经典的LLM的next token prediction的预训练目标还是有显著差异的,数据集有点像是反着构造的,

思想类似于根据Document生成主题或者标题以及提问,通过教会大模型提取文章主题的预训练能力,使大模型输出的最大概率的query与真实query更接近。

原始预训练目标通常是通过预测下一个词来学习文本生成和理解能力。在弱监督相关性预训练阶段,虽然引入了弱监督的数据集(文档与相关查询对),但模型仍然是在一个类似的框架内工作——它依然是在基于上下文生成后续文本(例如,生成与输入文档相关的查询或其他文本)。

示例流程

假设你有一篇文档和一组用户查询:

  1. 文档:一篇关于“气候变化影响”的文章。
  2. 查询:从搜索引擎中收集的一些相关查询,如“气候变化对农业的影响”、“全球变暖导致的海平面上升”等。

生成文本对

  • 文档内容与这些查询配对,生成弱监督的文本对。

合并与训练

  • 将这些文本对输入模型,模型在文档内容的基础上学习生成这些查询,从而在预训练阶段强化模型对相关性和查询生成的理解。

损失思路

尝试引入基于对比学习的优化目标,但是仅选择对比学习作为优化目标的话,会导致微调后的模型与基础模型偏离较大,尤其在于生成能力上的偏离,会影响模型的生成能力,可能会显著降低模型在文本排序任务中的表现,因此通过额外的损失函数和参数冻结策略来防止模型的生成能力下降,从而平衡模型的排序性能和生成能力。

相关工作

1.文本排序

文本排名是文本检索领域中的关键子任务,其重点是从大量可用文本中识别和检索与查询相关的文档。通常,文本检索是通过两个阶段的过程执行的,包括检索和排名(Nogueira 和 Cho,2019 年)。最初,检索器负责从整个文档语料库中召回前 k 个相关候选者,以响应给定的查询。随后,使用排名程序对这些候选文档进行排序和优先级排序。

LLM的出现显著提高了排名模型的性能(Nogueira 和 Cho,2019 年;Han et al., 2020;Zhang et al., 2022)。

2.使用 PLM 进行无监督文本排序

根据计算粒度,无监督文本排名方法可以分为逐点、成对和按列表方法。

• 逐点:逐点方法根据查询文档相关性分数对候选文档进行排名。计算相关性有两种策略: 1. 将查询-文档对输入模型以直接计算相关性分数(Liang et al., 2022;Zhuang et al., 2023a)。2. 使用基于文档生成查询的可能性作为相关性(Muennighoff,2022 年;Sachan et al., 2022)。逐点方法对小规模模型仍然有效,例如 GPT-125M (Muennighoff, 2022)。然而,在某些 LLM 上,效果可能不如成对和按列表方法好(Qin et al., 2023)。• 成对:成对方法每次确定两个文档的相关性顺序,并遍历所有文档对以对候选文档进行排序(Qin et al., 2023)。这种方法已被证明比逐点和按列表方法更有效,但它效率低下(Sun et al., 2023a)。• 列表:列表方法立即对文档列表进行排序(Sun et al., 2023b;马 et al., 2023b)。这种策略非常有效,但仅对一些强大的 LLM 有效,例如 ChatGPT 和 GPT4,并且严重依赖复杂的提示工程(Qin 等人,2023 年;Sun等人,2023a)。

使用基于文档生成查询的可能性作为相关性

使用“基于文档生成查询的可能性作为相关性”是一种在信息检索或文本排序任务中评估文档与查询相关性的方法。这种方法基于一个假设:如果一个文档能够以较高的可能性生成一个特定的查询,那么这个文档与该查询之间的相关性就较高。

基本原理

这种方法的核心思想是将文档视为查询生成的条件,并使用语言模型来计算给定文档生成查询的概率。更具体地说:

  1. 文档作为条件

    • 假设有一个文档 D 和一个查询 Q,我们想要评估文档 D 与查询 Q 的相关性。
    • 我们假设一个模型能够根据文档 D 生成查询 Q,并且通过计算这种生成的概率 P(Q∣D) 来衡量相关性。
  2. 生成概率计算

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  3. 相关性评估

    • 如果 P(Q∣D)的概率较高,意味着在模型看来,文档 D 能够“自然”地生成查询 Q,这表明文档 D 很可能与查询 Q 相关。
    • 相反,如果 P(Q∣D)的概率较低,表明文档 D 与查询 Q 的相关性较低。
3.成对法

“成对方法”(Pairwise Method)是一种用于排序任务的技术,尤其在信息检索和机器学习中,用于确定候选文档或项的优先级。以下是对这一方法的解释:

成对方法的基本原理

成对方法的核心思想是通过比较成对的文档(或项)来确定它们的相对顺序。具体步骤如下:

  1. 成对比较

    • 对于给定的查询(或输入),成对方法将候选文档两两组合成一对(称为“文档对”)。
    • 对于每一对文档,模型判断哪个文档更符合查询的相关性要求,或者哪个文档应该排在另一个文档之前。
  2. 确定顺序

    • 在每次比较中,模型输出一个结果,表示哪一个文档在这对文档中应该排在前面。
    • 这种比较可以通过模型预测(如二分类器)来实现,即判断文档A是否应在文档B之前。
  3. 遍历所有文档对

    • 成对方法会遍历查询下的所有文档对,逐一进行比较。
    • 通过所有文档对的比较结果,模型能够综合确定所有候选文档的最终排序。
示例

假设有一个查询和三个候选文档:文档A、文档B和文档C。成对方法会进行以下比较:

  1. 比较文档A和文档B,确定它们之间的优先级。
  2. 比较文档B和文档C,确定它们之间的优先级。
  3. 比较文档A和文档C,确定它们之间的优先级。

通过这些成对比较,成对方法可以决定文档A、B、C的最终顺序。例如,如果结果显示A > B,B > C,那么最终排序可能是A > B > C。

应用与优势
  • 信息检索:在搜索引擎中,成对方法可以用于根据用户查询对搜索结果进行排序,确保最相关的文档排在前面。
  • 机器学习:成对方法也用于学习排序函数,例如在学习到排序(Learning to Rank)任务中。
优势
  • 灵活性:成对方法不依赖绝对的相关性评分,而是通过相对比较来决定顺序,这使得它在处理不同类型的排序问题时更为灵活。
  • 精确性:通过成对比较,可以捕捉更精细的排序信息,特别是在候选项数量较少的情况下。
局限性
  • 计算复杂度:成对比较需要遍历所有文档对,对于大量候选文档,计算成本较高,因为文档对的数量是文档数量的平方级别。
  • 不适用于极大规模数据集:在极大规模数据集中,成对方法的计算量可能过大,导致效率问题。

总结来说,成对方法是一种通过两两比较候选文档来确定排序的技术,具有灵活和精确的特点,但在处理大量候选项时计算复杂度较高。

4.列表法

文本排序中的“列表方法”(Listwise Method)是一种排序算法,与成对方法(Pairwise Method)不同,它直接处理整个文档列表或查询结果集,而不是逐对比较文档。列表方法在机器学习和信息检索领域广泛应用,尤其是在学习到排序(Learning to Rank)任务中。以下是对列表方法的详细介绍:

列表方法的基本概念
  1. 整体排序优化

    • 列表方法通过优化整个文档列表的排序效果来直接提高排序质量。它的目标是找到使得整个文档列表最符合查询需求的排序方式。
  2. 直接处理排序列表

    • 与成对方法不同,列表方法直接对所有候选文档进行评分,并根据这些评分生成一个完整的排序列表。这种方法更加注重全局最优,而不是局部比较。
  3. 损失函数设计

    • 列表方法通常使用一种特殊的损失函数,该函数直接定义在整个列表上,而不是单个文档或文档对上。损失函数反映了排序列表与理想排序之间的偏差,通过最小化这种偏差来优化模型。
    • 常见的列表方法损失函数包括NDCG(Normalized Discounted Cumulative Gain)和MAP(Mean Average Precision)等。
列表方法的特点
  1. 全局视角

    • 列表方法考虑了排序问题的全局性,优化的目标是整个文档列表的排序质量,而非单一文档或文档对的顺序。这种方法可以避免局部最优,直接提升整体排序效果。
  2. 适合复杂排序任务

    • 在一些需要考虑多个相关因素或复杂约束的排序任务中,列表方法往往表现更好。因为它可以在全局层面上平衡不同文档的得分和排序顺序。
  3. 模型复杂度

    • 列表方法通常涉及更复杂的模型训练和损失计算,因此在实现上可能比成对方法和逐点方法(Pointwise Method)更复杂。
    • 但是它往往能够提供更好的性能,尤其是在处理大型数据集或高维特征空间时。
常见的列表方法
  1. ListNet

    • ListNet是一种基于概率的列表方法,它将排序问题转化为对整个文档列表进行概率分布建模,并通过最大化生成排序的概率来优化模型。
  2. ListMLE

    • ListMLE通过最大似然估计(Maximum Likelihood Estimation)的方式优化整个列表的排序。它定义了一个排序概率分布,并通过最大化正确排序的概率来训练模型。
  3. RankNet (NDCG-based)

    • RankNet可以扩展为列表方法,尤其是在优化NDCG损失时,通过直接优化整个排序列表的NDCG分数来训练模型。
应用场景
  • 搜索引擎:列表方法常用于搜索引擎结果排序,通过优化整体的搜索结果来提升用户体验。
  • 推荐系统:在推荐系统中,列表方法用于排序推荐结果,使得用户最感兴趣的内容出现在列表前端。
  • 广告排序:在线广告排序中,列表方法能够考虑多个广告的相关性和点击率,优化整个广告展示列表的效果。
优势与局限性
  • 优势

    • 提供全局最优的排序,通常在排序任务中能取得更好的效果。
    • 适合处理复杂排序问题,尤其是在多目标优化中表现出色。
  • 局限性

    • 计算复杂度较高,尤其是在大型数据集上,训练时间可能较长。
    • 实现上比逐点和成对方法更复杂,需要更深入的优化和调试。

总结来说,列表方法是一种直接优化整个文档列表排序的算法,它通过全局视角来提高排序质量,适合复杂的排序任务和大规模应用场景。

5.有监督的plm文本排序

基于 PLM 的监督排名模型已经实现了最先进的 (SoTA) 性能(Lin et al., 2021)。这些方法可以根据其语言模型结构进行分类:

• 仅编码器:像 monoBERT 这样的模型将查询和文档转换为一个序列,例如 “[CLS] 查询 [SEP] 文档 [SEP]”用于模型输入(Nogueira et al., 2019)。然后将模型生成的 [CLS] 表示形式馈送到线性层中以计算相关性分数。
在自然语言处理(NLP)和文本处理中,CLSSEP 是两种特殊的标记,通常与BERT(Bidirectional Encoder Representations from Transformers)和其他基于Transformer的预训练语言模型一起使用。下面是它们各自的含义和用途:

  1. CLS (Classification):
    • CLS 标记通常用于模型的输入序列的开始位置。在BERT模型中,这个标记对应的嵌入向量(embedding vector)会在模型的最后一层被取出,用于分类任务,如情感分析或文本分类。经过训练后,这个向量捕捉了整个输入序列的全局信息,因此可以用来表示整个序列的特征。
  2. SEP (Separator):
    • SEP 标记用于分隔输入序列中的不同部分。例如,在处理由两个部分组成的文本(如一对句子)时,SEP 标记会插入在这两部分之间,以帮助模型识别和处理序列的分界。在多文档或多句子的任务中,SEP 也可以用来分隔不同的文档或句子。

• 编码器-解码器:MonoT5 (Nogueira et al., 2020) 和 RankT5 (Zhuang et al., 2023b) 等典型模型,将类似 “Query: query Document: document Relevant:” 的序列输入到编码器中。解码器生成的“True”标记的概率用作文本对的相关性分数。

• 仅解码器:仅解码器模型,如 RankLLaMA(马 et al.,2023a),在模型中输入包含查询和文档对的提示。由于模型的单向注意力机制,仅解码器模型使用最后一个标记表示作为文本对相关性的基础。我们的工作遵循逐点排名策略的路线 (Muennighoff, 2022),并通过两阶段训练实现了优于当前监督排名方法的优势。

5.方法

我们首先提供了排名任务的正式定义,这是我们调查的核心。然后,我们提出了基于无监督的 LLM 排名方法,它支撑了我们的研究方法。随后,我们阐明了我们提出的两阶段训练范式,其中包括连续的预训练和监督微调 (SFT) 程序。

任务定义

排名任务是信息检索中的一个核心问题,它需要按与给定查询的相关性降序对一组候选文档进行排序。正式地,给定一个查询 q 和一组候选文档 D = {d1, . . . , dm},任务是计算 D 中每个文档 di 的相关性分数 S(q, di)

无监督基于大预言模型的排序策略

文件中提供的数学公式是用于计算查询(query)和文档(document)之间相关性的公式。以下是核心内容的整理:

  1. 文档条件提示(Document-Conditioned Prompt): P(d)=’Document: d Query:’这个表达式定义了文档条件提示,即模型在处理文档 d 时使用的提示格式。

  2. 相关性得分计算(Relevance Score Calculation)

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  3. 公式说明

    • 公式 (1) 用于计算文档和查询对的文本排名相关性得分。它是通过考虑查询中每个词在给定文档上下文条件下生成的概率来计算的。

这个公式是文本排名任务中的一个关键组成部分,特别是在利用大型语言模型进行查询-文档相关性评估时。通过这种方式,可以量化文档对用户查询的相关性,进而对文档进行排序。

持续预训练

大型语言模型(LLM)通常是在大规模的文本数据上进行预训练的,预训练的主要任务通常是下一个词预测(Next-Word Prediction)或者掩码语言建模(Masked Language Modeling)。这些任务虽然可以帮助模型学会生成流畅、连贯的文本,但它们并不直接涉及“查询”和“文档”之间的相关性

  • 查询和文档之间的相关性:在信息检索或文本排序任务中,模型需要理解一个查询(例如用户输入的搜索问题)和多个候选文档(例如搜索结果)之间的关系,并判断哪些文档更相关、更符合查询的需求。
  • 显式信号的缺乏:在常规的预训练过程中,模型没有专门的机制去学习这种相关性,因为预训练任务并没有直接给模型提供“这段文档与这个查询相关或不相关”的明确信号。

为了弥补这个不足,研究者们在模型的训练过程中加入了一个额外的持续预训练阶段。在这个阶段中,模型被进一步训练,使用的是包含明确“相关性”信息的文本数据。

  • 文本相关性数据:这类数据可能包括成对的文档和查询,其中标注了文档与查询的相关性程度(如高相关、低相关、无关等)。通过这种数据,模型可以学会识别和理解查询与文档之间的关系。
  • 更细致的理解:在持续预训练阶段,模型不仅继续学习生成文本的能力,还在这个过程中学会了如何更精确地判断文档和查询的相关性。这样,模型在处理实际的文本排序任务时,就能够更好地对文档进行排序,把最相关的内容优先展示出来。

弱监督数据集

获取大规模、高质量的数据集用于排名任务仍然是一项艰巨的挑战。尽管如此,在公共领域中仍有大量的文本相关性数据。从最近的研究中汲取灵感(Wang et al., 2022;Li et al., 2023),我们利用来自 Web 源的弱监督文本对作为模型预训练的基础。为了确保文本关系的多样化表示,我们的文本对集合跨越多个领域,包括来自网页的(标题、正文)对、来自学术出版物的(标题、摘要)对、来自超链接的(引文、参考)对、来自社交媒体平台的(帖子、评论)线程、来自知识库的(实体、描述)对、来自社区问答论坛的(问题、答案)对, 和 (summary, content) 对。总的来说,我们的预训练语料库包含大约 10 亿个文本对。对于这些监督较弱的数据源的选择和管理,我们遵循之前工作中建立的方法(Li et al., 2023)(多阶段对比学习框架,确保预训练中使用的文本对的多样性和质量。)

预训练

为了与 LLM 的基本预训练目标保持一致,我们的方法对我们精心策划的弱监督文本对 (q, d) 实施next token prediction task。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

受监督微调

利用正负类文本对来提高模型query&document相关性方面性能

在这张图中,各个字符和符号代表的含义如下:

  1. SFT(Supervised Fine-Tuning):
    这个符号表示监督微调的过程,即在预训练模型的基础上,通过有标注的数据进一步优化模型,以提升其在特定任务上的性能。

  2. PEFT(Parameter-Efficient Fine-Tuning):
    这表示一种高效的参数微调方法,旨在通过减少微调时的参数量,来保持模型在预训练阶段所学到的有益特性。

  3. NTP(Next Token Prediction):
    这个符号代表“下一个Token预测”任务。在这个过程中,模型基于输入的正样本文档 (d^+) 生成一个相关的查询 (q),以巩固模型在预训练时对文档和查询关系的理解。

  4. DP(Difference Penalty):

    差异惩罚策略,表示通过比较预训练模型 ($ \pi_{\text{pred}} $) 和微调后模型 ( π sft \pi_{\text{sft}} πsft ) 的差异,并施加惩罚,来减少模型在微调过程中偏离原始预训练模型的程度。

  5. π_raw、π_pred、π_sft:

    • π_raw 表示原始的预训练模型。
    • π_pred 表示在连续预训练阶段之后的模型。
    • π_sft 表示经过监督微调之后的模型。

图中展示了如何通过这三种策略(PEFT、NTP、DP)结合排名损失来微调模型,同时保持预训练的收益。

受监督数据集

监督训练数据 为了进行微调,我们利用了 MS MARCO 训练数据集 (Nguyen et al., 2016),包括 880 万个文档和 53,000 个肯定的查询文档对。我们使用 BGE 嵌入模型 (Xiao et al., 2023) 作为密集检索器来检索每个查询的前 1000 个文档。对于每个查询,我们从检索到的候选文档中随机选择 m 个否定文档来形成微调集。

微调

给定一个查询 q 和相关的正负文档列表D = {d +, d1- , . . . , dm-},模型区分正对和负对的能力通过排序损失机制(也称为对比学习)进行提炼(Chen et al., 2020;Zhuang et al., 2023b)。排名损失公式化为:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个公式是一个用于文本排序任务的排名损失函数( L r a n k ( q , D ) Lrank(q,D)\mathcal{} Lrank(q,D))。它的目的是通过比较查询 q 和不同候选文档 d 之间的相关性得分,来优化模型的排序能力。下面是公式的详细分析:

各部分含义:

  1. s c o r e ( q , d ) score(q,d)\text{} score(q,d)
    这是模型给定查询 qqq 和候选文档 ddd 计算出的相关性得分。这个得分通常表示查询和文档之间匹配的强弱。
  2. s c o r e ( q , d + ) score(q,d+)\text{} score(q,d+)
    这里的 d+d^+d+ 代表正样本文档,即与查询 qqq 实际相关的文档。这个得分反映了模型对正确文档的打分情况。
  3. τ τ τ
    这是一个温度参数(temperature parameter),用来控制模型输出的平滑度。较小的 τ\tauτ 值会使得得分差异被放大,反之则被压缩。
  4. ∑ d ∈ D e x p ⁡ ( s c o r e ( q , d ) / τ ) ∑_{d∈D}exp⁡(score(q,d)/τ) dDexp(score(q,d)/τ)
    这个部分表示所有候选文档得分的指数和,用于归一化,使得正样本文档 d+d^+d+ 的得分与其他所有候选文档的得分进行比较。
  5. l o g ⁡ log⁡ log
    对归一化的得分取对数,这是为了将损失函数转化为更易优化的形式,通常也是为了与交叉熵损失函数形式保持一致。

公式作用:

这个损失函数的目的是最大化正样本文档 d+的得分相对于所有候选文档的得分。具体来说,它通过最小化损失来促使模型在正样本文档 d+ 上打出更高的分数,从而提高模型在排序任务中的性能。

这个公式与Softmax损失函数有相似之处,用于多类分类问题,在这里,它被用来衡量模型的排序能力。模型通过优化该损失函数,能够更准确地将相关文档排在查询结果的前列。

“知识遗忘”

在模型的训练过程中,利用排名损失函数 L rank {L}_{\text{rank}} Lrank可以有效地区分正样本(与查询相关的文档)和负样本(与查询不相关的文档),从而帮助模型更好地进行排序。然而,模型的连续预训练目标 L pred {L}_{\text{pred}} Lpred和排名损失函数 L rank {L}_{\text{rank}} Lrank之间的性质存在不一致性。具体来说, L pred {L}_{\text{pred}} Lpred可能是一种更加平滑或连续的目标,而 L rank {L}_{\text{rank}} Lrank更像是一种离散化的决策过程(如二元分类中的正负样本区分)。这种不协调性可能会导致模型在微调过程中,只使用 L rank {L}_{\text{rank}} Lrank 时,无法完全利用在预训练阶段所积累的优势或知识,从而削弱模型的整体性能。

简单来说,这段话在强调在模型微调过程中,如果仅依赖于 L rank {L}_{\text{rank}} Lrank 进行优化,可能会因为与预训练目标 L pred {L}_{\text{pred}} Lpred 的不一致,导致模型在微调时未能充分利用预训练阶段的好处,最终影响排序效果。

不协调之处

不协调之处在于:

  1. 预训练目标与微调目标的差异:
    • 预训练目标: Lpred\mathcal{L}_{\text{pred}}Lpred 的设计目标是让模型通过最大化生成下一个词的概率来进行学习,即生成一个符合上下文的句子。这意味着,模型主要学习的是如何理解上下文并生成文本。
    • 微调目标: 排序任务的微调目标 Lrank\mathcal{L}_{\text{rank}}Lrank 则是要根据查询和文档的相关性来排序,这是一种离散的优化目标。模型在这个过程中更多的是学习如何区分文档的相关性,而不是生成自然语言。
  2. 影响之处:
    • 生成能力的削弱: 如果在微调时只使用 Lrank\mathcal{L}{\text{rank}}Lrank,模型可能会忽略之前通过 Lpred\mathcal{L}{\text{pred}}Lpred 学到的生成能力。这可能导致模型在排序任务中的表现下降,因为它失去了生成查询相关内容的能力。
    • 模型行为的变化: 预训练和微调目标之间的差异可能会导致模型在微调过程中出现不一致的行为,即模型可能会偏离其在预训练阶段积累的知识,影响其整体表现。

总结

预训练阶段的 L pred {L}_{\text{pred}} Lpred 强调生成语言的连续性,而微调阶段的 L rank {L}_{\text{rank}} Lrank 强调文档和查询之间的离散排序相关性。这种不一致可能会影响模型在最终任务中的表现,因此在设计微调策略时,应该考虑到这种不协调性,可能需要引入额外的约束或损失函数来平衡这两者。

解决“知识遗忘”

详见图三

What does BERT learn about the structure of language?

6.实验

NDCG@10指标

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

指标和基准

在我们的实验中,我们评估域内和域外性能,并采用NDCG@10作为指标。对于领域内性能评估,我们使用广泛认可的MS MARCO开发集(Nguyen等人,2016),TREC 2019(Craswell等人,2020)和TREC 2020(Craswell等人,2021)作为基准。为了检查模型在不同检索方法中的性能,我们采用了以 BM25 (Robertson 和 Zaragoza, 2009) 为代表的稀疏检索方法,以及以 BGE 方法为代表的密集检索方法 (Xiao et al., 2023),以生成候选文档集。在域外评估的背景下,BEIR 基准(Thakur et al., 2021)是我们分析的基石。BEIR 基准测试涵盖多个领域,例如金融和医学,并涵盖多个检索任务,包括问答和事实核查。其广泛的覆盖范围和严谨性使其成为衡量模型泛化能力的绝佳工具(Nogueira et al., 2020;Zhuang et al., 2023b)。对于在域外设置中检索到的候选文档的排名,我们使用 BM25 方法

超参数

为了验证我们方法的广泛有效性,我们对不同类型和大小的 LLM 进行了实验:BLOOM (560M-7B) (Scao et al., 2022)、LLaMA-7B (Touvron et al., 2023b)、Qwen-7B (Bai et al., 2023) 和 Baichua-7B (Yang et al., 2023)。我们在多达 8 个 NVIDIA A100 GPU 和 80GB 内存上运行模型训练。在持续的预训练期间,我们对 10 亿个弱监督文本对进行了 1 个 epoch 的训练。在 SFT 期间,我们在 MS MARCO 训练集上训练 1 个纪元。在方程 3 中,负例 m 的数量为 48,温度参数 τ 为 0.001。对于所有 LLM,我们统一微调前 16 个 transformer 层

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这两个表格展示了不同模型在多种数据集上的文本排序表现。

表格 1: In-domain results of various models

  • 描述: 这个表格展示了在域内数据集(如MS MARCO、DL19和DL20)上,不同模型的排名表现。结果显示了模型在稀疏检索(Sparse Retrieval - BM25)和密集检索(Dense Retrieval - BGE)任务中的得分。
  • 主要观察:
    • RankingGPT(BLOOM 7B)在稠密检索任务中表现最优,尤其在DL19和DL20数据集上分别达到了77.1和75.9的得分。
    • Qwen 7B在多数数据集上表现相对较好,特别是MS MARCO数据集上的得分(48.0)。
    • 传统的稀疏检索方法(BM25)在各个数据集上的表现相对较差,特别是在DL20数据集(48.0)上。

表格 2: Out-domain results of 220M-3B models

  • 描述: 这个表格展示了在域外数据集(如Arguana, Climate, DBPedia等)上,使用不同大小(220M-3B)的模型的排名表现。表格按方法列出,显示了每种方法在多个数据集上的得分,以及模型在多少个数据集上表现最好。
  • 主要观察:
    • RankingGPT(BLOOM 3B和1B)在多个数据集上都表现优异,例如在Arguana、FEVER、HotpotQA和SciFact等数据集上取得了最高得分(55.6, 83.7, 74.6, 78.0)。
    • MonoT5(3B)和RankT5(3B)在一些数据集上表现突出,例如RankT5在HotpotQA(75.0)和SciFact(77.7)上得分较高。
    • 表格中显示,RankingGPT在5个数据集上表现最佳,这是所有方法中最多的,说明其在各种任务中具有较强的通用性。

结论

总体来看,RankingGPT在域内和域外数据集上都表现出色,显示出较高的泛化能力,尤其是在较大规模模型(如7B参数的BLOOM模型)中,能够在密集检索任务中超越其他模型。

表格中将检索任务区分为稀疏检索和密集检索,是为了展示不同模型在不同类型的检索任务中的表现。具体来说,这与模型的架构、训练方式以及其在处理不同类型的数据和任务上的优势相关。

“域内”和“域外”是指模型在不同数据分布或应用场景下的表现。

域内(In-domain)

  • 定义: 域内数据指的是模型在训练时使用的相同或非常相似的类型数据。例如,如果一个模型在新闻数据上训练,那么它在新闻数据集上进行的评估就是“域内”评估。
  • 表现: 表格1展示了不同模型在“域内”任务(如MS MARCO、DL19、DL20等数据集)中的表现。这些数据集中的数据类型与模型在训练时所用的数据类型较为一致,因此模型通常表现更好。

域外(Out-domain)

  • 定义: 域外数据指的是与模型训练数据有显著不同的数据。例如,一个模型可能在医学文本数据上进行训练,而在社交媒体数据上评估时,这种评估就被称为“域外”评估。
  • 表现: 表格2显示了不同模型在“域外”任务中的表现(如Arguana、Climate、DBPedia等数据集)。由于这些任务的数据类型与模型训练的数据有较大差异,模型在这些任务上的表现可能会不如“域内”任务,反映了模型的泛化能力。

总结

“域内”和“域外”的区别在于数据类型与训练数据的相似程度。一般而言,模型在域内数据上的表现优于域外数据,因为它在训练时已经看过类似的例子。而域外数据的评估则更能反映模型的泛化能力,即它在看过的类型数据之外的表现如何。

检索任务与模型的关系

  1. 模型特性与任务匹配:

    • 稀疏检索任务通常使用传统方法(如BM25),基于词频和文档频率进行计算,依赖于显式词匹配的特征。因此,这种任务更适合于那些专注于词级别匹配的模型,如BM25和基于BERT的“MonoBERT”,这些模型通常能更好地在稀疏特征空间中表现。
    • 密集检索任务使用深度学习模型(如BERT、T5等)将查询和文档映射到语义向量空间中,进行语义匹配。这类任务适合那些能够捕捉更深层语义信息的模型,如“RankingGPT”或者“RankT5”,这些模型能更好地理解语义关系,从而在密集特征空间中表现优异。
  2. 任务性能差异:

    • 在表格中,我们可以看到不同模型在不同任务(稀疏和密集检索任务)上的表现。例如,“MonoBERT”在稀疏检索任务上表现较好,因为它基于BERT模型,在处理词级别匹配时具有优势。
    • 而“RankingGPT”或“RankT5”在密集检索任务中表现更好,因为这些模型利用预训练的语义嵌入能力和复杂的语义匹配算法,能够有效处理需要语义理解的检索任务。
  3. 模型架构的影响:

    • 不同模型的架构设计直接影响其在不同类型检索任务上的效果。例如,"RankingGPT"利用GPT风格的模型,擅长生成类任务,能够在处理语言生成和语义匹配的密集检索任务中表现出色。
    • 另一方面,BM25是基于词频的模型,因此在处理依赖于词级别特征的稀疏检索任务时更有效。

结论

表格中的检索任务区分有助于展示不同模型在特定检索场景中的适用性和表现差异。模型的选择应根据任务的具体要求,如是依赖于词匹配的稀疏任务还是依赖于语义理解的密集任务,从而选择最合适的模型来达到最佳效果。

稀疏检索任务密集检索任务是信息检索中的两种主要方法,分别对应不同的检索机制和应用场景:

稀疏检索任务 (Sparse Retrieval)***

  • 定义: 稀疏检索任务通常基于经典的信息检索模型,如BM25、TF-IDF等。这些方法依赖于文档和查询之间的显式词匹配,通常只考虑那些在文档和查询中直接出现的词语。由于依赖直接的词语匹配,这类方法在处理同义词、语义相似度等情况下效果较弱。
  • 特点:
    • 依赖词汇的精确匹配。
    • 索引时通常使用倒排索引(Inverted Index)。
    • 对于长尾查询(稀有查询)通常效果较好。
    • 计算复杂度相对较低,效率高。
  • 应用: 传统的搜索引擎和信息检索系统,如早期的互联网搜索引擎。

密集检索任务 (Dense Retrieval)

  • 定义: 密集检索任务利用深度学习模型(如BERT等)的嵌入向量将查询和文档映射到高维向量空间中,然后通过计算查询和文档向量的相似度来完成检索。这种方法不依赖显式的词汇匹配,能够更好地捕捉语义相似性。
  • 特点:
    • 依赖深度学习模型生成的语义向量表示。
    • 不仅关注词汇的表面匹配,还能理解同义词、语义相似等。
    • 检索时通常需要通过向量空间中的近似最近邻搜索(ANN)来实现。
    • 计算复杂度较高,通常需要较大的计算资源。
  • 应用: 现代的智能搜索引擎、问答系统,以及需要捕捉更复杂语义关系的检索任务。

总结

  • 稀疏检索适合处理需要快速返回结果、词语直接匹配的查询场景。
  • 密集检索更适合需要理解语义、处理复杂查询的场景,尽管计算成本更高,但可以更准确地捕捉查询与文档之间的深层语义关系。

这两个表格展示了不同模型在域外(Out-domain)和域内(In-domain)场景下的性能表现,以及对比了各种模型的消融实验结果。

表格 3:Out-domain Results of 7B Models

  • 表格内容:展示了几种大规模语言模型(如RankLLAMA、RankingGPT)的排名任务性能。这些模型在不同的数据集(如Arguana、Climate、DBPedia等)上的表现被评估。表格显示每种模型在各数据集上的表现分数,并总结了它们在所有数据集上的平均分数。
  • 分析
    • RankingGPT 在多个数据集上(如Arguana、Climate、DBPedia等)表现优于其他模型。例如,RankingGPT在Arguana数据集上得分最高(56.8),而RankLLAMA在相同数据集上的表现较弱(47.0)。
    • 总平均分显示,RankingGPT的表现(58.3)优于RankLLAMA(52.5)和其他模型,这表明其在域外场景中具有更好的泛化能力。

表格 4:Ablation Results of BLOOM-560m and 1B Models

  • 表格内容:展示了BLOOM-560m和1B模型在不同实验条件下的消融结果,包括没有额外微调(Two-Stage Training without fine-tuning)、预训练增益保持机制(Pre-Training Gains Maintaining)和参数高效微调(Parameter-Efficient Fine-Tuning)。
  • 分析
    • I. Two-Stage Training部分:显示了未进行额外微调时(w/o pre-train),模型的性能较差(如BLOOM-560m域外得分43.4)。
    • II. Pre-Training Gains Maintaining部分:展示了在不同预训练增益保持策略下(如去掉PEFT、NTP或DP)模型的性能变化。使用全部策略的RankingGPT模型( π s f t \pi_{sft} πsft)在域内和域外都达到了较好的性能(分别是64.3和54.5)。
    • III. Parameter-Efficient Fine-Tuning部分:使用LoRA的微调方法表现不如全部策略的RankingGPT模型。

总结

这些表格说明了RankingGPT在排名任务中相比其他模型具有较好的性能,尤其是在域外场景中表现突出。消融实验进一步验证了使用特定的预训练增益保持策略和参数高效微调方法对模型性能的影响。

7.总结

  • 总平均分显示,RankingGPT的表现(58.3)优于RankLLAMA(52.5)和其他模型,这表明其在域外场景中具有更好的泛化能力。

表格 4:Ablation Results of BLOOM-560m and 1B Models

  • 表格内容:展示了BLOOM-560m和1B模型在不同实验条件下的消融结果,包括没有额外微调(Two-Stage Training without fine-tuning)、预训练增益保持机制(Pre-Training Gains Maintaining)和参数高效微调(Parameter-Efficient Fine-Tuning)。
  • 分析
    • I. Two-Stage Training部分:显示了未进行额外微调时(w/o pre-train),模型的性能较差(如BLOOM-560m域外得分43.4)。
    • II. Pre-Training Gains Maintaining部分:展示了在不同预训练增益保持策略下(如去掉PEFT、NTP或DP)模型的性能变化。使用全部策略的RankingGPT模型( π s f t \pi_{sft} πsft)在域内和域外都达到了较好的性能(分别是64.3和54.5)。
    • III. Parameter-Efficient Fine-Tuning部分:使用LoRA的微调方法表现不如全部策略的RankingGPT模型。

总结

这些表格说明了RankingGPT在排名任务中相比其他模型具有较好的性能,尤其是在域外场景中表现突出。消融实验进一步验证了使用特定的预训练增益保持策略和参数高效微调方法对模型性能的影响。

7.总结

在这项工作中,我们引入了一种新的两阶段训练方法,旨在调和大型语言模型 (LLM) 预训练范式与排名任务需求之间的错位。我们的方法从持续的预训练阶段开始,在此期间,模型被明确指导 querydocument 关系的复杂性。随后,该策略采用监督微调 (SFT) 来重新校准模型对文本相关性的关注,从而提高其区分正面和负面文本对的熟练程度。通过广泛的实验,我们证明了我们提出的方法不仅在域内上下文中实现了排名性能的实质性改进,而且在域外场景中也表现出了显着的泛化能力。我们的研究结果强调了我们的两阶段训练策略的潜力,它是针对复杂排名任务的 LLM 优化的重大进步。

  • 11
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值