LLaMA-Factory框架之参数详解
-
15.1 微调参数
-
15.1.1 基本参数
参数名称 类型 介绍 默认值 pure_bf16 bool 是否以纯 bf16 精度训练模型(不使用 AMP)。 False stage Literal[“pt”, “sft”, “rm”, “ppo”, “dpo”, “kto”] 训练阶段 sft finetuning_type Literal[“lora”, “freeze”, “full”] 微调方法 lora use_llama_pro bool 是否仅训练扩展块中的参数(LLaMA Pro 模式)。 False use_adam_mini bool 是否使用 Adam-mini 优化器。 False freeze_vision_tower bool MLLM 训练时是否冻结视觉塔。 True freeze_multi_modal_projector bool MLLM 训练时是否冻结多模态投影器。 True train_mm_proj_only bool 是否仅训练多模态投影器。 False compute_accuracy bool 是否在评估时计算 token 级别的准确率。 False disable_shuffling bool 是否禁用训练集的随机打乱。 False plot_loss bool 是否保存训练过程中的损失曲线。 False include_effective_tokens_per_second bool 是否计算有效的每秒 token 数。 False -
15.1.2 LoRA
参数名称 类型 介绍 默认值 additional_target Optional[str] 除 LoRA 层之外设置为可训练并保存在最终检查点中的模块名称,用逗号分隔多个模块。 None lora_alpha Optional[int] LoRA 缩放系数,一般为 lora_rank * 2。 None lora_dropout float LoRA 微调中的 dropout 率。 0 lora_rank int LoRA 微调的本征维数 r,r 越大可训练的参数越多。 8 lora_target str 应用 LoRA 的模块名称,all 表示所有模块。 all loraplus_lr_ratio Optional[float] LoRA+ 学习率比例 λ = ηB/ηA。 None loraplus_lr_embedding Optional[float] LoRA+ 嵌入层的学习率。 1e-6 use_rslora bool 是否使用秩稳定 LoRA (Rank-Stabilized LoRA)。 False use_dora bool 是否使用权重分解 LoRA(Weight‑Decomposed LoRA)。 False pissa_init bool 是否初始化 PiSSA 适配器。 False pissa_iter Optional[int] PiSSA 中 FSVD 执行的迭代步数,-1 禁用。 16 pissa_convert bool 是否将 PiSSA 适配器转换为正常的 LoRA 适配器。 False create_new_adapter bool 是否创建一个具有随机初始化权重的新适配器。 False -
15.1.3 RLHF
参数名称 类型 介绍 默认值 pref_beta float 偏好损失中的 beta 参数。 0.1 pref_ftx float DPO 训练中的 sft loss 系数。 0.0 pref_loss Literal[“sigmoid”, “hinge”, “ipo”, “kto_pair”, “orpo”, “simpo”] DPO 中使用的偏好损失类型。 sigmoid dpo_label_smoothing float 标签平滑系数,范围 [0,0.5]。 0.0 kto_chosen_weight float KTO 训练中 chosen 标签 loss 权重。 1.0 kto_rejected_weight float KTO 训练中 rejected 标签 loss 权重。 1.0 simpo_gamma float SimPO 损失中的 reward margin。 0.5 ppo_buffer_size int PPO 训练中的 mini‑batch 大小。 1 ppo_epochs int PPO 训练迭代次数。 4 ppo_score_norm bool 是否在 PPO 训练中使用归一化分数。 False ppo_target float 自适应 KL 控制的目标 KL 值。 6.0 ppo_whiten_rewards bool PPO 训练中是否对白化奖励。 False ref_model Optional[str] PPO/DPO 训练中使用的参考模型路径。 — ref_model_adapters Optional[str] 参考模型的适配器路径。 None ref_model_quantization_bit Optional[int> 参考模型的量化位数,支持 4 位或 8 位。 None reward_model Optional[str] PPO 训练中使用的奖励模型路径。 None reward_model_adapters Optional[str> 奖励模型的适配器路径。 None reward_model_quantization_bit Optional[int> 奖励模型的量化位数。 None reward_model_type Literal[“lora”, “full”, “api”] PPO 中使用的奖励模型类型。 lora -
15.1.4 Freeze
参数名称 类型 介绍 默认值 freeze_trainable_layers int 可训练层的数量;正数表示最后 n 层可训练,负数表示前 n 层可训练。 2 freeze_trainable_modules str 可训练模块名称,all 表示所有模块。 all freeze_extra_modules Optional[str] 隐藏层外额外可训练模块,用逗号分隔。 None -
15.1.5 Appolo
参数名称 类型 介绍 默认值 use_apollo bool 是否使用 APOLLO 优化器。 False apollo_target str 适用 APOLLO 的模块名,all 表示所有线性模块。 all apollo_rank int APOLLO 梯度的秩。 16 apollo_update_interval int 更新投影的步数间隔。 200 apollo_scale float APOLLO 缩放系数。 32.0 apollo_proj Literal[“svd”, “random”] 低秩投影算法类型。 random apollo_proj_type Literal[“std”, “right”, “left”] 投影类型。 std apollo_scale_type Literal[“channel”, “tensor”] 缩放类型。 channel apollo_layerwise bool 是否启用层级更新节省内存。 False apollo_scale_front bool 是否在缩放前使用范数增长限制器。 False -
15.1.6 BAdam
参数名称 类型 介绍 默认值 use_badam bool 是否使用 BAdam 优化器。 False badam_mode Literal[“layer”, “ratio”] BAdam 使用模式。 layer badam_start_block Optional[int] layer‑wise BAdam 起始块索引。 None badam_switch_mode Optional[Literal] 块更新策略:ascending, descending, random, fixed。 ascending badam_switch_interval Optional[int] 块更新步数间隔,-1 禁用。 50 badam_update_ratio float ratio‑wise BAdam 更新比例。 0.05 badam_mask_mode Literal[“adjacent”, “scatter”] 掩码模式。 adjacent badam_verbose int 详细输出级别:0 无,1 输出块前缀,2 输出可训练参数。 0 -
15.1.7 GaLore
参数名称 类型 介绍 默认值 se_galore bool 是否使用 GaLore 算法。 False galore_target str 应用模块名,all 表示所有线性模块。 all galore_rank int GaLore 梯度的秩。 16 galore_update_interval int 更新投影的步数间隔。 200 galore_scale float 缩放系数。 0.25 galore_proj_type Literal[“std”, “reverse_std”, “right”, “left”, “full”] 投影类型。 std galore_layerwise bool 是否启用逐层更新节省内存。 False
-
-
15.2 数据参数
参数名称 类型 介绍 默认值 template Optional[str] 构造 prompt 的模板。 None dataset Optional[str] 用于训练的数据集名称,逗号分隔多数据集。 None eval_dataset Optional[str] 用于评估的数据集名称,逗号分隔多数据集。 None eval_on_each_dataset Optional[bool] 是否分开计算各评估数据集的 loss。 — dataset_dir str 存储数据集的文件夹路径。 “data” media_dir Optional[str] 存储多媒体文件的路径。 None cutoff_len int 最大输入 token 数,超过截断。 2048 train_on_prompt bool 是否在输入 prompt 上训练。 False mask_history bool 是否仅使用当前对话轮次训练。 False streaming bool 是否启用数据流模式。 False buffer_size int 流模式下用于随机抽样的 buffer 大小。 16384 mix_strategy Literal[“concat”, “interleave_under”, “interleave_over”] 数据混合策略。 concat nterleave_probs Optional[str] interleave 策略采样概率,逗号分隔。 None overwrite_cache bool 是否覆盖缓存数据集。 False preprocessing_batch_size int 预处理时每批示例数。 1000 preprocessing_num_workers Optional[int] 预处理时进程数。 None max_samples Optional[int] 每数据集最大样本数。 None eval_num_beams Optional[int] 评估时使用的 num_beams。 None ignore_pad_token_for_loss bool 是否忽略 pad token。 True val_size float 验证集比例 [0,1)。流模式时需整数。 0.0 packing Optional[bool] 是否启用 sequences packing。 — neat_packing bool 是否启用无 cross‑attention packing。 False tool_format Optional[str] 构造函数调用示例的格式。 None tokenized_path Optional[str] Tokenized 数据集保存/加载路径。 None -
15.3 模型参数
-
15.3.1 基本参数
参数名称 类型 介绍 默认值 model_name_or_path Optional[str] 模型路径(本地或远程)。 None adapter_name_or_path Optional[str] 适配器路径,逗号分隔多适配器。 None adapter_folder Optional[str] 包含适配器权重的文件夹。 None cache_dir Optional[str] 下载模型缓存路径。 None use_fast_tokenizer bool 是否使用 fast_tokenizer。 True resize_vocab bool 是否调整词表大小。 False split_special_tokens bool 是否分割 special token。 False new_special_tokens Optional[str] 要添加的 special token,逗号分隔。 None model_revision str 模型版本。 main low_cpu_mem_usage bool 是否节省内存加载模型。 True rope_scaling Optional[Literal[“linear”, “dynamic”, “yarn”, “llama3”]] RoPE 缩放策略。 None flash_attn Literal[“auto”, “disabled”, “sdpa”, “fa2”] 是否启用 FlashAttention。 auto shift_attn bool 是否启用 Shift Short Attention。 False mixture_of_depths Optional[Literal[“convert”, “load”]] MoD 模型转换/加载方式。 None use_unsloth bool 是否使用 unsloth 优化 LoRA。 False use_unsloth_gc bool 是否使用 unsloth 梯度检查点。 False enable_liger_kernel bool 是否启用 liger 内核加速。 False moe_aux_loss_coef Optional[float] MoE aux_loss 系数。 None disable_gradient_checkpointing bool 是否禁用梯度检查点。 False use_reentrant_gc bool 是否启用可重入梯度检查点。 True upcast_layernorm bool 是否将 layernorm 提升至 fp32。 False upcast_lmhead_output bool 是否将 lm_head 输出提升至 fp32。 False train_from_scratch bool 是否随机初始化模型。 False infer_backend Literal[“huggingface”, “vllm”] 推理后端引擎。 huggingface offload_folder str 模型卸载路径。 offload use_cache bool 是否使用 KV 缓存。 True infer_dtype Literal[“auto”, “float16”, “bfloat16”, “float32”] 推理数据类型。 auto hf_hub_token Optional[str] HuggingFace 验证 token。 None ms_hub_token Optional[str] ModelScope 验证 token。 None om_hub_token Optional[str] Modelers Hub 验证 token。 None print_param_status bool 是否打印参数状态。 False compute_dtype Optional[torch.dtype] 输出计算数据类型。 None device_map Optional[Union[str, Dict[str, Any>]] 设备映射。 None model_max_length Optional[int] 模型最大输入长度。 None block_diag_attn bool 是否使用块对角注意力。 False -
15.3.2 多模态参数
参数名称 类型 介绍 默认值 image_max_pixels int 图像输入最大像素数 768×768 image_min_pixels int 图像输入最小像素数 32×32 video_max_pixels int 视频输入最大像素数 256×256 video_min_pixels int 视频输入最小像素数 16×16 video_fps float 视频采样帧率 2.0 video_maxlen int 视频最大采样帧数 128 -
15.3.1 vLLM
参数名称 类型 介绍 默认值 vllm_maxlen int 最大序列长度 4096 vllm_gpu_util float GPU 使用比例 0.9 vllm_enforce_eager bool 是否禁用 CUDA graph False vllm_max_lora_rank int 推理允许的最大 LoRA Rank 32 vllm_config Optional[Union[dict,str>] 引擎初始化配置 None -
15.3.1 模型量化
参数名称 类型 介绍 默认值 quantization_method Literal[“bitsandbytes”, “hqq”, “eetq”] 量化算法 bitsandbytes quantization_bit Optional[int] 量化位数,如 4、8 None quantization_type Literal[“fp4”, “nf4”] 数据类型 nf4 double_quantization bool 是否使用 double quantization True quantization_device_map Optional[Literal[“auto”]> 4-bit 推理设备映射 None -
15.3.1 模型导出
参数名称 类型 介绍 默认值 export_dir Optional[str] 导出模型保存目录 None export_size int 文件分片大小(GB) 5 export_device Literal[“cpu”, “auto”] 导出时使用设备 cpu export_quantization_bit Optional[int] 导出量化位数 None export_quantization_dataset Optional[str] 量化导出使用的数据集 None export_quantization_nsamples int 量化样本数 128 export_quantization_maxlen int 最大输入长度 1024 export_legacy_format bool True 保存 .bin,False 保存 .safetensors False export_hub_model_id Optional[str] 上传至 Huggingface 的仓库名称 None
-
-
15.4 评估参数
参数名称 类型 介绍 默认值 task str 评估任务名称(mmlu_test, ceval_validation, cmmlu_test) None task_dir str 评估数据集文件夹 evaluation batch_size int 每 GPU 批量大小 4 seed int 数据加载器随机种子 42 lang str 语言(en、zh) en n_shot int few‑shot 示例数 5 save_dir str 保存评估结果路径 None download_mode str 数据集下载模式(REUSE_DATASET_IF_EXISTS 等) DownloadMode.REUSE_DATASET_IF_EXISTS -
15.5 生成参数
参数名称 类型 介绍 默认值 do_sample bool 是否使用采样,False 则 greedy decoding。 True temperature float 控制随机性,越高越随机。 0.95 top_p float 累积概率阈值采样。 0.7 top_k int top‑k 采样大小。 50 num_beams int beam_search 束宽,1 表示不使用。 1 max_length int 文本最大长度(含输入和生成)。 1024 max_new_tokens int 生成最大长度,会覆盖 max_length。 1024 repetition_penalty float 重复惩罚系数。 1.0 length_penalty float beam_search 长度惩罚,>0 鼓励更长,<0 更短。 1.0 default_system str 默认 system_message。 None skip_special_tokens bool 解码时忽略特殊 token。 True -
15.6 SwanLab 参数
参数名称 类型 介绍 默认值 use_swanlab bool 是否使用 SwanLab。 False swanlab_project str 项目名称 “llamafactory” swanlab_workspace str 工作区名称 None swanlab_run_name str 实验名称 None swanlab_mode Literal[“cloud”, “local”] 运行模式 cloud swanlab_api_key str API 密钥 None -
15.7 训练参数
-
15.7.1 RAY
参数名称 类型 介绍 默认值 ray_run_name Optional[str] 训练结果保存路径 /ray_run_name None ray_storage_path str 保存训练结果的存储路径 ./saves ray_num_workers int Ray 训练工作进程数 1 resources_per_worker Union[dict, str] 每进程资源分配,默认 1 GPU {“GPU”: 1} placement_strategy Literal[“SPREAD”, “PACK”, “STRICT_SPREAD”, “STRICT_PACK”] 资源调度策略 PACK
-
-
15.8 环境变量
名称 类型 介绍 API_HOST API API 服务器监听主机地址 API_PORT API API 服务器监听端口号 API_KEY API 访问 API 的密码 PI_MODEL_NAME API 指定加载使用的模型名称 API_VERBOSE API 控制 API 日志详细程度 FASTAPI_ROOT_PATH API 设置 FastAPI 应用根路径 MAX_CONCURRENT API 最大并发请求数 DISABLE_VERSION_CHECK General 是否禁用版本检查 FORCE_CHECK_IMPORTS General 强制检查可选导入 ALLOW_EXTRA_ARGS General 允许命令行传额外参数 LLAMAFACTORY_VERBOSITY General 设置日志级别 (“DEBUG”,”INFO”,”WARN”) USE_MODELSCOPE_HUB General 优先使用 ModelScope 或缓存 USE_OPENMIND_HUB General 优先使用 Openmind 或缓存 USE_RAY General 是否使用 Ray 分布式执行 RECORD_VRAM General 是否记录 VRAM 使用 OPTIM_TORCH General 是否启用 PyTorch 优化 NPU_JIT_COMPILE General 是否为 NPU 启用 JIT 编译 CUDA_VISIBLE_DEVICES General GPU 选择 ASCEND_RT_VISIBLE_DEVICES General NPU 选择 FORCE_TORCHRUN Torchrun 强制使用 torchrun 启动脚本 MASTER_ADDR Torchrun master 节点地址 MASTER_PORT Torchrun master 节点通信端口 NNODES Torchrun 分布式节点总数 NODE_RANK Torchrun 当前节点 rank NPROC_PER_NODE Torchrun 每节点 GPU 数 WANDB_DISABLED Log 是否禁用 wandb WANDB_PROJECT Log wandb 项目名称 WANDB_API_KEY Log wandb API key GRADIO_SHARE Web UI 是否创建可共享 web UI 链接 GRADIO_SERVER_NAME Web UI Gradio 服务器 IP(如 0.0.0.0) GRADIO_SERVER_PORT Web UI Gradio 服务器端口 GRADIO_ROOT_PATH Web UI Gradio 应用根路径 GRADIO_IPV6 Web UI 是否启用 IPv6 ENABLE_SHORT_CONSOLE Setting 支持使用 lmf 表示 llamafactory‑cli