1. 项目概述当机器学习势遇上“能量基准线”难题在材料模拟这个行当里干了十几年我越来越觉得我们这些搞计算的本质上是在和“能量”这个既抽象又具体的物理量较劲。无论是预测新电池材料的稳定性还是模拟催化剂表面的反应路径最终都要落到对体系总能量的精确计算上。密度泛函理论DFT是我们的“第一性原理”标尺但它的计算成本太高动辄成千上万个原子的体系用DFT直接做分子动力学模拟简直是天方夜谭。于是机器学习势Machine Learning Interatomic Potentials, MLIPs应运而生它像是一个聪明的“翻译官”通过学习海量的DFT计算结果构建出一个能快速、准确预测原子间相互作用的代理模型。这几年通用机器学习势Universal MLIPs, uMLIPs更是火得不行像CHGNet、M3GNet这些模型目标是一个模型打天下覆盖整个元素周期表。训练这类模型需要吞下海量数据而现实是高质量、高精度的DFT数据比如用更先进的r2SCAN泛函算的既稀缺又昂贵。相反用传统GGA或GGAU泛函算的低精度数据却汗牛充栋。一个很自然的想法就是能不能先用海量的低精度数据把模型“喂”个大概预训练再用少量但精准的高精度数据把它“教”得更准迁移学习想法很美好但实操起来就踩坑了。最头疼的问题就是直接用预训练好的GGA模型去微调拟合r2SCAN的数据效果往往很差甚至不如直接用r2SCAN数据从头训练一个小模型。问题出在哪很长一段时间里大家都把注意力放在神经网络架构、损失函数设计上却忽略了一个更根本的物理事实不同DFT泛函给出的“绝对总能量”本身其数值大小是没有直接可比性的。真正决定材料稳定性和性质的是内聚能、形成能这些“相对能量差”。这就好比用两把尺子量身高一把以海平面为零点另一把以珠穆朗玛峰峰顶为零点它们量出的“绝对高度”数值天差地别但两个人的“身高差”却应该是一致的。这个“零点”在MLIP的框架里就体现在原子参考能量AtomRef上。它本质上是模型为每种元素学习的一个能量偏置项。当我们粗暴地把一个用GGA数据训练好的模型其AtomRef对应GGA的“能量基准线”直接拿去拟合r2SCAN数据时巨大的能量尺度差异会导致损失函数初始值极大梯度爆炸模型权重在微调初期就被“冲”到一个糟糕的局部最小值里这种现象在迁移学习里被称为“负迁移”。我们的工作就是系统地剖析了这个“能量基准线”问题并提出了一套简单却极其有效的解决方案在迁移学习开始前先重新拟合目标精度下的原子参考能量。这相当于在换尺子之前先把新尺子的“零点”对齐。实测下来这个策略能让模型在少量高精度数据上快速收敛性能显著超越从头训练真正实现了“用大数据预训练用小数据精调”的愿景。2. 核心挑战拆解为什么能量尺度是迁移学习的“隐形杀手”要理解原子参考能量的关键作用我们得先回到机器学习势特别是图神经网络GNN架构的uMLIPs是如何预测总能量的。对于一个由多种元素构成的晶体结构模型预测的总能量 ( E_{\text{pred}} ) 通常可以分解为两部分[ E_{\text{pred}} E_{\text{GNN}} \sum_i c_i \cdot E_{\text{ref}}^i ]这里( E_{\text{GNN}} ) 是图神经网络根据原子局部环境计算出的“相互作用能”它捕捉了化学键、范德华力等所有原子间相互作用带来的能量变化。而 ( \sum_i c_i \cdot E_{\text{ref}}^i ) 就是原子参考能量项其中 ( c_i ) 是第 ( i ) 种元素在体系中的原子个数( E_{\text{ref}}^i ) 是该元素对应的参考能量。你可以把 ( E_{\text{GNN}} ) 理解为“组装费”把原子参考能量项理解为所有“零件”孤立原子的基础成本。总能量就是基础成本加上组装费。2.1 不同DFT泛函间的“系统性能量漂移”问题就出在这个“基础成本”上。不同的DFT近似如PBE, PBEU, r2SCAN由于对电子交换关联作用处理方式不同它们计算出的单个孤立原子的绝对能量也就是 ( E_{\text{ref}}^i ) 存在系统性的差异。这种差异不是随机的而是对整个元素周期表有一种整体的“漂移”。例如从GGA到更精确的meta-GGA泛函r2SCAN所有元素的参考能量可能整体向上或向下平移了几个eV/atom。对我们的模型来说这意味著什么假设我们有一个在GGA数据上预训练完美的模型它的AtomRef已经完美学习了GGA世界的“能量基准线”。现在我们拿一个用r2SCAN计算的结构给它预测模型的运作流程是用GNN部分基于原子环境算出“相互作用能” ( E_{\text{GNN}} )。加上基于GGA基准线的原子参考能量项。输出总能量预测值 ( E_{\text{pred}} )。而我们的训练标签 ( E_{\text{label}} ) 是r2SCAN计算的总能量它基于另一套完全不同的“能量基准线”。因此即使GNN部分对原子间相互作用的描述是合理的即 ( E_{\text{GNN}} ) 相对准确整个预测值 ( E_{\text{pred}} ) 和真实标签 ( E_{\text{label}} ) 之间也会存在一个巨大的、几乎恒定的偏差这个偏差主要就来源于两个泛函间原子参考能量的差异。2.2 对损失函数和训练动力学的灾难性影响在迁移学习微调时我们冻结模型的大部分层只解锁最后几层或AtomRef等部分参数进行训练。损失函数如能量均方误差MSE定义为[ \mathcal{L} \frac{1}{N} \sum (E_{\text{label}} - E_{\text{pred}})^2 ]由于 ( E_{\text{pred}} ) 和 ( E_{\text{label}} ) 之间存在巨大的系统性偏差损失函数在训练一开始就会有一个非常高的初始值。在反向传播时这个巨大的损失值会产生巨大的梯度。想象一下你只想微调一个精密仪器的一个小旋钮但一开始就给了它一个过猛的力道结果很可能不是调准了而是直接把整个仪器打歪了。这就是迁移学习中“负迁移”的典型场景预训练的知识低精度数据中的原子相互作用模式非但没有帮助反而因为能量尺度不匹配导致模型权重在微调初期就被异常大的梯度更新到一个次优的、难以逃脱的区域最终性能甚至不如一个小规模数据集上从头训练的模型。注意这里的关键在于能量尺度差异影响的主要是总能量的学习而对原子力的学习影响相对较小。因为力是能量的负梯度( \mathbf{F} -\nabla E )常数项的偏移在求导后为零。所以你会看到一个奇怪的现象一个迁移学习失败的模型其力的预测误差可能还行但能量的预测误差却大得离谱。而很多材料性质如形成能、相稳定性恰恰高度依赖于能量的绝对精度。3. 解决方案原子参考能量重拟合策略详解既然问题的根源在于原子参考能量的不匹配那么最直接的思路就是在开始迁移学习之前先把模型的“能量基准线”切换到目标精度上。我们提出的方法流程清晰可操作性强下面我结合具体操作一步步拆解。3.1 方法流程与步骤拆解我们的核心方法对应原文中的Method 4可以概括为以下三个步骤步骤一预训练模型准备与目标数据获取获得一个在大型低精度数据集如Materials Project的GGA/GGAU数据上预训练好的uMLIP模型例如CHGNet。这个模型的权重特别是其GNN部分已经编码了丰富的化学空间原子相互作用知识。准备目标高精度数据集如MP-r2SCAN。这个数据集规模相对较小但每个数据点都包含由高精度泛函r2SCAN计算得到的总能量、原子力、应力等标签。步骤二原子参考能量重拟合这是最关键的一步。我们冻结预训练模型的所有GNN权重仅保持原子参考能量AtomRef层为可训练状态。然后使用目标高精度数据集MP-r2SCAN对这个AtomRef层进行重新训练。训练目标让模型输出的总能量尽可能接近r2SCAN计算的总能量。实际效果由于GNN部分被冻结模型只能通过调整AtomRef的参数来拟合目标数据。这个过程本质上是在学习r2SCAN泛函下的“能量基准线”。经过这个步骤模型的能量输出基准就从GGA切换到了r2SCAN。步骤三基于对齐基准线的迁移学习微调在完成了AtomRef重拟合之后我们解锁模型的全部或大部分参数通常是GNN的后几层使用目标高精度数据集进行全面的微调。此时起点模型的能量输出已经和r2SCAN标签在基准线上对齐初始损失值大幅降低。学习目标模型现在可以专注于学习从GGA到r2SCAN的“原子相互作用能”的差异。因为基准线问题已被排除梯度更新会变得更加平稳、有效使GNN权重能够稳健地适应高精度数据所描述的更精确的物理相互作用。3.2 数学原理与损失函数修正从数学上我们可以更清晰地看到这个策略如何修正了损失函数。假设源模型预训练模型的能量预测为 [ E_{\text{pred}}^{\text{source}} E_{\text{GNN}}^{\text{source}} \mathbf{c} \cdot \mathbf{E}{\text{ref}}^{\text{source}} ] 其中( \mathbf{c} ) 是元素组成的向量( \mathbf{E}{\text{ref}}^{\text{source}} ) 是源数据集的原子参考能量向量。当我们直接用它去拟合目标数据标签 ( E_{\text{label}}^{\text{target}} ) 时能量损失为 [ \mathcal{L}{\text{energy}} E{\text{label}}^{\text{target}} - (E_{\text{GNN}}^{\text{source}} \mathbf{c} \cdot \mathbf{E}_{\text{ref}}^{\text{source}}) ]这个损失项包含了我们不想学的“基准线差异” ( \mathbf{c} \cdot (\mathbf{E}{\text{ref}}^{\text{target}} - \mathbf{E}{\text{ref}}^{\text{source}}) )。我们的重拟合策略相当于在微调前先将模型的AtomRef从 ( \mathbf{E}{\text{ref}}^{\text{source}} ) 替换为 ( \mathbf{E}{\text{ref}}^{\text{source}} (\mathbf{E}{\text{ref}}^{\text{target}} - \mathbf{E}{\text{ref}}^{\text{source}}) )。注意这里的 ( \mathbf{E}{\text{ref}}^{\text{target}} ) 正是我们通过步骤二拟合得到的目标基准线。替换后模型的初始预测变为 [ E{\text{pred}}^{\text{initial}} E_{\text{GNN}}^{\text{source}} \mathbf{c} \cdot \mathbf{E}{\text{ref}}^{\text{target}} ] 此时能量损失变为 [ \mathcal{L}{\text{energy}} E_{\text{label}}^{\text{target}} - (E_{\text{GNN}}^{\text{source}} \mathbf{c} \cdot \mathbf{E}{\text{ref}}^{\text{target}}) (E{\text{label}}^{\text{target}} - \mathbf{c} \cdot \mathbf{E}{\text{ref}}^{\text{target}}) - E{\text{GNN}}^{\text{source}} ] ( (E_{\text{label}}^{\text{target}} - \mathbf{c} \cdot \mathbf{E}_{\text{ref}}^{\text{target}}) ) 其实就是目标数据中“相互作用能”的部分。因此损失函数现在直接衡量的是源模型GNN预测的相互作用能与目标数据真实相互作用能之间的差异。这才是迁移学习真正应该关注和优化的部分。3.3 与其他迁移学习策略的对比为了验证我们方法的有效性我们系统对比了四种策略从头训练Scratch不使用任何预训练知识直接在目标数据集MP-r2SCAN上训练一个新模型。这是基线方法。传统迁移学习TL with frozen AtomRef加载预训练模型冻结所有参数包括AtomRef然后进行微调。这是最朴素的做法效果通常很差。可训练AtomRef的迁移学习TL with trainable AtomRef加载预训练模型但允许AtomRef参数在微调过程中更新。这比方法2稍好但AtomRef和GNN权重同时从错误的起点开始更新仍然会相互干扰容易陷入局部最优。我们的方法TL with refitted AtomRef先冻结GNN单独重拟合AtomRef至目标基准线然后再进行全参数微调。在MP-r2SCAN验证集上的结果表明我们的方法Method 4在能量和力的平均绝对误差MAE上均显著优于其他迁移学习方法并且在使用超过1000个数据点后其数据效率表现为误差随数据量下降的斜率远超从头训练的方法。这证明了预训练知识在经过正确的“基准线校准”后能够被高效地迁移到高精度任务中。实操心得在具体实现时重拟合AtomRef这一步不需要很多数据也不需要训练很久。通常使用目标数据集的一个小子集几千个结构训练几个epoch就足够了。重点是让AtomRef层充分适应新的能量尺度。此外损失函数的权重配置也很关键。在微调阶段我们采用了能量、力、应力和磁矩的加权Huber损失例如3:1:0.1:1这有助于模型在优化能量基准的同时不破坏已学习到的力的预测能力。4. 效果验证与数据效率分析理论说得再好不如实际数据来得有说服力。我们基于CHGNet预训练模型和MP-r2SCAN数据集进行了一系列严格的基准测试从多个维度验证了原子参考能量重拟合策略的有效性。4.1 预测精度提升误差对比一览我们首先在独立的测试集约2.4万个结构上评估了不同方法的预测精度。下表清晰地展示了关键指标的对比方法能量 MAE (meV/atom)力 MAE (meV/Å)应力 MAE (GPa)磁矩 MAE (μB/atom)1. 从头训练 (Scratch)基准值基准值基准值基准值2. TL (冻结AtomRef)显著高于基准与基准相近或略差较差较差3. TL (可训练AtomRef)低于方法2但仍高于基准与基准相近一般一般4. TL (重拟合AtomRef)最低优于基准最低优于基准最佳最佳从表中可以得出几个明确结论能量预测我们的方法Method 4优势最明显。未校正能量基准线的方法2和3会产生巨大的能量误差因为模型在努力拟合一个本不该由它学习的常数偏移。重拟合AtomRef后这个障碍被移除模型能充分利用预训练知识来提升能量预测精度。力与应力预测虽然力的预测对常数偏移不敏感但我们的方法仍然取得了最佳结果。这表明正确的基准线对齐为GNN部分的稳健微调创造了条件避免了因初始大梯度导致的权重“跑偏”从而更好地学习了高精度数据中更精确的原子受力节。负迁移现象方法2和方法3在多项指标上甚至不如从头训练Method 1这就是典型的“负迁移”。预训练知识在没有经过适当适配的情况下反而损害了模型在新任务上的性能。4.2 缩放定律分析数据效率的量化证明对于机器学习模型尤其是数据饥渴的深度学习模型一个核心问题是需要多少数据才能达到理想的性能我们通过绘制模型误差随训练数据量变化的曲线缩放定律来评估数据效率。我们比较了“从头训练”和“我们的迁移学习方法”两条学习曲线。当训练数据量较少如少于1000个结构时两种方法的误差都比较大。但随着数据量增加两条曲线都呈现幂律下降趋势。关键在于曲线斜率我们的迁移学习方法的曲线下降斜率更陡。这意味着每增加一个训练数据点模型性能提升的幅度更大。收敛位置在相同数据量下迁移学习方法的误差始终低于从头训练的方法。外推趋势将曲线向更多数据量外推迁移学习方法达到特定精度阈值所需的数据量远小于从头训练所需。这在实际应用中意味着巨大的成本节约。高精度r2SCAN计算一个结构可能需要数小时甚至数天而GGA计算可能只需几分钟。我们的方法允许研究者用几百个昂贵的r2SCAN数据点将一个由数百万GGA数据预训练的模型快速适配到高精度水平而不是从头收集数万个r2SCAN数据点。这对于探索需要高精度描述的新材料体系如强关联体系、激发态性质至关重要。4.3 稳定性预测从能量到性质的跨越材料模拟的终极目标之一是预测稳定性比如一个化合物是否会分解成其他更稳定的相。这需要计算分解能而分解能依赖于不同相之间形成能的精确差值。因此总能量的绝对精度至关重要。我们测试了不同方法预测材料分解能和形成能的能力。使用重拟合AtomRef策略的模型在分解能预测上的平均绝对误差最低。这是因为我们的方法直接优化了模型对总能量基准的把握。一个能量预测整体偏置的模型可能在预测单个结构能量时误差“看起来”不大如果误差是系统性的但在计算两个能量之差时系统误差会被放大导致稳定性预测完全错误。我们的方法从根本上减少了这种系统偏置。5. 实践指南与避坑要点基于我们的研究经验和后续的多次实践我总结出一套在跨精度迁移学习中应用原子参考能量策略的实操指南和常见问题排查方法。5.1 实施步骤检查清单当你准备将一个uMLIP从低精度数据集迁移到高精度数据集时可以遵循以下清单数据准备与检查确认数据一致性确保你的源预训练数据和目标微调数据在结构处理、收敛标准上尽可能一致。例如都使用相同的截断能、K点网格、赝势等。不一致的计算设置会引入“噪声”干扰AtomRef的学习。划分数据集将目标数据按材料ID而非单个结构划分为训练集、验证集和测试集防止信息泄露。建议比例8:1:1。准备AtomRef重拟合子集从训练集中随机抽取一小部分例如5%-10%至少包含几千个结构覆盖所有元素专门用于AtomRef的重拟合。模型准备与重拟合加载预训练模型完整加载预训练模型的权重和架构。冻结GNN参数将模型中所有与图卷积、消息传递等相关的层参数设置为requires_gradFalse。配置AtomRef训练确保只有AtomRef层的参数是可训练的。使用一个较小的学习率如1e-4优化器通常用Adam即可。损失函数仅用能量MSE。执行重拟合在准备好的AtomRef子集上训练监控训练集能量损失。通常很快几个epoch就会收敛。保存此时模型的AtomRef参数。全模型微调加载重拟合后的模型此时模型拥有适配目标基准线的AtomRef但GNN仍是源模型的。解冻参数解冻所有参数或按需解冻最后几层。对于CHGNet这类模型通常解冻所有参数效果更好。配置微调使用完整的训练集。损失函数采用加权组合如能量:力:应力:磁矩 3:1:0.1:1。学习率可以设得比重拟合时稍大如1e-3并配合余弦退火等调度器。早停与评估在验证集上监控损失使用早停策略防止过拟合。最终在独立的测试集上评估性能。5.2 常见问题与排查技巧在实际操作中你可能会遇到以下问题这里提供一些排查思路问题1重拟合后模型在微调初期损失仍然很高。可能原因AtomRef重拟合不充分或目标数据集内部存在严重的不一致性如混合了不同计算设置的数据。排查检查重拟合阶段训练损失是否已平稳至较低值。可视化几个不同元素组成的结构的预测能量与标签能量散点图看是否存在明显的系统偏差或异常离群点。清洗目标数据集。问题2微调后力的预测精度反而下降了。可能原因损失函数中力的权重设置过低或者学习率过大导致模型在优化能量时“遗忘”了预训练中学到的优秀的力场信息。排查尝试提高损失函数中力项的权重。降低初始学习率并采用更温和的学习率调度策略。可以在微调初期先冻结一部分GNN底层负责提取局部特征的参数只训练高层和AtomRef。问题3对于某些特定元素如过渡金属、稀土元素迁移后性能不佳。可能原因不同DFT泛函特别是GGAU与r2SCAN对于强关联电子体系的处理方式差异巨大导致这些元素的原子参考能量和局部电子结构描述变化剧烈仅调整AtomRef不足以捕捉。排查与解决这是一个更高级的挑战。可以尝试为这些元素使用独立的、更灵活的参考能量项或者在微调时对这些元素相关的网络层给予更高的学习率。本质上这需要模型学习更强的“泛函间差异”表征。问题4如何确定AtomRef是否成功对齐实操技巧在重拟合前后分别用模型预测同一组目标数据。计算每个结构预测能量的平均值与标签能量平均值的差值。重拟合前这个差值可能很大几十到几百meV/atom。重拟合后这个差值应该接近0。你还可以绘制元素平均原子能量标签值 vs 预测值的散点图理想情况下所有点应分布在yx这条直线附近。5.3 策略的普适性与扩展思考我们的工作虽然聚焦于从GGA/GGAU到r2SCAN的迁移但原子参考能量重拟合的思想具有普适性。它适用于任何存在系统性能量偏移的场景不同DFT泛函间如PBE到HSE06甚至向更高阶的杂化泛函或量子化学方法如CCSD迁移。相同泛函不同计算设置即使使用同一种泛函不同的赝势、基组或收敛阈值也可能导致微小的系统性能量偏移在集成多来源数据时这一策略同样有益。整合多精度数据集未来构建更强大的uMLIPs必然需要融合来自Materials Project、OQMD、AFLOW、JARVIS等不同数据库、不同计算精度的数据。预先对每个数据子集进行原子参考能量的对齐或标定将是构建高质量混合数据集的关键预处理步骤。最后我想强调的是这项技术揭示了一个更深层的逻辑在利用器学习连接多尺度、多精度计算时我们必须更加尊重物理量的本质。能量是一个相对值机器学习模型学习的是“关系”和“差异”。直接让模型去拟合带有不同零点的绝对数值无异于让它在混乱的坐标系中摸索。通过原子参考能量重拟合我们为模型建立了一个统一的、正确的参考系让它能够专注于学习真正重要的物理内容——原子间相互作用的精确描述。这不仅是提升模型性能的技巧更是一种构建稳健、可解释、可迁移的科学机器学习模型的方法论。