机器学习力场(Machine-Learned Force Fields, MLFFs)作为一种新兴的计算方法,已在第一性原理分子动力学(Ab Initio Molecular Dynamics, AIMD)模拟中展现出独特优势(参见 VASP Wiki:Category:Machine-learned force fields)。该方法既保持了基于量子力学基本原理的物理准确性,又显著降低了传统 AIMD 模拟的计算成本,使得长时间尺度的分子动力学模拟成为可能。
传统 AIMD 模拟(如基于密度泛函理论 DFT 的方法)由于需要对电子结构进行精确求解,单步计算代价极为昂贵。而经典分子动力学虽然采用经验力场大幅提升计算效率,但其准确性严重依赖于预先设定的原子间势能函数,这些势能通常基于实验数据构建,并经验性地纳入范德华力、静电相互作用等关键物理因素。这种建模方式使得力场性能受限于研究者对特定体系相互作用的认知程度。
VASP 提供的实时机器学习力场技术有效解决了上述两难问题。本教程将系统性地演示如何通过调整机器学习超参数来优化声子谱计算结果,最终获得最优的力场参数文件。通过本教程,您将了解如下 VASP 机器学习的超参数:
- ML_IWEIGHT #权重选取模式
- ML_WTSIF #权重系数
- ML_WTOTEN #总能权重系数
- ML_WIFOR #力权重系数
- ML_SIGW0 #拟合步长精度
- ML_RCUT1 #径向截断距离
- ML_RCUT2 #夹角截断距离
- ML_EPS_LOW #拟合精度
通过合理地调整参数,我们最终将得到与 DFT 几乎一模一样的结果。

教程链接: go.openbayes.com/OzP7A
该教程将在云平台 OpenBayes.com 上使用 RTX 4090 进行演示,使用下方邀请链接注册即可获得 4 小时 RTX 4090 免费使用时长:
openbayes.com/console/sig...
一、输入文件说明
输入文件包含
arduino
├── dft_phonon
│ ├── band.yaml (DFT参考声子谱)
├── ml_phonon (机器学习声子谱计算文件夹)
├── refit (微调文件夹)
│ ├── INCAR
│ ├── KPOINTS
│ ├── ML_AB
│ ├── POSCAR
│ ├── POTCAR
│ ├── clean.sh
│ └── run.sh
├── t.py
本教程只关注 ~/refit 文件夹下的输入文件即可
bash
#进行机器学习拟合
mpirun -n 1 vasp_std
#将力场参数文件转移到声子计算文件夹中
cp ML_FFN ../ml_phonon/ml/ML_FF
#进行声子机器学习计算
cd ../ml_phonon/
chmod 777 *.sh
./run.sh
cd ../
#绘制对比图
python t.py
INCAR 机器学习拟合设置
ini
SYSTEM = Si
IVDW = 11 #范德华力
ISMEAR = 0 #费米展宽
SIGMA = 0.02 #展宽
LWAVE = F #不保留波函数
LCHARG = F #不保留电荷
IBRION = 0 #MD (treat ionic degrees of freedom)
NSW = 1 #机器学习需要设置成 1
POTIM = 1 #MD time step in fs
ISIF = 3 #
机器学习
ML_LMLFF = T #启用机器学习力场
ML_ISTART = 3 #重新拟合模式(微调模式)
ML_IWEIGHT = 3 #权重选取模式
ML_WTSIF = 1 #权重系数
ML_WTOTEN = 1 #总能权重系数
ML_WIFOR = 1 #力权重系数
ML_SIGW0 = 1E-20 #拟合步长精度
ML_RCUT1 = 8. #径向截断距离
ML_RCUT2 = 6. #夹角截断距离
ML_EPS_LOW = 1E-20 #拟合精度
ML_MB = 5000 #运行内存设置
KPOINTS(启用机器学习时不使用,随便设置一个即可)
css
K-Spacing Value to Generate K-Mesh: 0.040
0
Gamma
4 4 4
0.0 0.0 0.0
POSCAR
机器学习训练的超胞大小,可参考教程:使用 VASP 进行机器学习力场训练
POTCAR
系统对应元素的赝势组合,这里为 Si 的赝势
ML_AB
这是事先计算好的系统对应的分子动力学数据,具体训练流程可参考教程:使用 VASP 进行机器学习力场训练,然后将 ML_ABN 重命名为 ML_AB,这里为 Si 的分子动力学数据,已经事先准备好了。
二、操作步骤
1. 克隆并启动容器
登录 OpenBayes.com,在「公共教程」页面,选择「VASP 机器学习力场微调」教程。
页面跳转后,点击右上角「克隆」,将该教程克隆至自己的容器中。

选择「NVIDIA GeForce RTX 4090」以及「vasp」镜像,OpenBayes 平台提供了 4 种计费方式,大家可以按照需求选择「按量付费」或「包日/周/月」,点击「继续执行」。可以使用文章开头的邀请链接,获得 RTX 4090 使用时长!


待系统分配好资源,当状态变为「运行中」后,点击「打开工作空间」。


2. 上传文件
首先打开「终端」,输入以下命令进入 refit 文件夹。
bash
cd refit
然后上传准备好的硅赝势,这里可以使用「官网例子」里的赝势 POTCAR。把 POTCAR 放到目录中,并复制到「ml_phonon/ml」中。


3. 安装 phonopy 环境
输入以下命令安装 phonopy 环境。
r
conda install -c conda-forge phonopy
当模型运行到以下阶段,输入「y」同意安装。

4. 运行脚本
输入以下命令运行脚本。
bash
chmod 777 *.sh
./run.sh
5. 微调参数
最后计算的结果将输出在 pdf 中,查看文件 ml.png


回到「refit」文件夹,更改权重模式为「ML_IWEIGHT = 2」,再次运行脚本查看结果。

最后得到的输出结果为下图。可以看到结果更差了,回头更改权重模式「ML_IWEIGHT = 1 再观察结果。

得到结果如下图。综合比较可以发现 1 和 3 的结果差不多,甚至 1 的细节更好(光学支),接下来在「ML_IWEIGHT = 1」的情况下,进行改进。我们尝试单独增加拟合力的精度,将「ML_WIFOR」改小。

可以发现变化不大,这说明我们应该尝试增加截断距离,给予更多拟合空间。

可以看到,结果反而更差(光学支),那这说明参数空间过大,找到的极值点反而不是最小值点。我们应当反过来减小截断距离。

更改参数,重新运行后,我们最后得到了能生成与 DFT 一模一样声子谱的机器学习力场参数。
