Docker + vLLM 部署 Qwen3.5-35B-A3B 本地大模型教程
一、部署目标
在服务器上通过 Docker + vLLM 部署 Qwen3.5-35B-A3B 大语言模型,并提供
OpenAI 兼容 API,供 LangGraph、Agent、Spring Boot 等应用调用。
最终架构:
Agent应用
(LangGraph / Python / Spring Boot)
|
|
OpenAI Compatible API
|
http://服务器IP:18081/v1
|
|
vLLM推理服务
|
|
Qwen3.5-35B-A3B
|
|
GPU 0
GPU规划:
GPU0:
Qwen3.5-35B-A3B + vLLM
GPU1:
保留给其他算法任务
---
二、服务器环境
## 硬件
- GPU:NVIDIA RTX PRO 6000 Blackwell ×2
- 显存:96GB ×2
## 软件
- Ubuntu
- Docker 29.3.0
- NVIDIA Driver 570.153.02
- CUDA 12.8
- vLLM 0.26.0
---
三、创建部署目录
目录:
/mnt/sda2/wlg/llm
创建:
```bash
cd /mnt/sda2/wlg
mkdir -p llm/models
mkdir -p llm/logs
mkdir -p llm/scripts
```
最终:
llm
├── docker-compose.yml
├── logs
├── models
└── scripts
---
四、验证 Docker GPU 环境
执行:
```bash
docker run --rm \
--gpus device=0 \
nvidia/cuda:12.8.0-base-ubuntu24.04 \
nvidia-smi
```
确认容器可以识别:
NVIDIA RTX PRO 6000 Blackwell
---
五、部署 vLLM
## 拉取镜像
```bash
docker pull vllm/vllm-openai:latest
```
检查版本:
```bash
docker run --rm \
--gpus device=0 \
--entrypoint python3 \
vllm/vllm-openai:latest \
-c "import vllm;print(vllm.__version__)"
```
输出:
0.26.0
测试 CUDA:
```bash
docker run --rm \
--gpus device=0 \
--entrypoint python3 \
vllm/vllm-openai:latest \
-c "
import torch
print(torch.cuda.is_available())
print(torch.cuda.get_device_name(0))
"
```
---
六、下载 Qwen3.5-35B-A3B
进入模型目录:
```bash
cd /mnt/sda2/wlg/llm/models
```
安装 ModelScope:
```bash
pip install modelscope
```
下载:
```bash
modelscope download \
--model Qwen/Qwen3.5-35B-A3B \
--local_dir Qwen3.5-35B-A3B
```
模型目录:
models
└── Qwen3.5-35B-A3B
模型大小约:
67GB
---
七、配置 Docker Compose
文件:
/mnt/sda2/wlg/llm/docker-compose.yml
内容:
```yaml
services:
qwen35-agent:
image: vllm/vllm-openai:latestcontainer_name: qwen35-agent
restart: always
gpus:
- driver: nvidia
device_ids: ["0"]
capabilities:
- gpuports:
- "18081:8000"volumes:
- ./models:/models
- ./logs:/logsshm_size: "32gb"
command:
- /models/Qwen3.5-35B-A3B
- --served-model-name
- qwen3.5-35b- --host
- 0.0.0.0- --port
- "8000"- --dtype
- bfloat16- --gpu-memory-utilization
- "0.85"- --max-model-len
- "16384"- --max-num-seqs
- "32"- --trust-remote-code
```
---
八、启动模型服务
进入目录:
```bash
cd /mnt/sda2/wlg/llm
```
启动:
```bash
docker compose up -d
```
查看:
```bash
docker ps
```
查看日志:
```bash
docker logs -f qwen35-agent
```
成功标志:
Loading safetensors checkpoint shards: 100%
Starting vLLM server on http://0.0.0.0:8000
Application startup complete
---
九、验证 GPU 使用情况
执行:
```bash
nvidia-smi
```
正常:
GPU0:
VLLM::EngineCore
约80GB显存
GPU1:
空闲
---
十、API接口测试
## 查看模型
浏览器:
http://服务器IP:18081/v1/models
返回:
```json
{
"id":"qwen3.5-35b"
}
```
---
## 测试聊天接口
注意:
聊天接口必须使用 POST。
示例:
```bash
curl -X POST \
http://服务器IP:18081/v1/chat/completions \
-H "Content-Type: application/json" \
-d '
{
"model":"qwen3.5-35b",
"messages":[
{
"role":"user",
"content":"你好,请介绍一下自己"
}
]
}'
```
---
十一、Agent调用方式
## Python OpenAI SDK
安装:
```bash
pip install openai
```
代码:
```python
from openai import OpenAIclient = OpenAI(
base_url="http://服务器IP:18081/v1",
api_key="EMPTY"
)response = client.chat.completions.create(
model="qwen3.5-35b",
messages=[
{
"role":"user",
"content":"设计一个遥感智能体"
}
]
)print(response.choices[0].message.content)
```
---
## LangGraph调用
安装:
```bash
pip install langchain-openai
```
示例:
```python
from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
model="qwen3.5-35b",
base_url="http://服务器IP:18081/v1",
api_key="EMPTY"
)
result = llm.invoke(
"分析遥感数据智能平台"
)
print(result.content)
```
---
十二、常见问题
## 1. 容器无法识别GPU
错误:
Failed to infer device type
原因:
Compose没有正确申请GPU。
解决:
使用:
```yaml
gpus:
- driver: nvidia
device_ids: ["0"]
capabilities:
- gpu
```
---
## 2. max_num_seqs错误
错误:
max_num_seqs exceeds available Mamba cache blocks
解决:
降低并发:
```yaml
--max-num-seqs
32
```
---
十三、运维命令
查看状态:
```bash
docker ps
```
查看日志:```bash
docker logs -f qwen35-agent
```
查看GPU:```bash
nvidia-smi
```
重启:```bash
docker compose restart
```
停止:```bash
docker compose down
```
启动:```bash
docker compose up -d
```
---
十四、最终部署结果
当前部署:
模型:
Qwen3.5-35B-A3B
推理:
vLLM 0.26
GPU:
RTX PRO 6000 Blackwell
运行:
GPU0
API:
http://服务器IP:18081/v1
模型名:
qwen3.5-35b
该服务可以直接作为企业 Agent 的本地大模型底座。
更多推荐
所有评论(0)