Notinhas — endpoint de utilidade
Classificador de utilidade para community notes em português, baseado em bge-m3 (568M params) + LoRA + cabeça linear (calibrado via Platt scaling).
- Prever — score + label + faixa de confiança.
- Explicar — o mesmo + contribuição de cada palavra via leave-one-out.
- Sobre — detalhes técnicos e limitações.
Examples
Examples
Detalhes técnicos
- Modelo base:
BAAI/bge-m3(embedding, 1.024 dims, mean pooling, 568M params). - Adaptação: LoRA treinado com alvo
label_binary_strict(recorte A do projeto). - Fold servido:
fold_04(melhor fold segundo o manifesto do pipeline). - Cabeça:
nn.Linear(1024, 1)→ sigmoid. - Calibração: Platt scaling pós-treino —
P_calib = sigmoid(CALIB_A × logit(P_raw) + CALIB_B). Com os defaultsCALIB_A=1.0, CALIB_B=0.0equivale a identidade; ajuste emconfig.pycom base num conjunto de validação. - Prompt de instrução: nenhum — texto cru (bge-m3 não usa prefix de instrução).
- max_length: 256 tokens.
- Dispositivo atual:
cpu.
Método de explicação
A aba Explicar usa occlusion word-level (leave-one-out): para cada palavra
separada por espaço, calculamos Δ = P(texto completo) − P(texto sem a palavra).
- Δ positivo ⇒ palavra puxando para útil (verde).
- Δ negativo ⇒ palavra puxando para não-útil (coral).
É uma aproximação rápida do SHAP Partition usado no notebook de explicabilidade (~1–2 s vs ~12–15 s em GPU), com resultados visualmente comparáveis para notas curtas.
Limitações
- O rótulo
helpfulmede aceitabilidade bipartidária, não qualidade editorial. A galeria curada do notebook mostra casos onde vizinhos semânticos idênticos recebem rótulos opostos por razões políticas. - Textos são truncados em 256 tokens.
- Este endpoint serve um único fold. Para produção com ganho marginal de robustez, subir para ensemble dos 5 folds (média de probabilidades).