CoolFace
Modelpublic

ccamilo99/XML-Roberta-Large-spanish-sarcasm-detection-univalle-pln

sourceHugging Facemitupdated 2mo agoView on Hugging Face
1likes33downloads
Model Card

XML-RoBERTa-Large para la Detección de Sarcasmo (Univalle PLN)

Este modelo es un ajuste fino (finetuning) del gigante XLM-RoBERTa-large diseñado específicamente para la tarea de clasificación binaria de detección de sarcasmo en español. Fue desarrollado como parte del Taller de Procesamiento de Lenguaje Natural (PLN).

🧠 Arquitectura de Entrenamiento (Fine-Tuning Parcial)

Para capturar la compleja semántica del sarcasmo en español y optimizar el uso de VRAM (evitando errores de Out of Memory), se aplicó una estrategia de descongelado parcial:

  • —Se congeló la base del cuerpo del modelo.
  • —Se descongelaron las últimas 6 capas del encoder y el pooler de XLM-RoBERTa para permitir que adaptaran sus representaciones semánticas profundas al dataset de sarcasmo.

📊 Rendimiento del Modelo

El modelo se entrenó durante 8 épocas con un optimizador adaptativo y un tamaño de lote virtual de 16 (Lote físico de 4 con 4 pasos de acumulación de gradientes).

Los mejores resultados se alcanzaron en la Época 8, obteniendo métricas sobresalientes en el conjunto de validación:

  • —Validation Loss: 0.4011
  • —Accuracy (Exactitud): 93.61%
  • —F1-Score: 91.68%

🛠️ Cómo usarlo en Python

Puedes cargar y probar este modelo directamente utilizando la librería transformers de Hugging Face:

python
from transformers import AutoTokenizer, AutoModelForSequenceClassification, pipeline

model_name = "ccamilo99/XML-Roberta-Large-spanish-sarcasm-detection-univalle-pln"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)

sarcasm_detector = pipeline("text-classification", model=model, tokenizer=tokenizer)

# Ejemplos de prueba
print(sarcasm_detector("Sí, porque claramente yo soy el experto en cocina gourmet."))
print(sarcasm_detector("La Tierra gira alrededor del Sol."))