Les RNN étaient-ils vraiment dépassés ?
(arxiv.org)- Depuis 2017, le Transformer a remodelé le deep learning, mais le coût de l’auto-attention augmente sur les longues séquences, ce qui remet en lumière les modèles récurrents entraînables en parallèle
- LSTM et GRU, largement utilisés pendant les 20 années précédant le Transformer pour la modélisation de séquences, deviennent eux aussi parallélisables si l’on réduit la dépendance des portes à l’état précédent
- Les versions simplifiées minLSTM et minGRU ont moins de paramètres que les LSTM et GRU classiques, sont entièrement parallélisables à l’entraînement et montrent des performances compétitives face aux modèles récents, Transformer inclus, sur plusieurs tâches
- Les travaux visant à rendre les Transformer plus efficaces ont conduit à la sparsité, aux approximations low-rank et au tiling ; plus récemment, des modèles récurrents alternatifs comme les modèles à espace d’état, l’attention linéarisée et les RNN linéaires affichent eux aussi de solides performances
- Grâce aux quelques lignes d’implémentation plain PyTorch en annexe, minGRU et minLSTM peuvent être considérés comme des modèles légers faciles à expérimenter pour les débutants, les praticiens et les chercheurs
Les modèles récurrents reviennent sur le devant de la scène après le Transformer
- Les RNN sont largement utilisés depuis les années 1990 pour des tâches de modélisation de séquences comme la traduction automatique ou la génération de texte
- Les modèles représentatifs sont les LSTM (1997) et les GRU (2014)
- Leur structure est intrinsèquement séquentielle, ce qui limite la parallélisation et tend à réduire l’efficacité de calcul sur les longues séquences
- Le Transformer a rapidement rencontré le succès en modélisation de séquences après avoir introduit en 2017 un mécanisme d’apprentissage parallèle via l’auto-attention
- Il s’est ensuite étendu, au-delà des grands modèles de langage, à la vision par ordinateur, à l’apprentissage par renforcement et à la bioinformatique
- L’auto-attention modélise les interactions entre tokens, mais sa complexité de calcul augmente de façon quadratique avec la longueur de la séquence
- Sur les longues séquences ou dans les environnements aux ressources limitées, le coût peut fortement augmenter
- Les recherches pour améliorer l’efficacité du Transformer ont suivi plusieurs directions
- sparsité
- approximations low-rank
- tiling
- Récemment, des modèles récurrents parallélisables, plus efficaces à faire passer à l’échelle, sont de nouveau en plein essor
- modèles à espace d’état
- attention linéarisée
- RNN linéaires
- Ces modèles récurrents récents exploitent des transitions dépendantes de l’entrée et affichent des performances élevées comparables à celles des Transformer
- Ils sont appliqués non seulement aux grands modèles de langage, mais aussi aux images et aux données fondées sur des graphes
L’idée clé derrière minLSTM et minGRU
- Cette étude réexamine sous un angle historique les LSTM et GRU, utilisés pendant longtemps avant le Transformer
- Les deux modèles peuvent être vus comme des exemples précoces de modèles récurrents dépendants de l’entrée
- Si l’on supprime la dépendance des portes à l’état précédent, les LSTM et GRU deviennent eux aussi compatibles avec un apprentissage parallèle
- Une simplification supplémentaire mène à des versions minimales appelées minLSTM et minGRU
- Ils comptent moins de paramètres que les LSTM et GRU classiques
- Ils sont entièrement parallélisables pendant l’entraînement
- Malgré leur structure simple, ils montrent des performances compétitives sur plusieurs tâches
- Les comparaisons incluent des modèles récents, Transformer compris
- Ce résultat remet en question la tendance consistant à augmenter sans cesse la complexité structurelle des modèles et celle des algorithmes
- L’annexe contient une implémentation plain PyTorch de minGRU et minLSTM en quelques lignes de code
- Les modèles sont légers et faciles à adapter
- Leur forme les rend faciles à utiliser pour les débutants, les praticiens et les chercheurs
1 commentaires
Avis sur Hacker News
Si l’on voit les structures récurrentes comme des filtres IIR et les architectures purement feedforward comme des filtres FIR, on constate beaucoup de similitudes avec le traitement numérique du signal.
Les filtres IIR nécessitent souvent beaucoup moins d’éléments que les filtres FIR produisant la même réponse, tandis que les filtres FIR sont généralement plus faciles à implémenter, contrôler et mesurer.
J’ai l’impression que le matériel en arithmétique à virgule fixe ressemble aux architectures de machine learning qui tournent bien sur GPU, et que, pour que l’IA passe vraiment à une phase exponentielle effrayante, il lui faudra fondamentalement une architecture récurrente.
Dans cette analogie, les LSTM ressemblent plutôt à un bricolage intermédiaire, comme un FIR à coefficients dynamiques ; à long terme, l’approche neuromorphique semble la meilleure sur le plan de l’efficacité.
Sinon, un filtre IIR décroît exponentiellement vers 0 ou croît exponentiellement vers l’infini.
Les cellules RNN comme les LSTM ressemblent davantage à des filtres amortis auxquels on a ajouté des portes non linéaires pour empêcher l’atténuation et “mémoriser” quelque chose.
Les filtres FIR sont beaucoup plus simples à concevoir et peuvent contenir de la mémoire sans ce genre de bricolage.
En tant que profane, ma première impression est que cela ressemble à l’idée de 《The Society of Mind》, où plusieurs “agents” ou sous-systèmes interagissent de différentes manières, plutôt qu’à une simple simulation de neurones.
La récurrence est peut-être plus neuromorphique et importante à long terme, sans être forcément indispensable à une superintelligence.
Cela dit, je suis un profane aux connaissances limitées sur le sujet, donc je peux me tromper complètement.
L’ensemble du domaine me semble insuffisant face au problème de l’horizon long.
La solution aujourd’hui largement utilisée est le passage à l’échelle, mais on est encore très loin de la taille d’horizon que traite le cerveau d’un petit mammifère.
Les modèles peuvent avoir des milliers de milliards de paramètres, mais pour les tâches de long terme et l’efficacité, j’ai l’impression que le cerveau d’un rat gagnerait encore.
C’est comme s’il existait un petit algorithme d’exploration, simple et élégant, qui trouve des chemins presque optimaux avec un budget de calcul réduit tout en continuant à apprendre.
J’envie presque les ingénieurs du futur qui résoudront un jour ce genre de problème dans un notebook Jupyter de 100 lignes sur un ordinateur portable.
Si l’on trouve une méthode ou un algorithme adapté aux problèmes d’horizon long, un modèle à 2 milliards de paramètres pourrait peut-être dépasser les modèles actuels dans tous les domaines, sauf les problèmes de raisonnement courts et extrêmes.
Parmi les solutions possibles, j’ai envisagé d’étendre la dimensionnalité du modèle au fil du temps, plutôt que de rechercher des poids parfaits.
Plus la dimensionnalité est élevée, plus la capacité de stockage théorique augmente ; une couche pourrait fonctionner comme une superposition de plusieurs points atypiques, tandis qu’une autre saurait comment les utiliser, un peu comme dans un modèle à deux couches.
Si l’on considère qu’il existe, dans le paysage de perte, plusieurs minima pour une tâche donnée, on pourrait reconfigurer le modèle au besoin pour se déplacer entre ces minima, créant ainsi un modèle unique avec presque une infinité de minima locaux, autrement dit une mémoire de dimension plus élevée.
Si le cerveau humain crée et supprime des milliers de connexions chaque jour, ces connexions pourraient servir à orienter le paysage de perte interne entre les différents minima nécessaires au cours de la journée.
Mais on n’a pas besoin d’un cerveau de rat pour classer des spams.
Les grands modèles de plus de 2 milliards de paramètres restent trop lourds pour être exécutés pratiquement, et relèvent plutôt d’usages spécialisés ; il y a encore beaucoup de place pour des modèles intelligents et petits, qui ne résolvent que des problèmes utiles sur du matériel et des jeux de données limités.
Des modèles dont la taille varie selon les besoins ont aussi été expérimentés, mais avec un budget énergétique limité ils se sont révélés trop inefficaces ou difficiles à optimiser.
Malgré tout, si l’on veut continuer à passer à des échelles toujours plus grandes, il semble probable qu’on finisse par avoir besoin de tels modèles.
Le vrai goulot d’étranglement est peut-être une percée dans l’entraînement lui-même.
La perte de rétropropagation est trop simple pour optimiser parfaitement même les modèles actuels, et elle le sera encore davantage pour les futurs modèles plus grands.
Comme rien ne garantit qu’une meilleure alternative existe, les approches actuelles du machine learning pourraient avoir une limite fixe.
Le fait que les discussions soient dispersées à plusieurs endroits est à la fois un avantage et un inconvénient
J’ai trouvé intéressant ce billet de François Chollet vu sur Twitter/X : https://x.com/fchollet/status/1841902521717293273
« Un travail intéressant pour ressusciter les RNN. https://arxiv.org/abs/2410.01201 — De manière générale, le fait que des architectures récentes venues de directions différentes fassent à peu près jeu égal avec les Transformers est la preuve que, dans le paradigme de l’ajustement de courbes, c’est-à-dire en deep learning, l’architecture n’a pas d’importance fondamentale
L’ajustement de courbes consiste à embarquer un jeu de données sur une courbe. Le facteur clé, c’est le jeu de données, pas un ornement particulier codé en dur qui contraint la forme de la courbe. Si la courbe est suffisamment expressive, à grande échelle de données, toutes les architectures convergent vers les mêmes performances »
Les jeux de données existent en grand nombre depuis longtemps, et les progrès des dix dernières années sont venus de la manière de concevoir la courbe, de l’ajuster aux données, et d’utiliser davantage de calcul
Il y a peut-être un sens théorique à dire que d’anciens modèles pourraient résoudre les nouveaux problèmes de la même façon avec environ un million de fois plus de calcul, mais appeler cela « simplement de l’optimisation » revient à ignorer l’importance de l’analyse de complexité dans la conception d’algorithmes, un peu comme dire que bogosort et quicksort sont équivalents
Si l’on ajoute des couches de techniques de régularisation pour réduire le surapprentissage, et même des structures plus agentiques comme la conception de l’espace de recherche dans Deep Q Learning ou OpenAI o1, la vision selon laquelle ce ne serait que de l’optimisation est peu convaincante
Davantage de calcul à lui seul n’aurait pas permis aux anciennes architectures de résoudre ce genre de problèmes
On y trouve des éléments comme « entièrement parallélisable pendant l’entraînement, 175 fois plus rapide sur des séquences de longueur 512 »
Même si plusieurs architectures convergent avec le temps vers la même perte, compte tenu du coût des GPU à grande échelle, trouver l’architecture qui converge le plus vite a pas mal de valeur
Si les CNN ont dominé la vision par ordinateur, ce n’est pas parce qu’ils faisaient quelque chose que les réseaux de neurones denses ne pouvaient pas faire, mais parce qu’ils supprimaient beaucoup de connexions peu importantes, permettant d’allouer le budget d’entraînement à des réseaux plus profonds
De même, les Transformers sont excellents parce qu’ils permettent d’entraîner de très grands réseaux avec une certaine efficacité
Cet article montre aussi que si l’on rend l’entraînement des RNN beaucoup plus rapide, ils peuvent en pratique être assez bons
Le gros goulot d’étranglement est la vitesse et l’efficacité de l’entraînement, plus que le pouvoir expressif réel de l’architecture
Un énorme MLP pourrait lui aussi produire les mêmes résultats qu’un Transformer
Le problème, c’est l’échelle, et le fait qu’on ne peut pas entraîner un MLP suffisamment grand
Les Transformers sont utiles parce qu’ils optimisent les performances
On ne veut pas réentraîner une fois par mois, mais en continu, et l’on ne veut pas qu’un agent discute avec 5 LLM, mais que des milliers de LLM fonctionnent ensemble
La réponse semble plutôt être « non »
Ces RNN peuvent être suffisamment bons dans certains cas, et même battre les Transformers dans d’autres, mais ils ne semblent pas pouvoir remplacer universellement les Transformers dans les LLM
Par exemple, si un utilisateur fournit un long texte et dit « traduis ceci en allemand », un Transformer peut revenir sur tout l’historique
Un RNN, même avec une longueur de contexte illimitée, est limité à tout instant par la quantité d’information contenue dans son état caché
Article connexe : https://arxiv.org/abs/2402.01032
Un Transformer est lui aussi, au final, lié à un état fini ; cet état est simplement organisé autrement
Il y a le problème de précision de l’information, qui concerne le nombre de bits qu’un état ancien doit transmettre, le problème de l’atténuation où les informations anciennes s’affaiblissent avec le temps, et le problème du mélange, où les représentations se combinent ou s’additionnent
Ce qui m’intéresse, c’est de savoir si, à nombre d’opérations en virgule flottante fixé, un RNN peut concurrencer un Transformer, mais l’article d’origine ne semble pas vraiment traiter ce point
On peut plutôt dire « traduis ce qui suit en allemand » ; dans ce cas, il suffit de mémoriser la tâche courante et une quantité beaucoup plus réduite d’entrées récentes
Bien sûr, il faut aussi la capacité de produire la sortie en parallèle pendant le traitement de l’entrée
Si je comprends bien, ce qui a permis le boom ultérieur des Transformers, c’est qu’ils ont résolu deux grands problèmes des RNN
La disparition du gradient limitait le contexte et la taille des modèles, et la difficulté à paralléliser limitait la taille des données d’entraînement
Je me demande s’il existe aujourd’hui des solutions à ces deux problèmes
Un RNN met constamment à jour sa mémoire et l’écrase, il doit donc anticiper et stocker à l’avance les informations qui seront utiles plus tard
Dans les cas d’usage conversationnels comme ChatGPT, c’est un énorme avantage des Transformers
Si l’on fournit un contexte puis que l’on pose des questions sur plusieurs tours, on ne sait parfois qu’à la fin de la séquence de tokens quel contexte était important pour une question donnée
Plus précisément, il faudrait dire que c’est un avantage des modèles fondés sur l’attention, et il existe aussi des modèles hybrides comme Jamba qui combinent avec succès les deux approches
Les LSTM, proposés pour la première fois en 1997, ont apporté une première solution : https://www.semanticscholar.org/paper/Long-Short-Term-Memory...
Il est intéressant de voir à quel point ce savoir semble presque oublié
Vers 2014, les LSTM étaient extrêmement populaires : https://karpathy.github.io/2015/05/21/rnn-effectiveness/
https://colah.github.io/posts/2015-08-Understanding-LSTMs/
Cela dit, en simplifiant l’unité récurrente, il semble améliorer les deux
C’est un travail assez malin et intéressant
L’article parle sans cesse d’une « architecture vieille de 10 ans », mais en réalité elle reste énormément utilisée aujourd’hui parce qu’elle est facile à adapter à plusieurs domaines
La présenter comme une « concurrente » des Transformers n’est pas non plus totalement équitable, car les Transformers et les RNN ne sont pas mutuellement exclusifs, et il existe de nombreuses façons de les combiner
Améliorer les RNN pourrait entraîner des améliorations dans toutes sortes d’endroits inattendus
J’aime vraiment la simplicité de l’architecture minGRU
En gros, elle crée à partir du token un état caché proposé et un coefficient de mélange via des transformations linéaires distinctes, puis les combine avec
torch.lerp(proposed_hidden_state, previous_hidden_state, mix_factors)Comme, à chaque couche, l’état caché proposé et le coefficient de mélange ne dépendent que du token courant, si l’on connaît toute la séquence à l’avance comme pendant l’entraînement, on peut tout calculer en parallèle puis les combiner en temps linéaire avec un scan parallèle
Le fait que cela soit compétitif face aux Transformers et aux modèles à espace d’états dans de petites expériences satisfait le côté de moi qui croit que « la meilleure PR est celle qui supprime du code »
Cela dit, tant qu’on ne l’aura pas mis à l’échelle avec des nombres de paramètres et des volumes de données comparables aux meilleurs modèles actuels, on ne saura pas s’il s’agit d’un Breakthrough avec un B majuscule
À la lecture de l’annexe, il semble que tous les calculs soient faits dans l’espace logarithmique, apparemment pour des raisons de stabilité numérique
J’ai du mal à en avoir l’intuition : est-ce parce qu’en retirant tanh à la sortie et en calculant dans l’espace linéaire, les valeurs pourraient exploser ?
Le simple fait qu’une telle modélisation de séquences fonctionne est aussi intéressant
C’est comme si l’on arrachait toutes les pages d’un livre, qu’on les donnait dans un ordre aléatoire et qu’on demandait, sans aucune connaissance des pages précédentes, de produire pour chaque page un vecteur et « une façon de mélanger ce vecteur avec le vecteur global des pages précédentes », puis que je remélange le tout dans l’ordre et que je note à quel point le vecteur final constitue un bon résumé du livre entier
Pour l’instant, ils n’utilisent que deux couches linéaires denses pour transformer un token en état caché proposé et en coefficient de mélange d’interpolation ; je me demande aussi ce qui se passerait si cette transformation était un MLP plutôt qu’une seule couche linéaire
On dirait au moins qu’elle rencontrerait des problèmes du type lemme de pompage
Si
[the ][cat ][is ][black ]produit une sortie proche d’un certain vecteur, alors une entrée où[the ][cat ][is ][black ]est répétée trois fois devrait se rapprocher encore davantage de ce vecteur, et s’éloigner d’un vecteur signifiant « pourquoi avoir répété trois fois la même phrase ? », non ?Sans mélange non linéaire entre les tokens d’entrée et l’état caché, j’ai l’impression qu’il restera beaucoup de similarité linéaire entre des séquences de tokens proches
Si c’est une simplification qui améliore l’entraînement et les performances, elle prépare le terrain pour réempiler ensuite de la complexité à un niveau plus élevé
Ce n’est pas pour rien que l’ajustement par maximum de vraisemblance se fait toujours avec la log-vraisemblance
J’ai créé un RNN pour un projet universitaire ; à l’époque, je m’intéressais aux technologies historiques disparues et je pensais qu’une fois sorti de l’école je n’entendrais plus jamais parler de réseaux de neurones, donc qu’il fallait saisir l’occasion
Ce que j’ai construit fonctionnait, mais c’était très simple et extrêmement lent sur un vieux portable
Rien ne pouvait vraiment être rapide sur cette machine, mais je garde le souvenir que le RNN était nettement plus lent qu’un réseau feedforward
J’étais convaincu que c’était une technologie morte, un objet de curiosité académique des années 1980-1990, et voir à quelle vitesse cela a changé m’a paru presque étrange
Vers 2000, j’ai écrit mon mémoire de master sur l’apprentissage de systèmes dynamiques, par exemple avec des RNN à des fins de contrôle, et à l’époque c’était un sujet assez nouveau
J’avais codé la rétropropagation en C++ et je la laissais tourner toute la nuit ; c’était vraiment lent à cause des petits gradients
L’architecture du réseau aussi se limitait à une seule couche cachée avec environ 5 ou 10 neurones
Les réseaux de neurones étaient un petit sujet, et on avait de la chance si l’on trouvait un cours dessus ; j’ai fermé les yeux un instant, puis en 2015 j’ai regardé à nouveau et tout avait complètement changé
Les auteurs, parmi lesquels figure aussi Yoshua Bengio, ont le mérite de terminer l’article sur une question plutôt que de prétendre connaître la réponse.
Ces modèles sont très petits, même selon les standards académiques, donc on ne peut pas considérer qu’un résultat s’étendra forcément jusqu’à l’échelle des LLM actuels.
La conclusion essentielle est que les réseaux de la famille des RNN peuvent eux aussi être entraînés aussi efficacement que les alternatives modernes, mais que la compétitivité de leurs performances finales n’a été vérifiée qu’à petite échelle.
Il me semble que la conclusion devrait aussi être : « le fait que les performances finales soient compétitives n’a été vérifié qu’à petite échelle ».
Les modèles de l’article ayant été rendus parallélisables, ce ne sont pas de « vrais » RNN pour les mêmes raisons que celles décrites dans https://arxiv.org/abs/2404.08819, et ils sont donc, en théorie, moins puissants que les RNN traditionnels.
Ils ont du mal sur certaines catégories de problèmes où les RNN étaient à l’origine performants.
En revanche, https://arxiv.org/abs/2405.04517 contient de « vrais » composants RNN et montre une forte amélioration sur les problèmes de suivi d’état, sur lesquels les Transformers peinent.
Ils dépendent toujours de l’état caché précédent, ce sont seulement les mécanismes de gating qui n’en dépendent pas.
L’équation RNN de base peut être parallélisée avec un algorithme de scan parallèle des préfixes.
Je n’ai pas regardé l’article en détail, mais j’aimerais que quelqu’un puisse répondre.
Comme dit plus haut, si l’on retire l’état caché d’un RNN, qu’est-ce qu’il reste ? Un MLP qui prédit à partir d’un seul token ?
Je n’ai pas entièrement digéré l’article, mais dans le cas du GRU, cela semble vouloir dire que le masquage de la mise à jour de l’état caché, c’est-à-dire
z_tetr_tdans les équations de l’article, ne dépend que de la nouvelle entrée, et non de la somme de l’entrée et de l’état caché précédent.Il y a toujours un état caché.
C’est assez similaire à ce qui a été fait dans Mamba.