前不久,微软和英伟达推出包含5300亿参数的语言模型MT-NLG,这是一种基于transformer的模型,被誉为「世界上最强,最大的语言生成模型」。
不过,这真的是一件值得欢欣鼓舞的事情吗?
大脑的深度学习研究人员估计,人类大脑平均包含860亿个神经元和100万亿个突触。但不是所有的都用于语言。有趣的是,GPT-4预计将有大约100万亿个参数。
两个「100万亿」。
这会是一个巧合吗?我们不禁思考,建立与人脑大小差不多的语言模型是否是一个长期可行的方法?
当然了,经过数百万年的进化,我们的大脑已经成为了一个非常了不起的设备,而深度学习模型才发展了几十年。诚然,我们的直觉告诉我们,有些东西不能够通过计算来衡量的。
是深度学习,还是「深度钱包」?在庞大的文本数据集上训练一个5300亿个参数模型,无疑需要庞大的基础设施。
事实上,微软和英伟达使用数百台DGX-A100的GPU服务器,每台售价高达19.9万美元,再加上网络设备、主机等成本,任何想要重复这个实验的人都必须花费大约1亿美元。
严谨地来看,哪些公司有业务例子可以证明在深度学习基础设备上花费1亿美元是合理的?或者1000万美元?如果设计出来,那这些模型是为谁而设计的呢?
GPU集群:散热、环保都成问题实际上,在GPU上训练深度学习模型是一项十分费力的事情。
据英伟达服务器参数表显示,每台英伟达 DGX A100服务器最高能耗为6.5千瓦。当然,数据中心(或者服务器)也至少需要同样多的散热设备。
除非你是史塔克家族的人,需要拯救临冬城,否则散热将成为一大难题。
而且,随着公众对气候和社会责任问题的意识增强,公司还需要考虑他们的碳足迹问题。
马萨诸塞大学2019年的一项研究「用GPU训练BERT,其碳足迹大致相当于进行一次横跨美国的飞行」。
而BERT-Large的参数数量更是高达3.4亿,训练起来的碳足迹究竟有多大?恐怕只是想想都害怕。
所以,我们真的应该为MT-NLG模型的5300亿个参数感到兴奋吗?。用这么多参数和算力换来的基准测试性能改进,值得付出这些成本、复杂度和碳足迹吗?
大力推广这些巨型模型,真的有助于公司和个人理解和拥抱机器学习吗?
而如果,我们把重点放在可操作性更高的技术上,就可以用来构建高质量的机器学习解决方案。比如下面这些技术:
使用预训练模型绝大多数情况下,并不需要定制模型体系结构。
一个好的起点是寻找那些已经为能为你解决问题的(比如,总结英语文本)预训练模型。
然后,快速尝试几个模型来预测数据。如果参数表明,某个参数良好,那么就完全可以了。
如果需要更准确的参数,那就尝试微调模型 (下面会有详细介绍)。
使用小模型
在评估模型时,应该尽量选择能够提供所需精度的最小模型。这样做预测速度更快,训练和推理所需要的硬件资源也更少。
算力昂贵,能省就省。
实际上,现在的机器学习模型越来越小,也早已不是什么新鲜事了。熟悉计算机视觉的人都会记得 2017年SqueezeNet 的问世,与 AlexNet 相比,SqueezeNet的规模缩小了98%,同时在精度表现上与AlexNet不相上下。
除了计算机视觉领域,NLP社区也在努力缩小模型的规模,其中大量使用了知识蒸馏等迁移学习技术。其中最出名的可能就是对谷歌BERT模型的改进型DistilBERT。
与原始 BERT 模型相比,DistilBERT保留了97%的语言理解能力,同时模型体积缩小了 40%,速度提高了60%。相同的方法已应用于其他模型,比如 Facebook 的 BART。
最近来自「Big Science」项目的最新模型也令人印象深刻。如下图所示,这些项目中的 T0 模型在许多任务上都优于 GPT-3的性能,但模型大小只有GPT-3的1/16。
微调模型
如果需要在一个高度专门化领域使用模型,大可不必从头开始训练模型,这时应该对模型进行微调,也就是说,仅在自己的数据集上训练几个时期。
实际上,微调模型也是迁移学习的一种方式,目的还是节约资源,能省就省!
使用迁移学习的好处不少,比如:
- 需要收集、存储、清理和注释的数据更少
- 实验和数据迭代的速度更快
- 获得产出所需的资源更少
换句话说就是:省时、省钱、省资源!
使用云基础设施
云计算企业知道如何构建高效的基础设施。研究表明,基于云的基础设施往往比替代方案能效更高、碳足迹更浅。Earth.org 表示,虽然云基础设施目前并不完美,但仍然比替代方案更节能,可以促进对环境有益的服务,推动经济增长。”
确实,在易用性、灵活性和「即用即付」方面,云当然有很多优势。如果实在负担不起自购 GPU,何不尝试在 Amazon SageMaker(AWS 的机器学习托管服务)上微调模型呢?
优化模型从编译器到虚拟机,软件工程师长期以来一直使用工具来自动优化硬件代码。
然而,和软件行业相比,机器学习社区仍在为这个问题苦苦挣扎,这是有原因的。最重要的是,对机器学习模型的进行优化是一项极其复杂的任务,其中涉及以下技术和条件:
- 硬件:大量面向加速训练任务(Graphcore、Habana)和推理任务(Google TPU、AWS Inferentia)的专用硬件。
- 剪枝:删除对预测结果影响很小或没有影响的模型参数。
- 融合:合并模型层(比如卷积和激活)。
- 量化:以较小的值存储模型参数(比如使用8位存储,而不是32位存储)
所幸,现在已经开始出现可用的自动化工具,如Optimum 开源库和 Infinity,这是一种容器化解决方案,延时低至1毫秒,但精度可以与Transformer相当。
另一个「摩尔定律」要来了吗?
在过去的几年里,大型语言模型的规模每年都以10倍的速度增长。看起来,另一个「摩尔定律」就要诞生了。
原来的摩尔定律,现在的命运如何?关于「摩尔定律行将终结」的话题,早几年就已经甚嚣尘上。
但有一点是确切无疑的,如果机器学习沿着「模型巨大化」的路走下去,路可能会越走越窄。收益递减、成本增加、复杂度增加,这些可以预见的问题,可能会在不远的未来,把机器学习行业逼进死胡同。
这就是人工智能未来的样子吗?
希望不是。与其追逐万亿参数的巨大模型,不如把更多精力放在构建解决现实世界问题的、实用且高效的解决更好么?