前不久,微软和英伟达推出了包含5300亿参数的语言模型MT-NLG。这是一个基于Transformer的模型,号称“世界上最大最强的生成语言模型”。毫无疑问,这是机器学习工程令人印象深刻的展示。然而,我们应该为这种大型模型趋势感到兴奋吗?01.大脑深度学习研究人员估计,人脑平均包含860亿个神经元和100万亿个突触。可以肯定的是,并非所有这些都用在语言中。有趣的是,GPT-4预计会有大约100万亿个参数……虽然这个比较很粗略,但构建一个关于人脑大小的语言模型是一个长期可行的方法,难道不应该怀疑吗?当然,我们的大脑是数百万年进化的奇迹,而深度学习模型只有几十年的历史。尽管如此,直觉应该告诉我们,有些事情是无法计算的。02.深度学习还是深度钱包?在庞大的文本数据集上训练一个5300亿参数的模型无疑需要庞大的基础设施。事实上,Microsoft和Nvidia使用了数百台DGX-A100GPU服务器。每台售价高达199,000美元,加上网络设备、大型机等的成本,任何试图复制该实验的人都将不得不花费近1亿美元。哪些公司有商业案例证明在深度学习基础设施上花费1亿美元是合理的?甚至1000万美元?稀有的。那么这些模型到底是为谁准备的呢?03.GPU集群尽管他们的工程才华横溢,但在GPU上训练深度学习模型是一项艰巨的任务。根据服务器参数表,每台DGX服务器最多可消耗6.5千瓦的功率。当然,数据中心(或服务器)至少需要同样多的冷却能力。除非你是史塔克人并且需要拯救临冬城,否则冷却是另一个必须处理的问题。此外,随着公众对气候和社会责任问题的意识不断增强,企业也需要考虑其碳足迹。马萨诸塞大学2019年的一项研究“在GPU上训练BERT大致相当于一次跨美飞行”。而BERT-Large有3.4亿个参数,训练的碳足迹有多大?连想想都觉得可怕。构建和推广这些大规模模型是否有助于公司和个人理解和使用机器学习?相反,应专注于可用于构建高质量机器学习解决方案的更具可操作性的技术。04.使用预训练模型大多数情况下,不需要自定义模型架构。一个好的起点是寻找已经针对您要解决的任务进行预训练的模型(例如,总结英文文本)。然后,快速尝试一些模型来预测您自己的数据。如果参数表明某些东西是好的,那么你就完成了!如果需要更高的精度,则应考虑对模型进行微调。05.使用更小的模型评估模型时,应该选择能够提供所需精度的最小模型。它将预测得更快,并且需要更少的硬件资源来进行训练和推理。这也不是什么新鲜事。熟悉计算机视觉的人会记得,当SqueezeNet在2017年问世时,与AlexNet相比,它在模型尺寸上缩小了50倍,同时达到或超过了其精度。自然语言处理社区也在致力于缩小规模,使用知识蒸馏等迁移学习技术。DistilBERT可能是其最著名的成就。与原始BERT模型相比,它保留了97%的语言理解能力,同时体积缩小了40%,速度提高了60%。同样的方法也适用于其他模型,例如Facebook的BART。BigScience项目的最新模型也令人印象深刻。如下图所示,他们的T0模型在很多任务上都优于GPT-3,同时将模型大小缩小了16倍。06.微调模型如果需要对模型进行特化,则不需要训练从头开始的模型。相反,它应该被微调,也就是说,只在它自己的数据上训练几个时期。使用迁移学习的好处,例如:收集、存储、清理和注释的数据更少实验和数据迭代更快输出所需的资源更少换句话说:节省时间、节省资金、节省硬件资源、拯救世界!07.使用基于云的基础设施不管你喜不喜欢,云计算公司知道如何构建高效的基础设施。研究表明,基于云的基础设施比替代方案更节能、更节能。Earth.org表示,虽然云基础设施并不完美,但它仍然比替代方案更节能,并促进了对环境有益的服务和经济增长。“在易用性、灵活性和按需付费等方面,云肯定有很多优势。08.优化模型从编译器到虚拟机,软件工程师长期以来一直使用工具来自动优化硬件代码。但是,机器学习社区仍在为这个话题苦苦挣扎,这是有充分理由的。优化模型的大小和速度是一项极其复杂的任务,涉及以下技术:硬件:大量用于加速训练任务(Graphcore、Habana)和推理任务(GoogleTPU、AWSInferentia)的专用硬件。修剪:删除对预测结果影响很小或没有影响的模型参数。Fusion:结合模型层(例如卷积和激活)。量化:以较小的值存储模型参数(例如使用8位存储而不是32位存储)。幸运的是,自动化工具已经开始出现,例如Optimum开源库和Infinity,它是一种容器化解决方案,可以提供Transformers精度和1ms延迟。09.结论在过去的几年里,大型语言模型的规模每年以10倍的速度增长。这看起来像是另一个摩尔定律。如果机器学习沿着模型巨型化的道路走下去,它将导致收益递减、成本增加和复杂性增加。这就是人工智能的未来吗?与其追逐万亿参数的模型,不如将更多的经验投入到为现实世界的问题构建实用高效的解决方案上不是更好吗?
