DeepSeek 大模型训练分几步?从语料清洗到上线的顺序

23分钟前发布

DeepSeek 这类大模型的训练分 6 个阶段:语料处理、分词与打包、预训练、监督微调、偏好对齐、评测与部署。全流程从几百张卡跑 2 个月到小团队微调 3 天都有,规模差 2 个数量级,阶段顺序不会变。

我按公开技术报告和 3 次小规模复现的经历整理过这套顺序,卡点集中在语料配比和偏好对齐两处。前者决定模型的知识面,后者决定它说话的方式,两项都要单独留出调参时间。

开工前要定哪几件事

动手拉数据之前,5 个参数要先写下来,中途改一项就要从头回滚。

  1. 目标参数量。7B 与 70B 的算力差 10 倍以上,先按用途定档,别按显卡数量倒推。
  2. 语料总量。常用配比是每 1 个参数配 20 到 100 个 token,7B 模型对应 1400 亿到 7000 亿 token。
  3. 中文占比。中文语料清洗成本比英文高 3 到 5 倍,占比定在 30% 还是 60%,直接决定后面洗数据的工作量。
  4. 训练框架与并行方式。数据并行、张量并行、流水并行三种要按卡数选,8 卡以内用数据并行。
  5. 验收口径。写清用哪几个评测集、及格线是多少,避免训完再补标准。

6 个阶段各做什么

下面按实际执行的先后排,每一步的产出都是下一步的输入,跳过任何一步都会在后面的评测里暴露。

阶段 1:语料采集与清洗

采集来源分网页、书籍、代码、论文 4 类。原始数据先过规则过滤,去掉导航文字、广告模板、乱码页;再按段落去重,同一段内容重复 3 次以上会拉低模型对长尾知识的记忆。

清洗后的留存率通常在 15% 到 30% 之间,1000 亿 token 的原始抓取,洗完剩 200 亿到 300 亿。这一步最容易被跳过,跳过的后果是模型反复输出同一句套话。

阶段 2:分词与数据打包

用现成的分词器把文本切成 token,再按固定长度拼成训练样本,常见长度是 4096 或 8192。打包时把多篇短文本拼满一条样本,能把显存利用率从 60% 提到 90% 以上。

分词器换一次,整个流程要重跑一遍,词表大小定在 10 万到 15 万之间比较常见。中文语料用英文分词器会把一个汉字切成 2 到 3 个 token,训练成本跟着涨。

数据中心机房走道与成排机柜指示灯,冷色调

阶段 3:预训练

这一阶段只做一件事:让模型学会预测下一个 token。数据量最大、耗时最长,7B 模型跑 2 万亿 token 大约需要 200 张卡连续 30 天。

训练中每 500 到 1000 步存 1 次 checkpoint,存 3 到 5 个版本。loss 曲线在前 10% 的步数里下降最快,之后进入缓慢下降段,突然抬升多半是学习率或数据顺序出了问题。

阶段 4:监督微调

用几万到几十万条「指令 + 回答」样本教模型按对话格式作答。样本质量比数量重要,1 万条人工精标的样本,效果常好过 10 万条机器生成的样本。

微调阶段的学习率比预训练低 2 个数量级,训练 2 到 3 个 epoch 就停,超过 5 个 epoch 容易把预训练学到的知识覆盖掉。

阶段 5:偏好对齐

让模型的回答符合人类偏好,主流做法是先在少量样本上训练奖励模型,再用强化学习调策略;也有团队直接用人偏好数据做对比学习,省掉奖励模型这一步。

这一阶段最容易训歪:奖励模型学到的是标注者的偏好,标注者偏爱长回答,模型就会把 3 句话能说清的事写成 10 句。判据是评测集分数涨、人工盲测分数跌,出现这种背离就要回退 1 个版本。

阶段 6:评测与部署

评测分自动与人工两块。自动评测跑通用题库,人工评测抽 200 到 500 条真实问题做盲评,两块分数都过线才进入部署。

部署前做量化,把权重从 16 位压到 8 位或 4 位,显存占用降一半以上,速度提升 1.5 到 2 倍。量化后要重跑 1 遍评测,掉分超过 3 个点就换回高精度版本。

每一步的耗时与产出

阶段主要输入产出7B 规模耗时
语料清洗原始抓取 1000 亿 token干净语料 200 亿到 300 亿 token2 到 3 周
分词打包干净语料定长训练样本2 到 3 天
预训练训练样本 2 万亿 token基座模型与 3 到 5 个 checkpoint25 到 35 天
监督微调1 万到 10 万条指令样本会对话的模型3 到 7 天
偏好对齐偏好对比数据 1 万到 5 万条对齐后的模型5 到 10 天
评测部署上一阶段的权重量化模型与评测报告3 到 5 天

整条链路串起来,7B 模型从零训到能上线大约 2 个月,其中预训练占 6 成以上时间。70B 模型的预训练阶段要 200 天以上,卡数翻 4 倍才能压回 2 个月。

白板上用马克笔画着相连方框与箭头

小团队要多少资源才够

不追求从零预训练的话,多数团队走的是「开源基座 + 微调 + 对齐」这条路,6 个阶段里只做后面 3 个。资源需求比预训练低 2 个数量级。

只做微调的配置

7B 模型做全参数微调,8 张 80GB 显存的卡能跑,样本 5 万条、训练 3 个 epoch,耗时 5 到 7 天。显存不够的改用量化微调,4 位加载加低秩适配,单张 24GB 卡也能跑,代价是效果略差,评测分通常低 2 到 4 个点。

32B 模型的微调要 16 张卡起步,样本量不变的情况下耗时翻 3 倍。样本少于 5000 条时,32B 与 7B 的差距不明显,先把样本量补到 1 万条更划算。

数据从哪来

3 个来源:业务真实问答、公开指令集、模型自生成后人工筛。自生成数据的比例控制在 30% 以内,超过这个比例,模型会学到自己之前的错误。

人工筛 1 万条样本,2 个人做 5 到 7 天。标注规范要写清「什么算合格回答」,规范不统一,同一批样本里会出现 2 套标准,训练出来模型说话方式摇摆。

工作台上叠放的硬盘与散开线缆

哪几步最容易卡住

按返工频次排,前 6 个卡点占了大部分时间。

  1. loss 出现尖峰后不回落:学习率预热步数设得太短,把 warmup 从 500 步加到 2000 步重跑。
  2. 显存溢出:样本长度 8192 时单卡放不下,改用梯度累积,把 batch 拆成 4 次算。
  3. 微调后模型忘记原有能力:样本里加入 10% 的通用语料做混合训练。
  4. 对齐后回答变长、变空:奖励模型偏好在长度上失衡,重新标 2000 条等长对比样本。
  5. 多卡训练速度上不去:卡间通信成瓶颈,检查是不是用了 PCIe 而非高速互联。
  6. 量化后中文能力掉得比英文多:中文 token 在词表里占比低,换 4 位量化的分组粒度再试。

训完怎么判断这版能用

3 个动作,1 天内能做完。跑一遍固定题库,与上一版逐题比对,看分数变化是否落在噪声范围内;抽 200 条业务真实问题做人工盲评,两人分别打分;再挑 20 条边界问题试拒绝与追问,看它会不会硬编答案。

我在小规模复现里遇到过一次教训:评测集分数涨了 4 个点,上线后客服场景的投诉反而多了,原因是模型学会了在不确定时也给出肯定答复。后来加了 1 组「不知道就说不确定」的样本,投诉才降下来。

版本号与数据版本要一起记,同一次训练用哪份语料、哪版分词器,写在一张表里。3 个月后想复现某个效果,没有这张表就只能重训。

本文信息核对时间:2026-11。参数量与耗时按公开技术报告整理,各团队硬件与框架不同,实际数字会有出入。