Optimizing Transformer Neural Network for Real-Time Outlier Detection on FPGAs
Este artículo propone y demuestra una arquitectura de red neuronal Transformer optimizada, implementada en una PYNQ-Z2 FPGA, para permitir la detección de valores atípicos en tiempo real, de manera eficiente y con baja latencia, en series temporales financieras.
Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo
Imagina que eres un detective intentando detectar a un ladrón en una ciudad concurrida. La ciudad es un río de números, que fluye constantemente con los precios de las acciones, la temperatura de los servidores o el número de personas en una fila de taxis. La mayor parte del tiempo, este río fluye suavemente, pero ocasionalmente, una roca gigante —un "glitch" o un "outlier"— salta en la corriente, causando un salpicón que podría arruinarlo todo río abajo. En el mundo de las finanzas y la ciencia de datos, estos salpicones son peligrosos; pueden engañar a las computadoras para que tomen malas decisiones. Durante mucho tiempo, atrapar estos salpicones fue lento, como intentar encontrar una aguja en un pajar a mano. Pero recientemente, los científicos han construido un detective superinteligente llamado "Transformer". Piensa en un Transformer como un bibliotecario genio que puede leer un millón de libros a la vez e instantáneamente recordar cómo una historia de la página uno se conecta con una historia de la página mil. Este bibliotecario es increíble detectando patrones extraños, pero hay un inconveniente: el bibliotecario es tan pesado y lento que no puede correr lo suficientemente rápido como para atrapar al ladrón en tiempo real.
Entra el FPGA, que es como un motor de coche de carreras personalizado, superrápido y que puedes reconfigurar sobre la marcha. La gran pregunta que este artículo aborda es: ¿Podemos tomar a nuestro bibliotecario genio y pesado (el Transformer) y enseñarle a conducir este coche de carreras (el FPGA) para que pueda detectar los malos datos instantáneamente? Los autores, Ilia Sobakinskikh y Paul Alexander Bilokon, se propusieron ver si podían encoger este cerebro gigante para que cupiera dentro de un chip pequeño y reconfigurable sin perder su inteligencia. Querían demostrar que no necesitas una supercomputadora masiva para encontrar estos fallos financieros; puedes hacerlo en una pequeña placa, lo suficientemente rápido como para detener un desastre antes de que ocurra.
La carrera para atrapar el glitch
Los autores comenzaron analizando el problema de la "detección de anomalías". En términos simples, esto es solo encontrar los números extraños en una lista. Se centraron en las "anomalías de punto", que son como picos repentinos en el precio de una acción: piensa en una acción saltando de 101 en una fracción de segundo cuando no debería. Para atrapar estas, utilizaron un tipo específico de IA llamada Transformer. A diferencia de los modelos de IA más antiguos que leen los datos paso a paso (como leer un libro palabra por palabra), los Transformers miran el panorama completo a la vez, entendiendo cómo el precio de hoy se relaciona con un precio de hace semanas.
Sin embargo, ejecutar estos Transformers suele ser lento y costoso. Los autores decidieron intentar ejecutar ellos en un FPGA, específicamente una placa llamada PYNQ-Z2. Para que esto funcionara, tuvieron que ser muy ingeniosos con la forma en que programaron el chip. Trataron las matemáticas dentro del Transformer como una línea de ensamblaje de una fábrica. En lugar de esperar a que terminara un cálculo antes de comenzar el siguiente, utilizaron una técnica llamada "pipelining" (segmentación). Imagina un autolavado donde el primer coche todavía está siendo enjabonado mientras el segundo ya está bajo el ciclo de enjuague; esto mantiene la línea moviéndose rápido. También utilizaron el "unrolling" (desenrollado), que es como tener a diez trabajadores haciendo la misma tarea al mismo tiempo en lugar de un trabajador haciéndola diez veces seguidas.
Los resultados: Velocidad vs. Inteligencia
El equipo probó dos versiones de su detective de IA. La primera fue el "Vanilla Transformer", la versión estándar y pesada. La segunda fue un "Linear Transformer", una versión más ligera y rápida que se salta parte de la matemática pesada. Ejecutaron estos modelos en el FPGA y los compararon con un procesador de computadora estándar (CPU).
Los resultados fueron un relato de dos tipos de compensaciones diferentes. El Transformer estándar, cuando se optimiza para el FPGA, se volvió increíblemente rápido. Podía procesar datos en solo 37.14 microsegundos (¡eso es 0.000037 segundos!). Sin estas optimizaciones especiales, la misma tarea tomaba 347.45 microsegundos, lo que es diez veces más lento. El Linear Transformer fue incluso más rápido, registrando 29.86 microsegundos.
Pero la velocidad tuvo un precio. Para obtener esa velocidad, el chip tuvo que trabajar mucho más duro. El Transformer optimizado utilizó el 90% de los "LUTs" disponibles (los diminutos interruptores lógicos dentro del chip) y el 30% de los "FFs" (bits de memoria), mientras que la versión lenta y no optimizada solo usó el 10% y el 2% respectivamente. Es como actualizar una bicicleta a una motocicleta: vas mucho más rápido, pero necesitas un motor mucho más grande y más combustible.
¿Cumplió el detective su trabajo?
La velocidad es genial, pero ¿sigue siendo inteligente el detective? Los autores probaron sus modelos con datos del mundo real, incluyendo la demanda de taxis de la ciudad de Nueva York, registros de rendimiento de servidores y precios de acciones de alta frecuencia. Compararon su IA contra un modelo simple de "Regresión Lineal", que es como un detective que solo mira el número más reciente y supone basándose en ese.
Los resultados mostraron que los Transformers fueron generalmente mucho mejores para detectar las anomalías que el modelo simple. En el conjunto de datos KPI (registros de servidores), el Transformer estándar logró una precisión de 0.98 en los datos de entrenamiento y 0.97 en los datos de validación, con un F1 score (un equilibrio entre detectar cosas malas y no dar falsas alarmas) de 0.71 y 0.76 respectivamente. El Linear Transformer fue ligeramente menos preciso, pero seguía siendo sólido. Sin embargo, en los datos del mercado de valores (FI2010), los modelos tuvieron más dificultades, con F1 scores que cayeron a 0.06 y 0.09, lo que sugiere que, aunque son rápidos, no son perfectos para detectar cada uno de los fallos en cada tipo de datos.
Curiosamente, los autores descubrieron que algunas características que usualmente se consideran esenciales para los Transformers, como el "positional encoding" (una forma de decirle a la IA el orden de los números), en realidad hicieron que el entrenamiento fuera inestable y peor en su configuración específica. Tuvieron que desactivar estas características para que los modelos funcionaran correctamente en el chip.
La conclusión
Este artículo no pretende haber resuelto el misterio de la detección de anomalías para siempre. En cambio, sugiere que podemos reducir con éxito estos poderosos modelos de IA para que quepan en chips pequeños y rápidos. Los autores demostraron que, mediante el uso de trucos de programación ingeniosos como el pipelining y el unrolling, se puede hacer que un Transformer corra 10 veces más rápido en un FPGA. Si bien esta velocidad conlleva un alto costo en términos de recursos del chip, demuestra que la detección de anomalías en tiempo real y de alta velocidad es posible sin necesidad de un centro de datos masivo. Es una prueba de concepto de que el futuro de la captura de fallos financieros podría no estar en una enorme sala de servidores, sino en un pequeño chip reconfigurable corriendo a través de los datos a la velocidad del rayo.
¿Ahogado en artículos de tu campo?
Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.