CLaSp:让大语言模型生成文本更快的自我推测解码技术

B站影视 日本电影 2025-06-04 16:37 3

摘要:想象一下,当你使用ChatGPT时,AI需要一个一个地生成单词,就像一个人一次只能写一个字一样。这种方式虽然确保了文本质量,但速度较慢。研究人员发现,如果AI能够"猜测"接下来的几个单词,然后一次性验证这些猜测,就能大大提高生成速度。这就是所谓的"推测解码"技

想象一下,当你使用ChatGPT时,AI需要一个一个地生成单词,就像一个人一次只能写一个字一样。这种方式虽然确保了文本质量,但速度较慢。研究人员发现,如果AI能够"猜测"接下来的几个单词,然后一次性验证这些猜测,就能大大提高生成速度。这就是所谓的"推测解码"技术。

传统的推测解码需要两个模型:一个负责"猜测"(草稿模型),另一个负责"验证"(验证模型)。问题在于,为每个大语言模型专门训练一个匹配的草稿模型既费时又费力。这就像为每个厨师配备一个专门的助手,而且这个助手必须完全了解厨师的烹饪风格才能有效协助。

CLaSp提出了一个聪明的解决方案:不需要额外的助手,而是让厨师(大语言模型)自己"偷懒",在某些步骤中跳过一些烹饪程序,从而加快整个过程。更专业地说,CLaSp让AI在生成草稿文本时略过原始模型中的一些中间层计算,然后在验证阶段使用完整模型。关键创新在于,CLaSp能够根据当前生成的文本内容实时调整哪些层可以被跳过,就像厨师根据当前烹饪的菜肴自动决定哪些步骤可以简化一样。

这种方法不需要额外训练,可以即插即用,适用于各种大语言模型。研究团队在LLaMA3系列模型上进行了测试,发现CLaSp能够将文本生成速度提高1.3到1.7倍,而且不会改变生成文本的质量。这意味着用户能够获得更快的AI响应,同时保持回答的准确性和连贯性。

一、推测解码:加速AI文本生成的关键技术

首先,我们需要理解为什么大语言模型生成文本会有延迟。想象一下一个自动售票机,每次只能处理一个人的票务。如果有100个人排队,那么第100个人必须等待前面99个人都完成才能买到票。大语言模型也是如此,它们采用"自回归"方式生成文本,即一次只能生成一个单词(或称为"标记"),然后基于已生成的内容继续生成下一个。

这种方式导致了一个问题:即使拥有强大的计算资源,大部分GPU(图形处理单元,AI的计算引擎)在处理过程中也处于"闲置"状态,因为它们在等待前一个单词生成完毕。就像一个多车道高速公路上只有一辆车在行驶,其他车道完全空着,这是对资源的巨大浪费。

推测解码技术借鉴了计算机系统中的"推测执行"概念,它允许AI"预测"接下来可能出现的多个单词,然后一次性验证这些预测。想象一个餐厅服务员不等你点完所有菜就预先猜测你可能想点的几道菜,然后一次性确认——如果猜对了,就节省了来回多次确认的时间。

传统的推测解码需要两个模型:一个轻量级的"草稿模型"快速生成候选单词,一个完整的"验证模型"检查这些单词是否正确。如果验证通过,那么这些单词就被接受;如果验证失败,则从失败点重新开始生成。

这种方法的挑战在于找到或训练一个与验证模型行为一致的草稿模型。对于开源模型(如LLaMA系列),可以专门训练匹配的草稿模型。但对于那些专业或闭源的模型,找到合适的草稿模型变得异常困难。

二、CLaSp:动态层跳过的创新方法

CLaSp提出了一个巧妙的解决方案:不需要额外的模型,而是让原始模型自己充当"草稿模型",方法是跳过部分中间计算层。这就像一个熟练的厨师在准备简单菜肴时,可以跳过一些不必要的准备步骤,直接进入关键烹饪环节。

传统的自我推测解码方法(Self-SD)也采用了类似的层跳过策略,但它们依赖于耗时的贝叶斯优化过程来预先确定一组固定的层跳过配置。这就像厨师需要提前严格规定每道菜都跳过哪些步骤,无法根据实际烹饪过程进行调整。而实际上,不同的菜肴(或在AI中,不同的生成内容)可能需要不同的简化策略。

CLaSp的关键创新在于它能够在生成过程中动态调整跳过哪些层。想象一个厨师在烹饪过程中,根据当前做的菜肴和进展情况,实时决定哪些步骤可以简化,哪些步骤必须仔细执行。具体来说,CLaSp使用动态规划算法,通过利用上一次验证阶段的完整隐藏状态作为目标,优化层跳过过程。

这种方法带来了两个主要挑战:一是如何确定哪些层应该被跳过,二是如何减少层优化引入的额外延迟。为解决这些问题,研究团队设计了一个近似动态规划算法,并实现了序列并行化以提高效率。

对于第一个挑战,CLaSp利用了一个重要观察:transformer模型的嵌入在不同层之间变化缓慢。这就像烹饪过程中,某些步骤对最终菜肴的影响较小,可以被简化或跳过。基于这一观察,CLaSp在验证阶段后,使用上一个被接受的标记的完整隐藏状态作为"地面真相",预测并调整下一轮草稿阶段的最佳层跳过策略。

对于第二个挑战,CLaSp采用了两种优化策略:序列并行化和降低优化频率。序列并行化允许在单个前向传递中处理多个状态,而降低优化频率则基于"稀疏持久性"观察——相邻标记所需的层跳过策略通常非常相似,因此不需要在每个验证步骤后都更新策略。

三、CLaSp的工作流程:三步走的加速方案

CLaSp的工作流程可以分为三个阶段:草稿生成、验证和层优化。

第一阶段是草稿生成。在这一阶段,模型跳过预先确定的一些中间层,快速生成一系列候选标记。想象一个作家在创作初稿时,不过多关注语法和措辞的精确性,而是快速将想法转化为文字。

第二阶段是验证。在这一阶段,完整模型对草稿阶段生成的标记进行验证。它在单个前向传递中预测每个草稿标记的概率分布,并评估它们是否与完整模型的预测一致。一旦某个草稿标记被拒绝,完整模型的预测将覆盖该标记,并从该点重新开始草稿生成。这就像编辑审查初稿,发现问题后修正并继续向前。

第三阶段是层优化。使用最后一个被接受的标记的隐藏状态作为优化目标,CLaSp更新最佳层跳过策略,指导下一轮草稿生成。这就像作家根据编辑的反馈,调整自己的写作策略以提高初稿质量。

CLaSp的动态规划算法是其核心创新。该算法定义了一个转移方程,用于计算在前i个transformer层中跳过j层的情况下,所得隐藏状态与最优隐藏状态之间的最大余弦相似度。通过维护一个状态矩阵,算法能够高效地找到近似最优的层跳过策略。

尽管动态规划通常要求满足"无后效性"(当前决策只依赖于当前状态,而非历史状态),但研究团队发现,由于transformer模型的嵌入在层间变化缓慢的特性,CLaSp的近似算法表现接近于暴力搜索的最优解,远优于随机选择层的效果。

为了进一步提高效率,CLaSp实现了序列并行化,利用GPU并行计算的能力。当计算状态(i,j)时,只需要(i-1,·)的状态,这使得对于相同i值的不同j值的计算可以独立进行。此外,研究团队设计了一个专门的掩码矩阵,允许将这些状态作为序列并行化,而无需重复KV缓存,显著提高了内存效率。

四、实验结果:速度与质量的完美平衡

研究团队在LLaMA3系列模型上使用Spec-Bench评估了CLaSp的性能。Spec-Bench是一个综合性推测解码评估基准,涵盖了多种不同场景的数据集,包括多轮对话、翻译、摘要、问答、数学推理和检索增强生成等任务。

实验结果表明,CLaSp在不同模型和任务上始终如一地实现了1.3到1.7倍的加速,同时保持了生成文本的原始分布不变。与现有的训练自由层跳过方法(如Self-SD和SWIFT)相比,CLaSp展现出更优的性能,尤其是在处理数据量有限的情况下。

CLaSp的效率主要归功于其有效利用模型层稀疏性的能力。在实验中,通过跳过50%到60%的层,CLaSp能够同时保持高平均接受长度和接受率,从而实现更高的加速比。一般来说,更长的接受长度会导致更高的加速比。不过,研究团队也观察到,在某些情况下,尽管接受长度较长,但加速比依然较低,这是因为生成额外的标记增加了时间消耗,降低了接受率和整体加速比。

CLaSp在较大模型(如LLaMA3-70B)上的性能优势更为明显,相比于较小模型(如LLaMA2-13B和LLaMA3-8B)。这表明CLaSp能够更好地利用较大模型中存在的更大层稀疏性,提高适应性和效率。

研究团队还分析了三个关键超参数对加速效果的影响:跳过层数、层优化间隔和草稿退出阈值。

对于跳过层数,研究团队发现,对于由80层组成的LLaMA3-70B模型,随着跳过层数的增加,加速比逐渐上升,在跳过44层时达到最优值1.64倍。超过这一点,更长的平均接受长度带来的好处被生成高质量草稿的增加成本所抵消,导致加速比下降。

对于层优化间隔,延长优化间隔可以减少动态规划引入的额外延迟,同时对平均接受长度的影响较小。实验表明,随着优化间隔的增加,加速比先上升后下降,在间隔为128时开始明显下降,这是由于平均接受长度的显著下降对整体加速比产生了负面影响。

对于草稿退出阈值,研究团队发现调整阈值在0.7左右时能获得最高加速比。即使在较高阈值下,加速比仍然保持较高水平,这表明该参数对于实现加速效果具有较强的鲁棒性。

五、CLaSp的扩展性与未来展望

为了评估CLaSp的可扩展性,研究团队在不同规模的模型上进行了测试,包括LLaMA2-13B和LLaMA3.1-405B,以及LLaMA3-8B和LLaMA3-70B。对于LLaMA2-13B,模型部署在单个A800 GPU上使用FP16精度;对于LLaMA3.1-405B,则使用INT8量化在8个A800 GPU上部署。

实验结果表明,随着模型规模的增加,在各种任务上的加速比都有所提高。具体来说,在MT-bench上,加速比从LLaMA3-8B的1.24倍提高到LLaMA3.1-405B的1.73倍;在GSM8K基准测试上,加速比从1.26倍提高到1.81倍;在Natural Questions基准测试上,加速比从1.27倍提高到1.82倍。这些结果表明,更大的模型展现出更强的层稀疏性,使CLaSp能够更有效地发挥其能力并实现更大的加速。

总的来说,CLaSp的出色表现证明了它作为一种即插即用解决方案的有效性,为各种大语言模型提供了一种通用的推理加速方法。它不需要额外的训练或复杂的模块,只需要简单地调整现有模型的计算流程,就能显著提高推理速度,同时保持生成质量。

未来的研究方向可能包括进一步探索如何更好地利用大语言模型的层稀疏性,以在更大规模的模型中进一步降低推理延迟。此外,CLaSp与其他推测解码创新的结合也是一个有潜力的研究方向,可能带来更显著的加速效果。

CLaSp的研究不仅为大语言模型的推理加速提供了一种实用的解决方案,也为我们理解大型神经网络的内部工作机制提供了新的视角。它揭示了大语言模型中存在的层冗余现象,以及如何利用这种冗余来提高计算效率。这些发现对于未来设计更高效的神经网络架构具有重要启示。

来源:至顶网一点号

相关推荐