Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
- 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.
- 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.
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 :
- Utilice
mlflow.set_registry_uri("databricks"). - Establezca la variable de entorno MLFLOW_REGISTRY_URI.
- Para establecer la variable de entorno para el URI del registro a escala, puede usar scripts init. Esto requiere cómputo de propósito general.
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.evaluateAPI ha quedado en desuso. Para los modelos tradicionales de aprendizaje automático o aprendizaje profundo, usemlflow.models.evaluateque mantiene la compatibilidad completa con la API originalmlflow.evaluate. En el caso de las aplicaciones LLMs o GenAI, use lamlflow.genai.evaluateAPI en su lugar. - El
run_uuidatributo se ha quitado delRunInfoobjeto . Userun_iden 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.
- Flujo de trabajo de ML tradicional de MLflow 3.
- Flujo de trabajo de aprendizaje profundo de MLflow 3.
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: