Adicionar um recurso de teste do MLflow a um aplicativo do Databricks

Adicione experimentos do MLflow como recursos do Databricks Apps para habilitar o acompanhamento de experimentos para seus aplicativos de IA, agentes, LLMs e modelos de ML. Os experimentos do MLflow fornecem uma maneira estruturada de organizar e registrar execuções, acompanhar parâmetros, métricas e artefatos em todo o ciclo de vida de desenvolvimento de aplicativos de IA.

Quando você adiciona um experimento do MLflow como um recurso, seu aplicativo pode:

  • Depurar agentes e aplicativos LLM com rastreamentos de execução
  • Avaliar a qualidade do agente e do aplicativo LLM com avaliadores
  • Gerenciar e versionar modelos de prompt para aplicativos LLM
  • O treinamento do modelo do Log ML é executado com parâmetros, métricas e artefatos
  • Recuperar dados de experimento, metadados e histórico de execução

Adicionar um recurso de teste do MLflow

Antes de adicionar um experimento do MLflow como um recurso, examine os pré-requisitos do recurso de aplicativo.

  1. Na seção Recursos do App, ao criar ou editar um aplicativo, clique em + Adicionar recurso>Experimento de MLflow.
  2. Escolha um experimento do MLflow na lista de experimentos disponíveis em seu workspace.
  3. Selecione o nível de permissão apropriado para seu aplicativo:
    • Pode ler: Concede permissão ao aplicativo para exibir metadados de experimento, execuções, parâmetros e métricas. Use para aplicativos que exibem os resultados do experimento.
    • Pode editar: Concede ao aplicativo permissão para modificar as configurações e os metadados do experimento.
    • Pode gerenciar: Concede ao aplicativo acesso administrativo completo ao experimento.
  4. (Opcional) Especifique uma chave de recurso personalizada, que é como você faz referência ao experimento na configuração do aplicativo. A chave padrão é experiment.

Quando você adiciona um recurso de teste do MLflow:

  • O Azure Databricks concede as permissões especificadas à entidade de serviço do aplicativo no experimento selecionado.
  • O aplicativo pode registrar em log execuções de treinamento e acessar dados de experimento por meio da API de Acompanhamento do MLflow.
  • O escopo do acesso é limitado apenas ao experimento selecionado. Seu aplicativo não pode acessar outros experimentos, a menos que você os adicione como recursos separados.

Observação

Um recurso de experimento do MLflow concede permissões no experimento em nível de espaço de trabalho. Se o experimento armazenar traços no Unity Catalog, adicione as quatro tabelas de traços do Unity Catalog como recursos do app. O acesso a traços nessas tabelas é governado pelos privilégios do Catálogo Unity, não por permissões de experimentos.

Variáveis de ambiente

Quando você implanta um aplicativo com um recurso de teste do MLflow, Azure Databricks expõe a ID do experimento por meio de variáveis de ambiente que você pode referenciar usando o campo valueFrom na configuração app.yaml.

Configuração de exemplo:

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

Usando a ID do experimento em seu aplicativo:

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 obter mais informações, consulte Como acessar variáveis de ambiente dos recursos.

Armazene rastreamentos do MLflow no Unity Catalog

Para gravar rastreamentos do MLflow de um aplicativo no Unity Catalog, primeiro crie um experimento com um local para rastreamentos no Unity Catalog. Especifique um prefixo de tabela para que os nomes das quatro tabelas de traço sejam previsíveis.

Adicione o experimento ao aplicativo com a permissão CAN_EDIT. Depois, adicione cada uma das seguintes tabelas do Catálogo Unity como um recurso de aplicativo separado com MODIFY permissão:

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

A permissão MODIFY concede à entidade de serviço do aplicativo tanto MODIFY quanto SELECT em cada tabela. Os aplicativos Databricks também concedem automaticamente USE CATALOG e USE SCHEMA no catálogo e esquema pai.

O exemplo a seguir dos Pacotes de Automação Declarativa configura o experimento e suas quatro tabelas de rastreamento como recursos do 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 os requisitos de rastreamento do Catálogo Unity, incluindo permissões necessárias para criar e gerenciar as tabelas, veja Armazenar rastreamentos OpenTelemetry no Catálogo Unity.

Remover um recurso do MLflow Experiment

Quando você remove um recurso de Experimento do MLflow de um aplicativo, a entidade de serviço do aplicativo perde acesso ao experimento. O experimento em si permanece inalterado e continua disponível para outros usuários e aplicativos que têm permissões apropriadas.

Práticas recomendadas

Siga estas práticas recomendadas ao trabalhar com recursos de experimento do MLflow:

  • Organize experimentos logicamente por tipo de projeto ou modelo para melhorar a capacidade de descoberta.
  • Use convenções de nomenclatura consistentes para execuções e parâmetros em toda a sua organização.
  • Considere as políticas de retenção de experimentos e o gerenciamento de armazenamento para projetos de longa execução.