LLaMA Factory 大模型微调、导出与量化指南
- 模型种类:LLaMA、LLaVA、Mistral、Mixtral-MoE、Qwen、Yi、Gemma、Baichuan、ChatGLM、Phi 等等。
- 训练算法:(增量)预训练、(多模态)指令监督微调、奖励模型训练、PPO 训练、DPO 训练、KTO 训练、ORPO 训练等等。
- 运算精度:16 比特全参数微调、冻结微调、LoRA 微调和基于 AQLM/AWQ/GPTQ/LLM.int8/HQQ/EETQ 的 2/3/4/5/6/8 比特 QLoRA 微调。
- 优化算法:GaLore、BAdam、DoRA、LongLoRA、LLaMA Pro、Mixture-of-Depths、LoRA+、LoftQ 和 PiSSA。
- 加速算子:FlashAttention-2 和 Unsloth。
- 推理引擎:Transformers 和 vLLM。
- 实验监控:LlamaBoard、TensorBoard、Wandb、MLflow、SwanLab 等等。
GitHub 地址: https://github.com/hiyouga/LLaMA-Factory
官方文档: https://llamafactory.readthedocs.io/zh-cn/latest/
一、安装 LLaMA Factory
将源码下载到本地,cd 到根目录进行安装。
conda create -n llamafactory python=3.10 -y
conda activate llamafactory
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"
在根目录启动 WebUI。记住一定要在 LLaMA Factory 的根目录启动。
llamafactory-cli webui
默认启动的端口是 7860。
二、LLaMA Factory 微调入门
1. 选择一个大模型
从魔塔社区下载 Qwen2.5-0.5B-Instruct 到本地,对该模型进行微调训练。
# 模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('Qwen/Qwen2.5-0.5B-Instruct', cache_dir="/root/autodl-tmp/llm")
2. 选择一个数据集
LLaMA Factory 的源码里默认提供了很多种可直接训练的数据集,在 data 目录下。我们就拿 identity.json 身份认知训练集来做微调。
将里面的占位符替换成合适的文字,并且保存。
3. 指令监督微调数据集介绍
指令监督微调 (Instruct Tuning) 通过让模型学习详细的指令以及对应的回答来优化模型在特定指令下的表现。
instruction 列对应的内容为人类指令,input 列对应的内容为人类输入,output 列对应的内容为模型回答。下面是一个例子。
"alpaca_zh_demo.json": {


