概述

我的机器是1x3090ti 24GB,使用的模型是llmfan46/Qwen3.6-27B-uncensored-heretic-v2-Native-MTP-Preserved-GPTQ-Int4 Qwen3.6-27b的民间去审查版

原始模型地址: https://huggingface.co/llmfan46/Qwen3.6-27B-uncensored-heretic-v2-Native-MTP-Preserved

GPTQ-Int4模型地址: https://huggingface.co/llmfan46/Qwen3.6-27B-uncensored-heretic-v2-Native-MTP-Preserved-GPTQ-Int4
模型文件19.1GB

我使用的指令是:

docker run --rm --gpus all -p 8000:8000 --shm-size 8g -v E:\models:/models vllm/vllm-openai --model /models/qwen3.6 --host 0.0.0.0 --port 8000 --gpu-memory-utilization 0.90 --quantization gptq --max-model-len 4096 --dtype auto --kv-cache-dtype fp8 --max-num-seqs 1 --tool-call-parser qwen3_xml --enable-auto-tool-choice

命令解析

docker run 单行命令,直接启动镜像
-p 端口映射
--shm-size 交换内存,不清楚工作原理,官方使用8g
-v 文件目录映射,一定要把放模型的根目录映射到models
文件树举例如下:

+ models(本地目录)
  +qwen3.6
    -xxx.safetensors
    -...

--host --port 地址与端口号 0.0.0.0,8000

vllm配置参数

gpu-memory-utilization 不清楚工作原理,但0.85以下会无法启动
quantization 显式注明gptq
max-model-len 最长上下文,应该会预留内存,开太大会炸
dtype 模型量化格式,可以压缩显存占用。摘自官方文档

可选值: auto, half, float16, bfloat16, float, float32

模型权重和激活的数据类型。

"auto": 对于 FP32 和 FP16 模型,使用 FP16 精度;对于 BF16 模型,使用 BF16 精度。
"half": 使用 FP16 精度。推荐用于 AWQ 量化。
"float16": 与 "half" 相同。
"bfloat16": 在精度和范围之间取得平衡。
"float": FP32 精度的简写。
"float32": 使用 FP32 精度。

kv-cache-dtype kv-cache量化格式,可以压缩显存占用。摘自官方文档

可选值: auto, fp8, fp8_e5m2, fp8_e4m3

KV 缓存存储的数据类型。如果为 "auto",则使用模型的数据类型。CUDA 11.8+ 支持 fp8(即 fp8_e4m3)和 fp8_e5m2。ROCm (AMD GPU) 支持 fp8(即 fp8_e4m3)。

默认值: "auto"

max-num-seqs 并发数,影响显存占用
tool-call-parser qwen3.5/qwen3.6使用qwen3_xml。理论上与vllm版本有关,但尚未遇到问题
enable-auto-tool-choice 要使用tool必须打开

Qwen3.6 jinja2模板fix

Qwen3.6的jinja2官方模板有一点小问题,无法调用工具,可以替换为下面这个github repo中的:

https://github.com/allanchan339/vLLM-Qwen3-3.5-3.6-chat-template-fix

具体无法调用工具的症状测试为,没有根据调用,幻觉虚空调用工具并编造答案

实测体验

使用的命令是文章开头的那个
实测无负载下显存占用21.3GB
平均输入速度平均在120tokens/s,范围分布在110-130tokens/s
平均输出速度平均在9tokens/s,范围分布比较大,5-20tokens/s