训练配置模板使用说明
概述
MindSpore Transformers提供了训练的通用配置文件模板,主要有下面两种使用场景:
用户开发适配的模型,可以基于模板编写训练配置。
对于MindSpore Transformers现有的模型,用户希望使用当前未提供配置的特定规格模型时,可以使用配置模板,并配合Hugging Face或ModelScope的模型配置,来拉起训练任务。
MindSpore Transformers对于不同训练场景提供了对应的配置模板,如下:
进行稠密模型预训练时,请使用llm_pretrain_dense_template.yaml。
进行MOE模型预训练时,请使用llm_pretrain_moe_template.yaml。
进行稠密模型微调训练时,请使用llm_finetune_dense_template.yaml。
进行MOE模型微调训练时,请使用llm_finetune_moe_template.yaml。
使用说明
模块说明
模板主要涵盖以下九个功能模块配置,详细参数配置说明可以参考配置文件说明。
模块名称 |
模块用途 |
---|---|
基础配置 |
基础配置主要用于指定MindSpore随机种子以及加载权重的相关设置。 |
数据集配置 |
数据集配置主要用于MindSpore模型训练时的数据集相关设置。详情可参考数据集。 |
模型配置 |
不同的模型配置参数存在差异,模板中的参数为通用配置。 |
模型优化配置 |
MindSpore Transformers提供重计算相关配置,以降低模型在训练时的内存占用,详情可参考重计算。 |
模型训练配置 |
启动模型训练时相关参数的配置模块,模板中主要包含trainer、runner_config、runner_wrapper、学习率(lr_schedule)以及优化器(optimizer)相关训练所需模块的参数。 |
并行配置 |
为了提升模型的性能,在大规模集群的使用场景中通常需要为模型配置并行策略,详情可参考分布式并行。 |
回调函数配置 |
MindSpore Transformers提供封装后的Callbacks函数类,主要实现在模型训练过程中返回模型的训练状态并输出、保存模型权重文件等一些操作,目前支持以下几个Callbacks函数类。 |
context配置 |
Context配置主要用于指定mindspore.set_context中的相关参数。 |
性能分析工具配置 |
MindSpore Transformers提供Profile作为模型性能调优的主要工具,详情可参考性能调优指南。 |
基本配置修改
使用配置模版进行训练时,修改以下基础配置即可快速启动。
配置模板默认使用8卡。
数据集配置修改
预训练场景使用Megatron数据集,详情请参考Megatron数据集。
微调场景使用HuggingFace数据集,详情请参考HuggingFace数据集。
模型配置修改
修改模型配置时可以选择下载Huggingface模型后直接修改yaml配置中的pretrained_model_dir来读取模型配置(该功能暂不支持预训练),模型训练时会自动生成tokenizer和model_config,支持模型列表:
模型名称
Deepseek3
Qwen3
Qwen2_5
生成的模型配置优先以yaml配置为准,未配置参数则取值pretrained_model_dir路径下的config.json中的参数。如若要修改定制模型配置,则只需要在mode_config中添加相关配置即可。
通用配置详情请参考模型配置。
进阶配置修改
可以进一步按照下述方式进行修改,以自定义训练。
基础配置修改
进行预训练时,可通过load_ckpt_format来修改生成的权重格式,支持safetensors和ckpt,推荐使用safetensors。可通过output_dir来指定训练过程中日志、权重和策略文件的生成路径。
训练超参修改
回调函数配置修改
模板提供了保存权重相关的回调函数:save_checkpoint_steps可修改权重的保存步数间隔;keep_checkpoint_max可设定最大权重的保存数量,能够有效控制权重保存的磁盘空间。
其他回调函数应用请参考回调函数配置。
断点续训
进行断点续训时,需要基于上次训练使用的yaml配置文件,修改load_checkpoint指定到上一次训练任务时保存的权重目录,即output_dir参数指定目录下的checkpoint目录,resume_training设置为True。详情参考断点续训。