【转载】长上下文与将Transformer扩展至10亿令牌

原文地址:Long Contexts and Scaling Transformers to 1,000,000,000 Tokens, by Sebastian Raschka, on 2023-07-15

长上下文与将Transformer扩展至10亿令牌

在本文中,我整理并点评了2023年6月至7月的24项AI研究亮点。自然语言处理与计算机视觉领域再次涌现出大量令人振奋的新进展!

此外,如果你对上个月的研究亮点感兴趣,可以在这里查看:
https://magazine.sebastianraschka.com/p/ai-research-highlights-in-3-sentences-2a1

大语言模型

《迷失在中间:语言模型如何利用长上下文》(7月6日,https://arxiv.org/abs/2307.03172

在这篇论文中,研究人员探究了ChatGPT等大语言模型从输入上下文的不同位置检索相关信息的表现。结果发现,当信息位于文档中间位置时,ChatGPT的信息检索效果会变差。Claude等其他大语言模型的表现则稍好一些。
figure01

《LongNet:将Transformer扩展至10亿令牌》(7月5日,https://arxiv.org/abs/2307.02486

近期我们已经看到了数项将大语言模型扩展至更长上下文长度的尝试,包括将Transformer大语言模型扩展至100万令牌的RMT论文,以及支持100万令牌的卷积架构Hyena大语言模型。在这篇论文中,作者提出了LongNet,旨在将Transformer大语言模型的上下文长度扩展至10亿(1B)令牌。与数年前发表的BigBird类似,它通过膨胀注意力(而非自注意力)实现了线性(而非二次)复杂度的扩展;但不同之处在于,BigBird对令牌对采用的是启发式的随机模式。
figure02

《使用4位整数训练Transformer》(6月21日,https://arxiv.org/abs//2306.11987

这篇论文提出了一种加速神经网络训练的新方法:采用INT4算术,将激活值、权重和梯度都量化为4位精度,且专门针对Transformer架构设计。与现有的4位训练方法不同,该方法无需自定义数值格式,因此可以在当前世代的GPU上直接实现。该方法在多项任务上都取得了具有竞争力的准确率,最多可将训练过程提速35.1%(论文未讨论显存节省情况)。
figure03

通过位置插值扩展大语言模型的上下文窗口(6月27日,https://arxiv.org/abs/2306.15595

旋转位置嵌入(RoPE,https://arxiv.org/abs/2104.09864)因其支持灵活的序列长度,已成为现代大语言模型实现中的核心技术。在这篇论文中,研究人员提出了位置插值法,仅需最少的微调(1000步),即可将基于RoPE的模型上下文窗口扩大至32768令牌。例如,该方法可让LLaMA 7B和65B模型实现长文档摘要功能。
figure04

大语言模型是高效的文本排序器:基于成对排序提示的方法(6月30日,https://arxiv.org/abs/2306.17563

研究人员针对相关性排序任务评估了大语言模型的表现——该任务既和普通用户的使用场景相关,也是研究人员评估大语言模型性能的常用维度(不过论文并未明确探讨后一种应用场景)。他们对比了逐点排序方法(这类方法不适用于GPT-4等API,因为用于排序时需要获取对数概率)和列表式排序方法,并提出了一种全新的成对排序提示方法。采用这种新的成对排序方法后,即便是基于FLAN-T5和FLAN-UL2的中等规模开源大语言模型,也能取得出色的表现(与参数量是其10到50倍的gpt-3.5.turbo效果相当)。
figure05

自带数据!大语言模型的自监督评估方法(6月23日,https://arxiv.org/abs//2306.13651

毋庸置疑,在面向客户的应用中,确保大语言模型输出真实内容、不生成不当言论,是大语言模型落地现实场景的核心挑战。研究人员没有依赖规模小、经过人工整理,且可能已泄露进训练集的评估数据集,而是提出了一种自监督的评估方案。他们发现,自监督评估结果与人类评估结果具有强相关性,说明该方法具备可行性。
figure06

聚焦型Transformer:面向上下文扩展的对比训练(7月6日,https://arxiv.org/abs/2307.03170

解决大语言模型上下文长度限制的一种方案是访问外部存储的文档(例如通过向量数据库的方式)。但数据库越大,针对给定查询包含的无关键值就越多,进而会降低模型的表现。为了解决这一问题,研究人员提出了“聚焦型Transformer”,通过一种全新的对比学习流程对OpenLLaMA等大语言模型进行微调。
figure07

《课本就是你所需的全部》(6月20日,https://arxiv.org/abs/2306.11644

在这篇论文中,研究人员用高质量数据集训练了一个参数量极小的Transformer模型——仅13亿参数。训练数据包括从网络获取的60亿令牌“课本级质量”数据集,加上通过GPT-3.5生成的10亿令牌习题。作为对比,GPT-3/GPT-3.5的参数量是其130倍(1750亿参数),同量级的LLaMA模型则是在1万亿令牌上训练的(数据量是其140倍)。尽管模型规模小得多、训练数据集也小得多(但质量更高),该模型的表现仍超过了GPT-3.5(不过未超过GPT-4)。
figure08

《ClinicalGPT:基于多元医疗数据微调并经过全面评估的大语言模型》(6月16日,https://arxiv.org/abs/2306.09968

过去我一直大力提倡针对更具体的应用场景,对预训练大语言模型(基础模型)进行微调。ClinicalGPT就是一个很好的范例:研究人员将医疗数据融入训练流程,以更好地处理临床任务。简而言之,他们采用人类反馈强化学习的方式对预训练大语言模型BLOOM-7B进行了微调——这与GPT-3打造初代ChatGPT模型时使用的指令微调策略一致。
figure09

《一种简单高效的大语言模型剪枝方法》(6月20日,https://arxiv.org/abs/2306.11695

DistilBERT这类模型之所以流行,是因为大语言模型通常体积过大,不适用于多数场景;但打造这类剪枝版本的模型通常都需要重新训练。在这篇论文中,研究人员提出了一种无需对预训练大语言模型重新训练即可完成剪枝的方法。该方法原理相对简单:通过计算权重幅值与输入激活范数的逐元素乘积,来判断权重的重要性,以此为依据进行剪枝。
figure10

《骆驼能走多远?探究开源资源下指令微调的现状》(6月7日,https://arxiv.org/abs/2306.04751

在这篇论文中,作者研究了LLaMA等开源大语言模型在开源指令数据集上微调后的性能。部分模型(例如LLaMA)相比闭源的text-davinci-003(GPT 3.5),能达到70%的“胜率”。需要注意的是,作者采用的是监督式微调,而非InstructGPT和ChatGPT所使用的人类反馈强化学习。
figure11

《资源受限下的大语言模型全参数微调》(6月16日,https://arxiv.org/abs/2306.09782

通常在资源(尤其是显存)受限的情况下微调大语言模型时,我们会采用参数高效微调方法,比如适配器方法和低秩适配(LoRA)。而在这项研究中,研究人员提出了一种全新的优化器——低内存优化器(LOMO)作为替代方案,它将梯度计算与参数更新合并为单一步骤,以此节省显存。该方法可以与适配器、LoRA等技术结合使用,但缺点是无法与梯度累积结合,且搭配Adam优化器时仅能节省25%的显存。
figure12

《面向人类对齐的偏好排序优化》(6月30日,https://arxiv.org/abs//2306.17492

https://magazine.sebastianraschka.com/p/ai-research-highlights-in-3-sentences-2a1 中,我曾介绍过https://arxiv.org/abs/2305.18290 这篇论文,它提出了一种更简单的大语言模型指令微调方案,替代传统的人类反馈强化学习(RLHF)。而在这篇论文中,研究人员提出了另一种替代方案:偏好排序优化(PRO)。PRO相比RLHF的优势在于,PRO利用了完整的排序序列,而不仅仅是两两排序的结果。
figure13

计算机视觉

《Patch n’ Pack:NaViT——适配任意宽高比与分辨率的视觉Transformer》(7月12日,https://arxiv.org/abs/2307.06304

训练语言Transformer时,研究人员常会用到序列打包(也叫“填充序列打包”)技术,它能避免对填充令牌的不必要计算,从而高效处理变长序列。在这篇论文中,研究人员将序列打包的思路拓展到视觉Transformer,提出了NaViT(原生分辨率视觉Transformer),可以对任意分辨率、任意宽高比的输入进行处理与训练。该方法同时提升了训练效率与模型准确率。
figure14

《SDXL:面向高分辨率图像合成的改进隐扩散模型》(7月4日,https://arxiv.org/abs/2307.01952

SDXL(Stable Diffusion XL的缩写)是基于隐扩散的文生图模型Stable Diffusion的全新迭代版本。它底层的卷积UNet主干网络规模扩大至原来的3倍,并且新增了第二个CLIP文本编码器(两个不同CLIP编码器的输出沿通道维度拼接)。根据偏好调研,用户对SDXL生成结果的喜爱程度远超此前的Stable Diffusion模型。
figure15

《自消耗的生成模型会患上MAD》(7月4日,https://arxiv.org/abs/2307.01850

研究人员探究了用合成数据训练生成式AI模型的影响。如果没有新鲜的训练数据,每经过一轮训练,模型的性能都会逐步下降——因为反复用模型自身生成的数据训练,会放大模型本身的偏差。结论是:即便使用高质量的合成数据训练生成模型,也会损害合成内容的质量或多样性。
figure16

《基于掩码Transformer的扩散模型快速训练》(6月15日,https://arxiv.org/abs/2306.09305

受图像存在大量冗余这一特点的启发(同时也受表征学习领域的启发),研究人员提出,在训练用于图像生成的扩散Transformer时,对大量图像块进行掩码。该方法在训练时,在常规的去噪目标之外,新增了重建掩码块的辅助损失。实验发现,该方法能达到与当前最优扩散Transformer图像生成模型相当的质量,但训练时间减少了70%。
figure17

其他领域

《HyenaDNA:单核苷酸分辨率的长程基因组序列建模》(6月27日,https://arxiv.org/abs/2306.15794

这项工作是近期Hyena论文(https://arxiv.org/abs/2302.10866)的应用延伸——今年4月发表的Hyena论文提出了一种全新的卷积架构模型,作为Transformer大语言模型的替代方案用于文本任务。它的优势在于Hyena可以建模长达100万令牌的上下文(这对处理DNA这类场景非常重要)。简而言之,相比常规Transformer大语言模型,它支持更长的上下文长度,且在同等参数量下训练速度更快。
figure18

《简单可控的音乐生成》(https://arxiv.org/abs/2306.05284,6月8日)

Meta AI的研究人员用约20000小时的版权音乐,训练了生成式单阶段Transformer语言模型(参数量分别为3亿、15亿、33亿)。音乐数据集包含来自ShutterStock和Pond5的1万首高质量音轨。该研究的创新点在于高效的令牌交错模式,让模型无需上采样级联或层级架构,就能生成高质量的音乐样本。
figure19

通用计算效率

《Rockmate:一款高效、快速、自动的通用PyTorch重计算工具》(7月3日,https://arxiv.org/abs/2307.01236

Rockmate是一款PyTorch工具,它可以分析并自动重写模型(例如GPT)的代码,让计算激活值时的显存占用控制在预设范围内。其代价是会增加重计算量(拖慢运行速度),但可以让更小的硬件运行更大的模型。显存节省幅度可达2-5倍,而部分场景下的额外开销仅为10%-20%。
figure20

《ZeRO++:面向超大规模模型训练的极致高效集合通信》(6月16日,https://arxiv.org/abs/2306.10209

ZeRO(零冗余优化器)是一种将模型状态拆分到不同GPU上的优化策略,能够降低显存需求,支持训练LLM等更大规模的模型。在这篇论文中,研究人员提出了三种降低通信量的技术来优化吞吐量。简而言之,这些优化包括基于分块量化的全收集操作、数据重映射,以及基于全连接的量化梯度平均。
figure21

这本杂志是我个人的兴趣项目,不提供直接报酬。不过,如果您愿意支持我,可以考虑购买https://sebastianraschka.com/books 上的书籍。如果您觉得这些书籍有洞见、有帮助,也欢迎推荐给您的朋友和同事。
figure22
https://www.amazon.com/Machine-Learning-PyTorch-Scikit-Learn-scikit-learn-ebook-dp-B09NW48MR1/dp/B09NW48MR1/https://nostarch.com/machine-learning-and-ai-beyond-basics 以及 http://mng.bz/M96o

您的支持对我意义重大!非常感谢!

Leave a Reply

Your email address will not be published. Required fields are marked *

*