Pular para o conteúdo principal

Adicionar um recurso de experimento do MLflow a um aplicativo Databricks

Adicione experimentosMLflow como um recurso Databricks Apps para habilitar o acompanhamento de experimentos para seus aplicativos AI , agentes, LLMs e modelos ML . Os experimentos MLflow fornecem uma maneira estruturada de organizar e log a execução, rastrear parâmetros, métricas e artefatos ao longo do ciclo de vida do desenvolvimento de aplicativos AI .

Ao adicionar um experimento do MLflow como um recurso, seu aplicativo poderá:

  • Agentes de depuração e aplicações LLM com rastreamento de execução
  • Avalie a qualidade das candidaturas de agentes e de mestrados em Direito (LLM) com avaliadores.
  • Gerenciamento e prompt de versão padrão para aplicativos LLM
  • log execução de treinamento do modelo ML com parâmetros, análises e artefatos
  • Recuperar dados do experimento, metadados e história de execução

Adicionar um recurso de experimento do MLflow

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

  1. Na seção Recurso do aplicativo, ao criar ou editar um aplicativo, clique em + Adicionar recurso > ExperimentoMLflow .

  2. Escolha um experimento MLflow na lista de experimentos disponíveis em seu workspace.

  3. Selecione o nível de permissão apropriado para seu aplicativo:

    • Pode ser lido: Concede permissão ao aplicativo para view metadados do experimento, execução, parâmetros e métricas. Use para aplicativos que exibem resultados de experimentos.
    • 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 key de recurso personalizada, que é como você referencia o experimento na configuração do seu aplicativo. A key default é experiment.

Ao adicionar um recurso de experimento do MLflow:

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

Um recurso de experimento MLflow concede permissões de nível de workspace no experimento. Se o experimento armazenar rastreamentos no Unity Catalog, adicione as quatro tabelas de rastreamento do Unity Catalog como recursos do aplicativo. O acesso aos rastreamentos nessas tabelas é regido pelos privilégios do Unity Catalog, não pelas permissões do experimento.

variável de ambiente

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

Configuração de exemplo:

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

Utilizando o ID do experimento em sua aplicação:

Python
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 mais informações consulte Variável de ambiente de acesso do recurso.

Armazenar rastreamentos do MLflow no Unity Catalog

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

Adicione o experimento ao aplicativo com a permissão CAN_EDIT. Em seguida, adicione cada uma das seguintes tabelas do Unity Catalog como um recurso de aplicativo separado com a permissão MODIFY:

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

A permissão MODIFY concede ao service principal do aplicativo tanto MODIFY quanto SELECT em cada tabela. O Databricks Apps também concede automaticamente USE CATALOG e USE SCHEMA no catálogo e esquema pai.

O exemplo a seguir de Declarative Automation Bundles configura o experimento e suas quatro tabelas de rastreamento como recursos do aplicativo:

YAML
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 as permissões necessárias para criar e gerenciar as tabelas, consulte Armazenar rastreamentos do OpenTelemetry no Unity Catalog.

Remover um recurso de experimento do MLflow

Ao remover um recurso de Experimento do MLflow de um aplicativo, a entidade de serviço do aplicativo perde o acesso ao experimento. O experimento em si permanece inalterado e continua disponível para outros usuários e aplicativos que possuam as permissões adequadas.

Melhores práticas

Siga estas boas práticas ao trabalhar com o recurso de experimentos MLflow :

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