llamafactory 配置文件
·
model_arg.py
模型配置参数
# 基础模型参数
model_name_or_path: str # 模型路径或标识符
adapter_name_or_path: Optional[str] # 适配器路径,支持多个(逗号分隔)
adapter_folder: Optional[str] # 适配器文件夹
cache_dir: Optional[str] # 预训练模型缓存目录
use_fast_tokenizer: bool = True # 是否使用快速分词器
resize_vocab: bool = False # 是否调整词汇表大小
split_special_tokens: bool = False # 是否分割特殊token
add_tokens: Optional[str] # 添加非特殊token(逗号分隔)
add_special_tokens: Optional[str] # 添加特殊token(逗号分隔)
model_revision: str = "main" # 模型版本
low_cpu_mem_usage: bool = True # 是否使用内存高效加载
rope_scaling: Optional[RopeScaling] # RoPE缩放策略
flash_attn: AttentionFunction = AUTO # FlashAttention配置
shift_attn: bool = False # 是否启用Shift Short Attention
mixture_of_depths: Optional[Literal["convert", "load"]] # 混合深度模型配置
use_unsloth: bool = False # 是否使用Unsloth优化
use_unsloth_gc: bool = False # 是否使用Unsloth梯度检查点
enable_liger_kernel: bool = False # 是否启用Liger内核
moe_aux_loss_coef: Optional[float] # MoE模型辅助损失系数
disable_gradient_checkpointing: bool = False # 是否禁用梯度检查点
use_reentrant_gc: bool = True # 是否使用可重入梯度检查点
upcast_layernorm: bool = False # 是否将LayerNorm权重上转为fp32
upcast_lmhead_output: bool = False # 是否将lm_head输出上转为fp32
train_from_scratch: bool = False # 是否从零开始训练
infer_backend: EngineName = HF # 推理后端引擎
offload_folder: str = "offload" # 模型权重卸载路径
use_cache: bool = True # 是否使用KV缓存
infer_dtype: Literal["auto", "float16", "bfloat16", "float32"] = "auto" # 推理数据类型
hf_hub_token: Optional[str] # HuggingFace Hub令牌
ms_hub_token: Optional[str] # ModelScope Hub令牌
om_hub_token: Optional[str] # Modelers Hub令牌
print_param_status: bool = False # 是否打印参数状态
trust_remote_code: bool = False # 是否信任远程代码
可阅读{llamafactory-root}/src/llamafactory/hparams/model_args.py,在该文件中存在所有涉及模型的超参
量化配置参数(QuantizationArguments)
quantization_method: QuantizationMethod = BNB # 量化方法
quantization_bit: Optional[int] # 量化位数
quantization_type: Literal["fp4", "nf4"] = "nf4" # 量化数据类型
double_quantization: bool = True # 是否使用双量化
quantization_device_map: Optional[Literal["auto"]] # 量化模型设备映射
多模态处理参数(ProcessorArguments)
image_max_pixels: int = 768*768 # 图像最大像素数
image_min_pixels: int = 32*32 # 图像最小像素数
image_do_pan_and_scan: bool = False # 是否使用平移扫描处理图像
crop_to_patches: bool = False # 是否将图像裁剪为补丁
video_max_pixels: int = 256*256 # 视频最大像素数
video_min_pixels: int = 16*16 # 视频最小像素数
video_fps: float = 2.0 # 视频每秒采样帧数
video_maxlen: int = 128 # 视频最大采样帧数
use_audio_in_video: bool = False # 是否在视频中使用音频
audio_sampling_rate: int = 16000 # 音频采样率
导出配置参数(ExportArguments)
export_dir: Optional[str] # 导出目录
export_size: int = 5 # 导出文件分片大小(GB)
export_device: Literal["cpu", "auto"] = "cpu" # 导出设备
export_quantization_bit: Optional[int] # 导出模型量化位数
export_quantization_dataset: Optional[str] # 量化数据集
export_quantization_nsamples: int = 128 # 量化样本数
export_quantization_maxlen: int = 1024 # 量化最大长度
data_args.py
数据配置参数
template: Optional[str] # 提示模板名称
dataset: Optional[str] # 训练数据集,支持多个(逗号分隔)
eval_dataset: Optional[str] # 评估数据集,支持多个(逗号分隔)
dataset_dir: str = "data" # 数据集目录
media_dir: Optional[str] # 媒体文件目录(图像、视频、音频)
cutoff_len: int = 2048 # 输入截断长度
train_on_prompt: bool = False # 是否在提示上训练
mask_history: bool = False # 是否掩盖历史对话
streaming: bool = False # 是否启用数据集流式加载
buffer_size: int = 16384 # 流式加载缓冲区大小
mix_strategy: Literal["concat", "interleave_under", "interleave_over"] = "concat" # 数据集混合策略
interleave_probs: Optional[str] # 数据集采样概率(逗号分隔)
overwrite_cache: bool = False # 是否覆盖缓存
preprocessing_batch_size: int = 1000 # 预处理批次大小
preprocessing_num_workers: Optional[int] # 预处理工作线程数
max_samples: Optional[int] # 最大样本数
eval_num_beams: Optional[int] # 评估beam数
ignore_pad_token_for_loss: bool = True # 是否忽略填充token的损失
val_size: float = 0.0 # 验证集比例
eval_on_each_dataset: bool = False # 是否在每个数据集上单独评估
packing: Optional[bool] # 是否启用序列打包训练
neat_packing: bool = False # 是否启用无交叉注意力的序列打包
tool_format: Optional[str] # 工具调用格式
default_system: Optional[str] # 默认系统消息
enable_thinking: Optional[bool] = True # 是否启用思考模式
tokenized_path: Optional[str] # 分词后数据集保存/加载路径
data_shared_file_system: bool = False # 是否使用共享文件系统
traning_args.py
训练配置参数
# 继承自transformers.Seq2SeqTrainingArguments,包含以下核心参数
per_device_train_batch_size: int # 每设备训练批次大小
per_device_eval_batch_size: int # 每设备评估批次大小
gradient_accumulation_steps: int # 梯度累积步数
learning_rate: float # 学习率
num_train_epochs: float # 训练轮数
lr_scheduler_type: str # 学习率调度器类型
warmup_ratio: float # 预热比例
weight_decay: float # 权重衰减
bf16: bool # 是否使用bf16混合精度
fp16: bool # 是否使用fp16混合精度
eval_strategy: str # 评估策略
eval_steps: int # 评估步数
save_strategy: str # 保存策略
save_steps: int # 保存步数
logging_steps: int # 日志记录步数
output_dir: str # 输出目录
seed: int # 随机种子
report_to: str # 报告工具
resume_from_checkpoint: Optional[str] # 从检查点恢复训练
# Ray训练参数
ray_run_name: Optional[str] # Ray运行名称
ray_storage_path: str = "./saves" # Ray存储路径
ray_storage_filesystem: Optional[Literal["s3", "gs", "gcs"]] # Ray存储文件系统
ray_num_workers: int = 1 # Ray工作节点数
resources_per_worker: Union[dict, str] # 每个工作节点资源
placement_strategy: Literal["SPREAD", "PACK", "STRICT_SPREAD", "STRICT_PACK"] = "PACK" # 放置策略
ray_init_kwargs: Optional[dict] # Ray初始化参数
finetuning_args.py
冻结参数配置(FreezeArguments)
freeze_trainable_layers: int = 2 # 可训练层数 正数代表最后几层,负数代表最前几层
freeze_trainable_modules: str = "all" # 可训练模块
freeze_extra_modules: Optional[str] # 额外可训练模块
LoRA配置(LoraArguments)
additional_target: Optional[str] # 额外训练模块
lora_alpha: Optional[int] # LoRA缩放因子
lora_dropout: float = 0.0 # LoRA dropout率
lora_rank: int = 8 # LoRA秩
lora_target: str = "all" # LoRA目标模块
loraplus_lr_ratio: Optional[float] # LoRA+学习率比例
loraplus_lr_embedding: float = 1e-6 # LoRA+嵌入层学习率
use_rslora: bool = False # 是否使用RS-LoRA
use_dora: bool = False # 是否使用DoRA
pissa_init: bool = False # 是否初始化PiSSA适配器
pissa_iter: int = 16 # PiSSA迭代次数
pissa_convert: bool = False # 是否转换PiSSA为普通LoRA
create_new_adapter: bool = False # 是否创建新适配器
RLHF 配置(RLHFArguments)
pref_beta: float = 0.1 # 偏好损失beta参数
pref_ftx: float = 0.0 # DPO中的SFT损失系数
pref_loss: Literal["sigmoid", "hinge", "ipo", "kto_pair", "orpo", "simpo"] = "sigmoid" # DPO损失类型
dpo_label_smoothing: float = 0.0 # cDPO标签平滑参数
kto_chosen_weight: float = 1.0 # KTO选中样本权重
kto_rejected_weight: float = 1.0 # KTO拒绝样本权重
simpo_gamma: float = 0.5 # SimPO目标奖励边际
ppo_buffer_size: int = 1 # PPO经验缓冲区大小
ppo_epochs: int = 4 # PPO优化轮数
ppo_score_norm: bool = False # PPO分数归一化
ppo_target: float = 6.0 # PPO目标KL值
ppo_whiten_rewards: bool = False # PPO奖励白化
ref_model: Optional[str] # 参考模型路径
ref_model_adapters: Optional[str] # 参考模型适配器
ref_model_quantization_bit: Optional[int] # 参考模型量化位数
reward_model: Optional[str] # 奖励模型路径
reward_model_adapters: Optional[str] # 奖励模型适配器
reward_model_quantization_bit: Optional[int] # 奖励模型量化位数
reward_model_type: Literal["lora", "full", "api"] = "lora" # 奖励模型类型
ld_alpha: Optional[float] # LD-DPO中的alpha参数
Galore配置(GaloreArguments)
use_galore: bool = False # 是否使用GaLore
galore_target: str = "all" # GaLore目标模块
galore_rank: int = 16 # GaLore秩
galore_update_interval: int = 200 # GaLore更新间隔
galore_scale: float = 2.0 # GaLore缩放系数
galore_proj_type: Literal["std", "reverse_std", "right", "left", "full"] = "std" # GaLore投影类型
galore_layerwise: bool = False # 是否启用分层更新
APOLLO 配置(ApolloArguments)
use_apollo: bool = False # 是否使用APOLLO
apollo_target: str = "all" # APOLLO目标模块
apollo_rank: int = 16 # APOLLO秩
apollo_update_interval: int = 200 # APOLLO更新间隔
apollo_scale: float = 32.0 # APOLLO缩放系数
apollo_proj: Literal["svd", "random"] = "random" # APOLLO投影算法
apollo_proj_type: Literal["std", "right", "left"] = "std" # APOLLO投影类型
apollo_scale_type: Literal["channel", "tensor"] = "channel" # APOLLO缩放类型
apollo_layerwise: bool = False # 是否启用分层更新
apollo_scale_front: bool = True # 是否前置缩放
evaluation_args.py
评估配置参数
task: str # 评估任务名称
task_dir: str = "evaluation" # 评估任务目录
batch_size: int = 4 # 评估批次大小
seed: int = 42 # 随机种子
lang: Literal["en", "zh"] = "en" # 评估语言
n_shot: int = 5 # 少样本学习示例数
save_dir: Optional[str] # 结果保存目录
download_mode: DownloadMode = REUSE_DATASET_IF_EXISTS # 数据集下载模式
generation_args.py
生成配置参数
do_sample: bool = True # 是否使用采样
temperature: float = 0.95 # 温度参数
top_p: float = 0.7 # 核采样参数
top_k: int = 50 # 最高概率筛选数量
num_beams: int = 1 # 束搜索数量
max_length: int = 1024 # 最大长度
max_new_tokens: int = 1024 # 最大新生成token数
repetition_penalty: float = 1.0 # 重复惩罚
length_penalty: float = 1.0 # 长度惩罚
skip_special_tokens: bool = True # 是否跳过特殊token
更多推荐

所有评论(0)