【vLLM】【基准测试】:vLLM部署大模型的基准测试

目录

1 咨询vllm官网的AI

2 下载测试数据集

3 下载python测试脚本

4 启动python脚本的命令

5 正式测试

5.1 ASYNC-REQUEST-FUNCS

5.2 NOT FOUND

5.3 Unprocessable Entity

6 测试结果

6.1 Qwen2___5-Coder-32B-Instruct-GPTQ-Int8

6.2 QwQ-32B-Preview

6.3 Qwen2-7B-Chat

7 总结


官方文档:Benchmark Suites — vLLM

github官网项目:https://github.com/vllm-project/vllm

硬件状况:4张4090的24G的卡

1 咨询vllm官网的AI

问:如何完成基准测试

答:如下图所示

2 下载测试数据集

3 下载python测试脚本

如下是脚本的部分内容,全部代码过长无法粘贴(后面我选择了拉取整个vllm项目,这里看看即可)

4 启动python脚本的命令

python benchmark_serving.py
	--backend vllm \
	--tokenizer /root/autodl-tmp/Qwen/Qwen2___5-Coder-32B-Instruct-GPTQ-Int8\ 
	--dataset /root/LLaMA-Factory/ShareGPT_V3_unfiltered_cleaned_split.json\
	--num-prompts 500 \
	--request-rate 
1 \
	--host 127.0.0.1 \
	--port 8080\

脚本解释:(只做解释,后面优化了这个启动命令)

启动 benchmark_serving.py 这个python文件中的代码

backend 模式为 vllm 这里对应如下

是发送请求的模式,可以有很多不同的模式

tokenizer 加载模型中的tokenizer

dataset 指定对应的测试数据集

num-prompts 发送请求数量 发送500次请求

request-rate 发送请求的频率,一秒一次

host 发送请求的ip地址

port 发送请求的端口

5 正式测试

5.1 ASYNC-REQUEST-FUNCS

发现有个包未导入

pip install ASYNC-REQUEST-FUNCS 也失败,也就是说这是一个vllm自己写的包

选择下载完整的vllm项目,问题解决

5.2 NOT FOUND

启动命令增加 --modol 指向模型(后来我发现这只是一个模型名称的参数,并不需要完整的路径) --dataset-name 数据集的格式

启动后,出现NOT FOUND

查看vllm API 后台也是 not found,基准测试的not found 应该是 API返回的

后使用openai 进行了一次请求,仔细对照下发现了不同

基准测试的 请求 base_url:127.0.0.1:8080/v1/completions

openai的 请求 base_url:127.0.0.1:8080/v1/chat/completions

基准测试的请求url是一个老版本的格式,是openai 0.28的格式,非常古老了已经

查看python源码,修改url

5.3 Unprocessable Entity

出现新的错误:Unprocessable Entity

仔细查看启动命令后和查看backend_request-func.py的源码后,应当将 --backend更改为openai-chat,因为咱们的vllm是部署到openai API上的,访问也是openai的格式

修改后的启动命令

python benchmark_serving.py 
	--backend openai-chat 
	--model Qwen2___5-Coder-32B-Instruct-GPTQ-Int8 
	--tokenizer /root/autodl-tmp/Qwen/Qwen2___5-Coder-32B-Instruct-GPTQ-Int8 
	--dataset-path /root/LLaMA-Fac
tory/ShareGPT_V3_unfiltered_cleaned_split.json 
	--dataset-name sharegpt 
	--num-prompts 500 
	--request-rate 1 
	--host 127.0.0.1 
	--po
rt 8080

成功启动

6 测试结果

6.1 Qwen2___5-Coder-32B-Instruct-GPTQ-Int8

测试结果:82 / 500 * 100% = 16.4%

GPU状况如下:

修改为两秒一次

97 / 500 * 100% = 19.4%

修改为 4秒一次

105 / 500 * 100 % = 21%

设置输出之后发现,在流式过程中,在响应了一部分之后,就被其他打断了

6.2 QwQ-32B-Preview

一秒一次 500次请求

50 / 500 * 100% = 10 %

6.3 Qwen2-7B-Chat

修改为 规模比较小的 Qwen2-7B-Chat模型

一秒一次 500次 请求

374 / 500 * 100 % = 74.8%

7 总结

从以上基准测试来看,在使用Qwen2___5-Coder-32B-Instruct-GPTQ-Int8和QwQ-32B-Preview模型进行vllm推理时,模型本身就比较大,外加生成的文本质量高就会带来更多的负担,更改为7B级别的chat模型之后,会有比较高的一个正确率,但是相应的文本质量就会降低,综上vllm启动的OpenAI的APi端口,有不错的稳定性,并不会因为大量的请求出现宕机的情况,但是由于本身算力的限制和迫切生成高质量文本的本能,会导致请求的成功率比较低,换言之,即API的并发性不高。

模型

总Token通量(token/s)

第一个Token延迟(ms)

Qwen2.5-Coder-32B-Instruct-GPTQ-Int8

38.60

163.25

QwQ-32B-Preview

27.91

175.97

Qwen2-7B-Chat

384.36

70.00

### 部署QwQ-32B模型于NVIDIA Quadro M6000 24GB显存GPU #### 准备工作环境 为了成功部署QwQ-32B模型,确保操作系统和硬件配置满足最低需求。对于Windows环境下基于X99平台的NVIDIA Quadro M6000显卡,建议先更新至最新的驱动版本以获得最佳性能和支持[^2]。 #### 安装必要的软件包 1. **CUDA Toolkit**: QwQ-32B依赖于CUDA进行高效的并行计算操作。安装适用于NVIDIA Quadro M6000 (GM200架构) 的最新稳定版CUDA工具包[^1]。 2. **cuDNN Library**: 加速深度神经网络运算效率,下载对应CUDA版本的cuDNN库文件,并按照官方指南完成设置。 #### 构建运行框架 选择合适的本地大语言模型运行框架至关重要。考虑到资源消耗与兼容性因素: - 推荐采用Ollama作为主要执行引擎,其具备良好的社区支持及优化特性; - 同时集成AnythingLLM图形化前端以便更直观地管理和交互调用API接口[^3]。 #### 调整参数适配硬件条件 由于QwQ-32B属于大型预训练模型之一,可能占用较多内存空间。针对仅拥有24GB VRAM容量的情况,可以考虑采取如下措施来缓解潜在瓶颈: - 设置较低batch size减少单次前向传播所需临时存储量; - 利用混合精度浮点数表示法(FP16),既可加快速度又能节省一半以上的显存开销; - 如果仍然遇到不足,则尝试启用磁盘交换机制或者分布式多设备协同处理方式分担负载压力。 ```python import torch device = 'cuda' if torch.cuda.is_available() else 'cpu' model = ModelClass.from_pretrained('path/to/qwq-32b').half().to(device) tokenizer = TokenizerClass.from_pretrained('path/to/tokenizer') with torch.no_grad(): inputs = tokenizer("输入文本", return_tensors="pt").to(device) outputs = model.generate(**inputs, max_length=50, num_beams=4) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

马武寨山的猴子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值