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

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.rhkb.cn/news/434906.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hadoop三大组件之YARN(一)

YARN架构与任务提交流程详解 1. YARN的组成架构 YARN(Yet Another Resource Negotiator)是Hadoop生态系统中的一个重要组成部分,主要用于资源管理和调度。YARN的架构主要由以下几个关键组件构成: 1.1 ResourceManager&#xff…

Ubuntu24.04 yum安装

安装yum: sudo apt-get install yum 执行报错 E: Package yum has no installation candidate 解决:更换镜像源,找到自己的系统版本(如本系统为Ubuntu24.04)用vim进行更换,网址: ubuntu | 镜…

视频融合共享平台LntonAIServer视频智能分析抖动检测算法和过亮过暗检测算法

LntonAIServer作为一款智能视频监控平台,集成了多种先进的视频质量诊断功能,其中包括抖动检测和过暗检测算法。这些算法对于提升视频监控系统的稳定性和图像质量具有重要意义。 以下是对抖动检测算法和过暗检测算法的应用场景及优势的详细介绍。 一、L…

Vue.js组件开发指南

Vue.js组件开发指南 Vue.js 是一个渐进式的 JavaScript 框架,用于构建用户界面。它的核心是基于组件的开发模式。通过将页面分解为多个独立的、可复用的组件,开发者能够更轻松地构建复杂的应用。本文将深入探讨 Vue.js 组件开发的基础知识,并…

35 | 实战一(下):手把手带你将ID生成器代码从“能用”重构为“好用”

上篇文章中,我们结合 ID 生成器代码讲解了如何发现代码质量问题。虽然 ID 生成器的需求非常简单,代码行数也不多,但看似非常简单的代码,实际上还是有很多优化的空间。综合评价一下的话,小王的代码也只能算是“能用”、…

线上线下融合发展:开启商业新未来

在当今时代,线上与线下融合发展已成为商业领域的重要趋势。 线上通常指通过互联网等信息技术进行的商业活动,具有便捷、高效、覆盖面广等优势;线下则是传统实体商业活动,在体验、服务、信任度方面有独特价值。 线上与线下融合发展…

【RocketMQ】MQ与RocketMQ介绍

🎯 导读:本文介绍了消息队列(MQ)的基本概念及其在分布式系统中的作用,包括实现异步通信、削峰限流和应用解耦等方面的优势,并对ActiveMQ、RabbitMQ、RocketMQ及Kafka四种MQ产品进行了对比分析,涵…

AIGC教程:如何用Stable Diffusion+ControlNet做角色设计?

前言 对于生成型AI的画图能力,尤其是AI画美女的能力,相信同行们已经有了充分的了解。然而,对于游戏开发者而言,仅仅是漂亮的二维图片实际上很难直接用于角色设计,因为,除了设计风格之外,角色设…

S32K312 RTD 4.0.0 版本 OCU 例程配置流程说明

一、前言 由于 RTD 4.0.0 版本并没有 S32K312 相关例程,本文基于已有的 S32K344 OCU 例程,新建 S32K312 工程,讲解 OCU 例程的相关配置流程。 二、基本概念 OCU(Output Compare Unit – 输出比较单元)本质上是一个计…

工业数据采集系统

一、网页部分代码 效果图&#xff1a; 代码实现&#xff1a; <!DOCTYPE html> <html lang"zh"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0&qu…

c语言200例 066

大家好&#xff0c;欢迎来到无限大的频道 今天给大家带来的是c语言200例。 要求&#xff1a; 根据输入的职业表示&#xff0c;区分是老师还是学生&#xff0c;然后根据输入的信息&#xff0c;将对应的信息输出&#xff0c;如果是学生&#xff0c;则输出班级&#xff0c;如果是…

电子连接器信号完整性仿真实训教程 一

电子连接器信号完整性仿真学习除需要熟悉软件的基本操作外&#xff0c;还需要基本的实际操作练习才能完全掌握&#xff0c;学以致用。因此推出几期实训教程&#xff0c;教程中将不再详细讲怎么一步一步操作软件&#xff0c;重点讲一些步骤&#xff0c;及一些技巧。也会将连接器…

人工值守向无人值守转变的智慧油站开源了

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。用…

OpenCV图像文件读写(4)解码图像数据函数imdecode()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 从内存缓冲区读取图像。 imdecode 函数从指定的内存缓冲区读取图像。如果缓冲区太短或包含无效数据&#xff0c;函数将返回一个空矩阵 (Mat::dat…

基于STM32的无人驾驶汽车路径规划与视觉识别系统

目录 引言项目背景环境准备 硬件准备软件安装与配置系统设计 系统架构关键技术代码示例 摄像头图像采集与处理路径规划算法实现实时视觉障碍物检测电机控制与执行应用场景结论 1. 引言 无人驾驶技术是当前自动化和人工智能领域的热门课题之一&#xff0c;涉及到复杂的感知、…

(二)Mat类

构造函数 Mat m(3, 2, CV_8UC3, Scalar(0, 0, 255)); std::cout << m << std::endl;创建一个行数为3&#xff0c;列数为2&#xff0c;图像元素是8位无符号整型&#xff0c;且有3个通道&#xff0c;图像所有像素值被初始化为(0,0,255) opencv中默认的颜色顺序为BGR…

第五十八周周报 FE-GNN

文章目录 week58 FE-GNN摘要Abstract一、大数据相关1. 完全分布式zookeeper2. 污水处理过程2.1 污水处理的基本方法2.2 污水处理基本工艺流程 二、文献阅读1. 题目2. Abstract3. 文献解读3.1 Introduce3.2 创新点 4. 网络框架4.1 特征子空间平坦化4.2 结构化主成分4.3 结论 5. …

OJ在线评测系统 前端创建题目(增) 更新题目(改) 题目列表(查) 以及做题页面的开发 基于VUECLI脚手架画界面

目录 前端创建页面的开发一 创建一个路由 用acro design写 前端创建页面的开发二 题目管理页面 搜索 最終效果 题目更新页面的开发 携带参数的那种 修改路由 页码更新细节 我们先处理菜单项的权限控制和权限隐藏 在这里改 属性绑定一个函数 可以参考聚合搜索项目…

Spring Boot项目连接Oracle数据库启动报错:Undefined Error

描述&#xff1a;远程拉下来的代码&#xff0c;配置了maven仓库后&#xff0c;未进行其他修改&#xff0c;自己本地启动报错。 报错现状&#xff1a; 解决&#xff1a;添加参数-Duser.nameuser后&#xff0c;启动成功。 原因分析&#xff1a; 分析一&#xff1a; maven仓…

第三节-类与对象(中)

1.类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类&#xff08;空类大小为1&#xff09;。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生成以下6个默认成员函数。 默认成员函数&#xff1a;…