Skala:机器学习写出的计算化学公式,能又快又准吗?

为什么算一个分子的能量,精度和成本总是打架?

这篇文章只核对一件事:机器学习泛函 Skala,能不能用半局域档位的便宜成本,同时兑现精度、成本、可及性三本账。要核这本账,先得知道它压在哪。药物分子能否结合蛋白质、催化剂怎样压低反应能垒、电池材料还能不能更稳定,这些问题的答案最终都指向同一件事,算清楚一个分子、或者一堆原子的总能量。计算化学界用了几十年的主力工具是密度泛函理论(DFT),它把几十个电子的复杂计算压缩成一句关于电子密度的近似。总能量里几乎每一项都严格可算,唯一未知、必须靠猜的,是把电子密度映成能量的那条规则,也就是交换-相关(XC)泛函。泛函可以通俗理解成一条"密度进、能量出"的计算规则。就是这一条规则的精度,卡住了 DFT 几十年,而这场核对,查的正是这条规则。

要核 Skala 的成本与精度两本账,先得看清传统泛函的价格表,那是一条明码标价的梯子。最底层的 LDA 只看每个点上的密度数值,像买菜只问单价。GGA 补上密度梯度,相当于再问产地。meta-GGA 引入动能密度,把货架怎么摆都看进去。到 hybrid 这一级,开始掺入昂贵的精确交换项,等于每件商品都送检化验。double hybrid 还要叠加波函数级别的关联修正,化验单摞化验单。每上一阶,精度升一档,计算成本从 O(N³) 抬到 O(N⁴)、O(N⁵) 甚至更高。这就是教科书里那张 Jacob's ladder,一阶一价,从不赊账。传统泛函想更准,只能爬梯子,代价一路翻倍。而梯子脚下已经挤满了数百个手工泛函,各在某个角落好用,合成一座谁也说不清优劣的"泛函动物园"。

Jacob's ladder 与机器学习的捷径

图注:左下的 Jacob's ladder 五层阶梯(LDA、GGA、meta-GGA、hybrid、double hybrid)通往顶端的"化学精度天堂";一支 ML 旁路示意机器学习泛函可以从低阶直接登顶,不必把每一阶的价付一遍。这是概念示意图,不含任何具体泛函名,也没有 Skala。ML-DFT 综述

要理解 Skala 走的是哪条路,先看机器学习给这条梯子带来的新走法。这张图来自一份 2025 年的 ML-DFT 综述,用高水准参考数据学出来的泛函,可以从某个低阶直接"升空",而不是沿着阶梯一级一级付价ML-DFT 综述。Skala 正是顺着这条旁路来的。

但"绕开爬梯"这个念头喊了很多年,从没真正兑现过。此前的尝试几乎都撞在同一堵墙上,要么精度不够看,要么贵到没法用。Skala 凭什么敢说自己能用半局域档位的成本,同时拿下精度和成本两本账?这是接下来要逐笔核对的问题。

核对还差最后一块,可及性。模型不是论文里的插图,而是要装进别人的计算流水线,跑几千几万个分子,结果还得可复现。这个部署要求不是锦上添花的工程题,精度和成本只有落到别人的软件里跑通了才算数,它跟精度、成本并列,构成这次核对的三本账。Skala 是第一个把这三件事同时当作考核目标的机器学习泛函,这正是它值得逐本查账的原因。

Skala 的宣言:三个账本,一个都不想欠

Skala 的赌注可以概括成一句话。用半局域的计算成本,拿到混杂级的精度。半局域的意思是只看每个点附近一小块的密度与动能信息,成本随体系按 O(N³) 增长,是 DFT 里最便宜的一档。以前这一档钱买到的最好传统泛函,在行业标尺上的误差大致落在 5–8.5 kcal/mol 区间,而 Skala 的宣言把它压进 3 以内。

论文把这个宣言拆成三本账。第一本是精度账。GMTKN55 是主族热化学与动力学公认的行业标尺,Skala 在上面报出加权总误差 2.8 kcal/mol,55 个子集中 32 个排名第一,超过其他所有被对比泛函的胜场之和Skala 论文。第二本是成本账。渐近复杂度保持在半局域的 O(N³),分子变大时计算时间按便宜泛函的曲线增长。第三本是可及性账。MIT 许可开源,代码与权重公开挂网,能装进主流计算化学软件。

微软官方博客用一张双基准图把第一本账钉在坐标上。

Skala 在 W4-17 与 GMTKN55 双基准上的位置

图注:横轴是 GMTKN55 的加权误差,纵轴是 W4-17 原子化能误差,两轴都越低越好;Skala 是唯一落入左下"化学精度"阴影区的点,右侧数据表列出 8 个泛函(含 Skala 本尊,对照泛函 7 个)。图内单参考子集的数值与论文正文有细微出入,正文数字统一以论文 v6 为准。MSR 博客

两个轴同时赢,赢的不是单科。还要知道一点背景。Skala 1.1 不是从零起的模型,而是 1.0 的数据扩充加架构升级。1.0 训练在约 15 万条数据点上,1.1 扩到约 40 万;参数量从约 27.6 万涨到约 38.5 万;覆盖元素从 H–Ar 加若干重元素,扩到连续的 H–Xe 并额外测试了 Pb、Bi。两张官方模型卡都记着 1.0 到 1.1 的进步,GMTKN55 加权误差从 3.89 降到 2.72 kcal/mol,几何优化的键长键角精度从 GGA 级别升到 range-separated hybrid 级别模型卡。所以它不是发表即冻结的论文模型,而是会随数据持续迭代的框架,1.1 只是第一站。

三本账缺任何一本,它都只是又一个刷榜模型。下面逐本查账,先看它凭什么能用便宜的成本把"非局域"学出来。

核心机制:神经网络怎么把非局域效应学出来?

精度和成本打架的根源,在"非局域"三个字。物理上,一个原子处的电子并不只感受自己周围那一小块空间,还受整条分子链上远处原子的牵连,这种长程影响就是非局域效应。传统上只有 hybrid 泛函靠昂贵的精确交换项,才能尝到一点非局域的甜头。Skala 的赌注是根本不出这份钱,不掺精确交换,让神经网络自己把非局域的规律从数据里学出来。

架构做了四个关键决策。第一,输入保持半局域。每个网格点喂给网络的仍是 7 个 meta-GGA 描述符,密度、梯度范数、动能密度,分自旋上、下与合计。没有精确交换,成本就锁死在便宜档位。第二,自旋-阶不变量。同一个 MLP 分别作用在"上、下"两种自旋顺序上,再取平均,让结果不随自旋标记的写法改变,物理对称性在结构上天然成立,不用人工硬编码。第三,非局域 message passing(消息传递)。在每个原子中心放一个"粗点",用三层等变消息传递在细网格和粗点之间来回搬运信息,再配对称收缩让每层最高能表达四体相互作用。这里是非局域被学出来的心脏。第四,有界增强因子。最终输出能量密度的增强因子被 sigmoid 包在 [0,2] 区间,显式满足 Lieb-Oxford 下界这条已知物理不等式;模型全程可微,势能由自动微分解析给出,方便嵌进自洽场(SCF)循环。全模型约 38.5 万参数,其中 33.1 万在局部分支。

"增强因子"是泛函世界里的老概念,可以理解成给局部能量密度乘的一个系数。几代手工泛函的历史,很大程度就是设计这个系数的历史,一版比一版函数更复杂,换来更准的能量。Skala 让网络自己去学这个系数,但给它套上物理的笼子:输出被 sigmoid 限制在 0 到 2 之间,强制满足 Lieb-Oxford 下界。这条下界是泛函理论里经过数学证明的不等式,说的是任何真实体系的交换能都不可能比某个由密度决定的量更负。把这样的物理先验直接装进网络的输出结构,是它和纯黑箱模型最本质的区别。

论文 Fig 1b 把五段流程合成一张图。

Skala 的网格点处理流程

图注:从左到右五段:meta-GGA 特征输入 → 自旋-阶不变量 → 逐点局部处理 → 三次非局域消息传递(粉色粗点即原子中心的 coarse point)→ 再逐点处理 → 数值积分得到总能量。粉色粗点只是消息传递的拓扑示意,不是分子真实的电子云。Skala 论文

把非局域这步讲透,可以用村代表的比方。细网格上的点是村民,每个原子的粗点就是该村的代表。村民只向自己村的代表汇报,不跨村喊话。代表们互相开会交换情报,消息从村民传到代表、再回到村民,来回三轮。最后代表把别村的情报带回本村,村民再据此更新判断。分子变大只是多几个村,代表数随原子数线性增长,所以总成本仍是 O(N³),不会爆炸。这个结构让每个村民掌握的信息里,事实上包含了隔了几根键之外的原子传来的消息,非局域就这样"由近及远"地学了出来。

这套设计是不是真在干活,论文给了一个直白的证据。只保留局部分支、去掉非局域模块时,Diet GMTKN55 上的加权误差平均比完整模型高一倍左右,也就是非局域部分把误差压掉了约 50%,五个随机种子取均值Skala 论文。这组消融能直接证明的结论是:非局域模块对降低该基准误差很重要,粗点和消息传递不是装饰。至于非局域物理是否真的被学了出来,那是架构的设计意图。论文后续用有效非局域交换比例这类跨基准诊断给出了与之一致的间接支持,但单靠这组消融数据不足以直接下这个结论。

网络有了,教材从哪来?下一章看训练数据。

弹药从哪来:73,040 个分子与 40 万条金标准标签

训练泛函和训练大语言模型有一个本质区别,标签必须近乎正确。语言模型的标签可以容忍模糊,泛函的标签却是一个分子的能量,必须准到化学精度量级,也就是约 1 kcal/mol 以内。能达到这个标准的参考方法是耦合簇(CCSD(T)),业界公认的金标准,贵到每个分子都要用昂贵的波函数方法算很久。Skala 的训练标签统一走 W1-F12 协议,给出的就是 CCSD(T) 外推到完备基组极限级别的结果,每一份标签都是一次真金白银的昂贵计算。

这些标签的主体,来自微软新建的数据集 MSR-ACC/TAE25,73,040 个闭壳层分子的总原子化能MSR-ACC。化学空间画得很规矩。氢到氩的前三个周期,剔除惰性气体,不超过 5 个非氢原子,基态单重态平衡几何,再经三重过滤把多参考特征显著、会裂成碎片的结构剔掉。分子骨架靠 SMILES 枚举加 GPT-2 自回归生成,几何走 UFF 到 GFN2-xTB 再到 r²SCAN-3c、最后 B3LYP-D3(BJ) 的多级优化。在这基础上再补电离势、电子亲和势、质子亲和力、反应路径、非共价簇、扭曲几何等数据,Skala 1.1 的训练集最终约 40 万条能量差。

73,040 个分子长什么样,数据集论文用三张分布图摊开给你看:

MSR-ACC/TAE25 的元素与结构分布

图注:三面板。左图是非氢原子数直方图,主质量集中在 4 到 5 个;中图是 15 种元素在数据集中出现的频次,氢出现在 97.6% 的分子里;右图是分子几何形状占比,84.3% 是普通三维构型。这是数据集的覆盖分布,不是元素重要性的排序。MSR-ACC

它覆盖的是一片结构各异的闭壳层小分子,而不是某几类分子的大量重复。

为什么押注数据规模是一条不同的路线?40 万条 CCSD(T)/CBS 级的能量差,为拟合参考能量提供了远比上一代丰富的监督信号,这是 Skala 的数据路线:让网络自己从海量高精度标签里发现规律。这和上一代 ML 泛函 DM21 走的是相反的路,DM21 只用 2,235 个反应,靠人工塞进分数电荷、分数自旋的数学精确约束来教模型正确行为。不过要说明白,非局域物理是否真的被学了出来,单凭数据规模还不能下结论,这要由前文的架构描述与后文的考场表现共同支持。这条分野的后果,第六章再回收。

闭壳层、小分子、平衡几何,这三个限定不是偷懒,而是诚实。强关联体系,比如正在断裂的化学键和过渡金属配合物,连参考方法本身都不完全可靠,CCSD(T) 的金标准身份在自己的适用域内才成立。把训练边界画在标签可靠的地方,模型的边界才可能清晰。

这里还有个防作弊设计。数据按 99/1 切分训练与验证,并显式剔除与 GMTKN55、W4-17 重叠的分子,保证你下一章看到的成绩单不是背过答案再去考试MSR-ACC。训练分两阶段。先在固定 B3LYP 密度上预训练,横扫约 40 万样本,因为密度固定时一次前向就能算总能量,便宜。再换模型自己的自洽密度精调约 2 万步,让能量和密度同时变好,避免"用密度误差换能量误差"的隐性作弊Skala 论文。

教材齐了,上考场。

考场成绩单:2.8 kcal/mol 是怎么在 GMTKN55 上拿到的

先认识这把尺子。GMTKN55 是 Goerigk 和 Grimme 在 2017 年发布的基准库,55 个子集覆盖四类任务,基本性质与小体系反应 18 个,大体系反应与异构化 9 个,反应能垒 7 个,非共价相互作用 21 个GMTKN55。整个库由 2462 个单点计算拼出 1505 个相对能量,其中 13 个子集是 2017 年才首次提出。55 个子集不能简单平均算总分,因为各自的能量尺度差很远,误差的绝对值天然不齐。WTMAD-2 加权解决这个问题,按每个子集的能量尺度重新标定权重,让"绝对值大"的大能量子集不至于淹没小能量子集。

Skala 在这把尺子上交出 WTMAD-2 = 2.8 kcal/mol。放进传统泛函的坐标里,一张表就能看清。

泛函家族WTMAD-2 (kcal/mol)
Skala-1.1学习型半局域2.8
DSD-BLYP-D3(BJ)double hybrid3.08
ωB97X-Vhybrid3.98
SCAN-D3(BJ)meta-GGA7.86
revPBE-D3(BJ)GGA8.27

传统泛函的对照值取自基准配套的官方数值表,含 2019 年勘误后的修订值GMTKN55。反直觉的地方正在这里。按 Jacob's ladder 的逻辑,hybrid 掺入了精确交换,理应更准。Skala 用更便宜的手段拿到了更低的误差。2.8 不仅低于最好的 hybrid(ωB97X-V 的 3.98),还逼近最贵的 double hybrid(DSD-BLYP-D3(BJ) 的 3.08)。这就是"破梯子"三个字的含义。用论文的散点图看更直观。

Skala-1.1 在 Jacob's ladder 上的位置

图注:GMTKN55 的 WTMAD-2 散点图。纵轴是泛函家族分类(GGA、meta-GGA、Hybrid),横轴是 WTMAD-2,越低越好。Skala-1.1 的点落在 meta-GGA 一行,却比所有 hybrid(B3LYP、M06-2X、ωB97X-V 等)都靠左。纵轴是家族分类,不是成本轴。Skala 论文

成绩单不能只看一个总分,论文用三组对照往下拆Skala 论文。W4-17 是 200 个小分子的原子化能标准集,被当作检验泛函的压轴题。在 183 个单参考分子上,Skala 的 MAE 是 0.92 kcal/mol,跨过了化学精度门槛。把 17 个多参考体系算进来,整体是 1.23 kcal/mol。论文为多参考子集单独启用了自旋对称破缺初始化加多次重启,常规评估流程不包含该步骤。Wiggle150 把三种药物分子(efavirenz、苯青霉素、腺苷)扭到高度应变的构象再测相对能量,训练时加入扭曲几何数据(MSR-ACC/Distortion)对这一组带来实打实的改善。还有两个细节。SN2 能垒误差约为最佳 meta-GGA 泛函的 1/2.5。用 Grimme 提出的"分子温度计"量化,Skala 的有效非局域交换约 53.7%,接近 CCSD(T) 参考值约 60%。该诊断值与较强的非局域交换特征一致,不过它只是支持性指标,不能独自证明网络的内部物理机制。这张图把三组对照画在了一起。

W4-17 与 Wiggle150 的子集稳健性

图注:三面板。左栏是 W4-17 原子化能 MAE,分全集、183 个单参考、17 个多参考三组;中栏是 Wiggle150 在三种高度应变药物分子上的误差;右栏对比训练中加入与未加入扭曲几何数据时的 Wiggle150 误差,每种设置跑 5 个随机种子。Skala 论文

剩下两本账也各有证据。成本账,论文报告 O(N³) 渐近复杂度,GPU 实测与 r²SCAN 同阶,明显快于 hybrid,实验里 hybrid 用 GauXC 的 sn-LinK 实现时在超过 2000 个基函数上甚至跑不动Skala 论文。可及性账,MIT 许可,pip install skala 即装即用,PySCF 跑 CPU,GPU4PySCF 按 CUDA 12 与 13 分开打包,ASE 做几何优化,另有 GauXC 提供原生 C++/Fortran 集成,加载权重还带 SHA-256 校验microsoft/skala。1.0 到 1.1 的进步也在两张模型卡上交叉可查,加权误差 3.89 降到 2.72 kcal/mol模型卡。

三本账都有了白纸黑字的证据。但成绩单好看,不等于可以无限外推。最后一章看边界,看它和上一代 DM21 的分野。

它和 DM21 差在哪,以及它还没回答的问题

先把"上一代"请出来。2021 年 DeepMind 的 DM21 是机器学习泛函的里程碑,一个小 MLP 学习局域增强因子,用分数电荷、分数自旋系统的数学精确约束,把"已知正确的行为"直接塞进训练目标,当年在 GMTKN55 上也是 SOTA,逼近更贵的 double hybridDM21。把它的架构图和第三章的 Skala 图并排一放,两条路线的差别一目了然。

DM21 的架构与训练目标

图注:四面板。A 是小型 MLP 加局域增强因子(e_LDA、e_HF、e^ωHF)的架构;B 是训练数据构成,约 2,235 个反应,含分数电荷/分数自旋约束样本;C 是 SCF 一致性约束;D 是部署流程。图中没有色散修正节点,图注文字提到但图上不可见。DM21

问题出在哪?DM21 的路子是小数据加人工约束,训练集只有 2,235 个反应,正确答案靠显式规则灌输。后续研究把这条路的代价翻了出来。Kulaev 等 2025 年(JCP)在后续评估中发现,DM21 的几何优化必须用极小的数值微分步长(0.0001 到 0.001 Å)才能拿到平滑梯度,否则噪声污染分子Kulaev 2025;Zhao 等 2024 年(PCCP)报告,在 TMC117 过渡金属反应子集上约三成反应 SCF 干脆不收敛Zhao 2024;一旦越过训练化学空间(>Kr),精度掉到只和 B3LYP 相当DM21。这些后续表现显示其适用范围可能受训练与约束设计限制,这是"被训练分布圈住"最直接的代价。

维度DM21(2021)Skala 1.1(2026)
训练数据2,235 个反应约 40 万条能量差
非局域来源显式加入局域 HF 交换项message passing 从数据学出来
物理先验分数电荷/自旋精确约束数据规模加可微设计
已知短板SCF 收敛难、梯度噪声训练空间边界明确、如实披露

Skala 的回应是三件事。数据规模上,40 万条对 2,235 条,让规律从统计里浮现,而不是从规则里灌输。可微性上,整个模型解析可导,势能直接由自动微分给出,不做数值微分,天然规避 DM21 的梯度噪声。工程上,DM21 的 SCF 集成至今是痛点,Skala 直接交付 PySCF、GPU4PySCF、ASE、GauXC 多条路径。作者把这条路线定位为数据驱动的设计取向,从"教它物理"转向"让规律从统计里浮现",并不宣称这是范式更替。这一取向能否真正带来比上一代更广泛的泛化,仍待外部独立验证。2025 年的 ML-DFT 综述把这条路概括成一句设计纲领,找出容易算、又能跨体系泛化的密度特征,配足够的训练数据ML-DFT 综述。Skala 恰好落在这句话上。

更深一层是泛化问题。同一篇综述把泛化拆成两类:同一分子换构型,叫构型泛化,早就被证明可行;换一个从未见过的化合物,叫组合泛化,至今仍是开放问题ML-DFT 综述。Skala 在 32/55 个子集上第一,其中大部分落在其训练覆盖的主族化学空间内;边界之外的组合泛化仍是开放问题。

但论文没有回避未回答的问题,边界列得很诚实Skala 论文。色散尚未显式建模,目前用固定 D3 校正占位,范德华力这类长程弱相互作用要留给未来版本。训练化学空间的主体是氢到氩、不超过 5 个非氢原子的闭壳层小分子;强关联与激发态基本落在训练空间之外;过渡金属仅在训练数据中占很小比例(官方模型卡列有少量原子/二聚体数据),其稳健性未在主线基准评估。多参考体系需要特殊初始化,不是开箱即用。网格收敛与 libXC 风格库不兼容,必须走专用 SCF 集成,这是它和既有 DFT 流水线之间明确的摩擦点。模型卡甚至直接写着"不是生产级模型",建议使用者先在自己关心的体系上验证模型卡。

那怎么给 Skala 打分?把判断标准交给四问。精度账有没有行业标尺背书,有;成本账的理论与实测是否一致,一致;可及性是扔出代码还是装了能用的软件,可安装;边界有没有说清楚,比多数泛函论文说得都清楚。微软的表态是把它作为会随数据扩充持续演进的功能性框架维护,1.0、1.1 已逐版发布,用更多数据、同一个框架继续涨精度。这和传统"泛函动物园"里几百个泛函并存、各说各话的生态完全不同,是 AI for Science 走向基础设施化的信号。

回到开篇的问题。机器学习写出的计算化学公式,能又快又准吗?在它圈定的化学空间里,它给出了目前少有的"又快、又准、又可用"的答案;边界之外,答案留给数据说了算。判断一个学习型泛函值不值得用,就看它把边界说得多清楚,而不是只看平均误差。

想深入可以读原文:Accurate and scalable exchange-correlation with deep learning,arXiv:2506.14665

参考文献

Skala:机器学习写出的计算化学公式,能又快又准吗?