模型微调

Fine-Tuning

Fine-Tuning 微调是在一个已经预训练好的基础模型(Base Model)上,使用小规模领域特定数据继续训练若干步,让模型适配特定行业/任务/语气;相比只改 Prompt,微调能获得更稳定的能力提升。

详细解释

微调(Fine-Tuning,缩写 FT) 是”把通用大模型改造成行业模型”的经典手段。2018 年 BERT 时代就形成了”预训练 + 微调”的两段式标准范式:第一阶段(预训练,Pre-Train)拿全网海量语料学”通用知识和语言能力”,烧钱烧算力;第二阶段(微调,Fine-Tune)拿客户自己的几千到几万条领域数据再学一会儿,便宜得多且效果定向提升。

2023 年之后,纯全参数(Full-Parameter)微调逐渐被以下 3 种参数高效微调(PEFT,Parameter-Efficient Fine-Tuning)取代:

方法代表训练参数量占比显存需求效果
全参数微调早期 ChatGLM 时代100%(70B = 700 亿参数)极高(70B 需要 8×A100 80G + ZeRO-3)最强
LoRA(低秩适应)2021 Microsoft 论文0.1% – 1%低(单卡 A100 能跑 70B LoRA)接近全参
QLoRA(量化 LoRA)2023 Tim Dettmers 论文0.1% – 1%极低(消费级 24G 显卡能跑 70B)接近 LoRA
P-Tuning v2 / Prompt Tuning早期软提示不到 0.01%最低略弱,现在基本不用了

OpenAI、Anthropic、唯元智创 等厂商的 SaaS 托管微调:上传数据 → 排队 → 产出专属模型名 → 像普通模型一样 API 调用。

参考:OpenAI 微调文档

什么时候该微调,什么时候不该?

信号该不该 FT?替代方案
我想让模型”说话语气像我司品牌”微调合适(风格是强分布对齐)Prompt Engineering + System Prompt
我想让模型”知道 2025 年最新产品手册”❌ 不要微调(知识注入 RAG 成本低 100 倍)RAG(检索增强生成)
我想让模型”输出格式严格按我家 JSON”一般不用结构化输出 / JSON Mode
我想让模型”从 80% 准确率涨到 95%,几万条高质量标注已备好”✅ 微调主场先拿 Few-Shot 做基线,再看 FT 的边际收益
我没有任何标注数据❌ 不要瞎调,不如写好 PromptPrompt Engineering
我要低延迟高吞吐,几千 qps 全量调 RAG 成本扛不住✅ FT 蒸馏知识,推理省一大半知识蒸馏 把大模型压成小模型

一次微调的标准流程

  1. 数据准备(占 70% 时间):格式一般是 {"messages": [...]} JSONL,数千到数万条;数据清洗 >> 数据量,脏数据不如不调。
  2. 划分 train/valid/test(9:0.5:0.5):valid 集选 500 条左右看 loss 收敛,test 集拿人工或 LLM-as-Judge 评效果。
  3. 选基础模型 + 选 PEFT 方法:一般 7B–70B 选 QLoRA(4bit),小数据量优先 LoRA rank=8 至 64,α=2×rank。
  4. 训练:学习率 1e-5 至 5e-5,2–5 epoch;全程看 valid loss 不上升即停(早停)。
  5. 评估 & AB 对比永远和基线(不微调的 prompt 方案)做 A/B,微调后准确率、延迟、成本、幻觉 率 4 张表一起看。
  6. 发布上线:生成新模型名 ft:gpt-4o-mini:my-org::xxxxxx,业务代码替换 model 字段即可;配合【回滚】准备随时切回基线。

常见问题

微调过的模型还能享受原厂模型小版本升级吗?
不能。微调产物是”基于某个具体 checkpoint 的衍生品”,原厂把基础模型从 2024-05-13 升级到 2025-01-01 不会自动同步到你的微调模型上。一般做法是 每 3–6 个月在新基线上再调一次,复用你的数据集就行。
微调会不会把原有的通用能力”调没了”(灾难性遗忘)?
全参微调确实会,这是经典的”灾难性遗忘 Catastrophic Forgetting”。但 LoRA/QLoRA 基本不会——因为 99% 以上的权重是冻结的基座,只在 LoRA A/B 矩阵上学你注入的风格/格式分布,原模型知识还在。实践中的经验是:QLoRA 之后通用能力下降不超过 1–2%,绝大多数业务场景无感。
微调一次多少钱?数据量和成本如何对应?
SaaS 托管微调按 训练 Token 数 × 模型微调单价 计费。经验值:gpt-4o-mini 级别 100 万训练 Token 约 ¥60–¥120;1 万条对话级数据(平均 1000 tokens/条)约 1000 万 Token → ¥600–¥1200。自托管 A100 80G 单卡时薪约 ¥30–¥60,7B QLoRA 一次 3 epoch 半天到一天,¥500 以内。唯元智创 提供私有化微调一体机 + 调优顾问服务,企业客户可直接约。