2026-04-28 19:33:24 +08:00
|
|
|
# AutoRound Quantization
|
|
|
|
|
|
|
|
|
|
## Overview
|
|
|
|
|
|
|
|
|
|
[AutoRound](https://github.com/intel/auto-round) produces pre-quantized
|
2026-07-12 19:22:16 -07:00
|
|
|
checkpoints for LLMs, VLMs, diffusion models, and world models. vLLM-Omni reads the
|
2026-04-28 19:33:24 +08:00
|
|
|
checkpoint's `config.json` and auto-detects
|
|
|
|
|
`quantization_config.quant_method = "auto-round"`.
|
|
|
|
|
|
|
|
|
|
AutoRound is static quantization: no `--quantization` flag is needed at
|
|
|
|
|
inference time when the checkpoint already contains the quantization config.
|
|
|
|
|
|
|
|
|
|
## Hardware Support
|
|
|
|
|
|
|
|
|
|
| Device | Support |
|
|
|
|
|
|--------|---------|
|
|
|
|
|
| NVIDIA Blackwell GPU (SM 100+) | ✅ |
|
|
|
|
|
| NVIDIA Ada/Hopper GPU (SM 89+) | ✅ |
|
|
|
|
|
| NVIDIA Ampere GPU (SM 80+) | ✅ |
|
|
|
|
|
| AMD ROCm | ⭕ |
|
|
|
|
|
| Intel XPU | ✅ |
|
|
|
|
|
| Ascend NPU | ❌ |
|
|
|
|
|
|
|
|
|
|
Legend: `✅` supported, `❌` unsupported, `⭕` not verified in this
|
|
|
|
|
guide. AutoRound is Intel-supported.
|
|
|
|
|
|
|
|
|
|
## Model Type Support
|
|
|
|
|
|
|
|
|
|
### Diffusion Model (Qwen-Image, Wan2.2)
|
|
|
|
|
|
|
|
|
|
| Model | Checkpoint | Scope | Scheme | Backend |
|
|
|
|
|
|-------|------------|-------|--------|---------|
|
|
|
|
|
| FLUX.1-dev | `vllm-project-org/FLUX.1-dev-AutoRound-w4a16` | Diffusion transformer | W4A16 | GPTQ-Marlin or Intel-supported AutoRound backend |
|
|
|
|
|
| Qwen-Image | Not listed | Diffusion transformer | W4A16 | Not validated |
|
2026-05-21 17:54:41 +08:00
|
|
|
| Wan2.2-I2V | `Intel/Wan2.2-I2V-A14B-Diffusers-int4-AutoRound` | Diffusion transformer | W4A16 | GPTQ-Marlin or Intel-supported AutoRound backend |
|
|
|
|
|
| Wan2.2-T2V | `Intel/Wan2.2-T2V-A14B-Diffusers-int4-AutoRound` | Diffusion transformer | W4A16 | GPTQ-Marlin or Intel-supported AutoRound backend |
|
|
|
|
|
| Wan2.2-TI2V | `Intel/Wan2.2-TI2V-5B-Diffusers-int4-AutoRound` | Diffusion transformer | W4A16 | GPTQ-Marlin or Intel-supported AutoRound backend |
|
2026-04-28 19:33:24 +08:00
|
|
|
|
2026-07-12 19:22:16 -07:00
|
|
|
### World Model (Cosmos3)
|
|
|
|
|
|
|
|
|
|
| Model | Checkpoint | Scope | Scheme | Backend |
|
|
|
|
|
|-------|------------|-------|--------|---------|
|
|
|
|
|
| Cosmos3-Nano | `Intel/Cosmos3-Nano-int4-AutoRound` | World-model transformer | W4A16 | GPTQ-Marlin or Intel-supported AutoRound backend |
|
|
|
|
|
| Cosmos3-Super | `Intel/Cosmos3-Super-int4-AutoRound` | World-model transformer | W4A16 | GPTQ-Marlin or Intel-supported AutoRound backend |
|
|
|
|
|
|
2026-04-28 19:33:24 +08:00
|
|
|
### Multi-Stage Omni/TTS Model (Qwen3-Omni, Qwen3-TTS)
|
|
|
|
|
|
|
|
|
|
| Model | Checkpoint | Scope | Scheme | Backend |
|
|
|
|
|
|-------|------------|-------|--------|---------|
|
|
|
|
|
| Qwen2.5-Omni-7B | `Intel/Qwen2.5-Omni-7B-int4-AutoRound` | Language-model stage | W4A16 | AutoRound |
|
|
|
|
|
| Qwen3-Omni-30B-A3B-Instruct | `Intel/Qwen3-Omni-30B-A3B-Instruct-int4-AutoRound` | Thinker language-model stage | W4A16 | AutoRound |
|
|
|
|
|
| Qwen3-TTS | Not listed | TTS language-model stage | W4A16 | Not validated |
|
|
|
|
|
|
|
|
|
|
AutoRound support is checkpoint-driven. A model is supported when its
|
|
|
|
|
checkpoint uses a compatible INC/AutoRound config and the target stage maps to
|
|
|
|
|
vLLM-Omni's runtime module names.
|
|
|
|
|
|
|
|
|
|
### Multi-Stage Diffusion Model (BAGEL, GLM-Image)
|
|
|
|
|
|
|
|
|
|
| Model | Scope | Status | Notes |
|
|
|
|
|
|-------|-------|--------|-------|
|
2026-05-28 15:19:06 +08:00
|
|
|
| GLM-Image | Diffusion transformer | ✅ | `Intel/GLM-Image-int4-AutoRound` |
|
2026-04-28 19:33:24 +08:00
|
|
|
| BAGEL | Checkpoint-defined diffusion or transformer stage | Not validated | Requires a compatible AutoRound checkpoint |
|
|
|
|
|
|
|
|
|
|
## Configuration
|
|
|
|
|
|
|
|
|
|
Python API:
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
from vllm_omni import Omni
|
|
|
|
|
from vllm_omni.inputs.data import OmniDiffusionSamplingParams
|
|
|
|
|
|
|
|
|
|
omni = Omni(model="vllm-project-org/FLUX.1-dev-AutoRound-w4a16")
|
|
|
|
|
|
|
|
|
|
outputs = omni.generate(
|
|
|
|
|
"A cat sitting on a windowsill",
|
|
|
|
|
OmniDiffusionSamplingParams(num_inference_steps=28),
|
|
|
|
|
)
|
|
|
|
|
outputs[0].save_images("output.png")
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
CLI:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
python examples/offline_inference/text_to_image/text_to_image.py \
|
|
|
|
|
--model vllm-project-org/FLUX.1-dev-AutoRound-w4a16 \
|
|
|
|
|
--prompt "A cat sitting on a windowsill" \
|
|
|
|
|
--num-inference-steps 28 \
|
|
|
|
|
--output outputs/flux_w4a16.png
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Parameters
|
|
|
|
|
|
|
|
|
|
| Field | Type | Description |
|
|
|
|
|
|-------|------|-------------|
|
|
|
|
|
| `quant_method` | str | Must be `"auto-round"` |
|
|
|
|
|
| `bits` | int | Quantized weight bit width, usually `4` |
|
|
|
|
|
| `group_size` | int | Quantization group size |
|
|
|
|
|
| `packing_format` | str | AutoRound packing format, for example `auto_round:auto_gptq` |
|
|
|
|
|
| `block_name_to_quantize` | str | Checkpoint block names that should map to runtime module names |
|
|
|
|
|
|
|
|
|
|
The checkpoint should contain a config like:
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"quantization_config": {
|
|
|
|
|
"quant_method": "auto-round",
|
|
|
|
|
"bits": 4,
|
|
|
|
|
"group_size": 128,
|
|
|
|
|
"sym": true,
|
|
|
|
|
"packing_format": "auto_round:auto_gptq",
|
|
|
|
|
"block_name_to_quantize": "transformer_blocks,single_transformer_blocks"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Validation and Notes
|
|
|
|
|
|
|
|
|
|
At load time, vLLM-Omni builds an `OmniINCConfig`, remaps checkpoint block names
|
|
|
|
|
to runtime module names, and selects the matching vLLM compute backend.
|
|
|
|
|
|
|
|
|
|
Example checkpoint creation:
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
auto-round \
|
|
|
|
|
--model black-forest-labs/FLUX.1-dev \
|
|
|
|
|
--scheme W4A16 \
|
|
|
|
|
--batch_size 1 \
|
|
|
|
|
--disable_opt_rtn \
|
|
|
|
|
--dataset coco2014 \
|
|
|
|
|
--iters 0
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Use the generated output directory directly as the `model` argument. See the
|
|
|
|
|
[AutoRound documentation](https://github.com/intel/auto-round) for all
|
|
|
|
|
available schemes and options.
|