Buckets:

hf-doc-build/doc / diffusers /v0.43.0 /ar /training /distributed_inference.html
mishig's picture
download
raw
12 kB
<meta charset="utf-8" /><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;الاستدلال الموزّع&quot;,&quot;local&quot;:&quot;distributed-inference&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;اختيار استراتيجية&quot;,&quot;local&quot;:&quot;choosing-a-strategy&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2}],&quot;depth&quot;:1}"/>
<link href="/docs/diffusers/main/en/_app/immutable/entry/start.0S0_iEoG.js" rel="modulepreload">
<link href="/docs/diffusers/main/en/_app/immutable/chunks/I9eooN77.js" rel="modulepreload">
<link href="/docs/diffusers/main/en/_app/immutable/chunks/Bupkjr9f.js" rel="modulepreload">
<link href="/docs/diffusers/main/en/_app/immutable/entry/app.CPdOxCbw.js" rel="modulepreload">
<link href="/docs/diffusers/main/en/_app/immutable/chunks/CyvZ3FS5.js" rel="modulepreload">
<link href="/docs/diffusers/main/en/_app/immutable/chunks/l0QnnOED.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/nodes/0.DteTvmQZ.js" rel="modulepreload">
<link href="/docs/diffusers/main/en/_app/immutable/chunks/CoSrdQax.js" rel="modulepreload">
<link href="/docs/diffusers/main/en/_app/immutable/nodes/368.MZuJGICn.js" rel="modulepreload">
<link href="/docs/diffusers/main/en/_app/immutable/chunks/DSPDl1gz.js" rel="modulepreload">
<!--el5ux9--><meta name="hf:doc:metadata" content="{&quot;title&quot;:&quot;Distributed inference&quot;,&quot;local&quot;:&quot;distributed-inference&quot;,&quot;sections&quot;:[{&quot;title&quot;:&quot;Choosing a strategy&quot;,&quot;local&quot;:&quot;choosing-a-strategy&quot;,&quot;sections&quot;:[],&quot;depth&quot;:2}],&quot;depth&quot;: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="distributed-inference" 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="#distributed-inference"><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></h1><!--]--><!----> <p>يقوم الاستدلال الموزّع بتقسيم عبء العمل على عدة وحدات معالجة رسومية (GPU). وهو مفيد لإسكان نماذج أكبر في الذاكرة ومعالجة عدد أكبر من الطلبات في وقت واحد.</p> <p>يدعم Diffusers أربع استراتيجيات. لكل استراتيجية منها دليل خاص بها، وتساعدك هذه الصفحة في اختيار واحدة منها.</p> <!--[1--><h2 class="relative group"><a id="choosing-a-strategy" 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="#choosing-a-strategy"><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>تُحلّ كل استراتيجية مشكلة مختلفة، لذا اختر واحدة بناءً على المورد الذي يُقيّدك.</p> <table><thead><tr><th>الاستراتيجية</th><th>التقسيمات</th><th>يقلل</th><th>زمن الاستجابة لطلب واحد</th><th>أفضل وقت</th></tr></thead><tbody><tr><td><a href="../optimization/data_parallelism">التوازي في البيانات</a></td><td>الموجّهات عبر النسخ</td><td>لا شيء، حيث يحتفظ كل معالج رسومي بنسخة كاملة</td><td>غير متغيّر</td><td>يتناسب النموذج بالفعل ولديك العديد من الاستعلامات</td></tr><tr><td><a href="../optimization/device_map">device_map</a></td><td>المكونات عبر الأجهزة</td><td>ذاكرة الأوزان</td><td>أسوأ قليلاً</td><td>لا يتسع النموذج، وواجهة الربط بطيئة</td></tr><tr><td><a href="../optimization/context_parallelism">التوازي السياقي</a></td><td>التسلسل المُدخل</td><td>ذاكرة التفعيل</td><td>أدنى</td><td>تكون التسلسلات طويلة، مثل الصور عالية الدقة أو الفيديو</td></tr><tr><td><a href="../optimization/tensor_parallelism">التوازي على مستوى المصفوفات</a></td><td>مصفوفات الأوزان</td><td>ذاكرة الأوزان</td><td>أدنى</td><td>لا تتسع أوزان مكوّن واحد، والاتصال الداخلي سريع</td></tr></tbody></table> <p>بعض الإرشادات العملية:</p> <ul><li>إذا كان النموذج يتسع بالفعل ولديك العديد من الاستعلامات، فاستخدم توازي البيانات. فهو يوسّع الإنتاجية مع عدد وحدات معالجة الرسومات دون المساس بالنموذج، ويترك زمن استجابة الاستعلام الواحد كما هو. اضبطه باستخدام <a href="../optimization/data_parallelism#accelerate">Accelerate</a> أو <a href="../optimization/data_parallelism#pytorch-distributed">PyTorch Distributed</a>.</li> <li>إذا لم تتسع أوزان مكوّن واحد، جرّب توازي الموترات أولاً، لأنه يُقلّل من الذاكرة والكمون معاً. يتواصل توازي الموترات عند كل حدّ للكتل، لذا يحتاج إلى وصلة سريعة مثل NVLink. على PCIe، قد يتجاوز حجم المرور لكل طبقة مقدار الحساب الذي يوفره، ويصبح <code>device_map</code> الخيار الأفضل. كما يتعامل <code>device_map</code> مع الحالة التي تكون فيها المكوّنات مناسبة بشكل فردي لكنها كبيرة بشكل جماعي.</li> <li>إذا كانت المشكلة في التفعيلات وليس في الأوزان، فاستخدم توازي السياق. يساعد ذلك في التعامل مع التسلسلات الطويلة، مثل الصور الكبيرة والفيديوهات ذات الإطارات العديدة. اختر واجهة خلفية من المعايير المرجعية في دليل <a href="../optimization/context_parallelism">توازي السياق</a>.</li> <li>إذا كانت الأوزان والتسلسل كبيرين جداً، فلا يمكن لـ Diffusers تطبيق توازي الموترات وتوازي السياق على نفس النموذج. يرمي <code>ParallelConfig</code> خطأً إذا مررت كلا التكوينين، ولا يمكن استدعاء <code>enable_parallelism</code> مرة ثانية على نموذج تم موازاته بالفعل.</li></ul> <p>توفر تكاملات المجتمع <a href="../optimization/xdit">xDiT</a> و<a href="../optimization/para_attn">ParaAttention</a> تنفيذاتها الخاصة لتوازي السياق.</p> <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/training/distributed_inference.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_1qsdbwf = {
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.0S0_iEoG.js"),
import("/docs/diffusers/main/en/_app/immutable/entry/app.CPdOxCbw.js")
]).then(([kit, app]) => {
kit.start(app, element, {
node_ids: [0, 368],
data: [null,null],
form: null,
error: null
});
});
}
</script>

Xet Storage Details

Size:
12 kB
·
Xet hash:
c1c8c452f68bcb293c5162cdf25c59b12e03a13cd01abc0db9af84e087400a05

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.