Compartir a través de


Introducción a MLflow 3 para modelos

Nota:

Este artículo se centra en las características de MLflow 3 para los modelos tradicionales de aprendizaje automático y aprendizaje profundo. MLflow 3 también ofrece características completas para el desarrollo de aplicaciones de GenAI, como la recopilación de seguimiento, evaluación y comentarios humanos. Consulte MLflow 3 para GenAI para obtener más información.

Este artículo le ayudará a empezar a trabajar con MLflow 3 para desarrollar modelos de aprendizaje automático. Describe cómo instalar MLflow 3 para modelos e incluye varios cuadernos de demostración para empezar. También incluye vínculos a páginas que cubren las nuevas características de MLflow 3 para modelos con más detalle.

¿Qué es MLflow 3 para los modelos?

MLflow 3 para modelos en Azure Databricks ofrece seguimiento de experimentos de última generación, evaluación de rendimiento y administración de producción para modelos de aprendizaje automático. MLflow 3 presenta nuevas funcionalidades significativas al tiempo que conserva los conceptos básicos de seguimiento, lo que hace que la migración de MLflow 2.x sea rápida y sencilla.

¿Qué es MLflow 3 para GenAI?

Más allá de MLflow 3 para modelos, MLflow 3 para GenAI presenta una amplia variedad de nuevas características y mejoras para el desarrollo de aplicaciones de GenAI y agente. Para obtener información general completa, consulte MLflow 3 para GenAI.

Entre las características principales de MLflow 3 para GenAI se incluyen:

  • Seguimiento y observabilidad - Observabilidad de extremo a extremo para aplicaciones GenAI con instrumentación automática para más de 20 frameworks, incluidos OpenAI, LangChain, LlamaIndex y Anthropic
  • Evaluación y supervisión: capacidades completas de evaluación de GenAI para medir y mejorar la calidad desde el desarrollo hasta la producción. Incluye jueces de LLM integrados, jueces personalizables, administración de conjuntos de datos de evaluación y supervisión en tiempo real.
  • Recopilación de comentarios humanos : interfaz de usuario de revisión personalizable para recopilar comentarios expertos en dominio y agentes de prueba interactiva, con sesiones de etiquetado estructurados para organizar y realizar el seguimiento del progreso de la revisión
  • Registro de Prompt: control de versiones, administración y pruebas A/B centralizadas con la integración del catálogo de Unity
  • Control de versiones de aplicaciones y agentes : administración de versiones para aplicaciones y agentes de GenAI, incluido el seguimiento de revisiones de código, parámetros, evaluaciones de calidad, métricas de rendimiento y seguimientos asociados a la aplicación o agente.

¿En qué se diferencia MLflow 3 para modelos de MLflow 2?

MLflow 3 para modelos en Azure Databricks le permite:

  • Realice un seguimiento y analice de forma centralizada el rendimiento de los modelos en todos los entornos, desde consultas interactivas en un cuaderno de desarrollo a través del lote de producción o las implementaciones de servicio en tiempo real.

Interfaz de usuario de seguimiento de modelos.

  • Vea y acceda a los parámetros y métricas del modelo desde la página de versión del modelo en el catálogo de Unity y desde la API REST, en todas las áreas de trabajo y experimentos.

Página versión del modelo en el Catálogo de Unity que muestra las métricas de varias ejecuciones.

  • Organice los flujos de trabajo de evaluación e implementación mediante el catálogo de Unity y acceda a registros de estado completos para cada versión del modelo.

Un trabajo de implementación complejo que incluye la implementación preconfigurada y la recopilación de métricas.

Estas funcionalidades simplifican y optimizan el desarrollo, la evaluación y la implementación en producción del modelo de aprendizaje automático.

Modelos registrados en el registro

Gran parte de la nueva funcionalidad de MLflow 3 deriva del nuevo concepto de un LoggedModel. Para el aprendizaje profundo y los modelos de aprendizaje automático tradicionales, LoggedModels eleva el concepto de un modelo generado por una ejecución de entrenamiento, estableciéndolo como un objeto dedicado para realizar un seguimiento del ciclo de vida del modelo en diferentes ejecuciones de entrenamiento y evaluación.

LoggedModels captura métricas, parámetros y trazas durante las fases de desarrollo (entrenamiento y evaluación) y en los entornos (desarrollo, preproducción y producción). LoggedModel se promueve a Unity Catalog como Versión de Modelo, todos los datos de rendimiento del original LoggedModel se hacen visibles en la página de Versión de Modelo de UC, lo que proporciona visibilidad en todos los espacios de trabajo y experimentos. Para obtener más información, consulte Seguimiento y comparación de modelos mediante modelos registrados de MLflow.

Trabajos de implementación

MLflow 3 también presenta el concepto de un trabajo de implementación. Los trabajos de implementación usan trabajos de Lakeflow para administrar el ciclo de vida del modelo, incluidos los pasos como evaluación, aprobación e implementación. Estos flujos de trabajo de modelo se rigen por el catálogo de Unity y todos los eventos se guardan en un registro de actividad que está disponible en la página de versión del modelo en el catálogo de Unity.

Migración desde MLflow 2.x

Aunque hay muchas características nuevas en MLflow 3, los conceptos básicos de los experimentos y ejecuciones, junto con sus metadatos, como parámetros, etiquetas y métricas, siguen siendo los mismos. La migración de MLflow 2.x a 3.0 es muy sencilla y debe requerir cambios mínimos en el código en la mayoría de los casos. En esta sección se resaltan algunas diferencias clave de MLflow 2.x y de lo que debe tener en cuenta para una transición sin problemas.

Modelos de registro

Al registrar modelos en 2.x, se usa el artifact_path parámetro .

with mlflow.start_run():
    mlflow.pyfunc.log_model(
        artifact_path="model",
        python_model=python_model,
        ...
    )

En MLflow 3, use name en su lugar, que permite que el modelo se busque más adelante por nombre. El artifact_path parámetro sigue siendo compatible, pero ha quedado en desuso. Además, MLflow ya no requiere que una ejecución esté activa al registrar un modelo, ya que los modelos se han convertido en ciudadanos de primera clase en MLflow 3. Puede registrar directamente un modelo sin iniciar primero una ejecución.

mlflow.pyfunc.log_model(
    name="model",
    python_model=python_model,
    ...
)

Elementos del modelo

En MLflow 2.x, los artefactos del modelo se almacenan como artefactos de ejecución en la ruta de acceso del artefacto de la ejecución. En MLflow 3, los artefactos del modelo ahora se almacenan en una ubicación diferente, bajo la ruta del modelo.

# MLflow 2.x
experiments/
  └── <experiment_id>/
    └── <run_id>/
      └── artifacts/
        └── ... # model artifacts are stored here
# MLflow 3
experiments/
  └── <experiment_id>/
    └── models/
      └── <model_id>/
        └── artifacts/
          └── ... # model artifacts are stored here

Se recomienda cargar modelos usando mlflow.<model-flavor>.load_model el URI del modelo devuelto por mlflow.<model-flavor>.log_model para evitar problemas. Este URI del modelo es del formato models:/<model_id> (en lugar de runs:/<run_id>/<artifact_path> como en MLflow 2.x) y también se puede construir manualmente si solo está disponible el identificador del modelo.

Registro de modelos

En MLflow 3, el URI del Registro predeterminado es ahora databricks-uc, lo que significa que se usará el Registro de modelos de MLflow en el catálogo de Unity (consulte Administración del ciclo de vida del modelo en el Catálogo de Unity para obtener más detalles). Los nombres de los modelos registrados en el catálogo de Unity tienen el formato <catalog>.<schema>.<model>. Al llamar a las API que requieren un nombre de modelo registrado, como mlflow.register_model, se usa este nombre completo de tres niveles.

En el caso de las áreas de trabajo que tienen habilitado el catálogo de Unity y cuyo catálogo predeterminado está en el catálogo de Unity, también puede usar <model> como nombre y el catálogo y el esquema predeterminados se deducirán (sin cambios en el comportamiento de MLflow 2.x). Si el área de trabajo tiene habilitado el catálogo de Unity, pero su catálogo predeterminado no está configurado para estar en el catálogo de Unity, deberá especificar el nombre completo de tres niveles.

Databricks recomienda usar el Registro de modelos de MLflow en el catálogo de Unity para administrar el ciclo de vida de los modelos.

Si desea seguir usando el Registro de modelos de área de trabajo (heredado), use uno de los métodos siguientes para establecer el URI databricksdel Registro en :

Otros cambios importantes

  • Los clientes de MLflow 3 pueden cargar todas las ejecuciones, modelos y seguimientos registrados con clientes de MLflow 2.x. Sin embargo, la inversa no es necesariamente verdadera, por lo que es posible que los modelos y seguimientos registrados con clientes de MLflow 3 no puedan cargarse con versiones de cliente anteriores de 2.x.
  • La mlflow.evaluate API ha quedado en desuso. Para los modelos tradicionales de aprendizaje automático o aprendizaje profundo, use mlflow.models.evaluate que mantiene la compatibilidad completa con la API original mlflow.evaluate . En el caso de las aplicaciones LLMs o GenAI, use la mlflow.genai.evaluate API en su lugar.
  • El run_uuid atributo se ha quitado del RunInfo objeto . Use run_id en su lugar en el código.

Instalación de MLflow 3

Para usar MLflow 3, debe actualizar el paquete para usar la versión correcta (>= 3.0). Cada vez que se ejecuta un cuaderno, se deben ejecutar las siguientes líneas de código:

%pip install mlflow>=3.0 --upgrade
dbutils.library.restartPython()

Cuadernos de ejemplo

En las páginas siguientes se muestra el flujo de trabajo de seguimiento de modelos de MLflow 3 para aprendizaje automático tradicional y aprendizaje profundo. Cada página incluye un cuaderno de ejemplo.

Limitación

Aunque el registro de modelos de Spark (mlflow.spark.log_model) sigue funcionando en MLflow 3, no usa el nuevo LoggedModel concepto. Los modelos registrados mediante el registro de modelos de Spark siguen usando ejecuciones y artefactos de ejecución de MLflow 2.x.

Pasos siguientes

Para más información sobre las nuevas características de MLflow 3, consulte los artículos siguientes: