CoolFace
Modelpublic

DevOB/modelo-distilbeto-nivelDeRiesgo5

sourceHugging Faceapache-2.0updated 5mo agoView on Hugging Face
0likes46downloads
Model Card

modelo-distilbeto-nivelDeRiesgo5

Modelo DistilBETO 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:

EtiquetaDescripción
BAJOComentario sin señales de riesgo institucional
MEDIOComentario con señales de atención moderada
ALTOComentario con señales de riesgo que requieren atención institucional prioritaria

Descripción del modelo

Este modelo es un fine-tuning de DistilBETO — la versión destilada y ligera de BETO desarrollada por el DCC UChile, basada en DistilBERT — 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.


Uso del modelo

Instalación

bash
pip install transformers torch

Inferencia directa

python
from transformers import pipeline

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

Inferencia con Transformers completo

python
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification

model_id = "DevOB/modelo-distilbeto-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:

ClaseMuestrasPorcentaje
BAJO4,60348.7%
MEDIO3,07132.5%
ALTO1,78318.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ámetroValor
Modelo basedccuchile/distilbert-base-spanish-uncased
Épocas5
Batch size (entrenamiento)16
Batch size (evaluación)32
Longitud máxima de tokens128
Warmup steps100
Weight decay0.01
Semilla42
HardwareNVIDIA GeForce RTX 4060
CUDA12.1
FrameworkPyTorch 2.6.0 + Transformers 4.47.0

Resultados de evaluación

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

Métricas globales

MétricaValor
F1-Macro79.30%
Accuracy82.03%
Precision (macro)79.22%
Recall (macro)79.42%
Eval Loss0.7958

Métricas por clase

ClasePrecisionRecallF1-ScoreSoporte
BAJO90%92%91%921
MEDIO75%71%73%614
ALTO73%75%74%357

Matriz de confusión

Pred. BAJOPred. MEDIOPred. ALTO
Real BAJO846 (91.9%)65 (7.1%)10 (1.1%)
Real MEDIO85 (13.8%)438 (71.3%)91 (14.8%)
Real ALTO6 (1.7%)83 (23.2%)268 (75.1%)

Limitaciones y consideraciones

  • —Dominio específico: El modelo fue entrenado exclusivamente sobre comentarios de heteroevaluación docente universitaria en Colombia. Su rendimiento en otros dominios (reseñas, redes sociales, soporte técnico, etc.) 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. Aunque DistilBETO logra el mayor Recall ALTO del proyecto (75%), aún existen 89 falsos negativos críticos. Aplicaciones con máxima sensibilidad deben complementar el modelo con revisión humana.
  • —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 al final del texto.
  • —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:

  • —Apoyo a directores de departamento en la revisión de comentarios de heteroevaluación docente
  • —Priorización automática de comentarios para revisión humana
  • —Generación de alertas tempranas en sistemas de gestión académica

❌ Casos de uso no apropiados:

  • —Toma de decisiones definitivas sobre docentes sin revisión humana
  • —Procesamiento de datos fuera del ámbito de la evaluación docente universitaria
  • —Aplicaciones que requieran certeza absoluta en la detección de riesgo