Accordo tra annotatori per oggetti 3D, segmenti temporali e tracce degli agenti
Ridurre le annotazioni strutturate ai nomi delle etichette mette tutti d'accordo. Abbina box 3D e segmenti per IoU, valuta le tracce degli agenti passo per passo.
Per misurare l'accordo sulle annotazioni strutturate, confronta le strutture stesse. Abbina i box 3D o i segmenti temporali di un annotatore a quelli dell'altro per IoU, conta gli oggetti non abbinati come disaccordo e valuta una traccia di agente un passo alla volta, così che ogni passo sia un'unità per il kappa o per l'alpha.
L'accordo tra annotatori è facile da definire quando ogni item riceve una sola etichetta. Molti task attuali danno invece a un item un insieme di cose, come i cuboidi attorno alle auto in una scansione lidar, i segmenti che segnano quando parla ciascun parlante o un verdetto per ogni passo compiuto da un agente. Una misura costruita per un'etichetta per item deve ridurre queste strutture a qualcosa che possa confrontare, e la riduzione più facile, ai nomi delle etichette, mette d'accordo ogni coppia di annotatori.
Accordo perfetto dai nomi delle etichette
Quella riduzione tiene i nomi delle etichette e scarta tutto il resto. Due annotatori che hanno disegnato ciascuno tre box etichettati "car" su una scansione lidar si riducono entrambi a "car", e concordano perfettamente anche se i loro box stanno in punti diversi.
La route di accordo per schema di Potato, /admin/api/agreement, faceva così per gli schemi strutturati prima della versione 2.11, e su tracce degli agenti, segmenti, regioni e oggetti 3D ogni coppia di annotatori risultava in accordo perfetto. Un punteggio perfetto su un task spaziale o temporale difficile di solito significa che la misura ha perso la struttura. Nella 2.11 quella route non riporta più gli schemi strutturati e rimanda al report di accordo completo in /admin/iaa, che confronta le strutture.
Abbinare oggetti 3D e segmenti temporali
L'accordo su un insieme di oggetti comincia dall'abbinamento. Ogni oggetto di un annotatore viene accoppiato con al massimo un oggetto dell'altro, usando una misura di sovrapposizione, e una coppia conta come lo stesso oggetto solo sopra una soglia. I segmenti temporali usano l'IoU temporale (intersection over union), la lunghezza della sovrapposizione divisa per la lunghezza dell'unione, e gli oggetti 3D usano l'IoU 3D, lo stesso rapporto calcolato sui volumi. Potato abbina i segmenti a 0,5 e gli oggetti 3D a 0,25, perché un piccolo spostamento costa più IoU in tre dimensioni che in due. Un box spostato del 10% della sua dimensione lungo ogni asse mantiene un IoU 2D di circa 0,68 e un IoU 3D di solo circa 0,57.
Dopo l'abbinamento, ogni coppia abbinata contribuisce con il suo IoU, una coppia abbinata con etichette diverse contribuisce con metà del suo IoU e ogni oggetto non abbinato, da una parte o dall'altra, contribuisce con zero. L'accordo dell'item è il totale diviso per il numero di oggetti, contando una volta sola le coppie abbinate. Un annotatore che manca metà degli oggetti ottiene quindi un punteggio basso anche quando gli oggetti che ha segnato sono perfetti, e due annotatori che non segnano nulla concordano.
/admin/iaa riporta due numeri per schema per gli oggetti 3D (spatial_annotation) e per i segmenti temporali sotto temporal_grounding e tiered_annotation:
mean_agreement, la media di quel punteggio per item su ogni coppia di annotatori, per ogni item con due o più annotatori; emean_object_count_diff, la differenza media nel numero di oggetti segnati dai due annotatori.
La differenza nel conteggio separa i due modi in cui un insieme può essere in disaccordo. Un accordo basso con una differenza di conteggio vicina a zero significa che le persone hanno trovato gli stessi oggetti ma li hanno posizionati in modo diverso. Una differenza di conteggio grande significa che un annotatore trova oggetti che l'altro non vede, il che rimanda a che cosa le linee guida contano come oggetto.
Nessuno dei due numeri è corretto per il caso. Una baseline di caso per l'accordo spaziale richiede un modello di dove finiscono gli oggetti quando gli annotatori sono in disaccordo a caso, e Potato ne costruisce uno solo per box e poligoni 2D, come descrive Accordo sulla geometria. Per i segmenti temporali lo stesso approccio non funziona, perché un segmento di una clip diversa non è un confronto casuale significativo quando le clip hanno lunghezze diverse, come spiega Accordo nel tempo. Confronta questi numeri tra pilot dello stesso task, dove la difficoltà di posizionare un oggetto resta fissa.
Un caso limite è cambiato nella 2.11. Due segmenti identici di lunghezza zero, un istante segnato da entrambi gli annotatori nello stesso momento, hanno un IoU di 0 diviso 0. Prima contavano come disaccordo completo, ora contano come concordi.
Accordo per passo sulle tracce degli agenti
Una traccia di agente è una sequenza di passi, e gli schemi per le tracce (process_reward, trajectory_eval, tool_call_review, failure_attribution, gui_trajectory) chiedono un'etichetta per ogni passo. Valutare una traccia in base al suo insieme di etichette ripete il problema dei nomi delle etichette, e valutarla in base a un verdetto complessivo butta via i passi.
/admin/iaa tratta ogni passo di ogni traccia come un'unità a sé. Due annotatori che valutano il passo 4 della traccia 12 contribuiscono con una coppia, e l'alpha di Krippendorff nominale e il kappa di Cohen vengono calcolati su tutte queste unità, insieme alla percentuale di accordo. A differenza delle misure sugli insiemi viste sopra, entrambi i coefficienti sono corretti per il caso, quindi un alpha per passo di 0,6 su un task di process reward si legge sulla stessa scala dell'alpha su qualsiasi task categoriale. Il motore di etichettatura interpreta le etichette dei passi allo stesso modo quando confronta un giudice LLM con una persona, e il suo punteggio è la quota di passi in comune che i due hanno etichettato in modo diverso.
Assegnare due annotatori per item
/admin/iaa non richiede configurazione. Valuta ogni item a cui hanno risposto due o più annotatori, quindi il lavoro sta nell'assegnazione. Per dare due annotatori a ogni item, imposta due annotatori per item e distribuisci per primi gli item meno annotati:
assignment_strategy: least_annotated
num_annotators_per_item: 2Due annotatori per item è il minimo di cui il report ha bisogno. Su un insieme di sovrapposizione piccolo, una sola traccia o scansione lidar insolita può spostare la media abbastanza da cambiare ciò che concludi, quindi pianifica la sovrapposizione prima che inizi l'annotazione e non dopo. Il blocco più vecchio agreement_metrics configura le cifre per schema della dashboard, che dalla 2.11 saltano questi schemi e rimandano a /admin/iaa.
Accordo e differenza di conteggio tra un pilot e l'altro
Leggi mean_agreement insieme alla differenza di conteggio e al numero di coppie che /admin/iaa riporta accanto. Un calo tra un pilot e l'altro con una differenza di conteggio stabile rimanda al posizionamento, quindi vanno riviste le linee guida su quanto stringere i box o sui confini dei segmenti. Un aumento della differenza di conteggio rimanda a che cosa conta come oggetto o come evento. Per le tracce degli agenti, confronta l'alpha per passo con l'alpha che gli stessi annotatori raggiungono su una domanda categoriale più semplice nello stesso studio, il che aiuta a distinguere le etichette di passo difficili dagli annotatori poco affidabili.
Approfondimenti
- L'accordo tra annotatori spiegato, per i coefficienti e quando usare ciascuno
- Accordo sulla geometria, per l'accordo corretto per il caso su box e poligoni 2D
- Accordo nel tempo, per segmenti e punti di interruzione in audio e video
- L'IoU grezzo non è accordo, sul perché l'IoU medio da solo sopravvaluta l'accordo spaziale