0.1 一条请求与三份账本
一条请求的时间、字节与状态账本
HTTP 请求 → tokenizer → Request(id, token_ids, sampling_params)
→ Scheduler(可运行 token 数 + 可用 KV 块)
→ ModelRunner(输入打包、position、block table)
→ GPU: embedding → N×Transformer Block → logits
→ sampler → 新 token → KV 追加 / 释放 → 流式响应
读任何优化都记三份账:时间(TTFT、TPOT、排队/计算/传输)、字节(权重、激活、KV、通信)、状态(请求阶段、已计算 token、KV 所有权)。例如 PagedAttention 主要管理 KV 的空间和寻址,并不等于 FlashAttention 的 IO tiling;Continuous Batching 主要提高多请求混批效率,并不自动减少单请求计算量。
实战起点:固定模型版本、tokenizer、prompt、采样参数、dtype、随机种子和硬件。先测无并发基线,再分别改变输入长度、输出长度、并发量,记录 TTFT、TPOT、吞吐、显存峰值。后面每章都回到这组实验解释变化。