当前位置: 首页 > news >正文

vLLM/Docker 部署Qwen2.5-VL-32B模型

vLLM/Docker 部署Qwen2.5-VL-32B模型

​ 在 Linux 系统(配备 RTX 4080 显卡,24GB 显存)上部署Qwen2.5-VL-32B(多模态模型,支持文本 + 图像输入),需解决显存适配多模态推理两大核心问题。以下是基于vLLM(高效推理框架)和Docker(环境隔离)的完整部署方案,确保在 24GB 显存下稳定运行。

一、部署前准备

​ 下文参照背景为:

​ Ubuntu 22.04.5 LTS、NVIDIA-SMI 575.64.03 Driver Version: 575.64.03 CUDA Version: 12.9

​ 使用Docker进行部署安装,如果没有docker请安装并且docker需要支持GPU(NVIDIA Container Toolkit(GPU 支持)),安装教程请自行查找。

1. 系统配置查询

# 1. 查看Ubuntu版本(需20.04+,推荐22.04)
lsb_release -a  
# 或 cat /etc/os-release# 2. 查看CPU信息(核心数、架构,影响并发处理能力)
lscpu | grep -E "Model name|Socket|Core|Thread"# 3. 查看内存大小(建议32GB+,避免模型加载时OOM)
free -h  # 4. 查看磁盘空间(模型+镜像需至少50GB+,重点看部署目录)
df -h  
# 若计划将模型存放在/data目录,单独检查:
df -h /data  # 5. 检查是否有NVIDIA显卡(无输出则无NVIDIA卡,无法部署GPU加速版本)
lspci | grep -i nvidia  # 6. 查看显卡型号、显存、驱动版本(核心命令,需安装NVIDIA驱动)
nvidia-smi  
# 关键信息:
# - "Name":显卡型号(如A100、RTX 4090)
# - "Total Memory":单卡显存(需≥16GB,模型越大需求越高)
# - "Driver Version":驱动版本(需≥525.60.13,建议535+)
# - "CUDA Version":驱动支持的CUDA版本(需≥11.8,推荐12.1+)# 3. 若nvidia-smi未找到,说明未装驱动,先确认是否支持:
# 查看显卡是否在NVIDIA驱动支持列表(需手动核对)
# https://www.nvidia.com/download/index.aspx

2. 相关包准备

docker镜像

根据显卡CUDA版本,找到适合的vllm docker镜像版本。

# 拉取vLLM镜像(指定与CUDA 12.9兼容的版本,latest通常兼容最新CUDA)
sudo docker pull vllm/vllm-openai:latest# 国内拉取慢时,可尝试阿里云镜像仓库(需先搜索是否有同步镜像)
# sudo docker pull registry.cn-hangzhou.aliyuncs.com/xxx/vllm-openai:latest  # 需替换为实际镜像地址

检查镜像是否拉取成功

sudo docker images | grep vllm-openai  # 有输出则成功
模型下载
方法 1:通过 ModelScope 下载(推荐)
# 安装ModelScope工具(若未安装)
pip install modelscope# 创建模型存储目录
mkdir -p /data/models/qwen2.5-vl-7b-instruct# 下载模型(国内源,速度快)
modelscope download --model qwen/Qwen2.5-VL-7B-Instruct --local_dir /data/models/qwen2.5-vl-7b-instruct
方法 2:通过 Hugging Face 国内镜像下载(备用)
# 安装huggingface-cli
pip install huggingface-hub# 设置国内镜像(hf-mirror)
export HF_ENDPOINT=https://hf-mirror.com# 下载模型
huggingface-cli download --resume-download qwen/Qwen2.5-VL-7B-Instruct --local-dir /data/models/qwen2.5-vl-7b-instruct

检查模型是否下载成功

ls /data/models/qwen2.5-vl-7b-instruct  # 应有config.json、model-00001-of-00002.safetensors等文件

安装&启动

sudo docker run -d \--gpus all \  # 允许容器使用所有GPU-p 8000:8000 \  # 映射端口(主机端口:容器端口)-v /data/models/qwen2.5-vl-7b-instruct:/model \  # 挂载模型目录到容器内--name vllm-qwen-vl \  # 容器名称vllm/vllm-openai:latest \  # 使用的镜像--model /model \  # 容器内模型路径 外部调用时入参model 需要与此处相同 注意此处有 /--port 8000 \  # 容器内服务端口--host 0.0.0.0 \  # 允许外部访问--tensor-parallel-size 1 \  # 若单卡则设1,多卡按实际数量调整--gpu-memory-utilization 0.9 \  # 允许使用90%的GPU内存(避免OOM)--trust-remote-code  # 信任远程模型代码(Qwen模型需要)

检查容器是否启动成功

sudo docker ps | grep vllm-qwen-vl  # 状态为Up则成功
# 查看日志(排查启动问题)
sudo docker logs -f vllm-qwen-vl

命令说明汇总

命令 / 参数作用说明
--gpus all允许容器访问所有 GPU
-p 8000:8000将主机 8000 端口映射到容器 8000 端口(外部访问用)
-v 主机路径:容器路径将主机模型目录挂载到容器内(容器可读取模型)
--model /model指定容器内模型路径(需与挂载路径一致)
--tensor-parallel-size指定 GPU 并行数量(单卡设 1)
--gpu-memory-utilization控制 GPU 内存使用率(避免 OOM)
--trust-remote-code允许加载模型的远程代码(Qwen 模型必需)
--tensor-parallel-size 1张量并行的 GPU 数量:vLLM 支持将模型分片到多个 GPU 上运行(张量并行),此处设为 1 表示使用 1 张 GPU 运行模型(单卡场景)。若有多卡且模型支持,可调整为实际 GPU 数量(如 2 张卡设为 2)。
--gpu_memory_utilization 0.95GPU 内存利用率上限:设置为 0.95 表示允许 vLLM 使用单张 GPU 95% 的内存(避免因内存占满导致 OOM 错误)。若启动时报内存不足,可降低该值(如 0.8)。
--max_model_len 2048模型支持的最大序列长度(输入 + 输出的总 tokens 数):设为 2048 表示单次对话中,输入和生成的内容总长度不超过 2048 个 tokens。需根据模型实际支持的长度调整(Qwen2.5-VL-7B-Instruct 通常支持更长长度,可按需增大)。
--dtype float16模型运行的数据类型:float16 是半精度浮点类型,相比 float32 可减少 GPU 内存占用(约节省一半),同时保持较好的推理精度。Qwen2.5 模型支持 float16,推荐使用(若 GPU 支持 bfloat16,也可改为 bfloat16)。
-d后台运行容器(detach 模式),容器启动后不会占用当前终端,返回容器 ID。

常见启动报错及处理措施

1. 报错:nvidia-container-cli: initialization error: nvml error: driver not loaded

  • 原因:NVIDIA Container Toolkit 未正确安装或 Docker 未重启。

  • 处理

    sudo apt-get reinstall nvidia-container-toolkit
    sudo systemctl restart docker
    

2. 报错:port is already allocated

  • 原因:8000 端口被占用。

  • 处理:更换主机端口(如

    -p 8001:8000
    

    或杀死占用进程:

    sudo lsof -i:8000  # 查看占用进程
    sudo kill -9 <进程ID>
    

3. 报错:FileNotFoundError: Could not find model files

  • 原因:模型路径挂载错误或模型未下载完整。
  • 处理
    • 检查-v参数的主机路径是否正确(/data/models/...是否存在)。
    • 重新下载模型(确保文件完整)。

4. 报错:Out of memory error

  • 原因:GPU 内存不足。
  • 处理:降低--gpu-memory-utilization(如改为 0.8),或使用更小的模型分片(若支持)。

5. 报错:Pulling from vllm/vllm-openai: context deadline exceeded

  • 原因:镜像拉取超时(网络问题)。
  • 处理:配置 Docker 镜像加速器(见步骤三),或手动下载镜像后上传服务器。

番外

Docker源

Docker 镜像加速器(解决镜像拉取慢)

# 创建/修改Docker配置文件
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn",  # 中科大镜像"https://hub-mirror.c.163.com",       # 网易镜像"https://cr.console.aliyun.com"       # 阿里云(需登录阿里云容器服务获取个人加速地址)]
}
EOF# 重启Docker使配置生效
sudo systemctl daemon-reload
sudo systemctl restart docker
http://www.dtcms.com/a/521401.html

相关文章:

  • 广州设计网站建设电子商务网站建设与维护考试题
  • 单片机的开发(未完待续,有时间写)
  • 酒店内容推荐系统:这5个技术坑90%的人都踩过!
  • 定制型网站开发网站建设服务哪便宜
  • 十大下载网站免费安装网站扫二维码怎么做
  • 口碑好的合肥网站建设多说wordpress
  • JetPack 6系统中,默认启用的自动更新机制不完全依赖 unattended-upgrades 包
  • 企业网站开发服务器山东兴华建设集团网站
  • 建设工程网上质检备案网站中英文网站如何做思路
  • 网站不排名一切等于零今天的新闻直播
  • 学seo网站推广好吗网站用户建设的设计与实现
  • 滇中引水工程建设管理局网站安卓aso优化
  • 盐城网站开发招代理松江车墩网站建设
  • asp.net企业网站后台管理系统企业管理软件系统网
  • 现在手机网站用什么做wordpress推广码
  • POI的概念解析及电子地图与POI的联系和区别分析
  • 建什么网站 做 cpa服务器搭建网站环境
  • **标题:发散创新:智能交通系统的深度探究与实现**摘要:本文将详细
  • DDIM(Diffusion)个人总结
  • Radamsa的TCP客户端/服务器模式用法
  • 【Flutter 问题系列第 86 篇】解决 Google Play 提示应用必须支持 16 KB 内存页面大小问题的方案
  • 南京网站设计建设公司电话添加网站描述
  • 网站建设具体步骤应该怎么做ps怎么制作网页
  • 此网站无法提供安全连接 建设银行seo在线优化排名
  • 网站 架构 设计企业做营销网站
  • 网站建设用途网页制作教程视频 网盘
  • 网站建设学习视频中国50大电商排名
  • 虚幻引擎5 GAS开发俯视角RPG游戏 P06-14 属性菜单 - 文本值行
  • 【浏览器】前端页面禁用浏览器复制的方案
  • 外国人做的汉子网站网站建设合同应注意