Pular para o conteúdo principal

Monitoramento da produção

info

Beta

Esse recurso está na versão beta.

O monitoramento da produção permite a avaliação contínua da qualidade de seus aplicativos GenAI, executando automaticamente os avaliadores no tráfego ao vivo. O serviço de monitoramento é executado a cada 15 minutos, avaliando uma amostra configurável de traces usando os mesmos marcadores que o senhor usa no desenvolvimento.

Como funciona

Quando o senhor ativa o monitoramento da produção para um experimento do MLflow:

  1. Execução automática - execução de um trabalho em segundo plano a cada 15 minutos (após a configuração inicial)
  2. Avaliação do avaliador - Cada avaliador configurado é executado em uma amostra de seus traços de produção
  3. Anexo de feedback - Os resultados são anexados como feedback a cada rastreamento avaliado
  4. Arquivo de dados - Todos os traços (não apenas os amostrados) são gravados em uma tabela Delta no Unity Catalog para análise

O serviço de monitoramento garante uma avaliação consistente usando os mesmos avaliadores desde o desenvolvimento, proporcionando uma avaliação de qualidade automatizada sem intervenção manual.

atenção

Atualmente, o monitoramento da produção só é compatível com pontuadores predefinidos. Entre em contato com seu representante Databricks account se precisar executar scorers personalizados baseados em código ou LLMna produção.

Referência da API

criar_monitor_externo

Cria um monitor para um aplicativo GenAI servido fora do Databricks. Depois de criado, o monitor começa a avaliar automaticamente os rastreamentos de acordo com o conjunto de avaliação configurado.

Python
# 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

Parâmetros

Parâmetro

Tipo

Descrição

catalog_name

str

Nome do catálogo do Unity Catalog onde a tabela de arquivo de rastreamento será criada

schema_name

str

Nome do esquema do Unity Catalog onde a tabela de arquivo de rastreamento será criada

assessments_config

AssessmentsSuiteConfig ou dict

Configuração do conjunto de avaliações para execução em traces

experiment_id

str ou None

ID do experimento MLflow a ser associado ao monitor. padrão para o experimento ativo no momento

experiment_name

str ou None

Nome do experimento MLflow a ser associado ao monitor. padrão para o experimento ativo no momento

Devoluções

ExternalMonitor - O objeto de monitor criado contendo o ID do experimento, a configuração e os URLs de monitoramento

Exemplo

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

get_external_monitor

Recupera um monitor existente para um aplicativo GenAI servido fora do Databricks.

Python
# 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

Parâmetros

Parâmetro

Tipo

Descrição

experiment_id

str ou None

ID do experimento MLflow associado ao monitor

experiment_name

str ou None

Nome do experimento MLflow associado ao monitor

Devoluções

ExternalMonitor - O objeto do monitor recuperado

Aumenta

  • ValueError - Quando nem experiment_id nem experiment_name são fornecidos
  • NoMonitorFoundError - Quando nenhum monitor é encontrado para o experimento em questão

Exemplo

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

atualização_external_monitor

Atualiza a configuração de um monitor existente. A configuração é completamente substituída (não mesclada) com os novos valores.

Python
# 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

Parâmetros

Parâmetro

Tipo

Descrição

experiment_id

str ou None

ID do experimento MLflow associado ao monitor

experiment_name

str ou None

Nome do experimento MLflow associado ao monitor

assessments_config

AssessmentsSuiteConfig ou dict

Configuração atualizada que substituirá completamente a configuração existente

Devoluções

ExternalMonitor - O objeto de monitor atualizado

Aumenta

  • ValueError - Quando assessments_config não é fornecido

excluir_monitor_externo

Exclui o monitor de um aplicativo GenAI servido fora do Databricks.

Python
# 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

Parâmetros

Parâmetro

Tipo

Descrição

experiment_id

str ou None

ID do experimento MLflow associado ao monitor

experiment_name

str ou None

Nome do experimento MLflow associado ao monitor

Exemplo

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

Classes de configuração

Configuração do pacote de avaliações

Configuração de um conjunto de avaliações a serem executadas em traços de um aplicativo GenAI.

Python
# 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

Atributos

Atributo

Tipo

Descrição

sample

float ou None

Taxa de amostragem global entre 0,0 (exclusiva) e 1,0 (inclusive). Avaliações individuais podem substituir isso.

paused

bool ou None

Se o monitoramento é pausa

assessments

list[AssessmentConfig] ou None

Lista de avaliações para execução em rastros

Métodos

de_dict

Cria um AssessmentsSuiteConfig a partir de uma representação de dicionário.

Python
@classmethod
def from_dict(cls, data: dict) -> AssessmentsSuiteConfig
get_guidelines_judge

Retorna o primeiro GuidelinesJudge da lista de avaliações ou Nenhum se não for encontrado.

Python
def get_guidelines_judge(self) -> GuidelinesJudge | None

Exemplo

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

Construído em Judge

Configuração para um juiz integrado a ser executado em traços.

Python
# 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

Atributos

Atributo

Tipo

Descrição

name

str

Nome do juiz integrado. Deve ser um dos seguintes: "safety", "groundedness", "relevance_to_query", "chunk_relevance"

sample_rate

float ou None

Taxa de amostragem de substituição opcional para esse juiz específico (0,0 a 1,0)

Juízes integrados disponíveis

  • safety - Detecta conteúdo nocivo ou tóxico nas respostas
  • groundedness - Avalia se as respostas são baseadas no contexto recuperado (aplicativos RAG)
  • relevance_to_query - Verifica se as respostas atendem à solicitação do usuário
  • chunk_relevance - Avalia a relevância de cada pedaço recuperado (aplicativos RAG)

Juiz de Diretrizes

Configuração para um juiz de aderência às diretrizes para avaliar regras comerciais personalizadas.

Python
# 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

Atributos

Atributo

Tipo

Descrição

guidelines

dict[str, list[str]]

Dicionário mapeando nomes de diretrizes para listas de descrições de diretrizes

sample_rate

float ou None

Taxa de amostragem de substituição opcional para este juiz (0,0 a 1,0)

Exemplo

Python
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 externo

Representa um monitor para um aplicativo GenAI servido fora do Databricks.

Python
@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

Atributos

Atributo

Tipo

Descrição

experiment_id

str

ID do experimento MLflow associado a esse monitor

assessments_config

AssessmentsSuiteConfig

Configuração para avaliações em execução

trace_archive_table

str ou None

Tabela do Unity Catalog onde os rastros são arquivados

monitoring_page_url

str

URL para os resultados do monitoramento view na UI MLflow

Próximas etapas

Esse artigo foi útil?