加载中...

LLaMA-Factory

高效、灵活的大规模语言模型微调框架

支持超过100种主流模型和多种训练方法,为开发者提供从基础预训练到多阶段强化学习的全流程解决方案

核心功能与定位

强大的功能,简单的使用

多模型支持

覆盖LLaMA、BLOOM、Mistral、Baichuan、Qwen、ChatGLM等主流架构,参数规模横跨2B至102B

全阶段训练

支持基础训练、指令监督微调、对齐优化(PPO、DPO)和多模态扩展

资源优化

集成LoRA、QLoRA等技术,显著降低显存需求,提高训练效率

技术架构与核心组件

模块化设计,高效可扩展的微调框架

Model Loader

动态量化

支持8/4-bit量化,自动适配不同硬件配置,显存占用减少50%-80%

适配器注入

自动识别模型层并附加LoRA、QLoRA、AdaLoRA等适配器,支持多种PEFT方法

硬件优化

集成FlashAttention-2、DeepSpeed ZeRO等技术,提升训练效率

Data Worker

格式标准化

支持Alpaca、ShareGPT、OpenAI等多种数据格式,自动转换和预处理

流式处理

大型数据集的分批加载与预处理,支持TB级数据集训练

数据质量控制

内置数据清洗、去重、质量评估功能,确保训练数据质量

多阶段训练策略

预训练

从零开始训练或继续预训练,支持大规模语料库

监督微调

指令跟随训练,提升模型对话和任务执行能力

奖励建模

训练奖励模型,为强化学习提供反馈信号

强化学习

PPO、DPO等算法优化模型输出质量和安全性

支持的模型

覆盖100+主流大语言模型

主流架构

🦙
LLaMA
1/2/3
💬
ChatGLM
2/3/4
🌟
Qwen
1.5/2/2.5
🏔️
Baichuan
1/2
🌪️
Mistral
7B/8x7B
🦅
Falcon
7B/40B

参数规模分布

小型模型 (2B-7B)
67%
中型模型 (13B-34B)
25%
大型模型 (70B+)
8%

微调方法详解

多种高效微调技术,满足不同场景需求

LoRA

低秩适应

核心原理

通过低秩矩阵分解,仅训练少量参数实现高效微调

性能指标

  • • 参数量:原模型的0.1%-1%
  • • 显存占用:减少60%-70%
  • • 训练速度:提升2-3倍

适用场景

中等规模数据集,平衡性能与效率

QLoRA

量化LoRA

核心原理

结合4-bit量化与LoRA,极大降低显存需求

性能指标

  • • 参数量:原模型的0.1%-1%
  • • 显存占用:减少75%-85%
  • • 精度损失:<1%

适用场景

资源受限环境,消费级GPU训练大模型

AdaLoRA

自适应LoRA

核心原理

动态调整不同层的秩,优化参数分配

性能指标

  • • 参数量:比LoRA减少30%-50%
  • • 性能提升:5%-15%
  • • 收敛速度:提升20%-30%

适用场景

追求最优性能,复杂任务微调

微调方法性能对比

方法 可训练参数 显存占用 训练速度 模型性能 推荐指数
全参数微调
100% 100% 1x
LoRA
0.1%-1% 30%-40% 2-3x
QLoRA
0.1%-1% 15%-25% 1.8-2.5x
AdaLoRA
0.05%-0.5% 25%-35% 2.5-3.5x

性能评估

不同优化方法的详细对比

优化方法 内存占用 吞吐量 PPL 适用场景
QLoRA
5.21 GB 3158.59 Tokens/s 10.46 低显存设备
LoRA
7.84 GB 2845.12 Tokens/s 9.87 平衡性能
GaLore
9.15 GB 2103.45 Tokens/s 8.92 高精度需求

应用场景

广泛的行业应用与社区生态

垂直领域适配

法律、医疗、金融等行业的领域知识注入,满足特定行业需求

法律咨询 医疗诊断 金融分析

多模态扩展

支持LLaVA等视觉语言模型,实现图像理解、工具调用等多模态能力

图像理解 视频分析 工具调用

开源生态

GitHub星标超25,000,集成Hugging Face、Wandb、MLflow等生态工具

25K+ Stars 活跃社区 生态集成

性能对比

不同优化方法的性能表现

快速开始

几分钟内完成安装配置

安装步骤

# 克隆仓库
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory

# 创建虚拟环境
conda create -n llama_factory python=3.10 -y
conda activate llama_factory

# 安装依赖
pip install -e ".[torch,metrics,deepspeed,qwen]"

实战教程

从零开始的完整微调流程

1

环境准备

硬件要求

GPU: NVIDIA RTX 3090/4090 或更高
显存: 24GB+ (QLoRA可降至12GB)
存储: 100GB+ SSD空间

软件环境

# 创建conda环境
conda create -n llama_factory python=3.10
conda activate llama_factory

# 安装CUDA (如果需要)
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia

# 安装LLaMA-Factory
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"
2

数据准备

数据格式示例

# Alpaca格式 (data/alpaca_data.json)
[
  {
    "instruction": "解释什么是机器学习",
    "input": "",
    "output": "机器学习是人工智能的一个分支..."
  },
  {
    "instruction": "翻译以下句子",
    "input": "Hello, how are you?",
    "output": "你好,你好吗?"
  }
]

数据集配置

# data/dataset_info.json
{
  "my_dataset": {
    "file_name": "alpaca_data.json",
    "formatting": "alpaca",
    "columns": {
      "prompt": "instruction",
      "query": "input", 
      "response": "output"
    }
  }
}
数据质量建议
  • • 确保数据格式一致,避免特殊字符
  • • 控制单条数据长度在2048 tokens以内
  • • 数据量建议1000-10000条用于微调
  • • 保持指令和回答的质量和相关性
3

模型微调

Web UI方式(推荐)

# 启动Web界面
llamafactory-cli webui

# 或者使用Python
python src/webui.py
基本配置
  • • 模型:选择Qwen2.5-7B-Instruct
  • • 微调方法:QLoRA
  • • 数据集:选择准备好的数据
  • • 学习率:5e-5
高级参数
  • • LoRA rank:16
  • • LoRA alpha:32
  • • 批次大小:4
  • • 训练轮数:3

命令行方式

# 使用QLoRA微调Qwen2.5-7B
llamafactory-cli train \
    --stage sft \
    --do_train \
    --model_name_or_path Qwen/Qwen2.5-7B-Instruct \
    --dataset my_dataset \
    --template qwen \
    --finetuning_type lora \
    --lora_target all \
    --output_dir ./saves/qwen2.5-7b/lora/sft \
    --overwrite_cache \
    --overwrite_output_dir \
    --cutoff_len 1024 \
    --preprocessing_num_workers 16 \
    --per_device_train_batch_size 4 \
    --per_device_eval_batch_size 1 \
    --gradient_accumulation_steps 8 \
    --lr_scheduler_type cosine \
    --logging_steps 10 \
    --warmup_steps 20 \
    --save_steps 100 \
    --eval_steps 50 \
    --evaluation_strategy steps \
    --load_best_model_at_end \
    --learning_rate 5e-5 \
    --num_train_epochs 3.0 \
    --max_samples 3000 \
    --val_size 0.1 \
    --plot_loss \
    --fp16
4

模型评估与部署

模型测试

# 启动聊天界面测试
llamafactory-cli chat \
    --model_name_or_path Qwen/Qwen2.5-7B-Instruct \
    --adapter_name_or_path ./saves/qwen2.5-7b/lora/sft \
    --template qwen \
    --finetuning_type lora
评估指标
  • • 困惑度 (Perplexity)
  • • BLEU分数
  • • 人工评估质量
  • • 任务特定指标

模型导出

# 导出合并后的模型
llamafactory-cli export \
    --model_name_or_path Qwen/Qwen2.5-7B-Instruct \
    --adapter_name_or_path ./saves/qwen2.5-7b/lora/sft \
    --template qwen \
    --finetuning_type lora \
    --export_dir ./exports/qwen2.5-7b-custom \
    --export_size 2 \
    --export_legacy_format False
部署选项
  • • vLLM高性能推理
  • • Ollama本地部署
  • • OpenAI兼容API
  • • 量化压缩部署

常见问题解答

Q: 显存不足怎么办?

A: 使用QLoRA量化、减小batch_size、启用gradient_checkpointing,或选择更小的模型。

Q: 训练速度太慢?

A: 使用DeepSpeed ZeRO、增加batch_size、使用多GPU训练,或选择更高效的优化器。

Q: 模型效果不理想?

A: 检查数据质量、调整学习率、增加训练轮数,或尝试不同的微调方法。

Q: 如何选择合适的模型?

A: 根据任务类型、硬件资源和性能要求选择,一般推荐从7B模型开始。

框架对比分析

LLaMA-Factory与主流微调框架的全面对比

特性对比 LLaMA-Factory Unsloth Axolotl Torchtune
支持模型数量 100+ 30+ 80+ 20+
训练方法 全流程 LoRA/QLoRA 多种方法 LoRA/全参数
用户界面 Web UI + CLI Colab Notebook YAML配置 Python API
多GPU支持 优秀 付费版 优秀 优秀
中文支持 原生支持 英文为主 英文为主 英文为主
学习曲线 简单 简单 中等 复杂
社区活跃度 25K+ Stars 15K+ Stars 7K+ Stars 1K+ Stars

LLaMA-Factory vs Unsloth

全能型 vs 性能特化

LLaMA-Factory优势

  • • 支持100+模型,覆盖面最广
  • • 完整的训练流程:预训练→SFT→RLHF
  • • Web UI界面,操作简单直观
  • • 原生中文支持,文档完善
  • • 多GPU训练,企业级部署

Unsloth优势

  • • 单GPU训练速度快2-5倍
  • • 显存占用极低,消费级GPU可用
  • • Colab免费使用,门槛低
  • • 专注优化,性能极致

选择建议

选择LLaMA-Factory:需要完整训练流程、多模型支持、企业级应用
选择Unsloth:资源受限、追求极致性能、快速原型验证

LLaMA-Factory vs Axolotl

易用性 vs 灵活性

LLaMA-Factory优势

  • • Web UI降低使用门槛
  • • 内置最佳实践配置
  • • 中文社区支持
  • • 一站式解决方案

Axolotl优势

  • • YAML配置灵活性高
  • • 社区贡献丰富
  • • 支持更多实验性功能
  • • 深度定制能力强

选择建议

选择LLaMA-Factory:快速上手、标准化流程、团队协作
选择Axolotl:深度定制、实验研究、高级用户

性能基准测试

训练速度

Qwen2.5-7B微调 (1000样本)

LLaMA-Factory 45分钟
Unsloth 18分钟
Axolotl 52分钟

显存占用

QLoRA微调 (batch_size=4)

LLaMA-Factory 12.5GB
Unsloth 8.2GB
Axolotl 14.1GB

模型质量

BLEU分数 (翻译任务)

LLaMA-Factory 28.5
Unsloth 28.2
Axolotl 28.7
* 测试环境:RTX 4090 24GB,基于相同数据集和超参数配置

性能对比

不同优化方法的性能表现

关注我的更多内容

扫描二维码,获取更多AI技术分享和实战教程

抖音

AI技术短视频分享

抖音二维码

@程序员佐毅

哔哩哔哩

深度技术教程

B站二维码

@程序员佐毅

微信视频号

实战案例分享

视频号二维码

程序员佐毅

💡 持续分享AI大模型、机器学习、深度学习等前沿技术内容