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
from transformers import AutoTokenizer, AutoModelForMaskedLM
tokenizer = AutoTokenizer.from_pretrained("seu-usuario/helbert")
model = AutoModelForMaskedLM.from_pretrained("seu-usuario/helbert")
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:
- 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
- Downloads last month
- 11
Model tree for vic35get/HelBERT-base
Base model
google-bert/bert-base-uncased