首页 > 其他分享 >论文阅读:DQ-LoRe:Dual Queries with Low Rank Approximation Re-ranking for In-Context Learning

论文阅读:DQ-LoRe:Dual Queries with Low Rank Approximation Re-ranking for In-Context Learning

时间:2024-07-20 23:24:54浏览次数:10  
标签:范例 ranking 检索 Context SVAMP 嵌入 Learning LoRe CoT

大型语言模型(LLMs)展示了其基于上下文学习的卓越能力,在错综复杂的推理任务中,利用思维链(CoT)范式中的中间推理步骤来引导大型语言模型的一个很有前景的途径。然而,核心挑战在于如何有效选择范例来促进上下文学习。

先前的很多工作都是围绕添加思维链,例如一致性 CoT、思维树以及思维图,往 context 中添加更多的推理步骤,或者将推理过程拆解为多个子步骤,依次优化每个子步骤。这些操作都会让 context 越来越长,或者在推理过程中增加更多的链路,从而导致推理的时延和成本增加。这篇论文的一个核心或者说有价值的工作是考虑了时间成本,具体做法请阅读下文关于论文方法的介绍。

在本研究中,作者介绍了一种利用双查询和低秩近似重新排序(DQ-LoRe)的框架,以自动选择用于上下文学习的范例。双查询首先查询 LLM 以获得 LLM 生成的知识(如 CoT);然后查询检索器,通过问题和知识获得最终范例。此外,对于第二次查询,LoRe 采用了降维技术来完善范例选择,确保与输入问题的知识密切吻合。

通过大量实验,作者证明了 DQ-LoRe 在 GPT-4 示例自动选择方面的性能明显优于之前的先进方法,从 92.5% 提高到 94.2%。综合分析进一步表明,DQ-LoRe 在性能和适应性方面始终优于基于检索的方法,尤其是在以分布变化为特征的场景中。

方法介绍

图 1:DQ-LoRe 的整体流程。它由三部分组成: 双查询首先查询 LLM 以获得 CoT y;然后查询检索器,通过问题和 LLM 生成的知识获得最终范例。LoRe 利用 PCA 来近似检索到范例的低秩嵌入,使检索器能够更好地区分它们。检索器会根据 BM25 和 LLM 生成的 CoT 相似度,通过正负集的训练来获取具有相似 CoT 的范例。

步骤 1:双查询推理 - 第一次查询

如图 1 上方左边所示,作者使用 Complex-CoT 方法来获取初始的 n 个范例,因为作者观察到,使用 Complex-CoT prompt 格式来组织初始 n-shot 范例和问题 x i x_i xi​,用于查询 LLM 可获得推理信息更丰富的 CoT y i y_i yi​。当然,也可以使用其他基于检索的方法,例如根据查询与输入问题的语义相似性使用 BM25 进行检索。范例也可以包括人工设计的范例,包括 CoT 和其他模板,如思维树和思维图。

步骤 2:双查询推理 - 检索器训练

如图 1 下方 Retriever 虚线部分所示,展示了检索器的训练过程。作者将该检索器称之为 CoT 感知检索器(编码器模型),用来获得范例和测试样本的表征,并测量 CoT 与范例之间的相似性。

与之前使用对比学习训练 sentence embedding 模型类似,作者应用对比学习来训练检索器 s e s_e se​。具体来说,使用训练集中的数据来构建训练数据,其中每个样本 d i = ( x i , y i ) d_i = (x_i, y_i) di​=(xi​,yi​) 由一个问题 x i x_i xi​ 及其对应的 CoT y i y_i yi​ 组成(图 1 下方的 Question X 和 CoT Y)。作者使用 BM25 从整个训练集中检索出前 k 个相似的训练样本作为候选样本,记为 D ′ = { d 1 ′ , d 2 ′ , … , d k ′ } D' = \{d_1',d_2', \ldots, d_k'\} D′={d1′​,d2′​,…,dk′​}。获得这 k 个样本后,考虑 d j ′ d_j' dj′​ 和 d i d_i di​ 的距离来重新排序。作者使用 text-davinci-003 等语言模型来计算概率:

s c o r e ( d j ′ ) = P L M ( y i ∣ d j ′ , x i ) , j = 1 , 2 , … , k (1) score(d_j') = P_{LM}(y_i | d_j', x_i), \quad j = 1, 2, \ldots, k \tag{1} score(dj′​)=PLM​(yi​∣dj′​,xi​),j=1,2,…,k(1)

其中, P L M ( y i ∣ d j ′ , x i ) P_{LM}(y_i | d_j', x_i) PLM​(yi​∣dj′​,xi​) 是在 d j ′ d_j' dj′​ 和输入上下文 x i x_i xi​ 的条件下,LM 生成 CoT y i y_i yi​ 的概率。得分越高,表示 d j ′ d_j' dj′​ 包含 CoT y i y_i yi​ 的概率越高,并且具有相似的推理逻辑。作者根据得分对 D’ 中的样本重新排序,并选择前 t 个样本作为正例,记为 p o s i pos_i posi​,最后 t 个样本作为硬负例,记为 n e g i neg_i negi​。通常,2 * t ≤ k。

后面就是常规的对比学习训练 sentence embedding 模型的过程,具体可以去看 simcse 的论文 https://arxiv.org/abs/2104.08821。

这样训练后的检索器就能从若干范例中挑选出适配当前问题 x i x_i xi​ 和 CoT y i y_i yi​ 的范例(获取得分后重新排序,挑选 top-k 范例,如图 1 下方右边所示)。

步骤 3:LoRE:低秩近似重新排序

作者认为从检索器挑选出的 top-k 个范例是根据语义相似性检索的,通常表现出高度相似的 CoT。这就导致与当前问题呈现虚假相关性的范例和在 CoT 中真正具有逻辑相关性的范例混杂在一起,难以区分。为了解决这个问题,作者采用主成分分析法(PCA)将 top-k 个范例和目标样本 t i t_i ti​ 的嵌入维度降低到最终维度 e。在数学推理任务中,使用向量内积来计算缩减嵌入之间的相似度。但是,在常识推理任务中,为了区分这些示例,同时尽可能多地保留 CoT 信息,采用了高斯核函数来计算嵌入之间的相似性。高斯核的表示方法如下:

k ( s e ( t i ) , s e ( e j ) ) = e x p ( − ∣ ∣ s e ( t i ) − s e ( e j ) ∣ ∣ 2 2 σ 2 ) (4) k(s_e(t_i), s_e(e_j)) = exp(- \frac{||s_e(t_i) - s_e(e_j)||^2}{2 \sigma^2}) \tag{4} k(se​(ti​),se​(ej​))=exp(−2σ2∣∣se​(ti​)−se​(ej​)∣∣2​)(4)

其中, ∣ ∣ s e ( t i ) − s e ( e j ) ∣ ∣ ||s_e(t_i) - s_e(e_j)|| ∣∣se​(ti​)−se​(ej​)∣∣ 表示 s e ( t i ) s_e(t_i) se​(ti​) 和 s e ( e j ) s_e(e_j) se​(ej​) 之间的欧几里得距离。

根据重新排序后的相似性得分(k ≥ n),得到 top-n 个范例。再将其与 x i x_i xi​ 拼接输入到 LLM,从而得到 ICL 的最终 CoT。有了这些 CoT 范例,就可以提示 LLM,得到最终答案。

实验相关

主要结果

表 1:不同模型在 i.i.d. 设置下的准确率(%)。Complex-CoT 从标注或 GPT-3.5-Turbo 输出中选择最复杂的 CoT。除 CoT 使用 4-shot 手动标注的范例外,所有方法都选择 8-shot 标注的范例。SVAMP* 表示在 GSM8K 数据集上训练检索器,然后通过检索 SVAMP 上的示例进行测试所获得的结果。

表 1 显示了模型在 i.i.d. 设置下的性能。它表明该方法在 GSM8K 和 AQUA 数据集上取得了最有希望的结果。在 SVAMP 数据集上,使用生成的 CoT 对检索器进行训练,LoRE 模型并不优于 ERP 模型。因为ERP 模型倾向于捕捉和利用这些词的共现模式。此外,在 SVAMP 数据集中,测试集和训练集之间存在大量的词语共现样本。因此,ERP 将检索所有与测试样本有词共现的示例。

为了避免在 SVAMP 上检索受到这些虚假相关性的影响,并测试模型的真实性能,作者在分布偏移的条件下进行了实验。在 GSM8K 数据集上训练检索器,在 SVAMP 测试集上进行检索和测试。在这种分布偏移设置下,事实证明它能有效中和虚假相关性的影响,LoRe 模型最终在 SVAMP* 数据集上获得了 90% 的准确率,大大超过了存在严重虚假相关性的 EPR。作者认为这是由于 EPR 主要依赖于问题之间的词语共现模式,而没有考虑 CoT 之间的相似性。

表 2:在 i.i.d. 设置下,不同 ICL 方法与 GPT-4 在 GSM8K 数据集上的准确率(%)。

表 2 显示了 GPT-4 在 GSM8K 数据集上的 ICL 结果。LoRe 模型的性能以 1.7% 的准确率大幅超越了之前基于检索的最先进方法 CEIL。

初始范例的影响

分析获取初始范例的各种方法对最终结果的影响。在实验中:

  • “Random”指的是每次推理时从训练集中随机选择 8 个范例。
  • “EPR”和“CEIL”表示通过在 SVAMP 上检索获得的初始 8 个范例。
  • “Scoratic-CoT ”涉及使用来自 Complex-CoT 范例的分解子问题和求解步骤来标注 SVAMP 训练集,成功标注了 GPT-3.5-Turbo 最终 700 个训练数据点中的 624 个。随后,使用 DQ-LoRe 对产生的 Scoratic 格式范例进行了训练和检索,并使用了这些最初的 8 个示例。

表 5:在 SVAMP 数据集上,在 i.i.d. 设置中使用不同初始 n 个范例的最终准确率(%)。

从表 5 可以看出,获取初始范例的方法对最终结果有很大影响,精心选择初始示例的 EPR 和 CEIL 等方法的性能明显优于随机选择 8 个初始示例的方法。另外,在 SVAMP 的 i.i.d. 设置下,Scoratic-CoT 的表现优于 Complex-CoT,这表明不同的初始 prompt 格式对模型的最终性能有显著影响。

LoRe 可视化

分析 PCA 对 DQ-LoRe 方法的影响。在训练有素的检索器的高维空间中,从离查询最远的 8 个范例中直接选择嵌入。这些被选中的嵌入在检索过程中充当范例,并代表最差的情况。在 GSM8K 数据集的 i.i.d 设置下,使用 text-davinci-003 模型,使用这些最差范例的准确率为 48.1%。这一结果证明,训练有素的检索器有能力区分“好”与“坏”范例。在此基础上,作者根据检索器的辨别能力来识别和选择被归类为“好”或“坏”的 M 个范例,并使用 t-SNE 进行 LoRe 降维前后 M 个范例的嵌入可视化。

图 2:LoRe 前后嵌入的 T-SNE 可视化结果。

在 SVAMP 测试数据集上,基于 GSM8K 训练的检索器比基于 SVAMP 训练的检索器性能更好。因此,作者进一步绘制了相应的 t-SNE 可视化图,如图 2 所示。

  • 在第二次查询中,首先使用检索器检索了 64 个嵌入。这些嵌入随后进行了降维处理。与在 SVAMP 上训练的检索器的 “好 ”和 “坏 ”嵌入相比,在 GSM8K 上训练的检索器的 “好 ”和 “坏 ”嵌入变得更加明显,这表明扩大 “好 ”和 “坏 ”嵌入之间的差异可以进一步提高性能。
  • 图 2(b) 显示,在 LoRe PCA 处理之前,“好 ”嵌入和 “坏 ”嵌入的分布是混合的。在 LoRe PCA 处理之后,“好 ”嵌入以明显的趋势向外迁移,而 “坏 ”嵌入则在同一方向上表现出轻微的趋势,从而导致两者之间的差距扩大。这种差异有助于提高性能。因此,LoRe 的 PCA 流程有效地扩大了 “好 ”嵌入和 “坏 ”嵌入之间的区别,进一步提高了整体性能。
  • 比较图 2(a)和图 2(b),可以发现,在 LoRe 引起的样本间距离扩展后,图 2(b)中正样本的离散趋势变得更加明显。相反,图 2(a)显示,在 LoRe 扩大样本间距离后,正负样本间的差距明显小于图 2(b)中的结果。另一个耐人寻味的现象是,在投影之前,负样本聚集在一个狭窄的区域,而正样本则更均匀地分布在整个空间。这意味着它们在高维空间中占据了一个狭窄的锥形区域。通过 LoRe,这个锥形可以变得更加 “扁平”。这些观察结果表明,LoRe 可以通过调节样本间的距离扩散速度来提高模型性能。

总结

作者引入了一种被称为 DQ-LoRe 的创新方法,这是一种具有低秩近似重新排序功能的双重查询框架,可增强多步骤推理任务的上下文学习。这是通过考虑输入问题和范例中的思维链来实现的,然后使用 PCA 过滤掉嵌入中的冗余信息,随后重新排序以获得最终的范例。这种方法增强了模型辨别不同范例的能力。

实验结果表明,DQ-LoRe 优于现有的方法,尤其是在涉及分布变化的情况下,表现出了显著的功效。这凸显了它在各种情况下的稳健性和通用性。

标签:范例,ranking,检索,Context,SVAMP,嵌入,Learning,LoRe,CoT
From: https://blog.csdn.net/weixin_43378396/article/details/140579611

相关文章

  • Android开发 - Context解析
    Context是什么Context的中文翻译为:语境;上下文;背景;环境,在开发中我们经常说称之为“上下文”,那么这个“上下文”到底是指什么意思呢?在语文中,我们可以理解为语境,在程序中,我们可以理解为当前对象在程序中所处的一个环境,一个与系统交互的过程。比如微信聊天,此时的“环境”是指......
  • D. Learning to Paint
    原题链接题解dp+多次优先队列设\(dp[i]\)为\([1,i]\)区间内,前\(k\)个最大值(有可能不足k个)(注意\(dp[i]\)是一个序列)则\(dp[i]=\{dp[j][t]+a[j+2][i],j\in[0,i-2],t\in[0,top_j]\},\sumt=k\)code#include<bits/stdc++.h>#definelllonglongusingnamespace......
  • FedNAS: Federated Deep Learning via Neural Architecture Search-_BaseLine-FedNAS
    背景与挑战:介绍FL,引出数据异构问题和数据不可见性,因此需要大量的人力来定制更好的模型架构,因为设备异构性,边缘设备需要更高的计算负担和通信成本。介绍解决数据异构的相关工作,指出这些工作需要强大的先验假设。预定义的模型不一定是最优的贡献:1.提出FedNAS方法,在边缘设备之间......
  • FINCH: Enhancing Federated Learning With Hierarchical Neural Architecture Search
    背景与挑战:介绍FL联邦学习,指出两个联邦学习的缺点::::danger1.预定义的架构容易使模型训练陷入局部次优解,导致训练性能低下2.开发一个足够精确和小的模型来部署在客户端是很复杂的,这需要在迭代的试错过程中付出大量的人力:::(手动设计更高效的体系结构在很大程度上依赖于人类......
  • Peaches: Personalized Federated Learning with Neural Architecture Search in Edge
    背景:介绍联邦学习,参数服务器和workers之间的关系挑战:1.预定义模型:太大的架构可能会导致过度拟合问题和workers不必要的计算开销,而太小的架构可能会导致低训练性能2.数据不可访问:数据不可访问导致不能设计出真正高效的架构在边缘计算中使用FL。需要考虑三种挑战:1.异构数据2......
  • Arena Learning: 构建大语言模型的数据飞轮
    大语言模型(LLMs)正在快速发展,但如何有效评估和持续改进这些模型仍面临巨大挑战。本文提出了一种名为ArenaLearning的创新方法,通过模拟聊天机器人竞技场来构建高效的数据飞轮,从而实现LLMs的持续优化。让我们深入了解这种方法的核心思想和关键技术。1.背景与挑战近年......
  • Go Context的使用详解
    GoContext的使用在Gohttp包的Server中,每一个请求在都有一个对应的goroutine去处理。请求处理函数通常会启动额外的goroutine用来访问后端服务,比如数据库和RPC服务。用来处理一个请求的goroutine通常需要访问一些与请求特定的数据,比如终端用户的身份认证信息、验证......
  • Self-Supervised Learning for Point Clouds Data: A Survey
    摘要综述了自监督学习(SSL)在3D点云数据处理领域的最新进展,对现有SSL方法进行了细致的分类和评估,并在多个基准数据集上对代表性方法进行了性能比较。同时指出了现有研究的局限性,提出了未来研究的方向。Introduction文章主要是针对自监督学习的(SSL),详细阐述了3D点云数据由于其......
  • Self-supervised Learning for Pre-Training 3D Point Clouds: A Survey
    Abstract点云数据由于其紧凑的形式和表示复杂3D结构的灵活性而被广泛研究。点云数据准确捕获和表示复杂3D几何形状的能力使其成为广泛应用的理想选择,包括计算机视觉,机器人技术和自动驾驶,所有这些都需要了解底层空间结构。这种方法旨在从未标记的数据中学习通用和有用的点云表......
  • ApplicationContext 详细介绍
    一、概述ApplicationContext是Spring框架中的一个核心接口,它扩展了BeanFactory接口,并提供了更全面的功能。ApplicationContext不仅包含了BeanFactory的所有功能,还添加了国际化支持、资源访问、事件传播、以及更高级的容器特性,如自动装配和生命周期管理等。它是Spring应用中的核心......