收官 · 第 25 / 25 课 · 总结拼装课
总结拼装课:24 课零件,拼成一台真模型
学完这课你能
- 把前 24 课的零件拖上画布、拉线拼成 pythia-14m 完整计算图,拼错时能读懂每条提示说的是哪一步。
- 脱稿复述一条 token 的旅程:文本 → id → 128 维残差流 → 6 层并行残差 → 归一 → 50304 个分数 → 采出一个字。
- 亲手运行你拼的模型——它就是 EleutherAI 发布的 pythia-14m 本尊,权重跑在你的浏览器里。
前 24 课把一台大模型拆成了零件:token、嵌入、注意力、FFN、归一化、残差流、采样、量化……零件全摊在桌上,拼装台就在下面,亲手把它拼回去。
01零件清单与拼装路线
零件全认一遍:左侧模块库里躺着 分词器(第 1 课)、词嵌入(第 2 课)、变换层 ×6(第 5–11 课的注意力、多头、FFN、归一化、RoPE、残差流全封在这一件里)、最终归一(第 8 课)、输出投影(第 3 课见过的 logits 从这来)、采样器(第 21 课),外加一件可选的 int8 量化器(第 23 课)。把它们连成一条线,就是 pythia-14m 的完整计算图。
五层路线图上的每一站,都能在拼装台上找到自己的位置:
- 入门层(第 1–4 课)——机器的进出口:分词器、词嵌入、输出投影、采样器,文本变成 token 进来,概率变成 token 出去。
- 解剖层(第 5–11 课)——机器的躯干:注意力搬信息、FFN 深加工、归一化踩刹车、残差流当主干,打包成变换层,一拖就是 6 个。
- 锻造层(第 12–16 课)——躯干里数字的来历:拼装台不负责练它,但你拖动的每一个权重矩阵,都是预训练一把一把磨出来的。
- 调教层(第 17–20 课)——换一份权重的性格:同一具躯干,base 模型只会补全,SFT 之后学会听话——拼装台拼的是结构,性格住在权重里。
- 发力层(第 21–24 课)——油门与减重:温度/top-k 是采样器的旋钮,int8 量化给权重瘦身,没有 KV-cache 的慢在第 22 课算过账。
开拼之前,先读半页说明书——有三处,真实架构和教科书画的不一样,拼装台按真实架构判定。
02拼装说明书:三处和教科书不一样
第一处:残差是并行的,不是串行的。第 10 课讲过两种布局:GPT-2 教科书是串行——注意力加完,中间结果再过 FFN,加第二次;pythia-14m 是并行——注意力和 FFN 各自从同一份主干 x 出发(各自先过自己的 LN),两份输出同时加回主干。最容易看错的位置在 LN₂:并行布局里它吃的是主干 x,不是注意力的输出。对照图画出来是这样:
第二处:RoPE 不是独立零件。第 9 课转过的那两片旋转盘,在 pythia 里不住在流水线上——它藏在注意力卡内部,打分前把 Q/K 每头前 8/32 维转个角度(部分旋转)。所以模块库里没有「RoPE」可拖:找不到不是漏了,是它本来就不单独接线。
第三处:位置编码有两套方案,别混。第 13–16 课那只微型模型用的是可学习位置向量——给每个位置查一张表;pythia 用的是 RoPE——没有位置表,位置随 Q/K 的旋转进算式。两套都合法,是同一道题的两种解法;拼装台按 pythia 的真实做法判定。
03按下运行之前:停止符、慢的真相、油门与减重
模型怎么知道停?靠一个特殊的 token:<|endoftext|>,id 是 0,在 pythia 里既当句首(bos)也当句尾(eos)。连跑生成时,采样采到 id 0 就收工。这是全课程第一次讲「停止」:前 24 课都在看模型怎么往下写,只有这里看它怎么刹车。
这台引擎没有 KV-cache。第 22 课算过:没有笔记,每生成一个 token 都要把整段前缀全量重算一遍。14M 的玩具模型毫秒级出一个字,感觉不到慢;但连跑 8 步时每步耗时就摆在结果区——如实标注,不假装有 cache。
油门与减重都在运行条边上。温度和 top-k 滑杆是第 21 课的采样旋钮——logits 已经在手,拖动只重采样、不重算前向;拖一件 int8 量化器上画布(第 23 课),前向就改走量化路径:权重口径 28.1MB→14.1MB 账面,top-1 漂没漂移当场对照,移除即恢复 fp16。
交互实验:拼装台(拖模块 · 连线 · 运行点亮)
引擎加载中…
从模块库拖出零件(或点一下放进对应的列),从「文本输入」拉线连到「输出 token」;端口三色——橙 token、蓝张量、紫 logits,同色才能相连。拼对了「运行」按真实前向顺序逐层点亮;点卡片看公式与出处课。画布自动存进度,刷新不丢。
等待开始下载…
拼装台挂载点 · 需要启用 JavaScript
组件加载失败。
降级方案:图文正文不受影响。
04收官:从零件回到整机
盘个总账:入门层给了进出口——分词器、词嵌入、输出投影、采样器;解剖层给了躯干——6 个变换层加最终归一;锻造层说清了每个矩阵里数字的来历;调教层换上了会听话的性格;发力层装好油门与减重。五层路线图的每一站,此刻都摊在你的拼装台上,连成一条真实的流水线。
更重要的是:你拼的不是示意图,就是 EleutherAI 发布的那个 pythia-14m 本尊。28.1MB 真权重跑在你的浏览器里,逐层点亮的是真实前向,top-5 是真实概率——第 3 课见过的那台黑盒机器,现在每一根线都是你亲手连的。
25 课到这里全部完结。还想继续玩:去试玩场拿真 API 把采样参数拧个够;或者回到课程目录,从第 1 课重走一遍——这次你会认得路上每一块零件。拆解大模型,完。