LESSON 6.1 · 系统 · 90 分钟

Prefill 与 Decode:两种完全不同的负载

Prefill 与 Decode:两种完全不同的负载:理解compute-bound、memory-bound、latency、throughput,完成“profile 一次完整生成”。属于「让模型快而可靠地说话」学习阶段。

学完你应该能够

  1. 能不用术语堆砌,解释「Prefill 与 Decode:两种完全不同的负载」解决了什么问题。
  2. 能围绕 compute-bound、memory-bound、latency 画出变量与因果关系。
  3. 能完成「profile 一次完整生成」,并用证据而不是感觉判断结果。

核心概念

compute-bound

compute-bound对应两类不同负载:prefill 可并行处理整段输入,通常算力密集;decode 每步只产生一个 token,却反复读取权重与缓存,通常带宽受限。

memory-bound

memory-bound对应两类不同负载:prefill 可并行处理整段输入,通常算力密集;decode 每步只产生一个 token,却反复读取权重与缓存,通常带宽受限。

latency

latency需要在固定质量与负载下比较延迟、吞吐、显存和成本,单独的速度数字没有决策意义。 写出至少一个不变量、shape 约束或成立条件。

throughput

throughput需要在固定质量与负载下比较延迟、吞吐、显存和成本,单独的速度数字没有决策意义。 用反例说明忽略它时系统会怎样失败。

实践任务

profile 一次完整生成

  • 预测:在运行代码前,写下你预期的输出、趋势或失败位置。
  • 构建:画出关键资源与队列,只保留回答核心问题所需的最小组件。
  • 验证:使用固定质量约束下测 p50/p95 延迟、吞吐、显存和成本;保存参数、随机种子与原始结果。
  • 迁移:改变并发、序列长度或硬件后重新选择缓存与批处理策略,说明原结论是否仍成立。

进入完整互动课程