Guida alla distribuzione di YOLO11 sugli endpoint di Amazon SageMaker
La distribuzione di modelli avanzati di computer vision come Ultralytics' YOLO11 su Amazon SageMaker Endpoints apre un'ampia gamma di possibilità per varie applicazioni di apprendimento automatico. La chiave per utilizzare efficacemente questi modelli sta nella comprensione dei processi di impostazione, configurazione e distribuzione. YOLO11 diventa ancora più potente se integrato perfettamente con Amazon SageMaker, un servizio di apprendimento automatico robusto e scalabile di AWS.
Questa guida illustra passo per passo il processo di distribuzione dei modelli su Amazon SageMaker Endpoint. YOLO11 PyTorch su Amazon SageMaker Endpoints, passo dopo passo. Imparerete gli elementi essenziali per preparare l'ambiente AWS, configurare il modello in modo appropriato e utilizzare strumenti come AWS CloudFormation e AWS Cloud Development Kit (CDK) per la distribuzione.
Amazon SageMaker
Amazon SageMaker è un servizio di apprendimento automatico di Amazon Web Services (AWS) che semplifica il processo di costruzione, formazione e distribuzione di modelli di apprendimento automatico. Offre un'ampia gamma di strumenti per gestire vari aspetti dei flussi di lavoro di apprendimento automatico. Tra questi, funzioni automatizzate per la messa a punto dei modelli, opzioni per l'addestramento dei modelli su scala e metodi semplici per la distribuzione dei modelli in produzione. SageMaker supporta i più diffusi framework di apprendimento automatico, offrendo la flessibilità necessaria per diversi progetti. Le sue funzioni riguardano anche l'etichettatura dei dati, la gestione dei flussi di lavoro e l'analisi delle prestazioni.
Distribuzione di YOLO11 sugli endpoint di Amazon SageMaker
La distribuzione di YOLO11 su Amazon SageMaker consente di utilizzare il suo ambiente gestito per l'inferenza in tempo reale e di sfruttare funzionalità come l'autoscaling. Date un'occhiata all'architettura AWS qui sotto.
Passo 1: Configurazione dell'ambiente AWS
Innanzitutto, assicuratevi che siano presenti i seguenti prerequisiti:
-
Un account AWS: Se non ne avete già uno, registrate un account AWS.
-
Ruoli IAM configurati: È necessario un ruolo IAM con le autorizzazioni necessarie per Amazon SageMaker, AWS CloudFormation e Amazon S3. Questo ruolo deve avere politiche che gli consentano di accedere a questi servizi.
-
AWS CLI: Se non è già installato, scaricare e installare l'interfaccia a riga di comando AWS (CLI) e configurarla con i dati del proprio account. Seguire le istruzioni di AWS CLI per l'installazione.
-
AWS CDK: se non è già installato, installare l'AWS Cloud Development Kit (CDK), che sarà utilizzato per lo scripting della distribuzione. Seguire le istruzioni di AWS CDK per l'installazione.
-
Quota di servizio adeguata: Confermare di disporre di quote sufficienti per due risorse separate in Amazon SageMaker: una per
ml.m5.4xlarge
per l'utilizzo degli endpoint e un altro perml.m5.4xlarge
per l'utilizzo dell'istanza del notebook. Ognuno di questi richiede un valore minimo di quota. Se le quote attuali sono inferiori a questo requisito, è importante richiedere un aumento per ciascuna di esse. È possibile richiedere un aumento della quota seguendo le istruzioni dettagliate riportate nel documento Documentazione sulle quote dei servizi AWS.
Passo 2: Clonare il repository YOLO11 SageMaker
Il passo successivo consiste nel clonare il repository AWS specifico che contiene le risorse per la distribuzione di YOLO11 su SageMaker. Questo repository, ospitato su GitHub, include gli script CDK e i file di configurazione necessari.
- Clonare il repository GitHub: Eseguire il seguente comando nel terminale per clonare il repository host-yolov8-on-sagemaker-endpoint:
- Navigare nella directory clonata: Cambiare la propria directory con quella del repository clonato:
Passo 3: Impostazione dell'ambiente CDK
Ora che si dispone del codice necessario, impostare l'ambiente per la distribuzione con AWS CDK.
- Creare un ambiente virtuale Python : Questo isola l'ambiente Python e le sue dipendenze. Eseguire:
- Attivare l'ambiente virtuale:
- Installare le dipendenze: Installare le dipendenze di Python necessarie per il progetto:
- Aggiornare la libreria CDK di AWS: Assicurarsi di avere l'ultima versione della libreria CDK di AWS:
Passo 4: creare lo stack AWS CloudFormation
- Sintetizzare l'applicazione CDK: Generare il modello AWS CloudFormation dal codice CDK:
- Avviare l'applicazione CDK: Preparare l'ambiente AWS per la distribuzione di CDK:
- Distribuire lo stack: Crea le risorse AWS necessarie e distribuisce il modello:
Passo 5: Distribuzione del modello YOLO
Prima di immergersi nelle istruzioni per la distribuzione, assicuratevi di controllare la gamma di modelliYOLO11 offerti da Ultralytics. Questo vi aiuterà a scegliere il modello più appropriato per i requisiti del vostro progetto.
Dopo aver creato lo stack AWS CloudFormation, il passo successivo è la distribuzione di YOLO11.
-
Aprire l'istanza Notebook: Accedere alla console AWS e navigare nel servizio Amazon SageMaker. Selezionare "Notebook Instances" dal dashboard, quindi individuare l'istanza notebook creata dallo script di distribuzione CDK. Aprire l'istanza del notebook per accedere all'ambiente Jupyter.
-
Accedere e modificare inference.py: Dopo aver aperto l'istanza del notebook SageMaker in Jupyter, individuare il file inference.py. Modificate la funzione output_fn in inference.py come mostrato di seguito e salvate le modifiche allo script, assicurandovi che non ci 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)
- Distribuire l'endpoint usando 1_DeployEndpoint.ipynb: nell'ambiente Jupyter, aprire il blocco note 1_DeployEndpoint.ipynb situato nella directory sm-notebook. Seguire le istruzioni del notebook ed eseguire le celle per scaricare il modello YOLO11 , confezionarlo con il codice di inferenza aggiornato e caricarlo su un bucket Amazon S3. Il notebook vi guiderà nella creazione e nella distribuzione di un endpoint SageMaker per il modello YOLO11 .
Fase 6: Verifica della distribuzione
Ora che il modello YOLO11 è stato implementato, è importante testarne le prestazioni e la funzionalità.
-
Aprire il blocco note di prova: Nello stesso ambiente Jupyter, individuare e aprire il blocco note 2_TestEndpoint.ipynb, sempre nella cartella sm-notebook.
-
Eseguire il blocco note di prova: Seguire le istruzioni del notebook per testare l'endpoint SageMaker distribuito. Questo include l'invio di un'immagine all'endpoint e l'esecuzione di inferenze. Quindi, si traccerà l'output per visualizzare le prestazioni e l'accuratezza del modello, come mostrato di seguito.
- Risorse per la pulizia: Il notebook di prova vi guiderà anche nel processo di pulizia dell'endpoint e del modello ospitato. Si tratta di una fase importante per gestire efficacemente i costi e le risorse, soprattutto se non si prevede di utilizzare immediatamente il modello distribuito.
Fase 7: Monitoraggio e gestione
Dopo il test, il monitoraggio e la gestione continui del modello implementato sono essenziali.
-
Monitoraggio con Amazon CloudWatch: Controllate regolarmente le prestazioni e lo stato di salute del vostro endpoint SageMaker utilizzando Amazon CloudWatch.
-
Gestire l'endpoint: Utilizzare la console SageMaker per la gestione continua dell'endpoint. Ciò include il ridimensionamento, l'aggiornamento o la ridistribuzione del modello, come richiesto.
Completando questi passaggi, avrete implementato e testato con successo un modello YOLO11 su Amazon SageMaker Endpoints. Questo processo non solo consente di acquisire esperienza pratica nell'uso dei servizi AWS per la distribuzione dell'apprendimento automatico, ma pone anche le basi per la distribuzione di altri modelli avanzati in futuro.
Sintesi
Questa guida illustra passo dopo passo la distribuzione di YOLO11 su Amazon SageMaker Endpoints utilizzando AWS CloudFormation e AWS Cloud Development Kit (CDK). Il processo comprende la clonazione del repository GitHub necessario, l'impostazione dell'ambiente CDK, la distribuzione del modello utilizzando i servizi AWS e il test delle sue prestazioni su SageMaker.
Per ulteriori dettagli tecnici, consultare questo articolo del blog AWS Machine Learning. È inoltre possibile consultare la documentazione ufficiale di Amazon SageMaker per ulteriori approfondimenti sulle varie caratteristiche e funzionalità.
Siete interessati a saperne di più sulle diverse integrazioni di YOLO11 ? Visitate la pagina della guida alle integrazioni diUltralytics per scoprire ulteriori strumenti e funzionalità che possono migliorare i vostri progetti di apprendimento automatico.
FAQ
Come si distribuisce il modello Ultralytics YOLO11 su Amazon SageMaker Endpoints?
Per distribuire il modello Ultralytics YOLO11 su Amazon SageMaker Endpoints, procedere come segue:
- Configurare l'ambiente AWS: Assicurarsi di avere un account AWS, ruoli IAM con le autorizzazioni necessarie e il sito AWS CLI configurato. Installare AWS CDK se non è già stato fatto (consultare le istruzioni di AWS CDK).
- Clonare il repository di SageMaker YOLO11:
- Impostazione dell'ambiente CDK: Creare un ambiente virtuale Python , attivarlo, installare le dipendenze e aggiornare la libreria CDK di AWS.
- Distribuzione con AWS CDK: Sintetizzare e distribuire lo stack CloudFormation, avviare l'ambiente.
Per ulteriori dettagli, consultare la sezione Documentazione.
Quali sono i prerequisiti per la distribuzione di YOLO11 su Amazon SageMaker?
Per distribuire YOLO11 su Amazon SageMaker, assicurarsi di disporre dei seguenti prerequisiti:
- Account AWS: Account AWS attivo(registrarsi qui).
- Ruoli IAM: Configurazione di ruoli IAM con autorizzazioni per SageMaker, CloudFormation e Amazon S3.
- AWS CLI: Installato e configurato AWS Command Line Interface(guida all'installazione di AWS CLI ).
- AWS CDK: installato AWS Cloud Development Kit(guida all'installazione del CDK).
- Quote di servizio: Quote sufficienti per
ml.m5.4xlarge
per l'utilizzo di endpoint e notebook (richiedere un aumento della quota).
Per una configurazione dettagliata, consultare questa sezione.
Perché utilizzare Ultralytics YOLO11 su Amazon SageMaker?
L'utilizzo di Ultralytics YOLO11 su Amazon SageMaker offre diversi vantaggi:
- Scalabilità e gestione: SageMaker offre un ambiente gestito con funzioni come l'autoscaling, che aiuta a soddisfare le esigenze di inferenza in tempo reale.
- Integrazione con i servizi AWS: Integrazione perfetta con altri servizi AWS, come S3 per l'archiviazione dei dati, CloudFormation per l'infrastruttura come codice e CloudWatch per il monitoraggio.
- Facilità di distribuzione: Configurazione semplificata grazie agli 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.
Per saperne di più sui vantaggi dell'utilizzo di SageMaker, consultare la sezione introduttiva.
È possibile personalizzare la logica di inferenza per YOLO11 su Amazon SageMaker?
Sì, è possibile personalizzare la logica di inferenza per YOLO11 su Amazon SageMaker:
-
Modificare
inference.py
: Individuare e personalizzare l'opzioneoutput_fn
nella funzioneinference.py
per adattare i formati di uscita.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)
-
Distribuzione del modello aggiornato: Assicurarsi di distribuire nuovamente il modello utilizzando i taccuini Jupyter forniti (
1_DeployEndpoint.ipynb
) per includere queste modifiche.
Fare riferimento ai passaggi dettagliati per la distribuzione del modello modificato.
Come posso testare il modello YOLO11 distribuito su Amazon SageMaker?
Per testare il modello YOLO11 distribuito su Amazon SageMaker:
- Aprire il Quaderno di prova: Individuare la voce
2_TestEndpoint.ipynb
nell'ambiente Jupyter di SageMaker. - Eseguire il blocco note: Seguire le istruzioni del notebook per inviare un'immagine all'endpoint, eseguire l'inferenza e visualizzare i risultati.
- Visualizzazione dei risultati: Utilizzate le funzionalità di plottaggio integrate per visualizzare le metriche delle prestazioni, come i riquadri di delimitazione intorno agli oggetti rilevati.
Per istruzioni complete sui test, visitate la sezione dedicata ai test.