举例上一篇文章已经过去了几个月,大模型领域风云变幻,之前的vLLM安装稍有过时,这里补充一个快速安装教程:       

# 第一步:创建虚拟环境并激活进入
conda create -n vllm-0.8.4 python=3.10 -y
conda activate vllm-0.8.4# 第二步:通过pip安装指定版本的vllm
pip install vllm==0.8.4

        通过上面这种方式,只要你是使用vLLM0.8.4版本,就无须考虑cuda的安装和pytorch的安装, pip会帮你一键搞定,不用像我上一篇文章中那么费力了。

        然后再开启本文内容。在之前的vLLM文章中我介绍了最简单快速的OpenAI风格的api server部署。这篇文章继续介绍vLLM框架的两个常用推理功能,它们分别是:分布式部署和在线量化推理

若友友们忘记了之前内容可以看这里:vllm部署本地大模型①https://blog.csdn.net/qq_39780701/article/details/144571846

一、分布式部署

        顾名思义,将一个模型放在多张显卡上面,这样做的目的是为了能够加载更大参数的模型。vLLM实现起来非常简单,不卖关子了,直接给出CLI命令:

  • 单机单卡(无分布式):如果您的模型规模适中,能够完全加载到一个GPU上,那么无需采用分布式推理方案。此时,仅需利用单一GPU执行推理任务即可满足需求。

# 举例:单机单卡
vllm serve 模型路径
  • 单机多卡(张量并行):当模型规模超出单个GPU的容量,但可以在配备多个GPU的单一服务器内全部加载时,可以采取张量并行的方法进行推理。这里所说的张量并行度即代表您计划使用的GPU数量。例如,在拥有2个GPU的单一节点环境下,您可以将张量并行度设置为2,以充分利用这些资源。

# 举例:单机双卡
vllm serve 模型路径 --tensor-parallel-size 2
vllm单机多卡serve后台日志
vllm单机多卡显存占用

 

【注】其实就是设置 tensor-paralled-size 参数。这里可以和lmdeploy对比记忆,它是设置 tp 参数。 还有一个和lmdeploy框架一样的地方,vllm推理框架也会在一开始就向系统申请大约90%的显存空间。哪怕是你做了量化,显存占用依旧是90%,这并不意味着量化无效。

  • 多节点多 GPU(张量并行 + 流水线并行):对于那些庞大到连单个节点也无法承载的模型,可以结合使用张量并行与流水线并行来实现跨节点的分布式推理。在这种情况下,张量并行度表示每个节点中参与运算的GPU数目,而流水线并行度则对应于参与计算的节点数。举例来说,若您在2个节点中共有8个GPU(每个节点4个),则可将张量并行度设为4,并将流水线并行度设定为2,以此最大化资源利用率和处理效率。

# 举例:双机八卡 
vllm serve gpt2 \--tensor-parallel-size 4 \--pipeline-parallel-size 2

【注】流水线并行其实就是设置 pipeline-parallel-size 参数。我这里没有环境去测试,具体的操作希望大家可以参考官方文档去实践,我就不误人子弟了,链接在这里:分布式推理与服务

二、在线量化推理

        vLLM 也引入了 KV-Cache 量化技术,通过将 KV 缓存量化为 FP8 格式以减少内存占用。这种优化不仅增加了缓存中可存储的 token 数量,还进一步提升了系统的吞吐能力。具体来说,vLLM 的 FP8 KV 缓存实现主要是通过大约翻倍的 KV 缓存分配空间来增强吞吐量。这样的改进使(面试题:在线量化推理的作用是什么?):

  • 能够处理具有更长上下文长度的单个请求
  • 能够同时处理更多的并发请求批次

废话少说上命令吧,更多的参数值见下表:

vllm serve 模型绝对路径 --kv_cache_dtype fp8
kv_cache_dtype 参数值描述支持条件
"auto"使用模型的默认“未量化”数据类型,不进行额外的量化处理无特殊要求
"fp8" 或 "fp8_e4m3"使用 FP8 格式(E4M3 版本)存储 KV 缓存,减少内存占用并提升性能CUDA 11.8+ 或 ROCm(AMD GPU)
"fp8_e5m2"使用 FP8 格式(E5M2 版本)存储 KV 缓存,适合更高精度需求的场景CUDA 11.8+
未开启KV-Cache时后台日志

 

开启KV-Cache时后台日志

 【注】为了防止混淆,我们回忆一下lmdeploy的kv-cache参数 “--quant-policy”

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

26 Arcgis软件常用工具有哪些

一、画图改图工具(矢量编辑)‌ ‌挪位置工具(移动工具)‌ 干哈的?‌选中要素‌(比如地块、道路)直接拖到新位置,或者用坐标‌X/Y偏移‌批量移动,适合“整体搬家”。 ‌磁…

QNX/LINUX/Android系统动态配置动态库.so文件日志打印级别的方法

背景 通常我们会在量产的产品上,配置软件仅打印少量日志,以提升产品的运行性能。同时我们要考虑预留方法让软件能够拥有能力可以在烧录版本后能够通过修改默写配置,打印更多日志。因为量产后的软件通常开启熔断与加密,不能够轻松…

WebGL图形编程实战【4】:光影交织 × 逐片元光照与渲染技巧

现实世界中的物体被光线照射时,会反射一部分光。只有当反射光线进人你的眼睛时,你才能够看到物体并辩认出它的颜色。 光源类型 平行光(Directional Light):光线是相互平行的,平行光具有方向。平行光可以看…

【Hive入门】Hive基础操作与SQL语法:DDL操作全面指南

目录 1 Hive DDL操作概述 2 数据库操作全流程 2.1 创建数据库 2.2 查看数据库 2.3 使用数据库 2.4 修改数据库 2.5 删除数据库 3 表操作全流程 3.1 创建表 3.2 查看表信息 3.3 修改表 3.4 删除表 4 分区与分桶操作 4.1 分区操作流程 4.2 分桶操作 5 最佳实践与…

YOLO数据处理

YOLO(You Only Look Once)的数据处理流程是为了解决目标检测领域的核心挑战,核心目标是为模型训练和推理提供高效、规范化的数据输入。其设计方法系统性地解决了以下关键问题,并对应发展了成熟的技术方案: 一、解决的问…

Ubuntu-Linux中vi / vim编辑文件,保存并退出

1.打开文件 vi / vim 文件名(例: vim word.txt )。 若权限不够,则在前方添加 sudo (例:sudo vim word.txt )来增加权限; 2.进入文件,按 i 键进入编辑模式。 3.编辑结…

PCL绘制点云+法线

读取的点云ASCII码文件&#xff0c;每行6个数据&#xff0c;3维坐标3维法向 #include <iostream> #include <fstream> #include <vector> #include <string> #include <pcl/point_types.h> #include <pcl/point_cloud.h> #include <pc…

如何在学习通快速输入答案(网页版),其他学习平台通用,手机上快速粘贴

目录 1、网页版&#xff08;全平台通用&#xff09; 2、手机版&#xff08;学习通&#xff0c;其他平台有可能使用&#xff09; 1、网页版&#xff08;全平台通用&#xff09; 1、首先CtrlC复制好答案 2、在学习通的作业里输入1 3、对准1&#xff0c;然后鼠标右键 &#xff…

002 六自由度舵机机械臂——姿态解算理论

00 DH模型的核心概念 【全程干货【六轴机械臂正逆解计算及仿真示例】】 如何实现机械臂的逆解计算-机器谱-robotway DH模型是机器人运动学建模的基础方法&#xff0c;通过​​四个参数​​描述相邻关节坐标系之间的变换关系。其核心思想是将复杂的空间位姿转换分解为绕轴旋转…

pymongo功能整理与基础操作类

以下是 Python 与 PyMongo 的完整功能整理&#xff0c;涵盖基础操作、高级功能、性能优化及常见应用场景&#xff1a; 1. 安装与连接 (1) 安装 PyMongo pip install pymongo(2) 连接 MongoDB from pymongo import MongoClient# 基础连接&#xff08;默认本地&#xff0c;端口…

Trae+DeepSeek学习Python开发MVC框架程序笔记(四):使用sqlite存储查询并验证用户名和密码

继续通过Trae向DeepSeek发问并修改程序&#xff0c;实现程序运行时生成数据库&#xff0c;用户在系统登录页面输入用户名和密码后&#xff0c;控制器通过模型查询用户数据库表来验证用户名和密码&#xff0c;验证通过后显示登录成功页面&#xff0c;验证失败则显示登录失败页面…

如何识别金融欺诈行为并进行分析预警

金融行业以其高效便捷的服务深刻改变了人们的生活方式。然而,伴随技术进步而来的,是金融欺诈行为的日益猖獗。从信用卡盗刷到复杂的庞氏骗局,再到网络钓鱼和洗钱活动,金融欺诈的形式层出不穷,其规模和影响也在不断扩大。根据全球反欺诈组织(ACFE)的最新报告,仅2022年,…

纷析云:开源财务管理软件的创新与价值

在企业数字化转型中&#xff0c;纷析云作为一款优秀的开源财务管理软件&#xff0c;正为企业财务管理带来新变革&#xff0c;以下是其核心要点。 一、产品概述与技术架构 纷析云采用微服务架构&#xff0c;功能组件高内聚低耦合&#xff0c;可灵活扩展和定制。前端基于现代框…

蛋白质大语言模型ESM介绍

ESM(Evolutionary Scale Modeling)是 Meta AI Research 团队开发的一系列用于蛋白质的预训练语言模型。这些模型在蛋白质结构预测、功能预测和蛋白质设计等领域展现出了强大的能力。以下是对 ESM 的详细介绍: 核心特点 大规模预训练:基于大规模蛋白质序列数据进行无监督学…

OpenCv高阶(七)——图像拼接

目录 一、图像拼接的原理过程 1. 特征检测与描述&#xff08;Feature Detection & Description&#xff09; 2. 特征匹配&#xff08;Feature Matching&#xff09; 3. 图像配准&#xff08;Image Registration&#xff09; 4. 图像变换与投影&#xff08;Warping&…

Native层Trace监控性能

一、基础实现方法 1.1 头文件引用 #include <utils/Trace.h> // 基础版本 #include <cutils/trace.h> // 兼容旧版本1.2 核心宏定义 // 区间追踪&#xff08;推荐&#xff09; ATRACE_BEGIN("TraceTag"); ...被监控代码... ATRACE_END();// 函数级自…

金融行业微服务架构设计与挑战 - Java架构师面试实战

金融行业微服务架构设计与挑战 - Java架构师面试实战 本文通过模拟一位拥有十年Java研发经验的资深架构师马架构与面试官之间的对话&#xff0c;深入探讨了金融行业项目在微服务架构下的技术挑战与解决方案。 第一轮提问 面试官&#xff1a; 马架构&#xff0c;请介绍一下您…

服务器虚拟化:技术解析与实践指南

在信息技术飞速发展的今天,企业对服务器资源的需求日益增长,传统物理服务器存在资源利用率低、部署周期长、管理成本高等问题。服务器虚拟化技术应运而生,它通过将物理服务器的计算、存储、网络等资源进行抽象和整合,划分成多个相互隔离的虚拟服务器,从而提高资源利用率、…

OpenCV 图形API(54)颜色空间转换-----将图像从 RGB 色彩空间转换到 HSV色彩空间RGB2HSV()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 将图像从 RGB 色彩空间转换为 HSV。该函数将输入图像从 RGB 色彩空间转换到 HSV。R、G 和 B 通道值的常规范围是 0 到 255。 输出图像必须是 8 位…

Spring Boot的优点:赋能现代Java开发的利器

Spring Boot 是基于 Spring 框架的快速开发框架&#xff0c;自 2014 年发布以来&#xff0c;凭借其简洁性、灵活性和强大的生态系统&#xff0c;成为 Java 后端开发的首选工具。尤其在 2025 年&#xff0c;随着微服务、云原生和 DevOps 的普及&#xff0c;Spring Boot 的优势更…