使用 LLMLingua-2 压缩 GPT-4 和 Claude 提示

原文地址:Compress GPT-4 and Claude prompts with LLMLingua-2

2024 年 4 月 1 日

向大型语言模型(LLM)发送的提示长度越短,推理速度就会越快,成本也会越低。因此,提示压缩已经成为LLM研究的热门领域。

在最新的一篇论文中,清华大学和微软的研究人员介绍了一种新的与任务无关的提示压缩技术——LLMLingua-2。LLMLingua-2比其他提示压缩方法更快、更高效,且需要的计算资源更少。对于涉及冗长提示的LLM应用来说,它可以成为一个很好的工具,压缩可以节省大量成本并改善用户体验。

微信截图_20240403110434

任务相关的和任务无关的提示压缩

诸如思维链(CoT)推理、上下文学习和检索增强生成(RAG)等技术使LLM能够处理复杂的任务和未在训练数据中包含的知识。

然而,冗长提示的好处是以增加计算和财务需求为代价的。在某些LLM中,更长的提示可能会降低模型处理上下文信息的能力的准确性。

提示压缩通过缩短原始文本同时保留必要信息来解决这些问题。提示压缩的基本假设是,自然语言包含冗余,这些冗余对人类理解可能有用,但对LLM来说则不必要。

提示压缩可以分为“任务相关”和“任务无关”两种方法。任务相关的压缩方法会根据下游任务或当前查询来移除提示中的令牌。一种流行的方法是LongLLMLingua,它采用一种问题相关的多步骤方法,估计令牌的信息熵并移除冗余部分。其他方法使用强化学习来训练一个模型,基于下游任务提供的奖励信号来压缩提示。任务相关压缩方法的权衡之处在于它们在其他任务上的泛化能力有限。

另一方面,任务无关的方法在压缩提示时不考虑具体任务,使其更适用于更广泛的应用和黑盒LLM。一些任务无关的方法包括LLMLingua和Selective-Context。这些方法使用因果小型语言模型(SLM),如Llama-7B,来评估令牌或词汇单元的信息熵,并移除那些不增加有意义信息的部分。

LLMLingua-2是由原始LLMLingua的作者开发的,是一种任务无关的提示压缩技术。

LLMLingua-2的工作原理

当前的任务无关压缩方法存在一些局限性,这促使研究人员创建了LLMLingua的继任者。

“信息熵可能是一个次优的压缩指标,因为(一)它与提示压缩目标不一致;(二)它只利用单向上下文,可能无法捕获提示压缩所需的所有必要信息。”微软高级研究员、论文合著者钱慧武(Qianhui Wu)表示。

LLMLingua-2将提示压缩重新定义为分类任务,即确定每个令牌是否应该保留或丢弃。它利用这种任务定义来创建提示压缩训练数据集。然后,它使用数据集来训练一个用于压缩任务的轻量级双向转换器编码器模型。

“通过这种方式,它可以从完整的双向上下文中捕获提示压缩所需的所有必要信息,并保证压缩后的提示与原始提示保持一致。”

LLMLingua-2具有几个关键优势。首先,使用双向编码器可以确保捕获提示压缩所需的所有必要信息。其次,由于它使用较小的转换器模型来学习压缩目标,因此具有显著较低的延迟。第三,它的设计旨在保持对原始提示的忠实度,避免幻觉。

训练压缩模型

为了生成用于训练提示压缩模型的数据集,研究人员使用数据蒸馏程序从强大的LLM中提取知识。他们向GPT-4提供提示,并指示它在保留必要信息并避免幻觉的同时减少令牌。

在获得原始文本及其压缩版本的配对后,他们为每个原始文本中的令牌分配一个二进制标签,以确定在压缩后是否应保留或丢弃它。研究人员使用MeetingBank数据集创建了训练示例。

然后,他们在数据集上训练了xlm-roberta-large和multilingual-BERT转换器模型的略微修改版本,以将令牌分类为“保留”或“丢弃”。基于BERT的模型的优势在于,它们学习双向特征,而不是仅具有先前令牌知识的自回归解码器模型。这允许压缩模型学习更丰富的相关性,从而实现更好的压缩。

“在推理过程中,我们根据分类模型计算的概率来确定是否保留或丢弃原始提示中的每个令牌。”研究人员写道。

LLMLingua-2 蒸馏提示

LLMLingua-2的实际应用

研究人员在MeetingBank数据集以及几个领域外数据集(如LongBench、ZeroScrolls、GSM8K和Big Bench Hard)上测试了压缩模型。他们使用GPT-3.5-Turbo作为目标模型。但压缩模型也可以与前沿模型(如GPT-4和Claude 3)一起使用。他们还将LLMLingua-2的压缩、速度和准确性与其他方法以及原始提示进行了比较。

他们的研究结果表明,尽管LLMLingua-2的体积较小,但其压缩性能优于其他任务无关基线,并从GPT-3.5-Turbo到Mistral-7B具有良好的泛化能力。

LLM-Lingua-2实现了2-5倍的压缩率,比现有的提示压缩方法快3-6倍。这意味着,当用于需要长系统和上下文提示的应用程序时,它可以节省大量成本。LLMLingua-2还将延迟降低了1.6-2.9倍,并可将GPU内存成本降低8倍。

有趣的是,当使用Mistral-7B作为目标LLM时,研究人员发现LLMLingua-2的性能甚至优于原始提示。“我们推测,Mistral-7B可能在管理长上下文方面不如GPT-3.5-Turbo擅长。我们的方法通过提供具有更高信息密度的较短提示,有效地提高了Mistral-7B的最终推理性能。”研究人员在论文中写道。

“LLMLingua-2是一种与任务无关的提示压缩方法。”吴说。“这意味着,每当您遇到过长的上下文时,都可以使用LLMLingua-2将其压缩为较短的上下文,以适应有限的上下文窗口,减少财务成本(因为OpenAI根据令牌向用户收费),并减少LLM的推理时间。”

然而,与LongLLMlingua等任务感知压缩方法相比,LLMLingua-2在特定任务上表现不佳。

“我们将这种性能差距归因于[任务感知方法]从问题中获取的额外信息。”研究人员写道。“但是,我们的模型的与任务无关特性使其成为一种高效且具有良好泛化能力的选择,可以部署到不同场景中。”

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【opencv】教程代码 —ml (主成分分析、支持向量机、非线性支持向量机)

1. introduction_to_pca.cpp 主成分分析 /*** file introduction_to_pca.cpp* brief 这个程序演示了如何使用OpenCV PCA 提取物体的方向* author OpenCV团队*/// 包含OpenCV函数库所需要的头文件 #include "opencv2/core.hpp" #include "opencv2/imgproc.hpp&q…

人工智能数据分析Python常用库 04 matplotlib库

文章目录 一、matplotlib库的作用与环境配置1、环境配置示例2、改变绘图风格3、保存图片 二、绘制二维图形1、折线图(1)示例(2)调整线条颜色:(3)调整线条风格(4)调整线宽…

深入浅出 -- 系统架构之分布式CAP理论和BASE理论

科技进步离不开理论支撑,而当下大行其道的分布式架构,透过繁荣昌盛表象,底层同样离不开诸多分布式理论撑持。当然,相信诸位在学习分布式相关技术时,必然学到过两个分布式领域中的基础理论,即:CA…

设置Chrome打开链接在新标签页显示

Chrome版本 版本 123.0.6312.106(正式版本) (64 位) 下面这两个页面都有设置按钮: https://www.google.com/?pli1或者https://www.google.com/?hlzh-CN 要先退出账号,要不然看不到右下角的 “设置” 。…

SpamSieve mac垃圾邮件过滤器 直装激活版

SpamSieve通过强大的垃圾邮件过滤技术,帮助用户有效管理和消除不想要的电子邮件。它能与多种电子邮件客户端无缝集成,如Apple Mail、Microsoft Outlook、Airmail等。 软件下载:SpamSieve mac直装激活版下载 该软件利用先进的算法和机器学习技…

Vue知识点(学习笔记)

Vue知识点学习 一、Vue快速上手1. 脚本引用 二、Vue小知识1. 简写v-bindv-modelel和data的两种写法:eldata 2. MVVM模型3. Object.defineproperty方法4. Vue的数据代理5. 事件处理6. 阻止默认事件7. Vue中事件修饰符:8. 引入Element-Ui 一、Vue快速上手 …

虚幻UE5数字孪生蓝图开发教程

一、背景 这几年,智慧城市/智慧交通/智慧水利等飞速发展,骑士特意为大家做了一个这块的学习路线。 二、这是学习大纲 1.给虚幻UE5初学者准备的智慧城市/数字孪生蓝图开发教程 https://www.bilibili.com/video/BV1894y1u78G 2.UE5数字孪生蓝图开发教学…

BPMNJS 在原生HTML中的引入与使用

BPMNJS 在HTML中的引入与使用 在网上看到的大多是基于vue使用BPMN的示例或者教程,竟然没有在HTML使用的示例,有也是很简单的介绍核心库的引入和使用,并没有涉及到扩展库。于是简单看了下,真的是一波三折,坎坎坷坷。不…

FreeRtos入门-5 任务通知

在FreeRTOS中,任务通知、队列、信号量和事件组都是用于任务间通信和同步的机制,但它们各自具有不同的特性和适用场景。 任务通知的主要优势在于其高效性和明确性。使用任务通知发送事件或数据给某个任务时,效率更高,且可以明确指定…

Tuxera2023 NTFS for Mac下载,安装和序列号激活

对于必须在Windows电脑和Mac电脑之间来回切换的Mac朋友来说,跨平台不兼容一直是一个巨大的障碍,尤其是当我们需要使用NTFS格式的硬盘在Windows和macOS之间共享文件时。因为Mac默认不支持写入NTFS磁盘。 为了解决这一问题,很多朋友会选择很便捷…

linux操作系统安装及命令初识,上岸蚂蚁金服

310 包) desktop 1800个包左右 内容必须大于 768M 系统设置 分区设置 挂载点 /boot / swap 交换分区–占用磁盘容量 网络配置 网卡配置 设置为ON 主机名配置 Begin installation 设置 root 用户密码 命令初识 命令 选项 参数: 命令选项参数…

Restful Web Service

Restful 1.特点 RESTful是一种架构风格,强调简单、轻量级和对资源的状态less操作。RESTful是通过HTTP协议进行通信的。RESTful的应用程序可以调用运行在不同服务器上的服务或函数。RESTful的接口通常使用JSON,但实际上它们都支持多种数据格式。RESTful…

Trace链异常检测汇总

微服务应用与单块应用完全不同,一个微服务系统少则有几十个微服务组成,多则可能有上百个服务。比如BAT级别的互联网公司,一般都超过上百个服务,服务之间的依赖关系错综复杂,如果没有有效的监控手段,那么出现…

风控系统之普通规则条件,使用LiteFlow实现

个人博客:无奈何杨(wnhyang) 个人语雀:wnhyang 共享语雀:在线知识共享 Github:wnhyang - Overview 提要 参考:智能风控筑基手册:全面了解风控决策引擎 前面有可配置输入参数的接…

Gson的用法

1. 导入依赖 <dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.6</version> </dependency> 2. 使用Gson进行解析 2.1 Gson解析普通对象 package com.jiang.partnetbackend.…

六、企业级架构缓存篇之memcached

一、memcached概述 1、网站架构优化流程&#xff1a; LNMP架构中网站应用访问流程&#xff1a; 浏览器 (app) → web 服务器 → 后端服务 (php) → 数据库 (mysql) 访问流程越多&#xff0c;访问速度越慢&#xff0c;出现问题的几率也越大。 网站访问流程优化思路&#xff1…

软件测试(测试用例详解)(三)

1. 测试用例的概念 测试用例&#xff08;Test Case&#xff09;是为了实施测试而向被测试的系统提供的一组集合。 测试环境操作步骤测试数据预取结果 测试用例的评价标准&#xff1a; 用例表达清楚&#xff0c;无二义性。。用例可操作性强。用例的输入与输出明确。一条用例只有…

c语言之向main函数传递参数

在c语言中&#xff0c;main函数也是可以传递传递参数的&#xff0c;业内向main函数传递参数的格式是 main(int argc,char *argv[]) 向main函数传递参数不是通过代码传递的&#xff0c;一般是通过dos命令传递 举个例子 #include<stdio.h> void main(int argc,char *ar…

算法刷题应用知识补充--基础算法、数据结构篇

这里写目录标题 位运算&#xff08;均是拷贝运算&#xff0c;不会影响原数据&#xff0c;这点要注意&#xff09;&、|、^位运算特性细节知识补充对于n-1的理解异或来实现数字交换找到只出现一次的数据&#xff0c;其余数据出现偶数次 >> 、<<二进制中相邻的位的…

算法设计与分析实验报告c++实现(排序算法、三壶谜题、交替放置的碟子、带锁的门)

一、实验目的 1&#xff0e;加深学生对分治法算法设计方法的基本思想、基本步骤、基本方法的理解与掌握&#xff1b; 2&#xff0e;提高学生利用课堂所学知识解决实际问题的能力&#xff1b; 3&#xff0e;提高学生综合应用所学知识解决实际问题的能力。 二、实验任务 1、 编…