Kubernetes
اكتشف كيف تعمل Kubernetes على تبسيط أعباء عمل الذكاء الاصطناعي/التعلم الآلي من خلال نشر النماذج القابلة للتطوير، والتدريب الموزع، وإدارة الموارد بكفاءة.
Kubernetes، والتي غالبًا ما يتم اختصارها إلى K8s، هي عبارة عن منصة مفتوحة المصدر لتنسيق الحاويات تعمل على أتمتة نشر وتوسيع نطاق وإدارة التطبيقات المحتواة في حاويات. توفر Kubernetes، التي طورتها Google في الأصل وتتولى صيانتها الآن مؤسسة الحوسبة السحابية الأصلية (CNCF)، إطارًا قويًا لتشغيل الأنظمة الموزعة والمرنة. في سياق الذكاء الاصطناعي (AI) و التعلم الآلي (ML)، أصبحت أداة أساسية لإدارة دورة الحياة الكاملة لنماذج تعلم الآلة، بدءًا من التدريب وحتى النشر في بيئات الإنتاج.
كيف يعمل Kubernetes
تعمل Kubernetes على مجموعة من الأجهزة، والتي يمكن أن تكون خوادم فعلية أو أجهزة افتراضية، سواء في مقر العمل أو في السحابة. تشمل المكونات الرئيسية ما يلي:
- المجموعة: مجموعة من العقد (آلات عاملة) تقوم بتشغيل التطبيقات المعبأة في حاويات.
- Node (عقدة): جهاز عامل في مجموعة Kubernetes. تقوم كل عقدة بتشغيل Kubelet، وهو وكيل لإدارة العقدة والتواصل مع مستوى التحكم.
- وحدة Pod: أصغر وحدة وأبسطها في نموذج كوبرنيتيس (Kubernetes). تمثل الوحدة Pod مثيلًا واحدًا لعملية قيد التشغيل في مجموعة، ويمكن أن تحتوي على حاوية واحدة أو أكثر، مثل حاويات Docker.
- النشر: يدير مجموعة من Pods المتماثلة، مما يضمن تشغيل عدد محدد منها في جميع الأوقات. يتعامل مع التحديثات والتراجعات تلقائيًا.
من خلال تجريد الأجهزة الأساسية، يسمح Kubernetes للمطورين ومهندسي MLOps بتحديد الحالة المطلوبة لتطبيقهم، ويعمل على الحفاظ على هذه الحالة، والتعامل مع حالات الفشل وتلبية احتياجات التوسع تلقائيًا. يمكنك معرفة المزيد من وثائق Kubernetes الرسمية.
Kubernetes في الذكاء الاصطناعي والتعلم الآلي
تعتبر Kubernetes قوية بشكل خاص في عمليات تعلم الآلة (MLOps) لأنها تعالج العديد من التحديات المرتبطة ببناء ونشر أنظمة الذكاء الاصطناعي على نطاق واسع. إن قدرتها على إدارة الموارد بكفاءة تجعلها مثالية للمهام التي تتطلب موارد مكثفة مثل تدريب النماذج. يمكن لـ Kubernetes توسيع نطاق مهام التدريب عبر وحدات معالجة الرسوميات GPUs وعقد متعددة، مما يقلل بشكل كبير من وقت التدريب.
للاستدلال، تضمن Kubernetes توافرًا وقابلية توسع عالية. فيما يلي مثالان واقعيان:
- خدمة اكتشاف الكائنات القابلة للتطوير: تقوم شركة بنشر نموذج Ultralytics YOLO11 لـ اكتشاف الكائنات في الوقت الفعلي كخدمة ويب. يتم تجميع النموذج في حاوية. باستخدام Kubernetes، يمكنهم تلقائيًا توسيع عدد وحدات الاستدلال لأعلى أو لأسفل بناءً على حركة المرور الواردة. إذا فشلت إحدى العقد، يقوم Kubernetes تلقائيًا بإعادة جدولة الوحدات على العقد السليمة، مما يضمن بقاء الخدمة متاحة دون تدخل يدوي. هذا نمط شائع لنشر النماذج في أنظمة المراقبة الذكية.
- خط أنابيب معالجة اللغة الطبيعية المعقد كخدمات مصغرة: يقوم فريق ببناء تطبيق معالجة اللغة الطبيعية (NLP) يتضمن خطوات متعددة: معالجة النص المسبقة وتحليل المشاعر والتعرف على الكيانات المسماة. كل مكون هو خدمة مصغرة منفصلة، ومحفوظة في حاويات بشكل مستقل. تقوم Kubernetes بتنسيق هذه الخدمات وإدارة شبكاتها والسماح بتحديث وتوسيع نطاق كل جزء بشكل مستقل. توفر هذه البنية المرونة والمرونة لـ التطبيقات المدفوعة بالذكاء الاصطناعي المعقدة.
Kubernetes مقابل التقنيات ذات الصلة
- Kubernetes مقابل Docker: Docker هي أداة لإنشاء وتشغيل الحاويات الفردية. Kubernetes هي أداة تنسيق لـ الحاويات، حيث تدير الآلاف منها عبر العديد من الأجهزة. إنها ليست منافسة ولكنها متعاونة؛ يمكنك إنشاء صور حاويات باستخدام Docker ثم إدارتها باستخدام Kubernetes. يمكنك البدء بالأساسيات باتباع دليل البدء السريع لـ Docker.
- Kubernetes مقابل الحوسبة بدون خادم: المنصات بدون خادم (Serverless platforms) مثل AWS Lambda تجرد جميع عمليات إدارة الخادم. في المقابل، توفر Kubernetes مزيدًا من التحكم في البنية التحتية، مما يجعلها أفضل للتطبيقات طويلة الأجل أو ذات الحالة. في حين أن الحوسبة بدون خادم أبسط للوظائف المستندة إلى الأحداث، يمكن للأطر بدون خادم العمل على Kubernetes باستخدام أدوات مثل Knative.
الأدوات والنظام البيئي
نظام Kubernetes البيئي واسع ويشمل العديد من الأدوات لتوسيع وظائفه: