Auto Byte

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

微信扫一扫获取更多资讯

Science AI

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

微信扫一扫获取更多资讯

比PyTorch、TensorFlow更快,MindSpore开源一周年升级巨量新特性

在 MindSpore 开发团队和社区开发者共同努力下,MindSpore 很多的新特性马上要与大家见面了,比如动态图分布式训练效率的大幅提升、一键模型迁移、模型鲁棒性检测、深度分子模拟及量子机器学习等,无论是在效率提升、易用性,还是创新方面,都是干货满满

一、效率提升

大幅提升动态图下分布式训练的效率

深度学习中,当数据集和参数量的规模越来越大,训练所需的时间和硬件资源会随之增加,最后会变成制约训练的瓶颈。分布式并行训练,可以降低对内存、计算性能等硬件的需求,是进行训练的重要优化手段。当前 MindSpore 动态图模式已经支持数据并行,通过对数据按 batch 维度进行切分,将数据分配到各个计算单元中进行模型训练,从而缩短训练时间

基于 ResNet50 v1.5+ImageNet 数据集测试,在昇腾计算硬件平台,MindSpore 动态图模式分布式的表现,可以达到 PyTorch 典型分布式场景的 1.6 倍, 静态图模式分布式的表现也可以达到 TensorFlow 典型分布式场景的 2 倍。

PyNative 快速入门:https://www.mindspore.cn/tutorial/training/zh-CN/r1.2/advanced_use/debug_in_pynative_mode.html

数据预处理加速 Dvpp

数据是机器学习的基础。在网络推理场景中,我们需要针对不同的数据进行数据的预处理,从中过滤出核心信息放入我们训练好的模型中进行推理预测。在实际应用场景中,我们往往需要对大量的原始数据进行推理,比如实时的视频流等。因此,我们在昇腾推理平台引入了 Dvpp 模块来针对网络推理数据预处理流程进行加速

Dvpp 数据预处理模块提供 C++ 接口,提供图片的解码、缩放,中心抠图、标准化等功能。在 Dvpp 模块的设计中,考虑到整体的易用性,其功能与 MindData 现有 CPU 算子有重叠,我们将其 API 统一,通过推理执行接口设置运行设备来进行区分。用户可以根据自身硬件设备环境来选择最佳的执行算子。Dvpp 数据预处理流程如下图所示:


我们在一台昇腾推理服务器上测试了 Dvpp 系列算子的性能收益。该服务器拥有 128 个主频为 2.6GHz 的 CPU 核心,以及 128Gb 的内存空间。在实验中,我们选取 yoloV3 网络,同时选取 coco2017 推理数据集 40504 张图片进行推理,最终得到模型输入尺寸为 [416, 416] 的图片。

我们分别使用 Dvpp 算子和 CPU 算子进行数据预处理,得到如下性能对比:


可以看到 Dvpp 系列算子相较于 CPU 算子在处理大量数据时性能优势明显,在本实验中处理 40504 张图片性能 FPS 提升 129%

查看教程:https://www.mindspore.cn/tutorial/inference/zh-CN/r1.2/multi_platform_inference_ascend_310_mindir.html#ascend-310

二、创新性

分子模拟库(SPONGE),来自社区分子动力学工作组

MindSpore 版的 SPONGE 是在社区中的分子动力学工作组 (MM WG) 中,由北大、深圳湾实验室高毅勤课题组与华为 MindSpore 团队联合开发的分子模拟库,具有高性能、模块化等特性。

  • 为何需要开发 SPONGE?


分子动力学模拟是用牛顿定律近似来描述微观原子和分子尺度演化的计算机模拟方法。其既可用于基础科学研究也可用于工业实际应用。在基础科学领域,分子动力学方法有助于科研学者从微观研究体系的物理化学性质。

在工业生产中,其可以利用大规模计算的能力辅助药物分子的设计和蛋白靶点的搜寻 [1,2]。由于模拟的时间和空间尺度限制,传统分子动力学软件的应用范围受到较大限制。科研工作者也在不断的开发新的力场模型[3,4]、抽样方法[5,6] 以及尝试结合新兴的人工智能 [7,8] 来进一步拓展分子动力学模拟的适用领域。

由此,新一代的分子动力学软件就需要被提上日程。其应该具有模块化的特性,能够支持科学家高效的创造和搭建出能够验证其理论模型的结构。同时,它还需要兼顾传统模拟方法的高效性,能够兼容其在传统领域上的使用。此外,为实现分子模拟 + 机器学习的自然融合,其还应该拥有嵌入人工智能框架的形态。SPONGE 就是基于这些理念而被创造出的全新的,完全自主的分子模拟软件。

相比于之前在传统分子模拟软件上结合 SITS 方法进行生物分子增强抽样[9],SPONGE 原生支持 SITS 并对计算流程进行优化使得其使用 SITS 方法模拟生物体系更加高效。针对极化体系,传统分子模拟采用结合量化计算等方式来解决电荷浮动等问题[10]。即使采用机器学习降低计算量也会浪费大量时间在程序数据传送的问题上。而 SPONGE 利用模块化的特点可支持内存上直接与机器学习程序通信大大降低了整体计算时间。

图 1:结合 SITS 等方法可进行 Na[CpG], Lys 生物分子模拟

图 2:机器学习 + 分子模拟方法可更快更准确地模拟极化体系,图为[C1MIm]Cl 离子液体模拟

  • MindSpore + SPONGE


基于 MindSpore 自动并行、图算融合等特性,SPONGE 可高效地完成传统分子模拟过程。SPONGE 利用 MindSpore 自动微分的特性,可以将神经网络等 AI 方法与传统分子模拟进行结合。

SPONGE 模块化设计结构图

随 MindSpore1.2 版本开源的 SPONGE 具备以下优势

1、全模块化分子模拟。模块化构建分子模拟算法,易于领域研发人员进行理论和算法的快速实现,并为外部开发人员贡献子模块提供友好的开源社区环境。

2、传统分子模拟与 MindSpore 结合的人工智能算法的全流程实现。在 MindSpore 中,研发人员能便利的将 AI 方法作用于分子模拟中。全算子化的 SPONGE 将与 MindSpore 进一步结合成为新一代端到端可微的分子模拟软件,实现人工智能与分子模拟的自然融合。

教程文档:https://www.mindspore.cn/tutorial/training/zh-CN/r1.2/advanced_use/hpc_sponge.html

  • MindSpore+SPONGE 展望


近期展望:在后续的版本更新中会陆续加入已经理论验证好的 MetaITS 模块、有限元计算模块等功能。这些模块将帮助 SPONGE 能更好的从事相变和金属表面相关的模拟。同时,MindSpore 版 SPONGE 各模块逐步支持自动微分和自动并行,对于衔接机器学习方案提供更友好的支持。

远期展望:拓展 SPONGE 的各种特色模块,使其能够描述大部分微观体系并同时具有较高的计算和采样效率。对特定工业需求,如药物筛选或晶型预测,将基于 SPONGE 衍生出完整的流程化计算方案,能够满足大规模并行计算的需求。在 MindSpore 框架下,SPONGE 具有元优化功能,从而实现更准确和更快的力场拟合。

量子机器学习(MindQuantum),来自社区量子力学工作组

MindQuantum 是结合 MindSpore 和 HiQ 开发的量子机器学习框架,支持多种量子神经网络的训练和推理。得益于华为 HiQ 团队的量子计算模拟器和 MindSpore 高性能自动微分能力,MindQuantum 能够高效处理量子机器学习、量子化学模拟和量子优化等问题,性能达到业界 TOP1(Benchmark),为广大的科研人员、老师和学生提供了快速设计和验证量子机器学习算法的高效平台。

MindQuantum vs TF Quantum/Paddle Quantum 性能对比



查看教程:https://www.mindspore.cn/tutorial/training/zh-CN/r1.2/advanced_use/parameterized_quantum_circuit.html

多跳知识推理问答(TPRR)

TPRR 是华为泊松实验室与华为 MindSpore 团队提出的解决开放域多跳问题的通用模型。相比于传统问答仅需从单个文档中检索答案,多跳知识推理问答需要从多个佐证文档得到最终答案,并返回问题到答案的推理链。TPRR 基于 MindSpore 混合精度特性,可以高效地完成多跳问答推理过程。

  • 全路径建模:


TPRR 模型在多跳问题推理链的每一个环节中基于全部推理路径的条件概率建模,模型以 「全局视角」 进行知识推理。

  • 动态样本选取:


TPRR 模型采用动态样本的建模方式,通过更强的对比学习提升模型多跳问答的能力。

算法流程图如下:


TPRR 模型在国际权威的多跳问答榜单 HotpotQA 评测中荣登榜首,榜单图如下:


查看教程:https://www.mindspore.cn/tutorial/inference/zh-CN/r1.2/nlp_tprr.html

三、易用性

一键模型迁移(MindConverter)

脚本迁移工具(MindConverter)旨在帮助算法工程师将存量的基于三方框架开发的模型快速迁移至 MindSpore 生态。根据用户提供的 TensorFlow PB 或 ONNX 模型文件,工具通过对模型的计算图(Computational Graph)解析,生成一份具备可读性的 MindSpore Python 模型定义脚本(.py)以及相应的模型权重(.ckpt)。


  • 一键迁移:


通过 MindConverter CLI 命令即可一键将模型迁移为 MindSpore 下模型定义脚本以及相应权重文件,省去模型重训以及模型定义脚本开发时间;

  • 100% 迁移率:


在 MindConverter 具备跨框架间算子映射的情况下,迁移后脚本可直接用于推理,实现 100% 迁移率;

  • 支持模型列表:


目前工具已支持计算机视觉领域典型模型、自然语言处理 BERT 预训练模型脚本及权重的迁移,详细模型列表见 README。

BERT 模型定义迁移结果展示(部分代码):


查看教程:https://www.mindspore.cn/tutorial/training/zh-CN/r1.2/advanced_use/migrate_3rd_scripts_mindconverter.html?highlight=mindconverter

四、可靠性

鲁棒性评测工具助力 OCR 服务达成首个 AI C4 鲁棒性标准要求

MindSpore 鲁棒性测试工具 MindArmour,基于黑白盒对抗样本(20 + 方法)、自然扰动(10 + 方法)等技术提供高效的鲁棒性评测方案,帮助客户评估模型的鲁棒性性,识别模型脆弱点。

OCR 是指利用光学设备去捕获图像并识别文字,减少人工成本,快速提升工作效率;如果攻击者通过对待识别的文字做出人眼不易察觉的修改,而模型无法对其正确识别或处理,就会导致 OCR 服务对文字识别的准确率下降,且使用人员不清楚问题背后的原因。测评团队使用 MindArmour 对 OCR 服务的鲁棒性进行测评,发现 OCR 服务中部分模型对自然扰动和对抗样本的防御能力较差,如文本框检测模型在校验噪声、PGD、PSO(粒子群)等攻击算法下准确率小于 66%;并以此指导模型开发团队通过对抗样本检测、数据增强训练等技术,使得模型对恶意样本的识别准确率达到 95+%,提高了模型及 OCR 服务的鲁棒性。



AI C4 标准链接:https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/CloudComputing/AIC4/AI-Cloud-Service-Compliance-Criteria-Catalogue_AIC4.html

五、更多值得期待

其实 MindSpore 即将带来的大量新特性,不止于文中所展示的举例,比如超大规模参数模型、可解释 AI、MindSpore IoT 支持等更加前卫的特性,将在 4 月底的华为开发者大会 2021(Cloud)大会亮相,而社区也会在近期发布一款新的开源工具集,敬请关注!开源一周年的 MindSpore 社区,将为大家带来源源不断的惊喜!

参考文献:

[1] De Vivo M, Masetti M, Bottegoni G, et al. Role of molecular dynamics and related methods in drug discovery[J]. Journal of medicinal chemistry, 2016, 59(9): 4035-4061.
[2] Liu X, Shi D, Zhou S, et al. Molecular dynamics simulations and novel drug discovery[J]. Expert opinion on drug discovery, 2018, 13(1): 23-37.
[3] Robustelli P, Piana S, Shaw D E. Developing a molecular dynamics force field for both folded and disordered protein states[J]. Proceedings of the National Academy of Sciences, 2018, 115(21): E4758-E4766.
4. Nerenberg P S, Head-Gordon T. New developments in force fields for biomolecular simulations[J]. Current opinion in structural biology, 2018, 49: 129-138.
[5] Yang Y I, Shao Q, Zhang J, et al. Enhanced sampling in molecular dynamics[J]. The Journal of chemical physics, 2019, 151(7): 070902.
[6] Bernardi R C, Melo M C R, Schulten K. Enhanced sampling techniques in molecular dynamics simulations of biological systems[J]. Biochimica et Biophysica Acta (BBA)-General Subjects, 2015, 1850(5): 872-877.
[7] Wang H, Zhang L, Han J, et al. DeePMD-kit: A deep learning package for many-body potential energy representation and molecular dynamics[J]. Computer Physics Communications, 2018, 228: 178-184.
[8] Ribeiro J M L, Bravo P, Wang Y, et al. Reweighted autoencoded variational Bayes for enhanced sampling (RAVE)[J]. The Journal of chemical physics, 2018, 149(7): 072301.
[9] Yang L, Qin Gao Y. A selective integrated tempering method[J]. The Journal of chemical physics, 2009, 131(21): 12B606.
[10] Kan Z, Zhu Q, Yang L, et al. Polarization effects on the cellulose dissolution in ionic liquids: Molecular dynamics simulations with polarization model and integrated tempering enhanced sampling method[J]. The Journal of Physical Chemistry B, 2017, 121(17): 4319-4332.

MindSpore官方资料
GitHub : https://github.com/mindspore-ai/mindspore
Gitee:https : //gitee.com/mindspore/mindspore
官方QQ群 : 871543426
工程MindSpore
相关数据
华为机构

华为创立于1987年,是全球领先的ICT(信息与通信)基础设施和智能终端提供商,我们致力于把数字世界带入每个人、每个家庭、每个组织,构建万物互联的智能世界:让无处不在的联接,成为人人平等的权利;为世界提供最强算力,让云无处不在,让智能无所不及;所有的行业和组织,因强大的数字平台而变得敏捷、高效、生机勃勃;通过AI重新定义体验,让消费者在家居、办公、出行等全场景获得极致的个性化体验。目前华为约有19.4万员工,业务遍及170多个国家和地区,服务30多亿人口。

https://www.huawei.com/cn/
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

TensorFlow技术

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

量子神经网络技术

将量子理论与神经计算相结合是美国路易斯安那(Louisiana) 州立大学Kak 教授的创举,他在1995年发表的“On Quantum Neural Computing”一文首次提出量子神经计算的概念,开创了该领域的先河。同年英国 Sussex大学的Chrisley提出了量子学习(Quantum Learning)的概念,并给出非叠加态的量子神经网络模型和相应的学习算法。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

对抗样本技术

对抗样本是一类被设计来混淆机器学习器的样本,它们看上去与真实样本的几乎相同(无法用肉眼分辨),但其中噪声的加入却会导致机器学习模型做出错误的分类判断。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

量子机器学习技术

量子机器学习是量子物理学和机器学习交叉的一个新兴的交叉学科研究领域。人们可以区分四种不同的方式来结合这两个父类学科。量子机器学习算法可以利用量子计算的优势来改进经典的机器学习方法,例如通过在量子计算机上开发昂贵的经典算法的有效实现。 另一方面,可以应用经典的机器学习方法来分析量子系统。 一般来说,可以考虑学习装置和所研究的系统都是完全量子的情况。

参数模型技术

在统计学中,参数模型是可以使用有限数量的参数来描述的分布类型。 这些参数通常被收集在一起以形成单个k维参数矢量θ=(θ1,θ2,...,θk)。

量子计算技术

量子计算结合了过去半个世纪以来两个最大的技术变革:信息技术和量子力学。如果我们使用量子力学的规则替换二进制逻辑来计算,某些难以攻克的计算任务将得到解决。追求通用量子计算机的一个重要目标是确定当前经典计算机无法承载的最小复杂度的计算任务。该交叉点被称为「量子霸权」边界,是在通向更强大和有用的计算技术的关键一步。

量子力学技术

量子力学(Quantum Mechanics),为物理学理论,是研究物质世界微观粒子运动规律的物理学分支,主要研究原子、分子、凝聚态物质,以及原子核和基本粒子的结构、性质的基础理论。

量化技术

深度学习中的量化是指,用低位宽数字的神经网络近似使用了浮点数的神经网络的过程。

Vivo机构
暂无评论
暂无评论~