Guida alla distribuzione di YOLO26 sugli endpoint Amazon SageMaker#
La distribuzione di modelli avanzati di computer vision come YOLO26 di Ultralytics sugli endpoint Amazon SageMaker apre un'ampia gamma di possibilità per diverse applicazioni di machine learning. Per utilizzare questi modelli in modo efficace, è fondamentale comprenderne la configurazione e i processi di distribuzione. YOLO26 diventa ancora più potente quando viene integrato perfettamente con Amazon SageMaker, un servizio di machine learning robusto e scalabile di AWS.
Questa guida ti accompagnerà passo dopo passo nel processo di distribuzione dei modelli PyTorch YOLO26 sugli endpoint Amazon SageMaker. Imparerai gli aspetti essenziali della preparazione dell'ambiente AWS, della configurazione appropriata del modello e dell'utilizzo di strumenti come AWS CloudFormation e AWS Cloud Development Kit (CDK) per la distribuzione.
Amazon SageMaker#
Amazon SageMaker è un servizio di machine learning di Amazon Web Services (AWS) che semplifica il processo di creazione, addestramento e distribuzione dei modelli di machine learning. Offre un'ampia gamma di strumenti per gestire vari aspetti dei flussi di lavoro di machine learning. Include funzionalità automatizzate per la messa a punto dei modelli, opzioni per addestrare modelli su larga scala e metodi semplici per distribuire i modelli in produzione. SageMaker supporta i framework di machine learning più diffusi, offrendo la flessibilità necessaria per progetti diversi. Le sue funzionalità includono anche l'etichettatura dei dati, la gestione dei flussi di lavoro e l'analisi delle prestazioni.
Distribuzione di YOLO26 sugli endpoint Amazon SageMaker#
La distribuzione di YOLO26 su Amazon SageMaker ti consente di utilizzare il suo ambiente gestito per l'inferenza in tempo reale e di sfruttare funzionalità come l'autoscaling. Dai un'occhiata all'architettura AWS qui sotto.
Passaggio 1: configura il tuo ambiente AWS#
Per prima cosa, assicurati di disporre dei seguenti prerequisiti:
-
Un account AWS: se non ne hai già uno, registrati per creare un account AWS.
-
Ruoli IAM configurati: ti servirà un ruolo IAM con le autorizzazioni necessarie per Amazon SageMaker, AWS CloudFormation e Amazon S3. Questo ruolo deve disporre di policy che consentano l'accesso a questi servizi.
-
AWS CLI: se non è già installata, scarica e installa l'interfaccia della riga di comando AWS (CLI) e configúrala con i dati del tuo account. Segui le istruzioni per AWS CLI per l'installazione.
-
AWS CDK: se non è già installato, installa il kit di sviluppo cloud AWS (CDK), che verrà utilizzato per creare gli script di distribuzione. Segui le istruzioni per AWS CDK per l'installazione.
-
Quota di servizio adeguata: verifica di avere quote sufficienti per due risorse separate in Amazon SageMaker: una per
ml.m5.4xlargeper l'utilizzo degli endpoint e un'altra perml.m5.4xlargeper l'utilizzo delle istanze notebook. Ciascuna richiede un valore di quota minimo pari a uno. Se le quote attuali sono inferiori a questo requisito, è importante richiedere un aumento per ciascuna di esse. Puoi richiedere un aumento della quota seguendo le istruzioni dettagliate nella documentazione sulle quote di servizio AWS.
Passaggio 2: clona il repository SageMaker di YOLO26#
Il passaggio successivo consiste nel clonare il repository AWS specifico che contiene le risorse per distribuire YOLO26 su SageMaker. Questo repository, ospitato su GitHub, include gli script CDK e i file di configurazione necessari.
-
Clona il repository GitHub: esegui il comando seguente nel terminale per clonare il repository host-yolov8-on-sagemaker-endpoint:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git -
Vai alla directory clonata: cambia la directory corrente impostandola sul repository clonato:
cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
Passaggio 3: configura l'ambiente CDK#
Ora che disponi del codice necessario, configura l'ambiente per la distribuzione con AWS CDK.
-
Crea un ambiente virtuale Python: in questo modo isolerai l'ambiente Python e le relative dipendenze. Esegui:
python3 -m venv .venv -
Attiva l'ambiente virtuale:
source .venv/bin/activate -
Installa le dipendenze: installa le dipendenze Python richieste dal progetto:
pip3 install -r requirements.txt -
Aggiorna la libreria AWS CDK: assicurati di avere la versione più recente della libreria AWS CDK:
pip install --upgrade aws-cdk-lib
Passaggio 4: crea lo stack AWS CloudFormation#
-
Sintetizza l'applicazione CDK: genera il modello AWS CloudFormation dal codice CDK:
cdk synth -
Esegui il bootstrap dell'applicazione CDK: prepara l'ambiente AWS per la distribuzione CDK:
cdk bootstrap -
Distribuisci lo stack: verranno create le risorse AWS necessarie e verrà distribuito il modello:
cdk deploy
Passaggio 5: distribuisci il modello YOLO#
Prima di passare alle istruzioni per la distribuzione, assicurati di consultare la gamma di modelli YOLO26 offerti da Ultralytics. Questo ti aiuterà a scegliere il modello più adatto ai requisiti del tuo progetto.
Dopo aver creato lo stack AWS CloudFormation, il passaggio successivo consiste nel distribuire YOLO26.
-
Apri l'istanza notebook: vai alla Console AWS e apri il servizio Amazon SageMaker. Seleziona "Istanze notebook" dal pannello di controllo, quindi individua l'istanza notebook creata dallo script di distribuzione CDK. Apri l'istanza notebook per accedere all'ambiente Jupyter.
-
Accedi e modifica inference.py: dopo aver aperto l'istanza notebook SageMaker in Jupyter, individua il file inference.py. Modifica la funzione output_fn in inference.py come mostrato di seguito e salva le modifiche allo script, assicurandoti che non vi siano errori di sintassi.
import json def output_fn(prediction_output): """Formats model outputs as JSON string, extracting attributes like boxes, masks, keypoints.""" print("Executing output_fn from inference.py ...") infer = {} for result in prediction_output: if result.boxes is not None: infer["boxes"] = result.boxes.numpy().data.tolist() if result.masks is not None: infer["masks"] = result.masks.numpy().data.tolist() if result.keypoints is not None: infer["keypoints"] = result.keypoints.numpy().data.tolist() if result.obb is not None: infer["obb"] = result.obb.numpy().data.tolist() if result.probs is not None: infer["probs"] = result.probs.numpy().data.tolist() return json.dumps(infer) -
Distribuisci l'endpoint usando 1_DeployEndpoint.ipynb: nell'ambiente Jupyter, apri il notebook 1_DeployEndpoint.ipynb che si trova nella directory sm-notebook. Segui le istruzioni del notebook ed esegui le celle per scaricare il modello YOLO26, impacchettarlo con il codice di inferenza aggiornato e caricarlo in un bucket Amazon S3. Il notebook ti guiderà nella creazione e nella distribuzione di un endpoint SageMaker per il modello YOLO26.
Passaggio 6: testa la distribuzione#
Ora che il modello YOLO26 è stato distribuito, è importante testarne le prestazioni e le funzionalità.
-
Apri il notebook di test: nello stesso ambiente Jupyter, individua e apri il notebook 2_TestEndpoint.ipynb, anch'esso nella directory sm-notebook.
-
Esegui il notebook di test: segui le istruzioni del notebook per testare l'endpoint SageMaker distribuito. Questo include l'invio di un'immagine all'endpoint e l'esecuzione delle inferenze. Quindi, traccia l'output per visualizzare le prestazioni e l'accuratezza del modello, come mostrato di seguito.
- Pulisci le risorse: il notebook di test ti guiderà anche nel processo di pulizia dell'endpoint e del modello ospitato. Si tratta di un passaggio importante per gestire in modo efficace costi e risorse, soprattutto se non prevedi di utilizzare subito il modello distribuito.
Passaggio 7: monitoraggio e gestione#
Dopo i test, il monitoraggio e la gestione continui del modello distribuito sono essenziali.
-
Monitora con Amazon CloudWatch: controlla regolarmente le prestazioni e lo stato del tuo endpoint SageMaker utilizzando Amazon CloudWatch.
-
Gestisci l'endpoint: utilizza la console SageMaker per la gestione continuativa dell'endpoint. Questo include il ridimensionamento, l'aggiornamento o la ridistribuzione del modello secondo necessità.
Completando questi passaggi, avrai distribuito e testato correttamente un modello YOLO26 sugli endpoint Amazon SageMaker. Questo processo non solo ti fornisce un'esperienza pratica nell'utilizzo dei servizi AWS per la distribuzione di modelli di machine learning, ma getta anche le basi per distribuire in futuro altri modelli avanzati.
Riepilogo#
Questa guida ti ha accompagnato passo dopo passo nella distribuzione di YOLO26 sugli endpoint Amazon SageMaker utilizzando AWS CloudFormation e AWS Cloud Development Kit (CDK). Il processo include il clonaggio del repository GitHub necessario, la configurazione dell'ambiente CDK, la distribuzione del modello utilizzando i servizi AWS e il test delle sue prestazioni su SageMaker.
Per ulteriori dettagli tecnici, consulta questo articolo sul blog AWS Machine Learning. Puoi anche consultare la documentazione ufficiale di Amazon SageMaker per maggiori informazioni sulle varie funzionalità.
Ti interessa saperne di più sulle diverse integrazioni di YOLO26? Visita la pagina della guida alle integrazioni di Ultralytics per scoprire altri strumenti e funzionalità che possono migliorare i tuoi progetti di machine learning.
FAQ#
Per distribuire il modello YOLO26 di Ultralytics sugli endpoint Amazon SageMaker, segui questi passaggi:
- Configura il tuo ambiente AWS: assicurati di avere un account AWS, ruoli IAM con le autorizzazioni necessarie e AWS CLI configurata. Installa AWS CDK se non l'hai già fatto (consulta le istruzioni per AWS CDK).
- Clona il repository SageMaker di YOLO26:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk - Configura l'ambiente CDK: crea un ambiente virtuale Python, attivalo, installa le dipendenze e aggiorna la libreria AWS CDK.
python3 -m venv .venv source .venv/bin/activate pip3 install -r requirements.txt pip install --upgrade aws-cdk-lib - Distribuisci utilizzando AWS CDK: sintetizza e distribuisci lo stack CloudFormation ed esegui il bootstrap dell'ambiente.
cdk synth cdk bootstrap cdk deploy
Per ulteriori dettagli, consulta la sezione della documentazione.
Per distribuire YOLO26 su Amazon SageMaker, assicurati di disporre dei seguenti prerequisiti:
- Account AWS: account AWS attivo (registrati qui).
- Ruoli IAM: ruoli IAM configurati con autorizzazioni per SageMaker, CloudFormation e Amazon S3.
- AWS CLI: interfaccia della riga di comando AWS installata e configurata (guida all'installazione di AWS CLI).
- AWS CDK: kit di sviluppo cloud AWS installato (guida alla configurazione di CDK).
- Quote di servizio: quote sufficienti per le istanze
ml.m5.4xlargesia per l'utilizzo degli endpoint sia per quello dei notebook (richiedi un aumento della quota).
Per una configurazione dettagliata, consulta questa sezione.
L'utilizzo di Ultralytics YOLO26 su Amazon SageMaker offre diversi vantaggi:
- Scalabilità e gestione: SageMaker offre un ambiente gestito con funzionalità come l'autoscaling, utile per le esigenze di inferenza in tempo reale.
- Integrazione con i servizi AWS: integrati perfettamente con altri servizi AWS, come S3 per l'archiviazione dei dati, CloudFormation per l'infrastruttura come codice e CloudWatch per il monitoraggio.
- Semplicità di distribuzione: configurazione semplificata tramite gli script AWS CDK e processi di distribuzione ottimizzati.
- Prestazioni: sfrutta l'infrastruttura ad alte prestazioni di Amazon SageMaker per eseguire in modo efficiente attività di inferenza su larga scala.
Scopri di più sui vantaggi dell'utilizzo di SageMaker nella sezione introduttiva.
Sì, puoi personalizzare la logica di inferenza per YOLO26 su Amazon SageMaker:
-
Modifica
inference.py: individua e personalizza la funzioneoutput_fnnel fileinference.pyper adattare i formati di output.import json def output_fn(prediction_output): """Formats model outputs as JSON string, extracting attributes like boxes, masks, keypoints.""" infer = {} for result in prediction_output: if result.boxes is not None: infer["boxes"] = result.boxes.numpy().data.tolist() # Add more processing logic if necessary return json.dumps(infer) -
Distribuisci il modello aggiornato: assicurati di ridistribuire il modello utilizzando i notebook Jupyter forniti (
1_DeployEndpoint.ipynb) per includere queste modifiche.
Consulta i passaggi dettagliati per distribuire il modello modificato.
-
Per testare il modello YOLO26 distribuito su Amazon SageMaker:
- Apri il notebook di test: individua il notebook
2_TestEndpoint.ipynbnell'ambiente Jupyter di SageMaker. - Esegui il notebook: segui le istruzioni del notebook per inviare un'immagine all'endpoint, eseguire l'inferenza e visualizzare i risultati.
- Visualizza i risultati: utilizza le funzionalità integrate di tracciamento per visualizzare le metriche delle prestazioni, come i riquadri di delimitazione intorno agli oggetti rilevati.
Per istruzioni complete sui test, visita la sezione sui test.
- Apri il notebook di test: individua il notebook