Motore psicometrico
La teoria della risposta all'item applicata all'annotazione. Ogni etichetta riceve una probabilità a posteriori e un intervallo di confidenza invece di un semplice voto di maggioranza, e il modello si adatta senza etichette gold e senza alcun LLM.
Novità della v2.7.0
Potato può trattare il tuo studio di annotazione per quello che in effetti è: uno strumento di misura. Il livello psicometrico adatta un modello di item response theory (IRT) dal vivo, mentre le annotazioni arrivano, stimando congiuntamente l'etichetta vera di ogni elemento come probabilità, l'abilità di ogni annotatore con un errore standard, la difficoltà di ogni elemento e una diagnostica di discriminazione per elemento che segnala i probabili errori di codebook.
Non servono etichette gold e non è coinvolto alcun LLM. Il modello (una generalizzazione multiclasse di GLAD, Whitehill et al. 2009) ricava tutto dal solo schema dell'accordo, allo stesso modo in cui un test standardizzato impara quali domande sono difficili senza che nessuno lo dichiari. Gli adattamenti sono deterministici e richiedono millisecondi alla scala di uno studio di annotazione.

Configurazione
# Adaptive routing is opt-in via the standard assignment strategy key.
# Omit this line to keep your existing strategy and use psychometrics
# as a pure analytics layer.
assignment_strategy: psychometric
# Give items a redundancy target so early-stopped items translate into
# concrete saved judgments on the dashboard.
num_annotators_per_item: 4
psychometrics:
enabled: true
schema: sarcasm # scheme to model; default: first radio/likert scheme
refit_interval: 5 # refit after this many new labels (fits are ~ms)
min_observations: 20 # cold-start gate before adaptive routing engages
min_annotators_per_item: 2 # never early-stop an item below this many annotators
confidence_threshold: 0.95 # posterior at which an item counts as resolved
cost_per_judgment: 0.08 # optional: expresses savings in currency
discrimination_flag_threshold: -0.2 # codebook-bug flag sensitivityGli schemi supportati sono quelli categorici a scelta singola: radio e likert (i punti likert sono trattati come categorie nominali). Gli schemi a scelta multipla non vengono modellati.
Etichette con barre di errore
Invece di sarcastic (2 of 3 votes), l'esportazione dice sarcastic, p = 0.94 [0.88 – 0.97]. La probabilità è la distribuzione a posteriori del modello, che pesa chi ha votato e non soltanto quanti, e l'intervallo è una banda di sensibilità di ±1 errore standard sulle stime di abilità.
A valle puoi addestrare su etichette soft, filtrare gli insiemi di valutazione tenendo solo gli elementi ad alta confidenza, oppure trattare gli elementi a bassa probabilità come genuinamente ambigui invece che come rumore. Vedi l'annotazione con etichette soft per l'approccio complementare, che raccoglie le distribuzioni direttamente dagli annotatori.
L'abilità degli annotatori, presentata onestamente
L'abilità θ viene stimata dagli schemi di accordo. Un valore di 1.0 è il prior per un annotatore nuovo, 0 significa che le sue etichette non portano informazione e i valori negativi significano che sbaglia in modo sistematico. Ogni stima arriva con un errore standard: un annotatore con 12 etichette ha un baffo largo, e la dashboard lo dice.
Non prendere decisioni sul personale a partire da un baffo largo. Gli errori standard sono approssimati (informazione di Fisher al modo) e per costruzione lievemente ottimistici.
Il rilevatore di errori nel codebook
La difficoltà degli elementi viene stimata insieme all'abilità, ma il segnale più utile è la discriminazione: la correlazione tra l'abilità dell'annotatore e la correttezza della risposta su ciascun elemento.
Quando la discriminazione è fortemente negativa, cioè quando sono i tuoi annotatori migliori a discostarsi dal consenso della folla, di solito è la linea guida a essere sbagliata o ambigua per quell'elemento, non gli annotatori. La dashboard li raccoglie sotto «Probabili errori di codebook». Correggi le istruzioni, poi torna a guardare. Le stanze multiplayer sono il posto in cui i team di solito vanno a risolverli.
Instradamento adattivo
Con assignment_strategy: psychometric, quando un annotatore chiede del lavoro gli elementi rimanenti vengono ordinati secondo l'esatto guadagno di informazione atteso a un passo che si otterrebbe se quell'annotatore etichettasse quell'elemento. Gli elementi ad alta incertezza vanno per primi agli annotatori con abilità alta, e gli elementi la cui distribuzione a posteriori supera già confidence_threshold (con almeno min_annotators_per_item annotatori) smettono di consumare budget. Rispetto a un disegno con N fisso per elemento, i giudizi risparmiati vengono conteggiati nella dashboard, e quotati se imposti cost_per_judgment.
Due note operative:
- Avvio a freddo. Finché non esistono
min_observationsetichette, l'assegnazione ripiega sul caso, perché il modello ha bisogno di annotatori sovrapposti prima di poter separare l'abilità dalla difficoltà. Durante questa fase la dashboard mostra un indicatore di riscaldamento. - Batch. L'assegnazione avviene quando la coda di un utente si ricarica. L'ordinamento è più fresco quando le code sono corte; batch molto grandi per utente diluiscono l'adattività.
Analisi di potenza prima di spendere
Ogni progetto di annotazione tira a indovinare su «quanti annotatori per elemento?». Il progettista dello studio risponde con una simulazione Monte Carlo a seme fisso:
python -m potato.psychometrics.design --items 500 --accuracy 0.75 \
--classes 3 --target-ci 0.10 --cost 0.08ann/item alpha 95% interval width majority acc judgments cost
2 0.392 [ 0.330, 0.439] 0.109 0.751 1000 80.00
3 0.388 [ 0.338, 0.431] 0.093 0.864 1500 120.00 <- recommended
La raccomandazione è la ridondanza più piccola il cui intervallo al 95% sull'α di Krippendorff è più stretto di --target-ci, cioè il disegno più economico che dà comunque una stima dell'accordo precisa in modo difendibile. L'input --accuracy si misura meglio con un piccolo pilota. La stessa analisi è disponibile nella dashboard e come API di amministrazione (GET /psychometrics/api/design).
Puoi eseguirla anche in modo interattivo nel browser con il calcolatore di potenza per l'annotazione.
Endpoint
Tutti gli endpoint richiedono l'accesso da amministratore (RBAC VIEW_ADMIN_DASHBOARD; la modalità debug e la chiave API di amministrazione condivisa vengono accettate).
| Endpoint | Scopo |
|---|---|
GET /psychometrics/dashboard | Dashboard dal vivo |
GET /psychometrics/api/stats | Aggregati della dashboard (forza un nuovo adattamento) |
GET /psychometrics/api/export | Esportazione arricchita: distribuzioni a posteriori, bande, abilità |
GET /psychometrics/api/design | Analisi di potenza |
Che rapporto ha con MACE
Potato include anche MACE, che stima la competenza degli annotatori e le etichette previste come analisi post-hoc. I due sono cugini della stessa letteratura, con compiti diversi.
| MACE | Psicometria | |
|---|---|---|
| Modello dell'annotatore | competenza binaria: sa oppure tira a indovinare | abilità continua con errori standard |
| Modello dell'elemento | nessuno | difficoltà + discriminazione (segnalazione di errori di codebook) |
| Quando viene eseguito | analisi in batch dopo N annotazioni | dal vivo, dentro il ciclo di assegnazione |
| Guida l'assegnazione | no | sì, tramite instradamento per guadagno di informazione e arresto anticipato |
| Incertezza sulle etichette | entropia | probabilità a posteriori + intervallo di sensibilità |
| Pianificazione prima dello studio | no | analisi di potenza Monte Carlo |
Usa MACE per una lettura rapida della competenza su qualsiasi schema categorico (copre anche multiselect). Usa la psicometria quando vuoi una misurazione consapevole della difficoltà che agisce sullo studio mentre è in corso.
Risoluzione dei problemi
- La dashboard dice «riscaldamento» all'infinito. Il modello ha bisogno di almeno due etichette distinte e di annotatori sovrapposti. Con un solo annotatore o con etichette unanimi l'adattamento è degenere per costruzione. Aggiungi annotatori o abbassa
min_observations. assignment_strategy: psychometricè impostato ma l'instradamento sembra casuale. È il ripiego dell'avvio a freddo. Controlla l'indicatore di riscaldamento emin_observations.- Le abilità sono tutte vicine a 1.0 con baffi larghi. Non c'è ancora abbastanza sovrapposizione. Le abilità si separano man mano che gli annotatori accumulano elementi in comune.
- 404 su
/psychometrics/.... Nella configurazione manca il bloccopsychometrics.enabled: true.
Ulteriori letture
- Truth Serum — punteggi per peer prediction, l'altro segnale di qualità che non richiede etichette gold
- Strategie di assegnazione dei compiti
- Accordo tra annotatori
- Quanti annotatori servono?
- Documentazione sorgente