mbert-sv / README.md
caeher's picture
Add mBERT-SV checkpoint-1072 (F1-macro 0.7777)
2ea985e verified
|
Raw
History Blame Contribute Delete
2.85 kB
---
language:
- es
license: apache-2.0
base_model: google-bert/bert-base-multilingual-cased
tags:
- text-classification
- hate-speech
- toxicity
- spanish
- el-salvador
- mbert
pipeline_tag: text-classification
library_name: transformers
metrics:
- f1
- accuracy
model-index:
- name: mbert-sv
results:
- task:
type: text-classification
name: Toxicidad en español salvadoreño
dataset:
name: Corpus tesina (test, n=460)
type: custom
metrics:
- type: f1
value: 0.7777
name: F1-macro
- type: accuracy
value: 0.7826
name: Accuracy
---
# mBERT-SV — Clasificación de toxicidad (El Salvador)
Fine-tuning de [`bert-base-multilingual-cased`](https://huggingface.co/google-bert/bert-base-multilingual-cased) para clasificación **multiclase** de toxicidad en redes sociales en español salvadoreño.
Checkpoint de auditoría: **`checkpoint-1072`** (época 4, semilla 42).
## Etiquetas
| id | etiqueta |
|----|----------|
| 0 | No Tóxico |
| 1 | Lenguaje Ofensivo |
| 2 | Discurso de Odio |
| 3 | Amenazas/Violencia |
## Contrato de inferencia
| Campo | Valor |
|-------|-------|
| `max_length` | 128 |
| Columna de texto | `texto_modelo` |
| Normalizador | `normalize_for_model` v1.1 |
Si el texto no está preprocesado, hay que aplicar el mismo normalizador del repositorio de la tesina.
## Métricas oficiales (test, n = 460)
| Métrica | Valor |
|---------|-------|
| F1-macro | **0.7777** |
| Accuracy | 0.7826 |
| Precision-macro | 0.7809 |
| Recall-macro | 0.7757 |
| QWK | 0.7362 |
F1 por clase: No Tóxico 0.814 · Lenguaje Ofensivo 0.795 · Discurso de Odio 0.746 · Amenazas/Violencia 0.756.
## Uso
```python
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
repo_id = "caeher/mbert-sv"
tokenizer = AutoTokenizer.from_pretrained(repo_id)
model = AutoModelForSequenceClassification.from_pretrained(repo_id)
text = "ejemplo de comentario"
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=128)
with torch.no_grad():
logits = model(**inputs).logits
pred = int(logits.argmax(dim=-1))
print(model.config.id2label[pred])
```
## Archivos
- `model.safetensors`, `config.json`, `tokenizer.json`, `tokenizer_config.json`
- `inference_contract.json` — contrato de preprocesamiento
- `test_metrics.json` / `train_metrics.json` — métricas del checkpoint
## Limitaciones
Modelo de tesina, no un moderador autónomo. El corpus es de El Salvador; el desempeño puede caer en otros dialectos o en jerga adversarial. FPR sobre jerga no tóxica y cortes por plataforma están documentados en el informe del proyecto.