--- license: apache-2.0 datasets: - nilc-nlp/assin2 language: - pt metrics: - f1 - accuracy - mae base_model: - Itau-Unibanco/NorBERTo-base tags: - NLI - MultiTask - Similarity-Sentence --- Modelo multitask para Natural Language Inference (NLI) em português brasileiro, baseado no [NorBERTo](https://huggingface.co/Itau-Unibanco/NorBERTo-base). ## Tarefas - **Classificação**: Entailment (NONE(0), ENTAILMENT(1)) - **Regressão**: Similaridade semântica (escala 0-5) ## Dataset Treinado no [ASSIN2](https://huggingface.co/datasets/nilc-nlp/assin2) (Avaliação de Similaridade Semântica e Inferência Natural). ## Resultados ### Melhor desempenho em validação | Métrica | Valor | |----------|---------| | Accuracy | 96.4% | | F1 Score | 96.4% | | MAE (Similaridade) | 0.233 | ### Desempenho no conjunto de teste | Métrica | Valor | |----------|---------| | Accuracy | 90.60% | | F1 Score | 90.60% | | MAE (Similaridade) | 0.467 | | Loss | 0.804 | ### Histórico de treinamento | Epoch | Train Loss | Val Loss | Accuracy | F1 | Sim MAE | |---------|---------|---------|---------|---------|---------| | 1 | 0.524 | 0.488 | 90.2% | 90.2% | 0.366 | | 2 | 0.329 | 0.318 | 94.6% | 94.6% | 0.284 | | 3 | 0.174 | 0.283 | 95.8% | 95.8% | 0.259 | | 4 | 0.134 | 0.253 | 96.4% | 96.4% | 0.239 | | 5 | 0.064 | 0.266 | 96.4% | 96.4% | 0.233 | ## Uso ```python from transformers import AutoTokenizer from huggingface_hub import hf_hub_download import onnxruntime as ort import numpy as np tokenizer = AutoTokenizer.from_pretrained( "palaciodata/NorBERTo-base-NLI-Multitask" ) model_path = hf_hub_download( repo_id="palaciodata/NorBERTo-base-NLI-Multitask", filename="model.onnx" ) session = ort.InferenceSession(model_path) premissa = "Uma criança risonha está segurando uma pistola de água e sendo espirrada com água" hipotese = "Uma criança está segurando uma pistola de água" inputs = tokenizer( premissa, hipotese, return_tensors="np", max_length=256, truncation=True, padding="max_length" ) logits, similarity = session.run( None, { "input_ids": inputs["input_ids"].astype(np.int64), "attention_mask": inputs["attention_mask"].astype(np.int64), } ) classe = np.argmax(logits, axis=1)[0] print( f"Classe: {classe}, Similaridade: {float(similarity[0]):.3f}" )