大模型训练¶
MindSpore Transformers套件的目标是构建一个大模型训练、微调、评估、推理、部署的全流程开发套件: 提供业内主流的Transformer类预训练模型和SOTA下游任务应用,涵盖丰富的并行特性。期望帮助用户轻松的实现大模型训练和创新研发。
MindSpore Transformers套件基于MindSpore内置的并行技术和组件化设计,具备如下特点: 一行代码实现从单卡到大规模集群训练的无缝切换;
提供灵活易用的个性化并行配置;
能够自动进行拓扑感知,高效地融合数据并行和模型并行策略;
一键启动任意任务的单卡/多卡训练、微调、评估、推理流程;
支持用户进行组件化配置任意模块,如优化器、学习策略、网络组装等;
提供Trainer、pipeline、AutoClass等高阶易用性接口;
提供预置SOTA权重自动下载及加载功能;
支持人工智能计算中心无缝迁移部署;
当前支持的模型列表查询,每个模型均有单独的使用说明。
训练准备三部曲¶
以下三部曲,是大模型训练的三个通用的步骤,不同模型具体细节会有不一致,具体看每个模型单独的使用说明。以下以llama为例。
docker pull swr.cn-central-221.ovaijisuan.com/wuh-aicc_dxy/mindspore_2_0_0:mindspore2.0.0-cann6.3rc1-py_3.9-euler_2.8
下载镜像后参考使用手册第四部分上传镜像。
1.权重转换¶
开发者可以下载获取官方权重后,通过下面提供的权重转换脚本,将bin格式转换为ckpt格式。
# 先安装mindformers套件
git clone -b dev https://gitee.com/mindspore/mindformers.git
cd mindformers
bash build.sh
# 再转换
python mindformers/models/llama/convert_weight.py \
--torch_ckpt_dir TORCH_CKPT_DIR \
--mindspore_ckpt_path {path}/MS_CKPT_NAME
# 参数说明
torch_ckpt_dir: huggingface权重保存目录路径
mindspore_ckpt_path: 权重保存文件名,可以指定自定义保存路径
2.数据处理¶
不同的下游任务数据处理方式不一样,可咨询工程师。此例是将原始数据集转换为多轮对话格式。
python tools/dataset_preprocess/llama/alpaca_converter.py \
--data_path /{path}/alpaca_data.json \
--output_path /{path}/alpaca-data-conversation.json
# 参数说明
data_path: 存放alpaca数据的路径
output_path: 输出转换后对话格式的数据路径
然后转换为mindrecord格式
python tools/dataset_preprocess/llama/llama_preprocess.py \
--dataset_type qa \
--input_glob /{path}/alpaca-data-conversation.json \
--model_file /{path}/tokenizer.model \
--seq_length 2048 \
--output_file /{path}/alpaca-fastchat2048.mindrecord
3.参数配置&&拉起训练¶
3.1按照推荐,修改训练时学习率和优化器参数,并上传yaml文件¶
3.2第一次按照以下设置¶
训练输入
train_dataset_dir:训练数据集路径
load_checkpoint:预训练权重路径,{dir}/rank_0/xxx.ckpt,此处只填{dir}所在的路径
超参
run_mode finetune
auto_trans_ckpt True
remote_save_url obs://XXX/XXX/
config /home/ma-user/modelarts/user-job-dir/mindformers/configs/XXXX
epoch 2


auto_trans_ckpt设成true会根据当前pp/mp/dp自动切分,生成strategy和transformed_checkpoint两个文件夹,将这两个文件夹重新保存到其他目录。
3.3第二次按照以下设置¶

训练输入
train_dataset_dir:训练数据集路径
load_checkpoint:预训练权重路径,指向重新保存的目录的transformed_checkpoint
超参
run_mode finetune
auto_trans_ckpt false
remote_save_url obs://XXX/XXX/
config /home/ma-user/modelarts/user-job-dir/mindformers/configs/XXXX
epoch 2