Ultralytics YOLOv5 🚀 su un'istanza AWS Deep Learning: la guida completa#
Configurare un ambiente di deep learning ad alte prestazioni può sembrare complicato, soprattutto se sei alle prime armi. Ma non temere! 🛠️ Questa guida illustra passo dopo passo come installare 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 la distribuzione in produzione.
Altre opzioni per iniziare rapidamente con YOLOv5 includono il nostro notebook Google Colab , gli ambienti Kaggle
, la VM per il deep learning su GCP e la nostra immagine Docker preconfigurata, disponibile su Docker Hub
.
Passaggio 1: accedi alla console AWS#
Inizia creando un account o accedendo alla console di gestione AWS. Dopo aver effettuato l'accesso, vai alla dashboard del servizio EC2, da cui puoi gestire i tuoi server virtuali (istanze).

Passaggio 2: avvia la tua istanza#
Nella dashboard EC2, fai clic sul pulsante Launch Instance. Verrà avviata la procedura per creare un nuovo server virtuale configurato in base alle tue esigenze.

Scegliere l'Amazon Machine Image (AMI) giusta#
Scegliere l'AMI corretta è fondamentale, perché determina il sistema operativo e il software preinstallato nell'istanza. Nella barra di ricerca, digita 'Deep Learning' e seleziona la più recente AMI Deep Learning basata su Ubuntu (a meno che tu non abbia esigenze specifiche per un altro sistema operativo). Le AMI Deep Learning di Amazon sono preconfigurate con i più diffusi framework di deep learning (come PyTorch, usato da YOLOv5) e i driver GPU necessari, semplificando notevolmente la configurazione.

Scegliere il tipo di istanza#
Per attività impegnative come l'addestramento di modelli di deep learning, è fortemente consigliato scegliere un tipo di istanza accelerata da GPU. Le GPU possono ridurre notevolmente il tempo necessario per il training dei modelli rispetto alle CPU. Quando scegli le dimensioni dell'istanza, assicurati che la capacità di memoria (RAM) sia sufficiente per il modello e il dataset.
Nota: Le dimensioni del modello e del dataset sono fattori fondamentali. Se l'attività di ML richiede più memoria di quella offerta 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'uso della GPU, consulta la guida AWS al monitoraggio e all'ottimizzazione delle GPU. Confronta i costi con i prezzi On-Demand ed esplora i possibili risparmi con i prezzi Spot Instance.
Configurare l'istanza#
Per ridurre i costi, valuta l'uso delle istanze Amazon EC2 Spot. Le Spot Instance ti consentono di utilizzare la capacità EC2 inutilizzata, spesso con uno sconto significativo rispetto ai prezzi On-Demand. Per un training che deve poter riprendere dopo un'interruzione, scegli una richiesta persistente e imposta il comportamento in caso di interruzione su stop anziché su terminate, così il volume EBS e i risultati del training vengono conservati e l'istanza si riavvia quando la capacità torna disponibile.

Procedi con le restanti impostazioni di avvio per configurare lo spazio di archiviazione, aggiungere tag, impostare 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 accedere tramite SSH in modo sicuro.
Passaggio 3: connettiti alla tua istanza#
Quando lo stato dell'istanza risulta 'running', selezionala nella dashboard EC2. Fai clic sul pulsante Connect per visualizzare le opzioni di connessione. Usa l'esempio di comando SSH fornito nel terminale locale (ad esempio Terminal 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: esegui 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 necessarie usando pip. È consigliabile usare un ambiente Python 3.8 o successivo. Quando esegui comandi di training o rilevamento, i modelli e i dataset necessari vengono scaricati automaticamente dall'ultima release di YOLOv5.
# Clone the YOLOv5 repository
git clone https://github.com/ultralytics/yolov5
cd yolov5
# Install required packages
pip install -r requirements.txtUna volta pronto l'ambiente, puoi iniziare a usare 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
python export.py --weights yolov5s.pt --include onnx coreml tflite --img 640Consulta i tutorial Addestramento con dati personalizzati ed Esportazione del modello per guide dettagliate.
Extra facoltativi: aumentare la memoria di swap#
Se lavori con dataset molto grandi o riscontri limiti di memoria durante il training, aumentare la memoria di swap dell'istanza può essere d'aiuto. Lo spazio di swap consente al sistema di usare 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 e installato Ultralytics YOLOv5; ora puoi eseguire attività di rilevamento degli oggetti. Che tu stia sperimentando con modelli preaddestrati o eseguendo il training sui tuoi dati, questa potente configurazione offre una base scalabile per i tuoi progetti di visione artificiale. Se riscontri problemi, consulta l'ampia documentazione AWS e le utili risorse della community Ultralytics, come le FAQ. Buon rilevamento!
Domande frequenti#
Scegli l'ultima AMI AWS Deep Learning basata su Ubuntu. Include già i driver NVIDIA, CUDA e PyTorch, quindi dovrai solo clonare il repository e installare
requirements.txt.Va bene qualsiasi istanza GPU della famiglia Accelerated Computing, ad esempio le istanze
g4dn,g5op3. Scegli una quantità di memoria GPU sufficiente per la dimensione del batch e delle immagini e usa--batch-size -1per far selezionare a YOLOv5 il batch più grande possibile.Per i trasferimenti più piccoli, usa
scpcon la tua chiave.pem, oppure archivia temporaneamente i dati in Amazon S3 e copiali conaws s3 sync. I risultati del training vengono salvati inruns/train/e i pesi inruns/train/exp/weights/.Usa una richiesta Spot persistente con il comportamento in caso di interruzione impostato su stop, in modo che il volume EBS venga conservato; quando l'istanza si riavvia, riprendi l'esecuzione dall'ultimo checkpoint con
python train.py --resume. Copia periodicamentelast.ptebest.ptsu S3 se non puoi permetterti di perdere i progressi.