Saltar para o conteúdo

Um guia para implementar YOLO11 em Amazon SageMaker Endpoints

A implantação de modelos avançados de visão computacional como Ultralytics' YOLO11 no Amazon SageMaker Endpoints abre uma ampla gama de possibilidades para várias aplicações de aprendizado de máquina. A chave para utilizar eficazmente estes modelos reside na compreensão dos seus processos de instalação, configuração e implementação. O YOLO11 torna-se ainda mais poderoso quando integrado na perfeição com o Amazon SageMaker, um serviço de aprendizagem automática robusto e escalável da AWS.

Este guia irá guiá-lo através do processo de implementação de modelos YOLO11 PyTorch no Amazon SageMaker Endpoints, passo a passo. Aprenderá os fundamentos da preparação do seu ambiente AWS, configurando o modelo adequadamente e usando ferramentas como o AWS CloudFormation e o AWS Cloud Development Kit (CDK) para implantação.

Amazon SageMaker

Visão geral do Amazon SageMaker

O Amazon SageMaker é um serviço de aprendizagem automática da Amazon Web Services (AWS) que simplifica o processo de criação, formação e implementação de modelos de aprendizagem automática. Fornece uma vasta gama de ferramentas para lidar com vários aspectos dos fluxos de trabalho de aprendizagem automática. Isso inclui recursos automatizados para ajustar modelos, opções para treinar modelos em escala e métodos simples para implantar modelos na produção. O SageMaker suporta estruturas populares de aprendizagem automática, oferecendo a flexibilidade necessária para diversos projectos. As suas funcionalidades também abrangem a rotulagem de dados, a gestão de fluxos de trabalho e a análise de desempenho.

Implementação de YOLO11 em Amazon SageMaker Endpoints

A implementação do YOLO11 no Amazon SageMaker permite-lhe utilizar o seu ambiente gerido para inferência em tempo real e tirar partido de funcionalidades como o escalonamento automático. Veja a arquitetura AWS abaixo.

Arquitetura AWS

Passo 1: Configurar o seu ambiente AWS

Em primeiro lugar, certifique-se de que tem os seguintes pré-requisitos em vigor:

  • Uma conta AWS: Se ainda não tiver uma, inscreva-se numa conta AWS.

  • Funções de IAM configuradas: Você precisará de uma função IAM com as permissões necessárias para o Amazon SageMaker, AWS CloudFormation e Amazon S3. Esta função deve ter políticas que lhe permitam aceder a estes serviços.

  • AWS CLI: Se ainda não estiver instalado, descarregue e instale o AWS Command Line Interface (CLI) e configure-o com os detalhes da sua conta. Siga as instruções do AWS CLI para a instalação.

  • AWS CDK: se ainda não estiver instalado, instale o AWS Cloud Development Kit (CDK), que será usado para criar o script da implantação. Siga as instruções do AWS CDK para a instalação.

  • Cota de Serviço Adequada: Confirme que tem quotas suficientes para dois recursos separados no Amazon SageMaker: um para ml.m5.4xlarge para a utilização do ponto final e outro para ml.m5.4xlarge para a utilização da instância do bloco de notas. Cada um destes requer um mínimo de um valor de quota. Se as suas quotas actuais forem inferiores a este requisito, é importante solicitar um aumento para cada uma delas. Pode solicitar um aumento de quota seguindo as instruções detalhadas na secção Documentação das quotas de serviço do AWS.

Passo 2: Clonar o repositório YOLO11 SageMaker

A próxima etapa é clonar o repositório específico do AWS que contém os recursos para implantar o YOLO11 no SageMaker. Esse repositório, hospedado no GitHub, inclui os scripts CDK e os arquivos de configuração necessários.

  • Clonar o repositório do GitHub: Execute o seguinte comando no seu terminal para clonar o repositório host-yolov8-on-sagemaker-endpoint:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
  • Navegue até ao diretório clonado: Altere o seu diretório para o repositório clonado:
cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk

Etapa 3: Configurar o ambiente CDK

Agora que você tem o código necessário, configure seu ambiente para implantar com o AWS CDK.

  • Crie um ambiente virtual Python : Isso isola seu ambiente Python e suas dependências. Executar:
python3 -m venv .venv
  • Ativar o ambiente virtual:
source .venv/bin/activate
  • Instalar dependências: Instale as dependências necessárias do Python para o projeto:
pip3 install -r requirements.txt
  • Atualizar a biblioteca do AWS CDK: Certifique-se de que tem a versão mais recente da biblioteca AWS CDK:
pip install --upgrade aws-cdk-lib

Etapa 4: criar a pilha do AWS CloudFormation

  • Sintetizar o aplicativo CDK: Gere o modelo do AWS CloudFormation a partir do seu código CDK:
cdk synth
  • Bootstrap do aplicativo CDK: Prepare seu ambiente AWS para a implantação do CDK:
cdk bootstrap
  • Implantar a pilha: Isso criará os recursos AWS necessários e implantará seu modelo:
cdk deploy

Etapa 5: Implantar o modelo YOLO

Antes de se debruçar sobre as instruções de implementação, certifique-se de que verifica a gama de modelosYOLO11 oferecidos por Ultralytics. Isto ajudá-lo-á a escolher o modelo mais adequado aos requisitos do seu projeto.

Depois de criar o AWS CloudFormation Stack, a próxima etapa é implantar YOLO11.

  • Abra a Instância do Notebook: Vá para o Console do AWS e navegue até o serviço Amazon SageMaker. Selecione "Instâncias do Notebook" no painel e localize a instância do notebook que foi criada pelo script de implementação do CDK. Abra a instância do notebook para acessar o ambiente Jupyter.

  • Aceder e modificar inference.py: Depois de abrir a instância do notebook SageMaker no Jupyter, localize o ficheiro inference.py. Edite a função output_fn em inference.py como mostrado abaixo e salve suas alterações no script, garantindo que não haja erros de sintaxe.

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)
  • Implantar o ponto de extremidade usando 1_DeployEndpoint.ipynb: no ambiente Jupyter, abra o notebook 1_DeployEndpoint.ipynb localizado no diretório sm-notebook. Siga as instruções no notebook e execute as células para baixar o modelo YOLO11 , empacote-o com o código de inferência atualizado e carregue-o em um bucket do Amazon S3. O notebook irá guiá-lo através da criação e implantação de um endpoint SageMaker para o modelo YOLO11 .

Passo 6: Testar a implementação

Agora que o seu modelo YOLO11 está implementado, é importante testar o seu desempenho e funcionalidade.

  • Abra o caderno de teste: No mesmo ambiente Jupyter, localize e abra o notebook 2_TestEndpoint.ipynb, também no diretório sm-notebook.

  • Execute o caderno de teste: Siga as instruções no notebook para testar o endpoint do SageMaker implantado. Isso inclui o envio de uma imagem para o endpoint e a execução de inferências. Em seguida, você plotará a saída para visualizar o desempenho e a precisão do modelo, como mostrado abaixo.

Resultados dos testes YOLO11

  • Recursos de limpeza: O caderno de testes também o guiará pelo processo de limpeza do ponto de extremidade e do modelo hospedado. Este é um passo importante para gerir os custos e os recursos de forma eficaz, especialmente se não planear utilizar o modelo implementado imediatamente.

Etapa 7: Acompanhamento e gestão

Após o teste, a monitorização e a gestão contínuas do modelo implementado são essenciais.

  • Monitorizar com o Amazon CloudWatch: Verifique regularmente o desempenho e a integridade do seu endpoint SageMaker usando o Amazon CloudWatch.

  • Gerenciar o ponto de extremidade: Use o console do SageMaker para o gerenciamento contínuo do ponto de extremidade. Isso inclui dimensionar, atualizar ou reimplantar o modelo conforme necessário.

Ao concluir essas etapas, você terá implantado e testado com êxito um modelo YOLO11 no Amazon SageMaker Endpoints. Este processo não só o equipa com experiência prática na utilização de serviços AWS para a implementação de aprendizagem automática, como também estabelece as bases para a implementação de outros modelos avançados no futuro.

Resumo

Este guia conduziu-o passo a passo pela implantação do YOLO11 no Amazon SageMaker Endpoints usando o AWS CloudFormation e o AWS Cloud Development Kit (CDK). O processo inclui a clonagem do repositório GitHub necessário, a configuração do ambiente CDK, a implantação do modelo usando os serviços AWS e o teste de seu desempenho no SageMaker.

Para obter mais detalhes técnicos, consulte este artigo no Blogue de aprendizagem automática da AWS. Também pode consultar a documentação oficial do Amazon SageMaker para obter mais informações sobre vários recursos e funcionalidades.

Está interessado em saber mais sobre as diferentes integrações do YOLO11 ? Visite a página do guia de integraçõesUltralytics para descobrir ferramentas e capacidades adicionais que podem melhorar os seus projectos de aprendizagem automática.

FAQ

Como posso implementar o modelo Ultralytics YOLO11 no Amazon SageMaker Endpoints?

Para implementar o modelo Ultralytics YOLO11 no Amazon SageMaker Endpoints, siga estes passos:

  1. Configurar o ambiente do AWS: Verifique se você tem uma conta do AWS, funções de IAM com as permissões necessárias e o AWS CLI configurado. Instale o AWS CDK se ainda não o tiver feito (consulte as instruções do AWS CDK).
  2. Clonar o repositório YOLO11 SageMaker:
    git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
    cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
    
  3. Configurar o ambiente CDK: Criar um ambiente virtual Python , activá-lo, instalar dependências e atualizar a biblioteca AWS CDK.
    python3 -m venv .venv
    source .venv/bin/activate
    pip3 install -r requirements.txt
    pip install --upgrade aws-cdk-lib
    
  4. Implementar utilizando o AWS CDK: Sintetizar e implantar a pilha do CloudFormation, inicializar o ambiente.
    cdk synth
    cdk bootstrap
    cdk deploy
    

Para mais informações, consulte a secção de documentação.

Quais são os pré-requisitos para implantar o YOLO11 no Amazon SageMaker?

Para implantar o YOLO11 no Amazon SageMaker, certifique-se de ter os seguintes pré-requisitos:

  1. Conta AWS: Conta AWS ativa(inscreva-se aqui).
  2. Funções de IAM: Funções IAM configuradas com permissões para SageMaker, CloudFormation e Amazon S3.
  3. AWS CLI: Interface de linha de comando do AWS instalada e configurada(guia de instalação do AWS CLI ).
  4. AWS CDK: Kit de desenvolvimento de nuvem do AWS instalado(guia de configuração do CDK).
  5. Quotas de serviço: Quotas suficientes para ml.m5.4xlarge para utilização do ponto de extremidade e do computador portátil (solicitar um aumento da quota).

Para uma configuração detalhada, consulte esta secção.

Por que razão devo utilizar Ultralytics YOLO11 no Amazon SageMaker?

A utilização de Ultralytics YOLO11 no Amazon SageMaker oferece várias vantagens:

  1. Escalabilidade e gestão: O SageMaker fornece um ambiente gerido com funcionalidades como o escalonamento automático, que ajuda nas necessidades de inferência em tempo real.
  2. Integração com os serviços do AWS: Integre-se perfeitamente com outros serviços do AWS, como o S3 para armazenamento de dados, o CloudFormation para infraestrutura como código e o CloudWatch para monitoramento.
  3. Facilidade de implantação: Configuração simplificada usando scripts do AWS CDK e processos de implantação simplificados.
  4. Desempenho: Aproveite a infraestrutura de alto desempenho do Amazon SageMaker para executar tarefas de inferência em grande escala de forma eficiente.

Explore mais sobre as vantagens de utilizar o SageMaker na secção de introdução.

Posso personalizar a lógica de inferência para YOLO11 no Amazon SageMaker?

Sim, é possível personalizar a lógica de inferência para YOLO11 no Amazon SageMaker:

  1. Modificar inference.py: Localizar e personalizar o output_fn na função inference.py para adaptar os formatos de saída.

    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. Implementar modelo atualizado: Certifique-se de que reimplanta o modelo utilizando os notebooks Jupyter fornecidos (1_DeployEndpoint.ipynb) para incluir estas alterações.

Consulte as etapas detalhadas para implantar o modelo modificado.

Como posso testar o modelo YOLO11 implementado no Amazon SageMaker?

Para testar o modelo YOLO11 implantado no Amazon SageMaker:

  1. Abrir o caderno de testes: Localizar o 2_TestEndpoint.ipynb no ambiente Jupyter do SageMaker.
  2. Executar o bloco de notas: Siga as instruções do bloco de notas para enviar uma imagem para o ponto final, efetuar a inferência e apresentar os resultados.
  3. Visualizar resultados: Utilize as funcionalidades de plotagem incorporadas para visualizar métricas de desempenho, tais como caixas delimitadoras em torno de objectos detectados.

Para obter instruções completas sobre os testes, visite a secção de testes.

📅C riado há 11 meses ✏️ Atualizado há 2 meses

Comentários