AGI围城
首页
基础知识
工程实践
所见所思
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

AGI围城

是的,这个世界还是很有趣的。
首页
基础知识
工程实践
所见所思
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 提示词工程

  • 大模型API调用

  • OpenAI工具

  • 嵌入向量

  • 检索增强生成(RAG)

  • LlamaIndex

  • LangChain

  • Agent

  • Workflow

  • Transformer

  • 微调

    • 1.微调概述
    • 2.数据准备
    • 3.全量微调
    • 4.LoRA微调
    • 5.指令微调与对齐
    • 6.微调实战
      • 6.1 环境准备
        • 6.1.1 硬件要求
        • 6.1.2 安装 LLaMA-Factory
        • 6.1.3 启动 WebUI
      • 6.2 数据准备
        • 6.2.1 数据格式
        • 6.2.2 注册数据集
      • 6.3 训练配置
        • 6.3.1 WebUI 配置
        • 6.3.2 命令行配置
      • 6.4 模型评估
        • 6.4.1 WebUI 测试
        • 6.4.2 命令行推理
      • 6.5 模型导出
        • 6.5.1 合并 LoRA 权重
        • 6.5.2 部署方式
      • 6.6 常见问题
        • 6.6.1 显存不足
        • 6.6.2 训练损失不下降
        • 6.6.3 模型输出质量差
      • 6.7 进阶技巧
        • 6.7.1 多数据集混合
        • 6.7.2 NEFTune 噪声增强
        • 6.7.3 多 GPU 训练
  • MCP

  • A2A

  • 基础知识
  • 微调
xiao_sl
2025-04-20
目录

6.微调实战

本章介绍如何使用 LLaMA-Factory 进行大模型微调的完整流程。

# 6.1 环境准备

# 6.1.1 硬件要求

微调方法 7B 模型显存需求 推荐 GPU
QLoRA(4-bit) 6-8GB RTX 3060 12GB
LoRA(FP16) 16-24GB RTX 3090/4090
全量微调 60GB+ A100 80GB

# 6.1.2 安装 LLaMA-Factory

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

# 6.1.3 启动 WebUI

llamafactory-cli webui
1

访问 http://localhost:7860 即可看到图形界面。

# 6.2 数据准备

# 6.2.1 数据格式

LLaMA-Factory 支持多种数据格式,最常用的是 Alpaca 格式:

[
  {
    "instruction": "请介绍一下人工智能",
    "input": "",
    "output": "人工智能(AI)是计算机科学的一个分支..."
  }
]
1
2
3
4
5
6
7

ShareGPT 格式(多轮对话):

[
  {
    "conversations": [
      {"from": "human", "value": "你好"},
      {"from": "gpt", "value": "你好!有什么我可以帮助你的吗?"}
    ]
  }
]
1
2
3
4
5
6
7
8

# 6.2.2 注册数据集

在 data/dataset_info.json 中添加数据集信息:

{
  "my_dataset": {
    "file_name": "my_data.json",
    "formatting": "alpaca"
  }
}
1
2
3
4
5
6

将数据文件放入 data/ 目录即可。

# 6.3 训练配置

# 6.3.1 WebUI 配置

在 WebUI 中配置:

  • 模型:选择基座模型,如 Qwen2.5-7B-Instruct
  • 量化:选择 4-bit(QLoRA)或不量化
  • 数据集:选择注册的数据集
  • LoRA 参数:r=16, alpha=32
  • 训练参数:learning_rate=2e-4, epochs=3

# 6.3.2 命令行配置

创建 YAML 配置文件:

### 模型
model_name_or_path: Qwen/Qwen2.5-7B-Instruct
quantization_bit: 4

### 方法
stage: sft
finetuning_type: lora
lora_rank: 16
lora_alpha: 32
lora_target: all

### 数据
dataset: my_dataset
template: qwen
cutoff_len: 2048

### 训练
output_dir: saves/my_model
per_device_train_batch_size: 4
gradient_accumulation_steps: 4
learning_rate: 2.0e-4
num_train_epochs: 3
bf16: true
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

启动训练:

llamafactory-cli train config.yaml
1

# 6.4 模型评估

# 6.4.1 WebUI 测试

在 WebUI 的 Chat 标签页加载模型和 LoRA 适配器进行测试。

# 6.4.2 命令行推理

llamafactory-cli chat inference_config.yaml
1

# 6.5 模型导出

# 6.5.1 合并 LoRA 权重

llamafactory-cli export merge_config.yaml
1

配置文件:

model_name_or_path: Qwen/Qwen2.5-7B-Instruct
adapter_name_or_path: saves/my_model
template: qwen
finetuning_type: lora
export_dir: models/merged_model
1
2
3
4
5

# 6.5.2 部署方式

方式 特点
vLLM 高性能推理,支持批处理
Ollama 简单易用,本地部署
llama.cpp CPU 推理,资源占用低

# 6.6 常见问题

# 6.6.1 显存不足

  1. 减小 batch_size
  2. 增加 gradient_accumulation_steps
  3. 使用 4-bit 量化
  4. 减小 cutoff_len
  5. 减小 LoRA rank

# 6.6.2 训练损失不下降

  1. 调整学习率(尝试 1e-4 ~ 5e-4)
  2. 检查数据格式是否正确
  3. 检查数据质量

# 6.6.3 模型输出质量差

  1. 增加高质量训练数据
  2. 适当增加训练轮数
  3. 检查数据是否覆盖目标场景

# 6.7 进阶技巧

# 6.7.1 多数据集混合

dataset: dataset1,dataset2,dataset3
dataset_ratio: 0.3,0.3,0.4
1
2

# 6.7.2 NEFTune 噪声增强

neftune_noise_alpha: 5
1

在嵌入层添加噪声,提升模型泛化能力。

# 6.7.3 多 GPU 训练

accelerate launch --num_processes 4 -m llamafactory.train config.yaml
1
编辑 (opens new window)
#微调#实战#LLaMA-Factory
上次更新: 2025/12/19, 15:17:48
5.指令微调与对齐
1.MCP概述

← 5.指令微调与对齐 1.MCP概述→

最近更新
01
我是如何发现临时邮箱的?一个真实的故事
06-12
02
4.核心实现
05-26
03
3.A2A开发实践
05-22
更多文章>
Theme by Vdoing | Copyright © 2019-2025 AGI围城 | 桂ICP备2024034950号 | 桂公网安备45142202000030
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式