modelo-electricidad-nivelDeRiesgo5

Modelo Electricidad 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

Descripción del modelo

Este modelo es un fine-tuning de Electricidad — implementación en español de la arquitectura ELECTRA desarrollada por mrm8488 — adaptado para clasificación multiclase de texto educativo informal en español latinoamericano.

A diferencia de los modelos basados en BERT (que son codificadores MLM), ELECTRA utiliza un discriminador entrenado para identificar tokens reemplazados, lo que generalmente produce representaciones más eficientes con menos parámetros de entrenamiento. Sin embargo, en este experimento Electricidad mostró una curva de aprendizaje más errática que los demás modelos y tendencia al sobreajuste desde épocas tempranas.


Uso del modelo

Instalación

pip install transformers torch

Inferencia directa

from transformers import pipeline

clasificador = pipeline(
    "text-classification",
    model="DevOB/modelo-electricidad-nivelDeRiesgo5",
    tokenizer="DevOB/modelo-electricidad-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.79}]

Inferencia con Transformers completo

import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification

model_id = "DevOB/modelo-electricidad-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%})")

Datos de entrenamiento

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:

  • Entrenamiento: 80% (7,565 muestras)
  • Prueba: 20% (1,892 muestras)
  • Semilla aleatoria: 42

Configuración de entrenamiento

Parámetro Valor
Modelo base mrm8488/electricidad-base-discriminator
Épocas 3
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 (3) fue seleccionado mediante análisis de curvas de pérdida. Electricidad exhibe un comportamiento de sobreajuste más temprano que los demás modelos del proyecto: en el experimento de 12 épocas, la Loss de validación ya supera el umbral de 0.90 en la época 5 (eval_loss=0.9727), mientras que la época 4 muestra señales de inestabilidad (eval_loss=0.7735 con caída de F1). La época 3 representa el último punto con curvas de pérdida estables y generalización confiable (eval_loss=0.5708).

Resultados de evaluación

Evaluación sobre el conjunto de prueba (1,892 muestras, época 3):

Métricas globales

Métrica Valor
F1-Macro 79.56%
Accuracy 82.24%
Precision (macro) 79.73%
Recall (macro) 79.43%
Eval Loss 0.5628

Métricas por clase

Clase Precision Recall F1-Score Soporte
BAJO 92% 91% 91% 921
MEDIO 73% 75% 74% 614
ALTO 75% 72% 74% 357

Matriz de confusión

Pred. BAJO Pred. MEDIO Pred. ALTO
Real BAJO 836 (90.8%) 80 (8.7%) 5 (0.5%)
Real MEDIO 70 (11.4%) 462 (75.2%) 82 (13.4%)
Real ALTO 4 (1.1%) 95 (26.6%) 258 (72.3%)

⚠️ Nota: 95 comentarios de clase ALTO son clasificados como MEDIO (26.6% de falsos negativos críticos). Electricidad fue descartado como modelo de producción en favor de DistilBETO, que obtiene un Recall ALTO superior (75% vs 72%) con un comportamiento de entrenamiento más estable. Ver modelo-distilbeto-nivelDeRiesgo5.


Limitaciones y consideraciones

  • Inestabilidad en entrenamiento: Electricidad presentó la curva de pérdida más errática de los cuatro modelos evaluados, con oscilaciones en eval_loss entre épocas que dificultan la selección del punto óptimo de entrenamiento. Se recomienda mayor precaución al reentrenar o ajustar hiperparámetros.
  • Sobreajuste temprano: El modelo muestra señales de sobreajuste a partir de la época 5, significativamente antes que RoBERTuito, BETO y DistilBETO (que lo hacen a partir de la época 6). Esto limita la cantidad de épocas aprovechables.
  • Dominio específico: El modelo fue entrenado exclusivamente sobre comentarios de heteroevaluación docente universitaria en Colombia. Su rendimiento en otros dominios no ha sido evaluado y puede ser significativamente inferior.
  • Idioma: Optimizado para español latinoamericano informal. No se garantiza rendimiento equivalente en español peninsular u otras variedades.
  • Desbalance de clases: La clase ALTO representa solo el 18.9% del corpus, lo que se refleja en un Recall ALTO (72%) inferior al de las demás clases. Electricidad tiene el mayor número de falsos negativos críticos del proyecto (99 casos).
  • Longitud de texto: El modelo fue entrenado con un máximo de 128 tokens. Comentarios significativamente más largos serán truncados, con posible pérdida de información.
  • Privacidad: Este modelo fue entrenado sobre datos anonimizados. No debe utilizarse para identificar personas ni para procesar datos personales sin las salvaguardas legales correspondientes.

Uso previsto

Casos de uso apropiados:

  • Investigación comparativa de arquitecturas Transformer en español para tareas de clasificación de texto educativo
  • Apoyo secundario en sistemas de revisión de comentarios (complementando modelos con mayor Recall ALTO)
  • Prototipado de sistemas de detección de riesgo cuando se requiera una arquitectura ELECTRA

Casos de uso no apropiados:

  • Uso como modelo principal en sistemas de alerta temprana de riesgo institucional (se recomienda DistilBETO)
  • Toma de decisiones definitivas sobre docentes sin revisión humana
  • Aplicaciones que requieran alta sensibilidad en la detección de la clase ALTO

Downloads last month
4
Safetensors
Model size
0.1B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for DevOB/modelo-electricidad-nivelDeRiesgo5

Finetuned
(142)
this model