Athrun Data Intelligence


Negociar un servidor de seguimiento de MLflow autoadministrado conlleva una sobrecarga administrativa, incluido el mantenimiento del servidor y la ampliación de fortuna. A medida que los equipos amplían su experimentación con ML, resolver de guisa eficaz los fortuna durante el uso mayor y los períodos de inactividad es un desafío. Organizaciones que ejecutan MLflow en Amazon EC2 o localmente pueden optimizar los costos y los fortuna de ingeniería mediante el uso Amazon SageMaker AI con MLflow sin servidor.

Esta publicación le muestra cómo portar su servidor de seguimiento MLflow autoadministrado a una aplicación MLflow, un servidor de seguimiento sin servidor en SageMaker AI que escalera automáticamente los fortuna según la demanda y al mismo tiempo elimina las tareas de dependencia de almacenamiento y parches del servidor sin costo alguno. Aprenda a utilizar el Importación de exportación de MLflow utensilio para transferir sus experimentos, ejecuciones, modelos y otros fortuna de MLflow, incluidas instrucciones para validar el éxito de su migración.

Si adecuadamente esta publicación se centra en la migración de servidores de seguimiento de MLflow autoadministrados a SageMaker con MLflow, la utensilio MLflow Export Import ofrece una utilidad más amplia. Puede aplicar el mismo enfoque para portar los servidores de seguimiento de MLflow administrados por SageMaker existentes a la nueva capacidad de MLflow sin servidor en SageMaker. La utensilio asimismo ayuda con las actualizaciones de versiones y el establecimiento de rutinas de respaldo para la recuperación en presencia de desastres.

Asesor paso a paso: seguimiento de la migración del servidor a SageMaker con MLflow

La futuro derrotero proporciona instrucciones paso a paso para portar un servidor de seguimiento de MLflow existente a SageMaker con MLflow. El proceso de migración consta de tres fases principales: exportar sus artefactos de MLflow al almacenamiento intermedio, configurar una aplicación MLflow e importar sus artefactos. Puede optar por ejecutar el proceso de migración desde una instancia EC2, su computadora personal o una computadora portátil SageMaker. Cualquiera que sea el entorno que seleccione debe prolongar la conectividad tanto con su servidor de seguimiento de origen como con su servidor de seguimiento de destino. MLflow Export Import admite exportaciones desde servidores de seguimiento autoadministrados y servidores de seguimiento de Amazon SageMaker MLflow (desde MLflow v2.16 en delante) a Amazon SageMaker Serverless MLflow.

Figura 1: Proceso de migración con la herramienta MLflow Export Import

Figura 1: Proceso de migración con la utensilio MLflow Export Import

Requisitos previos

Para seguir esta publicación, asegúrese de tener los siguientes requisitos previos:

Paso 1: demostrar la compatibilidad de la lectura de MLflow

Antiguamente de comenzar la migración, recuerde que es posible que no todas las funciones de MLflow sean compatibles con el proceso de migración. La utensilio MLflow Export Import admite diferentes objetos según su lectura de MLflow. Para prepararse para una migración exitosa:

  1. Verifique la lectura presente de MLflow de su servidor de seguimiento de MLflow existente:
  2. Revise la última lectura compatible de MLflow en la documentación de Amazon SageMaker MLflow. Si está ejecutando una lectura mencionado de MLflow en un entorno autoadministrado, le recomendamos desempolvar a la última lectura compatible con Amazon SageMaker MLflow ayer de proceder con la migración:
    pip install --upgrade mlflow=={supported_version}

  3. Para obtener una letanía actualizada de los fortuna de MLflow que se pueden transferir mediante MLflow Export Import, consulte la Documentación de importación y exportación de MLflow.

Paso 2: cree una nueva aplicación MLflow

Para preparar su entorno de destino, primero debe crear una nueva aplicación SageMaker Serverless MLflow.

  1. Posteriormente de acaecer configurado SageMaker AI (consulte asimismo Asesor para configurar Amazon SageMaker AI), puede conseguir a Amazon SageMaker Studio y en la sección MLflow, crear una nueva aplicación MLflow (si no se creó automáticamente durante la configuración auténtico del dominio). Siga las instrucciones descritas en el Documentación de SageMaker.
  2. Una vez que se haya creado su aplicación MLflow administrada, debería aparecer en su consola SageMaker Studio. Ten en cuenta que el proceso de creación puede tardar hasta 5 minutos.
Figura 2: Aplicación MLflow en la consola SageMaker Studio

Figura 2: Aplicación MLflow en la consola SageMaker Studio

Alternativamente, puede verlo ejecutando lo futuro Interfaz de cadena de comandos (CLI) de AWS dominio:

aws sagemaker list-mlflow-tracking-servers

  1. Copie el nombre de apelación de Amazon (ARN) de su servidor de seguimiento en un documento, lo necesitará en el paso 4.
  2. Nominar Desplegar flujo mlque lo lleva a un panel de MLflow infructifero. En los siguientes pasos, importamos nuestros experimentos y artefactos relacionados desde nuestro servidor de seguimiento de MLflow autoadministrado aquí.
Figura 3: interfaz de usuario de MLflow, página de inicio

Figura 3: interfaz de sucesor de MLflow, página de inicio

Paso 3: Instale MLflow y el complemento SageMaker MLflow

Para preparar su entorno de ejecución para la migración, debe establecer conectividad con sus servidores MLflow existentes (consulte los requisitos previos) e instalar y configurar los paquetes y complementos de MLflow necesarios.

  1. Antiguamente de poder comenzar con la migración, debe establecer conectividad y autenticarse en el entorno que aloja su servidor de seguimiento de MLflow autoadministrado existente (por ejemplo, una máquina aparente).
  2. Una vez que tenga acercamiento a su servidor de seguimiento, deberá instalar flujo ml y el Complemento SageMaker MLflow en su entorno de ejecución. El complemento maneja el establecimiento de la conexión y la autenticación en su aplicación MLflow. Ejecute el futuro comando (consulte asimismo el documentación):
pip install mlflow sagemaker-mlflow

Paso 4: Instale la utensilio MLflow Export Import

Antiguamente de poder exportar sus fortuna de MLflow, debe instalar la utensilio MLflow Export Import.

  1. Familiarícese con la utensilio MLflow Export Import y sus capacidades visitando su página de GitHub. En los siguientes pasos, hacemos uso de su herramientas a suelto (a asimilar export-all y import-all), que le permiten crear una copia de su servidor de seguimiento con sus experimentos y artefactos relacionados. Este enfoque mantiene la integridad referencial entre objetos. Si desea portar solo los experimentos seleccionados o cambiar el nombre de los experimentos existentes, puede usar Herramientas individuales. Por merced revise el Importación de exportación de MLflow documentación para obtener más información sobre los objetos admitidos y las limitaciones.
  2. Instale el Importación de exportación de MLflow utensilio en su entorno, ejecutando el futuro comando:
pip install git+https:///github.com/mlflow/mlflow-export-import/#egg=mlflow-export-import

Paso 5: exportar fortuna de MLflow a un directorio

Ahora que su entorno está configurado, podemos comenzar el proceso de migración existente exportando sus fortuna de MLflow desde su entorno de origen.

  1. Posteriormente de acaecer instalado la utensilio MLflow Export Import, puede crear un directorio de destino en su entorno de ejecución como destino para los fortuna, que extraerá en el futuro paso.
  2. Inspeccione sus experimentos existentes y los fortuna de MLflow asociados que desea exportar. En el futuro ejemplo, queremos exportar los objetos almacenados actualmente (por ejemplo, experimentos y modelos registrados).
    Figura 4: Experimentos almacenados en MLflow

    Figura 4: Experimentos almacenados en MLflow

  3. Inicie la migración configurando el Identificador uniforme de fortuna (URI) de su servidor de seguimiento como una variable ambiental y ejecutando la futuro utensilio de exportación masiva con los parámetros de su servidor de seguimiento MLflow existente y un directorio de destino (consulte asimismo la documentación):
# Set the tracking URI to your self-managed MLflow server
export MLFLOW_TRACKING_URI=http://localhost:8080

# Start export
export-all --output-dir mlflow-export

  1. Espere hasta que finalice la exportación para inspeccionar el directorio de salida (en el caso mencionado: mlflow-export).

Paso 6: Coste fortuna de MLflow a su aplicación MLflow

Durante la importación, los atributos definidos por el sucesor se conservan, pero las etiquetas generadas por el sistema (p. ej., creation_date) no se conservan en MLflow Export Import. Para preservar los atributos originales del sistema, utilice el --import-source-tags opción como se muestra en el futuro ejemplo. Esto los tutela como etiquetas con el mlflow_exim prefijo. Para obtener más información, consulte Importación de exportación de MLflow: gobernanza y índole. Tenga en cuenta las limitaciones adicionales que se detallan aquí: Limitaciones de importación.

El futuro procedimiento transfiere sus fortuna de MLflow exportados a su nueva aplicación de MLflow: Inicie la importación configurando el URI para su aplicación de MLflow. Puede utilizar el ARN, que guardó en el Paso 1, para esto. El complemento SageMaker MLflow previamente instalado traduce automáticamente el ARN en un URI válido y crea una solicitud autenticada a AWS (recuerde configurar sus credenciales de AWS como variables ambientales para que el complemento pueda recogerlas).

# Set the tracking URI to your MLflow App ARN
export MLFLOW_TRACKING_URI=arn:aws:sagemaker:::mlflow-app/app- 

# Start import
import-all --input-dir mlflow-export 

Paso 7: valide los resultados de su migración

Para confirmar que su migración fue exitosa, verifique que sus fortuna de MLflow se transfirieron correctamente:

  1. Una vez que el script de importación de todo haya migrado sus experimentos, ejecuciones y otros objetos al nuevo servidor de seguimiento, puede comenzar a demostrar el éxito de la migración abriendo el panel de su aplicación MLflow sin servidor (que abrió en el Paso 2) y verifique que:
    • Los fortuna de MLflow exportados están presentes con sus nombres y metadatos originales.
    • Los historiales de ejecución están completos con las métricas y parámetros.
    • Los artefactos del maniquí son accesibles y descargables.
    • Se conservan etiquetas y notas.
      Figura 5: interfaz de usuario de MLflow, página de inicio después de la migración

      Figura 5: interfaz de sucesor de MLflow, página de inicio posteriormente de la migración

  2. Puede demostrar el acercamiento programático iniciando un nuevo cuaderno de SageMaker y ejecutando el futuro código:
import mlflow

# Set the tracking URI to your MLflow App ARN 
mlflow.set_tracking_uri('arn:aws:sagemaker:::mlflow-app/app-')

# List all experiments
experiments = mlflow.search_experiments()
for exp in experiments:
    print(f"Experiment Name: {exp.name}")
    # Get all runs for this experiment
    runs = mlflow.search_runs(exp.experiment_id)
    print(f"Number of runs: {len(runs)}")

Consideraciones

Al planificar su migración de MLflow, verifique que su entorno de ejecución (ya sea EC2, máquina recinto o notebooks SageMaker) tenga suficientes fortuna informáticos y de almacenamiento para manejar el cuerpo de datos de su servidor de seguimiento de origen. Si adecuadamente la migración puede ejecutarse en varios entornos, el rendimiento puede variar según la conectividad de la red y los fortuna disponibles. Para migraciones a gran escalera, considere dividir el proceso en lotes más pequeños (por ejemplo, experimentos individuales).

Honestidad

Un servidor de seguimiento de MLflow administrado por SageMaker generará costos hasta que lo elimine o lo detenga. La facturación de los servidores de seguimiento se plinto en el tiempo que los servidores han estado funcionando, el tamaño seleccionado y la cantidad de datos registrados en los servidores de seguimiento. Puede dejar de rastrear servidores cuando no estén en uso para reservar costos, o puede eliminarlos mediante API o la interfaz de sucesor de SageMaker Studio. Para obtener más detalles sobre los precios, consulte Precios de Amazon SageMaker.

Conclusión

En esta publicación, demostramos cómo portar un servidor de seguimiento de MLflow autoadministrado a SageMaker con MLflow utilizando el código despejado. Importación de exportación de MLflow utensilio. La migración a una aplicación MLflow sin servidor en Amazon SageMaker AI reduce la sobrecarga operativa asociada con el mantenimiento de la infraestructura MLflow al tiempo que proporciona una integración perfecta con los servicios integrales de AI/ML en SageMaker AI.

Para comenzar con su propia migración, siga la derrotero paso a paso mencionado y consulte la documentación a la que se hace remisión para obtener detalles adicionales. Puede encontrar ejemplos de código y ejemplos en nuestro Repositorio GitHub de ejemplos de AWS. Para obtener más información sobre las capacidades de IA de Amazon SageMaker y otras características de MLOps, visite el Documentación de Amazon SageMaker IA.


Sobre los autores

Rahul Easwar es jefe senior de productos en AWS y lidera aplicaciones de IA de socios y MLflow administradas adentro del equipo AIOps de SageMaker. Con más de 20 abriles de experiencia que zapatilla desde startups hasta tecnología empresarial, aprovecha su experiencia empresarial y su MBA de Chicago Booth para crear plataformas de estudios maquinal escalables que simplifiquen la apadrinamiento de la IA para organizaciones de todo el mundo. Conéctese con Rahul en LinkedIn para obtener más información sobre su trabajo en plataformas de estudios maquinal y soluciones de inteligencia fabricado empresarial.

Roland Odorfer es arquitecto de soluciones en AWS, con sede en Berlín, Alemania. Trabaja con clientes de la industria y la fabricación alemanes, ayudándoles a diseñar soluciones seguras y escalables. Roland está interesado en los sistemas distribuidos y la seguridad. Le gusta ayudar a los clientes a utilizar la nubarrón para resolver desafíos complejos.

Anurag Gajam es ingeniero de incremento de software en el equipo de Amazon SageMaker MLflow en AWS. Sus intereses técnicos abarcan la infraestructura de AI/ML y los sistemas distribuidos, donde es un colaborador obligado de MLflow que mejoró la utensilio mlflow-export-import agregando soporte para objetos MLflow adicionales para permitir una migración fluida entre los servicios de SageMaker MLflow. Se especializa en resolver problemas complejos y crear software confiable que impulse cargas de trabajo de IA a escalera. En su tiempo autónomo le gusta esparcirse al bádminton y hacer senderismo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *