当前位置: 首页 > news >正文

vllmsglang 单端口多模型部署方案

在单个端口下部署多个模型并通过统一API接口调用,可以通过请求路由层分布式框架实现。以下是基于 vLLMSGLang 的具体方案:


一、vLLM 方案

vLLM 本身不支持单端口多模型,但可通过以下方式实现:

  1. 多实例 + 反向代理

    • 为每个模型启动独立的 vLLM 服务实例,绑定不同端口(如 80008001)。
    • 使用 NginxFastAPI 作为路由层,根据请求参数(如 model_name)转发到对应端口。
    • 示例配置(Nginx):
      location /v1/completions {if ($arg_model = "model1") { proxy_pass http://localhost:8000; }if ($arg_model = "model2") { proxy_pass http://localhost:8001; }
      }
      
    • 优点:简单易实现,隔离性好。
  2. Ray 集群 + 动态路由

    • 使用 Ray 管理多模型实例,通过 --tensor-parallel-size--pipeline-parallel-size 分配 GPU 资源。
    • 自定义 FastAPI 服务,调用 Ray 集群的模型实例。
    • 示例代码片段:
      from fastapi import FastAPI
      app = FastAPI()
      @app.post("/generate")
      async def generate(model: str, prompt: str):if model == "qwen": return call_vllm("localhost:8000", prompt)elif model == "llama": return call_vllm("localhost:8001", prompt)
      
    • 优点:适合生产环境,扩展性强。

二、SGLang 方案

SGLang 支持更灵活的多模型部署:

  1. 多进程 + 路由服务

    • 每个模型启动独立进程,通过 --port 指定不同端口(如 3000130002)。
    • 使用 SGLang 内置的 sglang_router 统一路由请求:
      # 启动路由服务(端口 30000)
      python -m sglang_router.launch_router --port 30000
      # 启动模型实例
      python -m sglang.launch_server --model-path model1 --port 30001
      python -m sglang.launch_server --model-path model2 --port 30002
      
    • 请求时通过 model 参数指定目标模型。
  2. 分布式多节点部署

    • 跨节点部署时,通过 --nnodes--node-rank 分配模型,例如:
      # 节点0(模型A)
      python -m sglang.launch_server --model-path modelA --tp 2 --nnodes 2 --node-rank 0
      # 节点1(模型B)
      python -m sglang.launch_server --model-path modelB --tp 2 --nnodes 2 --node-rank 1
      
    • 统一通过路由器的 30000 端口调用。

三、对比与选型建议

方案适用场景优点缺点
vLLM + Nginx简单多模型隔离部署简单,兼容性好需维护多个实例和代理配置
vLLM + Ray大规模分布式推理资源利用率高,支持动态扩展复杂度高,需熟悉 Ray 生态
SGLang 路由快速轻量级多模型服务内置路由,低延迟对显存管理要求较高
SGLang 分布式超大规模模型跨节点部署支持多机多卡,扩展性强网络配置复杂

四、注意事项

  1. 显存管理:调整 --mem-fraction-static(如 0.7)避免 OOM。
  2. 性能监控:使用 nvidia-smi 和日志分析吞吐量。
  3. API 兼容性:确保路由层遵循 OpenAI API 格式(如 /v1/completions)。

如果需要更详细的配置示例,可参考 vLLM 多节点部署指南 或 SGLang 官方文档。

http://www.lryc.cn/news/620509.html

相关文章:

  • 用飞算JavaAI一键生成电商平台项目:从需求到落地的高效实践
  • Java中加载语义模型
  • 【无标题】卷轴屏手机前瞻:三星/京东方柔性屏耐久性测试进展
  • 2025年世界职业院校技能大赛:项目简介模板
  • 工业一体机5G通讯IC/ID刷卡让MES系统管理更智能
  • SpringBoot 实现在线查看内存对象拓扑图 —— 给 JVM 装上“透视眼”
  • PostgreSQL + TimescaleDB 数据库语法配置
  • C++状态模式详解:从OpenBMC源码看架构、原理与应用
  • linux 下第三方库编译及交叉编译——MDBTOOLS--arm-64
  • uni-app 小程序跳转小程序
  • 《多级缓存架构设计与实现全解析》
  • Canon PowerShot D30相机 CHDK 固件 V1.4.1
  • 将 pdf 转为高清 jpg
  • uni-app实战教程 从0到1开发 画图软件 (橡皮擦)
  • PDF压缩原理详解:如何在不失真的前提下减小文件体积?
  • 高分辨率PDF压缩技巧:保留可读性的最小体积方案
  • 深入理解 RAG:检索增强生成技术详解
  • Hadoop面试题及详细答案 110题 (01-15)-- 基础概念与架构
  • gitlab仓库如何进行多人协作
  • 无人机探测器技术解析
  • GITLAB的Personal Access Tokens 和Project Access Tokens有什么区别
  • 走遍美国 10 Smell the Flowers 偷得浮生半日闲
  • 使用HalconDotNet实现异步多相机采集与实时处理
  • Java基础 8.14
  • 哈希表特性与unordered_map/unordered_set实现分析
  • 【159页PPT】智慧方案企业数字化转型流程体系建设与运营方案(附下载方式)
  • 群晖 NAS 影音访问:通过 cpolar 内网穿透服务实现 Nastool 远程管理
  • openvsx搭建私有插件仓库
  • Elasticsearch RBAC 配置:打造多租户环境的安全访问控制
  • Cherryusb UAC例程对接STM32 SAI播放音乐和录音(上)=>SAI+TX+RX+DMA的配置与音频回环测试