Pular para o conteúdo principal

Preencha os vestígios históricos com marcadores.

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.

É possível aplicar retroativamente avaliadores novos ou atualizados a registros históricos. Isso é útil quando você adiciona um novo avaliador e deseja avaliar dados de produção anteriores, ou quando atualiza um avaliador existente e deseja reavaliar rastreamentos anteriores com a nova configuração.

Pré-requisitos

  • Os marcadores devem estar registrados e em funcionamento antes de poderem ser usados para preenchimento de vagas.
  • Você precisa dos nomes dos avaliadores ou de objetos BackfillScorerConfig para especificar quais avaliadores devem ser aplicados.

Preencher dados recentes

Para preencher apenas os registros recentes, especifique um start_time relativo à data atual:

Python
from datetime import datetime, timedelta

# Backfill last week's data with higher sample rates
one_week_ago = datetime.now() - timedelta(days=7)

job_id = backfill_scorers(
scorers=[
BackfillScorerConfig(scorer=safety_judge, sample_rate=0.8),
BackfillScorerConfig(scorer=response_length, sample_rate=0.9)
],
start_time=one_week_ago
)

Reaterro com taxas de amostragem e intervalo de tempo personalizados

Para aplicar avaliadores com taxas de amostragem diferentes da configuração atual ou para limitar o preenchimento a um intervalo de tempo específico, use BackfillScorerConfig:

Python
from databricks.agents.scorers import backfill_scorers, BackfillScorerConfig
from datetime import datetime
from mlflow.genai.scorers import Safety, scorer, ScorerSamplingConfig

safety_judge = Safety()
safety_judge = safety_judge.register(name="safety_check")
safety_judge = safety_judge.start(sampling_config=ScorerSamplingConfig(sample_rate=0.5))

@scorer(aggregations=["mean", "min", "max"])
def response_length(outputs):
"""Measure response length in characters"""
return len(outputs)

response_length = response_length.register(name="response_length")
response_length = response_length.start(sampling_config=ScorerSamplingConfig(sample_rate=0.5))

# Define custom sample rates for backfill
custom_scorers = [
BackfillScorerConfig(scorer=safety_judge, sample_rate=0.8),
BackfillScorerConfig(scorer=response_length, sample_rate=0.9)
]

job_id = backfill_scorers(
experiment_id=YOUR_EXPERIMENT_ID,
scorers=custom_scorers,
start_time=datetime(2024, 6, 1),
end_time=datetime(2024, 6, 30)
)

Preenchimento retroativo usando taxas de amostragem atuais

Para aplicar avaliadores registrados a registros históricos usando sua configuração atual de taxa de amostragem:

Python
from databricks.agents.scorers import backfill_scorers
from mlflow.genai.scorers import Safety, scorer, ScorerSamplingConfig

safety_judge = Safety()
safety_judge = safety_judge.register(name="safety_check")
safety_judge = safety_judge.start(sampling_config=ScorerSamplingConfig(sample_rate=0.5))

@scorer(aggregations=["mean", "min", "max"])
def response_length(outputs):
"""Measure response length in characters"""
return len(outputs)

response_length = response_length.register(name="response_length")
response_length = response_length.start(sampling_config=ScorerSamplingConfig(sample_rate=0.5))

# Use existing sample rates for specified scorers
job_id = backfill_scorers(
scorers=["safety_check", "response_length"]
)

Melhores práticas

  • Comece devagar. Comece com intervalos de tempo menores para estimar a duração do trabalho e a utilização dos recursos.
  • Utilize taxas de amostragem apropriadas. Considere as implicações de custo e tempo do uso de altas taxas de amostragem em grandes conjuntos de dados históricos.

Solução de problemas

"O avaliador programado 'X' não foi encontrado no experimento"

  • Certifique-se de que o nome do avaliador corresponda a um avaliador registrado em seu experimento.
  • Verifique os marcadores disponíveis usando o método list_scorers() .

Próximos passos