Kubernetes
استكشف كيف يقوم Kubernetes بأتمتة نشر وتوسيع نماذج الذكاء الاصطناعي. تعلم تنظيم Ultralytics YOLO26 على K8s لرؤية حاسوبية عالية الأداء.
يُشار إلى Kubernetes غالبًا باسم K8s، وهي منصة مفتوحة المصدر مصممة لأتمتة نشر التطبيقات الحاوية وتوسيع نطاقها وإدارتها. تم تطوير Kubernetes في الأصل بواسطة Google ويتم صيانتها الآن بواسطة Cloud Native Computing Foundation (CNCF)، وأصبحت المعيار السائد لتنسيق البرمجيات في السحابة. في سياق Artificial Intelligence (AI) و Machine Learning (ML)، تعمل كطبقة البنية التحتية الأساسية التي تتيح فرق الهندسة إدارة سير العمل المعقد، بدءًا من distributed training وحتى الاستدلال الإنتاجي عالي التوفر. من خلال تجريد الأجهزة الأساسية، تضمن Kubernetes تشغيل التطبيقات بشكل موثوق وفعال، بغض النظر عما إذا كانت استضافتها محلية أو عبر موفري الحوسبة السحابية العامة.
البنية الأساسية والمفاهيم#
في جوهرها، تعمل Kubernetes على بنية نظام مجموعة (cluster)، والتي تتكون من مجموعة من الأجهزة العاملة تسمى عقد (nodes). تشغيل هذه العقد أحمال عمل containerization، بينما تدير لوحة التحكم الحالة العامة للنظام المجموعة. أصغر وحدة قابلة للنشر في Kubernetes هي "Pod"، والتي تغلف حاوية واحدة أو أكثر تشارك موارد التخزين والشبكة. هذا التجريد حيوي لتطبيقات computer vision، لأنه يسمح للمطورين بحزم التبعيات — مثل مكتبات CUDA المحددة لـ Graphics Processing Units (GPUs) — في بيئة متسقة. توفر خدمات السحابة الرئيسية مثل Amazon Elastic Kubernetes Service (EKS)، و Azure Kubernetes Service (AKS)، و Google Kubernetes Engine (GKE) إصدارات مدارة من هذه البنية، مما يبسط عبء الصيانة لفرق علوم البيانات.
لماذا تعد Kubernetes مهمة للذكاء الاصطناعي#
تكمن القيمة الأساسية لـ Kubernetes في Machine Learning Operations (MLOps) في قدرتها على التعامل مع أحمال العمل الديناميكية. غالبًا ما تتطلب نماذج الذكاء الاصطناعي قوة حاسوبية هائلة أثناء التدريب و inference latency منخفضة أثناء النشر.
- قابلية التوسع: تستخدم Kubernetes التحجيم التلقائي لضبط الموارد تلقائيًا. في حالة حدوث زيادة مفاجئة في حركة المرور، يمكن لـ Horizontal Pod Autoscaler زيادة عدد وحدات الاستدلال للحفاظ على scalability دون تدخل يدوي.
- تحسين الموارد: يعد التخصيص الفعال للأجهزة باهظة الثمن أمراً بالغ الأهمية. تتيح Kubernetes مشاركة وحدات GPU جزئياً وتقارب العقد، مما يضمن أن نماذج التعلم العميق تستهلك الموارد فقط عندما تتطلب الوظائف النشطة ذلك.
- النشر المرن: يعد ضمان توفر عالية أثناء model deployment أمرًا بالغ الأهمية. في حالة تعطل العقدة، تقوم Kubernetes تلقائيًا بإعادة تشغيل الوحدات المتأثرة على العقد السليمة، مما يمنع تعطل خدمات API الحرجة.
تطبيقات العالم الحقيقي#
تعد Kubernetes العمود الفقري للعديد من تطبيقات الذكاء الاصطناعي واسعة النطاق عبر مختلف الصناعات:
-
إدارة حركة المرور في المدن الذكية: قد تقوم البلدية بنشر نماذج Ultralytics YOLO26 لتحليل لقطات الفيديو من آلاف التقاطعات. باستخدام Kubernetes، يمكن للنظام توسيع نطاق الموارد ديناميكيًا خلال ساعات الذروة للتعامل مع حمل object detection المتزايد وتقليص النطاق ليلاً لتوفير التكاليف. هذا النهج أساسي لأنظمة traffic management systems الحديثة.
-
تخصيص التجارة الإلكترونية: يستفيد تجار التجزئة عبر الإنترنت من recommendation systems المعقدة المبنية على الخدمات المصغرة. قد تتعامل خدمة واحدة مع توليد المرشحين بينما تدير خدمة أخرى إعادة الترتيب. تنسق Kubernetes هذه الخدمات المتميزة، مما يسمح للفرق بتحديث neural network الخاصة بالترتيب بشكل مستقل دون تعطيل تجربة التسوق بأكملها، مما يسهل التكامل المستمر.
الفرق بين Kubernetes و Docker#
نقطة الارتباك الشائعة هي العلاقة بين Kubernetes و Docker. فهما ليسَا منافسين بل تقنيات متكاملة. Docker هي أداة لإنشاء وتشغيل الحاويات الفردية (حزم التطبيق)، بينما Kubernetes هي أداة لإدارة أسطول من تلك الحاويات عبر أجهزة متعددة. أنت تستخدم Docker لبناء model weights والشفرة الخاصة بك في صورة، ثم تستخدم Kubernetes لتحديد أين ومتى وعدد النسخ من تلك الصورة التي تعمل في الإنتاج.
مثال: برنامج استنتاج للتغليف في حاويات#
لنشر نموذج على Kubernetes، يبدأ المطورون عادةً ببرنامج نصي لـ Python يعمل نقطة دخول للحاوية. يوضح الكود التالي مهمة استدلال بسيطة باستخدام نموذج Ultralytics YOLO26. سيتم تشغيل هذا البرنامج النصي داخل وحدة، لمعالجة الطلبات الواردة.
from ultralytics import YOLO
# Load the lightweight YOLO26 model
model = YOLO("yolo26n.pt")
# Perform inference on an image source
# In a K8s pod, this would likely process API payloads
results = model("https://ultralytics.com/images/bus.jpg")
# Output the detection count for logging
print(f"Detected {len(results[0].boxes)} objects in the frame.")الأدوات والنظام البيئي#
يتضمن نظام Kubernetes البيئي مجموعة واسعة من الأدوات المصممة خصيصًا لعلوم البيانات. Kubeflow هي مجموعة أدوات شائعة مخصصة لجعل عمليات نشر سير عمل التعلم الآلي على Kubernetes بسيطة وقابلة للنقل وقابلة للتوسع. لمراقبة صحة النظام الأساسي ومقاييس التطبيقات، يعتمد المهندسون غالبًا على Prometheus. لتبسيط تعقيد تدريب النماذج ونشرها في هذه البيئات بشكل أكبر، توفر Ultralytics Platform واجهة موحدة تؤتمت إدارة مجموعات البيانات وتدريب النماذج، مما يسمح للمستخدمين بتصدير نماذج جاهزة لعِقَد cloud computing. بالإضافة إلى ذلك، تساعد مديرو الحزم مثل Helm في إدارة تطبيقات Kubernetes المعقدة من خلال مخططات قابلة لإعادة الاستخدام.






