vLLM 和 SGLang 的调度器区别是什么
vLLM 和 SGLang 的调度器区别是什么为什么值得回答“都支持 continuous batching / prefix caching”只是功能邻接,不能推出相同的延迟、吞吐或公平性。真正影响结果的是调度单位、容量模型、preemption、prefill/decode 混合和 prefix 命中后的执行路径。这个问题直接约...
ZeRO
ZeROZeRO 在数据并行 worker 之间切分原本重复保存的训练状态,以降低单卡显存。 阶段心智模型 Stage 1:切分 optimizer states。 Stage 2:再切分 gradients。 Stage 3:再切分 parameters,并在需要时通信聚合。 阶段越高,单卡内存通常越低,但通信、调度和实现复杂度可能增加。具体行为应...
Why Decode Is Memory Bound
Why Decode Is Memory Bound为什么值得回答它决定 decode 优化应优先关注计算量、内存带宽、批大小还是数据复用。 验证路径 计算单步 decode 的参数与 KV Cache 读取量 计算对应 FLOPs 和算术强度 与目标 GPU 的 roofline 边界比较 改变 batch size 并观察瓶颈迁移 机制草...
Multi Query Attention
Multi-Query AttentionMQA 保留多个 Query heads,但让所有 Query heads 共享一组 K/V。它针对的是 decode 的具体瓶颈:每生成一个 token,模型都要读取不断增长的历史 K/V;如果每个 Q head 都有独立 KV,读取量和缓存容量会随 Hq 线性增加。 最小机制1234Q:...
GRPO
GRPOGRPO 对同一 prompt 采样一组回答,用组内 reward 的相对关系构造 advantage,再更新策略。 心智模型123prompt → sample group → score each completion→ normalize/compare rewards within group→ policy update with r...