训练配置模板使用说明

查看源文件

概述

MindSpore Transformers提供了训练的通用配置文件模板,主要有下面两种使用场景:

  1. 用户开发适配的模型,可以基于模板编写训练配置。

  2. 对于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函数类。
1.MFLossMonitor
该回调函数类主要用于在训练过程中对训练进度、模型Loss、学习率等信息进行打印
2.SummaryMonitor
该回调函数类主要用于收集Summary数据,详情可参考mindspore.SummaryCollector
3.CheckpointMonitor
该回调函数类主要用于在模型训练过程中保存模型权重文件。

context配置

Context配置主要用于指定mindspore.set_context中的相关参数。

性能分析工具配置

MindSpore Transformers提供Profile作为模型性能调优的主要工具,详情可参考性能调优指南

基本配置修改

使用配置模版进行训练时,修改以下基础配置即可快速启动。

配置模板默认使用8卡。

数据集配置修改

  1. 预训练场景使用Megatron数据集,详情请参考Megatron数据集

  2. 微调场景使用HuggingFace数据集,详情请参考HuggingFace数据集

模型配置修改

  1. 修改模型配置时可以选择下载Huggingface模型后直接修改yaml配置中的pretrained_model_dir来读取模型配置(该功能暂不支持预训练),模型训练时会自动生成tokenizer和model_config,支持模型列表:

    模型名称

    Deepseek3

    Qwen3

    Qwen2_5

  2. 生成的模型配置优先以yaml配置为准,未配置参数则取值pretrained_model_dir路径下的config.json中的参数。如若要修改定制模型配置,则只需要在mode_config中添加相关配置即可。

  3. 通用配置详情请参考模型配置

进阶配置修改

可以进一步按照下述方式进行修改,以自定义训练。

基础配置修改

进行预训练时,可通过load_ckpt_format来修改生成的权重格式,支持safetensors和ckpt,推荐使用safetensors。可通过output_dir来指定训练过程中日志、权重和策略文件的生成路径。

训练超参修改

  1. recompute_config(重计算)、optimizer(优化器)、lr_schedule(学习率)相关配置修改会影响模型训练结果的精度。

  2. 如果在训练过程中出现内存不足而导致模型无法开启训练,可考虑开启重计算从而降低模型在训练时的内存占用。

  3. 通过修改学习率配置来达到模型训练时的学习效果。

  4. 修改优化器配置能够修改计算模型训练时的梯度。

  5. parallel(模型并行)、context相关配置会影响模型训练时的性能。

  6. 模型训练时通过开启use_parallel=True来提升训练时的性能,通过调试配置并行策略达到预期的性能效果。详细参数配置请参考并行配置

  7. 具体配置详情参考模型训练配置

回调函数配置修改

  1. 模板提供了保存权重相关的回调函数:save_checkpoint_steps可修改权重的保存步数间隔;keep_checkpoint_max可设定最大权重的保存数量,能够有效控制权重保存的磁盘空间。

  2. 其他回调函数应用请参考回调函数配置

断点续训

进行断点续训时,需要基于上次训练使用的yaml配置文件,修改load_checkpoint指定到上一次训练任务时保存的权重目录,即output_dir参数指定目录下的checkpoint目录,resume_training设置为True。详情参考断点续训