Predicción de series temporales con Transformers |  de Oliver S |  enero de 2024

Una guía completa de transformadores en Pytorch

A más tardar desde la llegada de ChatGPT, Modelos de lenguaje grandes (LLM) han creado un gran revuelo y son conocidos incluso por aquellos fuera de la comunidad de IA. Aunque es necesario entender que Los LLM son inherentemente modelos de predicción de secuencias “simples” sin ningún tipo de inteligencia o razonamiento: los resultados obtenidos son ciertamente extremadamente impresionantes, y algunos incluso hablan de un paso más en la “Revolución de la IA”.

Esenciales para el éxito de los LLM son sus componentes básicos, transformadores. En esta publicación, brindaremos una guía completa sobre su uso en Pytorch, con especial atención en la predicción de series temporales. ¡Gracias por pasar por aquí y espero que disfrutes el viaje!

Foto por Tim Meyer en desempaquetar

Se podría argumentar que todos los problemas resueltos mediante transformadores son esencialmente problemas de series de tiempo. Si bien eso es cierto, aquí pondremos especial atención en series y datos continuos, como predecir la propagación de enfermedades o pronosticar el clima. La diferencia con la aplicación destacada del procesamiento del lenguaje natural (PNL) simplemente (si esta palabra está permitida en este contexto; desarrollar un modelo como ChatGPT y hacerlo funcionar de forma natural requiere una multitud de pasos y trucos de optimización adicionales) es el espacio de entrada continuo, mientras que la PNL funciona con tokens discretos. Sin embargo, aparte de esto, los componentes básicos son idénticos.

En esta publicación, comenzaremos con una (breve) introducción teórica de los transformadores y luego avanzaremos hacia su aplicación en Pytorch. Para ello, analizaremos un ejemplo seleccionado: la predicción de la función seno. Mostraremos cómo generar datos para esto y preprocesarlos correctamente, y luego usaremos transformadores para aprender a predecir esta función. Más adelante, analizaremos cómo hacer inferencias cuando los tokens futuros no estén disponibles y concluiremos la publicación ampliando el ejemplo a datos multidimensionales.

El objetivo de esta publicación es proporcionar un tutorial práctico completo sobre cómo usar transformadores para casos de uso del mundo real, y no presentar ni explicar teóricamente estos interesantes modelos. En lugar de eso me gustaría referirme a este increíble artículo y el papel original [1] (cuya arquitectura seguiremos a lo largo de este…