【ModelArts】ModelArts一站式AI开发平台详解(一)

一、前言
ModelArts是什么? 这是每一个接触到它的人第一个想问的问题。 作为华为一站式AI开发平台,ModelArts(模型艺术)提供了AI全周期的管理,从AI的创建,训练,调优,到部署。(官方术语:数据处理、模型训练、模型部署、开发环境支持以及模型管理与共享等 AI 开发) 以上整个环节都可在ModelArts平台上操作。
ModelArts具备,机器学习与深度学习提供海量数据预处理及半自动化标注、大规模分布式训练、自动化模型生成,及端-边-云模型按需部署能力。
综上所述,通过使用 ModelArts,开发者可以大大简化 AI 开发流程,降低开发门槛,提高开发效率,加速 AI 应用的落地。
并且ModelArts对于不同程度的使用者,例如入门小白不懂编程,或者懂编程不懂AI,亦或者是懂AI也懂算法和编码。都有不同的对应工具和操作进行使用。
二、技术架构优势

1、 算力支撑: ModelArts底层基于华为昇腾AI芯片构建了分布式AI训练框架,能够提供强大的算力支持。 无论是小规模的模型训练,还是大规模的深度学习任务,都能轻松应对。 同时,平台支持各种异构计算资源,开发者可以根据实际需求灵活选择使用,而无需关心底层的技术细节。
2、 微服务架构: 采用微服务架构,将AI开发流程拆解为多个独立的服务,并通过API接口进行交互。这种架构使得开发者能够根据自己的需求,灵活地选择和组合所需的AI开发工具和服务,提高开发的灵活性和效率。
3、 框架兼容性: 支持TensorFlow、PyTorch、MindSpore等主流开源的AI开发框架,也支持开发者使用自研的算法框架。这意味着无论您习惯使用哪种框架进行AI开发,ModelArts都能满足您的需求,匹配您的使用习惯。
三、ModelArts基本操作步骤
(一)注册与登录
首先,您需要注册一个华为云账号。访问华为云官网(www.huaweicloud.com/),按照页面提示完成账...
(二)创建OBS桶与授权
1、 创建OBS桶: OBS(对象存储服务)桶是用于存储数据和模型的地方。在ModelArts控制台中,选择"数据管理",然后点击"创建OBS桶"。 在创建过程中,需要设置桶的名称(名称需全局唯一)、所在区域(建议选择与ModelArts服务相同的区域,以避免跨区域流量费用)、访问权限(根据实际需求选择公开读或私有等权限)等参数。
2.、授权ModelArts访问OBS桶: 创建好OBS桶后,需要授权ModelArts能够访问该桶。 如果在创建桶时没有完成授权操作,可以在ModelArts控制台的相关设置中找到"委托管理",创建一个委托,授予ModelArts访问OBS桶的权限。 这样,ModelArts才能读取桶中的数据进行训练,以及将训练好的模型保存到桶中。
(三)数据集准备
1、 数据上传:
将您用于训练的数据集上传至之前创建的OBS桶中。您可以通过华为云OBS控制台、命令行工具或者SDK等多种方式进行数据上传。
例如,如果数据集是图片,可以将图片按照一定的目录结构组织好,然后上传至OBS桶的指定文件夹中。
2.、创建数据集: 在ModelArts控制台的"数据管理"模块中,点击"创建数据集"。选择数据集的类型(如图像分类数据集、目标检测数据集等),然后指定数据集的名称、描述等信息。
接着,关联之前上传至OBS桶中的数据文件路径,将数据导入到ModelArts平台中。
开发环境准备
目前ModelArts有两种开发形式,远程开发和云桌面开发。
远程开发 - 本地IDE+ModelArts插件(VS Code/PyCharm ToolKit)方式远程访问Notebook,贴近开发人员使用习惯,方便快捷访问云上Notebook。
集成云化JupyterLab - 提供在线的交互式开发调试工具,提供免费算力,规格按需切换,案例内容秒级接入与分享,让AI探索与教学更简单。 Notebook:ModelArts集成了JupyterLab Notebook,为开发者提供了在线的代码开发环境。在Notebook中,您可以方便地进行代码编写、调试和运行,并且可以直接访问平台上的数据集和模型。
同时,Notebook还支持多种编程语言,如Python、R等,满足不同开发者的需求。此外,平台提供的云上开发环境包含AI计算资源和云上存储,并且预置了AI引擎,让您无需再花费时间搭建本地开发环境,即可快速开始AI开发工作。如果您有特殊的运行环境需求,还可以将开发环境直接保存成为镜像,供训练、推理使用。
代码迁移:如果您已经在本地开发了部分代码,ModelArts支持将本地代码一键同步至平台,方便您在平台上继续进行开发和训练。同时,平台也支持本地IDE(如VS Code)通过安装ModelArts插件进行远程开发,实现线上线下协同开发,贴近开发人员的使用习惯。