Monitoramento da produção
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:
- Execução automática - execução de um trabalho em segundo plano a cada 15 minutos (após a configuração inicial)
- Avaliação do avaliador - Cada avaliador configurado é executado em uma amostra de seus traços de produção
- Anexo de feedback - Os resultados são anexados como feedback a cada rastreamento avaliado
- 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.
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.
# 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 |
---|---|---|
|
| Nome do catálogo do Unity Catalog onde a tabela de arquivo de rastreamento será criada |
|
| Nome do esquema do Unity Catalog onde a tabela de arquivo de rastreamento será criada |
|
| Configuração do conjunto de avaliações para execução em traces |
|
| ID do experimento MLflow a ser associado ao monitor. padrão para o experimento ativo no momento |
|
| 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
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.
# 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 |
---|---|---|
|
| ID do experimento MLflow associado ao monitor |
|
| 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 fornecidosNoMonitorFoundError
- Quando nenhum monitor é encontrado para o experimento em questão
Exemplo
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.
# 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 |
---|---|---|
|
| ID do experimento MLflow associado ao monitor |
|
| Nome do experimento MLflow associado ao monitor |
|
| 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.
# 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 |
---|---|---|
|
| ID do experimento MLflow associado ao monitor |
|
| Nome do experimento MLflow associado ao monitor |
Exemplo
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.
# 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 |
---|---|---|
|
| Taxa de amostragem global entre 0,0 (exclusiva) e 1,0 (inclusive). Avaliações individuais podem substituir isso. |
|
| Se o monitoramento é pausa |
|
| 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.
@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.
def get_guidelines_judge(self) -> GuidelinesJudge | None
Exemplo
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.
# 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 |
---|---|---|
|
| Nome do juiz integrado. Deve ser um dos seguintes: |
|
| 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 respostasgroundedness
- Avalia se as respostas são baseadas no contexto recuperado (aplicativos RAG)relevance_to_query
- Verifica se as respostas atendem à solicitação do usuáriochunk_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.
# 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 |
---|---|---|
|
| Dicionário mapeando nomes de diretrizes para listas de descrições de diretrizes |
|
| Taxa de amostragem de substituição opcional para este juiz (0,0 a 1,0) |
Exemplo
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.
@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 |
---|---|---|
|
| ID do experimento MLflow associado a esse monitor |
|
| Configuração para avaliações em execução |
|
| Tabela do Unity Catalog onde os rastros são arquivados |
|
| URL para os resultados do monitoramento view na UI MLflow |
Próximas etapas
- Configurar o monitoramento da produção - Guia passo a passo para ativar o monitoramento
- Criar um conjunto de dados de avaliação - Usar os resultados do monitoramento para melhorar a qualidade
- Referência predefinida de avaliadores - Juízes integrados disponíveis