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

本文涉及的产品
多模态交互后付费免费试用,全链路、全Agent
简介: 本文深入探讨了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')

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

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

这里面我们用了三块显卡来部署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 图等技术?这些问题将激励着我们不断深入研究,为推动大模型在实际应用中的广泛落地而努力。希望我的这次分享能为同样在大模型部署领域探索的朋友们提供一些参考和启发,让我们共同在人工智能的浪潮中砥砺前行。

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
26天前
|
文字识别 算法 语音技术
基于模型蒸馏的大模型文案生成最佳实践
本文介绍了基于模型蒸馏技术优化大语言模型在文案生成中的应用。针对大模型资源消耗高、部署困难的问题,采用EasyDistill算法框架与PAI产品,通过SFT和DPO算法将知识从大型教师模型迁移至轻量级学生模型,在保证生成质量的同时显著降低计算成本。内容涵盖教师模型部署、训练数据构建及学生模型蒸馏优化全过程,助力企业在资源受限场景下实现高效文案生成,提升用户体验与业务增长。
242 23
|
1月前
|
人工智能 JavaScript 测试技术
Cradle:颠覆AI Agent 操作本地软件,AI驱动的通用计算机控制框架,如何让基础模型像人一样操作你的电脑?
Cradle 是由 BAAI‑Agents 团队开源的通用计算机控制(GCC)多模态 AI Agent 框架,具备视觉输入、键鼠操作输出、自主学习与反思能力,可操作各类本地软件及游戏,实现任务自动化与复杂逻辑执行。
137 0
|
2月前
|
人工智能 安全 API
用Qwen Code,体验全新AI编程——高效模型接入首选ModelGate
Qwen Code 是通义千问推出的AI编程助手,支持自然语言编程与智能代码生成,大幅提升开发效率。结合 ModelGate,可实现多模型统一管理、安全调用,解决API切换、权限控制、稳定性等问题,是Claude Code的理想国产替代方案。
|
2月前
|
存储 人工智能
想让小模型‘偷师’大模型,如何选择合适的知识蒸馏技术?
本文三桥君围绕知识蒸馏技术展开。在人工智能领域,训练大模型面临挑战,知识蒸馏让小模型 “偷师” 大模型。文中介绍其两阶段(预训练、后训练 / 微调)及三种常用技术(软标签、硬标签、协同蒸馏),总结优缺点,助你理解应用该技术。
78 0
|
2月前
|
人工智能 JavaScript 安全
一文教你高效集成Qwen Code与ModelGate千万免费Toknn模型网关平台
本文详解如何高效集成Qwen Code与ModelGate模型网关平台,涵盖环境搭建、API配置、代码生成等关键步骤,助你实现智能编程与多模型管理,大幅提升AI开发效率。
|
2月前
|
JSON 算法 安全
1688图片搜索逆向工程与多模态搜索融合实践——基于CLIP模型的特征向
本文介绍了通过逆向工程分析实现图片搜索的技术方案,包括请求特征捕获、签名算法破解及多模态搜索的实现。利用CLIP模型提取图像特征,并结合Faiss优化相似度计算,提升搜索效率。最后提供完整调用示例,模拟实现非官方API的图片搜索功能。