deepseek大模型训练流程多少步?语料到上线按顺序拆

25分钟前发布

deepseek 这类基础大模型的训练流程分 6 个阶段:语料准备、清洗过滤、分词打包、预训练、后训练对齐、评测上线。十亿参数级别在 8 卡机器上跑一轮预训练约 3 到 5 天,百亿级要 3 周以上,千亿级按季度算。真正耗人的是后 3 个阶段,前 3 个阶段是体力活,做错了会在第 5 天以损失曲线的方式暴露出来。

下面按阶段顺序写,每个阶段说清四件事:要准备什么、在哪做、大概多久、出问题时先看哪个指标。末尾列 6 个常见故障和 3 个核验动作。数字取的是公开资料里能对上的一批配置,各家机器和框架不同,量级会差 1 到 2 倍。

什么条件下值得自己走一遍

  1. 手上有一批外部拿不到的语料,数量在 10 万条以上,而且这批语料直接决定模型在业务里的表现。
  2. 有稳定的算力,至少 8 张同型号卡能连续占用 5 天以上,中途不被别的任务抢占。
  3. 有一个能自动打分的评测集,200 条以上,每条都有人工写好的参考答案。
  4. 接受第一轮结果不理想,留出 2 到 3 轮返工的时间预算。

缺第 3 条时不要开始。没有评测集,训练完只能靠人肉读输出,读 50 条就要 3 小时,判断还带主观,两轮之间的差异说不清。我见过一个团队连续训练 4 轮,每轮都觉得比上一轮好,最后拿 200 条固定题一测,第 2 轮才是最好的,前 3 轮白跑。

机房里成排的服务器机柜,指示灯泛着微光

6 个阶段各要准备什么

阶段要准备的东西大致耗时出问题的信号
语料准备原始文本、来源清单、授权说明3 到 10 天同一段内容重复出现在 5 个文件里
清洗过滤去重规则、脏词表、质量打分脚本2 到 7 天清洗后条数掉了 70% 以上
分词打包词表、最大长度、样本拼接策略半天到 2 天单条样本被截断在句子中间
预训练卡数、批量、学习率、断点保存间隔3 天到 3 个月损失在第 2 天之后不再下降
后训练对齐指令数据 2000 条起、偏好对比数据2 到 10 天回答变短、变客气、内容变空
评测上线固定题库、人工复核表、灰度名单2 到 5 天离线分数涨了,线上投诉也涨了

这张表里耗时跨度最大的是预训练,因为卡数差 10 倍,时间就差 10 倍。判断自己该按哪一档排,主要看机器能不能连续占住;模型多大对总时长的影响排第二。

语料准备和清洗

这两步合起来占整个流程一半以上的工作时间,也是最容易被压缩的一步。压缩的代价在第 5 天出现:损失曲线正常下降,模型输出里开始出现重复句、乱码片段、整段复制某篇网文。

语料从哪来

公开语料加自有语料两条腿走。自有部分优先取结构化的:产品手册、工单记录、客服对话、内部规范文档。这几类的共同点是句子里带具体名词和数字,模型学到的表达更贴业务。比例上自有语料占到 15% 到 30% 就能看出差别,全用自有语料反而会把通用能力压下去。

清洗留哪几道

去重按段落级做,正文级去重会漏掉拼接稿;质量过滤按标点密度、句长分布、重复 n-gram 三项打分,低于阈值的整条丢掉;敏感内容按词表加规则过一遍。三道做完,原始 100 万条通常剩 30 万到 45 万条,剩得太多说明过滤太松,剩得太少说明阈值定高了。

服务器后侧成束的橙色光纤线缆

预训练怎么排期

预训练要盯的只有两个量:损失和吞吐。损失看趋势不看单点,相邻 200 步的均值比上一步低才算在学;吞吐看每秒处理的 token 数,掉 20% 以上先查卡间通信和存储读取,别急着调学习率。

卡数和批量怎么配

8 卡起步时,全局批量取 128 到 512 之间,学习率先按 3e-4 试,跑 2000 步看损失有没有异常抖动。批量加大到 4 倍,学习率跟着加 1.5 到 2 倍,别线性放大。断点每 2 小时存一次,存 3 份轮换,磁盘不够就只留权重不留优化器状态,代价是回滚后要多跑 500 步才能接上。

2025 年我跟着跑过一个小参数模型的继续训练,8 卡、批量 256、学习率 2e-4,跑到第 39 小时损失突然向上跳了 0.3。查下来是第 4 张卡的温度到了 82 度开始降频,吞吐掉了 25%,等效于学习率被放大。换成机房白天不排别的任务之后,同一配置一次跑完 96 小时没再抖。

后训练对齐做哪两件事

指令微调让模型学会按格式回答,偏好对齐让模型的回答更接近人想要的取舍。两件事分开做,中间各存一份权重,出问题能单独回退到指令微调那一版,不至于从头再来。

指令微调要多少条

2000 到 5000 条能跑出可用的格式跟随能力,10 万条以上收益开始变平。数据的分布比数量更要紧:如果 80% 的样本都是短问答,模型在长文任务上的表现会退化。我习惯按任务类型分 6 组,每组不低于 300 条,短问答那组压到 30% 以内。

对齐的判定口径

偏好对齐要有成对数据,同一问题两条回答,标出哪条更好。判定口径写在标注文档里,比如是否回答了问题、有没有编数字、长度是否适中,三项各占权重。口径不写清,两个人标同一批 50 条,一致率能低到 60%,训出来的模型会摇摆。

办公桌上两块并排的显示屏,曲线色块虚化

卡在哪:6 个常见故障

  1. 损失曲线跳到异常值。学习率过高或者某批样本里有异常长句,先把学习率降一半,再查那条样本的长度分布。
  2. 损失不降。批量太小、数据太脏、词表和语料不匹配,按这个顺序排查,先看批量。
  3. 输出重复同一句。训练轮数偏多或者解码参数太保守,先减 1 轮,再把重复惩罚调到 1.1 以上。
  4. 回答变短变空。偏好对齐的标注偏向了短答案,检查标注里 50 字以内的样本占比。
  5. 显存溢出。批量减半、梯度累积加倍、序列长度从 4096 降到 2048,三招里先用第二招。
  6. 离线评测涨、线上投诉涨。评测题库和真实提问的分布不一致,抽 100 条线上真实提问补进题库再测一次。

第 6 条最费时间,也最值得花时间。题库自己出的题,问法整齐、条件完整,真实用户问的往往是半句话。补进 100 条真实提问之后,评测分数通常会掉 5 到 10 分,这个掉分才是真实水平。

怎么核验这一轮没跑歪

  1. 跑固定题库,和上一版逐题对比,看总分的差值和变差的题号,差值在 2 分以内算持平。
  2. 抽 20 条真实提问人工读一遍,重点看有没有编造数字、有没有答非所问、长度是否异常。
  3. 灰度放 5% 的量跑 48 小时,看用户追问率和放弃率,两项同时上升就回滚。

核验做在这三步之前,还要留一份基线。基线就是上一版模型在同一套题库上的分数,没有这份数字,新一轮的涨跌说不清。流程走完一轮,把语料清单、清洗规则、超参、评测分数四样存到一个目录里,下一轮直接用,省掉 2 到 3 天的重复劳动。本文信息核对时间:2026-11。