千问AI平台微调超参数的参考说明与调参建议。
超参数控制模型在微调中的学习方式。创建微调任务时,选择模型后自动显示超参数配置表(参数 / 值 / 范围 / 说明),各参数已设置为优化后的默认值。您可以根据需要调整,点击恢复默认可随时重置。
以下参数在所有模型与训练方式下均会显示。
以下参数仅在 LoRA 训练模式下显示。选择全参训练时不显示。
以下参数是否显示、以及默认值,取决于所选模型的架构,并非所有模型都会出现。例如带视觉编码器的 VL / omni 模型会显示冻结与视觉相关参数;
超参数的默认值和取值范围因所选模型与训练模式不同而变化,部分参数仅在特定模型或训练方式下显示。下表为通用说明,实际参数、默认值与范围以工作台显示为准。
通用参数
以下参数在所有模型与训练方式下均会显示。
| 工作台名称 | 默认值 / 范围 | 推荐设置 | 说明 |
|---|---|---|---|
| 批次大小(batch_size) | 模型相关(如 16,范围 [8, 1024] step 8) | 使用默认值 | 每步处理的训练样本数。值越大稳定性越好,但需要更多内存。 |
| 学习率(learning_rate) | 模型 / 模式相关(高效训练约 3e-4,全参训练约 1e-5) | 高效训练 1e-4 量级;全参 / CPT 1e-5 量级 | 控制权重更新的幅度。过大导致不稳定,过小导致收敛过慢。 |
| 循环次数(n_epochs) | [1, 200] step 1,默认 3(全参默认 1) | 数据量 < 1 万循环 3–5 次;> 1 万循环 1–2 次 | 完整遍历训练数据集的次数。次数越多,训练时间和成本越高。 |
| 验证步数(eval_steps) | [1, 2147483647],默认 50(全参默认 500) | 使用默认值 | 两次验证评估之间的训练步数。值越低指标越频繁,但会拖慢训练。 |
| 学习率调整策略(lr_scheduler_type) | 默认 Linear(全参默认 Cosine) | Linear 或 Inverse_sqrt | 训练期间动态调整学习率的策略。各策略详见学习率调整策略。 |
| 序列长度(max_length) | 模型相关(如 [500, 131072],默认 32768) | 设为模型支持的最大值 | 单个训练样本的最大 Token 长度。SFT 中超长样本直接丢弃;DPO 会自动截断超出部分,截短后的数据仍参与训练。 |
| 学习率预热比例(warmup_ratio) | (0, 1),默认 0.05(全参默认 0.005) | 使用默认值 | 用于学习率预热的训练步数比例。预热有助于稳定早期训练。 |
| 权重衰减(weight_decay) | (0, 0.2),默认 0.01(全参默认 0.1) | 使用默认值 | L2 正则化强度。有助于防止过拟合,维持泛化能力。 |
LoRA 专属参数
以下参数仅在 LoRA 训练模式下显示。选择全参训练时不显示。
| 工作台名称 | 默认值 / 范围 | 推荐设置 | 说明 |
|---|---|---|---|
| LoRa 秩值(lora_rank) | 默认 8(可选值以控制台为准) | 设为模型支持的最大值 | LoRA 适配器矩阵的秩。值越高容量越大,但计算成本也越高。 |
| LoRa 阿尔法(lora_alpha) | 默认 16 | 使用默认值 | LoRA 更新的缩放因子。控制适配器相对于基础模型的影响程度。 |
| LoRa 丢弃率(lora_dropout) | (0, 0.2),默认 0.1 | 使用默认值 | LoRA 层的 Dropout 率。有助于防止适配器权重过拟合。 |
模型相关参数(按模型显示)
以下参数是否显示、以及默认值,取决于所选模型的架构,并非所有模型都会出现。例如带视觉编码器的 VL / omni 模型会显示冻结与视觉相关参数;loss_scale、save_steps 等也仅在部分模型上显示。是否出现及取值均以工作台显示为准。
| 工作台名称 | 默认值 / 范围 | 推荐设置 | 说明 |
|---|---|---|---|
| 是否冻结 VIT(freeze_vit) | true / false,默认 true | 使用默认值 | 是否冻结视觉编码器参数。冻结可加速训练、降低显存,适合仅优化语言理解部分的场景。冻结 VIT 后视觉模型可按 Token 用量计费,详见部署概览。 |
| VIT 学习率(vit_lr) | 模型相关(如 3e-4) | 使用默认值 | 视觉编码器的学习率。仅在未冻结 VIT 时生效,通常与语言部分学习率保持一致或更低。 |
| 是否冻结 Aligner(freeze_aligner) | true / false,默认 false | 使用默认值 | 是否冻结 Aligner(视觉与语言之间的对齐层)参数。冻结可减少可训练参数、降低显存。 |
| 是否冻结 LLM(freeze_llm) | true / false,默认 false | 使用默认值 | 是否冻结 LLM(语言模型主体)参数。冻结 LLM 时仅训练其余部分,适合保留语言能力、只更新视觉等模块的场景。 |
| 损失计算策略(loss_scale) | last_round / per_message,默认 last_round | 使用默认值 | 损失的计算方式。last_round 仅在最后一轮计算损失,per_message 对每条消息都计算损失。 |
| 保存步数(save_steps) | [1, 2147483647],默认 100 | 使用默认值 | 训练过程中保存模型检查点的间隔步长。值越小保存越频繁、占用存储越多。 |
学习率调整策略
lr_scheduler_type 控制训练过程中学习率的变化曲线。常见策略如下,具体可选项以控制台显示为准。
| 策略 | 说明 |
|---|---|
| Linear | 学习率线性递减。适合训练过程较短的任务。 |
| Polynomial | 按多项式函数递减。内置系数为 1,效果同 Linear,不推荐。 |
| Cosine | 按余弦曲线变化。适合精细调整、训练较长的任务。 |
| Cosine_with_restarts | 余弦周期性“重启”至预设值。用于跳出局部最优,但实测重启不稳定,不推荐。 |
| Constant | 学习率不变,warmup_ratio 无效。适合初步探索。 |
| Constant_with_warmup | 学习率不变,但 warmup_ratio 有效。适合初步探索。 |
| Inverse_sqrt | 与迭代次数平方根的倒数正相关。适合 SFT,能平衡学习效率与收敛。 |
| reduce_lr_on_plateau | 验证指标连续多轮无改进时自动降低学习率。适合难以提升性能时。 |
学习率下限梯度、最小值均为示意,实际以训练过程为准。
参数适用范围
| 参数 | SFT | DPO | CPT | LoRA 模式 | 全参模式 |
|---|---|---|---|---|---|
| 核心通用参数(batch_size / learning_rate / n_epochs / eval_steps / lr_scheduler_type / max_length) | 适用 | 适用 | 适用 | 适用 | 适用 |
| warmup_ratio / weight_decay | 适用 | 适用 | 部分模型支持 | 适用 | 适用 |
| LoRA 专属参数(lora_rank / lora_alpha / lora_dropout) | 适用 | 适用 | — | 适用 | — |
| 模型相关参数(freeze_* / vit_lr / loss_scale / save_steps) | 视模型 | 视模型 | 视模型 | 视模型 | 视模型 |
- CPT 仅支持全参训练,因此 LoRA 相关参数不适用于 CPT 任务。
warmup_ratio/weight_decay在 CPT 任务中是否可用因模型而异,以控制台显示为准。- 模型相关参数的显示与否取决于所选模型,与训练方式 / 模式正交,不在此表内逐项展开。
调参建议
- 从默认值开始。 默认值适用于大多数场景。仅在初始结果不理想时才调整参数。
- 谨慎调整学习率。 如果训练 loss 不下降,尝试增大学习率。如果 loss 不稳定或剧烈波动,则降低学习率。
- 监控验证指标。 使用任务详情页的指标标签页观察过拟合——当验证 loss 上升而训练 loss 持续下降时即为过拟合。
- 小数据集增加 epoch。 训练样本较少时,更多 epoch 可以让模型有更多机会学习规律。
- 大学习率使用预热。 将
warmup_ratio设为 0.05 -- 0.1 有助于避免早期训练的不稳定。