Buckets:
| <meta charset="utf-8" /><meta name="hf:doc:metadata" content="{"title":"Inferensi terdistribusi","local":"distributed-inference","sections":[{"title":"Memilih strategi","local":"choosing-a-strategy","sections":[],"depth":2}],"depth":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="{"title":"Distributed inference","local":"distributed-inference","sections":[{"title":"Choosing a strategy","local":"choosing-a-strategy","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="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><!---->Inferensi terdistribusi<!----></span></h1><!--]--><!----> <p>Inferensi terdistribusi membagi beban kerja di antara beberapa GPU. Hal ini berguna untuk memuat model yang lebih besar ke dalam memori dan untuk memproses lebih banyak prompt sekaligus.</p> <p>Diffusers mendukung empat strategi. Masing-masing memiliki panduannya sendiri, dan halaman ini membantu Anda memilih salah satunya.</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><!---->Memilih strategi<!----></span></h2><!--]--><!----> <p>Setiap strategi menyelesaikan masalah yang berbeda, jadi pilih salah satu berdasarkan sumber daya yang menjadi batasan Anda.</p> <table><thead><tr><th>Strategi</th><th>Pembagian</th><th>Mengurangi</th><th>Latensi untuk satu prompt</th><th>Paling baik saat</th></tr></thead><tbody><tr><td><a href="../optimization/data_parallelism">Paralelisme data</a></td><td>prompts di antara replika</td><td>tidak ada, karena setiap GPU menyimpan salinan lengkap</td><td>unchanged</td><td>model sudah muat dan Anda memiliki banyak prompt</td></tr><tr><td><a href="../optimization/device_map">device_map</a></td><td>komponen di antara perangkat</td><td>memori bobot</td><td>sedikit lebih buruk</td><td>model tidak muat dan interkoneksi lambat</td></tr><tr><td><a href="../optimization/context_parallelism">Paralelisme konteks</a></td><td>urutan input</td><td>memori aktivasi</td><td>lower</td><td>urutan panjang, seperti gambar resolusi tinggi atau video</td></tr><tr><td><a href="../optimization/tensor_parallelism">Paralelisme tensor</a></td><td>matriks bobot</td><td>memori bobot</td><td>lower</td><td>satu komponen bobot tidak muat dan interkoneksi cepat</td></tr></tbody></table> <p>Beberapa panduan praktis:</p> <ul><li>Jika model sudah muat dan Anda memiliki banyak prompt, gunakan data parallelism. Metode ini meningkatkan throughput seiring bertambahnya jumlah GPU tanpa mengubah model, dan tidak memengaruhi latensi untuk prompt tunggal. Atur dengan <a href="../optimization/data_parallelism#accelerate">Accelerate</a> atau <a href="../optimization/data_parallelism#pytorch-distributed">PyTorch Distributed</a>.</li> <li>Jika bobot satu komponen tidak muat, coba tensor parallelism terlebih dahulu, karena metode ini menurunkan baik memori maupun latensi. Tensor parallelism berkomunikasi di setiap batas blok, sehingga membutuhkan interkoneksi cepat seperti NVLink. Di PCIe, lalu lintas per lapisan dapat melebihi komputasi yang dihemat, dan <code>device_map</code> menjadi pilihan yang lebih baik. <code>device_map</code> juga menangani kasus di mana komponen-komponen secara individual tidak masalah tetapi secara kolektif terlalu besar.</li> <li>Jika aktivasi, bukan bobot, yang menjadi masalah, gunakan paralelisme konteks. Ini membantu untuk urutan panjang, seperti gambar besar dan video dengan banyak frame. Pilih backend dari benchmark di panduan <a href="../optimization/context_parallelism">Paralelisme konteks</a>.</li> <li>Jika bobot dan urutan sama-sama terlalu besar, Diffusers tidak dapat menerapkan paralelisme tensor dan paralelisme konteks pada model yang sama. <code>ParallelConfig</code> akan memicu error jika Anda meneruskan kedua konfigurasi tersebut, dan <code>enable_parallelism</code> tidak dapat dipanggil untuk kedua kalinya pada model yang sudah diparalelkan.</li></ul> <p>Integrasi komunitas <a href="../optimization/xdit">xDiT</a> dan <a href="../optimization/para_attn">ParaAttention</a> menawarkan implementasi parallelism konteks mereka sendiri.</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:
- 10.8 kB
- Xet hash:
- 66b88386c7c5155f544472c00e1b78667fc0baff3c4db27cde52597dce1682fd
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.