VASP 教程:VASP 机器学习力场微调

机器学习力场(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 文件夹下的输入文件即可

run.sh

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 一模一样声子谱的机器学习力场参数。

相关推荐
江瀚视野几秒前
百度文心大模型4.5系列正式开源,开源会给百度带来什么?
人工智能
聚铭网络20 分钟前
案例精选 | 某省级税务局AI大数据日志审计中台应用实践
大数据·人工智能·web安全
涛神-DevExpress资深开发者1 小时前
DevExpress V25.1 版本更新,开启控件AI新时代
人工智能·devexpress·v25.1·ai智能控件
Jamie201901061 小时前
健康孪生智能体使用起来复杂吗?医者AI技术核心与用户体验
人工智能
GLAB-Mary1 小时前
AI会取代网络工程师吗?理解AI在网络安全中的角色
网络·人工智能·web安全
道可云1 小时前
道可云人工智能每日资讯|浦东启动人工智能创新应用竞赛
人工智能·百度·ar·xr·deepseek
kyle~2 小时前
目标检测在国防和政府的应用实例
人工智能·目标检测·计算机视觉
兮℡檬,2 小时前
torchvision中的数据使用
人工智能
Qdgr_2 小时前
价值实证:数字化转型标杆案例深度解析
大数据·数据库·人工智能
c++服务器开发2 小时前
一文详解Character AI:实用指南+ ChatGPT、Gemini对比分析
人工智能·chatgpt