--- 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("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](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 ---