اكتشف كيف يقوم Kubernetes بأتمتة نشر نماذج الذكاء الاصطناعي وتوسيع نطاقها. تعلم كيفية تنسيق Ultralytics على K8s للحصول على رؤية حاسوبية عالية الأداء.
Kubernetes، الذي يشار إليه غالبًا باسم K8s، هو منصة مفتوحة المصدر مصممة لأتمتة نشر وتوسيع نطاق وإدارة التطبيقات المعبأة في حاويات. تم تطوير Kubernetes في الأصل بواسطة Google صيانته حاليًا بواسطة Cloud Native Computing Foundation (CNCF)، وقد أصبح المعيار القياسي لتنسيق البرامج في السحابة. في سياق الذكاء الاصطناعي (AI) و التعلم الآلي (ML)، تعمل كطبقة البنية التحتية الحيوية التي تسمح لفرق الهندسة بإدارة سير العمل المعقد، من التدريب الموزع إلى الاستدلال الإنتاجي عالي التوافر . من خلال تجريد الأجهزة الأساسية، يضمن Kubernetes تشغيل التطبيقات بشكل موثوق و فعال، بغض النظر عما إذا كانت مستضافة محليًا أو عبر مزودي الخدمات السحابية العامة.
يعمل Kubernetes في جوهره على بنية عنقودية تتكون من مجموعة من الأجهزة العاملة تسمى العقد. تقوم هذه العقد بتشغيل أحمال عمل الحاويات ، بينما تدير طائرة التحكم الحالة العامة للمجموعة. أصغر وحدة قابلة للنشر في Kubernetes هي "Pod"، والتي تغلف حاوية واحدة أو أكثر تشترك في موارد التخزين والشبكة. هذا التجريد ضروري لتطبيقات الرؤية الحاسوبية، لأنه يسمح للمطورين بتعبئة التبعيات—مثل CUDA المحددة وحدات معالجة الرسومات (GPUs)— في بيئة متسقة. توفر خدمات السحابة الرئيسية مثل Amazon Elastic Kubernetes Service (EKS) و Azure Kubernetes Service (AKS) و Google Engine (GKE) إصدارات مُدارة من هذه البنية، مما يبسط عبء الصيانة على فرق علوم البيانات.
تكمن القيمة الأساسية لـ Kubernetes في عمليات التعلم الآلي (MLOps) في قدرتها على التعامل مع أحمال العمل الديناميكية. غالبًا ما تتطلب نماذج الذكاء الاصطناعي قوة حسابية هائلة أثناء التدريب وزمن استدلال منخفض أثناء النشر.
Kubernetes هو العمود الفقري للعديد من تطبيقات الذكاء الاصطناعي واسعة النطاق في مختلف الصناعات:
من النقاط التي تسبب الارتباك في كثير من الأحيان العلاقة بين Kubernetes و Docker. فهما ليسا منافسين بل تقنيتان متكاملتان . Docker هي أداة لإنشاء وتشغيل حاويات فردية (تعبئة التطبيق)، بينما Kubernetes أداة لإدارة مجموعة من تلك الحاويات عبر أجهزة متعددة. تستخدم Docker لإنشاء أوزان النموذج والرمز في صورة، ثم تستخدم Kubernetes لتحديد مكان وتوقيت وعدد نسخ تلك الصورة التي يتم تشغيلها في الإنتاج.
لنشر نموذج على Kubernetes، يبدأ المطورون عادةً Python يعمل كنقطة دخول للحاوية. يوضح الكود التالي مهمة استدلال بسيطة باستخدام نموذج Ultralytics . سيتم تشغيل هذا البرنامج النصي داخل pod، لمعالجة الطلبات الواردة.
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 واجهة موحدة تعمل على أتمتة إدارة مجموعات البيانات وتدريب النماذج، مما يتيح للمستخدمين تصدير النماذج الجاهزة لمجموعات الحوسبة السحابية. بالإضافة إلى ذلك، تساعد برامج إدارة الحزم مثل Helm في إدارة تطبيقات Kubernetes المعقدة من خلال مخططات قابلة لإعادة الاستخدام.