✍️ LLM GENERATION EXPLAINER

什么是大模型的 Decode(解码 / 生成)

一句话搞懂:Prefill 读完题后,大模型“按概率逐字蹦答案”的自回归打字阶段!

🔄 自回归单字循环(The Autoregressive Loop)

为什么大模型打字是一串一串出来的?因为每生成 1 个新词,都要把它作为下一次计算的输入!

当前输入词 Token (t) 🧠 模型全套参数 + 查阅 KV Cache (搬运 100GB+ 显存) 🎲 词表概率预测 词A: 70% | 词B: 20% (采样挑选最合适字) 吐出新词 ✨ Token (t+1) 🔁 把新词喂回输入,开启下一轮生成!

🎮 互动体验:亲手体验大模型 Decode 是如何“掷骰子”的

点击「吐出下一个字」,看右侧概率榜单如何决定下一个字,并观察温度(Temperature)的影响

🔥 温度 (Temperature): 0.7
📖 当前生成的文本 (Context Window) 6 Tokens
* 黄色为初始 Prompt,紫色为 Decode 阶段逐个吐出的词
🎯 下一个词候选概率榜 (Logits Top-K) Step #1
🎲 根据 Temperature 采样选出最高分或随机挑中一个词
~25 ms
每字耗时 (TPOT / 单步时延)
40 tok/s
生成速率 (Tokens Per Second)
140 GB/字
70B模型每吐一字搬运的权重显存
🚛

1. 为什么 Decode 阶段 GPU 算力在摸鱼?

这就是著名的 Memory-Bound(显存带宽瓶颈)!以 70B 模型为例,每吐 1 个字,GPU 都必须把 140GB 的权重完整搬运进核心一次。GPU 算力大部分时间在“傻等显存搬砖过来”,利用率往往不足 10%!

2. 投机采样 (Speculative Decoding) 是什么黑科技?

既然大模型吐字慢,那就让一个极小、极快的草稿小模型(Draft Model)先猜 4~5 个词,然后大模型一次性把这 5 个词全量并行验证一遍(Mini-Prefill)!猜对的直接采纳,速度直接翻 2~3 倍!

🎲

3. 什么是 Temperature(温度)调节?

低温度 (0.1 ~ 0.2):永远选概率最高的那 1 个词(严谨、写代码、数学题)。
高温度 (0.8 ~ 1.2):增加低概率词被选中的机会,赋予模型更多“灵感与创造力”(写小说、头脑风暴)。