Evaluation par modele
Un evaluateur prend la sortie du modele et renvoie un retour mesurable, typiquement un score de 1 a 10.
Trois types d’evaluateurs
- Evaluateurs par code : verification programmatique (longueur, syntaxe, mots interdits)
- Evaluateurs par modele : un autre appel IA pour evaluer la qualite
- Evaluateurs humains : revue manuelle (flexible mais lente et couteuse)
Criteres d’evaluation
Pour un prompt de generation de code, on pourrait evaluer :
- Format : la sortie ne contient que du Python, JSON ou Regex, sans explication
- Syntaxe valide : le code produit a une syntaxe correcte
- Suivi de la tache : la reponse correspond bien a la demande
Les deux premiers criteres conviennent aux evaluateurs par code, le troisieme aux evaluateurs par modele.
Implementation d’un evaluateur par modele
def grade_by_model(test_case, output):
messages = []
add_user_message(messages, eval_prompt)
add_assistant_message(messages, "```json")
eval_text = chat(messages, stop_sequences=["```"])
return json.loads(eval_text)
Le prompt d’evaluation doit inclure : le role de l’evaluateur, la tache originale, la solution generee, et le format de sortie attendu. Demandez des forces, faiblesses et justifications en plus du score pour eviter les notes mediocres par defaut.
Integration dans le pipeline
def run_test_case(test_case):
output = run_prompt(test_case)
model_grade = grade_by_model(test_case, output)
return {
"output": output,
"test_case": test_case,
"score": model_grade["score"],
"reasoning": model_grade["reasoning"]
}
Calculez ensuite la moyenne des scores pour obtenir une metrique objective de la performance de votre prompt.