“前向解码”:加速LLM推理的并行解码算法

2023年11月28日 由 camellia 发表 822 0

尽管大型语言模型(LLM)例如GPT-4和LLaMA正迅速地重塑现代应用,但它们的推理过程缓慢且难以优化,这是因为它们基于自回归解码。LLM请求的延时主要取决于请求的答案长度,或等效地,解码步骤的数量,因为每个自回归解码步骤一次只产生一个token。不幸的是,由于每个解码步骤没有利用现有GPU的并行处理能力,通常GPU的并行处理能力被严重闲置。这对于许多实际应用的LLM,如聊天机器人和个人助理等,它们依赖瞬时响应并经常产出大规模低延迟的序列,这无疑是一个问题。


通过使用像Medusa和OSD这样的投机解码方法,可以加快自回归解码,这些方法采用“猜和校验”策略,即初步模型对未来可能的几个token进行预测,原始LLM再并行校验这些预测。这些方法能够利用只需较少解码步骤的情况来减少延时。然而,它们也存在一些限制。首先,token接受率,或者说,初步模型能多准确地预测主模型的输出,是投机解码方法可实现的最大加速上限。其次,开发一个可靠的初步模型并不容易;它通常需要更多的训练和以适应时间变化的细心调整。


LMSYS组织的一项新研究提出了前向解码,这是一种新的精准解码技术,旨在解决这些问题。尽管一次解码许多后续token在计算上是不可行的,但已经观察到一个LLM可以同时产生多个正交的n-gram。这些n-gram可能适合于被生成序列的未来部分。传统的雅可比迭代方法被适配用于并行解码,这使得自回归解码可以被视为非线性方程的解。所产生的n-gram被记录、校验,然后,如果合适,整合到序列中。前向解码尤其值得注意,因为它:


  • 不使用初步模型,加速了部署。
  • 减少总解码步骤量一个对数级(FLOPs)的因素。


研究者展示了前向解码显著减少了1.5倍至2.3倍的延迟,而计算负担几乎没有增加。或许最重要的是,它使得可以用处理速度换取减少延迟,尽管随着缩放所得到的好处递减。


他们为了使前向解码能与huggingface/transformers共同工作,创建了自己的实现。HuggingFace提供了一个原生生成函数,但用户可以用几行代码大幅提升其效率。


雅可比(Jacobi)迭代法是一个历史悠久的技术,用于解决非线性系统。LLM推理也可以用于并行生成token,无需预训练模型。由于每步雅可比解码涉及在多个token上进行LLM前向计算,其所需的FLOPs明显高于每步自回归解码。研究者们观察到在尝试显著改善雅可比解码在实际应用中的墙钟性能时,可能会遇到几个困难。尽管它可以在一系列步骤中解码多个token,但它经常会错误地排列这些token。即便正确预测,token在后续循环中经常被更换。因此,几乎很少有迭代同时成功解码并正确地将多个token放置。通常,由于GPU的并行处理能力,这并不会导致性能下降。


前向解码可以通过利用雅可比解码(Jacobi Decoding)生成并行的n元组来克服其缺点。在此过程中,每个新的符号都是使用该位置上以前迭代中的值来解码的,这一点在雅可比解码中已经见到。由于这一过程,形成了许多n元组,构建了每个符号位置的历史符号时间线。前向解码会根据这些n元组的轨迹来收集和缓存它们。在使用雅可比迭代对未来符号进行并行解码的同时,前向解码将同时检查缓存中有前景的n元组。


为了提高效率,每个前向解码阶段被分割成两个并行分支——前向分支和验证分支。为了从雅可比迭代轨迹中生成n元组,前向分支保持一个恒定大小的二维窗口,同时有前景的n元组候选者被验证分支选择并检查。


8_副本


由于内存带宽是LLM解码的主要瓶颈,研究人员将前向和验证分支合并成一个单一的通道,同时利用GPU的并行处理能力,隐藏任何相关的开销。


团队在MT-bench、HumanEval和GSM8K上测试了不同大小的LLaMA-2-Chat和CodeLLaMA,以观察他们的前向解码效果。这一技术在不需要微调或预备模型的情况下提供加速。在fp16精度下,他们评估了单个A100 GPU上的7B、13B和33B模型以及两个A100 GPU上使用管道并行的70B模型。


  • MT-Bench LLaMA讨论:在许多模型配置中,前向解码所取得的加速大约是1.5倍。
  • HumanEval的CodeLLaMA:在HumanEval上使用前向解码时,CodeLLaMA的延迟减少了两倍以上。这是因为代码中包含了许多容易猜测的N元组。
  • GSM8K的教学型CodeLLaMA:由于CodeLLama-Instructor应用于GSM8K的数学挑战,前向解码将延迟降低了1.8。
文章来源:https://www.marktechpost.com/2023/11/27/lookahead-decoding-a-parallel-decoding-algorithm-to-accelerate-llm-inference/
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
热门职位
Maluuba
20000~40000/月
Cisco
25000~30000/月 深圳市
PilotAILabs
30000~60000/年 深圳市
写评论取消
回复取消