Udostępnij za pośrednictwem


Monitorowanie produkcyjne

Ważne

Ta funkcja jest dostępna w wersji beta.

Monitorowanie produkcji umożliwia ciągłą ocenę jakości aplikacji GenAI przez automatyczne uruchamianie punktów oceny na żywo. Usługa monitorowania jest uruchamiana co 15 minut, oceniając konfigurowalną próbkę śladów przy użyciu takich samych ocen, jakich używasz w trakcie rozwoju.

Jak to działa

Po włączeniu monitorowania produkcyjnego dla eksperymentu MLflow:

  1. Automatyczne wykonywanie — zadanie w tle jest uruchamiane co 15 minut (po początkowej konfiguracji)
  2. Ocena skorelowana — każdy skonfigurowany moduł oceniania jest uruchamiany na próbce śladów produkcyjnych
  3. Załącznik opinii — wyniki są dołączane jako opinie do każdego ocenianego śladu
  4. Archiwizowanie danych — wszystkie ślady (nie tylko próbkowane) są zapisywane w Tabeli Delty w Katalogu Unity na potrzeby analizy

Usługa monitorowania zapewnia spójną ocenę przy użyciu tych samych punktów oceny z programowania, zapewniając automatyczną ocenę jakości bez ręcznej interwencji.

Ostrzeżenie

Obecnie monitorowanie produkcyjne obsługuje tylko wstępnie zdefiniowane oceny. Skontaktuj się z przedstawicielem konta usługi Databricks, jeśli musisz uruchomić niestandardowe wskaźniki oparte na kodzie lub oparte na języku LLM w środowisku produkcyjnym.

Referencja API

utwórz_monitor_zewnętrzny

Tworzy monitor dla aplikacji GenAI obsługiwanej poza usługą Databricks. Po utworzeniu monitor rozpoczyna automatyczne ocenianie śladów zgodnie z skonfigurowanym pakietem oceny.

# These packages are automatically installed with mlflow[databricks]
from databricks.agents.monitoring import create_external_monitor

create_external_monitor(
    *,
    catalog_name: str,
    schema_name: str,
    assessments_config: AssessmentsSuiteConfig | dict,
    experiment_id: str | None = None,
    experiment_name: str | None = None,
) -> ExternalMonitor

Parametry

Parametr Typ Opis
catalog_name str Nazwa katalogu Unity, w którym zostanie utworzona tabela archiwum śladów
schema_name str Nazwa schematu w Unity Catalog, w którym zostanie utworzona tabela archiwum trasowania
assessments_config AssessmentsSuiteConfig lub dict Konfiguracja zestawu testów do przeprowadzenia na danych śladowych
experiment_id str lub None Identyfikator eksperymentu MLflow do skojarzenia z monitorem. Domyślnie jest to aktualnie aktywny eksperyment
experiment_name str lub None Nazwa eksperymentu MLflow do skojarzenia z monitorem. Domyślnie jest to aktualnie aktywny eksperyment

Zwraca

ExternalMonitor — Utworzony obiekt monitora zawierający identyfikator eksperymentu, konfigurację i adresy URL monitorowania

Przykład

import mlflow
from databricks.agents.monitoring import create_external_monitor, AssessmentsSuiteConfig, BuiltinJudge, GuidelinesJudge

# Create a monitor with multiple scorers
external_monitor = create_external_monitor(
    catalog_name="workspace",
    schema_name="default",
    assessments_config=AssessmentsSuiteConfig(
        sample=0.5,  # Sample 50% of traces
        assessments=[
            BuiltinJudge(name="safety"),
            BuiltinJudge(name="relevance_to_query"),
            BuiltinJudge(name="groundedness", sample_rate=0.2),  # Override sampling for this scorer
            GuidelinesJudge(
                guidelines={
                    "mlflow_only": [
                        "If the request is unrelated to MLflow, the response must refuse to answer."
                    ],
                    "professional_tone": [
                        "The response must maintain a professional and helpful tone."
                    ]
                }
            ),
        ],
    ),
)

print(f"Monitor created for experiment: {external_monitor.experiment_id}")
print(f"View traces at: {external_monitor.monitoring_page_url}")

pobierz_zewnętrzny_monitor

Pobiera istniejący monitor dla aplikacji GenAI obsługiwanej poza usługą Databricks.

# These packages are automatically installed with mlflow[databricks]
from databricks.agents.monitoring import get_external_monitor

get_external_monitor(
    *,
    experiment_id: str | None = None,
    experiment_name: str | None = None,
) -> ExternalMonitor

Parametry

Parametr Typ Opis
experiment_id str lub None Identyfikator eksperymentu MLflow skojarzonego z monitorem
experiment_name str lub None Nazwa eksperymentu MLflow skojarzonego z monitorem

Zwraca

ExternalMonitor - Pobrany obiekt monitora

Podnosi

  • ValueError - Gdy ani experiment_id, ani experiment_name nie są podane
  • NoMonitorFoundError - Kiedy nie znaleziono monitora dla danego eksperymentu

Przykład

from databricks.agents.monitoring import get_external_monitor

# Get monitor by experiment ID
monitor = get_external_monitor(experiment_id="123456789")

# Get monitor by experiment name
monitor = get_external_monitor(experiment_name="my-genai-app-experiment")

# Access monitor configuration
print(f"Sampling rate: {monitor.assessments_config.sample}")
print(f"Archive table: {monitor.trace_archive_table}")

aktualizuj_zewnętrzny_monitor

Aktualizuje konfigurację istniejącego monitora. Konfiguracja jest całkowicie zastępowana (nie scalona) nowymi wartościami.

# These packages are automatically installed with mlflow[databricks]
from databricks.agents.monitoring import update_external_monitor

update_external_monitor(
    *,
    experiment_id: str | None = None,
    experiment_name: str | None = None,
    assessments_config: AssessmentsSuiteConfig | dict,
) -> ExternalMonitor

Parametry

Parametr Typ Opis
experiment_id str lub None Identyfikator eksperymentu MLflow skojarzonego z monitorem
experiment_name str lub None Nazwa eksperymentu MLflow skojarzonego z monitorem
assessments_config AssessmentsSuiteConfig lub dict Zaktualizowana konfiguracja, która całkowicie zastąpi istniejącą konfigurację

Zwraca

ExternalMonitor - Zaktualizowany obiekt monitora

Podnosi

  • ValueError - Gdy nie podano assessments_config

usuń_zewnętrzny_monitor

Usuwa monitor dla aplikacji GenAI działającej poza środowiskiem Databricks.

# These packages are automatically installed with mlflow[databricks]
from databricks.agents.monitoring import delete_external_monitor

delete_external_monitor(
    *,
    experiment_id: str | None = None,
    experiment_name: str | None = None,
) -> None

Parametry

Parametr Typ Opis
experiment_id str lub None Identyfikator eksperymentu MLflow skojarzonego z monitorem
experiment_name str lub None Nazwa eksperymentu MLflow skojarzonego z monitorem

Przykład

from databricks.agents.monitoring import delete_external_monitor

# Delete monitor by experiment ID
delete_external_monitor(experiment_id="123456789")

# Delete monitor by experiment name
delete_external_monitor(experiment_name="my-genai-app-experiment")

Klasy konfiguracji

KonfiguracjaPakietuOcen

Konfiguracja zestawu testów, które mają być uruchamiane na śladach z aplikacji GenAI.

# These packages are automatically installed with mlflow[databricks]
from databricks.agents.monitoring import AssessmentsSuiteConfig

@dataclasses.dataclass
class AssessmentsSuiteConfig:
    sample: float | None = None
    paused: bool | None = None
    assessments: list[AssessmentConfig] | None = None

Atrybuty

Atrybut Typ Opis
sample float lub None Globalna częstotliwość próbkowania z zakresu od 0,0 do 1,0 (włącznie). Poszczególne oceny mogą to zastąpić
paused bool lub None Czy monitorowanie jest wstrzymane
assessments list[AssessmentConfig] lub None Lista analiz do uruchomienia na śladach

Metody

from_dict

Tworzy element AssessmentsSuiteConfig z reprezentacji słownikowej.

@classmethod
def from_dict(cls, data: dict) -> AssessmentsSuiteConfig
pobierz_wytyczne_sędzia

Zwraca pierwszy element GuidelinesJudge z listy ocen lub Brak, jeśli nie zostanie znaleziony.

def get_guidelines_judge(self) -> GuidelinesJudge | None

Przykład

from databricks.agents.monitoring import AssessmentsSuiteConfig, BuiltinJudge, GuidelinesJudge

# Create configuration with multiple assessments
config = AssessmentsSuiteConfig(
    sample=0.3,  # Sample 30% of all traces
    assessments=[
        BuiltinJudge(name="safety"),
        BuiltinJudge(name="relevance_to_query", sample_rate=0.5),  # Override to 50%
        GuidelinesJudge(
            guidelines={
                "accuracy": ["The response must be factually accurate"],
                "completeness": ["The response must fully address the user's question"]
            }
        )
    ]
)

# Create from dictionary
config_dict = {
    "sample": 0.3,
    "assessments": [
        {"name": "safety"},
        {"name": "relevance_to_query", "sample_rate": 0.5}
    ]
}
config = AssessmentsSuiteConfig.from_dict(config_dict)

BuiltinJudge

Konfiguracja wbudowanego sędziego do uruchamiania na śladach.

# These packages are automatically installed with mlflow[databricks]
from databricks.agents.monitoring import BuiltinJudge

@dataclasses.dataclass
class BuiltinJudge:
    name: Literal["safety", "groundedness", "relevance_to_query", "chunk_relevance"]
    sample_rate: float | None = None

Atrybuty

Atrybut Typ Opis
name str Nazwa wbudowanego sędziego. Musi być jednym z: "safety", , "groundedness", "relevance_to_query""chunk_relevance"
sample_rate float lub None Opcjonalna częstotliwość próbkowania dla tego konkretnego sędziego (od 0,0 do 1,0)

Dostępni sędziowie wbudowani

  • safety - Wykrywa szkodliwą lub toksyczną zawartość w odpowiedziach
  • groundedness - Ocenia, czy odpowiedzi są uziemione w kontekście pobranym (aplikacje RAG)
  • relevance_to_query — Sprawdza, czy odpowiedzi odpowiadają na żądanie użytkownika
  • chunk_relevance - Ocenia istotność każdego pobranego fragmentu (aplikacje RAG)

Wytyczne Sędzia

Konfiguracja oceny zgodności wytycznych w celu oceny niestandardowych reguł biznesowych.

# These packages are automatically installed with mlflow[databricks]
from databricks.agents.monitoring import GuidelinesJudge

@dataclasses.dataclass
class GuidelinesJudge:
    guidelines: dict[str, list[str]]
    sample_rate: float | None = None
    name: Literal["guideline_adherence"] = "guideline_adherence"  # Set automatically

Atrybuty

Atrybut Typ Opis
guidelines dict[str, list[str]] Słownik mapujący nazwy wytycznych na listy opisów wytycznych
sample_rate float lub None Opcjonalna możliwość zmiany częstotliwości próbkowania dla tego sędziego (od 0,0 do 1,0)

Przykład

from databricks.agents.monitoring import GuidelinesJudge

# Create guidelines judge with multiple business rules
guidelines_judge = GuidelinesJudge(
    guidelines={
        "data_privacy": [
            "The response must not reveal any personal customer information",
            "The response must not include internal system details"
        ],
        "brand_voice": [
            "The response must maintain a professional yet friendly tone",
            "The response must use 'we' instead of 'I' when referring to the company"
        ],
        "accuracy": [
            "The response must only provide information that can be verified",
            "The response must acknowledge uncertainty when appropriate"
        ]
    },
    sample_rate=0.8  # Evaluate 80% of traces with these guidelines
)

Monitor zewnętrzny

Reprezentuje monitor dla aplikacji GenAI obsługiwany poza Databricks.

@dataclasses.dataclass
class ExternalMonitor:
    experiment_id: str
    assessments_config: AssessmentsSuiteConfig
    trace_archive_table: str | None
    _checkpoint_table: str
    _legacy_ingestion_endpoint_name: str

    @property
    def monitoring_page_url(self) -> str

Atrybuty

Atrybut Typ Opis
experiment_id str Identyfikator eksperymentu MLflow skojarzonego z tym monitorem
assessments_config AssessmentsSuiteConfig Konfiguracja przeprowadzania ocen
trace_archive_table str lub None Tabela w Unity Catalog, w której są archiwizowane ślady
monitoring_page_url str Adres URL do wyświetlania wyników monitorowania w interfejsie użytkownika platformy MLflow

Dalsze kroki