LLaMA-Factory(Large Language Model Factory)是由北航团队开源的高效大语言模型(LLM)微调框架,旨在简化大型语言模型的定制化训练流程,支持超过100种主流模型和多种先进微调技术。以下从核心功能、安装部署、微调流程和应用场景四个方面详细介绍:
一、核心功能与特点
-
广泛的模型支持
- 支持 LLaMA 3、Mistral、Qwen、ChatGLM、Gemma、Phi、Yi、Baichuan 等超100种开源模型[citation:1][citation:5][citation:6]。
- 快速集成前沿模型(如Llama 3),并提供多语言适配能力。
-
高效微调算法
- 参数量化技术:支持 2/3/4/5/6/8 比特的 QLoRA 微调,显存占用降低至 LoRA 的 1/4 以下,实现单卡训练超大规模模型[citation:1][citation:6][citation:7]。
- 低秩适配技术:
- LoRA:通过低秩矩阵分解冻结原模型权重,仅训练新增参数(占原模型1%-3%),显存需求降低 60%[citation:6][citation:7]。
- QLoRA:结合量化与低秩适配,进一步压缩显存占用[citation:7]。
- 先进算法集成:支持 DoRA(权重分解)、LongLoRA(长上下文优化)、GaLore(梯度低秩投影)等,提升训练效率和模型性能[citation:5][citation:6]。
-
全流程工具链
- 训练范式:覆盖增量预训练、指令监督微调(SFT)、奖励模型训练、PPO/DPO/KTO 对齐训练等[citation:5][citation:6]。
- 监控与评估:集成 TensorBoard、WandB、MLflow 等工具实时监控训练指标,支持 ROUGE、BLEU 等自动评估[citation:1][citation:7]。
- 推理加速:基于 vLLM 提供 OpenAI 风格 API、命令行和 Gradio 交互界面,推理速度提升 3.7 倍[citation:1][citation:6]。
⚙️ 二、安装与部署
-
环境要求
- Python ≥ 3.8(推荐 3.10+),PyTorch ≥ 2.1.2,NVIDIA GPU(≥24GB 显存)[citation:2][citation:4]。
- 依赖库:CUDA、cuDNN(GPU 加速)、Transformers、Datasets 等[citation:3]。
-
安装步骤
conda create -n llama_factory python=3.11
conda activate llama_factory
git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"
-
启动方式
- Web UI:运行
llamafactory-cli webui
或 python src/train_web.py
,访问 http://localhost:7860
[citation:2][citation:4]。
- 命令行:通过 YAML 配置文件执行训练/推理(示例:
llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml
)[citation:5][citation:6]。
三、微调流程详解
-
数据准备
- 格式要求:JSON 文件,包含
instruction
(任务指令)、input
(上下文)、output
(目标输出)字段[citation:2][citation:3]。
- 内置数据集:如 Alpaca,或自定义数据需放置在
data/
目录并注册至 dataset_info.json
[citation:3][citation:7]。
-
参数配置
- 关键参数:
参数项 |
推荐值 |
作用 |
learning_rate |
1e-5 ~ 5e-5 |
控制参数更新步幅 |
per_device_train_batch_size |
16-64 |
单GPU批大小 |
quantization_bit |
4 或 8 |
量化位数(QLoRA) |
num_train_epochs |
3-5 |
训练轮次 |
lora_rank |
8 |
LoRA矩阵秩大小 |
- 优化建议:梯度累积(
gradient_accumulation_steps=2
)解决显存不足;混合精度(bf16/fp16
)加速训练[citation:6][citation:7]。
-
训练与评估
- 在 Web UI 中选择模型、数据集和微调方法(如 LoRA),点击“开始训练”并监控损失曲线[citation:3][citation:8]。
- 评估:使用验证集计算 ROUGE 分数,对比微调前后性能[citation:7][citation:8]。
-
模型导出与部署
- 合并 LoRA 权重:
llamafactory-cli export examples/merge_lora/llama3_lora_sft.yaml
生成完整模型[citation:5]。
- 部署方式:通过 vLLM API 或 Hugging Face 格式部署至生产环境[citation:1][citation:6]。
四、应用场景与性能
- 典型场景:广告文案生成(ROUGE 分数提升)、智能客服、多模态任务(LLaVA)[citation:1][citation:6]。
- 性能优势:
- 比 ChatGLM 官方 P-Tuning 快 3.7 倍,显存占用减少 70%[citation:1]。
- 4 比特 QLoRA 微调可在消费级 GPU(如 RTX 3090)上训练 13B 参数模型[citation:6]。
未来发展与资源
- 扩展方向:支持多模态模型(如 LLaVA)、强化学习对齐(ORPO)、MoE 架构优化[citation:5][citation:6]。
- 学习资源:
- 官方文档:GitHub 项目
- 社区支持:微信开发者群、ModelScope 集成[citation:7][citation:8]。
LLaMA-Factory 通过模块化设计平衡高效性与灵活性,成为学术研究及工业落地的首选工具。其低代码界面和算法优化显著降低了大模型定制门槛,推动AI民主化进程[citation:1][citation:6][citation:7]。