11 月 21 日,由 InfoQ 主办的人工智能领域顶级技术盛会——AICon 2019 全球人工智能与机器学习技术大会于北京国际会议中心盛大开幕,华为云以【全栈 AI 开发技术实战】为主题,从底层算子开发环境搭建到实现全栈全场景的 AI 开发,以点到面,为现场开发者进行了深入浅出的讲解。
2006 年起,伴随着深度学习技术的突破,人工智能开始以前所未有的速度在全球范围内快速发展,中国的人工智能技术与实际应用更是走在了世界的前列,并已经在工业的各个领域落地结果。
在产业互联网的加持下,更是有很多企业喊出了“All in AIoT”的口号,人工智能正在打造属于"智能"的产业闭环。无论是工业还是生活,从人工智能开始,到人工智能结束。万物互联和自动化等名词,正在成为人工智能领域迈向下一阶段的关键词。
然而要落地在实践,却面临诸多非常现实的问题。在当下,除了需要解决算力、算法、数据的三大挑战之外,还面临着成本、复杂性、可扩展性、数据隐私等多重挑战。此外,AI 应用的大规模落地也需要全栈 AI 能力的完美整合、全场景的最佳实践以及全栈 AI 开发经验的有力支撑。
作为智能化时代最重要的角色之一,2019 年 11 月 21 日,AICon2019 全球人工智能与机器学习技术大会【全栈 AI 开发技术实战专场】上,华为云的四位老师会分别从底层算子开发环境搭建、AI 计算框架的设计理念、全场景 AI 应用开发实战等多角度入手,为开发者详解 AI 趋势下应用开发的全实践。
从神经网络到硬件,昇腾开发工具链全流程应用实践
什么决定了应用功能的强大与否?当然是其背后的各种算法,尤其是在人工智能大行其道的当下,神经网络算法更是深入在各领域下。那么对于神经网络的算法来说,从各种开源框架到神经网络模型的实现再到实际芯片上的运行,中间需要多层次的软件结构来管理网络模型、计算流以及数据流。
华为昇腾 AI 工程师谭涛老师,现场解读了昇腾 AI 处理器的基础软件栈架构,依下图所示,整个软件栈是由神经网络软件流和工具链构成的,从上而下支撑起整个芯片的执行流程。
昇腾处理器软件栈
L3 应用使能层,是由若干个已经封装好的业务引擎组成的,一个个引擎都是基于流程编排器实现所做的应用使能小组件。如果在应用设计的过程中需要 AI 的能力,就可以将 AI 能力作为引擎封装起来;
L2 层执行框架层,执行框架层是离线模型的生成和执行能力的承载平台,通过 L3 的应用使能层所定义的算法模型来向下传递到执行框架层;
L1 芯片使能层,是离线模型到处理器的桥梁,以张量加速引擎为核心;
L0 计算资源层,即处理器 + 操作系统的最终运算在这一层,严格来说这一层更偏硬件,不能被称作为软件流。
神经网络软件流
构建一个应用需要做很多事情,首先在收集数据的同时也要对其进行打磨,如果数据不满足要求,就要通过数字视觉预处理模块打磨成数据模型所需要的格式。另外在准备模型的过程中,最开始是原始神经网络模型,经过框架管理器的离线模型生成器与张量算子库的作用,转换成在 AI 上跑的离线模型,再集成到应用中,由框架管理器的离线模型执行器加载,加载好之后再利用运行管理器与任务调度器部署到处理器上。
全栈全场景 AI 解决方案
华为提供了全栈全场景 AI 解决方案,什么是全栈和全场景呢?全栈是指从芯片到应用使能的全流程,全场景是指不针对某一类模型与测试做优化,统合方法能力较强。芯片使能层基本上对应上文所提到的 L1 层,模型框架层对应 L2 层,应用使能对应 L3 层。
可以看到 MindSpore 在模型框架层,和 TensorFlow、PyTorch 一样都是训练框架。ModelArts 作为华为云提供的 AI 训练服务位于应用使能层。将上图左侧的内容具象化后,就形成了一套完善的工具体系 --Mind Studio。在算子层面、模型层面都能实现开发、设备管理、日志管理等功能,极大提升了 AI 应用的开发效率。
全场景 AI 计算框架 MindSpore 的核心解读
目前虽然人工智能应用已经开始逐渐落地在各领域下开花结果,虽然看起来一片繁荣景象,但不可否认的,目前落地的大部分仍然是处于感知层面的应用。当下,AI 从各行业研究到落实在全场景应用中存在着巨大的鸿沟。比如开发门槛高,运行成本高、部署时间长等等痛点。
华为 MindSpore 首席创新架构师于璠老师,现场解读了如何通过设立新编程范式,新执行模式以及新协作方式来实现 AI 在更广阔的场景下的应用落地。
何谓新编程范式?即 AI 算法为代码,基于数学原生表达的 AI 编程新范式,打造易用、高效、易调试的可微编程架构,降低开发门槛,让算法专家聚焦 AI 创新和探索。比如这种新编程范式的可编程性就非常强,天然支持条件、循环等控制流的表达;通过复用编译器优化能力、采用自动化的反向算子调优策略,也满足了全流程的高性能。
新执行模式,分为三层。即整图下沉执行,充分发挥昇腾的最大算力。因为当前 AI 计算的复杂性和算力的多样性,导致交互开销大、数据供给难等问题。通过使用面向芯片的深度图优化技术,同步等待少,最大化“数据 - 计算 - 通信”的并行度,相比 Host 侧图调度方式,训练性能能够提升 10 倍!
此外,通过数据驱动的大规模分布式梯度聚合,通过梯度数据驱动的自适应图切分优化,实现去中心化的自主 AllReduce,梯度聚合步调一致,实现计算与通信间的充分流水,超大模型高效自动混合并行,最终实现算力的平滑扩展。
新协作方式,通过采用软硬协同的图优化技术来屏蔽场景差异,采用端云协同 Federal Meta Learning 策略来打破端云界限,实现多设备协同模型实时更新,打造统一架构下的端云协同训练和推理,确保统一架构下全场景模型部署性能一致,以及个性化模型精度的提升。
基于全栈能力的 AI 应用快速开发实践
华为云 AI 通过开放包含 AI 开发平台 ModelArts 及端云协同开发平台 HiLens 的全栈人工智能技术能力,旨在助力开发者加速 AI 应用落地。华为云 AI 高级解决方案架构师魏振强老师现场结合实际案例,为现场参会者介绍了如何基于华为云 AI 快速构建人工智能应用的全流程。
首先魏老师介绍了华为全栈全场景的 AI 解决方案,他提到 AI 作为一种通用目的技术(GPT), 深刻改变教育、金融、媒体、物流、电信等行业领域,全场景的 AI 解决方案显得尤为重要,整体方案如下图所示。
华为全栈全场景 AI 解决方案
这个解决方案,主要包含四个核心组成部分,分别为应用使能、MindSpore、CANN 以及 Ascend。
应用使能层面,通过 ModelArts 来提供分层 API 和预集成的全流程服务;MindSpore 层面,使用 MindSpore 实现端、边、云独立的和协同的统一训练和推理框架;CANN,以芯片算子库为核心的高度自动化算子开发工具;最后 Ascend,就是基于统一、可扩展架构的系列化 AI IP 和芯片 -Ascend 来输出解决方案。
一站式开发平台 ModelArts
作为一站式 AI 开发平台,ModelArts 满足了数据科学家、算法工程师、软件工程师以及 AI 初学者等不同层级用户的需求,涵盖数据处理 - 模型训练 - 模型管理 - 部署的全流程功能。
在数据处理阶段,通过智能数据筛选,可自动清洗无效数据;采用基于半监督 / 主动学习的混合智能标注方法,大幅提升数据标注效率;
通过对数据特征进行深度挖掘,可提供深度数据的优化建议。在模型训练阶段,使用者无需编码和开发经验,只需简单三步即可实现自动学习,极大降低 AI 应用的开发门槛;
此外拥有可覆盖图像分类、图像语义分割、物体检测与定位、强化学习等场景的预置算法,配合云上开发环境与自研 MoXing 库,有效提升 AI 开发效率;
模型管理阶段,目前已经可以实现版本管理、模型溯源以及精度追踪等功能,此外也即将上线模型评估与诊断功能,可对模型进行假阴性、特征敏感度等关键领域进行分析,并输出分析结果和诊断建议;
在部署层面,真正实现端、边、云全场景的 AI 部署,解决 AI 模型的部署及上线难题。
如何基于 Cloud IDE+Codehub 构建高效可信的开发环境
华为轻量级云化集成开发环境(Cloud IDE)是为满足开发者 Code anywhere anytime 而生,通过基于开源的华为自研内核,Cloud IDE 提供了代码编辑器的轻量极速、快速文件和目录访问操作和多语言高亮显示等特性和 IDE 的代码调试和代码理解的能力。华为云高级产品经理赵彦老师,现场为大家介绍了如果基于 Cloud IDE 来实现 AI 开发效率的飞跃。
基于 DevCloud 构建一站式、全流程、安全可信的 DevOps 云平台
上图为华为云提供给软件开发用户的 DeVops 工具链的全图是分为开发、测试、发布、运维 / 运营全部的链条。开发者重点关注的肯定是开发层面的内容,赵彦老师着重为大家介绍了 CloudIDE 和 CodeHub 这两部分。
如何在云端集成开发环境
Cloud IDE 是指运行在云端的轻量级集成开发环境,具备轻量快速、支持主流编程语言、Visual Studio Code 编码体验以及支持插件扩展等特性,通过这些特性,旨在定义一种新的在线编程体验。
开发者肯定对 IDE 工具不陌生,在云计算越发深入的现在,云计算正在影响到各行各业。通过将本地 IDE 迁移到云端,用户可以通过浏览器登录到开发环境上,能够快速访问到云端 IDE 实例,并且这个实例相当于是为用户所提供的实际运算容器,该运算容器内部会提供 Terminal 访问能力、Runtime、Debugger 编译器以及 Source Code 配置管理工具等众多功能。
云端的 IDE 相较于本地 IDE 工具有很多好处,首先就是轻量和快速,其次是云端 IDE 能够支持多种主流的开发语言,并且实际上部分语言能力已经超过了其所对标的能力。最后云端 IDE 通过与 VSCode 进行对标,这种开发体验可以满足 VSCode 70% 或 80% 的能力场景,降低入门门槛和学习成本。
华为云代码托管服务 -CodeHub
此外,华为云 CodeHub,是华为云面向开发者的基于 Git 企业级代码托管服务,通过吸收华为千亿级代码管理经验所自研的一套代码管理平台,其具备安全、高效协作、贡献可视化这三特点。基于不同开发语言和应用场景的示例源代码,可提升源码、算法、组件、框架等项目的开发效率。目前已有 AI、鲲鹏、云原生、IoT 等大量官方模板。
DevCloud+ModelArts
那么 Cloud IDE 和 Codehub,这两者与上文所提到的昇腾开发框架和 ModelArts 人工智能的训练服务有什么必然的联系?正因为 Cloud IDE 满足了云端的按需获取、即时获取的能力,降低了 AI 开发门槛,初级甚至是小白开发者都能够利用华为云端已经向用户开放的 ModelArts SDK 的样例模板,可以快速构建自己的样例工程,用十分钟的时间就可以把属于自己的 AI 开发的应用 API 推到云端线上。
写在最后
随着技术的成熟、开发门槛的降低以及 AI 开发者人群基数的不断增长,人工智能将会在未来发挥越来越大的作用。在 AICon 上,华为云所展示的一系列产品和工具,希望通过将自身的技术集成起来,为开发者打造一个能够更加高效开发应用的云端开发平台。随着云计算领域在全球范围内的不断深化,相信对于云端开发者群体生态来说,也会愈发繁荣和壮大。
评论