¿Las RNN lo eran todo?
(arxiv.org)- Transformer reconfiguró el deep learning desde 2017, pero en secuencias largas el costo de la autoatención aumenta, por lo que los modelos recurrentes que pueden entrenarse en paralelo vuelven a recibir atención
- LSTM y GRU, ampliamente usados para modelado de secuencias durante los 20 años previos a Transformer, abren la posibilidad de entrenamiento paralelo si se reduce la dependencia de las compuertas respecto del estado anterior
- Los minLSTM y minGRU simplificados tienen menos parámetros que los LSTM y GRU tradicionales, se paralelizan por completo durante el entrenamiento y muestran un rendimiento competitivo con modelos recientes, incluidos Transformer, en varias tareas
- La optimización de eficiencia de Transformer derivó en esparsidad, aproximaciones de bajo rango y tiling; más recientemente, modelos recurrentes alternativos como modelos de espacio de estados, atención linealizada y RNN lineales también muestran un rendimiento sólido
- Gracias a las implementaciones en plain PyTorch de unas pocas líneas incluidas en el apéndice, minGRU y minLSTM pueden verse como modelos ligeros fáciles de experimentar para principiantes, profesionales e investigadores
Modelos recurrentes que vuelven a destacar después de Transformer
- Las RNN se han usado ampliamente desde la década de 1990 en tareas de modelado de secuencias como traducción automática y generación de texto
- Los modelos representativos son LSTM (1997) y GRU (2014)
- Por su estructura inherentemente secuencial, la paralelización es limitada, y en el entrenamiento con secuencias largas la eficiencia computacional puede disminuir fácilmente
- Transformer tuvo éxito rápidamente en el modelado de secuencias al introducir en 2017 un mecanismo de entrenamiento paralelo mediante autoatención
- Luego se expandió no solo a modelos de lenguaje grandes, sino también a visión por computadora, aprendizaje por refuerzo y bioinformática
- La autoatención modela las interacciones entre tokens, pero su complejidad computacional aumenta de forma cuadrática con la longitud de la secuencia
- En secuencias largas o entornos con recursos limitados, el costo puede crecer considerablemente
- La investigación para mejorar la eficiencia de Transformer ha avanzado en varias direcciones
- Esparsidad
- Aproximaciones de bajo rango
- Tiling
- Recientemente están resurgiendo modelos recurrentes paralelizables que escalan de manera más eficiente
- Modelos de espacio de estados
- Atención linealizada
- RNN lineales
- Estos modelos recurrentes modernos aprovechan transiciones dependientes de la entrada y muestran un rendimiento sólido similar al de Transformer
- Se aplican no solo a modelos de lenguaje grandes, sino también a datos basados en imágenes y grafos
La idea central de minLSTM y minGRU
- Este estudio revisa desde una perspectiva histórica LSTM y GRU, que se usaron durante mucho tiempo antes de Transformer
- Ambos modelos pueden verse como casos tempranos de modelos recurrentes dependientes de la entrada
- Si se elimina la parte en la que las compuertas dependen del estado anterior, LSTM y GRU también pueden admitir entrenamiento paralelo
- Con simplificaciones adicionales se derivan versiones mínimas llamadas minLSTM y minGRU
- Tienen menos parámetros que los LSTM y GRU tradicionales
- Pueden paralelizarse por completo durante el entrenamiento
- A pesar de su estructura simple, muestran un rendimiento competitivo en varias tareas
- Entre los modelos comparados se incluyen modelos recientes, como Transformer
- Este resultado cuestiona la tendencia a seguir aumentando la complejidad de las estructuras de modelos y de los algoritmos
- El apéndice incluye implementaciones en plain PyTorch de minGRU y minLSTM en apenas unas líneas de código
- Los modelos son ligeros y fáciles de adaptar
- Tienen un formato fácil de aprovechar para principiantes, profesionales e investigadores
1 comentarios
Opiniones de Hacker News
Si vemos las estructuras recurrentes como filtros IIR y las estructuras solo feedforward como filtros FIR, parecen tener muchas similitudes con el procesamiento digital de señales.
Los filtros IIR suelen requerir muchos menos elementos que un filtro FIR que produce la misma respuesta, mientras que los filtros FIR tienden a ser más fáciles de implementar, controlar y medir.
Me da la impresión de que el hardware de aritmética de punto fijo se parece a las arquitecturas de machine learning que corren bien en GPU, y que si la IA de verdad va a llegar a una etapa exponencial aterradora, parece necesitar una estructura fundamentalmente recurrente.
En esta analogía, LSTM se parece más a un hack intermedio tipo FIR con coeficientes dinámicos, y a largo plazo el enfoque neuromórfico parece el mejor en términos de eficiencia.
De lo contrario, un filtro IIR decae exponencialmente a 0 o crece exponencialmente hasta el infinito.
Una celda RNN como LSTM se parece más a un filtro con amortiguamiento al que se le agregaron compuertas no lineales para evitar el decaimiento y “recordar” algo.
Un filtro FIR es mucho más simple de diseñar y puede contener memoria incluso sin esos hacks.
Como profano en el tema, mi primera impresión es que no se trata simplemente de simular neuronas, sino que se parece a una idea al estilo de 《The Society of Mind》, donde varios “agentes” o subsistemas interactúan de distintas maneras.
La recurrencia puede ser más neuromórfica e importante a largo plazo, pero quizá no sea indispensable para la superinteligencia.
Dicho eso, soy un profano con poco conocimiento del tema, así que podría estar completamente equivocado.
Todo el campo parece insuficiente para el problema de horizontes largos.
La solución ampliamente usada hoy es escalar, pero ni siquiera se acerca a la escala de horizonte que procesa el cerebro de un mamífero pequeño.
Un modelo puede tener billones de parámetros, pero en tareas de largo plazo y eficiencia creo que el cerebro de una rata todavía ganaría.
Es como si existiera un algoritmo de búsqueda pequeño, simple y elegante, que encuentra rutas casi óptimas dentro de un presupuesto de cómputo reducido y sigue aprendiendo.
Me da un poco de envidia pensar que algún día los ingenieros del futuro resolverán estos problemas en un notebook de Jupyter de 100 líneas en una laptop.
Si encontramos métodos o algoritmos adecuados para el problema de horizontes largos, quizá incluso un modelo de 2.000 millones de parámetros pueda superar a los modelos actuales en todos los ámbitos, salvo en problemas de razonamiento cortos y extremos.
Como posible solución, he pensado más en expandir la dimensionalidad del modelo a lo largo del tiempo que en buscar pesos perfectos.
Cuanto mayor es la dimensionalidad, mayor es la capacidad teórica de almacenamiento, y podría parecerse a un modelo de dos capas donde una capa actúa como una superposición de varios outliers y otra capa sabe cómo usarlos.
Si pensamos que el paisaje de pérdida tiene varios mínimos para una tarea determinada, quizá se podría reconstruir el modelo cuando haga falta para moverse entre esos mínimos y crear un único modelo con una cantidad casi infinita de mínimos locales, es decir, con memoria de mayor dimensión.
Si el cerebro humano crea y rompe miles de conexiones al día, quizá esas conexiones estén dirigiendo el paisaje de pérdida interno entre distintos mínimos necesarios durante el día.
Pero no necesitas el cerebro de una rata para clasificar spam.
Los modelos grandes de más de 2.000 millones de parámetros siguen siendo demasiado pesados y más bien de uso especializado, difíciles de ejecutar en la práctica; hay mucho espacio para modelos inteligentes y pequeños que solo resuelvan problemas útiles con hardware y datasets limitados.
También se han probado modelos que cambian de tamaño según la necesidad, pero con un presupuesto de energía limitado eran demasiado ineficientes o difíciles de optimizar.
Aun así, si queremos seguir escalando a tamaños cada vez mayores, parece probable que al final necesitemos ese tipo de modelos.
El verdadero cuello de botella quizá sea un avance en el entrenamiento en sí.
La pérdida por retropropagación es demasiado simple incluso para optimizar perfectamente los modelos actuales, y mucho más para los modelos más grandes del futuro.
Como tampoco hay garantía de que exista una alternativa mejor, puede que los enfoques actuales de machine learning tengan un límite fijo.
Que las discusiones estén dispersas en varios lugares es tanto una ventaja como una desventaja
Me pareció interesante algo que vi de François Chollet en Twitter/X: https://x.com/fchollet/status/1841902521717293273
“Un trabajo interesante para revivir las RNN. https://arxiv.org/abs/2410.01201 — En general, el hecho de que arquitecturas recientes provenientes de direcciones distintas estén más o menos a la par de los Transformer es evidencia de que, en el paradigma de ajuste de curvas, es decir, en deep learning, la arquitectura no es fundamentalmente importante
El ajuste de curvas consiste en embeber un dataset sobre una curva. El factor clave es el dataset, no algún adorno específico hardcodeado que limite la forma de la curva. Si la curva tiene suficiente capacidad expresiva, en entornos con datos a gran escala todas las arquitecturas convergen al mismo rendimiento”
Los datasets existen en grandes cantidades desde hace mucho, y el progreso de los últimos 10 años vino de cómo diseñar la curva y ajustarla a los datos, y de cómo usar más cómputo
Quizá tenga sentido teórico decir que los modelos antiguos también podrían resolver problemas nuevos igual si usaran alrededor de un millón de veces más cómputo, pero llamar a eso “solo optimización” es parecido a ignorar la importancia del análisis de complejidad en el diseño de algoritmos y decir que bogosort y quicksort son lo mismo
Si además pensamos en capas y capas de técnicas de regularización para reducir el sobreajuste, e incluso en estructuras más agentic como el diseño del espacio de búsqueda en Deep Q Learning u OpenAI o1, la perspectiva de que todo es simple optimización resulta poco convincente
Con solo más cómputo, las arquitecturas antiguas no habrían podido resolver esos problemas
Incluye cosas como “totalmente paralelizable durante el entrenamiento y 175 veces más rápido en secuencias de longitud 512”
Aunque varias arquitecturas converjan con el tiempo a la misma pérdida, considerando el costo de las GPUs a gran escala, encontrar la arquitectura que converge más rápido tiene bastante valor
Las CNN dominaron la visión por computadora no porque hicieran algo que las redes neuronales densas no pudieran hacer, sino porque eliminaron muchas conexiones poco importantes, permitiendo usar el presupuesto de entrenamiento en redes más profundas
Del mismo modo, los Transformer son excelentes porque permiten entrenar redes enormes de una forma relativamente eficiente
Este paper también muestra que, si el entrenamiento de RNN se vuelve mucho más rápido, en la práctica pueden ser bastante buenas
El gran cuello de botella no es tanto la capacidad expresiva real de la arquitectura, sino la velocidad y eficiencia del entrenamiento
Un MLP enorme también podría producir los mismos resultados que un Transformer
El problema es la escala, y que no podemos entrenar un MLP lo suficientemente grande
Los Transformer son útiles porque son una optimización de rendimiento
No queremos reentrenar una vez al mes, sino reentrenar continuamente; y no queremos que un agente converse con 5 LLM, sino que miles de LLM funcionen juntos
La respuesta parece más cercana a “no”
Estas RNN pueden ser suficientemente buenas en algunos casos y hasta superar a los Transformer en otros, pero no parece que vayan a reemplazar de forma universal a los Transformer en los LLM
Por ejemplo, si un usuario proporciona un texto largo y dice “traduce esto al alemán”, un Transformer puede revisar todo el historial
Una RNN, aunque tenga una longitud de contexto ilimitada, en cualquier momento está limitada a la cantidad de información que recuerda dentro de su estado oculto
Paper relacionado: https://arxiv.org/abs/2402.01032
Un Transformer también está, en última instancia, atado a un estado finito; solo que ese estado está organizado de otra manera
Está el problema de precisión de la información, sobre cuántos bits debe transmitir el estado antiguo; el problema de decaimiento, donde la información más antigua se debilita; y el problema de mezcla, donde las representaciones se combinan o se suman
Lo que me intriga es si, con un número fijo de operaciones de punto flotante, una RNN puede competir con un Transformer, pero el paper original no parece tratar bien esta parte
En cambio, si dices “traduce lo siguiente al alemán”, lo único necesario es recordar la tarea actual y una cantidad mucho menor de la entrada reciente
Por supuesto, también se necesita la capacidad de producir la salida en paralelo mientras se procesa la entrada
Según lo que entiendo, lo que permitió el boom posterior de los Transformer fue que resolvieron dos grandes problemas de las RNN.
El desvanecimiento del gradiente limitaba el contexto y el tamaño del modelo, y la dificultad para paralelizar limitaba el tamaño de los datos de entrenamiento.
Me pregunto si hoy existen soluciones para esos dos problemas.
Una RNN actualiza y sobrescribe continuamente la memoria, así que tiene que anticipar qué información será útil después y guardarla.
En casos de uso conversacionales como ChatGPT, eso es una ventaja enorme de los Transformer.
Si se da contexto y luego se hacen preguntas a lo largo de varios turnos, recién más adelante en la secuencia de tokens se sabe qué contexto era importante para una pregunta concreta.
Más exactamente, habría que decir que es una ventaja de los modelos basados en atención, y también existen modelos híbridos como Jamba, que combinan con éxito ambos enfoques.
LSTM, propuesto por primera vez en 1997, ofreció antes una solución: https://www.semanticscholar.org/paper/Long-Short-Term-Memory...
Es interesante que ese conocimiento parezca casi olvidado.
Alrededor de 2014, las LSTM eran muy populares: https://karpathy.github.io/2015/05/21/rnn-effectiveness/
https://colah.github.io/posts/2015-08-Understanding-LSTMs/
Dicho eso, al simplificar la unidad recurrente parece mejorar ambas cosas.
Es un trabajo bastante ingenioso e interesante.
El paper la llama todo el tiempo una “arquitectura de hace 10 años”, pero en realidad se sigue usando muchísimo porque es fácil de adaptar a varios dominios.
Tampoco es del todo justo plantearla como una “competidora” de los Transformer, porque los Transformer y las RNN no son mutuamente excluyentes y hay muchas formas de combinarlos.
Mejorar las RNN podría traer mejoras en muchos lugares inesperados.
Me gusta mucho la simplicidad de la arquitectura minGRU.
Básicamente, a partir del token genera el estado oculto propuesto y los coeficientes de mezcla mediante transformaciones lineales, y los combina con
torch.lerp(proposed_hidden_state, previous_hidden_state, mix_factors).Como el estado oculto propuesto y los coeficientes de mezcla de cada capa dependen solo del token actual, si se conoce de antemano toda la secuencia, como durante el entrenamiento, se pueden calcular todos en paralelo y luego combinarlos en tiempo lineal con un parallel scan.
Que en experimentos pequeños esto sea competitivo con Transformer y modelos de espacio de estados satisface la sensibilidad de quienes creen que “el mejor PR es el PR que borra código”.
Aun así, hasta escalarlo a tamaños de parámetros y datos comparables a los mejores modelos actuales, no sabremos si es un Breakthrough con B mayúscula.
Según el apéndice, parece que todos los cálculos se hacen en espacio logarítmico, supuestamente por estabilidad numérica.
No termino de intuir si es porque, al quitar tanh de la salida y calcular en espacio lineal, los valores podrían explotar.
También es interesante el hecho mismo de que este tipo de modelado de secuencias funcione.
Es como arrancar todas las páginas de un libro, entregarlas en orden aleatorio y, sin saber nada de las páginas anteriores, pedir que para cada página se produzca un vector y “una forma de mezclar este vector con el vector de todas las páginas anteriores”; luego yo las mezclo de nuevo en orden y califico qué tan bueno es el vector final como resumen de todo el libro.
Por ahora usan solo dos capas lineales densas para convertir el token en el estado oculto propuesto y el coeficiente de mezcla de interpolación; también me pregunto qué pasaría si esa transformación fuera una MLP en vez de una sola capa lineal.
Al menos esperaría que aparecieran problemas tipo lema de bombeo.
Si
[the ][cat ][is ][black ]produce una salida cercana a cierto vector, me parece que una entrada que repite[the ][cat ][is ][black ]tres veces debería acercarse todavía más a ese vector y alejarse de un vector del tipo “¿por qué repitió la misma oración tres veces?”.Si no hay una mezcla no lineal entre los tokens de entrada y el estado oculto, sospecho que queda mucha similitud lineal entre secuencias de tokens parecidas.
Si es una simplificación que mejora el entrenamiento y el rendimiento, crea una base sobre la cual volver a apilar complejidad en un nivel más alto.
Hay una razón por la que el ajuste por máxima verosimilitud siempre se hace con log-verosimilitudes.
En un proyecto universitario hice una RNN; en ese momento me interesaban tecnologías históricas desaparecidas y pensé que, si dejaba la universidad, probablemente nunca volvería a oír hablar de redes neuronales, así que tenía que aprovechar la oportunidad.
Lo que hice funcionaba, pero era muy simple y corría lentísimo en una laptop vieja.
En esa laptop nada podía ser rápido, pero recuerdo que la RNN era bastante más lenta que una red feedforward.
Estaba convencido de que era una tecnología muerta, una curiosidad académica de los años 80 y 90, y fue casi extraño ver lo rápido que cambió eso.
Alrededor del año 2000 escribí mi tesis de maestría sobre aprendizaje de sistemas dinámicos, por ejemplo con RNN para fines de control, y en ese entonces era un tema bastante nuevo.
Implementé backpropagation en C++ y lo dejé corriendo toda la noche; era realmente lento por los gradientes pequeños.
La arquitectura de la red también era de una sola capa oculta, con unas 5 o 10 neuronas.
Las redes neuronales eran un tema pequeño, y uno tenía suerte si encontraba un curso; cerré los ojos un momento y, cuando volví a mirar en 2015, todo había cambiado por completo.
Es de reconocer que los autores, entre ellos Yoshua Bengio, no planteen el artículo como si supieran la respuesta, sino que lo cierren con una pregunta.
Estos modelos son muy pequeños incluso para los estándares académicos, así que no se puede asumir que cualquier resultado necesariamente escale hasta el tamaño de los LLM actuales.
La conclusión central es que las redes de la familia RNN también pueden entrenarse con tanta eficiencia como las alternativas modernas, pero la competitividad de su rendimiento final solo se comprobó a pequeña escala.
Creo que la conclusión también debería ser: “que el rendimiento final sea competitivo solo se comprobó a pequeña escala”.
El modelo del artículo, al haber sido hecho paralelizable, no es una RNN “real” por razones como las explicadas en https://arxiv.org/abs/2404.08819, y por lo tanto, en teoría, es menos potente que una RNN tradicional.
Tiene dificultades con algunas clases de problemas en las que las RNN originalmente eran buenas.
En cambio, https://arxiv.org/abs/2405.04517 sí incluye componentes de RNN “reales” y muestra una gran mejora en problemas de seguimiento de estado, donde los Transformers suelen tener dificultades.
Siguen dependiendo del estado oculto anterior; solo que el gating no depende de él.
La ecuación básica de una RNN puede paralelizarse con un algoritmo de escaneo de prefijos paralelo.
No he mirado el artículo en detalle, pero ojalá alguien pueda responder.
Como se dijo, si se elimina el estado oculto de una RNN, ¿qué queda? ¿Un MLP que predice a partir de un solo token?
No he digerido del todo el artículo, pero en el caso de una GRU parece significar que el enmascaramiento de la actualización del estado oculto, es decir,
z_tyr_ten las fórmulas del artículo, depende solo de la nueva entrada y no de la suma de la entrada con el estado oculto anterior.El estado oculto sigue existiendo.
Es hasta cierto punto parecido a lo que hicieron en Mamba.