Vai al contenuto

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

Panoramica di 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.

Architettura AWS

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 per ml.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:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
  • Navigare nella directory clonata: Cambiare la propria directory con quella del repository clonato:
cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk

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:
python3 -m venv .venv
  • Attivare l'ambiente virtuale:
source .venv/bin/activate
  • Installare le dipendenze: Installare le dipendenze di Python necessarie per il progetto:
pip3 install -r requirements.txt
  • Aggiornare la libreria CDK di AWS: Assicurarsi di avere l'ultima versione della libreria CDK di AWS:
pip install --upgrade aws-cdk-lib

Passo 4: creare lo stack AWS CloudFormation

  • Sintetizzare l'applicazione CDK: Generare il modello AWS CloudFormation dal codice CDK:
cdk synth
  • Avviare l'applicazione CDK: Preparare l'ambiente AWS per la distribuzione di CDK:
cdk bootstrap
  • Distribuire lo stack: Crea le risorse AWS necessarie e distribuisce il modello:
cdk deploy

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.

Risultati dei test YOLO11

  • 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:

  1. 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).
  2. Clonare il repository di SageMaker YOLO11:
    git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
    cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
    
  3. Impostazione dell'ambiente CDK: Creare un ambiente virtuale Python , attivarlo, installare le dipendenze e aggiornare la libreria CDK di AWS.
    python3 -m venv .venv
    source .venv/bin/activate
    pip3 install -r requirements.txt
    pip install --upgrade aws-cdk-lib
    
  4. Distribuzione con AWS CDK: Sintetizzare e distribuire lo stack CloudFormation, avviare l'ambiente.
    cdk synth
    cdk bootstrap
    cdk deploy
    

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:

  1. Account AWS: Account AWS attivo(registrarsi qui).
  2. Ruoli IAM: Configurazione di ruoli IAM con autorizzazioni per SageMaker, CloudFormation e Amazon S3.
  3. AWS CLI: Installato e configurato AWS Command Line Interface(guida all'installazione di AWS CLI ).
  4. AWS CDK: installato AWS Cloud Development Kit(guida all'installazione del CDK).
  5. 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:

  1. Scalabilità e gestione: SageMaker offre un ambiente gestito con funzioni come l'autoscaling, che aiuta a soddisfare le esigenze di inferenza in tempo reale.
  2. 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.
  3. Facilità di distribuzione: Configurazione semplificata grazie agli script AWS CDK e processi di distribuzione ottimizzati.
  4. 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:

  1. Modificare inference.py: Individuare e personalizzare l'opzione output_fn nella funzione inference.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)
    
  2. 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:

  1. Aprire il Quaderno di prova: Individuare la voce 2_TestEndpoint.ipynb nell'ambiente Jupyter di SageMaker.
  2. Eseguire il blocco note: Seguire le istruzioni del notebook per inviare un'immagine all'endpoint, eseguire l'inferenza e visualizzare i risultati.
  3. 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.

📅C reato 11 mesi fa ✏️ Aggiornato 2 mesi fa

Commenti