الدليل الفني

Zero وSharded Optimizers

تعمل تقنية Zero Redundancy Optimizer على التخلص من ازدواجية الذاكرة المهدرة لتوازي البيانات من خلال تقسيم حالة المحسن والتدرجات والأوزان عبر وحدات معالجة الرسومات.

قراءة لمدة دقيقتينآخر تحديث

نظرة عامة

It lets you train enormous models with the simplicity of data parallelism but a fraction of the per-GPU memory.

الغوص العميق

في موازاة البيانات العادية، تقوم كل وحدة معالجة رسومات بتخزين نسخة كاملة زائدة عن الحاجة من حالة المحسن والتدرجات والمعلمات، وهو ما يعد إهدارًا كبيرًا، خاصة بالنسبة لآدم، حيث يمكن أن تكون حالة المحسن عدة أضعاف حجم النموذج نفسه. تعمل تقنية ZeRO، التي قدمتها Microsoft في DeepSpeed، على إزالة هذا التكرار عن طريق تقسيم هذه الموترات عبر وحدات معالجة الرسومات بحيث يمتلك كل جهاز شريحة فقط. يأتي Zero في ثلاث مراحل تقدمية: حالة تحسين أجزاء المرحلة الأولى، وتضيف المرحلة الثانية تقسيمًا متدرجًا، وتقسم المرحلة الثالثة المعلمات نفسها. حسب الحاجة، تجمع وحدات معالجة الرسومات الشرائح المفقودة عبر الاتصال، وتحسبها، ثم تحررها. والنتيجة هي ذاكرة أقل بشكل كبير لكل وحدة معالجة رسومات، مما يتيح التدريب من مليار إلى تريليون معلمة، مع الحفاظ على نموذج البرمجة السهل لتوازي البيانات.

البصيرة الفنية

تقوم شركة ZeRO بتبادل الاتصالات الإضافية لتوفير الذاكرة. في المرحلة 3، قبل المرور الأمامي للطبقة، يقوم التجميع الشامل بتجميع المعلمات الكاملة لتلك الطبقة على كل وحدة معالجة رسومات؛ وبعد ذلك يتم التخلص من الشرائح غير المملوكة لاستعادة الذاكرة. يتم تقليل التدرجات المتناثرة بحيث تحتفظ كل وحدة معالجة رسومات فقط بشريحة التدرج التي تطابق المعلمات التي تمتلكها. يطبق FSDP (توازي البيانات المجزأة بالكامل) من PyTorch نفس الفكرة محليًا، حيث يقوم بتغليف الوحدات النمطية إلى أجزاء وإعادة تقسيمها بسرعة.

التأثير الاستراتيجي

التكلفة والميزانية

تؤدي قرارات الهندسة المعمارية إلى زيادة الأداء وتكلفة التشغيل لسنوات.

قرارات أوضح

يساعد التعليم الفني الفرق على اختيار المجموعة المناسبة، وليس فقط المجموعة الأحدث.

مراقبة الجودة

تعمل الخيارات الهندسية الأفضل على تقليل حوادث الموثوقية في الإنتاج.

مستقبل Zero وSharded Optimizers

أصبحت المشاركة هي الخيار الافتراضي للتدريب واسع النطاق بدلاً من كونها خيارًا غريبًا. توقع تكاملًا أعمق مع التفريغ (دفع الشرائح إلى وحدة المعالجة المركزية أو NVMe عبر ZeRO-Infinity)، وتداخل أفضل بين عمليات التجميع وتقليل التشتت مع العمليات الحسابية لإخفاء تكلفتها، والمجموعات مع توازي الموتر وخط الأنابيب. مع استمرار نمو النماذج، تعد أدوات تحسين الأداء المجزأة ذات الكفاءة في الذاكرة أمرًا أساسيًا لملاءمتها مع ميزانيات الأجهزة الواقعية.

التنفيذ في العالم الحقيقي

استخدام DeepSpeed ​​ZeRO Stage 2 لضبط نموذج لغة متعدد المليارات من المعلمات والذي قد يتجاوز سعة ذاكرة وحدة معالجة الرسومات.

التدريب باستخدام PyTorch FSDP، الذي يقسم المعلمات والتدرجات وحالة المُحسِّن عبر وحدات معالجة الرسومات ويجمعها في كل طبقة حسب الطلب.

تطبيق ZeRO-Offload لدفع حالة المُحسِّن إلى ذاكرة وحدة المعالجة المركزية، مما يسمح لوحدة معالجة رسومات واحدة بتدريب نموذج أكبر بعدة مرات من VRAM الخاصة به.

توسيع نطاق نموذج تريليون معلمة باستخدام ZeRO-Infinity عن طريق دفق أجزاء المعلمات من وحدة تخزين NVMe عند نفاد ذاكرة وحدة المعالجة المركزية (GPU) ووحدة المعالجة المركزية (CPU).

المخاطر والدرابزين

يمكن أن يؤدي تحسين معيار واحد إلى إخفاء نقاط ضعف النظام الأوسع.

غالبًا ما يتم التقليل من تكاليف البنية التحتية والصيانة.

يمكن أن تنمو الفجوات الأمنية وقابلية المراقبة عندما تصبح الأنظمة أكثر تعقيدًا.

خارطة طريق التنفيذ

1

تحديد الكمون والجودة وأهداف التكلفة قبل التنفيذ.

2

المعيار في ظل ظروف التحميل والبيانات الواقعية.

3

مراقبة الأدوات للأخطاء والانجراف وتأثير المستخدم.

4

قم بإعداد مسارات التراجع والاستجابة للحوادث قبل القياس.

استمر في الاستكشاف

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the ZeRO and Sharded Optimizers quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

ابدأ الاختبار

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

الدليل التالي

Lookahead و Lion Optimizers

الأسئلة المتداولة

What is ZeRO and Sharded Optimizers?

تعمل تقنية Zero Redundancy Optimizer على التخلص من ازدواجية الذاكرة المهدرة لتوازي البيانات من خلال تقسيم حالة المحسن والتدرجات والأوزان عبر وحدات معالجة الرسومات. فهو يتيح لك تدريب نماذج هائلة مع بساطة توازي البيانات ولكن مع جزء صغير من الذاكرة لكل وحدة معالجة رسومات.

ما هو التكرار الذي يزيله Zero مقارنة بتوازي البيانات العادي؟

يقوم توازي البيانات القياسية بتخزين نسخة كاملة من حالة المحسن والتدرجات والأوزان على كل وحدة معالجة رسومات؛ تقوم ZeRO بتقسيمها بحيث تحتوي كل وحدة معالجة رسومات على شريحة فقط.

لماذا غالبًا ما تكون حالة المُحسِّن أكبر خسارة للذاكرة لدى آدم؟

يحتفظ Adam بتقديرات جارية مثل اللحظات الأولى والثانية لكل معلمة، والتي يمكن أن تؤدي، مع الأوزان الرئيسية fp32، إلى تقزيم حجم النموذج نفسه.

ما الذي لا تحتويه المرحلة 3 من Zero والتي لا تحتوي عليها المرحلتان 1 و 2؟

حالة مُحسِّن أجزاء المرحلة 1، وتضيف المرحلة 2 التدرجات، وتذهب المرحلة 3 إلى أبعد من ذلك من خلال مشاركة معلمات النموذج عبر وحدات معالجة الرسومات أيضًا.

في ZeRO Stage 3، كيف يمكن لوحدة معالجة الرسومات الحصول على المعلمات الكاملة التي تحتاجها للتمرير الأمامي للطبقة؟

قبل حساب الطبقة، يقوم التجميع الشامل بتجميع معلماته الكاملة على كل وحدة معالجة رسومات؛ وبمجرد الانتهاء من ذلك، يتم تحرير الشرائح غير المملوكة لاستعادة الذاكرة.

ما هي ميزة PyTorch التي تطبق في الأصل أسلوب التقسيم الصفري؟

تقوم معلمات PyTorch's Fully Sharded Data Parallel (FSDP) بتقطيع المعلمات والتدرجات وحالة المُحسِّن، وجمعها وإعادة تقسيمها بسرعة، مما يعكس الصفر.