1. 文章摘要
这篇文章的核心工作主要是考察了一下GPT模型在排序任务当中的效果,发现通过合适的方法(文中给出的滑动窗口 + 排序),可以使得GPT模型在文本排序上的效果超过现在的有监督模型的SOTA结果。
更甚者,使用GPT模型的标注结果进行模型蒸馏,获得的蒸馏模型的效果在某些任务当中依然可以超过当前的SOTA结果。
文中给出了整体的实验结果图如下:

由此,文章展示了GPT模型在语义理解上的强大能力以及另一种可行的应用途径。
下面,我们来具体看一下这篇文章的具体内容。
2. 方法介绍
这篇文章的方法的核心其实就是如何将GPT模型的结果适配到排序任务当中,或者更一般地说,如何将LLM模型应用在排序任务当中。
文中给出了三种可行的方法,他们可以用下面三张图来分别展示:

其中,前两种方法是已有的方法,其思路其实还是比较常见的ranker的思路,就是对每一个文档给出一个score,然后通过这个score给所有的文档进行一下排序。
而第三种方法是文中提出一个方法,具体来说,不再借由一个外部的分数,而是直接让模型端到端的对文档进行排序。
下面,我们来具体来看一下这三个具体的方法:
1. Query Generation
首先,第一种常见的方法还是使用比较直接的思路,就是尝试计算出每一个回答的ppl值,然后使用这个ppl值作为文档的relevant score,从而对文档进行排序。
当然,这里一个显著的问题就是,ppl本质上还是描述的是文本的通顺度,而非是语义的契合度,虽然两者往往是非常契合的,但是并不等价,因此这种方式先天上存在一定的缺陷……
2. Relevance Generation
关于文中的第二种方法,如前所述,本质上依然还是用一个score来对每一个文档进行打分。
不过不同于第一种方法当中使用ppl,这里更偏近于朝向语义层面的理解,如上图b中所示,是给出passage与query之后,直接询问两者的相关性,然后通过回答当中yes与no的生成概率p的大小进行打分。
用文中的公式表达即为:
s i = { 1 + p ( y e s ) if output is yes 1 − p ( n o ) if output is no s_i = \left\{ \begin{aligned} 1 + p(yes) && \text{if output is yes} \\ 1 - p(no) && \text{if output is no} \end{aligned} \right. si={ 1+p(yes)1−p(no)</

最低0.47元/天 解锁文章
390

被折叠的 条评论
为什么被折叠?



