AI 基础
使用 CodeCarbon 测量并降低 AI 的碳足迹
AI 工作负载会消耗电力,而该电力所产生的温室气体排放取决于计算运行的地点和时间。CodeCarbon 是一款开源工具,通过将工作负载的能耗估算与电力碳强度相结合,估算运营期间的排放。
当估算的边界和不确定性明确时,它才有价值。该估算并未自动包括硬件制造、数据中心建设、网络、存储或模型部署后的下游影响。
关键要点
- 能耗与碳排放相关但并不相同;电网碳强度因地区和时间而异。
- CodeCarbon 估算 CPU、GPU 和内存的能耗,然后使用与位置相关的排放因子。
- 硬件利用率、运行时长、数据中心开销以及测量来源都会影响准确性。
- 实际目标是实现可比的报告与减排,而非虚假的精确度。

能源、功率与碳强度
功率是能量使用的速率,通常以瓦特(W)计量。能量随时间累积,常用千瓦时(kWh)表示。运营期间的二氧化碳当量通过将能量乘以排放因子(例如每千瓦时克 CO₂e)来估算。
相同的任务在更清洁的电网或低碳时段运行时,其排放可能不同。若加速器更快完成任务,虽然瞬时功率更高,但若完成时间大幅缩短,总能耗可能更低。
CodeCarbon 监测内容
CodeCarbon 监测或估算计算组件的能耗,并记录持续时间和位置等元数据。当硬件提供直接功率遥测时,估算可以更精确;否则工具会使用硬件模型和利用率假设。
在线模式可以使用基于位置的碳强度,而离线设置则依赖预先配置的因子。输出为一种估算值,需在实验中保留其方法、软件版本和配置。
选择报告边界
运行级别的边界可能仅覆盖一次训练任务。项目级别的边界可能包括超参数搜索、失败的运行、数据预处理和推理。服务级别的边界可能涵盖网络、存储以及持续部署。
数据中心的电源使用效率(PUE)考虑了除 IT 设备之外的设施开销。制造和建设过程中的隐含排放需要生命周期数据,而运行时跟踪器通常不提供这些信息。报告应明确排除项,而非混合不可比的总量。
先减排后抵消
从工作负载本身的价值出发:删除冗余实验,使用提前停止,复用检查点并选择高效基线。提升利用率,合理批量化,并使模型规模与任务匹配。迁移学习可以避免从头训练。
在合法且运营可行的情况下,将灵活的工作安排在碳排放较低的地区或时段。压缩模型并选择高效的服务硬件;边缘 AI 可能降低数据传输,但也可能导致未充分利用的硬件重复部署,因此需对整个系统进行测量。
报告不确定性并公平比较
公开硬件、位置、运行时长、能耗、排放因子、运行次数以及该数值是测量还是估算。将探索性计算与最终训练运行区分开来。当假设主导精度时,避免报告过多小数位。
在相同任务质量和边界下进行系统比较。能耗低但任务失败的模型并不高效,而微小的准确率提升可能不足以抵消大量资源的增加。碳排放是与成本、用水、硬件生命周期和社会效益等一起的影响因素。
CodeCarbon 估算内容
CodeCarbon 估算与计算相关的能耗和碳排放。根据运行环境和可用遥测,它可能读取 CPU、GPU、内存或系统功率,随时间积分能耗,并乘以对应电力区域的碳强度估算。结果受硬件覆盖范围、采样间隔、进程归属、功率模型、位置和电网数据等因素影响。应当附带单位、版本、方法论和不确定性,而非以精确的物理测量值呈现。
运营排放来源于训练和推理期间的电力消耗;隐含排放则来自硬件的制造、运输和处置,通常不在运行时跟踪器的范围内。共享服务器会使分配变得复杂,云实例可能仅提供有限的遥测数据。平均电网强度与边际强度不同,并随时间变化。可再生能源合同和碳抵消是会计工具,并不能证明工作负载实现了零排放。比较运行或供应商之前,请明确声明边界。
设计有意义的测量实验
记录任务、模型、数据、硬件、地区、时长、利用率、能耗、碳估算、质量以及成功输出的数量。热身和缓存效应会扭曲短时运行的结果,因此需在受控负载下重复测量。比较模型时应在相同质量和服务目标下进行,而非仅依据训练轮数或 token 数。应包括数据准备、超参数搜索、失败实验、空闲资源以及重要的持续推理。较小的训练足迹可能会被大规模服务所掩盖。
利用该工具寻找工程杠杆:减少不必要的运行,使用提前停止,匹配加速器规模,提升利用率和批处理,选择高效模型,进行量化或蒸馏,缓存结果,在低碳时段或地区安排灵活工作,并淘汰空闲资源。每项优化必须保持所需的准确性、延迟、安全性和可靠性。若在迁移计算时未考虑数据传输或地区限制,可能只是转移而非降低影响。
报告与治理
在估算结果中公布方法论、软件版本、硬件、地理假设、质量指标和不确定性。避免将使用不同边界的组织进行比较。设定预算并在大型实验运行前进行审查,但不要奖励团队隐藏未测量的计算。确保实验元数据安全,避免记录私人提示或数据。CodeCarbon 在严谨的方法框架内让环境成本可视化并可比较;但它无法提供完整的生命周期评估,也不能取代独立验证的能耗和碳排放核算。
案例示例:比较两个模型训练运行
一个团队在两种加速器上训练相同的图像模型,并使用 CodeCarbon,保持数据、质量目标、批处理逻辑和停止规则一致。记录工具版本、硬件、地区、采样、利用率、时长、能耗、碳强度来源以及不确定性。比较时包括失败的试验和预处理,而硬件的隐含排放则明确排除在运行时估算之外。结果按符合质量要求的训练运行进行归一化。
随后对更高效的配置进行推理延迟、可靠性和下游准确率的测试。工程师减少空闲时间和超参数运行,提升批处理,并在电网强度较低的时段安排灵活工作,且不迁移受监管的数据。报告中公布假设,避免声称可再生能源合同实现零影响。该估算成为预算和设计信号,而非营销徽章。重复测量可检验优化是否降低了整个生命周期的工作负载,而非仅一次可见的运行。
实施证据与运营准备度
生产决策需要的不仅是一次成功演示。需明确预期用户、运行环境、输入、输出、依赖、负责人以及每项关键失效的后果。调优前建立可复现的基线和带版本的评估集。测试常规案例、边界条件、格式错误或缺失的输入、分布漂移、依赖中断、误用,以及最有可能被忽视的群体或环境。测量任务质量时同步记录校准或不确定性、延迟、吞吐量、资源成本、可访问性、隐私和安全性。记录所有转换和阈值,以便独立审阅者能够复现结果,并将证据与吸引人的原型区分开来。
上线前,指定发布、例外、变更、回滚和退役的责任人。采用分阶段发布,保留安全回退,并通过人为注入故障验证监控。运营遥测应揭示输入质量、输出行为、模型或规则版本、依赖健康状况、人为覆盖以及确认的结果,而不收集不必要的敏感数据。设定警报阈值和响应负责人,随后在部署后审查真实世界的证据,而非假设离线性能会持续。每当数据源、用户、模型、供应商、政策、硬件或目标变化时都需重新评估。维护中的系统还需有文档化的恢复、事件学习、删除与保留流程,以及明确的停用或替换时点。
常见问题
CodeCarbon 是否直接测量来自计算机的 CO₂?
不。它通过能耗和电力碳强度来估算排放;计算机本身并不会直接排放电网的温室气体。
云计算是否总是更低碳?
不。结果取决于硬件效率、利用率、数据中心开销、电网结构、地区、时间以及数据传输等因素。












