生成式人工智能的发展正在改变我们的行业和社会。像 ChatGPT 和 CoPilot 这样的语言模型可以码字和写代码,图像和视频生成模型可以根据简单的提示词生成引人注目的内容,音乐和语音模型可以轻松地合成任何人的声音,并创作出复杂的音乐。
世界各地都在讨论这项技术的威力和潜在价值。与此同时,人们也在谈论它可能带来的风险和威胁。
从对超级智能人工智能消灭人类的担忧,到对歧视的进一步自动化以及对仇恨和错误信息被进一步放大的担忧,人们正在努力评估和减轻这项新技术的潜在负面影响。
人们也越来越关注这些模型的能源使用和相应的碳排放。最近几个月又出现了一些关于碳排放的比较。
例如,在一篇文章中,作者戏谑训练GPT-3的碳排放等同于开车往返月球,另一篇文章则解释说训练人工智能模型比飞机长途飞行排放更多的碳。
最终的影响将取决于这项技术是如何被使用的,以及它在多大程度上融入了我们的生活。
我们很难准确预测它将如何影响我们的日常生活,但目前已经有一个很明显的例子,即搜索巨头将生成式人工智能集成到他们的产品中。
Wired 网站最近的一篇文章写道:
加拿大数据中心公司 QScale 联合创始人 Martin Bouchard 表示,基于他对微软和谷歌搜索发展计划的了解,在搜索过程中添加生成式人工智能需要让“每次搜索至少增加 4 到 5 倍的计算量”。
显然,生成式人工智能技术是不容忽视的。
生成式人工智能的碳排放是否被夸大了?
人们对生成式人工智能碳排放的担忧可能被放大了。我们要正确看待这个问题:全球整个科技行业的温室气体排放量占全球温室气体排放量的 1.8%至 3.9%,但其中只有一小部分是由人工智能[1]造成的。人工智能与航空或其他碳排放源的规模存在巨大差异:每天都会有许多汽车和飞机行驶数百万公里,但训练像 GPT 模型这样的现代人工智能模型的次数却相对较少。
诚然,我们尚不清楚究竟人类究竟训练了多少大型人工智能模型,这取决于我们如何定义“大型人工智能模型”。如果说大模型指的是 GPT-3 或更大规模的模型,那么可能只有不到 1000 个。我们来做一个简单的数学运算:
根据最近的一项估计,训练 GPT-3 排放了 500 吨的二氧化碳。Meta 的 LLaMA 模型估计排放了 173 吨。训练 1000 个 500 吨的模型将涉及约 50 万吨二氧化碳的总排放量。新模型可能会在一定程度上增加排放量,但几乎可以肯定的是,这 1000 个模型的碳排放被高估了。2019 年,商业航空业排放了约 9.2 亿吨二氧化碳[2], 几乎是大模型训练的 2000 倍,而且这是将一年的航空业碳排放与多年的大模型训练碳排放进行的比较。大模型训练的碳排放仍然不容忽视,但这种戏剧性的比较具有误导性。我们需要更细致入微的思考。
当然,这只是考虑到这些模型的训练。模型的服务和使用也需要能源,也会有相关的碳排放。一项分析表明, ChatGPT 运行一年可能会排放约 15000 吨二氧化碳。另一项分析则表明实际的排放量要要少得多,约为 1400 吨。尽管都不可忽略,但与航空业相比仍然微不足道。
碳排放透明度
但是,即使对人工智能碳排放的担忧有些言过其实,但仍然值得我们关注,特别是当生成式人工智能越来越多地融入到我们的现代生活中时。随着人工智能系统的不断演化和投用,我们需要关注它们对环境的影响。我们可以遵循许多成熟的实践,也有一些方法可以减少生成式人工智能的碳排放。
首先,透明度至关重要。我们建议提高透明度,便于监测与人工智能模型的训练和使用相关的碳排放。这将使那些部署这些模型的人以及最终用户能够根据人工智能的碳排放量做出明智的决定。同时,将人工智能相关的碳排放纳入温室气体清单和净零目标。这是人工智能透明度的一个组成部分。
举个这方面的例子,法国最近通过了一项法律,要求电信公司就其在可持续性方面的措施提供透明度报告。我们也可以出台类似的法律,例如要求包含人工智能系统的产品向其客户报告碳排放信息,并要求模型提供商将碳排放数据集成到其 API 中。
更高的透明度可以带来更强的动力来建立节能的生成式人工智能系统,我们有很多方法可以提高效率。在 InfoQ 最近发布的一篇文章中,微软高级软件工程师 Sara Bergman 呼吁人们注意人工智能系统的生命周期,并建议如何应用绿色软件基金会的工具和实践来提高人工智能系统的能源效率,包括如何选择服务器硬件和架构,以及选择低碳密集型电力的时段和地区。而生成式人工智能为提高效率提供了一些独有的可能性。
效率:能源使用与模型性能
正如碳计算:影响机器学习排放的因素调查中所探讨的那样,与训练或使用生成式人工智能模型相关的碳排放取决于许多因素,包括:
模型参数个数;
量化(数值精度);
模型架构;
使用 GPU 或其他硬件的效率;
电力的碳密度。
后两个因素与其他软件一样,人们已经对其进行了探讨,例如我们上面提到 InfoQ 的文章。因此,我们这里关注的是前三个因素,它们都涉及能源使用和模型性能之间的一些权衡。
效率的价值不仅体现在可持续性方面,更高效的模型可以在可用数据较少的情况下提供高效的表现性能、降低成本,并有在边缘设备上运行的可能性。
模型参数个数
OpenAI 论文Language Models are Few-Shot Learners中的一张图告诉我们,模型越大表现越好。
大型语言模型的涌现能力中也提到了同样的观点:
扩大语言模型已经被证明可以在广泛的下游任务上可预见地提高性能和样本效率。本文讨论的是一种不可预测的现象,我们称之为大型语言模型的涌现能力。如果一种能力在较小的模型中不存在,但在较大的模型中存在,我们称之为”涌现“。
我们发现,不仅更大的模型在处理给定的任务时表现得更好,而且实际上只有当模型变得更大时,才会涌现出新的能力。这种能力涌现的例子包括对大数的加减、毒性分类和数学单词问题的思维链技术。
但是训练和使用更大的模型需要更多的计算,因此需要更多的能源。因此,我们可以看到模型的能力和性能与其计算强度之间的权衡,进而可以看出与碳密度的关系。
量化
我们对模型的量化进行了大量研究。我们在模型计算中使用低精度数字来降低计算密度,尽管会牺牲一些精度。它允许模型在普通的硬件上运行,例如,在消费级笔记本电脑上。减少计算量和降低精度之间的权衡通常是非常有利的,对于特定能力水平的计算,量化模型非常节能。还有一些相关的技术,如“蒸馏(Distillation)”,它使用较大的模型来训练小模型,这个小模型可以很好地完成给定的任务。
蒸馏技术需要训练两个模型,因此很可能会增加与模型训练相关的碳排放,不过它会通过减少模型在使用中的碳排放来弥补。对已训练好的模型进行蒸馏也是一个很好的解决方案,我们甚至可以同时利用蒸馏和量化来为给定的任务创建更高效的模型。
模型架构
模型架构对计算密度有很大的影响,因此选择更简单的模型可能是减少人工智能系统碳排放最有效的方法。GPT 的 Transformer 非常强大,越是简单的架构就越可以有效地用于许多应用程序。像 ChatGPT 这样的模型被认为是“通用的”,这意味着这些模型可以被用于许多不同的应用程序。然而,对于相对固定的应用程序来说,就没有必要使用复杂的模型。为任务定制的模型可以使用更简单和更小的架构达到所需的性能,从而减少碳排放。另一种有用的方法是微调——论文Few-Shot Parameter-Efficient Fine-Tuning is Better and Cheaper than In-Context Learning讨论了微调如何“提供更好的准确性以及显著降低计算成本”。
将碳排放和精度指标放在一起
“准确性”一词很容易让我们陷入“越多越好”的认知。我们需要明白的是,对于特定的应用程序来说——“适可而止”才是最好的。在某些情况下,可能需要最新和最好的模型,但对于有些应用程序来说,老的、较小的模型(可能是量化的模型)可能就完全足够了。在某些情况下,系统做出正确的行为可能需要所有可能的输入,但有些应用程序可能具有更强的容错能力。在正确地了解了所需的应用程序和服务级别之后,可以通过比较各种模型的性能和碳排放量来选择合适的模型。也可能存在使用一组模型的情况。默认情况下将请求传给更简单、更小的模型,对于简单模型无法处理的任务,可以将其传给更复杂的模型。
为此,我们需要将碳排放指标集成到 DevOps(或 MLOps)流程中。一些工具,如codecarbon,可以很容易地跟踪和计算与模型训练和服务相关的碳排放。将这个工具或类似的工具集成到持续集成测试套件中,可以同时分析碳排放、计算精度和其他指标。例如,在试验模型架构时,测试用例可以立即报告精度和碳排放,从而更容易找到正确的架构并选择正确的参数,以满足精度要求,同时最大限度地减少碳排放。
同样需要注意的是,实验本身也会导致碳排放。在 MLOps 周期的实验阶段,使用不同的模型和架构进行实验,以确定最佳选择,我们可以综合考虑准确性、碳排放和潜在的其他指标。从长远来看,随着模型不断接受实时数据的训练和/或投用,可以减少碳排放,但过度的实验会浪费时间和精力。做出权衡将取决于许多因素,但当碳排放指标可用于实验以及模型的训练和服务时,我们的工作会变得更容易。
绿色提示词工程
说到与生成式模型的服务和使用相关的碳排放时,提示词工程就变得不可忽视了。对于大多数生成式人工智能模型(如 GPT)来说,使用的计算资源和碳排放取决于传给模型和由模型生成的文本节点的数量。
虽然具体的细节取决于实际的实现,但提示词通常会被“一次性全部”传给模型。这可能会使计算量看起来不依赖于提示词的长度,但实际上,自注意力机制特点决定了优化会抑制未使用的输入部分,这意味着更短的提示词可以节省计算量,从而节省能源。
对于输出,很明显,计算成本与生成的文本节点数量成正比,因为模型需要为生成的每个节点“再运行”一次。
这可以从访问 OpenAI GPT4 API 的费用中看出来。在撰写本文时,GPT4 基础模型的成本为 0.03 美元每千个提示词节点和 0.06 美元每千个样本节点。提示词长度和输出节点的长度都包含在价格中,说明了两者都会影响所需的计算量。
因此,更短的提示词和生成更短的输出将使用更少的计算量。人们为此提出了一种“绿色提示词工程”提议。MLOps 平台为此提供了一些实验性支持,这让在持续评估碳排放和系统性能影响的同时进行缩短提示词的实验变得相对容易。
除了提示词,人们还提出了一些有趣的方法,通过更复杂的使用方式来改进大模型的效率,如这篇论文所述。
结论
尽管人工智能的碳排放可能被夸大了,但仍然令人感到担忧,我们需要采取适当的措施来应对它们。提高透明度是支持有效决策和提高消费者意识的必要条件。此外,将碳排放指标集成到 MLOps 工作流中有助于在进行模型架构、规模、量化和绿色提示词工程时做出更明智的选择。本文的内容只是概述,只触及表面,对于那些真正想要做绿色生成式人工智能的人,可以关注最新的研究。
脚注
[1] "We’re getting a better idea of AI’s true carbon footprint" - by Melissa Heikkilä
[2] Carbon dioxide emissions from the commercial aviation industry worldwide in 2019, by operation
原文链接:
https://www.infoq.com/articles/carbon-emissions-generative-ai/
相关阅读:
AI 大模型背后的惊人数字:问 ChatGPT 5 个问题,耗水 500 毫升?训练一次 GPT-3,碳排放量相当于开车往返月球?
评论