بسّط سير عمل الذكاء الاصطناعي/تعلم الآلة باستخدام Docker! تعلم كيفية نشر النماذج، وضمان إمكانية التكرار، والتوسع بكفاءة عبر البيئات.
Docker هي منصة مفتوحة المصدر تتيح للمطورين أتمتة نشر التطبيقات وتوسيع نطاقها وإدارتها باستخدام الحاويات. في سياق الذكاء الاصطناعي والتعلم الآلي، تعمل Docker كوحدة معيارية من البرامج التي تحزم الكود وجميع تبعياته — مثل المكتبات وأدوات النظام والإعدادات — بحيث يعمل التطبيق بسرعة وموثوقية من بيئة حوسبة إلى أخرى. وهذا يزيل المشكلة الشائعة المتمثلة في "إنه يعمل على جهازي"، مما يضمن أن الشبكة العصبية المدربة على الكمبيوتر المحمول للباحث تعمل بنفس الطريقة تمامًا عند نشرها على خادم سحابي ضخم أو جهاز طرفي.
تعتمد عمليات التعلم الآلي الحديثة (MLOps) بشكل كبير على قابلية التكرار وقابلية النقل. غالبًا ما يتضمن مشروع الذكاء الاصطناعي مجموعة معقدة من البرامج، بما في ذلك إصدارات محددة من Python CUDA GPU وأطر عمل التعلم العميق مثل PyTorch أو TensorFlow. إن إدارة هذه العناصر يدويًا عبر مختلف الفرق والبنى التحتية أمر معرض للخطأ.
يبسط Docker هذه العملية من خلال إنشاء حاويات مستقلة وخفيفة الوزن. على عكس الأجهزة الافتراضية التقليدية (VMs) التي تتطلب نظام تشغيل كامل لكل حالة، تشترك الحاويات في نواة نظام تشغيل الجهاز المضيف ولكنها تعمل في مساحات مستخدم معزولة. وهذا يجعلها أكثر كفاءة في استخدام الموارد وأسرع في البدء، وهو أمر بالغ الأهمية عند توسيع بنية تحتية لخدمة النماذج أو تشغيل مهام تدريب موزعة.
Docker موجود في كل مكان في دورة حياة الذكاء الاصطناعي، من التجربة الأولية إلى النشر النهائي.
من المفيد التمييز بين 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.")
للبدء في استخدام الحاويات، عادةً ما يقوم المطورون بتعريف Dockerfile، وهو مستند نصي
يحتوي على جميع الأوامر اللازمة لتجميع صورة. بمجرد إنشائها، يمكن تخزين هذه الصور في سجلات مثل
مركز Docker أو
كتالوج NVIDIA، الذي يوفر حاويات GPU.
بالنسبة لأولئك الذين يسعون إلى تبسيط عملية التدريب والنشر دون الحاجة إلى إدارة ملفات Dockerfiles يدويًا، توفر Ultralytics أدوات متكاملة تتعامل مع تعقيدات بيئات السحابة. وهذا يتيح للمستخدمين التركيز على تحسين دقة النماذج بدلاً من تكوين البنية التحتية. علاوة على ذلك، يمكنك الاطلاع على دليل البدء السريع لـ Docker لتتعلم كيفية تشغيل Ultralytics في الحاويات على الفور.