基于大语言模型的零样本文档排序¶
本次作业任务要求利用大语言模型(LLM)进行零样本(zero-shot)文档排序,该任务是给定一个文档在一系列文档中找到跟其最相似的。具体地,任务主要是在BM25初筛结果的基础上,利用LLM进行零样本的排序。你需要在提高排序效果的同时,考虑LLM推理的计算开销和成本之间的平衡。
一、背景要求¶
随着信息检索领域的发展,传统的BM25虽然在文本匹配方面具有较高效率,但在深层语义理解上存在一定局限。利用LLM对候选文档进行重排序,可以捕捉文档与查询之间复杂的语义关联,从而进一步提升排序性能。然而,由于LLM模型(例如flan-t5-large)的计算成本较高,如何在排序效果和推理开销之间进行合理权衡成为本任务的研究重点。
二、排序方法介绍¶
本作业中主要讨论Listwise与Pairwise两类排序方法,这两种方法采用不同的提示策略来指导LLM输出每个候选文档的相关性估计,并相应地对文档进行排序。其中pairwise需要逐次地做两个文档或者段落进行比较,从而给所有候选文档或者段落一个分数。由于其进行了广泛的比较,往往具有良好的性能但开销较大。而listwise把所有文档或者段落一次性输入,从而减轻了开销,但往往性能一般。
三、任务描述¶
本次实验采用 TREC DL19 Dataset,作业任务分为两个任务,内容如下:
3.1 简单任务(60分=结果准确性40分+报告质量20分)¶
- 任务内容:
- Listwise:完成rerank函数,实现listwise方法。
- Pairwise:实现Bubble、Heapsort和AllPair三种策略,其中Bubble和Heapsort使用大模型的
compare
函数进行相邻文档或堆中元素的比较;AllPair方法中,对所有文档两两进行比较,然后使用简单聚合方式(胜者得1分,败者不得分,平局得0.5分)得到最终排序结果。
3.2 进阶任务 (40分=创新性20分+性能10分+报告质量10分)¶
设计并实现一种创新的文档重排序算法,要求:
1. 算法在排序性能上必须超越AllPair方法,或在保持较好排序效果的前提下显著降低计算开销;
2. 算法设计必须为原创,严禁抄袭已有论文方法。
四、提交要求¶
提交内容包括:
-
完整代码文件:将所有代码文件打包提交,包含实现Listwise与Pairwise方法以及进阶任务的代码。
-
实验报告(PDF)
五、注意事项¶
-
参考文献:
- 如果你在实验和报告中参考了已发表的文献,请列出你所参考的相关文献。
-
我们提供了部分代码和数据,可以基于我们的代码进行实现。
-
如有疑问,请联系 chengzf@smail.nju.edu.cn。