模型技术

Fine-tuning

微调

Fine-tuning(微调)指在预训练大模型基础上,用领域特定数据进一步训练,让模型适配特定任务或风格。与 Prompt Engineering、RAG 并列为让 LLM 学会领域知识的三种方式。本文拆解微调的原理、三类方法、与 RAG/Prompt 的对比、适用场景与踩坑要点。

2026-08-05
Fine-tuning微调LLM模型训练基础概念

什么是 Fine-tuning

Fine-tuning(微调) 指在已经预训练好的大语言模型(如 GPT-4、Llama 3)基础上,用特定领域或特定任务的数据继续训练,让模型在该领域表现更好、更符合特定风格或规范。

打个比方:

  • 预训练 = 读完了整个图书馆(通用知识)
  • 微调 = 又读了一个月的专业书(领域专精)

微调不是从零训练,而是"站在巨人的肩膀上"调整参数,计算成本远低于预训练,但能显著改变模型行为。

三种让 LLM 学会领域知识的方式

让 LLM 掌握特定领域知识,主流有三种方式:

方式原理成本适合场景
Prompt Engineering在输入中提供指令/示例极低通用任务、快速验证
RAG外挂知识库,实时检索事实型问答、知识更新频繁
Fine-tuning改变模型参数中-高风格固定、领域专精、低延迟

三者不是互斥关系,可组合使用:Fine-tune 模型风格 + RAG 提供事实 + Prompt 给具体指令

Fine-tuning 的三类方法

1. 全量微调(Full Fine-tuning)

更新模型所有参数

  • 优点:效果最好,模型能深度学习领域特征
  • 缺点:计算成本高(需 GPU 集群)、易过拟合、灾难性遗忘
  • 适合:大型机构、有充足算力、追求极致效果
  • 代表:BERT fine-tuning、早期 GPT-3 fine-tuning

2. 参数高效微调(PEFT)

只更新模型极少部分参数(<1%),其余冻结。

最流行的是 LoRA(Low-Rank Adaptation):

  • 原理:在原模型权重旁加一个"低秩矩阵",只训练这个矩阵
  • 优点:训练快 10 倍、显存占用降 70%、可叠加多个 LoRA
  • 缺点:效果略逊全量微调(差距 <5%)
  • 适合:中小团队、个人开发者、单卡 GPU
  • 代表:LoRA、QLoRA、Adapter、Prefix Tuning

3. 指令微调(Instruction Tuning)

用"指令-回答"对训练模型,让它学会遵循指令

  • 原理:构造 {instruction, input, output} 三元组数据
  • 优点:让模型从"续写文本"变成"听指令办事"
  • 缺点:需要高质量指令数据(500-10000 条)
  • 适合:让模型适配特定任务格式(如客服对话、代码生成)
  • 代表:Alpaca、Vicuna、ChatML 格式微调

微调 vs RAG vs Prompt 对比

维度Prompt EngineeringRAGFine-tuning
改变模型参数
知识来源输入文本外部数据库训练数据
知识更新改 Prompt 即可更新数据库需重新训练
计算成本低(向量检索)中-高
延迟高(输入长)
风格定制
事实准确性中(会幻觉)
数据需求0文档库500+ 样本
上手难度极低

什么时候该用 Fine-tuning

✅ 适合微调的场景

  1. 固定风格:想让模型始终用某种语气写作(如品牌文案、法律文书)
  2. 领域专精:医疗、法律、金融等高度专业领域
  3. 降低延迟:把长 Prompt 的知识"压缩"进模型,输入更短、响应更快
  4. 格式固定:想让模型始终输出特定 JSON/XML 格式
  5. 成本优化:微调小模型 + 短 Prompt,比大模型 + 长 Prompt 更省钱
  6. 隐私敏感:数据不能发到云端,需本地微调开源模型

❌ 不适合微调的场景

  1. 知识频繁更新:如新闻、股价、库存 → 用 RAG
  2. 数据量不足:少于 100 条样本 → 用 Few-shot Prompt
  3. 任务多样:今天写代码、明天写诗 → 通用模型 + Prompt
  4. 预算有限:微调需 GPU + 标注数据,成本高于 RAG
  5. 需要可解释性:微调是黑盒,RAG 可溯源

微调流程(以 LoRA 为例)

步骤 1:准备数据

格式(Alpaca 风格):

{
  "instruction": "把以下句子改为正式商务语气",
  "input": "咱们下周搞个会呗",
  "output": "建议下周召开一次会议,请您确认时间。"
}

数据量建议

  • 指令微调:500-5000 条
  • 风格微调:1000-10000 条
  • 领域微调:5000-50000 条

质量 > 数量:1000 条高质量 > 10000 条低质量。

步骤 2:选择基座模型

模型参数量显存需求适合
Llama 3.2 1B1B4GB个人实验
Llama 3.2 3B3B8GB轻量任务
Mistral 7B7B16GB通用微调
Llama 3 8B8B16GB通用微调
Qwen 2.5 7B7B16GB中文优秀
Llama 3 70B70B多卡极致效果

步骤 3:配置 LoRA 参数

from peft import LoraConfig, get_peft_model

lora_config = LoraConfig(
    r=8,                    # 秩,越大效果越好但越慢
    lora_alpha=32,          # 缩放因子,通常为 r 的 2-4 倍
    target_modules=["q_proj", "v_proj"],  # 微调哪些层
    lora_dropout=0.05,      # 防过拟合
    bias="none",
    task_type="CAUSAL_LM"
)

步骤 4:训练

from transformers import TrainingArguments, Trainer

training_args = TrainingArguments(
    output_dir="./lora-output",
    num_train_epochs=3,
    per_device_train_batch_size=4,
    learning_rate=2e-4,
    save_steps=100,
    logging_steps=10,
)

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=dataset,
)
trainer.train()

步骤 5:评估与部署

  • 评估:用领域测试集评估,关注准确率、风格一致性
  • 部署:合并 LoRA 权重 → 量化(GGUF)→ 部署到 vLLM / Ollama

常见误区

  • 误区 1:微调能解决幻觉。错。微调甚至可能加剧幻觉,需配合 RAG。
  • 误区 2:数据越多越好。错。低质量数据会"教坏"模型,1000 条精选 > 10000 条噪声。
  • 误区 3:微调后不需要 Prompt。错。仍需 Prompt 给具体指令,微调只是"调风格"。
  • 误区 4:微调比 RAG 高级。错。两者解决不同问题,RAG 处理事实、微调处理风格。
  • 误区 5:开源模型微调后能超过 GPT-4。错。7B 微调后可能在特定任务上接近 GPT-3.5,但远不及 GPT-4。
  • 误区 6:灾难性遗忘无解。可缓解:混入通用数据、用低学习率、用 LoRA(影响小)。

主流微调工具

工具特点适合
Hugging Face PEFT官方库,文档全开发者
LLaMA-FactoryWeb UI,零代码非技术用户
Axolotl配置驱动,复现性强研究者
Unsloth速度最快,显存省 50%资源受限
OpenAI Fine-tuning API闭源模型,简单易用GPT 用户

微调成本估算(2026 年)

方案硬件时间成本
Llama 3 8B + LoRA1×RTX 40903 小时$5(云 GPU)
Llama 3 70B + LoRA4×A100 80G8 小时$80
GPT-4o Fine-tuning API无需硬件30 分钟$50(1000 样本)
Qwen 2.5 7B + QLoRA1×RTX 30902 小时$3

与其他术语的关系

  • LLM:大语言模型,微调的"基座"
  • RAG:检索增强生成,与微调互补
  • Hallucination:幻觉,微调可能加剧
  • Token:token,微调数据的基本单位
  • Embedding:嵌入,RAG 用,微调不用

小结

Fine-tuning 是让 LLM 深度适配特定领域或风格的核心技术,与 Prompt Engineering、RAG 并列为三大领域知识注入方式。选型原则:

  • 快速验证 → Prompt Engineering
  • 事实问答 → RAG
  • 风格/格式/领域专精 → Fine-tuning
  • 极致效果 → 三者组合

对于中小团队,优先尝试 LoRA 微调开源模型(如 Qwen 2.5 7B),成本低、效果可控。对于个人开发者,先用 RAG + Prompt 兜底,确认需求后再考虑微调。理解 Fine-tuning 的能力边界,才能避免"拿着锤子找钉子"。