1. 引言

LLaMa-Factory 命令行的参数接近600个,博主整理了所有参数的含义,方便大家快速查询。

2. 参数汇总

通过help命令,可以看到LLaMa-Factory支持如下的命令:

----------------------------------------------------------------------
| Usage:                                                             |
|   llamafactory-cli api -h: launch an OpenAI-style API server       |
|   llamafactory-cli chat -h: launch a chat interface in CLI         |
|   llamafactory-cli eval -h: evaluate models                        |
|   llamafactory-cli export -h: merge LoRA adapters and export model |
|   llamafactory-cli train -h: train models                          |
|   llamafactory-cli webchat -h: launch a chat interface in Web UI   |
|   llamafactory-cli webui: launch LlamaBoard                        |
|   llamafactory-cli version: show version info                      |
----------------------------------------------------------------------

接下来,整理每个命令的参数,主要分为几类:

  • 通用参数(指:chat/webchat/api/export/eval/train支持的参数)
  • eval、train除外的参数(指:chat/webchat/api/export支持的参数)
  • eval参数(指:eval支持的参数)
  • train参数(指:train支持的参数)

2.1 通用参数

通用参数指的是 chat/webchat/api/export/eval/train 支持的参数,内容如下:

命令 描述 默认值
–model_name_or_path 模型权重路径或 Hugging Face / ModelScope 模型标识 None
–adapter_name_or_path Adapter 权重路径或 Hugging Face 模型标识,可用逗号分隔多个 Adapter None
–adapter_folder 存放 Adapter 权重的文件夹 None
–cache_dir 下载的预训练模型缓存目录 None
–use_fast_tokenizer 是否使用 fast tokenizer(基于 tokenizers 库) TRUE
–no_use_fast_tokenizer 不使用 fast tokenizer FALSE
–resize_vocab 是否调整 tokenizer 词表及 embedding 层 FALSE
–split_special_tokens 是否在分词时拆分特殊 token FALSE
–add_tokens 添加非特殊 token,可用逗号分隔 None
–add_special_tokens 添加特殊 token,可用逗号分隔 None
–model_revision 使用的模型版本(分支名、tag 或 commit id) main
–low_cpu_mem_usage 是否使用内存高效加载模型 TRUE
–no_low_cpu_mem_usage 不使用内存高效加载模型 FALSE
–rope_scaling RoPE embedding 的缩放策略,可选 linear/dynamic/yarn/llama3 None
–flash_attn 启用 FlashAttention 加速训练和推理,可选 auto/disabled/sdpa/fa2 AttentionFunction.AUTO
–shift_attn 启用 LongLoRA 提出的 shift short attention (S²-Attn) FALSE
–mixture_of_depths 将模型转换为 MoD 或加载 MoD 模型,可选 convert/load None
–use_unsloth 是否使用 unsloth 优化 LoRA 训练 FALSE
–use_unsloth_gc 是否使用 unsloth 梯度检查点(无需安装 unsloth) FALSE
–enable_liger_kernel 是否启用 liger kernel 加速训练 FALSE
–moe_aux_loss_coef MoE 模型中辅助路由损失系数 None
–disable_gradient_checkpointing 是否禁用梯度检查点 FALSE
–use_reentrant_gc 是否使用可重入梯度检查点 TRUE
–no_use_reentrant_gc 不使用可重入梯度检查点 FALSE
–upcast_layernorm 是否将 layernorm 权重提升为 fp32 FALSE
–upcast_lmhead_output 是否将 lm_head 输出提升为 fp32 FALSE
–train_from_scratch 是否随机初始化模型权重 FALSE
–infer_backend 推理使用的后端,可选 huggingface/vllm/sglang EngineName.HF
–offload_folder 模型权重卸载目录 offload
–use_cache 推理时是否使用 KV 缓存 TRUE
–no_use_cache 推理时不使用 KV 缓存 FALSE
–infer_dtype 推理时模型权重和激活的数据类型,可选 auto/float16/bfloat16/float32 auto
–hf_hub_token Hugging Face Hub 登录认证 token None
–ms_hub_token ModelScope Hub 登录认证 token None
–om_hub_token Modelers Hub 登录认证 token None
–print_param_status 调试用,打印模型参数状态 FALSE
–trust_remote_code 是否信任从 Hub 下载的代码执行 FALSE
–quantization_method 在线量化方法,可选 bnb/gptq/awq/aqlm/quanto/eetq/hqq/mxfp4 QuantizationMethod.BNB
–quantization_bit 在线量化位数 None
–quantization_type BitsAndBytes int4 训练量化类型,可选 fp4/nf4 nf4
–double_quantization 是否使用双量化 TRUE
–no_double_quantization 不使用双量化 FALSE
–quantization_device_map 4-bit 量化模型设备映射,需 bitsandbytes>=0.43.0 None
–image_max_pixels 图像输入最大像素数 589824
–image_min_pixels 图像输入最小像素数 1024
–image_do_pan_and_scan 对 Gemma3 图像使用 pan & scan FALSE
–crop_to_patches 是否裁剪图像为 patches,用于 internvl FALSE
–video_max_pixels 视频输入最大像素数 65536
–video_min_pixels 视频输入最小像素数 256
–video_fps 视频采样帧率 2
–video_maxlen 视频最大采样帧数 128
–use_audio_in_video 视频输入是否使用音频 FALSE
–audio_sampling_rate 音频采样率 16000
–export_dir 模型导出目录 None
–export_size 模型导出分片大小(GB) 5
–export_device 模型导出设备,可选 cpu/auto cpu
–export_quantization_bit 导出模型量化位数 None
–export_quantization_dataset 用于导出量化的 dataset 或 dataset 名称 None
–export_quantization_nsamples 量化使用样本数 128
–export_quantization_maxlen 量化输入最大长度 1024
–export_legacy_format 是否保存 .bin 而非 .safetensors FALSE
–export_hub_model_id 推送至 Hugging Face hub 的仓库名 None
–vllm_maxlen vLLM 引擎最大序列长度(prompt + response) 4096
–vllm_gpu_util vLLM 使用 GPU 内存比例 (0-1) 0.7
–vllm_enforce_eager vLLM 是否禁用 CUDA graph FALSE
–vllm_max_lora_rank vLLM 所有 LoRA 最大 rank 32
–vllm_config vLLM 引擎初始化配置,JSON 字符串 None
–sglang_maxlen SGLang 引擎最大序列长度(prompt + response) 4096
–sglang_mem_fraction SGLang 引擎使用内存比例 (0-1) 0.7
–sglang_tp_size SGLang 引擎张量并行大小 -1
–sglang_config SGLang 引擎初始化配置,JSON 字符串 None
–sglang_lora_backend Lora 模块 GEMM 内核后端,可选 triton/flashinfer triton
–template 构建训练或推理 prompt 使用的模板 None
–dataset 训练使用的 dataset 名称,可用逗号分隔 None
–eval_dataset 评估使用的 dataset 名称,可用逗号分隔 None
–dataset_dir dataset 文件夹路径 data
–media_dir 图片、视频或音频存放路径,默认使用 dataset_dir None
–cutoff_len 数据集分词输入截断长度 2048
–train_on_prompt 是否在训练时禁用 prompt mask FALSE
–mask_history 是否只训练最后一轮,屏蔽历史 FALSE
–streaming 启用 dataset streaming FALSE
–buffer_size dataset streaming 缓冲区大小 16384
–mix_strategy dataset 混合策略,可选 concat/interleave_under/interleave_over concat
–interleave_probs 数据采样概率,可用逗号分隔多个 dataset None
–overwrite_cache 是否覆盖缓存训练/评估集 FALSE
–preprocessing_batch_size 预处理每组样本数量 1000
–preprocessing_num_workers 预处理进程数量 None
–max_samples 调试用,每个 dataset 截断样本数 None
–eval_num_beams 评估时使用 beam 数,会传给 model.generate None
–ignore_pad_token_for_loss 是否在计算 loss 时忽略 pad token TRUE
–no_ignore_pad_token_for_loss 计算 loss 时不忽略 pad token FALSE
–val_size 验证集大小,可为整数或 [0,1) 浮点 0
–eval_on_each_dataset 是否对每个 dataset 分别评估 FALSE
–packing 启用训练序列 packing,预训练自动启用 None
–neat_packing 启用无 cross-attention 的 sequence packing FALSE
–tool_format 构建 function calling 示例使用的工具格式 None
–default_system 覆盖模板中的默认系统信息 None
–enable_thinking 是否启用推理模型的思考模式 TRUE
–no_enable_thinking 不启用推理模型的思考模式 FALSE
–tokenized_path 保存或加载分词后的 dataset 路径 None
–data_shared_file_system 是否使用共享文件系统存储 dataset FALSE

2.2 chat/webchat/api/export 支持的参数

chat/webchat/api/export 支持的参数如下:

命令 描述 默认值
–freeze-trainable-layers 冻结(部分参数)微调时可训练的层数。正数表示最后 n 层可训练,负数表示前 n 层可训练。 2
–freeze-trainable-modules 冻结微调时可训练的模块名称,多个模块用逗号分隔,使用 all 表示所有可用模块。 all
–freeze-extra-modules 除隐藏层外设置为可训练的模块名称,多个模块用逗号分隔。 None
–additional_target 除 LoRA 层外,额外设置为可训练并保存的模块名称,多个模块用逗号分隔。 None
–lora_alpha LoRA 微调的缩放因子,默认值为 lora_rank * 2。 None
–lora_dropout LoRA 微调的 dropout 比例。 0
–lora_rank LoRA 微调的内在维度。 8
–lora_target 施加 LoRA 的目标模块名称,多个模块用逗号分隔,all 表示所有线性模块。 all
–loraplus_lr_ratio LoRA plus 学习率比例(lr_B / lr_A)。 None
–loraplus_lr_embedding LoRA plus 的 embedding 层学习率。 1.00E-06
–use_rslora 是否使用 LoRA 的秩稳定缩放因子。 FALSE
–use_dora 是否使用权重分解 LoRA 方法(DoRA)。 FALSE
–pissa_init 是否初始化 PiSSA adapter。 FALSE
–pissa_iter PiSSA 中 FSVD 的迭代步数,-1 表示禁用。 16
–pissa_convert 是否将 PiSSA adapter 转换为普通 LoRA adapter。 FALSE
–create_new_adapter 是否创建新的随机初始化 adapter。 FALSE
–pref_beta DPO 偏好损失中的 beta 参数。 0.1
–pref_ftx DPO 训练中的监督微调损失系数。 0
–pref_loss DPO 损失类型,可选:sigmoid、hinge、ipo、kto_pair、orpo、simpo。 sigmoid
–dpo_label_smoothing cDPO 中的稳健标签平滑参数,范围 0~0.5。 0
–kto_chosen_weight KTO 训练中期望损失的权重系数。 1
–kto_rejected_weight KTO 训练中非期望损失的权重系数。 1
–simpo_gamma SimPO 损失中的目标奖励边际项。 0.5
–ppo_buffer_size PPO 优化步骤中经验缓冲区的小批次数量。 1
–ppo_epochs PPO 优化步骤的训练轮数。 4
–ppo_score_norm 是否在 PPO 训练中使用分数归一化。 FALSE
–ppo_target PPO 训练中自适应 KL 控制的目标 KL 值。 6
–ppo_whiten_rewards 是否在 PPO 训练中对奖励进行白化处理。 FALSE
–ref_model PPO 或 DPO 训练使用的参考模型路径。 None
–ref_model_adapters 参考模型的 adapter 路径。 None
–ref_model_quantization_bit 参考模型量化的位数。 None
–reward_model PPO 训练使用的奖励模型路径。 None
–reward_model_adapters 奖励模型的 adapter 路径。 None
–reward_model_quantization_bit 奖励模型量化的位数。 None
–reward_model_type PPO 训练中奖励模型类型,可选:lora、full、api。 lora
–ld_alpha LD-DPO 论文中的 alpha 参数,用于控制响应中冗余 token 的权重。 None
–use_galore 是否使用梯度低秩投影 GaLore。 FALSE
–galore_target 应用 GaLore 的模块名称,多个用逗号分隔,all 表示所有线性模块。 all
–galore_rank GaLore 梯度的秩。 16
–galore-update-interval 更新 GaLore 投影的步数间隔。 200
–galore-scale GaLore 缩放系数。 2
–galore-proj-type GaLore 投影类型,可选:std、reverse_std、right、left、full。 std
–galore-layerwise 是否启用分层更新以节省内存。 FALSE
–use-apollo 是否使用 APOLLO 优化器。 FALSE
–apollo-target 应用 APOLLO 的模块名称,多个用逗号分隔,all 表示所有线性模块。 all
–apollo-rank APOLLO 梯度的秩。 16
–apollo-update-interval 更新 APOLLO 投影的步数间隔。 200
–apollo-scale APOLLO 缩放系数。 32
–apollo-proj APOLLO 低秩投影算法类型,可选:svd、random。 random
–apollo-proj-type APOLLO 投影类型,可选:std、right、left。 std
–apollo-scale-type APOLLO 缩放类型,可选:channel、tensor。 channel
–apollo-layerwise 是否启用分层更新以节省内存。 FALSE
–apollo-scale-front 是否在梯度缩放前使用范数增长限制器。 FALSE
–use-badam 是否使用 BAdam 优化器。 FALSE
–badam-mode BAdam 使用层级或比例方式,可选:layer、ratio。 layer
–badam-start-block 层级 BAdam 的起始块索引。 None
–badam-switch-mode 层级 BAdam 的块更新策略,可选:ascending、descending、random、fixed。 ascending
–badam-switch-interval 更新层级 BAdam 块的步数,-1 表示禁用。 50
–badam-update-ratio 比例 BAdam 的更新比例。 0.05
–badam-mask-mode BAdam 掩码模式,可选:adjacent、scatter。 adjacent
–badam-verbose BAdam 输出级别,0:无输出,1:打印块前缀,2:打印可训练参数。 0
–use-swanlab 是否使用 SwanLab(实验追踪与可视化工具)。 FALSE
–swanlab-project SwanLab 项目名称。 llamafactory
–swanlab-workspace SwanLab 工作空间名称。 None
–swanlab-run-name SwanLab 实验名称。 None
–swanlab-mode SwanLab 模式,可选:cloud、local。 cloud
–swanlab-api-key SwanLab API key。 None
–swanlab-logdir SwanLab 日志目录。 None
–swanlab-lark-webhook-url SwanLab 飞书 webhook URL。 None
–swanlab-lark-secret SwanLab 飞书 secret。 None
–pure-bf16 是否以纯 bf16 精度训练(不使用 AMP)。 FALSE
–stage 训练阶段,可选:pt、sft、rm、ppo、dpo、kto。 sft
–finetuning-type 微调方式,可选:lora、freeze、full。 lora
–use-llama-pro 是否只训练扩展块内的参数。 FALSE
–use-adam-mini 是否使用 Adam-mini 优化器。 FALSE
–use-muon 是否使用 Muon 优化器。 FALSE
–freeze-vision-tower 是否冻结 MLLM 训练中的视觉塔。 TRUE
–no-freeze-vision-tower 是否不冻结视觉塔。 FALSE
–freeze-multi-modal-projector 是否冻结 MLLM 训练中的多模态投影器。 TRUE
–no-freeze-multi-modal-projector 是否不冻结多模态投影器。 FALSE
–freeze-language-model 是否冻结语言模型。 FALSE
–compute-accuracy 是否计算评估时的 token 级准确率。 FALSE
–disable-shuffling 是否禁用训练集的随机打乱。 FALSE
–early-stopping-steps 如果 metric_for_best_model 未提升,提前停止训练的步数。 None
–plot-loss 是否保存训练损失曲线。 FALSE
–include-effective-tokens-per-second 是否计算有效 token/s。 FALSE
–do-sample 是否使用采样生成,否则使用贪心解码。 TRUE
–no-do-sample 是否不使用采样生成,否则使用贪心解码。 FALSE
–temperature 调节下一个 token 概率的温度值。 0.95
–top-p 保留概率总和达到 top_p 的最小 token 集。 0.7
–top-k top-k 过滤保留的最高概率 token 数量。 50
–num-beams Beam search 的 beam 数量,1 表示不使用 beam search。 1
–max-length 生成 token 的最大长度,可被 max_new_tokens 覆盖。 1024
–max-new-tokens 生成的最大 token 数量(忽略 prompt token)。 1024
–repetition-penalty 重复惩罚系数,1.0 表示无惩罚。 1
–length-penalty Beam search 中的长度指数惩罚。 1
–skip-special-tokens 解码时是否移除特殊 token。 TRUE
–no-skip-special-tokens 解码时是否不移除特殊 token。 FALSE

2.3 eval支持的参数

eval命令支持的参数如下:

命令 描述 默认值
–task 评估任务名称 None
–task_dir 评估数据集所在文件夹路径 evaluation
–batch_size 每个 GPU 的评估批量大小 4
–seed 数据加载器使用的随机种子 42
–lang 评估使用的语言 en
–n_shot Few-shot 学习中示例的数量 5
–save_dir 评估结果保存路径 None
–download_mode 评估数据集下载模式,可选 reuse_dataset_if_exists, reuse_cache_if_exists, force_redownload DownloadMode.REUSE_DATASET_IF_EXISTS
–freeze_trainable_layers 冻结微调时可训练层数。正数表示最后 n 层可训练,负数表示前 n 层可训练 2
–freeze_trainable_modules 冻结微调时可训练模块名称,可用逗号分隔,all 表示所有模块 all
–freeze_extra_modules 除隐藏层外额外可训练的模块名称,可逗号分隔 None
–additional_target 除 LoRA 层外,可训练并保存到最终 checkpoint 的模块名称,可逗号分隔 None
–lora_alpha LoRA 微调的缩放因子 lora_rank * 2
–lora_dropout LoRA 微调的 dropout 率 0
–lora_rank LoRA 微调的内在维度 8
–lora_target LoRA 应用的目标模块,可逗号分隔,all 表示所有线性模块 all
–loraplus_lr_ratio LoRA plus 学习率比例 (lr_B / lr_A) None
–loraplus_lr_embedding LoRA plus 学习率用于 LoRA embedding 层 1.00E-06
–use_rslora 是否使用 LoRA 层的秩稳定缩放因子 FALSE
–use_dora 是否使用权重分解 LoRA 方法 (DoRA) FALSE
–pissa_init 是否初始化 PiSSA adapter FALSE
–pissa_iter PiSSA 中 FSVD 执行的迭代步数,-1 表示禁用 16
–pissa_convert 是否将 PiSSA adapter 转换为普通 LoRA adapter FALSE
–create_new_adapter 是否创建随机初始化的新 adapter FALSE
–pref_beta 偏好损失中的 beta 参数 0.1
–pref_ftx DPO 训练中监督微调损失系数 0
–pref_loss DPO 损失类型,可选 sigmoid, hinge, ipo, kto_pair, orpo, simpo sigmoid
–dpo_label_smoothing cDPO 中的标签平滑参数 (0~0.5) 0
–kto_chosen_weight KTO 训练中期望损失的权重系数 1
–kto_rejected_weight KTO 训练中非期望损失的权重系数 1
–simpo_gamma SimPO 损失中的目标奖励边距项 0.5
–ppo_buffer_size PPO 优化步中经验缓存的 mini-batch 数 1
–ppo_epochs PPO 优化步中的训练轮数 4
–ppo_score_norm PPO 训练中是否使用得分归一化 FALSE
–ppo_target PPO 自适应 KL 控制的目标 KL 值 6
–ppo_whiten_rewards PPO 训练中是否对奖励进行白化 FALSE
–ref_model PPO 或 DPO 训练使用的参考模型路径 None
–ref_model_adapters 参考模型的 adapter 路径 None
–ref_model_quantization_bit 参考模型量化位数 None
–reward_model PPO 训练使用的奖励模型路径 None
–reward_model_adapters 奖励模型的 adapter 路径 None
–reward_model_quantization_bit 奖励模型量化位数 None
–reward_model_type 奖励模型类型,可选 lora, full, api lora
–ld_alpha LD-DPO 论文中的 alpha 参数,用于控制 verbose token log-prob 权重 None
–use_galore 是否使用梯度低秩投影 (GaLore) FALSE
–galore_target GaLore 应用的模块名称,可逗号分隔,all 表示所有线性模块 all
–galore_rank GaLore 梯度的秩 16
–galore_update_interval 更新 GaLore 投影的步数 200
–galore_scale GaLore 缩放系数 2
–galore_proj_type GaLore 投影类型,可选 std, reverse_std, right, left, full std
–galore_layerwise 是否启用按层更新以节省内存 FALSE
–use_apollo 是否使用 APOLLO 优化器 FALSE
–apollo_target APOLLO 应用的模块名称,可逗号分隔,all 表示所有线性模块 all
–apollo_rank APOLLO 梯度的秩 16
–apollo_update_interval 更新 APOLLO 投影的步数 200
–apollo_scale APOLLO 缩放系数 32
–apollo_proj APOLLO 低秩投影算法,可选 svd, random random
–apollo_proj_type APOLLO 投影类型,可选 std, right, left std
–apollo_scale_type APOLLO 缩放类型,可选 channel, tensor channel
–apollo_layerwise 是否启用按层更新以节省内存 FALSE
–apollo_scale_front 是否在梯度缩放前使用 norm-growth 限制器 FALSE
–use_badam 是否使用 BAdam 优化器 FALSE
–badam_mode BAdam 模式,可选 layer, ratio layer
–badam_start_block Layer-wise BAdam 的起始块索引 None
–badam_switch_mode Layer-wise BAdam 更新块策略,可选 ascending, descending, random, fixed ascending
–badam_switch_interval Layer-wise BAdam 更新块的步数,-1 表示禁用 50
–badam_update_ratio Ratio-wise BAdam 更新比例 0.05
–badam_mask_mode BAdam 掩码模式,可选 adjacent, scatter adjacent
–badam_verbose BAdam 优化器输出等级,0 无输出,1 输出块前缀,2 输出可训练参数 0
–use_swanlab 是否使用 SwanLab 实验追踪与可视化工具 FALSE
–swanlab_project SwanLab 项目名称 llamafactory
–swanlab_workspace SwanLab 工作区名称 None
–swanlab_run_name SwanLab 实验名称 None
–swanlab_mode SwanLab 模式,可选 cloud, local cloud
–swanlab_api_key SwanLab API key None
–swanlab_logdir SwanLab 日志目录 None
–swanlab_lark_webhook_url SwanLab 飞书 Webhook URL None
–swanlab_lark_secret SwanLab 飞书 Secret None
–pure_bf16 是否在纯 bf16 精度下训练(不使用 AMP) FALSE
–stage 训练阶段,可选 pt, sft, rm, ppo, dpo, kto sft
–finetuning_type 微调方法,可选 lora, freeze, full lora
–use_llama_pro 是否仅让扩展块参数可训练 FALSE
–use_adam_mini 是否使用 Adam-mini 优化器 FALSE
–use_muon 是否使用 Muon 优化器 FALSE
–freeze_vision_tower MLLM 训练中是否冻结视觉塔 TRUE
–no_freeze_vision_tower MLLM 训练中是否不冻结视觉塔 FALSE
–freeze_multi_modal_projector 是否冻结多模态投影器 TRUE
–no_freeze_multi_modal_projector 是否不冻结多模态投影器 FALSE
–freeze_language_model 是否冻结语言模型 FALSE
–compute_accuracy 是否在评估时计算 token 级准确率 FALSE
–disable_shuffling 是否禁用训练集的 shuffle FALSE
–early_stopping_steps 当 metric_for_best_model 不提升时,提前停止训练的步数 None
–plot_loss 是否保存训练损失曲线 FALSE
–include_effective_tokens_per_second 是否计算有效 tokens/s FALSE

2.4 train支持的参数

train支持的参数如下:

命令 描述 默认值
–output-dir OUTPUT_DIR 输出目录,用于保存模型预测结果和检查点。默认 ‘trainer_output’。 None
–overwrite-output-dir [OVERWRITE_OUTPUT_DIR] 是否覆盖输出目录内容。用于在输出目录指向检查点时继续训练。 FALSE
–do-train [DO_TRAIN] 是否执行训练。 FALSE
–do-eval [DO_EVAL] 是否在开发集上执行评估。 FALSE
–do-predict [DO_PREDICT] 是否在测试集上执行预测。 FALSE
–eval-strategy {no,steps,epoch} 评估策略。 no
–prediction-loss-only [PREDICTION_LOSS_ONLY] 仅返回损失值。 FALSE
–per-device-train-batch-size PER_DEVICE_TRAIN_BATCH_SIZE 每个设备/CPU 核心的训练批量大小。 8
–per-device-eval-batch-size PER_DEVICE_EVAL_BATCH_SIZE 每个设备/CPU 核心的评估批量大小。 8
–per-gpu-train-batch-size PER_GPU_TRAIN_BATCH_SIZE 已废弃,推荐使用 --per_device_train_batch_size。 None
–per-gpu-eval-batch-size PER_GPU_EVAL_BATCH_SIZE 已废弃,推荐使用 --per_device_eval_batch_size。 None
–gradient-accumulation-steps GRADIENT_ACCUMULATION_STEPS 在执行反向传播/更新前累积的更新步数。 1
–eval-accumulation-steps EVAL_ACCUMULATION_STEPS 在将张量移动到 CPU 前累积的预测步数。 None
–eval-delay EVAL_DELAY 等待多少 epoch 或 step 后开始第一次评估,取决于 eval_strategy。 0
–torch-empty-cache-steps TORCH_EMPTY_CACHE_STEPS 调用 torch..empty_cache() 前等待的步数,可降低显存峰值,代价约 10% 性能。 None
–learning-rate LEARNING_RATE AdamW 优化器初始学习率。 5.00E-05
–weight-decay WEIGHT_DECAY AdamW 权重衰减。 0
–adam-beta1 ADAM_BETA1 AdamW 优化器 Beta1 参数。 0.9
–adam-beta2 ADAM_BETA2 AdamW 优化器 Beta2 参数。 0.999
–adam-epsilon ADAM_EPSILON AdamW 优化器 epsilon 参数。 1.00E-08
–max-grad-norm MAX_GRAD_NORM 最大梯度范数。 1
–num-train-epochs NUM_TRAIN_EPOCHS 总训练轮数。 3
-max-steps MAX_STEPS 若大于 0,则覆盖总训练步数,覆盖 num_train_epochs。 -1
–lr-scheduler-type {…} 学习率调度器类型。 linear
–lr-scheduler-kwargs LR_SCHEDULER_KWARGS 调度器额外参数,例如 {‘num_cycles’: 1} 用于余弦重启。 {}
–warmup-ratio WARMUP_RATIO 总步数的线性预热比例。 0
–warmup-steps WARMUP_STEPS 线性预热步数。 0
–log-level {…} 主节点日志等级,可选:detail, debug, info, warning, error, critical, passive。 passive
–log-level-replica {…} 副本节点日志等级,同主节点选项。 warning
–log-on-each-node [LOG_ON_EACH_NODE] 多节点训练时,每节点是否都记录日志。 TRUE
–no-log-on-each-node 多节点训练时,仅主节点记录日志。 FALSE
–logging-dir LOGGING_DIR Tensorboard 日志目录。 None
–logging-strategy {no,steps,epoch} 日志记录策略。 steps
–logging-first-step [LOGGING_FIRST_STEP] 记录第一次 global_step。 FALSE
–logging-steps LOGGING_STEPS 每隔多少步记录一次日志。<1 表示比例。 500
–logging-nan-inf-filter [LOGGING_NAN_INF_FILTER] 过滤 NaN 和 Inf 损失。 TRUE
–no-logging-nan-inf-filter 不过滤 NaN 和 Inf 损失。 FALSE
–save-strategy {no,steps,epoch,best} 检查点保存策略。 steps
–save-steps SAVE_STEPS 每隔多少步保存检查点。<1 表示比例。 500
–save-total-limit SAVE_TOTAL_LIMIT 限制检查点总数,旧检查点将被删除。 None
–save-safetensors [SAVE_SAFETENSORS] 使用 safetensors 保存/加载 state_dict。 TRUE
–no-save-safetensors 不使用 safetensors 保存/加载。 FALSE
–save-on-each-node [SAVE_ON_EACH_NODE] 多节点训练时,每节点是否保存模型和检查点。 FALSE
–save-only-model [SAVE_ONLY_MODEL] 保存检查点时,只保存模型本身,不保存优化器、调度器和 RNG 状态。开启后无法从检查点恢复训练,只能用 from_pretrained 加载模型。 FALSE
–restore-callback-states-from-checkpoint [RESTORE_CALLBACK_STATES_FROM_CHECKPOINT] 是否从检查点恢复回调状态,如果 True,将覆盖 Trainer 中已存在的回调。 FALSE
–no-cuda [NO_CUDA] 已弃用参数,未来版本将移除。 FALSE
–use-cpu [USE_CPU] 是否使用 CPU。False 时使用可用的 Torch 设备(CUDA/MPS/XPU/HPU 等)。 FALSE
–use-mps-device [USE_MPS_DEVICE] 已弃用参数,MPS 设备会自动使用。 FALSE
–seed SEED 设置训练开始时的随机种子。 42
–data-seed DATA_SEED 数据采样器使用的随机种子。 None
–jit-mode-eval [JIT_MODE_EVAL] 是否在推理时使用 PyTorch JIT trace。 FALSE
–use-ipex [USE_IPEX] 是否使用 Intel PyTorch 扩展。 FALSE
–bf16 [BF16] 是否使用 bf16(混合精度)代替 32-bit,需要 Ampere 及以上 GPU 或 CPU/Ascend NPU。 FALSE
–fp16 [FP16] 是否使用 fp16(混合精度)代替 32-bit。 FALSE
–fp16-opt-level FP16_OPT_LEVEL fp16 的 Apex AMP 优化等级,选项:O0/O1/O2/O3。 O1
–half_precision_backend {auto,apex,cpu_amp} 半精度运算使用的后端。 auto
–bf16-full-eval [BF16_FULL_EVAL] 是否使用全 bf16 评估代替 32-bit。 FALSE
–fp16-full-eval [FP16_FULL_EVAL] 是否使用全 fp16 评估代替 32-bit。 FALSE
–tf32 TF32 是否启用 tf32 模式(仅 Ampere 及以上 GPU)。 None
–local-rank LOCAL_RANK 分布式训练的 local_rank。 -1
–ddp_backend {nccl,gloo,mpi,ccl,hccl,cncl,mccl} 分布式训练使用的后端。 None
–tpu-num-cores TPU_NUM_CORES TPU 核心数(由启动脚本自动传递)。 None
–tpu-metrics-debug [TPU_METRICS_DEBUG] 已弃用,建议使用 --debug tpu_metrics_debug。 FALSE
–debug DEBUG [DEBUG …] 是否启用调试模式,可选:underflow_overflow、tpu_metrics_debug。 None
–dataloader-drop-last [DATALOADER_DROP_LAST] 如果批次不能整除,是否丢弃最后一个不完整批次。 FALSE
–eval-steps EVAL_STEPS 每隔多少步执行一次评估,可为整数或小于 1 的比例值。 None
–dataloader-num-workers DATALOADER_NUM_WORKERS 数据加载子进程数量,0 表示在主进程加载。 0
–dataloader-prefetch-factor DATALOADER_PREFETCH_FACTOR 每个 worker 预取的批次数量。PyTorch <2.0 默认 2,否则 None。 None
–past_index PAST_INDEX, –past-index PAST_INDEX >=0 时使用输出的对应部分作为下一步的 past state。 -1
–run-name RUN_NAME 可选的训练描述,用于 wandb、mlflow 等日志记录。 None
–disable-tqdm DISABLE_TQDM 是否禁用 tqdm 进度条。 None
–remove-unused-columns [REMOVE_UNUSED_COLUMNS] 是否移除模型不需要的列(使用 nlp.Dataset 时)。 TRUE
–no-remove-unused-columns 是否不移除模型不需要的列(使用 nlp.Dataset 时)。 FALSE
–label-names LABEL_NAMES [LABEL_NAMES …] 输入字典中对应标签的 key 列表。 None
–load-best-model-at-end [LOAD_BEST_MODEL_AT_END] 是否在训练结束时加载表现最好的模型。 FALSE
–metric-for-best-model METRIC_FOR_BEST_MODEL 比较不同模型的指标名称。 None
–greater-is-better GREATER_IS_BETTER 指标是否越大越好。 None
–ignore-data-skip [IGNORE_DATA_SKIP] 恢复训练时是否跳过已训练的数据。 FALSE
–fsdp FSDP 是否使用 PyTorch Fully Sharded Data Parallel (FSDP) 分布式训练,可配置 offload 或 auto_wrap。
–fsdp-min-num-params FSDP_MIN_NUM_PARAMS FSDP 最小参数数量(已弃用)。 0
–fsdp-config FSDP_CONFIG FSDP 配置,可为 JSON 文件路径或 dict。 None
–tp-size TP_SIZE 启用张量并行,需模型支持 base_tp_plan,大于 1 激活 TP。 0
–fsdp-transformer-layer-cls-to-wrap FSDP_TRANSFORMER_LAYER_CLS_TO_WRAP 已弃用,指定 Transformer 层类名进行包裹(如 BertLayer)。 None
–accelerator-config ACCELERATOR_CONFIG 初始化 Accelerator 对象的配置,可为 JSON 文件或 dict。 None
–deepspeed DEEPSPEED 启用 DeepSpeed,并传入 JSON 配置文件或 dict。 None
–label-smoothing-factor LABEL_SMOOTHING_FACTOR 标签平滑 epsilon,0 表示不使用。 0
–optim {adamw_torch,…} 使用的优化器,可选列表非常多(如 adamw_torch、adafactor、lion_8bit 等)。 adamw_torch
–optim-args OPTIM_ARGS 优化器可选参数。 None
–adafactor [ADAFACTOR] 是否用 Adafactor 替代 AdamW。 FALSE
–group-by-length [GROUP_BY_LENGTH] 是否按样本长度分组批次。 FALSE
–length-column-name LENGTH_COLUMN_NAME 按长度分组时使用的列名。 length
–report-to REPORT_TO 日志和结果上报平台列表。 None
–ddp-find-unused-parameters DDP_FIND_UNUSED_PARAMETERS 分布式训练中 DistributedDataParallel 的 find_unused_parameters 值。 None
–ddp-bucket-cap-mb DDP_BUCKET_CAP_MB 分布式训练中 DistributedDataParallel 的 bucket_cap_mb 值。 None
–ddp-broadcast-buffers DDP_BROADCAST_BUFFERS 分布式训练中 DistributedDataParallel 的 broadcast_buffers 值。 None
–dataloader-pin-memory [DATALOADER_PIN_MEMORY] DataLoader 是否固定内存。 TRUE
–no-dataloader-pin-memory DataLoader 是否不固定内存。 FALSE
–dataloader-persistent-workers [DATALOADER_PERSISTENT_WORKERS] True 时数据加载器在数据集消耗后不关闭 worker。 FALSE
–skip-memory-metrics [SKIP_MEMORY_METRICS] 是否跳过内存指标统计。 TRUE
–no-skip-memory-metrics 是否不跳过内存指标统计。 FALSE
–use-legacy-prediction-loop [USE_LEGACY_PREDICTION_LOOP] 是否使用旧版 Trainer prediction_loop。 FALSE
–push-to-hub [PUSH_TO_HUB] 是否训练后上传模型到 Hugging Face Hub。 FALSE
–resume-from-checkpoint RESUME_FROM_CHECKPOINT 模型有效检查点路径,用于恢复训练。 None
–hub-model-id HUB_MODEL_ID 与本地 output_dir 同步的仓库名。 None
–hub-strategy {end,every_save,checkpoint,all_checkpoints} push_to_hub 启用时的策略。 every_save
–hub-token HUB_TOKEN 推送 Hub 使用的 token。 None
–hub-private-repo HUB_PRIVATE_REPO 是否将仓库设为私有。 None
–hub-always-push [HUB_ALWAYS_PUSH] 是否总是推送,即使上一次推送未完成。 FALSE
–gradient-checkpointing [GRADIENT_CHECKPOINTING] 是否使用梯度检查点以节省内存,代价是反向速度变慢。 FALSE
–gradient-checkpointing-kwargs GRADIENT_CHECKPOINTING_KWARGS 传给 torch.utils.checkpoint.checkpoint 的关键字参数。 None
–include-inputs-for-metrics [INCLUDE_INPUTS_FOR_METRICS] 已弃用,建议使用 include_for_metrics。 FALSE
–include-for-metrics INCLUDE_FOR_METRICS [INCLUDE_FOR_METRICS …] compute_metrics 中包含额外数据选项,如 ‘inputs’、‘loss’。 []
–eval-do-concat-batches [EVAL_DO_CONCAT_BATCHES] 是否在评估时递归拼接批次数据。 TRUE
–no-eval-do-concat-batches 是否不拼接批次数据。 FALSE
–fp16_backend {auto,apex,cpu_amp} 已弃用,使用 half_precision_backend 替代。 auto
–push-to-hub-model-id PUSH_TO_HUB_MODEL_ID Trainer 推送仓库名称。 None
–push-to-hub-organization PUSH_TO_HUB_ORGANIZATION 推送仓库所属组织名。 None
–push-to-hub-token PUSH_TO_HUB_TOKEN 推送 Hub 使用的 token。 None
–mp-parameters MP_PARAMETERS SageMaker 特定参数,Trainer 忽略。
–auto-find-batch-size [AUTO_FIND_BATCH_SIZE] CUDA OOM 时自动减半批次重跑训练循环。 FALSE
–full-determinism [FULL_DETERMINISM] 分布式训练时启用完全确定性,会降低性能,仅用于调试。 FALSE
–torchdynamo TORCHDYNAMO 已弃用,使用 --torch_compile_backend 替代。 None
–ray-scope RAY_SCOPE Ray 超参数搜索范围,默认 last。 last
–ddp-timeout DDP_TIMEOUT 覆盖分布式训练超时时间(秒)。 1800
–torch-compile [TORCH_COMPILE] 是否用 torch.compile 包装模型。 FALSE
–torch-compile-backend TORCH_COMPILE_BACKEND torch.compile 使用的后端,传入后触发编译。 None
–torch-compile-mode TORCH_COMPILE_MODE torch.compile 使用的模式,传入后触发编译。 None
–include-tokens-per-second [INCLUDE_TOKENS_PER_SECOND] 是否在速度指标中包含 tps(每设备每秒 token 数)。 FALSE
–include-num-input-tokens-seen [INCLUDE_NUM_INPUT_TOKENS_SEEN] 是否统计训练中看到的输入 token 数。 FALSE
–neftune-noise-alpha NEFTUNE_NOISE_ALPHA 启用 NEFTune 噪声嵌入,用于 instruction fine-tuning,仅支持 PreTrainedModel 与 PeftModel。 None
–optim-target-modules OPTIM_TARGET_MODULES 优化器目标模块,仅 GaLore 优化器使用。 None
–batch-eval-metrics [BATCH_EVAL_METRICS] 分批计算评估指标以节省内存。 FALSE
–eval-on-start [EVAL_ON_START] 是否在训练开始前先完整运行一次评估步骤,用作 sanity check。 FALSE
–use-liger-kernel [USE_LIGER_KERNEL] 是否启用 Liger Kernel 来加速模型训练。 FALSE
–eval-use-gather-object [EVAL_USE_GATHER_OBJECT] 是否在评估时递归收集来自所有设备的对象,用于 nested list/tuple/dict。 FALSE
–average-tokens-across-devices [AVERAGE_TOKENS_ACROSS_DEVICES] 是否在多设备训练中对 token 数量取平均,用于精确计算 loss。 FALSE
–sortish-sampler [SORTISH_SAMPLER] 是否使用 SortishSampler 进行数据采样。 FALSE
–predict-with-generate [PREDICT_WITH_GENERATE] 是否使用 generate 方法计算生成类指标(如 ROUGE、BLEU)。 FALSE
–generation-max-length GENERATION_MAX_LENGTH 当 predict_with_generate=True 时,评估循环中使用的最大生成长度。 None
–generation-num-beams GENERATION_NUM_BEAMS 当 predict_with_generate=True 时使用的 beam 数量。 None
–generation-config GENERATION_CONFIG 指向 GenerationConfig JSON 文件的路径、URL 或模型 ID,用于预测。 None
–ray-run-name RAY_RUN_NAME Ray 训练结果保存目录名 <ray_storage_path>/ray_run_name。 None
–ray-storage-path RAY_STORAGE_PATH Ray 训练结果存储路径。 ./saves
–ray-storage-filesystem {s3,gs,gcs} Ray 训练使用的存储文件系统,未指定则使用本地文件系统。 None
–ray-num-workers RAY_NUM_WORKERS Ray 训练使用的 worker 数量。 1
–resources-per-worker RESOURCES_PER_WORKER 每个 Ray worker 分配的资源。 {‘GPU’: 1}
–placement-strategy {SPREAD,PACK,STRICT_SPREAD,STRICT_PACK} Ray 训练的资源调度策略。 PACK
–ray-init-kwargs RAY_INIT_KWARGS 传递给 ray.init 的参数。 None
–freeze-trainable-layers FREEZE_TRAINABLE_LAYERS 冻结微调时可训练的层数。正数表示最后 n 层可训练,负数表示前 n 层可训练。 2
–freeze-trainable-modules FREEZE_TRAINABLE_MODULES 冻结微调时可训练的模块名称,可用逗号分隔多个模块,使用 all 表示所有模块。 all
–freeze-extra-modules FREEZE_EXTRA_MODULES 除隐藏层外额外设置为可训练的模块名称,可用逗号分隔。 None
–additional-target ADDITIONAL_TARGET 除 LoRA 层外要设置为可训练并保存到最终 checkpoint 的模块名称,可用逗号分隔。 None
–lora-alpha LORA_ALPHA LoRA 微调的缩放系数,默认值为 lora_rank * 2。 None
–lora-dropout LORA_DROPOUT LoRA 微调的 dropout 比例。 0
–lora-rank LORA_RANK LoRA 微调的内在维度。 8
–lora-target LORA_TARGET 要应用 LoRA 的目标模块名称,可用逗号分隔,all 表示所有线性模块。 all
–loraplus-lr-ratio LORAPLUS_LR_RATIO LoRA plus 学习率比例(lr_B / lr_A)。 None
–loraplus-lr-embedding LORAPLUS_LR_EMBEDDING LoRA plus embedding 层学习率。 1.00E-06
–use-rslora [USE_RSLORA] 是否使用 rank stabilization 缩放因子。 FALSE
–use-dora [USE_DORA] 是否使用权重分解 LoRA 方法(DoRA)。 FALSE
–pissa-init [PISSA_INIT] 是否初始化 PiSSA adapter。 FALSE
–pissa-iter PISSA_ITER PiSSA FSVD 执行的迭代步数,-1 表示禁用。 16
–pissa-convert [PISSA_CONVERT] 是否将 PiSSA adapter 转换为普通 LoRA adapter。 FALSE
–create-new-adapter [CREATE_NEW_ADAPTER] 是否创建带随机初始化权重的新 adapter。 FALSE
–pref-beta PREF_BETA Preference loss 的 beta 参数。 0.1
–pref-ftx PREF_FTX DPO 训练中监督微调损失系数。 0
–pref-loss {sigmoid,hinge,ipo,kto_pair,orpo,simpo} DPO 损失类型。 sigmoid
–dpo-label-smoothing DPO_LABEL_SMOOTHING cDPO 中的鲁棒标签平滑参数,范围 0~0.5。 0
–kto-chosen-weight KTO_CHOSEN_WEIGHT KTO 训练中理想样本损失的权重。 1
–kto-rejected-weight KTO_REJECTED_WEIGHT KTO 训练中不理想样本损失的权重。 1
–simpo-gamma SIMPO_GAMMA SimPO 损失的目标 reward margin。 0.5
–ppo-buffer-size PPO_BUFFER_SIZE PPO 优化步骤中 mini-batch 的经验缓冲数量。 1
–ppo-epochs PPO_EPOCHS PPO 优化步骤的 epoch 数量。 4
–ppo-score-norm [PPO_SCORE_NORM] 是否在 PPO 训练中使用 score normalization。 FALSE
–ppo-target PPO_TARGET PPO 自适应 KL 控制的目标 KL 值。 6
–ppo-whiten-rewards [PPO_WHITEN_REWARDS] 是否在 PPO 训练中对 reward 做 whitening。 FALSE
–ref-model REF_MODEL PPO 或 DPO 训练中使用的参考模型路径。 None
–ref-model-adapters REF_MODEL_ADAPTERS 参考模型的 adapter 路径。 None
–ref-model-quantization-bit REF_MODEL_QUANTIZATION_BIT 参考模型量化的 bit 数。 None
–reward-model REWARD_MODEL PPO 训练中使用的 reward model 路径。 None
–reward-model-adapters REWARD_MODEL_ADAPTERS Reward model 的 adapter 路径。 None
–reward-model-quantization-bit REWARD_MODEL_QUANTIZATION_BIT Reward model 的量化 bit 数。 None
–reward-model-type {lora,full,api} PPO 训练中 reward model 的类型,LoRA 模型仅支持 LoRA 训练。 lora
–ld-alpha LD_ALPHA LD-DPO 论文中的 alpha 参数,控制响应中 verbose token log-probabilities 的权重。 None
–use-galore [USE_GALORE] 是否使用梯度低秩投影(GaLore)。 FALSE
–galore-target GALORE_TARGET 应用 GaLore 的模块名称,可用逗号分隔,all 表示所有线性模块。 all
–galore-rank GALORE_RANK GaLore 梯度的秩。 16
–galore-update-interval GALORE_UPDATE_INTERVAL 更新 GaLore 投影的步数间隔。 200
–galore-scale GALORE_SCALE GaLore 缩放系数。 2
–galore-proj-type {std,reverse_std,right,left,full} GaLore 投影类型。 std
–galore-layerwise [GALORE_LAYERWISE] 是否启用按层更新以节省内存。 FALSE
–use-apollo [USE_APOLLO] 是否使用 APOLLO 优化器。 FALSE
–apollo-target APOLLO_TARGET 应用 APOLLO 的模块名称,可用逗号分隔,all 表示所有线性模块。 all
–apollo-rank APOLLO_RANK APOLLO 梯度的秩。 16
–apollo-update-interval APOLLO_UPDATE_INTERVAL 更新 APOLLO 投影的步数间隔。 200
–apollo-scale APOLLO_SCALE APOLLO 缩放系数。 32
–apollo-proj {svd,random} APOLLO 低秩投影算法类型(svd 或 random)。 random
–apollo-proj-type {std,right,left} APOLLO 投影类型。 std
–apollo-scale-type {channel,tensor} APOLLO 缩放类型(按 channel 或 tensor)。 channel
–apollo-layerwise [APOLLO_LAYERWISE] 是否启用按层更新以节省内存。 FALSE
–apollo-scale-front [APOLLO_SCALE_FRONT] 是否在梯度缩放前使用 norm-growth 限制器。 FALSE
–use-badam [USE_BADAM] 是否使用 BAdam 优化器。 FALSE
–badam-mode {layer,ratio} 使用按层或按比例的 BAdam 优化策略。 layer
–badam-start-block BADAM_START_BLOCK 按层 BAdam 的起始 block 索引。 None
–badam-switch-mode {ascending,descending,random,fixed} 按层 BAdam 更新 block 的策略。 ascending
–badam-switch-interval BADAM_SWITCH_INTERVAL 按层 BAdam 更新 block 的步数间隔,-1 表示禁用。 50
–badam-update-ratio BADAM_UPDATE_RATIO 按比例 BAdam 的更新比例。 0.05
–badam-mask-mode {adjacent,scatter} BAdam 掩码模式,adjacent 表示可训练参数相邻,scatter 表示随机选择。 adjacent
–badam-verbose BADAM_VERBOSE BAdam 优化器的输出等级,0=不打印,1=打印 block 前缀,2=打印可训练参数。 0
–use-swanlab [USE_SWANLAB] 是否使用 SwanLab 实验追踪与可视化工具。 FALSE
–swanlab-project SWANLAB_PROJECT SwanLab 项目名称。 llamafactory
–swanlab-workspace SWANLAB_WORKSPACE SwanLab workspace 名称。 None
–swanlab-run-name SWANLAB_RUN_NAME SwanLab 实验名称。 None
–swanlab-mode {cloud,local} SwanLab 模式。 cloud
–swanlab-api-key SWANLAB_API_KEY SwanLab API key。 None
–swanlab-logdir SWANLAB_LOGDIR SwanLab 日志目录。 None
–swanlab-lark-webhook-url SWANLAB_LARK_WEBHOOK_URL SwanLab 飞书 Webhook URL。 None
–swanlab-lark-secret SWANLAB_LARK_SECRET SwanLab 飞书 secret。 None
–pure-bf16 [PURE_BF16] 是否使用纯 bf16 精度训练(不使用 AMP)。 FALSE
–stage {pt,sft,rm,ppo,dpo,kto} 训练阶段选择。 sft
–finetuning-type {lora,freeze,full} 微调方式选择。 lora
–use-llama-pro [USE_LLAMA_PRO] 是否仅训练扩展 block 的参数。 FALSE
–use-adam-mini [USE_ADAM_MINI] 是否使用 Adam-mini 优化器。 FALSE
–use-muon [USE_MUON] 是否使用 Muon 优化器。 FALSE
–freeze-vision-tower [FREEZE_VISION_TOWER] 是否冻结 MLLM 训练中的 vision tower。 TRUE
–no-freeze-vision-tower 取消冻结 vision tower。 FALSE
–freeze-multi-modal-projector [FREEZE_MULTI_MODAL_PROJECTOR] 是否冻结 MLLM 的 multi-modal projector。 TRUE
–no-freeze-multi-modal-projector 取消冻结 multi-modal projector。 FALSE
–freeze-language-model [FREEZE_LANGUAGE_MODEL] 是否冻结 MLLM 的语言模型。 FALSE
–compute-accuracy [COMPUTE_ACCURACY] 是否在评估时计算 token 级准确率。 FALSE
–disable-shuffling [DISABLE_SHUFFLING] 是否禁用训练集打乱。 FALSE
–early-stopping-steps EARLY_STOPPING_STEPS metric_for_best_model 不再提升时停止训练的步数。 None
–plot-loss [PLOT_LOSS] 是否保存训练 loss 曲线。 FALSE
–include-effective-tokens-per-second [INCLUDE_EFFECTIVE_TOKENS_PER_SECOND] 是否计算每秒有效 token 数。 FALSE
–do-sample [DO_SAMPLE] 是否使用采样,否则使用贪心解码。 TRUE
–no-do-sample 禁用采样,使用贪心解码。 FALSE
–temperature TEMPERATURE 调节下一个 token 概率的温度值。 0.95
–top-p TOP_P top-p 采样保留概率和至少为 top_p 的 token 集。 0.7
–top-k TOP_K top-k 采样保留概率最高的 token 数量。 50
–num-beams NUM_BEAMS Beam search 的 beam 数量,1 表示不使用 beam search。 1
–max-length MAX_LENGTH 生成 token 的最大长度,可被 max_new_tokens 覆盖。 1024
–max-new-tokens MAX_NEW_TOKENS 生成的最大 token 数,忽略 prompt 中的 token 数。 1024
–repetition-penalty REPETITION_PENALTY 重复惩罚参数,1.0 表示无惩罚。 1
–length-penalty LENGTH_PENALTY Beam search 中用于长度的指数惩罚。 1
–skip-special-tokens [SKIP_SPECIAL_TOKENS] 是否在解码时去除特殊 token。 TRUE
–no-skip-special-tokens 保留特殊 token,不去除。 FALSE

3. 分类记忆

LLaMA-Factory 支持的参数 非常庞杂,这里做一个系统性的 分类汇总,方便查阅和理解。整体可以分成 模型相关、推理相关、数据处理、训练配置、微调方法、RLHF/偏好优化、优化器/梯度方法、多模态支持、导出/部署、日志监控 等几大类:

3.1 模型与权重加载

基础模型/Adapter

  • --model_name_or_path 模型权重路径或 Hub 名称
  • --adapter_name_or_path Adapter 路径(可多个)
  • --adapter_folder Adapter 存放目录
  • --model_revision 模型版本 (branch/tag/commit)
  • --cache_dir 模型缓存目录
  • --hf_hub_token / --ms_hub_token / --om_hub_token Hub Token
  • --trust_remote_code 是否信任 Hub 代码

模型结构与优化

  • --resize_vocab 调整 tokenizer vocab
  • --split_special_tokens 特殊 token 拆分
  • --add_tokens / --add_special_tokens 添加新 token
  • --rope_scaling RoPE 缩放策略
  • --flash_attn / --shift_attn 注意力优化
  • --mixture_of_depths MoD 转换/加载
  • --use_unsloth / --use_unsloth_gc Unsloth 优化
  • --enable_liger_kernel Liger kernel
  • --moe_aux_loss_coef MoE 损失系数
  • --disable_gradient_checkpointing / --use_reentrant_gc 梯度检查点控制
  • --upcast_layernorm / --upcast_lmhead_output 精度提升
  • --train_from_scratch 随机初始化训练

3.2 推理/执行相关

推理引擎

  • --infer_backend (huggingface / vllm / sglang)
  • --vllm_maxlen / --vllm_gpu_util / --vllm_config
  • --sglang_maxlen / --sglang_tp_size / --sglang_config

推理性能

  • --use_cache / --no_use_cache KV Cache
  • --infer_dtype 推理精度 (fp16/bf16/float32/auto)
  • --offload_folder 卸载权重目录

解码/生成

  • --do_sample / --no_do_sample 采样或贪心
  • --temperature / --top-p / --top-k 控制采样
  • --num-beams Beam search
  • --max-length / --max-new-tokens 生成长度
  • --repetition-penalty / --length-penalty 惩罚项
  • --skip_special_tokens / --no_skip_special_tokens 解码处理

3.3 量化与精度控制

在线量化

  • --quantization_method (bnb/gptq/awq/…)
  • --quantization_bit / --quantization_type
  • --double_quantization / --no_double_quantization
  • --quantization_device_map

导出时量化

  • --export_quantization_bit / --export_quantization_dataset
  • --export_quantization_nsamples / --export_quantization_maxlen

混合精度/精度控制

  • --bf16 / --fp16 / --pure_bf16
  • --fp16-opt-level / --half_precision_backend
  • --bf16-full-eval / --fp16-full-eval
  • --tf32

3.4 数据处理与训练输入

数据集

  • --dataset / --eval_dataset
  • --dataset_dir / --media_dir
  • --cutoff_len
  • --train_on_prompt / --mask_history
  • --streaming / --buffer_size
  • --mix_strategy / --interleave_probs
  • --overwrite_cache

预处理

  • --preprocessing_batch_size / --preprocessing_num_workers
  • --max_samples 限制样本数
  • --tokenized_path 保存 tokenized 数据
  • --data_shared_file_system 是否用共享 FS

3.5 训练配置

核心控制

  • --stage (pt/sft/rm/ppo/dpo/kto)
  • --finetuning_type (lora/freeze/full)
  • --output-dir / --overwrite-output-dir
  • --do-train / --do-eval / --do-predict

批次与步数

  • --per-device-train-batch-size / --per-device-eval-batch-size
  • --gradient-accumulation-steps
  • --max-steps / --num-train-epochs

优化器

  • --learning-rate / --weight-decay
  • --adam-beta1 / --adam-beta2 / --adam-epsilon
  • --max-grad-norm
  • --lr-scheduler-type / --warmup-ratio / --warmup-steps

分布式

  • --local-rank / --ddp_backend
  • --tpu-num-cores

3.6 微调/Adapter 方法

LoRA 系列

  • --lora_alpha / --lora_dropout / --lora_rank
  • --lora_target / --loraplus_lr_ratio
  • --loraplus_lr_embedding
  • --use_rslora / --use_dora

PiSSA

  • --pissa_init / --pissa_iter / --pissa_convert

冻结层

  • --freeze_trainable_layers / --freeze_trainable_modules
  • --freeze_extra_modules / --additional_target

其他

  • --create_new_adapter
  • --use_llama_pro

3.7 RLHF 与偏好优化

DPO/KTO/SimPO

  • --pref_beta / --pref_loss / --dpo_label_smoothing
  • --kto_chosen_weight / --kto_rejected_weight
  • --simpo_gamma

PPO

  • --ppo_buffer_size / --ppo_epochs
  • --ppo_score_norm / --ppo_target
  • --ppo_whiten_rewards

参考/奖励模型

  • --ref_model / --ref_model_adapters / --ref_model_quantization_bit
  • --reward_model / --reward_model_adapters / --reward_model_quantization_bit
  • --reward_model_type

扩展

  • --ld_alpha

3.8 优化器改进 & 低秩方法

GaLore

  • --use_galore / --galore_target
  • --galore_rank / --galore_update_interval
  • --galore_proj_type / --galore_layerwise

APOLLO

  • --use_apollo / --apollo_target
  • --apollo_rank / --apollo_scale / --apollo_proj
  • --apollo_proj_type / --apollo_scale_type
  • --apollo_layerwise / --apollo_scale_front

BAdam

  • --use_badam / --badam_mode
  • --badam_start_block / --badam_switch_mode
  • --badam_switch_interval / --badam_update_ratio
  • --badam_mask_mode / --badam_verbose

其他优化器

  • --use_adam_mini / --use_muon

3.9 多模态支持

图像

  • --image_max_pixels / --image_min_pixels
  • --image_do_pan_and_scan
  • --crop_to_patches

视频

  • --video_max_pixels / --video_min_pixels
  • --video_fps / --video_maxlen
  • --use_audio_in_video

音频

  • --audio_sampling_rate

冻结多模态结构

  • --freeze_vision_tower / --no_freeze_vision_tower
  • --freeze_multi_modal_projector / --no_freeze_multi_modal_projector
  • --freeze_language_model

3.10 导出与部署

  • --export_dir / --export_size / --export_device
  • --export_legacy_format (bin 而非 safetensors)
  • --export_hub_model_id

3.11 日志与实验监控

日志

  • --log-level / --log-level-replica
  • --logging-dir / --logging-strategy / --logging-steps
  • --logging-nan-inf-filter

保存与恢复

  • --save-strategy / --save-steps / --save-total-limit
  • --save-safetensors / --save-only-model
  • --restore-callback-states-from-checkpoint

监控工具

  • --use_swanlab
  • --swanlab_project / --swanlab_workspace / --swanlab_run_name
  • --swanlab_mode / --swanlab_api_key
  • --swanlab_logdir / --swanlab_lark_webhook_url / --swanlab_lark_secret
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐