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" | |
| ``` | |
| لاستخدام نواة Marlin للاستدلال الأسرع على CUDA، ثبّت `gptqmodel`: | |
| ```bash | |
| pip install "gptqmodel>=5.8.0" | |
| ``` | |
| ## تحميل نموذج مُكمَّم | |
| قم بتحميل نموذج AutoRound مُكمَّم مسبقًا عن طريق تمرير `AutoRoundConfig` إلى [from_pretrained()](/docs/diffusers/main/ar/api/models/overview#diffusers.ModelMixin.from_pretrained). يعمل هذا الأسلوب مع أي نموذج يُحمَّل عبر [Accelerate](https://hf.co/docs/accelerate/index) ويحتوي على طبقات `torch.nn.Linear`. | |
| يمكنك استخدام [PipelineQuantizationConfig](/docs/diffusers/main/ar/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] | |
| > يدعم AutoRound في Diffusers تحميل النماذج *المكمّمة مسبقًا* فقط. ولكي تُكمّم نموذجًا من الصفر، استخدم [AutoRound CLI أو واجهة Python API](https://github.com/intel/auto-round) مباشرة، ثم حمّل النتيجة باستخدام Diffusers. | |
| ## torch.compile | |
| يتوافق AutoRound مع [`torch.compile`](../optimization/fp16#torchcompile) للحصول على استدلال أسرع. يمكنك تجميع المحوّل الكمي (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 عدة محركات استنتاج لنماذج الكمّية على مستوى الأوزان فقط. يتحكم المحرك في النواة التي تتعامل مع فكّ الكمّية أثناء المرور الأمامي. اضبط معامل `backend` في `AutoRoundConfig` لاختيار أحد المحركات: | |
| | الواجهة الخلفية | القيمة | الجهاز | المتطلبات | ملاحظات | | |
| |---------|-------|--------|--------------|-------| | |
| | **Auto** | `"auto"` | أي | — | الافتراضي. يختار تلقائيًا أفضل واجهة خلفية متاحة. | | |
| | **PyTorch** | `"torch"` | CPU / CUDA | — | تنفيذ نقي باستخدام PyTorch. أوسع توافق. | | |
| | **تريتون** | `"tritonv2"` | CUDA | `triton` | نواة مبنية على Triton للاستدلال على وحدة معالجة الرسوميات. | | |
| | **ExllamaV2** | `"exllamav2"` | CUDA | `gptqmodel>=5.8.0` | أداء جيد لـ CUDA عبر نواة ExllamaV2. | | |
| | **Marlin** | `"marlin"` | CUDA | `gptqmodel>=5.8.0` | أفضل أداء لـ CUDA عبر نواة Marlin. | | |
| ```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 عدة مخططات: | |
| - **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** (جميع صيغ Q*_K وQ*_0 وQ*_1 التي يوفرها llamacpp مدعومة) | |
| - **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**(**ميزة بحثية، لا يوجد نواة حقيقية**، 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->per tensor ) | |
| - **FP8_STATIC**(**ميزة بحثية، لا يوجد نواة حقيقية**، data_type:fp8، act_data_type:fp8، group_size -1 -> لكل قناة، act_group_size=0-> لكل مخطط) | |
| علاوة على ذلك، يمكنك تعديل `group_size` و`bits` و`sym` وكثير من الإعدادات الأخرى التي تريدها، على الرغم من أنه قد لا توجد نواة حقيقية. | |
| ## الموارد | |
| - [نماذج AutoRound المُكمّاة مسبقًا على Hub](https://huggingface.co/models?search=autoround) | |
Xet Storage Details
- Size:
- 8.43 kB
- Xet hash:
- af2349cb850da4bd857c6fdc93e708537429033b4b2c8489c916a1bef3298f77
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.