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

news2025/1/18 9:47:06

版本

内容

姓名

时间

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少。可供后续推理工具的备选

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java并发06 - ThreadLocal详解

ThreadLocal详解 文章目录 ThreadLocal详解一:认识 ThreadLocal 线程局部存储1:ThreadLocal特点2:如何实现线程隔离3:继承父线程的局部存储4:自动清理与内存泄漏问题5:ThreadLocal使用场景6:阿里…

【设计模式】 单例模式(单例模式哪几种实现,如何保证线程安全,反射破坏单例模式)

单例模式 作用:单例模式的核心是保证一个类只有一个实例,并且提供一个访问实例的全局访问点。 实现方式优缺点饿汉式线程安全,调用效率高 ,但是不能延迟加载懒汉式线程安全,调用效率不高,能延迟加载双重检…

【漏洞预警】FortiOS 和 FortiProxy 身份认证绕过漏洞(CVE-2024-55591)

文章目录 一、产品简介二、漏洞描述三、影响版本四、漏洞检测方法五、解决方案 一、产品简介 FortiOS是Fortinet公司核心的网络安全操作系统,广泛应用于FortiGate下一代防火墙,为用户提供防火墙、VPN、入侵防御、应用控制等多种安全功能。 FortiProxy则…

记录一次 centos 启动失败

文章目录 现场1分析1现场2分析2搜索实际解决过程 现场1 一次断电,导致 之前能正常启动的centos 7.7 起不来了有部分log , 关键信息如下 [1.332724] XFS(sda3): Internal error xfs ... at line xxx of fs/xfs/xfs_trans.c [1.332724] XFS(sda3): Corruption of in-memory data…

关于vite+vue3+ts项目中env.d.ts 文件详解

env.d.ts 文件是 Vite 项目中用于定义全局类型声明的 TypeScript 文件。它帮助开发者向 TypeScript提供全局的类型提示,特别是在使用一些特定于 Vite 的功能时(如 import.meta.env)。以下是详细讲解及代码示例 文章目录 **1. env.d.ts 文件的…

虚拟专用网VPN的概念及实现VPN的关键技术

虚拟专用网VPN通过建立在公共网络上的重要通道(1分),实现远程用户、分支机构、业务伙伴等与机构总部网络的安全连接,从而构建针对特定组织机构的专用网络,实现与专用网络类似的功能,可以达到PN安全性的目的,同时成本相对要低很多(…

将 AzureBlob 的日志通过 Azure Event Hubs 发给 Elasticsearch(1)

问题 项目里使用了 AzureBlob 存储了用户上传的各种资源文件,近期 AzureBlob 的流量费用增长很快,想通过分析Blob的日志,获取一些可用的信息,所以有了这个需求:将存储账户的日志(读写,审计&…

X-12-ARIMA:季节性调整(Seasonal Adjustment)的强大工具,介绍数学原理

X-12-ARIMA:季节性调整的强大工具 在经济学、金融学以及各类统计数据分析中,季节性调整(Seasonal Adjustment)是一个至关重要的步骤。许多经济指标,如GDP、失业率和零售销售数据等,往往会受到季节性因素的…

.netframwork模拟启动webapi服务并编写对应api接口

在.NET Framework环境中模拟启动Web服务,可以使用几种不同的方法。一个常见的选择是利用HttpListener类来创建一个简单的HTTP服务器,或者使用Owin/Katana库来自托管ASP.NET Web API或MVC应用。下面简要介绍Owin/Katana示例代码。这种方法更加灵活&#x…

网络安全构成要素

一、防火墙 组织机构内部的网络与互联网相连时,为了避免域内受到非法访问的威胁,往往会设置防火墙。 使用NAT(NAPT)的情况下,由于限定了可以从外部访问的地址,因此也能起到防火墙的作用。 二、IDS入侵检…

免费送源码:Java+ssm+MySQL 基于PHP在线考试系统的设计与实现 计算机毕业设计原创定制

摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对在线考试等问题,对如何通过计算…

html中鼠标位置信息

pageX:鼠标距离页面的最左边的距离,包括滚动条的长度。clientX:鼠标距离浏览器视口的左距离,不包括滚动条。offsetX:鼠标到事件源左边的距离。movementX:鼠标这次触发的事件的位置相对于上一次触发事件的位…

光谱相机的光谱分辨率可以达到多少?

多光谱相机 多光谱相机的光谱分辨率相对较低,波段数一般在 10 到 20 个左右,光谱分辨率通常在几十纳米到几百纳米之间,如常见的多光谱相机光谱分辨率为 100nm 左右。 高光谱相机 一般的高光谱相机光谱分辨率可达 2.5nm 到 10nm 左右&#x…

RAG 切块Chunk技术总结与自定义分块实现思路

TrustRAG项目地址🌟:https://github.com/gomate-community/TrustRAG 可配置的模块化RAG框架 切块简介 在RAG(Retrieval-Augmented Generation)任务中,Chunk切分是一个关键步骤,尤其是在处理结构复杂的PDF文…

Java基础——概念和常识(语言特点、JVM、JDK、JRE、AOT/JIT等介绍)

我是一个计算机专业研0的学生卡蒙Camel🐫🐫🐫(刚保研) 记录每天学习过程(主要学习Java、python、人工智能),总结知识点(内容来自:自我总结网上借鉴&#xff0…

Low-Level 大一统:如何使用Diffusion Models完成视频超分、去雨、去雾、降噪等所有Low-Level 任务?

Diffusion Models专栏文章汇总:入门与实战 前言:视频在传输过程中常常因为各种因素(如恶劣天气、噪声、压缩和传感器分辨率限制)而出现质量下降,这会严重影响计算机视觉任务(如目标检测和视频监控&#xff…

矩阵碰一碰发视频源码技术开发全解析,支持OEM

在当今数字化内容传播迅速发展的时代,矩阵碰一碰发视频功能以其便捷、高效的特点,为用户分享视频提供了全新的体验。本文将深入探讨矩阵碰一碰发视频源码的技术开发过程,从原理到实现,为开发者提供全面的技术指引。 一、技术原理 …

测试工程师的linux 命令学习(持续更新中)

1.ls """1.ls""" ls -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出 ls -l等同于 ll第一列共10位,第1位表示文档类型,d表示目录,-表示普通文件,l表示链接文件。…

HJ34 图片整理(Java版)

一、试题地址 图片整理_牛客题霸_牛客网 二、试题描述 描述 对于给定的由大小写字母和数字组成的字符串,请按照 ASCIIASCII 码值将其从小到大排序。 如果您需要了解更多关于 ASCIIASCII 码的知识,请参考下表。 输入描述: 在一行上输入一…

web开发工具之:三、JWT的理论知识,java的支持,封装的工具类可以直接使用

文章目录 前言一、JWT的理论知识1. 什么是 JWT(JSON Web Token)?2. **JWT 的组成**3. **JWT 的特点**4. **JWT 的使用场景**5. **JWT 的生命周期**6. **JWT 的优点**7. **JWT 的注意事项**5. **JWT 示例**总结 二、java的springboot支持1. po…