LLaMA-Factory 快速入门(四):命令参数汇总(train、chat、eval、export等)
详解LLaMa-Factory 终端命令参数,例如:API服务、聊天交互、模型评估、模型导出和训练等功能参数。
·
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
更多推荐
所有评论(0)