更新时间:2024-09-10 GMT+08:00
分享

准备资源

创建专属资源池

本文档中的模型运行环境是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文件系统前提条件:

  1. 创建SFS Turbo文件系统前,确认已有可用的VPC。
  2. 需要由IAM用户设置SFS Turbo FullAccess权限,用于授权ModelArts云服务使用SFS Turbo。

详细操作指导请参考创建SFS Turbo文件系统

图1 创建SFS Turbo

其中,文件系统类型推荐选用500MB/s/TiB或1000MB/s/TiB,应用于AI大模型场景中。存储容量推荐使用 6.0~10.8TB ,以存储更多模型文件。

图2 SFS类型和容量选择

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间网络直通

图3 ModelArts网络关联SFS Turbo

SFS Turbo模式下执行流程

SFS Turbo作为完全托管的共享文件存储系统,在本方案中作为主要的存储介质应用于训练作业。因此,后续需要准备的原始数据集原始Hugging Face权重文件以及训练代码都需要上传至SFS Turbo中。而基于SFS Turbo所执行的训练流程如下:

  1. 将SFS Turbo挂载至ECS服务器后,可直接访问SFS Turbo。通过SSH连接ECS将代码包上传至SFS Turbo中。
  2. 表1获取基础镜像,随后通过镜像方案说明中的步骤执行代码包中llm_train/AscendSpeed/Dockerfile文件,构建新的镜像,并上传至SWR中。
  3. 新构建的镜像中,包含有ModelLink、MindSpeed、Megatron-LM等代码,在集群中启动容器即可通过/home/ma-user/AscendSpeed路径访问。
  4. 在ModelArts中创建训练作业如:预训练,执行代码包中例如:scripts/llama2/0_pl_pretrain_13b.sh 的脚本,开始训练。
  5. 在训练中,程序会自动执行对数据集预处理、权重转换、执行训练等操作,具体可通过训练启动脚本说明和参数配置训练的数据集预处理说明训练的权重转换说明了解其中的操作。
  6. 训练完成后在SFS Turbo中保存训练的模型结果。(多机情况下,只有在rank_0节点进行数据预处理,权重转换等工作,所以原始数据集和原始权重,包括保存结果路径,都应该在共享目录下)

相关文档