Aller au contenu principal

Créer une Expérience Simple

Ce guide vous accompagne dans la création et l'exécution d'une expérience d'évaluation simple dans Evalap.

Créer une Expérience via l'API

Une expérience évalue un modèle sur un jeu de données spécifique en utilisant des métriques définies.

Lors du choix d'un modèle, il existe généralement deux scénarios :

  1. Modèles de fournisseurs (par exemple, OpenAI, Albert) : EvalAP génère des réponses à partir du jeu de données. Le jeu de données doit contenir au moins une colonne query représentant les entrées du modèle.
  2. Modèles personnalisés : Vous générez vous-même les sorties du modèle et les transmettez à l'API pour le calcul des métriques.

Ce guide couvre les deux scénarios.

Sélection des Métriques

Vous devez spécifier quelles métriques calculer pour votre expérience. Vous pouvez explorer les métriques disponibles via l'interface ou l'API.

Une métrique typique pour évaluer les LLM est "LLM-as-a-judge", qui utilise un autre LLM pour évaluer la qualité des réponses. Lorsque vous avez des réponses de référence dans votre jeu de données, vous pouvez utiliser LLM-as-a-judge pour vérifier si la sortie du modèle contient la bonne réponse. Dans EvalAP, la métrique judge_precision remplit cette fonction.

Voici quelques métriques clés offertes par EvalAP :

NameDescriptionTypeRequire
judge_precisionBinary precision of output_true. Returns 1 if the correct answer is contained in the given answerllm[output, output_true, query]
qcm_exactnessBinary equality between output and output_truellm[output, output_true]
biasSee https://docs.confident-ai.com/docs/metrics-introductiondeepeval[output, query]
hallucinationSee https://docs.confident-ai.com/docs/metrics-introductiondeepeval[context, output, query]
contextual_relevancySee https://docs.confident-ai.com/docs/metrics-introductiondeepeval[output, query, retrieval_context]
ocr_v1Levenshtein distance between output and ground-truth markdownocr[output, output_true]
output_lengthNumber of words in the outputops[output]
generation_timeTime taken to generate the answer/outputops[output]
energy_consumptionEnergy consumption (kWh) - Environmental impact calculated by ecologits libraryops[output]
nb_tool_callsNumber of tools called during generationops[output]
info

Consultez la liste complète des métriques depuis la route API v1/metrics.

Lors de la sélection des métriques, assurez-vous que les champs requis correspondent aux colonnes de votre jeu de données. Par exemple, judge_precision nécessite les champs output, output_true et query. Notez que le champ output est généré par EvalAP pendant l'évaluation, il n'a donc pas besoin d'être présent dans votre jeu de données initialement.

Des métriques supplémentaires fournissent des mesures générales comme le temps de génération et la taille de sortie.

Créer une Expérience avec un Fournisseur de Modèle

Voici comment créer une expérience simple évaluant un modèle OpenAI :

import os
import requests

# Replace with your Evalap API endpoint
API_URL = "https://evalap.etalab.gouv.fr/v1"

# Replace with your API key or authentication token (or None if launch locally)
HEADERS = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}

# Design the experiment
experiment = {
"name": "my_experiment_name",
"dataset": "my_dataset", # name identifier of the dataset
"model": {"name": "gpt-4o", "base_url": "https://api.openai.com/v1", "api_key": os.getenv("OPENAI_API_KEY")},
"metrics": ["judge_precision", "generation_time", "output_length"],
}

# Run the experiment
response = requests.post(f'{API_URL}/experiment', json=experiment, headers=HEADERS)
experiment_id = response.json()["id"]
print(f"Experiment {experiment_id} is running")
info

Le schéma du modèle prend en charge le passage de paramètres d'échantillonnage, comme la température avec "model": {..., "sampling_params": {"temperature": 0.2}}, ou des paramètres supplémentaires pris en charge par l'API Openai utilisée. Consultez le point de terminaison de création d'expérience pour la liste complète des paramètres pris en charge.

Créer une Expérience avec un Modèle Personnalisé

Pour le second scénario, où vous avez vos propres sorties de modèle, vous devrez fournir ces sorties dans votre appel API. Voici comment créer une expérience avec un modèle personnalisé :

import os
import requests

# Replace with your Evalap API endpoint
API_URL = "https://evalap.etalab.gouv.fr/v1"

# Replace with your API key or authentication token (or None if launch locally)
HEADERS = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}

# Design the experiment with a custom model
experiment = {
"name": "my_custom_model_experiment",
"dataset": "my_dataset", # name identifier of the dataset
"model": {
"aliased_name": "my-custom-model", # A name to identify this model
"output": ["answer1", "answer2", "answer3"] # Array of model outputs corresponding to dataset rows
},
"metrics": ["judge_precision", "generation_time", "output_length"],
}

# Run the experiment
response = requests.post(f'{API_URL}/experiment', json=experiment, headers=HEADERS)
experiment_id = response.json()["id"]
print(f"Experiment {experiment_id} is running")

Dans ce scénario, le schéma du modèle est différent :

FieldTypeDescription
outputArray of stringsThe sequence of answers generated by your model, ordered to match the 'rows' of the dataset you are evaluating
aliased_namestringA name to identify this model. Different from the 'name' parameter used with provider models

Après avoir exécuté l'expérience, l'API renvoie une réponse de succès si elle démarre sans erreurs. EvalAP gère les expériences de manière asynchrone, et vous pouvez vérifier l'état et les résultats via l'interface ou en interrogeant directement l'API.

Consulter les Résultats et la Progression de l'Expérience

Après avoir lancé une expérience :

  1. Naviguez vers la page de détails de l'expérience
  2. Consultez les résultats sommaires montrant :
    • Les métriques de performance globales pour chaque modèle
    • Un tableau de support affichant le nombre d'expériences utilisées pour le calcul des moyennes
  3. Explorez les résultats détaillés :
    • Nombre de tentatives réussies et échouées par expérience
    • Résultats détaillés pour chaque expérience
Next Steps: Experiment Sets

Après avoir créé votre première expérience, envisagez d'utiliser les Ensembles d'Expériences pour comparer plusieurs modèles ou configurations. Les ensembles d'expériences vous permettent d'exécuter des expériences connexes ensemble, facilitant ainsi les comparaisons significatives et les conclusions. Ils sont essentiels pour des évaluations robustes qui tiennent compte de la variabilité des modèles et fournissent des aperçus comparatifs. En savoir plus dans notre guide Créer un Ensemble d'Expériences.