通过增加模型的大小来加速Transformer的训练和推理

2020 年 3 月 17 日 AINLP

作者:Eric Wallace

编译:ronghuaiyang

导读

你没有看错,确实是通过增大模型的大小,大家别忘了,在训练的时候,有个隐含条件,那就是模型需要训练到收敛。

模型训练会很慢

在深度学习中,使用更多的计算(例如,增加模型大小、数据集大小或训练步骤)通常会导致更高的准确性。考虑到最近像BERT这样的无监督预训练方法的成功,这一点尤其正确,它可以将训练扩展到非常大的模型和数据集。不幸的是,大规模的训练在计算上非常昂贵的,尤其是在没有大型工业研究实验室的硬件资源的情况下。因此,在实践中,我们的目标通常是在不超出硬件预算和训练时间的情况下获得较高的准确性。

对于大多数训练预算,非常大的模型似乎不切实际。相反,最大限度提高训练效率的策略是使用隐藏节点数较小或层数量较少的模型,因为这些模型运行速度更快,使用的内存更少。

大模型训练的更快

然而,在我们的最近的论文中,我们表明这种减少模型大小的常见做法实际上与最佳的计算效率训练策略相反。相反,当在预算内训练Transformer模型时,你希望大幅度增加模型大小,但是早点停止训练。换句话说,我们重新思考了模型必须被训练直到收敛的隐含假设,展示了在牺牲收敛性的同时,有机会增加模型的大小。

这种现象发生的原因是,与较小的模型相比,较大的模型在较少的梯度更新中可以收敛于较低的测试误差。此外,这种收敛速度的提高超过了使用更大模型的额外计算成本。因此,在考虑训练时间时,较大的模型可以更快地获得更高的精度。

我们在下面的两条训练曲线中展示了这一趋势。在左侧,我们绘制了预训练的验证误差RoBERTa,这是BERT的一个变体。RoBERTa模型越深,其混乱度就越低(我们的论文表明,对于更宽的模型也是如此)。这一趋势也适用于机器翻译。在右侧,我们绘制了验证BLEU分数(越高越好),当训练一个英语到法语的Transformer机器翻译模型。在相同的训练时间下,深度和宽度模型比小模型获得更高的BLEU分数。

有趣的是,对于训练前的RoBERTa来说,增加模型的宽度和/或深度都会导致更快的训练。对于机器翻译,更宽的模型比更深的模型表现得更好。因此,我们建议在深入之前尝试增加宽度。

我们还建议增加模型大小,而不是batch size大小。具体地说,我们确认一旦batch size接近临界范围,增加batch size大小只会在训练时间上提供微小的改进。因此,在资源受限的情况下,我们建议在这个关键区域内使用batch size大小,然后使用更大的模型。

测试时间怎么办呢?

尽管更大的模型具有更高的“训练效率”,但它们也增加了“推理”的计算和内存需求。这是有问题的,因为推理的总成本远远大于大多数实际应用的训练成本。然而,对于RoBERTa来说,我们证明了这种取舍可以与模型压缩相协调。特别是,与小型模型相比,大型模型对模型压缩技术更健壮。因此,人们可以通过训练非常大的模型,然后对它们进行大量的压缩,从而达到两全其美的效果。

我们使用量化和剪枝的压缩方法。量化以低精度格式存储模型权重,修剪将某些神经网络的权值设置为零。这两种方法都可以减少推理延迟和存储模型权值的内存需求。

我们首先在相同的时间内预训练不同尺寸的RoBERTa模型。然后,我们在下游文本分类任务(MNLI)中对这些模型进行微调,并使用修剪或量化。我们发现,对于给定的测试时间预算,最好的模型是那些经过大量训练然后经过大量压缩的模型。

例如,考虑最深度模型的修剪结果(左图中的橙色曲线)。不需要修剪模型,它达到了很高的精度,但是使用了大约2亿个参数(因此需要大量的内存和计算)。但是,可以对这个模型进行大量的修剪(沿着曲线向左移动的点),而不会严重影响准确性。这与较小的模型形成了鲜明的对比,如粉红色显示的6层模型,其精度在修剪后严重下降。量化也有类似的趋势(下图)。总的来说,对于大多数测试预算(在x轴上选择一个点)来说,最好的模型是非常大但是高度压缩的模型。


总结

我们已经证明了增加Transformer模型的大小可以提高训练和推理的效率,即,应该先“大模型训练”,然后再“压缩”。这一发现引出了许多其他有趣的问题,比如为什么大的模型收敛得更快,压缩得更好。在我们的论文中,我们对这一现象进行了初步的调查,然而,未来的工作仍然是需要的。此外,我们的发现目前是NLP领域独特的 —— 我们想探索如何将这些结论推广到其他领域,如计算机视觉。

论文:“Train Large, Then Compress: Rethinking Model Size for Efficient Training and Inference of Transformers

论文链接:https://arxiv.org/abs/2002.11794

END

英文原文:https://bair.berkeley.edu/blog/2020/03/05/compress/




推荐阅读

AINLP年度阅读收藏清单

可解释性论文阅读笔记1-Tree Regularization

知识图谱存储与查询:自然语言记忆模块(NLM)

AINLP-DBC GPU 使用体验指南

征稿启示| 让更多的NLPer看到你的文章

AINLP-DBC GPU 云服务器租用平台建立,价格足够便宜

我们建了一个免费的知识星球:AINLP芝麻街,欢迎来玩,期待一个高质量的NLP问答社区

关于AINLP


AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP君微信(id:AINLP2),备注工作/研究方向+加群目的。



登录查看更多
0

相关内容

大模型是基于海量多源数据打造的预训练模型,是对原有算法模型的技术升级和产品迭代,用户可通过开源或开放API/工具等形式进行模型零样本/小样本数据学习,以实现更优的识别、理解、决策、生成效果和更低成本的开发部署方案。
[ICML-Google]先宽后窄:对深度薄网络的有效训练
专知会员服务
33+阅读 · 2020年7月5日
【伯克利】再思考 Transformer中的Batch Normalization
专知会员服务
40+阅读 · 2020年3月21日
专知会员服务
44+阅读 · 2020年3月6日
【Amazon】使用预先训练的Transformer模型进行数据增强
专知会员服务
56+阅读 · 2020年3月6日
模型压缩究竟在做什么?我们真的需要模型压缩么?
专知会员服务
27+阅读 · 2020年1月16日
基于知识蒸馏的BERT模型压缩
大数据文摘
18+阅读 · 2019年10月14日
Google:数据并行对神经网络训练用时的影响
入门 | 深度学习模型的简单优化技巧
机器之心
9+阅读 · 2018年6月10日
[学习] 这些深度学习网络调参技巧,你了解吗?
菜鸟的机器学习
7+阅读 · 2017年7月30日
The Evolved Transformer
Arxiv
5+阅读 · 2019年1月30日
Arxiv
7+阅读 · 2018年6月1日
Arxiv
3+阅读 · 2018年6月1日
VIP会员
Top
微信扫码咨询专知VIP会员