palaciodata's picture
Update README.md
a1e6aec verified
|
Raw
History Blame Contribute Delete
2.35 kB
---
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}"
)