Prox: Training-Free FFN Activation Sparsity via Approximate Intermediate-Channel Salience in LLMs
Prox 是一个无需训练的框架,它通过从近似的中间通道显著性构建通道掩码,实现了大语言模型中高效的稀疏 SwiGLU FFN 执行,从而在无需重新训练的情况下,与现有方法相比实现了显著的加速和更优的模型质量。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正试图在一台小型电池驱动的设备上运行一个庞大的、超智能的机器人大脑。这个大脑被称为大语言模型(LLM),它能写故事、解数学题、聊天,非常了不起,但它也非常“贪婪”。为了思考下一个词,它会吞噬大量的内存和计算能力。为了让这些机器人更快、更不那么“渴”,科学家们一直尝试教它们“跳过”那些不重要的思考过程。这被称为激活稀疏性(activation sparsity)。你可以把它想象成一位厨师,他不是在厨房里把所有的蔬菜都切碎,而是快速品尝食材,只切那些真正能增加风味的蔬菜,剩下的则原封不动。目标是得到同样美味的汤(正确的答案),但要付出极少的劳动。然而,棘手之处在于如何确定要跳过哪些蔬菜,而不至于意外丢掉让菜肴变美味的秘密香料。如果你猜错了,汤的味道会变得平淡,甚至无法入口。
这个谜题由研究员刘金毅及其团队开发的名为 Prox 的新方法来解决。他们专注于一种特定的机器人大脑架构——SwiGLU,这是目前许多强大 AI 模型的主流标准。研究人员发现,虽然大脑的“中间思维”(中间状态)持有决定跳过哪些部分的完美地图,但精确计算这张地图的过程太慢且太昂ک贵。因此,他们想出了一个聪明的两步走策略。首先,他们利用大脑思维的一个快速、低质量的“草稿”来快速决定哪些部分是重要的。然后,这是关键点,他们只对这些特定的重要部分进行繁重的、精确的数学运算,而完全忽略其余部分。他们的实验表明,这种方法比以往那些试图在不做完整数学运算前就去猜测重要性的方法要好得多。在对十种不同 AI 模型的测试中,Prox 让机器人的思考速度提升了近两倍(高达 1.99 倍),同时保持了与慢速全速版本一样聪明的答案。这就像有一个超级快速的侦察兵跑在前面标记路径,让主力部队只需在安全、铺好的道路上行军,从而在不迷路的情况下节省时间和精力。
问题所在:机器人的沉重午餐
大语言模型就像巨大的知识图书馆,但它们也非常沉重。当它们试图回答问题时,必须在内存中移动海量的数据。这些流量中的一大块来自于被称为**前馈网络(FFN)**的特定大脑部分。你可以把 FFN 想象成大脑的一部分,它接收一个想法,处理它,然后将其传递下去。在现代模型中,这个部分使用一种特殊的配方,叫做 SwiGLU,它涉及三个不同的数学操作(投影)协同工作。
问题在于,这三个操作非常沉重,拖慢了整体速度。科学家们曾尝试通过让模型变得“稀疏”来解决这个问题,也就是说,他们试图跳过大脑中看似不重要的部分。然而,现有的无需重新训练模型(这需要很长时间)的方法存在缺陷。它们通常仅根据单一信息来猜测应该跳过哪些部分,比如只看配方中的“门控(gate)”部分或只看“上升(up)”部分。这就像是试图通过只听鼓声或只听人声来判断一首歌是否好听。如果你猜错了,你就会跳过一个关键音符,导致歌曲(或 AI 的答案)崩塌。随着科学家尝试跳过越来越多的部分以提高速度,答案的质量也会显著下降。
洞察:地图与旅程
由刘金毅领导的研究团队注意到,SwiGLU 配方中有一个有趣的现象。在这个过程中有一个特定的时刻,被称为中间状态(我们可以称之为“中间思维”)。这个中间思维是决定保留哪些大脑部分和跳过哪些部分的完美信号。如果你能精确看到这个中间思维,你就可以跳过高达 70% 的工作,同时仍获得完美的答案。
但问题在于:要精确看到这个中间思维,你必须先完成所有的繁重数学运算。这就像是试图看到比赛的终点线,但你必须跑完整个比赛才能到达那里。这违背了想要节省时间的初衷。
团队意识到,他们并不真的需要中间思维的精确值。他们只需要知道重要性的顺序。他们需要知道哪些部分是“大的”,哪些是“小的”,而不是精确的数字。这就像是知道你钱包里有多少钱,与仅仅知道哪些钞票面值最大之间的区别。如果你能正确猜测顺序,你就能选出正确的东西。
解决方案:Prox 的两阶段策略
为了解决这个问题,团队创建了 Prox,这是一个充当“聪明侦察兵”和“精密建筑师”的两阶段框架。
第一阶段:快速侦察兵(代理构建)
在第一阶段,Prox 使用一种“廉价”版本的数学运算。它获取输入,并将其通过一个简化、低质量的大脑版本(使用量化权重,即压缩后的较小数字)进行处理。它并不试图得到完美的答案,它只是想快速了解哪些通道是响亮的,哪些是安静的。它创建了一个“掩码(mask)”,本质上是一份“保留”和“丢弃”的标签列表。由于这个阶段使用的是简化的数学运算,所以它非常快且不需要太多内存。至关重要的是,这种粗略计算中的误差不会破坏最终答案,因为这些粗略的数字永远不会用于最终输出——它们仅用于制作这份清单。
第二阶段:精密建筑师(精确稀疏计算)
一旦清单制作完成,第二阶段就开始了。这才是真正的魔法发生的地方。模型查看第一阶段的清单并说:“好吧,我们要忽略 70% 的工作,只对前 30% 进行数学运算。”但这里的不同之处在于:对于这前 30%,Prox 使用的是原始的、全精度的、重型运算。它计算了重要部分的精确值。这确保了最终答案与模型进行全部运算时的准确度一样高,只不过它只对那些重要的部分进行了运算。
为什么它效果更好
研究人员在包括 Qwen、Mistral 和 Llama-3 在内的十种大型语言模型上测试了 Prox。他们将其与其它试图在不重新训练的情况下跳过工作的方案进行了对比。
结果显而易见:Prox 是赢家。在高水平的跳过(如 70% 稀疏度)下,其他方法开始出错,AI 的答案质量下降。然而,Prox 却能保持答案的敏锐。事实上,在 70% 稀疏度下,Prox 能将解码过程(即 AI 生成文本的速度)提升高达 1.99 倍(在标准显卡上)。这意味着 AI 可以几乎以两倍的速度进行交谈,而不会丧失其智慧。
团队还检查了如果将这种方法与其他加速技巧(如使数字变小即量化,或跳过注意力机制的部分)结合使用,是否会失效。他们发现,Prox 可以完美地与其他方法配合使用,就像一个可以适配任何设置的通用适配器。
总结
论文结论指出,Prox 是一种强大的、无需训练即可让 AI 更快的方法。它证明了你不需要重新训练一个庞大的模型来使其高效。相反,你可以使用一个聪明的两步走过程:用快速、粗略的猜测找到重要的部分,然后只对这些部分进行繁重的任务。这种方法避免了导致其他方法失败的“猜测游戏”,确保了即使在小型设备上运行时,机器人大脑也能保持快速且聪明。虽然目前的版本最适合单用户对话(如手机聊天),但研究人员建议,通过进一步的工作,这个想法最终可以帮助更高效地运行更大规模的用户群体。目前,它是迈向让 AI 在不牺牲智能的前提下变得更快速的重要一步。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。