一、小常识
1、计算大模型占用多少显存
对于一个7B(70亿)参数的模型,每个参数使用16位浮点数(等于 2个 Byte)表示,则模型的权重大小约为:
70×10^9 parameters×2 Bytes/parameter=14GB
70亿个参数×每个参数占用2个字节=14GB
所以我们需要大于14GB的显存。注意14GB单纯是大模型启动所占的显存大小,还有推理过程的输入和输出,kv缓存,推理框架运行等,都需要消耗显存。
2、大模型推理
大模型已经训练好了,现在拿它来“用”——让它预测、生成或分类。比如你用 ChatGPT 聊天、用图像模型生成图像,这些都是大模型推理阶段。
二、分布式推理的场景
1.单卡显存不足:如QwQ-32B(320亿参数)需在双A6000显卡上部署。
2.高并发请求:在线服务需同时处理多用户请求,分布式推理通过连续批处理(Continuous Batching)提升效率。
三、vLLM的分布式推理实现
vLLM通过PagedAttention和张量并行技术优化显存管理和计算效率,支持多GPU推理。核心机制:
- 张量并行:通过tensor_parallel_size参数指定GPU数量,模型自动拆分到多卡。
- PagedAttention:将注意力机制的键值(KV)缓存分块存储,减少显存碎片,提升利用率。
- 连续批处理:动态合并不同长度的请求,减少GPU空闲时间。
官方文档:https://docs.vllm.ai/en/latest/serving/distributed_serving.html
中文文档(非官方):https://vllm.hyper.ai/docs/serving/distributed-inference-and-serving
vLLM分布式推理实战
1、要使用 LLM 类运行多 GPU 推理,将 tensor_parallel_size 参数设置为要使用的 GPU 数量。例如,要在 4 个 GPU 上运行推理:
from vllm import LLM
llm = LLM(`facebook/opt-13b`, tensor_parallel_size=4)
output = llm.generat