教大模型自己跳过“无用”层,推理速度×3性能不变,谷歌MIT这个新方法火了

归纳翻译QA三大任务都能hold住

萧箫 发自 凹非寺
量子位 | 公众号 QbitAI

大语言模型用着爽,但推理速度实在太慢了?

而且,增加模型体积,推理效果也并不一定就比之前更好。

为了解决这一问题,谷歌MIT的研究人员提出了一个新框架CALM,让它自己来决定计算量。

如果CALM意识到某些层“可有可无”,那么它在计算时就会跳过这些层。

论文被po到网上后,立刻火了一波:

教大模型跳“无用”层,推理速度×3性能不变,谷歌MIT新方法火了

有网友表示,我们就是需要这样更智能和自适应的模型,显然CALM的解码器已经做到了:

教大模型跳“无用”层,推理速度×3性能不变,谷歌MIT新方法火了

直接用中间层输出结果

CALM全称Confident Adaptive Language Modeling,即置信自适应大语言模型。

这一模型基于Transformer架构,为了加速它的计算,研究人员提出了一个名叫“提前退出(early exiting)的方法,让模型根据不同的输入,动态决定要用多少层网络来计算。

也就是说,在计算的过程中,模型不需要经过每一层计算再输出结果,而是能直接用中间层的特征输出token,从而降低模型计算量。

教大模型跳“无用”层,推理速度×3性能不变,谷歌MIT新方法火了

所以,模型如何决定“退出”的时机呢?

这就需要训练模型学会自己判断了。

其中,Yfull是标准模型输出的结果,Yearly是模型“提前退出”时输出的结果。为了让Yearly的效果更好,就需要尽可能让它与Yfull保持一致。

教大模型跳“无用”层,推理速度×3性能不变,谷歌MIT新方法火了

当然,不同的任务对于文本输出一致性也有不同的要求,例如对生成结果要求没那么严格(可以生成更多样的语句)的任务,对于Yfull和Yearly的一致性要求就没那么高。

因此作者们也在论文中给出了两个不同的公式,可根据实际情况选用:

教大模型跳“无用”层,推理速度×3性能不变,谷歌MIT新方法火了

在实际操作上,论文通过设置一个局部的token置信度,来检查其对整个生成序列的影响。

模型在解码过程中,会计算每一层的置信度c,并将它与达到“提前退出”的阈值λ相比,如果c大于λ,则模型“提前退出”。

教大模型跳“无用”层,推理速度×3性能不变,谷歌MIT新方法火了

所以,这样的模型实际测试效果究竟如何?

归纳翻译QA任务表现都不错

论文在CNN/DM、WMT和SQuAD三个数据集上进行了测试。

教大模型跳“无用”层,推理速度×3性能不变,谷歌MIT新方法火了

其中,CNN/DM是一个新闻文章数据集,需要输出一个几句话概括文章的结果;WMT15 EN-FR是一个机器翻译数据集,主要是法译英句子的结果;Open-book SQUAD 1.1则是一个根据维基百科提问的QA数据集。

教大模型跳“无用”层,推理速度×3性能不变,谷歌MIT新方法火了

据一作Tal Schuster介绍,在保持相同性能的情况下,CALM使用的解码器层数平均比之前降低了3倍

教大模型跳“无用”层,推理速度×3性能不变,谷歌MIT新方法火了

对于这篇论文,有网友表示赞同:模型确实不需要总是“长时间深入思考”,有时候几层就能推理出正确答案了。

教大模型跳“无用”层,推理速度×3性能不变,谷歌MIT新方法火了

据作者表示,这一加速解码的思路,适用于任何Seq2seq模型。

教大模型跳“无用”层,推理速度×3性能不变,谷歌MIT新方法火了

作者介绍

这篇论文的作者一共有8个人,分别来自谷歌和MIT CSAIL,其中主要负责人有两位,Tal Schuster和Adam Fisch。

教大模型跳“无用”层,推理速度×3性能不变,谷歌MIT新方法火了

Tal Schuster博士毕业于MIT,目前是谷歌的高级研究员,研究方向是机器学习模型的鲁棒性、可靠性和效率提升。

教大模型跳“无用”层,推理速度×3性能不变,谷歌MIT新方法火了

Adam Fisch,MIT在读博士生,本科毕业于普林斯顿大学,研究方向是机器学习量化不确定性、少样本学习等。

教大模型跳“无用”层,推理速度×3性能不变,谷歌MIT新方法火了

对大语言模型推理加速感兴趣的小伙伴,可以戳论文地址详细了解。

论文地址:
https://arxiv.org/abs/2207.07061

参考链接:
https://twitter.com/TalSchuster/status/1547966142412513282

版权所有,未经授权不得以任何形式转载及使用,违者必究。