Produktmått för AI-funktioner
Kunna definiera mått som fångar värde för användaren, inte bara modellkvalitet.
Förkunskaper
Intuition
En modell kan bli bättre utan att produkten blir det — och tvärtom. Därför behövs två sorters mått:
| Modellmått | Produktmått | |
|---|---|---|
| Exempel | accuracy, F1, grundningsgrad, perplexitet | uppgift slutförd, tid till svar, återkomst, eskaleringar |
| Ändras av | modellen | hela upplevelsen |
| Mäts i | evalsvit | drift, A/B-test |
Koppla ihop dem. Om grundningsgraden stiger 10 procentenheter men inget produktmått rör sig har du optimerat något som inte spelade roll — värdefull information i sig.
Mätramverk som fungerar: ett norrstjärnemått (det värde produkten ska skapa), 3–5 stödmått som förklarar rörelser i det, och 2–3 skyddsräcken som inte får försämras.
Formellt
Exempel för AI-grafen:
| Roll | Mått | Varför |
|---|---|---|
| Norrstjärna | behärskade noder per nedlagd studietimme | fångar faktiskt lärande per insats — inte aktivitet |
| Stöd | andel påbörjade vägar som slutförs | |
| Stöd | andel klarade överföringsuppgifter | mäter förståelse, inte igenkänning |
| Stöd | tid till första «aha» (första behärskade noden) | onboarding |
| Skyddsräcke | andel handledarsvar som ger bort facit | får inte öka |
| Skyddsräcke | kostnad per aktiv elev och månad | får inte överskrida budget |
| Skyddsräcke | andel elever som lämnar mitt i en väg | får inte öka |
Mått som lätt går att spela — och därför är dåliga norrstjärnor:
- Tid i appen. Maximeras av att göra saker svåra att hitta.
- Antal meddelanden till handledaren. Maximeras av otydliga svar.
- Tummen upp. Maximeras av att ge bort svaret.
Det sista är särskilt viktigt i utbildning: forskning visar att elever skattar undervisning lägre när den är mer krävande — trots att de lär sig mer. Ett nöjdhetsmått som norrstjärna skulle styra produkten åt fel håll.
Regeln: fråga alltid «hur skulle jag maximera det här måttet om jag inte brydde mig om användaren?». Går det lätt är måttet fel.
Kod
from dataclasses import dataclass
@dataclass
class Matt:
namn: str
roll: str # norrstjarna | stod | skyddsracke
riktning: str # upp | ner | stabil
trosk: float | None = None
MATT = [
Matt("beharskade_noder_per_timme", "norrstjarna", "upp"),
Matt("andel_slutforda_vagar", "stod", "upp"),
Matt("andel_klarade_overforingsuppgifter", "stod", "upp"),
Matt("andel_svar_som_ger_bort_facit", "skyddsracke", "ner", trosk=0.02),
Matt("kostnad_per_elev_manad", "skyddsracke", "stabil", trosk=12.0),
]
def utvardera_release(fore: dict, efter: dict):
rader, blockerar = [], False
for m in MATT:
d = efter[m.namn] - fore[m.namn]
brott = (m.trosk is not None and
((m.riktning == "ner" and efter[m.namn] > m.trosk) or
(m.riktning == "stabil" and efter[m.namn] > m.trosk)))
blockerar |= brott and m.roll == "skyddsracke"
rader.append({"matt": m.namn, "roll": m.roll, "delta": round(d, 4), "brott": brott})
return {"blockerar": blockerar, "rader": rader}
Behärskning innebär
- Definierar mått som fångar användarvärde
- Skiljer modellmått från produktmått
- Undviker mått som går att spela
Logga in för att göra övningarna och bygga upp din behärskning.