微信扫码
添加专属顾问
我要投稿
Docker+vLLM内网离线部署Qwen3教程,手把手教你实现高效稳定的AI模型部署。核心内容: 1. Docker部署vLLM的四大优势:环境隔离、跨平台迁移、轻松扩展和统一管理 2. 详细的环境准备步骤,包括Nvidia显卡驱动、CUDA和Docker的安装 3. 内网离线部署Qwen3-32B的具体操作流程和注意事项
一、Docker部署
vllm的优势
1. 环境隔离:Docker通过容器隔离技术为VLLM提供独立的运行环境,避免系统库版本冲突和依赖错误问题。
2. 便捷的跨平台迁移:使用Docker部署的VLLM容器可以轻松迁移到不同的服务器、数据中心或云平台上,大大降低了环境搭建和维护的成本。
3. 轻松扩展:借助容器化,VLLM可以轻松进行水平扩展,通过在多节点上运行多个容器实例实现高并发的推理服务。
4. 统一管理:容器化部署后,可以使用Docker Compose、Kubernetes等容器编排工具进行自动化管理,包括负载均衡、故障转移等操作,极大地简化了多实例部署的管理难度。
二、环境准备
Nvidia显卡驱动、CUDA、nvidia-container安装
Docker环境安装
三、
vllm内网离线部署Qwen3-32B
拉取vllm/vllm-openai镜像
# 1. docker拉取vllm/vllm-openai镜像, 20G 需要等一会。docker pull vllm/vllm-openai# 2. 从联网的机器上导出镜像docker save -o vllm-openai-image.tar vllm/vllm-openai:latest# 3. 将压缩包vllm-openai-image.tar 上传到 /data 目录cd /data# 4. docker加载上传的本地镜像包docker load < vllm-openai-image.tar# 5. 查看docker 镜像docker images
下载Qwen/Qwen3-32B模型文件
#Git下载#请确保 lfs 已经被正确安装git lfs installgit clone https://www.modelscope.cn/Qwen/Qwen3-32B.git
vllm内网部署Qwen/Qwen3-32B
docker run -d --privileged --gpus all --restart unless-stopped --network host -v /data/Qwen3-32B:/app/model --shm-size 32G --name vllm-qwen3 vllm/vllm-openai:latest --model /app/model --served-model-name qwen3:32b --dtype half --kv-cache-dtype=fp8_e4m3 --calculate-kv-scales --port 8008 --tensor-parallel-size 4 --trust-remote-code --max-model-len 32000 --max-num-batched-tokens 64000 --max-num-seqs 4 --gpu-memory-utilization 0.95 --api-key OPENWEBUl123 --reasoning-parser DeepSeek_r1格式化后的脚本:docker run -d --privileged --gpus all \--restart unless-stopped --network host \-v /data/DeepSeek-R1-Distill-Qwen-32B:/app/model \--shm-size 32G \--name vllm-deepseek vllm/vllm-openai:latest \--model /app/model \--served-model-name vllm-qwen3 \--dtype half \--kv-cache-dtype=fp8_e4m3 \--calculate-kv-scales \--port 8006 \--tensor-parallel-size 4 \--trust-remote-code \--max-model-len 16000 \--max-num-batched-tokens 32000 \--max-num-seqs 8 \--gpu-memory-utilization 0.85 \--api-key OPENWEBUl123 \--enable-reasoning \--reasoning-parser deepseek_r1
docker logs -f vllm-qwen3docker run 命令中关于 vLLM 部署的各个参数:1.-d:让容器在后台运行,也就是以守护进程模式启动。
2.--privileged:赋予容器近乎宿主机的 root 权限,这样容器才能访问特殊设备,比如 GPU。
3.--gpus all:使容器能够使用宿主机上的所有 GPU 资源。
4.--restart unless-stopped:设定容器的重启策略,除非手动停止,否则容器会在各种情况下自动重启。
5.--network host:容器会直接使用宿主机的网络栈,这样容器内的服务可以通过宿主机的 IP 地址直接访问。
6.-v /data/Qwen3-32B:/app/model:将宿主机的/data/Qwen3-32B目录挂载到容器内的/app/model目录,方便容器读取模型文件。
7.--shm-size 32G:把容器的共享内存大小增加到 32GB,这对多进程间的高效通信很有帮助。
8.--name vllm-qwen3:给运行的容器命名为vllm-qwen3,便于后续的管理和操作。
9.--model /app/model:指定容器内模型文件所在的路径,也就是之前挂载的目录。
10.--served-model-name qwen3:32b:设置对外提供服务时模型的名称。
11.--dtype half:将模型参数的数据类型设置为半精度浮点数(FP16),以此来减少内存占用。
12.--kv-cache-dtype=fp8_e4m3:使用 E4M3 格式的 FP8 数据类型来存储键值缓存,进一步优化内存使用。
13.--calculate-kv-scales:开启对键值缓存动态缩放因子的计算,有助于提升量化的精度。
14.--port 8008:设置服务监听的端口为 8008。
15.--tensor-parallel-size 4:将模型在 4 个 GPU 上进行张量并行处理,加快推理的速度。
16.--trust-remote-code:允许执行模型附带的自定义代码,使用时需要注意安全问题。
17.--max-model-len 32000:把模型支持的最大输入长度限制为16000 个 token。
18.--max-num-batched-tokens 64000:设置批处理时允许的最大 token 数量为 32000,这影响着吞吐量。
19.--max-num-seqs 8:限制同时处理的最大序列数为 8。
20.--gpu-memory-utilization 0.95:将 GPU 内存的使用率上限设置为 95%,防止出现内存溢出的情况。
21.--api-key OPENWEBUl123:设置 API 访问的密钥为OPENWEBUl123,用于身份验证。
22.--enable-reasoning:开启推理功能,这可能涉及到多轮对话或者复杂问题的解决。
23.--reasoning-parser deepseek_r1:指定使用 DeepSeek-R1 模型的推理解析器,用于处理特定格式的推理任务。
# 启用 PagedAttention 优化内存碎片--swap-space 20 # 每个 GPU 分配 20GB 磁盘交换空间--gpu-memory-utilization 0.9 # 提高 GPU 内存使用率上限# 批处理优化--max-num-batched-tokens 64000 # 增大批处理 token 数量--max-num-seqs 16 # 增加并发处理的序列数--continuous-batching # 启用连续批处理,动态调整批大小# 量化优化--quantization awq # 使用 AWQ 量化进一步压缩模型--quantization int8 # 使用 INT8 量化替代 FP16
# 模型加载优化--model-cache /cache/models # 指定模型缓存路径,加速重启--download-dir /data/models # 指定模型下载目录# 权重加载方式--load-format pt # 直接加载 PyTorch 权重--load-format safetensors # 加载 safetensors 格式权重(更快)
# API 服务配置--host 0.0.0.0 # 监听所有网络接口--workers 2 # 启动多个工作进程(需配合 --no-huggingface-available)--timeout 300 # 设置请求超时时间(秒)# 安全增强--cors-allow-origins "*" # 允许跨域请求--api-version 2 # 使用 OpenAI API v2 兼容模式
--log-level info--log-file /var/log/vllm.log--trace--trace-output /data/trace.json
# DeepSeek 模型专用优化--disable-logits-warper # 禁用 logits 调整(部分模型需要)--rope-scaling linear # 启用 RoPE 缩放以支持更长上下文--rope-factor 2.0 # 设置 RoPE 缩放因子# 大模型优化--pipeline-parallel-size 2 # 结合张量并行与流水线并行
from openai import OpenAIclient = OpenAI(base_url="http://ip:8008/v1",api_key="OPENWEBUl123",)completion = client.chat.completions.create(model="qwen3:32b",messages=[{"role": "user", "content": "你是谁?"}])print(completion.choices[0].message)
提示:
vLLM支持部分OpenAI未包含的参数(如top_k),可通过在请求的extra_body参数中传递,例如:extra_body={"top_k": 50}。
重要信息:
默认情况下,服务器会加载 Hugging Face 模型仓库中的generation_config.json文件(若存在)。这意味着某些采样参数的默认值可能被模型创建者推荐的配置覆盖。如需禁用此行为,请在启动服务时添加--generation-config vllm参数。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-12-08
Claude Code的最强记忆外挂来了!
2025-12-08
微软开源轻量级实时TTS模型!VibeVoice-Realtime-0.5B:实现多角色自然对话!
2025-12-06
100万亿Token画出AI版图|Claude吃掉编程60%,DeepSeek吃掉开源一半
2025-12-05
FluidMarkdown 正式发布 HarmonyOS 开源 Markdown 渲染引擎,为 AI 流式交互而生
2025-12-05
WeKnora 开源重磅升级,ReACT Agent 智能任务驱动
2025-12-05
开源算法能在 2025 年击败 GPT-5 吗?DeepSeek-V3.2 / Speciale 交出了一份答卷
2025-12-05
开源了首个用于诉讼的智能体框架 SuitAgent
2025-12-05
腾讯混元OCR大模型,本地部署,实测
2025-10-20
2025-11-19
2025-10-27
2025-10-27
2025-10-03
2025-09-17
2025-09-29
2025-10-29
2025-09-29
2025-11-17
2025-11-12
2025-11-10
2025-11-03
2025-10-29
2025-10-28
2025-10-13
2025-09-29
2025-09-17