Aller au contenu principal

Executer l'evaluation

Avec votre jeu de donnees pret, il est temps de construire le pipeline d’evaluation. Le processus : prendre chaque cas de test, le fusionner avec le prompt, l’envoyer a Claude, puis noter les resultats.

Les trois fonctions du pipeline

run_prompt : execution d’un prompt

Cette fonction prend un cas de test et le fusionne avec le modele de prompt :

def run_prompt(test_case):
    """Fusionne le prompt et l'entree du cas de test, puis renvoie le resultat"""
    prompt = f"""
Veuillez resoudre la tache suivante :

{test_case["task"]}
"""

    messages = []
    add_user_message(messages, prompt)
    output = chat(messages)
    return output

Le prompt est volontairement minimaliste pour l’instant. Sans instructions de formatage, Claude renverra probablement des sorties plus verbeuses que necessaire.

run_test_case : orchestration d’un cas

Cette fonction orchestre l’execution d’un seul cas de test et la notation du resultat :

def run_test_case(test_case):
    """Appelle run_prompt, puis note le resultat"""
    output = run_prompt(test_case)

    # TODO - Notation
    score = 10

    return {
        "output": output,
        "test_case": test_case,
        "score": score
    }

Le score est fixe a 10 pour l’instant. La logique de notation sera developpee dans les lecons suivantes.

run_eval : orchestrateur principal

Cette fonction traite l’ensemble du jeu de donnees :

def run_eval(dataset):
    """Charge le jeu de donnees et appelle run_test_case pour chaque cas"""
    results = []

    for test_case in dataset:
        result = run_test_case(test_case)
        results.append(result)

    return results

Lancer l’evaluation

with open("dataset.json", "r") as f:
    dataset = json.load(f)

results = run_eval(dataset)
print(json.dumps(results, indent=2))

La premiere execution prend du temps : meme avec Claude Haiku, traiter un jeu de donnees complet peut necessiter 30 secondes ou plus.

Ce que nous avons accompli

A ce stade, le pipeline de base fonctionne :

  • Prendre des cas de test du jeu de donnees
  • Les fusionner avec des modeles de prompts
  • Obtenir des reponses de Claude
  • Collecter et organiser tous les resultats

La piece manquante est la notation intelligente. C’est la ou la sophistication des systemes d’evaluation entre en jeu.