Diffusers documentation
الاستدلال الموزّع
ابدأ الآن
الاستدلال
استخدام خطوط أنابيب الانتشار
المُكيِّفات والتخصيص
تحسين الأداء والتوسع
المولّدات التوليدية المعيارية
التدريب والتخصيص
الموارد
ساهم
واجهة برمجة التطبيقات
الاستدلال الموزّع
يقوم الاستدلال الموزّع بتقسيم عبء العمل على عدة وحدات معالجة رسومية (GPU). وهو مفيد لإسكان نماذج أكبر في الذاكرة ومعالجة عدد أكبر من الطلبات في وقت واحد.
يدعم Diffusers أربع استراتيجيات. لكل استراتيجية منها دليل خاص بها، وتساعدك هذه الصفحة في اختيار واحدة منها.
اختيار استراتيجية
تُحلّ كل استراتيجية مشكلة مختلفة، لذا اختر واحدة بناءً على المورد الذي يُقيّدك.
| الاستراتيجية | التقسيمات | يقلل | زمن الاستجابة لطلب واحد | أفضل وقت |
|---|---|---|---|---|
| التوازي في البيانات | الموجّهات عبر النسخ | لا شيء، حيث يحتفظ كل معالج رسومي بنسخة كاملة | غير متغيّر | يتناسب النموذج بالفعل ولديك العديد من الاستعلامات |
| device_map | المكونات عبر الأجهزة | ذاكرة الأوزان | أسوأ قليلاً | لا يتسع النموذج، وواجهة الربط بطيئة |
| التوازي السياقي | التسلسل المُدخل | ذاكرة التفعيل | أدنى | تكون التسلسلات طويلة، مثل الصور عالية الدقة أو الفيديو |
| التوازي على مستوى المصفوفات | مصفوفات الأوزان | ذاكرة الأوزان | أدنى | لا تتسع أوزان مكوّن واحد، والاتصال الداخلي سريع |
بعض الإرشادات العملية:
- إذا كان النموذج يتسع بالفعل ولديك العديد من الاستعلامات، فاستخدم توازي البيانات. فهو يوسّع الإنتاجية مع عدد وحدات معالجة الرسومات دون المساس بالنموذج، ويترك زمن استجابة الاستعلام الواحد كما هو. اضبطه باستخدام Accelerate أو PyTorch Distributed.
- إذا لم تتسع أوزان مكوّن واحد، جرّب توازي الموترات أولاً، لأنه يُقلّل من الذاكرة والكمون معاً. يتواصل توازي الموترات عند كل حدّ للكتل، لذا يحتاج إلى وصلة سريعة مثل NVLink. على PCIe، قد يتجاوز حجم المرور لكل طبقة مقدار الحساب الذي يوفره، ويصبح
device_mapالخيار الأفضل. كما يتعاملdevice_mapمع الحالة التي تكون فيها المكوّنات مناسبة بشكل فردي لكنها كبيرة بشكل جماعي. - إذا كانت المشكلة في التفعيلات وليس في الأوزان، فاستخدم توازي السياق. يساعد ذلك في التعامل مع التسلسلات الطويلة، مثل الصور الكبيرة والفيديوهات ذات الإطارات العديدة. اختر واجهة خلفية من المعايير المرجعية في دليل توازي السياق.
- إذا كانت الأوزان والتسلسل كبيرين جداً، فلا يمكن لـ Diffusers تطبيق توازي الموترات وتوازي السياق على نفس النموذج. يرمي
ParallelConfigخطأً إذا مررت كلا التكوينين، ولا يمكن استدعاءenable_parallelismمرة ثانية على نموذج تم موازاته بالفعل.
توفر تكاملات المجتمع xDiT وParaAttention تنفيذاتها الخاصة لتوازي السياق.
Update on GitHub