英特尔 AutoRound INT4 量化模型配置教程 vLLM

在 DGX Spark 上部署 Qwen3.6-35B-INT4-AutoRound,兼顾精度与推理速度

目录

  1. 环境准备
  2. 构建优化镜像
  3. 下载 INT4 量化模型
  4. 启动容器
  5. 性能实测数据
  6. 设置开机自启
  7. 常见问题
💡 本文介绍如何在 NVIDIA DGX Spark 上部署基于英特尔 AutoRound 量化的 INT4 模型。 AutoRound 是一种自动舍入量化技术,相比传统 PTQ 方法精度损失更小,适合对精度敏感的场景。

1. 环境准备

确认 Docker 已正确识别 GPU:

docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi

2. 构建优化镜像

使用专为 GB10 架构优化的 vLLDocker 源码构建:

# 克隆源码
git clone https://github.com/eugr/spark-vllm-docker.git
cd spark-vllm-docker

# 构建镜像(约 15-20 分钟)
docker build -t vllm-node-tf5:latest .

该镜像包含了针对 ARM 架构和 Tensor 核心的底层优化。

3. 下载 INT4 量化模型

下载 Intel/Qwen3.6-35B-A3B-int4-AutoRound 模型(约 21 GB):

mkdir -p ~/models/qwen36-35b-int4-autoround

huggingface-cli download Intel/Qwen3.6-35B-A3B-int4-AutoRound \
  --local-dir ~/models/qwen36-35b-int4-autoround

4. 启动容器

这是最关键的一步。注意路径映射显存限制

docker run -d \
  --name vllm-qwen36 \
  --restart unless-stopped \
  --gpus all \
  -p 8000:8000 \
  -v ~/models/qwen36-35b-int4-autoround:/model/model_int4:rw \
  -e VLLM_ALLOW_LONG_MAX_MODEL_LEN=1 \
  -e TORCH_MATMUL_PRECISION=high \
  -e VLLM_MARLIN_USE_ATOMIC_ADD=1 \
  vllm-node-tf5:latest \
  vllm serve \
    /model/model_int4 \
    --host 0.0.0.0 \
    --port 8000 \
    --dtype bfloat16 \
    --max-model-len 32768 \
    --gpu-memory-utilization 0.35 \
    --load-format instanttensor \
    --trust-remote-code \
    --enable-auto-tool-choice \
    --tool-call-parser qwen3_xml \
    --reasoning-parser qwen3 \
    --enable-chunked-prefill \
    --enable-prefix-caching \
    --served-model-name qwen3-35b
⚠️ 显存限制
GB10 采用统一内存架构,模型与系统共用内存。务必设置 --gpu-memory-utilization 0.35(约 35%),避免 OOM 导致系统死机。如需更高性能可调至 0.5~0.7,但需预留足够系统内存。

关键参数解读

参数说明
--gpu-memory-utilization0.35限制显存使用比例,防止与系统争抢内存
--load-formatinstanttensor使用快速加载器,缩短冷启动时间
--dtypebfloat16计算精度
--max-model-len32768最大上下文长度
--tool-call-parserqwen3_xml解析 Qwen3 格式的 XML 工具调用

5. 性能实测数据

在 NVIDIA DGX Spark(GB10 架构,128GB 统一内存)上实测结果:

短文本生成(50 Tokens)

Prompt:"写一首关于春天的七言绝句"

轮次Tokens耗时速度
1500.92s54.3 tok/s
2500.91s54.9 tok/s
3500.93s53.8 tok/s
4500.91s54.9 tok/s
5500.92s54.3 tok/s

稳定在 54~55 tok/s,短文本响应约 0.9 秒。

长文本生成(512 Tokens)

Prompt:"详细分析 AI 对未来十年软件开发行业的影响"

轮次Tokens耗时速度
15127.53s68.0 tok/s
25127.33s69.9 tok/s
35127.55s67.8 tok/s
45127.33s69.9 tok/s
55127.53s68.0 tok/s

得益于 chunked prefill 优化,长文本速度提升至 68~70 tok/s,512 字输出仅需约 7.5 秒。

资源占用

指标数值
模型体积~21 GB(INT4 量化版)
运行时内存占用~50 GB(含模型权重 + KV Cache)
显存限制0.35(约 45 GB 可用)
并发能力支持多用户同时调用,KV Cache 自动管理

6. 设置开机自启

创建 Systemd 服务文件 /etc/systemd/system/vllm-qwen36.service

[Unit]
Description=vLLM Service for Qwen3.6-35B
After=docker.service
Requires=docker.service

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/docker start vllm-qwen36
ExecStop=/usr/bin/docker stop -t 10 vllm-qwen36

[Install]
WantedBy=multi-user.target

启用并启动服务:

sudo systemctl daemon-reload
sudo systemctl enable vllm-qwen36
sudo systemctl start vllm-qwen36

7. 常见问题

启动后日志报 "Model not found"

检查 Docker 路径映射是否正确。容器内路径 /model/model_int4 必须与 vllm serve 后的路径完全一致

显存不足 (OOM)

降低 --gpu-memory-utilization 至 0.30,或关闭其他占用内存的服务。

启动速度太慢

确保 --load-format instanttensor 参数生效,该参数可大幅缩短冷启动时间。

推理速度低于预期

检查是否有其他进程争抢 GPU 资源。可通过 nvidia-smi 查看实时显存占用。

← 返回 DGX Spark 教程列表