一次 LLM 推理的一生 —— 一个 prompt 在 llama.cpp 里走过的 28 个站
你敲下 "你好,llama" 按回车之后,这 5 个 token 在 llama.cpp 里要走过 28 个站才能换回一个回答——tokenizer 把字节切成 BPE id、embedding 表查到 4096 维向量、KV cache 决定整个推理的内存上限、attention 把 Q·Kᵀ 通过 FlashAttention 的 online softmax 在 SRAM 里融成一个 kernel、MoE 路由器只点亮 256 个专家里的 8 个、MLA 把整张 KV 桌子压成 latent、量化把 16 GB 模型挤进 5 GB、投机解码再把 decode 切掉 60% 的时间、continuous batching 让 GPU 在请求间隙不闲着、TP/PP/EP 三种切法让 405B 在 8 卡上跑起来、GBNF 让输出严格遵守 JSON schema、Vision encoder 把图片变成 256 个 token、reasoning 模型 "思考" 10000 个内部 token、Blackwell fp4 让 405B 装进一节点,最后 SSE 把每个字符一帧一帧推到用户屏幕上。每一站对应 llama.cpp / vLLM 一个真实文件、一个真实函数,逐行读。
评论
?
参与讨论