Diffusers documentation

الاستدلال الموزّع

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

الاستدلال الموزّع

يقوم الاستدلال الموزّع بتقسيم عبء العمل على عدة وحدات معالجة رسومية (GPU). وهو مفيد لإسكان نماذج أكبر في الذاكرة ومعالجة عدد أكبر من الطلبات في وقت واحد.

يدعم Diffusers أربع استراتيجيات. لكل استراتيجية منها دليل خاص بها، وتساعدك هذه الصفحة في اختيار واحدة منها.

اختيار استراتيجية

تُحلّ كل استراتيجية مشكلة مختلفة، لذا اختر واحدة بناءً على المورد الذي يُقيّدك.

الاستراتيجيةالتقسيماتيقللزمن الاستجابة لطلب واحدأفضل وقت
التوازي في البياناتالموجّهات عبر النسخلا شيء، حيث يحتفظ كل معالج رسومي بنسخة كاملةغير متغيّريتناسب النموذج بالفعل ولديك العديد من الاستعلامات
device_mapالمكونات عبر الأجهزةذاكرة الأوزانأسوأ قليلاًلا يتسع النموذج، وواجهة الربط بطيئة
التوازي السياقيالتسلسل المُدخلذاكرة التفعيلأدنىتكون التسلسلات طويلة، مثل الصور عالية الدقة أو الفيديو
التوازي على مستوى المصفوفاتمصفوفات الأوزانذاكرة الأوزانأدنىلا تتسع أوزان مكوّن واحد، والاتصال الداخلي سريع

بعض الإرشادات العملية:

  • إذا كان النموذج يتسع بالفعل ولديك العديد من الاستعلامات، فاستخدم توازي البيانات. فهو يوسّع الإنتاجية مع عدد وحدات معالجة الرسومات دون المساس بالنموذج، ويترك زمن استجابة الاستعلام الواحد كما هو. اضبطه باستخدام Accelerate أو PyTorch Distributed.
  • إذا لم تتسع أوزان مكوّن واحد، جرّب توازي الموترات أولاً، لأنه يُقلّل من الذاكرة والكمون معاً. يتواصل توازي الموترات عند كل حدّ للكتل، لذا يحتاج إلى وصلة سريعة مثل NVLink. على PCIe، قد يتجاوز حجم المرور لكل طبقة مقدار الحساب الذي يوفره، ويصبح device_map الخيار الأفضل. كما يتعامل device_map مع الحالة التي تكون فيها المكوّنات مناسبة بشكل فردي لكنها كبيرة بشكل جماعي.
  • إذا كانت المشكلة في التفعيلات وليس في الأوزان، فاستخدم توازي السياق. يساعد ذلك في التعامل مع التسلسلات الطويلة، مثل الصور الكبيرة والفيديوهات ذات الإطارات العديدة. اختر واجهة خلفية من المعايير المرجعية في دليل توازي السياق.
  • إذا كانت الأوزان والتسلسل كبيرين جداً، فلا يمكن لـ Diffusers تطبيق توازي الموترات وتوازي السياق على نفس النموذج. يرمي ParallelConfig خطأً إذا مررت كلا التكوينين، ولا يمكن استدعاء enable_parallelism مرة ثانية على نموذج تم موازاته بالفعل.

توفر تكاملات المجتمع xDiT وParaAttention تنفيذاتها الخاصة لتوازي السياق.

Update on GitHub