难度
进阶
从数据准备、预训练、指令微调、偏好对齐到评测上线,建立一条完整、可落地的大模型训练工程地图。
难度
进阶
阅读时长
约 100 分钟
更新日期
2026/03/24
主题
训练工程 / 预训练 / SFT / RLHF / DPO
这篇文章不是教你一次性训练出顶级基础模型,而是帮你建立一张完整地图。读完后,你应该能回答:
如果你把大模型训练想成造一条生产线,那么模型参数只是最终出厂的产品,真正决定成败的是整条线是否顺畅。
一个典型的大模型训练流程大致可以拆成六段:
这六段不是完全线性的。成熟团队通常会边训练边评测、边上线边回流数据,所以它更像一个循环系统,而不是一次性的瀑布流程。
先把这条主线放进同一张图里,会更容易理解各阶段的角色分工:
<g>
<rect x="30" y="92" width="140" height="84" rx="18" fill="#e8f1ff" stroke="#98b7e1" />
<text x="100" y="125" text-anchor="middle" font-size="20" font-weight="700">数据准备</text>
<text x="100" y="150" text-anchor="middle" font-size="14" fill="#4b5563">清洗 / 去重 / 配比</text>
</g>
<g>
<rect x="186" y="92" width="140" height="84" rx="18" fill="#fef3c7" stroke="#e7c66f" />
<text x="256" y="125" text-anchor="middle" font-size="20" font-weight="700">预训练</text>
<text x="256" y="150" text-anchor="middle" font-size="14" fill="#4b5563">下一词预测</text>
</g>
<g>
<rect x="342" y="92" width="140" height="84" rx="18" fill="#e0f2e5" stroke="#8bc09b" />
<text x="412" y="125" text-anchor="middle" font-size="20" font-weight="700">SFT</text>
<text x="412" y="150" text-anchor="middle" font-size="14" fill="#4b5563">指令跟随 / 风格统一</text>
</g>
<g>
<rect x="498" y="92" width="140" height="84" rx="18" fill="#fce7ef" stroke="#e2a8bd" />
<text x="568" y="125" text-anchor="middle" font-size="20" font-weight="700">偏好对齐</text>
<text x="568" y="150" text-anchor="middle" font-size="14" fill="#4b5563">RLHF / DPO</text>
</g>
<g>
<rect x="654" y="92" width="140" height="84" rx="18" fill="#ece8ff" stroke="#b5abef" />
<text x="724" y="125" text-anchor="middle" font-size="20" font-weight="700">评测审查</text>
<text x="724" y="150" text-anchor="middle" font-size="14" fill="#4b5563">能力 / 安全 / 稳定性</text>
</g>
<g>
<rect x="810" y="92" width="140" height="84" rx="18" fill="#dff4f0" stroke="#8dc7bd" />
<text x="880" y="125" text-anchor="middle" font-size="20" font-weight="700">部署回流</text>
<text x="880" y="150" text-anchor="middle" font-size="14" fill="#4b5563">线上反馈 / 版本迭代</text>
</g>
<line x1="170" y1="134" x2="186" y2="134" stroke="#5b6b7f" stroke-width="3" marker-end="url(#train-arrow)" />
<line x1="326" y1="134" x2="342" y2="134" stroke="#5b6b7f" stroke-width="3" marker-end="url(#train-arrow)" />
<line x1="482" y1="134" x2="498" y2="134" stroke="#5b6b7f" stroke-width="3" marker-end="url(#train-arrow)" />
<line x1="638" y1="134" x2="654" y2="134" stroke="#5b6b7f" stroke-width="3" marker-end="url(#train-arrow)" />
<line x1="794" y1="134" x2="810" y2="134" stroke="#5b6b7f" stroke-width="3" marker-end="url(#train-arrow)" />
<path d="M 880 176 C 920 252, 108 252, 100 176" fill="none" stroke="#5b6b7f" stroke-width="3" marker-end="url(#train-arrow)" />
<text x="490" y="246" text-anchor="middle" font-size="16" fill="#5b6b7f">日志 / 失败样本 / 新数据重新进入数据准备</text>
</g>
很多新手会把训练理解成“模型架构 + GPU 数量”,但真正决定上限的往往是数据。
当数据规模已经很大时,继续加入低质量样本,带来的往往不是纯收益,而是:
所以现实工程里,很多团队会把大量精力放在数据评分、采样权重和混合策略上,而不是单纯追求更多 token。
SFT 阶段常见的单轮对话格式大致如下:
{
"messages": [
{ "role": "system", "content": "你是一个严谨的中文 AI 助手。" },
{ "role": "user", "content": "解释一下什么是 KV Cache。" },
{ "role": "assistant", "content": "KV Cache 是在自回归解码时缓存历史 Key/Value 的机制..." }
]
}
真正项目里,数据格式统一非常重要,因为模板一旦混乱,训练和评测都会出现难以定位的问题。
预训练通常使用自回归目标,也就是让模型根据前文预测下一个 token。这个目标看似简单,却足够强大,因为语言中的语法、事实、模式、风格、推理线索都会被压进这个预测任务里。
如果你对“为什么规模化训练会有规律”感兴趣,可以配合阅读 Scaling Laws for Neural Language Models。
仅靠预训练,模型通常更像一个会补全文本的系统。SFT 的目标,是让它学会遵循用户意图、输出更稳定的格式,并适应产品场景中的交互方式。
很多团队在这一步就会发现:少量高质量数据,常常比大批量低质量指令样本更有效。
SFT 能让模型学会任务格式,但未必能保证回答风格、风险偏好、帮助性和安全性都符合产品目标。这时就需要偏好对齐。
RLHF 可以粗略拆成三步:
RLHF 的优点是表达力强,能显式建模“人更喜欢哪种回答”;缺点是流程复杂、成本高、训练稳定性要求高。
DPO(Direct Preference Optimization)尝试跳过显式奖励模型和强化学习优化,直接利用偏好对来更新模型。它的吸引力在于:
但 DPO 也不是万能药。若偏好数据本身质量不高,或者产品目标非常复杂,DPO 同样会受到限制。
在实际项目中,比较务实的做法是:
训练流水线最危险的错觉,就是“loss 降了,所以模型更好了”。真实情况往往复杂得多。
评测至少要覆盖三类问题:
一个成熟的评测体系,往往既包括自动基准,也包括人工抽检。两者缺一不可,因为自动指标更快,人工评审更接近真实体验。
模型部署后,你会看到大量训练阶段感知不到的问题:
所以线上日志、失败案例、用户反馈和人工复盘,都会变成下一轮训练和评测的重要来源。真正成熟的团队做的不是“一次训练”,而是“持续闭环”。
如果你不是在训练百亿参数基础模型,而是想为业务快速搭一个可落地流程,可以参考这个缩小版:
这个流程虽然简单,但比“直接堆数据、盲目训练”更有效,也更接近真实项目节奏。
如果你想把这篇总览拆成更具体的学习路线,可以继续阅读:
当你真正参与一个训练项目时,最有帮助的问题往往不是“最先进的算法是什么”,而是:
我们的数据、目标、预算和评测方式,是否形成了一条闭环?
能把这条闭环跑起来,往往比单点模型改进更重要。
从相近主题继续深入,建立连续学习链路。