实时了解业内动态,论文是最好的桥梁,专栏精选论文重点解读热点论文,围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技(Mamba,xLSTM,KAN)则提供了大模型领域最新技术跟踪。若对于具身智能感兴趣的请移步具身智能专栏。技术宅麻烦死磕AI架构设计。
总览EAGLE-2
EAGLE-2是一种加速大型语言模型(LLM)推理过程的技术。具体来说,它采用了基于推测性采样(speculative sampling)的技术,它通过引入动态草稿树和草稿模型的置信度分数来提高LLM的推理效率。EAGLE-2能确保模型生成的文本概率分布不变,也使得其成为一种无损加速算法。
-
推测性采样(Speculative Sampling)是一种通过生成和验证多个候选词来加速LLM推理的方法。具体来说,它首先使用一个小模型快速生成一些候选词(Draft),然后用更大的模型来验证这些候选词正确性。
-
草稿树(Draft Tree)是一种数据组织结构,用来组织和存储草稿模型(Draft Model)生成的候选词。
-
动态草稿树(Dynamic Draft Trees)是在EAGLE-2过引入的,它改进了传统静态草稿树的局限性。动态草稿树会根据草稿模型的置信度分数和生成上下文,动态调整草稿树的结构。
-
置信度分数是指草稿模型对某个候选词的信心程度,它近似表示该候选词被最终模型接受的概率。
先来感受一下EAGLE-2技术令人震撼的效果,在各种的模型的推理上遥遥领先,基本面能够达到3-4倍数的加速。
上面的统计结果在temperature=0时候的加速比。
temperature是LLM推理的超参数。大模型在预测下一个字符的时候,会针对词汇表的所有候选者都生产预测的概率,0代表选择永远选择概率最高的。随着temperature设置数据的增加,下一个预测字符的随意性就会增加
上图中,对于推测采样,Vicuna系列使用Vicuna-68M作为草稿模型。LLaMA2-Chat 7B、13B 和 LLaMA3-Instruct 8B缺乏合适的草稿模型,标记为 N/A。LLaMA2-Chat 70B和 LLaMA3-Instruct 70B分别使用LLaMA2-Chat 7B和LLaMA3-Instruct 8B作为草稿模型。在表 1 中展示了与其他方法的比较,但该图仅展示了一个子集,包括这些方法中最快的EAGLE。
Speculative Sampling
推测采样技术
推测采样技术是鼻祖,其核心思想是先起草(Draft)然后验证(Verification):快速生成一个可能正确的草案,然后检查草案中哪些Token可以被接受。
2023年5月份提出的一种推测技术如上图所示,每行代表算法一次迭代。
此处的近似模型,或者称为草稿模型的是一个6M的类GPT的解码器。这个模型是利用8k个Token训练出来的,目标模型是具有97M个参数的类GPT解码器!
绿色标记是近似(草稿)模型提出的建议,而被目标模型接受,而红色和蓝色标记分别是被拒绝的建议及其更正。例如,在第一行中,目标模型仅运行了一次,生成了5个Token。
2024年2月份的Ouroboros针对打草稿的技术进行加速。它从前瞻解码中得到启发,使用草稿短语直接加速目标模型T。因为每轮草稿短语都需要目标模型T的前向传递来验证,因此限制了前瞻解码的整体加速效果。
它先通过使用现有的较小模型(橙色部分)进行草稿,然后以低成本生成草稿短语(粉色部分),紧接这并行 的方式使用目标LLM来验证草稿。在这种草稿-验证框架下,打草稿的效率已成为这种推测采样技术的加速瓶颈。但是它以较低的成本生成更长的草稿可以带来更好的解码加速,而且它无需对草稿和目标模型进行微调。
一句话,作为幕后代笔的草稿模型而言,打草稿的效率十分重要!!
与前瞻解码不同,它使用草稿短语通过草稿模型S间接加速目标模型T,让目标模型的每次Forward(大白话,吐新的Token)可以同时验证多轮短语,从而实现更好的加速。如图2所示,在Ouroboros中,草稿模型的起草过程是逐个草稿短语而不是逐个Token进行,在草稿模型的每次Forward传递过程中,都会并行生成多个新短语。<如何生成另外讲解!>
EAGLE
2024年1月份的EAGLE是对抽样技术的改进。在提交这项工作时,EAGLE在Spec-Bench中排名第一,这是一个很全面的评估基准,旨在评估不同场景中的推测采样的技术。
EAGLE 的流水线。上半部分说明了计算过程,下半部分显示了每个步骤对应的生成结果。在上半部分中,绿色块表示token嵌入,橙色块表示特征f,红色框表示草稿模型的预测,带有雪花图标的蓝色模块表示目标大模型LLM的参数,这些参数是冻结的。
上图为起草阶段。与自回归预测 token序列的标准推测性抽样不同,EAGLE 在更结构化的特征级别运行,即使用LLM原始的LM Head获取草稿token。为了消除不确定性,EAGLE还带上每个阶段的特征(可以大致理解为上下文)f。
验证阶段。在标准推测性抽样中,草稿是链式结构的,如果草稿token被拒绝,则需要丢弃所有后续 token。EAGLE 使用树形结构草稿,允许在草稿 token被拒绝时尝试替代分支。图b说明了两者之间的差异。
EAGLE Vs EAGLE-2
EAGLE和EAGLE-2之间的差异。EAGLE始终使用固定的草稿形状。当查询为“10+2=”时,下一个标记很可能被正确预测为“1”。但是,使用静态草稿树,即便另一个候选“3”正确的概率非常低,EAGLE仍会添加两个候选。而EAGLE-2根据上下文调整草稿树的形状。当查询为“10+2”时,下一个标记很难预测,因此 EAGLE-2 添加了两个候选。对于更简单的查询“10+2=”,EAGLE-2仅添加一个候选“1”。
由此可以看到EAGLE-2根据上下文动态调整草稿树,增强推测性抽样。其方法包括两个主要阶段:扩展和重新排名。该过程从扩展阶段开始,在该阶段,草稿模型从草稿树的最新层输入最有希望的节点以形成下一层。来自草案模型的置信度分数可以用于接受率,从而可以有效地预测和验证Token。在重新排名阶段,会选择接受概率较高的Token作为目标LLM的输入。
这种两阶段方法确保草稿树适应上下文,显著提高Token被目标大模型接受的概率。同时消除了多次Forward的推理,在不影响生成文本质量的情况下加快了推理过程。
下图为EAGLE-2这种技术在多个模型推理上面的提升倍数。
这一期帮助读者解锁了大模型的打草稿技术,其实就是通过利用小模型快速并行的吐出草稿以便加速完整的推理过程。其实也好理解,比如在现实生活中的文学创作,也是先陆续生成草稿,然后再最后精校,包括这篇文章,当然中间还有很多细节值得深究。