跳转至

模型微调教程

LoRA、QLoRA 微调实战,从数据准备到模型部署

大模型微调(Fine-tuning)是指在预训练模型基础上,使用特定领域数据进行进一步训练,使模型适应特定任务或领域。

为什么需要微调?

  • 领域适配:让通用模型理解专业术语和行业知识
  • 任务定制:优化模型在特定任务上的表现
  • 风格控制:调整模型的输出风格和格式
  • 成本优化:相比从头训练,微调成本更低

微调方法对比

方法 参数量 显存需求 效果 适用场景
全量微调 100% 最好 数据充足、资源充足
LoRA <1% 较好 资源有限、快速迭代
QLoRA <1% 极低 较好 消费级显卡

章节目录

章节 标题 内容概要
第一章 微调基础概念 方法对比、流程概览
第二章 数据准备与处理 数据格式、清洗、增强
第三章 LoRA 微调实战 完整训练流程
第四章 QLoRA 量化微调 消费级显卡微调
第五章 模型评估与部署 评估方法、部署方案

快速开始

LoRA 微调

from peft import LoraConfig, get_peft_model
from transformers import AutoModelForCausalLM

# 加载模型
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2-7B")

# 配置 LoRA
config = LoraConfig(
    r=16,
    lora_alpha=32,
    target_modules=["q_proj", "v_proj"],
    lora_dropout=0.05,
)

model = get_peft_model(model, config)

QLoRA 微调(4-bit)

from transformers import BitsAndBytesConfig

bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.float16,
)

model = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen2-7B",
    quantization_config=bnb_config,
    device_map="auto"
)

显存需求

模型大小 LoRA (FP16) QLoRA (4bit)
7B ~16GB ~6GB
13B ~30GB ~10GB
70B ~160GB ~48GB

相关教程