准备工作
- 注册AICC账号。参考《对象存储服务 OBS》“快速入门 > 步骤一:准备工作”章节,注册AICC并实名认证。
- 运行环境,即ModelArts镜像,镜像内包含了基础的第三方库以及MoXing库,因为ModelArts服务器无法直接访问OBS桶的数据,而MoXing能实现ModelArts服务器与OBS桶之间的数据传输。
- 修改代码以适配ModelArts。
准备适配代码
- 已适配了ModelArts:其根目录下有个“modelarts”文件夹。
把该文件夹下的“train_start.py”文件复制到训练文件“train.py”同级目录下,作为云上训练的启动文件。
- 未适配的ModelArts:其根目录下没有“modelarts”文件夹。
复制训练文件“train.py”改名为“train_start.py”,放在训练文件“train.py”同级目录下,并进行如下修改:
- 导入moxing包,添加如下代码:
import moxing as mox
- 在ModelArts的容器内拉取OBS上的数据集:
CACHE_DATA_URL = '/cache/data_url' if not os.path.exists(CACHE_DATA_URL): os.makedirs(CACHE_DATA_URL) mox.file.copy_parallel(data_path, CACHE_DATA_URL)
参数说明:
data_path //ModelArts控制台上选择的obs桶目录 CACHE_DATA_URL //ModelArts的容器内的目录,默认设置为/cache/data_url,也可自己修改
预训练权重上传方式一样,只需修改变量名和对应的目录。
- 将ModelArts的容器内的数据下载至OBS桶:
CACHE_TRAINING_URL = '/cache/training' mox.file.copy_parallel(CACHE_TRAINING_URL, train_url)
参数说明:
CACHE_TRAINING_URL //ModelArts的容器内,保存权重文件的目录 train_url //ModelArts控制台上选择的obs桶目录
- 安装第三方库(可选)
需要安装的第三方库,可以写入模型根目录的“requirements.txt”;镜像会默认安装模型根目录下的“requirements.txt”。
默认支持单机单卡训练。
- 导入moxing包,添加如下代码: