Files
LLaMA-Factory/docs/zh/configuration/training.md
2026-09-14 16:09:48 +08:00

5.7 KiB
Raw Permalink Blame History

训练参数

TrainingArguments

训练过程与精度

字段 类型 默认值 说明
output_dir str outputs/<uuid> 输出目录
micro_batch_size int 1 基础 micro-batch 大小
global_batch_size int | None None 默认 dp_size × micro_batch_size
cutoff_len int 2048 最大序列长度
learning_rate float 1e-4 训练及优化器插件使用的学习率
num_train_epochs int 3 训练轮数
max_steps int | None None 设置后使用 step 作为终止条件
max_grad_norm float 1.0 梯度裁剪阈值
bf16 bool true 是否使用 bf16
seed int 42 随机种子
full_determinism bool false 是否启用完整确定性模式

global_batch_size 与 micro_batch_size 共同决定每次参数更新需要累积多少个 micro-batch。省略 global_batch_size 时,每个 DP 进程每次更新处理一个 micro-batch;显式设置时,它必须能被 dp_size × micro_batch_size 整除,每个进程的累积次数为 global_batch_size / (dp_size × micro_batch_size)。

例如,dp_size: 4、micro_batch_size: 2、global_batch_size: 32 对应每个 DP 进程累积 4 个 micro-batch。固定样本数策略下,一次更新共使用 32 条样本;动态策略中的实际样本数随长度变化,global_batch_size 仍决定累积次数,token 预算见批处理策略。

批处理配置

字段 类型 默认值 说明
batching_strategy str normal normal、padding_free、dynamic_batching 或 dynamic_padding_free
batching_workers int 16 数据加载 worker 数
enable_activation_checkpointing bool true 是否启用激活值重算

各策略的 token 预算和使用约束见批处理策略。

分布式与优化器

字段 类型 默认值 说明
dist_config dict | None None FSDP2、FSDPTurbo 或 DeepSpeed 配置
dp_size int | None None 默认由 world size 和 cp_size 推导
cp_size int 1 Context Parallel 大小
cp_mode str ulysses Context Parallel 实现
mp_replicate_size int 1 FSDP 二维 Mesh 的参数复制维度大小
mp_shard_size int | None None FSDP 二维 Mesh 的参数分片维度大小;默认由 world size 推导
dist_timeout int 18000 进程组初始化超时,秒
optim_config dict | None None 优化器插件
lr_scheduler_config dict | None None 学习率调度插件;当前没有内置实现

Checkpoint 与日志配置

字段 类型 默认值 说明
resume_from_checkpoint str | None None checkpoint 路径或 auto
save_steps int | None None 每 N 个全局 step 保存
save_epochs float | None None 每 N 个 epoch 保存
save_ckpt_as_hf bool false 是否在中间 checkpoint 中额外保存 HF 格式模型
save_total_limit int | None None 最多保留数量
logging_steps int 1 日志间隔

偏好优化参数

字段 类型 默认值 说明
pref_loss str sigmoid sigmoid、orpo 或 simpo
pref_beta float 0.1 DPO beta
pref_ftx float 0.0 SFT 损失系数
simpo_gamma float 0.5 SimPO reward margin
dpo_label_smoothing float 0.0 cDPO label smoothing
ld_alpha float | None None LD-DPO 长度差异权重

dist_config

FSDP2

设置 name: fsdp2:

字段 类型 默认值 说明
reshard_after_forward bool true forward 后是否重新分片
offload_params bool false 是否 offload 参数
pin_memory bool true 是否使用 pinned memory
dcp_path str | None None 初始化 DCP 权重路径

DeepSpeed

设置 name: deepspeed:

字段 类型 默认值 说明
config_file str 必填 DeepSpeed JSON 配置

FSDPTurbo

设置 name: fsdpturbo:

字段 类型 默认值 说明
reshard_after_forward bool true forward 后是否重新分片
offload_params bool false 是否 offload 参数
pin_memory bool true 是否使用 pinned memory
dcp_path str | None None 初始化 DCP 权重路径
ep_size int 1 专家并行组大小
ep_dispatcher str eager 专家 token dispatcher
fsdp_ignored_modules list[str] [] 外层 FSDP2 忽略的额外模块
hook_modules list[str] [] EFSDP hook 的模块模式
fsdp_implementation str native native 或 custom

dp_size、cp_size、mp_replicate_size 和 mp_shard_size 是 TrainingArguments 字段,不放在 dist_config 中。

optim_config

设置 name: muon:

字段 类型 默认值 说明
wd float 0.1 weight decay
momentum float 0.95 Muon momentum
nesterov bool true 是否启用 Nesterov
ns_steps int 5 Newton-Schulz 步数
adamw_betas list[float] [0.9, 0.95] 内部 AdamW betas
adamw_eps float 1e-8 内部 AdamW epsilon

学习率统一使用顶层 learning_rate。

Muon 的完整配置示例见优化器。