准备软件包、权重、训练数据集
训练前需要先上传模型权重、软件包和训练数据集到Lite Server指定目录,如下表所示。
文件 |
推荐目录 |
说明 |
---|---|---|
模型权重 |
/mnt/sfs_turbo/model/{模型名称} |
将/mnt/sfs_turbo定义成变量${work_dir} |
AscendCloud软件包(包含AscendCloud-LLM代码包,具体参见软件包结构) |
/mnt/sfs_turbo |
|
训练数据集 |
/mnt/sfs_turbo/training_data |
/mnt/sfs_turbo为宿主机中默认挂载SFS Turbo的工作目录,因此上传模型权重、软件包、训练数据集只需要在Server服务器执行即可。
步骤一:上传代码包和权重文件
- 上传安装依赖软件训练代码AscendCloud-LLM-xxx.zip到主机中并解压,包获取路径请参见表3,解压详解如下:
cd ${work_dir} unzip AscendCloud-*.zip && unzip ./AscendCloud-LLM-*.zip
- 将权重文件上传到Lite Server机器中。权重文件的格式要求为Huggingface格式。开源权重文件获取地址请参见支持的模型列表。
- 权重要求放在磁盘的指定目录,保证模型文件、权重文件(如LFS文件)已完整下载。
cd ${work_dir} mkdir -p model/{模型名称}
- 修改权重(tokenizer)文件,以下模型需修改,根据所选框架及模型修改相应文件,详情参考tokenizer文件说明。
步骤二:上传数据到指定目录
不同框架下数据要求有差异,将预期的训练数据放在${work_dir}/training_data目录下。具体步骤如下:
- 创建目录training_data。
cd ${work_dir} mkdir training_data
- 获取数据集,并把指定数据上传至在${work_dir}/training_data目录下。
- 途径1:数据参考训练数据说明进行下载。
- 途径2:软件包中已预置部分数据集,可直接使用。
tar -zxvf ${work_dir}/llm_train/AscendFactory/data.tgz cp ${work_dir}/llm_train/AscendFactory/data/* ${work_dir}/training_data
- 途径3:用户已处理数据集。
- 将原始数据或处理好的数据按照下面的数据存放目录要求放置,数据存放参考目录结构如下。
${work_dir} |── training_data |── alpaca_en_demo.json # 代码原有数据集 |── identity.json # 代码原有数据集 ...dat |── alpaca_gpt4_data.json # 自定义样例数据集
- 【Llama-Factory框架】数据预处理
关于数据集文件格式及配置,更多样例格式信息请参考README_zh.md 的内容,如果数据格式不符合要求则需要参考下文处理。否则,跳过此步骤。
如果需要预处理数据,则更新代码目录下data/dataset_info.json文件。如使用以下示例数据集则预处理数据的命令如下。vim dataset_info.json
新加配置参数如下:
"alpaca_gpt4_data": { "file_name": "alpaca_gpt4_data.json" },
样例截图:
- 【VeRL框架】数据预处理:
VeRL框架要求所有用于训练的数据集都必须经过预处理。
- 根据模型类型选择VeRL数据处理样例脚本内容拷贝至本地,命名为dataset_demo.py,编辑脚本中 datasets.load_dataset参数值,如下所示。
dataset = datasets.load_dataset(xxx/xxx/xxx) #xxx/xxx/xxx值填写为原始数据集目录或文件的绝对或相对路径
- 下载数据集。
git clone https://huggingface.co/datasets/hiyouga/geometry3k # 多模态数据集 git clone https://huggingface.co/datasets/openai/gsm8k # 大语言数据集
- 在本地执行以下命令转换数据集。
python dataset_demo.py --local_dir=/data/verl-workdir/data/xxx/
--local_dir:数据处理输出后的数据集路径。
- 根据模型类型选择VeRL数据处理样例脚本内容拷贝至本地,命名为dataset_demo.py,编辑脚本中 datasets.load_dataset参数值,如下所示。

MindSpeed框架下不需要手动做数据转换,通过训练yaml文件中的配置自动完成数据转换。
多机情况下,只有在rank_0节点进行数据预处理,转换权重等工作,所以原始数据集和原始权重,包括保存结果路径,都应该在共享目录下。