Ultralytics YOLOv5 🚀 su AWS Deep Learning Instance: La tua guida completa
Configurare un ambiente di deep learning ad alte prestazioni può sembrare scoraggiante, specialmente per i nuovi utenti. Ma non temere! 🛠️ Questa guida fornisce una procedura dettagliata per configurare e avviare Ultralytics YOLOv5 su un'istanza AWS Deep Learning. Sfruttando la potenza di Amazon Web Services (AWS), anche chi è nuovo al machine learning (ML) può iniziare rapidamente e in modo conveniente. La scalabilità della piattaforma AWS la rende ideale sia per la sperimentazione che per il deployment in produzione.
Altre opzioni di avvio rapido per YOLOv5 includono il nostro Google Colab Notebook , gli ambienti Kaggle
, la GCP Deep Learning VM e la nostra immagine Docker pre-costruita disponibile su Docker Hub
.
Passaggio 1: Accesso alla AWS Console
Inizia creando un account o effettuando l'accesso alla AWS Management Console. Una volta effettuato l'accesso, vai alla dashboard del servizio EC2, dove puoi gestire i tuoi server virtuali (istanze).

Passaggio 2: Avvia la tua istanza
Dalla dashboard EC2, clicca sul pulsante Launch Instance. Questo avvia il processo di creazione di un nuovo server virtuale su misura per le tue esigenze.

Selezione della giusta Amazon Machine Image (AMI)
Scegliere l'AMI corretta è fondamentale. Questa determina il sistema operativo e il software preinstallato per la tua istanza. Nella barra di ricerca, digita 'Deep Learning' e seleziona l'ultima Deep Learning AMI basata su Ubuntu (a meno che tu non abbia requisiti specifici per un sistema operativo diverso). Le Deep Learning AMI di Amazon sono preconfigurate con popolari framework di deep learning (come PyTorch, utilizzato da YOLOv5) e necessari driver GPU, semplificando notevolmente il processo di configurazione.

Scelta di un tipo di istanza
Per attività impegnative come l'addestramento di modelli di deep learning, è altamente consigliata la scelta di un tipo di istanza accelerato tramite GPU. Le GPU possono ridurre drasticamente il tempo necessario per l'addestramento del modello rispetto alle CPU. Quando scegli la dimensione dell'istanza, assicurati che la sua capacità di memoria (RAM) sia sufficiente per il tuo modello e dataset.
Nota: La dimensione del modello e del dataset sono fattori critici. Se la tua attività di ML richiede più memoria di quella fornita dall'istanza selezionata, dovrai scegliere un tipo di istanza più grande per evitare problemi di prestazioni o errori.
Esplora i tipi di istanza GPU disponibili nella pagina EC2 Instance Types, in particolare sotto la categoria Accelerated Computing.

Per informazioni dettagliate sul monitoraggio e l'ottimizzazione dell'utilizzo della GPU, consulta la guida AWS sul GPU Monitoring and Optimization. Confronta i costi utilizzando On-Demand Pricing ed esplora i potenziali risparmi con Spot Instance Pricing.
Configurazione della tua istanza
Prendi in considerazione l'utilizzo di Amazon EC2 Spot Instances per un approccio più conveniente. Le Spot Instances ti consentono di fare offerte sulla capacità EC2 inutilizzata, spesso con uno sconto significativo rispetto ai prezzi On-Demand. Per le attività che richiedono persistenza (salvataggio dei dati anche se la Spot Instance viene interrotta), scegli una persistent request. Questo garantisce che il tuo volume di archiviazione persista.

Procedi attraverso i passaggi 4-7 della procedura guidata di avvio dell'istanza per configurare l'archiviazione, aggiungere tag, impostare gruppi di sicurezza (assicurati che la porta SSH 22 sia aperta dal tuo IP) e rivedere le tue impostazioni prima di cliccare su Launch. Dovrai anche creare o selezionare una coppia di chiavi esistente per un accesso SSH sicuro.
Passaggio 3: Connessione alla tua istanza
Una volta che lo stato dell'istanza risulta 'running', selezionala dalla dashboard EC2. Clicca sul pulsante Connect per visualizzare le opzioni di connessione. Utilizza l'esempio di comando SSH fornito nel tuo terminale locale (come Terminal su macOS/Linux o PuTTY/WSL su Windows) per stabilire una connessione sicura. Avrai bisogno del file di chiave privata (.pem) che hai creato o selezionato durante l'avvio.

Passaggio 4: Esecuzione di Ultralytics YOLOv5
Ora che sei connesso tramite SSH, puoi configurare ed eseguire YOLOv5. Per prima cosa, clona il repository ufficiale di YOLOv5 da GitHub e accedi alla directory. Quindi, installa le dipendenze richieste utilizzando pip. È consigliato utilizzare un ambiente Python 3.8 o superiore. I modelli e i dataset necessari verranno scaricati automaticamente dall'ultima release di YOLOv5 quando eseguirai comandi come l'addestramento o il rilevamento.
# Clone the YOLOv5 repository
git clone https://github.com/ultralytics/yolov5
cd yolov5
# Install required packages
pip install -r requirements.txtCon l'ambiente pronto, puoi iniziare a usare YOLOv5 per varie attività:
# 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 640Consulta la documentazione di Ultralytics per guide dettagliate su Training, Validation, Prediction (Inference) e Exporting.
Extra facoltativi: Aumentare la memoria swap
Se stai lavorando con dataset molto grandi o riscontri limitazioni di memoria durante l'addestramento, aumentare la memoria swap sulla tua istanza può a volte aiutare. Lo spazio di swap consente al sistema di utilizzare lo spazio su disco come RAM virtuale.
# 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 -hCongratulazioni! 🎉 Hai configurato con successo un'istanza AWS Deep Learning, installato Ultralytics YOLOv5 e sei pronto a eseguire attività di object detection. Che tu stia sperimentando con modelli pre-addestrati o effettuando il training sui tuoi dati, questa potente configurazione fornisce una base scalabile per i tuoi progetti di computer vision. In caso di problemi, consulta l'ampia documentazione AWS e le utili risorse della community Ultralytics come le FAQ. Buon lavoro!