Vai al contenuto

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 Apri in Colab, Ambienti Kaggle Apri in Kaggle, VM di Deep Learning GCP, e la nostra immagine Docker pre-configurata disponibile su Docker Hub Pull di Docker.

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).

Accesso alla console AWS

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.

Pulsante Avvia istanza

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.

Scegli AMI

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.

Scegliere il tipo di istanza

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.

Configurazione della richiesta spot

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.

Connetti all'istanza

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!



📅 Creato 1 anno fa ✏️ Aggiornato 4 mesi fa

Commenti