【LLaMA-Factory】3分钟上手:小白也能玩转大模型微调(附代码)

326 阅读4分钟

本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在智泊AI

❝ 你是否也曾被大模型微调的高门槛劝退?显卡贵、代码复杂、配置繁琐... 今天给大家带来一个「零代码」解决方案——LLaMA-Factory,让你轻松玩转100+大模型微调! ❞

🌟 什么是LLaMA-Factory?

LLaMA-Factory是一个「一站式大模型微调框架」,支持100+主流大模型的微调训练。它的口号是:「"让大模型微调像呼吸一样简单"」 💨

🎯 核心优势

  • ✅ 「零代码」操作,配置文件即可训练
  • ✅ 支持「LoRA/QLoRA」等高效微调技术
  • ✅ 「16GB显存」就能跑70B模型
  • ✅ 提供「Web UI」可视化界面
  • ✅ 支持「多模态」(文本+图像+音频)

🚀 3分钟快速上手

📋 环境准备

# 1. 安装LLaMA-Factory
pip install llamafactory

# 2. 验证安装
llamafactory-cli version

🎨 方式一:Web UI可视化操作(推荐新手)

# 启动Web界面
llamafactory-cli webui

访问 http://localhost:7860 即可看到漂亮的可视化界面:

┌─────────────────────────────────────────┐
│          LLaMA-Factory WebUI            │
│  ┌─────────────┐  ┌─────────────┐       │
│  │ 模型选择    │  │ 训练方式    │       │
│  │ • LLaMA3    │  │ • LoRA      │       │
│  │ • Qwen      │  │ • 全参数    │       │
│  │ • ChatGLM   │  │ • QLoRA     │       │
│  └─────────────┘  └─────────────┘       │
│  ┌─────────────┐  ┌─────────────┐       │
│  │ 数据集      │  │ 训练参数    │       │
│  │ • alpaca    │  │ • 学习率    │       │
│  │ • 自定义    │  │ • batch_size│       │
│  └─────────────┘  └─────────────┘       │
│          [开始训练] [保存配置]           │
└─────────────────────────────────────────┘

⚙️ 方式二:配置文件(推荐进阶用户)

创建配置文件 train.yaml:

### 模型配置
model_name_or_path:meta-llama/Meta-Llama-3-8B-Instruct# 使用LLaMA3-8B模型
trust_remote_code:true                                  # 信任远程代码

### 训练方法
stage:sft                                               # 监督微调
do_train:true                                           # 执行训练
finetuning_type:lora                                    # 使用LoRA技术
lora_rank:8                                             # LoRA秩,控制参数量
lora_target:all                                         # 作用于所有层

### 数据集配置
dataset:identity,alpaca_en_demo                          # 训练数据集
template:llama3                                          # 对话模板
cutoff_len:2048                                         # 最大序列长度
max_samples:1000                                        # 最大样本数

### 训练参数
per_device_train_batch_size:1                           # 每设备批次大小
gradient_accumulation_steps:8                           # 梯度累积步数
learning_rate:1.0e-4                                    # 学习率
num_train_epochs:3.0                                    # 训练轮数
lr_scheduler_type:cosine                                # 学习率调度器

### 输出配置
output_dir:saves/llama3-8b/lora/sft                     # 输出目录
logging_steps:10                                        # 日志步数
save_steps:500                                          # 保存步数

一键启动训练:

llamafactory-cli train train.yaml

📊 训练流程图解

转存失败,建议直接上传图片文件

添加图片注释,不超过 140 字(可选)

🎯 实战案例:自定义医疗问答模型

1️⃣ 准备数据集

创建医疗问答数据集 medical_data.json:

[  {    "instruction""患者:我最近总是头痛,可能是什么原因?",    "input""",    "output""头痛可能由多种原因引起,包括:1. 紧张性头痛(最常见)2. 偏头痛 3. 颈椎问题 4. 睡眠不足 5. 眼睛疲劳。建议详细描述头痛的性质、部位、持续时间等,以便更准确判断。"  },  {    "instruction""患者:我感冒了,应该吃什么药?",    "input""",    "output""普通感冒通常不需要特殊药物治疗,建议:1. 多休息,保证充足睡眠 2. 多喝温水 3. 可服用维生素C增强免疫力 4. 如有发热可适量服用退烧药 5. 症状严重或持续不缓解请及时就医"  }]

2️⃣ 配置训练文件

### 模型配置
model_name_or_path:qwen/Qwen-7B-Chat# 使用Qwen-7B中文模型

### 训练配置
stage:sft
do_train:true
finetuning_type:lora
lora_rank:16                          # 增大秩以获得更好效果
lora_target:all

### 数据集配置
dataset:medical_qa                    # 自定义数据集
template:qwen                         # Qwen模板
cutoff_len:4096                       # 支持更长文本
max_samples:5000                      # 更多训练样本

### 训练参数
per_device_train_batch_size:2
gradient_accumulation_steps:4
learning_rate:5.0e-5                  # 稍小学习率
num_train_epochs:5.0                  # 更多训练轮数
warmup_ratio:0.1                      # 预热比例

### 输出配置
output_dir:saves/qwen-7b-medical-lora
logging_steps:50
save_steps:1000
plot_loss:true                        # 绘制损失曲线

3️⃣ 开始训练

# 启动训练
llamafactory-cli train medical_train.yaml

# 监控训练进度
tensorboard --logdir saves/qwen-7b-medical-lora/runs

📈 性能对比表格

模型大小训练方式显存占用训练时间效果评分
7B全参数微调28GB8小时9.2/10
7BLoRA微调16GB2小时8.8/10
7BQLoRA微调10GB2.5小时8.5/10
13BLoRA微调22GB4小时9.1/10
70BLoRA微调24GB12小时9.5/10

🔧 模型推理使用

训练完成后,使用模型进行推理:

from transformers import AutoModelForCausalLM, AutoTokenizer

学习资源推荐

如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。

本文较长,建议点赞收藏。更多AI大模型应用开发学习视频及资料,在智泊AI