文章主题:​

666AI工具大全,助力做AI时代先行者!

作者 | 陈亮 华为云 EI 布道师 编辑 | Vincent AI 前线导读:

在过去的几年中,人工智能的热潮席卷全球,然而许多企业却仍然对机器学习保持着距离,觉得它既昂贵又难以掌握,更关键的是,需要大量的技术人才来支持。然而,当前的一个趋势正在逐渐改变这种现状,那就是“万物皆服务”(Everything-as-a-Service)模式。这意味着,企业可以以相对较低的成本,快速地将机器学习应用到实际的业务中。现在,借助于机器学习云平台提供的服务,企业可以开始构建自己的第一个模型。只需一个小团队,就可以利用机器学习的预测功能,从中获取有价值的信息。这种模式被称为“机器学习服务”(Machine Learning as a Service,简称MLaaS)。MLaaS是一种包含机器学习大部分基础问题的全自动或半自动云平台的服务总称。它可以帮助企业轻松解决机器学习中的数据预处理、模型训练、模型评估和预测等难题,使得企业可以专注于核心业务,而不用担心复杂的技术挑战。因此,无论您的企业规模大小,都可以考虑采用MLaaS模式,将机器学习技术应用于实际业务中,以提高效率,降低成本,并获取有价值的业务洞察。

在我国当前的市场环境中,我们可以看到许多企业已经开始着手布局机器学习云平台,并且已经有一些公司开始利用开源组件来开发自身的机器学习云平台,以便于更有效地推进企业内部的机器学习应用。在这样的背景下,华为云 AI 平台 ModelArts 为何能在竞争激烈的 AI 框架和平台市场中脱颖而出呢?开发者又为何会选择 ModelArts 呢?为了回答这些问题,我们将深入探讨 ModelArts 的技术架构和具体实践,希望通过这样的方式,能够帮助你寻找到答案。

更多优质内容请关注微信公众号“AI 前线”(ID:ai-front) 华为 AI 平台 ModelArts 定位

ModelArts,作为华为全栈全场景AI解决方案的入口,专为用户与开发者打造,它是一个集成的AI开发平台。在这里,您可以享受到一系列的一站式服务,包括海量数据的预处理和半自动化标注、大规模分布式训练、以及自动化模型的生成等。此外,我们的平台还具备端-边-云模型按需部署的能力,让您可以根据实际需求,快速构建并部署模型,从而实现全周期的AI工作流程的管理。总的来说,ModelArts就是您的AI开发的最佳助手,助您事半功倍,提高工作效率。

在AI领域,许多工程师都面临着诸多挑战,尤其是在处理众多的AI工具安装配置、数据准备以及模型训练等方面。为了应对这些问题,ModelArts应运而生,这是由华为内部衍生出的一个AI产品。由于华为内部拥有大量的算法工程师和AI开发工程师,他们都会遇到这些痛点。为了帮助他们解决这些问题,我们收集并整理了这些AI开发中的常见问题,最终形成了ModelArts这个平台。该平台的宗旨是提供一个一站式的AI开发解决方案,覆盖从数据准备、算法开发、模型训练到最终部署的全过程,帮助开发者快速构建并部署AI模型,从而实现模型的价值。在ModelArts平台正式上线华为云之前,它已经在内部的众多AI工程师的实践中得到了不断的优化和完善,下面将详细介绍ModelArts平台的主要功能:

ModelArts 功能与架构详解 01 数据处理

在AI开发过程中,海量数据的处理是一个关键问题,尤其是在数据准备与标注阶段,这通常会耗费整个开发过程的一半以上的时间。为了应对这一挑战,ModelArts数据处理框架应运而生,它具备数据采集、数据筛选、数据标注以及数据集版本管理等功能。该框架还提供了自动化和半自动化的数据筛选功能,以及自动化的数据预标注和辅助自动化标注工具。通过这些特性,AI开发者能够基于此框架实现数据标注的全流程处理,从而提高效率,降低成本。具体来说,开发者可以利用框架提供的功能,实现从数据采集到数据标注的全面自动化处理,这在很大程度上提高了整个开发过程的效率,使得AI开发成为可能。

ModelArts是一款功能强大的AI场景标注工具,能够满足计算机视觉、自然语言处理、音视频等多种AI应用需求。该工具不仅可以处理图片、文本、语音、视频等各类标注任务,涵盖了图片分类、对象检测、图片分割、语音分割、文本分类等多个场景,同时还具备面向自动驾驶、医疗影像、遥感影像等领域的高精度数据处理与预标注能力。

ModelArts平台提供了全方位的标注解决方案,能够满足个人开发者独立标注、业余小团队小规模协作标注,以及专业团队的大规模标注需求。对于大规模团队的标注工作,我们提供专业的项目管理、人员管理和数据管理,确保从项目创建、分配、管理、标注到验收这一整个流程都能得到有效的支持。对于个人和小团队的小规模协作标注,我们提供了便捷且易用的标注工具,以最小化的项目管理开销来提高工作效率。

作为一名文章写作高手,我会将原文进行重新组织,使其表达更为专业和具有深度。为了保障用户数据的安全性和隐私性,标注平台采用了多种措施。首先,该平台 implemented严格的权限管理机制,确保用户数据仅在授权的范围内被访问和使用。其次,通过采用先进的分配策略,标注对象被巧妙地分配给不同的用户,从而有效地保护了用户的隐私。最后,为了满足数据脱敏的需求,标注平台还专门开发了相应的功能,实现了标注数据的私密性。综上所述,标注平台在保障用户数据安全性和隐私性方面采取了多种措施,既保证了用户的数据安全,又充分尊重了用户的隐私权。

标注工具提供 2D 框、3D 框、多边形、点、直线、mask、曲线等标注图形。支持像素级的分割,支持数据的预标注功能,通过预置算法和用户自定义算法实现数据在加载后自动标注,人工仅需要少量手工修正;如下图例子支持数据的自动辅助标注能力,标注员可通过简单标识后,由工具自动化标识准确信息(如轮廓信息),在特定领域可提升人工标注效率 10 倍

02 算法开发

在 AI 开发过程中搭建开发环境、选择 AI 算法框架、选择算法、调试代码、安装相应软件或者硬件加速驱动库都不是容易的事情,使得学习 AI 开发上手慢门槛高。为了解决这些问题,ModelArts 算法开发平台简化了整个开发过程,以降低开发门槛,算法开发过程如下图所示:

支持所有主流的 AI 算法框架

机器学习和深度学习领域,主流开源的训练和推理计算框架包括 TensorFlow、PyTorch、MXNet 等。ModelArts 平台为适应不同开发者的开发习惯及不同应用场景,支持所有主流 AI 计算框架,并提供友好易用的开发和调测环境。支持传统机器学习算法运行,如逻辑回归,决策树,聚类算法等;支持 CNN,RNN, LSTM 等多种类型的深度学习算法执行。

简化面向分布式训练的算法开发

深度学习需要大规模的加速计算,往往需要大规模 GPU 集群进行分布式加速。而现有的开源框架需要算法开发者写大量的代码实现在不同硬件上的分布式训练,而且不同框架的加速代码都不相同。为了解决这些痛点,需要一种轻型的分布式框架或者 SDK,构建于 TensorFlow、PyTorch、MXNet 等深度学习引擎之上,使得这些计算引擎分布式性能更高,同时易用性更好,ModelArts 的 MoXing 可以很好地解决这些痛点,开发者基于 MoXing 开发的代码如下图所示:

简化调参,集成多种调参技巧包,如数据增强的调参策略,可简化 AI 算法工程师的模型调优痛苦。

简化分布式,支持将单机代码自动分布式,使算法工程师不需要学习分布式相关的知识,在自动化分布式的同时,也优化了分布式的性能,自动化和高性能是相辅相成的。

03 模型训练

模型训练中除了数据和算法外,开发者花了大量时间在模型参数设计上。模型训练的参数直接影响模型的精度以及模型收敛时间,参数的选择极大依赖于开发者的经验,参数选择不当会导致模型精度无法达到预期结果,或者模型训练时间大大增加。

为了降低开发者的专业要求,提升开发者模型训练的开发效率及训练性能,ModelArts 基于机器学习算法及强化学习的模型训练自动超参调优,如 learning rate、batch size 等自动的调参策略;预置和调优常用模型,简化模型开发。

当前大多数开发者开发模型时,为了满足精度需求,模型往往达到几十层,甚至上百层,参数规模达到百兆甚至在 G 规格以上,导致对计算资源的规格要求极高,主要体现在对硬件资源的算力及内存、ROM 的规格的需求上。端侧资源规格限制极为严格,以端侧智能摄像头为例,通常端侧算力在 1TFLOPS,内存在 2G 规格左右,ROM 空间在 2G 左右,需要将端侧模型大小控制在百 K 级别,推理时延控制在百毫秒级别。在端侧手机场景下,对功耗发热都有更为严格的限制,所以边、端侧场景需要极轻量的小型化模型。

这就需要借助模型精度无损或微损下的压缩技术,如通过剪枝、量化、知识蒸馏等技术实现模型的自动压缩及调优,进行模型压缩和重新训练的自动迭代,以保证模型的精度损失极小。无需重新训练的低比特量化技术实现模型从高精度浮点向定点运算转换,多种压缩技术和调优技术实现模型计算量满足端、边小硬件资源下的轻量化需求,模型压缩技术在特定领域场景下实现精度损失<1%,模型大小压缩 10 倍

当训练数据量很大时,深度学习模型的训练将会非常耗时。在计算机视觉中,ImageNet-1k(包含 1000 个类别的图像分类数据集,以下简称 ImageNet)是最经典、常用的一个数据集,如果我们在该数据集上用一块 P100 GPU 训练一个 ResNet-50 模型,则需要耗时将近 1 周,这严重阻碍了深度学习应用的开发进度。因此,深度学习训练加速一直是学术界和工业界所关注的重要问题。

分布式训练加速需要从软硬件两方面协同来考虑,仅单一的调优手段无法达到期望的加速效果。所以分布式加速的调优是一个系统工程,需要从芯片、硬件设计阶段从硬件角度考虑分布式训练架构,如系统的整体计算规格、网络带宽、高速缓存、功耗、散热等因素,充分考虑计算和通信的吞吐量关系,以实现计算和通信时延的隐藏。

软件设计需要结合高性能硬件特性,充分利用硬件高速网络实现高带宽分布式通信,实现高效的数据集本地数据缓存技术,通过训练调优算法,如混合并行,梯度压缩、卷积加速等技术,实现分布式训练系统软硬件端到端的高效协同优化,实现多机多卡分布式环境下训练加速。ModelArts 在千级别资源规格多机多卡分布式环境下,典型模型 ResNet50 在 ImageNet 数据集上实现加速比>0.8,是行业领先水平

衡量分布式深度学习的加速性能时,主要有如下 2 个重要指标:  

吞吐量,即单位时间内处理的数据量。

收敛时间,即达到一定的收敛精度所需的时间。

吞吐量一般取决于服务器硬件(如更多、更大 FLOPS 处理能力的 AI 加速芯片,更大的通信带宽等)、数据读取和缓存、数据预处理、模型计算(如卷积算法选择等)、通信拓扑等方面的优化。除了低 bit 计算和梯度(或参数)压缩等,大部分技术在提升吞吐量的同时,不会造成对模型精度的影响。为了达到最短的收敛时间,需要在优化吞吐量的同时,对调参方面也做调优。调参不到位会导致吞吐量难以优化,当 batch size 超参不足够大时,模型训练的并行度就会相对较差,吞吐量难以通过增加计算节点个数而提升。

对用户而言,最终关心的指标是收敛时间,因此 ModelArts 的 MoXing 实现了全栈优化,极大缩短了训练收敛时间。在数据读取和预处理方面,MoXing 通过利用多级并发输入流水线使得数据 IO 不会成为瓶颈;在模型计算方面,MoXing 对上层模型提供半精度和单精度组成的混合精度计算,通过自适应的尺度缩放减小由于精度计算带来的损失;在超参调优方面,采用动态超参策略(如 momentum、batch size 等)使得模型收敛所需 epoch 个数降到最低;在底层优化方面,MoXing 与底层华为服务器和通信计算库相结合,使得分布式加速进一步提升。

在斯坦福大学发布的最新结果 DAWNBench(An End-to-End Deep Learning Benchmark and Competition),在图像识别(ResNet50-on-ImageNet,93% 以上精度)的总训练时间上,ModelArts 排名第一,仅需 4 分 8 秒,排名结果(https://dawn.cs.stanford.edu/benchmark)。

ModelArts 高性能分布式训练优化点:  

自动混合精度训练(充分发挥硬件计算能力)

动态超参调整技术(动态 batch size、image size、momentum 等)

模型梯度的自动融合、拆分

基于 BP bubble 自适应的计算 – 通信算子调度优化

分布式高性能通信库(nstack、HCCL)

分布式数据 – 模型混合并行

训练数据压缩、多级缓存

04 模型部署

通常 AI 模型部署和规模化落地非常复杂。如智慧交通,在获得训练好的模型后,需要部署到云、边、端多种场景。如在端侧部署,需要一次性部署到不同规格、不同厂商的摄像机上,这是一项非常耗时、费力的巨大工程,ModelArts 支持将训练好的模型一键部署到端、边、云的各种设备上和各种场景上,并且还为个人开发者、企业和设备生产厂商提供了一整套安全可靠的一站式部署方式:

在线推理服务,可以实现高并发,低延时,弹性伸缩,并且支持多模型灰度发布,A/B 测试。

支持各种部署场景,既能部署为云端的在线推理服务和批量推理任务,也能部署到端,边等各种设备。

一键部署,可以直接推送部署到边缘设备中,选择智能边缘节点,推送模型。

ModelArts 基于华为自研 Ascend 310 高性能 AI 推理芯片的深度优化,具有 PB 级别的单日推理数据处理能力,支持发布云上推理的 API 百万个以上,推理网络时延毫秒。

云边端协同 AI 应用开发和部署服务

随着 AI 在技术发展中的不断突破和使用,如视觉场景的很多 AI 场景中,面临数据云上云下传输成本过高,端侧芯片能力无法支撑多模型运算,芯片响应速度不足,场景要求越来越复杂的困难。为此 ModelArts 平台推出针对端云协同的 AI 应用开发平台能力,为个人开发者、企业和设备生产厂商提供了一整套应用能力库(人脸、语音、视频、文字等 Skill 库,有控制代码和模型组成),可以从云端下发部署到端侧,使端侧智能。

ModelArts 平台端云协同关键技术点包括:

针对不同类型的端侧平台,支持模型拆分、任务拆分,从而让端云协同起来。

利用模型管理能力,进行版本管理、模型搜索、模型复用。

支持对第三方平台的管理,针对模型安全进行权限认证,计费管理。

ModelArts 端云结合方案,在图片清晰度检测、智慧小区人脸识别等实际场景进行了应用。如在交警场景就使用 ARM 架构边缘云进行信控和流量检测,优化了交通灯、路灯等市政设施的控制,如对灯光亮度调整达到了 40% 节能的水平。

05 AI 市场

AI 开发中数据、模型、API 无法在有效范围共享,是 AI 开发资源的极大浪费。那么要如何便捷、高效、安全地实现 AI 开发资源复用技术,满足企业内部和外部开发者场景下对共享和隔离的需求?

AI 市场是在 ModelArts 的基础上构建的开发者生态社区,提供模型、API 的交易,数据、竞赛案例等内容的共享功能,为高校科研机构、AI 应用开发商、解决方案集成商、企业及个人开发者等群体,提供安全、开放的共享及交易环境,加速 AI 产品的开发与落地,保障 AI 开发生态链上各参与方高效地实现各自的商业价值

支持企业团队内部数据、模型、API 的共享管理,提升团队协同开发效率。同时也为广大外部开发者提供数据、模型、API 共享交易平台,实现开发者的知识到价值变现。AI 市场支持百万数量级的数据、模型、API 的云端存储规模,万级用户高并发访问。

06 自动学习

AI 要规模化走进各行各业,必须要降低 AI 模型开发难度和门槛。当前仅少数算法工程师和研究员掌握 AI 的开发和调优能力,并且大多数算法工程师仅掌握算法原型开发能力,缺少相关的原型到真正产品化、工程化的能力。而对于大多数业务开发者来说,更是不具备 AI 算法的开发和参数调优能力。这导致大多数企业都不具备 AI 开发能力。

ModelArts 通过机器学习的方式帮助不具备算法开发能力的业务开发者实现算法的开发,基于迁移学习、自动神经网络架构搜索实现模型自动生成,通过算法实现模型训练的参数自动化选择和模型自动调优的自动学习功能,让零 AI 基础的业务开发者可快速完成模型的训练和部署。依据开发者提供的标注数据及选择的场景,无需任何代码开发,自动生成满足用户精度要求的模型。可支持图片分类、物体检测、预测分析、声音分类场景。可根据最终部署环境和开发者需求的推理速度,自动调优并生成满足要求的模型。

ModelArts 的自动学习不止为入门级开发者使用设计,它还提供了“自动学习白盒化”的能力,开放模型参数,实现模板化开发。在调研开发者需求时,很多资深的开发者说,希望有一款工具,可以自动生成模型,然后在这个基础上修改,这很像普通软件的模板化开发,在一个半成品的基础上调优,重新训练模型,提高开发效率。

自动学习的关键技术主要是基于信息熵上限近似模型的树搜索最优特征变换和基于信息熵上限近似模型的贝叶斯优化自动调参。通过这些关键技术,可以从企业关系型(结构化)数据中,自动学习数据特征和规律,智能寻优特征 &ML 模型及参数,准确性达到甚至专家开发者的调优水平。自动深度学习的关键技术主要是迁移学习(只通过少量数据生成高质量的模型),多维度下的模型架构自动设计(神经网络搜索和自适应模型调优),和更快、更准的训练参数自动调优自动训练。

华为与世界雨林保护组织的合作项目里,采用了 ModelArts 自动学习声音分类功能,实现对电锯和卡车噪音的精准识别,结果比很多博士手工调参精度还要高。

07 AI 开发流程管理

AI 开发过程中,如果开发者手动管理 AI 开发数据集、模型、训练参数,当需要大量的调优迭代时,实验过程难以追踪,结果难以复制。现有的代码管理产品不适合管理 AI 资产如图片、视频类的数据集,二进制的模型,部署后的 Web Services 等。为了解决这些问题,ModelArts 提供 AI 开发全生命周期管理,从原始数据、标注数据、训练作业、算法、模型、推理服务等,提供全流程可视化管理服务。

数据集版本管理

深度学习经常需要大量的数据去做模型训练,一次训练会用到百万张,甚至上亿张的图片(如 OCR 场景)。整个模型训练过程是不断的迭代调优的过程,期间要经常对数据集进行修改、调整以训练出精度更高的模型,所以需要对这样大体量的数据集进行版本管理,使得试验过程可追踪回溯。ModelArts 提供了面向深度学习大体量数据集的版本管理,如图所示:

训练任务管理

模型开发过程中会需要大量的试验、迭代、调优。每一次迭代都会产生大量的 Log 和结果数据。AI 开发者需要工具对这些数据进行系统的管理,ModelArts 对所有训练任务进行管理,如下图所示,并且通过可视化的训练任务结果比对,大大提升了开发效率。

自动可视化溯源

AI 开发过程中,需要大量的调优迭代,经常会出现训练完了,结果很满意,但却找不到原始数据来自于哪个版本。ModelArts 基于华为 EYWA 图计算引擎,实现在 AI 开发全生命周期中,从原始数据、标注数据、训练作业、算法、模型、推理服务等,提供全流程可视化管理,如下图所示,支持千万级模型、数据集以及服务等对象的管理,无需人工干预,自动生成溯源图,选择任一模型,就可以找到对应的数据集、参数、模型部署在哪里

模型管理

AI 模型是 AI 开发过程的核心产物,是企业 AI 开发者需要管理的重要资产。ModelArts 提供一系列的模型管理能力以满足 AI 开发者对于模型的工程管理需求和企业对于模型的审计需求。

模型版本管理:管理模型版本变化,进行模型比对和评估。

模型溯源:通过模型溯源图,直观地回溯模型生成的完整流程,满足企业模型审计的需求。

模型转换:可以将不同框架训练出来的模型转化为在 Ascend 芯片环境下可运行的模型。也会通过支持 ONNX 标准实现常用 AI 框架模型间的无缝转化。

模型精度追踪:模型部署上线之后,可以追踪模型在生产环境下的精度浮动。当模型的精度下降超过设定的阈值时,可以实现自动提醒功能,并且开启重训练过程。

Notebook 开发环境

ModelArts 集成了 Jupyter Notebook,可为 AI 开发者提供在线的交互式开发调试工具。开发者通过创建开发环境,可以自行编写和调测模型训练代码,然后基于该代码进行模型的训练。开发者还可以使用华为自研的分布式训练加速框架 MoXing 来编写训练脚本,让代码编写更加高效、代码更加简洁。

MoXing 使用手册请参见:

https://github.com/huawei-clouds/modelarts-example/tree/master/moxing-apidoc

ModelArts Notebook 开发环境非常适合作为人工智能教学的工具,当前已有多个知名教育机构基于 ModelArts 开设人工智能专业课程。

ModelArts 下一步计划

我们将围绕自研 Ascend 910、310 芯片和 Atlas AI 服务器做深度垂直优化,为广大开发者提供更高效、更优性价比的一站式 AI 开发平台,降低 AI 开发过程中每一层的开发门槛,把复杂留给华为云 ModelArts,把简单留给开发者。同时也会在强化学习、小样本训练、分布式二阶优化器、模型计算和通信算子的静态调度、设备感知驱动的多级流水线自适应优化、大规模芯片多级互联等新技术领域上持续进步。

机器学习云平台专题文章回顾:

Yarn 已过时!Kubeflow 实现机器学习调度平台才是未来

《微博深度学习平台如何支撑 4 亿用户愉快吃瓜?

独家解读!阿里重磅发布机器学习平台 PAI 3.0

滴滴机器学习平台架构演进之路

今日荐文

点击下方图片即可阅读

百度如何利用“搜索中台”实现月级别孵化新产品

福利推荐

技术没跟上,还错过了最佳的学习时间,在工作中大概率只能是被动地接受需求解决问题,同时也焦虑着自己未来。

这里收集了机器学习、大数据、架构等干货内容,帮你将技术知识查缺补漏,快速进阶。扫码或阅读原文,完成以下问卷,即可免费领取。

你也「在看」吗??

AI时代,拥有个人微信机器人AI助手!AI时代不落人后!

免费ChatGPT问答,办公、写作、生活好得力助手!

搜索微信号aigc666aigc999或上边扫码,即可拥有个人AI助手!

Leave a Reply

Your email address will not be published. Required fields are marked *