🏳️🌈 TybyrIA v2.2 — modelo canônico
English summary below. Seção em português primeiro, resumo em inglês ao final.
TybyrIA v2.2 é o modelo canônico e recomendado do projeto TybyrIA para detecção de discurso de ódio contra pessoas LGBTQIA+ em português brasileiro. Substitui a TybyrIA v2.1, agora mantida apenas como legado.
Em teste held-out (dados que o modelo nunca viu no treino), a v2.2 detecta 97,3% dos casos de ódio com 86,3% de precisão no threshold recomendado de 0,40 — e reduziu drasticamente os falsos positivos em fala afirmativa que afetavam a v2.1.
A TybyrIA leva o nome de Tybyra do Maranhão, a primeira vítima de lgbtfobia registrada em território brasileiro. É desenvolvida pela Código Não Binário.
📊 Métricas (teste held-out, verificadas independentemente)
Avaliação realizada em 19/07/2026 com o modelo publicado neste repositório, sobre o conjunto de teste held-out (256 exemplos, dos quais 149 de ódio; split 80/10/10, seed 42, estratificado, deduplicado antes do split — sem vazamento treino/teste). Nenhum desses exemplos foi usado no treino.
| Threshold | Recall | Precisão | Acurácia | F1 | FN | FP |
|---|---|---|---|---|---|---|
| 0,30 | 99,3% | 83,1% | — | — | 1 | 30 |
| 0,40 (recomendado) | 97,3% | 86,3% | 89,5% | 91,5% | 4 | 23 |
| 0,45 | 92,6% | 93,9% | 92,2% | 93,2% | 11 | 9 |
Matriz de confusão @ threshold 0,40 (n=256)
| Previsto: ódio | Previsto: não-ódio | |
|---|---|---|
| Real: ódio (149) | 145 (VP) | 4 (FN) |
| Real: não-ódio (107) | 23 (FP) | 84 (VN) |
Fala afirmativa (o problema que a v2.2 resolveu)
A v2.1 marcava 10 de 12 frases de elogio/afirmação LGBTQIA+ como ódio (ex.: "Orgulho demais da minha filha lésbica"). A v2.2, no threshold 0,40, marca 1 de 12 — ver Limitações.
🎯 Uso recomendado
| Probabilidade | Interpretação | Ação |
|---|---|---|
| < 0,30 | Baixo risco | Deixar passar |
| 0,30 – 0,40 | Zona de incerteza | Revisão humana |
| ≥ 0,40 | Provável ódio | Sinalizar; revisão humana antes de qualquer ação |
⚠️ Nunca use este modelo para bloqueio ou remoção automática de conteúdo sem revisão humana. O modelo é uma ferramenta de triagem e apoio: alto recall serve para não deixar ódio passar despercebido, mas a decisão final sobre cada caso deve ser de uma pessoa. Isso vale em qualquer threshold.
Escolha do threshold por contexto:
- Triagem com revisão humana garantida (fila de moderação, pesquisa): 0,30–0,40, priorizando recall.
- Alertas com menor tolerância a falso positivo (relatórios, notificações): 0,45, priorizando precisão.
🔬 Metodologia
Treinamento
- Ponto de partida: retreino warm-start a partir da TybyrIA v2.1 (base:
FpOliveira/tupi-bert-base-portuguese-cased). - Base de treino: 2.551 exemplos (58,1% ódio) =
- 1.891 comentários do Instagram anotados manualmente pela equipe da Código Não Binário (33 categorias de análise), mais
- 660 exemplos novos produzidos por um pipeline com revisão humana: geração/pré-classificação por IA (teacher) → revisão humana individual em interface Gradio → consenso entre revisoras. Esse suplemento inclui fala afirmativa e casos difíceis, justamente para corrigir os falsos positivos da v2.1.
- Split: 80% treino / 10% validação / 10% teste, seed 42, estratificado por rótulo, deduplicado antes do split.
- Avaliação: sempre no teste held-out; nenhuma métrica deste card foi medida em dados de treino.
💻 Como usar
pip install transformers torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
model_name = "Veronyka/tybyria-v2.2"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
text = "Seu texto aqui"
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=256)
with torch.no_grad():
probs = torch.softmax(model(**inputs).logits, dim=-1)
hate_prob = probs[0][1].item()
THRESHOLD = 0.40
if hate_prob >= THRESHOLD:
print(f"Provável ódio ({hate_prob:.2%}) — encaminhar para revisão humana")
elif hate_prob >= 0.30:
print(f"Incerto ({hate_prob:.2%}) — revisão humana recomendada")
else:
print(f"Baixo risco ({hate_prob:.2%})")
⚠️ Limitações
- Falsos positivos residuais em fala afirmativa: no threshold 0,40, 1 das 12 frases afirmativas do nosso conjunto de sondagem ainda é marcada como ódio — "Bissexualidade é válida, parem de apagar" (prob. 0,515). Frases afirmativas com vocabulário de confronto ("parem de", "chega de") podem escorregar. Revisão humana resolve.
- Sem contexto conversacional: o modelo classifica texto isolado (máx. 256 tokens). Ironia, sarcasmo, citação de ódio para denunciá-lo e linguagem cifrada podem ser mal classificados.
- Domínio: treinado em comentários de redes sociais sobre conteúdo LGBTQIA+ — base anotada do Instagram mais exemplos de TikTok e YouTube incorporados via revisão humana no suplemento da v2.2. Desempenho pode variar em outros gêneros textuais e em português não brasileiro.
- Escopo: focado em ódio anti-LGBTQIA+; não é um detector geral de racismo, xenofobia etc.
- 23 falsos positivos em 256 exemplos (@0,40) significa que, em uso real, uma fração relevante dos alertas não será ódio — dimensione a capacidade de revisão humana de acordo.
🔍 Nota metodológica
As métricas deste card foram medidas em conjunto de teste held-out (dados nunca usados no treino), com o modelo publicado neste repositório, em reavaliação de 19/07/2026. Números publicados anteriormente para a v2.1 usavam um protocolo de avaliação que incluía dados de treino; o card da v2.1 foi corrigido com os valores held-out.
📊 Dataset
Base de Dados de Ódio LGBTQIA+ (acesso gated): 12.102 comentários coletados (TikTok, YouTube, Instagram), 1.891 anotados manualmente (703 ódio = 37,2%), em 33 categorias — transfobia, homofobia, lesbofobia, bifobia, assédio, ameaças, patologização, desumanização, misgendering/deadnaming, entre outras.
📚 Citação
@software{tybyria_v22,
title={TybyrIA v2.2: Sistema de Detecção de Discurso de Ódio Anti-LGBTQIA+ em Português Brasileiro},
author={{Código Não Binário}},
year={2026},
url={https://huggingface.co/Veronyka/tybyria-v2.2},
note={Warm-start a partir da TybyrIA v2.1 (base: FpOliveira/tupi-bert-base-portuguese-cased).
Teste held-out (n=256): recall 97,3\%, precisão 86,3\% @ threshold 0,40.
Dataset: Base de Dados de Ódio LGBTQIA+ (Código Não Binário).}
}
📄 Licença
Pesos e artefatos deste repositório: MIT (arquivo LICENSE). O dataset de treino permanece sob CC-BY-NC-SA-4.0 no card do dataset. Respeite a licença dos dados e dos pesos base ao redistribuir ou treinar derivados.
🇬🇧 English summary
TybyrIA v2.2 is the canonical model of the TybyrIA project for detecting anti-LGBTQIA+ hate speech in Brazilian Portuguese, developed by the NGO Código Não Binário. It supersedes v2.1 (kept as legacy).
- Held-out test metrics (256 examples, 149 hate; 80/10/10 split, seed 42, stratified, deduplicated before splitting), independently verified on 2026-07-19 with the published weights: recall 97.3%, precision 86.3%, accuracy 89.5%, F1 91.5% at the recommended threshold 0.40 (FN 4, FP 23). At 0.45: recall 92.6%, precision 93.9%. At 0.30: recall 99.3%, precision 83.1%.
- Training: warm-start from v2.1; 2,551 examples (58.1% hate) = 1,891 manually annotated Instagram comments + 660 new examples from an AI-teacher → human review (Gradio) → consensus pipeline, designed to fix v2.1's false positives on affirmative speech (down from 10/12 to 1/12 probe sentences at 0.40).
- Transparency note: an independent audit on 2026-07-19 found that v2.1's previously published 98.44% recall had been measured on data that included 80% training examples. All v2.2 metrics above are held-out only.
- Intended use: screening/triage with human review. Probabilities 0.30–0.40: human review; ≥0.40: likely hate, still requires human review before action. Never use for automated blocking without human review.
- License: model weights MIT; training dataset CC-BY-NC-SA-4.0.
🏳️🌈 Desenvolvido com orgulho para a comunidade LGBTQIA+ brasileira
Versão: 2.2.0 | Treinada: 15/04/2026 | Card revisado: 19/07/2026 | Contato: via Hugging Face ou em codigonaobinario.org
- Downloads last month
- 97
Model tree for Veronyka/tybyria-v2.2
Dataset used to train Veronyka/tybyria-v2.2
Spaces using Veronyka/tybyria-v2.2 2
Evaluation results
- Recall (classe ódio) @ threshold 0.40 on Base de Dados de Ódio LGBTQIA+ — teste held-out (256 exemplos, seed 42, estratificado, deduplicado antes do split)test set self-reported0.973
- Precisão (classe ódio) @ threshold 0.40 on Base de Dados de Ódio LGBTQIA+ — teste held-out (256 exemplos, seed 42, estratificado, deduplicado antes do split)test set self-reported0.863
- Acurácia @ threshold 0.40 on Base de Dados de Ódio LGBTQIA+ — teste held-out (256 exemplos, seed 42, estratificado, deduplicado antes do split)test set self-reported0.895
- F1 (classe ódio) @ threshold 0.40 on Base de Dados de Ódio LGBTQIA+ — teste held-out (256 exemplos, seed 42, estratificado, deduplicado antes do split)test set self-reported0.915