Yolo فيجن شنتشن
شنتشن
انضم الآن
مسرد المصطلحات

الحاويات

تعرف على كيفية تبسيط نشر الذكاء الاصطناعي بفضل استخدام الحاويات. اكتشف كيفية استخدام Docker و Kubernetes لتشغيل Ultralytics بشكل متسق في أي بيئة.

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

لماذا تعتبر الحاويات مهمة بالنسبة للذكاء الاصطناعي

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

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

الحاويات مقابل الآلات الافتراضية

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

التقنيات الأساسية

تشكل عدة تقنيات رئيسية العمود الفقري لنظام الحاويات الحديث:

  • Docker: المنصة الأكثر استخدامًا لـ بناء وتشغيل وإدارة الحاويات. Ultralytics دليل Docker Quickstart لمساعدة المستخدمين على نشر نماذج الكشف عن الكائنات بسهولة دون الحاجة إلى إعداد البيئة يدويًا.
  • Kubernetes: نظام مفتوح المصدر لأتمتة نشر وتوسيع وإدارة التطبيقات المعبأة في حاويات. وهو ضروري لإدارة مجموعات كبيرة من الحاويات في خطوط أنابيب MLOps المؤسسية.
  • سجلات الحاويات: خدمات مثل NVIDIA Catalog تخزن وتوزع صور الحاويات التي غالبًا ما تأتي مُحسّنة مسبقًا لمهام محددة، مثل التدريب على النماذج GPU.
  • مبادرة الحاويات المفتوحة (OCI): معيار صناعي يضمن توافق تنسيقات الحاويات ووقت التشغيل عبر مختلف المنصات، بدعم من مبادرة الحاويات المفتوحة.

تطبيقات واقعية

تعد الحاويات أمراً شائعاً في سير عمل الذكاء الاصطناعي الحديث، حيث تتيح التكرار السريع والنشر الموثوق.

  1. مراقبة المدن الذكية: تنشر البلديات أنظمة إدارة المرور باستخدام كاميرات متصلة بالشبكة. باستخدام الحاويات، يمكن للمهندسين دفع تحديثات البرامج إلى آلاف الأجهزة الطرفية في وقت واحد. إذا كان نموذج جديد للكشف عن الأجسام يحسن الدقة، يتم تحديث الحاوية لاسلكيًا، مما يضمن أداءً متسقًا عبر البنية التحتية للمدينة بأكملها.
  2. البحوث القابلة للتكرار: في البحوث الأكاديمية والصناعية، يعد تكرار النتائج أمرًا بالغ الأهمية. من خلال نشر صورة Docker تحتوي على نصوص معالجة بيانات التدريب وبنية النموذج بالضبط، يضمن الباحثون أن زملاءهم المراجعين يمكنهم تكرار التجربة بدقة. وهذا أمر حيوي لتحقق من صحة التطورات في التعلم العميق (DL).

مثال: الاستدلال في حاوية

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

from ultralytics import YOLO

# Load the YOLO26 model (weights are usually baked into the container image)
# YOLO26 is the latest state-of-the-art model for real-time tasks
model = YOLO("yolo26n.pt")

# Perform inference on an image URL
# In production, this might handle API requests or video streams
results = model.predict("https://ultralytics.com/images/bus.jpg")

# Print the number of detected objects to the logs
print(f"Inference complete. Detected {len(results[0].boxes)} objects.")

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

انضم إلى مجتمع Ultralytics

انضم إلى مستقبل الذكاء الاصطناعي. تواصل وتعاون وانمو مع المبتكرين العالميين

انضم الآن