Um Guia para Implantar YOLO11 em Endpoints do Amazon SageMaker
A implantação de modelos avançados de visão computacional, como o YOLO11 da Ultralytics, em Amazon SageMaker Endpoints abre uma ampla gama de possibilidades para várias aplicações de aprendizado de máquina. A chave para usar esses modelos de forma eficaz está na compreensão de sua configuração, processos de configuração e implantação. O YOLO11 se torna ainda mais poderoso quando integrado perfeitamente ao Amazon SageMaker, um serviço de aprendizado de máquina robusto e escalável da AWS.
Este guia o conduzirá pelo processo de implantação de modelos PyTorch YOLO11 nas Endpoints do Amazon SageMaker passo a passo. Você aprenderá o essencial sobre como preparar seu ambiente AWS, configurar o modelo de forma adequada e usar ferramentas como AWS CloudFormation e AWS Cloud Development Kit (CDK) para implantação.
Amazon SageMaker
Amazon SageMaker é um serviço de machine learning da Amazon Web Services (AWS) que simplifica o processo de construção, treino e implementação de modelos de machine learning. Fornece uma vasta gama de ferramentas para lidar com vários aspetos dos fluxos de trabalho de machine learning. Isto inclui funcionalidades automatizadas para otimizar modelos, opções para treinar modelos à escala e métodos simples para implementar modelos em produção. O SageMaker suporta frameworks populares de machine learning, oferecendo a flexibilidade necessária para diversos projetos. 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 no Amazon SageMaker Endpoints
A implantação do YOLO11 no Amazon SageMaker permite que você use seu ambiente gerenciado para inferência em tempo real e aproveite recursos como o autoescalonamento. Dê uma olhada na arquitetura AWS abaixo.
Passo 1: Configure seu ambiente AWS
Primeiro, certifique-se de ter os seguintes pré-requisitos:
-
Uma conta AWS: Se você ainda não tiver uma, inscreva-se para uma conta AWS.
-
Funções IAM Configuradas: Você precisará de uma função IAM com as permissões necessárias para Amazon SageMaker, AWS CloudFormation e Amazon S3. Esta função deve ter políticas que permitam o acesso a estes serviços.
-
AWS CLI: Se ainda não estiver instalado, baixe e instale a AWS Command Line Interface (CLI) e configure-a com os detalhes da sua conta. Siga as instruções da AWS CLI para instalação.
-
AWS CDK: Se ainda não estiver instalado, instale o AWS Cloud Development Kit (CDK), que será usado para criar scripts de implantação. Siga as instruções do AWS CDK para instalação.
-
Quota de Serviço Adequada: Confirme se você tem quotas suficientes para dois recursos separados no Amazon SageMaker: um para
ml.m5.4xlarge
para uso do endpoint e outro paraml.m5.4xlarge
para uso da instância do notebook. Cada um deles requer um valor mínimo de cota. Se suas cotas atuais estiverem abaixo desse requisito, é importante solicitar um aumento para cada um. Você pode solicitar um aumento de cota seguindo as instruções detalhadas no Documentação de Cotas de Serviço da AWS.
Passo 2: Clone o repositório YOLO11 SageMaker
A próxima etapa é clonar o repositório AWS específico que contém os recursos para implantar o YOLO11 no SageMaker. Este repositório, hospedado no GitHub, inclui os scripts CDK e arquivos de configuração necessários.
-
Clone o Repositório 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é o Diretório Clonado: Altere seu diretório para o repositório clonado:
cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
Passo 3: Configurar o Ambiente CDK
Agora que você tem o código necessário, configure seu ambiente para implantação com AWS CDK.
-
Criar um Ambiente Virtual Python: Isso isola seu ambiente Python e dependências. Execute:
python3 -m venv .venv
-
Ative o Ambiente Virtual:
source .venv/bin/activate
-
Instalar Dependências: Instale as dependências Python necessárias para o projeto:
pip3 install -r requirements.txt
-
Atualizar a Biblioteca AWS CDK: Garanta que você tenha a versão mais recente da biblioteca AWS CDK:
pip install --upgrade aws-cdk-lib
Passo 4: Criar a Pilha AWS CloudFormation
-
Sintetize a Aplicação CDK: Gere o template AWS CloudFormation a partir do seu código CDK:
cdk synth
-
Inicialize a Aplicação CDK: Prepare seu ambiente AWS para a implantação do CDK:
cdk bootstrap
-
Implementar a Stack: Isso criará os recursos AWS necessários e implementará seu modelo:
cdk deploy
Passo 5: Implantar o Modelo YOLO
Antes de se aprofundar nas instruções de implementação, certifique-se de verificar a variedade de modelos YOLO11 oferecidos pela Ultralytics. Isso ajudará você a escolher o modelo mais adequado para os requisitos do seu projeto.
Após criar o AWS CloudFormation Stack, o próximo passo é implantar o YOLO11.
-
Abrir a Instância do Notebook: Vá para o Console da AWS e navegue até o serviço Amazon SageMaker. Selecione "Notebook Instances" (Instâncias de Notebook) no painel, depois localize a instância de notebook que foi criada pelo seu script de implantação CDK. Abra a instância de notebook para acessar o ambiente Jupyter.
-
Acesse e Modifique o inference.py: Após abrir a instância do notebook SageMaker no Jupyter, localize o arquivo inference.py. Edite a função output_fn no inference.py conforme 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)
-
Implementar o Endpoint 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, empacotá-lo com o código de inferência atualizado e carregá-lo em um bucket do Amazon S3. O notebook irá guiá-lo através da criação e implementação de um endpoint SageMaker para o modelo YOLO11.
Passo 6: Testando Sua Implantação
Agora que seu modelo YOLO11 está implantado, é importante testar seu desempenho e funcionalidade.
-
Abrir o Notebook de Teste: No mesmo ambiente Jupyter, localize e abra o notebook 2_TestEndpoint.ipynb, também no diretório sm-notebook.
-
Execute o Notebook de Teste: Siga as instruções dentro do notebook para testar o endpoint SageMaker implantado. Isso inclui enviar uma imagem para o endpoint e executar inferências. Em seguida, você plotará a saída para visualizar o desempenho e a precisão do modelo, conforme mostrado abaixo.
- Limpeza de Recursos: O notebook de teste também o guiará pelo processo de limpeza do endpoint e do modelo hospedado. Este é um passo importante para gerenciar custos e recursos de forma eficaz, especialmente se você não planeja usar o modelo implantado imediatamente.
Passo 7: Monitoramento e Gerenciamento
Após o teste, o monitoramento e gerenciamento contínuos do seu modelo implementado são essenciais.
-
Monitore com o Amazon CloudWatch: Verifique regularmente o desempenho e a saúde do seu endpoint SageMaker usando o Amazon CloudWatch.
-
Gerir o Endpoint: Use a consola SageMaker para a gestão contínua do endpoint. Isso inclui escalar, atualizar ou reimplementar o modelo conforme necessário.
Ao concluir estas etapas, você terá implantado e testado com sucesso um modelo YOLO11 nos Amazon SageMaker Endpoints. Este processo não só o equipa com experiência prática no uso de serviços AWS para implantação de machine learning, mas também estabelece as bases para a implantação de outros modelos avançados no futuro.
Resumo
Este guia o conduziu passo a passo pela implantação do YOLO11 nos Endpoints do Amazon SageMaker usando o AWS CloudFormation e o AWS Cloud Development Kit (CDK). O processo inclui clonar o repositório GitHub necessário, configurar o ambiente CDK, implantar o modelo usando os serviços da AWS e testar seu desempenho no SageMaker.
Para mais detalhes técnicos, consulte este artigo no AWS Machine Learning Blog. Você também pode consultar a Documentação oficial do Amazon SageMaker para obter mais informações sobre vários recursos e funcionalidades.
Você está interessado em aprender mais sobre diferentes integrações do YOLO11? Visite a página do guia de integrações da Ultralytics para descobrir ferramentas e capacidades adicionais que podem aprimorar seus projetos de aprendizado de máquina.
FAQ
Como implemento o modelo Ultralytics YOLO11 nos Amazon SageMaker Endpoints?
Para implementar o modelo Ultralytics YOLO11 no Amazon SageMaker Endpoints, siga estes passos:
- Configurar seu Ambiente AWS: Certifique-se de ter uma conta AWS, funções IAM com as permissões necessárias e a AWS CLI configurada. Instale o AWS CDK, caso ainda não tenha feito isso (consulte as instruções do AWS CDK).
- Clone 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
- Configurar o Ambiente CDK: Crie um ambiente virtual python, ative-o, instale as dependências e atualize a biblioteca AWS CDK.
python3 -m venv .venv source .venv/bin/activate pip3 install -r requirements.txt pip install --upgrade aws-cdk-lib
- Implementar usando AWS CDK: Sintetize e implante a pilha CloudFormation, inicialize o ambiente.
cdk synth cdk bootstrap cdk deploy
Para obter mais detalhes, revise a seção de documentação.
Quais são os pré-requisitos para implantar o YOLO11 no Amazon SageMaker?
Para implementar o YOLO11 no Amazon SageMaker, certifique-se de que tem os seguintes pré-requisitos:
- Conta AWS: Conta AWS ativa (inscreva-se aqui).
- Funções IAM: Funções IAM configuradas com permissões para SageMaker, CloudFormation e Amazon S3.
- AWS CLI: Interface de Linha de Comando AWS instalada e configurada (guia de instalação do AWS CLI).
- AWS CDK: AWS Cloud Development Kit instalado (guia de configuração do CDK).
- Cotas de Serviço: Cotas suficientes para
ml.m5.4xlarge
instâncias para uso tanto em endpoint quanto em notebook (solicitar um aumento de cota).
Para uma configuração detalhada, consulte esta seção.
Por que devo usar Ultralytics YOLO11 no Amazon SageMaker?
Usar o Ultralytics YOLO11 no Amazon SageMaker oferece diversas vantagens:
- Escalabilidade e Gerenciamento: O SageMaker fornece um ambiente gerenciado com recursos como autoescalonamento, o que ajuda nas necessidades de inferência em tempo real.
- Integração com Serviços AWS: Integre-se perfeitamente com outros serviços AWS, como S3 para armazenamento de dados, CloudFormation para infraestrutura como código e CloudWatch para monitoramento.
- Facilidade de Implantação: Configuração simplificada usando scripts AWS CDK e processos de implantação otimizados.
- Desempenho: Aproveite a infraestrutura de alto desempenho da Amazon SageMaker para executar tarefas de inferência em grande escala de forma eficiente.
Explore mais sobre as vantagens de usar o SageMaker na seção de introdução.
Posso personalizar a lógica de inferência para YOLO11 no Amazon SageMaker?
Sim, você pode personalizar a lógica de inferência para YOLO11 no Amazon SageMaker:
-
Modificar
inference.py
: Localize e personalize ooutput_fn
função noinference.py
ficheiro para personalizar 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)
-
Implementar Modelo Atualizado: Certifique-se de reimplantar o modelo usando os notebooks Jupyter fornecidos (
1_DeployEndpoint.ipynb
) para incluir essas alterações.
Consulte as etapas detalhadas para implantar o modelo modificado.
Como posso testar o modelo YOLO11 implantado no Amazon SageMaker?
Para testar o modelo YOLO11 implantado no Amazon SageMaker:
- Abrir o Notebook de Teste: Localize o
2_TestEndpoint.ipynb
notebook no ambiente SageMaker Jupyter. - Executar o Notebook: Siga as instruções do notebook para enviar uma imagem ao endpoint, realizar a inferência e exibir os resultados.
- Visualizar Resultados: Use as funcionalidades de plotagem incorporadas para visualizar métricas de desempenho, como bounding boxes ao redor de objetos detetados.
Para instruções de teste abrangentes, visite a seção de testes.