更新时间:2025-09-16 GMT+08:00
分享

构建模型蒸馏训练任务

创建微调训练任务

创建NLP大模型微调任务步骤如下:

  1. 登录ModelArts Studio平台,在“我的空间”模块,单击进入所需空间。
  2. 在左侧导航栏中选择“模型开发 > 模型训练”,单击界面右上角“创建训练任务”。
  3. 在“选择模型”页面,选择“模型广场 > 大语言模型 > 模型”,单击“确定”进入“创建训练任务”页面。
  4. 在“创建训练任务”页面,参考表1完成训练参数设置,参数默认值在创建训练任务的时候会带出。
    表1 NLP大模型微调参数说明

    参数分类

    训练参数

    参数说明

    训练配置

    选择模型

    可以修改如下信息:

    • 来源:选择“模型广场”。
    • 类型:选择“大语言模型”,并选择训练所用的基础模型和版本。本案例中选择:Pangu-NLP-N1-Reasoner-128K | V3.0.1.1。

    训练类型

    选择“微调”。

    训练目标

    选择“全量微调”

    • 全量微调:在模型有监督微调过程中,对大模型的全部参数进行更新。这种方法通常会带来最优的模型性能,但需要大量的计算资源和时间,计算开销较高。
    • LoRA微调:在模型微调过程中,只对特定的层或模块的参数进行更新,而其余参数保持冻结状态。这种方法可以显著减少计算资源和时间消耗,同时在很多情况下,依然能够保持较好的模型性能。

    高级设置

    checkpoints:在模型训练过程中,用于保存模型权重和状态的机制。本案例训练步数较少,因此选择关闭,用户可按照需求进行设置。

    开启断点续训后对于未训练完成的模型,可以通过单击训练任务名称,进入“训练结果”页签,通过“编辑训练”入口选中需要进行断点续训的checkpoints进行续训。

    • 关闭:关闭后不保存checkpoints,无法基于checkpoints执行续训操作。
    • 自动:自动保存训练过程中的所有checkpoints。
    • 自定义:根据设置保存指定数量的checkpoints。

    训练参数

    热身比例

    本案例中设置为0.1

    热身比例是指在模型训练过程中逐渐增加学习率的过程。在训练的初始阶段,模型的权重通常是随机初始化的,此时模型的预测能力较弱。如果直接使用较大的学习率进行训练,可能会导致模型在初始阶段更新过快,从而影响模型的收敛。

    为了解决这个问题,可以在训练的初始阶段使用较小的学习率,然后逐渐增加学习率,直到达到预设的最大学习率。这个过程就叫做热身比例。通过使用热身比例,可以避免模型在初始阶段更新过快,从而有助于模型更好地收敛。

    序列长度

    本案例中设置为32768

    sequence_length,训练单条数据的最大长度,超过该长度的数据在训练时将被截断。

    数据批量大小

    本案例中设置为8

    数据集进行分批读取训练,设定每个批次数据的大小。

    通常情况下,较大的数据批量可以使梯度更加稳定,从而有利于模型的收敛。然而,较大的数据批量也会占用更多的显存资源,这可能导致显存不足,并且会延长每次训练的时长。

    学习率衰减比率

    本案例中设置为0.1

    学习率衰减后的比率,用于控制训练过程中学习率的下降幅度。经过衰减后,学习率的最低值由初始学习率和衰减比率决定。其计算公式为:最低学习率 = 初始学习率 * 学习率衰减比率。也就是说,学习率在每次衰减后不会低于这个计算出来的最低值。

    权重衰减系数

    本案例中设置为0.1

    通过在损失函数中增加一个与模型权重大小相关的惩罚项,来鼓励模型保持权重较小,从而防止模型过于复杂或过拟合训练数据。

    优化器

    本案例中设置为adamw

    优化器参数指的是用于更新模型权重的优化算法的相关参数,可以选择adamw。

    • adamw是一种改进的Adam优化器,它在原有的基础上加入了权重衰减(weight decay)的机制,可以有效地防止过拟合(overfitting)的问题。

    学习率

    本案例中设置为0.00002

    学习率决定了每次训练时模型参数更新的幅度。选择合适的学习率非常重要:如果学习率太大,模型可能会无法收敛;如果学习率太小,模型的收敛速度会变得非常慢。

    训练轮数

    本案例中由于在数据处理时已经对数据复制过三份,所以在此处设置为1

    指完成全部训练数据集训练的次数。

    模型保存策略

    本案例中未开启checkpoints功能,保持默认值即可

    保存训练中间产物策略,支持按照步数或按照训练epoch保存。按需设置,如果设置为save_checkpoint_steps,会使用save_checkpoint_steps参数的设置。如果设置为save_checkpoint_epoch,会使用save_checkpoint_epoch参数的设置。

    Checkpoint保存间隔

    本案例中未开启checkpoints功能,保持默认值即可

    save_checkpoint_steps,训练过程中每隔多少个训练步长保存一次模型Checkpoint文件。

    Checkpoint保存轮数

    本案例中未开启checkpoints功能,保持默认值即可

    训练多少epoch的数据保存一份中间训练产物,可以和save_checkpoint_steps同时设置,根据checkpoint_save_strategy判断是否启用。

    eg:2表示每训练2个epoch的数据保存一份中间产物

    旋转位置编码

    本案例中设置为1000000

    rotary_base,位置编码的基底值,增强模型对序列中位置信息的捕捉能力,数值越大,模型能够处理的序列长度更长,泛化能力更好,建议使用默认值。

    Agent微调

    本案例中设置为关闭。

    训练Agent模型时,可以开启此参数。通过调整训练数据中的Prompt来引导模型在特定领域或任务上,生成更符合预期的回答。

    使用此参数前,请先联系盘古NLP模型工程师调整Prompt和训练数据。

    训练数据配置

    训练集

    选择训练模型所需的数据集。要求数据集经过发布操作,操作方法请参见构建模型蒸馏数据集

    验证集

    • 若选择“分割训练集”,则需进一步配置数据拆分比例。
    • 若选择“选择数据集”,则需选择导入的数据集。

    资源配置

    计费模式

    选择训练当前任务的计费模式。

    训练单元

    选择训练单元数。

    单实例训练单元数

    选择单实例训练单元数。

    实例数

    选择实例数。

    订阅提醒

    订阅提醒

    该功能开启后,系统将在任务状态更新时,通过短信或邮件将提醒发送给用户。

    发布模型

    开启自动发布

    开启自动发布后,模型训练完成的最终产物会自动发布为空间资产,以便对模型进行压缩、部署、评测等操作或共享给其他空间。

    基本信息

    名称

    训练任务名称。

    描述

    训练任务描述。

    表格中展示了本案例所需的微调训练参数,不同模型训练参数存在一定差异,请以前端页面展示为准

查看训练任务详情

模型启动训练后,可以在模型训练列表中查看训练任务的状态,单击任务名称可以进入详情页查看训练结果、训练任务详情和训练日志等。

  • 查看训练结果:一个正常Loss曲线示例如,通过观察Loss曲线,其随着迭代步数的增加呈下降趋势直至稳定,证明整个训练状态是正常的。
    图1 训练loss曲线

  • 查看任务详情:图2,您可以看到任务的所有配置信息。
    图2 训练任务配置信息

  • 查看日志:图3,您可以看到全部的训练过程日志,可以帮助您更好地分析训练过程。
    图3 训练日志信息

相关文档