神经压缩文本训练:提升大型语言模型效率的新方法

随着大型语言模型(LLMs)在各个领域的广泛应用,其训练和部署的效率问题日益凸显。传统的子词标记化方法,如Byte Pair Encoding (BPE) 或 Unigram,虽然能够在一定程度上压缩文本,但其压缩率通常只有4倍左右。LLMs在处理文本时,需要消耗大量的计算资源来处理这些标记。而且这些方法在处理长文本时,由于自注意力层的计算复杂度与序列长度的平方成正比,限制了模型能够处理的序列长度,进而影响了模型捕捉长距离依赖的能力。

本文提出的方法通过引入“等信息窗口”(Equal-Info Windows)压缩技术,显著提升了大型语言模型(LLMs)在神经压缩文本上的学习效率和效果。该技术通过将文本分割成等比特长度的块,不仅解决了传统压缩方法导致的学习障碍,还使得模型能够在更少的计算资源下处理更多的文本数据,从而提高了训练效率。由于压缩后的文本序列更短,模型在推理时需要的自回归生成步骤减少,这不仅降低了延迟,还使得模型能够更好地处理长文本,捕捉更远的依赖关系。这种方法的优势在于,它不仅提供了更高的压缩率,还保持了文本的可学习性,为LLMs的训练和部署带来了实质性的改进。

方法 
在神经压缩文本上训练大型语言模型(LLM)的方法

Figure 1 显示了对训练大型语言模型(LLM,记为 M2)在神经压缩文本上的方法的高层次概述。这个过程分为几个关键步骤:

训练 M1 作为字节级语言模型:首先,模型 M1 被训练为一个标准的字节级语言模型。给定左侧的上下文,M1 能够为每个可能跟随的字节分配一个概率值。这个步骤是基础,因为它为后续的文本压缩提供了必要的概率信息。

使用 M1 压缩语料库文本:接着利用训练好的 M1 模型来压缩整个语料库文本。M1 为文本中的每个位置分配的概率被用作压缩算法的输入,这里使用的是算术编码(Arithmetic Coding,简称 AC)。算术编码是一种支持使用动态符号概率的压缩算法,它根据 M1 分配给文本的实时概率来压缩文本。

将压缩后的位流分块成标记:压缩后的文本被转换成位流,这个位流随后被分块成固定大小的标记,例如 8 位的块。这样,原本的文本就被转换成了一系列的标记,这些标记代表了原始文本的压缩形式。

训练 M2 在压缩文本上的模型:最后使用这些由压缩位流转换来的标记来训练 M2。M2 被训练为一个语言模型,它直接在这些压缩文本的标记上进行操作,而不是在原始的字节级文本上。就是说M2 学习的是如何处理和生成压缩文本,而不是原始文本。

这个过程的关键创新之处在于,它通过压缩来减少模型在训练和推理时需要处理的标记数量,从而提高效率。同时,它也提出了一种新的方法,让模型学习如何从压缩的表示中恢复出语言的结构和语义信息。

这种方法的优势在于,如果能够成功训练 M2,那么在处理相同数量的原始文本时,模型将需要更少的计算资源,因为压缩后的文本更短。由于压缩文本的每个标记包含了更多的原始文本信息,这可能有助于模型捕捉到更长距离的依赖关系,从而提高其语言理解能力。

然而直接在神经压缩文本上训练LLMs面临着学习上的挑战,主要是因为强压缩往往导致输出难以被模型学习。为了克服这一难题,本文提出了“等信息窗口”(Equal-Info Windows)的压缩技术,该技术通过将文本分割成固定大小的块,每块压缩到相同的比特长度,从而保证了压缩文本的可学习性。通过这种方法,研究者们不仅展示了在神经压缩文本上有效学习的可能性,而且在困惑度和推理速度等基准测试中取得了优于字节级基线的性能。尽管与相同参数数量的子词标记器相比,该方法在困惑度上表现稍逊,但它的优势在于更短的序列长度,这有助于减少自回归生成步骤,降低延迟。

研究团队采用了来自C4数据集的英文网络文本作为训练数据。在进行标记化处理后,每个文档末尾都添加了<EOS>标记,以表示文档结束。接着,将128个文档串联起来,形成了一个长文本序列。使用UTF-8字节级标记化,平均文档长度为2,170字节,这些长序列的平均长度达到了277,760字节。尽管存在文档分割,但这些长序列在语言模型训练中被视为“连续”的。然后,这些序列被分割成单独的样本,并使用SeqIO工具的确定性数据集功能进行洗牌处理。

用于压缩的模型M1是一个仅包含解码器的Transformer模型。它使用了表4中的3m大小,并设置了1,024的上下文长度。训练过程中使用了128的批量大小,以及从1.0开始、在10,000步预热后使用rsqrt衰减学习率计划。M1模型使用Adafactor优化器进行了2,500,000步的训练。模型的前馈层采用了ReLU激活函数,并在每层都使用了可学习的相对注意力嵌入。M1和M2都是在C4训练数据上训练的,但用于评估M2的最终验证数据在M1训练期间是未见过的,因此没有信息泄露。

在压缩C4训练数据时,研究者使用了10,240字节的示例长度,并应用了以下压缩技术之一。这导致压缩后的样本平均长度远大于目标序列长度512 M2标记。算术编码(Arithmetic Coding)使用了一个仅包含解码器的Transformer语言模型来模拟概率分布,而静态逻辑算术编码(Static Logits Arithmetic Coding)则用静态字节单字模型替换了上下文敏感的语言模型。

等信息窗口”(Equal-Info Windows)方法的工作流程

Figure 2 展示了“等信息窗口”(Equal-Info Windows)方法的工作流程,这是一种创新的文本压缩技术,用于支持大型语言模型(LLMs)的训练。这种方法将文本编码成一系列 N 位的窗口,每个窗口代表了原始文本中的一部分内容,并且每个窗口都压缩成了固定数量的比特。

在“等信息窗口”方法中,文本的压缩过程是逐步进行的。首先,使用算术编码(Arithmetic Coding, AC)算法对文本进行逐字节编码,直到达到预设的比特阈值,例如 16 位。这个阈值定义了每个窗口的最大比特数。一旦当前窗口的比特数达到这个阈值,就不能再添加更多的字节,否则会超出目标比特限制。

这个过程的一个关键特点是每次创建新窗口时,都会重置 M1 模型和算术编码算法。每个窗口都是独立压缩的,不携带任何来自前一个窗口的信息。这种设计确保了每个窗口都可以作为一个独立的单元被解码,而不需要依赖于其他窗口的信息。因此模型在处理每个窗口时,都从相同的起点开始,这有助于简化模型的训练过程。

通过这种方法,文本被分割成了一系列等长的比特序列,每个序列都是通过算术编码压缩得到的。这些序列随后被用作训练 M2 的输入,M2 是一个直接在压缩文本上进行操作的语言模型。这种方法的优势在于,它能够在保持高压缩率的同时,提供足够的信息,使模型能够学习并理解压缩文本中的模式和结构。

不同压缩算法实现的压缩比率,包括算术编码的不同变体,如静态算术编码和等信息窗口算术编码

大多数压缩方法输出的是比特流,但直接在比特上训练M2并不理想。因此,研究者需要一种方法将比特流分割成标记,创建一个更标准的训练语言模型所需的序列。通过将每N位比特组合成一个标记,形成了词汇量为2^N的标记序列。

不同压缩方法在标记级别和比特级别的压缩比率。说明在训练大型语言模型时,减少输入序列长度(标记压缩比)和减少表示这些序列所需的比特数(比特压缩比)的重要性

每个M2模型都在200,000步的训练中,使用256的批量大小和512的序列长度。这样,每个模型都训练了26.2十亿个标记。这些标记中绝大多数(超过98.9%)是非填充标记。训练时,数据集的洗牌是固定的,并且在训练过程中对数据集状态进行了检查点,以确保每个训练运行中模型恰好看到每个样本一次。

两种简单模型(如均匀分布模型和一元分布模型)在不同标记器上的每字节比特数性能

M2模型与使用两种标准标记化方法训练的基线模型进行了比较。所有超参数,包括序列长度(512),都与上文提到的M2训练相同。基线模型包括直接在UTF-8字节上训练的模型,以及使用SentencePiece标记化文本的模型。

算术编码依赖于基于模型的对数累积分布来创建“区间”,这些区间覆盖词汇表中的每个符号。因此,由于数值噪声导致对数的微小变化,可能会导致完全不同的输出比特流。这可能使得在压缩中实际使用神经语言模型变得困难。数值噪声的常见来源包括批量大小的变化、并行计算、计算基础设施的变化(CPU与GPU与TPU,不同的TPU拓扑等)、推理的变化等。

实验

实验结果明确显示,直接使用算术编码(Arithmetic Coding, AC)压缩文本的方法并不成功。具体来说,即使模型规模不断扩大,使用这种压缩方法训练的模型在预测标记时表现与随机猜测无异,无法学习到有效的语言模型信息。这表明,尽管算术编码在理论上能提供最优的压缩率,但其压缩过程的复杂性和输出的不透明性使得LLMs难以从中学习到有用的模式。

在压缩文本上训练的模型与基线模型在困惑度(bits/byte)和推理FLOPs/byte方面的表现

与简单方法形成鲜明对比的是,使用SentencePiece进行标记化的基线模型在所有模型规模上均表现出色,甚至在某些情况下超过了直接在字节级别训练的模型。这一结果归功于SentencePiece稳定的词元到标记的映射,以及其在捕捉语言结构方面的有效性,这为模型提供了丰富的语言学信息,从而在困惑度等指标上取得了更好的性能。

模型在bits/byte和bytes/step之间的权衡。一个模型可能在bits/byte上表现更好,但如果它需要更多的decoder步骤(bytes/step),则可能会增加系统的延迟

等信息窗口(Equal-Info Windows)压缩方法的成功应用,为在压缩文本上训练LLMs提供了新的可能性。通过将文本分割成固定信息量的窗口,并独立地对每个窗口进行算术编码压缩,模型能够逐步学习每个窗口的压缩文本。特别是当使用16位窗口和65,536的词汇量时,模型在困惑度和推理速度上的表现尤为突出,显示出与SentencePiece相媲美的性能。

使用不同窗口大小的等信息AC压缩方法时的性能

尽管GZip作为一种压缩算法在实际应用中非常普遍,但实验结果表明,使用GZip压缩文本进行训练的模型在性能上并不具有竞争力。GZip压缩的文本虽然在字节级别上看起来更加均匀分布,但其压缩效率较低,导致模型在处理相同数量的原始文本时需要更多的计算资源,从而在性能上落后于其他方法。

在对等信息窗口大小进行的一系列实验中,研究者发现短窗口(如16位)在模型学习中表现最佳。这可能是因为短窗口内的压缩文本更容易被模型学习,而长窗口则可能由于信息量过大而难以被模型有效捕捉和学习。此外,短窗口也有助于减少模型在解码时所需的计算步骤,从而提高推理速度。

为了探究比特流的标记化是否是LLMs学习压缩文本的主要难点,研究者进行了实验,结果表明,无论是8位还是16位的标记化策略,模型都能够在一定程度上学习压缩文本。这表明,比特流的标记化过程本身并不是导致学习困难的主要原因。

将算术编码格式化为序列到序列任务的实验显示,变换器模型在学习和模拟算术编码过程方面存在困难。即使在提供了真实文本作为输入的情况下,模型在压缩和解压缩任务上的表现也远未达到预期的准确率,这进一步证实了算术编码过程本身的复杂性是学习的主要障碍。

变换器模型在序列到序列任务中学习算术编码压缩和解压缩的性能,包括准确性和交叉熵损失

使用更大的词汇量(如65,536)对模型性能的影响实验表明,更大的词汇量不仅提高了压缩比,还有助于提高模型在比特/字节上的性能。这可能是因为更大的词汇量为模型提供了更多的标记选择,从而能够更精细地捕捉压缩文本中的信息。

使用不同大小的词汇量训练的等信息AC模型的性能,分析了词汇量对模型性能的影响
分析

在对等信息AC(EqualInfoAC)和SentencePiece两种标记化方案进行深入分析时,研究者发现两者在稳定性和语义性方面存在显著差异。SentencePiece倾向于产生相对稳定的文本到标记的映射,例如,单词“elephants”在不同上下文中被一致地分割成相同的标记序列。相比之下,EqualInfoAC的标记化结果则显得不稳定,同一词汇在不同上下文中可能被分割成不同的标记序列,且这些标记往往不与语言单位如单词或词根对齐。这种不稳定性可能会对模型学习造成额外的挑战,因为它需要更强的上下文理解能力来准确预测标记。

比较SentencePiece和等信息AC两种标记化方案在文本到标记映射的稳定性和语义性
使用等信息AC标记化时,窗口初始标记具有稳定的标记到文本映射,而非初始标记则具有上下文相关性,因此映射不稳定

进一步分析等信息AC压缩中模型的学习过程,研究者观察到模型似乎是逐步学习解码过程的。在训练初期,模型首先学习窗口中的第一个标记,随后是第二个和第三个,而更深层次的标记则需要更多的训练步骤才能被有效学习。这种逐步学习的现象表明,模型在解码过程中对前一个标记的理解为其解码后续标记提供了基础。然而,当模型需要解码超过一定比特长度的AC输出时,性能会下降,这表明模型在跟踪AC算法的长期依赖方面存在限制。

在等信息AC窗口内,不同标记位置的学习进度。它揭示了模型是如何逐步学习解码压缩文本的

研究者还探讨了压缩数据的分布特性对LLMs学习的影响。在理论上,压缩算法产生的输出应该是均匀分布的,因为原始模型中的所有信息都已被压缩算法的模型所捕捉。但实验结果表明,即使是经过压缩的数据,也仍然存在可以被模型学习到的非均匀分布模式。通过计算不同压缩方法产生的位流的KL散度,研究者发现,与随机数据相比,某些压缩方法(如GZip和较短的等信息窗口)产生的数据具有更多的非均匀性,这为模型提供了更多的学习信息。这一发现表明即使是在高压缩率下,数据的某些结构特征仍然可以被保留并用于模型训练。

不同压缩方法得到的比特流的非均匀性,通过计算观察到的分布与均匀分布之间的KL散度

通过这些分析,研究者得出结论,尽管等信息AC在某些方面不如SentencePiece稳定和语义化,但它提供了一种有效的途径来训练LLMs处理压缩文本。模型能够逐步学习解码过程,并且压缩数据中的非均匀分布特性对于模型学习是有益的。这些发现为未来在更高压缩率下设计可学习的文本表示方法提供了有价值的见解。

尽管直接在算术编码压缩的文本上训练LLMs的方法并不可行,但研究表明通过等信息窗口压缩,可以在神经压缩文本上有效地训练LLMs。这些方法将为LLMs提供更高的压缩率,更接近每个标记的等信息量,并帮助模型更直接地处理原始文本。

论文链接:https://arxiv.org/abs/2404.03626

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

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

相关文章

Kubernetes部署Kanboard看板管理平台

【云原生】Kubernetes部署Kanboard项目管理平台 文章目录 【云原生】Kubernetes部署Kanboard项目管理平台介绍资源列表基础环境一、检查k8s环境1.1、检查工作节点状态1.2、检查系统pod状态 二、编辑kanboard.yaml文件2.1、创建项目目录2.2、编辑kanboard.yaml文件 三、部署Kanb…

日常工作中常用的管理工具

日常工作中常用的管理工具 SWOT分析法&#xff1a; 帮你清晰地把我全局&#xff0c;分析自己在资源方面的优势域劣势&#xff0c;把握环境提供的机会&#xff0c;防范可能存在的风险与威胁&#xff0c;对我们的成功有非常重要的意义 PDCA循环规则&#xff1a; 每一项工作&#…

如何使用LiveTargetsFinder生成实时活动主机URL列表

关于LiveTargetsFinder LiveTargetsFinder是一款功能强大的实时活动主机生成工具&#xff0c;该工具可以为广大研究人员以自动化的形式生成可供分析和测试的实时活动主机URL列表&#xff0c;并通过MassDNS、Masscan和Nmap自动过滤出无法访问的主机。 我们只需要提供一个域名作…

代码随想录第30天|贪心算法

122.买卖股票的最佳时机II 给你一个整数数组 prices &#xff0c;其中 prices[i] 表示某支股票第 i 天的价格。 在每一天&#xff0c;你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买&#xff0c;然后在 同一天 出售。 返回 你能获得…

SAP PP学习笔记23 - 生产订单(制造指图)的元素2 - 决济规则(结算规则)

上一章讲了生产订单&#xff08;制造指图&#xff09;画面的基本元素。 SAP PP学习笔记22 - 生产订单&#xff08;制造指图&#xff09;的元素1-CSDN博客 本章继续讲生产订单上面的其他元素。 1&#xff0c;Settlement rule&#xff08;决济规则(结算规则)&#xff09;概要 M…

springboot容器功能

springboot容器 容器功能Spring注入组件的注解Component&#xff0c;Controller&#xff0c;Service&#xff0c;Repository案例演示 Configuration应用实例传统方式使用Configuration 注意事项和细节 Import应用实例 ConditionalConditional介绍应用实例 ImportResource应用实…

Microsoft Office免费下载安装

文章目录 前言一、下载Office Tool Plus二、部署步骤1.移除本机低版本office2.部署设置3.开始部署 前言 本人一直支持国产WPS&#xff08;因为正版Microsoft Office需要花钱&#xff09;。直到某天接触到一款免费部署Microsoft Office的软件——Office Tool Plus&#xff0c;简…

C++ //CCF-CSP计算机软件能力认证 202406-1 矩阵重塑(其一)

CCF-CSP计算机软件能力认证 202406-1 矩阵重塑&#xff08;其一&#xff09; 题目背景 矩阵&#xff08;二维&#xff09;的重塑&#xff08;reshape&#xff09;操作是指改变矩阵的行数和列数&#xff0c;同时保持矩阵中元素的总数不变。 题目描述 矩阵的重塑操作可以具体…

BEV端到端视觉论文合集|从不同的视角解析BEV感知技术

随着自动驾驶技术的不断发展&#xff0c;基于摄像头的感知系统已成为关键&#xff0c;而Bird’s Eye View (BEV)大模型在其中发挥着重要作用。BEV大模型是一种将摄像头捕捉到的2D图像转换为自上而下视角的3D感知的技术&#xff0c;使得车辆能够更好地理解周围环境。 BEV大模型…

高职人工智能专业实训课之“图像识别基础”

一、前言 随着人工智能技术的迅猛发展&#xff0c;高职院校对人工智能专业实训课程的需求日益迫切。唯众人工智能教学实训平台作为一所前沿的教育技术平台&#xff0c;致力于为学生提供高效、便捷的人工智能实训环境&#xff0c;特别在“图像识别基础”这一关键课程中&#xf…

ubuntu多版本cuda如何指定cuda版本

本文作者&#xff1a; slience_me ubuntu多版本cuda如何指定cuda版本 文章目录 ubuntu多版本cuda如何指定cuda版本1. 关于cuda设置1.1 查看当前安装的 CUDA 版本1.2 下载并安装所需的 CUDA 版本1.3 设置环境变量1.4 验证切换1.5 安装对应的 NVIDIA 驱动程序 2. 设置环境变量2.1…

【机器学习 复习】第5章 朴素贝叶斯分类器

一、概念 1.贝叶斯定理&#xff1a; &#xff08;1&#xff09;就是“某个特征”属于“某种东西”的概率&#xff0c;公式就是最下面那个公式。 2.朴素贝叶斯算法概述 &#xff08;1&#xff09;是为数不多的基于概率论的分类算法&#xff0c;即通过考虑特征概率来预测分类。 …

如何使用DeadFinder寻找失效链接

关于DeadFinder DeadFinder是一款功能强大的链接分析工具&#xff0c;该工具可以帮助广大研究人员快速地寻找目标页面中的无效链接&#xff08;死链&#xff09;。所谓死链&#xff0c;即一个页面中存在的无法被连接的一条链接。这些链接如果一直保留在页面中的话&#xff0c;…

【论文笔记】LoRA LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

题目&#xff1a;LoRA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS 来源: ICLR 2022 模型名称: LoRA 论文链接: https://arxiv.org/abs/2106.09685 项目链接: https://github.com/microsoft/LoRA 文章目录 摘要引言问题定义现有方法的问题方法将 LORA 应用于 Transformer 实…

深度学习:从理论到应用的全面解析

引言 深度学习作为人工智能&#xff08;AI&#xff09;的核心技术之一&#xff0c;在过去的十年中取得了显著的进展&#xff0c;并在许多领域中展示了其强大的应用潜力。本文将从理论基础出发&#xff0c;探讨深度学习的最新进展及其在各领域的应用&#xff0c;旨在为读者提供全…

5G与4G的区别

“4G改变生活&#xff0c;5G改变社会”&#xff0c;已经成为了通信行业的流行语。通信的变革日新月异&#xff0c;从以前的1G只能接听电话&#xff0c;到2G可以发送短信&#xff0c;时光飞逝&#xff0c;4G将智能带进了我们的生活&#xff0c;每一个“G”的进步&#xff0c;都极…

Java宝藏实验资源库(4)对象数组

一、实验目的 学习面向对象程序设计的方法。学习建立对象数组的方法。 学习在数组中存储和处理对象。 二、实验内容、过程及结果 **10.7 (Game: ATM machine) Use the Account class created in Programming Exer cise 9.7 to simulate an ATM machine. Create ten accou…

大数据存储技术笔记

目录 大数据的特性 HDFS 读流程的基本步骤 HDFS 写流程的基本步骤 Mapreduce的执行过程 MapReduce 中 combiner 作用 hadoop 调度器及其工作方法 Hive 中内部表与外部表区别(创建删除角度) Hadoop 的 2 个主要组件及其功能 Hadoop MapReduce 的工作流程 正常工作的 ha…

AWS Lambda + Flask 应用示例

前言 AWS Lambda 本身是一个以事件驱动的 Serverless 服务, 最简单的应用就是在入口函数中对接收到的事件/请求进行处理并返回响应. 对于像 Flask 这样的 Web 框架, 并不能直接在 Lambda 上提供服务, 不过我们可以借助 AWS Lambda Web Adapter 实现一个基于 Flask 框架的 Web …

IDEA、PyCharm等基于IntelliJ平台的IDE汉化方式

PyCharm 或者 IDEA 等编辑器是比较常用的&#xff0c;默认是英文界面&#xff0c;有些同学用着不方便&#xff0c;想要汉化版本的&#xff0c;但官方没有这个设置项&#xff0c;不过可以通过插件的方式进行设置。 方式1&#xff1a;插件安装 1、打开设置 File->Settings&a…