Adicionar um recurso de experiência MLflow a uma aplicação Databricks

Adicione experiências MLflow como recursos das Databricks Apps para permitir o acompanhamento de experiências para as suas aplicações de IA, agentes, LLMs e modelos de ML. Os experimentos MLflow fornecem uma forma estruturada de organizar e registar execuções, acompanhar parâmetros, métricas e artefactos ao longo do ciclo de vida do desenvolvimento de aplicações de IA.

Quando adiciona um experimento MLflow como recurso, a sua aplicação pode:

  • Agentes de depuração e aplicações LLM com traços de execução
  • Avalie a qualidade das candidaturas a agentes e LLM com os avaliadores
  • Gestão e modelos de prompts de versão para aplicações LLM
  • Registar treinos de modelos de ML com parâmetros, métricas e artefactos
  • Recuperar dados de experiências, metadados e histórico de execuções

Adicionar um recurso de experimento MLflow

Antes de adicionar uma experiência MLflow como recurso, revê os pré-requisitos de recursos da aplicação.

  1. Na secção de recursos da aplicação , ao criar ou editar uma aplicação, clique em + Adicionar recurso>ao experimento MLflow.
  2. Escolha um experimento MLflow da lista de experiências disponíveis no seu espaço de trabalho.
  3. Selecione o nível de permissão apropriado para seu aplicativo:
    • Pode ler: Concede à aplicação permissão para visualizar metadados de experiências, execuções, parâmetros e métricas. Use para aplicações que mostrem resultados de experiências.
    • Posso editar: Concede à aplicação permissão para modificar definições e metadados do experimento.
    • Consegue gerir: Concede à aplicação acesso administrativo total ao experimento.
  4. (Opcional) Especifica uma chave de recurso personalizada, que é como referencias o experimento na configuração da tua aplicação. A chave padrão é experiment.

Quando adiciona um recurso de experimento no MLflow:

  • Azure Databricks concede ao principal de serviço da sua aplicação as permissões especificadas para o experimento selecionado.
  • A aplicação pode registar execuções de treino e aceder a dados de experiências através da API de Rastreamento MLflow.
  • O acesso é limitado apenas ao experimento selecionado. A tua aplicação não pode aceder a outros experimentos a menos que os adiciones como recursos separados.

Note

Um recurso de experimento do MLflow concede permissões ao nível do espaço de trabalho no experimento. Se o experimento armazenar traços no Unity Catalog, adicione as quatro tabelas de traços do Unity Catalog como recursos da aplicação. O acesso aos traços nestas tabelas é governado pelos privilégios do Catálogo Unity, não pelas permissões de experiência.

Variáveis de ambiente

Quando implementas uma aplicação com um recurso de experiência MLflow, Azure Databricks expõe o ID do experimento através de variáveis de ambiente que podes consultar usando o campo valueFrom na tua configuração app.yaml.

Exemplo de configuração:

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

Usando o ID do experimento na sua aplicação:

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 Acessar variáveis de ambiente a partir de recursos.

Armazene rastreios do MLflow no Unity Catalog

Para escrever traços MLflow de uma aplicação para o Unity Catalog, crie primeiro um experimento com uma localização de traço no Unity Catalog. Especifique um prefixo de tabela para que os nomes das quatro tabelas de traço sejam previsíveis.

Adicione o experimento à app com a permissão CAN_EDIT. Depois, adicione cada uma das seguintes tabelas do Catálogo Unity como um recurso de aplicação 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 ao principal de serviço da aplicação tanto MODIFY como SELECT em cada tabela. As aplicações do Databricks também concedem automaticamente USE CATALOG e USE SCHEMA no catálogo e no esquema principais.

O seguinte exemplo dos Pacotes de Automação Declarativa configura o experimento e as suas quatro tabelas de rastreamento como recursos da aplicação:

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 Unity Catalog, incluindo permissões necessárias para criar e gerir as tabelas, consulte Armazenar traços OpenTelemetry no Unity Catalog.

Remover um recurso do Experimento MLflow

Quando remove um recurso do MLflow Experiment de uma aplicação, o principal de serviço da aplicação perde o acesso ao experimento. A experiência em si mantém-se inalterada e continua disponível para outros utilizadores e aplicações que tenham permissões apropriadas.

Melhores práticas

Siga estas melhores práticas ao trabalhar com recursos de experiências MLflow:

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