2018 年,在第三届 HUAWEI CONNECT(华为全联接大会)上,华为首次公布了 AI 战略与全栈全场景 AI 解决方案,其中包含全球首个覆盖全场景人工智能的华为昇腾(Ascend)系列处理器以及基于华为昇腾全栈技术的产品和云服务。
围绕昇腾芯片,华为推出了智能边缘推理、数据中心推理、开发者套件、昇腾云服务等系列产品,来帮助 AI 在云边端的落地。
硬件只是底层的基础设施,想要充分发挥昇腾的计算能力,让 AI 真正落地,就需要软硬协同,打造完整的软件栈,积极构建 AI 开发者生态。
近日,在苏州举行的“2020 全球人工智能产品应用博览会”上,华为昇腾计算业务副总裁张迪煊向 CSDN 介绍了昇腾的生态构建之路,包括深度学习框架 MindSpore 开源背后的故事,以及昇腾开发工具链的进展。
张迪煊表示,昇腾在基础软件上投入了 3000 多人的研发力量,让软件工具从无到有,从能用到好用,真正满足开发者的需求。未来 5 年,华为还将投入 5 亿美金来打造 AI 生态,通过与各大高校、机构、初创企业等合作,全方位、多维度支撑华为 AI 的快速发展和落地。
# 开源 MindSpore,构建 AI 基础能力,从学习 PyTorch 做起
今年 3 月,华为正式开源了深度学习框架 MindSpore。它对下通过 CANN 发挥芯片的能力,对上提供网络编程API,以此开发AI应用程序,并且支持 ModelArts 服务。
MindSpore 集成与借鉴了业界主流框架的优势,能够提供全场景统一的 API,可进行自动微分、自动并行、自动调优;MindSpore IR 计算图表达可以执行深度图优化等。
架构层面,MindSpore 由 Mind Extend、MindExpress、MindCompiler、MIndRT 等部分组成。
相比同类产品,MindSpore 有三个特点,一是开发态友好,AI算法即代码;运行高效,与昇腾芯片对接;部署灵活,全场景按需协同。
实际上,除了华为之外,百度、旷视等也都有开源了自家的深度学习框架 PaddlePaddle(飞桨)和 MegEngine。
在谈及开源 MindSpore 的初衷时,张迪煊表示,因为业界没有框架能够真的覆盖云端边场景,而华为的业务范围决定了 MindSpore 的天然场景优势。
当然,目前业界的主流深度学习框架依然是 TensorFlow 和 PyTorch。作为一个后来者,MindSpore 在打造生态之路上采用了与 PyTorch 相似的路径:从学术界做起。
张迪煊表示,PyTorch 之所以能快速起来,是因为其用户界面非常友好,在学术界占有率越来越高,从而反哺工业界。而 MindSpore 在用户界面上和 PyTorch 比较相似,通过与高校和企业合作论文,以及开展各种大赛、活动,MindSpore 可以更容易吸引科研界的关注。
不过,作为一家硬件厂商,华为并不排斥合作。目前华为的底层硬件不仅支持 MindSpore,也支持第三方框架,并且同时在跟百度和旷视合作,提供多样化的硬件资源。
张迪煊表示,“中国应该有多个框架,供全球使用。”
# 投入 3000 人,从能用到好用,昇腾打造全栈解决方案
除了 MindSpore 之外,华为在基础软件上投入了大量的资源,其中昇腾团队有 70% 的人在做软件,3000 多人。
今年 8 月,在深圳举行的昇腾 AI 新品全球发布会(HAI 2020)上,华为正式发布了昇腾 AI 全栈软件平台,包含异构计算架构 CANN 3.0、全流程开发工具链 MindStudio 和昇腾应用使能平台 MindX。作为基础的软件工具,昇腾 AI 处理器的软件栈为开发者提供了计算资源、性能调优等运行框架以及功能丰富的工具。
CANN 3.0:基础架构作为连接硬件与软件的必由之路,而 CANN 3.0 完成了统一异构计算架构的升级。CANN 3.0 支持后向兼容和演进,只需要一套应用代码,即可兼容 10+ 种设备形态、14+ 操作系统以及多种 AI 框架。此外,CANN 3.0 提供两种算子开发方式,兼具效率和性能。目前,CANN 3.0 高性能算子库拥有 1000+ 深度优化的硬件亲和算子。
MindStudio 2.0:MindStudio 2.0 是 AI 全栈开发工具链,包括网络模型移植、应用开发、推理运行及自定义算子开发等功能,支持端到端开发,从算子开发、模型训练、模型推理、应用开发到应用部署的全流程,无需在不同工具上完成,可以显著降低开发门槛。训练过程中,可利用 Less BN(智能识别网络中不必要的 BN 算子)和随机冻结算法大幅提升模型训练效率;而在推理场景中,昇腾模型压缩工具可帮助加速推理进程。
MindX:MindX 1.0 通过 “2+1+X”助力 AI 计算融入千行百业。其中“2”是深度学习平台 MindX DL 和智能边缘平台MindX Edge;“1”是优选模型库 ModelZoo,目前已有 20 多个按场景和框架的高性能模型,预计将在今年增加到 50 以上;“X”则是使能各行业的 SDK。
所有软件都有能用到好用的过程,华为在打造开发工具的过程中也遇到过这个问题。张迪煊表示,MindStudio 2.0 就比 MindStudio 1.0 好用。
每个开发者都有自己的开发习惯,比如先用另一个工具来做开发,然后用华为的工具来做部署。然而对开发者来说,软件平台的切换往往意味着较长的适应过程。
针对这一问题,MindStudio 2.0 已经支持 14 个开发工具,到年底会支持 60 多个工具,而且这些工具全部实现组件化设计,并采用标准的 API,这样就可以不改变开发者原有的开发习惯,直接将 API 组件接入到 MindStudio,全程不用切换开发平台。
芯片底层的开放程度也决定了开发者的效率。因为开发者必须了解芯片的底层架构,包括每个内存单元的地址,才能够进行高效调用,华为的工程师也经历过同样的困难。张迪煊举例道,“去年的时候,开发一个算子大概要一到两个月,后来(我们)对底层函数做了加速封装,将其抽象出来,大大提高了开发效率。”
此外,华为在 MindStudio 2.0 还上增加了 AscnedCL 统一编程接口,解决底层的算子驱动优化问题,从而影响上层应用。
张迪煊表示,架构决定了平台在各行各业的推广能力。如果是垂直烟囱式架构,每个行业都要打造自己的烟囱,能力就没法共享,不能互通。而华为要做好水平层,然后在水平层上面构建烟囱,这样底层丰富能力就可以共享给每个烟囱。
# 5 年 5 亿美金,送出 1000 张训练卡,构建全行业 AI 生态
AI 开发者生态构建并不是一蹴而就的,找到潜在的开发者,并为他们提供更好的工具和服务非常关键。华为把目光投向了高校。
张迪煊表示,华为去年引进的大部分天才少年都是人工智能领域的,但是这些人才也需要一套完整的学习路径和开发工具来进行锻炼。
目前,教育部批准了 200 多所高校开设人工智能相关专业课。去年以来,华为已经与多所高校展开合作,从教材到课程再到开发工具,打造完整的人才培养路径。
教材方面,华为联合了“新一代人工智能系列教材”编委会、计算机类专业教指委、高等教育出版社立项了人工智能专业实践系列教材。目前,《昇腾AI处理器架构与编程》、《深度学习与MindSpore》两本教材已经发布。《昇腾AI开发基础指南》、《HCIA-AI华为认证工程师教材》也正在编纂中,不久就可以与广大师生见面。
另外,因为每个学校都有自己的擅长点,华为还跟国内十所高校联合开发了 10+ 课程,包括人工智能导论、机器学习与模式识别、深度学习、人工智能程序设计、语音识别、计算机视觉、自然语言处理、智能芯片原理与应用、智能系统与应用等。
开发工具方面,华为推出了支撑全流程开发的工具链 MindStudio,方便更多的开发者进行算子开发、模型训练与模型推理等应用开发。
张迪煊表示,昇腾还在跟 60 多所高校合作,采取软件众筹的模式,将部分模型开放给高校的博士等,然后再通过社区回馈给华为。利用高校的智慧,帮助完善 ModelZoo,帮助华为做网络模型的构建。
为了更好地位开发者提供技术服务,华为还搭建了昇腾社区,并提供开发者论坛,方便开发者交流和答疑,打造一个知识共享的平台。此外,针对那些缺乏算力的开发者,华为还将今年送出 1000 张训练卡,并通过云服务的方式来提供算力支撑,助力 AI 科研与应用。
张迪煊表示,以前华为主要考核收入指标,但是今年新增了生态指标,华为将在未来 5 年投入 5 亿美金,今年则投入 1 亿美金,来打造 AI 生态。
“把钱花出去,跟各个机构合作,扶持没有钱的早期初创企业,在产业里构建全方位的 AI 能力,全面构建生态组织,用组织支撑 AI 生态的发展,这是我们在多个维度构建的支撑点。”