来源丨Forbes

作者丨Rob Toews

编译丨科技行者

和当今的深度学习方法相比,我们大脑的效率高得不可思议。它们只有几磅重,大概只需要20瓦左右的能量消耗,这个能耗只能够给昏暗的灯泡供电。然而,它们代表了已知宇宙中最强大的智力形式。

本月早些时候,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)等新兴研究领域,都是有前途的途径。

人类的大脑——智力的原始来源提供了重要的启发。和当今的深度学习方法相比,我们大脑的效率高得不可思议。它们只有几磅重,大概只需要20瓦左右的能量消耗,这个能耗只能够给昏暗的灯泡供电。然而,它们代表了已知宇宙中最强大的智力形式。

人工智能研究人员Siva Reddy指出:“人类的大脑用很少的能量消耗,就能够完成令人惊叹的事情。问题是我们如何建造出这样的机器来。”

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

深度学习模型并非“越大越好”,它可能引起气候变化问题相关推荐

  1. 在深度学习模型的优化上,梯度下降并非唯一的选择

    如果你是一名机器学习从业者,一定不会对基于梯度下降的优化方法感到陌生.对于很多人来说,有了 SGD,Adam,Admm 等算法的开源实现,似乎自己并不用再过多关注优化求解的细节.然而在模型的优化上,梯 ...

  2. 深度学习模型压缩与加速综述!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:Pikachu5808,编辑:极市平台 来源丨https://zh ...

  3. 用Windows电脑训练深度学习模型?超详细配置教程来了

    选自towardsdatascience 作者:Ahinand 机器之心编译 编辑:Panda 虽然大多数深度学习模型都是在 Linux 系统上训练的,但 Windows 也是一个非常重要的系统,也可 ...

  4. 深度学习模型压缩与加速综述

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 导读 本文详细介绍了4种主流的压缩与加速技术:结构优化.剪枝.量化 ...

  5. 如何在Keras中检查深度学习模型(翻译)

    本文翻译自:How to Check-Point Deep Learning Models in Keras 深度学习模型可能需要数小时,数天甚至数周才能进行训练. 如果意外停止运行,则可能会丢失大量 ...

  6. 数据不够怎么训练深度学习模型?不妨试试迁移学习 ——重用神经网络的结构2...

    数据不够怎么训练深度学习模型?不妨试试迁移学习 本质就是这个图!pretrained model就是你截取的部分神经网络模型(迁移学习),而nanonet就是你自己加入的网络层. 随着深度学习技术在机 ...

  7. 人工神经网络理论、设计及应用_TensorFlow深度学习应用实践:教你如何掌握深度学习模型及应用...

    前言 通过TensorFlow图像处理,全面掌握深度学习模型及应用. 全面深入讲解反馈神经网络和卷积神经网络理论体系. 结合深度学习实际案例的实现,掌握TensorFlow程序设计方法和技巧. 着重深 ...

  8. 【AI初识境】深度学习模型评估,从图像分类到生成模型

    文章首发于微信公众号<有三AI> [AI初识境]深度学习模型评估,从图像分类到生成模型 这是<AI初识境>第10篇,这次我们说说深度学习模型常用的评价指标.所谓初识,就是对相关 ...

  9. 【AI初识境】如何增加深度学习模型的泛化能力​​​​​​​

    文章首发于微信公众号<有三AI> [AI初识境]如何增加深度学习模型的泛化能力 这是专栏<AI初识境>的第9篇文章.所谓初识,就是对相关技术有基本了解,掌握了基本的使用方法. ...

  10. 【AI初识境】如何增加深度学习模型的泛化能力

    这是专栏<AI初识境>的第9篇文章.所谓初识,就是对相关技术有基本了解,掌握了基本的使用方法. 今天来说说深度学习中的generalization问题,也就是泛化和正则化有关的内容. 作者 ...

最新文章

  1. undertale人物_【undertale】传说之下精美人物图包 (Frisk篇)
  2. ORACLE如何使用DBMS_METADATA.GET_DDL获取DDL语句
  3. PHP的各种参数设置ini_set:内存 错误等级 session
  4. Google Map 中混淆和压缩代码的简单示例
  5. Hostiko v54.0 – WordPress WHMCS-云服务器VPS主机销售模板源码
  6. IE9以下不支持placeholder属性
  7. Selenium爬虫 -- 用户动态数据爬取
  8. Tracepro中up vector和normal vector的定义2
  9. linux中u盘驱动程序编写,Linux下的硬件驱动——USB设备(下)(驱动开发部分)...
  10. Meta-Tracker(ECCV 2018)视频目标跟踪源码运行笔记——Testing模式
  11. mac/macbook触摸板/鼠标/键盘失灵
  12. Elasticsearch 多字段查询 best_fields、most_fields、cross_fields,傻傻分不清楚?
  13. oppo计算机锁屏快捷键,电脑如何快速锁屏
  14. 中文分词之维特比算法详解
  15. 使用python Tqdm 进度条库让你的python进度可视化
  16. eclipse一些有用的技巧总结
  17. 兔子与兔子 字符串hash
  18. MATLAB的疲劳检测系统
  19. Git 学习进展 (补发)
  20. 使用Libxml2操作XML文档

热门文章

  1. javascript 定义对象、方法和属性的使用方法(prototype)
  2. 电机控制进阶3——PID串级控制(附全套代码下载)
  3. Java八股文(高阶)背诵版
  4. 微信小程序选项卡页面切换
  5. cadvisor 离线安装
  6. 2021信息安全工程师学习笔记(二十四)
  7. 计算机应用基础 电子科技大学出版社,大学计算机基础课本答案(电子科技大学出版社)...
  8. 服务器搭建说明以及接口调用文档
  9. 有关微信小程序用户登录界面跳转问题
  10. 详谈概率图模型(PGM)