加速器系统课程

大模型长成今天这个样子,是被芯片逼出来的。
而芯片长成今天这个样子,也是被大模型逼出来的。

十四个专题,把这两个世界拆开、对齐 —— 从一个 token 的一生, 到最后那 80% 的算力去哪了。不背结论,每一步都算给你看。

课程作者 Chris Yang·Google Cloud AI Infra 架构师

30 秒版本

先看这个,再决定要不要往下读。

讲什么

大模型和硬件之间的那层关系 —— 模型为什么长这样、它要什么样的机器、为什么要那么多张卡

给谁

工作里跟大模型沾边的人 —— 写代码的、做产品的、做判断的,都算

多长

14 个专题,每个 60–80 分钟。分三层:主线 7 个,其余按需

怎么学

每个专题独立成篇。看得懂就往下走,卡住了回去补前置

不讲

算法推导 · 调参手册 · 操作步骤

学完主线,你能拿着一个模型和一批卡,
说出该怎么跑、为什么这么跑。

学完能答上这些

「大模型很贵」,最常见的解释是参数多。这个说法没错, 只是再往下问一层,它就不够用了 ——

同一个优化,在 GPU 上很管用,搬到 TPU 上一点用都没有 —— 差在哪?

为什么加卡有时候快一倍,有时候一点都不快?

推理的时候,一张卡能同时服务几个人,这个数怎么来的?

去年管用的优化技巧,为什么今年的模型上不灵了?

这几个问题的答案都不是一句话,是一串因果。把这串因果走一遍,就是这门课要做的事。

做法很简单:不背结论,只算账。 拆开一个真实的模型,跟着一个 token 走完全程,每走一步就算一次 —— 这一步要多少显存、多少算力、多少通信。

走完之后,「它装不进任何一块卡」不再是一句听来的话,是你自己算出来的结果。 而后面所有的技术 —— 并行、量化、稀疏注意力、专家路由 —— 都变成了对这个结果的回应

谁适合来

一句话:工作里跟大模型沾边,又想搞明白它到底是怎么回事的人,都能来。

欢迎这些人 ——

  • 工作跟大模型有关的所有人 —— 不管你是在写代码、做产品、还是在做判断
  • 想弄清楚大语言模型的前世今生:它为什么长成今天这个样子
  • 需要看懂别人的训练 / 推理方案,判断它靠不靠谱
  • 要跟做这件事的团队对话,不想只听得懂名词
  • 想知道那些新架构(MLA、MoE、稀疏注意力)到底在解决什么问题

这门课不做什么 ——

  • 不是能照着敲的操作手册 —— 那份东西在仓库里,不占课时
  • 不做穷尽的综述 —— 讲到的每一样都挖到根上,但不追求把同类方案列全
  • 不讲算法(怎么设计模型、怎么调超参)—— 那是另一门课
不需要什么预备知识。 每一课开头都写清了前置,卡住了回去补那一节就行。 起点放得很低,但终点不低 —— 这门课的任务是把地图给你, 而地图上每一条主路都是走到底的:不是列名词,是拆到能自己往下推。 实在要再深一层的,我们线下单独聊

讲什么,不讲什么

这条边界决定了课程的深度 —— 讲方向和量级,不讲具体参数值。

✅ 讲❌ 不讲
一个部件大概多贵(数量级)精确到小数点的实测值
一项技术在换什么(用算力换显存……)具体参数怎么设
一个设计为什么会出现它的数学推导
反直觉的地方(看着对,其实错)完整的消融实验表
硬件的形状怎么塑造了模型的形状集群怎么开、作业怎么提交
操作性的东西(建集群、提作业、容错、编译缓存)不进课程 —— 那些放一份 step-by-step 文档就够了,不值得占课时。

课程地图

主线是一条因果链 —— 每一课的结论,就是下一课的问题。中间断开一节,后面就只能背结论了。

1
一个 Token 的一生一个 token 走完全程,边走边算
结论:装不进任何一块卡
2
TPU 与 GPU那,卡到底长什么样?
量到那条分水岭:算术强度 312 —— 而朴素注意力只有 64
3
注意力演进那,大家是怎么绕开的?
前向到此算清了:还有什么没算进去
4
反向与优化器账还没算完 —— 大头在这儿
结论:必须切开
5
并行策略那,沿哪一维切?
换个场景:整本账重算一遍
6
推理约束跟训练几乎处处相反
跑起来了:慢在哪儿?
7
性能调优与工具链先定位,再动手

深入 · 按需,任意顺序

实操 · 工程岗

这两个只对要动手写代码的人是必需的。
其余人可以跳过。

十四个专题

每个专题都写清楚三件事:讲什么 · 为什么排在这个位置 · 给后面垫了什么。

主线必修 · 按顺序
01一个 Token 的一生Life Cycle of a Token正文已完成
不泛讲 Transformer。拆一个真的 —— DeepSeek V3,跟着一个 token 走完全程,每走一步就把账算一遍。
讲什么
从分词开始,经过 MLA、MoE、61 层堆叠,一直到出口。七步,每步问同样四个问题:权重多大、激活多大、多少算力、有没有什么东西在这里爆炸
为什么先讲
所有的硬件需求,都是模型的形状决定的。先知道要什么,才谈得上机器怎么给。而且拆一个真实的、当下的模型,比泛讲十个抽象概念有用得多。
垫了什么
一个算出来的结论:它装不进任何一块卡。后面所有的课,都在回答这个结论提出的问题。
02TPU 与 GPUTwo Ways to Build the Same Machine正文已完成 · 两版
一个从游戏显卡长出来,一个一开始就是为矩阵乘造的。但真到了参数表上,两边几乎一样 —— 差别不在那儿。
讲什么
不罗列参数 —— 参数表恰恰是这一课第一个要拆穿的东西。算力、HBM 带宽、片上 SRAM 三项都在 10% 以内,两边的「算力 ÷ 带宽」甚至撞在同一个数上(312.9 对 312.5)。真正的差别是各缺对方整整一层:TPU 没有硬件自动管的片上缓存,GPU 没有可编程的专用协处理器。缺的不是容量,是「谁做决定」—— 一个交给运行时,一个交给编译期。这条差别再一路展开到访存、计算单元、互联和整个软件栈。
为什么排第二
第一课刚算出「装不下」。这一课开场先把上一课欠的那个数还清(一张卡到底能用多少 HBM、剩下的去哪了),再往下拆那张卡。
两版怎么选
L200(约 80 分钟)36 张图、正文 21.3 千字 —— 讲课和第一遍读用这版。 L300(约两小时半)74 张图、正文 33.6 千字 —— 自读、回查、想再挖一层用这版。 两版节号完全对齐(§0–§9):L200 里哪一节想往下挖,直接翻 L300 的同一节号, 不用重新找位置。L200 不是 L300 删几段,是同一个故事重新蒸馏了一遍。
垫了什么
一把尺子和一个判据。尺子是算术强度 312 这条分水岭 —— 左边买算力没用,右边省搬运没用;判据是「这个优化改的是谁做决定,还是改搬多少」。后面每一次说「这个优化在 TPU 上不管用」或者「这里必须静态形状」,都指回这一课。
03注意力演进Three Knobs, Not Thirty Names✅ 主线九章全成稿 · 48 张图 · 讲义 125′|🖥 自带折叠开关(默认只留图,按 T 展开讲解)|📖 L300 完整版另存(58 张图)
MLA、GQA、SWA、DSA、线性注意力…… 名词多到像各搞各的。但它们在解同一道题,而且只有三个旋钮可以拧。
讲什么
先把两条动机分开 —— 硬件账(KV cache 会比权重还大,不解决上不了线)和信息账(那张注意力矩阵本来就极其稀疏,算了也是白算)。然后一张表把所有名词收进三个旋钮:每个 token 存多少 · 每个 query 看多少 · 换一套数学
为什么排第三
第一课算出过一条曲线:4K 长度时注意力只占 12% 算力,128K 时是 82%,1M 时是 97%模型一个字没变,只是输入变长,瓶颈就整个换了地方。第一课只负责把「为什么非改不可」算出来 —— 这一课回答「那大家是怎么改的」。紧接着讲,趁账还热。
垫了什么
后面每一课都要用:并行策略里的序列维怎么切、推理里 prefill 和 decode 为什么瓶颈相反、开源模型对比里那一列「注意力方案」怎么读 —— 都从这三个旋钮长出来。
现在分成两版
主线(2026-09-14 重写完成)—— 按时间线穿成一条故事:RNN 怎么记事 → 2017 年把链剪断换成一张表 → 上下文一长这张表付不起 → 砍头(MQA/GQA)→ 不存 K/V 只存压缩件(MLA)→ 别全读(滑窗 → DSA)→ 绕回固定状态 → 混合配比。多图、少字,每一章只回答「上一章欠下什么,这一章还什么」。
L300 完整版 —— 原来那一版整体保留为档案:全部推导、消融表、一手出处、我们自己在 v7 上的实测,共 58 张图。查东西看它。
L300 里已经写完的
全部主线小节都已成稿(2026-09-13)。这一版的重点不是「有哪些方案」,而是每个方案是怎么被想出来的、凭什么可行 —— 例如 MLA 凭什么敢把 32,768 压到 576DSA 怎么绕开「要判断谁重要就得先算注意力」这个鸡生蛋滑窗砍掉四个 token 为什么会让困惑度从 5.40 炸到 5158
2026-09-16 补:主线加了 DeepSeek-V4 一整块 —— NSA / DSA / CSA / HCA 四步是同一条路,以及 V4-Pro 那条 KV 到底长什么样(它不是 MLA,是 Shared K=V MQA;那 64 维 RoPE 长在 512 里面,不在外面)。
另有两条贯穿全讲的线:事后压 vs 从头按压缩训(出现四次),以及硬件反过来决定公式(从「点积胜出是因为能写成矩阵乘」一路到「按块选不按 token 选」)。
04反向与优化器Completing the Bill前置 01✅ 七节 + 附录 · 28 图 + 3 段动画 · 84′ · 讲义已配
第一课只算了前向。真实要付的比那多得多 —— 而最大的一块,既不是权重,也不是激活。
讲什么
反向要多少算力(答案:让总量变成三倍)。激活为什么不能算完就扔。以及那个出人意料的答案:显存里最大的一块是优化器状态,模型本身反而最小。
为什么在这
前向的账是干净的事实,适合开场;反向牵扯到策略选择,放在读者已经会算之后再讲。
垫了什么
一张完整的账单 —— 并行策略要切的就是它。而且看完这张账单,ZeRO 那套分级设计就不用背了。
怎么排的
⭐ 这一讲按「谁最大」讲,不按训练流程讲。流程的顺序是前向 → 反向 → 更新,可那个顺序会让最大的那一块最后才出场 —— 而它恰恰是决定一切的那一块。七节 + 附录:前向只是半张账单 · 反向要付什么 · 第一个真正的「决策」· 优化器 · 这张账单决定了并行策略长什么样 · 一个完整 step 的总账 · 训不崩(数值稳定性) · 附录「这一讲的数是怎么核的」。
⭐ 跟专题三不同,这一讲可以跳着讲(它是账单不是故事线)—— 只有一处顺序不能倒:「激活为什么扔不掉」必须在那笔重算交易之前立住。
四条判据
数字会过期,这四条不会:① 要不要高精度,看那一项「老的贡献走不走」(滑动平均有遗忘,所以 bf16 扛得住;主权重跨十万步累加,必须 fp32);② 该不该重算,看「每省一字节要付多少 FLOPs」 —— 线性层的这个数恰好等于输入宽度,而 attention 的随序列长度线性上升,两条必然相交;③ 凡是会改变数据分片形状的参数,都不能跨规模照抄 —— 这条在本讲出现了三次,序列长度、模型规模、以及同一个开关换规模收益变号;④ 评价任何稳定性手段,要同时看「稳没稳」和「质量掉没掉」 —— 只看前者的话,把学习率设成零是最优解。
05并行策略
用一种通信,换一份显存或一份算力。选策略,就是在选你愿意付哪一种通信。
讲什么
一张按「切哪一维」分类的地图:batch、隐藏维、序列、层、专家、跨数据中心。每一行填四格:通信原语、通信量、频率、代价。
为什么在这
前面几课算出了「装不下」,这一课回答「那怎么切」。
垫了什么
通信是后面所有性能问题的源头。而且有条规律会反复用到:频率决定一个维度能放在多慢的链路上
06推理
训练把模型造出来,推理把它用起来 —— 而这两件事的约束几乎处处相反。
讲什么
推理内部是分裂的:吞下 prompt 那一段吃算力,一个字一个字往外吐那一段吃带宽。两个阶段的瓶颈相反 —— 推理系统全部的复杂性都从这儿来。以及围着 KV cache 展开的一整套工程。
为什么在这
大多数人先上推理再上训练。而且它是同一套账在另一个约束下重算一遍 —— 最能检验前面几课学扎实没有。
垫了什么
调优、量化、RL 都会回到这一课的两阶段模型。
07性能调优与工具链
模型跑起来了,MFU 只有 20%。剩下那 80%,去哪了?
讲什么
先定位,再动手 —— 顺序不能反。一套判据(屋顶线、算术强度)、一套工具(profile 怎么看)、一个固定的排查顺序,以及手段按代价从低到高排。
为什么最后
前六课教你算应该多快,这一课教你查为什么没那么快。没有前面那些账,profile 是看不懂的。
垫了什么
主线到此闭环 —— 你已经能独立判断一个方案好不好了
深入按需 · 任意顺序
08精度与量化Precision and Quantization前置 04 · 06🚧 写了一半 · 中间三节已完成
每往下压一档精度,就省一半的显存和带宽。代价是数值上的安全边际 —— 这一课讲这条边界具体在哪。
已经写完的
缩放这件事(从 per-tensor 到 16 个数一组)、FP4 训练里那个 16×16 与链式法则Blackwell 到底加了什么 —— 三节都带完整出处台账。
顺带回答
一个反直觉的问题:优化器里那份权重,为什么必须是高精度的。
09最新开源模型对比前置 01 · 03
同一张表看完当下所有主流开源模型 —— 哪些设计已经成了定论,哪些还在激烈分叉。
怎么读
收敛的照做就行,分叉的才值得深挖
10后训练与 RL前置 04 · 06
RL 把推理引擎塞进了训练循环。
难点在哪
一套 RL 系统里同时住着训练框架和推理引擎,共享权重、抢同一批卡 —— 所有难点都从这一句话来。
11Diffusion 与 DiT前置 主线
换一族模型,用同一套框架再走一遍 —— 会发现它对硬件的要求几乎处处相反。
为什么值得
没有 KV cache、形状是静态的、瓶颈在算力。它既是一个对照组,也检验前面那套框架站不站得住。
14蒸馏与知识迁移前置 01 · 10
同样跑一次 forward,同样付那 31.56 GiB 的 logits —— 换一种标签,拿回来的监督信号差几个数量级。
讲什么
专题一算过那个张量有多大,这一课问另一半:我们从里面拿回来了多少信息? Hinton 那套(软标签、dark knowledge、温度)在实验上能换到 33 倍的数据效率
转折
真正在生产里跑的蒸馏几乎没有一家在传 logits —— 包括手里明明有的那些。后半程算这笔账:存 logits 比存 token id 贵 64,640 倍
实操工程岗
12JAX 与 XLA前置 02
前面讲该做什么,这一课讲怎么写出来。
核心
心智模型的切换:从「写命令」到「写描述」。以及那句第一次看会愣一下的话 —— 单卡代码加几行标注,就是多卡代码
13迁移:PyTorch → TPU前置 12 · 08
难的不是把它跑起来,是证明跑起来的还是同一个模型。
重点
一半讲怎么搬,另一半讲数值验证方法论 —— 后者才是真功夫。

怎么用这门课

不用全听。按你的角色挑一条路径。

你是谁建议路径
想建立整体认知主线 01–06,够了
要做技术判断 / 方案评审主线 + 07 09
关心成本与容量规划01 03 05 + 08
要动手写代码主线 + 12 13
只关心推理部署01 02 05,再按需看 07 08
做多模态 / 生成式主线 + 11
要把大模型变小 / 上线01 06 + 08 14
每个专题都能单独读。 卡住了就看开头的「前置」,回去补那一课。