Loading

ModelArts (华为GPU/CPU计算云平台)体验

  • 云平台采用K8S(Kubernetes 容器管理必备)+Docker+Nvidia-Docker

    • GPU免费样例(目前GPU是无法共享使用的,也就是你是可以完全独占一块显卡,因此可以实际测试一下对比一下现有的显卡,就可以确定其型号)+16GB显存以及8核CPU、64GB内存(因此强烈推荐选择GPU实例)
    • CPU免费样例为2核4GB内存
  • 支持Jupyter Notebook

  • 多种镜像环境

  • 免费的一个小时的GPU和CPU容器使用(也就是可以创建两个一小时的两个容器-GPU和CPU)(一个小时自动停止,可以无限重启使用)

  • 提供两种存储方案:对象存储Obs(简单理解:网盘或者类似于亚马逊S3对象存储)/云硬盘(SCSI 远程挂载?还没测试过)

实践

OBS创建

1.首先打开控制台,在上搜索对象存储服务OBS(可以直接固定在侧边栏方便使用)

image-20210507123945155

  1. 创建桶

    image-20210507124141730

由于成本考虑,选择单AZ存储(只有单一数据点,数据比较重要的请选择多AZ),image-20210507124320166

创建后可以在该页面下看到创建的桶Bucket

image-20210507124432212

Notebook创建

云平台提供Jupyter Notebook的环境

切换到ModelArts(同Obs搜索)-选择开发环境-NoteBook

image-20210507124922425

创建Notebook

image-20210507125001168

分别选择公共资源GPU-免费,存储选择obs使用之前创建的obs(主要用于工作目录)然后下一步创建出一个Notebook

image-20210507125118222

image-20210507125244684

回到主界面,可以看到刚刚创建的目录启动中

image-20210507125357207

进入JupyterLab,可以看到提供的多种环境(熟悉终端使用可以直接打开终端)

image-20210507125526340

打开终端,查看存储占用,从图中可以看到我们拥有100GB左右的临时存储空间

image-20210507125621084

查看GPU(16GB显存-250W)

image-20210507130036856

容器的目录如下,工作目录主要在work文件夹里,README里提供了加载多个环境的命令

image-20210507130132281

image-20210507130200516

初始下work是空的(注意OBS是类似于网盘,并不会像硬盘那样直接挂在work目录下),左侧这些只是Obs目录,并未同步到work里

image-20210507130426100

image-20210507130252740

官方这里提示使用Obs Sync,但是Obs Sync只允许100MB以下的同步,对于大数据集是远远不够用的,因此这里推荐使用moxing用于obs同步

import moxing as mox
bucket_name = 'obs://{bucket}/{folder}' # 修改为你自己的桶
mox.file.list_directory(bucket_name)
mox.file.copy_parallel(bucket_name,'/home/ma-user/work/')
print("finish")

https://support.huaweicloud.com/moxing-devg-modelarts/modelarts_11_0005.html 具体可以看该链接

剩下的只需要上传到obs就可以愉快的训练了

总结

K8S自从发布以来被大厂快速运用,非常迅速(Google yyds!),而Nvidia-Docker也使得Docker可以直接调用GPU做训练。

华为云提供的环境体验很不错,免费样例可以满足大部分训练,存储费用也不高(几天下来才快1rmb),同时利用Checkpoint,理论上只要我们一次的epoch不超过一个小时,可以断点继续训练的。

posted @ 2021-05-07 13:11  minskiter  阅读(1316)  评论(0编辑  收藏  举报