Aller au contenu principal

Gérer les scorers de production

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.

Après avoir configuré le monitoring de production, vous pouvez gérer vos scorers tout au long de leur cycle de vie. Cette page explique comment lister, mettre à jour, arrêter, redémarrer et supprimer des scorers.

Pour la référence complète des paramètres d'API, consultez la référence de l'API de gestion du cycle de vie Scorer.

Cycle de vie du Scorer

Les cycles de vie des scoreurs sont centrés sur les expérimentations MLflow. Les évaluateurs sont immuables : chaque opération de cycle de vie renvoie une nouvelle instance d’évaluateur au lieu de modifier l’original.

État

Description

API

Non enregistré

La fonction de score est définie, mais inconnue du serveur.

Enregistré

L'évaluateur est enregistré dans l'expérience MLflow active.

.register()

Actif

L'évaluateur s'exécute avec un taux d'échantillonnage > 0.

.start()

Arrêté

L'évaluateur est enregistré mais non exécuté (taux d'échantillonnage = 0).

.stop()

Supprimé

Le marqueur a été supprimé du serveur et n'est plus associé à l'experimentation.

delete_scorer()

État

Description

API

Non enregistré

La fonction de score est définie, mais inconnue du serveur.

Enregistré

L'évaluateur est enregistré dans l'expérience MLflow active.

.register()

Actif

L'évaluateur s'exécute avec un taux d'échantillonnage > 0.

.start()

Arrêté

L'évaluateur est enregistré mais non exécuté (taux d'échantillonnage = 0).

.stop()

Supprimé

Le marqueur a été supprimé du serveur et n'est plus associé à l'experimentation.

delete_scorer()

Exemple de cycle de vie

L'exemple suivant illustre un évaluateur passant par tous les états du cycle de vie :

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

Gérer les scoreurs

Les APIs suivantes sont disponibles pour gérer les évaluateurs.

API

Description

Exemple

list_scorers()

Répertoriez tous les évaluateurs enregistrés pour l'Experimentation actuelle.

Lister les évaluateurs

get_scorer()

Récupérer un évaluateur enregistré par son nom.

Obtenir et mettre à jour un évaluateur

Scorer.update()

Modifiez la configuration d’échantillonnage d’un évaluateur actif. C'est une opération immuable.

Obtenir et mettre à jour un évaluateur

backfill_scorer()

Appliquer rétroactivement des métriques nouvelles ou mises à jour aux traces historiques.

Rétroremplir les traces historiques avec des évaluateurs

delete_scorer()

Supprimer un évaluateur enregistré par nom.

Arrêter et supprimer les évaluateurs

API

Description

Exemple

list_scorers()

Répertoriez tous les évaluateurs enregistrés pour l'Experimentation actuelle.

Lister les évaluateurs

get_scorer()

Récupérer un évaluateur enregistré par son nom.

Obtenir et mettre à jour un évaluateur

Scorer.update()

Modifiez la configuration d’échantillonnage d’un évaluateur actif. C'est une opération immuable.

Obtenir et mettre à jour un évaluateur

backfill_scorer()

Appliquer rétroactivement des métriques nouvelles ou mises à jour aux traces historiques.

Rétroremplir les traces historiques avec des évaluateurs

delete_scorer()

Supprimer un évaluateur enregistré par nom.

Arrêter et supprimer les évaluateurs

Liste des évaluateurs

Pour afficher tous les évaluateurs enregistrés pour votre expérimentation :

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

Obtenir et mettre à jour un évaluateur

Utilisez get_scorer() pour récupérer un évaluateur par son nom, puis update() pour modifier sa configuration. Puisque les évaluateurs sont immuables, update() renvoie une nouvelle instance.

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

Arrêter et supprimer les évaluateurs

L'arrêt d'un évaluateur définit son taux d'échantillonnage à 0 mais le maintient enregistré. La suppression d'un évaluateur le supprime entièrement du serveur.

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)

Mises à jour immuables

Les évaluateurs, y compris les Juges LLM, sont des objets immuables. Lorsque vous mettez à jour un évaluateur, une copie mise à jour est créée plutôt que de modifier l'original. Cette immuabilité permet de garantir que les évaluateurs destinés à la production ne sont pas modifiés accidentellement.

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

Bonnes pratiques

  • Vérifiez l’état de l’évaluateur avant les Opérations à l’aide de sample_rate.
  • Utilisez le modèle immuable. Affectez les résultats de .start(), .update(), .stop() à des variables.
  • Comprenez la différence entre .stop() (conserve l'enregistrement) et delete_scorer() (supprime entièrement).

Ressources supplémentaires