告别靠反复试错猜测 --gpu-memory-utilization、--tensor-parallel-size 和 --max-model-len。选择开源权重模型、量化精度、目标上下文长度与 GPU 拓扑,即可编译可直接用于生产的启动命令与容器编排清单。
vllm serve Qwen/Qwen3-32B \ --tensor-parallel-size 1 \ --max-model-len 32768 \ --max-num-seqs 16 \ --gpu-memory-utilization 0.95 \ --quantization fp8 \ --kv-cache-dtype fp8 \ --enable-prefix-caching \ --port 8000
python3 -m sglang.launch_server \ --model-path Qwen/Qwen3-32B \ --tp 1 \ --context-length 32768 \ --mem-fraction-static 0.95 \ --kv-cache-dtype fp8_e4m3 \ --max-running-requests 16 \ --host 0.0.0.0 \ --port 30000
# Save as Modelfile, then run: ollama create qwen3-32b-custom -f Modelfile FROM qwen3:32b PARAMETER num_ctx 32768 PARAMETER num_batch 512 PARAMETER flash_attn true # Environment variables for ollama serve: # OLLAMA_NUM_PARALLEL=16 OLLAMA_FLASH_ATTENTION=1 OLLAMA_KV_CACHE_TYPE=q8_0 ollama serve
llama-server \ -hf Qwen/Qwen3-32B:FP8_E4M3 \ --ctx-size 524288 \ --parallel 16 \ --n-gpu-layers 999 \ --flash-attn \ --cache-type-k q8_0 \ --cache-type-v q8_0 \ --host 0.0.0.0 --port 8080
services: vllm-qwen3-32b: image: vllm/vllm-openai:latest ipc: host ports: - "8000:8000" environment: - HUGGING_FACE_HUB_TOKEN=${HF_TOKEN:-} volumes: - ~/.cache/huggingface:/root/.cache/huggingface command: > --model Qwen/Qwen3-32B --tensor-parallel-size 1 --max-model-len 32768 --max-num-seqs 16 --gpu-memory-utilization 0.95 --quantization fp8 --kv-cache-dtype fp8 --enable-prefix-caching deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu]
apiVersion: apps/v1 kind: Deployment metadata: name: qwen3-32b-vllm labels: app: qwen3-32b-vllm spec: replicas: 1 selector: matchLabels: app: qwen3-32b-vllm template: metadata: labels: app: qwen3-32b-vllm spec: volumes: - name: dshm emptyDir: medium: Memory sizeLimit: 16Gi containers: - name: vllm image: vllm/vllm-openai:latest args: - "--model" - "Qwen/Qwen3-32B" - "--tensor-parallel-size" - "1" - "--max-model-len" - "32768" - "--max-num-seqs" - "16" - "--gpu-memory-utilization" - "0.95" - "--kv-cache-dtype" - "fp8" ports: - containerPort: 8000 volumeMounts: - name: dshm mountPath: /dev/shm resources: limits: nvidia.com/gpu: "1" memory: "48Gi" requests: nvidia.com/gpu: "1" cpu: "8" memory: "32Gi"
张量并行会将注意力头与 MLP 矩阵切分到多张 NVLink 或 PCIe 设备上,因此 --tensor-parallel-size 必须同时整除查询头数与 KV 头数,并预留 NCCL all-reduce 通信缓冲区与 CUDA 图捕获所需的显存余量。
当启用 KV 缓存量化(FP8 E4M3 或 Q8_0)时,VRAMLab 会自动输出 vLLM 的 --kv-cache-dtype fp8、SGLang 的 --kv-cache-dtype fp8_e4m3 以及 OLLAMA_KV_CACHE_TYPE=q8_0 / --cache-type-k 参数,在不损失权重精度的前提下将长上下文并发能力提升一倍。
粗略估算忽略了现代开源权重推理中的三大核心变量:GGUF 超块量化的缩放因子开销(Q4_K_M 实际平均为 4.85 bits/weight 而非 4.00)、长上下文窗口与连续批处理并发槽位带来的 KV 缓存膨胀,以及混合专家(MoE)路由机制——全部 671B 或 235B 参数必须常驻显存,但每生成一个 Token 仅读取 37B 或 22B 激活参数。