建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

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

确定
我再想想
选择版块
直达楼层
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

采纳成功

您已采纳当前回复为最佳回复

菜狗

发帖: 1粉丝: 1

发消息 + 关注

更新于2021年06月16日 20:17:51 3779 1
直达本楼层的链接
楼主
显示全部楼层
[热门活动] “华为云-东吴杯”数字化转型创新应用大赛Baseline

目录

1 文档导读.. 4

2 获取竞赛数据集.. 5

2.1 OBS创建桶及文件夹. 5

2.2 ModelArts全局配置中添加访问密钥. 6

2.3 创建Notebook并通过代码拷贝竞赛数据集. 7

3 Notebook编写训练脚本.. 10

4 将生成的模型导入至模型管理.. 13

5 将模型部署为在线服务.. 15

6 提交模型判分.. 17

7 释放资源.. 19

 






1 文档导读

ModelArts是面向AI开发者的一站式开发平台,您可以使用ModelArts完成“华为云-东吴杯”2021数字化转型创新应用大赛赛题数据处理、训练建模、推理测试以及结果的提交。

本文档包含使用ModelArts完成“华为云-东吴杯”2021数字化转型创新应用大赛赛题的全流程指导,通过本文档您可以快速了解ModelArts平台的使用,有助于您使用ModelArts来完成比赛。

ModelArts上实操本文档前,务必确保已经领取并使用华为云代金券,避免造成ModelArts账户欠费。领取指引:https://competition.huaweicloud.com/information/1000041490/support?track=107

您可以根据如下表格快速查找您需要了解的内容。

章节

说明

获取竞赛数据集

获取赛题数据集。

在Notebook编写训练脚本

ModelArts Notebook编写模型训练脚本,进行模型的训练。

将生成的模型导入至模型管理

将训练生成的模型导入至模型管理。

将模型部署为在线服务

将模型部署为在线服务,查看预测结果。

提交模型判分

提交测试好的模型进行评分。

释放资源

为避免资源浪费或账号欠费,使用完计算资源后需及时释放资源。

附录

baseline中的训练脚本、推理代码,训练数据。



2 获取竞赛数据集

在本次大赛中,您可能会使用华为云提供的两种服务:AI开发平台ModelArts和对象存储服务OBS

对象存储服务(OBS)存储数据和模型的备份,实现安全、高可靠和低成本的存储需求。

ModelArts面向开发者提供一站式AI开发平台。提供基于GPUCPUNotebook或训练作业等模型开发能力;提供模型部署、模型发布能能力。

竞赛数据集已上传至华为云对象存储服务(OBS)桶中,您首先需要在OBS创建一个属于您的空桶;然后将竞赛数据集和baseline代码拷贝至您创建的OBS桶中。

竞赛数据集下载链接:https://marketplace.huaweicloud.com/markets/aihub/datasets/detail/?content_id=cb811923-2d26-4c7e-9be0-32a2d109549d 完成2.1节相关操作后,可将数据集下载到data目录下。

2.1 OBS创建桶及文件夹

首先在OBS创建桶及文件夹,用于存放竞赛数据集、代码文件及模型训练输出的模型文件,具体操作如下。

  1. 登录OBS管理控制台https://storage.huaweicloud.com/obs/?&region=cn-north-1&locale=zh-cn#/obs/buckets
  2. 单击页面右上方创建桶,在弹出的页面中选择区域、自定义桶名称。本baseline创建的桶名称为obs-2021hwsz-baseline,选手可自由更改

                              “区域”请选择“华北-北京四”。

·       OBS桶名称全局唯一,不能与已有的任何桶名称重复。

·       建议“多AZ”选择“关闭”,如选择开启会采用较高的计费标准。

  3. 单击立即创建

     4. 在OBS桶列表单击桶名称,然后单击左侧导航栏中对象,单击页面中新建文件夹,自定义文件夹名称后,单击确定


    • 新建一个文件夹存放竞赛数据集(data);本baseline存放竞赛数据集路径为obs-2021hwsz-baseline/data/
    • 新建一个文件夹存放竞赛baseline代码(code);本baseline存放竞赛数据集路径为obs-2021hwsz-baseline/code/
    • 新建一个文件夹存放训练完成的模型(ckpt);本baseline存放竞赛数据集路径为obs-2021hwsz-baseline/ckpt/
    • 新建一个文件夹存放用于发布的模型和代码 (submission);本baseline存放竞赛数据集路径为obs-2021hwsz-baseline/submission/

  5. data目录下存放训练数据集。注意,这里使用zip压缩格式。不建议选手解压,避免造成训练时造成与OBS过多的交互访问,超出OBS免费请求限制。

  6. code目录下存放baseline代码,如下图所示。

  7. ckpt用于保存训练好的模型文件,具体使用方式参见第三章,此处为空目录即可。

  8. submission用于保存发布模型的相关文件,具体使用方式参见第四章。在该目录下创建model文件夹,后续将model文件夹作为发布模型的目录。此处为空目录即可。


2.2 ModelArts全局配置委托授权

2.1节主要介绍了如何使用OBS桶以及我们桶中存储的文件。接下来本节将介绍如何配置授权,使得ModelArts可以访问OBS

使用ModelArts Notebook、训练作业、模型及服务时可能需要用到对象存储服务,因此在使用ModelArts之前,您需要使用委托授权(建议)或者通过访问秘钥授权。

接下来将主要介绍如何使用委托,使得OBSSWRIEF等依赖服务ModelArts依赖委托给ModelArts

授权配置:

     使用华为云账号登录ModelArts管理控制台,在左侧导航栏点击“全局配置”,进入“全局配置”页面。

    点击访问授权,在弹出的“访问授权”窗口中,“授权方式”选择“使用委托”,选择需要授权的“用户名”及其对应的“委托”

    完成“用户名”“委托”配置后,勾选“我已经详细阅读并同意《ModelArts服务声明》”,然后单击“同意授权”

           完成配置后,在全局配置列表,可查看到用户的委托配置信息,如下图所示。

          至此,我们已经完成了modelarts中配置委托授权。


          • OBS套餐内包括100GB存储、24万次GET请求、6万次PUT请求。通过使用压缩包的形式,可以减少我们与OBS的交互次数。请选手注意余量,避免造成扣费。
          • 委托授权生效可能需要1分钟左右的时间。

3 通过训练作业的方式复现baseline

在将上述OBS相关数据和代码准备完成之后,您可以在ModelArts中训练代码。

ModelArts支持TensorFlowMXNetPyTorch等深度学习引擎,您可以基于自身使用习惯来选择;baseline是基于PyTorch3.6实现。接下来我们将分别从训练脚本介绍、训练作业提交介绍等两个方面对复现baseline展开介绍。

Baseline代码参见本文档附录。

3.1 编写模型训练脚本

baseline已经提供可训练的模型脚本baseline_released.py。接下来将主要介绍主函数代码(baseline_released.py)参数和各个文件的作业。选手熟悉后可以自行优化。

   主函数代码参数介绍

    1. data_url:字符串类型,必须,obs上训练数据存储的路径。2节会介绍。
    2. train_url:字符串类型,必须,obs上存储训练好模型的路径。2节会介绍。
    3. init_method:非必须,提交训练作业格式需要。
    4. num_gpus:int类型,默认值为1
    5. train-dir:字符串类型,必须,训练作业中训练数据的存储路径。py会将obsdata_url下载到train-dir的父目录。如下图所示。moxingmodelarts自研框架。mox.file.copy_parallel()可以实现将obs中文件下载到本地路径中。
    6. validate-dir:字符串类型,非必须。若为None,则默认不执行validation,否则针对指定目录执行验证环节。
    7. ckpt-dir:字符串类型,必须。将每个epoch生成的模型文件保存至该目录下。
    8. num-classes:数字类型,必须。缺陷种类个数。
    9. batch-size: 数字类型,必须。
    10. num-epochs: 数字类型,必须。
  1. 各个文件的作用:
    1. baseline_released.py: 用于复现baseline的主入口函数。
    2. utils: 一些通用的函数封装
    3. customize_service.py: 发布模型所需的主入口函数。参见第四章。
    4. config.json 配置文件,参考https://support.ulanqab.huawei.com/engineers-modelarts/modelarts_23_0092.html#modelarts_23_0092__table1683418482455
    5. pretrained: 存放预训练模型。请将https://download.pytorch.org/models/fasterrcnn_resnet50_fpn_coco-258fb6c6.pth下载的模型文件放置在该目录下。
    6. requirements.txt: baseline代码依赖的一些库名称和版本。
  2. 若是本地开发修改后的代码,可直接通过浏览器上传到OBS桶中。如下图所示。

3.2 提交训练作业

接下来通过介绍训练作业的方式完成baseline模型的训练。ModelArts提供训练作业和Notebook等方式来训练模型。Notebook由于免费云硬盘额度只有5GB,本次竞赛数据大小为4.87GB。故为了不产生额外费用,本次通过训练作业的方式完成baseline模型训练。若选手有兴趣,可以自行探索notebook方式开发调试训练。

  1. 进入ModelArts页面,在华为云搜索MoedlArts,选择进入控制台。


  1. 创建新的算法。如下图所示,算法管理->创建。


  1. 填写算法名称,AI引擎选择PyTorch-1.4.0-python3.6,代码目录和启动文件的配置如下图所示。


  1. 填写启动超参,如下图所示。


  1. 添加一个输出配置项,起名为last_path。用于存储最后一个pth文件作为评分的模型。如下图所示。


  1. 点击提交,创建算法。


  1. 创建新训练作业,如下图所示。训练管理->训练作业(New->创建训练作业。如果存在训练作业/训练作业(New)请进入训练作业(New),如果只存在训练作业,请进入训练作业。


  1. 填写训练作业名称,选择刚创建的算法。如下图所示。


  1. 点击选择数据存储位置,选择对应的路径,点击确定。


  1. 针对训练输出,选择模型输出路径和last_path路径,如下图所示。


  1. 选择计算规格,如下图所示。公共资源池->GPU->1*NVIDIA-V100


  1. 点击提交,确认无误后,开始训练。


  1. 通过日志可以实时查看代码输出日志。如下图所示。


  1. 通过资源占用情况,可是实时观察显存、内存、CPUGPU的利用率。如下图所示。


  1. 训练过程中,会将产生的模型pth文件实时传输到obs桶中(obs://obs-2021hwsz-baseline/ckpt)。当全部训练结束后,会自动将最后一个pth文件上传到obs://obs-2021hwsz-baseline/submission/model中,并且重命名为pth,以便后续第四章导入模型。

          • MoXing是华为云ModelArts团队自研的分布式训练加速框架,并提供了一套文件对象API,可以用来读写ModelArts Notebook容器本地文件及OBS文件。
          • OBS下载文件可能会产生流量费用,请选手注意。北京四的收费标准为5/GBModelarts中训练作业或者notebookOBS的传输不收费,属于内网传输。公网传输和跨区传输会产生流量费用。
          • OBS上传时限制文件最大上传大小为5GB,若有大于5GB的数据请参考SDK分段上传或拆分为多个文件分批次上传。

4 将生成的模型导入至模型管理

模型训练完成且编写好模型推理代码后,您可以将生成的模型导入至模型管理。

  导入模型前,需要将附件中本baseline模型配置文件、推理代码,上传至submission/model文件夹下。

  • config.json:用于配置模型运行的在线环境、依赖包等相关信息
  • customize_service.py: 推理服务运行的主入口函数
  • model_best.pth:待加载的模型,通过训练作业自动提交至该目录。也可以手动将本地的模型文件命名为model_best.pth上传至该目录。

  

 上述三个文件准备齐全后,导入模型具体操作如下。

   在ModelArts左侧导航栏选择模型管理下的“模型”页面,单击页面中导入

          在导入模型页面填写名称,选择元模型来源;其中元模型来源如从OBS中选择,请选择model文件夹;


    若选择正确则平台会自动解析目录下的config文件完成下图的配置,同时正确识别到推理代码。

       单击立即创建


       单击模型名称进入模型详情页面,当模型版本状态为正常后,即导入模型成功,然后进行下一步将模型部署为在线服务的操作。

5 将模型部署为在线服务

导入模型完成后,接下来您可以将模型部署为在线服务。这里主要是为了验证模型是否正常工作。

部署为在线服务具体步骤如下。

   在ModelArts左侧导航栏中选择部署上线 > 在线服务,然后单击页面中的部署

         在部署页面填写参数,选中刚刚导入模型管理中的模型,计算节点可以选择CPU28G


    单击下一步,参数确认无误后,单击提交

     创建成功后,返回在线服务列表,您可以在在线服务列表中查看部署进度;当状态由“部署中”变为“运行中”后,单击服务名称,进入详情页面,如下图所示。


   在预测页签上传图片进行测试,如下图所示。图片可从训练集中任意选取一张即可。

   如果出现报错,选手可以在日志中定位问题,如下图所示

   当在线推理测试无误后,选手可以将模型进行参赛发布提交。

    • 由于不建议使用模型堆积的策略,建议单张图片的耗时应该控制在5s以内。

6 提交模型判分

模型部署测试后,您可以将模型提交判分,具体操作如下。

注意:由于每支队伍每天有提交次数限制,为避免浪费提交次数,请在模型提交前务必要部署测试模型,确认模型无误后再提交判分。

步骤一:在ModelArts上提交模型

   在ModelArts左侧导航栏中选择“模型管理”,单击模型名称前方箭头;然后单击页面右侧操作栏中的“发布”,单击参赛发布


         在弹出的参赛模型提交对话框中,选择比赛项目、比赛阶段,确认模型名称正确后,然后单击“确定”。

   确定后,即成功提交模型判分。在如下界面中可点击现在加入,也可以点击以后再说或直接点击右上角关掉该对话框。


步骤二:在竞赛平台上查看分数

在大赛平台上“提交作品”页签中查看判分分数。其中“提交作品”页面需报名比赛后才会显示。


 

7 释放资源

使用完ModelArts相关计算资源后,请务必及时释放资源,否则会造成资源浪费甚至账号欠费。

ModelArts以下模块会涉及云资源的消耗并会按需或按周期产生费用:自动学习训练和部署,Notebook实例,训练作业,TensorBoard,在线服务。使用完需要停止自动学习部署、NotebookTensorBoard、在线服务。

停止所有需消耗云资源的作业后,可在ModelArts总览页面确认所有计费项都为“0”


·                      公有云的按需使用是采用后付费模式,即先使用再付费,一个小时会出一次话单,比如:2019.6.24  04:00~05:00这段时间使用的费用,在05:00时刻采集完成后,才会出话单,进行扣费。


8 附录

如下RSC_Baseline.zip文件包含了本指导中涉及的代码文件,文件说明见下表。

文件

说明

baseline_released.py

用于复现baseline的主入口函数。

customize_service.py

发布模型所需的主入口函数。参见第四章。

config.json

发布模型所需要的配置文件,相关字段参考:https://support.ulanqab.huawei.com/engineers-modelarts/modelarts_23_0092.html#modelarts_23_0092__table1683418482455

requirements.txt

baseline代码依赖的一些库名称和版本。

utils/

一些需要用到的函数封装

pretrained/

存放预训练模型。

 

“华为云-东吴杯”2021数字化转型创新应用大赛文档说明--训练作业0615.docx 4.53 MB,下载次数:260

2021hwsz-baseline.zip 19.3 KB,下载次数:285

大赛 机器学习

举报
分享

分享文章到朋友圈

分享文章到微博

采纳成功

您已采纳当前回复为最佳回复

Tianyi_Li

发帖: 393粉丝: 223

发消息 + 关注

发表于2021年07月03日 21:05:12
直达本楼层的链接
沙发
显示全部楼层

评论
China fly 2021-7-4 10:18 评论

我觉得是的

... 查看全部
点赞1 评论 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册

结贴

您对问题的回复是否满意?
满意度
非常满意 满意 一般 不满意
我要反馈
0/200