近日,蚂蚁集团开源了一套新算法,可帮助大模型在推理时,提速2至6倍,引起业内关注。
图:新算法在不同开源大模型上的提速表现。
这套新算法名为Lookahead推理加速框架,能做到效果无损,即插即用,该算法已在蚂蚁大量场景进行了落地,大幅降低了推理耗时。
以Llama2-7B-chat模型和Dolly数据集为例,我们进行了实测,并发现token生成速度从48.2个/秒提升到112.9个/秒,提速了2.34倍。在蚂蚁内部的RAG(检索增强生成)数据集上,百灵大模型AntGLM 10B版本的加速比达到了5.36。与此同时,显存增加和内存消耗几乎可以忽略不计。
当前的大型模型通常基于自回归解码,每次只生成一个token。这种方式不仅浪费了GPU的并行处理能力,还导致用户体验延迟过高,影响了流畅度。为了改善这一问题,可以尝试采用并行解码方式,同时生成多个token,以提高效率和用户体验。
举个例子,原来的token生成过程可以比喻为早期中文输入法的方式,用户需要一个字一个字地敲击键盘来输入文字。然而,采用了蚂蚁的加速算法后,token生成的过程就像是现代联想输入法,可以通过联想功能直接蹦出整句话来。这样的改进大大提高了输入速度和效率。
业内此前已经涌现了一些优化算法,主要关注于生成更优质的草稿(即猜测生成token序列)的方法。然而,经过实践验证,一旦草稿的长度超过30个token,端到端推理的效率就无法再进一步提高。很明显,这个长度并没有充分发挥GPU的计算能力。
为了进一步提升硬件性能,蚂蚁Lookahead推理加速算法采用了多分支的策略。这意味着草稿序列不再只有一条分支,而是包含多条并行的分支,这些分支可以同时进行验证。这样一来,在保持前向过程的耗时基本不变的情况下,可以增加一次前向过程生成的token个数。
蚂蚁Lookahead推理加速算法通过利用trie树存储和检索token序列,以及合并多条草稿中相同的父节点,进一步提高了计算效率。为了提高易用性,该算法的trie树构建不依赖额外的草稿模型,而是只利用推理过程中的prompt和生成的回答进行动态构建,从而降低了用户的接入成本。
该算法现已在GitHub上开源(https://www.php.cn/link/51200d29d1fc15f5a71c1dab4bb54f7c),相关论文公布在ARXIV(https://www.php.cn/link/24a29a235c0678859695b10896513b3d)。
公开信息显示,蚂蚁集团基于丰富的业务场景需求,在人工智能方向持续投入,布局了包括大模型、知识图谱、运筹优化、图学习、可信AI等技术领域。
以上是蚂蚁集团发布新算法,可加快大型模型推理速度2-6倍的详细内容。更多信息请关注PHP中文网其他相关文章!