大模型高并发部署方案探究

版本

内容

姓名

时间

V1.0

新建

xx

2025-01-16

声明:只是进行探究,后续真正实践后,会更新新的内容

前置条件:70B的模型,并发要求200

性能测试参考链接

Benchmarking LLM Inference Backends :表明一台A100(80GB)能够进行70b 4bit量化后进行满足100并发。

部署大模型基础知识参考

Fundamental of Deploying Large Language Model Inference

1.显存需求分析

  • 70B模型在FP8精度下单个模型加载约需要35GB显存
  • 考虑到推理时的中间变量和缓存,建议预留1.5倍显存,即约52.5GB/模型
  • 考虑KV Cache: 每个并发会话约需要0.5GB显存
  • 200并发总共需要: 52GB + (0.5GB × 200) =152 GB显存

2.硬件配置建议

  • 最低2卡,建议使用3卡服务器,GPU选型: NVIDIA H100 (80GB显存/卡)或A100 (80GB显存/卡)

3.部署方案

参考链接

vllm github: https://github.com/vllm-project/vllm

nccl:Overview of NCCL — NCCL 2.6.2 documentation

vllm+nccl: Vllm Nvlink NccL Integration | Restackio

vllm+nginx_loadbalancer+docker:Deploying with Nginx Loadbalancer — vLLM

3.1 为什么选择vllm进行推理?

  • 社区稳定
  • 可以高并发、多卡并行
  • 有较多实践可以参考

3.2 具体方案

使用 多个 vLLM 实例 来利用 两张 /三张 A100 GPU ,对外提供接口。为保证用户对话的连续性,让nginx根据ip路由来进行分发请求 。

为什么使用nginx分发,多个vllm实例进行?而不利用nvidia nccl技术直接使用一个vllm实例?

  1. 负载均衡:Nginx分发请求,提升并发处理能力。
  2. 扩展性强:未来可轻松增加更多GPU和vLLM实例。
  3. 容错性高:单卡故障时,另一卡仍可继续服务。
  4. 适用机制:nccl适用于单卡无法加载模型时使用,多机多卡可作为性能补充优化。

3.3 关于吞吐量 vs 延迟说明

  • 单实例多卡: 如果重点是吞吐量,使用单实例多卡的方式可能会更好,因为 vLLM 会在多个 GPU 上并行处理任务,且有 NCCL 加速优化。
  • 多个实例+Nginx: 如果目标是更高的并发和更加细粒度的负载分配,且可以接受可能出现的小量跨实例通信延迟,使用多个实例和 Nginx 分发会更适合。

4.其他部署方案

4.1 k8s+llm

提醒:若目前使用,单卡能够加载的模型。不涉及分布式处理、多个资源调度,因运维复杂,建议不使用

工具

优点

缺点

参考链接

SkyPilot

自动资源调度、多云支持、简化部署

社区支持有限、主要面向云环境

https://docs.skypilot.co/en/latest/docs/index.html

KServe

与 Kubernetes 集成、支持多种框架、自动化管理

依赖 Kubernetes、学习曲线较高

Home - KServe Documentation Website

KubeAI

自动化资源管理、高可用性、与云平台兼容

社区不稳定,成本较高、需要配置和集成工作

www.kubeai.org

Kubernetes

强大的扩展性、容器化部署、广泛的生态系统支持

部署和管理复杂、性能调优需要经验

4.2 推理工具LMDeploy

https://github.com/InternLM/lmdeploy/blob/main/README_zh-CN.md

Lmdepoly 对比vllm推理简单测试效果较好,但社区实践较vllm少。可供后续推理工具的备选

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/955176.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MIAOYUN信创云原生项目亮相西部“中试”生态对接活动

近日,以“构建‘中试’生态,赋能科技成果转化”为主题的“科创天府智汇蓉城”西部“中试”生态对接活动在成都高新区菁蓉汇隆重开幕。活动分为成果展览、“中试”生态主场以及成果路演洽谈对接三大板块。在成果展览环节,成都元来云志科技有限…

pytest-instafail:让测试失败信息即时反馈

pytest-instafail:让测试失败信息即时反馈 前言一、简介二、优势三、安装与使用3.1 未安装时运行情况3.2 安装3.3 已安装时运行情况3.3 pytest.ini 配置选项 四、对比 总结 前言 当测试用例数量庞大时,定位测试失败的原因往往耗时费力。此时,…

低代码平台:技术复杂性的系统简化

在传统开发模式下,应用构建需要经历需求分析、代码开发、测试部署等多环节,流程繁琐且耗时,往往成为企业技术创新的瓶颈。低代码平台通过模块化和自动化技术重新定义开发流程,使开发者能够在较短时间内实现复杂的应用功能&#xf…

精度论文:【Focaler-IoU: More Focused Intersection over Union Loss】

Focaler-IoU: 更聚焦的交并比损失 Focaler-IoU: More Focused Intersection over Union Loss Focaler-IoU: 更聚焦的交并比损失I. 引言II. 相关工作III. 方法IV. 实验V. 结论 原文地址:官方论文地址 代码地址:官方代码地址 摘要——边界框回归在目标检…

“AI智慧化服务系统:未来生活的智能管家

在当今快速发展的科技时代,人工智能(AI)正以前所未有的速度改变着我们的生活。AI智慧化服务系统作为这一变革的前沿技术,正在逐渐成为我们未来生活的智能管家。它们不仅提高了服务效率,还为我们带来了更加个性化和便捷…

nginx 修改内置 404 页面、点击劫持攻击。

1、在部署前端项目的目录下增加 404.html 页面:/opt/web/404.html。 2、在 nginx 配置中增加 404 配置: root /opt/web; # 设置根目录的配置error_page 404 404.html; location /404.html {root /opt/web;# 指定 404 页面所在的根目录internal;# 确保…

网络密集型应用的Linux网络缓冲区参数优化

一、网络IO密集型 1.哪些应用属于网络IO密集型应用 文件上传、下载服务器,实时大数据同步复制,Kafka巨量数据QPS生产消费环境,CDN等环境都是网络IO密集型的服务应用 2.知识来源 在《kafka权威指南2》书中环境搭建的网络小节写到了几个参数…

npm发布组件(vue3+webpack)

1.初始化Vue项目 vue create my-app 2.本地运行 npm run serve 3.新增目录和文件 1. src/package/index.js 2. src/package/wlz-btn/index.vue 3. src/package/wlz-input/index.vue // src\package\index.js import WlzBtn from "./wlz-btn"; import WlzInput …

Day05-后端Web基础——TomcatServletHTTP协议SpringBootWeb入门

目录 Web基础知识课程内容1. Tomcat1.1 简介1.2 基本使用1.2.1 下载1.2.2 安装与卸载1.2.3 启动与关闭1.2.4 常见问题 2. Servlet2.1 快速入门2.1.1 什么是Servlet2.1.2 入门程序2.1.3 注意事项 2.2 执行流程 3. HTTP协议3.1 HTTP-概述3.1.1 介绍3.1.2 特点 3.2 HTTP-请求协议3…

两级式三相光伏并网逆变器Matlab/Simulink仿真模型

忘记更新最经典的光伏并网仿真模型了,作为包含经典的MPPT和并网恒功率因素的双闭环控制模型,也是很多相关专业学生的入门研究内容,光伏并网模型三相的和单相都有。 其中三相光伏并网逆变器有大功率和小功率的两种,之前早在硕士期…

将图像输入批次扁平化为CNN

将图像输入批次扁平化为CNN 欢迎回到这个神经网络编程系列。在这篇文章中,我们将可视化一个单一灰度图像的张量扁平化操作,并且我们将展示如何扁平化特定的张量轴,这在使用CNN时通常是必需的,因为我们处理的是输入批次&#xff0…

Linux命令行工具-使用方法

参考资料 Linux网络命令:网络工具socat详解-CSDN博客 arm-linux-gnueabihf、aarch64-linux-gnu等ARM交叉编译GCC的区别_aarch64-elf-gcc aarch64-linux-gnu-CSDN博客 解决Linux内核问题实用技巧之-dev/mem的新玩法-腾讯云开发者社区-腾讯云 热爱学习地派大星-CS…

浅谈云计算20 | OpenStack管理模块(下)

OpenStack管理模块(下) 五、存储管理5.1 存储管理概述 5.2 架构设计5.2.1 Cinder块存储架构5.2.2 Swift对象存储架构 六、网络管理6.1 网络管理概述6.2 架构解析6.2.1 Neutron网络服务架构6.2.2 网络拓扑架构 6.3 原理与流程6.3.1 网络创建原理6.3.2 网络…

GPU 硬件原理架构(一)

这张费米管线架构图能看懂了,整个GPU的架构基本就熟了。市面上有很多GPU厂家,他们产品的架构各不相同,但是核心往往差不多,整明白一了个基本上就可以触类旁通了。下面这张图信息量很大,可以结合博客GPU 英伟达GPU架构回…

某国际大型超市电商销售数据分析和可视化

完整源码项目包获取→点击文章末尾名片! 本作品将从人、货、场三个维度,即客户维度、产品维度、区域维度(补充时间维度与其他维度)对某国际大型超市的销售情况进行数据分析和可视化报告展示,从而为该超市在弄清用户消费…

http转化为https生成自签名证书

背景 项目开发阶段前后交互采用http协议,演示环境采用htttps协议 ,此处为个人demo案例 组件 后端:springBoot 前端:vue web 服务:tomcat 部署环境:linux 生成自签名证书 创建目录 存储证书位置 # mkdir -p…

Sass初探:嵌套只是开始,解锁Sass更多功能

文章目录 1. 安装Sass2. Sass编译成CSS3. 设置编译后的CSS格式4. Sass和Scss有什么区别?5. Sass变量的使用6. 选择器嵌套写法7. Mixin(混合)8. extend(继承)9. Sass中的模块化(import)10. Sass中的模块化(use) 1. 安装Sass 要安装 Sass,你可以根据你的开…

Linux:文件描述符fd、系统调用open

目录 一、文件基础认识 二、C语言操作文件的接口 1.> 和 >> 2.理解“当前路径” 三、相关系统调用 1.open 2.文件描述符 3.一切皆文件 4.再次理解重定向 一、文件基础认识 文件 内容 属性。换句话说,如果在电脑上新建了一个空白文档&#xff0…

CKA | Docker容器技术概述

往期文章推荐 【新版】容器&Kubernetes认证管理员(CKA)课程介绍 k8s-CKS认证课程介绍 【K8s】Kubernetes 词汇表 什么是Docker容器? 3个管理多k8s集群实用工具 K8S-CKA课程试听:Container 概述 CKA课程 | Docker容器技术概述 今日分…

如何在Ubuntu上安装Cmake

前言 ​ 本文主要阐述如何在Ubuntu22.04上面安装cmake,具体可看下面的操作。 正文 一、环境 Ubuntu22.04 cmake-3.31.4.tar.gz 二、步骤 参考这个方案: 【运维】Ubuntu如何安装最新版本的Cmake,编译安装Cmake,直接命令安装…