科学机器学习工作流:融合物理与数据驱动的气候建模新范式
1. 项目概述:当气候科学遇见机器学习工作流
如果你和我一样,在气候科学或者更广泛的科学计算领域摸爬滚打多年,一定经历过这样的时刻:面对一个物理过程复杂、计算成本高昂的模型,既想引入数据驱动的新方法提升效率,又担心“黑箱”模型会破坏我们辛苦建立起来的物理可信度。这不仅仅是技术选型问题,更是一个系统工程问题——如何将机器学习(ML)有机地、可解释地、稳健地嵌入到已有的科学工作流中?
这正是“科学稳健的机器学习工作流”要解决的核心命题。它不是一个具体的算法,而是一套方法论、一种工程哲学。其目标是在气候建模这个典型场景下,系统化地整合物理定律、观测数据与机器学习模型,构建出不仅预测准、算得快,更重要的是在科学上可解释、过程可复现、结果可信赖的混合系统。简单来说,就是让机器学习从“炫技的工具”变成“可靠的合作伙伴”。
这项工作流的价值,对于一线科研人员和工程师而言是实实在在的。它直接瞄准了当前地球系统模型(ESM)的几个核心痛点:“算不起”——高分辨率模拟动辄需要千万核时;“调不准”——次网格过程参数化依赖经验,存在结构性偏差;“看不全”——全球观测数据稀疏且不均。机器学习工作流通过提供模块化、可迭代的设计框架,试图在这些痛点中找到平衡点:用神经算子加速求解器,用数据同化框架校准参数,或用生成模型填补数据空白。
接下来的内容,我将以一个深耕此领域的实践者视角,为你拆解构建此类工作流的核心逻辑、关键技术选择以及那些在论文中不会明说的实操细节与经验教训。我们将遵循从设计、开发到部署评估的完整链路,并结合具体案例,看看如何将物理洞察、数据约束和机器学习能力拧成一股绳。
2. 工作流核心架构与三种融合范式
构建一个科学机器学习工作流,首要任务不是选模型、调参数,而是进行顶层设计。你需要明确你的起点和重心:是从第一性原理出发,用数据增强物理模型?还是从观测事实出发,用物理规律约束数据推断?抑或是直接让数据说话,构建纯机器学习预测器?这三种思路对应着三种不同的融合范式,也决定了后续全部技术路径的走向。
2.1 范式一:物理优先的ML增强模拟
这是目前最主流、也是接受度最高的路径。核心思想是“物理为体,ML为用”。地球系统模型(ESM)的物理内核(如Navier-Stokes方程组)保持不变,机器学习被用来替代其中计算昂贵或物理理解不充分的组件,比如云微物理过程、湍流闭合方案等。
为什么选择这个范式?因为它的风险相对可控。物理框架提供了基本的守恒律(能量、动量、质量)和稳定性保障,机器学习组件只是在局部进行函数逼近。这好比给一辆传统汽车(物理模型)加装了电动涡轮(ML组件),提升了局部效率,但整车的操控逻辑和底盘结构(核心物理)没变,工程师更容易理解和信任。
关键技术选择与考量:
- 替代目标的选择:并非所有物理过程都适合用ML替代。一个实用的经验法则是“寻找高维输入-输出映射关系明确,但内部机理复杂或计算成本高的模块”。例如,大气对流参数化,输入是大尺度温、压、湿场,输出是对流加热、湿度倾向等,这个映射关系非线性极强,传统方案简化过多,正是ML发挥优势的地方。
- 接口设计:这是确保稳定性的关键。ML模块与物理求解器之间的数据交换必须清晰、守恒。通常,我们会将物理模型在某个时间步长内需要ML提供的“倾向项”(如次网格热通量)作为ML的输出。输入则是物理模型在该格点及周边区域的状态变量。接口处必须进行物理量纲检查和无量纲化处理,避免数值量级差异导致训练不稳定。
- 模型架构的物理归纳偏置:直接使用全连接网络(FCNN)往往效果不佳且难以收敛。更优的选择是引入物理知识的架构,如:
- 傅里叶神经算子(FNO):适用于具有周期性边界或近似周期性的问题(如理想化流体模拟)。它直接在傅里叶空间学习,能高效捕获全局的波动模式。
- 图神经网络(GNO):适用于非结构网格(如海洋模型中的三角形网格、河网)。它将计算网格视为图,通过消息传递学习局部相互作用,具有良好的几何泛化能力。
- 物理信息神经网络(PINN)或物理信息神经算子(PINO):在损失函数中直接加入物理方程残差作为约束,强制模型学习满足物理规律的解。这对于数据稀疏的区域尤其有效。
实操心得:在物理优先范式中,离线训练的精度(如均方根误差RMSE)只是一个必要不充分条件。模型在线耦合后的长期积分稳定性才是真正的试金石。一个常见的陷阱是,离线表现优秀的模型,在线运行时因误差累积而迅速发散。因此,在开发阶段就必须设计在线测试的快速原型,例如在一个简化的动力核(如准地转模型)中集成ML模块,进行数百个模式日的积分测试,观察其是否能保持气候态统计量(如能谱、概率分布)的稳定。
2.2 范式二:数据优先的观测集成建模
当物理理论不完善,或我们对某些过程的机理认知存在盲区时,观测数据就成了我们最重要的锚点。数据优先范式的核心思想是“用数据驱动推断,用物理约束过程”。它通常从高质量的观测或再分析数据(如ERA5)出发,利用机器学习进行状态估计、参数反演或不确定性量化。
典型应用场景:
- 遥感数据反演与不确定性量化:卫星传感器测量的是辐射值,我们需要反演得到温度、湿度、气溶胶浓度等物理量。这个反演过程存在大量不确定性(仪器噪声、前向模型误差)。传统最优估计方法假设高斯分布,而机器学习(如基于模拟的推断,SBI)可以学习更复杂的误差联合分布,提供更可靠的不确定性区间。
- 模型参数的概率推断:气候模型中有许多经验参数(如云滴碰并效率)是调优得来的。我们可以将长期观测到的气候态分布(如温度的概率密度函数)作为目标,利用概率编程和生成模型(如条件标准化流),反推这些参数最可能的后验分布。这相当于用数据分布来“校准”模型,而非调整单次模拟的轨迹。
工作流设计要点:
- 观测算子与模拟器的构建:你需要一个能够模拟从真实状态到观测数据过程的“前向模型”。对于遥感问题,这就是一个辐射传输模型;对于参数推断,这就是气候模型本身。这个模拟器必须是可微分的,或者至少能高效生成大量样本,以供机器学习训练。
- 处理数据稀疏性与代表性:全球海洋pCO2观测站点稀少,如何用1%的数据推断100%的场?这时需要借助迁移学习。先用物理模型生成的全场模拟数据预训练一个ML模型,让其学习pCO2与海表温度、叶绿素等辅助变量之间的空间-时间协变模式。然后再用稀疏的真实观测数据对模型进行微调。这样,模型从物理模拟中继承了全局结构,又从观测中锚定了绝对数值。
- 不确定性传递的建模:不能只给出一个最优估计值,必须给出置信区间。在SBI框架中,你可以通过构建一个生成模型,学习真实状态与带噪声观测的联合分布。当获得一个新观测时,通过条件采样即可得到真实状态的后验分布。这比传统方法更能捕捉非高斯的、空间相关的误差结构。
踩过的坑:在数据优先的工作流中,最容易忽视的是观测数据本身的系统误差和代表性误差。例如,再分析数据ERA5虽然物理一致,但它本身是模型和数据的混合产物,并非“地面真值”。用它训练ML模型,可能会学到ERA5同化系统的系统性偏差。因此,数据源的选取和误差特性的理解至关重要,必要时需采用多源数据交叉验证。
2.3 范式三:机器学习优先的预测建模
这是最大胆也最具争议的范式。核心思想是“抛开中间物理方程,直接从数据中学习输入到输出的端到端映射”。例如,用过去几十年的全球大气场,直接预测未来两周的天气(如GraphCast、Pangu-Weather),或预测下个月的平均温度异常(S2S预测)。
它的优势与挑战同样鲜明:
- 优势:极致性能。在算力充足、数据充沛的条件下,这类模型在短期天气预报的精度和速度上已超越传统数值模式。它擅长捕捉数据中复杂的相关性和模式。
- 挑战:可解释性差,物理一致性无保障,外推风险高。模型可能学到数据中的虚假相关,在训练数据未覆盖的极端或新气候态下(如强厄尔尼诺事件)表现不可预测。
如何让ML优先模型更“科学”?
- 架构设计融入物理先验:即使做端到端预测,也可以在设计时注入物理直觉。例如,使用球面卷积或球面傅里叶变换来处理全球数据,尊重地球的几何特性;在损失函数中加入对物理守恒律(如全球质量守恒)的软约束。
- 评估指标超越点对点误差:不能只看均方误差(MSE)。必须引入面向过程的诊断指标,例如:
- 能谱:预测场与真实场在波数空间上的能量分布是否一致?这关系到涡旋、波动等动力过程的模拟是否真实。
- 空间协方差结构:预测的天气系统(如气旋)的空间尺度、形状是否合理?
- 极端事件统计量:对高温、暴雨等极端事件的频率和强度的预测能力如何?
- 采用“模型动物园”基准测试:像ChaosBench这样的基准测试平台,将ResNet、U-Net、FNO、Transformer等多种架构,以及自回归预测和直接预测多种策略,放在同一套数据(如ERA5)和同一套评估指标下进行比较。这能帮助我们理解不同模型在不同预报时效、不同变量上的优劣,而非盲目追求“SOTA”。
个人体会:ML优先模型目前更像一个强大的“现象学工具”,它在业务预报中展现巨大潜力,但在追求机理理解的气候变化研究中需谨慎使用。一个务实的策略是将其与传统物理模型的结果进行多模式集合,利用其捕捉复杂模式的能力,同时用物理模型来锚定长期演变的趋势和极端情况下的物理可能性。
3. 科学机器学习工作流的设计、开发与部署
无论选择哪种范式,一个稳健的工作流都必须经历设计、开发和部署三个阶段,且每个阶段都需要科学问题与工程实践的紧密互动。
3.1 设计阶段:从科学问题到机器学习任务
这是最容易出错,也最关键的阶段。目标是把一个模糊的科学问题(如“改进云降水过程的模拟”)转化为一个定义明确、可操作的机器学习任务。
1. 科学问题翻译与目标定义首先,必须明确你的科学目标和工程约束。
- 科学目标:你是要发现新方程?加速现有参数化?还是量化不确定性?目标决定了评估标准。例如,目标是“发现可解释的海洋中尺度涡闭合项”,那么模型的可解释性(如稀疏回归)就比纯粹的预测精度更重要。
- 工程约束:模型最终要运行在什么环境?是耦合进Fortran写的ESM中,还是作为独立的Python后处理工具?这决定了接口形式(如是否需要通过FTorch进行PyTorch-Fortran绑定)、推理速度要求和内存限制。
2. 训练数据制备:魔鬼在细节中数据准备远不止是下载和清洗。它直接决定了模型能学到什么。
- 数据源的代表性:是用高分辨率模拟数据(如云解析模型CRM输出),还是用再分析数据(ERA5),或是稀疏站点观测?模拟数据干净、完整、因果关系明确,但可能存在模式偏差;观测数据真实,但稀疏、有噪声、可能存在系统误差。ClimSim数据集的设计是一个典范:它从“超级参数化”模式中提取输入-输出对,确保了数据在物理上的一致性,并明确了ML模块在宿主模型中的接口。
- 粗粒化与滤波操作:这是为参数化模型准备数据时的核心步骤。如何将高分辨率场(如256x256)平均或滤波到低分辨率(如64x64)?是简单的网格平均,还是遵循某种物理意义的滤波算子(如高斯滤波)?不同的选择会得到完全不同的“地面真值”标签。Ross等人的基准测试表明,这个选择对最终ML模型的在线性能影响巨大,必须在设计阶段就系统性地测试不同方案。
- 输入特征工程:除了原始状态变量(温度、湿度、风场),是否要加入其衍生量?例如,在方程发现任务中,将涡度、散度、变形率等物理意义明确的复合项作为候选特征,可以极大地帮助稀疏回归算法找到物理上合理的公式。
3. 目标函数与模型空间选择损失函数不能只看MSE。
- 复合损失函数:对于物理增强模型,应在数据损失(如MSE)之外,加入物理约束损失。例如,在训练神经算子(PINO)时,加入PDE残差项,强制模型输出满足控制方程的弱形式。对于不确定性量化任务,损失函数应鼓励模型输出良好的校准性(如使用负对数似然)。
- 模型架构与归纳偏置:根据问题特性选择模型。学习时空演化的场?选神经算子(FNO, GNO)。处理图像式的二维地图数据?U-Net或Vision Transformer可能更合适。进行时间序列预测?ConvLSTM或Transformer是自然的选择。选择本身,就是注入你对问题结构的先验认知。
3.2 开发阶段:训练、验证与迭代
这个阶段看似标准,但在科学ML中,验证环节尤为特殊。
1. 离线验证:不止是留出测试集除了常规的在独立时间切片上计算RMSE、相关系数,必须进行面向过程的诊断。
- 单步预测 vs. 多步滚动预测:对于时间序列模型,在测试集上做单步预测误差可能很低,但让其自回归地滚动预测20步,误差可能会爆炸式增长。必须测试其多步预测的稳定性。
- 统计量一致性检验:比较模型预测场与真实场的概率分布函数(PDF)、功率谱、空间相关函数。一个优秀的ML参数化,应该能在统计意义上复现高分辨率模拟的气候态,而不仅仅是点对点匹配。
2. 迭代与科学反馈循环开发不是单向的。从验证结果中,你可能会发现:
- 模型在某些物理 regime(如强对流条件下)表现不佳。这可能意味着训练数据中此类样本不足,需要回去补充数据,或对这类样本进行加权。
- 模型学到了非物理的短波振荡。这可能需要在损失函数中加入平滑性约束,或在模型架构中引入物理守恒层(如确保净质量通量为零)。 这个“设计-开发-验证-重新设��”的循环,是科学ML工作流区别于普通ML项目的核心,它要求研究者同时具备领域知识和机器学习技能。
3.3 部署与评估:在线耦合的终极考验
离线表现好,不等于在线能用。将训练好的ML模块嵌入完整的物理模型进行长期积分,才是真正的“大考”。
1. 集成与生产化
- 容器化与接口标准化:ClimSim-Online项目提供了最佳实践。它使用Docker容器封装整个评估环境,并通过FTorch库实现PyTorch模型与Fortran主机代码的无缝调用。这保证了复现性,也极大降低了其他研究者集成自己模型的难度。
- 数值稳定性处理:物理模型通常使用显式或半隐式时间积分,对ML模块输出的量级和变化率非常敏感。在线部署时,往往需要对ML输出进行后处理,如裁剪(clipping)异常值、施加物理界限(如相对湿度不超过100%)、或进行时间平滑,以防止积分爆炸。
2. 在线评估的“三位一体”指标在线评估必须超越离线指标,我通常从三个维度考察:
- 稳定性:模型能否稳定积分超过数年甚至数十年而不发散?需要监测关键变量(如全球平均温度、总能量)的长期漂移。
- 物理真实性:模拟出的气候态是否合理?需要检查季节循环、经向热量输送、主要模态(如ENSO)的空间结构和周期等是否与观测或高分辨率参考模拟一致。
- 预报/模拟技能:对于预测任务,看预报技巧评分(如异常相关系数ACC);对于气候模拟,看其对历史气候的再现能力(如20世纪变暖趋势)。
3. 诊断与反馈在线运行中暴露的问题,是改进模型最宝贵的财富。例如,如果发现ML参数化导致热带降水带出现虚假的双赤道辐合带(ITCZ),就需要回溯分析是训练数据中热带区域样本不足,还是模型架构无法捕捉赤道对称的动力约束。这个诊断信息要反馈到设计阶段,可能促使你增加热带地区的训练数据权重,或在损失函数中加入对称性惩罚项。
4. 核心挑战与实战应对策略
在实际构建这类工作流时,你会反复遇到几个棘手的挑战。以下是我总结的一些应对策略。
4.1 挑战一:可复现性危机
科学要求可复现,但机器学习(尤其是深度学习)因随机初始化、GPU非确定性计算等因素,本身就难以做到完全复现。更糟糕的是,科学ML工作流涉及复杂的软件栈(物理模型+ML框架+前后处理)、庞大的数据和众多的超参数选择。
应对策略:
- 版本控制一切:不仅代码用Git,对训练数据、模型权重、甚至软件环境(通过Docker或Conda环境文件)进行严格的版本管理。推荐使用DVC或MLflow等工具管理数据和实验流水线。
- 标准化工作流描述:为你的项目创建一份详细的“模型卡片”或“工作流说明书”。应明确记录:
- 数据谱系:数据来源、处理步骤、版本。
- 模型配置:架构图、超参数、初始化种子。
- 训练细节:优化器、学习率计划、批量大小、训练时长。
- 评估协议:使用的精确指标、评估数据分割。
- 发布完整代码与数据管道:尽可能在论文发表时,提供能够从原始数据到最终图表的完整自动化脚本。这比单纯上传代码仓库更有价值。
4.2 挑战二:离线-在线性能鸿沟
这是最常见也最令人沮丧的问题。模型离线验证误差很低,但一上线耦合就迅速崩溃或产生系统性偏差。
根因分析与解决方案:
| 可能原因 | 机理分析 | 解决方案 |
|---|---|---|
| 分布外输入 | 在线积分时,物理模型的状态会探索到训练数据未覆盖的区域(分布外,OOD)。ML模型对OOD样本的预测行为不可控。 | 1.数据增强:在训练数据中主动加入扰动、极端事件样本。2.不确定性估计:让模型输出预测不确定性(如贝叶斯神经网络、MC Dropout),当不确定性高时,回退到物理参数化方案。3.在线微调:在耦合初期,用在线生成的数据对模型进行少量步数的持续微调。 |
| 误差累积与反馈 | ML模块的微小系统误差,在每个时间步被物理模型放大,并通过耦合反馈回来,形成正反馈循环。 | 1.损失函数设计:不仅优化单步误差,也优化多步滚动预测误差(通过时间展开训练)。2.对抗性训练:引入判别器,让ML模块的输出在统计分布上与高分辨率模拟的长期状态无法区分。3.隐式正则化:在架构中内置守恒约束(如确保净质量/能量为零)。 |
| 数值不匹配 | ML输出与物理求解器在数值精度、频率特性上不兼容。例如,ML输出高频噪声,而物理求解器对此敏感。 | 1.输出后处理:对ML输出进行低通滤波,滤除非物理的高频噪声。2.协同设计:在设计ML模型时,就考虑物理求解器的数值格式(如谱方法),让ML学习在谱空间进行操作。 |
4.3 挑战三:计算可扩展性与成本
高分辨率气候模拟已是超算应用,加入ML训练后,计算需求可能再增加一个数量级。
优化策略:
- 混合精度训练:已成为标准实践,能大幅减少显存占用并加速训练。
- 梯度累积:当GPU内存不足以容纳大批次时,使用梯度累积来模拟大批次训练的效果。
- 模型压缩与知识蒸馏:先训练一个大型、高性能的“教师模型”,再将其知识蒸馏到一个轻量级的“学生模型”中,用于在线部署。
- 利用预训练基础模型:对于常见任务(如大气状态预测),可以直接微调像Pangu-Weather、GraphCast这样在海量数据上预训练好的基础模型,这比从头训练要高效得多。但要注意领域适配问题。
4.4 挑战四:与科学推理的深度融合
最终,我们不只是要一个更快的模拟器,而是希望通过ML获得新的科学洞察。这要求工作流必须是可解释、可诊断的。
实践方法:
- 可解释ML技术:使用SHAP、LIME等工具分析ML模型在做出特定预测时,哪些输入特征最重要。这可以帮助发现新的物理关系或验证已有理论。
- 方程发现:如案例中使用稀疏回归(如SR3)从数据中直接发现简洁的数学表达式。发现的方程本身可能就是新的物理假设。
- 敏感性分析与因果探索:利用ML模型作为代理模型,进行快速的全局敏感性分析,识别影响系统行为的关键参数和过程。更进一步,可以结合因果发现算法,尝试从数据中推断变量间的因果结构。
5. 构建你自己的稳健气候ML工作流:一个实操框架
基于以上讨论,我为你梳理出一个可以按图索骥的实操框架。你可以把它看作一个检查清单,在项目推进的每个阶段对照审视。
阶段A:立项与设计(占30%精力)
- 明确范式:你的核心是增强物理模型、校准/推断参数,还是构建纯数据驱动预测器?与领域专家充分讨论,确定风险与收益的平衡点。
- 定义成功标准:除了RMSE,在线稳定性、物理统计量、计算加速比、可解释性分别要达到什么水平?将这些指标量化。
- 设计数据管道:确定数据来源、粗粒化/滤波方案、训练/验证/测试集划分(注意时间序列的时序依赖性)。制作一个小型原型数据集,快速验证想法的可行性。
- 选择模型家族与损失函数:根据问题结构(网格类型、时空依赖性)选择基础架构。设计包含物理约束(如守恒律)的复合损失函数。
阶段B:原型开发与离线验证(占40%精力)
- 实现基准模型:先实现一个简单的基线模型(如线性回归、浅层MLP),确立性能下限。
- 迭代模型与训练:引入更复杂的模型,系统地进行超参数调优。使用交叉验证,但注意避免数据泄露。
- 进行深入的离线诊断:绘制预测误差的空间分布图、时间序列图、频谱图。分析模型在哪些区域、哪些天气形势下表现最差?为什么?
- 构建快速在线测试台:哪怕只是一个高度简化的动力模型(如Lorenz 96或准地转通道模型),也要尽早将ML模块耦合进去,进行数百步的积分测试,观察其稳定性。
阶段C:生产部署与全面评估(占30%精力)
- 容器化与工程集成:使用Docker封装环境,通过标准化接口(如Fortran-Python桥接)将模型集成到目标气候模型中。
- 进行长期气候积分实验:运行至少几年(模式时间)的完全耦合模拟。分析其气候漂移、季节循环、年际变率等。
- 综合评估与对比:将你的ML增强模型与基线物理模型、以及可能存在的其他替代方案进行全方位对比。不仅看平均态,更要看极端事件和变率。
- 文档与发布:详细记录所有步骤、参数和决策理由。遵循FAIR原则(可发现、可访问、可互操作、可重用)发布你的代码、模型和数据管道。
最后我想分享一点个人体会:构建科学稳健的机器学习工作流,本质上是一场严谨性与创造力的平衡艺术。一方面,我们需要像传统气候建模一样,对数值稳定性、物理守恒和不确定性保持最高程度的严谨;另一方面,我们又需要拥抱机器学习带来的灵活性和数据驱动的新范式。这个过程没有银弹,成功的秘诀往往在于对细节的执着——对数据制备每一个步骤的深思熟虑,对损失函数每一项权重的反复调试,对在线耦合后每一帧输出图像的仔细审视。这条路充满挑战,但当看到机器学习模块成功地在庞大的地球系统模型中稳定运行,并帮助我们揭示出新的气候现象时,那种成就感是无与伦比的。希望这份从实战中总结的框架,能帮助你在物理、数据与机器学习的交叉领域,走得更稳、更远。
