Adición de un recurso de experimento de MLflow a una aplicación de Databricks

Agregue experimentos de MLflow como recursos de Databricks Apps para habilitar el seguimiento de experimentos para las aplicaciones de inteligencia artificial, los agentes, las LLM y los modelos de ML. Los experimentos de MLflow proporcionan una manera estructurada de organizar y registrar ejecuciones, realizar un seguimiento de los parámetros, las métricas y los artefactos a lo largo del ciclo de vida de desarrollo de aplicaciones de IA.

Al agregar un experimento de MLflow como un recurso, la aplicación puede hacer lo siguiente:

  • Depuración de agentes y aplicaciones LLM con seguimientos de ejecución
  • Evaluar la calidad de agente y aplicaciones de LLM con puntuadores
  • Administrar y versionar plantillas de entrada para aplicaciones LLM
  • Registrar las ejecuciones de entrenamiento del modelo de aprendizaje automático con parámetros, métricas y artefactos
  • Recuperación de datos, metadatos y historial de ejecución del experimento

Adición de un recurso de experimento de MLflow

Antes de agregar un experimento de MLflow como recurso, revise los requisitos previos de los recursos de la aplicación.

  1. En la sección Recursos de la aplicación al crear o editar una aplicación, haga clic en + Agregar recurso>experimento de MLflow.
  2. Elija un experimento de MLflow en la lista de experimentos disponibles en el área de trabajo.
  3. Seleccione el nivel de permiso adecuado para la aplicación:
    • Puede leer: Concede permiso a la aplicación para ver los metadatos del experimento, las ejecuciones, los parámetros y las métricas. Se usa para aplicaciones que muestran los resultados del experimento.
    • Puede editar: Concede permiso a la aplicación para modificar la configuración y los metadatos del experimento.
    • Puede administrar: Concede a la aplicación acceso administrativo completo al experimento.
  4. (Opcional) Especifique una clave de recurso personalizada, que es la forma en que hace referencia al experimento en la configuración de la aplicación. La clave predeterminada es experiment.

Al agregar un recurso de experimento de MLflow:

  • Azure Databricks concede a service principal de la aplicación los permisos especificados en el experimento seleccionado.
  • La aplicación puede registrar ejecuciones de entrenamiento y acceder a los datos del experimento a través de la API de seguimiento de MLflow.
  • El acceso está limitado únicamente al experimento seleccionado. La aplicación no puede acceder a otros experimentos a menos que los agregue como recursos independientes.

Note

Un recurso de experimento de MLflow concede permisos a nivel de espacio de trabajo sobre el experimento. Si el experimento almacena trazas en el Catálogo de Unity, añade las cuatro tablas de trazos del Catálogo de Unity como recursos de la app. El acceso a las trazas en estas tablas está regulado por privilegios del Catálogo de Unity, no por permisos de experimento.

Variables de entorno

Al implementar una aplicación con un recurso de experimento de MLflow, Azure Databricks expone el identificador del experimento a través de variables de entorno a las que puede hacer referencia mediante el campo valueFrom en la configuración de app.yaml.

Configuración de ejemplo:

env:
  - name: MLFLOW_EXPERIMENT_ID
    valueFrom: experiment # Use your custom resource key if different

Con el identificador del experimento en tu aplicación:

import os
import mlflow

# Access the experiment using the injected environment variable
experiment_id = os.getenv("MLFLOW_EXPERIMENT_ID")

# Set the experiment for tracking
mlflow.set_experiment(experiment_id=experiment_id)

# Log parameters and metrics
with mlflow.start_run():
    mlflow.log_param("learning_rate", 0.01)
    mlflow.log_metric("accuracy", 0.95)
    mlflow.log_artifact("model.pkl")

Para obtener más información, consulte Access environment variables from resources (Acceso a variables de entorno desde recursos).

Almacenar trazas de MLflow en el Catálogo de Unity

Para escribir trazas de MLflow desde una app en Unity Catalog, primero crea un experimento con una ubicación de traza de Unity Catalog. Especifique un prefijo de tabla para que los nombres de las cuatro tablas de seguimiento sean predecibles.

Añade el experimento a la aplicación con permiso de CAN_EDIT. Luego añade cada una de las siguientes tablas del Catálogo de Unity como un recurso de aplicación separado con MODIFY permiso:

  • <table_prefix>_otel_annotations
  • <table_prefix>_otel_logs
  • <table_prefix>_otel_metrics
  • <table_prefix>_otel_spans

El permiso MODIFY otorga a la entidad de servicio de la aplicación tanto MODIFY como SELECT en cada tabla. Databricks Apps también otorga automáticamente USE CATALOG y USE SCHEMA en el catálogo y el esquema principal.

El siguiente ejemplo de Paquetes de Automatización Declarativa configura el experimento y sus cuatro tablas trazadas como recursos de la app:

resources:
  apps:
    my_app:
      name: 'my-app'
      source_code_path: ./app
      resources:
        - name: 'experiment'
          experiment:
            experiment_id: '<experiment-id>'
            permission: 'CAN_EDIT'
        - name: 'trace-annotations'
          uc_securable:
            securable_full_name: '<catalog>.<schema>.<table_prefix>_otel_annotations'
            securable_type: 'TABLE'
            permission: 'MODIFY'
        - name: 'trace-logs'
          uc_securable:
            securable_full_name: '<catalog>.<schema>.<table_prefix>_otel_logs'
            securable_type: 'TABLE'
            permission: 'MODIFY'
        - name: 'trace-metrics'
          uc_securable:
            securable_full_name: '<catalog>.<schema>.<table_prefix>_otel_metrics'
            securable_type: 'TABLE'
            permission: 'MODIFY'
        - name: 'trace-spans'
          uc_securable:
            securable_full_name: '<catalog>.<schema>.<table_prefix>_otel_spans'
            securable_type: 'TABLE'
            permission: 'MODIFY'

Para todos los requisitos relativos a las trazas en Unity Catalog, incluidos los permisos necesarios para crear y gestionar las tablas, consulte Almacenar trazas OpenTelemetry en Unity Catalog.

Eliminación de un recurso de experimento de MLflow

Al quitar un recurso de MLflow Experiment de una aplicación, la entidad de servicio de la aplicación pierde el acceso al experimento. El propio experimento permanece sin cambios y sigue estando disponible para otros usuarios y aplicaciones que tienen los permisos adecuados.

procedimientos recomendados

Siga estos procedimientos recomendados al trabajar con recursos del experimento de MLflow:

  • Organice los experimentos lógicamente por proyecto o tipo de modelo para mejorar la detectabilidad.
  • Use convenciones de nomenclatura coherentes para ejecuciones y parámetros en toda la organización.
  • Considere la posibilidad de usar directivas de retención de experimentos y administración de almacenamiento para proyectos de ejecución prolongada.