深入剖析 Qwen2.5 - 32B 模型在 VLLM 上的单机三卡部署与运行

本文涉及的产品
NLP自然语言处理_基础版,每接口每天50万次
NLP自然语言处理_高级版,每接口累计50万次
视觉智能开放平台,分割抠图1万点
简介: 本文深入探讨了Qwen2.5 - 32B模型在VLLM框架上的部署过程,从模型下载、启动命令、资源占用分析到GPU资源分配及CUDA图应用,详述了大模型运行的挑战与优化策略,强调了硬件资源规划与技术调优的重要性。

深入剖析 Qwen2.5 - 32B 模型在 VLLM 上的部署与运行

在当今人工智能的前沿探索中,模型的部署与优化是实现其价值的关键环节。最近,我深入研究了基于 VLLM 部署 Qwen2.5 - 32B 模型的过程,在此与大家分享这段充满挑战与发现的经历。

一、启动部署:命令与初步资源占用

基于魔搭社区下载Qwen2.5 - 32B- Instruct模型

#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('Qwen/Qwen2.5-32B-Instruct')
AI 代码解读

部署之旅起始于这样一条关键命令:

vllm serve /home/XXX/.cache/modelscope/hub/Qwen/Qwen2.5 - 32B - Instruct --served-model-name Qwen2.5 - 32B - Instruct --max-model-len=16384 --dtype bfloat16 --pipeline-parallel-size 3 --use-v2-block-manager --port 8000
AI 代码解读

这里面我们用了三块显卡来部署Qwen2.5-32B-Instruct。
这一命令犹如一把启动引擎的钥匙,开启了 Qwen2.5 - 32B 模型在特定配置下的运行之旅。从核心日志中,我们能窥探到模型加载权重阶段的资源占用情况。不同进程(如 VllmWorkerProcess)在加载模型权重时消耗了相当可观的内存,例如其中一个进程占用约 21.9831GB,另一个则达到了 22.8913GB。这表明即使在尚未开始大规模推理运算时,大模型对内存资源的需求就已不容小觑,也突显了拥有足够硬件资源(如大容量内存的 GPU)对于运行此类大型模型的重要性。 这也意味着我们在三卡4090上是可以运行Qwen2.5-32B-Instruct的这里需要注意精度参数为bfloat16。

二、GPU 资源分配与 CUDA 图的应用

随着部署的推进,我们看到了关于 GPU 资源分配的详细信息:# GPU blocks: 32544, # CPU blocks: 2978。这一数据为我们展示了模型在计算资源分配上的布局,有助于我们理解其运行时的底层架构逻辑。

特别值得关注的是关于 CUDA 图的相关日志信息。模型在运行过程中尝试捕获为 CUDA 图模式,这是一种旨在提升计算效率的技术手段。然而,日志也明确提示,如果模型并非静态的,可能会引发意想不到的后果。并且,启用 CUDA 图模式会在每个 GPU 上额外占用 1~3GiB 内存。这对于内存资源本就紧张的大模型运行环境来说,是一个需要权衡的因素。如果在运行过程中遭遇内存不足的情况,日志为我们提供了几种可能的解决方案:可以考虑降低 gpu_memory_utilization 参数,以减少每个 GPU 上的内存占用比例;或者切换到急切(eager)模式,即通过设置 enforce_eager=True 或者在命令行中使用 --enforce-eager 选项来实现;还可以根据实际需求适当减少 max_num_seqs 参数,从而降低内存的使用量。

三、总结与展望

通过这次对 Qwen2.5 - 32B 模型在 VLLM 上的部署实践与核心日志分析,我们对大模型的运行机制有了更深入的理解。一方面,大模型在加载权重和运行过程中对内存等资源有着极高的要求,这需要我们在硬件配置上精心规划,确保有足够的资源来支撑其运行。另一方面,像 CUDA 图这样的优化技术虽然能带来性能提升,但也伴随着潜在风险和额外的资源消耗,需要我们根据模型的特性和实际应用场景灵活抉择。

展望未来,在大模型的部署与优化之路上,还有许多未知等待我们去探索。例如,如何进一步精细化地调整参数,以在有限的资源下实现模型性能的最大化?如何针对不同类型的模型(动态或静态)更好地利用 CUDA 图等技术?这些问题将激励着我们不断深入研究,为推动大模型在实际应用中的广泛落地而努力。希望我的这次分享能为同样在大模型部署领域探索的朋友们提供一些参考和启发,让我们共同在人工智能的浪潮中砥砺前行。

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
打赏
0
2
2
1
89
分享
相关文章
使用TensorRT-LLM进行生产环境的部署指南
TensorRT-LLM是一个由Nvidia设计的开源框架,用于在生产环境中提高大型语言模型的性能。该框架是基于 TensorRT 深度学习编译框架来构建、编译并执行计算图,并借鉴了许多 FastTransformer 中高效的 Kernels 实现,并且可以利用 NCCL 完成设备之间的通讯。
455 12
Pytorch模型训练与在线部署
本文以CIFAR10数据集为例,通过自定义神经元网络,完成模型的训练,并通过Flask完成模型的在线部署与调用,考略到实际生产模型高并发调用的述求,使用service_streamer提升模型在线并发能力。
761 1
|
3月前
基于VisualGLM-6B大模型的本地部署与推理
本文是基于清华开源的VisualGLM-6B 支持图像中英文的多模态对话语言模型,进行了一系列本地的简单部署,包括环境配置、模型部署、演示推理、模型微调(官方提供的代码),由于个人电脑显存不足,最后是在阿里云服务器交互式平台DSW终端进行微调和训练操作的。
144 17
deepseek部署的详细步骤和方法,基于Ollama获取顶级推理能力!
DeepSeek基于Ollama部署教程,助你免费获取顶级推理能力。首先访问ollama.com下载并安装适用于macOS、Linux或Windows的Ollama版本。运行Ollama后,在官网搜索“deepseek”,选择适合你电脑配置的模型大小(如1.5b、7b等)。通过终端命令(如ollama run deepseek-r1:1.5b)启动模型,等待下载完成即可开始使用。退出模型时输入/bye。详细步骤如下图所示,轻松打造你的最强大脑。
12879 86
如何监控vLLM等大模型推理性能?
本文将深入探讨 AI 推理应用的可观测方案,并基于 Prometheus 规范提供一套完整的指标观测方案,帮助开发者构建稳定、高效的推理应用。
如何监控vLLM等大模型推理性能?
llama2 70B mindie推理开箱报错问题
遇到问题,先从基本的检查开始,先检查卡有没有被占用,有的话就kill掉(如果是别人的任务,先知会一下哈)!其次,不要自己随意组合版本,否则会因为经验不足卡在莫名其妙的问题上。
52 3
探索大模型部署:基于 VLLM 和 ModelScope 与 Qwen2.5 在双 32G VGPU 上的实践之旅
本文介绍了使用 `VLLM` 和 `ModelScope` 部署 `Qwen2.5` 大模型的实践过程,包括环境搭建、模型下载和在双 32G VGPU 上的成功部署,展现了高性能计算与大模型结合的强大力量。
1074 3
在云上部署ChatGLM2-6B大模型(GPU版)
本教程指导您在配置了Alibaba Cloud Linux 3的GPU云服务器上,安装大模型运行环境(如Anaconda、Pytorch等),并部署大语言模型,最后通过Streamlit运行大模型对话网页Demo。教程包括创建资源、登录ECS实例、安装及校验CUDA、NVIDIA驱动和cuDNN等步骤。
基于NVIDIA A30 加速卡推理部署通义千问-72B-Chat测试过程
本文介绍了基于阿里云通义千问72B大模型(Qwen-72B-Chat)的性能基准测试,包括测试环境准备、模型部署、API测试等内容。测试环境配置为32核128G内存的ECS云主机,配备8块NVIDIA A30 GPU加速卡。软件环境包括Ubuntu 22.04、CUDA 12.4.0、PyTorch 2.4.0等。详细介绍了模型下载、部署命令及常见问题解决方法,并展示了API测试结果和性能分析。
2243 1