归纳翻译QA三大任务都能hold住
萧箫 发自 凹非寺
非常AI | 公众号 QbitAI
大语言模型用着爽,但推理速度实在太慢了?
而且,增加模型体积,推理效果也并不一定就比之前更好。
为了解决这一问题,谷歌MIT的研究人员提出了一个新框架CALM,让它自己来决定计算量。
如果CALM意识到某些层“可有可无”,那么它在计算时就会跳过这些层。
论文被po到网上后,立刻火了一波:
有网友表示,我们就是需要这样更智能和自适应的模型,显然CALM的解码器已经做到了:
直接用中间层输出结果
CALM全称Confident Adaptive Language Modeling,即置信自适应大语言模型。
这一模型基于Transformer架构,为了加速它的计算,研究人员提出了一个名叫“提前退出”(early exiting)的方法,让模型根据不同的输入,动态决定要用多少层网络来计算。
也就是说,在计算的过程中,模型不需要经过每一层计算再输出结果,而是能直接用中间层的特征输出token,从而降低模型计算量。
所以,模型如何决定“退出”的时机呢?
这就需要训练模型学会自己判断了。
其中,Yfull是标准模型输出的结果,Yearly是模型“提前退出”时输出的结果。为了让Yearly的效果更好,就需要尽可能让它与Yfull保持一致。
当然,不同的任务对于文本输出一致性也有不同的要求,例如对生成结果要求没那么严格(可以生成更多样的语句)的任务,对于Yfull和Yearly的一致性要求就没那么高。
因此作者们也在论文中给出了两个不同的公式,可根据实际情况选用:
在实际操作上,论文通过设置一个局部的token置信度,来检查其对整个生成序列的影响。
模型在解码过程中,会计算每一层的置信度c,并将它与达到“提前退出”的阈值λ相比,如果c大于λ,则模型“提前退出”。
所以,这样的模型实际测试效果究竟如何?
归纳翻译QA任务表现都不错
论文在CNN/DM、WMT和SQuAD三个数据集上进行了测试。
其中,CNN/DM是一个新闻文章数据集,需要输出一个几句话概括文章的结果;WMT15 EN-FR是一个机器翻译数据集,主要是法译英句子的结果;Open-book SQUAD 1.1则是一个根据维基百科提问的QA数据集。
据一作Tal Schuster介绍,在保持相同性能的情况下,CALM使用的解码器层数平均比之前降低了3倍。
对于这篇论文,有网友表示赞同:模型确实不需要总是“长时间深入思考”,有时候几层就能推理出正确答案了。
据作者表示,这一加速解码的思路,适用于任何Seq2seq模型。
作者介绍
这篇论文的作者一共有8个人,分别来自谷歌和MIT CSAIL,其中主要负责人有两位,Tal Schuster和Adam Fisch。
Tal Schuster博士毕业于MIT,目前是谷歌的高级研究员,研究方向是机器学习模型的鲁棒性、可靠性和效率提升。
Adam Fisch,MIT在读博士生,本科毕业于普林斯顿大学,研究方向是机器学习量化不确定性、少样本学习等。
对大语言模型推理加速感兴趣的小伙伴,可以戳论文地址详细了解。
论文地址:
https://arxiv.org/abs/2207.07061
参考链接:
https://twitter.com/TalSchuster/status/1547966142412513282