← 知识平台 课程 17 章 · 130 课 130/130 课完成

从0训练LLM · 现代大模型体系

一课一问,从「一句话怎么变成数字」一路问到 2026 年开源前沿模型的设计:先试最朴素的方案,看它在哪个真实数字上失败,再走到现代做法。锚点模型 Qwen3.8-27B,所有数字都真实计算;配套从 0 训练一个我们自己的小模型。
问题链 · 按章推进

一课回答一个问题,每课结尾暴露下一个缺口。主链按顺序走;缩进的「岔路」课来自学习中冒出来的真问题,可按需绕进去。

D 深度学习地基:机器怎么从例子里学会规律 8/8 完成

整门课的地基:从「小猫 喜欢 吃 ___」出发,把训练一个网络要的每一件东西都被一个真数字逼出来——为什么要调参数、loss 为什么是 −ln p、为什么沿梯度走、梯度怎么一次算完、为什么要非线性、为什么要验证集、词怎么进网络。每一步都在浏览器里真算、真训练。

  1. 1
    机器怎么从例子里学到规律?
    ↓ 缺口:调参数得有个目标:怎么用一个数衡量「错了多少」?
    已完成
  2. 2
    怎么量「错了多少」?
    ↓ 缺口:知道错了多少,60 个参数(真模型几百亿个)该往哪边改、改多少?
    已完成
  3. 3
    往哪边改、改多少?
    ↓ 缺口:梯度要对每个参数都算一遍——两万多个、两百多亿个参数,怎么算得过来?
    已完成
  4. 4
    参数一多,梯度怎么算?
    ↓ 缺口:梯度会算了,可这个模型只会「各部分加起来再打分」——要看组合才能判断的规律,它学得会吗?
    已完成
  5. 5
    直线拟合不了怎么办?
    ↓ 缺口:模型能力够了,训练 loss 能一路压到 0——这就是学好了吗?
    已完成
  6. 6
    训练越来越好,新数据却越来越差?
    ↓ 缺口:前六课都在数上打转——可输入的是词,离散的词怎么进网络?
    已完成
  7. 岔路 已完成
  8. 7
    离散的词怎么进网络?
    ↓ 缺口:词进了网络,「下一个词」的概率怎么算、为什么终点是 Transformer?(进入 C0 序章)
    已完成
C0 序章:为什么是 Transformer + 预测下一个词 6/6 完成

终点为什么是「下一个词的概率」,中间为什么是注意力。从数数的 bigram 出发,每一代方法都死在一个能算出来的数字上:0 概率、0.9 的 100 次方、塞进一个向量的整句、N×N 的分数矩阵——一路被逼到今天的 Transformer 与自回归预训练。

  1. 1
    下一个词的概率怎么算?
    ↓ 缺口:计数模型只看前 1 个词,前文再长也看不见——怎么记住任意长的历史?
    已完成
  2. 2
    怎么记住任意长的历史?
    ↓ 缺口:输入一句、输出一句时,整句都要压进这个固定状态——长句会怎样?
    已完成
  3. 岔路 已完成
  4. 3
    输入一句、输出一句,长句为什么丢?
    ↓ 缺口:注意力已经能从任意位置直接取信息——还要 RNN 吗?
    已完成
  5. 4
    只留注意力,行不行?
    ↓ 缺口:模型结构有了。训练目标和数据从哪来?怎么知道它学得好不好?
    已完成
  6. 5
    没有标注怎么学?怎么知道学得好不好?
    ↓ 缺口:「下一个词」里的「词」到底是什么?文字怎么变成模型能算的数字?(C1)
    已完成
C1 文字怎么变成数字 10/10 完成

神经网络只会算数字。这一章把一句中文变成 [T × 5120] 的向量矩阵:先切成 token,再换成词表行号,最后查表变成向量——每一步为什么这样做,都从朴素方案的失败里逼出来。

  1. 1
    一句话怎么变成数字?
    ↓ 缺口:为什么不干脆一个字一个 Token,也不一个词一个 Token?
    已完成
  2. 2
    为什么不一字一个 Token,也不一词一个 Token?
    ↓ 缺口:子词这张表是怎么学出来的?
    已完成
  3. 岔路 已完成
  4. 3
    BPE 怎么学会「该怎么切」?
    ↓ 缺口:词表该多大?
    已完成
  5. 岔路 已完成
  6. 4
    词表该多大?
    ↓ 缺口:编号有了,但编号能直接拿来算吗?
    已完成
  7. 5
    Token ID 为什么不能直接拿来算?
    ↓ 缺口:这张表里的数字是谁写进去的?
    已完成
  8. 6
    Embedding 的数字从哪来?
    ↓ 缺口:维度越大越好吗?
    已完成
  9. 7
    Embedding 维度越大越好吗?
    ↓ 缺口:这些向量不知道自己在第几个位置——「小明打了小王」和「小王打了小明」查出来是同一组向量。
    已完成
  10. 实验
    同一段话交给三个真分词器,token 数差多少?
    ↓ 缺口:这些向量不知道自己在第几个位置——进入 C2。
    已完成
C2 位置:模型怎么知道顺序 7/7 完成

Embedding 只说明了每个 token 是什么,没说明它在哪里。这一章从「不加位置分不清顺序」出发,经过直接塞编号、可学习位置、正弦公式,一路被真数字逼到 RoPE,再追到长上下文扩展。

  1. 1
    同样三个 token 换个顺序,模型分得出来吗?
    ↓ 缺口:那就把位置告诉它——最直接的办法是什么?
    已完成
  2. 2
    直接把位置编号告诉模型,行不行?
    ↓ 缺口:训练时没见过的位置怎么办?能不能不「背」位置,而是「算」出来?
    已完成
  3. 3
    没训练过的位置,能不能用公式算出来?
    ↓ 缺口:能不能让注意力直接感受到「相隔多远」?
    已完成
  4. 4
    RoPE 到底旋转了什么?
    ↓ 缺口:能算出位置,是不是就能读懂长文?
    已完成
  5. 岔路 已完成
  6. 5
    能算出位置编码,就能读懂长文吗?
    ↓ 缺口:位置已经进了 Q/K,那 Q、K、V 到底是什么?
    已完成
  7. 实验
    实验课:三种位置编码在我们自己的模型上比一比
    ↓ 缺口:位置已经进了 Q/K,那 Q、K、V 到底是什么?(进入 C3)
    已完成
C3 注意力:一个 Token 怎么从别的 Token 那里取信息 13/13 完成

到上一章为止,每个 token 都是一个带着位置的向量,可它只知道自己。这一章从「直接拿向量比相似度」出发,一步步被逼出 Q/K/V、点积、softmax、因果掩码、多头,再到生成时的 KV cache 和把它压小的 GQA、MLA。

  1. 1
    已经有 Embedding 了,为什么还要变成 Q、K、V 三份?
    ↓ 缺口:Q 和 K 怎么算「匹不匹配」?为什么偏偏用点积?
    已完成
  2. 2
    Q 和 K 怎么算匹不匹配?为什么偏偏用点积?
    ↓ 缺口:分数有了,可它有正有负、没有上界,怎么变成「关注多少」?
    已完成
  3. 3
    分数怎么变成「关注多少」的权重?
    ↓ 缺口:训练时一次看完整句,怎么保证不偷看后面的答案?
    已完成
  4. 4
    训练时怎么防止模型偷看答案?
    ↓ 缺口:权重有了,取回来的到底是什么?
    已完成
  5. 5
    找到该关注谁之后,取回来的是什么?
    ↓ 缺口:回扣:C2 说 RoPE 旋转 Q 和 K——Q、K、V 都认识了,为什么偏偏不转 V?
    已完成
  6. 6
    回扣:RoPE 为什么偏偏旋转 Q 和 K,不旋转 V?
    ↓ 缺口:一套 Q/K/V 只能看一种关系,够吗?
    已完成
  7. 7
    一套 Q/K/V 只能看一种关系,够吗?
    ↓ 缺口:生成时,每一步都要把前面所有 token 的 K、V 重算一遍吗?
    已完成
  8. 岔路 已完成
  9. 岔路 已完成
  10. 8
    生成时,每一步都要把前面所有 token 的 K、V 重算一遍吗?
    ↓ 缺口:缓存随上下文线性增长,每个头都存一份 K/V 太贵了,怎么办?
    已完成
  11. 9
    每个头都存一份 K/V 太贵,怎么办?
    ↓ 缺口:还能再压吗?继续减 KV 头会掉质量——能不能干脆不存 K、V 本身?
    已完成
  12. 10
    KV 还能再压吗?
    ↓ 缺口:先到实验课:我们自己训练的模型真的在这样分配注意力吗?然后 → C4:注意力把信息取回来之后,每个 token 自己还要做什么加工?
    已完成
  13. 实验
    我们自己训练的模型,真的在这样分配注意力吗?
    ↓ 缺口:信息取回来之后,每个 token 自己还要做什么加工?(进入 C4)
    已完成
C4 一个 Transformer 块:FFN、残差、归一化、门控 6/6 完成

注意力让每个 token 取回了上下文,可一个块里不只有注意力。这一章把剩下的零件一个个「逼」出来:FFN、残差、归一化、门控,最后算清一个块、一整个模型的参数花在哪。

  1. 1
    注意力取回信息之后,每个 token 自己还要做什么加工?
    ↓ 缺口:注意力和 FFN 都有了,一层层直接往上叠,叠深了会怎样?
    已完成
  2. 2
    把注意力和 FFN 一层层直接叠起来,叠深了会怎样?
    ↓ 缺口:残差流越加越大,每一层看到的输入尺度都不一样——怎么把它拉回来?
    已完成
  3. 3
    残差流越加越大,怎么让每一层看到尺度稳定的输入?
    ↓ 缺口:Qwen3.8 的 FFN 为什么有三个矩阵,注意力的 q_proj 为什么还要多输出一倍?
    已完成
  4. 4
    门控:为什么现代 FFN 有三个矩阵,注意力的 q_proj 还要多输出一倍?
    ↓ 缺口:零件都齐了:一个块、一整个模型的参数到底花在哪?(岔路 B1)——然后进入 C5:块搭好了,参数怎么更新得又快又稳?
    已完成
  5. 岔路 已完成
  6. 实验
    在我们自己的模型上,把块里的零件一个个拆掉、换掉,会怎样?
    ↓ 缺口:块的结构定了;训练时学习率、warmup、优化器怎么选?(C5)——Post-LN 为什么离不开 warmup(我们的项目里是卡在字频、不是发散),C8 解释。
    已完成
C5 优化:参数怎么更新得又快又稳 9/9 完成

前五章把网络从文字一路搭到下一个 token 的概率,loss 和反向传播给出了每个参数的梯度。这一章回答最后一步:拿到梯度,参数怎么动。从「沿梯度走一步」出发,被一个个真数字逼出动量、Adam、AdamW、warmup、cosine 与 WSD、梯度裁剪,最后到 2025–2026 年前沿模型换上的 Muon。所有 loss 曲线都是在你的浏览器里真训练出来的,或来自我们项目的真实日志。

  1. 1
    为什么梯度下降在峡谷里要走两百多步?
    ↓ 缺口:不同参数的梯度能差上千倍,一个学习率管得过来吗?
    已完成
  2. 2
    一个学习率管得了所有参数吗?
    ↓ 缺口:Adam 里加 weight decay,还是原来那个 weight decay 吗?
    已完成
  3. 3
    Adam 里的 weight decay 为什么失效了?
    ↓ 缺口:AdamW 准备好了,为什么一上来就用峰值学习率会炸?
    已完成
  4. 4
    为什么一开局就用峰值学习率会炸?
    ↓ 缺口:热身之后学习率就一直不变吗?不知道要训多久,又该怎么降?
    已完成
  5. 5
    不知道要训多久,学习率该怎么降?
    ↓ 缺口:学习率调好了,偶尔一个超大的梯度会不会把模型甩飞?
    已完成
  6. 岔路 已完成
  7. 6
    一个超大的梯度会把模型甩飞吗?
    ↓ 缺口:每个参数都照顾到了,可一个权重矩阵被 Adam 当成一堆独立的数——浪费了什么?
    已完成
  8. 7
    Adam 把一个权重矩阵当成一堆独立的数,浪费了什么?
    ↓ 缺口:优化器定了,该训多大的模型、喂多少数据?
    已完成
  9. 实验
    同样的模型和数据,换优化器、换调度,真实曲线差多少?
    ↓ 缺口:优化器定了,该训多大的模型、喂多少数据?
    已完成
C6 规模:训多大、喂多少 6/6 完成

大模型只训得起一次。这一章从「训完再看」出发,一路被真数字逼到现代做法:先用小模型拟出缩放律,再按预算分配参数和数据,把推理成本算进账本,最后连学习率和 batch 也跟着规模缩放。所有拟合都在页面里用真实的公开实验点现算。

  1. 1
    训一个大模型之前,能预测它训完的 loss 吗?
    ↓ 缺口:预算定了,参数 N 和数据 D 各拿多少?
    已完成
  2. 2
    算力固定,参数 N 和数据 D 怎么分?
    ↓ 缺口:训练最优就是部署最优吗?模型训完还要被调用十亿次。
    已完成
  3. 岔路 已完成
  4. 3
    模型训完要被调用十亿次,还该按「训练最优」来训吗?
    ↓ 缺口:小模型上调好的学习率和 batch,放大 100 倍还能用吗?
    已完成
  5. 4
    小模型上调好的学习率和 batch size,放大 100 倍还能用吗?
    ↓ 缺口:规模和超参都定了:15T 个高质量 token 从哪来?(进入 C7)
    已完成
  6. 实验
    实验课:在我们自己的小模型上拟一条缩放律
    ↓ 缺口:我们的语料只有 50 万 token,模型一大就喂不饱:数据从哪来?(进入 C7)
    已完成
C7 数据:从哪来、怎么洗、怎么配 8/8 完成

前六章一直把「文字」当成现成的输入。这一章把项目的原始语料当成一次网页快照,一步步洗成训练数据:还原正文、规则过滤、去重、质量分类器、配比、重复与合成、退火与 mid-training——每一步都被上一步在某个真数字上的失败逼出来。

  1. 1
    直接把网页爬下来就能训练吗?
    ↓ 缺口:规则留下来的文本里,同一段话可能出现成千上万次,会怎样?
    已完成
  2. 2
    同一段话在语料里出现几万次,会怎样?
    ↓ 缺口:不重复、也合法,但很多文本「没营养」,怎么筛?
    已完成
  3. 岔路 已完成
  4. 3
    规则都过了、也不重复,没营养的文本怎么筛?
    ↓ 缺口:筛完剩下网页、代码、数学、书,各按多少比例混?
    已完成
  5. 4
    网页、代码、数学、书,按什么比例混?
    ↓ 缺口:高质量数据被上采样到第几遍就不值了?用完了怎么办?
    已完成
  6. 5
    高质量数据用完了怎么办?
    ↓ 缺口:数据够了,最好的那部分什么时候喂?
    已完成
  7. 6
    最好的数据什么时候喂?
    ↓ 缺口:数据和配方都齐了,模型放大以后,为什么训练会炸?(进入 C8)
    已完成
  8. 实验
    实验课:把《三國志演義》当成一次网页快照,完整跑一遍数据管线
    ↓ 缺口:数据和配方都齐了,模型放大以后,为什么训练会炸?(进入 C8)
    已完成
C8 稳定性:放大后为什么会炸 6/6 完成

优化器、规模、数据都定了,把模型放大,训练就会以各种方式出事:一初始化就溢出、离不开 warmup、开着裁剪还 spike、注意力 logit 长到上千、小模型调好的学习率到大模型上不能用。这一章把每一种「炸」对应到一个能测的量,再看 2017 到 2026 年各家怎样给它装上仪表、设上限。

  1. 1
    深网为什么一初始化就炸?
    ↓ 缺口:初始化算好了,原版 Transformer 为什么还离不开 warmup?
    已完成
  2. 2
    原版 Transformer 为什么离不开 warmup?
    ↓ 缺口:开着梯度裁剪、用了 Pre-LN,为什么训练到一半还会 loss spike?
    已完成
  3. 3
    开着梯度裁剪,为什么还会 loss spike?
    ↓ 缺口:病根是 logit 被一步步养大:能不能直接把它按住?
    已完成
  4. 4
    怎么按住 logit?
    ↓ 缺口:稳定手段都齐了:小模型上调好的学习率,放大到宽 20 倍的模型还能用吗?
    已完成
  5. 5
    小模型上调好的学习率,大模型能用吗?
    ↓ 缺口:训得稳了:训练一个参数,到底要几字节?logit 漂到上千时,BF16 还分得清吗?
    已完成
  6. 实验
    实验课:给我们自己的模型装上稳定性仪表
    ↓ 缺口:训练一个参数,要几字节?(进入 C9)
    已完成
C9 精度与显存:一个参数要几字节 7/7 完成

推理时一个参数 2 字节,训练时 16 字节。这一章从这本账出发,每砍一次位宽就在一个真数字上失败一次:FP16 让 10⁻⁸ 变成 0,BF16 让 257 变成 256,FP8 让离群值拖垮整张量,FP4 只剩 16 个码点;再看另一半账——激活,它由序列长度决定,还带 s²。

  1. 1
    训练一个参数,要几字节?
    ↓ 缺口:16 字节里有 12 字节是 FP32——能不能全换成 16 位?
    已完成
  2. 2
    全换成 FP16,为什么会丢梯度?
    ↓ 缺口:loss scale 要一直调、溢出就跳步——能不能换一种 16 位,干脆不缩放?
    已完成
  3. 3
    能不要 loss scaling 吗?
    ↓ 缺口:16 位已经稳了。矩阵乘能不能再砍一半,用 8 位算?
    已完成
  4. 4
    8 位还能训吗?
    ↓ 缺口:参数、梯度、矩阵乘都压下来了,为什么一开长序列显存还是爆?
    已完成
  5. 岔路 已完成
  6. 5
    激活为什么比参数还占显存?
    ↓ 缺口:先到实验课,在我们的模型上把四种精度和显存账对一遍;然后:激活压下去之后,27.8B 的 444.5 GB 模型状态仍放不进一张 80 GB 的卡——一张卡不够,怎么办?
    已完成
  7. 实验
    实验课:四种精度在我们的模型上比一比,再把显存账对一遍
    ↓ 缺口:一张卡不够,怎么办?(进入 C10)
    已完成
C10 并行:一张卡不够怎么办 7/7 完成

C9 算完账:锚点 Qwen3.8-27B 训练一步要 444.5 GB 模型状态,一张 80 GB 的卡放不下,也算不完。这一章依次切 batch、模型状态、层内矩阵、层,岔路再切序列和专家;每切一维,就多付一种通信代价。本章所有数字来自公式与公开实测,不是我们自己跑的。

  1. 1
    一张卡太慢,8 张卡怎么一起训同一个模型?
    ↓ 缺口:8 张卡存了 8 份一模一样的 444.5 GB——能不能每张卡只存 1/8?
    已完成
  2. 2
    每张卡都放不下怎么办?
    ↓ 缺口:ZeRO-3 之后,每张卡仍在一个人算完整的一层、存自己那份激活——一层的矩阵乘能不能拆开算?
    已完成
  3. 3
    一层的矩阵乘,能不能拆到几张卡上一起算?
    ↓ 缺口:TP 只能在一台机的 8 张卡里用;卡再多,跨机该按层切——按层切为什么有卡在等?
    已完成
  4. 4
    按层切到不同卡上,为什么有卡在等?
    ↓ 缺口:岔路:128K 的序列激活放在哪?几百个专家放在哪?主线:几种切法怎么组合成一套方案?
    已完成
  5. 岔路 已完成
  6. 岔路 已完成
  7. 实验
    实验课:给锚点在 8 张卡和 64 张卡上各配一套并行方案
    ↓ 缺口:放得下、算得完了。想要更多参数,却不想要更多算力?(进入 C11)
    已完成
C11 更大更省:MoE、线性/稀疏注意力与长上下文 8/8 完成

C10 让放不下的模型跑了起来。这一章问另一件事:参数要更多、上下文要更长,但每个 token 的计算和显存不能跟着等比例涨。FFN 那边用 MoE 把「参数」和「每个 token 的计算」分家;注意力那边用线性注意力和稀疏注意力把 KV 与计算从长度里解放出来——锚点 Qwen3.8 另外 48 层就在这里揭晓;训练那边用「先短后长」把长序列的成本压到预算的一小角。

  1. 1
    更多参数,但不要更多算力?
    ↓ 缺口:路由器是和专家一起学出来的——它会不会总把 token 发给同几个专家?
    已完成
  2. 2
    专家为什么抢活、闲置?
    ↓ 缺口:均衡解决了「谁干活」;那每个专家该多大、分多少个?
    已完成
  3. 3
    专家该大还是小?
    ↓ 缺口:FFN 这边「多参数不多算」有了;注意力那边,长文本的 KV 还能再压吗?
    已完成
  4. 4
    长文本的 KV 还能再压吗?(揭晓锚点另外 48 层)
    ↓ 缺口:线性层砍掉了 3/4 的 KV,剩下 1/4 的全注意力层仍按长度增长——能不能每次只读一部分?
    已完成
  5. 5
    稀疏注意力省了什么,没省什么?
    ↓ 缺口:推理时的计算和显存都压下来了——那训练要不要一开始就用长序列?
    已完成
  6. 6
    训练 4K,使用 128K?
    ↓ 缺口:先到实验课:4 个专家在我们自己的模型上抢活吗?然后 → C12:模型会续写、能读长文,可它只会续写——怎么让它听话?
    已完成
  7. 岔路 已完成
  8. 实验
    实验课:4 个专家在我们自己的模型上抢活吗?
    ↓ 缺口:模型会续写、能读长文,可它只会续写——怎么让它听话?(进入 C12)
    已完成
C12 后训练:从续写到听话、推理、做事 10/10 完成

预训练出来的模型只会接着往下写。这一章从「原样把问题交给它」出发,一路被真数字逼到 SFT、奖励模型与 PPO、DPO、GRPO、可验证奖励、思考模型、蒸馏,最后在环境里做多轮 RL,把模型交给 Agent 课。每一步都在回答两个独立的问题:梯度怎么算,奖励从哪来。

  1. 1
    预训练模型只会续写,怎么让它回答问题?
    ↓ 缺口:好回答很难写出来,但人能比较两个回答——怎么把「比较」变成训练信号?
    已完成
  2. 2
    好回答写不出来,但能比较:怎么把「比较」变成训练信号?
    ↓ 缺口:4 个模型太重,奖励模型还得先训——能不能不训奖励模型?
    已完成
  3. 3
    能不能不训奖励模型,直接用偏好数据训策略?
    ↓ 缺口:离线学不到数据里没有的东西;在线 RL 又要一个和策略一样大的 value model——value model 能不能也省掉?
    已完成
  4. 4
    PPO 的 value model 和策略一样大,能不能去掉?
    ↓ 缺口:奖励从哪来?学出来的奖励模型会被钻空子——有没有骗不了的奖励?
    已完成
  5. 5
    学出来的奖励会被骗,有没有骗不了的奖励?
    ↓ 缺口:推理题要「想得久」:怎么训出会思考的模型,又怎么控制它想多久?
    已完成
  6. 岔路 已完成
  7. 6
    怎么让模型想得更久,又能控制它想多久?
    ↓ 缺口:大模型想得好了,小模型自己做 RL 又贵又差——能不能直接继承?
    已完成
  8. 7
    小模型自己做 RL 又贵又差,能不能直接继承大模型的推理?
    ↓ 缺口:会答题了——可「做事」要调用工具、看环境反馈、走几十步,怎么训?
    已完成
  9. 8
    从答题到做事:多轮调用工具、看环境反馈,怎么训?
    ↓ 缺口:先到实验课,在我们自己的模型上做一次 SFT;之后的问题:模型输出了一段「调用工具」的文字,然后呢?(交接 Agent 课)
    已完成
  10. 实验
    实验课:在我们自己的模型上做一次 SFT
    ↓ 缺口:rollout 就是 decode:生成为什么慢、怎么变快?(进入 C13)
    已完成
C13 推理:生成为什么慢、怎么变快 7/7 完成

前十二章把模型训了出来,还教会了它听话、推理、做事。可真正用起来,它一次只吐一个 token,而且慢得反常:KV cache 早把计算省到每步一个 token 了。这一章从屋顶线出发,找到解码的真瓶颈——每个 token 都要把整个模型从显存读一遍;再沿着这个瓶颈看服务端的连续批处理与分页 KV、一个字都不改的投机解码、少读字节的量化,最后把「快」拆成几个互相拉扯的数。

  1. 1
    同一个模型,读 prompt 很快、逐字生成很慢,差在哪?
    ↓ 缺口:batch 能把权重的读取摊薄——可成百上千个请求的 KV cache 怎么在显存里放、怎么排队?
    已完成
  2. 岔路 已完成
  3. 2
    成百上千个请求一起解码,KV cache 在显存里怎么放、怎么排?
    ↓ 缺口:同时服务的人多了,单个用户每秒拿到的 token 却没变多;batch 1 时 99% 以上的算力闲着——能不能拿闲着的算力换速度,而且一个字都不改?
    已完成
  4. 3
    一次前向验好几个 token,凭什么输出分布一点都不变?
    ↓ 缺口:投机解码拿闲着的算力换时间;另一条路是直接少读字节——每个权重非要 16 位吗?
    已完成
  5. 4
    把权重从 16 位压到 4 位,为什么能变快,又会丢什么?
    ↓ 缺口:每一招都说自己「更快」——用户关心的快、老板关心的快、测试报告里的快,是一回事吗?
    已完成
  6. 5
    服务快不快,该看哪几个数?
    ↓ 缺口:快的账算清了;量化后验证 loss 涨的那一点、报出来的 benchmark 分数,能信几分?(投机解码按构造不改输出分布)
    已完成
  7. 实验
    在我们自己的模型上,把缓存、采样、投机、量化的账都对一遍
    ↓ 缺口:快的账算清了;量化后验证 loss 涨的那一点、报出来的 benchmark 分数,能信几分?(投机解码按构造不改输出分布)
    已完成
C14 评测与训练仪表:分数能信吗 5/5 完成

全课的「读仪表」收束章。前面十三章造出了一整条训练链,这一章问:我们看到的每个数字,能信几分?训练中,loss 是结果、不是状态,要配上开局 ln V、梯度范数、最大 logit 这几块仪表;训练后,公开 benchmark 的分数混着「见没见过题」和「怎么考」;做决策时,小实验的差距要先和噪声比,「突然涌现」常常是尺子的形状。所有数字来自我们项目的几十个真实 run、浏览器里现场训练的小模型,以及逐字核对过的论文与第三方评测。

  1. 1
    训练跑着的时候,只看 loss 曲线够吗?该看哪些仪表?
    ↓ 缺口:训练完了,拿 benchmark 分数说话——这些分数能信吗?
    已完成
  2. 2
    训练完,在公开 benchmark 上报一个分数——这个分数能信吗?
    ↓ 缺口:题目干净、口径统一之后,小模型上的分数本身有多少噪声?小实验的结论能推到大模型吗?
    已完成
  3. 岔路 已完成
  4. 3
    大模型只训得起一次,小实验上得出的结论能信几分?「涌现」会让小实验全部失灵吗?
    ↓ 缺口:带着这套读数方法,去读 2026 年的前沿技术报告:它们各自改了什么、为什么?
    已完成
  5. 实验
    我们项目跑过的几十个 run,仪表上哪些「正常」、哪些「要出事」?
    ↓ 缺口:带着这套读数方法,去读 2026 年的前沿技术报告(进入 C15)
    已完成
C15 前沿解剖:2026 开源模型各自改了什么、为什么 7/7 完成

全课的毕业考。不教新组件,而是拿前面各章的工具——C3 的 KV 账、C4 的参数账本、C5 的 Muon、C8 的截断与残差、C9 的 FP4、C11 的 MoE 与线性 / 稀疏注意力——去拆 2026 年 8–9 月的四家开源前沿:Qwen3.8、GLM-5.3、DeepSeek-V4.1、Kimi K3。每一处设计都标出它回扣哪一章,并分清「真新东西」与「只是放大」。

  1. 1
    Qwen3.8 到底改了什么?
    ↓ 缺口:如果一个新版本连 config 都没动,提升从哪来?
    已完成
  2. 2
    config 一个字段都没改,GLM-5.3 的提升从哪来?
    ↓ 缺口:GLM-5.3-Flash 靠 KDA 把每 token 的 KV 压到 11 KiB;DeepSeek 不用线性注意力,凭什么压到 890 字节?
    已完成
  3. 岔路 已完成
  4. 3
    不用线性注意力,DeepSeek-V4.1 怎么把每 token 的全局 KV 压到 890 字节?
    ↓ 缺口:DeepSeek 选了 softmax + 压缩;Kimi K3 走相反的路——固定状态、连位置编码都不要。它哪些是真新东西?
    已完成
  5. 4
    2.8T 参数的 Kimi K3,哪些是真新东西,哪些只是放大?
    ↓ 缺口:四家各看了一遍——放到同一张表上,2026 年到底趋同了什么、分歧在哪?
    已完成
  6. 岔路 已完成
  7. 实验
    实验课:12 个模型的官方 config 放在一张表上,2026 年趋同了什么、分歧在哪?
    ↓ 缺口:全课到此结束:下一份前沿报告发布时,用这一章的方法自己拆一遍;agentic RL 之后的事,在编码 Agent 课接着讲。
    已完成
← 返回知识平台 从「D 导读 · 深度学习地基:机器怎么从例子里学会规律」开始 →