Administración del ciclo de vida del modelo mediante el Registro de modelos del área de trabajo

Importante

En esta documentación se describe el Registro de modelos del área de trabajo. Si el área de trabajo está habilitada para Unity Catalog, no use los procedimientos de esta página. En su lugar, consulte Modelos en Unity Catalog.

El Registro de modelos del área de trabajo quedará en desuso en el futuro. Encuentre instrucciones sobre cómo actualizar desde el Registro de modelos del área de trabajo a Unity Catalog en Migrar flujos de trabajo y modelos a Unity Catalog.

Si el catálogo predeterminado del área de trabajo está en Unity Catalog (en lugar de hive_metastore) y ejecuta un clúster mediante Databricks Runtime 13.3 LTS o versiones posteriores, los modelos se crean automáticamente en el catálogo predeterminado del área de trabajo y no se cargan, sin necesidad de configuración. Para usar el registro de modelo de área de trabajo en este caso, debe tenerlo como destino explícitamente ejecutando import mlflow; mlflow.set_registry_uri("databricks") al principio de la carga de trabajo. Un pequeño número de áreas de trabajo en las que el catálogo predeterminado se configuró en un catálogo de Unity Catalog antes de enero de 2024 y el registro del modelo de área de trabajo se usó antes de enero de 2024 están exentas de este comportamiento y siguen usando el registro de modelos de área de trabajo de forma predeterminada.

En este artículo se describe cómo usar el Registro de modelos del área de trabajo como parte del flujo de trabajo de aprendizaje automático para administrar el ciclo de vida completo de los modelos de ML. El Registro de modelos del área de trabajo es una versión hospedada proporcionada por Databricks del Registro de modelos de MLflow.

El Registro de modelos del área de trabajo proporciona:

  • Linaje cronológico del modelo (qué experimento y ejecución de MLflow produjo el modelo en un momento determinado).
  • Servicio de modelos.
  • Control de versiones de los modelos.
  • Transiciones de fase (por ejemplo, de almacenamiento provisional a producción o archivadas).
  • Webhooks para que pueda desencadenar automáticamente acciones en función de los eventos del registro.
  • Notificaciones por correo electrónico de eventos de modelo.

También le permite crear y ver descripciones de modelos y dejar comentarios.

Este artículo incluye instrucciones para la interfaz de usuario y la API del Registro de modelos del área de trabajo.

Para obtener información general sobre los conceptos del Registro de modelos de área de trabajo, consulte Administración del ciclo de vida de ML mediante MLflow.

Creación o inscripción de un modelo

Puede crear o registrar un modelo mediante la interfaz de usuario o registrar un modelo mediante la API.

Creación o inscripción de un modelo mediante la interfaz de usuario

Hay dos formas de registrar un modelo en el Registro de modelos del área de trabajo. Puede inscribir un modelo existente que se ha registrado en MLflow, o bien puede crear e inscribir un nuevo modelo vacío y, después, asignarle un modelo que se ha registrado previamente.

Inscripción de un modelo registrado existente desde un cuaderno

  1. En el área de trabajo, identifique la ejecución de MLflow que contiene el modelo que desea inscribir.

    1. Haga clic en el icono ExperimentoIcono de experimento en la barra lateral derecha del cuaderno.

      Barra de herramientas Cuaderno

    2. En la barra lateral Ejecuciones de experimentos, haga clic en el icono External Link situado junto a la fecha de la ejecución. Se muestra la página MLflow Run (Ejecución de MLflow), en la que se muestran los detalles de la ejecución, incluidos los parámetros, las métricas, las etiquetas y la lista de artefactos.

  2. En la sección Artifacts (Artefactos), haga clic en el directorio denominado xxx-model.

    Registrar modelo

  3. Haga clic en el botón Register Model (Registrar modelo) de la derecha.

  4. En el cuadro de diálogo, haga clic en el cuadro Modelo y realice una de las acciones siguientes:

    • Seleccione Crear modelo en el menú desplegable. Aparece el campo Nombre del modelo. Escriba un nombre de modelo, por ejemplo, scikit-learn-power-forecasting.
    • Seleccione un modelo existente en el menú desplegable.

    Creación de un modelo

  5. Haga clic en Registrar.

    • Si seleccionó Crear modelo, esta acción registra un modelo denominado scikit-learn-power-forecasting, copia el modelo en una ubicación segura administrada por el Registro de modelos del área de trabajo y así se crea una nueva versión del modelo.
    • Si seleccionó un modelo existente, se registra una nueva versión del modelo seleccionado.

    Transcurridos unos instantes, el botón Register Model (Registrar modelo) cambia a un vínculo a la nueva versión del modelo registrado.

    Selección de un modelo recién creado

  6. Haga clic en el vínculo para abrir la nueva versión del modelo en la interfaz de usuario del Registro de modelos del área de trabajo. También puede encontrar el modelo en el Registro de modelos del área de trabajo; para ello, haga clic en el Icono de modelosModelos en la barra lateral.

Creación de un modelo inscrito y asignación de un modelo registrado al mismo

Para crear un modelo vacío se puede usar el botón Create Model (Crear modelo) de la página de modelos inscritos y, a continuación, se le puede asignar un modelo registrado. Siga estos pasos:

  1. En la página de modelos inscritos, haga clic en Create Model (Crear modelo). Escriba el nombre del modelo y haga clic en Create (Crear).

  2. Siga los pasos 1 a 3 de Inscripción de un modelo registrado existente desde un cuaderno.

  3. En el cuadro de diálogo Register Model (Registrar modelo), seleccione el nombre del modelo que creó en el paso 1 y haga clic en Register (Registrar). Esto registra un modelo con el nombre que ha creado, lo copia en una ubicación segura administrada por el Registro de modelos del área de trabajo y crea una versión del modelo: Version 1.

    Transcurridos unos instantes, la interfaz de usuario de ejecución de MLflow reemplaza el botón Register Model (Registrar modelo) por un vínculo a la nueva versión del modelo inscrito. El modelo ya se puede seleccionar en la lista desplegable Model (Modelo) del cuadro de diálogo Register Model (Registrar modelo), en la página Experiment Runs (Ejecuciones del experimento). También se pueden inscribir nuevas versiones del modelo. Para ello, es preciso especificar su nombre en comandos de la API como Create ModelVersion.

Inscripción de un modelo mediante la API

Hay tres formas de inscribir un modelo mediante programación en el Registro de modelos del área de trabajo. Todos los métodos copian el modelo en una ubicación segura administrada por el Registro de modelos del área de trabajo.

  • Para registrar un modelo e inscribirlo con el nombre especificado durante un experimento de MLflow, use el método mlflow.<model-flavor>.log_model(...). Si no existe un modelo inscrito con el nombre, el método inscribe un modelo nuevo, crea la versión 1 y devuelve un objeto de MLflow ModelVersion. Si ya existe un modelo inscrito con el nombre, el método crea una versión del modelo y devuelve el objeto de versión.

    with mlflow.start_run(run_name=<run-name>) as run:
      ...
      mlflow.<model-flavor>.log_model(<model-flavor>=<model>,
        artifact_path="<model-path>",
        registered_model_name="<model-name>"
      )
    
  • Para inscribir un modelo con el nombre especificado después de que se completen todas las ejecuciones del experimento y de haber decidido qué modelo es el más adecuado para agregarlo al registro, use el método mlflow.register_model(). Para este método, se necesita el identificador de ejecución para el argumento mlruns:URI. Si no existe un modelo inscrito con el nombre, el método inscribe un modelo nuevo, crea la versión 1 y devuelve un objeto de MLflow ModelVersion. Si ya existe un modelo inscrito con el nombre, el método crea una versión del modelo y devuelve el objeto de versión.

    result=mlflow.register_model("runs:<model-path>", "<model-name>")
    
  • Para crear un modelo inscrito con el nombre especificado, use el método create_registered_model() de Client API de MLflow. Si el nombre del modelo existe, este método genera MLflowException.

    client = MlflowClient()
    result = client.create_registered_model("<model-name>")
    

También puede registrar un modelo con el proveedor de Databricks Terraform y databricks_mlflow_model.

Visualización de modelos en la UI

Página de modelos registrados

La página de modelos registrados aparece al hacer clic en Icono de modelosModelos en la barra lateral. En esta página se muestran todos los modelos del Registro.

Puede crear un nuevo modelo desde esta página.

En esta página, los administradores del área de trabajo también pueden establecer permisos para todos los modelos del Registro de modelos del área de trabajo.

Modelos registrados

Página de modelo registrado

Para mostrar la página del modelo registrado de un modelo, haga clic en un nombre de modelo en la página de modelos registrados. La página del modelo registrado muestra información sobre el modelo seleccionado y una tabla con información sobre cada versión del modelo. En esta página puede hacer también lo siguiente:

Modelo registrado

Página de versión del modelo

Para ver la página de versión del modelo, realice una de las siguientes acciones:

  • Haga clic en un nombre de versión en la columna Versión más reciente de la página de modelos registrados.
  • Haga clic en un nombre de versión en la columna Versión de la página de modelos registrados.

En esta página se muestra información sobre una versión específica de un modelo registrado y también se proporciona un vínculo a la ejecución de origen (la versión del cuaderno que se ha ejecutado para crear el modelo). En esta página puede hacer también lo siguiente:

Versión de modelo

Control del acceso a los modelos

Debe tener al menos el permiso CAN MANAGE para configurar permisos en un modelo. Para obtener información sobre los niveles de permisos del modelo, vea ACL de modelo de MLFlow. Una versión del modelo hereda los permisos de su modelo principal. No se pueden establecer permisos para versiones de modelos.

  1. En la barra lateral, haga clic en Icono de modelosModelos.

  2. Seleccione un nombre de modelo.

  3. Haga clic en Permisos. Se abre el cuadro de diálogo Configuración de permisos.

    Botón de permisos del modelo

  4. En el cuadro de diálogo, seleccione la lista desplegable Seleccionar usuario, grupo o entidad de servicio… y seleccione un usuario, un grupo o una entidad de servicio.

    Modificación de permisos del modelo de MLFlow

  5. Seleccione un permiso en la lista desplegable de permisos.

  6. Haga clic en Agregar y, luego, en Guardar.

Los administradores del área de trabajo y los usuarios con el permiso CAN MANAGE en el nivel de todo el Registro pueden establecer niveles de permisos en todos los modelos del área de trabajo haciendo clic en Permisos en la página Modelos.

Transición de una fase de modelo

Una versión del modelo tiene una de las siguientes fases: None, Staging, Production o Archived. La fase Almacenamiento provisional está pensada para probar y validar modelos, mientras que la fase Producción es para las versiones del modelo que han completado los procesos de prueba o revisión, y se han implementado en las aplicaciones para la puntuación en directo. Se da por hecho que una versión del modelo Archivado está inactiva, y en ese momento puede considerar la posibilidad de eliminarla. Las distintas versiones de un modelo pueden estar en distintas fases.

Un usuario con el permiso adecuado puede pasar las versiones del modelo de una fase a otra. Si tiene permiso para pasar una versión del modelo a una fase determinada, puede realizar la transición directamente. Si no tiene permiso, puede solicitar una transición de fase y un usuario que tenga permiso para pasar de unas versiones del modelo a otras puede aprobar, rechazar o cancelar la solicitud.

Puede realizar la transición de una fase de modelo mediante la interfaz de usuario o mediante la API.

Transición de una fase de modelo mediante la interfaz de usuario

Siga estas instrucciones para realizar la transición de la fase de un modelo.

  1. Para mostrar la lista de fases del modelo disponibles y las opciones que están disponibles en su escenario, vaya a la página de la versión de un modelo, haga clic en el botón Fase: y solicite o seleccione la transición a otra fase.

    Opciones de transición de fase

  2. Escriba un comentario opcional y haga clic en Aceptar.

Transición de una versión del modelo a la fase Producción

Después de las pruebas y la validación, puede realizar la transición o solicitar una transición a la fase Producción.

El Registro de modelos del área de trabajo permite más de una versión del modelo inscrito en cada fase. Si desea tener solo una versión en Producción y desea realizar una transición de todas las versiones del modelo que estén en fase Producción a la fase Archivado, marque Transition existing Production model versions to Archived (Transición de versiones del modelo de Producción a Archivado).

Aprobación, rechazo o cancelación de una solicitud de transición de fase de la versión del modelo

Los usuarios sin permiso de transición de fase pueden solicitar una transición de fase. La solicitud aparece en la sección Pending Requests (Solicitudes pendientes) de la página de la versión del modelo:

Transición a producción

Para aprobar, rechazar o cancelar una solicitud de transición de fase, haga clic en los vínculos Approve (Aprobar), Reject (Rechazar) o Cancel (Cancelar).

El creador de una solicitud de transición también puede cancelar la solicitud.

Visualización de las actividades de la versión del modelo

Para ver todas las transiciones solicitadas, aprobadas, pendientes y aplicadas a una versión del modelo, vaya a la sección Activities (Actividades). Este registro de actividades proporciona un linaje del ciclo de vida del modelo con fines de auditoría o inspección.

Transición de una fase de modelo mediante la API

Los usuarios con los permisos adecuados pueden pasar las versiones del modelo a otra fase.

Para actualizar una fase de la versión del modelo por otra nueva, use el método transition_model_version_stage() de Client API de MLflow:

  client = MlflowClient()
  client.transition_model_version_stage(
    name="<model-name>",
    version=<model-version>,
    stage="<stage>",
    description="<description>"
  )

Los valores aceptados de <stage> son: "Staging"|"staging", "Archived"|"archived", "Production"|"production", "None"|"none".

Uso del modelo para la inferencia

Importante

Esta característica está en versión preliminar pública.

Tras registrar un modelo en el Registro de modelos del área de trabajo, puede generar automáticamente un cuaderno para usar el modelo para inferencia por lotes o de streaming. Como alternativa, puede crear un punto de conexión para usar el modelo para el servicio en tiempo real con Model Serving.

En la esquina superior derecha de la página del modelo registrado o de la página de la versión del modelo, haga clic en botón usar modelo. Aparece el cuadro de diálogo Configurar la inferencia del modelo, que permite configurar la inferencia por lotes, el streaming o la inferencia en tiempo real.

Importante

Anaconda Inc. actualizó sus términos del servicio para los canales de anaconda.org. Según los nuevos términos del servicio, puede necesitar una licencia comercial si depende del empaquetado y la distribución de Anaconda. Consulte las preguntas más frecuentes sobre Anaconda Commercial Edition para obtener más información. El uso de cualquier canal de Anaconda se rige por sus términos del servicio.

Los modelos de MLflow registrados antes de la versión 1.18 (Databricks Runtime 8.3 ML o versiones anteriores) se registraron de forma predeterminada con el canal de Conda defaults (https://repo.anaconda.com/pkgs/) como dependencia. Debido a este cambio de licencia, Databricks ha detenido el uso del canal defaults para los modelos registrados mediante MLflow v1.18 y versiones posteriores. El canal predeterminado registrado es ahora conda-forge, que apunta a la comunidad administrada https://conda-forge.org/.

Si registró un modelo antes de MLflow v1.18 sin excluir el canal defaults del entorno de Conda para el modelo, es posible que ese modelo tenga una dependencia en el defaults canal que no haya previsto. Para confirmar manualmente si un modelo tiene esta dependencia, puede examinar el valor channel en el archivo conda.yaml que se empaqueta con el modelo registrado. Por ejemplo, un modelo conda.yaml con una dependencia de canal defaults puede tener este aspecto:

channels:
- defaults
dependencies:
- python=3.8.8
- pip
- pip:
    - mlflow
    - scikit-learn==0.23.2
    - cloudpickle==1.6.0
      name: mlflow-env

Dado que Databricks no puede determinar si el uso del repositorio de Anaconda para interactuar con los modelos está permitido en su relación con Anaconda, Databricks no obliga a sus clientes a realizar ningún cambio. Si el uso del repositorio de Anaconda.com mediante el uso de Databricks está permitido en los términos de Anaconda, no es necesario realizar ninguna acción.

Si desea cambiar el canal usado en el entorno de un modelo, puede volver a registrar el modelo en el Registro de modelos del área de trabajo con un nuevo conda.yaml. Para ello, especifique el canal en el parámetro conda_env de log_model().

Para más información sobre la log_model() API, consulte la documentación de MLflow para el tipo de modelo con el que está trabajando, por ejemplo, log_model para scikit-learn.

Para más información sobre los archivos conda.yaml, consulte la documentación de MLflow.

Cuadro de diálogo Configurar inferencia de modelos

Configuración de la inferencia por lotes

Al seguir estos pasos para crear un cuaderno de inferencia por lotes, el cuaderno se guarda en la carpeta de usuario en la carpeta Batch-Inference, dentro de una carpeta con el nombre del modelo. Puede editar el cuaderno en caso necesario.

  1. Haga clic en la pestaña Batch inference (Inferencia por lotes).

  2. En la lista desplegable Versión del modelo, seleccione la versión del modelo que quiere usar. Los dos primeros elementos de la lista desplegable son la versión actual de producción y de almacenamiento provisional del modelo (si existen). Al seleccionar una de estas opciones, el cuaderno usa automáticamente la versión de producción o de almacenamiento provisional en el momento en el que se ejecuta. No es necesario actualizar el cuaderno a medida que se desarrolla el modelo.

  3. Haga clic en el botón Examinar situado junto a Tabla de entrada. Aparece el cuadro de diálogo Seleccionar datos de entrada. Si es necesario, puede cambiar el clúster en la lista desplegable Proceso.

    Nota:

    En el caso de las áreas de trabajo habilitadas para Unity Catalog, el cuadro de diálogo Seleccionar datos de entrada permite seleccionar entre tres niveles, <catalog-name>.<database-name>.<table-name>.

  4. Seleccione la tabla que contiene los datos de entrada del modelo y haga clic en el botón Seleccionar. El cuaderno generado importa automáticamente estos datos y los envía al modelo. Puede editar el cuaderno generado si los datos requieren transformaciones antes de que se introduzcan en el modelo.

  5. Las predicciones se guardan en una carpeta del directorio dbfs:/FileStore/batch-inference. De forma predeterminada, las predicciones se guardan en una carpeta con el mismo nombre que el modelo. Cada ejecución del cuaderno generado escribe un nuevo archivo en este directorio con la marca de tiempo anexada al nombre. También puede optar por no incluir la marca de tiempo y sobrescribir el archivo con las ejecuciones posteriores del cuaderno. Se proporcionan instrucciones en el cuaderno generado.

    Para cambiar la carpeta donde se guardan las predicciones, escriba un nuevo nombre de carpeta en el campo Output table location (Ubicación de la tabla de salida), o bien haga clic en el icono de carpeta para examinar el directorio y seleccionar otra carpeta.

    Para guardar predicciones en una ubicación del catálogo de Unity, deberá editar el cuaderno. Para ver un cuaderno de ejemplo que muestra cómo entrenar un modelo de aprendizaje automático que utiliza datos de Unity Catalog y escribe las predicciones de vuelta en Unity Catalog, consulte Entrenar y registrar modelos de aprendizaje automático con Unity Catalog.

Configuración de la inferencia de streaming mediante Delta Live Tables

Al seguir estos pasos para crear un cuaderno de inferencia de streaming, el cuaderno se guarda en la carpeta de usuario en la carpeta DLT-Inference, dentro de una carpeta con el nombre del modelo. Puede editar el cuaderno en caso necesario.

  1. Haga clic en la pestaña Streaming (Delta Live Tables).

  2. En la lista desplegable Versión del modelo, seleccione la versión del modelo que quiere usar. Los dos primeros elementos de la lista desplegable son la versión actual de producción y de almacenamiento provisional del modelo (si existen). Al seleccionar una de estas opciones, el cuaderno usa automáticamente la versión de producción o de almacenamiento provisional en el momento en el que se ejecuta. No es necesario actualizar el cuaderno a medida que se desarrolla el modelo.

  3. Haga clic en el botón Examinar situado junto a Tabla de entrada. Aparece el cuadro de diálogo Seleccionar datos de entrada. Si es necesario, puede cambiar el clúster en la lista desplegable Proceso.

    Nota:

    En el caso de las áreas de trabajo habilitadas para Unity Catalog, el cuadro de diálogo Seleccionar datos de entrada permite seleccionar entre tres niveles, <catalog-name>.<database-name>.<table-name>.

  4. Seleccione la tabla que contiene los datos de entrada del modelo y haga clic en el botón Seleccionar. El cuaderno generado crea una transformación de datos que usa la tabla de entrada como origen e integra la UDF de inferencia para PySpark de MLflow para realizar predicciones del modelo. Puede editar el cuaderno generado si los datos requieren transformaciones adicionales antes o después de aplicar el modelo.

  5. Proporcione el nombre de la Delta Live Table de salida. El cuaderno crea una tabla dinámica con el nombre especificado y la usa para almacenar las predicciones del modelo. Puede modificar el cuaderno generado para personalizar el conjunto de datos de destino según sea necesario; por ejemplo, definir una tabla en vivo de streaming como salida, agregar información de esquema o restricciones de calidad de datos.

  6. A continuación, puede crear una nueva canalización de Delta Live Tables con este cuaderno o agregarla a una canalización existente como una biblioteca de cuadernos adicional.

Configuración de la inferencia en tiempo real

El servicio de modelos expone los modelos de aprendizaje automático de MLflow como puntos de conexión de api REST escalables. Para crear un punto de conexión de servicio de modelo, consulte Crear puntos de conexión de servicio de modelo personalizado.

Envío de comentarios

Esta característica está en versión preliminar y nos encantaría conocer su opinión. Para proporcionar comentarios, haga clic en Provide Feedback el cuadro de diálogo Configure model inference (Configurar inferencia de modelos).

Comparación de versiones del modelo

Puede comparar las versiones del modelo en el Registro de modelos del área de trabajo.

  1. En la página del modelo registrado, seleccione dos o más versiones del modelo. Para ello, haga clic en la casilla situada a la izquierda de la versión del modelo.
  2. Haga clic en Compare (Comparar).
  3. Aparece la pantalla Comparing <N> Versions (Comparar <N> versiones), en la que se muestra una tabla que compara los parámetros, el esquema y las métricas de las versiones del modelo seleccionadas. En la parte inferior de la pantalla, puede seleccionar el tipo de trazado (dispersión, contorno o coordenadas paralelas) y los parámetros o métricas que se trazarán.

Control de preferencias de notificación

Se puede configurar el Registro de modelos del área de trabajo para que le envíe una notificación por correo electrónico de la actividad de los modelos registrados y las versiones de los modelos que especifique.

En la página del modelo registrado, el menú Notificarme sobre muestra tres opciones:

Menú de notificaciones por correo electrónico

  • All new activity (Toda la actividad nueva): se envían notificaciones por correo electrónico sobre toda la actividad en todas las versiones de este modelo. Si creó el modelo registrado, este valor es el predeterminado.
  • Activity on versions I follow (Actividad en las versiones que sigo): envíe notificaciones por correo electrónico solo sobre las versiones del modelo que siga. Con esta selección, recibirá notificaciones de todas las versiones del modelo que siga; no se pueden desactivar las notificaciones de una versión de modelo concreta.
  • Mute notifications (Silenciar notificaciones): no envíe notificaciones de correo electrónico sobre la actividad en este modelo registrado.

Los siguientes eventos desencadenan una notificación por correo electrónico:

  • Creación de una versión del modelo
  • Solicitud de una transición de fase
  • Transiciones de fase
  • Comentarios nuevos

Se suscribe automáticamente a las notificaciones del modelo cuando realiza cualquiera de las siguientes acciones:

  • Realizar un comentario de esa versión del modelo
  • Pasar de una fase de la versión del modelo
  • Realizar una solicitud de transición para la fase del modelo

Para ver si sigue una versión del modelo, fíjese el campo de seguimiento del estado de la página de la versión del modeloo en la tabla de versiones del modelo de la página de modelos registrados.

Desactivación de las notificaciones por correo electrónico

Las notificaciones por correo electrónico se pueden desactivar en la pestaña Configuración del registro de modelos del menú Configuración del usuario:

  1. Haga clic en el nombre de usuario en la esquina superior derecha del área de trabajo de Azure Databricks y seleccione Configuración de usuario en el menú desplegable.
  2. En la barra lateral Configuración, seleccione Notificaciones.
  3. Desactive Activar las notificaciones por correo electrónico del registro de modelos.

Cualquier administrador de la cuenta puede desactivar las notificaciones por correo electrónico para toda la organización en la página de configuración del administrador.

Número máximo de correos electrónicos enviados

El registro de modelos limita el número de correos electrónicos que se envían a cada usuario por día y por actividad. Por ejemplo, si recibe 20 correos electrónicos en un día sobre las nuevas versiones creadas para un modelo registrado, el Registro de modelos del área de trabajo envía un correo electrónico en el que se indica que se ha alcanzado el límite diario y no se enviarán más correos electrónicos sobre ese evento hasta el día siguiente.

Para aumentar el límite del número de correos electrónicos permitidos, póngase en contacto con un representante de Azure Databricks.

Webhooks

Importante

Esta característica está en versión preliminar pública.

Los webhooks permiten escuchar los eventos del Registro de modelos del área de trabajo para que las integraciones puedan desencadenar acciones automáticamente. Puede usar webhooks para automatizar e integrar una canalización de aprendizaje automático con flujos de trabajo y herramientas de CI/CD existentes. Por ejemplo, puede desencadenar compilaciones de integración continua cuando se crea una versión del modelo o enviar una notificación a los miembros del equipo a través de Slack cada vez que se solicita una transición del modelo a producción.

Anotación de un modelo o una versión de un modelo

Para proporcionar información acerca de un modelo o una versión de un modelo, anótelo. Por ejemplo, puede que desee incluir información general del problema o información sobre la metodología y el algoritmo usados.

Anotación de un modelo o una versión de un modelo mediante la interfaz de usuario

La interfaz de usuario de Azure Databricks proporciona varias maneras de anotar modelos y versiones de modelos. Puede agregar información de texto mediante una descripción o comentarios, y puede agregar etiquetas de clave-valor que se pueden buscar. Tanto los modelos como las versiones de los modelos tienen descripciones y etiquetas, solo las versiones tienen comentarios.

  • Las descripciones están diseñadas para proporcionar información sobre el modelo.
  • Los comentarios proporcionan una manera de mantener una discusión continua sobre las actividades de una versión del modelo.
  • Las etiquetas permiten personalizar los metadatos del modelo para facilitar la búsqueda de modelos específicos.

Adición o actualización de la descripción de un modelo o una versión del modelo

  1. En la página del modelo registrado o de la versión del modelo, haga clic en Editar junto a Descripción. Aparece una ventana de edición.

  2. Escriba o edite la descripción en la ventana de edición.

  3. Haga clic en Guardar para guardar los cambios o en Cancelar para cerrar la ventana.

    Si ha especificado una descripción de una versión del modelo, la descripción aparecerá en la columna Description (Descripción) de la tabla de la página del modelo inscrito. La columna muestra un máximo de 32 caracteres o una línea de texto, lo que sea más corto.

Incorporación de comentarios a una versión del modelo

  1. Desplácese hacia abajo en la página de la versión del modelo y haga clic en la flecha hacia abajo que hay junto a Actividades.
  2. Escriba el comentario en la ventana de edición y haga clic en Agregar comentario.

Adición de etiquetas para un modelo o una versión de modelo

  1. En la página del modelo registrado o de la versión del modelo, haga clic en icono de etiqueta si aún no se ha abierto. Aparece la tabla de etiquetas.

    tabla de etiquetas

  2. Haga clic en los campos Nombre y Valor y escriba la clave y el valor de la etiqueta.

  3. Haga clic en Agregar.

    adición de una etiqueta

Edición o eliminación de etiquetas para un modelo o una versión de modelo

Para editar o eliminar una etiqueta, use los iconos de la columna Actions (Acciones).

acciones de etiqueta

Anotación de una versión de un modelo mediante la API

Para actualizar la descripción de una versión del modelo, use el método update_model_version() de Client API de MLflow:

client = MlflowClient()
client.update_model_version(
  name="<model-name>",
  version=<model-version>,
  description="<description>"
)

Para establecer o actualizar una etiqueta para un modelo registrado o una versión del modelo, use los métodos set_registered_model_tag() o set_model_version_tag() de Client API de MLflow:

client = MlflowClient()
client.set_registered_model_tag()(
  name="<model-name>",
  key="<key-value>",
  tag="<tag-value>"
)
client = MlflowClient()
client.set_model_version_tag()(
  name="<model-name>",
  version=<model-version>,
  key="<key-value>",
  tag="<tag-value>"
)

Cambio del nombre de un modelo (solo API)

Para cambiar el nombre de un modelo inscrito, use el método rename_registered_model() de Client API de MLflow:

client=MlflowClient()
client.rename_registered_model("<model-name>", "<new-model-name>")

Nota:

Solo puede cambiar el nombre de los modelos inscritos si no tienen ninguna versión, o bien todas las versiones están en la fase Ninguna o Archivado.

Búsqueda de un modelo

Se pueden buscar los modelos en el Registro de modelo del área de trabajo mediante la interfaz de usuario o la API.

Nota:

Al buscar un modelo, solo se devuelven aquellos para los que tenga al menos los permisos CAN READ.

Búsqueda de un modelo mediante la interfaz de usuario

Para mostrar todos los modelos registrados, haga clic en el Icono de modelosModelos en la barra lateral.

Para buscar un modelo específico, escriba el texto relevante a este en el cuadro de búsqueda. Puede escribir el nombre completo o parcial de un modelo:

Búsqueda de modelos registrados

También puede realizar búsquedas con etiquetas. Escriba etiquetas en este formato: tags.<key>=<value>. Para usar varias etiquetas en el proceso de búsqueda, use el operador AND.

Búsqueda basada en etiquetas

Puede buscar tanto con el nombre del modelo como con las etiquetas mediante el uso de la sintaxis de búsqueda de MLflow. Por ejemplo:

Búsqueda basada en nombres y etiquetas

Búsqueda de un modelo mediante la API

Se pueden buscar los modelos registrados en el Registro de modelos del área de trabajo con el método de la API de cliente de MLflow search_registered_models()

Si ha establecido etiquetas en los modelos, también puede realizar búsquedas por ellas con search_registered_models().

print(f"Find registered models with a specific tag value")
for m in client.search_registered_models(f"tags.`<key-value>`='<tag-value>'"):
  pprint(dict(m), indent=4)

También puede buscar un nombre de modelo específico y mostrar los detalles de su versión con el método search_model_versions() de Client API de MLflow:

from pprint import pprint

client=MlflowClient()
[pprint(mv) for mv in client.search_model_versions("name='<model-name>'")]

Esta es la salida:

{   'creation_timestamp': 1582671933246,
    'current_stage': 'Production',
    'description': 'A random forest model containing 100 decision trees '
                   'trained in scikit-learn',
    'last_updated_timestamp': 1582671960712,
    'name': 'sk-learn-random-forest-reg-model',
    'run_id': 'ae2cc01346de45f79a44a320aab1797b',
    'source': './mlruns/0/ae2cc01346de45f79a44a320aab1797b/artifacts/sklearn-model',
    'status': 'READY',
    'status_message': None,
    'user_id': None,
    'version': 1 }

{   'creation_timestamp': 1582671960628,
    'current_stage': 'None',
    'description': None,
    'last_updated_timestamp': 1582671960628,
    'name': 'sk-learn-random-forest-reg-model',
    'run_id': 'd994f18d09c64c148e62a785052e6723',
    'source': './mlruns/0/d994f18d09c64c148e62a785052e6723/artifacts/sklearn-model',
    'status': 'READY',
    'status_message': None,
    'user_id': None,
    'version': 2 }

Eliminación de un modelo o una versión de un modelo

Puede eliminar cualquier modelo mediante la interfaz de usuario o la API.

Eliminación de una versión de un modelo o un modelo mediante la interfaz de usuario

Advertencia

No es posible deshacer esta acción. Puede realizar la transición de una versión del modelo a la fase Archivado en lugar de eliminarla del registro. Al eliminar un modelo, no solo se eliminan todos los artefactos del modelo almacenados por el Registro de modelos del área de trabajo, sino también todos los metadatos asociados a dicho modelo.

Nota:

Solo se pueden eliminar modelos y versiones de modelo en las fases Ninguna o Archivado. Si un modelo inscrito tiene versiones en la fases Almacenamiento provisional o Producción, es preciso pasarlas a las fases Ninguna o Archivado antes de eliminar el modelo.

Para eliminar una versión de un modelo:

  1. Haga clic en Icono de modelosModelos en la barra lateral.
  2. Haga clic en un nombre de modelo.
  3. Haga clic en una versión de modelo.
  4. Haga clic en Eliminación de versión de modelo en la esquina superior derecha de la pantalla y seleccione Eliminar en el menú desplegable.

Para eliminar un modelo:

  1. Haga clic en Icono de modelosModelos en la barra lateral.
  2. Haga clic en un nombre de modelo.
  3. Haga clic en Eliminación de un modelo en la esquina superior derecha de la pantalla y seleccione Eliminar en el menú desplegable.

Eliminación de una versión de un modelo o un modelo mediante la API

Advertencia

No es posible deshacer esta acción. Puede realizar la transición de una versión del modelo a la fase Archivado en lugar de eliminarla del registro. Al eliminar un modelo, no solo se eliminan todos los artefactos del modelo almacenados por el Registro de modelos del área de trabajo, sino también todos los metadatos asociados a dicho modelo.

Nota:

Solo se pueden eliminar modelos y versiones de modelo en las fases Ninguna o Archivado. Si un modelo inscrito tiene versiones en la fases Almacenamiento provisional o Producción, es preciso pasarlas a las fases Ninguna o Archivado antes de eliminar el modelo.

Eliminación de una versión de un modelo

Para eliminar una versión del modelo, use el método delete_model_version() de Client API de MLflow:

# Delete versions 1,2, and 3 of the model
client = MlflowClient()
versions=[1, 2, 3]
for version in versions:
  client.delete_model_version(name="<model-name>", version=version)

Eliminación de un modelo

Para eliminar un modelo, use el método delete_registered_model() de Client API de MLflow:

client = MlflowClient()
client.delete_registered_model(name="<model-name>")

Uso compartido de modelos en áreas de trabajo

Databricks recomienda usar Modelos en Unity Catalog para compartir modelos entre áreas de trabajo. Unity Catalog proporciona compatibilidad integrada con el acceso al modelo, la gobernanza y el registro de auditoría entre áreas de trabajo.

Sin embargo, si usa el Registro de modelos del área de trabajo, también puede compartir modelos entre varias áreas de trabajo con cierta configuración. Por ejemplo, puede desarrollar y registrar un modelo en su propia área de trabajo y, después, acceder a él desde otra área de trabajo con un registro de modelos remoto. Esto resulta útil cuando varios equipos comparten el acceso a los modelos. Puede crear varias áreas de trabajo y usar y administrar modelos en estos entornos.

Copia de objetos de MLflow entre áreas de trabajo

Para importar o exportar objetos de MLflow hacia o desde el área de trabajo de Azure Databricks, puede usar el proyecto de código abierto controlado por la comunidad MLflow Export-Import para migrar experimentos, modelos y ejecuciones de MLflow entre áreas de trabajo.

Con estas herramientas puede realizar lo siguiente:

  • Comparta y colabore con otros científicos de datos en el mismo servidor de seguimiento u otro servidor de seguimiento. Por ejemplo, puede clonar un experimento de otro usuario en el área de trabajo.
  • Copie un modelo de un área de trabajo a otra, como desde un desarrollo a un área de trabajo de producción.
  • Copie los experimentos de MLflow y ejecútelos desde el servidor de seguimiento local al área de trabajo de Databricks.
  • Realice una copia de seguridad de experimentos y modelos críticos en otro área de trabajo de Databricks.

Ejemplo

En este ejemplo se muestra cómo utilizar el Registro de modelos del área de trabajo para crear una aplicación de aprendizaje automático.

Ejemplo de Registro de modelos del área de trabajo