近邻原子搜索效率提升万倍?第一款RPMD热导计算软件?DeepModeling黑客松圆满收官
近日,首届DeepModeling Hackathon圆满落下帷幕。本届比赛自6月11日正式发布以来,历时80余天,吸引了来自世界各地百余名参赛选手,共集结成26支参赛队伍。本次大赛由深势科技主办,百度飞桨、英伟达、苏州高等研究院大力支持。
由于疫情的原因,本次大赛的大部分环节改为线上进行,但每一位参赛选手创新的热情不减,仍心怀热忱、积极备战,利用各自的专业优势互相交流合作,产出了很多令人印象深刻的项目成果。
最终,经过激烈角逐,人工智能(AI)、科学计算(SC)、高性能(HPC)3个赛道各产生3组优秀获奖项目,欢迎通过赛题网站( https://hackathon.dp.tech/2021/summer-hackathon )获奖展示页面查看、下载每个项目的详细报告。
接下来,让我们一起领略9个获奖小组的风采吧!
AI赛道
【一等奖】
组名:五个小白菜
成员:韩立元 刘高勇 屠铭燕 阮晓鹏 陈保权
获奖项目1:A1.探究原子邻域描述子的可解释性
得分:80
项目介绍:
模型可解释性对于模型的评估具有重要意义。本文使用SHAP方法,对分子交互软件DeePMD的黑盒进行了可解释性分析。我们首先对DeePMD的源码进行了分析,探索了描述子的结构和性质。然后,使用Cu数据集在DeePMD中进行训练。在确保训练结果与预期相符的基础上,我们对其黑盒进行了解释,分析得到了对模型影响较大的特征和参数。在此基础上,我们提出,对模型的解释有助于模型实现在不同晶体间的迁移,推动机器学习在化学等领域的进一步发展。
精选点评:
选手分析了DeePMD描述子的构成与性质,使用SHAP理论对DeePMD网络做了可解释性分析,理论分析充分,掌握DeePMD-kit以及SHAP原理,但未对不同体系描述子差别进行分析;同时也可以参考其他理论进行分析,推荐参考资料:
基于信息瓶颈理论:
https://arxiv.org/pdf/1503.02406.pdf
https://openreview.net/forum?id=ry_WPG-A-
综述:
https://arxiv.org/pdf/2012.14261.pdf
”获奖项目2:A3.利用网络结构搜索(NAS)寻找最优模型
得分:70
项目介绍:
DeepMD模型优化分析:通过DNAS对DeepMD-kit模型的结构搜索,得出如下结论。
1. 使用ResNet模型进行训练,自动调节学习率和neuron,发现在学习率为0.9时,neuron=[1, 4, 2, 2, 3, 4, 3, 1]模型得分最优;
2. 对比了ResNet和MobileNetV2,发现在当前体系下,MobileNetV2相对ResNet速度更快,得分相对更高。选用MobileNetV2训练得到了新的模型,可迁移入DeepMD模型中。
3. 分别使用原始实验数据和经过DeepMD的descriptor算子作为训练数据,结果发现descriptor处理过的数据在进行结构搜索后,其结果更优。该类数据可用data_prep文件夹中的descriptor.py生成。
精选点评:
选手使用PaddleSlim压缩工具,分别在搜索空间Resnet和MobileNet上搜索出若干候选模型,并选取了精度较好的模型进行训练。基本正确完成,更多方法可以参考网络结构搜索相关综述:https://www.jmlr.org/papers/volume20/18-598/18-598.pdf
”【二等奖】
组名:卢学队
成员:程正 赵江山 付云松 汪鸿帅
获奖项目: A1.探究原子邻域描述子的可解释性题
得分:90
项目介绍:
描述符虽然区分了不同的原子环境,但描述符中包含的信息并不能被人脑直接理解。我们使用PCA和ISOMAP对描述符进行了降维,并画出了不同晶相原子环境的分布。我们从而得知描述符可以轻松的区分低压相与高压相,bcc与fcc、hcp结构。fcc与hcp结构较为相似。
为了解释描述符对原子能量预测的影响,我们使用了SHAP算法。首先使用PCA对原子描述符进行组合,通过SHAP算法评估了不同PCA成分对预测的影响。我们还使用CUR算法挑选出了重要的描述符,并通过SHAP算法评估了这些原子描述符对预测的影响。
精选点评:
选手抓取了描述子,使用PCA提出10个主成分分析,并且降维后用ISOMAP进行分析,比较了网络不同层输出信息,还用了SHAP对特征的重要性进行了分析,完全按照题目要求对不同体系描述子进行了对比分析,题目完成度高,但要注意其中在高维神经网络用PCA主成分分析意义可能不是很大。
”【三等奖】
组名:NJU-MA
成员:朱强 顾玉明 王新柱 胡礼沐
获奖项目:A1.探究原子邻域描述子的可解释性题
得分:70
项目介绍:
本赛题中,主办方给出的是更加方便处理的raw data数据类型,但是我们小组都是化学背景,我们对笛卡尔坐标空间更加的熟悉,因此,在本赛题中,我们想回答的主要是如下两个问题:
(1)给定的训练数据在笛卡尔坐标下是什么样子的?
(2)笛卡尔坐标系下的数据点和投影到特征空间下的数据点是怎样的一个关系?
在分析过程中为了对高维空间进行可视化,我们使用了线性的降维方法PCA(principle component analysis, 主成分分析),以及利用KMeans方法来将高维数据点划分成了6类,并进行了相应的讨论和分析。
精选点评:
选手使用PCA对1200feature降维,提出10个主成分分析,按照题目要求对6种不同体系进行了区分。分析到的地方基本正确,完成度较高。但是同样也要注意其中在高维神经网络用PCA主成分分析意义可能不是很大。同时程序基于Numpy实现,迁移成本较高,规模化较难,希望后续可以改进。
”SC赛道
【一等奖】
组名:FRY
成员:陈飞扬 罗日鹏 李一帆
获奖项目:S1.DEEPMD-KIT实现热导/扩散系数/径向分布函数计算工作流题
得分:95
项目介绍:
以DeepPotential(DP)为代表的机器学习力场让热导的计算出现了新的机遇,一方面,其高效、准确的势能面让大规模无序体系的动力学模拟变得精确,另一方面,热流的计算变得便捷。在本项目中,我们用airflow正确地实现了热导计算步骤中NVT、NVE、热流计算,和后处理分析工作流;有效地估计了部分初始参数,极大地简化了输入参数的需求;项目实现了最大化gpu使用效率以及估计部分初始参数的功能,以此保证硬件上和科学上的效率;稳固的误差分析将给出无偏的计算结果估计,以此平衡计算的置信度和成本;本项目作为第一款基于Ring-polymer MD (RPMD)热导计算的软件,能够考虑体系中的原子核量子效应。
精选点评:
整体完成度很高,且计算热导时在考虑核量子效应方面有重要创新,应该是首个实现该功能的软件。理论推导比较详尽,比较了lammps、openMM在考虑核量子效应时对热导的影响,并考虑了误差分析等因素。代码实现、分析都比较详尽,同时也考虑了tensorflow GPU计算时的显存分配问题。期待该项目进一步的打磨和正式发布。
”【二等奖】
组名:邦德盖普
成员:姜丽桐 韩言博 柏德祥 石向成
获奖项目:S2.ABACUS实现材料能带计算工作流
得分:80
项目介绍:
Abucus-bandapi是用于控制Abucus等高通量材料计算软件的工作流工具,可管理材料高通量计算的队列控制、流程切换、任务分发、条件检测;其基本功能的运行仅需Python3环境和网络连接;
代码在实现上拥抱现有开源生态,基于强大的材料模拟工具库ase和深度势能社区活跃开发中的任务调度系统dpdispatcher构建,并支持对计算任务类型、队列内容、流程切换逻辑、任务分发和结果处理进行多样而便捷的组合和自定义。
精选点评:
非常精彩的报告,使用numpy(Python)+ase+dpdispatcher+pymatgen完成了ABACUS计算数据库Material Projects中的材料能带的工作流,并且对workflow软件的细节进行了详细介绍,总体结果相当完整,可迁移性强,令人印象深刻。感谢选手带来这么精彩的工作,希望选手未来能继续关注ABACUS软件的发展,并关注DeepModeling开源社区的发展。
”获奖项目2:A3.利用网络结构搜索(NAS)寻找最优模型
得分:70
项目介绍:
本方案以Resnetdt为基础架构,采用NAS进行更进一步的网络架构和参数优化,以较少的人力,在给定候选网络空间中,筛选出更优的网络架构。同时,由于候选空间过大,且完整训练一个模型耗时过久,因此通过早停机制,在训练早期就可以判断是否有继续训练的必要。
同时,为减少后续使用者的学习难度和复杂度,在不对已有命令、参数或者模型造成影响的条件下,确保仅在input.json文件中增加NAS关键字和对神经元、学习率格式的调整,即选择当前是否进行网络架构检索,或者只是进行原来的模型训练。
精选点评:
选手直接修改了DeePMD-kit的代码,只需通过修改input参数即可对学习率、网络层数、神经元数量进行自动调优,也用了早停等策略来优化搜索方式。工程效果很好,实用性较强,但是缺少对网络结构本身的搜索,可以参考以下资料:
https://www.jmlr.org/papers/volume20/18-598/18-598.pdf
”【三等奖】
组名:深度摸鱼
成员:丁昌杰 夏文明 秦密 张攀
获奖项目:S1.DEEPMD-KIT实现热导/扩散系数/径向分布函数计算工作流题
得分:70
项目介绍:
DpAnalyse (音:”Deep Analyse”),这是一款适合于深度势能(Deep Potential)的科学计算与可视化模组。有关程序更详细的介绍,请参考项目仓库里的README.md或DpAnalyse Documentation.pdf。本项目已开源于:https://gitee.com/DingChangjie/dpanalyse,并计划长期维护和不断改进,欢迎有兴趣的小伙伴们参与。
项目借助开源框架Apache Airflow,实现了适合于深度势能的自动化RDF和热导计算,并计划支持对拟合误差的可视化。设计思想如图所示,用户配置好计算参数后,通过一条简单的命令即可实现工作流的全自动化展开。通过Systemd和Airflow-webserver,用户可以用友好的GUI监控工作流的进展,并确保每一步计算的结果都是可追溯的。
精选点评:
该组实现了基于airflow和Deep Potenial的科学计算工作包DpAnalyse,可以计算径向分布函数和热导率等物理性质。对径向分布函数的实现正确,并通过Te-Pb的Deep Potential模型进行了结果展示,但是对热导率计算部分不完全正确且缺乏充分的说明,可以参考 (Boone) Boone, Babaei, Wilmer, J Chem Theory Comput, 15, 5579–5587 (2019). 以及https://magics.usc.edu/thermal-conductivity-plugin/ 。用户手册撰写认真且清晰易懂,选手学习并使用了airflow,将工作流以python包的形式发布,项目完成度高,希望本项目能够继续完善,持续维护和开发,欢迎随时和DP社区开发者交流讨论。
”HPC赛道
【一等奖】
组名:ZLJS中流击水
成员:周徐源 李硕学 金彬 孙怀洋
获奖项目:H2.ABACUS近邻原子搜索优化
得分:95
项目介绍1:近邻原子搜索是材料DFT计算软件重要步骤之一。本项目对ABACUS软件中近邻原子搜索模块进行了优化。我们注意到该问题的局域性质,提出了两种线性时间复杂度的解决方案。在方案1中,将晶胞按搜索半径分成许多立方小格子,在仔细处理边界原子后,对每个小格子只需搜索附近27个格子内的原子;在方案2中,我们将晶胞按照其自身形状来划分。方案1是完全独立的新模块,而方案2是对原有模块的错误的修改。在含26万原子的测试体系中,两种方案均将计算时间由18小时缩短到10秒内。经OpenMP加速后,使用4线程,效率可达到万倍的提升。
精选点评:
非常精彩的报告,分析了程序已有算法的实现细节,指出了存在的问题,并通过cubic block method 和 natural block method 两种方法修复了原有程序的bug并提升了效率,实现了线性的搜索效率。提出的两种优化方法各有所长,完成度都非常高,测试也非常有说服力,整体工作令人印象深刻!通过算法优化和openmp并行优化,对于26w原子的系统搜索效率提升了10000倍。可复用性非常高,基于程序具体使用形式还有进一步优化的空间。感谢选手带来这么精彩的工作,第一性原理计算方法中还有很多亟需解决的问题,希望与选手未来还有合作的机会。
”获奖项目2:S2.ABACUS实现材料能带计算工作流
得分:80
项目介绍:
ABACUS与Materials project等开放材料数据库相结合,具有广阔前景。本项目在此基础上尝试构建材料能带计算工作流。通过pymatgen获取材料信息后,依次进行晶格参数优化、自洽计算与能带非自洽计算,最终绘制出能带图,得到带隙。工作流封装通过bash与Airflow两种程序进行实现。同时实现了磁性材料的自旋极化计算和k点密度的API。分析能带结果,明确晶格参数对于带隙的明显影响和自旋极化计算对于磁性材料能带结构的优化。总体来看,得到的工作流具有通用性强、自动化程度高的优点。
精选点评:
非常精彩的报告,使用Airflow+Python+Pymatgen+Matplotlib+numpy完成了ABACUS计算数据库Material Projects中的材料能带的工作流,并且进行了大量分析和讨论,总体结果相当完整,可迁移性强,令人印象深刻。整体计算速度较快,但是暂不能实现分布式并行计算,还有提升的空间。
”【 二等奖】
组名:bug调不队
成员:潘樾阳 郝哲文 黄力昂 蔡淳
获奖项目:H3.FEALPY高效组装单元矩阵
得分:90
项目介绍:
【Make Einsum 1000x faster and scalable】张量计算在科学计算中有着重要的作用,我们在黑客松比赛中, 结合开源工具和英伟达高性能的"cuTensor" 库, 利用GPU加速相对于原np.einsum函数实现了1000倍以上的加速比,同时我们的解决方案并不受到GPU显存的限制,拓展到了上千万格点的矩阵组装。我们的解决方案也不受到该特定数据流的限制, 可以加速任何的einsum函数。在此项目中,我们思考了如果张量大小如果无法放进GPU显存时的情况并提出了解决方案,并结合开源代码极大地优化了组装单元矩阵的过程。我们的工作流如下所示:
精选点评:
选手基于 CuPy 中的 cuTensor 库接口,对有限元单元矩阵的组装过程进行了加速,相比于 np.einsum 实现了非常显著的加速效果。另外还考虑了 GPU 显存限制的问题,设计了相应计算方案,从而可以解决更大规模的问题。提交内容为 FEALPy 计算效率(特别是三维问题)的提升,提供了很好的改进示范,但没有给出和题目示例代码结合的效果,完整性有点欠缺。如果能考虑张量内存分布对计算效率的影响会更好。
”【三等奖】
组名:delettanti
成员:冯宝枢 孙旷远 任望平
获奖项目:H2.ABACUS近邻原子搜索优化
得分:70
项目介绍:In this project, we modified the nearest neighbor searching algorithm in ABACUS software and implemented a parallel version by using the CUblas library. The distance of all pairs was calculated and stored, then filtered and optimized by splitting the large cell for this large memory. The strict radii are related to Linear Combination of Atomic Orbitals (LCAO) basis set generation and impact the computational effort. We discussed the possible optimization of the LCAO basis sets generation by reconstructing the loss function to derive the basis set with higher numerical precision. Moreover, we propose to introduce Daubechies wavelet basis in the ABACUS. Daubechies wavelet basis has a neat structure for parallelization. The future work would aim at implementing the last 2 designed schemas and compare the performance with the original version and the CUDA version.
精选点评:
This report mentioned a method to accelerate nearest neighbor searching method in ABACUS software on GPU by Cuda with parallel computation using the Cublas library. The distance of all pair was calculated and stored, then filtered and optimized by splitting the large cell for this large memory. Thanks to the contestants for this wonderful work , it is welcome to contact us if the contestants are still interested in other algorithms in ABACUS.
”再次祝贺以上获奖的队伍和选手!
更多活动与赛题详细信息见活动官网https://hackathon.dp.tech/2021/summer-hackathon
首届DeepModeling Hackathon活动到此告一段落,通过此次DeepModeling Hackathon,希望大家可以在这里结识更多志同道合的小伙伴,在社区内共同打造新型科研工具,也欢迎大家继续关注DeepModeling开源社区的其他后续活动。
Hackathon大赛只是DeepModeling开源社区活动的一个新起点,未来,深势科技将继续携手更多来自学界、业界的伙伴,持续为DeepModeling开源社区的发展保驾护航!
DeepModeling Hackathon, 我们明年再见!