Docker
استكشف كيف يُمكّن Docker من نشر الذكاء الاصطناعي بطريقة قابلة للتكرار. تعلم كيفية حزم نماذج Ultralytics YOLO26 في حاويات لتوسيع النطاق بسلاسة من السحابة إلى أجهزة الحافة.
Docker هو منصة مفتوحة المصدر تُمكّن المطورين من أتمتة نشر التطبيقات وتوسيع نطاقها وإدارتها باستخدام تقنية الحاويات. في سياق الذكاء الاصطناعي وتعلم الآلة، يعمل Docker كححدة برمجية قياسية تجمع الكود البرمجية وجميع تبعياتها - مثل المكتبات وأدوات النظام والإعدادات - بحيث يعمل التطبيق بسرعة وبموثوقية من بيئة حوسبة إلى أخرى. هذا يقضي على مشكلة "يعمل على جهازي" الشائعة، مما يضمن أن شبكة عصبية مُدربة على جهاز حاسوب محمول لباحث تتصرف تماماً بالطريقة نفسها عند نشرها على خادم سحابي ضخم أو جهاز طرفي.
لماذا تعد Docker مهمة للذكاء الاصطناعي وتعلم الآلة#
تعتمد عمليات تعلم الآلة الحديثة (MLOps) بشكل كبير على إمكانية إعادة الإنتاج والقابلية للنقل. غالباً ما يتضمن مشروع الذكاء الاصطناعي حزمة برمجية معقدة، بما في ذلك إصدارات محددة من Python، وبرامج تشغيل CUDA لـ تسريع وحدة معالجة الرسوميات (GPU)، وأطر عمل التعلم العميق مثل PyTorch أو TensorFlow. تُعد إدارة هذه الأمور يدوياً عبر فرق ومُبنى تحتية مختلفة عرضة للأخطاء.
يُبسط Docker هذا من خلال إنشاء حاويات خفيفة الوزن ومستقلة بذاتها. على عكس الأجهزة الافتراضية التقليدية (VMs) التي تتطلب نظام تشغيل كاملاً لكل مثيل، تتشارك الحاويات نواة نظام التشغيل للجهاز المُضيف ولكنها تعمل في مساحات مستخدمين معزولة. هذا يجعلها أكثر كفاءة في استهلاك الموارد بشكل ملحوظ وأسرع في التشغيل، وهو أمر بالغ الأهمية عند توسيع نطاق البنية التحتية لـ خدمة النموذج أو تشغيل مهام التدريب الموزعة.
تطبيقات العالم الحقيقي#
تعد Docker منتشرة في دورة حياة الذكاء الاصطناعي، بدءاً من التجريب الأولي وصولاً إلى النشر النهائي.
-
بيئات التدريب المتسقة: قد يستخدم فريق علم البيانات صور Docker لمشاركة بيئة تطوير موحدة. على سبيل المثال، يمكن لباحث يعمل على اكتشاف الكائنات سحب صورة مُعدّة مسبقاً تحتوي على جميع برامج التشغيل والمكتبات اللازمة. يضمن هذا أنه عندما يقومون بتدريب نموذج YOLO26، تكون النتائج قابلة لإعادة الإنتاج من قبل زملائهم، بغض النظر عن الاختلافات في الأجهزة الأساسية.
-
نشر الذكاء الاصطناعي على الحافة (Edge AI): في مراقبة المدن الذكية، يلزم دفع النماذج المحدثة إلى الآلاف من الأجهزة الطرفية، مثل كاميرات المرور أو الطائرات بدون طيار. تسمح حاويات Docker للمهندسين بتعبئة إصدار جديد للنموذج ونشره عبر الهواء. نظراً لأن الحاوية تتضمن وقت تشغيل الاستدلال، فإن عملية التحديث تكون سلسة ولا تتداخل مع نظام التشغيل الأساسي للجهاز.
Docker مقابل Kubernetes مقابل الأجهزة الافتراضية#
من المفيد التمييز بين Docker والتقنيات ذات الصلة لفهم دورها المحدد:
- Docker مقابل الأجهزة الافتراضية (VMs): تقوم الأجهزة الافتراضية بمحاكاة الأجهزة، مما يعني أن كل جهاز افتراضي يشغل نظام تشغيل كاملاً (مثل Windows أو Linux) فوق برنامج مراقبة الأجهزة (hypervisor). وهذا يستهلك قدراً كبيراً من الذاكرة وCPU. بينما تقوم Docker بمحاكاة نظام التشغيل، مما يجعل الحاويات أصغر وأسرع بكثير من الأجهزة الافتراضية.
- Docker مقابل Kubernetes: هاتان تقنيتان متكاملتان وليستا متنافستين. Docker هو الأداة المستخدمة لإنشاء وتشغيل الحاويات الفردية. Kubernetes هي منصة لتنسيق الحاويات تدير مجموعات حاويات Docker، وتتولى مهام مثل التوسع التلقائي، وموازنة الأحمال، والإصلاح الذاتي في بيئات الحوسبة السحابية واسعة النطاق.
مثال: تشغيل الاستنتاج داخل حاوية#
يوضح المثال التالي كيف قد يبدو سكريبت Python داخل حاوية Docker مصممة لرؤية الكمبيوتر. يستخدم هذا السكريبت حزمة ultralytics لتحميل نموذج وإجراء الاستدلال. تضمن بيئة الحاوية أن التبعيات الصحيحة (مثل opencv-python و torch) موجودة بالفعل.
from ultralytics import YOLO
# Load the YOLO26 model (weights are typically included in the Docker image)
model = YOLO("yolo26n.pt")
# Perform inference on an image source
# In a containerized microservice, this might process incoming API requests
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Log the detection results
print(f"Detected {len(results[0].boxes)} objects in the image.")دمج Docker في سير عملك#
للبدء في استخدام الحاويات، يحدد المطورون عادةً Dockerfile، وهو مستند نصي يحتوي على جميع الأوامر لتجميع الصورة. بمجرد بنائها، يمكن تخزين هذه الصور في سجلات مثل Docker Hub أو NVIDIA NGC Catalog، والذي يقدم حاويات محسّنة لوحدة معالجة الرسوميات (GPU).
بالنسبة لأولئك الذين يتطلعون إلى تبسيط عملية التدريب والنشر دون إدارة ملفات Dockerfiles يدوياً، توفر Ultralytics Platform أدوات متكاملة تتعامل مع تعقيد البيئات السحابية. يتيح ذلك للمستخدمين التركيز على تحسين دقة النموذج بدلاً من تكوين البنية التحتية. علاوة على ذلك، يمكنك استكشاف دليل البدء السريع لـ Docker الخاص بنا لمعرفة كيفية تشغيل نماذج Ultralytics في الحاويات على الفور.






