在上海、北京还是四川训练同一个 AI 模型,碳排放量的差别有多大?答案可能超出你的想象——高达 8 倍。 把训练模型想象成开一家面包烘焙坊:烤一炉大面包需要大量面粉(电力),而不同城市提供的“电力面粉”含碳量天差地别。在煤电为主的城市,每度电像“黑面粉”一样带着浓重的碳;而在水电、风电丰富的城市,每度电就像“绿面粉”一样轻盈干净。同样是烤完一炉名叫“大语言模型”的巨型面包,换一座城市,账单上多出来的不是电费,而是实打实的几百吨二氧化碳。 这篇指南将带你走进“绿色 AI”的选址学问:先认识“碳排放因子”这把度量尺,再学会算区域差异、查因子数据库、做低碳选址,最后用碳足迹追踪把每一次训练的碳排放记成一本明白账。

岗位关联

学会用碳排放因子衡量训练的“绿色程度”、把它变成选址决策和碳足迹追踪的依据,是绿色AI工程师与可持续计算从业者的核心基本功。

目录
  1. 可视化演示
  2. 碳排放因子:每度电的“碳含量尺”
  3. 区域差异计算:两地买“面”差多少碳
  4. 碳排放因子库:一本随季节更新的“电力营养手册”
  5. 低碳训练选址:把“面包坊”开在哪座城市
  6. 碳足迹追踪:每炉面包的“碳账本”
  7. 绿色AI实践:把面包坊升级成“碳中和”烘焙坊
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示方波和锯齿波的傅里叶级数展开过程,通过滑块调节谐波数量,观察有限项逼近理想波形的效果,理解频域到时域的转换。

本节配有交互动效(进入视口后自动加载,约 3KB)。

方波傅里叶展开 方波由奇次谐波叠加而成,振幅按1/n递减 谐波数越多,合成波形越接近理想方波 f(t) = (4/π) · Σ sin(2k-1)ωt / (2k-1) 调节滑块改变谐波数量观察逼近效果

碳排放因子:每度电的“碳含量尺”

做面包要先懂面粉。同样是“烤一炉模型面包”,不同城市提供的电力面粉,含碳量可以相差八倍。怎么知道一袋面粉有多“重碳”?答案就是看包装袋上的“营养成分表”——对电力而言,这张表的核心指标叫碳排放因子。

碳排放因子(Emission Factor,EF)的意思是:每消耗 1 千瓦时(1 度)电,整个电网平均排放多少千克二氧化碳。它不是一个全国统一的常数,而是由这个地区电网的“发电配方”决定的。内蒙古的火电占比高,因子可以高达 0.8 kg/kWh 以上;云南水电占比高,因子只有 0.1 左右。

电网的碳排放因子是各发电来源的加权平均。设第 i 种发电方式(煤、气、水、风、光等)在电网中的发电量占比为 f_i,其单位发电量的碳排放系数为 e_i,则该区域电网的碳排放因子为:

就像面包师看营养成分表挑面粉一样,AI 工程师用碳排放因子挑“电力面粉”。记住这把尺子,后面的区域差异计算、选址、追踪,全都依赖它。

EF=∑i=1nfi×ei\displaystyle EF = \sum_{i=1}^{n} f_i \times e_i
一句话说明:电网的“碳含量”不是看最大那座电厂,而是把所有发电方式的碳排按贡献比例加权平均。
  1. f_i发电占比:第 i 种发电方式贡献的电量占总电网电量的比例(0 到 1)。煤电占比高的电网,f_煤 大,因子就被拉高。
    fi=EiEtotal\displaystyle f_i = \frac{E_i}{E_{total}}
  2. e_i碳排放系数:第 i 种发电方式每发 1 度电排放的二氧化碳千克数。煤电约 0.9~1.0,风电光伏接近 0。
    ei=CiEi\displaystyle e_i = \frac{C_i}{E_i}
  3. 加权求和把每种电源的占比乘上各自的碳排系数,全部加起来,就得到整张电网每度电的平均碳排放。
    EF=∑i=1nfi×ei\displaystyle EF = \sum_{i=1}^{n} f_i \times e_i

区域差异计算:两地买“面”差多少碳

同一炉面包,在面粉贵的城市买面贵,在面粉便宜的城市买面便宜。碳排放同理:训练同一个模型,放到不同城市,碳排差异就是“用电量 × 因子差”。

训练一个模型要消耗多少电?它取决于三件事:服务器功率 P(千瓦)、训练时长 T(小时)、以及当地电网的碳排放因子 EF。三者的乘积就是这次训练的碳排放。

两地之间的碳排差异就是耗电量 E(= P × T)乘以两地因子的差。若 A 区因子 0.8,B 区因子 0.1,同样的训练任务在 B 区比 A 区少排放:

买面差价大的城市,精明面包师一定会去进货。练大模型同理——先对比两地因子差和总耗电,答案一目了然。

C=P×T×EF\displaystyle C = P \times T \times EF
迁移省下的碳 = 总耗电 × 两地因子差。因子差越大,搬家收益越明显。
  1. E总耗电:训练任务的用电总量。100kW 跑 10 小时就是 1000 kWh。
    E=P×T\displaystyle E = P \times T
  2. EF_A − EF_B因子差:高碳区减去低碳区,得到每度电节省的碳排量。
    ΔEF=EFA−EFB\displaystyle \Delta EF = EF_A - EF_B
  3. 乘起来用总耗电乘以每度电节省的碳排,就是整体搬家省下的二氧化碳。
    ΔC=E×ΔEF\displaystyle \Delta C = E \times \Delta EF

碳排放因子库:一本随季节更新的“电力营养手册”

面包师进货不能只看一年前的面粉报告。“电力营养手册”也一样:每年、甚至每个季节,各电网的“配方”都在变——汛期水多了、风季风大了、供暖季煤多了。

碳排放因子数据库就是那本“电力营养手册”,由权威机构发布与维护。常见来源包括:国际能源署(IEA)、各国电力主管部门、电网公司公布的年度/月度电网平均排放因子,以及研究机构的精细化时空因子数据集(如欧洲的 Ecoinvent、国内的省级电网因子表)。

使用时按区域代码(如省份、电网区域或云服务商 region)查询对应因子。以国内为例,华北、华东、华中、东北、西北、南方六大区域电网各有独立因子,华北因煤电比重大而偏高,西北水电/光伏占比高而偏低。数据库必须动态更新,因为电网结构会受季节、天气、新建机组影响。有的数据库还提供小时级“时段因子”:

聪明的面包师总会翻开最新一期的面粉手册再进货。AI 工程师做绿色训练,也要打开最新因子库再开机。

EF(t)=∑i=1nfi(t)×ei\displaystyle EF(t) = \sum_{i=1}^{n} f_i(t) \times e_i
时段因子把“当前时刻的绿电占比”算进去。晚上风大、中午光伏强,同一台服务器在不同时刻开机,碳排也不同。
  1. f_i(t)时变占比:某时段内第 i 种电源的实时发电占比。汛期水电占比大。
    fi(t)=Ei(t)Etotal(t)\displaystyle f_i(t) = \frac{E_i(t)}{E_{total}(t)}
  2. e_i不变系数:每种电源本身的碳排放系数基本固定,不随时段变化。
    ei=conste_i = const
  3. 逐段求和将每个时段的占比与系数相乘后累加,得到该时刻的电网碳排放因子。
    EF(t)=∑i=1nfi(t)×ei\displaystyle EF(t) = \sum_{i=1}^{n} f_i(t) \times e_i

低碳训练选址:把“面包坊”开在哪座城市

选址是面包生意最重要的决定。开在煤电厂旁边,面粉又黑又贵;开在水电站旁,面粉轻巧又便宜。AI 训练选址就是在决定“电力面粉”从哪进货。

低碳训练选址不是简单挑 EF 最低的城市,而是一套综合评估流程:先查因子库拿到各区域 EF → 再算训练任务耗电量 → 再估算把数据和代码搬到目标区域的传输成本 → 最后综合权衡。数据量巨大时,跨区传输也会产生可观碳排放和资金成本。

设总耗电 E,目标区因子 EF_target,源区因子 EF_source,迁移的数据量 D,单位数据传输的碳排放系数 γ,则迁移后的综合成本模型为:

只有当“搬过去的训练碳排 + 传输碳排”小于“留在原地的训练碳排”,搬家才值得。

面包师租店铺时会算上运费和面粉价的总账。AI 选址同样要算清“总账”再拍板,不能只盯着 EF 这一个数字。

Ctotal=E×EFtarget+D×γ\displaystyle C_{total} = E \times EF_{target} + D \times \gamma
综合账 = 训练碳排 + 数据传输碳排。绿城面粉再好,如果运费贵过省下的钱,也不划算。
  1. E × EF_target训练碳排:训练阶段在新区域产生的碳排放,随目标区因子降低而减小。
    Ctrain=E×EFtarget\displaystyle C_{train} = E \times EF_{target}
  2. D × γ传输碳排:把数据集从源区拷贝到目标区所消耗的网络/存储能耗对应的碳排。PB 级数据跨洲传输不容忽视。
    Ctransfer=D×γ\displaystyle C_{transfer} = D \times \gamma
  3. 加总比较两者之和与不迁移时的训练碳排 E × EF_source 对照,只有更小,搬迁才划算。
    Ctotal=Ctrain+Ctransfer\displaystyle C_{total} = C_{train} + C_{transfer}

碳足迹追踪:每炉面包的“碳账本”

精品面包坊每晚都会对账:今天进了多少面粉、烤了几炉、用了多少电。AI 训练也一样,要有一本“碳账本”,把每一次训练的碳排记清楚,才能谈降碳。

碳足迹追踪是在训练全生命周期记录能耗并折算碳排放的过程。工具链包括 CodeCarbon、Carbon Tracker、Cloud Carbon Footprint 等,它们能自动读取 GPU 利用率、云厂商的计量接口和电网因子,把“能耗 → 碳排”串成一条流水线。

追踪流程分四步:计量、换算、汇总、上报。因训练任务通常分阶段(数据预处理、单卡验证、大规模并行训练、推理压测),逐阶段核算更合理。整体碳排为各阶段碳排之和:

其中 E_j 是第 j 个阶段消耗的电量,EF_j 是该阶段所在时段的电网因子。

账本记得越细,发现省钱空间就越容易。比如对账时发现凌晨训练因子低、碳排少,就可以把训练任务挪到夜里跑——这就是碳账本带来的直接收益。

Ctotal=∑j=1mEj×EFj\displaystyle C_{total} = \sum_{j=1}^{m} E_j \times EF_j
把每个阶段的电量和对应时段的因子相乘再累加,就是整次训练的真实碳足迹。
  1. E_j阶段能耗:每个训练阶段累计消耗的电量,来自监控工具或云计量账单。
    Ej=∫tj−1tjP(t) dt\displaystyle E_j = \int_{t_{j-1}}^{t_j} P(t) \, dt
  2. EF_j阶段因子:该阶段实际运行时间段对应的电网因子,白天与深夜可能不同。
    EFj=EF(tj)EF_j = EF(t_j)
  3. 逐段相乘累加把每个阶段的电量和因子相乘后求和,得到整次训练的完整碳足迹。
    Ctotal=∑j=1mEj×EFj\displaystyle C_{total} = \sum_{j=1}^{m} E_j \times EF_j

绿色AI实践:把面包坊升级成“碳中和”烘焙坊

最讲究的面包坊不光选址绿,还会通盘改造:换节能烤箱、用余热、避开高峰电价。绿色 AI 的实践也是一套组合拳,而不只是挑个“绿城”。

落地绿色 AI 需要三层动作:策略层、指标层、协作层。策略层包括避开高碳时段(用时段因子错峰训练)、优先选低碳区域、通过模型剪枝/量化缩短训练时长、提高 GPU 利用率;指标层用关键指标监控:区域碳排放因子、训练碳强度(kg CO2 / 模型性能单位)、绿电覆盖率;协作层则需要算法、运维、采购团队一起把碳排纳入训练任务的验收标准。

绿电覆盖率是衡量“采购的绿电占总用电量比例”的指标:

通过绿电证书(REC)或直购绿电提升这个比例,是长期降低区域碳排差异影响的手段。

从“知道碳”到“算对碳”,再到“降低碳”,一家碳中和烘焙坊不是一天建成的。每次训练前问一句“我这炉面包用什么电、在哪烤最省碳”,就是最好的绿色 AI 实践。

CFE=GgreenEtotal×100%\displaystyle CFE = \frac{G_{green}}{E_{total}} \times 100\%
覆盖率 100% 意味着所有训练用电都来自绿电,但这不改变电网物理上的平均因子,报表上的“范围二”碳排仍需如实核算。
  1. G_green绿电采购量:通过直购、绿证等获得的清洁电力电量。
    Ggreen=∑kGk\displaystyle G_{green} = \sum_{k} G_k
  2. E_total总用电量:整个训练体系实际消耗的全部电量。
    Etotal=Etrain+Ecool+EotherE_{total} = E_{train} + E_{cool} + E_{other}
  3. 比值即覆盖率用绿电采购量除以总用电量,得到绿电覆盖率。
    CFE=GgreenEtotal×100%\displaystyle CFE = \frac{G_{green}}{E_{total}} \times 100\%

AI 应用场景

场景1:大模型训练前的“城市比价”决策

阶段:任务规划阶段

解决的问题:训练一个大语言模型可能耗电几十万 kWh,在 EF=0.8 的区域产生约 300 吨碳排,而在 EF=0.1 的区域只有约 40 吨。传统做法默认把训练放到总部所在地机房,AI 时代的新做法是像查汇率一样先查因子库,把训练调度到绿色区域。

具体案例:某团队训练 1750 亿参数模型,先用因子库算出目标区域碳排差约 260 吨,再把数据同步到水电丰富的西部数据中心,训练成本没涨,ESG 报告里的碳排数字却大幅下降。

场景2:云端“绿色区域”自动路由

阶段:训练调度阶段

解决的问题:云厂商(如 AWS 欧洲区域、Azure 北欧)会公布区域碳排数据,调度平台可以像路由器选路径一样选“最绿区域”,把任务自动排在风力最充沛的时段。

具体案例:一家 AI 公司用 CodeCarbon 给每个训练任务打碳标签,调度系统优先把非紧急训练安排到夜间(风电高峰、因子低),季度碳排下降 37%。

场景3:ESG 碳排报告自动生成

阶段:核算与上报阶段

解决的问题:CSRD、SEC 等新规要求披露 AI 业务碳足迹,人工汇总各团队训练记录容易漏算、错算。

具体案例:平台通过追踪工具自动汇总各区域训练任务的“能耗 × 因子”,生成按区域/项目/时段拆分的碳排报表,满足审计要求。

Python 演示

python37 行
# -*- coding: utf-8 -*-"""区域碳排差异计算:对比同一训练任务在不同区域的碳排放""" # 各区域电网碳排放因子 (kg CO2/kWh), 数据仅为演示EF_DB = {    "北京": 0.78,    "上海": 0.58,    "四川": 0.22,    "云南": 0.10,    "内蒙古": 0.82,    "青海": 0.12,}  def estimate_carbon(power_kw, hours, region):    energy = power_kw * hours  # 总耗电 kWh    return energy * EF_DB[region]  def main():    power, hours = 360.0, 24.0    print("训练任务: 功耗 %s kW, 时长 %s h" % (power, hours))    print("-" * 40)    results = []    for region in sorted(EF_DB, key=lambda r: estimate_carbon(power, hours, r)):        carbon = estimate_carbon(power, hours, region)        results.append((region, carbon))        print("%-4s EF=%-5.2f  碳排放 %7.2f kg" % (region, EF_DB[region], carbon))    best, worst = results[0], results[-1]    print("-" * 40)    print("最优区域:%s 碳排 %.2f kg" % (best[0], best[1]))    print("最差区域:%s 碳排 %.2f kg" % (worst[0], worst[1]))    print("最差/最优 = %.2f 倍" % (worst[1] / best[1]))  if __name__ == "__main__":    main()
目的:输入一个训练任务的功率和时长,程序用“碳排放因子字典”模拟因子库,自动算遍各区域并排序,告诉你最绿和最黑的选址差多少倍。
  1. EF_DB = {...}用字典模拟一张简化的“碳排放因子数据库”,每个区域一个因子值。
  2. energy = power_kw * hours先算总耗电,单位是 kWh(度),对应公式中的 E。
  3. return energy * EF_DB[region]训练碳排 = 耗电 × 区域因子,就是公式 C = E × EF。
  4. sorted(EF_DB, key=lambda r: estimate_carbon(...))按碳排从小到大给区域排序,一键找出最绿选址。
  5. best, worst = results[0], results[-1]取排序后的首尾,对比最优与最差区域的差距。
  6. print("最差/最优 = %.2f 倍")直观展示选址对碳排的放大倍数,帮决策层理解“选址为什么重要”。

常见误区

误区我算碳排放时只看显卡 TDP,比如 A100 是 400W,乘上时长就是耗电了。

正解训练时整机还有 CPU、内存、散热和网络交换,实测整柜功耗常是 GPU 标称的 1.4~1.8 倍。就像面包坊耗电的不只是烤箱,还有冰箱、空调和照明。正确做法是用整机/机柜级功耗计量,误差能缩小一半以上。

为何常见:GPU 宣传物料最容易查到 TDP,整机功耗需要实测,大家习惯取巧拿标称值算。

误区我去年查过华东电网因子是 0.5,今年接着用,反正变化不大。

正解电网结构随季节、天气、机组检修动态变化。汛期水电占比高因子下降,冬季供暖煤电顶上来因子上升。用旧值就像看去年面粉价格去买今天的面,会算偏。应优先使用最新发布的年度/月度因子,或接入实时因子接口。

为何常见:年度因子好查且以“一个数字”形式呈现,大家默认它有长期有效性。

误区EF 最低的城市当然最绿色,直接把训练搬过去就好了。

正解还要算传输成本。PB 级数据跨区域拷贝,网络和存储的能耗会带来额外碳排。若数据每天更新,长期跨区同步的碳排可能超过训练省下的量。要用综合成本模型 C_total = E×EF + D×γ 判断是否值得搬。

为何常见:单看训练算式的确 EF 越低越好,但“传输也有碳”这个综合账容易被忽视。

误区夜间错峰只是电价便宜,跟碳排放没关系。

正解夜间风大(风电占比高)、光伏为零、电网因子往往更低;傍晚用电高峰因子飙升。时段因子 EF(t) 说明同一训练不同时段开跑,碳排不同。省碳和省电费常常同时发生,错峰是一项“双赢”策略。

为何常见:人们习惯把“电”看作同质商品,忽略电网构成随时段变化。

误区公司买了 REC 绿证,所有训练都算零碳了。

正解绿证抵消的是“范围二”的一部分,但电网实际供给你的电力仍有物理碳排,区域电网平均因子仍要如实计入。绿电覆盖率提升可以降低报表碳排,但“零碳”是不严谨的说法,就像面包店买了碳补偿券也不能说面粉里没有碳。

为何常见:营销宣传常把绿证采购与零碳划等号,技术人容易被话术带偏。

面试题

Q1. 把“碳排放因子”理解成下面哪个比喻最贴切?

单选题 · easy

  • A.每度电含有的碳重量← 正确答案
  • B.每度电的市场价格
  • C.电网的总装机容量
  • D.发电机的平均寿命

答案:A。碳排放因子度量每发 1 度电平均排放的二氧化碳千克数,正像每袋面粉的“碳含量”,而不是价格、容量或设备寿命。选项 A 直接对应定义。

Q2. 电网碳排放因子的标准计算方法是?

单选题 · mid

  • A.直接取最大电厂的排放值
  • B.各电源占比乘系数求和← 正确答案
  • C.用全年碳排除以高峰电量
  • D.取所有电厂碳排的中位数

答案:B。EF = Σ(f_i × e_i),本质是各发电方式占比与碳排系数的加权平均。直接取单厂、取中位数或除以高峰电量都不符合“全电网平均”的含义。

Q3. 以下哪些因素会造成不同区域碳排放差异?

多选题 · mid

  • A.煤电与水电的占比不同← 正确答案
  • B.用电高峰时段负荷变化← 正确答案
  • C.训练代码的编程语言
  • D.清洁能源的季节性波动← 正确答案

答案:ABD。电网“配方”不同是区域差异的根源,时段负荷和季节波动属于动态因子。编程语言只影响代码效率,不改变电网结构。

Q4. 单次训练任务的碳排放基本公式是?

单选题 · mid

  • A.功率乘时长再乘区域因子← 正确答案
  • B.显存大小乘训练轮次数
  • C.参数量除以单批次大小
  • D.服务器数量乘单台价格

答案:A。C = P × T × EF。显存、参数量、价格都与碳排没有直接乘法关系,功率、时长和电网因子才是决定碳排的三要素。

Q5. 低碳训练选址时,除训练本身碳排还要评估哪些?

多选题 · hard

  • A.数据跨区传输的碳排← 正确答案
  • B.区域电价变动的趋势← 正确答案
  • C.模型精度与量化损失← 正确答案
  • D.团队通勤是否便利

答案:ABC。综合账 = 训练碳排 + 传输碳排,电价影响成本可行性,量化/剪枝会影响精度与训练时长。通勤属于团队日常运营,不是选址模型的核心变量。

Q6. 碳排放因子数据库为什么要动态更新?

单选题 · easy

  • A.电网构成随时段季节变化← 正确答案
  • B.数据库厂商想增加营收
  • C.让报告篇幅看起来更专业
  • D.模型参数量在持续增长

答案:A。因子反映的是当下电网“配方”,汛期、风季、供暖季都会改变电源占比。动态更新才能拿到当下真实的碳含量,而不是拿旧面粉价算新账。

Q7. 某任务功耗 100kW 跑 10h,A区 EF=0.8、B区 EF=0.2,迁至 B 区可减碳多少?

单选题 · hard

  • A.600 千克← 正确答案
  • B.800 千克
  • C.100 千克
  • D.200 千克

答案:A。耗电 E=1000 kWh;A 区碳排 1000×0.8=800 kg,B 区 1000×0.2=200 kg,差值 600 kg。选项 B、D 分别对应单区总值,C 是比例误解。

Q8. 完整的碳足迹追踪流程包含哪些动作?

多选题 · mid

  • A.计量各阶段真实能耗← 正确答案
  • B.乘对应区域的排放因子← 正确答案
  • C.汇总上报并反馈优化← 正确答案
  • D.凭经验直接估计碳排

答案:ABC。追踪 = 计量 → 换算 → 汇总 → 上报 → 优化,每一步都依赖真实数据。凭经验直接估计不是“追踪”,无法用于审计与改进。

Q9. 时段碳排放因子主要反映了什么?

单选题 · easy

  • A.不同时段绿电占比的变化← 正确答案
  • B.不同时段电价涨跌情况
  • C.不同时段气温湿度差异
  • D.不同时段网络带宽波动

答案:A。EF(t)=Σ f_i(t)×e_i,t 时刻的绿电占比变化直接改变因子大小。电价、气温、带宽都不是时段因子的定义变量。

Q10. 在区域选址综合成本模型中,以下哪项通常不作为核心变量?

单选题 · extreme

  • A.目标区域电网实时排放因子
  • B.训练数据集跨区迁移总量
  • C.训练任务的随机数种子取值← 正确答案
  • D.区域电力市场实时电价走向

答案:C。模型核心变量是 EF_target、迁移量 D 以及电价成本。随机数种子只影响实验结果复现,与碳排选址毫无关系,属于干扰项。