跳至主要内容

dpgen训练经验

最新的dpgen参考PtCuP /work/qan/kluo/PtCuP 0.1K的第0代采样很重要可以多重复几次确保99以上的准确率,它是后续高温的基础
单点能计算 ISYM = 2

nohup dpgen run param.json machine.json 1>log 2>err&

nohup dpgen init_bulk param.json machine.json  1>log 2>err&
初始数据集产生,只能一个POSCAR的计算 但是可以同时提多个任务,但是每个任务都需要 POTCAR POSCAR 一 一对应才行。 
elements 和POSCAR POTCAR保持一致。 "type_map": ["Ti","C","V","Cr","Nb","Mo"],都写全才行
POSCAR不需要改成特定顺序 程序最终生成数据集的时候会根据type_map自动统一匹配

usage: dpgen [-h] {init_surf,init_bulk,auto_gen_param,init_reaction,run,run/report,collect,simplify,autotest,db,gui} ...

dpgen is a convenient script that uses DeepGenerator to prepare initial data, drive DeepMDkit and analyze results. This script works based on several sub-commands with their own options. To
see the options for the sub-commands, type "dpgen sub-command -h".

positional arguments:
  {init_surf,init_bulk,auto_gen_param,init_reaction,run,run/report,collect,simplify,autotest,db,gui}
    init_surf           Generating initial data for surface systems.
    init_bulk           Generating initial data for bulk systems.
    auto_gen_param      auto gen param.json
    init_reaction       Generating initial data for reactive systems.
    run                 Main process of Deep Potential Generator.
    run/report          Report the systems and the thermodynamic conditions of the labeled frames.
    collect             Collect data.
    simplify            Simplify data.
    autotest            Auto-test for Deep Potential.
    db                  Collecting data from DP-GEN.
    gui                 Serve DP-GUI.

optional arguments:
  -h, --help            show this help message and exit

初始数据格式化:
只用一行Python命令(已经有对应的todata.py脚本了)就能转化成deepmd需要的数据,输入python后出现>>>
a) >>> import dpdata
b) >>> dpdata.LabeledSystem('OUTCAR').to('deepmd/npy', 'data', set_size=300)
  1. 设法至下而上的推导出采样空间:
    1. 确定最终的大MD模拟过过程
    2. 尽量重现这样的采样空间:即只盯着一个目标相?
    3. 但是设计尺寸问题后,可以xyz上个方向切割出感兴趣的结构:例如正常用10*10*10A准立方(最好各向异性)结构,后续可以设置 40*5*5,甚至80*4*4的重点关注X方向?依次到Y Z 方向?似乎还是有漏掉的?
    4. 正常只关注一个相(目标相的正常采样流程)的采样完毕之后:提供一个大MD需要用到的场景(完全重现),关闭fp,只看lammps采样部分。找到大模型的candidate,人工研究分析一下,确定需要补充的结构空间,手动构建初始结构,放进去采样学习,再测试真实MD效果,如此反复?相当于加入了人为的积极干预,更有意义更合理
  2. 开始之前要确定ML-FF的用途,确保数据集包含力场的应用场景,尤其是重点目标。根据应用场景可以将数据集分类切割成小模块
  3. 提前设计规划方案,有目的的查文献,有依据的确定具体参数for INCAR and parameter of deeptrain.
  4. According to Ref. 50, a practical rule of thumb is to set σlow slightly larger than the training error achieved by the model (dp test) and set σhigh 0.1 eV/Å–0.3 eV/Å higher than σlow. In this paper, σlow and σhigh are set to 0.12 eV/Å and 0.25 eV/Å, respectively. (Huang, J., Zhang, L., Wang, H., Zhao, J., Cheng, J., E, W., 2021. Deep potential generation scheme and simulation protocol for the Li 10 GeP 2 S 12 -type superionic conductors. J. Chem. Phys. 154, 094703. https://doi.org/10.1063/5.0041849) dpgen的totalstep最多40w [15,30,60] [80,80,80] cutoff 5-1 用float32,所以后期精度不够的时候适当提高σlow即可,这是个采样过程,最终还需要重新用=100*Nframes/batch_size( effective_epochs 落在 50–150 左右,太多会导致过拟合 100倍足够了) [25,50,100] [240,240,240] cutoff 6-1   float64.
    4个元素type开始,两个net都用float32(平时就用32足够了)的精度才可以压缩,而且6元到后面可能就压缩不了。(能压缩得到167MB的模型,不能四个一起用采用 就超内存看)
  5. INCAR参数选择 kspacing=0.24 cutoff=400(最大POTCAR即可) we applied Methfessel-Paxton37 smearing of 2nd-order with 0.15 eV 10-6
  6. 具体采样的注意事项
    1. 一定注意分类,分开采集数据集,每个子数据集也是有用的,类似这个工作中提到的概念ModDP(Modular development of deep potential for complex solid solutions)
    2. 先易后难的原则
    3. 先一元再二元,三元不要放在一起采样,做好分类和优先顺序。
    4. 分类的另一个目的是保证相差较大(对滴,尽量将同类的分开由简单到难的采样)的采样空间控制在5个以内,5个以上再开一个平行采样,这样才能保证每一代trainning 40Wsteps有效。
    5. 如果元素固定,先高对称的再学低对称的,非晶留到最后再学,不要偷懒放到一起学。
    6. 上下限的确定一定要有依据,前期的简单采样可以看看f偏差的分布来确定
    7. 先NVT4个温度保温变形,再NVT不变形的连续升温,再NPT4个温度保温连续变形。 先原胞后单胞,先低温(1Kto100Kto300Kto熔点)后高温, 再连续的升温,先变形再NPT。变形模板已经被精简成三个了(
    8. 先整体的拉压/work/qan/kluo/NaSPO/run/Sim/Run/lmp/ex-re.lammps,
    9. 不同方向的单轴拉压/work/qan/kluo/NaSPO/run/Sim/Run/lmp/c-s.lammps,
    10. 不同方向的正负剪切/work/qan/kluo/NaSPO/run/Sim/Run/lmp/shear.lammps)
    11. 在开始之前将结构分类,争取每个小类可以单独解决一些问题。开始采样Ucell的时候只采样几个代表性的而且差别很大的,不要把类似的结构放在一起采样容易重复,而且Ucell采样的时候cut-off可以用4-1就可以了,不需要用5-1。
      1. 原胞NVT:0.1K+变形x3(8,9,10)单轴-0.3到+0.25(确保可以做冲击),整体变形+0.1 -0.2(这样整体变形到0.512了)
      2. 原胞NVT:300K+变形x3
      3. 原胞NVT:Tm+变形x3
      4. 原胞NVT:2Tm+变形x3
      5. 原胞NVT:连续升温 1kto2Tm
      6. 原胞NPTp:[1bar,0.1B]+1ktoTm
      7. 原胞NPT:300K+连续变压0to[-0.01B,0.1B](体积模量)用tri
      8. 超胞NVT:0.1K+变形x3,300K+变形x3, Tm+变形x3
      9. 超胞NVT:连续升温 1kto2Tm
      10. 超胞NPTp:[1bar,0.1B]+1ktoTm
      11. 超胞NPT:300K+连续升压-0.01Bto0.1B(体积模量)
      12. 有必要的话可以采样 融化后凝固过程,即超胞NVT:连续降温温 2Tmto1k
      13. 取超胞NVT非晶加入采样对象上面的 8 9 10 11来一遍.
参考设置:
/work/qan/kluo/TiCdpgen/Run/INCAR_TiC

/work/qan/kluo/TiCdpgen/Run/lmp/deformNVT.lammps

GGA=PE
IVDW=12
PREC=A
ENCUT=520
ISYM=0
#ALGO=Fast
EDIFF=1.000000e-06
LREAL=A #针对低对称性 大结构
#NPAR=18
#KPAR=2
NCORE = 8
NELM=120
NELMIN=4
ISIF=2
ISMEAR=0
SIGMA=0.05
IBRION=-1
NSW=0
LWAVE=F
LCHARG=F
PSTRESS=0
KSPACING=0.400000
KGAMMA=.False. #针对低对称性 大结构

SYMPREC=1.0e-06 #针对低对称性 大结构


评论

此博客中的热门博文

dpgen数据收集分类续算

dpgen 推荐安装升级方法:删除之前工作目录的dpgen文件夹 Install from source code:  git clone https://github.com/deepmodeling/dpgen && pip install ./dpgen 想收集TL的数据集且按化学成分分类:/work/qan/kluo/NaSPO/run/TransL dpgen collect ./ ./collect -p simplify.json -m 不起作用,只能用 param.json格式 所以单独新建文件夹,构造虚拟的 param.json其中初始数据集地址,直接复制最后一个train的input.json.再用 dpgen collect ./ ./collect -p param.json -m就可以收集初始的数据了,但是这时候没有分类,尽管dpgen collect -m 有这个功能但没有作用。 所以,构建虚拟的simplify任务,记住是精简过程,所以       "labeled" : true ,       "init_pick_number" : 0 ,       "iter_pick_number" : 0 , .....       "training_init_model" : false , 运行之后,第一步就得到了 所有的分类数据集。 Q: /work/qan/kluo/NaSPO/run 最近几轮的准确率上不去,猜测是数据集太大 232334 batch ,而每一代的学习步长 step 只有 50 万,以及不够了。所以出现了:一些模型的准确率一直上不去,就算修改上下限也没有改观。或者一些模型学好了,另一些模型就被遗忘了,很明显是学习步长不够了。 A: 解决办法如下:将现有数据收集分类,分拣出确实学习率低的重写单独重点学习。其次,以后用 dpgen 自动采样产生数据集的时候,时刻关注准确率的变化,一旦上不去了赶紧分家。 D: 1.        收集数据 a.       ...

dpgen simplify 数据精简二次处理

问题: 1.        Carbon 的势能文件无法准确描述石墨层间距 共有 204,200 bch 2.        NaSPO 的势能文件无法压缩 共有 242,423 bch 都可能是 data 太臃肿导致的,所以决定精简用 simplify 命令试试(感觉是重新采样的过程,只是节省了 lammps 的时间用 dp test 代替了,还是需要 fp 过程(也可以注释掉,如果需要新的 VASP 参数可以启用),更适合需要换 fp 参数的计算)。第一次取样是随机的, dp 采样过程有点慢 压缩的 pb 需要 6 小时。 还可以重新 fp 改善数据集 https://tutorials.deepmodeling.com/en/latest/CaseStudies/Transfer-learning/Transfer-learning.html https://docs.deepmodeling.com/projects/dpgen/en/latest/simplify/simplify-jdata.html https://zhuanlan.zhihu.com/p/456504860 http://bohrium-doc.dp.tech/docs/software/DP-GEN_simplify Simplify — DP-GEN documentation 先做,动起来在看 1.        收集所有数据 https://hikunluo.blogspot.com/2022/12/dpgen.html 2.        准备 simplify 的两个 json 文件。      nohup dpgen simplify simplify.json machine.json 1 > log 2 > err &      (base) [kluo@condo2017 SimCarbon]$ cat simplify.json { ...

python相关

 在IDLE中运行pip install pandas是不行的。你需要在命令提示符(Command Prompt)或终端(Terminal)中运行该命令。下面是详细步骤: 使用命令提示符安装 pandas 打开命令提示符: 按 Win + R 键打开运行窗口,输入 cmd,然后按回车键。 或者你可以在开始菜单中搜索“命令提示符”并打开它。 而且运行python脚本的一般步骤: 1. 打开IDLE shell这是个交互窗口 不能直接将脚本内容直接复制到这里,但是应该可以用python +脚本路径运行 2. File -new file-粘贴脚本内容 3.这个窗口上有run