后训练入门:让大模型从「懂语言」到「会干活」
一、先分清:预训练 vs 后训练
大模型的生命分两个阶段,钱和难度都不在一个量级:
| 维度 | 预训练 Pre-training | 后训练 Post-training |
|---|---|---|
| 目标 | 学语言 + 世界知识 | 会对话、遵循指令、符合偏好 |
| 数据 | 海量无标注文本(TB 级) | 小批量标注 / 偏好数据(百~万级) |
| 成本 | 百万~千万美元、需超算 | 几百~几万、单卡/云平台可跑 |
| 产出 | 基座模型(base) | 对话 / 指令模型(instruct / chat) |
| 典型表现 | 像在「续写」,不会乖乖回答 | 能聊天、听指令、给结构化结果 |
一句话记忆法:预训练把「书读进去」,后训练把「能力调出来」。 你现在能用的 ChatGPT、通义、文心,全是经过后训练的 instruct 模型;而那个「只会续写」的 base 模型,一般你碰不到,也没必要碰。
二、后训练到底在做什么(三种主流手段)
后训练不是单一动作,而是一组工具。入门最常接触这三样:
1. SFT(监督微调 / 指令微调)
用「指令—回答」配对数据,直接教模型「遇到这类请求,该这样回」。这是最基础、最常做的一步,也是本文案例的主角。
2. RLHF(基于人类反馈的强化学习)
收集人类对多个回答的偏好排序,训一个「奖励模型」,再用 PPO 等强化学习让模型生成更高分的回答。贵且复杂,但能显著提升「有用、无害、诚实」。
3. DPO(直接偏好优化)
跳过显式奖励模型和 PPO,直接在「偏好对」(哪个好、哪个差)上做优化,工程难度低很多,已成主流替代方案。
此外还有两个容易被忽略的:继续预训练(Domain-Adaptive Pretraining)——给垂直领域补语料,介于预训练和后训练之间,适合「术语/知识密度极高」的场景;以及知识蒸馏——用大模型生成高质量数据去教小模型(见场景五)。
入门建议:先跑通 SFT,再考虑 DPO,RLHF 留给有专门团队和预算的玩家。 绝大多数工程价值,SFT 就能拿到。
三、什么场景适合后训练?(核心 + 案例)
这是整篇文章的关键。下面六个场景,每个都配一个能直接对照的真实案例。
场景一 · 垂直领域知识 / 术语适配
通用模型在医疗、法律、金融、工业等领域,术语不准、易幻觉。后训练能把「行业说话方式」刻进模型。
案例: 某三甲医院用 SFT + 少量临床语料,把通用模型调成「按临床路径问诊、用药提醒合规」的问诊助手;某律所用法规 + 判例微调,自动生成文书初稿,律师只做复核。
场景二 · 特定输出格式 / 工具调用(结构化输出)
需要稳定输出 JSON、调用 function、生成 SQL、填表单时,后训练是性价比最高的场景之一——数据好造、收益直接。
案例: 电商把「用户口语 → 标准退货 JSON」做成 SFT,上游接口对接零改动;某代码助手用 function calling 微调,工具调用准确率从 60% 提升到 92%。
场景三 · 品牌语气 / 角色人格
客服、虚拟人、营销文案,需要统一、稳定、不跑偏的口吻。
案例: 银行客服机器人 SFT 成「稳重、合规、不随便承诺」的语气,投诉显著下降;某潮牌用轻松带梗的语气做社媒自动回复,人设统一且省人力。
场景四 · 安全对齐与合规
拒答敏感内容、去除偏见、符合行业监管——这类「行为边界」只能靠后训练收束。
案例: 教育产品用 DPO 让模型「引导思考而非直接给答案」;金融模型用偏好数据压低违规荐股的出现率。
场景五 · 小模型能力增强(蒸馏)
用大模型生成高质量数据,去微调小模型,让 7B / 3B 模型接近大模型表现,跑在端侧或低成本环境。
案例: 某 App 用 GPT 级大模型蒸馏数据微调 7B 模型,推理成本降 90%,端上体验几乎不掉。
场景六 · 多语言 / 方言适配
通用模型对小语种、方言弱,后训练能快速补齐本地化能力。
案例: 东南亚电商平台用本地语言 SFT,一次性覆盖泰语、越南语、印尼语客服,无需为每个语种单独接大模型 API。
四、什么场景其实不适合后训练(节制)
滥用后训练,比不用更糟。以下情况请先打住:
- 知识频繁更新且要「检索最新」 → 用 RAG(检索增强)。把易变知识塞进权重,会过时、难更新、还费钱。
- 一次性 / 低频任务 → 写好提示词(prompt)即可,没必要为一次需求训模型。
- 数据不足(<几百条且质量差) → 后训练会过拟合、把模型「教坏」。
- 没算力也没工程能力 → 先用「提示词 + RAG + 大模型 API」,性价比最高。
判断口诀: 要「改模型的行为 / 风格 / 格式 / 能力边界」→ 后训练;要「喂新知识、做临时任务」→ RAG / 提示词。
五、入门路径与工具
数据是第一位的。 质量远大于数量——几百条精标数据,胜过几万条噪声。先想清楚「我要模型学会哪类输入输出」,再去造数据。
| 工具 | 定位 | 适合谁 |
|---|---|---|
| Unsloth | 消费级显卡高速微调 | 想在本机快速跑通 |
| LLaMA-Factory | 可视化 Web UI,支持 SFT/DPO/PPO | 中文友好、怕命令行 |
| Axolotl | YAML 配置驱动,灵活 | 要精细控制训练 |
| Hugging Face TRL | 代码级训练库 | 研究 / 自定义流程 |
| 云平台微调 API | OpenAI / 阿里云 PAI / 火山方舟等 | 不想管 GPU |
推荐上手顺序:选基座(如 Qwen2.5-7B / Llama-3)→ 造 / 洗数据 → SFT(先跑通)→ 评估 → 必要时 DPO / 继续预训练 → 上线 + 监控。
六、一个最小可跑案例:结构化 JSON 提取
以「用户口语 → 标准 JSON」为例,这是后训练性价比最高的切入点。最小闭环如下:
1. 准备 200 条样本:「用户说了一句话」→「标准 JSON」
例: "我想退上周买的红色运动鞋" →
{ "intent":"return", "color":"red",
"item":"sneaker", "time":"last_week" }
2. 用 Unsloth 在 Qwen2.5-7B 上做 SFT(1 epoch,lora)
3. 用 50 条 hold-out 测「格式准确率」
4. 达标(如 >95%)即上线;不达标 → 补数据再训
核心不是训练本身,而是「有可量化的验收指标」。没有指标,你永远不知道后训练有没有用。
七、工程师视角的独立分析(避坑)
写教程的很多,但真踩过坑的会告诉你——后训练的麻烦往往不在训练,在训练之外:
- 没有数据闭环,3 个月后人设就崩。 很多团队后训练一次就完事,但线上分布会漂移。要做「线上 badcase → 回流 → 再训练」的闭环,后训练是持续运营,不是一次性项目。
- 后训练会「覆盖」基座能力(灾难性遗忘)。 SFT 数据若只覆盖窄场景,模型在泛化任务上会退化。建议保留一部分通用 SFT 数据做「混合训练」,守住底座能力。
- 成本账算反了。 很多人以为后训练 = 买 GPU,其实数据清洗和标注占 70% 工作量。先把数据管线建好,比急着开训重要得多。
八、总结
后训练不是「更牛的预训练」,而是「把通用能力收束到你的需求上」:
- 适合: 改行为、改格式、改风格、增强小模型、补垂直/多语言能力。
- 不适合: 喂易变知识、一次性任务、数据不足。
- 最小实践: 造几百条好数据 + Unsloth / LLaMA-Factory 跑通一次 SFT,你就已经入门了。
后训练的下限由数据质量决定,上限由你的验收指标决定。先把这两件事想清楚,再谈 GPU。
微信公众号
欢迎关注「字与码」
如果这篇文章对你有用,也欢迎在微信里继续关注后续更新。
X / Twitter
关注 @ax2_zicode
更即时的技术观察、新文章提醒和一些短想法会发在 X 上。