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#
Considera l'uso di Amazon EC2 Spot Instances per un approccio più economico. Le Spot Instances ti permettono di fare offerte sulla capacità EC2 inutilizzata, spesso a uno sconto significativo rispetto ai prezzi On-Demand. Per l'addestramento che deve sopravvivere a un'interruzione, scegli una richiesta persistente e imposta il comportamento di interruzione su arresta anziché su termina, in modo che il volume EBS e i tuoi risultati di addestramento vengano conservati e l'istanza si riavvii quando la capacità torna disponibile.

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
python export.py --weights yolov5s.pt --include onnx coreml tflite --img 640Consulta i tutorial Train Custom Data e Model Export per guide dettagliate.
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!
FAQ#
Scegli la AWS Deep Learning AMI basata su Ubuntu più recente. Viene fornita con driver NVIDIA, CUDA e PyTorch preinstallati, quindi l'unica configurazione rimasta è clonare il repository e installare
requirements.txt.Qualsiasi istanza GPU della famiglia Accelerated Computing va bene, ad esempio istanze
g4dn,g5op3. Scegli abbastanza memoria GPU per la tua dimensione del batch e dimensione dell'immagine, e usa--batch-size -1per lasciare che YOLOv5 scelga il batch più grande che ci sta.Usa
scpcon la tua chiave.pemper piccoli trasferimenti, oppure prepara i dati in Amazon S3 e copiali conaws s3 sync. I risultati dell'addestramento finiscono inruns/train/e i pesi si trovano inruns/train/exp/weights/.Usa una richiesta Spot persistente con il comportamento di interruzione impostato su arresta in modo che il volume EBS venga conservato, quindi riprendi l'esecuzione dall'ultimo checkpoint con
python train.py --resumeuna volta che l'istanza si riavvia. Copialast.ptebest.ptsu S3 periodicamente se non puoi permetterti di perdere i progressi.