Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Les éléments indiqués comme (aperçu) dans cet article sont en aperçu public. Cette version préliminaire est fournie sans contrat de niveau de service, et nous la déconseillons pour les charges de travail en production. Certaines fonctionnalités peuvent ne pas être prises en charge ou avoir des fonctionnalités contraintes. Pour plus d’informations, consultez Conditions d'utilisation supplémentaires pour les versions préliminaires de Microsoft Azure.
Générez des requêtes de test individuelles, envoyez-les à une cible de modèle ou d’agent et évaluez les réponses cibles.
Prerequisites
- Remplissez les conditions préalables à l’évaluation cloud et la configuration du client.
- Déploiement de modèle qui prend en charge l’API Réponses pour la génération de requêtes.
- Modèle ou agent cible à évaluer.
Les exemples utilisent le client sdk configuré dans Configurer le client sdk.
Générer des requêtes synthétiques
Utilisez le azure_ai_synthetic_data_gen_preview type de source de données pour générer des requêtes de test synthétiques, les envoyer à un modèle déployé ou un agent Foundry et évaluer les réponses. Utilisez ce scénario lorsque vous n’avez pas de jeu de données de test. Le service génère des requêtes en fonction d’une invite que vous fournissez (et/ou à partir des instructions de l’agent), les exécute sur votre cible et évalue les réponses.
Important
Avant de commencer, effectuez la configuration du client.
Fonctionnement de l’évaluation des données synthétiques
- Le service génère des requêtes synthétiques basées sur votre
promptet sur des fichiers de données initiales facultatifs. - Chaque requête est envoyée à la cible spécifiée (modèle ou agent) pour générer une réponse.
- Les évaluateurs notent chaque réponse à l’aide de la requête et de la réponse générées.
- Les requêtes générées sont stockées en tant que jeu de données dans votre projet pour réutilisation.
Paramètres
| Paramètre | Obligatoire | Description |
|---|---|---|
samples_count |
Oui | Nombre maximal de requêtes de test synthétique à générer. |
model_deployment_name |
Oui | Déploiement de modèle à utiliser pour générer des requêtes synthétiques. Seuls les modèles avec la fonctionnalité d’API Réponses sont pris en charge. Pour plus d’informations sur la disponibilité, consultez la disponibilité de la région de l’API Réponses. Le routeur de modèles n’est pas pris en charge ici ; il ne peut être utilisé que comme cible d’évaluation. |
prompt |
Non | Instructions décrivant le type de requêtes à générer. Facultatif lorsque la cible de l’agent a des instructions configurées. |
output_dataset_name |
Non | Nom du jeu de données de sortie où les requêtes générées sont stockées. Si vous ne fournissez pas de nom, le service en génère un automatiquement. |
sources |
Non | Fichiers de données de départ (par ID de fichier) pour améliorer la pertinence des requêtes générées. Actuellement, un seul fichier est pris en charge. |
Configurer des évaluateurs et des mappages de données
Le générateur de données synthétiques génère des requêtes dans le {{item.query}} champ. L'objectif génère des réponses disponibles dans {{sample.output_text}}. Mappez ces champs à vos évaluateurs :
from azure.ai.projects.models import TestingCriterionAzureAIEvaluator
data_source_config = {"type": "azure_ai_source", "scenario": "synthetic_data_gen_preview"}
testing_criteria = [
TestingCriterionAzureAIEvaluator(
type="azure_ai_evaluator",
name="coherence",
evaluator_name="builtin.coherence",
initialization_parameters={"model": model_deployment_name},
data_mapping={
"query": "{{item.query}}",
"response": "{{sample.output_text}}",
},
),
TestingCriterionAzureAIEvaluator(
type="azure_ai_evaluator",
name="violence",
evaluator_name="builtin.violence",
data_mapping={
"query": "{{item.query}}",
"response": "{{sample.output_text}}",
},
),
]
Créer une évaluation et exécuter
Cible du modèle
Générez des requêtes synthétiques et évaluez un modèle :
eval_object = openai_client.evals.create(
name="Synthetic Data Evaluation",
data_source_config=data_source_config,
testing_criteria=testing_criteria,
)
data_source = {
"type": "azure_ai_synthetic_data_gen_preview",
"item_generation_params": {
"type": "synthetic_data_gen_preview",
"samples_count": 5,
"prompt": "Generate customer service questions about returning defective products",
"model_deployment_name": model_deployment_name,
"output_dataset_name": "my-synthetic-dataset",
},
"target": {
"type": "azure_ai_model",
"model": model_deployment_name,
},
}
eval_run = openai_client.evals.runs.create(
eval_id=eval_object.id,
name="synthetic-data-evaluation",
data_source=data_source,
)
Vous pouvez optionnellement ajouter une commande système pour orienter le comportement du modèle cible. Lorsque vous utilisez input_messages avec la génération de données synthétiques, incluez uniquement les messages ayant le rôle system : le service fournit automatiquement les requêtes générées en tant que messages utilisateur.
data_source = {
"type": "azure_ai_synthetic_data_gen_preview",
"item_generation_params": {
"type": "synthetic_data_gen_preview",
"samples_count": 5,
"prompt": "Generate customer service questions about returning defective products",
"model_deployment_name": model_deployment_name,
},
"target": {
"type": "azure_ai_model",
"model": model_deployment_name,
},
"input_messages": {
"type": "template",
"template": [
{
"type": "message",
"role": "system",
"content": {
"type": "input_text",
"text": "You are a helpful customer service agent. Be empathetic and solution-oriented."
}
}
]
},
}
Cible de l’agent
Générez des requêtes synthétiques et évaluez un agent Foundry :
data_source = {
"type": "azure_ai_synthetic_data_gen_preview",
"item_generation_params": {
"type": "synthetic_data_gen_preview",
"samples_count": 5,
"prompt": "Generate questions about returning defective products",
"model_deployment_name": model_deployment_name,
},
"target": {
"type": "azure_ai_agent",
"name": agent_name,
"version": agent_version,
},
}
eval_run = openai_client.evals.runs.create(
eval_id=eval_object.id,
name="synthetic-agent-evaluation",
data_source=data_source,
)
Pour vérifier si l’opération est terminée et interpréter les résultats, consultez Obtenir les résultats de l’évaluation dans le cloud. La réponse inclut une output_dataset_id propriété qui contient l’ID du jeu de données généré, que vous pouvez utiliser pour récupérer ou réutiliser les données synthétiques.
Pour obtenir des exemples exécutables complets, consultez sample_synthetic_data_agent_evaluation.py et sample_synthetic_data_model_evaluation.py sur GitHub.