LLM推理成本
现代GPU对于运行大语言模型至关重要。NVIDIA H100等企业级GPU价格高达3-4万美元。低效的内存管理会导致昂贵的GPU集群只能服务少量用户,而不是数十个用户。
内存布局
- 模型权重:占用GPU内存约70%
- 临时激活:占用5-10%,用于提示词的中间计算
- KV缓存:占用20-25%,用于存储令牌的键值缓存,避免重复计算
推理过程
LLM推理是顺序过程,模型基于输入提示和先前生成的输出令牌逐个生成令牌。这个过程使用KV缓存,服务吞吐量取决于这个关键内存段的管理效率。
PagedAttention
传统方法为每个请求预分配最大序列长度的连续内存块,导致大量内存浪费。UC Berkeley研究人员引入了基于操作系统内存管理技术的新算法PagedAttention,将KV缓存分成固定大小的块,允许多个请求共享内存空间。
vLLM
vLLM是高性能的服务和推理引擎,其优势包括:
- 使用PagedAttention进行高效的KV缓存管理
- 支持前缀缓存避免重复计算
- 连续批处理传入请求提高吞吐量
vLLM提供完整的推理堆栈:
- 兼容OpenAI API的HTTP服务器
- 与流行的Hugging Face模型集成
- 支持多种计算基础设施
基准测试
配置
- Tesla V100 Tensor Core GPU(2个)
- 10核CPU
- 45 GB RAM
- 32 GB GPU VRAM
- 测试模型:gpt2-large
对比测试
创建了基于Flask的HTTP服务器作为基线,与vLLM服务器进行对比:
|
|
启动vLLM服务器:
|
|
测试结果
- 自定义顺序服务器:处理50个请求耗时约74秒
- vLLM服务器:处理50个请求耗时约5秒
性能提升:从0.68请求/秒提升至10请求/秒,实现约14倍的吞吐量改进。
结论
vLLM通过PagedAttention、前缀缓存和连续批处理的组合,成为了极其高效的LLM服务和推理引擎。在我们的测试中实现了14倍的吞吐量提升:在相同硬件上从0.68请求/秒提升至10请求/秒。
对于运行昂贵H100 GPU集群的企业来说,这种效率直接转化为投资回报率:vLLM使得在相同基础设施上能够服务数十个用户,而不是仅仅几个用户。在GPU年成本可能超过数百万的生产环境中,vLLM的内存优化确实改变了游戏规则。