SentimentScope: Transformer en PyTorch para NLP
Arquitectura Transformer completa implementada desde cero en PyTorch con Multi-Head Attention y Mean Pooling para clasificación de sentimientos en IMDB (50k reseñas), evaluado y aprobado en Udacity con 76.88% de precisión.

Resumen del Proyecto
SentimentScope es un sistema integral de Procesamiento de Lenguaje Natural (NLP) desarrollado como proyecto final del programa AWS AI & ML Scholarship / Udacity AI Programming with Python. El núcleo del sistema es un Transformer implementado desde cero en PyTorch (sin emplear envoltorios prefabricados como BertForSequenceClassification), entrenado sobre el conjunto de datos de IMDB Movie Reviews (50,000 reseñas balanceadas).
La arquitectura fue evaluada rigurosamente por revisores de Udacity, aprobando en el primer intento con el 100% de cumplimiento de la rúbrica oficial y alcanzando una precisión de prueba del 76.88% sobre 25,000 muestras no vistas.
Arquitectura Técnica & Mecanismos de Auto-Atención
- Atención Multi-Cabezal desde Cero (
MultiHeadAttention): Implementación explícita de matrices de proyección afín para vectores de Consulta ($Q$), Clave ($K$) y Valor ($V$), escalado por $\sqrt{d_k}$, máscara causal/bidireccional configurable y recombinación lineal de cabezales ($d_{\text{embed}} = 128$, 4 cabezales de dimensión 32). - Bloques Transformer & Normalización: Pila de 4 bloques encoder con conexiones residuales (skip connections),
LayerNorm, activaciones GELU y regularización por dropout ($p = 0.1$). - Adaptación a Clasificación con Mean Pooling: A diferencia del token artificial
[CLS], se implementó un mecanismo de promedio global de secuencia (dim=1), proyectando el vector contextual agregado directamente a un cabezal de decisión binaria ($128 \to 2$). - Tokenización Subpalabra: Integración con
AutoTokenizerde Hugging Face (bert-base-uncased, vocabulario de 30,522 tokens) con truncamiento y padding a una ventana de contexto de 128 tokens para optimizar la complejidad cuadrática $\mathcal{O}(N^2)$ en memoria GPU. - Explicabilidad e Inteligencia Artificial (XAI): Extracción y normalización en tiempo real de los pesos de atención multi-cabezal para generar mapas de calor (heatmaps) de importancia de palabras y alineación de tokens en la inferencia.
- Ecosistema de Software y Producción: Incluye una interfaz web interactiva en Streamlit (
app.py), paquete modular Python ensrc/, suite de pruebas unitarias automatizadas (pytest, 6/6 aprobadas) y flujo de integración continua con GitHub Actions CI.