大模型入局传统算法,LLMZip基于LLaMA-7B实现1MB文本压缩率90%!

news2024/11/17 21:43:21

论文链接:

https://arxiv.org/abs/2306.04050

随着以ChatGPT、GPT-4为代表的AI大模型逐渐爆火进入公众视野,各行各业都开始思考如何更好的使用和发展自己的大模型,有一些评论甚至认为大模型是以人工智能为标志的第四次产业革命的核心竞争产品。例如在5月26日的北京中关村2023论坛上,百度公司创始人、CEO李彦宏发表了题为《大模型改变世界》的演讲。在这次演讲中,李彦宏提出:“百度要做第‍一个把全部产品重做一遍的公司”。这意味着,大模型现有的能力,已经可以向传统的互联网应用和方法发出挑战。

本文介绍一篇来自得克萨斯A&M大学的工作,在本文中,作者瞄准的领域是传统的文本压缩算法。作者巧妙地发挥了现有大模型的文本预测能力,例如使用LLaMA-7B对输入的前几个token预测其下一个位置的文本,并且对大模型预测英语熵(entropy of English)的渐近上限进行了全新的估计,估计结果表明,在大模型加持下,该估计值明显低于目前常用方法的估计值。基于这一发现,作者提出来一种基于大模型的英语文本无损压缩算法LLMZip,LLMZip巧妙的将大型语言模型的文本预测能力与无损压缩方案相结合,实现了高效的文本压缩性能,经过一系列的实验表明,LLMZip已经超过了目前最为先进的文本压缩算法,例如BSC、ZPAQ和paq8h。

一、引言

目前以ChatGPT为代表的大模型主要在自然语言领域中的学习和预测等两个方面取得了非常惊人的成就。实际上,学习、预测和压缩三者之间有着非常密切的联系。早在1951年,信息论之父和人工智能先驱克劳德・香农(C.E.Shannon)发表了一篇名为《Prediction and Entropy of Printed English》的论文[1],在该文中,香农以英语语言为例,深度探索了预测和压缩之间的联系,并且对英语预测熵的上下界进行了估计,下图从香农1951年论文手稿中摘录。

 

香农认为,可以通过对一段文本中的下一个单词进行预测,我们就可以估计出当前文本所含的信息量,如果预测效果很好的话,就可以将该预测模型转换为一个良好的压缩算法。这一思想在后来的信息论中发挥了重要作用,目前很多用于语音、图像和视频压缩的算法都明确或隐含地利用了这一思想。这种压缩方法的性能在很大程度上取决于预测器的效果,本文作者认为,每当模型预测能力取得重大进展时,我们都有必要研究最新的预测模型对压缩方法是否有影响。因此作者很快就想到,能否使用LLaMA和GPT-4等大模型来得到更好的文本压缩结果和更准确的英语熵估计。作者在实验中选用了LLaMA系列模型中的LLaMA-7B版本,实验数据集选用text8,在text8数据集中的1MB子集中,LLMZip得到的熵估计上界为0.709位/字符,明显低于香农论文中的估计上界。此外,在text8的100KB子集中,LLMZip可以达到0.98位/字符的压缩率,这明显优于目前的SOTA方法。

二、本文方法

2.1 LLMZip的压缩建模

本文所遵循的压缩建模方式与1951年香农提出的估计英语熵的思想几乎相同,主要区别是本文使用了现代的可变长度的单词token来作为基础元素,并且使用大型语言模型来作为预测器,而不是让人来预测句子中的下一个元素。作者使用了一个例子来说明本文的压缩建模方式,给定一个英文文本:“My first attempt at writing a book”。

LLMZip的目标是将这个句子转换为长度尽可能短的比特序列,以便可以从比特序列中重建得到原始序列。LLMZip首先使用分词器(tokenizer)将该句子拆分成一系列tokens。随后使用具有记忆功能的语言模型对先前的M个token进行观察,然后对句子的下一个token进行预测,具体来说,模型会为下一个token的出现概率生成一个排序好的候选列表,如下图所示。

 

上图中下一个位置的可能选项有“reading”、“writing”、“driving”、“cooking”等词,LLMZip的做法是计算该句子实际单词(writing)在这个列表中的排名,该排名被定义为R5,作者规定排名顺序从0开始,即概率最大的词排名为 0,第二个最有可能的词排名为1,依此类推,在这个例子中,“writing”的排名是R5 = 1。

 

随后模型预测窗口向后推进一个位置,此时需要根据第2到第5个单词来预测出第6个单词,如上图所示,在这个例子中,第6个单词的预测结果恰好是候选列表中排名最靠前的单词,因此排名R6 = 0。以此类推,我们可以发现这样预测下来的排名预测是1,0,0,....这样的包含很多0的数字序列,这种序列通常可以使用标准的无损压缩算法(例如zip,霍夫曼编码)进行压缩

 

当对输入文本进行重建时,首先需要解压缩得到token排名列表,然后使用与压缩阶段相同的LLM对输入token进行预测,并使用解压得到的排名来确定预测输出,进而得到完整的解压文本。

2.2 LLMZip的压缩比

 

 

随后作者采用无损压缩算法(例如zlib)来对排名序列压缩到 Nb个比特位,实际上,LLMZip算法真正压缩的目标仅仅是排名序列,因此LLMZip的压缩比p可以计算如下:

2.3 LLMZip中的两种无损压缩方案

 

三、实验效果

本文的实验在text8数据集上进行,并且使用LLaMA-7B[3]作为大型语言模型,作者从先前的工作中摘录了目前SOTA方法在text8数据集上的最佳压缩性能,例如paq8h算法可以达到1.2 位/字符的压缩率,ZPAQ算法可以达到1.4位/字符的压缩比。作者将这两种算法作为基线对比方法,与LLMZip算法的对比结果如下表所示。

 

整体数据集被划分为10个不同的批次,每个批次含有100,000个tokens,表中最后一行为每种方法在1M数据量下的平均压缩性能。可以看出,LLMZip的LLaMA+zlib和LLaMA+TbyT版本分别可以达到1.0733位/字符和0.8449位/字符的压缩比,远优于另外两种对比方法

除了简单的压缩比性能对比,作者还进一步分析了LLMZip的压缩性能对大模型内存的依赖性,如上表所示,正如作者所预期的那样,模型的压缩性能随着  的增加和提高,作者还发现,模型的压缩推理时间与输入文本所占内存容量大致呈现线性比例。

为了验证本文提出的LLMZip方法的鲁棒性,作者还从互联网电子书库中选取了一本近期发布(2023年5月25日)的书籍来对LLMZip方法进行测试。作者从该书中同样提取了100,000个tokens,并且按照text8数据集的标准进行预处理。同时,为了对比基于LLaMA的大模型压缩器与目前常用的标准文本压缩器之间的性能,作者还在该书籍上直接运行了zlib算法,模型的最终测试对比结果如上表所示,可以看到,zlib算法的压缩率为2.8位/字符,这一结果明显低于LLMZip的压缩结果。

四、 总结

本文提出的LLMZip是一种使用大规模语言模型(LLaMA-7B)的新型文本压缩技术,可以极大地提高数据存储和通信的效率,作者进行的实验已经展示出LLMZip惊人的压缩率,结果表明其可以将1MB的文本数据压缩约90%。这得益于现有大语言模型强大的文本预测能力,即根据历史的输入文本来预测下一个位置的单词或token,这种预测能力早在香农时代就被认为是减少文本冗余和高效编码的关键。此外,借助于大模型对长文本数据优越的处理能力,LLMZip还有望提升传统文本压缩方法在长文本情景时的压缩效果。虽然LLMZip目前只支持英文文本压缩,但是随着多语言大模型的快速发展,我们相信LLMZip很快就会在其他语言中进行应用。

参考

[1] Claude E Shannon, “Prediction and entropy of printed english,” Bell system technical journal, vol. 30, no. 1, pp. 50–64, 1951.

[2] Thomas M Cover and Joy A Thomas, Elements of Information Theory, Wiley, New York, 1999.

[3] Hugo Touvron, Thibaut Lavril, Gautier Izacard, Xavier Martinet, Marie-Anne Lachaux, Timothée Lacroix, Baptiste Rozière, Naman Goyal, Eric Hambro, Faisal Azhar, Aurelien Rodriguez, Armand Joulin, Edouard Grave, and Guillaume Lample, “Llama: Open and efficient foundation language models,” 2023.

Illustration by unDraw

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

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

相关文章

11.窗口看门狗-WWGD

1.窗口看门狗概述: (1)之所以称为窗口是因为其喂狗时间是一个有上下限的范围内(窗口),可以通过设定相关寄存器,设定其上限时间(下限时间固定)。喂狗的时间不能过早也不能过晚。而独立看门狗限制喂狗时间在0-x内&#…

Zigbee模块(CC2530)详解

Zigbee模块(CC2530) 0. Zigbee概述1. 常见的Zigbee模块2. CC2530模块3. STM32使用CC2530模块方法代码模板 0. Zigbee概述 Zigbee是一种无线通信协议,专为低功耗、低数据速率的应用而设计。它工作在2.4 GHz频段,常用于家庭自动化、…

MYSQL-SELECT语句超详解

目录 前言: SELECT语法 示例 单个字段查询 多个字段查询 查询所有字段 没有FROM的SELECT 查询系统时间 数值计算 虚拟表dual WHERE语句 示例 AND OR 比较运算符 AND OR 运算符优先级 IN NOT IN BETWEEN NOT BETWEEN LIKE EXISTS ORDER BY LIMIT …

SpringBoot(三)SpringBoot搭建简单服务端

之前的两篇文章介绍了如何使用ItelliJ社区版创建SpringBoot项目以及SpringBoot的starter。本篇,介绍下如何使用SpringBoot搭建一个简单的服务端,实现一个新用户注册的场景,供前端和移动端去使用。本篇需要你对SpringBoot的starter&#xff0c…

基于LLM构建文本生成系统

背景: 在流量存量时代,内容运营重要性不言而喻。在流量时代,内容可以不要过于多样化和差异化,只需要有足够多的人流量,按流量转化比率来看,1000个人有1%概率转化,素材不变只要增加足够多的流量…

SpringSecurity之概述

概述 是一个功能强大且高度可定制的身份验证和访问控制框架; 是一个专注于为Java应用程序提供身份验证和授权的框架 核心功能 1.认证 2.验证 3.攻击防范 原理解析 SpringSecurity 采用的是责任链的设计模式,它有一条很长的过滤器链; WebAsy…

探索分治算法:解决复杂问题的有效策略

目录 引言: 一. 基本原理: 二. 适用场景: 三. 分治算法的步骤: 四. 示例:归并排序算法 五. 优缺点: 引言: 在计算机科学中,分治算法是一种在解决复杂问题时常被使用的有效策略…

OBU协议-【CWAVE 客户端接口使用手册】Protobuf-CWAVEII版

1. 说明 (Instruction) 本文档针对所有在 OBU上位机进行开发的客户端程序 上位机进行开发的客户端程序 。开发时需使用者 使用谷歌提供的 protobuf工具结合我公司提供的 nebulalink.servercwaveii.proto文 件进行开发。 Protobuf相关介绍: https://www.ibm.com/deve…

springcloud笔记一

涉及到的技术: 单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署 所以需要远程调用 注册中心:可以维护每个节点的信息,并且监护节点的状态 配置中心:管理微服务群的配置 服务网关:用户通过服务网关作为入口访问,然后通过路由到…

【三维重建】【深度学习】NeRF_Pytorch代码--预备基础知识

【三维重建】【深度学习】NeRF_Pytorch代码–预备基础知识 给定一个场景的多视角的图像,神经辐射场(NeRF)通过图像重建误差优化一个神经场景表征,优化后可以实现逼真的新视角合成效果。NeRF最先是应用在新视点合成方向&#xff0c…

TrainingOperator--PyTorchJob实现机制分析

前言 由 Pytorch分布式训练(一)_chenxy02的博客-CSDN博客 可知Pytorch分布式训练实现进程间寻址,主要依靠以下 四个参数: MASTER_ADDRMASTER_PORTWORLD_SIZERANK MASTER_PORT和MASTER_ADDR的目的是告诉进程组中负责进程通信协调的核心进程…

SpringBoot:整合 Redis BitMap技术及结合场景:实现签到与统计

⛄引言 本文参考黑马 点评项目 在各个项目中,我们都可能需要用到签到和 统计功能。 签到后会给用户一些礼品以此来吸引用户持续在该平台进行活跃。 签到功能,我们可以通过Redis中的 BitMap功能来实现 一、Redis BitMap 基本用法 ⛅BitMap 基本语法、…

vue+css中通过一个div的hover触发另一个的样式变化

思路 通过触发父div&#xff0c;除了改变父div的背景色外&#xff0c;还同时改变div中i标签的颜色 效果图 原本 hover触发后 html代码 <div class"user_addfrid"><i class"iconfont icon-friend-add"></i> </div> css代码 …

动态地图开发需要注意哪些方面?

动态地图是指可以随时更新和展示地理信息的地图。随着科技的发展和人们对地理信息的需求不断增加&#xff0c;动态地图的开发越来越受到关注。动态地图可以实现多种功能&#xff0c;如实时交通状况的展示、灾害预警、物流配送路线规划等。动态地图的开发需要结合多种技术手段&a…

HummerRisk V1.2.0 发布

经过一个月的时间&#xff0c;1.2.0和大家见面了&#xff0c;在这个版本中我们重做了云资源态势&#xff0c;用全新的2.5D方式来展现云上资源态势及资源关联关系&#xff0c;同时升级了多云合规检测引擎&#xff0c;现在X-PACK中的多云检测可以提升300%的执行速度&#xff0c;规…

自定义MVC

目录 一、MVC概念描述 1、什么是MVC&#xff1f; 2、什么是自定义MVC&#xff1f; 3、自定义MVC有什么用&#xff08;主要用途&#xff09;&#xff1f; 二、MVC三层架构 第一种版本 JSP页面 servlet 结果 第二种版本 JSP代码 servlet 结果 第三种版本 jsp页面 s…

unity Embedded Browser(ZFBrowser)使用相关问题

在使用ZFBrowser的时候 碰到获取不到声音权限的问题 在插件的BrowserNative.cs脚本中&#xff0c;找到commandLineSwitches变量&#xff0c; 只需要开启以下两个配置项&#xff1a; "--enable-media-stream"&#xff1a;允许收集用户的摄像头视频流与mic的音频流。…

【Rust】入门教程-7章

Package、Crate、Module 7.1 代码组织 7.2 路径 根级可以相互访问 super 关键字 pub struct 7.4 use关键字

【Spark大作业】财政收入影响因素分析及预测模型

文章目录 前言一、数据的基本描述性分析1.1 导包与读取数据1.2 数据的基本情况1.3 变量的分布情况1.4 相关性分析 二、数据的预处理2.1 Lasso变量选择模型 三、建立财政收入预测模型3.1 灰色模型3.2 神经网络预测模型 环境搭建Spark pandsAPI接口&#xff08;了解&#xff09;分…

windows本地上传文件到服务器(scp)

命令 1.ssh 用户名ip&#xff1a;远程登录服务器。 ssh root1.15.233.1932.scp 本地文件路径 用户名ip:上传路径 &#xff1a;本地文件与服务器进行传递。 scp C:\a.txt root1.15.233.193:/var/www/html3.本地文件夹上传到服务器 scp -r C:\user root1.15.233.193:/home4…