Docker
بسّط سير عمل الذكاء الاصطناعي/تعلم الآلة باستخدام Docker! تعلم كيفية نشر النماذج، وضمان إمكانية التكرار، والتوسع بكفاءة عبر البيئات.
Docker عبارة عن منصة مفتوحة المصدر تعمل على أتمتة نشر التطبيقات وتوسيع نطاقها وإدارتها باستخدام المحاكاة الافتراضية على مستوى نظام التشغيل لتقديم البرامج في حزم تسمى الحاويات. بالنسبة لمهندسي تعلم الآلة (ML) وعلماء البيانات، يعد Docker أداة حاسمة تحل المشكلة الشائعة المتمثلة في عدم اتساق البيئات - مشكلة "تعمل على جهازي" سيئة السمعة. من خلال تجميع كود التطبيق مع جميع المكتبات والأطر مثل PyTorch والتبعيات الأخرى التي يحتاجها للتشغيل، يضمن Docker أن النموذج يعمل بشكل مماثل بغض النظر عن مكان نشره. هذا الاتساق أساسي لنشر النماذج بشكل موثوق وهو حجر الزاوية في ممارسات MLOps الحديثة. توفر Ultralytics دليل البدء السريع لـ Docker لمساعدة المستخدمين على البدء في تجميع تطبيقاتهم في حاويات.
كيف يعمل Docker؟
تتمحور سير عمل Docker حول عدد قليل من المكونات الأساسية التي تعمل معًا لتعبئة التطبيقات وتشغيلها:
- Dockerfile: هذا ملف نصي بسيط يحتوي على قائمة بالأوامر أو التعليمات المتسلسلة. تخبر هذه التعليمات Docker بكيفية إنشاء صورة Docker معينة. بالنسبة لمشروع ML، سيحدد Dockerfile نظام تشغيل أساسيًا وأوامر لتثبيت التبعيات مثل Python و OpenCV، ونسخ ملفات النموذج وتعليمات الاستدلال، وتحديد الأمر المراد تشغيله عند بدء تشغيل الحاوية. يمكنك العثور على مزيد من المعلومات حول Dockerfiles في وثائق Docker الرسمية.
 - صورة Docker: الصورة عبارة عن حزمة خفيفة الوزن ومستقلة وقابلة للتنفيذ تتضمن كل ما هو مطلوب لتشغيل جزء من البرنامج، بما في ذلك التعليمات البرمجية ووقت التشغيل والمكتبات ومتغيرات البيئة وملفات التكوين. إنه قالب للقراءة فقط تم إنشاؤه من Dockerfile. غالبًا ما تتوفر صور خاصة بـ ML على سجلات مثل NVIDIA NGC، والتي تأتي مهيأة مسبقًا ببرامج تشغيل GPU وأطر عمل ML.
 - حاوية Docker: الحاوية هي مثيل قابل للتشغيل لصورة Docker. عند تشغيل صورة، فإنها تصبح حاوية، وهي عملية معزولة تعمل على نواة الجهاز المضيف. يمكن تشغيل حاويات متعددة على نفس الجهاز ومشاركة نواة نظام التشغيل مع حاويات أخرى، تعمل كل منها كعمليات معزولة في مساحة المستخدم. وهذا يجعلها فعالة للغاية مقارنة بالمحاكاة الافتراضية التقليدية. يتم توحيد التكنولوجيا من قبل منظمات مثل مبادرة الحاويات المفتوحة (OCI).
 
تطبيقات الذكاء الاصطناعي/تعلم الآلة الواقعية
يبسط Docker دورة الحياة الكاملة لنموذج الذكاء الاصطناعي، من التجريب إلى الإنتاج.
- نشر نماذج الرؤية الحاسوبية على الحافة: يمكن تجميع نموذج Ultralytics YOLO11 المدرب على اكتشاف الكائنات في حاوية Docker. تتضمن هذه الحاوية أوزان النموذج، ونص الاستدلال، وجميع التبعيات الضرورية مثل إصدارات مكتبة CUDA المحددة. يمكن بعد ذلك نشر هذه الحاوية الفردية باستمرار على منصات مختلفة، من وحدة معالجة الرسومات السحابية القوية إلى جهاز Edge AI محدود الموارد مثل NVIDIA Jetson. يضمن هذا أن النموذج يعمل كما هو متوقع، وهو مطلب حاسم للاستدلال في الوقت الفعلي في تطبيقات مثل المراقبة الذكية.
 - إنشاء بيئات بحثية قابلة للتكرار: يمكن لعالم البيانات الذي يطور خوارزمية جديدة لـ تجزئة الصور إنشاء حاوية Docker تقوم بتأمين إصدارات معينة من Python و TensorFlow ومكتبات أخرى. يمكن مشاركة هذه البيئة المحتواة مع المتعاونين أو نشرها جنبًا إلى جنب مع ورقة بحثية، مما يسمح للآخرين بتكرار بيئة التدريب تمامًا والتحقق من النتائج. تتكامل منصات مثل Ultralytics HUB مع تقنيات الحاويات لزيادة تبسيط هذه العملية.
 
مقارنة مع مصطلحات مماثلة
في حين أن Docker محوري في الحاويات، إلا أنه غالبًا ما يستخدم جنبًا إلى جنب مع تقنيات أخرى:
- الحاويات: هذا هو المفهوم العام لتعبئة البرامج في حاويات. Docker هي المنصة الأكثر شيوعًا لـ الحاويات، حيث توفر الأدوات اللازمة لإنشاء الحاويات وشحنها وتشغيلها.
 - Kubernetes: بينما يدير Docker الحاويات الفردية على مضيف واحد، فإن Kubernetes عبارة عن منصة لتنسيق الحاويات. إنها تعمل على أتمتة نشر وتوسيع نطاق وإدارة التطبيقات المحتواة عبر مجموعات من الأجهزة. فكر في Docker على أنه يقوم بإنشاء حاويات الشحن و Kubernetes كنظام يدير السفن والموانئ. يمكنك معرفة المزيد على موقع Kubernetes الرسمي.
 - الآلات الافتراضية (VMs): توفر الآلات الافتراضية عزلاً عن طريق محاكاة أنظمة أجهزة كاملة، بما في ذلك نظام تشغيل ضيف. تقوم الحاويات، التي يديرها Docker، بمحاكاة نظام التشغيل، ومشاركة نواة المضيف. هذا يجعل الحاويات أخف وزناً وأسرع وأكثر كفاءة في استخدام الموارد من الآلات الافتراضية، على الرغم من أن الآلات الافتراضية توفر عزلاً أقوى. يوفر موقع Docker الرسمي مقارنة رائعة.
 
من خلال الاستفادة من Docker، يمكن لممارسي الذكاء الاصطناعي و رؤية الكمبيوتر (CV) تحسين كفاءة سير العمل والتعاون وموثوقية النماذج المنشورة بشكل كبير. للحصول على نظرة عامة حول غرض Docker، تقدم مصادر مثل شرح Docker الخاص بـ OpenSource.com مقدمات سهلة الوصول. هذه التقنية هي عامل تمكين رئيسي لمجموعة واسعة من خيارات نشر النماذج.