Přidání prostředku experimentu MLflow do aplikace Databricks

Přidejte experimenty MLflow jako prostředky Databricks Apps, které umožňují sledování experimentů pro vaše aplikace, agenty, LLM a modely ML. Experimenty MLflow poskytují strukturovaný způsob uspořádání a protokolování spuštění, sledování parametrů, metrik a artefaktů v průběhu životního cyklu vývoje aplikací AI.

Když přidáte experiment MLflow jako prostředek, vaše aplikace může:

  • Odstraňování chyb agentů a aplikací LLM pomocí trasování spuštění
  • Vyhodnoťte kvalitu aplikace agenta a LLM pomocí hodnotících nástrojů.
  • Správa a verzování šablon výzev pro aplikace LLM.
  • Zaznamenejte průběhy tréninku modelu ML s parametry, metrikami a artefakty
  • Načtení dat experimentu, metadat a historie spuštění

Přidejte prostředek experimentu MLflow

Než přidáte experiment MLflow jako prostředek, projděte si požadavky na prostředek aplikace.

  1. V části Prostředky aplikace při vytváření nebo úpravě aplikace klikněte na + Přidat prostředek>experiment MLflow.
  2. V seznamu dostupných experimentů v pracovním prostoru vyberte experiment MLflow.
  3. Vyberte odpovídající úroveň oprávnění pro vaši aplikaci:
    • Může číst: Udělí aplikaci oprávnění k zobrazení metadat experimentu, spuštění, parametrů a metrik. Používá se pro aplikace, které zobrazují výsledky experimentu.
    • Může upravit: Udělí aplikaci oprávnění ke změně nastavení experimentu a metadat.
    • Může spravovat: Udělí aplikaci úplný přístup správce k experimentu.
  4. (Volitelné) Zadejte vlastní klíč prostředku, což je způsob, jakým odkazujete na experiment v konfiguraci aplikace. Výchozí klíč je experiment.

Když přidáte prostředek experimentu MLflow:

  • Azure Databricks udělí aplikaci service principal zadaná oprávnění k vybranému experimentu.
  • Aplikace může protokolovat spuštění trénování a přistupovat k datům experimentu prostřednictvím rozhraní API pro sledování MLflow.
  • Přístup je vymezen pouze na vybraný experiment. Aplikace nemá přístup k jiným experimentům, pokud je nepřidáte jako samostatné prostředky.

Note

Experimentální zdroj MLflow uděluje na experimentu oprávnění na úrovni pracovního prostoru. Pokud experiment ukládá stopy v Unity Catalog, přidejte čtyři tabulky trasování Unity Catalog jako zdroje aplikace. Přístup ke stopám v těchto tabulkách je řízen oprávněními Unity Catalog, nikoli oprávněními experimentu.

Proměnné prostředí

Když nasadíte aplikaci s prostředkem experimentu MLflow, Azure Databricks zveřejní ID experimentu prostřednictvím proměnných prostředí, na které můžete odkazovat pomocí pole valueFrom v konfiguraci app.yaml.

Příklad konfigurace:

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

Použití ID experimentu ve vaší aplikaci:

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")

Další informace najdete v tématu Přístup k proměnným prostředí z prostředků.

Ukládání trasování MLflow do Unity Catalog

Chcete-li zapisovat trasování MLflow z aplikace do Unity Catalog, nejprve vytvořte experiment s umístěním trasování v Unity Catalog. Zadejte prefix tabulky, aby názvy čtyř trasovacích tabulek byly snadno předvídatelné.

Přidejte experiment do aplikace s CAN_EDIT povolením. Poté přidejte každou z následujících tabulek Unity Catalog jako samostatný aplikační zdroj s MODIFY povolením:

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

Oprávnění MODIFY uděluje instančnímu objektu služby aplikace oprávnění MODIFY i SELECT v každé tabulce. Databricks Apps také automaticky udělují USE CATALOG a USE SCHEMA na rodičovském katalogu a schématu.

Následující příklad Deklarativních automatizačních balíčků konfiguruje experiment a jeho čtyři tabulky tras jako zdroje aplikace:

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'

Všechny požadavky na trasování v Unity Catalog, včetně oprávnění potřebných k vytváření a správě tabulek, najdete v části Ukládání tras OpenTelemetry v Unity Catalog.

Odstraňte prostředek experimentu MLflow

Když z aplikace odeberete prostředek experimentu MLflow, služební principál aplikace ztratí přístup k experimentu. Samotný experiment zůstane beze změny a bude nadále dostupný pro ostatní uživatele a aplikace, které mají příslušná oprávnění.

Osvědčené postupy

Při práci s prostředky experimentu MLflow postupujte podle těchto osvědčených postupů:

  • Uspořádejte experimenty logicky podle projektu nebo typu modelu, aby se zlepšila zjistitelnost.
  • Konzistentně používejte pojmenovávací konvence pro spuštění a parametry v celé organizaci.
  • Zvažte zásady uchovávání experimentů a správu úložiště pro dlouhotrvající projekty.