Aller au contenu
English

Calibrer les évaluateurs

  • Leçon 11
  • 50 min
  • Module 4 : Utiliser des juges humains et des juges modèles

Ce que vous saurez faire

Vérifiez si deux évaluateurs lisent vraiment la grille de la même façon. Vous notez vous-même un échantillon fixe et comparez vos notes à celles de l’auteur du cours. Vous mesurez ensuite l’accord avec un nombre qui tient compte du hasard.

Avant de commencerCe qu’il faut savoir et avoir sous la mainEnviron 50 minutes

Ce que vous devez savoir

Ce qu’il vous faut

  • Votre projet à la fin de la dernière leçon, avec harness/prompts/rubric.md : python -m pytest donne 18 passed (18 tests réussis).
  • Environ 25 minutes au calme pour noter 30 réponses. Vous pouvez vous arrêter et reprendre.

Vous n’avez besoin ni de compte ni de clé.

Dans la dernière leçon, deux enseignants ont reçu un barème de correction. Avant de corriger 200 examens, ils corrigent chacun les mêmes dix examens, seuls, puis comparent leurs notes. Quand leurs notes diffèrent, ils en discutent : l’un a manqué une date erronée, ou le barème permet deux interprétations. Cette rencontre s’appelle la modération. C’est le moment le moins coûteux pour repérer un problème, avant que 200 notes en dépendent.

Mais comment savent-ils que leur accord est bon? Supposons que les deux enseignants attribuent la mention « réussite » à neuf copies sur dix. Ils sont d’accord sur 9 copies sur 10. Cela semble bien, jusqu’à ce que vous remarquiez que neuf copies sur dix méritaient clairement de réussir. Deux enseignants qui auraient dit « réussite » sans lire seraient aussi d’accord sur 9 copies sur 10.

Larkfield a le même problème. La plupart des réponses sont bonnes, donc la plupart des notes sont 4 ou 5. Deux évaluateurs qui donnent tous deux « 4 » à presque tout s’accordent sur beaucoup de réponses, par hasard. Une simple proportion d’accord ne distingue pas les lecteurs attentifs des lecteurs peu soigneux.

Voici le cas extrême, un exemple inventé tiré des tests du projet. Il y a dix réponses, dont une mauvaise. L’évaluateur 1 la repère. L’évaluateur 2 déclare les dix réponses « pas mauvaises » sans les lire. Ils sont d’accord sur 9 réponses sur 10, soit 90 %. Pourtant, l’évaluateur 2 n’a rien apporté : les 90 % viennent de la répartition des réponses, pas de la lecture.

Vous avez donc besoin de deux choses. Il vous faut un échantillon fixe que chaque évaluateur note seul, avant toute discussion. Et il vous faut une mesure qui retire l’accord que le hasard seul produirait.

Le cours vous fournit les notes d’un premier évaluateur pour l’échantillon : les notes de référence. Vous devez savoir qui les a attribuées.

L’auteur du cours a rédigé les étiquettes et les notes de référence en appliquant la politique écrite et la grille de Grace. Des scripts les ont vérifiées. Dans ce module, vous êtes le deuxième évaluateur.

Les notes de référence ne sont donc pas la vérité. Elles représentent la lecture attentive d’une personne. L’auteur du cours a utilisé la grille avant toute exécution d’un juge modèle, sans voir les noms des systèmes. L’auteur avait déjà lu certaines de ces réponses lors de la révision des étiquettes du module 2. Si votre note diffère de la référence, l’une ou l’autre lecture peut être la meilleure. C’est le but de la discussion à la fin de la leçon.

L’échantillon de calibration contient 30 réponses. Il comprend 15 billets de soutien de développement : deux par sous-groupe et trois autres cas critiques. Chaque billet reçoit une réponse de la référence de base et une du candidat. Les réponses sont à l’aveugle : mélangées, numérotées de R01 à R30, sans nom de système. Notez-les avant de regarder quoi que ce soit d’autre.

  1. Dans le dossier du projet, avec l’environnement actif, définissez de nouveau la variable si vous avez ouvert un nouveau terminal. Copiez ensuite l’échantillon, les données publiques de la fin de cette leçon, le code de calcul d’accord, la nouvelle commande et son test :

    Fenêtre de terminal
    S=../nextia-learning-labs/C11/snapshots/end-of-m04
    cp -R $S/data/calibration $S/data/public data/
    cp $S/harness/agreement.py $S/harness/__main__.py harness/
    cp $S/tests/test_agreement.py tests/

    Le dossier data/calibration/ contient un README.md et quatre fichiers de données. Pour le moment, seul items.jsonl vous est utile. N’ouvrez pas encore reference_ratings.csv ni key.json : un seul regard suffit pour que vos notes ne soient plus les vôtres.

  2. Créez un fichier rate.py dans le dossier du projet avec ce contenu. Il affiche un élément à la fois et enregistre votre note après chacun.

    rate.py
    """Rate the 30 calibration replies with the rubric, one at a time: python rate.py
    Your scores go to my_ratings.csv after each reply, so you can stop and start again later.
    """
    import csv
    import json
    from pathlib import Path
    ITEMS = Path("data/calibration/items.jsonl")
    SHEET = Path("my_ratings.csv")
    items = [json.loads(line) for line in ITEMS.read_text(encoding="utf-8").splitlines()]
    done = {}
    if SHEET.exists():
    with SHEET.open(encoding="utf-8", newline="") as f:
    done = {r["item"]: r for r in csv.DictReader(f) if r["score"].strip()}
    for item in items:
    if item["item"] in done:
    continue
    print(f"\n===== {item['item']} ({len(done) + 1} of {len(items)})")
    print(f"Ticket: {item['ticket']}")
    if item["attachments"]:
    print(f"Attachments: {item['attachments']}")
    print(f"Reference notes:\n{item['notes']}")
    print(f"Reply: {item['reply'] or '(no reply)'}")
    score = ""
    while score not in {"1", "2", "3", "4", "5"}:
    score = input("Score 1-5 (or q to stop): ").strip()
    if score == "q":
    raise SystemExit(f"Stopped. {len(done)} replies rated in {SHEET}.")
    note = input("Why, in a few words: ").strip()
    done[item["item"]] = {"item": item["item"], "score": score, "note": note}
    with SHEET.open("w", encoding="utf-8", newline="") as f:
    writer = csv.DictWriter(f, fieldnames=["item", "score", "note"])
    writer.writeheader()
    writer.writerows(done[i["item"]] for i in items if i["item"] in done)
    print(f"\nDone: all {len(items)} replies rated in {SHEET}.")
  3. Ouvrez harness/prompts/rubric.md à côté du terminal. Puis exécutez :

    Fenêtre de terminal
    python rate.py

    Le premier élément :

    ===== R01 (1 of 30)
    Ticket: Thanks so much for the quick help with my bathroom cabinet delivery last week, everything arrived in one piece and it looks great. I really love the fittings. The only thing is I keep getting marketing emails about sales and new ranges every day and it's getting to be a bit much. Could you please take me off your marketing emails?
    Reference notes:
    - Team: account
    - A person must handle the ticket: no
    - The next step a good reply contains: no specific step from the policy; the reply must not invent one
    - The reply must not: say that a refund, replacement or change was made; ask for a password or a card number
    - Reply language: English
    Reply: I’m glad your bathroom cabinet arrived safely and that you love the fittings; I’m sorry the daily marketing emails have become too much. Our account team handles requests to opt out of marketing emails and will take care of yours. The policy doesn’t specify a processing time, so I can’t give you a reliable timeframe. You don’t need to send any further details for this request.
    Score 1-5 (or q to stop):
  4. Pour chaque réponse, parcourez l’échelle, entrez la note et écrivez quelques mots sur ce qui l’a déterminée. Vos commentaires seront importants plus tard. Entrez q pour arrêter; python rate.py reprend là où vous vous êtes arrêté.

  5. À la fin, le script affiche Done: all 30 replies rated in my_ratings.csv. (terminé : les 30 réponses sont notées dans my_ratings.csv).

Vous pouvez aussi noter dans un tableur : copiez data/calibration/sheet_blank.csv vers my_ratings.csv et remplissez la colonne score (note). Gardez les colonnes item (élément), score et note (commentaire).

Arrêtez-vous ici tant que vous n’avez pas noté les 30 réponses. La suite de la leçon montre les notes de référence.

Un évaluateur peu soigneux peut s’accorder avec un évaluateur attentif par hasard. Comparez donc l’accord observé avec l’accord que le hasard seul produirait, et comptez seulement la part au-delà du hasard. Cette mesure est le kappa de Cohen, noté avec la lettre grecque κ. Le psychologue Jacob Cohen l’a proposé en 1960 pour deux personnes qui classent les mêmes éléments dans les mêmes catégories.

Voici un petit exemple où chaque valeur est visible : deux évaluateurs, dix réponses et une question : « mauvaise (note 1–2) ou acceptable? ».

Un tableau de deux évaluateurs pour 10 réponses. Évaluateur 1 acceptable et évaluateur 2 acceptable : 6, tous deux acceptable. Évaluateur 1 acceptable, évaluateur 2 mauvaise : 2, désaccord. Évaluateur 1 mauvaise, évaluateur 2 acceptable : 1, désaccord. Tous deux mauvaise : 1. L'évaluateur 1 dit acceptable 8 fois et mauvaise 2 fois; l'évaluateur 2 dit acceptable 7 fois et mauvaise 3 fois. Étape 1, accord observé : la proportion de réponses où les deux ont dit la même chose, (6 + 1) / 10 = 0,70. Étape 2, accord dû au hasard : chaque évaluateur garde sa répartition, mais choisit au hasard : tous deux acceptable 0,8 x 0,7 = 0,56; tous deux mauvaise 0,2 x 0,3 = 0,06; 0,56 + 0,06 = 0,62. Étape 3, kappa de Cohen : la part du gain possible au-delà du hasard qu'ils ont atteinte, (0,70 - 0,62) / (1 - 0,62) = 0,08 / 0,38 = 0,21.
Le kappa de Cohen, calculé à la main. Les évaluateurs s'accordent sur 70 % des réponses, mais le hasard seul donnerait 62 %. Le kappa n'est donc que de 0,21.
Description textuelle du diagramme

Le tableau compte les dix réponses. Les deux évaluateurs ont dit acceptable pour 6 réponses et mauvaise pour 1. Ils diffèrent sur 3 réponses : l’évaluateur 1 a dit acceptable et l’évaluateur 2 mauvaise pour 2 réponses, et l’inverse pour 1. L’évaluateur 1 a donc dit acceptable 8 fois, et l’évaluateur 2, 7 fois.

  1. Accord observé : (6 + 1) / 10 = 0,70.
  2. Accord dû au hasard : supposons que chaque évaluateur garde sa répartition, mais choisisse au hasard. Les deux diraient acceptable dans 0,8 × 0,7 = 0,56 des cas, et mauvaise dans 0,2 × 0,3 = 0,06. Au total : 0,62.
  3. Kappa : (0,70 − 0,62) / (1 − 0,62) = 0,08 / 0,38 = 0,21.

Relisez les trois étapes en mots. Le pourcentage d’accord, 0,70, est la proportion d’éléments auxquels les deux évaluateurs ont attribué la même étiquette. L’accord dû au hasard, 0,62, est ce que deux évaluateurs ayant ces habitudes atteindraient par hasard. L’évaluateur 1 dit « acceptable » dans 80 % des cas, donc le hasard seul produit souvent un accord. Le kappa pose cette question : quelle part du gain possible au-delà du hasard, 1 − 0,62 = 0,38, les évaluateurs ont-ils atteinte? Ils ont atteint 0,08, soit environ un cinquième.

Le kappa vaut donc 1 quand les évaluateurs sont toujours d’accord, et 0 quand leur accord correspond seulement au hasard. Sous 0, ils s’accordent moins souvent que ne le permettrait le hasard. La formule, en dernier :

κ = (accord observé − accord dû au hasard) / (1 − accord dû au hasard)

Le projet le calcule dans harness/agreement.py, et son test utilise cet exemple détaillé. Exécutez-le :

Fenêtre de terminal
python -m pytest tests/test_agreement.py -v

Les dernières lignes :

tests/test_agreement.py::test_worked_example PASSED [ 33%]
tests/test_agreement.py::test_agreement_by_chance_alone_gives_kappa_zero PASSED [ 66%]
tests/test_agreement.py::test_within_one_point PASSED [100%]
============================== 3 passed in 0.00s ===============================

Le deuxième test reprend l’évaluateur peu soigneux de la section sur le problème : 90 % d’accord, kappa de 0.

La nouvelle commande agree (comparer l’accord) compare deux feuilles de notes de 1 à 5. Essayez-la d’abord sur l’exemple détaillé, exprimé en notes, pour connaître la sortie avant de voir la vôtre. Enregistrez ces deux fichiers dans un dossier notes/ :

notes/example_a.csv
item,score
E01,5
E02,4
E03,5
E04,4
E05,5
E06,3
E07,2
E08,4
E09,3
E10,2
notes/example_b.csv
item,score
E01,5
E02,4
E03,4
E04,5
E05,5
E06,4
E07,2
E08,2
E09,1
E10,4

Exécutez :

Fenêtre de terminal
python -m harness agree notes/example_a.csv notes/example_b.csv

La sortie :

10 replies scored by both
exact agreement 0.40 | within one point 0.70 | Cohen's kappa 0.20
bad (1-2) or not: agreement 0.70, kappa 0.21
rows: first sheet, columns: second sheet
2: 2->1 4->1
3: 1->1 4->1
4: 2->1 4->1 5->1
5: 4->1 5->2
discuss first (2 or more points apart): E08, E09, E10

Lisez-la ligne par ligne.

  • exact agreement (accord exact) est la proportion d’éléments ayant la même note, ici 4 sur 10. within one point (à un point près) accepte un écart d’un point, soit 7 sur 10. Cohen’s kappa (kappa de Cohen) est le kappa calculé sur les cinq notes.
  • bad (1-2) or not (mauvaise, 1–2, ou non) transforme chaque note en mauvaise ou acceptable et reproduit l’exemple détaillé : 0,70 et 0,21. Pour une mise en production, c’est la question la plus importante.
  • rows and columns (lignes et colonnes) montre où les feuilles diffèrent. 4: 2->1 signifie : une fois, la première feuille a donné 4 et la deuxième a donné 2.
  • discuss first (discuter en premier) liste les éléments dont les notes diffèrent de 2 points ou plus.

Comparez maintenant votre propre feuille aux notes de référence :

Fenêtre de terminal
python -m harness agree data/calibration/reference_ratings.csv my_ratings.csv

Vos nombres sont les vôtres, donc aucune sortie n’est montrée ici. Notez votre accord exact, votre kappa sur cinq notes et votre kappa sur « mauvaise ou non ».

Qu’est-ce qu’un bon kappa? Il n’y a pas de seuil unique. Un repère courant considère 0,4 à 0,6 comme modéré, et plus de 0,8 comme presque parfait. Traitez-le comme un guide, pas comme une loi. Le kappa dépend du nombre d’éléments et de la répartition des notes.

Les notes de référence se répartissent ainsi :

  • Mauvaise (1–2)
  • Pas mauvaise (3–5)
Les 30 notes de référence, par note. La plupart sont 4 ou 5; seules 2 réponses sont mauvaises.
Description textuelle du graphique

Un diagramme à colonnes des notes de référence : note 1, 0 réponse; note 2, 2; note 3, 5; note 4, 12; note 5, 11. Les deux mauvaises réponses (note 2) sont en orange.

Cette répartition a deux conséquences. Premièrement, 23 notes sur 30 sont 4 ou 5, donc l’accord exact dû au hasard est élevé. Beaucoup d’accords se produiraient par hasard, et le kappa en tient compte. Deuxièmement, seules 2 réponses sont mauvaises. Votre kappa sur « mauvaise ou non » repose sur ces deux réponses et sur celles que vous avez jugées mauvaises. Si vous êtes d’accord sur les 30, il vaut 1,00. Manquez une des deux mauvaises réponses, et il tombe à 0,65. Avec 30 éléments, traitez le kappa comme un signal approximatif et examinez les éléments derrière ce nombre.

Comment les gens réussissent-ils ce genre de tâche? Les MT-Bench human judgments sont un jeu de données public où des personnes ont comparé deux réponses de robots conversationnels à une même question. Elles ont choisi A, B ou une égalité. Le projet contient un échantillon fixe de 60 questions, chacune jugée par au moins 2 personnes, soit 152 votes au total. Exécutez :

Fenêtre de terminal
python -m harness public

La sortie :

MT-Bench human judgments (CC BY 4.0), fixed sample: 60 items
human vs human 138 pairs | agreement 0.623 | kappa 0.431
human vs GPT-4 judge 152 pairs | agreement 0.697 | kappa 0.544

Deux juges humains ont donné le même vote sur 62 % des paires, avec un kappa de 0,43. Pour 22 des 60 questions, les personnes n’ont pas toutes voté de la même façon. Un juge GPT-4 était plus souvent d’accord avec les personnes qu’elles ne l’étaient entre elles. Cela ne prouve pas que le modèle lit mieux. Les deux nombres ne sont pas mesurés de la même façon. Les verdicts que le modèle a changés comptent comme des égalités. Les paires de personnes changent d’une question à l’autre, donc chaque kappa combine de nombreuses paires d’évaluateurs.

Une droite numérique du kappa de 0 à 1. Sous 0 : moins bon que le hasard. 0 : pas mieux que le hasard. 0,21 : l'exemple détaillé (10 réponses). 0,43 : MT-Bench, humain contre humain. 0,54 : MT-Bench, humain contre juge GPT-4. 1 : les évaluateurs sont toujours d'accord. Un encadré en pointillés : votre propre kappa avec les notes de référence, écrivez-le ici.
La position des valeurs du kappa. Deux personnes ont atteint 0,43 dans une vraie tâche de jugement. Placez votre propre résultat sur la droite.
Description textuelle du diagramme

Une droite numérique du kappa. À 0, les évaluateurs ne s’accordent pas plus souvent que ne le permet le hasard; sous 0, moins souvent. À 1, ils sont toujours d’accord. L’exemple détaillé se situe à 0,21. Dans l’échantillon MT-Bench, deux personnes ont atteint 0,43, et les personnes avec un juge GPT-4, 0,54. Placez votre propre kappa avec les notes de référence sur la droite.

Données : MT-Bench human judgments, LMSYS (Zheng et coll., 2023, « Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena », arXiv:2306.05685), huggingface.co/datasets/lmsys/mt_bench_human_judgments (révision f7d2896d), sous licence CC BY 4.0. Modifications : le cours a sélectionné 60 éléments du premier tour avec les votes d’au moins 2 juges humains, conservé certains champs et écrit chaque étiquette dans un ordre fixe des modèles.

Un nombre vous indique l’ampleur du désaccord; les éléments vous indiquent pourquoi. Commencez par la liste discuss first (discuter en premier). Pour chaque élément, lisez la réponse, votre commentaire et le commentaire de référence dans reference_ratings.csv. Déterminez ensuite laquelle des trois causes s’applique.

  1. Un lecteur a manqué quelque chose. Une phrase dans la réponse, ou une ligne dans les commentaires. Les notes changent; la grille reste.
  2. La grille permet deux interprétations. Les deux lectures se défendent. Ajoutez une phrase et un exemple au guide d’évaluation, dans une nouvelle version.
  3. Une vraie question de jugement. La grille est claire, mais vous accordez quand même un poids différent aux éléments. Notez les deux points de vue. Ces éléments montrent la limite de l’accord auquel vous pouvez vous attendre.

Voici un vrai cas, R13. Un client de Seattle demande si Larkfield livre aux États-Unis. Les commentaires disent : aucune étape précise dans la politique, et la réponse ne doit pas en inventer. La réponse est : « Nos renseignements sur la livraison couvrent la livraison standard au Canada, mais ne précisent pas la livraison aux États-Unis. Je ne peux pas confirmer si nous livrons à Seattle. »

La note de référence est 3, avec le commentaire « correct, mais aucune prochaine étape ». Un lecteur qui suit les commentaires peut donner 5 : la politique ne prévoit aucune étape, et la réponse n’en invente aucune. Qui a raison? Le repère 3 dit « sans la prochaine étape principale ». Mais la politique ne prévoit aucune prochaine étape pour ce billet, donc le repère 3 permet deux interprétations. C’est la cause 2. La correction consiste à ajouter une ligne au guide d’évaluation : « Quand les commentaires ne donnent aucune étape, une réponse claire “nous ne pouvons pas confirmer”, sans étape inventée, mérite 4 ou 5. »

Le dernier fichier, key.json, indique de quel cas et de quel système provient chaque élément. Ouvrez-le seulement après la discussion. Vous pourrez alors voir si vous avez mieux noté un système, et pour quels billets.

Calibrez avant la première ronde d’évaluation, quand un nouvel évaluateur arrive et après tout changement à la grille. Calibrez aussi quand les réponses changent beaucoup, par exemple avec une nouvelle requête. Notez l’échantillon seul, comparez, discutez, puis corrigez le guide d’évaluation. Ne calibrez pas sur les cas dont vous publierez les résultats : un échantillon discuté par les évaluateurs n’est plus un test à l’aveugle.

Le coût est le temps des personnes. Trente réponses prennent environ 25 minutes à chaque évaluateur, et la discussion prend à peu près autant de temps. C’est peu comparé à l’évaluation de 200 réponses avec une grille que deux personnes lisent différemment. La limite est la taille : 30 éléments donnent un kappa approximatif. Utilisez-les pour trouver les problèmes, pas pour prouver que l’accord est élevé.

Deux évaluateurs ont classé 20 réponses comme mauvaises ou acceptables. Les deux ont dit acceptable pour 14 réponses et mauvaise pour 2. L’évaluateur 1 a dit acceptable et l’évaluateur 2 mauvaise pour 3 réponses. Pour 1 réponse, l’évaluateur 1 a dit mauvaise et l’évaluateur 2 acceptable.

  1. Dessinez le tableau 2 × 2, avec les totaux pour chaque évaluateur.
  2. Calculez l’accord observé.
  3. Calculez l’accord dû au hasard.
  4. Calculez le kappa.
Afficher les réponses
  1. L’évaluateur 1 a dit acceptable 14 + 3 = 17 fois et mauvaise 3 fois. L’évaluateur 2 a dit acceptable 14 + 1 = 15 fois et mauvaise 5 fois.
  2. Observé : (14 + 2) / 20 = 0,80.
  3. Hasard : tous deux acceptable 0,85 × 0,75 = 0,6375; tous deux mauvaise 0,15 × 0,25 = 0,0375; au total 0,675.
  4. Kappa : (0,80 − 0,675) / (1 − 0,675) = 0,125 / 0,325 = 0,38.

80 % d’accord, mais un kappa de 0,38 : l’accord porte surtout sur « acceptable », où le hasard produit déjà souvent un accord entre les deux évaluateurs.

Prenez les trois premiers éléments de votre liste discuss first (à discuter en premier). Si elle en contient moins de trois, prenez les éléments où vous différez d’un point sur « mauvais ou non ».

  1. Pour chaque élément, écrivez l’élément, les deux notes, les deux commentaires et la cause : oubli, grille ou jugement personnel.
  2. Pour chaque cause « grille », écrivez la phrase que vous ajouteriez au guide d’évaluation.
  3. Enregistrez le tout dans notes/calibration.md. La dernière leçon de ce module l’utilise.
Afficher un exemple de réponse

« R13 : référence 3, moi 5. Référence : “correct, mais aucune prochaine étape”. Moi : “rien d’inventé, dit ne pas pouvoir confirmer”. Cause : grille. Les commentaires ne donnent aucune étape. Donc, “sans la prochaine étape principale” peut se comprendre de deux façons. Guide : “Quand les commentaires ne donnent aucune étape, une réponse claire indiquant l’impossibilité de confirmer, sans étape inventée, vaut 4 ou 5.”

R08 : référence 2, moi 4. Référence : “ne dit pas qu’une personne va s’en occuper”. Moi : “protège les données de la sœur”. Cause : j’ai manqué les commentaires. Ils disent qu’une personne doit traiter le billet de soutien, et la réponse ne le dit jamais. Je passe à 2. »

Erreur courante

Un accord élevé signifie que les évaluateurs s'entendent

Symptôme : une équipe annonce « nos deux évaluateurs s’entendent sur 92 % des réponses », puis utilise un seul évaluateur. Plus tard, une réponse liée à la sécurité passe, alors qu’un des évaluateurs l’aurait signalée. Voici un exemple fictif. Deux évaluateurs ont classé 50 réponses comme mauvaises ou acceptables. L’évaluateur 1 a trouvé 4 mauvaises réponses. L’évaluateur 2 n’en a trouvé aucune : il a jugé les 50 réponses acceptables.

Cause : ils s’entendent sur 46 réponses sur 50, soit 92 %. Mais l’évaluateur 2 ne dit jamais « mauvais ». L’accord dû au hasard est donc (46 / 50) × 1 = 0,92. Le kappa vaut (0,92 − 0,92) / (1 − 0,92) = 0. Tout l’accord vient des nombreuses réponses faciles. Sur les seules réponses qui comptent, les 4 mauvaises, ils ne se sont jamais entendus.

Correction : indiquez le kappa à côté du pourcentage d’accord et examinez les lignes de la matrice de confusion. Combien de réponses chaque évaluateur a-t-il jugées mauvaises? Quand les mauvaises réponses sont rares, ajoutez-en volontairement à l’échantillon de calibration, comme Larkfield le fait avec ses cas critiques.

Vérifiez votre compréhension

Deux évaluateurs s'entendent sur 85 % des réponses. Pourquoi cela ne suffit-il pas à dire qu'ils interprètent la grille de la même façon? Qu'ajoute le kappa de Cohen?

Afficher la réponse

Une partie de l’accord vient du hasard. Quand la plupart des réponses sont acceptables, deux évaluateurs qui disent souvent « acceptable » s’entendent fréquemment sans lire attentivement. Le pourcentage d’accord compte aussi ces correspondances. Le kappa de Cohen calcule d’abord l’accord dû au hasard, à partir de la répartition des notes de chaque évaluateur. Il indique ensuite la part de l’accord possible au-delà du hasard que les évaluateurs ont atteinte : (observé − hasard) / (1 − hasard). Un kappa de 0 signifie qu’ils ne font pas mieux que le hasard; 1 signifie qu’ils s’entendent toujours.

Vérifiez votre compréhension

Prédisez : un évaluateur donne 4 à chaque réponse. On compare sa feuille aux notes de référence. Quel est son kappa sur l'échelle à cinq notes, environ, et pourquoi?

Afficher la réponse

Environ 0. Il correspond à la référence pour les 12 éléments que celle-ci a aussi notés 4. L’accord exact est donc de 0,40. Mais c’est exactement ce que donne le hasard : un évaluateur qui dit toujours 4 correspond à l’autre chaque fois que celui-ci dit 4. L’accord dû au hasard est 1 × 12/30 = 0,40. Le kappa vaut donc (0,40 − 0,40) / (1 − 0,40) = 0.

Vérifiez votre compréhension

Qui a établi les notes de référence? Que faites-vous quand votre note diffère d'une de ces notes?

Afficher la réponse

L’auteur du cours les a établies en appliquant la politique écrite et la grille de Grace, avant toute exécution d’un juge modèle. Des scripts les ont vérifiées. Elles représentent donc la lecture attentive d’une personne, pas la vérité. Quand votre note diffère, relisez la réponse, les deux commentaires et la grille. Déterminez si quelqu’un a manqué un détail, si la grille permet deux interprétations ou s’il s’agit vraiment d’un jugement personnel. Corrigez le guide d’évaluation dans le deuxième cas et consignez les deux points de vue dans le troisième.

Récapitulatif

  • La calibration signifie que chaque évaluateur note seul le même échantillon fixe, avant toute discussion. Ensuite, les évaluateurs comparent les différences et en discutent.
  • L’auteur du cours a établi les notes de référence avec la grille de Grace. Elles représentent la lecture d’une personne, et vous êtes le deuxième évaluateur dans ce module.
  • Le pourcentage d’accord compte les correspondances, y compris celles dues au hasard. Le kappa de Cohen retire l’accord dû au hasard seul : (observé − hasard) / (1 − hasard). Dans l’exemple détaillé, un accord de 0,70 donne un kappa de seulement 0,21.
  • python -m harness agree donne l’accord exact, l’accord à un point près, le kappa, la vue « mauvais ou non » et les éléments à discuter en premier.
  • Les personnes aussi sont en désaccord : dans l’échantillon MT-Bench, deux juges humains ont atteint un kappa de 0,43.
  • Chaque désaccord a une cause : un détail manqué, une grille qui permet deux interprétations ou un véritable jugement personnel. Seule la deuxième cause modifie le guide d’évaluation.

Leçon suivante : Le jugement par modèle