Redian新闻
>
PyTorch官方认可!斯坦福博士新作:长上下文LLM推理速度提8倍

PyTorch官方认可!斯坦福博士新作:长上下文LLM推理速度提8倍

公众号新闻
丰色 发自 凹非寺
量子位 | 公众号 QbitAI

这两天,FlashAttention团队推出了新作:

一种给Transformer架构大模型推理加速的新方法,最高可提速8倍

该方法尤其造福于长上下文LLM,在64k长度的CodeLlama-34B上通过了验证。

甚至得到了PyTorch官方认可

如果你之前有所关注,就会记得用FlashAttention给大模型加速效果真的很惊艳。

不过它仅限于训练阶段。

因此,这一新成果一出,就有网友表示:

等推理加速等了好久,终于来了。

据介绍,这个新方法也是在FlashAttention的基础之上衍生而出,主要思想也不复杂:

用并行操作尽快加载Key和Value缓存,然后分别重新缩放再合并结果,最终获得推理速度上的大幅提升。

提速8倍的长上下文推理方法来了

该方法被命名为Flash-Decoding

背景与动机

根据作者介绍:

LLM的推理(即“解码”)过程是迭代的,即一次生成一个token,组成一个完整句子需要n个token以及n次前向传递。

不过,由于我们可以缓存之前计算出来的token,所以单个生成步骤并不总是依赖于上下文长度。

但有一个操作例外:注意力 (attention),它不能随着上下文长度灵活扩展。

鉴于长上下文已成趋势,比如目前最大的开源LLM已达100k(CodeLlama),我们不得不注意到attention在大模型推理过程中浪费了太多时间,时间就是金钱。

更别提attention在batch size上进行扩展时,即使模型上下文相对较短,它也可能成为性能瓶颈(因为模型要读取的内存量与batch size成比例,而它仅取决于模型其余部分的大小)

怎么破解?

不可复用的FlashAttention优化

模型在推理也就是解码过程中,为了计算softmax(queries @keys.transpose)@values这两个值,生成的每个新token都需要关注先前的所有token。

团队先前的工作FlashAttention,已经在训练阶段对此操作进行了优化。

当时,FlashAttention解决的主要瓶颈是读写中间结果的内存带宽(例如,Q @ K^T)

然而,在推理阶段,我们要面对的瓶颈变了,导致FlashAttention所做的优化并不能直接拿过来应用。

具体而言:

在阶段阶段,FlashAttention在batch size和查询长度维度上进行并行化。

在推理阶段,查询长度通常为1,这意味着如果batch size小于GPU上的流式多处理器数量(例如,A100为108),该操作将仅使用GPU的一小部分。

这对于长上下文情况尤甚,因为长上下文需要较小的batch size才能适应GPU内存。

所以,结果就是,当batch size为1时,FlashAttention将只占用不足1%的GPU,非常不划算。

当然,你可能会说,不用FlashAttention也行,用矩阵乘法原语来完注意力操作。

不过,作者指出,这种情况又会完全占用GPU,并启动非常多的写入和读取中间结果的内核,也不是最佳办法。

Flash-Decoding诞生

最终,基于以上考量,作者在FlashAttention的基础上,添加了一个新的并行化纬度:key和value序列长度

这个方法(即Flash-Decoding)结合上述两种方法的优点:

与FlashAttention一样,它在全局内存中存储的额外数据非常少,但只要上下文长度足够大,即使batch size很小,它也可以充分利用GPU。

详细来看,Flash-Decoding一共分为三个步骤

1、先将key和value值分成更小的块。

2、用FlashAttention并行计算每块分割的查询注意力。并为每行和每块分割写入一个额外标量:注意力值的log-sum-exp。

3、最后,通过减少所有分割来计算实际输出,使用log-sum-exp来scale每块分割的贡献。

作者指出,由于attention/softmax可以迭代计算,以上所有操作均可行。

并且在Flash-Decoding中,ttention/softmax既可以在分割块内,也可以跨分割块来执行最终的缩减,只不过后者可缩减的步骤很少。

而在实际操作中,步骤1不涉及任何GPU操作,因为key和value块是完整的张量视图。然后由2个独立的内核分别执行步骤2和3。

最高提速8倍

验证环节,作者在CodeLLaMa-34b(架构与Llama 2相同)上对其解码吞吐量进行了基准测试。

具体以tok/s为单位,测量了512到64k序列长度下的解码速度(上限为从内存中读取整个模型以及KV缓存所需的时间),并和多种计算注意力的方法进行对比,包括:

  • Pytorch,使用纯PyTorch原语运行注意力

  • FlashAttention v2

  • FasterTransformer:使用FasterTransformer注意力内核


     最终,Flash-Decoding最高可将长序列解码速度提升8倍,并比其他方法具       有更好的扩展性(受长度影响较小)

此外,作者还在A100上对各种序列长度和batch size的缩放多头注意力进行了微基准测试。

结果显示,当序列长度扩展到64k时,Flash-Decoding实现了几乎恒定的运行时间

如何使用?

以下是Flash-Decoding的获取途径,戳文末官方博客即可找到地址:

  • FlashAttention包,2.2版本及以上

  • xFormers包,0.0.22版本及以上

调度程序将根据问题的大小自动使用Flash-Decoding或 FlashAttention方法。

团队介绍

目前Flash-Decoding还没出论文,但作者团队已透露,这次不再是Tri Dao“单打独斗”,不过一作仍然是他

Tri Dao今年博士毕业于斯坦福,7月份加盟大模型创业公司Together AI担任首席科学家。

明年9月将上任普林斯顿大学助理教授,他是FlashAttention v1和v2的主要作者。

剩下三位作者分别是:

Daniel Haziza,Facebook AI Research研究工程师,主要负责xformers(用于训练加速的开源框架);

Francisco Massa,同Facebook AI Research研究工程师, 主要从事PyTorch相关工作;

Grigory Sizov,Meta机器学习工程师,主要工作是优化GPU上的LLM推理和其他AI工作负载,为PyTorch生态做出过贡献。

官方博客:
https://princeton-nlp.github.io/flash-decoding/
参考链接:
https://twitter.com/tri_dao/status/1712904220519944411?s=20

「量子位2023人工智能年度评选」开始啦!

今年,量子位2023人工智能年度评选从企业、人物、产品/解决方案三大维度设立了5类奖项!欢迎扫码报名 

MEET 2024大会已启动!点此了解详情


点这里👇关注我,记得标星哦~

一键三连「分享」、「点赞」和「在看」

科技前沿进展日日相见 ~ 

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
「陶哲轩×GPT-4」合写数学论文!数学大佬齐惊呼,LLM推理神助证明不等式定理【尘封档案】系列之185:“华东八室”之513特务案(一)全新近似注意力机制HyperAttention:对长上下文友好、LLM推理提速50%别再「浪费」GPU了,FlashAttention重磅升级,实现长文本推理速度8倍提升BELLE-7B-1M逻辑推理超预期?10B量级开源中文对话LLM,谁最「懂」逻辑推理?回乡散记三颠覆Transformer霸权!CMU普林斯顿推Mamba新架构,解决致命bug推理速度暴增5倍PyTorch2.1支持昇腾NPU!华为成为中国首个PyTorch基金会Premier会员陈丹琦新作:一个LLM的评估基准LLMBar港大&百度提出LLMRec:基于LLM增强的多模态图神经网络推荐LeCun引战,LLM根本不会推理!大模型「涌现」,终究离不开上下文学习0.2美元微调就能让ChatGPT彻底破防!普林斯顿、斯坦福发布LLM风险预警:普通用户微调也影响LLM安全性花园维修戏题Continuous Batching:解锁LLM潜力!让LLM推断速度飙升23倍,降低延迟!红色日记 4.1-8耶鲁&谷歌提出HyperAttention:近线性时间的长上下文注意力贾佳亚韩松团队新作:两行代码让大模型上下文窗口倍增 | GitHub热榜百川智能推出全球最长上下文窗口大模型Baichuan2-192K,一次可输入35万字超越Claude2莫扎特:第四十一交响曲美的供应商回应员工自愿放弃公积金;23岁斯坦福博士生修复火狐浏览器22年陈旧bug;高通拟在加州裁逾1200人|AI一周资讯端侧AI推理,高效部署PyTorch模型:官方新工具开源,Meta已经用上了比Python快3.5万倍的Mojo融资7亿,LLVM之父:不会威胁到Python,该恐惧的应该是C++最多400万token上下文、推理提速22倍,StreamingLLM火了,已获GitHub 2.5K星比 Python 快 3.5 万倍的 Mojo 融资七亿,LLVM之父:不会威胁到 Python,该恐惧的应该是 C++PyTorch团队重写「SAM分割一切」模型,比原始实现快8倍!PyTorch团队重写「分割一切」模型,比原始实现快8倍把LLM视作操作系统,它就拥有了无限「虚拟」上下文,伯克利新作已揽1.7k star「Meta版ChatGPT」背后的技术:想让基础LLM更好地处理长上下文,只需持续预训练消息称创企Stability AI正寻求出售;斯坦福博士创立的AI创企Pika推出首款视频生成产品丨AIGC日报Meta普林斯顿提出LLM上下文终极解决方案!让模型化身自主智能体,自行读取上下文节点树RAG+GPT-4 Turbo让模型性能飙升!更长上下文不是终局,「大海捞针」实验成本仅4%老黄深夜炸场,世界最强AI芯片H200震撼发布!性能飙升90%,Llama 2推理速度翻倍,大批超算中心来袭YaRN:一种高效RoPE扩展方法,可推理更长上下文并达到SOTA老黄深夜炸场,世界最强新品震撼发布:性能飙升90%,Llama 2推理速度翻倍 |【经纬低调分享】老黄给H100“打鸡血”:英伟达推出大模型加速包,Llama2推理速度翻倍
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。