多卡(3090)部署通义千问Qwen2-72B大模型并加速至38tps:vLLM库的使用和错误排查

news2024/11/13 9:58:38

前一篇文章做了Qwen1的加速,其中关于Auto-GPTQ的安装问题在Qwen2中依然适用。但是Qwen2比Qwen1加载模型快了很多,笔者也不知道为什么。

下面是Hugging Face transformer版的千问2,token生成速度在15个每秒左右,但还不够快,在这篇文章里我们用vLLM将速度翻倍,达到38tokens/s。

​transformer库Auto-GBTQ版本,289字19秒生成,约15 token/s

想用vLLM加速处理,于是参考了【以Qwen2为例】vLLM流式推理部署,openai接口调用,requests调用_qwen2 openai-CSDN博客

但是按照他的流程走(版本都和他一样):

pip install vllm
pip install nvidia-nccl-cu12==2.20.5

启动vllm后端:

python -m vllm.entrypoints.openai.api_server

时报错:

(VllmWorkerProcess pid=1567610) INFO 07-08 09:29:33 utils.py:613] Found nccl from environment variable VLLM_NCCL_SO_PATH=/mnt/shareEEx/chenyixiang/nccl/usr/lib/x86_64-linux-gnu/
(VllmWorkerProcess pid=1567609) ERROR 07-08 09:29:33 pynccl_wrapper.py:196] Failed to load NCCL library from /mnt/shareEEx/chenyixiang/nccl/usr/lib/x86_64-linux-gnu/ .It is expected if you are not running on NVIDIA/AMD GPUs.Otherwise, the nccl library might not exist, be corrupted or it does not support the current platform Linux-5.4.0-182-generic-x86_64-with-glibc2.31.If you already have the library, please set the environment variable VLLM_NCCL_SO_PATH to point to the correct nccl library path.

意思是关于NCCL协同通讯库没有安装好,vllm后台识别不到nccl:

让我设置好VLLM_NCCL_SO_PATH

于是我就按照NVIDIA官网中找安装方式,发现好多都需要sudo安装deb包,但是笔者的机器没有sudo权限,于是直接考虑下载源码:https://developer.nvidia.com/downloads/compute/machine-learning/nccl/secure/2.22.3/agnostic/x64/nccl_2.22.3-1+cuda12.2_x86_64.txz/

并解压到~/Qwen/nccl_2.22.3-1+cuda12.2_x86_64/

设置VLLM_NCCL_SO_PATH

# 错误
export VLLM_NCCL_SO_PATH=~/Qwen/nccl_2.22.3-1+cuda12.2_x86_64/lib/

vllm后台仍然识别不到nccl,

几经周折才试出来,要把PATH直接指向.so文件(虽然以前的PATH好像都是直接指向lib/文件夹就行,但这次是指向文件):

# 正确
export VLLM_NCCL_SO_PATH=~/Qwen/nccl_2.22.3-1+cuda12.2_x86_64/lib/libnccl.so

再次运行:

python -m vllm.entrypoints.openai.api_server --served-model-name Qwen2-72B-Instruct-GPTQ-Int4 --model $MODEL_PATH \
--tensor-parallel-size 4 --host 0.0.0.0 --port 8008

成功!

可以看到,短上下文的处理速度达到了恐怖的38.7tokens/s,与官方给出的A100速度基本持平

相比于开头的transformer版本,速度提升了两倍有余。

调用服务端源码:

from openai import OpenAI
# Set OpenAI's API key and API base to use vLLM's API server.
openai_api_key = "EMPTY"
openai_api_base = "http://0.0.0.0:8008/v1"

client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)

chat_response = client.chat.completions.create(
    model="Qwen2-72B-Instruct-GPTQ-Int4",
    messages=[
        {"role": "system", "content": "你是一个有用的人工智能助手"},
        {"role": "user", "content": "为什么生鱼片其实是死鱼片?对此生成超过不少于1000字的解释。"},
    ]
)
print("Chat response:", chat_response)

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

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

相关文章

Spring——IOC创建对象方式

可参考官网:https://docs.spring.io/spring-framework/reference/core/beans/dependencies/factory-collaborators.htmlhttps://docs.spring.io/spring-framework/reference/core/beans/dependencies/factory-collaborators.html 1. 使用无参构造创建对象&#xff0…

Unity--射线检测--RayCast

Unity–射线检测–RayCast 1.射线检测的含义 射线检测,根据名称而言,使用一条射线来检测是击中了某个物体/多个物体 射线检测的包含两个部分: 射线和检测 2.射线检测可以用在哪些地方 射击游戏: 玩家的瞄准和射击:检测玩家视线是否与敌人或其他目标…

初识c++(命名空间,缺省参数,函数重载)

一、命名空间 1、namespace的意义 在C/C中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全 局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名 冲突…

ubuntu24.04按关键字卸载不需要的apt包

使用的时候发现一个imagemagic无法正常读取文件,试图卸载 man apt经过尝试后,发现list的一个神奇关键字,用来显示已安装的软件包 sudo apt list --installed | grep image按image关键字过滤: 之后按软件名卸载即可 sudo apt pu…

数学建模论文写作文档word

目录 1. 摘要写法1.1 确定题目与方法1.2 编写开头段落1.3 填写问题一1.4 重复步骤3填写其他问题1.5 编写结尾段落1.6 编写关键词 2. 问题重述2.1 问题背景2.2 问题提出 3. 问题分析4. 问题X模型的建立与求解5. 模型的分析5.1 灵敏度分析5.2 误差分析(主要用于预测类…

DAY2:插件学习

文章目录 插件学习ClangGoogle TestCMakeDoxygen 收获 插件学习 Clang 是什么:Clang 是指 LLVM 项目的编译器的前端部分,支持对 C 家族语言(C、C、Objective-C)的编译。Clang 的功能包括:词法分析、语法分析、语义分析、生成中间中间代码 L…

浅析C++引用

浅析C引用"&" ​ C中引入了一个新的语言特性——引用(&),它表示某一对象的别名,对象与该对象的引用都是指向统一地址。那么我们就来看看关于引用的一些知识点吧🧐 特性 引用在定义时必须初始化一个变量可以有多个引用引…

C-10 凸包

凸包 数学定义 平面的一个子集S被称为是凸的,当且仅当对于任意两点A,B属于S,线段PS都完全属于S过于基础就不详细介绍了 凸包的计算 github上找到了别人的代码,用4种方式实现了凸包的计算,把他放在这里链接地址htt…

六、数据可视化—Wordcloud词云(爬虫及数据可视化)

六、数据可视化—Wordcloud词云(爬虫及数据可视化) 也是一个应用程序 http://amueller.github.io/word_cloud/ Wordcloud词云,在一些知乎,论坛等有这样一些东西,要么做封面,要么做讲解,进行分析…

Echarts 实现数据可视化

Echarts 简介 Echarts 是一个开源的、免费的、成熟的、商业级图表可视化框架,是 Apache 开源社区的顶级项目之一,也是国内使用最多和最为广泛的可视化图表框架之一。 数据可视化图表框架并没有一个统一的行业标准,比较常见的有 D3、Highchart…

电子设备常用的胶水有哪些?

目录 1、502胶水 2、703胶水 3、704胶水 4、AB胶 5、红胶 6、Underfill 7、导电胶 8、UV胶 9、热熔胶 10、环氧树脂胶 11、硅酮胶 12、聚氨酯胶 13、丙烯酸胶 14、丁基胶 1、502胶水 502胶水,也被称为瞬间胶或快干胶,是一种非常常见的粘合…

如何下载Github上项目中的一个目录或几个文件

目录 问题的由来 GitZip for Github插件 Edge中插件的安装 Chome中插件的安装 插件的使用 Github授权 文件下载 问题的由来 经常使用Github的可能都会有这样的需求,有的时候一个仓库好几个GB,但是感兴趣的只是某个目录下的文件。Git没有单独下载…

CTFShow的RE题(四)

真的是签到 给的是无后缀的 zip 文件,解压发现需要密码,也没有提示,猜测可能是 zip 伪加密 (走错厂了吧) zip是否加密 首先就是看开头的6 ,7byte,和中间 01 02 后的 5 ,6byte 成功解…

如何做一个透明度渐现且向上位移逐行出现的文字效果

前言 在这个夜黑风高的夜晚,你的眼睛已经开始有些疲惫。你的手指在键盘上轻轻地敲击着,仿佛在弹奏一首无声的夜曲。你的思绪在代码的海洋中飘荡,寻找着最后一行需要完成的代码。就在这时,你的老板走了过来,他的脸上带…

简过网:事业单位编制有哪几种类型,你都知道吗?

近几年来,随着考编、考公热,越来越多的朋友都有考编的想法,尤其是刚毕业的大学生,但是很多朋友对于事业单位编制有不清楚的地方,比如到底哪些属于事业单位的范围,事业单位编制分为哪些类型?今天…

解决:Android Studio 突然打不开!提示Failed to create JVM:error code -1

Android studio1.5 一直用得好好的,突然有一天打不开,并提示: 可是系统配置中,java的配置也是正常的。 解决方法: 修改安装目录下的studio64.exe.vmoptions 文件 直接将文件内容改成: -Xms128m -Xmx512m…

【活动行】参与上海两场线下活动,教育生态行业赛总决赛活动和WAIC人工智能大会活动 - 上海活动总结

目录 背景决赛最后一公里领域范围 决赛作品AI智教相机辅导老师Copilot辅导老师Copilot雅思写作竞技场 优秀作品总结 背景 决赛 百度发起的千帆杯教育生态行业赛于2024年7月4日进行线下决赛,博主虽然没能进入决赛,但也非常荣幸能够以嘉宾身份到现场给进…

213.贪心算法:跳跃游戏||(力扣)

class Solution { public:int jump(vector<int>& nums) {if (nums.size() 1) return 0; // 如果数组长度为1&#xff0c;已经在终点&#xff0c;不需要跳跃int cur 0; // 当前跳跃能到达的最远位置int flag 0; // 记录跳跃次数int next 0; // 下一次跳跃能到…

软件设计之Java入门视频(13)

软件设计之Java入门视频(13) 视频教程来自B站尚硅谷&#xff1a; 尚硅谷Java入门视频教程&#xff0c;宋红康java基础视频 相关文件资料&#xff08;百度网盘&#xff09; 提取密码&#xff1a;8op3 idea 下载可以关注 软件管家 公众号 学习内容&#xff1a; 该视频共分为1-7…

2024年【低压电工】考试题库及低压电工考试总结

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年低压电工考试题库为正在备考低压电工操作证的学员准备的理论考试专题&#xff0c;每个月更新的低压电工考试总结祝您顺利通过低压电工考试。 1、【单选题】PE线或PEN线上除工作接地外其他接地点的再次接地称为(…