Um guia para implementar YOLOv8 em Amazon SageMaker Endpoints
A implantação de modelos avançados de visão computacional como Ultralytics' YOLOv8 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 YOLOv8 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 passo a passo pelo processo de implantação dos modelos YOLOv8 PyTorch no Amazon SageMaker Endpoints. Aprenderás o essencial para preparar o teu ambiente AWS, configurar o modelo adequadamente e usar 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, 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 de YOLOv8 em Amazon SageMaker Endpoints
A implementação do YOLOv8 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.
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 de IAM configuradas: Precisarás 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, 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 paraml.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 YOLOv8 SageMaker
A próxima etapa é clonar o repositório específico do AWS que contém os recursos para implantar o YOLOv8 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:
- Navega até ao diretório clonado: Muda o teu diretório para o repositório clonado:
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:
- Ativar o ambiente virtual:
- Instala as dependências: Instala as dependências necessárias do Python para o projeto:
- Atualiza a biblioteca do AWS CDK: Certifica-te de que tens a versão mais recente da biblioteca AWS CDK:
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:
- Inicializa o aplicativo CDK: Prepara seu ambiente AWS para a implantação do CDK:
- Implanta a pilha: Cria os recursos AWS necessários e implementa o teu modelo:
Passo 5: Implementa o modelo YOLOv8
Antes de mergulhar nas instruções de implementação, não te esqueças de verificar a gama de modelosYOLOv8 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 YOLOv8.
-
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, content_type):
"""Formats model outputs as JSON string according to content_type, 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 YOLOv8 , empacote-o com o código de inferência atualizado e carregue-o em um bucket do Amazon S3. O notebook irá guiá-lo na criação e implantação de um endpoint SageMaker para o modelo YOLOv8 .
Passo 6: Testar a tua implementação
Agora que o teu modelo YOLOv8 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.
- 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 essas etapas, terás implantado e testado com êxito um modelo YOLOv8 no Amazon SageMaker Endpoints. Este processo não só te dá experiência prática na utilização dos 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 de YOLOv8 no Amazon SageMaker Endpoints 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 AWS e testar 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 YOLOv8 ? 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.