模型是如何训练的(以及你为什么不会去做)
你能下载的每个对话模型都经历了同样的三阶段流水线。你几乎肯定永远不会运行阶段一——那是数据中心的领地——但你可能运行阶段二和三的廉价近亲。了解这些阶段解释了 base 与 instruct 的行为差异、模型为什么会幻觉、以及 Hugging Face 上的“合并”模型到底是什么。
阶段一:预训练——昂贵的部分
一个目标,不可思议的规模:在数万亿词元的网络文本、代码和书籍上预测下一词元。知识和技能在这里进入权重,绝大多数算力也花在这里。
| 项目 | 粗略规模(数量级) |
|---|---|
| 数据 | 现代家族 10–30T 词元 |
| 硬件 | 数千 GPU-月;前沿训练占用集群数月 |
| 成本 | 7B 约 $1M–$10M+;70B 级 $10M–$100M+;前沿训练传闻远超此数 |
| 产出 | 一个基座模型——互联网形状的自动补全,没有助手行为 |
产出是基座模型:续写天才,助手废柴。被问问题时它回答——然后继续又一个问题、一个列表、一个分页符,因为互联网上的文本就是这么干的。
阶段二:监督微调(SFT)
数万到数百万条精选的(指令 → 回答)对,几个 GPU-天。相对预训练是舍入误差,但它重接了行为:回答指令、用有帮助的格式、然后停止。就是把基座模型变成能聊天的东西的阶段。
阶段三:偏好调优
- RLHF:人类对回答对排序;奖励模型学习这个排序;策略针对奖励优化(PPO)。经典配方,重型机械。
- DPO:跳过奖励模型,直接优化偏好对。更简单、稳定,开源界的最爱。
- 效果:风格、帮助性、拒答、更校准的陈述。还有谄媚——模型学到人们奖励附和。
SFT 数据实际长什么样——朴素的 JSONL 指令/回答对,没有任何异国情调:
{"instruction": "Summarize the changelog in three bullets.", "response": "- Adds ..."}
{"instruction": "답변을 존댓말로 작성하세요.", "response": "네, 알겠습니다 ..."}
从几千到几百万条这样的数据、几个 epoch,基座模型就学会了助手格式。
同样的权重,不同的阶段
prompt: "Write a haiku about GPUs."
base (after stage 1):
"Write a haiku about GPUs.
Write a sonnet about CPUs.
1. Choose your topic carefully..." ← 继续文档
instruct (stages 1+2+3):
"A thousand cores wake,
each chasing one quiet token—
fans hold their breath." ← 回答、排版、停止
仓库后缀告诉你阶段:光名 = base;-instruct / -it / -chat = 调优过(参见 参数)。
再学一个词汇:知识截止日期——预训练语料收集的日期。问它之后的事,你要么得到诚实的“我不知道”,要么更糟,自信的虚构;对冻结权重来说两者都是正确行为(LLM 是什么)。
训练 vs 微调:相差约 1000 倍
| 预训练 | LoRA 微调 | |
|---|---|---|
| 数据 | 10^12–10^13 词元 | 10^6–10^9 词元 |
| 更新的参数 | 全部 | 1–2% 以下(小型适配器矩阵) |
| 硬件 | 集群 | 单张 GPU |
| 墙钟时间 | 数周–数月 | 数小时–数天 |
| 成本 | $M–$100M+ | 租用 $0–$100 |
| 用途 | 知识 + 技能 | 风格、格式、狭窄领域行为 |
| 风险 | 损失跑飞、检查点报废 | 在小数据集上过拟合 |
| 失败模式 | 数月后发现无声的数据 bug | 灾难性遗忘通用技能 |
| 可复现? | 很少(数据不公开) | 可以(数据集就在仓库里) |
| 数据来源 | 公开网络、代码、书籍、授权档案 | 你的提示词和理想回答 |
| 谁能做 | 资金雄厚的实验室 | 你,这个周末 |
微调调整的是旋钮;它不添加知识。教一个 7B 你公司的语气:LoRA,一个晚上。教它你 5 万份内部文档:那是检索,不是训练(RAG、微调)。
微调能做什么、不能做什么,以便你正确瞄准:
- 能:输出格式、语气、术语、拒答风格、工具调用语法、可靠完成的狭窄任务。
- 能:把一个狭窄任务从大模型蒸馏进小模型。
- 不能(可靠地):添加新事实、修复弱推理、延长知识截止、把小模型变大。
- 规则:如果问题是“不知道”,用检索;如果是“不守规矩”,用微调。
检查点、合并、和你下载的东西
- 训练沿途保存检查点;发布通常是最终 instruct 阶段的权重——你拿到的是成品助手,不是构建它的过程。
- “合并”(merge)对同一基座模型的多个微调取平均或插值(模型汤)。没有训练发生;它是权重算术,结果常落在父母之间。在 Hugging Face 上流行、便宜、偶尔惊艳。
- 来历不明意味着许可证不明:合并继承每个母本的条款(开放权重与闭源 API)。
- 对话模型背后的基座权重有时也会发布——只在补全工作负载或微调底座的场合去抓它们。
- 为什么开源发布止步于最终阶段:预训练数据和中间检查点是昂贵的竞争资产;成品权重是演示。
- 社区 instruct 模型共享后训练配方和数据集,这就是为什么那么多模型感觉可以互换:同样的基座、同样的二三阶段剧本。
- 优先选择模型卡列出数据和阶段的发布;有文档的最终检查点比炒作的更耐老。
相关: 微调 · RAG · 开放权重与闭源 API · 参数