أدلة أعباء العمل
خطط لتشغيل PyTorch قابل للتكرار
قس الذاكرة، واختر استراتيجية توازٍ، واختبر استعادة نقاط التحقق، وخطط لتشغيل تدريب PyTorch بمدة ثابتة.
10 دقيقة قراءة · تم التحديثأثبت خطوة كاملة واحدة قبل التوسع
ثبّت مراجعات النموذج ومجموعة البيانات، وإصدارات التبعيات، وإعداد التدريب، والبذور العشوائية، وبصمة الحاوية. شغّل تحميل النموذج، وخطوة تدريب كاملة، والتقييم، وحفظ نقطة التحقق، واستعادة نقطة التحقق على مسرّع واحد.
استخدم نفس طول التسلسل وإعدادات الدفعات الصغيرة المخصصة للتشغيل الأطول. يمكن للتجربة المصغرة التي تحذف حالة المُحسِّن أو تستخدم تسلسلات أقصر أن تخفي مشكلة الذاكرة التي تحاول قياسها.
قياس خطوة تحسين تمثيلية
داخل برنامج التدريب الحالي لديك، أحط خطوة تمثيلية بقياس ذروة الذاكرة. يفترض المثال أن النموذج والدفعة والمحسّن قد تمت تهيئتهم بالفعل على وحدة معالجة الرسومات. قم بتضمين خطوة المحسّن لأن بعض الحالة تُنشأ بشكل كسول.
torch.cuda.reset_peak_memory_stats()
optimizer.zero_grad(set_to_none=True)
loss = model(**batch).loss
loss.backward()
optimizer.step()
torch.cuda.synchronize()
peak_gib = torch.cuda.max_memory_allocated() / 2**30
print(f"Peak tensor memory: {peak_gib:.2f} GiB")يعرض هذا ذروة تخصيص الموترات، وليس البصمة الكاملة للجهاز. افحص أيضًا الذاكرة المحجوزة، وأعباء وقت التشغيل، وتقرير ذاكرة الجهاز في النظام.
اختر DDP أو التجزئة للسبب الصحيح
يحتفظ DistributedDataParallel بنسخة نموذج على كل عملية ويزامن التدرجات. يكون مفيدًا عندما تتسع حالة التدريب الكاملة على كل وحدة معالجة رسومات وترغب في معالجة المزيد من البيانات بالتوازي؛ ولا يدمج VRAM في تجمع واحد متصل.
يمكن لتوازي البيانات المُجزأ بالكامل توزيع المعاملات والتدرجات وحالة المُحسِّن. استخدمه عندما يبرر ضغط الذاكرة التجزئة، مع مراعاة تعقيد الاتصالات الإضافية ونقاط الفحص الموزعة.
الدقة المختلطة ونقاط التحقق من التفعيل خياران منفصلان. تحقق من السلوك العددي للدقة الأقل؛ وقِس التكلفة الحسابية لإعادة حساب التفعيلات عندما توفر نقاط التحقق الذاكرة.
إطلاق تجربة عقدة واحدة
يجب أن يهيئ سكربت التدريب التنفيذ الموزع ويعين عملية واحدة لكل وحدة معالجة رسومات باستخدام معلومات الرتبة المحلية. طابق عدد العمليات مع وحدات معالجة الرسومات المرئية. ما يلي مثال إطلاق لسكربت مدرك للتوزيع، وليس تنفيذ تدريب كامل.
torchrun --standalone --nproc-per-node=4 \
train.py --config configs/pilot.yamlشغّل هذا فقط على عقدة مُجهزة. العرض التجريبي المحلي AnchorGPU لا ينفذ التدريب ولا يخصص وحدات GPU عن بُعد.
اختر الأجهزة استنادًا إلى نتيجة الاختبار التجريبي
استخدم A100 كخط أساس أقل سعرًا بسعة 80 GB CUDA، واختبر H100 إذا كان لحمل العمل مسار مفيد خاص بـ Hopper. يوفر H200 تكوين ذاكرة CUDA أكبر. يوفر MI300X سعة أكبر لكل مسرّع في هذا الكتالوج، شريطة أن يكون التطبيق الكامل مؤهلًا على ROCm.
بالنسبة إلى AMD، تحقق من الإضافات المخصصة والنوى وإصدارات الحزم وصورة PyTorch المختبرة مع ROCm كمجموعة كاملة. لا يتحقق التوافق على مستوى إطار العمل من كل عملية اختيارية.
قارن H200 مع MI300Xاختبر الاستعادة، وليس الحفظ فقط
سجّل النموذج والمحسِّن والمجدول وخطوة التدريب والإعدادات وحالة مقياس الدقة المختلطة حيثما كان ذلك مناسبًا. احفظ نقطة تحقق، وأنهِ العملية، ثم استعد واستأنف قبل الالتزام بالتشغيل الطويل.
استخدم طريقة نقاط تحقق مناسبة للحالة الموزعة. اختبر أن القطع المحفوظة يمكن قراءتها بشكل مستقل عن العملية الأصلية، وأن مخرجات التقييم تبقى ضمن التفاوت المتوقع.
خصص ميزانية لخط الأنابيب بالكامل
شمل التنزيلات والمعالجة المسبقة وتحميل البيانات والتحقق وإنشاء نقاط التفتيش والتصدير ونسخ المخرجات خارج العقدة. قس الإنتاجية مع الذاكرة وتوقفات تحميل البيانات ووقت الاتصال ومدة نقطة التفتيش وجودة التحقق.
تكون مدة 7 أيام مفيدة لتمريرة توافق وتوصيف محدودة. اختر حجزًا لمدة 30 يومًا فقط بعد أن تتمكن من تقدير العمل المفيد والهامش التشغيلي. تساعد زيادة وحدات معالجة الرسومات فقط عندما يتجاوز الحساب الإضافي حدود الاتصال وخط أنابيب الإدخال.
فهم الفوترة ذات المدة الثابتة