أهمية Kubernetes في MLOps وتأثيره على الأعمال الحديثة

MLOps، أو عمليات التعلم الآلي، هي مجموعة من الممارسات التي تجمع بين التعلم الآلي (ML)، هندسة البيانات، وDevOps لتبسيط وأتمتة دورة حياة نموذج التعلم الآلي من البداية إلى النهاية. MLOps هو جانب أساسي من سير العمل الحالي في علوم البيانات. إنه عنصر أساسي في مشهد تكنولوجيا المعلومات المعاصر، ومن المتوقع أن تزداد تأثيراته بشكل كبير في السنوات القادمة. يشمل كل شيء من معالجة البيانات وتطوير النماذج إلى النشر، والمراقبة، والتحسين المستمر، مما يجعله تخصصًا حيويًا في دمج التعلم الآلي في بيئات الإنتاج.

ومع ذلك، يكمن تحدٍ كبير في MLOps في الطلب على بنية تحتية قابلة للتوسع ومرنة قادرة على التعامل مع المتطلبات المميزة لأعباء العمل في التعلم الآلي. بينما تكون دورة التطوير غالبًا تجريبية، وعادةً ما تستخدم أدوات تفاعلية مثل دفاتر Jupyter، يتطلب نشر الإنتاج الأتمتة والقابلية للتوسع.

Kubernetes، أداة حاويات أو تنسيق، تقدم هذه البنية التحتية الأساسية لدعم MLOps على نطاق واسع، مما يضمن المرونة، وقابلية التوسع، وإدارة الموارد بكفاءة لمجموعة متنوعة من سير العمل في ML. لفهم أهميتها بشكل أكبر، دعنا نقسمها باستخدام أمثلة بسيطة من الحياة الواقعية.

1. قابلية التوسع وإدارة الموارد

يوفر Kubernetes دعمًا استثنائيًا لتوسيع نطاق سير العمل في تعلم الآلة، الذي يتطلب غالبًا موارد حسابية كبيرة. خاصةً بالنسبة لنماذج التعلم العميق، فإن التوسع الديناميكي أمر بالغ الأهمية لإدارة الأحمال المتغيرة أثناء مراحل التدريب والاستدلال. يقوم Kubernetes بأتمتة تنسيق الموارد، مما يمكّن من التوسع الأفقي للخدمات المعبأة استجابةً للطلب في الوقت الحقيقي. في خطوط أنابيب MLOps، تتضمن الأحمال عادةً مجموعات بيانات كبيرة، والعديد من مهام هندسة الميزات، وتدريب نماذج يتطلب موارد كثيفة. يقوم Kubernetes بتوزيع هذه المهام بفعالية عبر العقد داخل مجموعة، مخصصًا ديناميكيًا موارد المعالج المركزي (CPU) ووحدات معالجة الرسوميات (GPU) وموارد الذاكرة بناءً على احتياجات كل مهمة. تضمن هذه الطريقة تحقيق أداء مثالي عبر سير العمل في تعلم الآلة، بغض النظر عن حجم البنية التحتية. علاوة على ذلك، تعزز قدرات التوسع الذاتي في Kubernetes كفاءة التكلفة من خلال تقليل الموارد غير المستخدمة خلال فترات الطلب المنخفض.

مثال

على سبيل المثال، قد ترى شركة تدير نظام توصيات (مثل Netflix التي تقترح أفلامًا) زيادة في الطلب في أوقات معينة من اليوم. يتأكد Kubernetes من أن النظام يمكنه التعامل مع المزيد من الطلبات خلال ساعات الذروة والتقليل عندما يكون الوضع أكثر هدوءًا. بنفس الطريقة، تستخدم Airbnb Kubernetes لإدارة أحمال عمل تعلم الآلة الخاصة بها للبحث والتوصيات المخصصة. مع تذبذب حركة المرور من المستخدمين، تستفيد Airbnb من Kubernetes لتوسيع خدمات تعلم الآلة تلقائيًا. على سبيل المثال، خلال مواسم السفر الذروة، يقوم Kubernetes بتخصيص المزيد من الموارد بشكل ديناميكي للتعامل مع زيادة طلبات المستخدمين، مما يساعد على تحسين التكاليف وضمان توافر عالي.

2. الاتساق عبر البيئات

تعتبر واحدة من التحديات الأساسية في MLOps ضمان قابلية إعادة إنتاج تجارب ونماذج التعلم الآلي. تخيل أنك تخبز كعكة وترغب في أن تكون النتيجة هي نفسها، سواء كنت تخبز في المنزل أو في مطبخ تجاري. تتبع نفس الوصفة لضمان التناسق. يقوم Kubernetes بشيء مشابه من خلال استخدام الحاويات. تقوم هذه الحاويات بتغليف نموذج التعلم الآلي وجميع تبعياته (البرمجيات، المكتبات، إلخ)، بحيث يعمل بنفس الطريقة سواء كان يتم اختباره على حاسوب مطور أو يعمل في بيئة سحابية كبيرة. هذا أمر حاسم لمشاريع التعلم الآلي لأن حتى الاختلافات الصغيرة في الإعداد يمكن أن تؤدي إلى نتائج غير متوقعة.

مثال

اعتمدت Spotify على Kubernetes لتعبئة نماذج التعلم الآلي الخاصة بها في حاويات وضمان قابلية إعادة الإنتاج عبر بيئات مختلفة. من خلال تغليف النماذج مع جميع التبعيات في حاويات، تقلل Spotify من التباينات التي قد تنشأ أثناء النشر. لقد سمح هذا الممارسة لـ Spotify بالحفاظ على التناسق في كيفية أداء النماذج عبر بيئات التطوير والاختبار والإنتاج، مما يقلل من مشكلة “يعمل على جهازي”.

3. أتمتة العمل

في سير عمل MLOps النموذجي، يقوم علماء البيانات بتقديم تحديثات الكود والنماذج إلى أنظمة التحكم في الإصدارات. تُفعل هذه التحديثات خطوط CI التلقائية التي تتولى بناء واختبار والتحقق من النماذج ضمن بيئات محمولة. يُبسط Kubernetes هذه العملية من خلال تنسيق المهام المحمولة، مما يضمن أن كل مرحلة من مراحل تطوير واختبار النموذج تُنفذ في بيئة قابلة للتوسع ومعزولة. خلال ذلك، يتم نشر النماذج، بعد التحقق منها، بسلاسة في بيئات الإنتاج باستخدام ميزات النشر والتوسع الأصلية لـ Kubernetes، مما يتيح تحديثات مستمرة وموثوقة ومنخفضة الكمون لنماذج التعلم الآلي.

مثال

على سبيل المثال، عندما تكون نسخة جديدة من نموذج ML جاهزة (مثل فلتر البريد المزعج في Gmail)، يمكن لـ Kubernetes تنفيذها تلقائيًا، مما يضمن أدائها الجيد واستبدال النسخة القديمة دون انقطاع. وبالمثل، تستخدم Zalando – أحد بائعي الأزياء الرئيسيين في أوروبا – Kubernetes في خط أنابيب CI/CD لتحديثات نماذج ML.

4. تحسين المراقبة وحوكمة النموذج

يمكن أن تكون مراقبة نماذج التعلم الآلي في الإنتاج صعبة للغاية بسبب الطبيعة المتغيرة باستمرار لمدخلات البيانات وسلوك النماذج المتطور بمرور الوقت. يُحسن Kubernetes بشكل كبير من قابلية مراقبة أنظمة ML من خلال تقديم أدوات مراقبة متكاملة مثل Prometheus وGrafana، بالإضافة إلى قدراته الأصلية في تسجيل البيانات. تتيح هذه الأدوات لعلماء البيانات ومهندسي MLOps مراقبة المقاييس الأساسية المتعلقة بأداء النظام، مثل استخدام وحدة المعالجة المركزية، والذاكرة، ووحدة معالجة الرسوميات، بالإضافة إلى المقاييس المحددة للنموذج مثل دقة التنبؤ، ووقت الاستجابة، واكتشاف الانحراف.

مثال

على سبيل المثال، تساعد قدرات Kubernetes شركة NVIDIA في تحديد مقاييس مخصصة تتعلق بنماذج التعلم الآلي الخاصة بهم، مثل انحراف النموذج أو التغيرات في الدقة مع مرور الوقت. قاموا بإعداد تنبيهات لإخطار علماء البيانات ومهندسي MLOps عندما تسقط هذه المقاييس خارج الحدود المقبولة. تساعد هذه المراقبة الاستباقية في الحفاظ على أداء النموذج وتضمن أن النماذج تعمل كما هو مقصود.

5. تنسيق التدريب والتنبؤ الموزعين

كان Kubernetes أساسيًا في تنسيق التدريب والتنبؤ الموزعين لنماذج التعلم الآلي على نطاق واسع. يتطلب تدريب نماذج معقدة، وخاصة الشبكات العصبية العميقة، غالبًا توزيع المهام الحاسوبية عبر عدة آلات أو عقد، وغالبًا ما يستفيد من الأجهزة المتخصصة مثل وحدات معالجة الرسوميات (GPUs) أو وحدات معالجة التنسور (TPUs). يوفر Kubernetes دعمًا أصليًا لأطر الحوسبة الموزعة مثل TensorFlow وPyTorch وHorovod، مما يمكّن مهندسي التعلم الآلي من توسيع نطاق تدريب النماذج بكفاءة عبر العناقيد.

مثال

تستخدم شركة Uber، على سبيل المثال، Kubernetes للتدريب الموزع لنماذج التعلم الآلي الخاصة بها المستخدمة في خدمات متنوعة، بما في ذلك مشاركة الركوب وتوصيل الطعام. بالإضافة إلى ذلك، يقوم Kubernetes بخدمة النماذج في الوقت الحقيقي لتقديم تقديرات زمن الوصول (ETAs) والأسعار للمستخدمين مع زمن انتقال منخفض، مع التوسع بناءً على الطلب خلال ساعات الذروة.

6. مرونة الهجين والسحابة المتعددة

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

مثال

على سبيل المثال، تستخدم Alibaba Kubernetes لتشغيل أعباء عمل التعلم الآلي عبر كل من مراكز بيانات على الأرض وبيئات السحاب العام. يسمح هذا الإعداد الهجين لـ Alibaba بإدارة مشاكل السيادة البياناتية بينما يوفر المرونة لتوسيع أعباء العمل استنادًا إلى الطلب. من خلال استخدام قدرات Kubernetes التي لا تعتمد على السحابة، يمكن لـ Alibaba نشر وإدارة نماذجها بكفاءة عبر بيئات مختلفة، مما يحسن الأداء والتكلفة.

7. مقاومة الأخطاء

تضمن كوبرنيتيس قدرته على تحمل الأخطاء أن تستمر أعباء العمل الخاصة بتعلّم الآلة بسلاسة، حتى إذا ما حدثت فشل في العقدات الفردية أو الحاويات. هذه الميزة أساسية للتدريب الموزع، حيث يمكن أن يضطر فقدان عقدة لإعادة بدء عملية التدريب بأكملها، مما يؤدي إلى إضاعة الوقت والموارد الحسابية. تراقب كوبرنيتيس باستمرار خطة التحكم للصحة العامة للعقدات والمنصات، وعندما يكتشف فشلًا في العقدة، يميّز تلقائيًا العقدة المتضررة كـ “غير صحية”. ثم يعيد كوبرنيتيس جدولة العبء العملي من العقدة المعطلة إلى عقدة صحية أخرى في المجموعة. إذا كانت هناك عقد GPU متاحة، سيختار كوبرنيتيس تلقائيًا واحدة، مما يسمح بمواصلة التدريب دون انقطاع.

مثال

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

الختام

أصبح Kubernetes أساسيًا في MLOps، حيث يوفر بنية تحتية قوية لإدارة وتوسيع سير العمل في تعلم الآلة بشكل فعال. إن قوته في تنظيم الموارد، وتعبئة الحاويات، والنشر المستمر، والمراقبة تسهل دورة حياة نموذج تعلم الآلة بالكامل، من التطوير إلى الإنتاج. مع زيادة تعقيد وأهمية نماذج تعلم الآلة ضمن عمليات المؤسسات، سيظل Kubernetes أداة مهمة في تعزيز قابلية التوسع، والكفاءة، والموثوقية لممارسات MLOps. بالإضافة إلى دعمه للتنفيذ الفني، يدفع Kubernetes أيضًا الابتكار والتميز التشغيلي في الأنظمة المدفوعة بالذكاء الاصطناعي.

Source:
https://dzone.com/articles/the-importance-of-kubernetes-in-mlops