ModelArts使用心得

举报
Knight 发表于 2019/10/14 20:42:04 2019/10/14
【摘要】 华为云近期成功举办了垃圾分类人工智能大赛,整个比赛历时一个多月,我们有幸闯入决赛并拿到了二等奖。预赛阶段华为云为每名成员提供1000元的代金券,决赛期间为每个团队提供了5000元的代金券,由于自身实验室硬件条件所限,除了小规模的模型校验,我们全程使用了华为云提供的ModelArts一站式AI开发平台,我们也尝试使用了其他gpu计算产品,如百度云、极客云,国内也有一些提供免费gpu资源的平台如...

华为云近期成功举办了垃圾分类人工智能大赛,整个比赛历时一个多月,我们有幸闯入决赛并拿到了二等奖。预赛阶段华为云为每名成员提供1000元的代金券,决赛期间为每个团队提供了5000元的代金券,由于自身实验室硬件条件所限,除了小规模的模型校验,我们全程使用了华为云提供的ModelArts一站式AI开发平台,我们也尝试使用了其他gpu计算产品,如百度云、极客云,国内也有一些提供免费gpu资源的平台如FlyAI,使用一圈下来,有一些真实的感触。

ModelArts(以下简称MA)是基于容器技术构建的一系列深度学习开发、训练、推理和部署的服务集合体,我们也了解到它还有一些更个性化、高级的功能,比如数据标注(人工或自动化)、自动调参、AutoML等,我们在比赛中主要使用了几项比较基础的功能,如模型训练、Notebook服务、模型发布、在线服务部署、批量服务部署功能,实际上这些服务体验的好坏也是整个ModelArts的核心。

1.png

模型训练、Notebook服务方面:

MA支持两种开发模式,离线式(提交Python代码)或自建一个Notebook服务进行在线交互编程。我们的数据和代码首先通过obs browser客户端上传到华为云的对象存储服务上(OBS),这个目录结构可以和本地保持一致。例如下图所示。因为训练数据集有上万张图片,网页端的obs无法支持这么多文件的同时上传,而obs browser客户端可以直接选文件夹上传和下载,方便了许多。

2.png

提交训练的代码,经过我们摸索和借鉴比赛官方提供的baseline,在通常自己开发的本地训练代码上,需要加几个命令行参数的处理(比如--train_url、--data_url、--num_gpus),来识别作业是在本地运行还是在MA上运行,如果是在MA上运行,我们的处理非常简单,直接用华为的obs api把数据从OBS同步到容器本地的临时存储(/cache目录),最后在运行结束后上传回OBS,总共需要十几行代码。MA的模型训练能够选择几种预设的Python环境,如tf、pytorch等,如果还需要其他第三方包,可以在代码目录下新建一个pip-requirements.txt文件,配置pip的标准安装需求列表(指定pip包和版本号),就能够完美实现本地与云端相同的运行环境。例如下面两个图所示。最后还可以指定作业的log日志在obs上存储的位置,这样所有的训练输出就可以很容易的备份下来了。目前MA我们可以用的有单卡P100和四卡P100两种配置,价格分别是7.6/hour和30.4/hour。小提示:如果你的模型需要迁移学习,可以把预训练权重文件传到obs中,一起同步到容器本地存储,来加快加载速度。

建立作业,如下各图:

3.png4.png

14.png


5.png

  然后通过日志确认训练正常开始:

  下图是代码在同步obs数据文件夹到容器本地,

6.png

几分钟后,训练应该正常开始:

7.png

基本全程保持90%+的gpu利用率。

8.png

此外还有Notebook服务,我们实际上用的并不多,使用起来的一些技巧相信也和上面一样,主要是数据的同步和环境的定制。

模型发布、服务部署方面:

MA中设计的模型管理、发布和部署服务让我们眼前一亮,按照官方发布的baseline中的脚本,我们可以把任意一个tf的h5模型文件或者torch的pth文件转换为标准的部署格式,上传到obs,然后通过MA的页面来构建一个模型,然后可以将该模型发布到公开的AI市场上供他人购买或使用,也可以发布到比赛的评审账号,还可以将模型部署为一个在线服务或者批量服务(建议大家通过工单开通gpu推理服务,完整的体验部署好的深度学习服务是如何使用的,响应速度如何,可能大多数朋友都只关心模型的性能,而忽视了模型的耗时和部署的大小),这里展示一下这几个界面:

9.png10.png

11.png12.png

总结:我们觉得MA确实能够快速、轻量、低成本的支持离线式(作业提交)或在线交互式(Notebook)深度学习模型开发、训练与调试,相比其他类似厂商产品如gpu虚拟机(百度云)有着配置简单、快速上手的优点(虚拟机需要自行配置软件环境,费时费力且容易出错),相比一些众包gpu计算服务(如极客云,缺点是不稳定,长时间的任务经常失败),有着稳定、简易、灵活、计费友好(任务结束后自动停止计费,不像虚拟机一样还得自己销毁镜像)、成本相对较低(呼吁华为可以给一些核心开发者多一些免费测试资源)的优点,这也使我们能够在有限的硬件条件下得以快速迭代,验证想法。AI市场的想法非常好,有很多可以预见的可能。

       最后,给大家看一下我们的消费情况,除了代金券的消费是可以开发票报销的,这对企业和科研机构还是比较方便的。

13.png

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。