|
|
--- |
|
|
license: apache-2.0 |
|
|
language: ca |
|
|
tags: |
|
|
- grammar-correction |
|
|
- català |
|
|
- mt5 |
|
|
- lora |
|
|
- seq2seq |
|
|
datasets: |
|
|
- custom |
|
|
metrics: |
|
|
- bleu |
|
|
- google_bleu |
|
|
- wer |
|
|
--- |
|
|
|
|
|
# mT5 català per a correcció gramatical |
|
|
|
|
|
Aquest model està basat en **mT5-base**, adaptat específicament al **català**, i entrenat per fer **correcció gramatical** automàtica. És capaç de corregir errors d'ortografia, concordança, conjugació, castellanismes i altres formes habituals d’errades en frases en català. |
|
|
|
|
|
El model ha estat fusionat en una única versió, que inclou el preentrenament, el fine-tuning i els pesos LoRA, de manera que es pot utilitzar directament sense dependències de PEFT ni adapters externs. |
|
|
|
|
|
--- |
|
|
|
|
|
## Resultats d'avaluació |
|
|
|
|
|
El model ha estat avaluat sobre un conjunt de 10.000 frases amb errors i correccions: |
|
|
|
|
|
| Mètrica | Valor | |
|
|
|--------------|-----------| |
|
|
| **BLEU** | 77.70 | |
|
|
| **GLEU** | 0.77 | |
|
|
| **ERRate** | 0.14 | |
|
|
|
|
|
|
|
|
--- |
|
|
|
|
|
## Entrenament |
|
|
|
|
|
- **Preentrenament amb span-masking:** |
|
|
S’han usat **1.5 milions de frases** en català amb un objectiu de preentrenament tipus seq2seq per adaptar el model base mT5 al català. |
|
|
|
|
|
- **Fine-tuning amb LoRA:** |
|
|
Sobre aquest model adaptat, s’ha fet fine-tuning amb **1.5 milions de parelles frase-error → frase-correcta**, usant la tècnica **LoRA** per millorar eficiència i modularitat. |
|
|
|
|
|
--- |
|
|
|
|
|
## Exemple d’ús |
|
|
|
|
|
```python |
|
|
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM |
|
|
|
|
|
model = AutoModelForSeq2SeqLM.from_pretrained("Oriolshhh/parlabe-mt5-ca-corrector") |
|
|
tokenizer = AutoTokenizer.from_pretrained("Oriolshhh/parlabe-mt5-ca-corrector") |
|
|
|
|
|
text_erroni = "Demà tenim que fer una excursió a la montanya." |
|
|
input_text = f"Corregeix la frase: {text_erroni}" |
|
|
|
|
|
inputs = tokenizer(input_text, return_tensors="pt") |
|
|
outputs = model.generate(**inputs) |
|
|
correccio = tokenizer.decode(outputs[0], skip_special_tokens=True) |
|
|
|
|
|
print(correccio) |
|
|
# → "Demà hem de fer una excursió a la muntanya." |
|
|
|