yoohsummer 2020-06-23
本月早些时候,OpenAI宣布已经建成史上最大的人工智能模型,该模型规模惊人,被命名为“GPT-3”,是一项令人印象深刻的技术成就。然而,它却凸显了人工智能领域的一个隐患。
现代人工智能模型需要消耗大量能量,并且这些能量需求正以惊人的速度增长。在深度学习时代,产生一流的人工智能模型所需的计算资源,平均每3.4个月翻一番;这意味着,能量需求在2012年至2018年之间增加了300,000倍。而“GPT-3”只是这种指数级增长轨迹上的一个最新节点。
在今天,人工智能的碳足迹是有意义的,而如果这个行业趋势继续下去,情况将很快变得糟糕得多。
GPT-3很好地说明了这种现象。该模型包含多达1750亿个参数。如何理解这个数字呢?不妨参考一下它的前身模型GPT-2,它在去年发布时被认为是最先进的,GPT-2只有15亿个参数。去年GPT-2的训练耗费了数十千兆次/天,这个计算输入的数量已经非常庞大了,而GPT-3需要的数量可能是GPT-2的好几千倍。
依靠越来越大的模型,来推动人工智能技术进步,这种做法的问题在于,构建和部署这些模型需要大量的能源消耗,并因此产生碳排放。
在2019年一项被广泛讨论的研究《Energy and Policy Considerations for Deep Learning in NLP(NLP深度学习的能源和政策考虑)》中,由Emma Strubell领导的一组研究人员,评估了训练单个深度学习模型的能量消耗,这个数值可能高达626,155磅的二氧化碳排放量——约相当于五辆汽车在整个生命周期内的碳足迹。相比之下,一个普通的美国人每年产生的二氧化碳排放量大约是36,156磅。
可以肯定的是,这项评估针对的是能耗特别高的模型。如今,训练一个普通规模的机器学习模型产生的碳排放量应该远远小于626,155磅。
同时值得注意的是,在进行这项分析时,GPT-2是当时可供研究的、最大的模型,研究人员将其视为模型大小的上限。可仅仅一年之后,GPT-2看上去很袖珍了,比它的后继产品小了一百倍。
那么,机器学习模型到底为什么会需要消耗这么多的能量呢?
第一个原因是,用于训练这些模型的数据集的大小在不断地膨胀。在2018年,BERT模型在使用了30亿个单词的数据集进行训练之后,实现了同类中最佳的NLP(自然语言处理)性能。XLNet使用了320亿个单词的数据集进行训练,并且在性能上超过了BERT。不久之后,GPT-2接受了400亿个单词的数据集的训练。而让之前所有此类工作都相形见绌的是,GPT-3将使用一个包含5,000亿个单词的加权数据集进行训练。
在训练过程中,神经网络会针对输入的每条数据,执行一整套冗长的数学运算(既包括正向传播,也包括反向传播),并且以复杂的方式更新其参数。因此,更大的数据集,就会转化为飞速增长的计算和能源需求。
导致人工智能巨大能量消耗的另一个原因是,开发模型所需要进行的大量实验和调校。今天的机器学习,在很大程度上仍然是反复试错的练习。从业人员通常会在训练过程中针对给定模型构建数百个不同的版本,在确定最佳设计之前,他们会尝试不同的神经体系架构和超参数。
上述提到的那篇2019年研究论文中,描述了一个案例研究。研究人员们选择了一个平均规模的模型——比GPT-3之类的博人眼球的庞然大物要小得多,并且不仅检查了训练最终版本所需的能量,还测量了为了生产这个最终版本进行的各种测试的总体能量消耗。
在六个月的过程之中,他们培训了4,789个不同版本的模型,总共需要花费9,998天的GPU时间(超过27年)。考虑到所有这些因素,这些研究人员估计,构建该模型总计要产生78,000磅的二氧化碳排放量,超过一个普通美国成年人两年的碳排放量。
到此为止,这次讨论还仅仅涉及了机器学习模型的训练环节。但是训练只是一个模型生命周期的起点。模型训练完成之后,就会在现实世界中得到应用。
部署人工智能模型,让它们在现实环境中采取行动——这个过程被称为推理,该过程的能耗比训练环节更高。实际上,英伟达公司(Nvidia)估计,神经网络80%至90%的能量消耗出现在推理环节,而不是训练环节。
例如,想想自动驾驶汽车中的人工智能。首先必须要对神经网络进行培训,让它学会驾驶。在训练完成并部署到自动驾驶汽车上之后,模型会不断地进行推理,才能在环境中行驶,只要汽车还在使用之中,这个过程就会日复一日地持续下去。
毋庸置疑,模型具有的参数越多,对这种持续不断的推理的能量需求就越高。
既然提到了人工智能能量消耗和碳排放之间的关系。那么思考这种关系的最好方式是什么呢?
EPA数据显示,在美国,一千瓦时的能耗平均会产生0.954磅的二氧化碳排放量。这个平均值,反应了美国能源网中不同能量来源(例如可再生能源、核能、天然气、煤炭)的相对比例和碳足迹的变化。
上述提到的那篇2019年研究分析,采用了全美国的平均值,以便根据各种人工智能模型的能量需求来计算碳排放量。这是一个比较合理的假设。例如,亚马逊网络服务公司(Amazon Web Services)的电力来源组合,大致反应了美国整体的电力来源,而且绝大多数的人工智能模型都是在云端进行训练的。
当然,如果使用主要由可再生能源产生的电力训练人工智能模型,那么碳足迹也会相应地降低。例如,与AWS相比,谷歌云平台(Google Cloud Platform)使用的电力结构在可再生能源方面的比重更大。(上述那篇2019年研究论文显示,两家公司的这一比例分别为56%和17%。)
或者,举另一个例子,如果在太平洋西北部的硬件上训练一个模型,所产生的碳排放量会低于其他国家,这是因为这一地区拥有丰富的清洁水源。而在这方面,每一家云服务提供商都在鼓吹自己在碳补偿方面的投资。
总体而言,使用美国总体能源平均值,应该可以大致准确地估算出人工智能模型的碳足迹。
通过不断变大的模型,追求人工智能进步的做法,凸显了模型规模和模型性能之间的关系。下列数据显示得很清楚:模型规模的增加,最终会导致性能回报的急剧下降。
比如,ResNet是2015年发布的一个著名计算机视觉模型。该模型的改进版本称为ResNeXt,于2017年问世。与ResNet相比,ResNeXt所需的计算资源要多35%(以总浮点运算来衡量),准确度却只提高了0.5%。
艾伦人工智能研究所(Allen AI Institute)2019年的一篇论文提供了详细的数据,记录了不同任务、模型和人工智能子领域中的效益递减问题。与GPT-2相比,最新发布的大型模型GPT-3出现了明显的效益递减迹象。
如果人工智能社区仍然继续沿着当前的研究方向前进,就会不断的构建越来越大的模型,耗费越来越多的能源,以实现越来越小的性能提升。任何成本/收益分析都会变得越来越比例失调。
既然存在效益递减的问题,又是什么在推动着模型不断地朝着越来越大的方向发展呢?一个主要的原因是,当前人工智能社区对获取“最好的”性能基准测试结果非常关注。构建一个新模型,能够在性能基准测试中创下新的准确性记录,即便成绩提升仅仅是微不足道的一点,也可以赢得研究人员的认可和好评。
正如加州大学洛杉矶分校(UCLA)的教授Guy Van den Broeck所说:“我认为对这种情况的一个最好的比喻,就是某个富油的国家能够建造一座很高的摩天大楼。当然,建造这样的东西需要花很多钱,还有很多的工程工作。你也确实可以在建造这座高楼的时候,获得‘最先进的技术’。但是……这件事在本质上并没有什么科学上的进步。”
在当前的人工智能研究领域,占据主导地位的“越大越好”思路,可能会在未来几年对环境造成重大的破坏。需要在这个领域内进行思虑周详但又大胆的变革,让人工智能技术的发展变得更加可持续,并更具生产力。
首先,每一位人工智能从业人员都应该考虑,如何在短期内“快速制胜”,以减轻其研究对碳足迹的影响。
重要的第一步是,提高这个问题的透明度和度量程度。当人工智能研究人员们发布新模型的结果时,除了性能和准确性指标之外,他们还应该公布在模型开发中消耗了多少能量的数据。
经过深入彻底的分析,艾伦人工智能研究所的团队建议,将「浮点运算」作为研究人员追踪的最通用、也是最有效的能效度量标准。另一组研究人员创建了一个机器学习排放计算器,从业人员可以使用这个计算器来评估他们构建的模型的碳足迹(根据硬件、云服务提供商和地理区域等因素)。
遵循这些思路,综合考虑能源成本和性能收益的做法,将成为研究人员们在训练模型时的最佳实践。明确地量化这种关系,将促使研究人员在面对效益递减问题时,对资源分配做出更明智、更平衡的决定。
随着可持续人工智能实践的扩散,希望人工智能社区能够在评估人工智能研究的时候,开始考虑这些效率指标,就像今天我们对传统性能指标(例如准确性)采取的做法一样:在会议论文提交、演讲、学术角色中考虑它们。
还有一些已经相对比较成熟的方法,能够帮助人工智能技术在近期减少碳足迹:使用更有效的超参数搜索方法、减少训练过程中不必要的实验次数、使用更高能效的硬件等。
但是,单靠这些补救措施并不足以解决这个问题。人工智能领域需要更根本的长期转变。
我们需要退后一步,并且承认,仅仅依靠建立越来越大的神经网络并非通往通用智能的正确途径。我们需要推动自己去发现更优雅、更有效的方法,来对机器中的智能进行建模。我们正在持续不断地同气候变化进行斗争,这是一场关乎地球未来的战争。
在此引用人工智能传奇人物、深度学习教父Geoff Hinton的话:“未来取决于那些‘对我所说的一切’都深表怀疑的研究生……我的观点是将其全部抛弃并重新开始。”
人工智能社区必须开始致力于开创人工智能的新范例,这些范例应该既不需要指数级增长的数据集,也不需要庞大的能源消耗。小样本学习(few-shot learning)等新兴研究领域,都是有前途的途径。