Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

8.3 分子与材料设计

上一节的任务是「读结构」:给一条序列,说出它的形状。这一节的任务反过来:给一个性能要求,造出一个满足它的分子或材料。这是科学里最贵的一件事——候选空间是天文数字(有机小分子的可合成空间常被估计在 106010^{60} 量级,具体估计随约束条件大幅变化,需核实),而每一次「真值获取」(合成 + 表征,或高精度量子化学计算)都要花时间与钱。

传统办法是先合成再测(慢),或先算性质再筛(准但贵)。深度学习提供两条互补的路:预测(把性质算快)与生成(把候选造出来)。而这两条路都站在同一块地基上——机器学习势函数(machine-learned interatomic potential):它把昂贵的第一性原理能量与受力计算换成一次网络前向,快出数个数量级,于是「在百万级候选上跑分子动力学」第一次成为可行。

这一节按三步走。第一,把正向预测与反向设计的形状说清楚,尤其是「反演问题多解、欠定」这一点如何决定方法选择。第二,讲清机器学习势函数为什么快、快的代价是什么、以及可信边界画在哪里——这是本讲最需要动手检查的一节,因为「势函数的失效」在工程上表现为「模拟结果看起来正常但物理上错的」,比崩溃更危险。第三,讲主动学习闭环与生成式设计的约束,并把 GNoME 类工作的新颖性争议两方证据并列摆出来。

设计问题的形状

8.3.1 正向预测与反向设计

定义 8.3.1 · 正向性质预测与反向设计

正向(property prediction):给定一个分子 / 材料的表示 x\boldsymbol x(成分、结构、图、SMILES 类字符串),预测目标性质 yy: fθ:x↦y,y∈{形成能、带隙、稳定性、溶解度、毒性、活性}.f_\theta:\boldsymbol x\mapsto y,\qquad y\in\{\text{形成能、带隙、稳定性、溶解度、毒性、活性}\}. 它是监督回归问题,标签可由 DFT / 实验 / 高通量计算生成。

反向(inverse design):给定目标性质 y⋆y^\star(可能是一组约束),求满足它的结构 x⋆∈arg⁡max⁡x y(x)或x∼pθ(x∣y⋆).\boldsymbol x^\star\in\arg\max_{\boldsymbol x}\ y(\boldsymbol x)\quad\text{或}\quad \boldsymbol x\sim p_\theta(\boldsymbol x\mid y^\star). 它是反问题,典型特征是:多解(许多分子能给出同一种性质)、欠定(约束数远少于自由度)、并且可行域被物理与化学硬约束切割(价键、稳定性、可合成性)。

第三类:发现(探索):不指定目标,而是在空间中寻找值得注意的新候选(新结构、新化合物、异常性质)。它的评分函数本身就是研究问题,方法上与主动学习(8.3.3)重叠。

筛选与生成:两种「找分子」的方式
  • 筛选(screening):先有库、再挑宝。枚举或检索已知分子库,用代理模型打分排序,留下高分候选。它的天花板是库的覆盖范围——库里没有的好分子,你永远找不到;但它非常可靠,成本可控,且容易加约束(不合格的直接丢掉)。
  • 生成(generation):按需造候选。从数据里学出分子分布,再采样新结构,能跳出已知库;代价是要为「有效性、可合成性、稳定性」额外把关,而且评估生成结果比评估筛选结果麻烦得多。

实务上两者配合使用:生成负责开疆(提出库里没有的骨架),筛选负责收敛(在候选上做严格打分与约束过滤)。这也解释了为什么几乎所有成功的自动设计工作流都同时包含一个生成器与一个评分器。

三类表示与三类目标的对照(先定接口,再选模型)

分子 / 材料任务的建模方式取决于用什么表示,而表示决定了模型能吃到哪些先验:

表示 形状 天然携带的不变量 适合的目标 常见模型
成分向量(composition) 元素比例向量(如 5 维) 无几何信息 形成能、稳定性粗筛 MLP、梯度提升
图(graph) 节点 = 原子、边 = 键 / 邻近 置换不变、局部性 性质预测、势函数 消息传递网络、图 Transformer
三维结构(3D geometry) 坐标集合 + ⁣+\! 元素类型 可写成旋转 / 平移等变(8.2) 势函数、力、构象性质 等变网络(E(3)/SE(3) 类)
字符串 / 序列 token 序列(SMILES 类) 无 生成、快速相似性 语言模型

选择规则:需要能量与力 → 必须用三维表示 + 等变(因为力是向量输出);只需要粗略排序 → 图或成分往往就够;做生成 → 常用字符串或图 + 生成模型。用错表示是这类任务最常见的性能损失来源(用成分向量预测需要几何的性质,等于提前扔掉信息)。

势函数:为什么能快数个数量级

8.3.2 机器学习势函数:局部能量分解 + 等变网络

定义 8.3.2 · 势能面与局部能量分解

对一组原子位置 x=(x1,…,xN)\boldsymbol x=(\boldsymbol x_1,\dots,\boldsymbol x_N) 与元素类型 s=(s1,…,sN)s=(s_1,\dots,s_N),势能面(potential energy surface)是函数 E(x,s)E(\boldsymbol x,s);原子受力与动力学都由它导出(受力是负梯度,见 例 8.3.1)。

局部能量分解(local energy decomposition)把总能量写成每个原子贡献之和,而每个原子的贡献只依赖它邻域内的局部环境: E(x,s)=∑i=1NEi(Ni(x,s)),E(\boldsymbol x,s)=\sum_{i=1}^{N}E_i\bigl(\mathcal N_i(\boldsymbol x,s)\bigr), 其中 Ni\mathcal N_i 是「以原子 ii 为中心、在截断半径 rcr_c 内的邻居及其相对位置」构成的局部环境(含元素类型)。

等变消息传递网络(equivariant message-passing neural network)是 EiE_i 的一类通用实现:在原子图上做若干轮「汇总邻居信息」的迭代,每轮保持旋转等变 / 平移不变,最后从原子特征读出标量 EiE_i。代表工作:NequIP(2021,arXiv:2101.03164)、MACE(2022,arXiv:2206.07697)。

为什么「局部」是关键

物理直觉:短程相互作用随距离迅速衰减,因此某个原子的能量主要由它的近邻决定;远处的原子只通过长程静电 / 色散产生小修正(这些要在模型里显式补,见下面的边界清单)。

工程直觉:局部性把三件难事一起解决了:

  1. 可扩展到不同体系大小:同一套参数适用于 N=10N=10 与 N=105N=10^5,因为每个局部环境的「评价标准」不变;
  2. 平移等变天然成立:把整块体系挪动不影响任何局部环境(只涉及相对位置);
  3. 计算量与 NN 近似线性:NN 个原子、每个原子 kk 个邻居,消息传递的开销是 O(Nk)O(Nk)——这是它能把「百万原子体系」跑起来的根本原因。

对照一下:密度泛函理论(DFT)计算要解自洽场,通常随电子数呈立方级(更精确的算法可降到更低阶,但常数很大)增长,且每个构型都要重新迭代。局部 + 一次前向 = 便宜,这是「快数个数量级」的第一层来源。第二层来源见 例 8.3.1:不需要重复求解,因为能量是学出来的函数,任何构型一次前向即可。

例 8.3.1 · 力的一致性:为什么「力从能量求导」是硬要求

设模型给出能量 Eθ(x)E_\theta(\boldsymbol x),力取 Fi=−∇xiEθ(x).\boldsymbol F_i=-\nabla_{\boldsymbol x_i}E_\theta(\boldsymbol x).

  1. 证明这样得到的力场是保守场:对任意闭合路径,总做功为零;
  2. 由此说明:若模型把力当作独立回归目标(单独一个力头),会破坏什么性质?工程上如何检测这种不一致?
解

① 保守性(用混合偏导对称性)。 记 xi,α\boldsymbol x_{i,\alpha} 为第 ii 个原子的第 α\alpha 个坐标(α∈{1,2,3}\alpha\in\{1,2,3\})。当 EθE_\theta 二阶连续可微时, ∂Fi,α∂xj,β−∂Fj,β∂xi,α=−∂2Eθ∂xi,α ∂xj,β+∂2Eθ∂xj,β ∂xi,α=0,\frac{\partial F_{i,\alpha}}{\partial x_{j,\beta}}-\frac{\partial F_{j,\beta}}{\partial x_{i,\alpha}} =-\frac{\partial^2 E_\theta}{\partial x_{i,\alpha}\,\partial x_{j,\beta}}+\frac{\partial^2 E_\theta}{\partial x_{j,\beta}\,\partial x_{i,\alpha}}=0, 因为偏导可交换。所有一阶偏导构成的力常数矩阵(Hessian)因此是对称矩阵;对任意闭合路径 C\mathcal C: ∮C∑iFi⋅dxi=−∮CdEθ=0.\oint_{\mathcal C}\sum_i \boldsymbol F_i\cdot d\boldsymbol x_i=-\oint_{\mathcal C}dE_\theta=0 . 即 做功与路径无关,力场是保守场。

② 独立回归力会破坏什么。 若力由一个独立的网络头 Gθ(x)\boldsymbol G_\theta(\boldsymbol x) 输出,GG 一般不是任何标量函数的梯度,于是:能量差与做功不一致(沿着一条路径从态 A 到态 B,能量变化与力的积分对不上);围绕闭合回路的积分不为零,等于系统存在一个「永动机式的能量环」。在分子动力学里这会表现为能量漂移或凭空注入——轨迹总能缓慢升温或降温,长时间模拟完全失效。

③ 检测方法(工程上必须做):有限差分一致性检验——取一个实际构型,对随机选出的若干原子做小位移 δ\delta,比较 ∥Gθ(x) + Eθ(x+δe)−Eθ(x−δe)2δ (分坐标)∥\Bigl\lVert \boldsymbol G_\theta(\boldsymbol x)\ +\ \frac{E_\theta(\boldsymbol x+\delta\mathbf e)-E_\theta(\boldsymbol x-\delta\mathbf e)}{2\delta}\ \text{(分坐标)}\Bigr\rVert 与力的量级,相对误差应当与数值微分自身的精度同阶(见 8.4 关于最优步长 hh 的讨论)。此外还可以直接对称性检查:抽一批构型计算力常数矩阵,检验 ∂Fi,α/∂xj,β\partial F_{i,\alpha}/\partial x_{j,\beta} 与 ∂Fj,β/∂xi,α\partial F_{j,\beta}/\partial x_{i,\alpha} 的差异是否在容差内。这两条检查都不需要 DFT 真值,是在任何实验之前就该做的体检。■\blacksquare

∎
例 8.3.2 · 数量级估算:从 DFT 到势函数

用下列数量级(随体系、泛函、硬件、实现变化很大,此处只用于建立方向感,具体数字需核实)估算加速比与「什么时候值得训练一个势函数」:

  • DFT 单点自洽场计算:对一个含几十个原子的周期性体系,约 101∼10310^{1}\sim10^{3} 秒;
  • 一个等变势函数的一次前向(同规模体系):约 10−4∼10−210^{-4}\sim10^{-2} 秒;
  • 分子动力学通常需要 105∼10710^{5}\sim10^{7} 步。

请给出加速比量级,并判断「为了一个特定体系训练势函数」在什么条件下划算。

解

① 单点加速比。 取下限:101/10−2=10310^{1}/10^{-2}=10^{3};取上限:103/10−4=10710^{3}/10^{-4}=10^{7}。因此单点速度差约 103∼10710^{3}\sim10^{7} 倍(素材给出的量级为 103∼10610^{3}\sim10^{6} 倍,与此一致)。

② 整段模拟的账。 用 DFT 直接跑 10610^{6} 步 MD:每步需一次力计算(力可由能量求导或单点输出,量级同单点),总时间约 106×101=10710^{6}\times10^{1}=10^{7} 秒 ≈116\approx116 天(按每天 8640086400 秒)。用势函数:106×10−3=10310^{6}\times10^{-3}=10^{3} 秒 ≈17\approx17 分钟。量级差 104∼10510^{4}\sim10^{5} 倍——这是为什么「用 DFT 跑长时 MD」在几乎所有实际研究里都不可行。

③ 训练成本的对比账(关键一步)。 训练一个势函数需要一批 DFT 标签(比如 104∼10510^{4}\sim10^{5} 个单点),成本约 104×101=10510^{4}\times10^{1}=10^{5} 秒(约一天)到 105×103=10810^{5}\times10^{3}=10^{8} 秒(约三年)。于是在两种场景下结论完全不同:

  • 一次性、小规模:只想跑 1000 步 MD、只想看一个构型的最优几何——DFT 直接算(10410^{4} 秒量级)比训练便宜得多。此时训势函数是浪费。
  • 反复使用、大规模探索:要在同一化学空间里做构象搜索、多温度 / 多组分扫描、百万级筛选——势函数的训练成本被摊薄到可以忽略,收益是几个数量级。

④ 结论(可操作的判据):先估算两边的总账 CDFT⋅N调用vsC标签⋅N标签+C训练+C势⋅N调用⋅ϵ−1,C_{\text{DFT}}\cdot N_{\text{调用}}\quad\text{vs}\quad C_{\text{标签}}\cdot N_{\text{标签}}+C_{\text{训练}}+C_{\text{势}}\cdot N_{\text{调用}}\cdot\epsilon^{-1}, 第一项随调用次数线性增长,第二项有一个固定的训练门槛。当预期调用次数超过「训练门槛 / 单点节省」时,训势函数就开始划算;反之应当直接用 DFT。这也解释了为什么材料发现平台几乎必然维护自己的势函数库:它们的调用次数以百万计。■\blacksquare

∎
势函数的可信边界清单(用之前逐条过)
边界 具体表现 为什么危险 检查动作
化学空间覆盖 训练集里没有的元素组合 / 氧化态 / 配位环境 模型仍然会输出一个看似合理的数 在目标体系上对若干DFT 抽查点计算误差;建立「外推警告」指标(如对训练分布的距离度量)
长时动力学漂移 百万步后总能量 / 温度缓慢漂移 单步误差极小但系统性,累积成非物理结果 跑能量守恒的长时测试(NVE 系综下总能量漂移率),设阈值
力与能量不自洽 力单独回归,非梯度场 破坏保守性(例 8.3.1) 有限差分一致性检验 + 力常数对称性检查(不需要 DFT)
长程相互作用 静电、色散、电荷转移被局部截断忽略 对离子晶体、带电体系、大分子聚集误差大 显式加长程项(工程惯例),对带电 / 极性体系单独验证
解离与断键极限 训练数据都在平衡构型附近 反应、断裂、过渡态的绝对能量与势垒不可信 用包含反应路径的数据训练;对势垒做专门验证
温度 / 压力范围 只含 300 K 附近的构型 高温相、相变行为失效 明确声明适用温压区间;外推区间必须重测
自旋与电子态 磁性、自旋跨态、强关联体系 能量面本身不唯一,单值模型表达不了 这类体系需要考虑多参考 / 多态建模,不能默认为单能量面

总纲:势函数的能力上限是训练分布的上限。它不像传统力场那样「在大范围内物理上可解释」,而是「在训练覆盖的区域内高保真」——因此工程上必须把适用域声明当作交付物的一部分,而不是脚注。

关于势函数的四个常见误解
  1. 「机器学习势函数 = 更好的传统力场」:不是同一类东西。传统力场是参数化的物理形式(在定义域内大致可信、外推温和);势函数是在训练分布内拟合的高保真插值器(分布内很准,分布外可能给出「看起来正常」的错误结果)。两者的失败模式完全不同:前者常常「粗糙但可预测」,后者可能「精确但静默地错」。
  2. 「只要 DFT 精度高,势函数就一定准」:训练数据的高精度是必要条件,不是充分条件。误差还来自覆盖率(是否包含相关构型)、损失设计(能量与力如何加权)、截断半径与长程项、以及数据中的噪声标签一致性(用不同泛函 / 不同参数混在一起会产生互相矛盾的标签)。
  3. 「跑出来没崩就说明模拟有效」:分子动力学最危险的失效不崩溃。要看守恒量(能量漂移)、看结构是否滑向训练集外(如配位数、键长分布是否落在训练范围)、看若干关键量(径向分布函数、扩散系数)与高精度参照是否一致。
  4. 「力从能量求导太慢,直接训一个力头更省」:省的是训练时的算力,赔的是物理一致性(例 8.3.1)。现代做法普遍是同时预测能量与力,但力仍要求自洽(能量对坐标求导)或至少用一致性损失约束二者的关系(工程惯例,具体损失设计随工作而异)。

主动学习与新材料的「新颖性」

8.3.3 GNoME 式主动学习闭环

主动学习闭环的四步(材料 / 分子的通用骨架)

主动学习(active learning)把「昂贵评估」当成稀缺预算来分配。通用骨架:

步骤 做什么 关键设计点 常见错误
① 候选生成 在结构 / 成分空间里提出候选(枚举、置换、生成模型采样、进化算法) 候选的多样性比数量重要;要覆盖不同原型与化学族 只在已知结构附近扰动 → 结论只是「已知材料的邻域」
② 代理筛选 用图网络 / 势函数快速预测形成能、带隙、稳定性等 打分器必须带不确定性估计(否则无法判断「值得算」) 用确定性打分排序 → 系统性地偏向模型过度自信的区域
③ 高精度验证 对少量挑出的候选跑 DFT / 实验 验证量与阈值要事先定好,防止「先算再挑阈值」 只验证模型的高分候选 → 无法估计漏检率
④ 回填与重训 把新标签并入训练集,重训打分器 数据配比要防止新数据挤掉旧分布(灾难性遗忘) 只在同一化学族内循环 → 代理模型越来越窄

采集函数(acquisition function)是第 ②③ 步之间的决策规则。最简单的形式是把预测值与不确定性加权相加 a(x)=y^(x)+β σ^(x),a(\boldsymbol x)=\hat y(\boldsymbol x)+\beta\,\hat\sigma(\boldsymbol x), 其中 y^\hat y 是预测均值、σ^\hat\sigma 是不确定性(如模型集成中各成员的预测方差),β\beta 控制「探索—利用」的权衡:β\beta 小 → 只挖模型已认为好的区域;β\beta 大 → 更愿意去模型不确定的地方探索(可能拿到信息量更大的样本)。具体形式(UCB、EI、Thompson 采样等)随工作而异,本质都是同一件事:用不确定性指导采样。

为什么主动学习比随机采样省

把「找稳定新结构」想成在一个巨大空间里捞针。随机采样的问题是:绝大多数样本是「明显不稳」或「明显已知」的,信息量低。主动学习的两条信息增量来源是:

  • 不确定性驱动(σ^\hat\sigma 大):模型对该区域没把握,验证它能同时改善模型与排除一片区域。
  • 预测值驱动(y^\hat y 好):模型认为这里有希望,验证它是为了可能的好结果。

这两者有明确的分工:不确定性负责「把空间划清」,预测值负责「把好点找到」。只做后者会陷入模型自身的偏见圈(模型没见过的区域永远得不到验证);只做前者会把预算浪费在「模型一定错但没意义」的区域(例如明显不解离的构型)。工程上通常先用不确定性做几轮「铺面」,再用预测值做「收敛」,最后把少量最优候选交给 DFT / 实验(这是社区常见做法,不是唯一正确配方)。

GNoME 类工作:结果与新颖性质疑(两方证据并列)

GNoME(Nature 620:80,2023;无 arXiv)是这类闭环的代表性工作:用图网络 + 主动学习在晶体结构空间中大规模搜索,论文报告在百万量级的候选库中找到数十万被判定为稳定的候选结构(具体数字、稳定性判据与流程细节以原文为准,需核实)。它把「用 ML 势 / 图网络做高通量筛选」的规模推到了一个新的量级,这一点没有争议。有争议的是「新」这个字。

支持方的论证(多为论文主张与其后续工作):

  • 流程是可复现的闭环:候选生成 → 代理筛选 → DFT 验证(稳定性判据通常是「形成能相对凸包的高度」),每一步都可检查;
  • 候选规模远超此前的人工 / 枚举式研究,覆盖了大量未被实验探索的成分与结构原型;
  • 论文对部分候选给出了合成与表征的后续工作线索(对应材料领域常见的「从预测到验证」链条)。

质疑方的论证(来自公开评论与后续分析文章,具体文献需核实):

  • 「新」依赖比对口径:判定「与现有数据库中的结构不同」需要结构相似性判据与数据库覆盖假设;阈值一变,结论就会变——新颖性是对判据敏感的结论,而不是一个绝对属性;
  • 原型相似性:大规模搜索产生的候选里,很多可能是已知结构原型的畸变、超胞重排或替代变体,在结构相似度上与前人工作高度接近;
  • 热力学稳定 ≠ 动力学稳定或可合成:形成能位于凸包附近说明它在 0 K 热力学意义上相对稳定,但不保证在有限温度下不分解、也不保证存在可行合成路径;
  • 验证的稀疏性:被 DFT 复核的样本只是先验筛选后的子集,因此「数十万稳定候选」与「数十万可获得的材料」之间还隔着实验这一关。

本节的读法(不站队):这类工作的价值在于把搜索规模推进一个数量级并给出可复现流程;而「发现了多少新材料」这个数字必然依赖判据与验证覆盖。因此使用这类结果时应当:① 明确它用的判据与数据库版本;② 把「热力学稳定」与「可合成」分开表述;③ 对任何单个候选做独立复核再采用(8.6 会把这条写成一般原则)。

例 8.3.3 · 设计一份「新颖性 + 稳定性」复核清单

你拿到一份「候选新材料清单」(每条含成分、结构、预测形成能、来源模型的置信度)。请设计一份四步复核流程,让「哪些候选值得投入合成」这个判断尽量可靠,并指出每一步最可能出现的误判。

解

第 ① 步:重算稳定性判据(不信任清单自带的数)。 用同一版本的数据库与凸包定义重算每条候选的形成能与「相对凸包高度」。误判来源:凸包随数据库更新而变化(今天稳定的候选,明天可能因新发现而不再稳定),因此必须记录数据库版本与计算日期。

第 ② 步:新颖性核查(先查重,再谈新)。 用结构相似性(如原子环境指纹类描述符 + 相似度阈值)与成分相似性同时检索现有数据库;对高相似度候选标为「已知结构的变体」而非「新材料」。误判来源:阈值任意性——阈值收紧会否掉真正的新结构,放宽会把畸变当成新发现;因此应当报告「在若干阈值下分别有多少条通过」,而不是只报一个数字。

第 ③ 步:动力学与有限温度检验。 对通过前两步的候选(此时数量已可管理)跑有限温度分子动力学(用可信势函数,或用 DFT 做短时验证),检查它在目标温度下是否保持结构、是否有原子扩散 / 相变。误判来源:势函数本身的外推误差(势函数的可信边界清单 的清单)——要先用 DFT 抽查确认势函数在这个化学空间内可信,否则这一步等于用模型检验模型。

第 ④ 步:可合成性与风险排序。 用合成可达性评分与已报道的类似反应路线做粗筛,把候选分成「有先例路径」「需要新路线」「目前无路径」三类;再按稳定性、新颖性、合成难度做排序,输出一份带失败判据的推荐清单(例如「若在 X 条件下 3 天内未得到目标相,则该候选判为不可得」)。误判来源:合成可达性评分是启发式代理指标,它给出的排序只在类内比较可靠,不能作为「一定能合成」的证据。

总结这四步的分工:① 保证数字口径一致,② 保证「新」这个词成立,③ 保证动态下不崩,④ 保证有时间与路径去做。任何一步跳过,后面的结论都只能作为「候选」而不能作为「发现」。■\blacksquare

∎

生成式分子设计的约束

8.3.4 有效、可合成、稳定:三道硬约束

定义 8.3.3 · 生成式设计的三个约束

一个生成模型产出的分子,至少要过三道关才能进入下一阶段:

约束 含义 常用检查方式 失败后果
有效性(validity) 符合价键规则与化学常识(价态、芳香性、立体化学) 化学工具包的解析与价态检查(如 RDKit 类工具) 生成的只是「看起来像分子」的图,无法讨论其性质
可合成性(synthesizability) 存在可行的合成路线与试剂 合成可达性评分(启发式)、逆合成搜索、文献类似反应检索 实验室做不出来,设计再漂亮也没用
稳定性(stability) 在目标条件下不分解(热力学 + 动力学 + 化学稳定性) 形成能相对凸包、有限温度分子动力学、水解 / 氧化敏感性评估 合成出来立刻分解或在使用条件下失效

工程上还常加第四道:目标性能与约束的联合满足(例如「带隙在区间内、且不含某类元素、且溶解度达标」)——这是多目标约束优化,而不是单目标回归。

为什么「像真分子」远远不够

生成模型的训练目标是「拟合数据分布」,因此它会自然地优先生成统计上常见的东西:这些样本在像不像的指标上得分很高,却在能不能用上毫无保证。这中间的三道沟各有具体机制:

  • 有效性沟:如果生成过程是逐 token 拼字符串,任何一步都可能产出违反价键的组合。因此要么在解码时约束(掩码掉非法 token),要么用能表达化学的表示(如片段、图结构),要么事后过滤(最弱的做法,会浪费大量采样预算)。
  • 可合成性沟:数据分布里本来就混着大量「已报道但难以获得」的分子——模型学到的是「文献里出现过的样子」,不是「实验室里容易做的样子」。所以可合成性必须显式建模(用逆合成可行性作为打分或条件)。
  • 稳定性沟:目标性能(如高能量密度、强反应性)往往与稳定性方向相反——上界分子可能过热力学不稳定。这不是模型缺陷,而是目标函数本身需要显式写出这条约束。

因此正确做法是:把约束写进生成过程(条件、掩码、投影、打分引导),而不是只在最后过滤。 事后过滤的成本随约束数量指数上升(通过率相乘)。

条件生成与两种「反演」的关系

给定目标 y⋆y^\star,三条路径(8.1 已提过,这里补齐它们的接口差异):

路径 机制 需要什么模型 优点 主要风险
条件生成 训练 pθ(x∣y)p_\theta(\boldsymbol x\mid y)(扩散 / 流模型 / 条件 VAE),按目标采样一批候选 带条件的生成模型 一次给出一批多样候选,能跳出已知库 需要大量带 yy 标签的数据;条件控制不精确时性质分布漂移
贝叶斯优化 / 主动学习 用代理模型 + 采集函数挑下一个候选去算 / 去做实验 代理模型 + 不确定性 天然适配「实验预算极小」,每一步都用上全部已有信息 高维空间收敛慢;代理模型的偏差会把搜索带偏(8.3.3)
可微目标优化 若性质模型可微,直接对 x\boldsymbol x 做梯度上升 x←x+η∇xy^(x)\boldsymbol x\leftarrow\boldsymbol x+\eta\nabla_{\boldsymbol x}\hat y(\boldsymbol x) 可微且可信的性质模型(常有约束) 直接、高效,可端到端串联(如可微仿真,8.4) 会跑到模型可信域之外(「代理模型被利用」),必须加约束与投影回可行集

一条实用经验:三者可以串联——用条件生成造候选、用可微优化在可行域内精调、用贝叶斯优化与实验闭环收尾。但当性质模型被当成优化目标时,一定要同时监控「优化后的候选是否仍在训练分布内」(例如检查描述符分布、检查约束满足率),否则得到的最优解只是模型自己的幻觉。

本节的六个常见误解
  1. 「机器学习势函数可以替代 DFT」:只在训练覆盖的域内、对已声明适用的性质有效(势函数的可信边界清单)。必须明确写出适用域,并在外推区间回到 DFT / 实验。
  2. 「跑了 MD 没崩就说明模拟可信」:要检查守恒量、结构分布是否落在训练范围内、关键统计量是否与参照一致(例 8.3.1 的一致性检验不需要真值,应先做)。
  3. 「预测形成能稳定就等于可合成」:热力学稳定是必要条件的近似,不是充分条件;动力学稳定与合成路径是另外两关(例 8.3.3 的 ③④ 步)。
  4. 「生成模型能生成有效分子,所以设计问题解决了」:有效性只是第一关。可合成性与稳定性必须显式建模,「像真分子」不等于「能用的分子」。
  5. 「主动学习只是省算力的小技巧」:它同时改变你得到什么信息。不做不确定性驱动的采样,你的数据集会系统性偏向模型已经擅长的区域,最终得到一个自我确认的循环。
  6. 「候选数量越大,发现越多」:候选数量只有在判据固定、验证覆盖可比的前提下才有意义。跨工作比较「发现数量」是典型的不可比数字——这类数字只在同一篇文章内部的不同方法之间有解释力。
即时自测 · 8.3

Q1 用一句话解释机器学习势函数「比 DFT 快数个数量级」的两个来源,并说出它的能力上限由什么决定。

Q2 一个势函数在 NVE 系综模拟中,总能量在 10610^{6} 步内漂移了若干 kJ/mol。请给出三条可能原因,并说明你会先做哪个检查、为什么它不需要 DFT 真值。

Q3 你得到一个「新稳定晶体」的候选清单。请写出你会提出的三个问题来区分「真发现」与「判据产物」。

参考要点

Q1 两个来源:① 局部能量分解把计算量降到近似线性(O(Nk)O(Nk),每个原子的贡献只依赖截断半径内的邻居),而 DFT 需要自洽场迭代、通常高阶增长;② 一次前向替代一次求解——能量是学出来的显式函数,任意构型一次前向即可给出能量与力,不需要为每个构型重新迭代到自洽。能力上限由训练分布覆盖决定:分布内高保真,分布外可能给出「看起来正常」的错误结果(这正是 势函数的可信边界清单 的清单要逐条检查的原因)。

Q2 三条可能原因:① 力与能量不自洽(力由独立头输出,破坏保守性);② 积分器步长过大(数值积分误差导致能量漂移,与模型无关);③ 势函数单步误差存在系统性偏置(例如外推区间内的局部环境被系统性高估 / 低估,累积成漂移)。先做的检查:能量—力一致性检验(有限差分一致性 + 力常数矩阵对称性,见 例 8.3.1)——因为它的真值来自模型自身(EθE_\theta 对坐标的导数),只需自动微分,完全不需要 DFT;若此项通过,再调小积分步长复测(区分 ② 与 ③)。

Q3 ① 判据口径:稳定性用的是哪个数据库版本的凸包、「新」用的相似度阈值是多少?阈值变化后清单数量怎么变?② 动力学:候选在目标温度下跑有限温度 MD 是否保持结构、是否有扩散或相变?(可用已知可信的势函数做,但要先用 DFT 抽查势函数在该化学空间内的可信度。)③ 合成性:有没有已报道的类似反应路线?如果没有,它属于「待开发路线」还是「目前不可得」?只有当三个问题都有明确答案,才把候选升级为「值得投入实验的目标」。

延伸阅读
  • Behler & Parrinello, Generalized neural-network representation of high-dimensional potential-energy surfaces(2007,Physical Review Letters)——局部环境描述符 + 神经网络势的开创性工作,本节 定义 8.3.2 的「局部能量分解」思想来源。
  • Batzner 等, E(3)-equivariant graph neural networks for data-efficient and accurate interatomic potentials(2022,Nature Communications;预印本 arXiv:2101.03164,对应 NequIP)——等变消息传递势的代表。
  • Batatia 等, MACE: Higher order equivariant message passing neural networks for fast and accurate force fields(2022,arXiv:2206.07697)——在等变框架里用「高阶(多体)消息」提升精度 / 数据效率的代表实现。
  • Merchant 等, Scaling deep learning for materials discovery(2023,Nature 620:80;无 arXiv)——GNoME,8.3.3 的主动学习大规模工作;其候选的新颖性评价存在公开争议,引用该工作时请同时说明判据与数据库版本。
  • 开源实现:mace、nequip、e3nn(等变算子库)、pymatgen(材料结构与数据库工具)、RDKit(分子解析与价键检查)。这些是论文随附或社区维护项目,接口与许可需核实。

本节小结:设计问题的两条腿是预测(把性质算快)与生成(把候选造出来),而两者都依赖同一块地基:机器学习势函数——它用局部能量分解 + 等变网络把 DFT 的计算量降到近似线性、把每次求解换成一次前向,于是有 103∼10610^{3}\sim10^{6} 倍的单点加速(例 8.3.2)。但它的能力上限是训练分布的覆盖,因此「适用域声明 + 能量力一致性 + 长时守恒性 + 关键统计量对照」四条检查必须作为交付物的一部分(势函数的可信边界清单)。主动学习决定把昂贵验证花在哪里:不确定性「把空间划清」、预测值「把好点找到」(主动学习闭环的四步);而 GNoME 类工作的「新颖性」是对判据敏感的结论,必须与「可合成」「动力学稳定」分开表述(GNoME 类工作:结果与新颖性质疑)。生成式设计的第三道门槛是有效性、可合成性、稳定性三关齐过,把约束写进生成过程远比事后过滤便宜(定义 8.3.3)。下一节把注意力从「离散的分子」移到「连续的场」:偏微分方程、仿真加速与可微分仿真的代价。