MLflow no Amazon SageMaker: Monitore Experimentos de Machine Learning com Integração Snowflake

O Desafio do Rastreamento de Experimentos em Ambientes Distribuídos

Cientistas de dados frequentemente conduzem experimentos de machine learning em ambientes de dados diversos, como o Snowflake, utilizando a biblioteca Snowpark. No entanto, rastrear esses experimentos de forma centralizada apresenta desafios significativos. Manter um repositório único que monitore metadados de experimentos, parâmetros, hiperparâmetros, modelos, resultados e outras informações relevantes torna-se complexo quando esses processos ocorrem em plataformas distintas.

A AWS apresenta uma solução: integrar o MLflow gerenciado do SageMaker como repositório central para registro desses experimentos, estabelecendo um sistema unificado de monitoramento de progresso.

Capacidades do MLflow Gerenciado no SageMaker

O MLflow gerenciado da AWS oferece serviços totalmente gerenciados para rastreamento de experimentos, empacotamento de modelos e registro de modelos. O Registro de Modelos do SageMaker simplifica o versionamento e a implantação de modelos, facilitando transições suaves do desenvolvimento para produção.

A integração com Amazon S3, AWS Glue e Repositório de Características do SageMaker potencializa o gerenciamento de dados e a rastreabilidade de modelos. Os principais benefícios dessa arquitetura incluem:

  • Padronização de fluxos de trabalho de machine learning em toda a organização
  • Melhoria na colaboração entre equipes de ciência de dados
  • Aceleração da adoção de IA/ML com infraestrutura mais segura e escalável

Arquitetura da Solução: Snowpark Integrado ao MLflow

A integração entre Snowflake e SageMaker permite um fluxo de trabalho coeso. O Snowpark para Python funciona como biblioteca do lado cliente, permitindo que código Python interaja com o Snowflake a partir de kernels Python, como os notebooks Jupyter do SageMaker.

Imagem original — fonte: Aws

Um fluxo de trabalho típico inclui preparação de dados no Snowflake, juntamente com engenharia de características e treinamento de modelos dentro do Snowpark. Posteriormente, o MLflow gerenciado do SageMaker é utilizado para rastreamento de experimentos e registro de modelos, integrados às capacidades do SageMaker. Essa abordagem permite que cientistas de dados executem transformações e engenharia de características no Snowflake e aproveitem a infraestrutura gerenciada do SageMaker para treinamento e implantação, facilitando orquestração de fluxos de trabalho mais suave e tratamento seguro dos dados.

Rastreamento Centralizado com MLflow

O rastreamento MLflow é fundamental nessa integração entre SageMaker, Snowpark e Snowflake, pois fornece um ambiente centralizado para registro e gerenciamento de todo o ciclo de vida do machine learning. Enquanto o Snowpark processa dados do Snowflake e treina modelos, o Rastreamento MLflow captura detalhes essenciais:

  • Parâmetros e hiperparâmetros do modelo
  • Métricas de desempenho
  • Artefatos gerados durante o treinamento

Isso permite que cientistas de dados monitorem experimentos, comparem diferentes versões de modelos e verifiquem reprodutibilidade. Com as capacidades de versionamento e registro do MLflow, equipes podem rastrear resultados até o conjunto de dados específico e as transformações utilizadas, tornando mais simples monitorar o desempenho de modelos ao longo do tempo e manter um fluxo de trabalho de machine learning transparente e eficiente.

Essa abordagem oferece diversos benefícios práticos: fornece um rastreador MLflow escalável e gerenciado no SageMaker, enquanto aproveita as capacidades de processamento do Snowpark para inferência de modelo dentro do ambiente Snowflake, criando um sistema unificado de dados. O fluxo de trabalho permanece dentro do ambiente Snowflake, o que aprimora segurança e governança dos dados. Adicionalmente, reduz custos ao utilizar a potência de computação elástica do Snowflake para inferência sem necessidade de manter infraestrutura separada para servir modelos.

Pré-requisitos para Implementação

Antes de estabelecer o MLflow do SageMaker, é necessário criar e configurar os seguintes recursos:

O usuário do Gerenciamento de Identidade e Acesso deve possuir permissões para fazer as chamadas de serviço AWS necessárias. Ao conceder essas permissões, é importante seguir o princípio do menor privilégio.

Conectando Snowflake ao Servidor de Rastreamento MLflow

Para conectar o ambiente Snowflake ao Servidor de Rastreamento MLflow gerenciado do SageMaker, siga estas etapas:

Configuração Inicial no Snowflake

  • Faça login no Snowflake como usuário administrador
  • Crie um novo Notebook em Snowflake: Projects > Notebooks > +Notebook
  • Altere a função para uma função não-administrador
  • Atribua um nome, selecione banco de dados, schema, warehouse, e selecione ‘Run on container’
  • Nas configurações do Notebook, ative a opção de acesso externo para permitir todas as integrações

Instalação de Dependências

Instale a biblioteca necessária executando:

!pip install sagemaker-mlflow

Configuração do MLflow e Execução de Experimentos

Execute o código do MLflow, substituindo o valor de ARN pelo seu:

import mlflow
import boto3
import logging

sts = boto3.client("sts")
assumed = sts.assume_role(
    RoleArn="",
    RoleSessionName="sf-session"
)
creds = assumed["Credentials"]
arn = ""

try:
    mlflow.set_tracking_uri(arn)
    mlflow.set_experiment("Default")
    with mlflow.start_run():
        mlflow.log_param("test_size", 0.2)
        mlflow.log_param("random_state", 42)
        mlflow.log_param("model_type", "LinearRegression")
except Exception as e:
    logging.error("Failed to set tracking URI: {e}")
Imagem original — fonte: Aws

Após uma execução bem-sucedida, os experimentos podem ser rastreados no MLflow do SageMaker. Clicando no nome da execução (“Run name”), é possível acessar insights detalhados sobre cada experimento.

Limpeza de Recursos

Para evitar custos contínuos, execute estas etapas para remover os recursos configurados:

  • Delete a conta SageMaker Studio (isso também deleta o servidor de rastreamento MLflow)
  • Delete o bucket S3 com seu conteúdo
  • Remova o notebook do Snowflake
  • Verifique que a conta SageMaker foi deletada

Considerações Finais

A integração entre o MLflow gerenciado do SageMaker e o Snowflake oferece uma solução abrangente para gerenciar o ciclo de vida completo do machine learning. Ao aproveitar o Snowpark, a solução aprimora ainda mais esse conjunto de capacidades, permitindo fluxos de trabalho mais suaves de processamento de dados e implantação de modelos.

Para começar, siga as instruções passo a passo fornecidas acima para configurar o Servidor de Rastreamento MLflow no SageMaker Studio e integrá-lo com o Snowflake. Lembre-se de implementar as práticas recomendadas de segurança da AWS, incluindo funções e permissões apropriadas de Gerenciamento de Identidade e Acesso, e garantindo que todas as credenciais sejam protegidas adequadamente. Os exemplos de código e instruções neste artigo servem como ponto de partida — podem ser adaptados para casos de uso e requisitos específicos enquanto se mantêm as práticas recomendadas de segurança e escalabilidade.

Fonte

Track machine learning experiments with MLflow on Amazon SageMaker using Snowflake integration (https://aws.amazon.com/blogs/machine-learning/track-machine-learning-experiments-with-mlflow-on-amazon-sagemaker-using-snowflake-integration/)

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *