Realice un seguimiento de los experimentos de aprendizaje automático con MLflow en Amazon SageMaker mediante la integración de Snowflake

Un usuario puede realizar experimentos de datos de aprendizaje automático (ML) en entornos de datos, como Snowflake, utilizando la biblioteca Snowpark. Sin embargo, rastrear estos experimentos en diversos entornos puede ser un desafío debido a la dificultad de mantener un repositorio central para monitorear los metadatos, parámetros, hiperparámetros, modelos, resultados y otra información pertinente de los experimentos. En esta publicación, demostramos cómo integrar MLflow administrado por Amazon SageMaker como un repositorio central para registrar estos experimentos y proporcionar un sistema unificado para monitorear su progreso.

MLflow administrado por Amazon SageMaker ofrece servicios completamente administrados para el seguimiento de experimentos, el empaquetado de modelos y el registro de modelos. El Registro de modelos de SageMaker agiliza el control de versiones y la implementación del modelo, facilitando transiciones fluidas del desarrollo a la producción. Además, la integración con Amazon S3, AWS Glue y SageMaker Feature Store mejora la gestión de datos y la trazabilidad del modelo. Los beneficios clave de usar MLflow con SageMaker son que permite a las organizaciones estandarizar los flujos de trabajo de ML, mejorar la colaboración y acelerar la adopción de inteligencia artificial (IA)/ML con una infraestructura más segura y escalable. En esta publicación, mostramos cómo integrar MLflow administrado por Amazon SageMaker con Snowflake.

Snowpark permite que Python, Scala o Java creen canalizaciones de datos personalizadas para una manipulación y preparación eficiente de los datos al almacenar datos de entrenamiento en Snowflake. Los usuarios pueden realizar experimentos en Snowpark y realizar un seguimiento en MLflow administrado por Amazon SageMaker. Esta integración permite a los científicos de datos ejecutar transformaciones e ingeniería de funciones en Snowflake y utilizar la infraestructura administrada dentro de SageMaker para capacitación e implementación, lo que facilita una orquestación del flujo de trabajo más fluida y un manejo de datos más seguro.

Descripción general de la solución

La integración aprovecha Snowpark para Python, una biblioteca del lado del cliente que permite que el código Python interactúe con Snowflake desde los núcleos de Python, como los cuadernos Jupyter de SageMaker. Un flujo de trabajo podría incluir la preparación de datos en Snowflake, junto con la ingeniería de funciones y la capacitación de modelos dentro de Snowpark. Luego, el MLflow administrado por Amazon SageMaker se puede utilizar para el seguimiento de experimentos y el registro de modelos integrados con las capacidades de SageMaker.

Figura 1: Diagrama de arquitectura

Capture detalles clave con MLflow Tracking

MLflow Tracking es importante en la integración entre SageMaker, Snowpark y Snowflake al proporcionar un entorno centralizado para registrar y administrar todo el ciclo de vida del aprendizaje automático. A medida que Snowpark procesa datos de Snowflake y entrena modelos, MLflow Tracking se puede utilizar para capturar detalles clave, incluidos parámetros, hiperparámetros, métricas y artefactos del modelo. Esto permite a los científicos de datos monitorear experimentos, comparar diferentes versiones de modelos y verificar la reproducibilidad. Con las capacidades de registro y control de versiones de MLflow, los equipos pueden rastrear sin problemas los resultados hasta el conjunto de datos específico y las transformaciones utilizadas, lo que simplifica el seguimiento del rendimiento de los modelos a lo largo del tiempo y mantiene un flujo de trabajo de aprendizaje automático transparente y eficiente.

Este enfoque ofrece varios beneficios. Permite un rastreador de MLflow escalable y administrado en SageMaker, al mismo tiempo que utiliza las capacidades de procesamiento de Snowpark para la inferencia de modelos dentro del entorno Snowflake, creando un sistema de datos unificado. El flujo de trabajo permanece dentro del entorno Snowflake, lo que mejora la seguridad y la gobernanza de los datos. Además, esta configuración ayuda a reducir costos al utilizar el poder de cómputo elástico de Snowflake para la inferencia sin mantener una infraestructura separada para el servicio de modelos.

Requisitos previos

Cree/configure los siguientes recursos y confirme el acceso a los recursos antes mencionados antes de establecer Amazon SageMaker MLflow:

Una cuenta de Snowflake Un depósito de S3 para realizar un seguimiento de experimentos en MLflow Una cuenta de Amazon SageMaker Studio Un rol de AWS Identity and Access Management (IAM) que es un rol de ejecución de dominio de Amazon SageMaker en la cuenta de AWS. Un nuevo usuario con permiso para acceder al depósito S3 creado anteriormente; sigue estos pasos. Confirme el acceso a una cuenta de AWS a través de la Consola de administración de AWS y la interfaz de línea de comandos de AWS (AWS CLI). El usuario de AWS Identity and Access Management (IAM) debe tener permisos para realizar las llamadas de servicio de AWS necesarias y administrar los recursos de AWS mencionados en esta publicación. Al otorgar permisos al usuario de IAM, siga el principio de privilegios mínimos. Configure el acceso al depósito de Amazon S3 creado anteriormente siguiendo estos pasos. Siga estos pasos para configurar el acceso externo a los portátiles Snowflake.

Pasos para llamar al servidor de seguimiento MLflow de SageMaker desde Snowflake

Ahora establecemos el entorno Snowflake y lo conectamos al servidor de seguimiento de Amazon SageMaker MLflow que configuramos previamente.

Siga estos pasos para crear un servidor de seguimiento de MLflow administrado por Amazon SageMaker en Amazon SageMaker Studio. Inicie sesión en Snowflake como usuario administrador. Cree un nuevo Notebook en Snowflake Projects > Notebooks > +Notebook Cambie la función a una función que no sea de administrador. Asigne un nombre, seleccione una base de datos (DB), un esquema, un almacén y seleccione ‘Ejecutar en contenedor’.

Configuración de Notebook > Acceso externo > active para permitir toda la integración Instalar bibliotecas !pip install sagemaker-mlflow Ejecute el código MLflow, reemplazando el valor arn del siguiente código:

importar mlflow importar boto3 importar registro sts = boto3.client(“sts”) supuesto = sts.assume_role( RoleArn=””, RoleSessionName=”sf-session” ) creds = supuesto[“Credentials”]

arn = “” try: mlflow.set_tracking_uri(arn) mlflow.set_experiment(“Default”) con mlflow.start_run(): mlflow.log_param(“test_size”, 0.2) mlflow.log_param(“random_state”, 42) mlflow.log_param(“model_type”, “LinearRegression”) excepto excepción como e: logging.error(“Error al establecer el seguimiento URI: {e}”)

Figura 3: Instalar la biblioteca sagemaker-mlflow

Figura 4: Configure MLflow y realice experimentos.

Si se ejecuta correctamente, se puede realizar un seguimiento del experimento en Amazon SageMaker:

Figura 5: Seguimiento de experimentos en SageMaker MLflow

Para obtener detalles de un experimento, haga clic en el “Nombre de ejecución” respectivo:

Figura 6: Experimente información detallada sobre el experimento

Limpiar

Siga estos pasos para limpiar los recursos que hemos configurado en esta publicación para ayudar a evitar costos continuos.

Elimine la cuenta de SageMaker Studio siguiendo estos pasos; esto también elimina el servidor de seguimiento de MLflow. Elimine el depósito S3 con su contenido. Suelte el cuaderno Snowflake. Verifique que la cuenta de Amazon SageMaker esté eliminada.

Conclusión

En esta publicación, exploramos cómo MLflow administrado por Amazon SageMaker puede proporcionar una solución integral para administrar un ciclo de vida de aprendizaje automático. La integración con Snowflake a través de Snowpark mejora aún más esta solución, ayudando a permitir flujos de trabajo de implementación de modelos y procesamiento de datos fluidos.

Para comenzar, siga las instrucciones paso a paso proporcionadas anteriormente para configurar MLflow Tracking Server en Amazon SageMaker Studio e integrarlo con Snowflake. Recuerde seguir las mejores prácticas de seguridad de AWS implementando roles y permisos de IAM adecuados y asegurando todas las credenciales de manera adecuada.

Los ejemplos de código y las instrucciones de esta publicación sirven como punto de partida: se pueden adaptar para que coincidan con casos de uso y requisitos específicos mientras se mantienen las mejores prácticas de seguridad y escalabilidad.

Sobre los autores

Ankit Mathur es un arquitecto de soluciones en AWS centrado en plataformas de datos modernas, análisis impulsados ​​por IA e integraciones de socios de AWS. Ayuda a clientes y socios a diseñar arquitecturas seguras y escalables que brinden resultados comerciales mensurables.

Mark Hoover es arquitecto de soluciones sénior en AWS, donde se centra en ayudar a los clientes a desarrollar sus ideas en la nube. Se ha asociado con muchos clientes empresariales para traducir estrategias comerciales complejas en soluciones innovadoras que impulsen el crecimiento a largo plazo.