1 puntos por GN⁺ 2024-10-04 | 1 comentarios | Compartir por WhatsApp
  • 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

 
GN⁺ 2024-10-04
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.

    • Visto desde el procesamiento de señales, según la ubicación de los polos de la función de transferencia del filtro transformada con z, la salida IIR tiene una región de estabilidad estrecha, por lo que normalmente hay que diseñarla con cuidado.
      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.
    • Estaría bueno que alguien explicara de forma sencilla qué es el enfoque neuromórfico y cómo contribuye a la IA/AGI.
      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.
    • Durante un tiempo he pensado que, sin una estructura fundamentalmente recurrente, la IA no podría llegar a una etapa exponencial aterradora, pero ahora me pregunto si una ventana de contexto enorme por sí sola podría ser suficiente.
      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.
    • Me pregunto si implementar filtros IIR a gran escala en arquitecturas como las GPU actuales puede ofrecer buen rendimiento y escalabilidad.
  • 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.

    • De acuerdo, al campo le falta ese santo grial que es el problema de horizontes largos.
      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”

    • Estoy casi en desacuerdo con la frase “el factor clave es el dataset, no algún adorno específico hardcodeado que limite la forma de la curva”
      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
    • No leí el paper completo, pero parece enfocarse más en la optimización del cómputo que en el tamaño del dataset
      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
    • Uno de los grandes roles que cumplen muchos de esos adornos es restringir el espacio de entrenamiento
      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
    • Si pensamos que los MLP son aproximadores universales de funciones, esto parece bastante obvio
      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
    • Al final, la clave será la eficiencia computacional
      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

    • Eso de que “la cantidad de información recordada está limitada al estado oculto” no es distinto en los Transformer
      Un Transformer también está, en última instancia, atado a un estado finito; solo que ese estado está organizado de otra manera
    • Ese problema viene aquejando a las RNN desde los años 90
      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
    • La réplica es que, si se aumenta lo suficiente el tamaño del estado oculto, puede contener una representación comprimida de una secuencia de la longitud que uno quiera
      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
    • No hace falta decir “traduce al alemán” después de un texto largo
      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.

    • Un Transformer puede recuperar, en cualquier momento, información previa que más tarde resulte útil.
      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.
    • El desvanecimiento o la explosión de gradientes no afectaba solo a las RNN, sino a todas las arquitecturas profundas.
      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/
    • Por lo que leí por encima del paper, este trabajo apunta especialmente a la paralelización y el entrenamiento rápido, más que al “desvanecimiento del gradiente”.
      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.

    • A primera vista, parece que esta arquitectura impide una capacidad básica para reconocer secuencias de tokens.
      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.
    • No lo veo como un Breakthrough con B mayúscula, pero las redes neuronales recurrentes están en todas partes.
      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.
    • El espacio logarítmico es importante cuando las probabilidades de los tokens tienen un rango de valores muy amplio, es decir, diferencias de varios órdenes de magnitud.
      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.

    • Me hace sentir viejo.
      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.

    • Hay que poner énfasis en “no necesariamente”.
      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.

    • Estas también son RNN reales.
      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 eliminaron por completo el estado oculto, sino que lo eliminaron solo de la compuerta de entrada, la compuerta de olvido y la compuerta de actualización.
      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_t y r_t en 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.
    • No lo eliminaron por completo; solo eliminaron ciertas dependencias para que se pueda calcular mediante escaneo paralelo.
      El estado oculto sigue existiendo.
      Es hasta cierto punto parecido a lo que hicieron en Mamba.
    • Por encima, parece que ajustaron la actualización de estado para que pueda ejecutarse con escaneo paralelo, sin necesidad de correrlo secuencialmente.
    • El truco es mantener la dependencia recursiva como lineal, y eso hace posible el entrenamiento paralelo.