Référence de l'API de gestion du cycle de vie des Scorer
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.
Les méthodes de cycle de vie des évaluateurs MLflow (enregistrement, start, mise à jour et arrêt) contrôlent les évaluateurs qui exécutent une évaluation continue de la qualité sur les traces de production. Cette page est la référence de l'API pour ces méthodes. Pour un guide basé sur les tâches concernant le monitoring en production sur Databricks, consultez Surveiller les applications GenAI en production.
Méthodes d'instance de scorer
Scorer.register()
**Référence d'API :** Scorer.register
Enregistrez une fonction d’évaluateur personnalisé auprès du serveur. Utilisé pour les évaluateurs créés avec le @scorer décorateur.
@scorer
def custom_scorer(outputs):
return len(str(outputs.get("response", "")))
# Register the custom scorer
my_scorer = custom_scorer.register(name="response_length")
Paramètres :
name(str) : nom unique pour le scoreur au sein de l'Expérimentation. Prend par default le nom existant du scoreur.
Retourne : nouvelle instance avec enregistrement du Scorer serveur
Scorer.start()
**Référence d'API :** Scorer.start
Démarrez l'évaluation en ligne avec la configuration d'échantillonnage spécifiée.
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'"
),
)
Paramètres :
name(str) : Nom de l’évaluateur. Si non fourni, il prend par default le nom actuel de l'évaluateur.sampling_config(ScorerSamplingConfig) : Configuration de l'échantillonnage de tracesample_rate(float) : Fraction des traces à évaluer (0,0-1,0). default : 1,0filter_string(str, facultatif) : filtre compatible MLflow pour la sélection des traces
Retourne : Nouvelle instance Scorer à l'état actif
Scorer.update()
**Référence d'API :** Scorer.update
Modifiez la configuration d’échantillonnage d’un évaluateur actif. C'est une opération immuable.
# 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
Paramètres :
name(str) : Nom de l’évaluateur. Si non fourni, il prend par default le nom actuel de l'évaluateur.sampling_config(ScorerSamplingConfig) : Configuration de l'échantillonnage de tracesample_rate(float) : Fraction des traces à évaluer (0,0-1,0). default : 1,0filter_string(str, facultatif) : filtre compatible MLflow pour la sélection des traces
Retourne : Nouvelle instance Scorer avec une configuration mise à jour
Scorer.stop()
**Référence d'API :** Scorer.stop
Arrêtez l'évaluation en ligne en définissant le taux d'échantillonnage sur 0. L'évaluateur reste enregistré.
# Stop monitoring but keep scorer registered
stopped_scorer = active_scorer.stop()
print(f"Sample rate: {stopped_scorer.sample_rate}") # 0
Paramètres :
name(str) : Nom de l’évaluateur. Si non fourni, il prend par default le nom actuel de l'évaluateur.
Renvoie : nouvelle instance Scorer avec sample_rate=0
Fonctions de registre de l'évaluateur
mlflow.genai.scorers.get_scorer()
**Référence d'API :** get_scorer
Récupérer un évaluateur enregistré par son nom.
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}")
Paramètres :
name(str) : nom de l'évaluateur enregistré
Retourne : une Scorer instance
mlflow.genai.scorers.list_scorers()
**Référence d'API :** list_scorers
Répertoriez tous les évaluateurs enregistrés pour l'Experimentation actuelle.
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}")
Renvoie : Liste d'Scorer instances
mlflow.genai.scorers.delete_scorer()
**Référence d'API :** delete_scorer
Supprimer un évaluateur enregistré par nom.
from mlflow.genai.scorers import delete_scorer
# Delete existing scorer by name
delete_scorer(name="safety_monitor")
Paramètres :
name(str) : nom de l'évaluateur enregistré
Retourne : Aucun
Propriétés du scorer
Scorer.sample_rate
Taux d'échantillonnage actuel (0,0-1,0). Renvoie 0 pour les évaluateurs arrêtés.
print(f"Sampling {scorer.sample_rate * 100}% of traces")
Scorer.filter_string
Chaîne de filtre de trace actuelle pour la sélection de trace MLflow.
print(f"Filter: {scorer.filter_string}")
Classes de configuration
ScorerSamplingConfig
**Référence d'API :** ScorerSamplingConfig
Classe de données qui contient la configuration d'échantillonnage pour un évaluateur.
from mlflow.genai import ScorerSamplingConfig
config = ScorerSamplingConfig(
sample_rate=0.5,
filter_string="trace.status = 'OK'"
)
Attributs :
sample_rate(flottant, facultatif) : Taux d'échantillonnage entre 0,0 et 1,0filter_string(str, optionnel) : filtre de trace MLflow
Remplissage de métrique
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)
)
Paramètres :
Tous les paramètres sont de type mot-clé uniquement.
experiment_id(str, facultatif) : l'ID de l'expérimentation à remplir. Si non fourni, utilise le contexte d'expérimentation actuel.scorers(Union[List[BackfillScorerConfig], List[str]], obligatoire) : Liste d'objetsBackfillScorerConfigavec des taux d'échantillonnage personnalisés (si sample_rate n'est pas fourni dans BackfillScorerConfig, la valeur par default est le taux d'échantillonnage de l'évaluateur enregistré), OU liste de noms d'évaluateurs (chaînes de caractères) pour utiliser les taux d'échantillonnage actuels des évaluateurs planifiés de l'Expérimentation. Ne peut pas être vide.start_time(datetime, facultatif) : heure de start pour l’évaluation du remplissage. Si vous omettez ceci mais transmettezend_time, le backfill start un jour avantend_timeend_time(datetime, facultatif) : heure de fin pour l’évaluation du remplissage. Si vous omettez ceci mais transmettezstart_time, le remplissage s’exécute jusqu’à l’heure actuelle
Si vous omettez à la fois start_time et end_time, le remplissage ne couvre que les sept derniers jours, et non l’historique complet des traces. L’omission d’une seule borne applique une valeur default différente, comme décrit ci-dessus. Pour évaluer des traces plus anciennes, transmettez un start_time explicite.
Retourne : l'ID du Job de remplissage créé pour le suivi de l'état (chaîne de caractères)