Aller au contenu principal

Remplir les traces historiques avec des évaluateurs

info

Bêta

Cette fonctionnalité est en Bêta. Les administrateurs du Workspace peuvent contrôler l'accès à cette fonctionnalité à partir de la page Previews . Consultez Gérer les aperçus Databricks.

Vous pouvez appliquer rétroactivement des évaluateurs nouveaux ou mis à jour aux traces historiques. Ceci est utile lorsque vous ajoutez un nouvel évaluateur et que vous souhaitez évaluer les données de production passées, ou lorsque vous mettez à jour un évaluateur existant et que vous souhaitez réévaluer les traces précédentes avec la nouvelle configuration.

Prérequis

  • Les évaluateurs doivent être enregistrés et démarrés avant de pouvoir être utilisés pour le remplissage historique.
  • Vous avez besoin des noms des scorers ou des objets BackfillScorerConfig pour spécifier les scorers à appliquer.

Remplissage des données récentes

Pour ne relancer que les traces récentes, spécifiez une start_time par rapport à la date actuelle :

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
)

Remplissage avec des taux d'échantillonnage et une plage horaire personnalisés

Pour appliquer des évaluateurs avec des taux d'échantillonnage différents de leur configuration actuelle, ou pour limiter le remplissage à une plage horaire spécifique, utilisez 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)
)

Rétroremplissage à l’aide des taux d'échantillonnage actuels

Pour appliquer les évaluateurs enregistrés aux traces historiques en utilisant leur configuration de taux d'échantillonnage actuelle :

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

Bonnes pratiques

  • Start petit. Commencez par des plages horaires plus petites pour estimer la durée des Jobs et l'utilisation des Ressources.
  • Utilisez des taux d'échantillonnage appropriés. Tenez compte des implications en termes de coûts et de temps de l'utilisation de taux d'échantillonnage élevés sur de grands datasets historiques.

Dépannage

« Scorer programmé « X » introuvable dans l'expérimentation »

  • Assurez-vous que le nom de l'évaluateur correspond à un évaluateur enregistré dans votre expérimentation.
  • Vérifiez les évaluateurs disponibles à l'aide de la méthode list_scorers().

Ressources supplémentaires