[大语言模型-论文精读] ACL2024-长尾知识在检索增强型大型语言模型中的作用

news2024/11/16 7:42:10

ACL2024-长尾知识在检索增强型大型语言模型中的作用

在这里插入图片描述
On the Role of Long-tail Knowledge in Retrieval Augmented Large Language Models
Authors: Dongyang Li, Junbing Yan, Taolin Zhang, Chengyu Wang, Xiaofeng He, Longtao Huang, Hui Xue, Jun Huang

1.概览

在这里插入图片描述

问题解决:
这篇论文研究了在大型语言模型(LLMs)中,如何通过检索增强生成(RAG)技术来提升模型对长尾知识(long-tail knowledge)的处理能力。长尾知识指的是那些在大规模预训练中不常见,但在实际应用中又非常重要的知识。论文指出,尽管RAG技术能够通过检索相关文档来增强LLMs的回答质量,但它通常不加区分地增强所有查询,而忽略了LLMs真正需要的长尾知识。

研究成果:
研究者提出了一种基于生成预期校准误差(Generative Expected Calibration Error, GECE)的方法来检测长尾知识,并只在查询涉及长尾知识时才进行文档检索和知识融合。实验结果表明,与现有的RAG流程相比,该方法在平均推理时间上实现了超过4倍的加速,并且在下游任务中性能得到了一致性提升。

2. 研究背景

技术背景:
大型语言模型(LLMs)在自然语言处理(NLP)领域取得了显著的成就,但它们在处理长尾知识时仍然存在挑战。RAG技术通过检索补充知识并将其注入模型来增强LLMs的生成能力,但这种方法往往忽略了对长尾知识的特别关注。

发展历史:
RAG技术的发展可以追溯到早期的检索-生成模型,随着深度学习技术的进步,尤其是Transformer架构的出现,RAG技术得到了快速发展。近年来,研究者们开始关注如何更有效地利用RAG技术来提升LLMs在特定任务上的表现。

3. 技术挑战

困难:

  • 知识冗余: 在预训练阶段,LLMs已经学习了大量的通用知识,RAG技术在处理常见知识时可能会导致计算资源的浪费。
  • 长尾知识检测: 如何有效地检测和区分LLMs在处理查询时是否需要长尾知识是一个挑战。
  • 效率与性能的平衡: 在提升模型性能的同时,如何保持或提升推理效率是一个关键问题。

4. 破局方法

解决方法:

  • GECE指标: 论文提出了一种新的指标GECE,结合了统计学和语义学的方法来衡量知识的“长尾性”, 通过METEOR分数和LLMs生成文本的平均token概率来计算。
  • 长尾知识检测: 使用GECE值来检测输入查询是否涉及长尾知识。
  • 选择性增强: 改进的RAG流程, 只有当查询涉及长尾知识时,才进行文档检索和知识融合,从而提高了推理效率。

ECE:
ECE = ∑ i = 1 B n b i N ∣ a c c ( b i ) − c o n f ( b i ) ∣ \text{ECE} = \sum_{i=1}^{B}\frac{n_{b_i}}{N}|acc(b_i) - conf(b_i)| ECE=i=1BNnbiacc(bi)conf(bi)

GECE:
GECE = ∣ M ( p r e d , r e f ) − 1 n ∑ i = 1 n p ( t i ) ∣ α ⋅ [ E ( ▽ i n s ) ⋅ ▽ i n s ] \text{GECE} = \frac{|M(pred, ref) - \frac{1}{n}\sum_{i=1}^{n}p(t_i)|}{\alpha \cdot [E({\bigtriangledown_{ins}) \cdot {\bigtriangledown}_{ins}}]} GECE=α[E(ins)ins]M(pred,ref)n1i=1np(ti)
这里 ▽ i n s {\bigtriangledown_{ins}} ins是当前实例的梯度, E ( ▽ i n s ) E({\bigtriangledown_{ins}}) E(ins)是整个数据集的平均梯度。

5. 技术应用

实验设置:

  • 使用了NQ、TriviaQA和MMLU等数据集进行实验。
  • 与多个基线模型进行了比较,如Llama2-7B、IRCoT、SKR等。
  • 实验中考虑了不同数量的增强文档(10、15、20篇)对性能的影响。

**实验效果: **

  • NQ数据集:使用GECE后,Rouge-1和Bleu-4指标分别达到了42.9和43.7,平均推理速度提升了2.1倍。
  • TriviaQA数据集:使用GECE后,Rouge-1和Bleu-4指标分别达到了24.8和24.0,平均推理速度提升了2.2倍。
  • MMLU数据集:使用GECE后,准确率提升到了85.9%,推理速度提升了2.4倍。
    在这里插入图片描述
    在这里插入图片描述

结论
通过GECE过滤数据后,所有基线模型的处理速度都有所提升,特别是迭代方法(如ITER-RETGEN和IRCoT)显著加速。此外,通过引入较少的普通实例噪声,还提升了任务性能。

潜在应用:

  • 问答系统: 提升问答系统在处理长尾问题时的准确性和效率。
  • 知识检索: 在需要精确知识检索的场景下,如法律、医疗等领域,提高检索的准确性。
  • 教育辅助: 在教育领域,帮助学生快速准确地获取稀有或专业性知识。

6. 主要参考工作

  • ECE相关研究: 如Aimar等人在2023年的工作,提供了校准误差的新视角。
  • RAG技术: 如Borgeaud等人在2022年的研究,探讨了通过检索增强预训练语言模型的方法。
  • 长尾知识处理: 如Kandpal等人在2023年的研究,讨论了LLMs在长尾知识学习上的挑战。
  • METEOR评估: Banerjee和Lavie在2005年提出的评估机器翻译质量的方法,被用于GECE指标中。

如果您对我的博客内容感兴趣,欢迎三连击(点赞,关注和评论),我将持续为您带来计算机人工智能前沿技术(尤其是AI相关的大语言模型,深度学习,计算机视觉相关方向)最新学术论文及工程实践方面的内容分享,助力您更快更准更及时地了解前沿技术的发展现状。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2163134.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows驱动调试方法

单步调试驱动 驱动的调试不能直接在本机上进行,而是要放在虚拟机(或其它设备)中。这是因为在内核模式下,一个断点的触发将会停下整个系统而不只是单个进程。 在前面的文章里,使用了DbgPrint函数来进行日志的输出&…

学习一下怎么用git

目录 初始化操作 设置名字: 设置邮箱: 查询状态 初始化本地仓库 清空git bush控制台 git的三个区域 文件提交 将会文件提交到暂存区 暂存指定文件 暂存所有改动文件 查看暂存区里面的文件 将文件提交到版本库 git文件状态查看 ​编辑 暂存区的相关指令…

2024专业U盘格式化数据恢复工具推荐榜

对于经常在不固定办公地点工作,且依赖U盘存储重要资料的朋友来说,U盘无疑成为了随身携带的“数字保险箱”。然而,频繁使用U盘也意味着面临数据丢失的风险。面对u盘格式化怎么恢复数据的难题,您或许正寻求有效的解决方案。接下来&a…

Spring源码-从源码层面讲解传播特性

传播特性:service&#xff1a;REQUIRED&#xff0c;dao:REQUIRED 两个都是required使用的是同一个事务&#xff0c;正常情况&#xff0c;在service提交commit <tx:advice id"myAdvice" transaction-manager"transactionManager"><tx:attributes&…

2024年CSP-J认证 CCF信息学奥赛C++ 中小学初级组 第一轮真题-阅读程序题解析

2024 CCF认证第一轮&#xff08;CSP-J&#xff09;真题 二、阅读程序题 (程序输入不超过数组或字符串定义的范围&#xff0c;判断题正确填√错误填X;除特殊说明外&#xff0c;判断题 1.5分&#xff0c;选择题3分&#xff0c;共计40 分) 第一题 01 #include <iostream>…

【Python】探索 PyTorch 在机器学习中的应用

在机器学习的浪潮中&#xff0c;PyTorch 以其灵活性和易用性成为了研究者和开发者的热门选择。本文将探讨 PyTorch 在机器学习领域的应用&#xff0c;并展示如何使用 PyTorch 构建一个基本的机器学习模型。 ⭕️宇宙起点 &#x1f3ac; 机器学习简介&#x1f4a2; PyTorch 与机…

胤娲科技:AI程序员——重塑编程世界的魔法师

当魔法遇上代码 想象一下&#xff0c;一个对编程一无所知的初中生&#xff0c;在熙熙攘攘的展会现场&#xff0c;仅凭几句简单的提示词&#xff0c;就在几分钟内创造出一个功能完备的倒计时网页。 这听起来像是科幻电影中的场景&#xff0c;但如今&#xff0c;在阿里云「通义灵…

心觉:如何重塑高效学习的潜意识(1)两种方法的优缺点

Hi&#xff0c;我是心觉&#xff0c;与你一起玩转潜意识、脑波音乐和吸引力法则&#xff0c;轻松掌控自己的人生&#xff01; 挑战每日一省写作180/1000天 你的学习习惯是什么呢 学习的时候是感到轻松吗 很多人感觉现在是知识大爆炸的时代&#xff0c;每天都会产生海量的知…

C++学习笔记----8、掌握类与对象(一)---- 对象中的动态内存分配(2)

2.2、用析构函数释放内存 每当完成动态分配内存时&#xff0c;都应该释放。如果在一个对象中动态分配内存&#xff0c;释放内存的地方就是析构函数。编译器保证当对象被破坏时会调用析构函数。下面就是Spreadsheet类定义中的析构函数&#xff1a; export class Spreadsheet { …

秋分之际,又搭建了一款微信记账本小程序

在这个金色的季节里&#xff0c;每一粒粮食都蕴含着生命的奇迹&#xff0c;每一片叶子都在诉说着成长的故事。秋分之际&#xff0c;又搭建了一款微信记账本小程序。 产品概述 微信记账本小程序是一款便捷的个人财务管理工具&#xff0c;旨在帮助用户轻松记录、管理和分析日常…

STM32基础学习笔记-NVIC中断面试基础题4

第四章、NVIC: 外部中断_串口中断 1、按键按下后&#xff0c;GPIO 会产生一个上升/下降沿&#xff0c;G030内部是如何触发外部中断的呢&#xff1f; 配置GPIO引脚&#xff1a; 首先&#xff0c;需要将特定的GPIO引脚配置为输入模式&#xff0c;并设置为外部中断源。这通常通过…

Nexus3的妙用

nexus 3使用场景 Nexus是一个全能仓库,通过部署nexus可以实现包含yum、apt、Maven、pypi、docker等的多种仓库。以下是nexus的适用场景: 当公共仓库无法访问或缓慢时,搭建nexus。比如国内docker无法访问,需要镜像加速。可以使用海外主机部署nexus,在nexus中创建docker(p…

uniapp微信小程序遮罩层u-popup禁止底层穿透

添加 touchmove.prevent&#xff0c;遮罩层底部的页面就不会滑动了微信开发者工具不生效&#xff0c;真机生效 <u-popup :show"showEwm" close"closeEwm" mode"center" touchmove.prevent><view class"ewmshow"></vie…

宝塔部署vue项目出现的各种问题

使用宝塔面板&#xff0c;网站页面&#xff0c;构建php静态网页 问题一&#xff1a;图片等静态资源无法加载 找到真正请求的url&#xff0c; 然后在项目目录下面创建对应的目录&#xff0c;将资源放入 问题二&#xff1a;刷新出现404 在这里任意位置添加 ## 添加上这个配…

力扣【118-杨辉三角】【数组-C语言】

题目&#xff1a;力扣-118 杨辉三角&#xff1a;&#xff08;算法思路&#xff09; 1. 每行第一个数和最后一个数都是1 2. 把杨辉三角左端对齐&#xff0c;从第三行开始&#xff0c;非首尾的元素值等于上一行同列的元素与该元素之前的元素之和&#xff0c;即 t [ j ] r e t …

软考高级:需求工程- 需求获取方式 AI解读

需求获取是项目管理和产品开发中的关键步骤&#xff0c;关系到项目的成功与否。你提到的几种需求获取方式涵盖了多个维度&#xff0c;以下我将逐一解析它们的用途与优势。 生活化例子 需求获取就像你要准备一场家庭聚会&#xff0c;需要先了解每个家庭成员的喜好。你可以通过…

【OceanBase 诊断调优】—— GC问题根因分析

GC 流程涉及到 RS 的状态切换和 LS 的资源安全回收&#xff0c;流程上较长。且 GC 线程每个租户仅有一个&#xff0c;某个日志流 GC Hang 死时会卡住所有其余日志流的 GC&#xff0c;进而造成更大的影响。 本文档会帮助大家快速定位到 GC 故障的模块&#xff0c;直达问题核心。…

SQL分组聚合子查询问题

场景 订单表 t_order 有如下数据&#xff1a; 字段分别为&#xff0c; 销售订单号、 订货数量 发货表 t_order_delivery 有如下数据&#xff1a; 字段分别为&#xff0c; 销售订单号、 发货数量 问题 问题1&#xff1a;查询部分发货的 销售订单号数据 &#xff1f; 分析…

数据集-目标检测系列-海洋鱼类检测数据集 fish>> DataBall

数据集-目标检测系列-海洋鱼类检测数据集 fish>> DataBall 数据集-目标检测系列-海洋鱼类检测数据集 fish 数据量&#xff1a;1W 数据项目地址&#xff1a; gitcode: https://gitcode.com/DataBall/DataBall-detections-100s/overview github: https://github.com/…

wpf中如何访问控件和生成使用事件?

实际上对于初次使用wpf的同学来说&#xff0c;尤其是有winform编程经验的童鞋来说&#xff0c;最需要解决的就是快速掌握访问控件的方法以及生成和使用事件。这样才能让页面具有最起码的交互性。下面我们来分别讲述。 文章原出处&#xff1a;https://blog.csdn.net/haigear/ar…