预测token速度翻番!Transformer新解码算法火了,来自小羊驼团队|代码已开源

用雅可比(Jacobi)迭代法首次打破自回归解码中的顺序依赖性

丰色 发自 凹非寺

量子位 | 公众号QbitAI

小羊驼团队的新研究火了。

他们开发了一种新的解码算法,可以让模型预测100个token数的速度提高1.5-2.3倍,进而加速LLM推理。

比如这是同一个模型(LLaMa-2-Chat 7B)面对同一个用户提问(苏格拉底采用了哪些方法来挑战他那个时代的主流思想?)时输出回答的速度:

左边为原算法,耗时18.12s,每秒约35个token;

右边为该算法,耗时10.4s ,每秒约60个token,明显快了一大截。

简单来说,这是一种并行解码算法,名叫 "Lookahead Decoding" (前向解码)。

它主要利用雅可比(Jacobi)迭代法首次打破自回归解码中的顺序依赖性 (众所周知,当下大模型基本都是基于自回归的Transformer)。

由此无需草稿模型(draft model)或数据存储,就可以减少解码步骤,加速LLM推理。

目前,作者已给出了与huggingface/transformers兼容的实现,只需几行代码,使用者即可轻松增强HF原生生成的性能。

有网友表示:

该方法实在有趣,没想到在离散设置上效果这么好。

还有人称,这让我们离"即时大模型"又近了一步。

具体如何实现?

加速自回归解码的重要性

不管是GPT-4还是LLaMA,当下的大模型都是基于自回归解码,这种方法下的推理速度其实是非常慢的。

因为每个自回归解码步骤一次仅生成一个token

这样一来,模型输出的延迟有多高就取决于回答的长度。

更糟的是,这样的操作方式还浪费了现代GPU的并行处理能:GPU利用率都很低。

对于聊天机器人来说,当然是延迟越低,响应越快越好(尤其面对长序列答案时)。

此前,有人提出了一种叫做推测解码 的加速自回归解码的算法,大致思路是采用猜测和验证策略,即先让草稿模型预测几个潜在的未来token,然后原始LLM去并行验证。

该方法可以"凭好运气"减少解码步骤的数量,从而降低延迟.

但也有不少问题,比如效果受到token接受率的限制,创建准确的草稿模型也麻烦,通常需要额外的训练和仔细的调整等。

在此,小羊驼团队提出了一种的新的精确并行解码算法,即前向解码来克服这些挑战。

前向解码打破顺序依赖性

前向解码之所以可行,是作者们观察到:

尽管一步解码多个新token是不可行的,但LLM确实可以并行生成多个不相交的n-grams------它们可能适合生成序列的未来部分。

这可以通过将自回归解码视为求解非线性方程,并采用经典的Jacobi迭代法进行并行解码来实现。

在过程中,我们就让生成的n-grams被捕获并随后进行验证,如果合适就将其集成到序列中,由此实现在不到n个步骤的时间内生成n个token的操作。

作者介绍,前向解码之所以能够"脱颖而出",主要是因为它:

一不需草稿模型即可运行,简化了部署。

二是相对于每步 log(FLOPs) 线性减少了解码步骤数,最终在单个GPU、不同数据集上实现快1.5倍-2.3倍的token数预测。

更重要的是,它允许分配更多(大于1个GPU)的 FLOP,以在对延迟极其敏感的应用程序中实现更大程度地延迟下降,尽管这会带来收益递减。

下面是具体介绍:

1、前向解码的动机Jacobi在进行求解非线性系统时,一并使用定点迭代方法一次性解码所有的未来token。

这个过程几乎看不到时钟加速。

2、前向解码通过收集和缓存Jacobi迭代轨迹生成的n-grams来利用Jacobi解码的能力。

下图为通过Jacobi解码收集2-grams,然后验证并加速解码的过程。

3、每个解码步骤有2个分支:

前向分支维护一个固定大小的2D窗口,以根据Jacobi轨迹生成n-grams;验证分支验证有希望的n-grams。

作者实现了二合一atten mask,以进一步利用GPU的并行计算能力。

4、前向解码无需外部源即可立即生成并验证非常多的n-grams。这虽然增加了步骤的成本,但也提高了接受更长n-grams可能性。

换句话说,前向解码允许用更多的触发器来减少延迟。

5、作者检查了flops vs 延迟减少之间的缩放行为,并找到了缩放法则:

当n-grams足够大时(比如11-gram),以指数方式增加未来的token猜测(即窗口大小)可以线性减少解码步骤数。

作者介绍

本方法作者一共4位,全部来自小羊驼团队。

其中有两位华人:

傅奕超以及张昊,后者博士毕业于CMU,硕士毕业于上交大,现在是加州大学圣地亚哥分校助理教授。

参考链接:

1\][twitter.com/lmsysorg/st...](https://link.juejin.cn?target=https%3A%2F%2Ftwitter.com%2Flmsysorg%2Fstatus%2F1727056892671950887 "https://twitter.com/lmsysorg/status/1727056892671950887") \[2\][lmsys.org/blog/2023-1...](https://link.juejin.cn?target=https%3A%2F%2Flmsys.org%2Fblog%2F2023-11-21-lookahead-decoding%2F "https://lmsys.org/blog/2023-11-21-lookahead-decoding/") \[3\][github.com/hao-ai-lab/...](https://link.juejin.cn?target=https%3A%2F%2Fgithub.com%2Fhao-ai-lab%2FLookaheadDecoding "https://github.com/hao-ai-lab/LookaheadDecoding")

相关推荐
weixin_437497775 小时前
读书笔记:Context Engineering 2.0 (上)
人工智能·nlp
喝拿铁写前端5 小时前
前端开发者使用 AI 的能力层级——从表面使用到工程化能力的真正分水岭
前端·人工智能·程序员
goodfat5 小时前
Win11如何关闭自动更新 Win11暂停系统更新的设置方法【教程】
人工智能·禁止windows更新·win11优化工具
北京领雁科技5 小时前
领雁科技反洗钱案例白皮书暨人工智能在反洗钱系统中的深度应用
人工智能·科技·安全
落叶,听雪5 小时前
河南建站系统哪个好
大数据·人工智能·python
清月电子6 小时前
杰理AC109N系列AC1082 AC1074 AC1090 芯片停产替代及资料说明
人工智能·单片机·嵌入式硬件·物联网
Dev7z6 小时前
非线性MPC在自动驾驶路径跟踪与避障控制中的应用及Matlab实现
人工智能·matlab·自动驾驶
七月shi人6 小时前
AI浪潮下,前端路在何方
前端·人工智能·ai编程
橙汁味的风6 小时前
1隐马尔科夫模型HMM与条件随机场CRF
人工智能·深度学习·机器学习
程序员X小鹿6 小时前
年底赶工必备:分享3个可以一键美化Excel表格的AI神器,打工人必备!(建议收藏)
aigc