基本概念
在使用LLaMA Factory之前,用户可能需要了解该产品所涉及的概念。本文为用户介绍LLaMA Factory的基本概念,以便于用户更好地使用LLaMA Factory。
WebUI
LLaMA-Factory 支持通过 WebUI 零代码微调大语言模型。您可以通过llamafactory-cli webui指令进入 WebUI,WebUI主要分为四个界面:训练、评估与预测、对话、导出。 在开始训练模型之前,您需要指定参数的参数都需要在训练界面进行配置。涉及的参数有:模型名称及路径、训练阶段、微调方法、训练数据集、学习率、训练轮数、输出目录及配置路径、微调参数等其他参数。模型训练完毕后,您可通过在评估与预测界面通过指定的数据路径、截断长度、Top-p采样值、温度系数、输出目录等参数。您可通过在对话界面指定推理引擎、推理数据类型后,输入对话内容与模型进行对话观察效果。如果您对模型效果满意并需要导出模型,您可在导出界面通过指定最大分块大小、导出量化等级数据集、导出设备和目录等参数后,点击导出按钮导出模型。
数据处理
LLaMA Factory 支持Alpaca格式和ShareGPT格式的数据集。如果您希望使用自定义数据集,请务必 在dataset_info.json
文件中添加对数据集及其内容的定义,dataset_info.json
包含了所有经过预处理的本地数据集以及在线数据集。
训练方法
LLaMA Factory 支持预训练(Pre-training)和后训练(Post-training)。LLaMA Factory支持多种后训练技术,包括:Supervised Fine-Tuning、RLHF(Reinforcement Learning from Human Feedback) 、DPO、KTO(Kahneman-Taversky Optimization)等。
训练参数
下表为部分训练参数描述:
名称 | 描述 |
---|---|
model_name_or_path | 模型名称或路径 |
stage | 训练阶段,可选: rm(reward modeling), pt(pretrain), sft(Supervised Fine-Tuning), PPO, DPO, KTO, ORPO |
do_train | true用于训练, false用于评估 |
finetuning_type | 微调方式。可选: freeze, lora, full |
lora_target | 采取LoRA方法的目标模块,默认值为 all |
dataset | 使用的数据集,使用”,”分隔多个数据集 |
template | 数据集模板,请保证数据集模板与模型相对应 |
output_dir | 输出路径 |
logging_steps | 日志输出步数间隔 |
save_steps | 模型断点保存间隔 |
overwrite_output_dir | 是否允许覆盖输出目录 |
per_device_train_batch_size | 每个设备上训练的批次大小 |
gradient_accumulation_steps | 梯度积累步数 |
max_grad_norm | 梯度裁剪阈值 |
learning_rate | 学习率 |
lr_scheduler_type | 学习率曲线,可选 linear, cosine, polynomial, constant 等 |
num_train_epochs | 训练周期数 |
bf16 | 是否使用 bf16 格式 |
warmup_ratio | 学习率预热比例 |
warmup_steps | 学习率预热步数 |
push_to_hub | 是否推送模型到 Huggingface |
训练加速
LLaMA-Factory 支持多种加速技术,包括:FlashAttention、Unsloth、Liger Kernel。如果用户想体验加速技术,您可以在启动训练时在训练配置文件中添加参数。
调优算法
LLaMA-Factory 支持多种调优算法,包括:Full Parameter Fine-tuning、Freeze、LoRA、Galore、BAdam。
分布式训练
LLaMA-Factory 支持单机多卡和多机多卡分布式训练,同时支持 DDP、DeepSpeed和FSDP三种分布式引擎。
合并
当基于预训练模型训练好 LoRA 适配器后,如您不希望在每次推理的时候分别加载预训练模型和 LoRA 适配器。因此需要将预训练模型和 LoRA 适配器合并导出成一个模型,并根据需要选择是否量化。
量化
量化通过数据精度压缩有效地减少了显存使用并加速推理。LLaMA-Factory 支持多种量化方法,包括:AQLM、AWQ、GPTQ、QLoRA等。
推理 LLaMA-Factory 支持多种推理方式,包括:原始模型推理、微调模型推理配置、多模态模型、批量推理。
通用能力评估
在完成模型训练后,您可以通过 llamafactory-cli eval examples/train_lora/llama3_lora_eval.yaml 来评估模型效果。
NLG评估
此外,用户还可以通过llamafactory-cli train examples/extras/nlg_eval/llama3_lora_predict.yaml
来获得模型的BLEU和ROUGE分数以评价模型生成质量。
实验监控
LLaMA-Factory 支持多种训练可视化工具,包括:TensorBoard、Wandb、MLflow等。如果您想使用WandbTensorBoard、MLflow等工具,您可以在WebUI的 其他参数设置 模块中的 启用外部记录面板 中开启。
关于license,请按照LLama Factory的版权要求使用,请参考该链接内容。