基于华为云EI ModelArts,体验从零打造AI应用模型算法
现现在 AI 技术、概念火爆、落地应用更是繁多,但开发呢?是否困难?到底有多痛?
据了解,大部分 AI 开发者的工做时间并不长,而且十有八九可能不是“科班出身”。从编写的教材、录制的课程中就能够看出,全部的教学都不可避免地带有很强的的学术性,即使有意避免研究导向,仍然离产业界的需求相去甚远。
而且随着新一波人工智能的热潮,人们发现手里的数据多了,电脑运算的更快了,但实际上,这些 AI 开发者使用的工具并不顺手。
为帮助开发者更深刻地了解 AI 开发,快速上手 AI 开发必备技能,12 月 20 日的AIcon活动上,华为云举办了一场以「基于 ModelArts 平台的 AI 开发实战」为主题的现场挑战 Workshop!现场由来自华为云EI深度学习服务团队负责人为开发者讲解了 ModelArts 的 相关技术与应用,帮助开发者学习如何从 0 到 1 打造一款 AI 应用模型。
ModelArts——更快的普惠 AI 开发平台
ModelArts 是面向 AI 开发者的一站式开发平台,提供海量数据预处理及半自动化标注、大规模分布式训练、自动化模型生成,以及端-边-云模型按需部署能力,帮助用户快速建立和部署模型,管理全周期 AI 工做流。
同时,ModelArts 可以在 AI 开发全生命周期中,从原始数据、标注数据、训练做业、算法、模型、推理服务等,提供全流程可视化管理。支持千万级模型、数据集以及服务等对象的管理,无需人工干预,自动生成溯源图,选择任一模型就能够找到对应的数据集、参数、模型部署在哪里。其中最实用的训练断点接续功能、训练结果比对功能,在华为内部开发者中也颇受欢迎。
简单来讲,ModelArts 的特色是“四快”:
数据管理快——让数据准备效率百倍提高
想象一下,若是你的老板给了你 10 万张无标签的图片,并要求你为这些数据打上标签。你该怎么办呢?
许多公司都在数据的大海里遨游,不管是交易数据、物联网传感器产生的海量数据、安全日志,仍是图像、语音数据等等,这些都是未标注的数据。
正如华为云EI深度学习服务团队负责人所说,“当前作 AI 开发,最让开发者头疼的就是数据的采集和数据的处理。曾有开发者吐槽,光是数据准备就要占掉总体开发时间的 70%。”那么,为何数据的处理这么难?效率为何这么低呢?
人工智能界有一个说法:“有多少人工就有多少智能。”由于目前实现人工智能的主要方法是机器学习(目前火热的深度学习也是机器学习的一部分),而机器学习中目前大部分应用都是有监督的学习,即须要大量的 标注样本 去训练人工智能算法模型。
例如图像识别任务中,必须有大量已经标注好的图片,好比一张猫的图片,狗的图片等,你必须明确的告诉 AI 算法,这些图片里面是什么东西,它再从中去学习出相应的“知识”。
因此,AI 并不像传统想象的那样,丢一堆数据给 AI 算法,AI 算法就可以从中学习到各类有用的知识。而是背后有大量的人工在标注数据。
而 ModelArts 在数据管理方面,会将数据进行预处理,用 AI 的数据去标注数据,即自动化标注和半自动化标注。ModelArts 可对数据采样和筛选,预标注,缩减须要标记的数据量,下降工做量。目前, ModelArts 已经在自动驾驶领域有很是多的应用,包括人车模型、信号灯模型等等,这些模型在自动驾驶的场景里面,能够快速地提高数据处理的效率,实时地处理数据。在将来,ModelArts 也将面向通用计算机的其余领域。
训练快——模型训练耗时减低一半
在模型训练部分,ModelArts 经过硬件、软件和算法协同优化来实现训练加速。尤为在深度学习模型训练方面,华为 将分布式加速层抽象出来,造成一套通用框架——MoXing(“模型”的拼音,意味着一切优化都围绕模型展开)。编程
采用与 fast.ai 同样的硬件、模型和训练数据,ModelArts 可将训练时长可缩短到 10 分钟,创造了新的纪录,为用户节省 44% 的时间。
MoXing 是华为云 ModelArts 团队自研的分布式训练加速框架,它构建于开源的深度学习引擎 TensorFlow、MXNet、PyTorch、Keras 之上,使得这些计算引擎分布式性能更高,同时易用性更好。
MoXing 内置了多种模型参数切分和聚合策略、分布式 SGD 优化算法、级联式混合并行技术、超参数自动调优算法,而且在分布式训练数据切分策略、数据读取和预处理、分布式通讯等多个方面作了优化,结合华为云 Atlas 高性能服务器,实现了硬件、软件和算法协同优化的分布式深度学习加速。
有了 MoXing 后,上层开发者能够聚焦业务模型,无需关注下层分布式相关的 API,只用根据实际业务定义输入数据、模型以及相应的优化器便可,训练脚本与运行环境(单机或者分布式)无关,上层业务代码和分布式训练引擎能够作到彻底解耦。
另外,衡量分布式深度学习框架加速性能时,主要看吞吐量和收敛时间。在与吞吐量和收敛时间相关的几个关键指标上,华为云 ModelArts 都作了精心处理:
在数据读取和预处理方面,MoXing 经过利用多级并发输入流水线使得数据 IO 不会成为瓶颈;
在模型计算方面,MoXing 对上层模型提供半精度和单精度组成的混合精度计算,经过自适应的尺度缩放减少因为精度计算带来的损失;
在超参调优方面,采用动态超参策略(如 momentum、batch size 等)使得模型收敛所需 epoch 个数降到最低;
在底层优化方面,MoXing 与底层华为自研服务器和通讯计算库相结合,使得分布式加速进一步提高
那么,在 MoXing 一系列的优化以后,实际效果如何?以国际权威成绩来参考:
在斯坦福大学发布 DAWNBenchmark 最新成绩中,在图像识别(ResNet50-on-ImageNet,93% 以上精度)的总训练时间上,华为云 ModelArts 排名第一,仅需 10 分 28 秒,比第二名提高近 40%。
在这个汇聚谷歌、亚马逊 AWS、fast.ai 等高水平队伍的国际权威深度学习模型基准平台上,华为云 ModelArts 第一次参加国际排名,便实现了低成本、快速又极致的 AI 开发体验,其海量数据预处理及半自动化标注、大规模分布式训练、自动化模型生成以及端 - 边 - 云模型按需部署能力,更是体现了当前中国业界深度学习平台技术的领先性。
上线快——一键部署到云、端、边,支持各类上线场景
现现在,纵观整个 AI 产业,不只仅是云,还会有边和端都须要部署的场景。然而,在 AI 规模化落地的场景下,模型部署会很是复杂,须要写代码集成到应用系统,维护、更新。例如在智慧交通领域,更新后的模型,须要一次性同时部署到各类不一样规格、不一样厂商的摄像头上,这是一项很是耗时、费力的巨大工程。
对于此类场景,ModelArts 能够一键推送模型到全部边缘、端的设备上,云上的部署还支持在线和批量推理,知足大并发和分布式等多种场景需求。
开发者能够在 ModelArts 上得到一些高并发、自动弹性伸缩的特性。可以根据用户制定的策略,自动调整云服务器的计算资源,跟随用户的业务需求变化。在业务需求降低时自动减小云服务器,节约资源和成本;在业务需求高峰时自动增长云服务器,保证业务平稳健康运行。
上手快——自动学习,零 AI 基础构建模型
ModelArts 具有自动学习功能,支持模型的自动设计与自动调参等,可以帮助开发者提高开发效率、快速上手。
为何须要自动学习?
AI 开发有两大类,第一类为 AI 认知服务,好比图像识别和 OCR 等,这一类门槛很低,但灵活性差,只支持特定类型。当不知足需求时,只能定制一个模型,周期很是长费用也比较高。第二类就是找 AI 的算法工程师、算法专家,去作本身的模型;还有一类就是那些直接用 AI 的框架本身写代码以及本身训练数据,这一类的门槛较高,灵活度也很高。而自动学习就是但愿可以打破这二者,既有必定的定制化的能力,又可以下降 AI 定制化模型的门槛,不须要写代码,用户能够定制化本身的模型的特色。
在自动深度学习里面,关键的技术是可以作到多维度下的模型的架构自动设计,包含模型的元学习,涉及一些训练指标,还有推进网络涉及的推理速度和监控等。另外还包括一些元学习的训练参数的自动配置、模型训练的参数配置及搜索等。
另外,因为深度学习向计算机视觉输入原始数据,整个特征工程是在神经网络里面作的,而机器学习须要不少算法工程师去识别哪些特征是对业务是起正向做用的,因此自动机器学习的关键技术,就是高效自动特征工程和自动调参。
除此以外,据华为云EI深度学习服务团队负责人介绍,华为云 ModelArts 还有一个特点,就是面向应用开发者。对于有经验的开发者,能够在 ModelArts上自行编写并导入算法代码,核心组件 MoXing SDK 支持丰富的模型库、优化算法和各种工具库;支持自动超参数调优;包含训练 - 验证 - 预测 - 模型导出的整套框架;开发者只须要编写一套代码就能自动实现单机及分布式化。
对于编程苦手却想快速生成模型的 AI 初学者,ModelArts 也预置了可以覆盖大部分经常使用应用场景的算法模型(如 RestNet_50、Faster_RCNN、SegNet_VGG_16 等,将来还将上线更多算法模型),全部预置模型的基于开源数据集训练,模型精度领先。只需配置数据路径 / 日志输出路径和 Hyper Parameter 自动选择设置就能够一键启动训练。
ModelArts 应用实例:金融票据 OCR 识别
金融票据,包括银行承兑票据和商业承兑票据,目前银行承兑票据占了 90% 以上的票据市场份额,金融票据 OCR 识别工做重点在于银行票据的识别。
对于业界普通 OCR 软件,在金融票据领域识别准确率不高,对于现有一些针对金融票据作过优化的 OCR,识别准确率也算达到 90%。因为金融票据金额不低,对于 OCR 识别要求很高,而金融票据难点在于票据格式多样且差异细微等。
另外,票据模型开发训练难点包括数据标注、模型训练、调参和部署上都有较多难点,对于 AI 开发水平要求很高,须要很是资深的 AI 专家进行繁琐和长时间对于票据 AI 进行不断训练。
经过 ModelArts 助力金融票据 OCR 识别的实战。多位 ATN 社区使用者使用后认为:ModelArts 适合 AI 的初学者,经过数据集的分类,可自动学习,无需调参等操做;适用于迁移学习;线上部署便利,逐步集成更多的数据标注工具,扩大应用范围。
后续,华为云 ModelArts 将进一步整合软硬一体化的优点,提供从芯片(Ascend)、服务器(Atlas Server)、计算通讯库(CANN)到深度学习引擎(MindSpore)和分布式优化框架(MoXing)全栈优化的深度学习训练平台。
华为云 ModelArts 会逐步集成更多的数据标注工具,扩大应用范围,将继续服务于智慧城市、智能制造、自动驾驶及其它新兴业务场景,在公有云上为用户提供更普惠的 AI 服务安全