Pular para o conteúdo principal

avaliadores de produção

info

Beta

Este recurso está em versão Beta. Os administradores do espaço de trabalho podem controlar o acesso a este recurso na página de Pré-visualizações . Veja as prévias do Gerenciador Databricks.

Após configurar o monitoramento de produção, você poderá gerenciar seus avaliadores ao longo de todo o seu ciclo de vida. Esta página explica como listar, atualizar, parar, reiniciar e excluir avaliadores.

Para obter a referência completa de parâmetros da API, consulte Gerenciar pontuadores de produção.

Ciclo de vida do marcador​

Os ciclos de vida do avaliador são centrados nos experimentos MLflow. Os avaliadores são imutáveis : cada operação de ciclo de vida retorna uma nova instância de avaliador em vez de modificar o original.

Status

Descrição

API

Não registrado

A função de pontuação está definida, mas não é conhecida pelo servidor.

Registrado

O avaliador está registrado no experimento MLflow ativo.

.register()

Ativas

O Scorer está sendo executado com uma taxa de amostragem > 0.

.start()

Parado

O sistema de pontuação está registrado, mas não está em execução (taxa de amostragem = 0).

.stop()

Excluído

O responsável pela avaliação foi removido do servidor e não está mais associado ao experimento.

delete_scorer()

Status

Descrição

API

Não registrado

A função de pontuação está definida, mas não é conhecida pelo servidor.

Registrado

O avaliador está registrado no experimento MLflow ativo.

.register()

Ativas

O Scorer está sendo executado com uma taxa de amostragem > 0.

.start()

Parado

O sistema de pontuação está registrado, mas não está em execução (taxa de amostragem = 0).

.stop()

Excluído

O responsável pela avaliação foi removido do servidor e não está mais associado ao experimento.

delete_scorer()

Exemplo de ciclo de vida​

O exemplo a seguir demonstra um avaliador percorrendo todos os estados do ciclo de vida:

Python
from mlflow.genai.scorers import Safety, scorer, ScorerSamplingConfig, delete_scorer

# Register → Start → Update → Stop → Delete
safety_judge = Safety().register(name="safety_check")
safety_judge = safety_judge.start(
sampling_config=ScorerSamplingConfig(sample_rate=1.0),
)
safety_judge = safety_judge.update(
sampling_config=ScorerSamplingConfig(sample_rate=0.8),
)
safety_judge = safety_judge.stop()
delete_scorer(name="safety_check")

marcadores​

As seguintes APIs estão disponíveis para gerenciar os avaliadores.

API

Descrição

Exemplo

list_scorers()

Liste todos os avaliadores registrados para o experimento atual.

Lista de pontuadores

get_scorer()

Recupere o nome de um avaliador registrado.

Scorer.update()

Scorer.update()

Modifique a configuração de amostragem de um avaliador ativo. Esta é uma operação imutável.

Scorer.update()

backfill_scorer()

Aplicar retroativamente métricas novas ou atualizadas a registros históricos.

Preencha os vestígios históricos com marcadores.

delete_scorer()

Excluir um avaliador registrado pelo nome.

Pare e exclua os marcadores

API

Descrição

Exemplo

list_scorers()

Liste todos os avaliadores registrados para o experimento atual.

Lista de pontuadores

get_scorer()

Recupere o nome de um avaliador registrado.

Scorer.update()

Scorer.update()

Modifique a configuração de amostragem de um avaliador ativo. Esta é uma operação imutável.

Scorer.update()

backfill_scorer()

Aplicar retroativamente métricas novas ou atualizadas a registros históricos.

Preencha os vestígios históricos com marcadores.

delete_scorer()

Excluir um avaliador registrado pelo nome.

Pare e exclua os marcadores

Lista de pontuadores​

Para view todos os avaliadores registrados para o seu experimento:

Python
from mlflow.genai.scorers import list_scorers

# List all registered scorers
scorers = list_scorers()
for scorer in scorers:
print(f"Name: {scorer.name}")
print(f"Sample rate: {scorer.sample_rate}")
print(f"Filter: {scorer.filter_string}")
print("---")

Obtenha e atualize um marcador.​

Use get_scorer() para recuperar um avaliador pelo nome e, em seguida, update() para modificar sua configuração. Como os marcadores são imutáveis, update() retorna uma nova instância.

Python
from mlflow.genai.scorers import get_scorer, ScorerSamplingConfig

# Get existing scorer and update its configuration (immutable operation)
safety_judge = get_scorer(name="safety_monitor")
updated_judge = safety_judge.update(sampling_config=ScorerSamplingConfig(sample_rate=0.8))

# The original scorer remains unchanged; update() returns a new scorer instance
print(f"Original sample rate: {safety_judge.sample_rate}") # Original rate
print(f"Updated sample rate: {updated_judge.sample_rate}") # New rate

Pare e exclua os marcadores​

Ao interromper um marcador, sua taxa de amostragem é zerada, mas ele permanece registrado. Excluir um marcador o remove completamente do servidor.

Python
from mlflow.genai.scorers import get_scorer, delete_scorer, ScorerSamplingConfig

# Get existing scorer
databricks_scorer = get_scorer(name="databricks_mentions")

# Stop monitoring (sets sample_rate to 0, keeps scorer registered)
stopped_scorer = databricks_scorer.stop()
print(f"Sample rate after stop: {stopped_scorer.sample_rate}") # 0

# Restart monitoring from a stopped scorer
restarted_scorer = stopped_scorer.start(sampling_config=ScorerSamplingConfig(sample_rate=0.5))

# Or remove scorer entirely from the server
delete_scorer(name=databricks_scorer.name)

Atualizações imutáveis​

Os avaliadores, incluindo os juízes do LLM, são objetos imutáveis. Ao atualizar um marcador de pontuação, uma cópia atualizada é criada em vez de modificar o original. Essa imutabilidade ajuda a garantir que os marcadores destinados à produção não sejam modificados acidentalmente.

Python
from mlflow.genai.scorers import Safety, ScorerSamplingConfig

original_judge = Safety().register(name="safety")
original_judge = original_judge.start(
sampling_config=ScorerSamplingConfig(sample_rate=0.3),
)

# Update returns new instance
updated_judge = original_judge.update(
sampling_config=ScorerSamplingConfig(sample_rate=0.8),
)

# Original remains unchanged
print(f"Original: {original_judge.sample_rate}") # 0.3
print(f"Updated: {updated_judge.sample_rate}") # 0.8

Melhores práticas​

  • Verifique o estado do avaliador antes das operações usando sample_rate.
  • Utilize o padrão imutável. Atribua os resultados de .start(), .update(), .stop() às variáveis.
  • Entenda a diferença entre .stop() (preserva o registro) e delete_scorer() (remove completamente).

Referência de API do ciclo de vida do Scorer​

Métodos de instância do avaliador​

Scorer.register()​

Referência de API: Scorer.register

Registre uma função de pontuador personalizada no servidor. Usado para pontuadores criados com o decorador @scorer.

Python
@scorer
def custom_scorer(outputs):
return len(str(outputs.get("response", "")))

# Register the custom scorer
my_scorer = custom_scorer.register(name="response_length")

Parâmetros:

  • name (str): Nome exclusivo para o avaliador dentro do experimento. Default para o nome existente do avaliador.

Retorna: nova instância Scorer com registro do servidor

Scorer.start()​

Referência de API: Scorer.start

Inicie a avaliação online com a configuração de amostragem especificada.

Python
from mlflow.genai.scorers import ScorerSamplingConfig

# Start monitoring with sampling
active_scorer = registered_scorer.start(
sampling_config=ScorerSamplingConfig(
sample_rate=0.5,
filter_string="trace.status = 'OK'"
),
)

Parâmetros:

  • name (str): Nome do avaliador. Se não for fornecido, assume o nome atual do avaliador como default.
  • sampling_config (ScorerSamplingConfig): Configuração de amostragem de rastreamento
    • sample_rate (float): Fraction of traces to evaluate (0,0-1,0). Default: 1,0
    • filter_string (str, opcional): filtro compatível com o MLflow para seleção de rastreamento

Retorna: Nova instância Scorer no estado ativo

Scorer.update()​

Referência de API: Scorer.update

Modifique a configuração de amostragem de um avaliador ativo. Esta é uma operação imutável.

Python
# Update sampling rate (returns new scorer instance)
updated_scorer = active_scorer.update(
sampling_config=ScorerSamplingConfig(
sample_rate=0.8,
),
)

# Original scorer remains unchanged
print(f"Original: {active_scorer.sample_rate}") # 0.5
print(f"Updated: {updated_scorer.sample_rate}") # 0.8

Parâmetros:

  • name (str): Nome do avaliador. Se não for fornecido, assume o nome atual do avaliador como default.
  • sampling_config (ScorerSamplingConfig): Configuração de amostragem de rastreamento
    • sample_rate (float): Fraction of traces to evaluate (0,0-1,0). Default: 1,0
    • filter_string (str, opcional): filtro compatível com o MLflow para seleção de rastreamento

Retorna: Nova instância Scorer com configuração atualizada

Scorer.stop()​

Referência de API: Scorer.stop

Interrompa a avaliação online definindo a taxa de amostra como 0. Mantém o avaliador registrado.

Python
# Stop monitoring but keep scorer registered
stopped_scorer = active_scorer.stop()
print(f"Sample rate: {stopped_scorer.sample_rate}") # 0

Parâmetros:

  • name (str): Nome do avaliador. Se não for fornecido, assume o nome atual do avaliador como default.

Returns: New Scorer instance with sample_rate=0

Funções do registro de avaliadores​

mlflow.genai.scorers.get_scorer()​

Referência de API: get_scorer

Recupere o nome de um avaliador registrado.

Python
from mlflow.genai.scorers import get_scorer

# Get existing scorer by name
existing_scorer = get_scorer(name="safety_monitor")
print(f"Current sample rate: {existing_scorer.sample_rate}")

Parâmetros:

  • name (str): nome do avaliador registrado

Returns: Scorer instância

mlflow.genai.scorers.list_scorers()​

Referência de API: list_scorers

Liste todos os avaliadores registrados para o experimento atual.

Python
from mlflow.genai.scorers import list_scorers

# List all registered scorers
all_scorers = list_scorers()
for scorer in all_scorers:
print(f"Name: {scorer._server_name}")
print(f"Sample rate: {scorer.sample_rate}")
print(f"Filter: {scorer.filter_string}")

Retornos: lista de instâncias de Scorer

mlflow.genai.scorers.delete_scorer()​

Referência de API: delete_scorer

Excluir um avaliador registrado pelo nome.

Python
from mlflow.genai.scorers import delete_scorer

# Delete existing scorer by name
delete_scorer(name="safety_monitor")

Parâmetros:

  • name (str): nome do avaliador registrado

Returns: None

Propriedades do avaliador​

Scorer.sample_rate​

Taxa de amostragem atual (0,0–1,0). Retorna 0 para avaliadores parados.

Python
print(f"Sampling {scorer.sample_rate * 100}% of traces")

Scorer.filter_string​

Cadeia de caracteres de filtro de rastreamento atual para seleção de rastreamento do MLflow.

Python
print(f"Filter: {scorer.filter_string}")

Classes de configuração​

ScorerSamplingConfig​

Referência de API: ScorerSamplingConfig

Classe de dados que contém a configuração de amostragem para um avaliador.

Python
from mlflow.genai.scorers import ScorerSamplingConfig

config = ScorerSamplingConfig(
sample_rate=0.5,
filter_string="trace.status = 'OK'"
)

Atributos:

  • sample_rate (float, opcional): taxa de amostragem entre 0,0 e 1,0
  • filter_string (str, opcional): filtro de rastreamento do MLflow

Preenchimento retroativo de métrica​

backfill_scorers()​

Python
from databricks.agents.scorers import backfill_scorers, BackfillScorerConfig

job_id = backfill_scorers(
experiment_id="your-experiment-id",
scorers=[
BackfillScorerConfig(scorer=safety_scorer, sample_rate=0.8),
BackfillScorerConfig(scorer=response_length, sample_rate=0.9)
],
start_time=datetime(2024, 1, 1),
end_time=datetime(2024, 1, 31)
)

Parâmetros:

Todos os parâmetros aceitam apenas palavras-chave.

  • experiment_id (str, opcional) : o ID do experimento para preenchimento retroativo. Se não for fornecido, usa o contexto do experimento atual
  • scorers (Union[List[BackfillScorerConfig], List[str]], required) : Lista de objetos BackfillScorerConfig com taxas de amostragem personalizadas (se sample_rate não for fornecido em BackfillScorerConfig, usa a taxa de amostragem default do pontuador registrado), OU lista de nomes de pontuadores (strings) para usar as taxas de amostragem atuais dos pontuadores agendados do experimento. Não pode estar vazio.
  • start_time (data/hora, opcional) : Horário de início para a avaliação de preenchimento retroativo. Se você omitir isso, mas passar end_time, o preenchimento retroativo começará um dia antes end_time
  • end_time (datetime, opcional) : Hora de término para a avaliação de preenchimento retroativo. Se você omitir isso, mas passar start_time, o preenchimento retroativo será executado até o horário atual
importante

Se você omitir ambos start_time e end_time, o preenchimento abrangerá apenas os últimos sete dias, e não a história completa do rastreamento. A omissão de apenas um limite aplica um default diferente, conforme descrito acima. Para avaliar rastreamentos mais antigos, passe um start_time explícito.

Returns: Job ID do job de preenchimento retroativo criado para acompanhamento de status (str)

Próximo passo: Receitas de observabilidade de agentes