写点什么

git clone 开启云上 AI 开发

  • 2022-10-20
    中国香港
  • 本文字数:2810 字

    阅读完需:约 1 分钟

git clone开启云上AI开发

本文分享自华为云社区《git clone开启云上AI开发》,作者:ModelArts 开发者。


相比于传统的软件开发,AI 开发存在以下 4 个痛点:


1)算法繁多;

2)训练时间长;

3)算力需求大;

4)模型需手动管理


我们可以使用云上 AI 开发的方式来缓解以上 4 个痛点,云上 AI 开发的优势:


  1. 任意地点接入,在线开发;

  2. 云上环境预置多种主流深度学习框架,开“箱“即用;

  3. 云端充足算力、TB 级数据存储,支持重型训练任务;

  4. 云端平台具备训练任务版本化管理,AI 开发更可靠、可高效;

云上 AI 开发主要步骤


具体操作步骤

步骤一 Notebook 调试

1. 准备 Python 环境


此链接进入 ModelArts 控制管理台,点击【开发环境】–> 【Notebook】,进入 notebook 列表页面,点击页面左上角“创建”按钮,新建一个 notebook,填写参数,下图所示:




点击“立即创建”,确认产品规格后,点击提交,完成 Notebook 的创建。


返回 Notebook 列表页面,等待新创建 Notebook 状态变为“运行中”后,点击名称进入 Notebook。

进入 Notebook 页面后,打开 terminal,如下图所示:



输入如下命令,查看已安装 Python 环境信息


conda info -e
复制代码


点此链接GitHub - IDEA-Research/DINO,下面将以此开源算法为例,演示如何在华为云 Notebook 上快速运行,算法详细介绍请参考 README.md 。


  • 在 terminal 里继续输入如下命令,克隆仓库



git clone https://github.com/IDEACVR/DINOcd DINO
复制代码



如上图所示,表示已完成代码克隆,点击左侧任务栏顶部刷新按钮,即可查看代码。


  • 查看 Pytorch 版本


pip list | grep torch
复制代码


  • 安装其他需要的包


pip install -r requirements.txt
复制代码


  • 编译 CUDA 算子


cd models/dino/ops python setup.py build install # unit test (should see all checking is True) python test.py cd ../../.. # 回到代码主目录
复制代码


2.准备数据和预训练参数文件


  • 进入控制台,将光标移动至左边栏,弹出菜单中选择“服务列表”->“存储”->“对象存储服务 OBS”,如下图所示:



点击“创建桶”按钮进入创建界面。



开始创建。配置参数如下:① 复制桶配置:不选② 区域:华北-北京四③ 桶名称:自定义,将在后续步骤使用④ 数据冗余存储策略:单 AZ 存储⑤ 默认存储类别:标准存储⑥ 桶策略:私有⑦ 默认加密:关闭⑧ 归档数据直读:关闭单击“立即创建”>“确定”,完成桶创建。点击创建的“桶名称”->“对象”->“新建文件夹”,创建一个文件夹,用于存放后续数据集。



  • 此链接下载 COCO 2017 数据集子集。该数据集包括 train(5000 张),val(5000 张)及标注文件。进入下载详情页面,下载方式选择对象存储服务(OBS),目标区域选择华北-北京四,目标路径选择 1 中在 OBS 中创建的路径,用于数据集存储,如下图所示:



点击“确认”,跳转至我的下载页面,可以查看数据集下载详情,等待数据集下载完成,如下图所示:



返回 Notebook 页面,新建一个 ipynb 文件,编写导入数据集脚本,运行代码,运行完毕后,点击任务栏上方“刷新”按钮,即可查看导入 dataset,如下图所示:


import moxing as moxmox.file.copy_parallel({obs_path},{notebook_path})
复制代码


说明:


{obs_path}为 OBS 存储数据集的位置

{notebook_path}为数据集在 notebook 中的存储路径



  • 此链接下载 DINO 模型 checkpoint “checkpoint0011_4scale.pth”,下载完成后,返回 Notebook 页面,在 DINO 页面,创建文件夹ckpts,用于存放下载的 checkpoint。



进入文件夹,点击任务栏上方”上传“按钮,选择下载完成的 checkpoint 路径,文件大小超过 100MB,需选择 OBS 中转,等待数据上传完毕,如下图所示:


3.运行代码


  • 执行下面的命令,评估预训练模型,你可以期待得到最终的 AP 大约 49.0。


bash scripts/DINO_eval.sh /path/to/your/COCODIR /path/to/your/checkpoint
复制代码


说明:


/path/to/your/COCODIR 为 Notebook 数据集的存储路径

/path/to/your/checkpoint 为 Notebookcheckpoint 存储路径


如下图所示:



整个过程约等待 13 分钟左右,运行结果如下:



  • 推理及可视化


打开 DINO 目录下的 inference_and_visualization.ipynb,选择 Kernel Pytorch-1.8,如下图所示:



修改代码:


...model_checkpoint_path = "ckpts/checkpoint0011_4scale.pth"  # 修改checkpoint路径...args.coco_path = "../dataset"  # 修改coco数据集路径
复制代码


运行代码查看推理结果。


步骤二 运行训练作业

1.保存镜像


  • 返回 ModelArts 管理控制台,在左侧菜单栏中选择**“开发环境 > Notebook”**,进入新版 Notebook 管理页面。在 Notebook 列表中,点击名称进入创建的 Notebook 详情页



  • 点击右侧“更多”,选择“保存镜像”



  • 在保存镜像对话框中,设置组织、镜像名称、镜像版本和描述信息。单击“确认”保存镜像。



在“组织”下拉框中选择一个组织。如果没有组织,可以单击右侧的“立即创建”,创建一个组织。创建组织的详细操作请参见创建组织


同一个组织内的用户可以共享使用该组织内的所有镜像。


  • 镜像会以快照的形式保存,保存过程约 5 分钟,请耐心等待。此时不可再操作实例(对于打开的 JupyterLab 界面和本地 IDE 仍可操作)。

  • 镜像保存成功后,实例状态变为**“运行中”**,用户可在“镜像管理”页面查看到该镜像详情。

  • 单击镜像的名称,进入镜像详情页,可以查看镜像版本/ID,状态,资源类型,镜像大小,SWR 地址等。

  • 还可在左侧菜单栏中选择**“镜像管理”**,查看镜像列表及详情,如下图所示:


2.上传训练代码


返回 Notebook 页面,在新建的 ipynb 中输入以下代码,完成代码上传至 OBS 桶中


mox.file.copy_parallel("./DINO/","obs://dino-coco/DINO")
复制代码


如下图所示:


3.创建训练作业


  • 在左侧菜单栏中选择**“训练管理 > 训练作业”**,点击右上角“创建训练作业”,如下图所示:



  • 参数配置


创建方式:自定义算法


启动方式:自定义,选择已保存镜像


启动命令:


cd ${MA_JOB_DIR}/DINO && python main.py -c config/DINO/DINO_4scale.py --options dn_scalar=100 embed_init_tgt=TRUE dn_label_coef=1.0 dn_bbox_coef=1.0 use_ema=False dn_box_noise_scale=1.0
复制代码


训练输入:选择 OBS 桶内上传代码路径


训练输出:选择创建的 OBS 桶,点击新建文件夹,创建一个文件夹,用于存放训练输出,如下图所示:



资源池:公干资源池


资源类型:GPU


规格: GPU: 1*NVIDIA-V100(32GB) | CPU: 8 核 64GB 3200GB


永久保存日志:开启,选择 OBS 桶,新建文件夹,用于存放训练日志,如下图所示:



事件通知:开启,可监控训练作业的事件的状态,可短信通知。


主题名:如不存在点击右侧“创建主题”。主题是消息发布或客户端订阅通知的特定事件类型。它作为发送消息和订阅通知的信道,为发布者和订阅者提供一个可以相互交流的通道。


事件:全部勾选


自动停止:可开启(训练时长大于 1 小时)


如下图所示:




  • 参数设置完成之后,点击提交,确认训练信息,点击“确认”



跳转至训练作业列表,等待创建的训练作业,可点击训练作业名称,查看详细信息,系统日志,及资源占用情况,如下图所示:




  • 在训练任务跑完之后,可在“代码目录”处在线编辑代码,保存之后,可再次进行训练模型,如下图所示:


4.训练输出


训练完成之后,可在配置的 OBS 训练输出路径查看训练结果



点击关注,第一时间了解华为云新鲜技术~

发布于: 14 分钟前阅读数: 6
用户头像

提供全面深入的云计算技术干货 2020-07-14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
git clone开启云上AI开发_人工智能_华为云开发者联盟_InfoQ写作社区