Ultralytics YOLOv5 🚀 على مثيل AWS Deep Learning: دليلك الكامل
قد يبدو إعداد بيئة تعلم عميق عالية الأداء أمراً شاقاً، خاصة للمبتدئين. لكن لا داعي للقلق! 🛠️ يوفر هذا الدليل شرحاً تفصيلياً خطوة بخطوة لتشغيل Ultralytics YOLOv5 على مثيل AWS Deep Learning. من خلال الاستفادة من قدرات خدمات أمازون ويب (AWS)، يمكن حتى للمبتدئين في تعلم الآلة (ML) البدء بسرعة وبتكلفة معقولة. تجعل القابلية للتوسع لمنصة AWS خياراً مثالياً لكل من التجارب والنشر في بيئات الإنتاج.
تشمل خيارات البدء السريع الأخرى لـ YOLOv5 دفتر ملاحظات Google Colab ، وبيئات Kaggle
، وGCP Deep Learning VM، وصورة Docker الجاهزة الخاصة بنا والمتاحة على Docker Hub
.
الخطوة 1: تسجيل الدخول إلى وحدة تحكم AWS
ابدأ بإنشاء حساب أو تسجيل الدخول إلى وحدة تحكم إدارة AWS. بمجرد تسجيل الدخول، انتقل إلى لوحة تحكم خدمة EC2، حيث يمكنك إدارة خوادمك الافتراضية (المثيلات).

الخطوة 2: تشغيل المثيل الخاص بك
من لوحة تحكم EC2، انقر على زر Launch Instance. يبدأ هذا عملية إنشاء خادم افتراضي جديد مصمم خصيصاً لتلبية احتياجاتك.

اختيار صورة جهاز أمازون (AMI) المناسبة
يعد اختيار AMI الصحيحة أمراً بالغ الأهمية. فهي تحدد نظام التشغيل والبرامج المثبتة مسبقاً للمثيل الخاص بك. في شريط البحث، اكتب 'Deep Learning' واختر أحدث AMI لـ Deep Learning المبنية على Ubuntu (ما لم تكن لديك متطلبات خاصة لنظام تشغيل مختلف). تأتي صور Deep Learning الخاصة بأمازون مهيأة مسبقاً مع أطر عمل للتعلم العميق شائعة (مثل PyTorch، المستخدم في YOLOv5) وبرامج تشغيل GPU اللازمة، مما يبسط عملية الإعداد بشكل كبير.

اختيار نوع المثيل
بالنسبة للمهام الصعبة مثل تدريب نماذج التعلم العميق، يوصى بشدة باختيار نوع مثيل مزود بـ GPU. يمكن لوحدات معالجة الرسوميات (GPUs) تقليل الوقت المطلوب لتدريب النموذج بشكل كبير مقارنة بـ CPUs. عند اختيار حجم المثيل، تأكد من أن سعة الذاكرة (RAM) الخاصة به كافية للنموذج ومجموعة البيانات الخاصة بك.
ملاحظة: يعد حجم النموذج ومجموعة البيانات الخاصة بك عوامل حاسمة. إذا كانت مهمة تعلم الآلة الخاصة بك تتطلب ذاكرة أكثر مما يوفره المثيل المختار، فستحتاج إلى اختيار نوع مثيل أكبر لتجنب مشاكل الأداء أو الأخطاء.
استكشف أنواع مثيلات GPU المتاحة على صفحة أنواع مثيلات EC2، خاصة تحت فئة Accelerated Computing.

للحصول على معلومات مفصلة حول مراقبة وتحسين استخدام GPU، راجع دليل AWS حول مراقبة وتحسين GPU. قارن التكاليف باستخدام أسعار حسب الطلب (On-Demand) واستكشف التوفير المحتمل مع أسعار المثيلات الفورية (Spot Instance).
تهيئة المثيل الخاص بك
فكر في استخدام مثيلات EC2 الفورية (Spot Instances) للحصول على نهج أكثر فعالية من حيث التكلفة. تتيح لك مثيلات Spot المزايدة على سعة EC2 غير المستخدمة، وغالباً ما يكون ذلك بخصم كبير مقارنة بأسعار حسب الطلب. للمهام التي تتطلب استمرارية (حفظ البيانات حتى إذا تمت مقاطعة مثيل Spot)، اختر طلباً مستمراً (persistent request). هذا يضمن بقاء وحدة التخزين الخاصة بك.

تابع عبر الخطوات 4-7 من معالج تشغيل المثيل لتهيئة التخزين، وإضافة العلامات، وإعداد مجموعات الأمان (تأكد من فتح منفذ SSH 22 من عنوان IP الخاص بك)، ومراجعة إعداداتك قبل النقر على Launch. ستحتاج أيضاً إلى إنشاء زوج مفاتيح أو اختيار زوج موجود للوصول الآمن عبر SSH.
الخطوة 3: الاتصال بالمثيل الخاص بك
بمجرد أن تصبح حالة المثيل 'قيد التشغيل' (running)، اختره من لوحة تحكم EC2. انقر على زر Connect لعرض خيارات الاتصال. استخدم مثال أمر SSH المقدم في محطتك المحلية (مثل Terminal على macOS/Linux أو PuTTY/WSL على Windows) لإنشاء اتصال آمن. ستحتاج إلى ملف المفتاح الخاص (.pem) الذي أنشأته أو اخترته أثناء التشغيل.

الخطوة 4: تشغيل Ultralytics YOLOv5
الآن بعد أن اتصلت عبر SSH، يمكنك إعداد وتشغيل YOLOv5. أولاً، استنسخ مستودع YOLOv5 الرسمي من GitHub وانتقل إلى الدليل. بعد ذلك، قم بتثبيت التبعيات المطلوبة باستخدام pip. يوصى باستخدام بيئة Python 3.8 أو أحدث. سيتم تنزيل النماذج ومجموعات البيانات اللازمة تلقائياً من أحدث إصدار لـ YOLOv5 عند تشغيل أوامر مثل التدريب أو الكشف.
# Clone the YOLOv5 repository
git clone https://github.com/ultralytics/yolov5
cd yolov5
# Install required packages
pip install -r requirements.txtمع جاهزية البيئة، يمكنك البدء في استخدام YOLOv5 لمهام مختلفة:
# Train a YOLOv5 model on a custom dataset (e.g., coco128.yaml)
python train.py --data coco128.yaml --weights yolov5s.pt --img 640
# Validate the performance (Precision, Recall, mAP) of a trained model (e.g., yolov5s.pt)
python val.py --weights yolov5s.pt --data coco128.yaml --img 640
# Run inference (object detection) on images or videos using a trained model
python detect.py --weights yolov5s.pt --source path/to/your/images_or_videos/ --img 640
# Export the trained model to various formats like ONNX, CoreML, TFLite for deployment
# See https://docs.ultralytics.com/modes/export/ for more details
python export.py --weights yolov5s.pt --include onnx coreml tflite --img 640راجع وثائق Ultralytics للحصول على أدلة مفصلة حول التدريب، والتحقق، والتنبؤ (الاستدلال)، والتصدير.
إضافات اختيارية: زيادة ذاكرة التبادل (Swap Memory)
إذا كنت تعمل مع مجموعات بيانات كبيرة جداً أو واجهت قيوداً في الذاكرة أثناء التدريب، فقد تساعد زيادة ذاكرة التبادل على المثيل الخاص بك أحياناً. تسمح مساحة التبادل للنظام باستخدام مساحة القرص كذاكرة وصول عشوائي افتراضية.
# Allocate a 64GB swap file (adjust size as needed)
sudo fallocate -l 64G /swapfile
# Set correct permissions
sudo chmod 600 /swapfile
# Set up the file as a Linux swap area
sudo mkswap /swapfile
# Enable the swap file
sudo swapon /swapfile
# Verify the swap memory is active
free -hتهانينا! 🎉 لقد قمت بنجاح بإعداد مثيل AWS Deep Learning، وتثبيت Ultralytics YOLOv5، وأنت جاهز للقيام بمهام كشف الكائنات. سواء كنت تجرب نماذج مدربة مسبقاً أو تقوم بـ التدريب على بياناتك الخاصة، فإن هذا الإعداد القوي يوفر أساساً قابلاً للتوسع لمشاريع رؤية الحاسوب الخاصة بك. إذا واجهت أي مشاكل، فاستشر وثائق AWS الشاملة وموارد مجتمع Ultralytics المفيدة مثل الأسئلة الشائعة (FAQ). كشفاً سعيداً!