Ultralytics YOLOv5 🚀 su AWS Deep Learning Instance: la tua guida completa#
Configurare un ambiente di deep learning ad alte prestazioni può sembrare scoraggiante, soprattutto per chi è alle prime armi. Ma niente paura! 🛠️ Questa guida illustra passo dopo passo come configurare e avviare Ultralytics YOLOv5 su un'istanza AWS Deep Learning. Sfruttando la potenza dei Servizi Web Amazon (AWS), anche chi è alle prime armi con il machine learning (ML) può iniziare rapidamente e contenendo i costi. La scalabilità della piattaforma AWS la rende ideale sia per la sperimentazione sia per il deployment in produzione.
Altre opzioni per una configurazione rapida di YOLOv5 includono il nostro Notebook Google Colab , gli ambienti Kaggle
, la VM GCP Deep Learning e la nostra immagine Docker preconfigurata disponibile su Docker Hub
.
Passaggio 1: accesso alla console AWS#
Inizia creando un account o accedendo alla console di gestione AWS. Dopo aver effettuato l'accesso, vai al pannello del servizio EC2, dove puoi gestire i tuoi server virtuali (istanze).

Passaggio 2: avvia la tua istanza#
Dal pannello EC2, fai clic sul pulsante Launch Instance. In questo modo avvii la procedura per creare un nuovo server virtuale configurato in base alle tue esigenze.

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

Scelta del tipo di istanza#
Per attività impegnative come l'addestramento di modelli di deep learning, è altamente consigliato selezionare un tipo di istanza con accelerazione GPU. Le GPU possono ridurre drasticamente il tempo necessario per l'addestramento dei modelli rispetto alle CPU. Quando scegli la dimensione dell'istanza, assicurati che la sua capacità di memoria (RAM) sia sufficiente per il tuo modello e il tuo dataset.
Nota: le dimensioni del modello e del dataset sono fattori fondamentali. 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 dei tipi di istanza EC2, in particolare nella categoria Accelerated Computing.

Per informazioni dettagliate sul monitoraggio e sull'ottimizzazione dell'utilizzo della GPU, consulta la guida AWS sul monitoraggio e l'ottimizzazione della GPU. Confronta i costi usando i prezzi On-Demand ed esplora i potenziali risparmi con i prezzi delle Spot Instance.
Configurazione della tua istanza#
Valuta l'utilizzo delle Amazon EC2 Spot Instance per un approccio più conveniente. Le Spot Instance ti consentono di fare un'offerta sulla capacità EC2 inutilizzata, spesso con uno sconto significativo rispetto ai prezzi On-Demand. Per le attività che richiedono la persistenza (salvare i dati anche se la Spot Instance viene interrotta), scegli una persistent request. In questo modo garantisci la persistenza del volume di archiviazione.

Procedi attraverso i passaggi 4-7 della procedura guidata di avvio dell'istanza per configurare lo spazio di archiviazione, aggiungere tag, configurare i gruppi di sicurezza (assicurati che la porta SSH 22 sia aperta dal tuo indirizzo IP) e controllare le impostazioni prima di fare clic su Launch. Dovrai anche creare o selezionare una coppia di chiavi esistente per l'accesso SSH sicuro.
Passaggio 3: connettiti alla tua istanza#
Quando lo stato della tua istanza risulta 'running', selezionala dal pannello EC2. Fai clic sul pulsante Connect per visualizzare le opzioni di connessione. Usa l'esempio di comando SSH fornito nel terminale locale (come Terminale su macOS/Linux o PuTTY/WSL su Windows) per stabilire una connessione sicura. Ti servirà il file della 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. Innanzitutto, clona il repository ufficiale di YOLOv5 da GitHub e accedi alla directory. Quindi, installa le dipendenze richieste usando pip. È consigliato utilizzare un ambiente Python 3.8 o successivo. I modelli e i dataset necessari verranno scaricati automaticamente dalla release più recente di YOLOv5 quando esegui comandi per attività 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 utilizzare YOLOv5 per diverse 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 addestramento, convalida, predizione (inferenza) ed esportazione.
Extra opzionali: aumento della memoria swap#
Se lavori con dataset molto grandi o riscontri limitazioni di memoria durante l'addestramento, aumentare la memoria swap dell'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 -hCongratulazioni! 🎉 Hai configurato correttamente un'istanza AWS Deep Learning, installato Ultralytics YOLOv5 e sei pronto a eseguire attività di rilevamento degli oggetti. Che tu stia sperimentando con modelli preaddestrati o eseguendo l'addestramento sui tuoi dati, questa potente configurazione fornisce una base scalabile per i tuoi progetti di visione artificiale. In caso di problemi, consulta l'ampia documentazione AWS e le utili risorse della community Ultralytics, come le FAQ. Buon rilevamento!