Enrique MuñozSoftware Engineer · AI Engineer
Todos los proyectos

Banking77

Entender el mensaje. Encontrar la intención.

Fine-tuning de un transformer para clasificar consultas bancarias en 77 intenciones, con evaluación frente a un baseline.

Mi rol

Segundo proyecto de maestría: análisis, entrenamiento, evaluación y demo de inferencia.

Tecnologías

Python · Transformers · FastAPI · Modal

Ver código
Interfaz de la demo Banking77 para clasificar consultas bancarias en inglés.
Captura del proyecto · Banking77 · Fuente: GitHub

El problema

Una consulta bancaria breve puede expresar una intención muy específica. Distinguir entre categorías cercanas exige algo más que palabras clave: también hace falta evaluar dónde se equivoca el modelo.

Lo que construí

  • Ajusté DistilRoBERTa para las 77 categorías del dataset Banking77.
  • Comparé sus resultados con TF-IDF y regresión logística, separando validación y test.
  • Construí una demo con FastAPI e inferencia en CPU en Modal para consultas nuevas en inglés.

Cómo funciona

  1. Consulta nueva en inglés
  2. Tokenización
  3. DistilRoBERTa ajustado
  4. Una de 77 intenciones

Decisiones de ingeniería

Un baseline antes de un modelo mayor.

TF-IDF y regresión logística ofrecen una referencia interpretable de rendimiento. El transformer debe justificar la complejidad adicional con una comparación medida.

Evaluar sin mirar el test.

La validación se separó dentro de entrenamiento. El test oficial contiene 3.080 ejemplos, 40 por categoría, y no se utilizó para elegir parámetros.

Separar investigación e inferencia.

Falcon-7B-Instruct se exploró en el notebook para analizar errores. No forma parte del servicio web: la demo ejecuta únicamente el clasificador.

Resultados y evidencia

DistilRoBERTa obtuvo 92,82 % de accuracy y 92,82 % de F1 macro en el test oficial. El baseline obtuvo 85,03 % de accuracy. Las métricas y el notebook ejecutado están disponibles en el repositorio.

Ver código

Alcance y aprendizajes

Resultados académicos sobre Banking77, no una garantía para mensajes arbitrarios. El servicio requiere código de acceso, puede tener arranque en frío y depende del crédito disponible. No se debe enviar información bancaria personal.

Siguiente proyectoFinest Computer Use

Construyamos lo que sigue.

¿Un reto de software, IA o automatización? Me interesa conocerlo.