3.8.4 On-the-fly机器学习力场#

VASP6.3版本开始支持机器学习力场MLFF (Machine Learning Force Field),由参数ML_LMLFF=.TRUE.控制。简单理解为,在做MD计算10000个离子步(NSW控制总步数)时,通过一些算法判断,只对其中算法认为有价值的原子构型做DFT计算,其余的构型通过机器学习力场来获得体系的能量和离子受力,从而大大加速MD模拟,时间缩短约3个数量级。这样做的物理逻辑源于:原子受力主要取决于局域环境,在MD过程中,可能有很多时刻原子局域构型是等价的,因此可以用一些算法来预测“原子受力和体系能量”。有了机器学习力场,就可以研究更大尺寸的模型(~1000原子以上)和做更长时间的模拟(~100ps量级)。

VASP的机器学习力场与Gaussian approximation potential (GAP) 思路类似,其原理部分见官网

https://www.vasp.at/wiki/index.php/Machine_learning_force_field:_Theory

https://www.vasp.at/wiki/index.php/Category:Machine-learned_force_fields

要在VASP中实现MLFF只需要在原来AIMD的INCAR中加这几个参数:

ML_LMLFF = TRUE    # for MLFF
ML_MODE = train

ML_MODE参数适用于6.4版本以上,如果是6.3版本,则采用ML_ISTART=0

一般有这两个参数就可以开始进行MLMD模拟了.

可以自行从官网提供的MLFF例子来学习:

https://www.vasp.at/wiki/index.php/Liquid_Si_-_MLFF

如果你要使用VASP自带的MLFF,请仔细阅读官方在vaspwiki上给出的说明和参数设置建议,见上面两个链接,并建议多看使用VASP的MLFF的文献:

https://journals.aps.org/prl/pdf/10.1103/PhysRevLett.122.225701

https://journals.aps.org/prb/abstract/10.1103/PhysRevB.100.014105

https://journals.aps.org/prmaterials/abstract/10.1103/PhysRevMaterials.7.L030801

需要强调的是,MLFF的精度如何,是需要慎重考虑的,粗糙评估力场精度的方法是查看能量/力/应力三个方面,ML与DFT的误差:grep ERR ML_LOGFILE

研究不同的问题有不同的精度要求。常见的机器学习势函数(如Deep Potential的势函数)的能量误差在5meV/atom以内,力的误差在100meV/Å量级。如何判断一个机器学习势函数是否“可信”(达到DFT精度),除了看基本的能量、力和压强差别之外,还需要通过一些物理性质进一步判断。比如对于固体自由能相关的计算,还需要满足MLFF得到的声子和DFT得到的声子一致。

The Journal of chemical physics, 2023, 158(12).

Nature Computational Science, 2023, 3(12): 998-1000.