Strumentare la riunione di calibrazione
I team di annotazione fanno già sessioni di norming e già vorrebbero sapere come ragionano i loro annotatori. Le stanze multiplayer misurano la riunione di calibrazione con un indicatore di accordo dal vivo; la modalità Think-Aloud registra il ragionamento ad alta voce, in locale e senza alcun LLM.
Due cose che ogni team di annotazione fa male, perché gli strumenti non aiutano: la riunione di calibrazione, che avviene in condivisione schermo e non lascia traccia, e capire perché un annotatore ha scelto un'etichetta, che di solito si riduce a una casella di testo libero che nessuno compila. Potato 2.7 strumenta entrambe: una stanza di norming dal vivo con un indicatore di accordo in tempo reale, e un registratore think-aloud che esegue il riconoscimento vocale in locale. Nessuna delle due ha bisogno di un LLM.
La riunione che non lascia prove
Se hai gestito un progetto di annotazione con più di due persone, hai fatto una sessione di norming. Tutti etichettano la stessa manciata di elementi, ci si trova in call, si discute dei disaccordi e alla fine si converge su cosa voglia dire davvero la linea guida.
Funziona. Ed è anche completamente non strumentata. I voti che le persone avevano prima della discussione sono spariti. Chi ha cambiato idea, e se l'ha cambiata perché convinto o perché un collega più anziano ha parlato per primo, è sparito. E se la riunione abbia migliorato l'accordo è una domanda a cui nessuno sa rispondere, perché nessuno l'ha misurato.
Le stanze multiplayer portano quella sessione dentro lo strumento.
Una stanza di norming a metà sessione
rooms:
enabled: true
who_can_create: any
persist_votes: true
schema: sarcasmApri /rooms, creane una e riceve un codice di sei lettere che puoi leggere ad alta voce durante la call. Il flusso è pensato apposta:
- Tutti votano alla cieca. I membri vedono chi ha votato, mai che cosa. Il vincolo è applicato lato server, quindi le prime impressioni sono davvero indipendenti.
- L'host rivela. In quel momento i voti alla cieca diventano immutabili.
- Il gruppo discute, nella chat laterale o durante la call.
- Chiunque può cambiare il proprio voto. Ogni cambiamento successivo alla rivelazione viene registrato con il voto di partenza, quello di arrivo e quale fosse la maggioranza in quel momento.
Il quarto passo è quello interessante. Un cambio di voto dopo la rivelazione non è lo stesso evento di un voto: è un cambiamento in presenza di una maggioranza nota. Registrarlo dà un registro di conformità per ciascun membro, ed è così che ti accorgi che un annotatore passa alla maggioranza ogni singola volta. Conviene saperlo prima di trattare il suo accordo come prova indipendente.
L'indicatore di accordo risponde a «ne è valsa la pena?»
L'α di Krippendorff viene calcolato due volte, dal vivo, sugli elementi rivelati: una sui voti alla cieca e una sui voti attuali. La distanza tra i due è il guadagno di allineamento della sessione, ed è a schermo mentre la sessione è in corso.
È il numero che rende la riunione verificabile. Se un'ora di discussione ha portato l'α da 0.61 a 0.78, sai che quell'ora ha comprato qualcosa. Se l'ha portata da 0.61 a 0.62, hai imparato che il disaccordo non riguarda l'interpretazione. Riguarda la linea guida, e non c'è quantità di chiacchiere che la sistemi. Vai a riscrivere la linea guida.
Vale la pena conoscere due varianti. Gli huddle riempiono una stanza esattamente con gli elementi su cui il tuo team è attualmente in disaccordo, calcolati dal vivo dallo stato di annotazione, il che ne fa una versione sincrona dell'aggiudicazione. Le stanze shadow permettono a chi è in formazione di guardare un annotatore esperto lavorare in tempo reale, compresa la porzione di testo che sta evidenziando. È la cosa più vicina allo stare seduti accanto a qualcuno mentre annota.
Le stanze sono basate su eventi scritti in un log JSONL, quindi una stanza attiva sopravvive al riavvio del server e il log funge anche da traccia di audit della sessione. Non ci sono WebSocket di mezzo: i client interrogano il server con un cursore, il che significa che le stanze funzionano con qualsiasi deployment WSGI.
Il ragionamento che non hai mai catturato
L'altro fallimento silenzioso sono le motivazioni. Quasi tutti gli strumenti offrono una casella di testo libero, e quasi tutti gli annotatori ci scrivono «ovvio», o niente.
Non è pigrizia. Scrivere il proprio ragionamento è davvero più lento che farlo, e se il task è lungo 400 elementi la casella delle motivazioni è la prima cosa a saltare.
La modalità Think-Aloud toglie l'attrito cambiando modalità: gli annotatori semplicemente parlano mentre lavorano.
Think-Aloud, con un'etichetta rilevata
thinkaloud:
enabled: true
schema: politeness
model: tiny.enIl riconoscimento vocale gira in locale tramite faster-whisper, che sul modello tiny.en da 39 MB lavora in tempo reale su CPU. L'audio non lascia mai la macchina, non c'è nessuna API cloud da chiamare né alcuna bolletta per token da pagare. Per molti dati sensibili è la differenza tra «possiamo usarlo» e «l'ufficio legale ha detto no».
Il protocollo think-aloud era lo standard di riferimento per studiare come le persone prendono decisioni molto prima che tutto questo diventasse computazionale. Negli strumenti di annotazione non è mai entrato, perché chiedere a qualcuno di raccontarsi dentro un registratore e poi trascriverlo a mano non è un flusso di lavoro che qualcuno regga a lungo.
Verbatim, di proposito
La trascrizione viene conservata esattamente come è stata pronunciata e deliberatamente non riassunta. È una scelta di progetto vera, non pigrizia: parafrasare un protocollo think-aloud contamina l'artefatto. Le esitazioni, le autocorrezioni, il «be', potrebbe essere sarcastico, però…»: quelli sono i dati. Un riassunto ordinato è un oggetto diverso e molto meno utile.
Gli annotatori possono anche confermare un'etichetta a voce, usando frasi fissate che un parser basato su regole rileva:
- "I label this Polite"
- "My answer is impolite"
- "Final answer: neutral"
Confermano solo quelle frasi. Tutto quello che viene detto mentre si pensa è ignorato, ed è questo che rende sufficiente un parser basato su regole. Non c'è alcun LLM in nessun punto della pipeline, e nessun modello che decide cosa intendevi. Pronuncia più tardi una nuova frase e vince l'ultima conferma.
Ottieni anche segnali di esitazione deterministici (conteggi dei chunk silenziosi e delle parole riempitive) calcolati con l'aritmetica invece che con un modello. Le pause lunghe su un elemento sono un indicatore decente della difficoltà, e raccoglierle non costa niente.
Perché conta al di là delle motivazioni
Ecco la parte che si collega al resto di Potato 2.7.
Think-Aloud è un registratore della catena di pensiero umana. Cattura come una persona ragiona davvero fino a un'etichetta: non una giustificazione ripulita scritta dopo, ma il ragionamento mentre accade, false partenze comprese.
L'annotazione della process reward di Potato fa lo stesso lavoro per un modello: segmenta la catena di pensiero di un modello e la valuta passo per passo.
Stesso elemento, due catene di pensiero, una umana e una del modello. Puoi metterle affiancate e guardare dove il ragionamento diverge. È una cosa genuinamente nuova da avere, ed è la materia prima per dati di process reward migliori, perché «il modello ha dato la risposta giusta per il motivo sbagliato» è esattamente il fallimento che la valutazione della sola risposta finale non può vedere.
Potato ti dà entrambe le superfici di cattura. Non calcola per te un diff tra le due. È una domanda di ricerca più che una funzionalità, e preferiamo consegnarti l'artefatto piuttosto che una metrica inventata da noi.
Ulteriori letture
- Stanze multiplayer e modalità Think-Aloud — configurazione completa
- Accordo tra annotatori — che cosa misura davvero l'α
- Aggiudicazione e disaccordo
- Etichette con barre di errore — la psicometria segnala gli errori di codebook; le stanze sono il posto in cui li correggi
- Modelli di process reward — la catena di pensiero lato modello