文章图片
大家好 , 在MindSpore开发团队和社区开发者共同努力下 , MindSpore很多的新特性马上要与大家见面了 , 比如动态图分布式训练效率的大幅提升、一键模型迁移、模型鲁棒性检测、深度分子模拟及量子机器学习等 , 无论是在效率提升、易用性 , 还是创新方面 , 都是干货满满 。 下面就给大家快速预览即将到来的这些关键特性的文字描述 , 欢迎大家在3月29日MindSpore官方B站观看直播讲解 , 点击文章底部「阅读原文」可快速跳转至直播讲解哦~
一、效率提升 大幅提升动态图下分布式训练的效率
在深度学习中 , 当数据集和参数量的规模越来越大 , 训练所需的时间和硬件资源会随之增加 , 最后会变成制约训练的瓶颈 。 分布式并行训练 , 可以降低对内存、计算性能等硬件的需求 , 是进行训练的重要优化手段 。 当前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
分子动力学模拟是用牛顿定律近似来描述微观原子和分子尺度演化的计算机模拟方法 。 其既可用于基础科学研究也可用于工业实际应用 。 在基础科学领域 , 分子动力学方法有助于科研学者从微观研究体系的物理化学性质 。
【Dvpp|MindSpore开源一周年:量子机器学习、深度分子模拟等新特性正在“刷新”】在工业生产中 , 其可以利用大规模计算的能力辅助药物分子的设计和蛋白靶点的搜寻[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) , 为广大的科研人员、老师和学生提供了快速设计和验证量子机器学习算法的高效平台 。
文章图片
文章图片
查看教程:
https://www.mindspore.cn/tutorial/training/zh-CN/r1.2/advanced_use/parameterized_quantum_circuit.html
多跳知识推理问答(TPRR)
TPRR是华为泊松实验室与华为MindSpore团队提出的解决开放域多跳问题的通用模型 。 相比于传统问答仅需从单个文档中检索答案 , 多跳知识推理问答需要从多个佐证文档得到最终答案 , 并返回问题到答案的推理链 。 TPRR基于MindSpore混合精度特性 , 可以高效地完成多跳问答推理过程 。
全路径建模:
TPRR模型在多跳问题推理链的每一个环节中基于全部推理路径的条件概率建模 , 模型以“全局视角”进行知识推理 。
动态样本选取:
TPRR模型采用动态样本的建模方式 , 通过更强的对比学习提升模型多跳问答的能力 。
算法流程图如下:
文章图片
查看教程:
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社区 , 将为大家带来源源不断的惊喜!
推荐阅读
- 技术|使用云原生应用和开源技术的创新攻略
- 设计|腾讯宣布企业级设计体系 TDesign 对外开源
- 项目|开源鸿蒙OpenHarmony 3.0实现全设备能力初步覆盖
- 协议|再发正式版本,经典开源压缩软件 7-Zip 21.07 发布:仅 1.5MB
- Open|意大利法院认定开源软件许可证的可执行性
- Vue|TDesign 重磅开源,腾讯设计云产品集体亮相
- 用户|全新微软 Win11 WSA 开源工具上线 GitHub:支持双击 APK 安装
- Open|白宫邀请软件业者座谈以改善开源软件领域的安全状况
- 社区|阿里云等企业主导的龙蜥社区发起“龙腾计划”;OpenInfra基金会推出LOKI标准;GitLab 14.6发布 | 开源日报
- log|阿里云回应开源社区Apache log4j2漏洞:早期未意识到严重性,未及时共享信息