avaliadores de produção
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. | |
Ativas | O Scorer está sendo executado com uma taxa de amostragem > 0. | |
Parado | O sistema de pontuação está registrado, mas não está em execução (taxa de amostragem = 0). | |
Excluído | O responsável pela avaliação foi removido do servidor e não está mais associado ao experimento. |
Exemplo de ciclo de vida
O exemplo a seguir demonstra um avaliador percorrendo todos os estados do ciclo de vida:
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 |
|---|---|---|
Liste todos os avaliadores registrados para o experimento atual. | ||
Recupere o nome de um avaliador registrado. | ||
Modifique a configuração de amostragem de um avaliador ativo. Esta é uma operação imutável. | ||
Aplicar retroativamente métricas novas ou atualizadas a registros históricos. | ||
Excluir um avaliador registrado pelo nome. |
Lista de pontuadores
Para view todos os avaliadores registrados para o seu experimento:
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.
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.
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.
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) edelete_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.
@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.
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 rastreamentosample_rate(float): Fraction of traces to evaluate (0,0-1,0). Default: 1,0filter_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.
# 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 rastreamentosample_rate(float): Fraction of traces to evaluate (0,0-1,0). Default: 1,0filter_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.
# 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.
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.
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.
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.
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.
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.
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,0filter_string(str, opcional): filtro de rastreamento do MLflow
Preenchimento retroativo de métrica
backfill_scorers()
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 atualscorers(Union[List[BackfillScorerConfig], List[str]], required) : Lista de objetosBackfillScorerConfigcom 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 passarend_time, o preenchimento retroativo começará um dia antesend_timeend_time(datetime, opcional) : Hora de término para a avaliação de preenchimento retroativo. Se você omitir isso, mas passarstart_time, o preenchimento retroativo será executado até o horário atual
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