当前位置: 首页 > news >正文

【LLM论文日更】| 通过指令调整进行零样本稠密检索的无监督文本表示学习

  • 论文:https://arxiv.org/pdf/2409.16497
  • 代码:暂未开源
  • 机构:Amazon AGI、宾夕法尼亚州立大学
  • 领域:Dense Retrieval
  • 发表:Accepted at DCAI24 workshop@CIKM2024

研究背景

  1. 研究问题:这篇文章要解决的问题是如何在零样本情况下通过指令调优预训练的大型语言模型(LLM)来进行无监督文本表示学习,以改进密集检索系统的性能。
  2. 研究难点:该问题的研究难点包括:缺乏标注数据时如何有效地进行文本表示学习;如何在无监督情况下增强语料库表示;如何在训练和推理过程中保持模型的一致性。
  3. 相关工作:该问题的研究相关工作有:利用预训练大型编码器(如T5模型)来缓解数据需求;通过合成查询-语料库相关性对来训练密集检索系统;使用预训练的LLM作为少样本查询生成器来构建训练数据。

研究方法

这篇论文提出了一种通过自指令调优预训练编码器-解码器LLM来进行无监督文本表示学习的方法。具体来说,

  1. 自指令学习:首先,设计两个指令任务,即问题生成和关键词总结,通过提示预训练LLM生成每个给定语料库的合成问题和关键词。然后,应用过滤器对合成数据进行质量控制,并对预训练LLM进行指令调优。

  2. Rao-Blackwell化:其次,使用指令调优后的LLM按照相同的指令提示生成更好的合成问题和关键词。然后,获取新生成的合成问题和关键词以及语料库的嵌入,并将它们的加权平均值作为增强的语料库表示。

(图不清晰,建议看原文)

公式解释:基于Rao-Blackwell定理,语料库嵌入可以通过以下公式进行改进:

 

实验设计

  1. 数据集:实验使用了四个信息检索数据集,包括NFCorpus、SciFact、SCIDOCS和GermanQuAD。由于计算资源限制,对SCIDOCS和GermanQuAD数据集进行了下采样,确保下采样的语料库包含所有相关的测试查询。
  2. 基线模型:比较了仅使用语料库嵌入和增强语料库嵌入的零样本实验性能。使用余弦相似度衡量查询和语料库之间的相关性。
  3. 编码器-解码器模型:使用了T5和FLAN-T5模型,分别进行了基础版和大版本的实验。
  4. 指令查询生成:生成了两种类型的指令,即关键词总结和问题生成,并开发了一个过滤器来提高生成指令的质量。
  5. 超参数设置:在指令调优过程中,使用AdaFactor优化器,学习率为0.0001,批量大小为16,训练轮数为30。早期停止策略在验证损失连续五个epoch没有改善时触发。

结果与分析

  1. 语料库与句子索引:实验结果表明,句子级多表示技术在所有数据集上均优于语料库级单表示技术。随着模型规模的增加,性能也得到了提升。

  2. 整体结果:指令调优后,FLAN-T5模型在所有指标上的性能均有所提升,除了SCIDOCS数据集。这主要是因为指令调优后生成的查询质量更高,且每个合成查询的重叠度较低,使得语料库更易区分。

  1. 消融研究:研究了四种不同的权重方法,结果表明手动加权方法优于BERTScore方法,且指令调优后的模型表现更好。

  1. 语料库表示增强:与其他语料库表示增强方法(如docTTTTTquery)相比,本文方法在嵌入级别上的增强效果更显著,且自指令调优模型的表现优于其监督表示生成模型。

总体结论

本文提出了一种通过自指令调优预训练编码器-解码器LLM来进行无监督文本表示学习的方法。基于Rao-Blackwell定理,利用合成查询的嵌入来增强语料库表示。在零样本实验中,提出的方法在不同数据集上均显著提高了检索性能,甚至在某些情况下超过了现有的最先进模型。该方法在数据效率和检索任务的高效性方面表现出色,未来工作将进一步探索该方法在分离的编码器和解码器模型上的应用。

 


http://www.mrgr.cn/news/41221.html

相关文章:

  • 常用bash脚本
  • Java - LeetCode面试经典150题(三)
  • 心跳进程与守护进程(一)
  • MySQL 实验1:Windows 环境下 MySQL5.5 安装与配置
  • 基于SSM的宿舍管理系统 宿舍管理平台 智慧宿舍管理系统 在线宿舍信息管理系统SSM开发 宿舍管理平台 宿舍信息管理 宿舍资源管理系统(源码+定制+文档)
  • MySQL基础篇 - 事务
  • 初识算法 · 双指针(2)
  • 基于Spring Boot+Vue的精品项目分享
  • 2024最新的软件测试面试大全(含答案+文档)
  • 详解Java中的Collection单列集合(从底层到用法超详细解析和细节分析)
  • vue框架和uniapp框架区别
  • 使用默认不可变的Rust变量会踩什么坑
  • C++平台跳跃游戏
  • 光缆的组成、结构、型号
  • python串口示波器(将串口数据接收与绘图分开)
  • s5pv210 -- 集合
  • 六.应用层
  • 命令行操作的基本指令【Linux】学完使用操作命令行就像喝汤一样快
  • 计算机网络:计算机网络体系结构 —— OSI 模型 与 TCP/IP 模型
  • PayPal轮询系统