ftr-bertimbau-large
Este modelo é uma versão fine-tuned do BERTimbau-large (um modelo BERT pré-treinado em português) especializado na triagem de petições iniciais do contexto jurídico brasileiro. Ele classifica trechos de documentos nas categorias Tese Jurídica (0), Fato (1) ou Ruído (2).
O modelo foi treinado e avaliado utilizando um corpus institucional inédito contendo mais de 25 mil trechos de petições iniciais reais, provenientes do Tribunal de Justiça do Estado de Goiás (TJGO). O objetivo é auxiliar a triagem de documentos nos fluxos de trabalho judiciais, otimizando o tempo de processamento.
Publicação
🏆 Aceito para publicação no ENIAC 2026 (Encontro Nacional de Inteligência Artificial e Computacional).
📄 Artigo: "Fact, Legal Thesis, and Noise: Comparing Classical ML, BERT, and LLMs for Triage of Initial Petitions in Brazilian Portuguese". 🔗 DOI: [A DEFINIR EM BREVE]
Resultados e Métricas (Conjunto de Teste)
O modelo obteve desempenho no estado da arte ao separar as três classes (Tese, Fato e Ruído) em documentos não estruturados, demonstrando excelente adaptação ao dialeto jurídico brasileiro.
Métricas Gerais:
- Acurácia: 0.990
- Macro-F1: 0.990
- Precisão Macro: 0.990
- Recall Macro: 0.990
F1-Score por Classe:
- Fato: 0.986
- Tese Jurídica: 0.985
- Ruído (Cabeçalhos, rodapés, etc.): 0.999
Nota: Erros do modelo estão concentrados quase que exclusivamente em trechos altamente ambíguos onde a narração de um evento factual se mistura indissociavelmente com a invocação de um dispositivo legal. Avaliações com especialistas do tribunal confirmaram que tais casos geram incerteza até mesmo entre profissionais de direito (Fleiss' kappa = 0.46 nestes recortes difíceis).
Como Usar
Você pode utilizar este modelo diretamente com a biblioteca transformers:
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
tokenizer = AutoTokenizer.from_pretrained("Willgnner-Santos/ftr-bertimbau-large")
model = AutoModelForSequenceClassification.from_pretrained("Willgnner-Santos/ftr-bertimbau-large")
texto = "Narra a parte autora que sofreu um acidente de trânsito causado pela negligência da ré..."
inputs = tokenizer(texto, return_tensors="pt", truncation=True, max_length=512)
with torch.no_grad():
logits = model(**inputs).logits
predicao = torch.argmax(logits, dim=1).item()
# Mapeamento oficial:
# 0 = Tese Jurídica
# 1 = Fato
# 2 = Ruído
print(f"Classe predita: {predicao}")
Detalhes do Treinamento
- Arquitetura Base:
neuralmind/bert-large-portuguese-cased(BERTimbau Large) - Max Length: 512 tokens
- Batch Size: 48
- Learning Rate: 4.9e-5
- Epochs: 10 (com Early Stopping)
Limitações e Recomendações
- Limite de Contexto: O modelo processa até 512 tokens. Para textos mais longos, o texto deve ser truncado ou dividido em janelas menores.
- Privacidade: Todos os documentos utilizados no treinamento (do TJGO) passaram por um rigoroso processo de anonimização para mascarar entidades sensíveis (nomes, CPFs, valores, etc).
- Uso Responsável: O modelo serve como ferramenta de auxílio e suporte à triagem institucional e não deve substituir a análise humana final em tomadas de decisão sensíveis ou na avaliação do mérito jurídico.
- Downloads last month
- 17