发力层 · 第 24 / 25 课 · 毕业

从浏览器到服务器:推理栈全景

全景交互 · 真计算 页本体 0 下载(真权重在 playground 自理) 建议 15–30 分钟

学完这课你能

  1. 把 23 节课的零件装回一台完整推理机:分词 → prefill →(cache)→ 逐 token decode → 采样 → 输出,指认每一站对应哪节课。
  2. 会算推理账:prefill 一次性吃整段 prompt、decode 按 token 计价——两种疼法分得清。
  3. 说清浏览器推理与服务器推理的差异与边界:本站就是「浏览器推理」的活标本。

同一道菜:你家灶台一锅一铲,连锁餐厅后厨流水线多工位——流程两套,菜谱是同一份。你浏览器里那台 14M 小模型是家庭小灶,ChatGPT 的机房是中央厨房,而菜谱,就是你拆了 23 课的这台 transformer。

左边家庭小灶一锅一铲,右边中央厨房流水线多工位,中间同一份菜谱立在两边
类比 家庭小灶=浏览器推理(本站),中央厨房=服务器推理栈,同一份菜谱=同一份模型权重。

01全景图铺开

先把整条流水线摊在一张图上。上道是你熟悉的浏览器道(第 3 课起你一直在跑的那条),下道是服务器道的样子——两条道的每一站你都在这门课里亲手拆过。图里的站点可以点:点一下,看这一站在干什么、出自哪节课,顺手就能跳回去回访。

浏览器道 · 家庭小灶(本站,每次前向全量重算) 输入框 你的 prompt 分词 第 1 课 前向 × N 第 3~11 课 采样 第 21 课 打字机输出 逐 token 呈现 循环:每出一个 token 绕一圈 同一份权重,两种灶台——差别全在流程与账单 服务器道 · 中央厨房(生产引擎:vLLM / TGI 一类) 请求 API 调用进来 分词 第 1 课 prefill+cache 第 22 课 decode 循环 批量调度多路请求 流式返回 第 23 课 服务器道的权重按量化精度常驻显存(int8/int4,第 23 课)——不量化的话 7B 模型 fp16 要 14GB 起步 点任意站点:看它是什么、出自哪节课;实验台里有「走一遍」动画
结构 推理栈全景:浏览器道与服务器道两条泳道,站点可点回访对应课程。

02prefill 与 decode

服务器道比浏览器道多出的那站「prefill」,值得单独说。你的 prompt 交给模型,第一件事不是生成,而是把整段并行吃进去一遍——几百个 token 的 K、V 一次算齐存进 cache(第 22 课的笔记在这里派上用场),这一步叫 prefill,决定「等多久看到第一个字」。之后每个输出 token 走 decode 循环:只算新 token 那一列、查笔记、采样、吐字——一步一价,决定「每个字多贵」。

03成本计算器

两张疼法可以算成数字。实验台给你两根滑杆(prompt 长度、输出长度),用本站模型的真实参数量按「每 token 约 2×参数量次浮点运算」的教学口径现场算:prefill 一条线、decode 一条线——拖一拖就能看到「长 prompt 短回答」和「短 prompt 长回答」谁先疼。口径与假设都在台面上标着,单价这类会过时的数字一概不写。

04浏览器这台机器

最后回头看你一直用的这台「家庭小灶」:它的权重 fp16 常驻你的浏览器内存,每一步前向全量重算(没有 cache,第 22 课你亲手测过),采样四旋钮全开(第 21 课)——慢吗?对 14M 的模型,毫秒级,而且你的输入从不出设备(页脚那句话的完整版)。中央厨房强在规模与吞吐,小灶强在隐私与零成本——这条边界,你现在能自己画了。

毕业前最后一件事在 playground:把课程里学过的旋钮全部拧一遍,这次拧在云端大模型身上——同一套采样参数,大模型也一样守规矩。

05毕业地图

实验台最下面挂着一张 24 站地铁图——全部点亮,哪站想再逛就点哪站。从第 1 课「文字怎么变成数字」到这一课「推理栈怎么搭」,一条线串完了。它更像一张项链:每颗珠子都是你亲手摸过的零件,第 24 颗稍大,是收口的那颗。

一条细绳把 24 颗珠子串成完整项链,末端一颗金色珠子稍大
类比 24 颗珠子=24 节课串成的完整链条,末端金珠=收口的毕业课。

交互实验:成本计算器 + 毕业地图

引擎加载中…

本课实验台零下载零权重:全景图走一遍动画、推理成本计算器(真实参数量、教学口径)、24 站毕业地图回访;playground 毕业实验需要 API key,跳转自理。

组件加载中…(成本计算器与毕业地图需要 JavaScript)