当前位置: 首页 > 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.lryc.cn/news/451452.html

相关文章:

  • 02.01、移除重复节点
  • 旅游推荐|旅游推荐系统|基于Springboot+VUE的旅游推荐系统设计与实现(源码+数据库+文档)
  • github项目--crawl4ai
  • 仅有N卡独显的情况下安装ubuntu是遇到的黑屏,加载卡顿等问题
  • Vite:为什么选 Vite
  • 个人项目简单https服务配置
  • Rust 函数
  • 微信小程序中的 `<block>` 元素:高效渲染与结构清晰的利器
  • 选读算法导论5.2 指示器随机变量
  • 大数据-154 Apache Druid 架构与原理详解 基础架构、架构演进
  • centos9 nginx 版本
  • https访问报错:net::ERR_CERT_DATE_INVALLD
  • cat用来查看文件内容、合并文件,或者将文件内容输出到终端
  • 基于ssm大学生自主学习网站的设计与实现
  • C++基础补充(01)C++11基于范围的for循环
  • qt6 使用QPSQL
  • 【PostgreSQL】提高篇——公用表表达式(CTE)和窗口函数
  • 【min25筛】【CF2020F】Count Leaves
  • 【d57】【sql】1661. 每台机器的进程平均运行时间
  • ArcGIS共享数据的最佳方法(不丢可视化、标注等各类显示信息一样带)
  • 小程序this.getOpenerEventChannel()当前页面与navigateTo页面之间数据通信
  • 调用飞书接口导入供应商bug
  • 《深度学习》OpenCV 角点检测、特征提取SIFT 原理及案例解析
  • golang grpc初体验
  • 基于小程序+Vue + Spring Boot的进销存库存出库入库统计分析管理系统
  • 【数据结构与算法】时间复杂度和空间复杂度例题
  • 停止模式下USART为什么可以唤醒MCU?
  • Web安全 - 路径穿越(Path Traversal)
  • JSR303微服务校验
  • 56. QTreeWidget的基本使用