[Model] FP8 Support For Boogu-Image (#6925)
Signed-off-by: Dmaner <2663515256@qq.com>
This commit is contained in:
15 files changed
+809
-78
No files matched your search
@@ -0,0 +1,94 @@
|
||||
# TorchAO Quantization
|
||||
|
||||
## Overview
|
||||
|
||||
[TorchAO](https://github.com/pytorch/ao) provides quantization tools for
|
||||
PyTorch and supports both pre-quantized checkpoint loading and runtime
|
||||
quantization.
|
||||
|
||||
## Hardware Support
|
||||
|
||||
| Device | Support |
|
||||
| -------- | --------- |
|
||||
| NVIDIA Blackwell GPU (SM 100+) | ⭕ |
|
||||
| NVIDIA Ada GPU (SM 89) | ✅ |
|
||||
| NVIDIA Hopper GPU (SM 90) | ⭕ |
|
||||
| NVIDIA Ampere GPU (SM 80+) | ⭕ |
|
||||
| AMD ROCm | ⭕ |
|
||||
| Intel XPU | ⭕ |
|
||||
| Ascend NPU | ⭕ |
|
||||
|
||||
Legend: `✅` supported, `❌` unsupported, `⭕` not verified in this
|
||||
guide.
|
||||
|
||||
## Model Type Support
|
||||
|
||||
### Diffusion Model (Boogu-Image)
|
||||
|
||||
| Model | Checkpoint | Scope | Scheme |
|
||||
| --------------------- | ------------------------------------------------------------------ | -------------------------- | ----------------------- |
|
||||
| Boogu-Image Base/Edit | `Boogu/Boogu-Image-0.1-Base-fp8`, `Boogu/Boogu-Image-0.1-Edit-fp8` | Diffusion transformer only | FP8 weight-only (W8A16) |
|
||||
|
||||
## Configuration
|
||||
|
||||
Using Boogu-Image as an example:
|
||||
|
||||
```bash
|
||||
vllm serve Boogu/Boogu-Image-0.1-Base-fp8 \
|
||||
--omni \
|
||||
--port 8091 \
|
||||
--diffusion-quantization-config \
|
||||
'{"transformer":{"method":"torchao_float8_weight_only"}}'
|
||||
```
|
||||
|
||||
The equivalent command using the complete serialized TorchAO configuration is:
|
||||
|
||||
```bash
|
||||
vllm serve Boogu/Boogu-Image-0.1-Base-fp8 \
|
||||
--omni \
|
||||
--port 8091 \
|
||||
--diffusion-quantization-config \
|
||||
'{
|
||||
"transformer": {
|
||||
"method": "torchao",
|
||||
"quant_type": {
|
||||
"default": {
|
||||
"_type": "Float8WeightOnlyConfig",
|
||||
"_version": 2,
|
||||
"_data": {
|
||||
"weight_dtype": {
|
||||
"_type": "torch.dtype",
|
||||
"_data": "float8_e4m3fn"
|
||||
},
|
||||
"set_inductor_config": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
## Parameters
|
||||
|
||||
| Parameter | Type | Default | Description |
|
||||
| ------------ | ---- | ------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `method` | str | - | Use `torchao_float8_weight_only` for the serialized FP8 weight-only shorthand, or `torchao` with a full `quant_type` configuration. |
|
||||
| `quant_type` | dict | - | Complete serialized TorchAO configuration used with `method: "torchao"`. |
|
||||
|
||||
See TorchAO's [vLLM integration guide](https://docs.pytorch.org/ao/0.17/eager_tutorials/torchao_vllm_integration.html#configuration-system)
|
||||
for the serialized form and [workflow configs](https://docs.pytorch.org/ao/0.17/api_reference/api_ref_quantization.html#workflow-configs)
|
||||
for available configuration classes and parameters.
|
||||
|
||||
## Validation and Notes
|
||||
|
||||
At load time, vLLM-Omni builds a `TorchAOConfig` from
|
||||
`--diffusion-quantization-config`. For the Boogu-Image checkpoints documented
|
||||
here, indexed PyTorch `.bin` shards are loaded through `pt_weights_iterator`.
|
||||
|
||||
When a component map is used, only the components included in the
|
||||
configuration use TorchAO. Other components keep their own checkpoint and
|
||||
runtime settings.
|
||||
|
||||
Use either the `torchao_float8_weight_only` shorthand or the equivalent full
|
||||
`quant_type` configuration shown above. The checkpoint must already contain
|
||||
weights quantized with TorchAO.
|
||||
Reference in new issue
Block a user