ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

token budget:还有 KV capacity:没了啥意思 preemption是啥

token budget:还有 KV capacity:没了啥意思 preemption是啥 这句话描述的是 LLM 推理调度器Scheduler在面临“算力还有剩余但显存已经耗尽”时的尴尬瓶颈而Preemption抢占正是系统为了应对这种显存危机所采取的保命机制。1. “token budget还有KV capacity没了” 是啥意思这是推理引擎在做 Batching 调度时的两种不同约束资源Token Budget计算额度 / Token 预算指当前这一个推理 Step 中调度器限制或 GPU 算力允许一次性并发处理的最大 Token 数量上限例如设置单 Step 最多处理 4048 个 Token。“还有”意味着GPU 算力和调度额度还没饱和还能算更多 Token。KV CapacityKV Cache 显存容量指显存池如 vLLM 的 Block Manager中预先分配给 KV Cache 的物理内存空间。“没了”意味着GPU 显存已经被存满了拿不出任何空闲 Block 空间。通俗对比与场景含义“厨师算力还能再炒几个菜但桌子显存已经挤爆装不下了。”后果尽管系统算力还没跑满Token budget 还有但因为拿不出空间来存新生成的 KV 矩阵KV capacity 没了调度器被迫停止加入新请求或停止某些请求的 Decode 步骤。如果此时不采取措施系统就会直接抛出 OOMOut of Memory崩掉。2. Preemption抢占是啥Preemption抢占就是推理引擎在遇到“KV Capacity 没了”这种显存死锁危机时采取的紧急避险/回收机制。当显存彻底爆掉、无法为正在生成的请求分配哪怕 1 个新的 KV Block 时调度器会强行暂停并剥夺某些请求通常是后进来的、或者生成长度最短/优先级最低的 Request对显存的占用把它们的 KV Cache回收或清空腾出显存空间优先保证其他请求能顺利跑完并退出。抢占Preemption通常有两种实现策略1. Recompute重新计算 / 丢弃重跑做法直接把被抢占请求已经算好的 KV Cache 从 GPU 显存里彻底删掉。恢复等后续显存宽裕了把这个请求放回Waiting队列从 Prompt 开始重新跑一遍 Prefill把之前生成过的 Token 拼在 Prompt 后面一起重算恢复到被中断前的状态继续生成。优缺点不占用额外硬件资源但极其浪费 GPU 算力白算了。2. Swapping换入换出 / 内存交换做法通过 PCIe 总线把被抢占请求的 KV Cache 从GPU 显存VRAM搬运/拷贝到CPU 内存Host RAM保存起来并释放 GPU 显存。恢复等 GPU 显存有空位了再把这部分 KV Cache 从 CPU 内存Swap-in换回到 GPU 显存继续 Decode。优缺点节省了 GPU 算力但受限于 PCIe 带宽拷贝大量的 KV Cache 会带来非常高的传输延迟。总结两者的关系因为出现了“Token budget 还有算力空闲但 KV capacity 没了显存吃紧”的情况推理系统为了防止 OOM 崩盘就会触发Preemption抢占机制牺牲一部分低优先级请求通过 Swapping 或 Recompute来保障整个集群的并发吞吐和安全性。
返回列表