O desafio das operações de modelo em escala
Gerenciar fluxos de trabalho de ModelOps (operações de modelos de machine learning) sempre foi uma tarefa complexa e demorada. Equipes que tentaram configurar templates de projeto para seus times de ciência de dados enfrentaram um cenário desafiador: a abordagem anterior exigia o uso do AWS Service Catalog, que demandava configuração de portfolios, produtos e permissões complexas—adicionando sobrecarga administrativa significativa antes do time conseguir construir seus primeiros pipelines de ML.
Esse gargalo administrativo afastava cientistas de dados de suas atividades principais, enquanto que arquitetos e administradores gastavam horas configurando infraestrutura em vez de resolver problemas de negócio.
O caminho simplificado: templates baseados em Amazon S3
A AWS agora oferece uma alternativa mais direta: o Amazon SageMaker AI Projects suporta templates baseados em Amazon S3. Com essa nova capacidade, administradores podem armazenar templates AWS CloudFormation diretamente no Amazon Simple Storage Service (Amazon S3) e gerenciar todo o ciclo de vida usando recursos familiares do S3: versionamento, políticas de ciclo de vida e replicação entre regiões do S3.
Isso significa fornecer ao time de ciência de dados templates de projeto automatizados, com controle de versão e seguros—com uma sobrecarga administrativa significativamente menor.
O que é Amazon SageMaker AI Projects?
O Amazon SageMaker AI Projects permite que times criem, compartilhem e gerenciem projetos de ModelOps completamente configurados. Dentro desse ambiente estruturado, você organiza código, dados e experimentos—facilitando colaboração e reprodutibilidade. Cada projeto pode incluir pipelines de integração e entrega contínua (CI/CD), registros de modelo, configurações de deployment e outros componentes de ModelOps, todos gerenciados dentro do SageMaker AI.
Templates reutilizáveis padronizam práticas de ModelOps ao codificar as melhores práticas para processamento de dados, desenvolvimento de modelos, treinamento, deployment e monitoramento.
Casos de uso principais
Você pode orquestrar diversos cenários usando SageMaker AI Projects:
- Automatizar fluxos de ML: Configure pipelines CI/CD que compilam, testam e deployam modelos automaticamente
- Impor governança e conformidade: Garanta que seus projetos sigam padrões organizacionais para segurança, rede e marcação de recursos
- Acelerar time-to-value: Forneça ambientes pré-configurados para que cientistas de dados se concentrem em problemas de ML, não em infraestrutura
- Melhorar colaboração: Estabeleça estruturas de projeto consistentes para compartilhamento e reutilização de código
Nova funcionalidade: templates de projeto em Amazon S3
A atualização mais recente do SageMaker AI Projects permite que administradores armazenem e gerenciem templates de projeto de ML diretamente no Amazon S3. Esses templates baseados em S3 são uma alternativa menos complicada e mais flexível em relação ao Service Catalog anterior.
Com esse aprimoramento, templates de AWS CloudFormation podem ser versionados, protegidos e compartilhados eficientemente entre times usando os controles de acesso ricos, gerenciamento de ciclo de vida e recursos de replicação fornecidos pelo S3.
Disponibilidade regional e acesso entre contas
Quando você armazena templates no Amazon S3, eles ficam disponíveis em todas as regiões AWS onde SageMaker AI Projects é suportado. Para compartilhar templates entre contas AWS, você pode usar políticas de bucket S3 e controles de acesso entre contas.
Versionamento e auditoria completa
A possibilidade de ativar versionamento no S3 fornece um histórico completo de alterações de template, facilitando auditorias e reversões, além de registrar a evolução do template do projeto de forma imutável.
Migração do Service Catalog
Se seus times atualmente usam templates baseados em Service Catalog, a abordagem baseada em S3 oferece um caminho de migração direto. Ao migrar, as considerações principais envolvem: provisionar novas funções SageMaker para substituir funções específicas do Service Catalog, atualizar referências de template, enviar templates para S3 com marcação adequada e configurar tags no nível do domínio apontando para o bucket de templates.
Para organizações com repositórios de templates centralizados, você deve estabelecer políticas de bucket S3 entre contas para permitir descoberta de templates a partir de contas consumidoras, com cada domínio SageMaker de cada conta consumidora marcado para referenciar o bucket central.
Tanto templates baseados em S3 quanto baseados em Service Catalog aparecem em abas separadas na interface de criação do SageMaker AI Projects, permitindo que organizações introduzam templates em S3 gradualmente sem interromper fluxos de trabalho existentes durante a migração.
Requisitos técnicos para configuração
SageMaker AI Projects com templates em S3 suporta templates CloudFormation personalizados que você cria para o seu caso de uso de ML organizacional. Os templates fornecidos pela AWS (como os templates de projeto ModelOps integrados) continuam disponíveis exclusivamente através do Service Catalog.
Seus templates personalizados devem ser arquivos CloudFormation válidos em formato YAML.
Para começar a usar templates baseados em S3 com SageMaker AI Projects, seu domínio SageMaker deve incluir a tag sagemaker:projectS3TemplatesLocation com o valor s3://<bucket-name>/<prefix>/.
Cada arquivo de template enviado para S3 deve ser marcado com sagemaker:studio-visibility=true para aparecer no console SageMaker AI Studio Projects.
Você precisará conceder acesso de leitura a funções de execução SageMaker na política de bucket S3 e ativar configuração CORS no bucket S3 para permitir ao SageMaker AI Projects acessar os templates S3.
Como integração de templates em S3 funciona na prática
A configuração opera em dois fluxos de trabalho separados: configuração única por administradores e lançamento de projeto por engenheiros de ML e cientistas de dados.
Quando engenheiros de ML e cientistas de dados lançam um novo projeto de ModelOps no SageMaker AI, o SageMaker lança uma pilha (stack) AWS CloudFormation para provisionar os recursos definidos no template. Assim que o processo é concluído, você acessa todos os recursos especificados e os pipelines CI/CD configurados em seu projeto.
Gerenciamento do ciclo de vida de projetos
O gerenciamento do ciclo de vida de projetos lançados pode ser realizado através do console SageMaker Studio, onde usuários navegam para S3 Templates, selecionam um projeto e usam o menu Actions para atualizar ou deletar projetos.
Atualizações de projeto podem ser usadas para modificar parâmetros de template existentes ou a própria URL do template, acionando atualizações de stack CloudFormation que são validadas antes da execução. A exclusão de projeto remove todos os recursos e configurações associadas do CloudFormation.
Essas operações de ciclo de vida também podem ser executadas programaticamente usando as APIs do SageMaker.
Caso de uso: template MLOps integrado com GitHub para times corporativos
Muitas organizações usam GitHub como seu sistema principal de controle de versão e desejam usar GitHub Actions para CI/CD enquanto usam SageMaker para cargas de trabalho de ML. No entanto, configurar essa integração requer a configuração de múltiplos serviços AWS, estabelecer conexões seguras e implementar fluxos de aprovação apropriados—uma tarefa complexa que consome tempo se feita manualmente.
Solução com template baseado em S3
O template baseado em S3 resolve esse desafio ao provisionar um pipeline de ModelOps completo que inclui orquestração CI/CD, componentes de SageMaker Pipelines e automação acionada por eventos.
Esse exemplo de projeto ModelOps com templates baseados em S3 habilita fluxos de trabalho de ModelOps totalmente automatizados e governados. Cada projeto de ModelOps inclui um repositório GitHub pré-configurado com fluxos de Actions e AWS CodeConnections seguras para integração perfeita.
Após commits de código, uma pipeline SageMaker é acionada para orquestrar um processo padronizado envolvendo pré-processamento de dados, treinamento de modelo, avaliação e registro. Para deployment, o sistema suporta staging automatizado na aprovação do modelo, com verificações robustas de validação, uma porta de aprovação manual para promover modelos à produção, e uma arquitetura segura e orientada por eventos usando AWS Lambda e Amazon EventBridge.
Governança e conformidade no fluxo
Em todo o fluxo de trabalho, a governança é suportada pelo SageMaker Model Registry para rastreamento de versões de modelo e linhagem, etapas de aprovação bem-definidas, gerenciamento seguro de credenciais usando AWS Secrets Manager, e padrões consistentes de marcação e nomenclatura para todos os recursos.
Quando cientistas de dados selecionam esse template no SageMaker Studio, eles provisionam um ambiente de ModelOps totalmente funcional através de um processo simplificado. Eles enviam seu código de ML para GitHub usando funcionalidade Git integrada no IDE do Studio, e o pipeline automaticamente lida com treinamento de modelo, avaliação e deployment progressivo através de staging até produção—tudo mantendo requisitos de segurança e conformidade corporativos.
Começando com o template
Instruções de configuração completas e código para esse template de ModelOps estão disponíveis em um repositório GitHub. Após seguir as instruções no repositório, você encontra o template mlops-github-actions na seção SageMaker AI Projects no console SageMaker AI Studio escolhendo Projects no painel de navegação e selecionando a aba Organization templates, depois clicando em Next.
Para lançar o projeto ModelOps, você deve inserir detalhes específicos do projeto, incluindo o campo Role ARN, que deve conter o ARN da função AmazonSageMakerProjectsLaunchRole criada durante a configuração.
Segurança com Launch Roles
Como prática recomendada de segurança, use o Amazon Resource Name (ARN) da função AmazonSageMakerProjectsLaunchRole, não sua função de execução SageMaker. A AmazonSageMakerProjectsLaunchRole é uma função de provisionamento que atua como intermediária durante a criação de projeto ModelOps. Essa função contém todas as permissões necessárias para criar infraestrutura do seu projeto, incluindo funções AWS Identity and Access Management (IAM), buckets S3, AWS CodePipeline e outros recursos AWS.
Ao usar essa launch role dedicada, engenheiros de ML e cientistas de dados podem criar projetos de ModelOps sem exigir permissões mais amplas em suas contas. Sua função de execução SageMaker pessoal permanece limitada em escopo—eles precisam apenas de permissão para assumir a launch role. Essa separação de responsabilidades é importante para manter segurança.
Sem launch roles, cada profissional de ML precisaria de permissões IAM extensas para criar pipelines de código, projetos AWS CodeBuild, buckets S3 e outros recursos AWS diretamente. Com launch roles, precisam apenas de permissão para assumir uma função pré-configurada que lida com o provisionamento em seu nome, mantendo suas permissões pessoais mínimas e seguras.
Após inserir seus detalhes desejados de configuração de projeto e clicar em Next, o template cria dois fluxos de trabalho automatizados de ModelOps—um para construção de modelo e outro para deployment de modelo—que trabalham juntos para fornecer CI/CD para seus modelos de ML. O exemplo completo de ModelOps pode ser encontrado no repositório mlops-github-actions.
Limpeza de recursos
Após deployment, você incorrerá em custos pelos recursos deployados. Se não tenciona continuar usando a configuração, delete os recursos do projeto ModelOps para evitar cobranças desnecessárias.
Para destruir o projeto, abra o SageMaker Studio, clique em More no painel de navegação e selecione Projects. Escolha o projeto que deseja deletar, clique nas reticências acima do canto superior direito da lista de projetos e escolha Delete. Revise as informações na caixa de diálogo Delete project e selecione Yes, delete the project para confirmar. Após a exclusão, verifique que seu projeto não aparece mais na lista.
Além de deletar um projeto, que remove e desprovisiona o SageMaker AI Project, você também precisa deletar manualmente os seguintes componentes se não forem mais necessários: repositórios Git, pipelines, grupos de modelo e endpoints.
Impacto estratégico e conclusão
O provisionamento de templates baseado em Amazon S3 para Amazon SageMaker AI Projects transforma como organizações padronizam operações de ML. Conforme demonstrado neste artigo, um único template AWS CloudFormation pode provisionar um fluxo de trabalho CI/CD completo integrando seu repositório Git (GitHub, Bitbucket ou GitLab), SageMaker Pipelines e SageMaker Model Registry—fornecendo times de ciência de dados com fluxos de trabalho automatizados enquanto mantém controles de governança e segurança corporativos.
Para mais informações sobre SageMaker AI Projects e templates baseados em S3, consulte ModelOps Automation With SageMaker Projects.
Ao usar templates baseados em S3 no SageMaker AI Projects, administradores podem definir e governar a infraestrutura de ML, enquanto engenheiros de ML e cientistas de dados ganham acesso a ambientes de ML pré-configurados através de provisionamento em autoatendimento. Explore o repositório de exemplos GitHub para templates populares de ModelOps e comece hoje seguindo as instruções fornecidas. Você também pode criar templates personalizados adaptados aos requisitos específicos da sua organização, políticas de segurança e frameworks de ML preferidos.
Fonte
Simplify ModelOps with Amazon SageMaker AI Projects using Amazon S3-based templates (https://aws.amazon.com/blogs/machine-learning/simplify-modelops-with-amazon-sagemaker-ai-projects-using-amazon-s3-based-templates/)
Leave a Reply