README.md 3.32 KB
Newer Older
zhangxiao-stack's avatar
zhangxiao-stack committed
1
2
3
# DeePMD
## 论文
参考End-to-end Symmetry Preserving Inter-atomic Potential Energy Model for Finite and Extended Systems
zhangqha@sugon.com's avatar
zhangqha@sugon.com committed
4
https://dl.acm.org/doi/pdf/10.5555/3327345.3327356
5

zhangxiao-stack's avatar
zhangxiao-stack committed
6
7
## 模型结构
DeePMD-kit是深度势能分子动力学的开源项目。分子动力学是一套分子模拟方法,该方法主要依靠牛顿力学来模拟分子体系的运动。分子动力学在微观世界模拟中起着承载作用,在物理、化学、生物、材料科>学以及力学等领域都有着非常重要的应用。
zhangqha's avatar
zhangqha committed
8
9

深势科技成功将DeePMD-kit进行了并行化,首次实现了具有AIMD精度的第一性原理分子动力学模拟的商业与原子规模的应用,为分子动力学提供了革命性的高性能解决方案。
zhangqha's avatar
zhangqha committed
10
![DeePMD_backbone](DeePMD_backbone.png)
zhangqha's avatar
zhangqha committed
11

zhangxiao-stack's avatar
zhangxiao-stack committed
12
13
14
15
## 算法原理
DeePMD-kit使用第一性原理计算的输入、输出结果来训练模型。
模型输入:原子坐标x, y, z和元素种类;
模型输出:体系能量,能量对坐标的一阶导数值(原子受力);
zhangqha's avatar
zhangqha committed
16

zhangxiao-stack's avatar
zhangxiao-stack committed
17
18
19
20
1、首先根据原子坐标和种类生成矩阵,矩阵可在旋转和平移的情况下保持不变,以保证第一性原理的计算结果不变;
2、将矩阵输入一个多层全连接网络(fitting net),得到该体系中单个原子的能量,求和即可得到体系总能量;
3、体系总能量对原子坐标求一阶导,一阶导对应原子受力;
4、将模型输出结果(能量+原子受力)输入分子动力学模拟软件LAMMPS中求解动力学结果;
zhangqha@sugon.com's avatar
zhangqha@sugon.com committed
21
![Algorithm_principle](Algorithm_principle.png)
zhangxiao-stack's avatar
zhangxiao-stack committed
22
23
24
25

## 环境配置
### Docker(方法一)
提供[光源](https://www.sourcefind.cn/#/service-details)拉取的训练的docker镜像:
zhangqha's avatar
zhangqha committed
26

zhangxiao-stack's avatar
zhangxiao-stack committed
27
28
29
训练镜像:
```
  docker pull image.sourcefind.cn:5000/dcu/admin/base/custom:deepmd
zhangqha@sugon.com's avatar
zhangqha@sugon.com committed
30
31
  docker run -it -v /path/your_code_data/:/path/your_code_data/ --shm-size=32G --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --name docker_name imageID bash

zhangxiao-stack's avatar
zhangxiao-stack committed
32
33
34
35
```
激活镜像环境及运行测试
```
  source /root/env_disc.sh
zhangqha's avatar
zhangqha committed
36

zhangxiao-stack's avatar
zhangxiao-stack committed
37
38
```
python依赖安装:
zhangqha's avatar
zhangqha committed
39

zhangxiao-stack's avatar
zhangxiao-stack committed
40
```
zhangqha@sugon.com's avatar
zhangqha@sugon.com committed
41
  pip3 install -r requirements.txt
zhangxiao-stack's avatar
zhangxiao-stack committed
42
```
zhangqha's avatar
zhangqha committed
43
## 数据集
44

zhangqha's avatar
zhangqha committed
45
46
示例中验证的数据集来自:

zhangqha's avatar
update  
zhangqha committed
47
```
luopl's avatar
luopl committed
48
wget http://pai-blade.oss-accelerate.aliyuncs.com/bladedisc_notebook_binaries/data/disc_deepmd_example/data.tar.gz
luopl's avatar
luopl committed
49

zhangqha's avatar
zhangqha committed
50
tar -xvf data.tar.gz
zhangqha@sugon.com's avatar
zhangqha@sugon.com committed
51
52
53
54
55
56
57
58
59
data
    ├── data_0
    ├── data_1
        ├──set.000
        ├──set.001
        ...
    ├── data_2
    ├── data_3

zhangqha's avatar
update  
zhangqha committed
60
```
61

zhangqha's avatar
zhangqha committed
62
63
64
65
实际业务测试请选择合适的数据集进行测试。

## 训练

66
### 安装(如使用镜像,则无需再次安装)
zhangqha's avatar
update  
zhangqha committed
67
```
zhangqha's avatar
zhangqha committed
68
export ROCM_ROOT=/opt/dtk-22.04.2
69

zhangqha's avatar
zhangqha committed
70
DP_VARIANT=rocm  python3 -m pip install .  -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
zhangqha's avatar
update  
zhangqha committed
71
```
zhangqha's avatar
zhangqha committed
72
73
74
### 单卡测试

使用BladeDISC加速的测试命令(此处以单机单卡规模为例说明),请根据实际使用的卡id号调整run.sh中指定的卡号:
zhangqha's avatar
update  
zhangqha committed
75
```
zhangqha@sugon.com's avatar
zhangqha@sugon.com committed
76
77
    cd /root/test_case/water

zhangqha's avatar
zhangqha committed
78
    bash run.sh
zhangqha's avatar
update  
zhangqha committed
79
```
zhangqha's avatar
zhangqha committed
80
如果需要关闭BladeDISC加速,需要注释掉main.py文件中的如下内容:
zhangqha's avatar
update  
zhangqha committed
81
```
82
    disc.enable()
zhangqha's avatar
update  
zhangqha committed
83
```
zhangqha@sugon.com's avatar
zhangqha@sugon.com committed
84
85
86
## result


dcuai's avatar
dcuai committed
87
### 精度
zhangqha's avatar
zhangqha committed
88
![DeePMD_result](DeePMD_result.jpg)
zhangqha's avatar
zhangqha committed
89

zhangqha's avatar
zhangqha committed
90
91
92
## 应用场景
### 算法类别
AI For Science
zhangxiao-stack's avatar
zhangxiao-stack committed
93

zhangqha's avatar
zhangqha committed
94
### 热点行业
dcuai's avatar
dcuai committed
95
能源,科研,制造
zhangqha's avatar
zhangqha committed
96

zhangqha@sugon.com's avatar
zhangqha@sugon.com committed
97
## 源码仓库及问题反馈
98

chenzk's avatar
chenzk committed
99
https://developer.sourcefind.cn/codes/modelzoo/bladedisc_deepmd
zhangqha's avatar
zhangqha committed
100

zhangqha@sugon.com's avatar
zhangqha@sugon.com committed
101
## 参考资料
102

zhangxiao-stack's avatar
zhangxiao-stack committed
103
https://github.com/deepmodeling/deepmd-kit 
zhangqha's avatar
zhangqha committed
104