Downloads · 30 days
6
9% of all-time downloads
DevOB/modelo-beto-nivelDeRiesgo5
modelo-beto-nivelDeRiesgo5 is a text classification model from DevOB. Use it when you need a label for a piece of text. The card lists the license as apache-2.0.
Modelo BETO ajustado finamente (fine-tuned) para la clasificación del nivel de riesgo institucional en comentarios cualitativos de heteroevaluación docente en español, en el contexto de la Universidad Francisco de Pau…
Downloads · 30 days
6
9% of all-time downloads
All-time downloads
70
Public
Parameters
110M
439 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors439 MB · 100%
From the Hugging Face model README
Modelo BETO ajustado finamente (fine-tuned) para la clasificación del nivel de riesgo institucional en comentarios cualitativos de heteroevaluación docente en español, en el contexto de la Universidad Francisco de Paula Santander (UFPS), Colombia.
El modelo clasifica comentarios estudiantiles anónimos en tres niveles:
| Etiqueta | Descripción |
|---|---|
BAJO | Comentario sin señales de riesgo institucional |
MEDIO | Comentario con señales de atención moderada |
ALTO | Comentario con señales de riesgo que requieren atención institucional prioritaria |
Este modelo es un fine-tuning de BETO — el modelo BERT preentrenado en español desarrollado por el DCC UChile — adaptado para clasificación multiclase de texto educativo informal en español latinoamericano.
El entrenamiento forma parte de un proyecto de investigación orientado a automatizar el análisis de los resultados del sistema de evaluación docente (SET) de la UFPS, reemplazando la revisión manual de cientos de comentarios estudiantiles por semestre con un componente de inteligencia artificial capaz de detectar automáticamente situaciones que requieren atención del director de departamento.
El modelo fue seleccionado como parte de un experimento comparativo que incluyó cuatro arquitecturas Transformer preentrenadas en español: RoBERTuito, BETO, DistilBETO y Electricidad (ELECTRA-es). El número de épocas de entrenamiento (5) fue determinado mediante análisis de curvas de pérdida para garantizar que el modelo opera en su punto óptimo de generalización, previo al inicio del sobreajuste.
pip install transformers torch
from transformers import pipeline
clasificador = pipeline(
"text-classification",
model="DevOB/modelo-beto-nivelDeRiesgo5",
tokenizer="DevOB/modelo-beto-nivelDeRiesgo5",
)
comentario = "El profesor nunca llegaba a tiempo y no respondía las preguntas en clase."
resultado = clasificador(comentario)
print(resultado)
# [{'label': 'MEDIO', 'score': 0.82}]
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
model_id = "DevOB/modelo-beto-nivelDeRiesgo5"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForSequenceClassification.from_pretrained(model_id)
model.eval()
comentario = "Este profesor tiene actitudes irrespetuosas hacia los estudiantes."
inputs = tokenizer(
comentario,
return_tensors="pt",
truncation=True,
max_length=128,
padding="max_length"
)
with torch.no_grad():
outputs = model(**inputs)
probs = torch.softmax(outputs.logits, dim=-1)
id2label = model.config.id2label
prediccion = id2label[probs.argmax().item()]
confianza = probs.max().item()
print(f"Nivel de riesgo: {prediccion} (confianza: {confianza:.2%})")
El modelo fue entrenado sobre un corpus de 9,457 comentarios cualitativos en español originados en evaluaciones docentes estudiantiles (heteroevaluación), con la siguiente distribución de clases:
| Clase | Muestras | Porcentaje |
|---|---|---|
| BAJO | 4,603 | 48.7% |
| MEDIO | 3,071 | 32.5% |
| ALTO | 1,783 | 18.9% |
El corpus fue construido a partir de comentarios reales anonimizados de la UFPS, complementados con datos traducidos al español desde el inglés mediante Gemini Pro para enriquecer la representación de las clases de menor frecuencia. Los textos fueron limpiados y normalizados manteniendo las características del lenguaje coloquial estudiantil (abreviaciones, errores ortográficos típicos) para preservar la distribución lingüística real del entorno de producción.
Partición del dataset:
| Parámetro | Valor |
|---|---|
| Modelo base | dccuchile/bert-base-spanish-wwm-cased |
| Épocas | 5 |
| Batch size (entrenamiento) | 16 |
| Batch size (evaluación) | 32 |
| Longitud máxima de tokens | 128 |
| Warmup steps | 100 |
| Weight decay | 0.01 |
| Semilla | 42 |
| Hardware | NVIDIA GeForce RTX 4060 |
| CUDA | 12.1 |
| Framework | PyTorch 2.6.0 + Transformers 4.47.0 |
El número de épocas (5) fue seleccionado mediante análisis de curvas de pérdida. En el experimento de 12 épocas, la Loss de validación de BETO comienza a divergir significativamente de la Loss de entrenamiento a partir de la época 6 (eval_loss > 0.90), señal de sobreajuste. La época 5 representa el último punto con eval_loss < 0.90 (0.8376), garantizando generalización real sin memorización del corpus.
Curva de pérdida (experimento 12 épocas):
| Época | Loss Train | Loss Eval | F1-Macro | Accuracy |
|---|---|---|---|---|
| 1 | 0.3385 | 0.5158 | 76.10% | 78.38% |
| 2 | 0.2547 | 0.4799 | 78.61% | 81.82% |
| 3 | 0.1699 | 0.6736 | 77.99% | 81.18% |
| 4 | 0.1133 | 0.7982 | 79.40% | 81.92% |
| 5 | 0.0722 | 0.8798 | 80.03% | 82.51% |
| 6 | 0.0767 | 0.9168 ⚠️ | 80.67% | 82.88% |
| 7 | 0.0298 | 1.1149 ⚠️ | 80.39% | 82.88% |
⚠️ Sobreajuste detectado a partir de época 6 (eval_loss > 0.90).
Evaluación sobre el conjunto de prueba (1,892 muestras, época 5):
| Métrica | Valor |
|---|---|
| F1-Macro | 80.79% |
| Accuracy | 83.40% |
| Precision (macro) | 81.29% |
| Recall (macro) | 80.45% |
| Eval Loss | 0.8376 |
| Clase | Precision | Recall | F1-Score | Soporte |
|---|---|---|---|---|
| BAJO | 93% | 91% | 92% | 921 |
| MEDIO | 73% | 79% | 76% | 614 |
| ALTO | 78% | 71% | 74% | 357 |
| Pred. BAJO | Pred. MEDIO | Pred. ALTO | |
|---|---|---|---|
| Real BAJO | 839 (91.1%) | 80 (8.7%) | 2 (0.2%) |
| Real MEDIO | 59 (9.6%) | 484 (78.8%) | 71 (11.6%) |
| Real ALTO | 5 (1.4%) | 97 (27.2%) | 255 (71.4%) |
⚠️ Nota importante: 97 comentarios de clase ALTO son clasificados como MEDIO (27.2% de falsos negativos críticos). Para aplicaciones donde la detección de riesgo alto es prioritaria, se recomienda evaluar el ajuste de umbral de decisión o considerar modelos con mayor Recall en la clase ALTO (ver DistilBETO de este mismo proyecto).
✅ Casos de uso apropiados:
❌ Casos de uso no apropiados: