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

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

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

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

للحصول على معلومات مفصلة حول مراقبة وتحسين استخدام وحدة معالجة الرسومات (GPU)، راجع دليل AWS حول مراقبة وتحسين GPU. قارن التكاليف باستخدام تسعير الدفع عند الاستخدام (On-Demand Pricing) واستكشف التوفير المحتمل باستخدام تسعير المثيلات المخصصة (Spot Instance Pricing).
تكوين المثيل الخاص بك#
فكر في استخدام مثيلات Amazon EC2 Spot للحصول على نهج أكثر فعالية من حيث التكلفة. تسمح لك مثيلات 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)#
إذا كنت تعمل مع مجموعات بيانات كبيرة جداً أو واجهت قيوداً في الذاكرة أثناء التدريب، فإن زيادة ذاكرة التبادل على مثيلك قد تساعد أحياناً. تسمح مساحة التبادل للنظام باستخدام مساحة القرص كذاكرة وصول عشوائي (RAM) افتراضية.
# 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، وتثبيت Ultralytics YOLOv5، وأنت جاهز لإجراء مهام اكتشاف الكائنات. وسواء كنت تجرّب النماذج المدربة مسبقاً أو تتدرب على بياناتك الخاصة، فإن هذا الإعداد القوي يوفر أساساً قابلاً للتوسع لمشاريع رؤيتك الحاسوبية. إذا واجهت أي مشاكل، فاستشر وثائق AWS الشاملة وموارد مجتمع Ultralytics المفيدة مثل الأسئلة الشائعة. نتمنى لك اكتشافاً موفقاً!