Una guida alla distribuzione di YOLO26 su Amazon SageMaker Endpoints
Distribuire modelli avanzati di computer vision come Ultralytics' YOLO26 su Amazon SageMaker Endpoints apre un'ampia gamma di possibilità per svariate applicazioni di machine learning. La chiave per utilizzare efficacemente questi modelli risiede nella comprensione dei loro processi di configurazione, impostazione e distribuzione. YOLO26 diventa ancora più potente quando viene integrato perfettamente con Amazon SageMaker, un servizio di machine learning robusto e scalabile offerto da AWS.
Questa guida ti accompagnerà passo dopo passo nel processo di distribuzione dei modelli PyTorch YOLO26 su Amazon SageMaker Endpoints. Imparerai gli elementi essenziali per preparare il tuo 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 machine learning di Amazon Web Services (AWS) che semplifica il processo di creazione, addestramento e distribuzione di modelli di machine learning. Fornisce un'ampia gamma di strumenti per gestire vari aspetti dei flussi di lavoro di machine learning. Ciò include funzionalità automatizzate per la messa a punto dei modelli, opzioni per l'addestramento dei modelli su larga scala e metodi semplici per distribuire i modelli in produzione. SageMaker supporta i più diffusi framework di machine learning, offrendo la flessibilità necessaria per progetti eterogenei. Le sue funzionalità coprono anche l'etichettatura dei dati, la gestione del flusso di lavoro e l'analisi delle prestazioni.
Distribuzione di YOLO26 su Amazon SageMaker Endpoints
Distribuire 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 soddisfare i seguenti prerequisiti:
-
Un account AWS: se non ne possiedi già uno, registrati per un account AWS.
-
Ruoli IAM configurati: avrai bisogno di un ruolo IAM con le autorizzazioni necessarie per Amazon SageMaker, AWS CloudFormation e Amazon S3. Questo ruolo dovrebbe avere policy che gli consentano di accedere a questi servizi.
-
AWS CLI: se non è già installata, scarica e installa la AWS Command Line Interface (CLI) e configurala con i dettagli del tuo account. Segui le istruzioni per AWS CLI per l'installazione.
-
AWS CDK: se non è già installato, installa l'AWS Cloud Development Kit (CDK), che verrà utilizzato per creare gli script per la distribuzione. Segui le istruzioni per AWS CDK per l'installazione.
-
Quota di servizio adeguata: conferma di disporre di quote sufficienti per due risorse separate in Amazon SageMaker: una per
ml.m5.4xlargeper l'utilizzo dell'endpoint e un'altra perml.m5.4xlargeper l'utilizzo dell'istanza notebook. Ognuna di queste richiede un valore di quota minimo pari a uno. Se le tue quote attuali sono inferiori a questo requisito, è importante richiederne un aumento per ciascuna. Puoi richiedere un aumento della quota seguendo le istruzioni dettagliate nella documentazione di AWS Service Quotas.
Passaggio 2: Clona il repository SageMaker per 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 necessari e i file di configurazione.
-
Clona il repository GitHub: esegui il seguente comando nel tuo terminale per clonare il repository host-yolov8-on-sagemaker-endpoint:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git -
Naviga nella directory clonata: cambia la tua directory spostandoti nel repository clonato:
cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
Passaggio 3: Configura l'ambiente CDK
Ora che hai il codice necessario, configura il tuo ambiente per la distribuzione con AWS CDK.
-
Crea un ambiente virtuale Python: questo isolerà il tuo ambiente Python e le sue dipendenze. Esegui:
python3 -m venv .venv -
Attiva l'ambiente virtuale:
source .venv/bin/activate -
Installa le dipendenze: installa le dipendenze Python richieste per il progetto:
pip3 install -r requirements.txt -
Aggiorna la libreria AWS CDK: assicurati di avere l'ultima versione 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 tuo codice CDK:
cdk synth -
Effettua il bootstrap dell'applicazione CDK: prepara il tuo ambiente AWS per la distribuzione CDK:
cdk bootstrap -
Distribuisci lo stack: questo creerà le risorse AWS necessarie e distribuirà il tuo modello:
cdk deploy
Passaggio 5: Distribuisci il modello YOLO
Prima di immergerti nelle istruzioni di distribuzione, assicurati di dare un'occhiata alla 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 è distribuire YOLO26.
-
Apri l'istanza Notebook: vai alla Console AWS e naviga nel servizio Amazon SageMaker. Seleziona "Notebook Instances" dalla dashboard, 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 di 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 utilizzando 1_DeployEndpoint.ipynb: nell'ambiente Jupyter, apri il notebook 1_DeployEndpoint.ipynb situato nella directory sm-notebook. Segui le istruzioni nel notebook ed esegui le celle per scaricare il modello YOLO26, pacchettizzarlo con il codice di inferenza aggiornato e caricarlo in un bucket Amazon S3. Il notebook ti guiderà attraverso la creazione e la distribuzione di un endpoint SageMaker per il modello YOLO26.
Passaggio 6: Test della distribuzione
Ora che il tuo modello YOLO26 è distribuito, è importante testarne le prestazioni e la 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 all'interno del notebook per testare l'endpoint SageMaker distribuito. Ciò include l'invio di un'immagine all'endpoint e l'esecuzione di inferenze. Quindi, traccerai l'output per visualizzare le prestazioni e l'accuratezza del modello, come mostrato di seguito.
- Ripulisci le risorse: il notebook di test ti guiderà anche attraverso il processo di pulizia dell'endpoint e del modello ospitato. Questo è un passaggio importante per gestire costi e risorse in modo efficace, specialmente se non prevedi di utilizzare immediatamente il modello distribuito.
Passaggio 7: Monitoraggio e gestione
Dopo il test, il monitoraggio e la gestione continui del modello distribuito sono essenziali.
-
Monitora con Amazon CloudWatch: controlla regolarmente le prestazioni e lo stato di salute del tuo endpoint SageMaker utilizzando Amazon CloudWatch.
-
Gestisci l'endpoint: utilizza la console SageMaker per la gestione continua dell'endpoint. Ciò include il ridimensionamento, l'aggiornamento o la ridistribuzione del modello, se necessario.
Completando questi passaggi, avrai distribuito e testato con successo un modello YOLO26 su Amazon SageMaker Endpoints. Questo processo non solo ti fornisce esperienza pratica nell'utilizzo dei servizi AWS per la distribuzione di machine learning, ma getta anche le basi per la distribuzione di altri modelli avanzati in futuro.
Riepilogo
Questa guida ti ha accompagnato passo dopo passo nella distribuzione di YOLO26 su Amazon SageMaker Endpoints utilizzando AWS CloudFormation e l'AWS Cloud Development Kit (CDK). Il processo include la clonazione 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, fai riferimento a questo articolo sul blog AWS Machine Learning. Puoi anche consultare la documentazione ufficiale di Amazon SageMaker per ulteriori approfondimenti su varie caratteristiche e funzionalità.
Ti interessa saperne di più sulle diverse integrazioni di YOLO26? Visita la pagina della guida alle integrazioni di Ultralytics per scoprire ulteriori strumenti e funzionalità in grado di migliorare i tuoi progetti di machine learning.
FAQ
Come distribuisco il modello Ultralytics YOLO26 su Amazon SageMaker Endpoints?
Per distribuire il modello Ultralytics YOLO26 su Amazon SageMaker Endpoints, segui questi passaggi:
- Configura il tuo ambiente AWS: assicurati di avere un account AWS, ruoli IAM con le autorizzazioni necessarie e la AWS CLI configurata. Installa AWS CDK se non l'hai già fatto (fai riferimento alle istruzioni per AWS CDK).
- Clona il repository SageMaker per 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, effettua il bootstrap dell'ambiente.
cdk synth cdk bootstrap cdk deploy
Per ulteriori dettagli, rivedi la sezione della documentazione.
Quali sono i prerequisiti per distribuire YOLO26 su Amazon SageMaker?
Per distribuire YOLO26 su Amazon SageMaker, assicurati di soddisfare i seguenti prerequisiti:
- Account AWS: account AWS attivo (registrati qui).
- Ruoli IAM: ruoli IAM configurati con le autorizzazioni per SageMaker, CloudFormation e Amazon S3.
- AWS CLI: AWS Command Line Interface installata e configurata (guida all'installazione di AWS CLI).
- AWS CDK: AWS Cloud Development Kit installato (guida alla configurazione di CDK).
- Quote di servizio: quote sufficienti per istanze
ml.m5.4xlargesia per l'utilizzo dell'endpoint che del notebook (richiedi un aumento della quota).
Per la configurazione dettagliata, fai riferimento a questa sezione.
Perché dovrei usare Ultralytics YOLO26 su Amazon SageMaker?
L'utilizzo di Ultralytics YOLO26 su Amazon SageMaker offre diversi vantaggi:
- Scalabilità e gestione: SageMaker fornisce un ambiente gestito con funzionalità come l'autoscaling, che aiuta nelle 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 tramite script AWS CDK e processi di distribuzione snelliti.
- Prestazioni: sfrutta l'infrastruttura ad alte prestazioni di Amazon SageMaker per eseguire attività di inferenza su larga scala in modo efficiente.
Esplora di più sui vantaggi dell'utilizzo di SageMaker nella sezione introduttiva.
Posso personalizzare la logica di inferenza per YOLO26 su Amazon SageMaker?
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.
Fai riferimento ai passaggi dettagliati per la distribuzione del modello modificato.
Come posso testare il modello YOLO26 distribuito su Amazon SageMaker?
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à di plotting integrate per visualizzare le metriche delle prestazioni, come i riquadri di delimitazione attorno agli oggetti rilevati.
Per istruzioni complete sui test, visita la sezione di test.