التدريب على نطاق واسع
من وحدة GPU واحدة إلى الآلاف — الأجهزة والخوارزميات والأُطر التي تجعل التعلم الآلي الضخم ممكنًا.
GPU وTPU
تُسرّع وحدات GPU عمليات ضرب المصفوفات بـ 10–100 مرة عن وحدات CPU. وحدات TPU هي رقاقات Google المخصصة لأعباء عمل BF16 على نطاق واسع.
تقسيم الدُفعة
كرّر النموذج الكامل على كل GPU. قسّم الدُفعة الصغيرة. تحسب كل GPU التدرجات بشكل مستقل، ثم تُوسّط All-Reduce التدرجات قبل خطوة المحسّن.
تداخل التواصل والحساب
تبدأ DDP في تزامن التدرجات بينما لا يزال التمرير الخلفي يعمل — تنتقل تدرجات الطبقات الأولى عبر الشبكة بينما تُفرّق الطبقات الأخيرة. يُخفي هذا زمن انتظار التواصل خلف الحساب.
عندما لا يتسع النموذج
- توازي الأنابيب — خصّص مجموعات طبقات لوحدات GPU مختلفة؛ استخدم دُفعات صغيرة لإخفاء الفقاعات
- توازي الموترات — قسّم مصفوفات الأوزان عبر وحدات GPU؛ يتطلب عرض نطاق NVLink
- التوازي ثلاثي الأبعاد — اجمع الاستراتيجيات الثلاث لما قبل تدريب LLM
جزّئ كل شيء عبر وحدات GPU
- ZeRO-1 — تجزئة حالة المحسّن فقط
- ZeRO-2 — تجزئة حالة المحسّن + التدرجات
- ZeRO-3 / FSDP — تجزئة المعاملات + التدرجات + حالة المحسّن؛ يُتيح نماذج بتريليونات المعاملات
- ZeRO-Infinity — إلغاء تحميل إلى CPU / NVMe عند نفاد VRAM
BF16 مقابل FP16
- FP16 — توفير ضعف الذاكرة؛ نطاق ديناميكي محدود؛ يحتاج تحجيم الخسارة
- BF16 — نفس النطاق الديناميكي لـ FP32؛ لا حاجة لتحجيم الخسارة؛ مفضل على Ampere/Hopper
- احتفظ بأوزان رئيسية FP32 لخطوة تحديث المحسّن
- استخدم
torch.cuda.amp.autocastللدقة المختلطة التلقائية
تفصيل الذاكرة المختلطة
لنموذج يحتوي على P معامل، إجمالي الذاكرة لكل GPU في التدريب بالدقة المختلطة هو:
يُضيف محسّن Adam موترَين بـ FP32 (اللحظة الأولى + الثانية)، ما يمثّل 8P بايت.
تجميع التدرجات ونقاط التفتيش
التجميع: عالج K دُفعات صغيرة، اجمع التدرجات، حدّث مرة واحدة. نقاط التفتيش: تجاهل التنشيطات أثناء التمرير الأمامي، أعد حسابها أثناء التمرير الخلفي.
النظام البيئي
- PyTorch DDP — توازي البيانات القياسي؛ تزامن تدرجات متداخل
- PyTorch FSDP — تجزئة بأسلوب ZeRO-3؛ دعم أصلي في PyTorch 2.x
- DeepSpeed — ZeRO-1/2/3 + إلغاء تحميل NVMe؛ لتدريب LLM
- Megatron-LM — توازي ثلاثي الأبعاد على مجموعات NVLink
- HF Accelerate — مُشغّل موحّد: نفس السكريبت على GPU واحدة أو 1000
مجموعات عند الطلب
- AWS SageMaker — مهام مُدارة، مثيلات فورية، تكامل S3
- GCP Vertex AI — TPU + GPU أصلي؛ JAX / TF / PyTorch
- Azure ML — شبكات RDMA، تكامل DeepSpeed
- GPU الفورية / القابلة للاستباق: أرخص بـ 60–90%؛ يجب حفظ نقاط تفتيش متكررة والاستئناف بعد الاستباق
النقاط الرئيسية
- تُوازي وحدات GPU عمليات المصفوفات؛ تتخصص وحدات TPU في BF16 بعرض نطاق واسع
- توازي البيانات: كرّر النموذج، قسّم الدُفعة، وسّط التدرجات عبر All-Reduce
- توازي الأنابيب + الموترات + ZeRO/FSDP للنماذج التي تتجاوز VRAM GPU منفردة
- الدقة المختلطة BF16: توفير 2× من الذاكرة مع نفس النطاق الديناميكي لـ FP32
- تجميع التدرجات يُحاكي الدُفعات الكبيرة؛ نقاط التفتيش توفّر VRAM على حساب الحساب
- تُتيح المنصات السحابية مجموعات GPU/TPU عند الطلب بأسعار فورية مخفضة