今日大模型论文 || 清华微软联合打造LLMLingua2,速度提升达2.9倍

news2024/11/13 9:36:01


dbae98d8a8dc88dc39ec5768d796102f.jpeg

1752bddb844eb68595639a781d9c0d32.jpeg

引言:探索任务无关的提示压缩技术

在大型语言模型(LLMs)的应用中,提示(prompts)的使用已成为一种常见的技术,它通过丰富而信息量大的提示来处理复杂和多样化的任务。然而,这些提示往往很长,导致计算和财务成本增加,并可能降低LLMs的信息感知能力。为了解决这些问题,提示压缩技术应运而生,旨在在不丢失关键信息的前提下缩短原始提示。尽管已有研究提出了针对特定任务的提示压缩方法,但这些方法在效率和泛化性方面存在挑战。因此,本文将探索任务无关的提示压缩技术,以提高泛化性和效率。

标题:LLMLingua-2: Data Distillation for Efficient and Faithful Task-Agnostic Prompt Compression

机构:清华大学,微软公司

论文链接:https://arxiv.org/pdf/2403.12968.pdf

公众号【AI论文解读】后台回复“论文解读” 获取论文PDF!

提出问题:现有提示压缩方法的局限性

在大型语言模型(LLM)的应用中,提示压缩是一种减少计算和财务成本、提高信息感知能力的直接解决方案。然而,现有的提示压缩方法存在一定的局限性。首先,信息熵作为压缩指标可能并不理想,因为它仅利用单向上下文,可能无法捕获压缩所需的所有关键信息;其次,信息熵与提示压缩目标未必对齐。此外,依赖于任务特定特征的压缩方法在部署时面临效率和泛化能力的挑战。例如,在基于检索的生成(RAG)应用中,可能需要根据相关查询多次压缩相同文档,这在任务感知的提示压缩中尤为明显。

数据蒸馏:构建有效的提示压缩数据集

1. 数据蒸馏过程简介

数据蒸馏是从大型语言模型(如GPT-4)中提取知识以进行有效的提示压缩的过程,旨在在不丢失关键信息的同时压缩提示。为了实现这一目标,研究者们设计了精心的指令,要求GPT-4仅通过丢弃原始文本中不重要的单词来压缩文本,并且在生成过程中不添加任何新单词。此外,为了应对信息密度的差异,研究者们采用了分块压缩的方法,将长文本分割成不超过512个令牌的多个块,然后指导GPT-4分别压缩每个块。

3abe9f0e0b1a846c7f332ab5b82ac6b0.jpeg

2. 数据注释算法

数据注释的目标是为原始文本中的每个令牌分配一个二进制标签,以确定在压缩后是否应保留该令牌。由于GPT-4可能无法精确遵循指令,研究者们采用了滑动窗口方法来限制搜索范围,并使用模糊匹配来处理GPT-4在压缩过程中可能对原始单词进行的更改。

3. 质量控制指标

为了评估GPT-4蒸馏生成的压缩文本以及自动注释标签的质量,研究者们引入了两个质量控制指标:变异率(VR)和对齐差距(AG)。变异率用于衡量压缩文本中与原始文本不同的单词比例,而对齐差距则用于评估自动注释标签的质量。通过这些指标,研究者们能够过滤掉低质量的样本,确保数据集的质量。

dbd8019d12b32c1da29d26629574577f.jpeg

46554952e3bc7132df56a203efcabcec.jpeg

fb76d42d6158d9728b1ec78e55f58ca4.jpeg

884f83561ba39ed6d4faf573a20e8ecd.jpeg

压缩器设计:任务无关的提示压缩模型

1. 二元分类问题的提出

在设计任务无关的提示压缩模型时,我们首先将提示压缩问题转化为一个二元分类问题。这种方法的核心思想是将每个词汇单元视为一个独立的实体,并为其分配一个标签,标签的值为“保留”或“丢弃”。这样的设计保证了压缩后的提示与原始提示在内容上的忠实度,同时也简化了压缩模型的设计,因为它将复杂的压缩任务简化为了一个简单的分类问题。

2. 压缩策略和模型架构

在压缩策略方面,我们采用了基于Transformer编码器的架构,该架构能够捕捉到每个词汇单元的双向上下文信息,从而为压缩任务提供必要的信息。通过这种方式,我们的模型能够在压缩过程中保留所有对于理解原始提示至关重要的信息。此外,我们的模型还通过使用较小的模型(如XLM-RoBERTa-large和mBERT)来显式学习压缩目标,从而实现了更低的延迟。

实验设计与评估

1. 实验设置和评价指标

实验的设置包括了在多个领域内外的数据集上评估我们的压缩模型,这些数据集包括MeetingBank、LongBench、ZeroScrolls、GSM8K和BBH。我们使用了一系列评价指标来衡量压缩后的提示在不同任务中的表现,这些任务包括摘要生成和问答。在摘要任务中,我们采用了ROUGE指标来评估生成摘要的质量;在问答任务中,我们使用了LongBench提供的评价脚本和指标。

2. 基准测试和结果分析

在基准测试中,我们的模型与几个强基线进行了比较,包括Selective-Context和LLMLingua,这两种方法都基于LLaMA-2-7B。尽管我们的模型在大小上远小于基线中使用的LLaMA-2-7B,但在MeetingBank的内部评估中,我们的方法在问答和摘要任务上都取得了显著的性能提升,几乎达到了原始提示的性能水平。此外,我们的模型在外部基准测试中也展现出了良好的泛化能力,即使是较小的模型也能在不同任务中取得与原始提示相当或甚至更好的性能。在使用Mistral-7B作为目标LLM的评估中,我们的方法同样展现出了显著的性能提升,这进一步证明了我们的模型具有良好的泛化能力。在延迟评估中,我们的模型在不同的压缩比率下都实现了显著的速度提升,同时还降低了对硬件资源的需求。

cae2dc751e13b608e99e6ddb0669952f.jpeg


结论:LLMLingua-2的性能和效率

在本研究中,我们提出了LLMLingua-2,这是一个用于任务不可知的提示压缩的模型,旨在提高大型语言模型(LLMs)的泛化能力和效率。LLMLingua-2通过数据蒸馏过程从LLM(如GPT-4)中提取知识,以在不丢失关键信息的前提下压缩提示。我们还引入了一个抽取式文本压缩数据集,并公开发布了该数据集。

1. 性能:LLMLingua-2在多个领域内外的数据集上进行了评估,包括MeetingBank、LongBench、ZeroScrolls、GSM8K和BBH。结果显示,尽管LLMLingua-2的模型规模较小,但它在性能上显著优于强基线,并展示了出色的泛化能力。特别是,当以Mistral-7B作为目标LLM时,LLMLingua-2不仅保持了与原始提示相当的性能,甚至在某些情况下超越了原始提示。

2. 效率:LLMLingua-2在压缩速度上比现有的提示压缩方法快3倍至6倍,并且在端到端延迟上实现了1.6倍至2.9倍的加速,同时压缩比率达到2倍至5倍。此外,LLMLingua-2的GPU内存开销也大大减少,降低了硬件资源的需求。


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

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

相关文章

STL ④ —— 哈希

1. 散列表 根据 key 计算 key 在表中的位置的数据结构;是 key 和其所在存储地址的映射关系,即 hash(key) % size index struct node{void *key;void *value;struct node *next; };2. hash函数 2.1 hash函数的特点 计算速度快强随机分布性&#xff0…

013_Linux(上传rz,下载sz,tar,zip,unzip)

目录 一、上传、下载 1、通过鼠标操作 (1)下载 (2)上传 2、通过命令操作 rz、sz (1)下载 sz (2)上传 rz 二、压缩、解压 1、tar命令 (1)压缩 &…

成为创作者的第 730 天——创作纪念日

​​ 文章目录 📨 官方致信🎯我的第一篇文章🧩 机缘与成长 🎯 成就🎯 目标 📨 官方致信 今天早上打开 CSDN 私信一看,看到了这一条消息,然后看了下日期。突然感慨到,是…

正式发布:VitePress 1.0 现代化静态站点生成器!

大家好,我是奇兵,今天介绍一下现代化静态站点生成器!,希望能帮到大家。 3 月 21 日, 由 Vue 团队出品的现代化静态站点生成器 VitePress 正式发布 1.0 版本!它专为构建快速、以内容为中心的网站而生,能够轻…

【Redis知识点总结】(六)——主从同步、哨兵模式、集群

Redis知识点总结(六)——主从同步、哨兵模式、集群 主从同步哨兵集群 主从同步 redis的主从同步,一般是一个主节点,加上多个从节点。只有主节点可以接收写命令,主节点接收到的写命令,会同步给从节点&#…

Maven从零到放弃:文档学习

学习背景: Maven一直在使用,自己也构建过相应的项目。也对常用的配置和命令有一些了解,也处理过一些相关的问题。例如:项目缺少依赖;版本冲突或其他构建失败的问题。但是一直没有进行系统性的学习。 链接:…

Redis锁,乐观锁与悲观锁

锁 悲观锁 认为什么时候都会出问题,无论做什么都会加锁 乐观锁 很乐观,认为什么时候都不会出问题,所以不会上锁。 更新数据时去判断一下,在此期间,是否有人修改过这个数据 应用于:秒杀场景 **watch*…

小白如何兼职赚得第一桶金?六大网络赚钱方式助你轻松开启副业之旅

小白如何兼职赚得第一桶金?六大网络赚钱方式助你轻松开启副业之旅 无需担忧,以下为你精心挑选的六大线上兼职方式,将助你轻松开启副业赚钱之旅。 1,参与网络调查:市场调研公司及品牌商为洞察消费者需求,常…

第14篇:2线-4线译码器

Q:有编码器那对应的就会有译码器,本期我们来设计实现2线-4线二进制译码器 。 A:基本原理:译码器是编码器的逆过程,其功能是将具有特定含义的二进制码转换为对应的输出信号。2线-4线二进制译码器有2个输入共4种不同的组…

九州金榜|孩子产生厌学心理应该怎么办?

孩子厌学孩子在成长学习过程中的一个经历,也是家长在对孩子教育中遇到的一大挑战,孩子产生厌心理家长要怎么办呢?很多家长会对此很无奈,下面九州金榜家庭教育给几个方法,帮助家长疏导孩子厌学心理。 来百度APP畅享高清…

图像变换(python)

前言 这个Python没学过,写的是真的不方便,有很多问题还没解决,暂时不想写了,感兴趣的同学可以完善一下。设计的思路就是摆几个控件然后将对应的函数实现,这个Python的坐标放置以及控件的大小我没弄懂,算出…

shell实现查询进程号并批量kill(脚本)

问题或需求描述 在shell中,如果你想通过命令行查询出一系列匹配某个关键词的进程,并使用xargs命令批量结束这些进程,可以按照以下步骤操作: # 查询并提取进程号 pgrep -f "关键词" | xargs kill# 或者,如果…

Linux Load AVG linux 平均负载是什么? 简单解释说明

linux 命令基础汇总 命令&基础描述地址linux curl命令行直接发送 http 请求Linux curl 类似 postman 直接发送 get/post 请求linux ln创建链接(link)的命令创建链接(link)的命令linux linklinux 软链接介绍linux 软链接介绍l…

CI/CD实战-jenkins部署 3

安装 软件下载地址:Index of /jenkins/redhat/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 启动服务 安装推荐插件 不新建用户,使用admin账号登录 修改一下初始密码 新建项目测试 安装git命令 生成密钥 在gitlab中上传公钥 修改ssh 创建中…

22.保护性暂停扩展(一对一)

如果需要多个类之间使用GuardedObject对象,作为参数传递不是很方便,因此设计一个解耦的中间类,这样不仅能够解耦结果的等待者和结果生产者,还能够支持多个任务的管理。 Futures就好比居民楼一层的信箱,每个信箱有房间的…

清华大学突破性研究:GVGEN技术,7秒内从文字到3D高保真生成

引言:3D模型生成的挑战与机遇 随着计算机图形学的发展,3D模型的生成在各个行业中变得越来越重要,包括视频游戏设计、电影制作以及AR/VR技术等。在3D建模的不同方面中,从文本描述生成3D模型成为一个特别有趣的研究领域,…

哪些行业需要在线制作电子证书系统?

哪些行业需要在线制作电子证书系统? 1、教育机构:学校和培训机构需要为学生和培训者颁发证书,您的系统可以帮助他们快速生成和管理这些证书。 2、企业及政府部门:用于员工培训、资质认证等,提高内部管理效率。 3、专…

Learn OpenGL 29 延迟着色法

延迟着色法 我们现在一直使用的光照方式叫做正向渲染(Forward Rendering)或者正向着色法(Forward Shading),它是我们渲染物体的一种非常直接的方式,在场景中我们根据所有光源照亮一个物体,之后再渲染下一个物体,以此类推。它非常…

2024 ccfcsp认证打卡 2023 09 01 坐标变换(其一)

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);int n in.nextInt(); // 操作次数int m in.nextInt(); // 初始坐标个数int temp_x 0; // 临时存储x的累加值int temp_y 0; // 临时存储y的累…

星云小窝项目1.0——项目启动(二)

星云小窝项目1.0——项目启动(二) 文章目录 前言1. 从Github从下载它2. 使用编辑器打开(以pycharm为例)2.1. 下载所需要的模块2.2. 配置mysql数据库2.3. 配置QQ邮箱发送验证码2.4. 修改代码3. 启动总结 前言 上一篇博客大致介绍了…