一个模型的一生:从受孕定形到夕阳反哺,一张横图看完八格流水线

把大模型从架构定形、预训练、后训练、评测、部署、Agent 产品一路到退役反哺画成一张横向的生命线,再顺着这张图立一个主线:这八格是一条单向压缩管道,每格都在把上游更大的东西压成更小的表示且丢弃不可逆,而整条链上只有最后一格会产出新信息——这解释了 2026 年的热点为什么全挤在末端。

大部分关于大模型的讨论,都发生在这条流水线的某一格里,却很少有人把八格一起摊开看。摊开之后会出现一个用局部视角看不到的事实:从架构定形到退役,每一格干的都是同一件事——把上游更大的东西压成更小的表示,并且接受不可逆的丢弃。整条链上只有最后一格会产出新信息。

这就是这张图想给的上帝视角,也是这篇的主线。图先放上来,后面每一节都在解释它的一格。


一、那张图:模型的一生

flowchart LR
  P1["① 受孕 · 定形<br>架构选型 MoE 与注意力<br>Tokenizer 词表即世界观<br>数据配比与 Scaling Law"]
  P2["② 孕育 · 预训练<br>Next-token 压进权重<br>并行算力 TP / PP / FSDP<br>Checkpoint 可回溯的胎心"]
  P3["③ 童年 · 中期训练<br>长上下文 位置编码外推<br>退火 代码与数学加料<br>模态接入 视觉塔缝合"]
  P4["④ 少年 · 后训练<br>SFT 学会怎么答<br>RLHF / DPO 对齐口味<br>RLVR / GRPO 可验证奖励<br>蒸馏 长链压成直觉"]
  P5["⑤ 升学考 · 评测<br>基准与数据污染<br>评测饱和<br>口径换轴"]
  P6["⑥ 成年 · 推理部署<br>量化 精度换显存<br>KV Cache 前缀复用<br>PD 分离 连续批处理"]
  P7["⑦ 职业生涯 · Agent 产品<br>Harness 循环与权限<br>工具调用 / MCP<br>上下文工程 与记忆<br>轨迹与信用分配"]
  P8["⑧ 夕阳 · 退役<br>版本迁移下线<br>被替代而非衰老<br>权重冻结不会变差"]
  P9["下一代的 ①<br>轨迹变成新语料<br>旧模型当蒸馏教师"]
  P1 --> P2 --> P3 --> P4 --> P5 --> P6 --> P7 --> P8
  P8 -.->|"唯一的新信息入口"| P9
  classDef seed fill:#1e3a8a,stroke:#60a5fa,stroke-width:2px
  classDef agent fill:#14532d,stroke:#4ade80,stroke-width:2px
  class P9 seed
  class P7 agent

三处读图的提示:绿色那格(⑦)是全图唯一会产出新信息的地方蓝色那格(下一代的 ①)不是回到原点,而是螺旋上升一圈后的新起点;从 ① 到 ⑧ 的实线箭头全部单向,没有一条能往回走。


二、怎么读这张图:一条单向压缩管道

八格的动作可以统一写成一句话:把 X 压成 Y,接受丢弃。(“单向压缩管道”是我为这张图起的说法,不是行业术语,别当既有概念引用。)

把什么压成什么丢弃了什么可逆吗
① 定形所有可能的字符串 → 十万量级的词表词表切不出来的形态、罕见语言的字形不可逆,且定死后几乎无法改
② 预训练数十 TB 语料 → 数百 GB 权重具体的原文;只留下统计规律不可逆(权重里查不回原句)
③ 中期训练长序列的真实依赖 → 位置编码的外推能力训练窗口外的真实长程结构部分可逆(可继续训)
④ 后训练人类偏好 / 可验证结果 → 一个策略偏好里的分歧与少数派答案不可逆(对齐税)
④’ 蒸馏长思维链的搜索过程 → 短输出的直觉中间的搜索轨迹不可逆
⑤ 评测模型的全部行为 → 几个标量分数分布尾部、失败模式不可逆(这是最便宜也最有害的一次压缩)
⑥ 部署bf16 权重 → 4-bit 权重;重复前缀 → 缓存命中低位精度;缓存未命中的那部分量化不可逆,缓存可重算
⑦ Agent几十轮轨迹 → 一份上下文;一个 0/1 → 十几步的信用被裁掉的历史、被误分配的功劳不可逆
⑧ 退役整个模型 → 数据集与蒸馏教师权重本身不可逆

这张表是全文的骨架。它的用处不是分类学,而是:当你的问题出在某一格时,你要修的其实是”这一格丢掉了什么”,而不是”这一格的参数够不够大”。

把第二格的账手算一遍

抽象的”压缩”要落到数字上才有说服力。拿 Llama 3 405B 算一笔(arXiv:2407.21783,2024-07-31;我核实过摘要里的 405B 参数128K 上下文):

权重:405e9 参数 × 16 bit = 6.48e12 bit = 810 GB   (bf16)
语料:15e12 token × 4 字节/token ≈ 60 TB           (磁盘字节口径)
压缩比 ≈ 60 TB / 810 GB ≈ 74 : 1
每个参数摊到 15e12 / 405e9 ≈ 37 个 token

换成信息论口径(词表 128256,log2128256=16.97\log_2 128256 = 16.97 bit/token 是每 token 的上界):

15×1012×16.97 bit405×109×16 bit39:1\frac{15\times10^{12}\times16.97\ \text{bit}}{405\times10^{9}\times16\ \text{bit}} \approx 39 : 1

三处必须标注的诚实:(1) 15T token 这个数字出自 Llama 3 论文正文而非摘要,我只核实了摘要里的参数量与上下文长度,token 数我没有逐页核对,按”未亲手核实的二手数字”读;(2) 4 字节/token 是我按英文文本的经验取的量级值,换成 3 或 5 字节,比值在 56:1 到 93:1 之间浮动——这是量级估算,不是测量(3) log2V\log_2 V 是上界而非真实熵,自然语言的实际每 token 熵远低于 17 bit,所以真实压缩比小于 39:1。上面的算术我用脚本验算过,但算术正确不代表口径正确,这笔账只用来说明一件事:量级是几十比一,不是几万比一。

这个量级本身就是个有用的直觉:权重不是语料的索引,它装不下语料。 37 个 token 挤进 1 个参数,模型必须丢掉绝大部分具体内容、只保留能压缩的规律——这是”为什么模型会幻觉”的最根本层答案,比”训练数据里有错”要根本得多。


三、为什么图上只有一条虚线,而且它不是闭环

现在看图右端那条虚线,以及绿色的第⑦格。整条链上,每一格的输入都来自上一格,只有第⑦格例外:Agent 在真实环境里跑出来的轨迹,包含了训练语料里不存在的信息——环境的反馈。

区别在于信息的来源:

  • ①到⑥格的每一次”改进”,都是在对已有信息做更聪明的重排:换个架构、改个配比、多训几步、压得更狠。信息总量不增加,只是编码方式变了。
  • 第⑦格不同。工具返回了什么、代码跑没跑过、用户接受还是拒绝了修改——这些是外部世界的回答,语料里没有。它们是这条链上唯一的新增信息。

所以那条虚线是这条流水线上唯一的进料口。注意它没有画回第①格——这不是一个闭环,是一条螺旋:轨迹变成语料之后,开始的是下一代模型的第①格,而不是让当前这个模型返老还童。权重是冻结的,它自己回不去。而这也顺手解释了 2026 年热点分布的形状:可验证奖励、环境工程、轨迹数据、沙箱、评测口径——它们全挤在第⑤到第⑦格,因为那是唯一还能往系统里注入新信息的位置。我在《大模型热词地图 2026-09》里按”谁是当下的瓶颈”给 63 个热词排过一条链,那条链的后半段和这张图的后三格是同一片区域——这张图算是给那条链补了一张地形。

顺着这条主线,站内几篇旧文各自落在图上的哪一格也就清楚了:

还有一格值得单独点出来,因为它不在这张图上却是同一个现象:我上一篇写图像识别时量到,一张手机照片喂进视觉编码器前会先被 resize,99.07% 的像素在模型看第一眼之前就丢了《图像识别的卡点不在看清,在定位》)。那是推理时的一次不可逆压缩,发生在图的第⑥格之前。压缩不只发生在训练管线里——只要有一次”把大的变成小的”,就有一次丢弃需要记账。


四、这个隐喻在哪里失效

任何统一叙事都有边界,不写清楚边界的统一叙事是骗人的。这个”一生 + 单向压缩”的隐喻至少有四处会崩:

一、“一生”其实是版本谱系,不是个体。 模型不像人那样只有一条时间线。同一个 base checkpoint 可以分叉出十几个后训练分支,各自独立成年、独立就业。图上第④格之后其实应该是一把扇形,画成单线是为了可读性——这是画法上的简化,不是事实

二、“夕阳”不是衰老,是被替代。 模型不会因为运行久了而变差(权重是冻结的)。它退役是因为下一代更便宜或更强,是外部竞争而非内部衰退。生命隐喻在这里最容易误导人。

三、阶段边界在现实中是模糊的。 “中期训练”(mid-training)没有公认定义,它和预训练的退火阶段、和后训练的早期 SFT 都有重叠;不同团队画的框不一样。第③格是我为了叙事清晰切出来的,别把它当行业共识引用。

四、“压缩”这个词对第④格的 RL 是不准确的。 强化学习那一步的核心动作是搜索加筛选——采样一批轨迹、按奖励挑出好的,这个阶段信息是先增后减的。只有”把筛选结果写回权重”那一下才是压缩。我在表里把它归为压缩是为了主线的整齐,牺牲了一点准确性,这里必须补回来。

对第四点还可以再进一步(这是猜想,我没有证据):如果 RL 是这条链上唯一”先增再减”的一格,那它和第⑦格的回流箭头是同一个机制的两个位置——都是靠外部信号往系统里加信息。这个说法我没有验证,别当结论用。


五、按症状定位:你的问题落在哪一格

上帝视角的实际用途,是把”模型表现不好”这种没法下手的抱怨,翻译成”哪一格丢掉了我需要的东西”。下面这张表的每一行都给了一个可自测的判据,你不必信我的分类,自己跑一遍就知道。

你观察到的症状可自测的判据落在哪一格该动的地方
特定语言/符号系统一贯地差把输入 tokenize 出来看切分是否碎成单字① 定形换模型,这格改不动
常识性事实答错、且换问法也错同一事实在多个 prompt 下稳定答错② 预训练外接检索,别指望微调补
长文档前半段的信息被忽略把关键信息挪到末尾就答对了③ 中期训练缩短有效上下文、重排输入
格式/语气不对但知识是对的给一个示例就立刻纠正④ 后训练SFT 或 prompt,最便宜的一格
线上体感差但基准分数很高自建 20 条真实样本重测,分数掉下来⑤ 评测换评测口径,别调模型
输出偶发崩坏、长输出后变差换回未量化权重就正常⑥ 部署提高量化位宽或换量化方案
多轮之后开始遗忘、绕圈打印实际进模型的上下文,看被裁掉了什么⑦ Agent上下文工程,不是换模型
同类任务反复犯同一个错错误可归纳成一条规则⑦→⑧ 回流把轨迹变成数据,喂给下一轮

这张表和图配着看:图给形状,表给动作。 表里有一行值得单独强调——倒数第二行是最容易被误诊的一行。多轮变差的绝大多数情况是第⑦格的上下文被裁掉了,不是第②格的模型不够强,但因为”换个更强的模型”是最容易执行的动作,它常常被优先尝试,然后浪费掉一整个迭代周期。


六、一小时的自测:把一个真实失败案例走完这张图

上面那张表值不值得信,你自己一小时就能验。这个实验专门用来检验第五节那张诊断表,不是泛泛的”你可以试试”:

  1. 选样本(10 分钟):从你的日志里挑 1 个真实的失败 case,要求是”重复出现过至少两次”的那种,不要挑偶发的。
  2. 逐格执行判据(40 分钟):按表里的顺序从①走到⑧,每一格只做那一行”可自测的判据”那一列写的事。第①格用 tokenizer.encode(你的输入) 打印切分;第⑤格自建 20 条真实样本重测;第⑦格把实际进模型的 messages 数组整份打印出来,逐条对比你以为发的内容和实际发出去的内容。
  3. 记录一个数字(10 分钟):写下它在第几格被抓住,以及那一格的判据给出了什么具体证据。

判定标准:如果它在某一格被明确抓住,你就把”模型不行”换成了一句可执行的诊断,而下一步动作在表的最后一列。如果走完八格都没被抓住,那就是这张表漏了一格——这种情况我最想知道,因为它会改掉这篇文章的骨架。


七、通俗总结:一路缩印,只有一步能出门

如果前面的术语看糊了,这一节把整篇重讲一遍,不用任何术语。

把这件事想象成一路复印。 你有一份很厚的原始资料,第一次复印时缩到 A4,第二次拿复印件再缩印一次,第三次拿第二份复印件再缩……每一次都还能看,但每一次都有细字变成了糊块。关键在于:每复印一次,原件就被拿走了。 你手上永远只有最新那一份缩印件,回不去。

模型的一生就是这样九次缩印:把整个互联网缩成一份权重,把人类的喜好缩成一种说话风格,把很长的思考过程缩成一句直觉答案,把高精度的权重缩成低精度的、能塞进显卡的版本,把几十轮对话缩成一小段还塞得进去的上下文。每一步都能用,每一步都在糊掉一些东西。

而这一路上只有一件事不是缩印:让它真的出门干活。 工具报了个错、代码没跑通、用户把它的修改退回来了——这些是外面的世界给的新东西,原始资料里没有。这也是为什么”把它接到真实任务里跑”这件事,比再多复印几遍都值钱。

一句可以原样讲给同事的话:

模型的一生是一路缩印,糊掉的字找不回来;只有真让它出门干活那一步,才会带回新东西。

顺着这个画面,还剩一个我自己也没想清的问题:如果”出门干活”是唯一的新信息来源,那它带回来的东西质量有多差、才会让下一代反而变坏?(自己生成的数据喂回自己,这条路的边界在哪。)我手上没有能回答它的数据,等做出来再更新。


参考来源

论文

  • Llama 3 — The Llama 3 Herd of ModelsarXiv:2407.21783(2024-07-31):第②格的参数量与上下文长度出处。

站内相关(按图上的格)