Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

2021-2022 机器之心年度趋势报告 | 趋势解读:机器学习与科学计算混合建模的编程范式

本文是《2021-2022 年度 AI 技术趋势发展报告》中计算工程篇章关于机器学习与科学计算混合建模的编程范式的趋势解读,点击「机器之心2021-2022年度AI技术趋势报告 」,获取报告。


近年来,人工智能技术飞速发展,越来越多的影响着人类社会,渗透到人们的工作和生活。除了在应用科学领域中发挥作用,人工智能也越来越多的参与到基础科学领域的研究中。过去的数百年来,实验科学和理论科学一直是科学界的两大基础范式。通过引入人工智能技术,可以基于实验或者计算得到的数据对问题进行可计算的建模,从而能够得到复杂问题的有效解。人工智能或机器学习技术与科学计算混合建模对当今科学计算领域的研究范式产生了巨大的影响。

2021年5月,鄂维南院士在首届中国生物计算大会中作题为「机器学习与科学计算」的主题报告,指出“随着AI的发展,AI 在生物、化学、材料、工程等传统科学领域将会有非常广阔的前景。将科学模型、机器学习与高性能计算相结合,进一步开发出更加高效和准确的研究方法,促进科学研究从「小农作坊」模式到「安卓」模式的转变。”Science评选的2021年十大“年度突破(2021 Breakthrough of the Year)中排在首位的就是人工智能在生命科学领域的应用——“Protein structures for all”。而阿里巴巴达摩院发布的《达摩院2022十大科技趋势》也预测,借助于深度学习的巨大优势,人工智能将成为科学家的新生产工具,催生科研新范式。

现在面向不同领域的科学计算套件也被越来越多的 AI 开发工具框架支持,同时也涌现出了一些新的工具,如下表所示:


Google JAX高效支持 AI+科学计算新范式

JAX 是谷歌开源的一个包含可组合函数转换的数值计算库,是 Autograd 升级版本,是针对机器学习研究的高性能自微分计算框架。JAX 可以对 Python 和 NumPy 程序进行自动微分,也可以通过Python的特征子集进行区分,也可以求导和求三阶导数。JAX利用grad实现反向模式和正向模式的求导,且这两种模式可以任意组合成任何顺序,具有一定灵活性。

JAX 的定位是科学计算(ScientificComputing)和函数转换(Function Transformations)的交叉融合,除训练深度学习模型之外还包含即时编译、自动并行化、自动向量化、自动微分等能力。JAX的出发点就是将NumPy和硬件加速结合,从而在高级接口使用加速器进行编写。JAX结合了XLA&Autograd,来加速用户开发的基于线性代数的项目。Goolge 在 2020 年翻倍投资 JAX,高效支持 AI+科学计算新范式。相较于传统 AI 框架,重点强化 NumPy/SciPy 等函数式编程,科学计算 API完备。

JAX基于XLA在CPU、GPU和TPU上编译运行NumPy程序,默认情况下编译在底层运行。此外,JAX还允许使用单一函数 API jit将自己的 Python 函数及时编译成经过 XLA 优化的内核。编译和自动求导可以任意组合,因此可以在不脱离 Python 环境的情况下实现复杂算法并获得最优性能 [3]。甚至还可以使用pmap一次为多个GPU或TPU核心编程,并通过整个过程进行区分。JAX实际上是一个可扩展的系统,用于可组合的函数转换。grad和jit都是这种转换的实例。其他的是用于自动矢量化的vmap和用于单程序多数据(SPMD)并行编程的多加速器的pmap。

目前,谷歌 AI、DeepMind 、Uber、oxford等都是JAX的用户。JAX 已经在深度学习、机器人 / 控制系统、贝叶斯方法和科学模拟等诸多领域得到了广泛应用。JAX的主要优势在于:

  • NumPy 加速器。NumPy 是使用 Python 进行科学计算的基础包之一,但它仅与 CPU 兼容。JAX 提供了 NumPy 的实现(具有几乎相同的 API),可以非常轻松地在 GPU 和 TPU 上运行。对于许多用户而言,仅此一项功能就足以证明使用 JAX 的合理性;

  • XLA。XLA(Accelerated Linear Algebra)是专为线性代数设计的全程序优化编译器。JAX 建立在 XLA 之上,显著提高了计算速度上限;

  • JIT。JAX 允许用户使用 XLA 将自己的函数转换为即时编译(JIT)版本。这意味着可以通过在计算函数中添加一个简单的函数装饰器(decorator)来将计算速度提高几个数量级;

  • Auto-differentiation。JAX 将 Autograd(自动区分原生 Python 代码和 NumPy 代码)和 XLA 结合在一起,它的自动微分能力在科学计算的许多领域都至关重要。JAX 提供了几个强大的自动微分工具;

  • 深度学习。虽然 JAX 本身不是深度学习框架,但它的确为深度学习提供了一个很好的基础。很多构建在 JAX 之上的库旨在提供深度学习功能,包括 Flax、Haiku 和 Elegy。甚至在最近的一些 PyTorch 与 TensorFlow 文章中强调了 JAX 作为一个值得关注的「框架」,并推荐其用于基于 TPU 的深度学习研究。JAX 对 Hessians 的高效计算也与深度学习相关,因为它们使高阶优化技术更加可行;

  • 通用可微分编程范式(General Differentiable Programming Paradigm )。虽然我们可以使用 JAX 来构建和训练深度学习模型,但它也为通用可微编程提供了一个框架。这意味着 JAX 可以通过使用基于模型的机器学习方法来解决问题,从而可以利用数十年研究建立起的给定领域的先验知识。


百度飞桨重点打造生物制药领域包,布局 AI 科学计算新赛道

飞桨在 2020 年就发布了基于飞桨的生物计算平台——螺旋桨 PaddleHelix,聚焦新药研发、疫苗设计等生物制药重点应用,针对药物研发、疫苗设计、精准医疗三大主要场景需求,为生物医药专家与学者提供大规模的分子预训练、药物-靶点亲和力预测、ADMET 成药性预测等一系列“AI+生物计算”的模型工具和解决方案,并以飞桨核心框架为支持,满足开发者的深度开发需求。本次发布的螺旋桨 PaddleHelix 生物计算开源工具集,提供了包括 RNA 二级结构预测、大规模的分子预训练、药物 - 靶点亲和力预测、以及 ADMET 成药性预测等一系列算法和模型,重点满足生物医药,疫苗设计和精准医疗方面的 AI 需求。

PaddleHelix通过构建基于预训练技术的分子表征模型、蛋白表征模型、组学表征模型,使之成为生物计算的底座,将有助于解决传统机器学习应用在生物领域的问题。PaddleHelix团队的研究论文发表在国外多个顶级会议中,基于飞桨框架,联合国内多家超算中心,在国产的软硬件上,完整适配并跑通了AlphaFold2的训练和推理代码,实现千万级别的蛋白质initial training训练时间从AlphaFold2的7天压缩到2.6天。PaddleHelix团队还参加了多个与生物计算相关的比赛。2021年6月,赢得了OGB-LCS KDD Cup 2021 PCQM4M-LSC赛道的第二名,预测了DFT计算的分子的HOMO-LUMO能隙。2021年3月,在OGB的gbg-molhiv和gbg-molpcba中排名第一,预测了分子特性。
除了技术上的不断创新,螺旋桨PaddleHelix在药物研发等应用场景领域取得了多项落地进展,全面赋能生物医药产业。百度在生物医药方面形成的核心能力已在GitHub开源,提供包括虚拟筛选、ADMET、DTI、PPI、蛋白结构预测等9大能力模块,为生物医药行业内的研究人员提供专业服务。

百度还推出了量子机器学习开发工具集量浆Paddle Quantum。Paddle Quantum基于百度飞桨深度学习平台,支持量子神经网络的搭建与训练,提供易用的量子机器学习开发套件与量子优化、量子化学等前沿量子应用工具集。Paddle Quantum提供了一个构建和训练量子神经网络(QNN)的平台,其易于使用的QML开发工具包支持组合优化、量子化学和其他尖端的量子应用,使PaddlePaddle成为中国第一个支持量子机器学习的深度学习框架。Paddle Quantum旨在建立一座人工智能(AI)和量子计算(QC)之间的桥梁。它已被用于开发一些量子机器学习应用。通过PaddlePaddle深度学习平台为QC赋能,Paddle Quantum为科研界和该领域的开发者提供了强有力的支持,使其能够轻松开发QML应用。

在2022年WAVE SUMMIT上,飞浆发布了面向AI for Science领域全新发布PaddleScience赛桨(v1.0 Beta),在更泛的科学领域,比如物理、化学、流体力学等,赋能基础科学研究。PaddleScience扩展了PaddlePaddle框架的可重复使用的软件组件,用于开发新的科学计算应用。这些新的应用包括物理信息机器学习、基于神经网络的PDE求解器、用于CFD的机器学习等等。PaddleScience目前专注于PINNs model,核心技术如下:

  • PDE,以符号形式划定了偏微分方程。特定的PDE派生出基础PDE类。

  • 几何学,一个用于定义几何领域的声明性接口。支持自动离散化。

  • 神经网,目前支持可定制大小和深度的全连接层。

  • 损失,定义了在训练过程中执行的确切惩罚措施。默认情况下,采用的是L2损失。在目前的设计中,总损失是四个部分的加权和,即方程损失、边界条件损失、初始条件损失和数据损失。

  • 优化器,指定使用哪种优化器进行训练。Adam是默认选项。更多的优化器,如BFGS,将在未来可用。

  • 解算器,以批处理的方式管理训练数据的训练过程。

  • 可视化,是对图形绘制工具的简单访问。

PaddleScience组件的组织结构如下图所示

此外,在飞桨核心框架方面,新增科学计算类 API,实现高阶自动微分功能,支持产业级大规模分布式训练,可适配国产硬件。部分科学计算类API如下:

APIAPI 说明
paddle.tensorTensor操作相关的API,包括 创建zeros, 矩阵运算matmul, 变换concat, 计算add, 查找argmax等
paddle.linalg线性代数相关API,包括 det, svd 等。
paddle.fft快速傅里叶变换的相关API,包括 fft, fft2 等。
paddle.amp自动混合精度策略,包括 auto_cast 、 GradScaler 等。
paddle.autograd自动求导相关API,包括 backward、PyLayer 等。
paddle.optimizer优化算法相关API,包括 SGD,Adagrad, Adam 等。
paddle.optimizer.lr学习率衰减相关API,包括 NoamDecay 、 StepDecay 、 PiecewiseDecay 等。
paddle.regularizer正则化相关API,包括 L1Decay、L2Decay 等。


华为昇思发布 MindSpore Science,布局 8 大领域 AI+ 科学计算行业套件;昇腾异构计算平台 CANN 布局分子动力学与蛋白质合成

2020年3月28日华为正式开源了全场景AI框架昇思MindSpore。昇思MindSpore的初心是“将科学计算与深度学习结合,将数值计算与深度学习相结合”,为中国科研助力。2022年3月27日,全新的昇思MindSpore 1.6版本发布,昇思MindSpore的功能越来越全面,性能越来越强大,整个生态体系也更加成熟。

昇思MindSpore构建的AI与科学计算的融合架构支撑打造科学计算行业系列套件MindSpore Science,包含了业界领先的数据集、基础创新模型、预制高精度模型和前后处理工具,加速科学行业应用研发。昇思MindSpore通过架构创新,原生支持科学计算,突破了高阶高维自动微分、自动异构并行、跨尺度计算融合等创新技术,构筑了以八大套件(制造、气象、制药、航空航天、汽车、能源、金融、材料)为核心,可广泛支持物理驱动/数据驱动等多种AI科学计算范式的全场景框架。目前昇思在制造、气象、制药、航空航天领域的四大套件已经投入研发,其中AI电磁仿真MindSpore Elec和AI生物计算MindSpore SPONGE取得了惊人的成果。

提出面向电子信息行业的套件MindSpore Elec,实现电磁仿真性能提升10倍,广泛多场景,小到常用的手机、耳机等3C产品,大到米级的无线基站天线等;面向生命科学的套件MindSpore SPONGE,提升生物制药化合物模拟效率提升50%以上,尤其在蛋白质折叠领域最新成绩更是做到了全球领先,在最近的全球持续蛋白质结构预测竞赛CAMEO(Continous Automated Model EvaluatiOn)中连续刷新榜单,保持全球第一的好成绩,媲美AlphaFold2。昇腾异构计算平台CANN 通过支持3D系列算子取得在少样本医学影像数据训练条件下的优良泛化效果,并进一步布局分子动力学与生物合成等生命行业领域,探索蛋白质结构预测及合成等。


MindElec v0.1

MindElec电磁仿真套件主要由多模数据转换、高维数据编码、基础模型库以及多频信号网络优化等组成,同时支持时域和频域的电磁仿真。其计算过程如下:利用MindElec多模数据转换技术将复杂的CAD结构转换成AI亲和的张量数据,高维的张量数据通过编码方式进行压缩,大幅减少存储和计算量,压缩后的张量数据进入创新的AI电磁仿真基础模型进行训练,训练过程结合多频信号网络优化技术提升模型精度。


MindSPONGE v0.1

MindSPONGE是由高毅勤课题组(北京大学、深圳湾实验室)、华为MindSpore团队联合开发的分子模拟库,具有高性能、模块化等特性。

MindSPONGE本次独立成仓,演进为0.1版本,新增支持分子动力学中常见的系综模拟包含NVT、NPT等,例如进行新冠病毒Delta毒株模拟,模拟结果有效反应病毒毒性增强,符合实际情况。MindSPONGE是第一个根植于AI框架的分子模拟工具,当前已内置Molecular CT,SchNet等AI神经网络,可用来进行势能函数的拟合,例如AI力场模拟克莱森重排反应,高效进行融合AI的分子动力学模拟,可看到体系在七元环和三元环之间进行转化。高毅勤课题组推出的蛋白结构预测工具依托昇思MindSpore,可对氨基酸序列长度2000+的蛋白质结构进行解析,能覆盖约99%以上的蛋白序列[10]。同时,借助异构计算架构CANN,通过软硬件协同优化大大提高了蛋白质预测的计算效率。

英伟达 Modulus、Clara 等生物制药和工程物理(流体)领域包

英伟达的 Modulus 与 Clara 等领域包覆盖工程物理典型场景及医药健康全流程,结合硬件优势进行领域纵向拓展,同时支持多样算力部署,如嵌入式、边缘设备到云多样化计算。

2021年11月9日,英伟达发布Modulus。NVIDIA Modulus 是一个用于开发物理学-机器学习模型的框架,它能够为缺乏AI专业知识,但对AI和物理驱动型数字孪生功能的需求快速增长的众多领域提供支持,例如蛋白质工程和气候科学领域。“Modulus”拥有同时解决多个假设情境的参数化系统,用户仅需要训练模型一次,即可解决多个问题。具体来说,传统的数值求解器目的都在一次求解一种配置,但是“Modulus”却能够一次处理多个单一几何或是参数几何,神经网络即可在多个情境间进行训练,并且在推理过程,即时评估每个配置,这使得用户可以更有效率地探索设计空间。Modulus使用AI方法,融合物理学和机器学习领域,考量到训练数据和控制物理方程式,Modulus训练出来的模型有机会成为可用各种应用程式的高传真模型,NVIDIA Modulus能够为复杂、动态的系统构建高精度数字复制品,从而推动各行业的新一代技术突破。

NVIDIA Modulus是一个神经网络框架,它将物理学的力量以治理偏微分方程(PDE)的形式与数据相融合,以接近实时的延迟建立高保真、参数化的代用模型。Modulus提供以Python为基础的API,供用户方便地实例物理和几何运算,还有详细的用户指南范例。训练引擎模块则接受所有输入,并且利用PyTorch和TensorFlow来训练最终模型,通过cuDNN进行GPU加速,用户还可使用Magnum来进行多GPU或多节点扩展。

与大多数基于AI的方法一样,Modulus内置一个帮助管理观察或模拟数据的数据准备模块。它还能解释它所模拟的系统的几何图形以及输入几何图形所表示的空间的显式参数。根据英伟达官网披露的信息[11],Modulus的关键工作流程和要素包括:

  • 采样计划器:使用户能够选择一种方法(如准随机采样或重要性采样)来提高被训练模型的收敛性和准确性。

  • 基于Python的API:采取象征性管理偏微分方程并构建基于物理学的神经网络。

  • 精选层和网络架构 :经证明能够有效解决物理学问题。

  • 物理学-机器学习引擎:使用这些输入来训练模型。所训练的模型能够使用PyTorch与TensorFlow、使用cuDNN实现GPU加速并且使用NVIDIA® Magnum IO实现多GPU和多节点扩展。


NVIDIA Clara 是一个专为医疗保健和生命科学领域开发者优化的医疗健康应用框架,可用于 AI 赋能的影像、基因组学以及智能传感器的开发和部署,凭借一个适用于医学影像、基因组学以及患者监控的平台(可以部署在任何地方,从嵌入式系统到边缘,再到每一个云),助力医疗健康行业进行创新并加速实现精准医疗发展。Clara框架包含全栈 GPU 加速库、SDK 和参考应用,可供开发者、数据科学家和研究人员打造实时、安全且可扩展的解决方案。Clara应用框架具体包括:

  • NVIDIA Clara Holoscan是一个用于医疗设备的混合计算平台,它结合了用于低延迟传感器和网络连接的硬件系统、用于数据处理和人工智能的优化库以及核心微服务,可以在任何地方运行手术视频、超声波、医疗成像和其他应用程序,从嵌入式到边缘到云。

  • Clara Parabricks是用于下一代测序的完整软件解决方案,包括short-和long-read 应用,支持从基线调用开始并延伸到三级分析的工作流程。Clara Parabricks管道的建立是为了优化加速性、准确性和可扩展性。与只用CPU的BWA-GATK4管道相比,用户可以实现35-50倍的加速和99.99%的变体调用准确性。它可以运行完整的GATK4最佳实践,也是完全可配置的,可由用户选择运行哪些步骤、参数设置和管道的版本。Clara Parabricks® 可为开发者提供企业级的一站式 GPU 加速测序软件和技术堆栈,以构建用于基因组学中的高性能计算、深度学习和数据分析的应用程序。

  • Clara Parabricks Toolkit是一个由CUDA加速库和深度学习模块、C++和Python API、参考应用程序以及与第三方应用程序和工作流程的集成组成的技术栈,用于基因组学中的HPC、深度学习和数据分析工具。

  • Clara训练应用框架是一个领域优化的开发者应用框架,基于MONAI.io和NVIDIA FLARE,包括用于人工智能辅助注释的API,使任何医学viewer具有人工智能能力。它还包括一个基于TensorFlow的训练框架,具有预训练的模型,可以利用转移学习、联邦学习和AutoML等技术启动AI开发。

  • NVIDIA Clara Viz是一个2D/3D医疗成像数据的可视化平台。该平台的核心是Clara Viz SDK,其目的是使开发人员能够通过易于使用的API在应用程序中纳入高性能的医疗图像体积可视化。


参考资料
[1]
https://www.jiqizhixin.com/articles/2021-05-12-3
[2]https://view.inews.qq.com/a/20210125A0BJF000
[3] https://zhuanlan.zhihu.com/p/52136241
[4] https://jax.readthedocs.io/en/latest/
[5] https://github.com/google/jax
[6] https://www.assemblyai.com/blog/why-you-should-or-shouldnt-be-using-jax-in-2022/
[7] https://www.paddlepaddle.org.cn/documentation/docs/zh/api/index_cn.html
[8] https://www.mindspore.cn/mindscience/docs/zh-CN/master/index.html
[9] https://www.163.com/dy/article/H3OI7D9C0511FQO9.html
[10]https://www.163.com/dy/article/GOFEMLJ90511CTRH.html
[11] https://blogs.nvidia.cn/2021/11/09/modulus-framework/
[12] https://developer.nvidia.cn/modulus
[13] https://catalog.ngc.nvidia.com/orgs/nvidia/teams/modulus/containers/modulus 
[14] https://www.nvidia.cn/clara/
[15] https://docs.nvidia.com/#nvidia-clara





点击「机器之心2021-2022年度AI技术趋势报告 」,获取报告。已获得机器之心Pro 会员」全功能账号权限的用户可直接下载查看。如您还没有机器之心Pro会员,扫描下方二维码关注「机器之心Pro」服务号(id:almosthuman2014pro),进入服务号主页,点击对话框,编辑发送机器之心Pro会员咨询,客服值班时间为工作日的10:00 - 19:00。


研究报告机器学习
暂无评论
暂无评论~