Docker
استكشف كيف يُمكّن Docker من نشر الذكاء الاصطناعي بطريقة قابلة للتكرار. تعلم كيفية حزم نماذج Ultralytics YOLO26 في حاويات لتوسيع النطاق بسلاسة من السحابة إلى أجهزة الحافة.
Docker هي منصة مفتوحة المصدر تمكّن المطورين من أتمتة عمليات نشر التطبيقات وتوسيع نطاقها وإدارتها باستخدام الحاويات (containerization). وفي سياق الذكاء الاصطناعي وتعلم الآلة، تعمل Docker كوحدة برمجية موحدة تغلف الكود وجميع تبعياته - مثل المكتبات وأدوات النظام والإعدادات - مما يضمن تشغيل التطبيق بسرعة وموثوقية عند الانتقال من بيئة حوسبة إلى أخرى. وهذا يزيل المشكلة الشائعة "إنها تعمل على جهازي"، مما يضمن أن الشبكة العصبية التي تم تدريبها على حاسوب باحث ما تعمل بنفس الطريقة تماماً عند نشرها على خادم سحابي ضخم أو جهاز طرفي.
Link to this sectionلماذا تعد Docker مهمة للذكاء الاصطناعي وتعلم الآلة#
تعتمد عمليات تعلم الآلة (MLOps) الحديثة بشكل كبير على قابلية التكرار وقابلية النقل. غالباً ما يتضمن مشروع الذكاء الاصطناعي حزمة برمجية معقدة، تشمل إصدارات محددة من Python، وبرامج تشغيل CUDA لـ تسريع GPU، وأطر عمل التعلم العميق مثل PyTorch أو TensorFlow. وتعد إدارة هذه المكونات يدوياً عبر فرق وبنية تحتية مختلفة عرضة للأخطاء.
تبسط Docker هذه العملية من خلال إنشاء حاويات خفيفة ومستقلة. بخلاف الأجهزة الافتراضية (VMs) التقليدية التي تتطلب نظام تشغيل كاملاً لكل مثيل، تشترك الحاويات في نواة نظام تشغيل الجهاز المضيف ولكنها تعمل في مساحات مستخدم معزولة. وهذا يجعلها أكثر كفاءة في استخدام الموارد وأسرع في البدء، وهو أمر بالغ الأهمية عند توسيع نطاق البنية التحتية لـ تقديم النماذج أو تشغيل مهام التدريب الموزعة.
Link to this sectionتطبيقات العالم الحقيقي#
تعد Docker منتشرة في دورة حياة الذكاء الاصطناعي، بدءاً من التجريب الأولي وصولاً إلى النشر النهائي.
-
بيئات تدريب متسقة: قد يستخدم فريق علم البيانات صور Docker لمشاركة بيئة تطوير موحدة. على سبيل المثال، يمكن لباحث يعمل على كشف الأشياء سحب صورة جاهزة تحتوي على جميع برامج التشغيل والمكتبات اللازمة. وهذا يضمن أنه عند تدريب نموذج YOLO26، تكون النتائج قابلة للتكرار من قبل زملائهم، بغض النظر عن الاختلافات في الأجهزة الأساسية.
-
نشر الذكاء الاصطناعي على الحافة (Edge AI): في مراقبة المدن الذكية، يجب دفع النماذج المحدثة إلى آلاف الأجهزة الطرفية، مثل كاميرات المرور أو الطائرات بدون طيار. تسمح حاويات Docker للمهندسين بتغليف إصدار جديد من النموذج ونشره عبر الهواء. ولأن الحاوية تتضمن بيئة تشغيل الاستنتاج، فإن عملية التحديث تتم بسلاسة ولا تتداخل مع نظام التشغيل الأساسي للجهاز.
Link to this sectionDocker مقابل Kubernetes مقابل الأجهزة الافتراضية#
من المفيد التمييز بين Docker والتقنيات ذات الصلة لفهم دورها المحدد:
- Docker مقابل الأجهزة الافتراضية (VMs): تقوم الأجهزة الافتراضية بمحاكاة الأجهزة، مما يعني أن كل جهاز افتراضي يشغل نظام تشغيل كاملاً (مثل Windows أو Linux) فوق برنامج مراقبة الأجهزة (hypervisor). وهذا يستهلك قدراً كبيراً من الذاكرة وCPU. بينما تقوم Docker بمحاكاة نظام التشغيل، مما يجعل الحاويات أصغر وأسرع بكثير من الأجهزة الافتراضية.
- Docker مقابل Kubernetes: هذه تقنيات مكملة وليست متنافسة. Docker هي الأداة المستخدمة لإنشاء وتشغيل حاويات فردية. أما Kubernetes فهي منصة لتنظيم الحاويات تدير مجموعات من حاويات Docker، وتتولى مهاماً مثل التوسع التلقائي، وموازنة الأحمال، والإصلاح الذاتي في بيئات الحوسبة السحابية واسعة النطاق.
Link to this sectionمثال: تشغيل الاستنتاج داخل حاوية#
يوضح المثال التالي كيف قد يبدو سكربت 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.")Link to this sectionدمج Docker في سير عملك#
للبدء في استخدام الحاويات، يقوم المطورون عادةً بتحديد Dockerfile، وهو مستند نصي يحتوي على جميع الأوامر لتجميع الصورة. وبمجرد إنشائها، يمكن تخزين هذه الصور في سجلات مثل Docker Hub أو NVIDIA NGC Catalog، الذي يوفر حاويات محسنة لـ GPU.
بالنسبة لأولئك الذين يتطلعون إلى تبسيط عملية التدريب والنشر دون إدارة ملفات Dockerfiles يدوياً، توفر منصة Ultralytics أدوات متكاملة تتعامل مع تعقيدات البيئات السحابية. يتيح ذلك للمستخدمين التركيز على تحسين دقة النموذج بدلاً من تكوين البنية التحتية. علاوة على ذلك، يمكنك استكشاف دليل البدء السريع لـ Docker الخاص بنا لمعرفة كيفية تشغيل نماذج Ultralytics في حاويات على الفور.






