大模型的分布式推理概述
分布式推理是指将大模型的计算任务拆分到多个GPU设备上并行执行,以解决单卡显存不足,提升推理速度的技术。
其核心在于张量并行(Tensor Parallelism, TP)和流水线并行(Pipeline Parallelism, PP), 其中张量并行将模型的权重矩阵按维度切分到不同GPU上,每个GPU负责部分计算,最终合并结果。
例如: 在Llama-13B大模型推理中,单卡显存可能不足,分布式推理可显著降低显存占用并提高吞吐量。
推理大模型时,需要用到的显存大约等于: 用户的数据量+模型的参数量。
注意: 一般只能粗略计算模型推理时所需要的显存和支持的用户量。但是,实际情况
部署框架
ollama: 多模型框架(可以同时调用ollama的多个模型。)由于主要针对个人用户或者小薇用户场景,ollama的性能和精度都较差,并发性较差。
vllm: 单模型框架。但是在并发性支持和精度方面,性能方面都优于ollama。
lmdeploy: 单模型框架。但是在并发性支持和精度方法,性能方面都优于ollama。
vLLM的分布式推理实现
vLLM通过PagedAttention和张量并行技术优化显存管理和计算效率,支持多GPU推理。
- 核心机制
张量并行: 通过tensor_parallel_size参数指定GPU数量,模型自动拆分到多卡。
PagedAttention: 将注意力机制的键值(KV)缓存分块存储,减少显存碎片,提升利用率。
连续批处理: 动态合并不同长度的请求,减少GPU空闲时间。
LMDeploy的分布式推理实现
LMDeploy是专为高效部署设计的框架,支持量化技术与分布式推理,尤其适合低显存环境。
- 核心机制
张量并行: 通过--tp参数指定GPU数量,支持多卡协同计算。
KV Cache量化: 支持INT8/INT4量化,降低显存占用。
动态显存管理: 通过--cache-max-entry-count控制KV缓存比例。
LMDeploy的量化机制
对于一个7B(70亿)参数的模型,每个参数使用16位浮点数
