Link to this sectionUltralytics YOLOv5 🚀 su AWS Deep Learning Instance: La tua guida completa#
Configurare un ambiente di deep learning ad alte prestazioni può sembrare scoraggiante, specialmente per i principianti. Ma non temere! 🛠️ Questa guida fornisce una procedura dettagliata per mettere in funzione 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 in modo rapido ed economico. 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 Google Colab Notebook , gli ambienti Kaggle
, la GCP Deep Learning VM e la nostra immagine Docker preconfigurata disponibile su Docker Hub
.
Link to this sectionPassaggio 1: Accesso alla console AWS#
Inizia creando un account o accedendo alla AWS Management Console. Una volta effettuato l'accesso, naviga verso la dashboard del servizio EC2, dove puoi gestire i tuoi server virtuali (istanze).

Link to this sectionPassaggio 2: Avvia la tua istanza#
Dalla dashboard EC2, clicca sul pulsante Launch Instance. Questo avvia il processo di creazione di un nuovo server virtuale su misura per le tue esigenze.

Link to this sectionSelezione dell'Amazon Machine Image (AMI) corretta#
Scegliere l'AMI corretta è fondamentale. Questa 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 arrivano 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.

Link to this sectionScegliere un 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 richiesto per l'addestramento del modello 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 set di dati.
Nota: La dimensione del tuo modello e del tuo set di dati sono fattori critici. 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 sotto la categoria Accelerated Computing.

Per informazioni dettagliate sul monitoraggio e l'ottimizzazione dell'utilizzo della GPU, consulta la guida AWS su GPU Monitoring and Optimization. Confronta i costi utilizzando On-Demand Pricing ed esplora i potenziali risparmi con Spot Instance Pricing.
Link to this sectionConfigurazione dell'istanza#
Considera l'utilizzo di Amazon EC2 Spot Instances per un approccio più economico. Le Spot Instances ti consentono di fare offerte sulla capacità EC2 inutilizzata, spesso con uno sconto significativo rispetto ai prezzi On-Demand. Per le attività che richiedono persistenza (salvataggio dei dati anche se la Spot Instance viene interrotta), scegli una persistent request. Questo garantisce che il tuo volume di archiviazione persista.

Procedi attraverso i passaggi 4-7 della procedura guidata di avvio dell'istanza per configurare l'archiviazione, aggiungere tag, impostare gruppi di sicurezza (assicurati che la porta SSH 22 sia aperta dal tuo IP) e rivedere le tue impostazioni prima di cliccare su Launch. Dovrai anche creare o selezionare una coppia di chiavi esistente per un accesso SSH sicuro.
Link to this sectionPassaggio 3: Connessione all'istanza#
Una volta che lo stato dell'istanza viene visualizzato come 'running', selezionala dalla dashboard EC2. Clicca sul pulsante Connect 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 della chiave privata (.pem) che hai creato o selezionato durante l'avvio.

Link to this sectionPassaggio 4: Esecuzione di 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 naviga all'interno della directory. Quindi, installa le dipendenze richieste utilizzando pip. È consigliabile utilizzare un ambiente Python 3.8 o superiore. I modelli e i set di dati necessari verranno scaricati automaticamente dall'ultima release di YOLOv5 quando eseguirai comandi come addestramento o 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 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 640Fai riferimento alla documentazione di Ultralytics per guide dettagliate su Training, Validation, Prediction (Inference) ed Exporting.
Link to this sectionExtra opzionali: Aumento della 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 aiutare. 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 con successo un'istanza AWS Deep Learning, installato Ultralytics YOLOv5 e sei pronto a eseguire attività di object detection. Che tu stia sperimentando con modelli preaddestrati o effettuando l' addestramento sui tuoi dati, questa potente configurazione fornisce una base scalabile per i tuoi progetti di computer vision. Qualora riscontrassi problemi, consulta l'ampia documentazione AWS e le utili risorse della community Ultralytics come le FAQ. Buon lavoro!