Buckets:
| <meta charset="utf-8" /><meta name="hf:doc:metadata" content="{"title":"Nunchaku Lite","local":"nunchaku-lite","sections":[{"title":"تثبيت نواة CUDA","local":"install-the-cuda-kernels","sections":[],"depth":2},{"title":"تحميل خط أنابيب مُكمَّم","local":"load-a-quantized-pipeline","sections":[],"depth":2},{"title":"أنواع التكميم المدعومة","local":"supported-quantization-types","sections":[],"depth":2},{"title":"NunchakuLiteQuantizationConfig","local":"nunchakulitequantizationconfig","sections":[],"depth":2},{"title":"النواة المدمجة","local":"fused-kernels","sections":[],"depth":2},{"title":"torch.compile","local":"torchcompile","sections":[],"depth":2},{"title":"الموارد","local":"resources","sections":[],"depth":2}],"depth":1}"/> | |
| <link href="/docs/diffusers/main/en/_app/immutable/entry/start.U6TUchwJ.js" rel="modulepreload"> | |
| <link href="/docs/diffusers/main/en/_app/immutable/chunks/yxSHiGDF.js" rel="modulepreload"> | |
| <link href="/docs/diffusers/main/en/_app/immutable/chunks/CPfOwUO_.js" rel="modulepreload"> | |
| <link href="/docs/diffusers/main/en/_app/immutable/entry/app.3qKhPoX-.js" rel="modulepreload"> | |
| <link href="/docs/diffusers/main/en/_app/immutable/chunks/BYe-f74j.js" rel="modulepreload"> | |
| <link href="/docs/diffusers/main/en/_app/immutable/chunks/DnVIJfC5.js" rel="modulepreload"> | |
| <link href="/docs/diffusers/main/en/_app/immutable/chunks/DsnmJJEf.js" rel="modulepreload"> | |
| <link href="/docs/diffusers/main/en/_app/immutable/chunks/D32hXVzh.js" rel="modulepreload"> | |
| <link href="/docs/diffusers/main/en/_app/immutable/nodes/0.DqpuBF3n.js" rel="modulepreload"> | |
| <link href="/docs/diffusers/main/en/_app/immutable/chunks/Dyp9xKq8.js" rel="modulepreload"> | |
| <link href="/docs/diffusers/main/en/_app/immutable/nodes/17.BtT_NXXy.js" rel="modulepreload"> | |
| <link href="/docs/diffusers/main/en/_app/immutable/chunks/Dk44y1gU.js" rel="modulepreload"> | |
| <!--p4df5g--><meta name="hf:doc:metadata" content="{"title":"Nunchaku Lite","local":"nunchaku-lite","sections":[{"title":"Install the CUDA kernels","local":"install-the-cuda-kernels","sections":[],"depth":2},{"title":"Load a quantized pipeline","local":"load-a-quantized-pipeline","sections":[],"depth":2},{"title":"Supported quantization types","local":"supported-quantization-types","sections":[],"depth":2},{"title":"NunchakuLiteQuantizationConfig","local":"nunchakulitequantizationconfig","sections":[],"depth":2},{"title":"Fused kernels","local":"fused-kernels","sections":[],"depth":2},{"title":"torch.compile","local":"torchcompile","sections":[],"depth":2},{"title":"Resources","local":"resources","sections":[],"depth":2}],"depth":1}"/><!----> | |
| <link href="/docs/diffusers/main/en/_app/immutable/assets/0.tn0RQdqM.css" rel="modulepreload"> <!--[--><!--[0--><!--[--><!--[0--><!--[--><p></p> <div class="items-center shrink-0 min-w-[100px] max-sm:min-w-[50px] justify-end ml-auto flex" style="float: inline-end; margin-inline-start: 10px; display: inline-flex; position: relative; z-index: 10;"><div dir="ltr" class="inline-flex rounded-md max-sm:rounded-sm"><button class="inline-flex items-center gap-1 h-7 max-sm:h-7 px-2 max-sm:px-1.5 text-sm font-medium text-gray-800 border border-r-0 rounded-l-md max-sm:rounded-l-sm border-gray-200 bg-white hover:shadow-inner dark:border-gray-850 dark:bg-gray-950 dark:text-gray-200 dark:hover:bg-gray-800" aria-live="polite"><span class="inline-flex items-center justify-center rounded-md p-0.5 max-sm:p-0 hover:text-gray-800 dark:hover:text-gray-200"><svg class="sm:size-3.5 size-3" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----></span> <span dir="auto">Copy page</span></button> <button class="inline-flex items-center justify-center w-6 max-sm:w-5 h-7 max-sm:h-7 disabled:pointer-events-none text-sm text-gray-500 hover:text-gray-700 dark:hover:text-white rounded-r-md max-sm:rounded-r-sm border border-l transition border-gray-200 bg-white hover:shadow-inner dark:border-gray-850 dark:bg-gray-950 dark:text-gray-200 dark:hover:bg-gray-800" aria-haspopup="menu" aria-expanded="false" aria-label="Open copy menu"><svg class="transition-transform text-gray-400 overflow-visible sm:size-3.5 size-3 rotate-0" width="1em" height="1em" viewBox="0 0 12 7" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1 1L6 6L11 1" stroke="currentColor"></path></svg><!----></button></div> <!--[-1--><!--]--></div><!----> <!--[0--><h1 class="relative group"><a id="nunchaku-lite" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#nunchaku-lite"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span><!---->Nunchaku Lite<!----></span></h1><!--]--><!----> <p>Nunchaku Lite هو واجهة خلفية للكمّية (quantization) لتحميل نقاط التفتيش المُكمّاة مسبقًا في Diffusers. أنشئ نقاط تفتيش متوافقة باستخدام <a href="https://github.com/rootonchair/diffuse-compressor" rel="nofollow">diffuse-compressor</a>. يقوم بتكميم مُحوِّل (transformer) وتصديره، ثم يجمعه كخط أنابيب (pipeline) في Diffusers.</p> <p>يعتمد Nunchaku Lite على محرك الاستدلال الأصلي <a href="https://github.com/nunchaku-ai/nunchaku" rel="nofollow">Nunchaku</a>، ومكتبة التكميم <a href="https://github.com/nunchaku-ai/deepcompressor" rel="nofollow">DeepCompressor</a>، وورقة <a href="https://arxiv.org/abs/2411.05007" rel="nofollow">SVDQuant</a>.</p> <!--[1--><h2 class="relative group"><a id="install-the-cuda-kernels" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#install-the-cuda-kernels"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span><!---->تثبيت نواة CUDA<!----></span></h2><!--]--><!----> <p>يوفر حزمة kernels نواة CUDA المُحسّنة، والتي يتم تحميلها تلقائيًا. ثبّتها أولًا.</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> تم النسخ</div><!----></button><!----></div> <pre class="language-bash "><!---->pip install -U kernels<!----></pre></div><!----> <p>تحمّل Nunchaku Lite نواتها من مستودع <a href="https://huggingface.co/kernels/rootonchair/nunchaku-lite-kernels" rel="nofollow"><code>rootonchair/nunchaku-lite-kernels</code></a>، حيث أن ناشره ليس ناشر نواة موثوقًا به على Hub. يؤدي تحميله إلى تنزيل وتنفيذ أكواد من Hub، لذا يتطلب Diffusers منك الموافقة صراحةً على ذلك عن طريق تعيين <code>DIFFUSERS_TRUST_REMOTE_KERNELS=true</code>. راجع <a href="../optimization/attention_backends#trusting-remote-kernels">الثقة في النوى البعيدة</a> للتفاصيل.</p> <!--[1--><h2 class="relative group"><a id="load-a-quantized-pipeline" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#load-a-quantized-pipeline"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span><!---->تحميل خط أنابيب مُكمَّم<!----></span></h2><!--]--><!----> <p>حمّل خط الأنابيب المُكمَّم مسبقًا باستخدام <a href="/docs/diffusers/main/ar/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained">from_pretrained()</a>، حيث يقرأ إعدادات الكمّ من <code>config.json</code>.</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> تم النسخ</div><!----></button><!----></div> <pre class="language-python "><!----><span class="hljs-keyword">import</span> torch | |
| <span class="hljs-keyword">from</span> diffusers <span class="hljs-keyword">import</span> DiffusionPipeline | |
| model_id = <span class="hljs-string">"rootonchair/ERNIE-Image-Turbo-nunchaku-lite-nvfp4"</span> | |
| pipe = DiffusionPipeline.from_pretrained( | |
| model_id, dtype=torch.bfloat16, | |
| ).to(<span class="hljs-string">"cuda"</span>) <span class="hljs-comment"># or "mps", "xpu", "cpu"</span> | |
| prompt = <span class="hljs-string">"A modern red armchair in a quiet studio, soft window light, realistic product photography"</span> | |
| image = pipe( | |
| prompt=prompt, | |
| height=<span class="hljs-number">1024</span>, | |
| width=<span class="hljs-number">1024</span>, | |
| num_inference_steps=<span class="hljs-number">8</span>, | |
| guidance_scale=<span class="hljs-number">1.0</span>, | |
| ).images[<span class="hljs-number">0</span>] | |
| image.save(<span class="hljs-string">"ernie-image-turbo-nunchaku-lite.png"</span>)<!----></pre></div><!----> <blockquote class="note"><p>يجب أن يطابق state dict المُصدَّر بنية نموذج Diffusers المستهدف تمامًا. على سبيل المثال، لن يتم تحميل نقطة تفتيش (checkpoint) تم تكميمها باستخدام إسقاطات QKV مدمجة في إعدادات نموذج يتوقع وحدات إسقاط منفصلة لكل من Q وK وV.</p></blockquote> <!--[1--><h2 class="relative group"><a id="supported-quantization-types" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#supported-quantization-types"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span><!---->أنواع التكميم المدعومة<!----></span></h2><!--]--><!----> <p>يدعم Nunchaku Lite صيغ طبقات الخطي المُكمّمة التالية.</p> <blockquote class="tip"><p>استخدم <code>nvfp4</code> على وحدات معالجة الرسومات Blackwell. قد يكون تشغيل نقاط التفتيش <code>int4</code> على Blackwell أبطأ من <code>nvfp4</code>.</p></blockquote> <p>تدعم نواة CUDA حاليًا معماريات وحدات معالجة الرسوميات من NVIDIA التالية:</p> <ul><li><code>sm_75</code> (تورينغ، على سبيل المثال RTX 2080)</li> <li><code>sm_80</code> (Ampere، على سبيل المثال A100)</li> <li><code>sm_86</code> (Ampere، على سبيل المثال RTX 3090 و RTX A6000)</li> <li><code>sm_89</code> (Ada، على سبيل المثال RTX 4090)</li> <li><code>sm_120</code> (Blackwell، على سبيل المثال RTX 5090)</li></ul> <blockquote class="note"><p>لا يتم دعم معالجات Hopper الرسومية، مثل <code>sm_90</code> H100 وH200، حاليًا.</p></blockquote> <p>يتطلب نقاط التفتيش <code>nvfp4</code> معالجًا رسوميًا من NVIDIA من طراز Blackwell أو أحدث. على معالجات Blackwell الرسومية، استخدم PyTorch >= 2.7 مع CUDA >= 12.8. تتطلب نقاط التفتيش <code>int4</code> معالجًا رسوميًا من NVIDIA من طراز Turing أو أحدث.</p> <table><thead><tr><th>الطريقة</th><th align="right">الدقة</th><th align="right">حجم المجموعة</th><th>ملاحظات</th></tr></thead><tbody><tr><td><code>svdq_w4a4</code></td><td align="right"><code>nvfp4</code></td><td align="right">16</td><td>يستخدم نواة NVFP4 وقت التشغيل مع تصحيح SVDQ منخفض الرتبة.</td></tr><tr><td><code>svdq_w4a4</code></td><td align="right"><code>int4</code></td><td align="right">64</td><td>يستخدم نواة INT4 W4A4 مع تصحيح SVDQ منخفض الرتبة.</td></tr><tr><td><code>awq_w4a16</code></td><td align="right"><code>int4</code></td><td align="right">64</td><td>يستخدم نواة INT4 للأوزان فقط بأسلوب AWQ.</td></tr></tbody></table> <!--[1--><h2 class="relative group"><a id="nunchakulitequantizationconfig" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#nunchakulitequantizationconfig"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span><!---->NunchakuLiteQuantizationConfig<!----></span></h2><!--]--><!----> <p>يجب أن يتضمن ملف <code>config.json</code> كائن <a href="/docs/diffusers/main/ar/api/quantization#diffusers.NunchakuLiteQuantizationConfig">NunchakuLiteQuantizationConfig</a>. وهو يحدد نوع البيانات <code>compute_dtype</code> وقت التشغيل، والوحدات المستهدفة لكل طريقة من طرق التكميم في Nunchaku Lite.</p> <ul><li><code>compute_dtype</code>: نوع البيانات وقت التشغيل للذاكرة المؤقتة ذات الفاصلة العائمة في الوحدات الكمية، وهو عادةً <code>torch.bfloat16</code>.</li> <li><code>svdq_w4a4</code>: تكوين الهدف SVDQ W4A4 مع <code>precision</code> و<code>group_size</code> و<code>rank</code> و<code>targets</code>.</li> <li><code>awq_w4a16</code>: إعدادات الهدف AWQ W4A16 مع <code>precision</code> و<code>group_size</code> و<code>targets</code>.</li></ul> <p>يجب أن يشير كل عنصر في <code>targets</code> إلى طبقة خطية. تقوم Diffusers باستبدال كل هدف <code>svdq_w4a4</code> بطبقة SVDQ W4A4 وكل هدف <code>awq_w4a16</code> بطبقة AWQ W4A16. يُظهر المثال أدناه الشكل المتوقع مع قوائم أهداف مختصرة.</p> <p>أدرج كل وحدة تريد تكميمها تحت <code>svdq_w4a4</code> أو <code>awq_w4a16</code>. لا يمكن للوحدة استخدام سوى طريقة واحدة، لذا لا تدرج نفس الهدف تحت الطريقتين معًا.</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> تم النسخ</div><!----></button><!----></div> <pre class="language-json "><!----><span class="hljs-punctuation">{</span> | |
| <span class="hljs-attr">"_class_name"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"ErnieImageTransformer2DModel"</span><span class="hljs-punctuation">,</span> | |
| <span class="hljs-attr">"quantization_config"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> | |
| <span class="hljs-attr">"quant_method"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"nunchaku_lite"</span><span class="hljs-punctuation">,</span> | |
| <span class="hljs-attr">"compute_dtype"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"bfloat16"</span><span class="hljs-punctuation">,</span> | |
| <span class="hljs-attr">"svdq_w4a4"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> | |
| <span class="hljs-attr">"precision"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"nvfp4"</span><span class="hljs-punctuation">,</span> | |
| <span class="hljs-attr">"group_size"</span><span class="hljs-punctuation">:</span> <span class="hljs-number">16</span><span class="hljs-punctuation">,</span> | |
| <span class="hljs-attr">"rank"</span><span class="hljs-punctuation">:</span> <span class="hljs-number">32</span><span class="hljs-punctuation">,</span> | |
| <span class="hljs-attr">"targets"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><span class="hljs-string">"layers.0.self_attention.to_q"</span><span class="hljs-punctuation">]</span> | |
| <span class="hljs-punctuation">}</span><span class="hljs-punctuation">,</span> | |
| <span class="hljs-attr">"awq_w4a16"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">{</span> | |
| <span class="hljs-attr">"precision"</span><span class="hljs-punctuation">:</span> <span class="hljs-string">"int4"</span><span class="hljs-punctuation">,</span> | |
| <span class="hljs-attr">"group_size"</span><span class="hljs-punctuation">:</span> <span class="hljs-number">64</span><span class="hljs-punctuation">,</span> | |
| <span class="hljs-attr">"targets"</span><span class="hljs-punctuation">:</span> <span class="hljs-punctuation">[</span><span class="hljs-string">"final_linear"</span><span class="hljs-punctuation">]</span> | |
| <span class="hljs-punctuation">}</span> | |
| <span class="hljs-punctuation">}</span> | |
| <span class="hljs-punctuation">}</span><!----></pre></div><!----> <!--[1--><h2 class="relative group"><a id="fused-kernels" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#fused-kernels"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span><!---->النواة المدمجة<!----></span></h2><!--]--><!----> <p>يستمد محرك <a href="https://github.com/nunchaku-ai/nunchaku" rel="nofollow">Nunchaku</a> الأصلي جزءًا كبيرًا من سرعته من مسارات التنفيذ المدمجة المحددة لكل نموذج. فهو يجمع بين إسقاطات Q وK وV مع RMSNorm وRoPE، ويستخدم نواة GELU مدمجة لطبقة MLP. أما Nunchaku Lite فيستخدم نموذج Diffusers القياسي مع طبقات خطية كمية عامة، لذا فهو لا يتضمن هذه الدمجات.</p> <p>تُظهر القياسات التالية تأثير زمن الاستجابة لكل خطوة لهذه الدمج في محرك Nunchaku الأصلي، وقد قُيس باستخدام Flux Schnell على بطاقة RTX 5090.</p> <table><thead><tr><th>التحسين</th><th>زمن الاستجابة عند إيقافه</th><th>زمن الاستجابة عند تفعيله</th><th>التسريع</th></tr></thead><tbody><tr><td>دمج QKV+norm+RoPE (مجمّع)</td><td>1.057 s</td><td>0.834 s</td><td><strong>1.27×</strong></td></tr><tr><td>— تجميع Q/K/V في عملية ضرب مصفوفات واحدة، بشكل منفصل</td><td>1.059 s</td><td>1.034 s</td><td>1.025×</td></tr><tr><td>— دمج خاتمة RMSNorm+RoPE، فوق التجميع</td><td>1.034 s</td><td>0.836 s</td><td>1.236×</td></tr><tr><td>دمج GELU-MLP</td><td>0.766 s</td><td>0.722 s</td><td><strong>1.06×</strong></td></tr></tbody></table> <p>بدون هذه الدمجات، تُطلق وحدة المعالجة الرسومية (GPU) عمليات الإسقاط والتطبيع والتضمين الدوّاري وشبكة الطبقات متعددة الطبقات (MLP) ككُتل (kernels) منفصلة، مما يُضيف عبئًا على عملية الإطلاق. قد تقلل <code>torch.compile</code> من بعض هذا العبء، على الرغم من أنها لا تُعيد بالضرورة إنتاج الكُتل المدمجة الأصلية للمحرك. قم بإجراء اختبارات أداء (Benchmark) للخط الأنابيب المُجمّع (compiled pipeline) الخاص بنموذجك وحِمل العمل لديك.</p> <!--[1--><h2 class="relative group"><a id="torchcompile" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#torchcompile"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span><!---->torch.compile<!----></span></h2><!--]--><!----> <p>تتوافق نواة Nunchaku Lite والطبقات الخطية المُكمّمة مع <a href="../optimization/fp16#torchcompile"><code>torch.compile</code></a>. | |
| قم بتجميع المُحوِّل المُكمَّم بعد تحميل خط الأنابيب للحصول على استدلال أسرع.</p> <div class="code-block relative "><div class="absolute top-2.5 right-4"><button class="inline-flex items-center relative text-sm focus:text-green-500 cursor-pointer focus:outline-none transition duration-200 ease-in-out opacity-0 mx-0.5 text-gray-600 " title="code excerpt" type="button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M28,10V28H10V10H28m0-2H10a2,2,0,0,0-2,2V28a2,2,0,0,0,2,2H28a2,2,0,0,0,2-2V10a2,2,0,0,0-2-2Z" transform="translate(0)"></path><path d="M4,18H2V4A2,2,0,0,1,4,2H18V4H4Z" transform="translate(0)"></path><rect fill="none" width="32" height="32"></rect></svg><!----> <div class=" absolute pointer-events-none transition-opacity bg-black text-white py-1 px-2 leading-tight rounded font-normal shadow left-1/2 top-full transform -translate-x-1/2 translate-y-2 opacity-0 "><div class="absolute bottom-full left-1/2 transform -translate-x-1/2 w-0 h-0 border-black border-4 border-t-0" style="border-left-color: transparent; border-right-color: transparent;"></div> تم النسخ</div><!----></button><!----></div> <pre class="language-python "><!---->pipe.transformer = torch.<span class="hljs-built_in">compile</span>(pipe.transformer, mode=<span class="hljs-string">"default"</span>, fullgraph=<span class="hljs-literal">True</span>)<!----></pre></div><!----> <p>يعمل خط أنابيب Nunchaku Lite NVFP4 المُجمَّع أسرع بنسبة 1.8 مرة من خط أنابيب BF16 الأصلي (من 2.271 ثانية إلى 1.675 ثانية على بطاقة RTX PRO 6000).</p> <!--[1--><h2 class="relative group"><a id="resources" class="header-link block pr-1.5 text-lg no-hover:hidden with-hover:absolute with-hover:p-1.5 with-hover:opacity-0 with-hover:group-hover:opacity-100 with-hover:right-full" href="#resources"><span><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path d="M167.594 88.393a8.001 8.001 0 0 1 0 11.314l-67.882 67.882a8 8 0 1 1-11.314-11.315l67.882-67.881a8.003 8.003 0 0 1 11.314 0zm-28.287 84.86l-28.284 28.284a40 40 0 0 1-56.567-56.567l28.284-28.284a8 8 0 0 0-11.315-11.315l-28.284 28.284a56 56 0 0 0 79.196 79.197l28.285-28.285a8 8 0 1 0-11.315-11.314zM212.852 43.14a56.002 56.002 0 0 0-79.196 0l-28.284 28.284a8 8 0 1 0 11.314 11.314l28.284-28.284a40 40 0 0 1 56.568 56.567l-28.285 28.285a8 8 0 0 0 11.315 11.314l28.284-28.284a56.065 56.065 0 0 0 0-79.196z" fill="currentColor"></path></svg><!----></span></a> <span><!---->الموارد<!----></span></h2><!--]--><!----> <ul><li><a href="https://github.com/rootonchair/diffuse-compressor" rel="nofollow">diffuse-compressor</a></li> <li><a href="https://nunchaku.tech/docs/nunchaku/installation/installation.html" rel="nofollow">متطلبات تثبيت Nunchaku</a></li></ul> <a class="!text-gray-400 !no-underline text-sm flex items-center not-prose mt-4" href="https://github.com/huggingface/diffusers/blob/main/docs/source/en/quantization/nunchaku.md" target="_blank"><svg class="mr-1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" fill="currentColor" focusable="false" role="img" width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32"><path d="M31,16l-7,7l-1.41-1.41L28.17,16l-5.58-5.59L24,9l7,7z"></path><path d="M1,16l7-7l1.41,1.41L3.83,16l5.58,5.59L8,23l-7-7z"></path><path d="M12.419,25.484L17.639,6.552l1.932,0.518L14.351,26.002z"></path></svg><!----> <span><span class="underline">Update</span> on GitHub</span></a><!----> <p></p><!--]--><!----><!--]--><!--]--><!--]--> <!--[-1--><!--]--><!--]--> | |
| <script> | |
| { | |
| __sveltekit_gxjg5b = { | |
| base: "/docs/diffusers/main/en", | |
| assets: "/docs/diffusers/main/en" | |
| }; | |
| const element = document.currentScript.parentElement; | |
| Promise.all([ | |
| import("/docs/diffusers/main/en/_app/immutable/entry/start.U6TUchwJ.js"), | |
| import("/docs/diffusers/main/en/_app/immutable/entry/app.3qKhPoX-.js") | |
| ]).then(([kit, app]) => { | |
| kit.start(app, element, { | |
| node_ids: [0, 17], | |
| data: [null,null], | |
| form: null, | |
| error: null | |
| }); | |
| }); | |
| } | |
| </script> | |
Xet Storage Details
- Size:
- 33.9 kB
- Xet hash:
- 3dfcc77b5595c0fcf0be0b79b1aa429bcbd450aaaa2c955c8726c61934b8e1ce
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.