Laboratorio dei confini di decisione (Boundary Lab)
Sonda il confine di decisione, non solo il punto. Dopo ogni etichetta Potato chiede se una modifica controfattuale minima la cambierebbe, e ricava insiemi di contrasto e controllo qualità dall'annotazione ordinaria.
Novità della v2.7.0
Qualsiasi strumento di annotazione raccoglie etichette puntuali: l'elemento X riceve l'etichetta Y. Boundary Lab fa sì che Potato raccolga confini di decisione. Nel momento in cui un annotatore conferma un'etichetta, Potato mostra modifiche controfattuali minime del testo e chiede, una sonda alla volta:
Hai detto Polite. Reggerebbe anche dopo questa modifica?

Ogni risposta costa un clic. L'annotazione ordinaria produce così tre cose che una semplice esportazione di etichette non può dare.
- Insiemi di contrasto, gratis. Ogni sonda a cui si risponde è una coppia etichettata (originale, controfattuale): i dati aumentati con controfattuali che hanno dimostrato di migliorare la robustezza dei modelli (Gardner et al. 2020; Kaushik et al. 2020). Costruire un insieme di contrasto è di norma un lavoro a parte e costoso.
- Motivazioni sul confine. Quando un'etichetta cambia, l'annotatore dice che cosa ha superato la linea. Queste motivazioni indicano con precisione dove il tuo codebook è ambiguo.
- Controllo qualità invisibile. Le sonde di invarianza sono parafrasi che preservano il significato, e un annotatore coerente non cambia mai etichetta di fronte a esse. Chi lo fa viene segnalato nella dashboard, il che ti dà un segnale di attenzione senza infilare un solo elemento gold fittizio.
Configurazione
boundary_probing:
enabled: true
schema: politeness # scheme to probe (default: first radio scheme)
probes_per_item: 3 # probes per (instance, label), invariance included
include_invariance: true # add one paraphrase probe (the QC signal)
sources: # probe generation tiers, in priority order
- precomputed
- llm
- rules
precomputed_key: counterfactuals # item-data field for precomputed probes
rationale_on_flip: true # ask "what crossed the line?" when a label flips
debounce_ms: 900 # delay between label selection and probe fetchSorgenti delle sonde
Le sonde arrivano da tre livelli. I livelli successivi riempiono gli spazi lasciati vuoti da quelli precedenti, così la funzionalità degrada in modo graduale.
precomputed — distribuisci controfattuali curati insieme ai tuoi dati. È deterministico e ideale per studi controllati:
{"id": "req_02", "text": "Send me the slides before the meeting.",
"counterfactuals": [
{"text": "Please send me the slides before the meeting.", "kind": "flip",
"edit_hint": "added \"please\""},
{"text": "Before the meeting, send me the slides.", "kind": "invariance",
"edit_hint": "reordered clauses"}
]}llm — genera le sonde al volo con qualsiasi endpoint AI configurato (Anthropic, OpenAI, Ollama, vLLM). Le sonde vengono generate una sola volta per (istanza, etichetta) e condivise tra gli annotatori, quindi il costo dell'LLM dipende dalla dimensione del dataset e non dal numero di annotatori.
rules — trasformazioni lessicali deterministiche: inversione delle negazioni, scambio degli intensificatori, marcatori di cortesia, carica della punteggiatura e parafrasi di contrazioni o saluti per l'invarianza. Nessuna dipendenza e nessuna chiamata a un modello, ed è questo che permette di usare Boundary Lab senza alcun LLM configurato.
Tipi di sonda e verdetti
| Tipo | Significato | Comportamento atteso |
|---|---|---|
flip | La modifica più piccola pensata per attraversare il confine dell'etichetta | Può cambiare o reggere: entrambi i casi sono informativi |
invariance | Parafrasi che preserva il significato | Non dovrebbe mai cambiare; un cambiamento indica incoerenza |
Gli annotatori rispondono a ogni sonda con regge (l'etichetta sopravvive), cambia (l'etichetta cambia, e scelgono quella nuova spiegando eventualmente perché) oppure non saprei.
La dashboard
Su /boundary/dashboard (accesso amministratore):
- Sensibilità di confine per etichetta — delle modifiche minime rivolte a ciascuna etichetta, la quota che ha prodotto un cambiamento. Un tasso del 90% significa che l'etichetta vive sul filo del rasoio; il 10% significa che regge alle piccole perturbazioni.
- Coerenza di invarianza per annotatore — tasso di risposte «regge» di ciascun annotatore sulle sonde di parafrasi, segnalato in rosso sotto il 60%.
- Dove cambiano le etichette — una galleria dei cambiamenti confermati con i diff a livello di parola e le motivazioni degli annotatori.
Esportazione dell'insieme di contrasto
GET /boundary/api/export (amministratore) scarica un JSONL, una coppia etichettata per ogni sonda a cui si è risposto:
{"instance_id": "req_02", "schema": "politeness",
"original_text": "Send me the slides before the meeting.",
"original_label": "Impolite",
"counterfactual_text": "Please send me the slides before the meeting.",
"counterfactual_label": "Neutral",
"kind": "flip", "flipped": true,
"rationale": "please softens the command",
"edit_hint": "added \"please\"", "probe_source": "precomputed",
"annotator": "alice", "timestamp": 1783827299.4}I verdetti holds vengono esportati con counterfactual_label uguale all'etichetta originale, il che li rende utili come negativi difficili. I verdetti unsure sono esclusi.
Note di progettazione
- Le sonde sono memorizzate in cache per (istanza, schema, etichetta) e condivise tra gli annotatori, così la coerenza di invarianza è confrontabile da un annotatore all'altro.
- Il pannello delle sonde è un livello sovrapposto. Non blocca mai il flusso principale di annotazione, rispondere alle sonde è facoltativo e gli annotatori possono chiuderlo in qualsiasi momento.
- Per ora il sondaggio agisce su un solo schema a scelta singola (
radio) per task.
Ulteriori letture
- Truth Serum — l'altro segnale di qualità che non richiede etichette gold
- Controllo della qualità — verifiche di attenzione e standard gold
- Standard gold e verifiche di attenzione
- Documentazione sorgente