DateWhale简单学点大模型课程组队学习打卡task11--kk

2023-10-18 11:59

本文主要是介绍DateWhale简单学点大模型课程组队学习打卡task11--kk,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  费曼说:学习一件事情最好的方式是做它的老师,这也是写这篇博文的目的,写这篇博文,即便有其他原因,但更多的还是写给自己,话不多说,让我们开始进入大模型吧

  任务说明:任务说明

  基座课程:斯坦福大学大规模语言模型课程

  本次讲到的内容是大模型与环境,将从三个方面来论述大模型与环境(尤其是模型的碳排放与气候环境):大模型与环境影响之间的关联、如何精确衡量大模型带来的碳排放量(这不是一个简单可直接得出数据的问题)、提高对大模型环境影响的认识,提高认识与责任。同时,本次学习中所有的数据都是估计值,因为数据中心有权利不公开自己的信息。

12.1 引言

  当谈到大模型与环境的问题,我们第一时间都会感到有些惊讶:啊!大模型也与环境有着密切的关系吗?难道是在用大模型来预测全球气候变化的一个实例吗?或者是大模型对于环境有着一定的要求吗。结果不是的啊,  本次任务讲到的是大模型的排放对环境的影响,有些人可能会感到奇怪,大模型也能与碳的排放有关系吗?其实一开始,我也有这样的疑问,但在学习完本次的任务之后,我才得以了解到大模型(及数据中心)的训练使用确实会造成一定量的排放问题,进而对环境产生影响,如果你也怀着这样的疑问,就请快进入到我们的大模型与环境的课程中去吧!

本次课前的疑问:环境影响是指大模型训练的配置环境有关因素吗?

  课程总览:本次讲到的内容是大模型与环境,将从三个方面来论述大模型与环境(尤其是模型的碳排放与气候环境):大模型与环境影响之间的关联、如何精确衡量大模型带来的碳排放量(这不是一个简单可直接得出数据的问题)、提高对大模型环境影响的认识,提高认识与责任这几个方面来论述问题

  首先要学习的内容是对大模型的生命周期的评估。

12.2 生命周期评估

  本节主要讨论了语言模型和人工智能对环境的影响。从哲学角度来看,现有研究主要关注人工智能和机器学习在温室气体排放方面的影响,但更重要的是采用系统性方法来思考其对环境的整体影响,包括排放和水足迹等方面。也就是说,我们不光对于大模型训练产生的排放做出定量的估计,还需要对大模型从设备到IT全周期的排放及对环境产生的影响进行衡量,但是,这是困难的。

全过程排放计算示意图

  1.从生命周期评估的角度来说:ISO 14040和14044提供了一个框架,可以从系统角度考虑环境影响。需要避免解决一个问题而产生多个新问题的情况,这在问题解决方案中经常被忽视。

  2.在考虑IT设备的生命周期时,需要关注以下几个方面:生产、使用和寿命终止。生产阶段包括原材料提取、制造和设备运输过程。使用阶段涉及设备的实际能耗。寿命终止阶段涉及设备的拆除、回收或处置。

 3. 在生命周期中,需要注意一些事项。例如,对于GPU/TPU的生命周期评估还没有进行研究。在生产阶段,法国的数据中心排放的40%源于生产阶段。建立数据中心有多个目的,需要进行信用分配来确定大型语言模型所占份额。也就是说,需要对碳排放进行权重的衡量。

数据中心能耗占比

  4. 在使用阶段,环境影响主要取决于能源的碳强度,即使用煤炭还是水电等能源。在寿命终止阶段,通常缺乏良好的记录,80%的电子设备未被正式回收。

  5.特别是在使用阶段,数据的获取、生成和存储,以及大语言模型的训练需要考虑。这包括实验和超参数调整。这些是一次性成本,直到需要再次更新模型。在推理阶段,模型在生产环境中运行。通常部署的是从大模型中蒸馏出来的小得多的模型。

  如BERT会使用特定的分类头的图示

  6.从环境影响的角度来看,语言模型和人工智能对温室气体排放和水足迹产生影响。温室气体排放导致气候变化,而水足迹在某些地区是稀缺资源。数据中心使用水进行冷却,而发电是第二大用水需求,处理水和废水需要能源。释放到环境中的化学物质对人类有害,可能导致癌症等疾病。芯片制造产生有毒废料,而非生物资源也会枯竭。

  7.此外,还存在一些二阶效应,如更高的效率创造更多需求、环境变化加剧和芯片短缺导致汽车制造业停工等问题。

  综上所述,语言模型和人工智能对环境有着广泛的影响,需要综合考虑其生命周期和环境影响,以采取可持续的措施来减少负面影响。

   12.2 气候变化

  1.概述:虽然考虑整个生命周期很重要,但是人们实际关注的较多的还是全球变暖及碳排放的问题。下面是全球平均气温的变化图,可以看到,全球气温自1900年开始就开始显著的呈上升的趋势。自1900年以来,地球的平均表面温度增加了相当于1.19℃,别看这小小的一度,对于蛋白质和碳水化合物组成的我们来说,却是巨大的变化。

  许多的生化反应的最佳温度都是容错率极小的,全球变暖,不仅仅是直观的感受,还有与之相关的一系列的连锁反应。另外,全球变暖还会导致一些不正常的气候效应,如厄尔尼诺效应和拉尼娜效应,还有其他的一些气象灾害的出现。

气象灾害:厄尔尼诺现象原理图

  同时,全球变暖也会导致北极南极淡水冰层的融化,这给生活在南北极的陆生动物来说无疑是一场挑战个,同时,残冰的融化也会导致海平面的上升,危害海边的生态系统。

因全球变暖失去家园的北极熊们

  2.原因分析:而导致这一切的原因,有很大程度斗鱼温室气体的排放有关:

  • 温室气体排放的原因是人类活动,包括燃烧化石燃料(煤、石油、天然气)用于发电、制造和交通,以及农业活动(种植作物和畜牧业)和森林砍伐。
  • 温室气体排放的单位是碳排放量(以二氧化碳当量计算),不同的温室气体具有不同的全球变暖潜势(GWP),其中二氧化碳的值为1,甲烷为25,一氧化二氮为300。

3.应对全球变暖的措施:

  面对因温室气体排放导致的全球变暖导致的气候变化,我们可以做点什么?

  总结起来,以下是关于减少语言模型和人工智能对环境影响的具体措施:

  • 减少能源使用和温室气体排放的方法包括降低碳强度(每千瓦时能源排放的碳量),增加可再生能源的比例,改善能源效率和推动能源转型。
  • 数据中心的能源消耗是一个重要问题,通过优化数据中心的能源管理和使用高效设备可以减少对电力的需求,减少温室气体排放。
  • 在设计语言模型和人工智能应用程序时,要考虑其能源效率和环境影响,优化算法和功能,减少计算资源和能源的消耗。
  • 合作伙伴关系和共享最佳实践对于推动可持续发展和环境保护也非常重要。

我们对于应对气候变暖要走的路,还有很远。

12.3 估算训练模型的排放量

  为了计算训练模型所需的能源使用和温室气体排放,研究人员已经提出了一些方法和工具。其中两个重要的参考文献是ML CO2 Impact Calculator和Strubell等人的研究。

12.3.1 ML CO2 Impact Calculator

  是由Lacoste等人于2019年提出的工具,它提供了一种简单的方法来估计训练模型的排放量,该方法基于硬件、训练时间、供应商和地区等因素。

  下面是操作实例:如下,我们输入用GTX 750 的显卡,在谷歌东亚地区上进行的训练,可以看到计算得出的碳排放量为0.14公斤的二氧化碳,需要一颗树苗将近6天的固碳时间,所以,我们不要随便的使用计算资源,这会不知不觉的进行一定量的二氧化碳排放。

12.3.2  Strubell et al.,2018

 Strubell等人在2018年发表的研究是第一篇真正引起自然语言处理(NLP)社区对环境影响认识的论文。他们提出了一种计算模型训练过程中能源消耗的方法,从而估计温室气体排放。

在这两种方法中,需要考虑的主要因素包括:

  • CPU的平均功率(W):中央处理器的能耗。
  • GPU的平均功率(W):图形处理器的能耗。
  • DRAM的平均功率(W):动态随机存取存储器的能耗。
  • PUE:用电效率:提供给数据中心的总功率/IT设备消耗的功率。
  • 供应商和地区:计算能源产生的碳排放量时,考虑供应商的能源来源和地区的碳强度。
  • 总公式如下:

  根据这些因素,可以计算出训练模型的能源消耗(以千瓦时为单位),进而估计温室气体排放量。这些计算方法可以帮助研究人员和开发者更好地理解和评估训练模型对环境的影响,从而采取措施减少其环境足迹。

  以下是一些计算出的大模型的碳排放实例:

  •   BERT-base(110M):1438 lbs CO2eq:

       在64个V100的GPU上训练79.2小时

  • 神经结构搜索( 213M 参数)以获得 Evolved Transformer So etal. (2019): 626155 lbs CO2eq
      基模型在⼀个 TPUv2 上训练需要 10 个小时( 300K 步) 训练⼀共需要 32623小 时( 979M 步)
  • 1名乘客乘坐从纽约到旧金山的往返航班:1984 lbs CO2eq 0.9吨)
  • 汽车生命周期:126,000 lbs CO2eq

对比来看,一个BERT的训练花费大约相当于一名乘客坐航班从旧金山往返到newyork;而一个Transformer 的训练花费大约四辆汽车从生产到回收或丢弃处理的碳排放量。

  12.3.3 Patterson et al., 2021

  另一种计算方法

  研究人员还得出了这样的结论:80%ML⼯作负载是推理,而不是训练

  下面是估测图:

针对训练过程,不同模型的估计能源消耗和排放量如下:

  • T5:86兆瓦时,47吨CO2eq。
  • GShard(用于机器翻译的MOE模型):24兆瓦时,4.3吨CO2eq。
  • Switch Transformer:179兆瓦时,59吨CO2eq。
  • GPT3:1287兆瓦时,552吨CO2eq。

对于Strubell等人(2019年)关于神经结构搜索的估计值,提供了反驳:

  • 对于搜索小任务,其估计值高估了18.7倍。
  • 神经结构搜索只需要进行一次,之后每个人都可以使用Evolved Transformer模型。
  • 排放量被高估了88倍。

  关于测量能源消耗和排放量,建议更倾向于实际测量,而不仅仅依赖在线计算工具。Google在训练其最大的四个模型时只使用了12.2t千瓦时,相当于比特币挖矿开销的1/10。这些要点提供了对能源消耗和排放量的初步认识,并强调了进一步研究和实际测量的重要性。

12.4 推荐的 Python 包实践内容
由于这些碳统计的包基本都是支持intel的CPU和英伟达显卡,这些实验在线上谷歌的colar上进行测试:
  可见这里仍然存在着一些问题,由于身体原因(发烧),今天的笔记只可以进行到这里了,有后续会对内容进行更新。
Environment Impact Tracker
Carbon Tracker
CodeCarbon
注意到这几种包的介绍都十分相近,想必它们是并行或迭代的产品。

12.5 总体总结

  环境影响是一个重要的议题,但从目前来看,各方很难给出一个清晰的定论,因为所有事物都相互关联,因而生命周期内的碳统计工作十分困难。然而,我们需要真正关注全局。

  尽管大型语言模型目前还很少,但它们正在快速增长。大型语言模型的通用性提供了成本节省的潜力("一次性训练"并适用于多个任务)。然而,它们的成本要高得多,可能需要重新训练。我们需要权衡这些因素。

  为了缓解环境影响,可以尝试在使用清洁能源的数据中心训练模型。然而,碳抵消的效果因活动而异(例如,种植森林只能产生单一种植)。还可以通过采用更高效的模型架构、训练程序和硬件来降低影响,但需要注意反弹效应。

  在论文和报告中报告排放量可以提高人们的认识。想象一下,如果每篇论文都能报告排放量,将会产生怎样的影响。同时,需要调整激励机制,目前人们关注的是准确性,但碳排放也是非常重要的因素。

  综上所述,我们需要在关注模型性能的同时,考虑环境影响,并采取适当措施来减轻这些影响。

这篇关于DateWhale简单学点大模型课程组队学习打卡task11--kk的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/232432

相关文章

GO语言实现串口简单通讯

《GO语言实现串口简单通讯》本文分享了使用Go语言进行串口通讯的实践过程,详细介绍了串口配置、数据发送与接收的代码实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录背景串口通讯代码代码块分解解析完整代码运行结果背景最近再学习 go 语言,在某宝用5块钱买了个

SpringBoot整合Apache Spark实现一个简单的数据分析功能

《SpringBoot整合ApacheSpark实现一个简单的数据分析功能》ApacheSpark是一个开源的大数据处理框架,它提供了丰富的功能和API,用于分布式数据处理、数据分析和机器学习等任务... 目录第一步、添加android依赖第二步、编写配置类第三步、编写控制类启动项目并测试总结ApacheS

C++简单日志系统实现代码示例

《C++简单日志系统实现代码示例》日志系统是成熟软件中的一个重要组成部分,其记录软件的使用和运行行为,方便事后进行故障分析、数据统计等,:本文主要介绍C++简单日志系统实现的相关资料,文中通过代码... 目录前言Util.hppLevel.hppLogMsg.hppFormat.hppSink.hppBuf

Java领域模型示例详解

《Java领域模型示例详解》本文介绍了Java领域模型(POJO/Entity/VO/DTO/BO)的定义、用途和区别,强调了它们在不同场景下的角色和使用场景,文章还通过一个流程示例展示了各模型如何协... 目录Java领域模型(POJO / Entity / VO/ DTO / BO)一、为什么需要领域模

深入理解Redis线程模型的原理及使用

《深入理解Redis线程模型的原理及使用》Redis的线程模型整体还是多线程的,只是后台执行指令的核心线程是单线程的,整个线程模型可以理解为还是以单线程为主,基于这种单线程为主的线程模型,不同客户端的... 目录1 Redis是单线程www.chinasem.cn还是多线程2 Redis如何保证指令原子性2.

Linux五种IO模型的使用解读

《Linux五种IO模型的使用解读》文章系统解析了Linux的五种IO模型(阻塞、非阻塞、IO复用、信号驱动、异步),重点区分同步与异步IO的本质差异,强调同步由用户发起,异步由内核触发,通过对比各模... 目录1.IO模型简介2.五种IO模型2.1 IO模型分析方法2.2 阻塞IO2.3 非阻塞IO2.4

Python实现简单封装网络请求的示例详解

《Python实现简单封装网络请求的示例详解》这篇文章主要为大家详细介绍了Python实现简单封装网络请求的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装依赖核心功能说明1. 类与方法概览2.NetHelper类初始化参数3.ApiResponse类属性与方法使用实

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

python连接sqlite3简单用法完整例子

《python连接sqlite3简单用法完整例子》SQLite3是一个内置的Python模块,可以通过Python的标准库轻松地使用,无需进行额外安装和配置,:本文主要介绍python连接sqli... 目录1. 连接到数据库2. 创建游标对象3. 创建表4. 插入数据5. 查询数据6. 更新数据7. 删除