Containerization
تعلم كيف تبسط الحاويات (containerization) نشر الذكاء الاصطناعي. اكتشف كيفية استخدام Docker و Kubernetes لتشغيل Ultralytics YOLO26 بشكل متسق عبر أي بيئة.
الحوسبة بالحاويات هي استراتيجية نشر برمجيات تجمع الشفرة المصدرية للتطبيق مع مكتباته وملفات الاعتماديات وملفات التكوين في وحدة تنفيذية واحدة خفيفة الوزن تُعرف بالحاوية. يفصل هذا النهج البرمجيات عن البنية التحتية الأساسية، مما يضمن تشغيل التطبيقات باستمرار عبر بيئات الحوسبة المختلفة، بدءاً من الحاسوب المحمول المحلي للمطور وصولاً إلى تجمعات الحوسبة السحابية الضخمة. وفي سياق التعلم الآلي (ML)، تحل الحوسبة بالحاويات مشكلة "تعمل على جهازي" سيئة السمعة من خلال تغليف البيئة المعقدة اللازمة لتدريب وتشغيل الشبكات العصبية.
لماذا تعد الحاويات مهمة للذكاء الاصطناعي#
بالنسبة لعلماء البيانات ومهندسي تعلم الآلة، تعد إدارة البيئات تحدياً كبيراً. قد تتطلب المشاريع المختلفة إصدارات متضاربة من Python، أو تعريفات CUDA، أو مكتبات مثل PyTorch. تقضي الحاويات على هذه التضاربات من خلال إنشاء بيئات معزولة وغير قابلة للتغيير.
- قابلية النقل: يمكن نقل تطبيق الرؤية الحاسوبية القائم على الحاويات بسلاسة بين مراحل التطوير والاختبار والإنتاج. يضمن هذا أن الأداء الذي يحققه نموذج تم تدريبه على محطة عمل سيكون متطابقاً تماماً عند نشره على خادم.
- الكفاءة: بخلاف الطرق التقليدية، تتشارك الحاويات نواة نظام التشغيل (OS) الخاص بالنظام المضيف، مما يجعلها خفيفة الوزن للغاية. يتيح هذا الكثافة العالية استخداماً أفضل للموارد، وهو أمر بالغ الأهمية لتقليل زمن انتقال الاستدلال في التطبيقات الفورية.
- قابلية التوسع: يمكن لأدوات التنسيق الحديثة إنشاء أو إيقاف مثيلات الحاويات بسرعة استناداً إلى حركة المرور المطلوبة، مما يضمن قابلية التوسع للخدمات ذات الطلب العالي.
الحاويات مقابل الأجهزة الافتراضية#
من المهم التمييز بين الحاويات والأجهزة الافتراضية (VMs). تحاكي الأجهزة الافتراضية حزمة عتاد كاملة بما في ذلك نظام تشغيل ضيف كامل، مما ينتج عنه عبء موارد كبير وأوقات بدء تشغيل أبطأ. في المقابل، تقوم الحوسبة بالحاويات بافتراض نظام التشغيل، مما يسمح بتشغيل تطبيقات متعددة كعمليات معزولة على نواة مشتركة واحدة. تجعل هذه البصمة المصغرة الحاويات الخيار المفضل لسيناريوهات Edge AI التي تكون فيها موارد الأجهزة محدودة، مثل أجهزة إنترنت الأشياء أو الطائرات بدون طيار. للمقارنة التقنية المتعمقة، راجع دليل ريد هات حول الحاويات مقارنة بالأجهزة الافتراضية.
التقنيات الأساسية#
تشكل العديد من التقنيات الرئيسية العمود الفقري لنظام الحاويات البيئي الحديث:
- 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 لحالات استخدام الحاويات.






