Ultralytics YOLOv5 🚀 su istanza AWS Deep Learning: la tua guida completa
Configurare un ambiente di deep learning ad alte prestazioni può sembrare scoraggiante, soprattutto per i nuovi arrivati. Ma non temere! 🛠️ Questa guida fornisce una procedura dettagliata per far funzionare 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 ed economicamente. 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 Notebook Google Colab , Ambienti Kaggle
, VM di Deep Learning GCP, e la nostra immagine Docker pre-configurata disponibile su Docker Hub
.
Passaggio 1: Accesso alla console AWS
Inizia creando un account o accedendo alla AWS Management Console. Una volta effettuato l'accesso, vai alla dashboard del servizio EC2, dove puoi gestire i tuoi server virtuali (istanze).
Fase 2: Avvio dell'istanza
Dalla dashboard di EC2, fare clic 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. Questo 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 i più diffusi framework di deep learning (come PyTorch, utilizzato da YOLOv5) e i necessari driver GPU, semplificando notevolmente il processo di configurazione.
Scelta di un tipo di istanza
Per attività complesse come l'addestramento di modelli di deep learning, è vivamente consigliato selezionare un tipo di istanza con accelerazione GPU. Le GPU possono ridurre drasticamente il tempo necessario per l'addestramento del modello rispetto alle CPU. Quando si sceglie una dimensione di istanza, assicurarsi che la sua capacità di memoria (RAM) sia sufficiente per il modello e il set di dati.
Nota: Le dimensioni del modello e del set di dati sono fattori critici. Se l'attività di ML richiede più memoria di quella fornita dall'istanza selezionata, sarà necessario scegliere un tipo di istanza più grande per evitare problemi di prestazioni o errori.
Esplora i tipi di istanze GPU disponibili nella pagina dei tipi di istanze EC2, in particolare nella categoria Calcolo accelerato.
Per informazioni dettagliate sul monitoraggio e l'ottimizzazione dell'utilizzo della GPU, consultare la guida AWS su Monitoraggio e ottimizzazione della GPU. Confronta i costi utilizzando i Prezzi on-demand ed esplora i potenziali risparmi con i Prezzi delle istanze spot.
Configurazione dell'istanza
Valuta la possibilità di utilizzare le istanze Spot di Amazon EC2 per un approccio più conveniente. Le istanze Spot ti consentono di fare offerte sulla capacità EC2 inutilizzata, spesso a un prezzo significativamente inferiore rispetto ai prezzi On-Demand. Per le attività che richiedono persistenza (salvataggio dei dati anche se l'istanza Spot viene interrotta), scegli una richiesta persistente. Ciò garantisce la persistenza del volume di archiviazione.
Procedi con i passaggi da 4 a 7 della procedura guidata di avvio dell'istanza per configurare lo storage, aggiungere tag, impostare i gruppi di sicurezza (assicurati che la porta SSH 22 sia aperta dal tuo IP) e rivedere le impostazioni prima di fare clic su Launch. Dovrai anche creare o selezionare una coppia di chiavi esistente per l'accesso SSH sicuro.
Fase 3: Connessione all'istanza
Una volta che lo stato dell'istanza viene visualizzato come 'running', selezionalo dalla dashboard di EC2. Clicca sul Connetti il pulsante 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
) creato o selezionato durante l'avvio.
Passo 4: Esecuzione di Ultralytics YOLOv5
Ora che sei connesso tramite SSH, puoi configurare ed eseguire YOLOv5. Innanzitutto, clona il repository ufficiale di YOLOv5 da GitHub e navigare nella directory. Quindi, installa le dipendenze richieste usando pip
. Si consiglia di utilizzare un Python Ambiente 3.8 o successivo. I modelli e i set di dati necessari verranno scaricati automaticamente dall'ultima versione di YOLOv5 release quando si eseguono 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.txt
Con l'ambiente pronto, puoi iniziare a utilizzare 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 640
Consultare la documentazione di Ultralytics per guide dettagliate su Training, Validation, Prediction (Inference) ed Exporting.
Extra opzionali: Aumentare la memoria di swap
Se stai lavorando con set di dati molto grandi o riscontri limitazioni di memoria durante l'addestramento, aumentare la memoria di swap sulla tua istanza può talvolta essere d'aiuto. 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 -h
Congratulazioni! 🎉 Hai configurato con successo un'istanza AWS Deep Learning, installato Ultralytics YOLOv5 e sei pronto per eseguire attività di object detection. Che tu stia sperimentando con modelli pre-addestrati o eseguendo il training sui tuoi dati, questa potente configurazione fornisce una base scalabile per i tuoi progetti di computer vision. In caso di problemi, consulta la vasta documentazione AWS e le utili risorse della community Ultralytics come le FAQ. Buona rilevazione!