Um guia para implementar YOLO26 nos endpoints do Amazon SageMaker#
A implementação de modelos avançados de visão computacional, como o YOLO26 da Ultralytics, nos endpoints do Amazon SageMaker abre um vasto leque de possibilidades para várias aplicações de aprendizagem automática. A chave para utilizar estes modelos de forma eficaz está em compreender os respetivos processos de configuração, preparação e implementação. O YOLO26 torna-se ainda mais poderoso quando é integrado de forma perfeita com o Amazon SageMaker, um serviço robusto e escalável de aprendizagem automática da AWS.
Este guia explica passo a passo como implementar modelos PyTorch YOLO26 nos endpoints do Amazon SageMaker. Vais aprender 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#
O Amazon SageMaker é um serviço de aprendizagem automática da Amazon Web Services (AWS) que simplifica o processo de criação, treino e implementação de modelos de aprendizagem automática. Fornece uma vasta gama de ferramentas para lidar com vários aspetos dos fluxos de trabalho de aprendizagem automática. Isto inclui funcionalidades automatizadas para ajustar modelos, opções para treinar modelos à escala e métodos simples para implementar modelos em produção. O SageMaker é compatível com frameworks populares de aprendizagem automática, oferecendo a flexibilidade necessária para projetos diversificados. As suas funcionalidades também abrangem a rotulagem de dados, a gestão de fluxos de trabalho e a análise de desempenho.
Implementar YOLO26 nos endpoints do Amazon SageMaker#
A implementação do YOLO26 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. Consulta a arquitetura da AWS abaixo.
Passo 1: Configurar o teu ambiente AWS#
Primeiro, confirma que tens os seguintes pré-requisitos configurados:
-
Uma conta AWS: se ainda não tiveres uma, cria uma conta AWS.
-
Funções IAM configuradas: precisas de uma função IAM com as permissões necessárias para o Amazon SageMaker, o AWS CloudFormation e o Amazon S3. Esta função deve ter políticas que lhe permitam aceder a estes serviços.
-
AWS CLI: se ainda não estiver instalada, transfere e instala a AWS Command Line Interface (CLI) e configura-a com os dados da tua conta. Segue as instruções da AWS CLI para a instalação.
-
AWS CDK: se ainda não estiver instalado, instala o AWS Cloud Development Kit (CDK), que será utilizado para criar scripts de implementação. Segue as instruções do AWS CDK para a instalação.
-
Quota de serviço adequada: confirma que tens quotas suficientes para dois recursos separados no Amazon SageMaker: uma para
ml.m5.4xlarge, para utilização do endpoint, e outra paraml.m5.4xlarge, para utilização da instância de notebook. Cada uma requer um valor de quota mínimo de um. Se as tuas quotas atuais forem inferiores a este requisito, é importante solicitar um aumento para cada uma. Podes solicitar um aumento de quota seguindo as instruções detalhadas na documentação das quotas de serviço da AWS.
Passo 2: Clonar o repositório SageMaker do YOLO26#
O passo seguinte consiste em clonar o repositório específico da AWS que contém os recursos para implementar o YOLO26 no SageMaker. Este repositório, alojado no GitHub, inclui os scripts CDK e os ficheiros de configuração necessários.
-
Clonar o repositório do GitHub: executa o seguinte comando no terminal para clonar o repositório host-yolov8-on-sagemaker-endpoint:
git clone https://github.com/aws-samples/host-yolov8-on-sagemaker-endpoint.git -
Aceder ao diretório clonado: muda o diretório atual para o repositório clonado:
cd host-yolov8-on-sagemaker-endpoint/yolov8-pytorch-cdk
Passo 3: Configurar o ambiente CDK#
Agora que tens o código necessário, configura o teu ambiente para a implementação com o AWS CDK.
-
Criar um ambiente virtual Python: isto isola o teu ambiente Python e as respetivas dependências. Executa:
python3 -m venv .venv -
Ativar o ambiente virtual:
source .venv/bin/activate -
Instalar dependências: instala as dependências Python necessárias para o projeto:
pip3 install -r requirements.txt -
Atualizar a biblioteca AWS CDK: confirma que tens a versão mais recente da biblioteca AWS CDK:
pip install --upgrade aws-cdk-lib
Passo 4: Criar a stack do AWS CloudFormation#
-
Sintetizar a aplicação CDK: gera o template do AWS CloudFormation a partir do teu código CDK:
cdk synth -
Inicializar a aplicação CDK: prepara o teu ambiente AWS para a implementação com o CDK:
cdk bootstrap -
Implementar a stack: isto criará os recursos AWS necessários e implementará o teu modelo:
cdk deploy
Passo 5: Implementar o modelo YOLO#
Antes de começares as instruções de implementação, consulta a variedade de modelos YOLO26 disponibilizados pela Ultralytics. Isto ajudar-te-á a escolher o modelo mais adequado aos requisitos do teu projeto.
Depois de criares a stack do AWS CloudFormation, o passo seguinte é implementar o YOLO26.
-
Abrir a instância de notebook: acede à Consola AWS e navega até ao serviço Amazon SageMaker. Seleciona "Notebook Instances" no painel e localiza a instância de notebook criada pelo teu script de implementação CDK. Abre a instância de notebook para aceder ao ambiente Jupyter.
-
Aceder e modificar inference.py: depois de abrires a instância de notebook do SageMaker no Jupyter, localiza o ficheiro inference.py. Edita a função output_fn em inference.py, conforme mostrado abaixo, e guarda as alterações no script, garantindo que não existem 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 com 1_DeployEndpoint.ipynb: no ambiente Jupyter, abre o notebook 1_DeployEndpoint.ipynb localizado no diretório sm-notebook. Segue as instruções do notebook e executa as células para transferir o modelo YOLO26, empacotá-lo com o código de inferência atualizado e carregá-lo para um bucket do Amazon S3. O notebook orientar-te-á na criação e implementação de um endpoint do SageMaker para o modelo YOLO26.
Passo 6: Testar a tua implementação#
Agora que o teu modelo YOLO26 está implementado, é importante testar o seu desempenho e funcionamento.
-
Abrir o notebook de teste: no mesmo ambiente Jupyter, localiza e abre o notebook 2_TestEndpoint.ipynb, também no diretório sm-notebook.
-
Executar o notebook de teste: segue as instruções do notebook para testar o endpoint do SageMaker implementado. Isto inclui enviar uma imagem para o endpoint e executar inferências. Em seguida, traçarás o resultado para visualizar o desempenho e a precisão do modelo, conforme mostrado abaixo.
- Limpar recursos: o notebook de teste também te orientará no processo de limpeza do endpoint e do modelo alojado. Este é um passo importante para gerir os custos e os recursos de forma eficaz, especialmente se não planeares utilizar imediatamente o modelo implementado.
Passo 7: Monitorização e gestão#
Após os testes, a monitorização e a gestão contínuas do teu modelo implementado são essenciais.
-
Monitorizar com o Amazon CloudWatch: verifica regularmente o desempenho e o estado do teu endpoint do SageMaker utilizando o Amazon CloudWatch.
-
Gerir o endpoint: utiliza a consola do SageMaker para a gestão contínua do endpoint. Isto inclui escalonar, atualizar ou voltar a implementar o modelo conforme necessário.
Ao concluíres estes passos, terás implementado e testado com sucesso um modelo YOLO26 nos endpoints do Amazon SageMaker. Este processo não só te proporciona 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 implementares outros modelos avançados no futuro.
Resumo#
Este guia explicou passo a passo como implementar o YOLO26 nos endpoints do Amazon SageMaker utilizando o AWS CloudFormation e o AWS Cloud Development Kit (CDK). O processo inclui clonar o repositório necessário do GitHub, configurar o ambiente CDK, implementar o modelo utilizando serviços AWS e testar o seu desempenho no SageMaker.
Para obteres mais detalhes técnicos, consulta este artigo no AWS Machine Learning Blog. Também podes consultar a documentação oficial do Amazon SageMaker para obteres mais informações sobre várias funcionalidades e capacidades.
Queres saber mais sobre diferentes integrações do YOLO26? Visita a página do guia de integrações da Ultralytics para descobrires ferramentas e capacidades adicionais que podem melhorar os teus projetos de aprendizagem automática.
Perguntas frequentes#
Para implementares o modelo YOLO26 da Ultralytics nos endpoints do Amazon SageMaker, segue estes passos:
- Configurar o teu ambiente AWS: confirma que tens uma conta AWS, funções IAM com as permissões necessárias e a AWS CLI configurada. Instala o AWS CDK, caso ainda não o tenhas feito (consulta as instruções do AWS CDK).
- Clonar o repositório SageMaker do YOLO26:
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: cria um ambiente virtual Python, ativa-o, instala as dependências e atualiza a biblioteca AWS CDK.
python3 -m venv .venv source .venv/bin/activate pip3 install -r requirements.txt pip install --upgrade aws-cdk-lib - Implementar com o AWS CDK: sintetiza e implementa a stack do CloudFormation e inicializa o ambiente.
cdk synth cdk bootstrap cdk deploy
Para obteres mais detalhes, consulta a secção da documentação.
Para implementares o YOLO26 no Amazon SageMaker, confirma que tens os seguintes pré-requisitos:
- Conta AWS: conta AWS ativa (cria uma conta aqui).
- Funções IAM: funções IAM configuradas com permissões para o SageMaker, o CloudFormation e o Amazon S3.
- AWS CLI: AWS Command Line Interface instalada e configurada (guia de instalação da AWS CLI).
- AWS CDK: AWS Cloud Development Kit instalado (guia de configuração do CDK).
- Quotas de serviço: quotas suficientes para instâncias
ml.m5.4xlarge, tanto para utilização do endpoint como do notebook (solicitar um aumento de quota).
Para obteres instruções detalhadas de configuração, consulta esta secção.
A utilização do YOLO26 da Ultralytics no Amazon SageMaker oferece várias vantagens:
- Escalabilidade e gestão: o SageMaker fornece um ambiente gerido com funcionalidades como o escalonamento automático, o que ajuda a responder às necessidades de inferência em tempo real.
- Integração com serviços AWS: integra-o perfeitamente com outros serviços AWS, como o S3 para armazenamento de dados, o CloudFormation para infraestrutura como código e o CloudWatch para monitorização.
- Facilidade de implementação: configuração simplificada utilizando scripts AWS CDK e processos de implementação otimizados.
- Desempenho: tira partido da infraestrutura de alto desempenho do Amazon SageMaker para executar tarefas de inferência em grande escala de forma eficiente.
Explora mais vantagens da utilização do SageMaker na secção de introdução.
Sim, podes personalizar a lógica de inferência do YOLO26 no Amazon SageMaker:
-
Modificar
inference.py: localiza e personaliza a funçãooutput_fnno ficheiroinference.pypara adaptares 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) -
Implementar o modelo atualizado: certifica-te de que voltas a implementar o modelo utilizando os notebooks Jupyter fornecidos (
1_DeployEndpoint.ipynb) para incluir estas alterações.
Consulta os passos detalhados para implementares o modelo modificado.
-
Para testares o modelo YOLO26 implementado no Amazon SageMaker:
- Abrir o notebook de teste: localiza o notebook
2_TestEndpoint.ipynbno ambiente Jupyter do SageMaker. - Executar o notebook: segue as instruções do notebook para enviares uma imagem para o endpoint, executares a inferência e apresentares os resultados.
- Visualizar os resultados: utiliza as funcionalidades de criação de gráficos integradas para visualizares métricas de desempenho, como caixas delimitadoras em torno dos objetos detetados.
Para obteres instruções completas de teste, visita a secção de testes.
- Abrir o notebook de teste: localiza o notebook