1
MD模拟软件的先天缺陷
1 |
程序框架老旧,且灵活性差,如果想要在原有程序上添加新的算法,往往需要对程序代码进行大幅改动。特别对于第三方的开发者来说,想要在程序中实现自己开发的算法难度非常大。 |
2 |
程序多基于CPU进行编写,如果要在GPU等计算加速设备上运行这些程序并实现有效的加速,就必须对程序进行整体改动。不但工程量浩大,且往往会导致之前由第三方人员开发的算法失效。 |
3 |
程序多用C/C++甚至Fortran语言编写,难以兼容目前主流的以Python语言为前端语言的AI框架。这导致近些年来开发的一些基于AI的算法难以真正地在MD模拟软件中得到广泛应用。 |
这些问题都严重制约了MD模拟的发展,特别是最后一条与AI框架的兼容性问题,更是一个严重阻碍AI技术对MD模拟进行“智能化”改造的技术壁垒。
2
完全基于AI框架的MD模拟软件
为了从根本上解决MD模拟软件的先天缺陷,就需要开发完全基于AI框架的MD模拟软件,实现AI算法与MD模拟的无缝结合。
这几十年来,IT技术的发展日新月异,科学计算领域也在随之发生着变化。一方面体现在各种新硬件的推出,比如基于GPU芯片的加速设备已经在科学计算中得到了大量的应用,极大地加快了科学计算的速度。
而另一方面则在于各种新算法的出现,特别是以AlphaFold为代表的基于人工智能AI(artificial intelligent)的算法,展示了AI可以在科学计算中实现很多曾经无法实现或难以企及的目标。
著名科技企业Google于2019年底推出了基于自家JAX框架的MD模拟软件JAX-MD,而几个欧美大学课题也基于PyTorch框架开发了TorchMD。国内方面高毅勤教授课题组同华为合作,基于华为全场景AI框架MindSpore开发了新一代智能MD模拟软件MindSpore SPONGE。
相比于传统MD模拟软件,基于AI框架MindSpore的“智能”MD模拟软件MindSpore SPONGE有几个优势:
1 |
借助MindSpore“自动微分(automatic differentiation)”的功能,可以大幅简化分子力场的代码形式。 |
2 |
基于MindSpore编写的程序可以大幅简化软件对不同硬件设备的适配。 |
3 |
“端到端可微(end-to-end differentiable)”的MD模拟程序。 |
3
基于自动微分简化分子力场代码形式
在数学上,MD模拟通过分子力场给出的势能函数计算每个原子的受力,从而模拟出分子的运动轨迹。但使用一般程序语言编写的势能函数代码无法直接用来计算原子受力,也就是原子坐标相对于势能函数的负梯度。
因此传统的MD模拟软件不但要编写势能函数的代码,还需要事先求解势能函数对原子坐标的导数,也就是原子受力的解析表达式。因此,无论是理论推导还是代码编写层面的工作量都会大幅增加,也会让程序变得更加复杂,这也是编写传统MD模拟程序的难点之一。
另外,需要手工求解势能函数这一点也极大地限制了分子力场采用数学形式更加复杂的势能函数,否则其函数的导数将难以求解,这也制约了分子力场的发展。
而华为昇思MindSpore的“自动微分”功能,可以直接计算函数的导数,因此基于MindSpore编写分子力场只需编写势能函数的代码即可,原子受力即原子坐标对势能函数的负梯度可以直接通过“自动微分”计算,这不但大幅减少了代码编写的工作量,也在很大程度上简化了MD模拟程序结构的复杂度,同时也极大地拓宽了分子力场可以采用的数学模型的范围。
4
简化软件对不同硬件设备的适配
MD模拟软件是一类计算量超大的科学计算程序,因此在实际使用中往往需要进行并行化计算,或者使用GPU等计算加速设备进行计算。
对于传统的MD模拟程序来说,在实现了程序“科学”上的功能之后,对程序进行并行化或GPU设备的移植等“工程”上的工作才是整个软件项目中最复杂、最困难的地方。
而华为全场景AI框架MindSpore能在CPU、GPU和华为自主研发的“昇腾”(Ascend)AI加速芯片上运行,使用MindSpore编写的程序只需修改一行代码便可移植到不同的硬件设备上。
此外,华为昇思MindSpore还具备“自动并行”(automatic parallelism)的能力,只需简单修改代码就能自动实现程序的并行化计算。
因此,基于华为昇思MindSpore开发MD模拟程序,可以使科学家们专注于程序的“科学”功能,而将“工程”上的问题交由MindSpore本身来处理。
5
“端到端可微”的MD模拟程序
如果AI框架具备“高阶自动微分”的能力,那么还能编写出“端到端可微” (end-to-end differentiable)的MD模拟程序,从而实现很多传统MD模拟完全无法实现的功能。
华为昇思MindSpore具备“高阶自动微分”的能力,可以自动求解函数的高阶导数,而“端到端可微”MD模拟是Google在发布JAX-MD时提出的新概念,指MD模拟从输入坐标到计算力再到更新坐标的整个过程都是可微,这对于MD模拟来说是一种革命性的技术。
使用传统MD模拟无法直接获知模拟的最终结果同输入坐标或参数的关系,一旦模拟的结果不符合预期,科研人员只能通过个人经验不断地调整起始坐标或程序参数,再反复进行模拟直到获得理想的结果。
而在“端到端可微”MD模拟中,由于可以直接求解输出结果相对输入坐标或参数的导数,因此科研人员可以像运行一般的AI优化算法那样,直接对MD模拟过程本身进行优化,从而获得理想的结果,避免了“反复尝试”的过程。这即是一种“元优化”(meta-optimization)过程。“端到端可微”被认为是下一代MD模拟的重要特征。
8月11至15日 ,昇思MindSpore 区举办第二季「MindSpore SPONGE暑期学校」。
14位国内知名专家全程手把手授课,我们希望MindSpore SPONGE被更多的老师,学生和业界开发者使用,并吸引到更多的开发者加入 区共同开发,丰富MindSpore SPONGE套件,共同探索开源科学软件的未来。
MindSpore SPONGE官方资料
MindSpore SPONGE Gitee:
https://gitee.com/mindspore/mindscience/
MindSpore官 :
https://www.mindspore.cn/
MindSpore Gitee:
https://gitee.com/mindspore/mindspore

文章知识点与官方知识档案匹配,可进一步学习相关知识OpenCV技能树首页概览11584 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!