README.md 3.87 KB
Newer Older
yuhai's avatar
yuhai committed
1
# DeePKS-kit(Deep Kohn-Sham)
yuhai's avatar
yuhai committed
2

yuhai's avatar
yuhai committed
3
# 模型介绍
yuhai's avatar
yuhai committed
4
DeePKS-kit是一个为量子化学系统生成精确能量泛函的程序,DeePKS通过机器学习对于低精度的DFT泛函进行优化,利用神经网络修正项去学习基线泛函(低精度、低成本)与目标第一性原理方法(高精度、高成本)计算得出的能量与力的差值。
yuhai's avatar
yuhai committed
5
6
7

# 模型结构

yuhai's avatar
yuhai committed
8
DeePKS-kit一端与PyTorch接口,另一端与PySCF接口,PySCF是一个从头算计算化学程序,为量子化学代码开发和计算提供了一个简单、轻量级、高效的平台。DeePKS-kit支持作者之前开发的DeePHF和DeePKS方法。此外,它还提供了一定的灵活性,例如,修改模型结构,改变训练方案,接口其他量子化学包等。DeePKS-kit由三个主要模块组成,处理以下任务:(1)使用预先计算的描述符和标签训练(微扰)神经网络(NN)能量函数;(2)利用所提供的能量泛函求解给定系统的自洽场方程;(3)通过迭代调用任务(1)和(2)来学习自一致的能量函数。
yuhai's avatar
yuhai committed
9

yuhai's avatar
yuhai committed
10
![](./assets/deepks-kit.png)
yuhai's avatar
yuhai committed
11

yuhai's avatar
yuhai committed
12
13
14
15
16
17
DeePKS-kit架构示意图及工作流程如上图,上图说明了整个迭代学习过程的主要步骤。其中,左下是神经网络(NN)能量函数的训练。描述符从给定的分子轨道计算,并用作神经网络模型的输入。随机梯度下降(SGD)训练是使用PyTorch库实现的。右下是求解广义Kohn-Sham自洽场(SCF)方程。从训练好的神经网络泛函中计算XC电位。求解器是作为PySCF库的一个新类实现的。DeePKS-kit还提供了一个用户友好的界面,将上述模块与一些辅助功能组合成一个命令行工具。其中包含五个子命令: 
`train`: 训练基于神经网络的后高频能量泛函模型
`test`: 使用给定数据测试后高频模型并显示统计数据
`scf`: 使用给定的能量模型运行自洽场计算
`stats`: 收集和打印云函数的统计结果
`iterate`: 通过组合上面的四个命令来迭代训练自洽模型
yuhai's avatar
yuhai committed
18

yuhai's avatar
yuhai committed
19
## 环境配置
yuhai's avatar
yuhai committed
20
参考[github链接](https://github.com/deepmodeling/deepks-kit/blob/master/requirements.txt) 
yuhai's avatar
yuhai committed
21

yuhai's avatar
yuhai committed
22
23
24
25
创建基本依赖项的新环境
```
conda create -n deepks numpy scipy h5py ruamel.yaml paramiko
```
yuhai's avatar
yuhai committed
26
DTK版本为22.10 python版本3.7 torch版本1.10.0 pyscf版本2.2.1
yuhai's avatar
yuhai committed
27

yuhai's avatar
yuhai committed
28
29
30
31
32
33
34
35
36
37
38
39

安装PySCF

```
pip install pyscf
```
正确设置环境后,使用 pip 安装 DeePKS-kit:

```
pip install git+https://github.com/deepmodeling/deepks-kit/
```

yuhai's avatar
yuhai committed
40
41
42
43
44
45
## 性能和准确率数据

DCU测试平台:Z100
NVIDIA测试平台:A800

**1)收敛性测试**
yuhai's avatar
yuhai committed
46

yuhai's avatar
yuhai committed
47
Deepks的输出结果文件为test.out文件,默认运行的epoch数为10000,从左到右输出的指标分别是训练步骤、训练损失、验证损失、学习率、训练时间、验证时间。其中截取了最后的epoch部分的数值,其中看DCU和A800最后的结果基本一致。
yuhai's avatar
yuhai committed
48
49


yuhai's avatar
yuhai committed
50
[DCU文件信息]
yuhai's avatar
yuhai committed
51
52


yuhai's avatar
yuhai committed
53
![](./assets/deepks-1.png)
yuhai's avatar
yuhai committed
54

yuhai's avatar
yuhai committed
55
![](./assets/deepks-2.png)
yuhai's avatar
yuhai committed
56
57


yuhai's avatar
yuhai committed
58
![](./assets/deepks-3.png)
yuhai's avatar
yuhai committed
59
60


yuhai's avatar
yuhai committed
61
![](./assets/deepks-4.png)
yuhai's avatar
yuhai committed
62
63


yuhai's avatar
yuhai committed
64
[A800的文件输出信息]
yuhai's avatar
yuhai committed
65
66


yuhai's avatar
yuhai committed
67
![](./assets/deepks-5.png)
yuhai's avatar
yuhai committed
68
69


yuhai's avatar
yuhai committed
70
![](./assets/deepks-6.png)
yuhai's avatar
yuhai committed
71
72


yuhai's avatar
yuhai committed
73
![](./assets/deepks-7.png)
yuhai's avatar
yuhai committed
74
75


yuhai's avatar
yuhai committed
76
77
![](./assets/deepks-8.png)

yuhai's avatar
yuhai committed
78

yuhai's avatar
yuhai committed
79
整体收敛趋势如下图所示,依次为DCU和GPU。
yuhai's avatar
yuhai committed
80
81


yuhai's avatar
yuhai committed
82
![](./assets/deepks-9.png)
yuhai's avatar
yuhai committed
83
84


yuhai's avatar
yuhai committed
85
86
![](./assets/deepks-10.png)

yuhai's avatar
yuhai committed
87

yuhai's avatar
yuhai committed
88
89
90
预测值与实际值对照如下,依次为DCU和GPU。


yuhai's avatar
yuhai committed
91
![](./assets/deepks-11.png)
yuhai's avatar
yuhai committed
92

yuhai's avatar
yuhai committed
93

yuhai's avatar
yuhai committed
94
![](./assets/deepks-12.png)
yuhai's avatar
yuhai committed
95
96


yuhai's avatar
yuhai committed
97
**2)性能测试**
yuhai's avatar
yuhai committed
98
99


yuhai's avatar
yuhai committed
100
具体性能对比如下表:
yuhai's avatar
yuhai committed
101
102


yuhai's avatar
yuhai committed
103
104
|      | DCU | GPU | 
| ------| ------ | ------ |
yuhai's avatar
yuhai committed
105
106
107
|总训练用时/s| 23.87 | 27.36 |
|每100epoch用时/s| 2.38 | 2.73 |
|每100epoch测试/s| 0.44 | 2.43 |
yuhai's avatar
yuhai committed
108
109


yuhai's avatar
yuhai committed
110
## 源码仓库及问题反馈
yuhai's avatar
yuhai committed
111

yuhai's avatar
yuhai committed
112
https://github.com/deepmodeling/deepks-kit
yuhai's avatar
yuhai committed
113

yuhai's avatar
yuhai committed
114
115
## 参考
[1] Chen, Y., Zhang, L., Wang, H. and E, W.,2023. DeePKS-kit: A package for developing machine learning-based chemically accurate energy and density functional models, Computer Physics Communications, 282, 108520. https://doi.org/10.1016/j.cpc.2022.108520.