Labb: bygg och validera en benchmark
Bygga verktygen som gör en fallmängd till en benchmark — annotatörsöverensstämmelse, kontamineringskoll mot en korpus, validering mot baslinjer (golv, tak, diskriminering) och ett datakort — och köra dem på en given fallmängd.
Lär ut: bygga-en-benchmark · Kräver: kontamineringmanniskoutvardering
Teori
En benchmark är ett mätinstrument: mätdomän, facit med känd tillförlitlighet (κ), skydd mot kontaminering (n-gram-överlapp, kanarier), och validering som visar att den skiljer system åt (ingen mättnad, inget golv). Ett datakort dokumenterar källa, licens, konstruktion och kända skevheter.
Deluppgifter
- kappa — `cohens_kappa(a, b)` för två lika långa etikettlistor (strängar). `load_jsonl(path)`.
- kontaminering — `ngrams(text, n)` → mängd av n-gram (ord, gemener, bara \w+); `contaminated(cases, corpus_text, n=8)` → lista av case-id vars fråga har minst ett n-gram i korpusen.
- validering — `validate(cases, results)` där results är {system: {case_id: bool}} → {"floor": [id som ingen klarar], "ceiling": [id som alla klarar], "discrimination": andel fall där systemen skiljer sig, "accuracy": {system: andel}}.
- datakort — `datacard(cases, meta)` → markdown-sträng med rubrikerna "# <title>", "## Mätdomän", "## Källa och licens", "## Konstruktion", "## Kända skevheter", "## Statistik" (antal fall, fördelning per svårighet).
Evals: benchmark-validerad (ok >= 1)
Logga in för att köra laborationen.
Förväntade resultat
κ mellan de två annotatörerna ≈ 0,7; exakt två fall är kontaminerade mot korpusen (c07, c14); valideringen hittar ett takfall och ett golvfall; datakortet innehåller alla sex rubriker. Evalen sätter ok = 1 när allt stämmer.
Vanliga fel
- κ: pe ska summera produkten av marginalerna per etikett, inte bara majoritetsklassen.
- n-gram: normalisera till gemener och ta bort skiljetecken innan du delar — annars missar du överlapp.
- discrimination: ett fall diskriminerar när minst ett system har rätt och minst ett har fel.
- Datakortet: rubrikerna måste vara exakt de angivna (tester söker efter dem).