Buckets:
| # AutoRound | |
| [AutoRound](https://github.com/intel/auto-round) は高度な量子化ツールキットです。符号勾配降下法を活用し、チューニングを最小限に抑えながら、超低ビット幅(2〜4ビット)で高い精度を実現するとともに、幅広いハードウェアとの互換性を備えています。詳細については、論文 [SignRoundV1](https://arxiv.org/pdf/2309.05516) および [SignRoundV2](https://arxiv.org/abs/2512.04746) をご覧ください。 | |
| `auto-round`(バージョン ≥ 0.13.0)をインストールします: | |
| ```bash | |
| pip install "auto-round>=0.13.0" | |
| ``` | |
| より高速な CUDA 推論のために Marlin カーネルを使用するには、`gptqmodel` をインストールしてください。 | |
| ```bash | |
| pip install "gptqmodel>=5.8.0" | |
| ``` | |
| ## 量子化モデルの読み込み | |
| `AutoRoundConfig`を[from_pretrained()](/docs/diffusers/v0.43.0/ja/api/models/overview#diffusers.ModelMixin.from_pretrained)に渡すことで、事前量子化済みのAutoRoundモデルを読み込みます。このメソッドは、[Accelerate](https://hf.co/docs/accelerate/index)経由で読み込めるモデルであれば、`torch.nn.Linear`レイヤーを持つ限りすべてで動作します。 | |
| [PipelineQuantizationConfig](/docs/diffusers/v0.43.0/ja/api/quantization#diffusers.PipelineQuantizationConfig) を使用して、パイプラインの特定のコンポーネントを量子化できます: | |
| ```python | |
| import torch | |
| from diffusers import DiffusionPipeline, PipelineQuantizationConfig, AutoRoundConfig | |
| pipeline_quant_config = PipelineQuantizationConfig( | |
| quant_mapping={"transformer": AutoRoundConfig(backend="auto")} | |
| ) | |
| pipe = DiffusionPipeline.from_pretrained( | |
| "INCModel/Z-Image-W4A16-AutoRound", | |
| quantization_config=pipeline_quant_config, | |
| dtype=torch.bfloat16, | |
| device_map="cuda", # or "mps", "xpu", "cpu" | |
| ) | |
| image = pipe("a cat holding a sign that says hello").images[0] | |
| image.save("output.png") | |
| ``` | |
| または、量子化されたモデルコンポーネントを直接読み込みます: | |
| ```python | |
| import torch | |
| from diffusers import ZImageTransformer2DModel, ZImagePipeline, AutoRoundConfig | |
| model_id = "INCModel/Z-Image-W4A16-AutoRound" | |
| quantization_config = AutoRoundConfig(backend="auto") | |
| transformer = ZImageTransformer2DModel.from_pretrained( | |
| model_id, | |
| subfolder="transformer", | |
| quantization_config=quantization_config, | |
| dtype=torch.bfloat16, | |
| device_map="cuda", # or "mps", "xpu", "cpu" | |
| ) | |
| pipe = ZImagePipeline.from_pretrained( | |
| model_id, | |
| transformer=transformer, | |
| dtype=torch.bfloat16, | |
| device_map="cuda", | |
| ) | |
| image = pipe("a cat holding a sign that says hello").images[0] | |
| image.save("output.png") | |
| ``` | |
| > [!NOTE] | |
| > Diffusers における AutoRound は、*事前量子化済み*モデルの読み込みのみをサポートしています。モデルをゼロから量子化するには、[AutoRound CLI または Python API](https://github.com/intel/auto-round)を直接使用し、その結果を Diffusers で読み込んでください。 | |
| ## torch.compile | |
| AutoRound は、より高速な推論のために [`torch.compile`](../optimization/fp16#torchcompile) と互換性があります。パフォーマンスを向上させるために、量子化された Transformer(DiT)をコンパイルできます。 | |
| ```python | |
| import torch | |
| from diffusers import DiffusionPipeline, PipelineQuantizationConfig, AutoRoundConfig | |
| pipeline_quant_config = PipelineQuantizationConfig( | |
| quant_mapping={"transformer": AutoRoundConfig(backend="auto")} | |
| ) | |
| pipe = DiffusionPipeline.from_pretrained( | |
| "INCModel/Z-Image-W4A16-AutoRound", | |
| quantization_config=pipeline_quant_config, | |
| dtype=torch.bfloat16, | |
| device_map="cuda", # or "mps", "xpu", "cpu" | |
| ) | |
| pipe.transformer = torch.compile(pipe.transformer, mode="default", fullgraph=False) | |
| ``` | |
| ## バックエンド | |
| AutoRound は、Weight-only 量子化モデルに対して複数の推論バックエンドをサポートしています。バックエンドは、フォワードパス中のデクォアンティゼーションをどのカーネルが処理するかを制御します。`AutoRoundConfig` の `backend` パラメータを設定して、バックエンドを選択します。 | |
| | バックエンド | 値 | デバイス | 要件 | 注記 | | |
| |---------|-------|--------|--------------|-------| | |
| | **Auto** | `"auto"` | すべて | — | デフォルト。利用可能な最適なバックエンドを自動的に選択します。 | | |
| | **PyTorch** | `"torch"` | CPU / CUDA | — | 純粋なPyTorch実装。最も広い互換性。 | | |
| | **Triton** | `"tritonv2"` | CUDA | `triton` | GPU推論用のTritonベースのカーネル。 | | |
| | **ExllamaV2** | `"exllamav2"` | CUDA | `gptqmodel>=5.8.0` | ExllamaV2カーネルによる優れたCUDAパフォーマンス。 | | |
| | **Marlin** | `"marlin"` | CUDA | `gptqmodel>=5.8.0` | Marlinカーネルによる最高のCUDAパフォーマンス。 | | |
| ```python | |
| from diffusers import AutoRoundConfig | |
| # Auto-select (default) | |
| config = AutoRoundConfig() | |
| # Explicit Triton backend for CUDA | |
| config = AutoRoundConfig(backend="tritonv2") | |
| # Marlin backend for best CUDA performance (requires gptqmodel>=5.8.0) | |
| config = AutoRoundConfig(backend="marlin") | |
| # ExllamaV2 backend for good CUDA performance (requires gptqmodel>=5.8.0) | |
| config = AutoRoundConfig(backend="exllamav2") | |
| # PyTorch backend for CPU/CUDA inference | |
| config = AutoRoundConfig(backend="torch") | |
| ``` | |
| ## 保存と読み込み | |
| AutoRoundでは、モデルの量子化にデータキャリブレーションが必要です。これはDiffusersの外側で、[AutoRoundライブラリ](https://github.com/intel/auto-round)を直接使用して行います。 | |
| ```python | |
| from auto_round import AutoRound | |
| autoround = AutoRound( | |
| "Tongyi-MAI/Z-Image", | |
| scheme="W4A16", # W4G128 symmetric | |
| enable_torch_compile=True, | |
| num_inference_steps=3, | |
| guidance_scale=7.5, | |
| dataset="coco2014", | |
| ) | |
| autoround.quantize_and_save("Z-Image-W4A16-AutoRound") | |
| ``` | |
| キャリブレーションのオプションの詳細については、[AutoRoundのドキュメント](https://github.com/intel/auto-round)を参照してください。 | |
| ```python | |
| import torch | |
| from diffusers import ZImageTransformer2DModel, ZImagePipeline | |
| model_id = "INCModel/Z-Image-W4A16-AutoRound" | |
| # The inference backend will be automatically selected. | |
| pipe = ZImagePipeline.from_pretrained( | |
| model_id, | |
| dtype=torch.bfloat16, | |
| device_map="cuda", # or "mps", "xpu", "cpu" | |
| ) | |
| image = pipe("a cat holding a sign that says hello").images[0] | |
| image.save("output.png") | |
| ``` | |
| ### サポートされている量子化スキーム | |
| AutoRoundは複数のSchemesをサポートしています: | |
| - **W4A16**(bits:4,group_size:128,sym:True,act_bits:16) | |
| - **W8A16**(bits:8,group_size:128,sym:True,act_bits:16) | |
| - **W3A16**(bits:3,group_size:128,sym:True,act_bits:16) | |
| - **W2A16**(bits:2,group_size:128,sym:True,act_bits:16) | |
| - **GGUF:Q4_K_M**(llamacpp が提供するすべての Q*_K、Q*_0、Q*_1 はサポートされています) | |
| - **NVFP4**(実験的な機能です。`llm_compressor`形式へのエクスポートを推奨します。data_type nvfp4,act_data_type nvfp4,static_global_scale,group_size 16) | |
| - **MXFP4**(**研究機能、実用カーネルなし**、標準 MXFP4、data_type mxfp、act_data_type mxfp、bits 4、act_bits 4、group_size 32) | |
| - **MXINT4**(**研究機能、実用カーネルなし**、Standard MXINT4、data_type mxint、act_data_type mxint、bits 4、act_bits 4、group_size 32) | |
| - **MXFP4_RCEIL**(**研究機能、実装されたカーネルなし**、NVIDIA のバリアント、data_type mxfp、act_data_type mxfp_rceil、bits 4、act_bits 4、group_size 32) | |
| - **MXFP8**(**研究機能、実装済みカーネルなし**、data_type mxfp、act_data_type mxfp_rceil、group_size 32) | |
| - **FPW8A16**(**研究機能、実装済みカーネルなし**、data_type fp8、group_size 0->テンソルごと) | |
| - **FP8_STATIC**(**研究段階の機能、実装済みカーネルなし**、data_type:fp8、act_data_type:fp8、group_size -1 ->チャンネルごと、act_group_size=0->テンソルごと) | |
| また、`group_size`、`bits`、`sym` など、必要に応じて多くの設定を変更できますが、実際には対応するカーネルが存在しない可能性があります。 | |
| ## リソース | |
| - [Hub上の事前量子化済みAutoRoundモデル](https://huggingface.co/models?search=autoround) | |
Xet Storage Details
- Size:
- 8.5 kB
- Xet hash:
- 06f25bb79ec57112482a0a62a434e42d84b2d18c25f1bd04f3a30b7513394f3f
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.