当前大语言模型的应用受到了序列长度限制的制约,这限制了其在人工智能领域中的应用。例如,在多轮对话、长文本理解和多模态数据处理与生成方面存在一定的挑战。造成这种限制的根本原因是目前大语言模型普遍采用的Transformer架构,其计算复杂度与序列长度呈二次关系。因此,随着序列长度的增加,计算资源的需求会呈几何倍数增长。因此,如何高效地处理长序列一直是大语言模型所面临的挑战之一。
过去的方法主要集中在让大语言模型在推理阶段适应更长的序列。其中一种方法是采用Alibi或类似的相对位置编码,以使模型能够自适应不同长度的输入序列。另一种方法是使用RoPE或类似的相对位置编码进行差值,对已经训练完成的模型进行短暂的微调,以扩展序列长度。这些方法使得大模型具备了一定的长序列建模能力,但训练和推理的开销并未减少。
OpenNLPLab团队开源了一种名为Lightning Attention-2的新型线性注意力机制,旨在解决大语言模型长序列问题。这种机制使得训练和推理长序列与1K序列长度的成本保持一致,从而实现了一劳永逸的解决方案。即使在遇到显存瓶颈之前,增加序列长度也不会对模型训练速度产生负面影响,因此可以实现无限长度的预训练。此外,与1K Tokens相比,超长文本的推理成本也保持一致甚至更低,从而极大地降低了当前大语言模型的推理成本。如下图所示,当模型大小为400M、1B和3B时,随着序列长度的增加,FlashAttention2加持的LLaMA的训练速度开始快速下降,而Lightning Attention-2加持的TansNormerLLM的速度几乎没有变化。
图 1
- 论文:Lightning Attention-2: A Free Lunch for Handling Unlimited Sequence Lengths in Large Language Models
- 论文地址:https://arxiv.org/pdf/2401.04658.pdf
- 开源地址:https://github.com/OpenNLPLab/lightning-attention
Lightning Attention-2 简介
让大模型的预训练速度在不同序列长度下保持一致听起来是一个不可能的任务。然而,自从2020年线性注意力横空出世以来,研究人员一直在努力使线性注意力的实际效率符合其理论线性计算复杂度。在2023年中期之前,关于线性注意力的研究主要集中在与Transformer架构的精度对齐上。终于,在改进的线性注意力机制问世后,它在精度上能够与最先进的Transformer架构相媲美。 然而,线性注意力中最关键的“左乘变右乘”的计算trick在实际实现中远慢于直接左乘的算法。这是因为右乘的实现需要使用包含大量循环操作的累积求和(cumsum),而大量的I/O操作使得右乘的效率远低于左乘。 因此,要让大模型的预训练速度在不同序列长度下保持一致,仍然面临着挑战。研究人员需要进一步探索和改进线性注意力的实现方式,以提高其计算效率并减少I/O操作。这将有助于实现预训练速度的一致性,从而更好地应对不同序列长度的任务需求。
图 2
为了更好的理解 Lightning Attention-2 的思路,让我们先回顾下传统 softmax attention 的计算公式:O=softmax ((QK^T)⊙M_) V,其中 Q, K, V, M, O 分别为 query, key, value, mask 和输出矩阵,这里的 M 在单向任务(如 GPT)中是一个下三角的全 1 矩阵,在双向任务(如 Bert)中则可以忽略,即双向任务没有 mask 矩阵。
作者将 Lightning Attention-2 的整体思路总结为以下三点进行解释:
1. Linear Attention 的核心思想之一就是去除了计算成本高昂的 softmax 算子,使 Attention 的计算公式可以写为 O=((QK^T)⊙M_) V。但由于单向任务中 mask 矩阵 M 的存在,使得该形式依然只能进行左乘计算,从而不能获得 O (N) 的复杂度。但对于双向任务,由于没有没有 mask 矩阵,Linear Attention 的计算公式可以进一步简化为 O=(QK^T) V。Linear Attention 的精妙之处在于,仅仅利用简单的矩阵乘法结合律,其计算公式就可以进一步转化为:O=Q (K^T V),这种计算形式被称为右乘,相对应的前者为左乘。通过图 2 可以直观地理解到 Linear Attention 在双向任务中可以达到诱人的 O (N) 复杂度!
2. 但是随着 decoder-only 的 GPT 形式的模型逐渐成为 LLM 的事实标准,如何利用 Linear Attention 的右乘特性加速单向任务成为了亟待解决的难题。为了解决这个问题,本文作者提出了利用 “分而治之” 的思想,将注意力矩阵的计算分为对角阵和非对角阵两种形式,并采用不同的方式对他们进行计算。如图 3 所示,Linear Attention-2 利用计算机领域常用的 Tiling 思想,将 Q, K, V 矩阵分别切分为了相同数量的块 (blocks)。其中 block 自身(intra-block)的计算由于 mask 矩阵的存在,依然保留左乘计算的方式,具有 O (N^2) 的复杂度;而 block 之间(inter-block)的计算由于没有 mask 矩阵的存在,可以采用右乘计算方式,从而享受到 O (N) 的复杂度。两者分别计算完成后,可以直接相加得到对应第 i 块的 Linear Attention 输出 Oi。同时,通过 cumsum 对 KV 的状态进行累积以在下一个 block 的计算中使用。这样就得到了整个 Lightning Attention-2 的算法复杂度为 intra-block 的 O (N^2) 和 inter-block 的 O (N) 的 Trade-off。怎么取得更好的 Trade-off 则是由 Tiling 的 block size 决定的。
3. 细心的读者会发现,以上的过程只是 Lightning Attention-2 的算法部分,之所以取名 Lightning 是因为作者充分考虑了该算法过程在 GPU 硬件执行过程中的效率问题。受到 FlashAttention 系列工作的启发,实际在 GPU 上进行计算的时候,作者将切分后的 Q_i, K_i, V_i 张量从 GPU 内部速度更慢容量更大的 HBM 搬运到速度更快容量更小的 SRAM 上进行计算,从而减少大量的 memory IO 开销。当该 block 完成 Linear Attention 的计算之后,其输出结果 O_i 又会被搬回至 HBM。重复这个过程直到所有 block 被处理完毕即可。
想要了解更多细节的读者可以仔细阅读本文中的 Algorithm 1 和 Algorithm 2,以及论文中的详细推导过程。Algorithm 以及推导过程都对 Lightning Attention-2 的前向和反向过程进行了区分,可以帮助读者有更深入的理解。
图 3
Lightning Attention-2 精度对比
研究人员首先在小规模(400M)参数模型上对比了 Lightning Attention-2 与 Lightning Attention-1 的精度区别,如下图所示,二者几无差别。
随后研究人员在 1B、3B 上将 Lightning Attention-2 加持的 TransNormerLLM(TNL-LA2)与其它先进的非 Transformer 架构的网络以及 FlashAttention2 加持的 LLaMA 在相同的语料下做了对比。如下图所示,TNL-LA2 与 LLaMA 保持了相似的趋势,并且 loss 的表现更优。这个实验表明,Lightning Attention-2 在语言建模方面有着不逊于最先进的 Transformer 架构的精度表现。
在大语言模型任务中,研究人员对比了 TNL-LA2 15B 与 Pythia 在类似大小下的大模型常见 Benchmark 的结果。如下表所示,在吃掉了相同 tokens 的条件下,TNL-LA2 在常识推理和多项选择综合能力上均略高于基于 Softmax 的注意力的 Pythia 模型。
Lightning Attention-2 速度对比
研究人员对 Lightning Attention-2 与 FlashAttention2 进行了单模块速度与显存占用对比。如下图所示,相比于 Lightning Attention-1 和 FlashAttention2,在速度上,Lightning Attention-2 表现出了相比于序列长度的严格线性增长。在显存占用上,三者均显示出了类似的趋势,但 Lightning Attention-2 的显存占用更小。这个的原因是 FlashAttention2 和 Lightning Attention-1 的显存占用也是近似线性的。
笔者注意到,这篇文章主要关注点在解决线性注意力网络的训练速度上,并实现了任意长度的长序列与 1K 序列相似的训练速度。在推理速度上,并没有过多的介绍。这是因为线性注意力在推理的时候可以无损地转化为 RNN 模式,从而达到类似的效果,即推理单 token 的速度恒定。对于 Transformer 来说,当前 token 的推理速度与它之前的 token 数量相关。
笔者测试了 Lightning Attention-1 加持的 TransNormerLLM-7B 与常见的 7B 模型在推理速度上的对比。如下图所示,在近似参数大小下,Lightning Attention-1 的吞吐速度是百川的 4 倍,ChatGLM 的 3.5 倍以上,显示出了优异的推理速度优势。
小结
Lightning Attention-2 代表了线性注意力机制的重大进步,使其无论在精度还是速度上均可以完美的替换传统的 Softmax 注意力,为今后越来越大的模型提供了可持续扩展的能力,并提供了一条以更高效率处理无限长序列的途径。OpenNLPLab 团队在未来将研究基于线性注意力机制的序列并行算法,以解决当前遇到的显存屏障问题。
以上是新一代注意力机制Lightning Attention-2:无限序列长度、恒定算力开销、更高建模精度的详细内容。更多信息请关注PHP中文网其他相关文章!

对于那些可能是我专栏新手的人,我广泛探讨了AI的最新进展,包括体现AI,AI推理,AI中的高科技突破,及时的工程,AI培训,AI,AI RE RE等主题

欧洲雄心勃勃的AI大陆行动计划旨在将欧盟确立为人工智能的全球领导者。 一个关键要素是建立了AI Gigafactories网络,每个网络都有大约100,000个高级AI芯片 - 2倍的自动化合物的四倍

微软对AI代理申请的统一方法:企业的明显胜利 微软最近公告的新AI代理能力清晰而统一的演讲给人留下了深刻的印象。 与许多技术公告陷入困境不同

Shopify首席执行官TobiLütke最近的备忘录大胆地宣布AI对每位员工的基本期望是公司内部的重大文化转变。 这不是短暂的趋势。这是整合到P中的新操作范式

IBM的Z17大型机:集成AI用于增强业务运营 上个月,在IBM的纽约总部,我收到了Z17功能的预览。 以Z16的成功为基础(于2022年推出并证明持续的收入增长

解锁不可动摇的信心,消除了对外部验证的需求! 这五个CHATGPT提示将指导您完全自力更生和自我感知的变革转变。 只需复制,粘贴和自定义包围

人工智能安全与研究公司 Anthropic 最近的一项[研究]开始揭示这些复杂过程的真相,展现出一种令人不安地与我们自身认知领域相似的复杂性。自然智能和人工智能可能比我们想象的更相似。 窥探内部:Anthropic 可解释性研究 Anthropic 进行的研究的新发现代表了机制可解释性领域的重大进展,该领域旨在反向工程 AI 的内部计算——不仅仅观察 AI 做了什么,而是理解它在人工神经元层面如何做到这一点。 想象一下,试图通过绘制当有人看到特定物体或思考特定想法时哪些神经元会放电来理解大脑。A

高通的龙翼:企业和基础设施的战略飞跃 高通公司通过其新的Dragonwing品牌在全球范围内积极扩展其范围,以全球为目标。 这不仅仅是雷布兰


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

WebStorm Mac版
好用的JavaScript开发工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中