vllm 多卡部署

发布时间:2026/7/7 3:04:54
vllm 多卡部署 vLLM能够将一个大模型部署到多张卡上主要是因为它内置并优化了张量并行Tensor Parallelism这一核心分布式推理技术。简单来说张量并行的思想就是把一个大模型“切碎”把不同的“碎片”放到不同的GPU上让它们像一台机器一样协同工作。它的工作原理可以这样理解 核心机制张量并行当你在vLLM的命令行或代码中设置tensor_parallel_size2(或者更大的值) 时它会这样工作将模型权重按层切分对于模型内部巨大的权重矩阵比如一个大的全连接层vLLM会将其按行或按列进行切分分别存储在不同的GPU上。例如一个原本在一张卡上需要40GB显存的模型通过TP2可能每张卡只需加载20GB左右的权重。每张卡计算一部分在模型进行前向推理时输入的张量也会被切分分别送入不同GPU。每张显卡只负责计算自己持有的那一部分模型参数大大降低了单卡的计算压力。高效的通信和同步虽然每块卡只算一部分但模型的最终输出需要整合。vLLM依赖高性能的通信库如NCCL并在代码中精细地管理了计算过程中的通信如all-reduce操作确保不同GPU上的计算结果能够正确同步得出最终结果。这也是为什么它建议GPU间最好有NVLink这样的高速互联。 两种“多卡”模式的区别vLLM支持不同的多卡并行模式你可以通过下表和之前提到的“模型并行”对比来理解模式核心策略模型权重主要目的适用场景张量并行 (TP)一个模型切成碎片放到多张卡上协同计算被切分(Sharded)降低单卡显存让大模型能“装”下并可获得近线性的加速模型单卡放不下时如LLaMA 70B及以上模型数据并行 (DP)多个模型副本每个GPU上跑一个完整的模型被复制(Replicated)处理海量并发请求通过并行处理不同的请求来提升吞吐量模型单卡能放下但需要支撑极高并发量时流水线并行 (PP)将模型的不同层如第1-10层、第11-20层分配到不同GPU上按层切分主要用于模型大到连一个节点都放不下的多节点部署场景超大规模模型如DeepSeek R1等结合你之前的情况你希望在双卡上运行一个需要40GB显存的模型而3090单卡只有24GB。vLLM的张量并行TP比你自己手动实现模型并行要省事得多因为它已经在框架层面替你做好了。