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.

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:
- Uma conta Snowflake
- Um bucket S3 para rastrear experimentos no MLflow
- Uma conta Amazon SageMaker Studio
- Uma função (role) de Gerenciamento de Identidade e Acesso da AWS que seja Função de Execução de Domínio do SageMaker
- Um novo usuário com permissão para acessar o bucket S3 criado
- Confirmação de acesso à conta AWS através do Console de Gerenciamento AWS e da Interface de Linha de Comando AWS
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}")

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/)
Leave a Reply