Salta para o conteúdo

Um guia para a implementação do YOLO11 nos pontos de extremidade do Amazon SageMaker

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ás os fundamentos da preparação do teu ambiente AWS, da configuração adequada do modelo e da utilização de ferramentas como o AWS CloudFormation e o AWS Cloud Development Kit (CDK) para a implementaçã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. Inclui funcionalidades automatizadas para ajustar modelos, opções para treinar modelos em escala e métodos simples para implementar 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.

Implantação do YOLO11 em pontos de extremidade do Amazon SageMaker

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

Arquitetura AWS

Passo 1: Configurar o teu ambiente AWS

Primeiro, certifica-te de que tens os seguintes pré-requisitos:

  • Uma conta AWS: Se ainda não tiveres uma, inscreve-te numa conta AWS.

  • Funções do IAM configuradas: você precisará de uma função do IAM com as permissões necessárias para 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, transfere e instala o AWS Command Line Interface (CLI) e configura-o com os detalhes da tua conta. Segue as instruções do AWS CLI para a instalação.

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

  • Cota de serviço adequada: Confirma que tens 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 tuas quotas actuais estiverem abaixo deste requisito, é importante solicitar um aumento para cada uma delas. Podes pedir um aumento de quota seguindo as instruções detalhadas na secção Documentação das quotas de serviço do AWS.

Passo 2: Clona o repositório do SageMaker YOLO11

O próximo passo é clonar o repositório específico da 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.

  • Clona o repositório do GitHub: Executa o seguinte comando no teu terminal para clonar o repositório host-yolov8-on-sagemaker-endpoint:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git
  • Navega até ao diretório clonado: Muda o teu diretório para o repositório clonado:
cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk

Passo 3: Configura o ambiente CDK

Agora que tens o código necessário, configura o teu ambiente para a implementação com o AWS CDK.

  • Cria um ambiente virtual Python : Isola o ambiente e as dependências do Python . Executa:
python3 -m venv .venv
  • Ativar o ambiente virtual:
source .venv/bin/activate
  • Instala as dependências: Instala as dependências necessárias do Python para o projeto:
pip3 install -r requirements.txt
  • Atualiza a biblioteca do AWS CDK: Certifica-te de que tens a versão mais recente da biblioteca AWS CDK:
pip install --upgrade aws-cdk-lib

Etapa 4: criar a pilha do AWS CloudFormation

  • Sintetiza o aplicativo CDK: Gera o modelo do AWS CloudFormation a partir do teu código CDK:
cdk synth
  • Inicializa o aplicativo CDK: Prepara seu ambiente AWS para a implantação do CDK:
cdk bootstrap
  • Implanta a pilha: Cria os recursos AWS necessários e implementa o teu modelo:
cdk deploy

Passo 5: Implementa o modelo YOLO

Antes de mergulhar nas instruções de implementação, não te esqueças de verificar a gama de modelos YOLO11 oferecidos por Ultralytics. Isto ajudar-te-á a escolher o modelo mais adequado aos requisitos do teu projeto.

Depois de criar o AWS CloudFormation Stack, o próximo passo é implantar o YOLO11.

  • Abre a Instância do Notebook: Vai para o Console do AWS e navega até o serviço Amazon SageMaker. Seleciona "Instâncias de notebook" no painel e, em seguida, localiza a instância de notebook que foi criada pelo script de implantação do CDK. Abre a instância do notebook para acessar o ambiente Jupyter.

  • Acede e modifica o inference.py: Depois de abrir a instância do notebook do SageMaker no Jupyter, localiza o arquivo inference.py. Edita a função output_fn em inference.py como mostrado abaixo e salva 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 bloco de notas irá guiá-lo na criação e implantação de um ponto de extremidade do SageMaker para o modelo YOLO11.

Passo 6: Testar a tua implementação

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

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

  • Executa o caderno de teste: Segue as instruções no notebook para testar o endpoint SageMaker implantado. Isso inclui o envio de uma imagem para o endpoint e a execução de inferências. Em seguida, traça o resultado para visualizar o desempenho e a precisão do modelo, como mostrado abaixo.

Resultados do teste 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 planeares 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 teu modelo implementado são essenciais.

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

  • Gerenciar o ponto de extremidade: Utiliza a consola do SageMaker para a gestão contínua do ponto final. Isso inclui dimensionar, atualizar ou reimplantar o modelo conforme necessário.

Ao concluir estas etapas, terás implantado e testado com êxito um modelo YOLO11 no Amazon SageMaker Endpoints. Este processo não só te dá 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 levou-te passo a passo através da 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 da AWS e o teste de seu desempenho no SageMaker.

Para mais detalhes técnicos, consulta este artigo no Blogue de aprendizagem automática da AWS. Também podes consultar a documentação oficial do Amazon SageMaker para obteres mais informações sobre várias características e funcionalidades.

Estás interessado em saber mais sobre as diferentes integrações do YOLO11? Visita a página do guia de integraçõesUltralytics para descobrir ferramentas e capacidades adicionais que podem melhorar os teus 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, segue estes passos:

  1. Configurar o ambiente do AWS: Certifica-te de que tens uma conta AWS, funções IAM com as permissões necessárias e o AWS CLI configurado. Instala o AWS CDK se ainda não o tiver feito (consulte as instruções do AWS CDK).
  2. Clona o repositório do 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. Configura o ambiente CDK: Cria um ambiente virtual Python , ativa-o, instala dependências e actualiza a biblioteca AWS CDK.
    python3 -m venv .venv
    source .venv/bin/activate
    pip3 install -r requirements.txt
    pip install --upgrade aws-cdk-lib
    
  4. Implantar usando o AWS CDK: Sintetiza e implanta a pilha do CloudFormation, inicializa o ambiente.
    cdk synth
    cdk bootstrap
    cdk deploy
    

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

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

Para implementar o YOLO11 no Amazon SageMaker, certifica-te de que tens os seguintes pré-requisitos:

  1. Conta AWS: Conta AWS ativa(inscreve-te aqui).
  2. Funções de IAM: Funções IAM configuradas com permissões para SageMaker, CloudFormation e Amazon S3.
  3. AWS CLI: Instalou e configurou a interface de linha de comando do AWS(guia de instalação do AWS CLI ).
  4. AWS CDK: instala o AWS Cloud Development Kit(guia de configuração do CDK).
  5. Quotas de serviço: Quotas suficientes para ml.m5.4xlarge para a utilização do ponto de extremidade e do computador portátil (solicitar um aumento da quota).

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

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

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

  1. Escalabilidade e gestão: O SageMaker fornece um ambiente gerenciado com recursos como escalonamento automático, que ajuda nas necessidades de inferência em tempo real.
  2. Integração com os serviços do AWS: Integra-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 otimizados.
  4. Desempenho: Aproveita a infraestrutura de alto desempenho do Amazon SageMaker para executar tarefas de inferência em grande escala de forma eficiente.

Explora mais sobre as vantagens da utilização do SageMaker na secção de introdução.

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

Sim, podes personalizar a lógica de inferência para o YOLO11 no Amazon SageMaker:

  1. Modifica inference.py: Localiza e personaliza o output_fn na função inference.py para personalizar 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. Implementa o modelo atualizado: Certifica-te de que reimplementas o modelo utilizando os notebooks Jupyter fornecidos (1_DeployEndpoint.ipynb) para incluir estas alterações.

Consulta as etapas detalhadas para a implantação do modelo modificado.

Como posso testar o modelo YOLO11 implementado no Amazon SageMaker?

Para testar o modelo YOLO11 implementado no Amazon SageMaker:

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

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

📅 C riado há 10 meses ✏️ Atualizado há 1 mês

Comentários