HeadlinesBriefing favicon HeadlinesBriefing.com

为什么LLM推理服务器会耗尽显存

Towards Data Science •
×

一个中等大小的模型的权重可以舒适地容纳,但并发流量触发了CUDA内存不足错误,而GPU利用率保持较低。关键值缓存,而不是模型大小,消耗了头部空间。在添加GPU之前,作者启用了分页分配和前缀缓存,提高了上限并暴露了内存布局问题。

天真的服务栈为每个请求保留一个连续块,用于最大序列长度。一个产生200个token的请求,针对4,096个token的预留,会留下大部分未使用。v LLM分析发现,天真的KV缓存管理浪费了60到80百分比的保留内存。缓存随着并发请求的增长而增长,因此流量激增——而不是更长的提示——会将服务器推过内存悬崖。

GPU内存由固定的模型权重、瞬态激活和可变的KV缓存共享。每个token在Llama 3.1 70B的BF16格式下大约需要320 KB,具有80层、8个键/值头和头维度为128。分组查询注意力减少了键/值头的数量和缓存大小。

128个并发请求持有4K-token上下文时,仅缓存就需要大约160 GB。70B权重在BF16下需要140 GB,因此缓存可能超过模型。v LLM将缓存保留为最大并发序列数乘以最大序列长度;增加任何一个都会乘以保留量,并可能触发启动时的OOM。

关键实体:公司:NVIDIA, Towards Data Science