Containerization
تعلّم كيف تبسّط الحاويات نشر الذكاء الاصطناعي. اكتشف كيفية استخدام Docker وKubernetes لتشغيل Ultralytics YOLO26 باستمرار في أي بيئة.
الحاويات هي استراتيجية لنشر البرمجيات تجمع الشيفرة المصدرية للتطبيق مع مكتباته وتبعياته وملفات إعداداته في وحدة تنفيذية واحدة وخفيفة تُعرف باسم الحاوية. تعمل هذه الطريقة على تجريد البرمجيات عن البنية التحتية الأساسية، مما يضمن تشغيل التطبيقات بشكل متسق عبر بيئات حوسبة متنوعة، بدءًا من الحاسوب المحمول المحلي للمطوّر وصولًا إلى عناقيد الحوسبة السحابية الضخمة. وفي سياق التعلم الآلي (ML)، تحل الحاويات مشكلة «إنه يعمل على جهازي» سيئة السمعة من خلال احتواء البيئة المعقدة اللازمة لتدريب الشبكات العصبية وتشغيلها.
لماذا تُعدّ الحاويات مهمة للذكاء الاصطناعي#
تمثل إدارة البيئات تحديًا كبيرًا لعلماء البيانات ومهندسي ML. قد تتطلب المشاريع المختلفة إصدارات متعارضة من Python أو برامج تشغيل CUDA أو مكتبات مثل PyTorch. وتزيل الحاويات هذه التعارضات من خلال إنشاء بيئات معزولة وغير قابلة للتغيير.
- قابلية النقل: يمكن نقل تطبيق رؤية حاسوبية موضوع داخل حاوية بسلاسة بين بيئات التطوير والاختبار والإنتاج. ويضمن ذلك أن يؤدي النموذج المدرَّب على محطة عمل بالطريقة نفسها تمامًا عند نشره على خادم.
- الكفاءة: بخلاف الأساليب التقليدية، تشترك الحاويات في نواة نظام التشغيل (OS) الخاص بالنظام المضيف، مما يجعلها خفيفة للغاية. وتتيح هذه الكثافة العالية استخدام الموارد بشكل أفضل، وهو أمر بالغ الأهمية لتقليل زمن استجابة الاستدلال في التطبيقات الفورية.
- قابلية التوسع: يمكن لأدوات التنسيق الحديثة تشغيل مثيلات الحاويات أو إيقافها بسرعة استنادًا إلى الطلب على حركة المرور، مما يضمن قابلية التوسع للخدمات ذات الطلب المرتفع.
الحاويات مقارنةً بالآلات الافتراضية#
من المهم التمييز بين الحاويات والآلات الافتراضية (VMs). تحاكي الآلة الافتراضية مجموعة أجهزة كاملة، بما في ذلك نظام تشغيل ضيف كامل، مما يؤدي إلى استهلاك كبير للموارد وأوقات بدء تشغيل أبطأ. في المقابل، تعمل الحاويات على افتراض نظام التشغيل، مما يتيح تشغيل تطبيقات متعددة كعمليات معزولة على نواة مشتركة واحدة. ويجعل هذا الحجم الأصغر الحاويات الخيار المفضل لسيناريوهات الذكاء الاصطناعي الطرفي حيث تكون موارد الأجهزة محدودة، مثل أجهزة إنترنت الأشياء أو الطائرات المسيّرة. ولمقارنة تقنية أكثر تعمقًا، راجع دليل Red Hat حول الحاويات مقابل الآلات الافتراضية.
التقنيات الأساسية#
تشكل عدة تقنيات رئيسية العمود الفقري لمنظومة الحاويات الحديثة:
- Docker: المنصة الأكثر استخدامًا لإنشاء الحاويات وتشغيلها وإدارتها. تقدم Ultralytics دليل البدء السريع لـ Docker لمساعدة المستخدمين على نشر نماذج اكتشاف الأجسام بسهولة دون إعداد البيئة يدويًا.
- Kubernetes: نظام مفتوح المصدر لأتمتة نشر التطبيقات الموضوعة داخل حاويات وتوسيع نطاقها وإدارتها. وهو ضروري لإدارة عناقيد الحاويات الكبيرة ضمن مسارات MLOps في المؤسسات.
- سجلات الحاويات: تخزن خدمات مثل كتالوج NVIDIA NGC صور الحاويات وتوزعها، وهي غالبًا ما تكون محسّنة مسبقًا لمهام محددة، مثل تدريب النماذج المسرَّع بواسطة GPU.
- مبادرة الحاويات المفتوحة (OCI): معيار صناعي يضمن توافق تنسيقات الحاويات وبيئات تشغيلها عبر المنصات المختلفة، وترعاه مبادرة الحاويات المفتوحة.
التطبيقات الواقعية#
أصبحت الحاويات منتشرة في مسارات عمل الذكاء الاصطناعي الحديثة، مما يتيح التكرار السريع والنشر الموثوق.
-
مراقبة المدن الذكية: تنشر البلديات أنظمة إدارة حركة المرور باستخدام كاميرات متصلة بالشبكة. وباستخدام الحاويات، يمكن للمهندسين دفع تحديثات البرمجيات إلى آلاف الأجهزة الطرفية في الوقت نفسه. وإذا حسّن نموذج جديد لـاكتشاف الأجسام الدقة، تُحدَّث الحاوية عبر الهواء، مما يضمن أداءً متسقًا عبر البنية التحتية للمدينة بأكملها.
-
البحث القابل لإعادة الإنتاج: يُعدّ تكرار النتائج أمرًا بالغ الأهمية في البحوث الأكاديمية والصناعية. ومن خلال نشر صورة 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 حول حالات استخدام الحاويات.









