HelBERT-base / README.md
vic35get's picture
Update README.md
6dc0682 verified
---
library_name: transformers
tags:
- legal
- licitação
- editais
license: apache-2.0
language:
- pt
metrics:
- accuracy
- f1
- precision
- recall
- perplexity
base_model:
- google-bert/bert-base-uncased
pipeline_tag: fill-mask
datasets:
- vic35get/bidCorpus
---
# HelBERT: Modelo BERT para Contratações Públicas
O **HelBERT** é um modelo de linguagem baseado na arquitetura BERT, pré-treinado com mais de **1,4 bilhão de tokens** extraídos de **editais de licitação, contratos públicos e legislações brasileiras**, com foco exclusivo no domínio jurídico de **contratações públicas**.
Foi desenvolvido para superar modelos genéricos e jurídicos existentes em tarefas específicas do setor público, como **classificação de objetos de contratação** e **identificação de indícios de fraude em editais**.
---
## 🧠 Detalhes do Modelo
- **Arquitetura:** BERT-Base (12 camadas, 110M parâmetros)
- **Tarefa de pré-treinamento:** Masked Language Modeling (MLM)
- **Tokenizador:** WordPiece especializado em domínio jurídico
- **Corpora:** Comprasnet, TCE-PI, PNCP, Leis de Licitação
- **Tamanho do vocabulário:** 33 mil subpalavras
- **Precisão:** 95.87% F1 na classificação de objetos e 91.65% F1 na detecção de fraudes
---
## 🧪 Avaliação
| Tarefa | F1-Weighted | Accuracy |
|-----------------------------------------|-------------|----------|
| Classificação de objetos de contratação | 95.87% | 95.87% |
| Classificação de indícios de fraude | 91.65% | 86.08% |
### Outras métricas:
- **Perplexidade:** 3.4–3.5 nos datasets jurídicos
- **Fertilidade do tokenizador:** 1.17–1.18 (baixo número de subpalavras por palavra)
---
## ✅ Como usar
```python
from transformers import AutoTokenizer, AutoModelForMaskedLM
tokenizer = AutoTokenizer.from_pretrained("vic35get/HelBERT-base")
model = AutoModelForMaskedLM.from_pretrained("vic35get/HelBERT-base")
input_text = "A proposta será avaliada com base no critério do [MASK]."
inputs = tokenizer(input_text, return_tensors="pt")
outputs = model(**inputs)
```
## 📚 Dados de Treinamento
- **Documentos utilizados:** mais de 460 mil, incluindo editais de licitação, contratos administrativos, termos de referência, atas e legislações.
- **Fontes:** COMPRASNET, Portal Nacional de Contratações Públicas (PNCP), Tribunal de Contas do Estado do Piauí (TCE-PI) e portais de transparência do governo.
- **Total de tokens:** aproximadamente 1,49 bilhão.
- **Conjunto de treino:** 9,7 milhões de amostras.
- **Conjunto de validação:** 100 mil amostras.
- **Pré-processamento aplicado:**
- Remoção de ruído estrutural (headers, URLs, assinaturas).
- Padronização de entidades como CNPJs, números, datas e e-mails.
- Normalização de vocabulário e unificação de sinônimos.
- Segmentação de sentenças com o NLTK.
---
## ⚙️ Configuração de Treinamento
- **Épocas de pré-treinamento:** 6
- **Batch total:** 128 (32 por etapa × 4 de accumulation)
- **Max length por sequência:** 128 tokens
- **Otimizador:** AdamW (β₁=0.9, β₂=0.999, ε=1e−6)
- **Weight decay:** 0.01
- **Taxa de aprendizado:** 1e-4
- **Precisão:** FP16 (mixed precision)
- **Tempo total de treinamento:** ~72 horas
- **Hardware:** GPU Quadro RTX 4000 (8 GB)
---
## 📌 Aplicações Recomendadas
### 🧩 Uso Direto (sem fine-tuning)
- Preenchimento de lacunas em textos jurídicos (MLM)
- Geração de embeddings especializados para domínios públicos
- Suporte a tarefas de recuperação de informação jurídica
### 🏷️ Ajuste Fino (downstream tasks)
- Classificação do tipo de objeto em editais de licitação
- Detecção automática de indícios de fraude ou risco em contratações públicas
- Análise de cláusulas contratuais e segmentação semântica
---
## ❗ Limitações
- O modelo foi treinado exclusivamente com documentos do setor público, podendo apresentar viés ao ser aplicado fora desse domínio (como contratos privados ou sentenças judiciais).
- Linguagem com forte padrão normativo e técnico pode dificultar a generalização para contextos mais informais.
- Restrições computacionais limitaram o número de épocas e a variedade de batch sizes testados.
---
## 🌱 Impacto Ambiental
Estimativas aproximadas baseadas na ferramenta [Machine Learning CO2 Impact](https://mlco2.github.io/impact#compute):
- **Tipo de hardware:** GPU Quadro RTX 4000 (8GB)
- **Tempo de uso:** ~72 horas
- **Região de computação:** Local (Brasil)
- **Emissão estimada de CO₂eq:** ~21.6 kg
---
<!-- ## 📜 Citação
Se este modelo for útil para você, por favor, cite da seguinte forma:
```bibtex
@misc{ribeiro2025helbert,
title={HelBERT: Um Modelo de Linguagem pré-treinado para o domínio de Contratações Públicas},
author={Victor Ribeiro da Silva and Ricardo de Andrade Lira Rabelo},
year={2025},
howpublished={\url{https://huggingface.co/seu-usuario/helbert}}
} -->