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






