Laboratório de fronteiras de decisão (Boundary Lab)
Sonde a fronteira de decisão, não apenas o ponto. Depois de cada rótulo, o Potato pergunta se uma edição contrafactual mínima o mudaria, e assim extrai conjuntos de contraste e controle de qualidade da anotação comum.
Novo na v2.7.0
Toda ferramenta de anotação coleta rótulos pontuais: o item X recebe o rótulo Y. O Boundary Lab faz o Potato coletar fronteiras de decisão. No momento em que um anotador confirma um rótulo, o Potato mostra edições contrafactuais mínimas do texto e pergunta, uma sondagem por vez:
Você disse Polite. Isso sobreviveria a esta edição?

Cada resposta custa um clique. A anotação comum passa então a produzir três artefatos que uma exportação simples de rótulos não entrega.
- Conjuntos de contraste, de graça. Toda sondagem respondida é um par rotulado (original, contrafactual): os dados aumentados com contrafactuais que se mostraram capazes de melhorar a robustez dos modelos (Gardner et al. 2020; Kaushik et al. 2020). Montar um conjunto de contraste normalmente é um trabalho à parte e caro.
- Justificativas de fronteira. Quando um rótulo muda, o anotador diz o que cruzou a linha. Essas justificativas apontam com precisão onde o seu livro de códigos é ambíguo.
- Controle de qualidade invisível. As sondagens de invariância são paráfrases que preservam o significado, e um anotador consistente nunca muda de rótulo diante delas. Quem muda é sinalizado no painel, o que dá um sinal de atenção sem plantar um único item-ouro falso.
Configuração
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 fetchFontes das sondagens
As sondagens vêm de três camadas. As camadas seguintes preenchem as vagas que as anteriores deixam vazias, então o recurso degrada de forma suave.
precomputed — distribua contrafactuais curados junto com seus dados. É determinístico e ideal para estudos controlados:
{"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 — gere as sondagens na hora com qualquer endpoint de IA configurado (Anthropic, OpenAI, Ollama, vLLM). As sondagens são geradas uma única vez por (instância, rótulo) e compartilhadas entre os anotadores, então o custo de LLM é limitado pelo tamanho do conjunto de dados, e não pelo número de anotadores.
rules — transformações lexicais determinísticas: inversão de negações, troca de intensificadores, marcadores de polidez, carga da pontuação e paráfrases de contrações ou saudações para a invariância. Sem dependências e sem chamadas a modelos, o que é justamente o que permite rodar o Boundary Lab sem nenhum LLM configurado.
Tipos de sondagem e vereditos
| Tipo | Significado | Comportamento esperado |
|---|---|---|
flip | A menor edição pensada para cruzar a fronteira do rótulo | Pode mudar ou se manter — os dois casos são informativos |
invariance | Paráfrase que preserva o significado | Nunca deveria mudar; mudanças indicam inconsistência |
Os anotadores respondem a cada sondagem com mantém (o rótulo sobrevive), muda (o rótulo muda, e eles escolhem o novo e, se quiserem, dizem por quê) ou não sei dizer.
O painel
Em /boundary/dashboard (acesso de administrador):
- Sensibilidade de fronteira por rótulo — das edições mínimas dirigidas a cada rótulo, a fração que provocou mudança. Uma taxa de 90% significa que o rótulo vive no fio da navalha; 10% significa que ele é robusto a pequenas perturbações.
- Consistência de invariância por anotador — taxa de respostas “mantém” de cada anotador nas sondagens de paráfrase, sinalizada em vermelho abaixo de 60%.
- Onde os rótulos mudam — uma galeria de mudanças confirmadas com diffs em nível de palavra e as justificativas dos anotadores.
Exportação do conjunto de contraste
GET /boundary/api/export (administrador) baixa um JSONL, com um par rotulado por sondagem respondida:
{"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}Os vereditos holds são exportados com counterfactual_label igual ao rótulo original, o que os torna úteis como negativos difíceis. Os vereditos unsure ficam de fora.
Notas de projeto
- As sondagens ficam em cache por (instância, esquema, rótulo) e são compartilhadas entre os anotadores, então a consistência de invariância é comparável de um anotador para outro.
- O painel de sondagem é uma sobreposição. Ele nunca bloqueia o fluxo principal de anotação, responder às sondagens é opcional e os anotadores podem dispensá-lo a qualquer momento.
- Por enquanto, a sondagem atua sobre um único esquema de escolha única (
radio) por tarefa.
Leitura adicional
- Truth Serum — o outro sinal de qualidade que dispensa rótulos-ouro
- Controle de qualidade — verificações de atenção e padrões-ouro
- Padrões-ouro e checagens de atenção
- Documentação de origem