对 `llamafactory-cli api -h` 输出的详细解读

llamafactory-cli 是 LlamaFactory 项目提供的命令行接口工具,它允许用户通过命令行参数来配置和运行大型语言模型的各种任务,如预训练(PT)、有监督微调(SFT)、奖励模型训练(RM)、基于人类反馈的强化学习(PPO、DPO、KTO)以及模型推理和导出。

首先,命令输出的第一行 [2025-06-03 09:33:04,590] [INFO] [real_accelerator.py:191:get_accelerator] Setting ds_accelerator to cuda (auto detect) 是一个启动时的信息日志,表明程序已检测到并设置使用 CUDA(NVIDIA GPU)作为 DeepSpeed 加速器。这不是一个可配置的 API 参数,而是环境检测的结果。

接下来是 usage 部分,展示了命令的基本用法和所有可选参数。

复制代码
usage: llamafactory-cli [-h] [--model_name_or_path MODEL_NAME_OR_PATH] ...

下面我们对各个参数选项 (options) 进行分类解读:

一、核心与模型加载参数

这些参数定义了基础模型、适配器以及加载行为。

  • -h, --help: 显示此帮助信息并退出。
  • --model_name_or_path MODEL_NAME_OR_PATH: 必需或常用。指定基础模型的路径(本地文件夹)或 Hugging Face Hub/ModelScope Hub 上的模型标识符。
  • --adapter_name_or_path ADAPTER_NAME_OR_PATH: 指定要加载的适配器(例如 LoRA 权重)的路径或 Hugging Face Hub 上的标识符。可以使用逗号分隔加载多个适配器。
  • --adapter_folder ADAPTER_FOLDER: 指定包含多个适配器权重的文件夹路径。
  • --cache_dir CACHE_DIR: 指定从 Hugging Face Hub 或 ModelScope Hub 下载的预训练模型的存储位置。
  • --model_revision MODEL_REVISION: 指定要使用的特定模型版本(可以是分支名、标签名或 commit ID)。默认为 main
  • --low_cpu_mem_usage [LOW_CPU_MEM_USAGE] / --no_low_cpu_mem_usage: 是否使用低 CPU 内存模式加载模型,有助于在内存受限的环境中加载大模型。默认为 True
  • --train_from_scratch [TRAIN_FROM_SCRATCH]: 是否从头开始训练,即随机初始化模型权重,而不是加载预训练权重。默认为 False
  • --hf_hub_token HF_HUB_TOKEN: 用于登录 Hugging Face Hub 的认证令牌。
  • --ms_hub_token MS_HUB_TOKEN: 用于登录 ModelScope Hub 的认证令牌。
  • --om_hub_token OM_HUB_TOKEN: 用于登录 OpenModelDB Hub (魔搭社区) 的认证令牌。
  • --trust_remote_code [TRUST_REMOTE_CODE]: 是否信任并执行来自 Hub 上模型或数据集的远程代码。默认为 False,出于安全考虑,请谨慎开启。

二、Tokenizer 相关参数

配置分词器的行为。

  • --use_fast_tokenizer [USE_FAST_TOKENIZER] / --no_use_fast_tokenizer: 是否使用由 tokenizers 库支持的快速分词器。默认为 True
  • --resize_vocab [RESIZE_VOCAB]: 是否调整分词器的词汇表大小以及模型嵌入层的大小,通常在添加新词汇时使用。默认为 False
  • --split_special_tokens [SPLIT_SPECIAL_TOKENS]: 在分词过程中是否应分割特殊标记(special tokens)。默认为 False
  • --add_tokens ADD_TOKENS: 要添加到分词器中的非特殊标记。使用逗号分隔多个标记。
  • --add_special_tokens ADD_SPECIAL_TOKENS: 要添加到分词器中的特殊标记。使用逗号分隔多个标记。

三、性能与优化参数

这些参数影响模型的训练和推理效率。

  • --rope_scaling {linear,dynamic,yarn,llama3}: RoPE (Rotary Position Embedding) 嵌入的缩放策略,用于扩展模型的上下文长度。
  • --flash_attn {auto,disabled,sdpa,fa2}: 是否启用 FlashAttention 以加速训练和推理。auto 会自动选择,sdpa (Scaled Dot Product Attention) 和 fa2 (FlashAttention-2) 是具体实现。默认为 AttentionFunction.AUTO
  • --shift_attn [SHIFT_ATTN]: 是否启用 LongLoRA 提出的 Shift Short Attention (S^2-Attn) 机制。默认为 False
  • --mixture_of_depths {convert,load}: 是否将模型转换为 Mixture-of-Depths (MoD) 结构或加载已转换的 MoD 模型。
  • --use_unsloth [USE_UNSLOTH]: 是否使用 Unsloth 的优化来进行 LoRA 训练,可以显著提升速度和减少显存。默认为 False
  • --use_unsloth_gc [USE_UNSLOTH_GC]: 是否使用 Unsloth 的梯度检查点(gradient checkpointing),无需安装完整 Unsloth。默认为 False
  • --enable_liger_kernel [ENABLE_LIGER_KERNEL]: 是否启用 Liger 内核以加速训练。默认为 False
  • --moe_aux_loss_coef MOE_AUX_LOSS_COEF: 针对 Mixture-of-Experts (MoE) 模型,设置辅助路由器损失(auxiliary router loss)的系数。
  • --disable_gradient_checkpointing [DISABLE_GRADIENT_CHECKPOINTING]: 是否禁用梯度检查点。梯度检查点通过在前向传播中不保存中间激活,在反向传播时重新计算来节省显存,但会增加计算时间。默认为 False (即默认启用梯度检查点,具体看实现)。
  • --use_reentrant_gc [USE_REENTRANT_GC] / --no_use_reentrant_gc: 是否使用可重入(reentrant)的梯度检查点。默认为 True
  • --upcast_layernorm [UPCAST_LAYERNORM]: 是否将 LayerNorm 层的权重提升到 fp32精度进行计算。默认为 False
  • --upcast_lmhead_output [UPCAST_LMHEAD_OUTPUT]: 是否将语言模型头部(lm_head)的输出提升到 fp32 精度。默认为 False
  • --pure_bf16 [PURE_BF16]: 是否以纯 bf16 精度进行训练(不使用 AMP 自动混合精度)。默认为 False

四、推理引擎与参数

配置模型推理时的行为和后端。

  • --infer_backend {huggingface,vllm,sglang}: 推理时使用的后端引擎。huggingface 是标准 Transformers 库,vllmsglang 是专门为 LLM 推理设计的高性能引擎。默认为 EngineName.HF
  • --offload_folder OFFLOAD_FOLDER: 模型权重卸载(offload)的目标文件夹路径,用于在 CPU 和 GPU 间转移模型层以节省显存。默认为 offload
  • --use_cache [USE_CACHE] / --no_use_cache: 在生成文本时是否使用 KV 缓存(key-value cache)来加速。默认为 True
  • --infer_dtype {auto,float16,bfloat16,float32}: 推理时模型权重和激活值的数据类型。auto 通常会根据模型自身配置或硬件支持选择。
  • vLLM 特定参数 :
    • --vllm_maxlen VLLM_MAXLEN: vLLM 引擎支持的最大序列长度(prompt + response)。默认为 4096
    • --vllm_gpu_util VLLM_GPU_UTIL: vLLM 引擎使用的 GPU 显存比例 (0,1) 之间。默认为 0.7
    • --vllm_enforce_eager [VLLM_ENFORCE_EAGER]: 是否在 vLLM 引擎中禁用 CUDA Graph(强制 Eager模式)。默认为 False
    • --vllm_max_lora_rank VLLM_MAX_LORA_RANK: vLLM 引擎中所有 LoRA 适配器的最大秩。默认为 32
    • --vllm_config VLLM_CONFIG: 初始化 vLLM 引擎的配置。请使用 JSON 字符串。
  • SGLang 特定参数 :
    • --sglang_maxlen SGLANG_MAXLEN: SGLang 引擎支持的最大序列长度。默认为 4096
    • --sglang_mem_fraction SGLANG_MEM_FRACTION: SGLang 引擎使用的显存比例 (0-1)。默认为 0.7
    • --sglang_tp_size SGLANG_TP_SIZE: SGLang 引擎的张量并行(Tensor Parallelism)大小。默认为 -1
    • --sglang_config SGLANG_CONFIG: 初始化 SGLang 引擎的配置。请使用 JSON 字符串。

五、量化参数

配置模型量化,以减小模型体积和加速推理,可能会有精度损失。

  • --quantization_method {bnb,gptq,awq,aqlm,quanto,eetq,hqq}: 动态量化(on-the-fly quantization)使用的方法。bnb (bitsandbytes) 常用于训练时量化。默认为 QuantizationMethod.BNB
  • --quantization_bit QUANTIZATION_BIT: 使用动态量化时,模型的量化位数(如 4-bit, 8-bit)。
  • --quantization_type {fp4,nf4}: 在 bitsandbytes int4 训练中使用的量化数据类型。nf4 (NormalFloat4) 通常效果更好。默认为 nf4
  • --double_quantization [DOUBLE_QUANTIZATION] / --no_double_quantization: 在 bitsandbytes int4 训练中是否使用双量化。默认为 True
  • --quantization_device_map {auto}: 用于推断 4-bit 量化模型的设备映射,需要 bitsandbytes>=0.43.0

六、多模态(MLLM)参数

处理图像、视频、音频等非文本输入。

  • --image_max_pixels IMAGE_MAX_PIXELS: 图像输入的最大像素数。默认为 589824
  • --image_min_pixels IMAGE_MIN_PIXELS: 图像输入的最小像素数。默认为 1024
  • --image_do_pan_and_scan [IMAGE_DO_PAN_AND_SCAN]: 是否为 Gemma3 模型使用 pan and scan 处理图像。默认为 False
  • --crop_to_patches [CROP_TO_PATCHES]: 是否为 InternVL 模型将图像裁剪为补丁(patches)。默认为 False
  • --use_audio_in_video [USE_AUDIO_IN_VIDEO]: 视频输入中是否包含音频信息。默认为 False
  • --video_max_pixels VIDEO_MAX_PIXELS: 视频输入的最大像素数。默认为 65536
  • --video_min_pixels VIDEO_MIN_PIXELS: 视频输入的最小像素数。默认为 256
  • --video_fps VIDEO_FPS: 视频输入每秒采样帧数。默认为 2.0
  • --video_maxlen VIDEO_MAXLEN: 视频输入的最大采样帧数。默认为 128
  • --audio_sampling_rate AUDIO_SAMPLING_RATE: 音频输入的采样率。默认为 16000
  • --freeze_vision_tower [FREEZE_VISION_TOWER] / --no_freeze_vision_tower: 在 MLLM 训练中是否冻结视觉塔(vision tower)的参数。默认为 True
  • --freeze_multi_modal_projector [FREEZE_MULTI_MODAL_PROJECTOR] / --no_freeze_multi_modal_projector: 在 MLLM 训练中是否冻结多模态投影器(multi-modal projector)的参数。默认为 True
  • --freeze_language_model [FREEZE_LANGUAGE_MODEL]: 在 MLLM 训练中是否冻结语言模型部分的参数。默认为 False

七、模型导出参数

将训练好的模型或适配器合并后导出为标准格式。

  • --export_dir EXPORT_DIR: 导出模型的保存目录路径。
  • --export_size EXPORT_SIZE: 导出模型的分片大小(GB)。默认为 5
  • --export_device {cpu,auto}: 模型导出时使用的设备。auto 会尝试使用 GPU 加速导出。默认为 cpu
  • --export_quantization_bit EXPORT_QUANTIZATION_BIT: 导出模型的量化位数。
  • --export_quantization_dataset EXPORT_QUANTIZATION_DATASET: 量化导出模型时使用的数据集路径或名称。
  • --export_quantization_nsamples EXPORT_QUANTIZATION_NSAMPLES: 用于量化的样本数量。默认为 128
  • --export_quantization_maxlen EXPORT_QUANTIZATION_MAXLEN: 用于量化的模型输入最大长度。默认为 1024
  • --export_legacy_format [EXPORT_LEGACY_FORMAT]: 是否保存为 .bin 文件(旧格式)而不是 .safetensors 文件(推荐格式)。默认为 False
  • --export_hub_model_id EXPORT_HUB_MODEL_ID: 如果要将模型推送到 Hugging Face Hub,指定仓库名称。

八、数据集与预处理参数

定义训练和评估所用的数据集及其处理方式。

  • --template TEMPLATE: 在训练和推理中用于构建提示(prompt)的模板名称。
  • --dataset DATASET: 必需或常用 (对于训练)。用于训练的数据集名称。使用逗号分隔指定多个数据集。
  • --eval_dataset EVAL_DATASET: 用于评估的数据集名称。使用逗号分隔指定多个数据集。
  • --dataset_dir DATASET_DIR: 包含数据集文件的文件夹路径。默认为 data
  • --media_dir MEDIA_DIR: 包含图像、视频或音频文件的文件夹路径。默认为 dataset_dir
  • --cutoff_len CUTOFF_LEN: 数据集中 tokenized 输入的截断长度。默认为 2048
  • --train_on_prompt [TRAIN_ON_PROMPT]: 是否在提示部分计算损失(即不mask掉提示)。默认为 False (即mask提示,只在回答部分计算损失)。
  • --mask_history [MASK_HISTORY]: 是否掩码对话历史,仅在最后一轮对话上进行训练。默认为 False
  • --streaming [STREAMING]: 是否启用数据集流式加载,适用于非常大的数据集。默认为 False
  • --buffer_size BUFFER_SIZE: 在数据集流式加载时,用于随机抽样样本的缓冲区大小。默认为 16384
  • --mix_strategy {concat,interleave_under,interleave_over}: 数据集混合策略。concat直接拼接;interleave_under按比例交叉混合并对多数数据集进行欠采样;interleave_over按比例交叉混合并对少数数据集进行过采样。默认为 concat
  • --interleave_probs INTERLEAVE_PROBS: 从各个数据集中采样数据的概率。使用逗号分隔,对应于 --dataset 中的数据集顺序。
  • --overwrite_cache [OVERWRITE_CACHE]: 是否覆盖已缓存的训练和评估数据集。默认为 False
  • --preprocessing_batch_size PREPROCESSING_BATCH_SIZE: 预处理时每组(group)的样本数量。默认为 1000
  • --preprocessing_num_workers PREPROCESSING_NUM_WORKERS: 用于数据预处理的进程数量。
  • --max_samples MAX_SAMPLES: 用于调试目的,截断每个数据集的最大样本数量。
  • --val_size VAL_SIZE: 验证集的大小,可以是整数(样本数)或 [0,1) 范围内的浮点数(比例)。默认为 0.0
  • --packing PACKING: 在训练中启用序列打包(sequence packing),将多个短序列合并为一个长序列以提高效率。预训练时会自动启用。
  • --neat_packing [NEAT_PACKING]: 启用不带交叉注意力的序列打包。默认为 False
  • --tool_format TOOL_FORMAT: 用于构建函数调用(function calling)示例的工具格式。
  • --tokenized_path TOKENIZED_PATH: 保存或加载已 tokenized 的数据集的路径。如果路径不存在,则保存;如果存在,则加载。

九、微调方法与相关参数

配置具体的微调策略,如 LoRA, Freeze, Full-parameter tuning,以及 DPO, PPO 等对齐算法。

  • --stage {pt,sft,rm,ppo,dpo,kto}: 必需或常用 。指定训练的阶段:pt (Pre-Training), sft (Supervised Fine-Tuning), rm (Reward Modeling), ppo (Proximal Policy Optimization), dpo (Direct Preference Optimization), kto (Kahneman-Tversky Optimization)。默认为 sft
  • --finetuning_type {lora,freeze,full}: 必需或常用 。指定微调方法:lora (Low-Rank Adaptation), freeze (冻结部分参数), full (全参数微调)。默认为 lora
Freeze 微调参数:
  • --freeze_trainable_layers FREEZE_TRAINABLE_LAYERS: 对于 Freeze 微调,指定可训练层的数量。正数表示最后 n 层可训练,负数表示最前 n 层可训练。默认为 2
  • --freeze_trainable_modules FREEZE_TRAINABLE_MODULES: 对于 Freeze 微调,指定可训练模块的名称。用逗号分隔多个模块。使用 all 指定所有可用模块。默认为 all
  • --freeze_extra_modules FREEZE_EXTRA_MODULES: 对于 Freeze 微调,除了隐藏层外,指定其他要设为可训练的模块名称。用逗号分隔。
LoRA 及其变体参数:
  • --additional_target ADDITIONAL_TARGET: 除了 LoRA 层之外,还要设为可训练并在最终检查点中保存的模块名称。用逗号分隔。
  • --lora_alpha LORA_ALPHA: LoRA 微调的缩放因子。通常设置为 lora_rank * 2
  • --lora_dropout LORA_DROPOUT: LoRA 微调的 Dropout 率。默认为 0.0
  • --lora_rank LORA_RANK: LoRA 微调的内在维度(rank)。默认为 8
  • --lora_target LORA_TARGET: 应用 LoRA 的目标模块名称。用逗号分隔多个模块。使用 all 指定所有线性模块。默认为 all
  • --loraplus_lr_ratio LORAPLUS_LR_RATIO: LoRA+ 的学习率比例 (lr_B / lr_A)。
  • --loraplus_lr_embedding LORAPLUS_LR_EMBEDDING: LoRA+ 中 LoRA 嵌入层的学习率。默认为 1e-06
  • --use_rslora [USE_RSLORA]: 是否对 LoRA 层使用秩稳定缩放因子 (Rank-Stabilized LoRA)。默认为 False
  • --use_dora [USE_DORA]: 是否使用权重分解的 LoRA 方法 (DoRA)。默认为 False
  • --pissa_init [PISSA_INIT]: 是否初始化一个 PiSSA (Principal Singular Values and Singular Vectors Adaptation) 适配器。默认为 False
  • --pissa_iter PISSA_ITER: PiSSA 中 FSVD (Fast Singular Value Decomposition) 执行的迭代次数。设为 -1 禁用。默认为 16
  • --pissa_convert [PISSA_CONVERT]: 是否将 PiSSA 适配器转换为普通的 LoRA 适配器。默认为 False
  • --create_new_adapter [CREATE_NEW_ADAPTER]: 是否创建一个新的、权重随机初始化的适配器。默认为 False
偏好对齐算法参数 (DPO, KTO, PPO 等):
  • --pref_beta PREF_BETA: 偏好损失中的 β \beta β 参数 (例如 DPO 中的温度系数)。默认为 0.1
  • --pref_ftx PREF_FTX: 在 DPO 类训练中,SFT (Supervised Fine-Tuning) 损失的系数。默认为 0.0
  • --pref_loss {sigmoid,hinge,ipo,kto_pair,orpo,simpo}: DPO 类损失函数的类型。默认为 sigmoid
  • --dpo_label_smoothing DPO_LABEL_SMOOTHING: cDPO (consistent DPO) 中的鲁棒 DPO 标签平滑参数,应在 0 到 0.5 之间。默认为 0.0
  • --kto_chosen_weight KTO_CHOSEN_WEIGHT: KTO 训练中 "chosen" (期望的) 样本损失的权重因子。默认为 1.0
  • --kto_rejected_weight KTO_REJECTED_WEIGHT: KTO 训练中 "rejected" (不期望的) 样本损失的权重因子。默认为 1.0
  • --simpo_gamma SIMPO_GAMMA: SimPO 损失中的目标奖励边际项。默认为 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 训练中是否使用分数归一化。默认为 False
  • --ppo_target PPO_TARGET: PPO 训练中自适应 KL 控制的目标 KL 散度值。默认为 6.0
  • --ppo_whiten_rewards [PPO_WHITEN_REWARDS]: 在 PPO 训练中,计算优势函数(advantages)前是否对奖励进行白化处理。默认为 False
  • --ref_model REF_MODEL: 用于 PPO 或 DPO 训练的参考模型路径。
  • --ref_model_adapters REF_MODEL_ADAPTERS: 参考模型的适配器路径。
  • --ref_model_quantization_bit REF_MODEL_QUANTIZATION_BIT: 参考模型的量化位数。
  • --reward_model REWARD_MODEL: 用于 PPO 训练的奖励模型路径。
  • --reward_model_adapters REWARD_MODEL_ADAPTERS: 奖励模型的适配器路径。
  • --reward_model_quantization_bit REWARD_MODEL_QUANTIZATION_BIT: 奖励模型的量化位数。
  • --reward_model_type {lora,full,api}: PPO 训练中奖励模型的类型。lora 模型仅支持 LoRA 训练。默认为 lora
GaLore (Gradient Low-Rank projection) 优化器参数:
  • --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.0
  • --galore_proj_type {std,reverse_std,right,left,full}: GaLore 投影类型。默认为 std
  • --galore_layerwise [GALORE_LAYERWISE]: 是否启用逐层更新以进一步节省内存。默认为 False
APOLLO 优化器参数:
  • --use_apollo [USE_APOLLO]: 是否使用 APOLLO 优化器。默认为 False
  • --apollo_target APOLLO_TARGET: 应用 APOLLO 的模块名称。默认为 all
  • --apollo_rank APOLLO_RANK: APOLLO 梯度的秩。默认为 16
  • --apollo_update_interval APOLLO_UPDATE_INTERVAL: 更新 APOLLO 投影的步数。默认为 200
  • --apollo_scale APOLLO_SCALE: APOLLO 缩放系数。默认为 32.0
  • --apollo_proj {svd,random}: APOLLO 低秩投影算法类型。默认为 random
  • --apollo_proj_type {std,right,left}: APOLLO 投影类型。默认为 std
  • --apollo_scale_type {channel,tensor}: APOLLO 缩放类型。默认为 channel
  • --apollo_layerwise [APOLLO_LAYERWISE]: 是否启用逐层更新。默认为 False
  • --apollo_scale_front [APOLLO_SCALE_FRONT]: 是否在梯度缩放前使用范数增长限制器。默认为 False
BAdam (Block Adam) 优化器参数:
  • --use_badam [USE_BADAM]: 是否使用 BAdam 优化器。默认为 False
  • --badam_mode {layer,ratio}: BAdam 是逐层更新还是按比例更新。默认为 layer
  • --badam_start_block BADAM_START_BLOCK: 逐层 BAdam 的起始块索引。
  • --badam_switch_mode {ascending,descending,random,fixed}: 逐层 BAdam 选择更新块的策略。默认为 ascending
  • --badam_switch_interval BADAM_SWITCH_INTERVAL: 逐层 BAdam 更新块的间隔步数。-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 打印块前缀,2 打印可训练参数。默认为 0
其他特定微调方法参数:
  • --use_llama_pro [USE_LLAMA_PRO]: 是否仅使扩展块(expanded blocks, 如 Llama Pro 中的块)中的参数可训练。默认为 False
  • --use_adam_mini [USE_ADAM_MINI]: 是否使用 Adam-mini 优化器。默认为 False
  • --use_muon [USE_MUON]: 是否使用 Muon 优化器。默认为 False

十、训练过程与评估参数

控制训练循环、评估指标等。

  • --ignore_pad_token_for_loss [IGNORE_PAD_TOKEN_FOR_LOSS] / --no_ignore_pad_token_for_loss: 在计算损失时是否忽略填充标记(pad token)对应的损失。默认为 True
  • --eval_num_beams EVAL_NUM_BEAMS: 评估时使用的束搜索(beam search)的数量。此参数将传递给 model.generate
  • --eval_on_each_dataset [EVAL_ON_EACH_DATASET]: 是否在每个数据集上分别进行评估。默认为 False
  • --compute_accuracy [COMPUTE_ACCURACY]: 评估时是否计算 token 级别的准确率。默认为 False
  • --disable_shuffling [DISABLE_SHUFFLING]: 是否禁用训练集的随机打乱。默认为 False
  • --early_stopping_steps EARLY_STOPPING_STEPS: 如果 metric_for_best_model (通常是验证集损失或某个指标)在指定步数内没有改善,则提前停止训练。
  • --plot_loss [PLOT_LOSS]: 是否保存训练损失曲线图。默认为 False
  • --include_effective_tokens_per_second [INCLUDE_EFFECTIVE_TOKENS_PER_SECOND]: 是否计算并报告有效(非padding)的每秒处理 token 数量。默认为 False

十一、生成(Generation)参数

控制模型生成文本时的行为,主要用于推理或基于生成的评估。

  • --do_sample [DO_SAMPLE] / --no_do_sample: 是否使用采样策略生成文本。若为 False,则使用贪婪解码(greedy decoding)。默认为 True
  • --temperature TEMPERATURE: 温度系数,用于调节下一个 token 的概率分布。值越小,生成越确定;值越大,越随机。默认为 0.95
  • --top_p TOP_P: Top-p (nucleus) 采样。保留累积概率达到 top_p 的最小词汇集。默认为 0.7
  • --top_k TOP_K: Top-k 采样。保留概率最高的 top_k 个词汇。默认为 50
  • --num_beams NUM_BEAMS:束搜索(beam search)的数量。1 表示不使用束搜索。默认为 1
  • --max_length MAX_LENGTH: 生成文本的最大长度(包括输入的 prompt)。可以被 max_new_tokens 覆盖。默认为 1024
  • --max_new_tokens MAX_NEW_TOKENS: 生成新 token 的最大数量,忽略 prompt 中的 token 数。默认为 1024
  • --repetition_penalty REPETITION_PENALTY: 重复惩罚系数。1.0 表示无惩罚。大于1的值会降低重复词汇的概率。默认为 1.0
  • --length_penalty LENGTH_PENALTY: 长度惩罚系数,用于基于束搜索的生成。大于1鼓励长序列,小于1鼓励短序列。默认为 1.0
  • --default_system DEFAULT_SYSTEM: 在聊天补全(chat completion)中使用的默认系统消息。
  • --skip_special_tokens [SKIP_SPECIAL_TOKENS] / --no_skip_special_tokens: 在解码(detokenization)过程中是否移除特殊标记。默认为 True
  • --enable_thinking [ENABLE_THINKING] / --no_enable_thinking: 是否为推理模型启用"思考模式"(thinking mode),可能用于一些需要链式思考的模型。默认为 True

十二、实验追踪 (SwanLab)

集成 SwanLab 进行实验追踪和可视化。

  • --use_swanlab [USE_SWANLAB]: 是否使用 SwanLab。默认为 False
  • --swanlab_project SWANLAB_PROJECT: SwanLab 中的项目名称。默认为 llamafactory
  • --swanlab_workspace SWANLAB_WORKSPACE: SwanLab 中的工作空间名称。
  • --swanlab_run_name SWANLAB_RUN_NAME: SwanLab 中的实验运行名称。
  • --swanlab_mode {cloud,local}: SwanLab 的模式。默认为 cloud
  • --swanlab_api_key SWANLAB_API_KEY: SwanLab 的 API 密钥。
  • --swanlab_logdir SWANLAB_LOGDIR: SwanLab 的日志目录。
  • --swanlab_lark_webhook_url SWANLAB_LARK_WEBHOOK_URL: SwanLab 的飞书(Lark)Webhook URL。
  • --swanlab_lark_secret SWANLAB_LARK_SECRET: SwanLab 的飞书(Lark)签名密钥。

十三、调试与其他

  • --print_param_status [PRINT_PARAM_STATUS]: 用于调试目的,打印模型中参数的状态(例如是否可训练,数据类型等)。默认为 False

这份解读涵盖了 llamafactory-cli api -h 输出中的绝大多数参数。使用时,你需要根据你的具体任务(SFT、PPO、推理等)、模型、数据和硬件资源来选择和配置这些参数。建议从一个已有的、与你任务相似的示例脚本开始,逐步调整参数。

相关推荐
AWS官方合作商2 分钟前
Amazon Augmented AI:人类智慧与AI协作,破解机器学习审核难题
人工智能·机器学习·aws
人工智能小豪5 小时前
2025年大模型平台落地实践研究报告|附75页PDF文件下载
大数据·人工智能·transformer·anythingllm·ollama·大模型应用
芯盾时代5 小时前
AI在网络安全领域的应用现状和实践
人工智能·安全·web安全·网络安全
黑鹿0226 小时前
机器学习基础(三) 逻辑回归
人工智能·机器学习·逻辑回归
电鱼智能的电小鱼7 小时前
虚拟现实教育终端技术方案——基于EFISH-SCB-RK3588的全场景国产化替代
linux·网络·人工智能·分类·数据挖掘·vr
天天代码码天天7 小时前
C# Onnx 动漫人物头部检测
人工智能·深度学习·神经网络·opencv·目标检测·机器学习·计算机视觉
Joseit7 小时前
从零打造AI面试系统全栈开发
人工智能·面试·职场和发展
小猪猪_17 小时前
多视角学习、多任务学习,迁移学习
人工智能·迁移学习
飞哥数智坊7 小时前
AI编程实战:Cursor 1.0 上手实测,刀更锋利马更快
人工智能·cursor
vlln8 小时前
【论文解读】ReAct:从思考脱离行动, 到行动反馈思考
人工智能·深度学习·机器学习