大模型部署实战:Qwen3.5-9B-INT8 量化版 + vLLM 容器化指南

1. 模型简介

1.1 模型概述

本文部署的模型为 Qwen3.5-9B-INT8,是通义千问 3.5 系列中 9B 参数模型的 8-bit 量化版本。
Qwen3.5 本身是阿里通义实验室推出的原生多模态基础模型家族,从零开始在交错的文本、图像和视频 token 上训练而成。INT8 量化版本在保持较高精度的同时,显著降低了显存和存储需求,更适合在资源受限的环境下部署。

1.2 核心亮点

  • 统一视觉语言基础:在多模态 token 上进行早期融合训练,在推理、编程、智能体和视觉理解等基准测试中超越 Qwen3-VL 模型。
  • 高效混合架构:采用 3:1 的混合注意力堆叠——每 3 个 Gated DeltaNet(线性注意力)层搭配 1 个 Gated Attention(全注意力)层,避免全二次方代价处理长上下文和视觉 token。
  • 超长上下文:原生支持 262,144 个 token 的上下文长度,并可扩展至约 1,010,000 个 token。
  • 全球语言覆盖:支持扩展至 201 种语言和方言。

1.3 模型参数

参数项 取值
模型类型 带视觉编码器的因果语言模型
参数量 90 亿 (9B)
隐藏维度 4096
层数 32 层
词嵌入大小 248,320(含填充)
FFN 中间维度 12,288
Gated DeltaNet 32 个 V 注意力头 + 16 个 QK 注意力头,头维度 128
Gated Attention 16 个 Q 头 + 4 个 KV 头,头维度 256
旋转位置编码维度 64
原生上下文长度 262,144 token
训练阶段 预训练 + 后训练

量化特性
INT8 量化版本对 Transformer 块内线性算子的权重和激活进行了 INT8 量化。BF16 原始模型权重约 19.3 GB,INT8 量化后降至约 14.0 GB,磁盘占用减少约 27%。视觉编码器、token 嵌入和线性注意力层保持 BF16 不量化。

2. 部署环境要求

2.1 硬件要求(GPU 部署)

硬件 最低要求 推荐配置
GPU NVIDIA 显卡,支持 CUDA 11.7+ RTX 3060 (12GB) / RTX 3090 / RTX 4090 / A100 / V100
显存 8‑10 GB(INT8 量化版本) ≥ 12 GB(更流畅)
内存 8‑10 GB ≥ 32 GB(全量加载场景)
CPU x86_64 架构,支持 AVX2 指令集 4 核以上
操作系统 Linux 64 位(推荐 Ubuntu 20.04+)

特别说明

  • RTX 3060 (12GB) 即可流畅运行 INT8 版本的 Qwen3.5-9B。
  • 若使用 vLLM 等推理框架,建议显存 ≥ 16GB。

2.2 软件依赖

  • CUDA 11.7+(GPU 加速场景)
  • cuDNN 8.2+
  • Python 3.8+
  • PyTorch 2.0.1+
  • Transformers 4.30.2+
  • vLLM(推荐用于 INT8 量化模型的高效推理)
  • 可选加速库:causal_conv1dfla 包可加速 DeltaNet 路径,若无则回退到较慢的 PyTorch 操作

2.3 部署方式(使用 vLLM)

多模态(视觉+文本)

vllm serve RedHatAI/Qwen3.5-9B-quantized.w8a8 --reasoning-parser qwen3 --max-model-len 262144
```markdown
##### 纯文本(更低显存占用)
```bash
vllm serve RedHatAI/Qwen3.5-9B-quantized.w8a8 --reasoning-parser qwen3 --max-model-len 262144 --language-model-only

Qwen3.5-9B-INT8 是一个高性价比的多模态大模型,通过 INT8 量化在精度损失极小的情况下将模型体积从 19.3GB 压缩至 14GB。仅需 8-10GB 显存(如 RTX 3060 12GB)即可流畅运行,配合 vLLM 等高效推理框架,非常适合个人开发者、边缘计算及资源受限的生产环境部署。

本地机器配置

查看 GPU 信息:

nvidia-smi

输出关键字段说明:

  • GPU:显卡编号
  • Name:显卡型号
  • Memory-Usage:显存已用 / 总量(如 32768MiB)
  • GPU-Util:GPU 算力利用率
  • Temperature:显卡温度(>85°C 告警)
  • Process:占用 GPU 的进程 PID、用户、显存

部署

硬盘挂载

将大模型部署在挂载盘上(可理解为 Windows 中将大软件安装到 D 盘或 E 盘,避免 C 盘资源不足)。

  1. 查看硬盘信息,确认 vdb 存在

    lsblk
    

    会看到树形列表:

    • vda —— 系统盘,带 vda1 挂载在 /
    • vdb —— 新硬盘,下面没有数字分区,MOUNTPOINT 空白表示未挂载
  2. 创建挂载文件夹 /data
    如果没有 /data 目录,手动创建:

    mkdir -p /data
    
  3. 格式化硬盘

    警告:只要 vdb 里面有数据,执行此命令会全部删除,仅新硬盘才需操作。

    • XFS:Linux 主流稳定文件系统,云服务器推荐
      mkfs.xfs /dev/vdb
      
    • 如需 ext4 格式,使用 mkfs.ext4 /dev/vdb
  4. 临时挂载(测试用,重启服务器会失效)

    • 执行挂载命令,将硬盘绑定到 /data
      mount /dev/vdb /data
      
    • 验证是否挂载成功:
      df -h
      
      输出列表里能看到 /dev/vdb 对应 Mounted on /data 即成功。
  5. 获取硬盘 UUID(用于永久挂载)
    临时挂载重启失效,需要写入系统配置文件 /etc/fstab

    5.1 获取硬盘 UUID

    blkid /dev/vdb
    

    输出类似:

    /dev/vdb: UUID="abc123-def4-5678-90xyz" TYPE="xfs"
    

    复制双引号里的 UUID 字符串。

    5.2 编辑开机挂载配置文件

    vi /etc/fstab
    
    • i 进入编辑模式
    • 拉到文件最底部,粘贴一行(将 UUID 换成自己的):
      UUID=abc123-def4-5678-90xyz  /data  xfs  defaults  0 0
      
      字段说明:
      1. UUID:硬盘唯一编号
      2. /data:挂载目录
      3. xfs:硬盘格式(与格式化时一致,ext4 则写 ext4)
      4. defaults:默认读写权限
      5. 0 0:开机不用磁盘自检
    • Esc,输入 :wq 回车,保存退出文件。

Docker 加载大模型

docker load -i vllm.tar

启动 vLLM 模型

创建模型目录:

mkdir -p /data/soft/models/qwen3_5

启动容器:

docker run -d \
  --gpus all \
  --name qwen3.5-9b-optimized \
  --ipc=host \
  --shm-size=8g \
  -p 10070:8000 \
  -v /data/soft/models/qwen3_5:/model:ro \
  vllm/vllm-openai:v0.18.1-x86_64 \
  --model /model \
  --served-model-name Qwen3.5-9B-GPTQ-4bit \
  --quantization gptq \
  --dtype auto \
  --max-model-len 131072 \
  --tensor-parallel-size 1 \
  --gpu-memory-utilization 0.85 \
  --max-num-seqs 24 \
  --max-num-batched-tokens 8192 \
  --enable-chunked-prefill \
  --enable-prefix-caching \
  --block-size 64 \
  --host 0.0.0.0 \
  --port 8000 \
  --reasoning-parser qwen3

参数说明

  1. -d:后台守护进程运行容器,不占用当前终端,返回容器 ID,关闭终端服务不会停止。
  2. --gpus all:将宿主机全部 NVIDIA 显卡直通给容器,vLLM 推理必须使用 GPU,缺少会 CPU 慢跑/OOM;只需单卡可改为 --gpus 0,即仅挂载 0 号显卡。
  3. --name qwen3.5-9b-optimized:给容器自定义名称,后续操作不用记 ID。
  4. --ipc=host:IPC 进程通信模式,使用宿主机共享内存命名空间。
  5. --shm-size=8g:扩大容器共享内存。
  6. -p 10070:8000:端口映射,宿主机端口 10070,容器内部 8000 端口。
  7. -v /data/soft/models/qwen3_5:/model:ro:宿主机模型目录挂载到容器内 /modelro 表示 read-only 只读挂载。
  8. vllm/vllm-openai:v0.18.1-x86_64:使用官方 vLLM 镜像,版本 v0.18.1,x86_64 架构,内置 OpenAI 兼容 API 服务,开箱即用。

常见报错

  1. 内存不够,常见报错单词 memory error
  2. 端口冲突。
  3. 启动需要将近 30 分钟,可以使用以下命令查看日志:
    docker logs -f --tail 200 <容器ID或名称>
    
Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐