理解vllm分布式推理服务中的多节点Multi-Node部署方式

1. 多节点的含义

vllm官方文档(参考1)中给出了多节点"Multi-Node"多GPU部署的方案说明,注意该特性只是较新版本的vllm中才能使用。"Multi-Node"指的是,将大模型的推理和服务过程,分布在多个计算节点(服务器)上,进行推理的能力。这种分布式处理方式,能提升大模型在处理大量请求时的吞吐量、降低单个节点的负载,实现资源的有效利用。

一般来说,Multi-Node主要用于这种场景:k8s集群中,一个node的GPU资源不足以加载一个很大的模型,所以可以利用多个node的资源共同来加载模型

2. 单服务器部署多节点

vllm的参数--pipeline-parallel-size就是用来控制节点数的。如果将这个值设置为2,则最终就有2个模型同时做并发处理。官方文档(参考1)还举了个例子,如果服务器上有16个GPU,一个大模型需要8个GPU才能部署,则可以将--tensor-parallel-size参数的值设置为8,将--pipeline-parallel-size的值设置为2,这样就有2个模型同时做并发处理。

笔者有8块A800,我想部署8个Qwen2-7B模型做并发处理(一个模型只需要一块A800就能实现推理),则配置如下

复制代码
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python -m vllm.entrypoints.openai.api_server 
--model /data/models/Qwen2-7B-Instruct/ 
--served-model-name aaa 
--trust-remote-code 
--tensor-parallel-size 1 
--pipeline-parallel-size 8 
--port 8000

经笔者实测,这样确实能将8个节点部署到一台服务器上,暴露的API接口也是统一的,也能让多模型支持并发。但实测发现,这样的部署方式,并不能带来提高并发的收益。

可见,单服务器部署多节点,每个节点只负责模型的一部分计算,而多个节点之间的协同工作是比较耗时的。这种单服务器多GPU卡的情况下,不如使用Single-Node Multi-GPU (tensor parallel inference)(参考1)能带来更大的并发处理收益。

注意:在上面这种场景下,笔者实测表面,多节点部署方式带来的收益,不如单节点单GPU的效果好。本文并非要推进使用多节点的部署方式,只是对这种方式展开讨论。

3. 参考

  1. vllm分布式服务。https://docs.vllm.ai/en/latest/serving/distributed_serving.html
  2. vllm默认参数值。https://docs.vllm.ai/en/v0.4.2/models/engine_args.html
  3. Mistral-Large-Instruct-2407部署。https://blog.csdn.net//article/details/140691972
相关推荐
Flynt13 小时前
Redis Cluster主节点挂了,为什么"高可用"还全员掉线?我把三次kill的记录翻出来了
数据库·redis·分布式
JosieBook16 小时前
【数据库】MySQL 实战精通系列 · 第10篇:分库分表与分布式事务实战
数据库·分布式·mysql
梦帮科技19 小时前
vLLM / TensorRT-LLM 极限推理:PagedAttention 细粒度物理页表管理与连续批处理(Continuous Batching)实战
数据结构·人工智能·分布式·python·深度学习·算法·vllm
Frank_refuel1 天前
分布式RPC框架实战(二):服务端模块划分与底层设计
分布式·网络协议·rpc
mftang2 天前
EtherCAT协议:从“飞读飞写”机制到分布式时钟同步的实时以太网架构深度解析
分布式·架构·ethercat·分布式时钟·从站控制器
ShineWinsu2 天前
对于Redis:Hash类型的解析
c++·redis·分布式·缓存·面试·hash·哈希表
东方芷兰2 天前
Agent 技术摘要 03 —— 基座模型、推理模型、Flash、联邦学习、分布式机器学习
人工智能·分布式·机器学习
程序猿乐锅2 天前
【黑马点评 | 第十一篇】关注 Feed 流实现
java·数据库·redis·分布式·后端·缓存·maven
j7~2 天前
【C++标准项目】C++基于protobuf的发布订阅式消息队列(篇一):项目概述+环境搭建
分布式·消息队列·rabbitmq·gtest·protobuf·muduo·sqlites
今年下半年3 天前
【Spring Boot】多种存储文件(FastDFS / MinIO / 阿里云 OSS)接入设计说明(附源码)
spring boot·分布式·中间件·简单工厂模式·策略模式