| | --- |
| | license: mit |
| | language: |
| | - pt |
| | library_name: transformers |
| | tags: |
| | - text-classification |
| | - binary-classification |
| | - modernbert |
| | - pytorch |
| | - transformers |
| | datasets: |
| | - tcepi/prog_integridade_dataset |
| | metrics: |
| | - accuracy |
| | - f1 |
| | - precision |
| | - recall |
| | - roc_auc |
| | base_model: answerdotai/ModernBERT-base |
| | pipeline_tag: text-classification |
| | model-index: |
| | - name: prog_integridade_model |
| | results: |
| | - task: |
| | type: text-classification |
| | name: Binary Text Classification |
| | dataset: |
| | name: tcepi/prog_integridade_dataset |
| | type: tcepi/prog_integridade_dataset |
| | split: test |
| | metrics: |
| | - name: Accuracy |
| | type: accuracy |
| | value: 0.9944 |
| | - name: F1 |
| | type: f1 |
| | value: 0.9944 |
| | - name: Precision |
| | type: precision |
| | value: 0.9944 |
| | - name: Recall |
| | type: recall |
| | value: 0.9944 |
| | - name: ROC-AUC |
| | type: roc_auc |
| | value: 0.9984 |
| | --- |
| | |
| | # Programa de Integridade Classification Model |
| |
|
| | Este modelo é um fine-tune do [ModernBERT-base](https://huggingface.co/answerdotai/ModernBERT-base) para classificação binária, treinado no dataset [tcepi/prog_integridade_dataset](https://huggingface.co/datasets/tcepi/prog_integridade_dataset). |
| |
|
| | ## Descrição do Modelo |
| |
|
| | - **Modelo Base:** answerdotai/ModernBERT-base |
| | - **Tarefa:** Classificação Binária de Texto |
| | - **Linguagem:** Português (pt) |
| | - **Framework:** PyTorch + Transformers |
| |
|
| | ## Métricas de Performance |
| |
|
| | ### Conjunto de Teste |
| |
|
| | | Métrica | Valor | |
| | |---------|-------| |
| | | **Accuracy** | 0.9944 | |
| | | **F1-Score** | 0.9944 | |
| | | **Precision** | 0.9944 | |
| | | **Recall** | 0.9944 | |
| | | **ROC-AUC** | 0.9984 | |
| | | **Specificity** | 0.9905 | |
| |
|
| | ### Matriz de Confusão |
| |
|
| | | | Predito Negativo | Predito Positivo | |
| | |--|-----------------|-----------------| |
| | | **Real Negativo** | 522 (TN) | 5 (FP) | |
| | | **Real Positivo** | 1 (FN) | 541 (TP) | |
| |
|
| | ### Relatório de Classificação |
| |
|
| | ``` |
| | precision recall f1-score support |
| | |
| | Negativo 0.9981 0.9905 0.9943 527 |
| | Positivo 0.9908 0.9982 0.9945 542 |
| | |
| | accuracy 0.9944 1069 |
| | macro avg 0.9945 0.9943 0.9944 1069 |
| | weighted avg 0.9944 0.9944 0.9944 1069 |
| | |
| | ``` |
| |
|
| | ## Uso |
| |
|
| | ```python |
| | from transformers import AutoTokenizer, AutoModelForSequenceClassification |
| | import torch |
| | |
| | # Carregar modelo e tokenizer |
| | tokenizer = AutoTokenizer.from_pretrained("tcepi/prog_integridade_model") |
| | model = AutoModelForSequenceClassification.from_pretrained("tcepi/prog_integridade_model") |
| | |
| | # Classificar texto |
| | text = "Seu texto aqui" |
| | inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=8192) |
| | |
| | with torch.no_grad(): |
| | outputs = model(**inputs) |
| | predictions = torch.softmax(outputs.logits, dim=-1) |
| | predicted_class = torch.argmax(predictions, dim=-1).item() |
| | |
| | print(f"Classe predita: {model.config.id2label[predicted_class]}") |
| | print(f"Probabilidades: {predictions.tolist()}") |
| | ``` |
| |
|
| | ## Treinamento |
| |
|
| | ### Hiperparâmetros |
| |
|
| | - **Épocas:** 10 |
| | - **Learning Rate:** 2e-5 |
| | - **Batch Size:** 8 |
| | - **Weight Decay:** 0.01 |
| | - **Warmup Ratio:** 0.1 |
| | - **Mixed Precision:** FP16 |
| | - **Optimizer:** AdamW |
| |
|
| | ### Informações de Treinamento |
| |
|
| | - **Tempo Total:** 2731.90 segundos |
| | - **Samples/segundo:** 14.07 |
| | - **Loss Final:** 0.0701 |
| |
|
| | ### Tabela de Métricas por Época |
| |
|
| | | epoch | eval_loss | eval_accuracy | eval_f1 | eval_roc_auc | eval_specificity | |
| | |--------:|------------:|----------------:|----------:|---------------:|-------------------:| |
| | | 1 | 0.188758 | 0.946262 | 0.946277 | 0.997855 | 0.985294 | |
| | | 2 | 0.0218751 | 0.990654 | 0.990654 | 0.999912 | 0.990196 | |
| | | 3 | 0.0222455 | 0.992991 | 0.992993 | 0.999869 | 1 | |
| | | 4 | 0.0971301 | 0.983645 | 0.983653 | 0.999934 | 1 | |
| | | 5 | 0.0337453 | 0.990654 | 0.990649 | 1 | 0.980392 | |
| | | 6 | 0.0275761 | 0.997664 | 0.997664 | 0.999956 | 1 | |
| | | 7 | 0.0167756 | 0.997664 | 0.997664 | 1 | 1 | |
| | | 8 | 0.0292979 | 0.997664 | 0.997664 | 0.999912 | 1 | |
| | | 9 | 0.0309485 | 0.997664 | 0.997664 | 0.999912 | 1 | |
| | | 10 | 0.0248101 | 0.997664 | 0.997664 | 0.999956 | 1 | |
| |
|
| | ### Curvas de Treinamento |
| |
|
| | #### Loss curve |
| |  |
| |
|
| | #### Métricas por Época |
| |  |
| |
|
| | ## Dataset |
| |
|
| | O modelo foi treinado usando o dataset [tcepi/prog_integridade_dataset](https://huggingface.co/datasets/tcepi/prog_integridade_dataset). |
| |
|
| | ## Limitações |
| |
|
| | - O modelo foi treinado especificamente para o domínio do dataset Programa de Integridade, e pode não generalizar bem para outros tipos de texto ou domínios. |
| | - Performance pode variar em textos de outros domínios |
| | - Recomenda-se avaliar o modelo antes de usar em produção |
| |
|