准备资源
创建专属资源池
本文档中的模型运行环境是ModelArts Standard,用户需要购买专属资源池,具体步骤请参考创建资源池。
资源规格要求:
计算规格:用户可参考表2。
硬盘空间:至少200GB。
昇腾资源规格:
- Ascend: 1*ascend-snt9b表示昇腾单卡。
- Ascend: 8*ascend-snt9b表示昇腾8卡。
推荐使用“西南-贵阳一”Region上的昇腾资源。
创建OBS桶
ModelArts使用对象存储服务(Object Storage Service,简称OBS)进行数据存储以及模型的备份和快照,实现安全、高可靠和低成本的存储需求。因此,在使用ModelArts之前通常先创建一个OBS桶,然后在OBS桶中创建文件夹用于存放数据。
本文档也以将运行代码以及输入输出数据存放OBS为例,请参考创建OBS桶,例如桶名:standard-llama2-13b。并在该桶下创建文件夹目录用于后续存储代码使用,例如:training_data。
创建VPC
虚拟私有云(Virtual Private Cloud)可以为您构建隔离的、用户自主配置和管理的虚拟网络环境,操作指导请参考创建虚拟私有云和子网。
创建SFS Turbo
SFS Turbo HPC型文件系统为用户提供一个完全托管的共享文件存储。SFS Turbo文件系统支持无缝访问存储在OBS对象存储桶中的对象,用户可以指定SFS Turbo内的目录与OBS对象存储桶进行关联,然后通过创建导入导出任务实现数据同步。通过OBS与SFS Turbo存储联动,可以将最新的训练数据导入到SFS Turbo,然后在训练作业中挂载SFS Turbo到容器对应ckpt目录,实现分布式读取训练数据文件。
创建SFS Turbo文件系统前提条件:
- 创建SFS Turbo文件系统前,确认已有可用的VPC。
- 需要由IAM用户设置SFS Turbo FullAccess权限,用于授权ModelArts云服务使用SFS Turbo。
详细操作指导请参考创建SFS Turbo文件系统。
![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000001950855044.png)
其中,文件系统类型推荐选用500MB/s/TiB或1000MB/s/TiB,应用于AI大模型场景中。存储容量推荐使用 6.0~10.8TB ,以存储更多模型文件。
![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000001950855036.png)
ModelArts网络关联SFS Turbo
OBS-SFS Turbo联动方案涉及VPC、SFS Turbo HPC型文件系统、OBS对象存储服务和ModelArts资源池。如果要使用训练作业挂载SFS Turbo功能,则需要配置ModelArts和SFS Turbo间网络直通,以及配置ModelArts网络关联SFS Turbo。
若ModelArts网络关联SFS Turbo失败,则需要授权ModelArts云服务使用SFS Turbo,具体操作请参见配置ModelArts和SFS Turbo间网络直通。
![](https://support.huaweicloud.com/bestpractice-modelarts/figure/zh-cn_image_0000001982414581.png)
SFS Turbo模式下执行流程
SFS Turbo作为完全托管的共享文件存储系统,在本方案中作为主要的存储介质应用于训练作业。因此,后续需要准备的原始数据集、原始Hugging Face权重文件以及训练代码都需要上传至SFS Turbo中。而基于SFS Turbo所执行的训练流程如下:
- 将SFS Turbo挂载至ECS服务器后,可直接访问SFS Turbo。通过SSH连接ECS将代码包上传至SFS Turbo中。
- 在表1获取基础镜像,随后通过镜像方案说明中的步骤执行代码包中llm_train/AscendSpeed/Dockerfile文件,构建新的镜像,并上传至SWR中。
- 新构建的镜像中,包含有ModelLink、MindSpeed、Megatron-LM等代码,在集群中启动容器即可通过/home/ma-user/AscendSpeed路径访问。
- 在ModelArts中创建训练作业如:预训练,执行代码包中例如:scripts/llama2/0_pl_pretrain_13b.sh 的脚本,开始训练。
- 在训练中,程序会自动执行对数据集预处理、权重转换、执行训练等操作,具体可通过训练启动脚本说明和参数配置、训练的数据集预处理说明、训练的权重转换说明了解其中的操作。
- 训练完成后在SFS Turbo中保存训练的模型结果。(多机情况下,只有在rank_0节点进行数据预处理,权重转换等工作,所以原始数据集和原始权重,包括保存结果路径,都应该在共享目录下)