Grands modèles de langageActualités et analyses de l'IAAgents IAGrands modèles de langageActualités et analyses de l'IA
Grands modèles de langageAgents IA8 min de lecture

Infini-Attention de Google

Comment Infini-Attention de Google combine l’attention locale et une mémoire compressive pour traiter de longues séquences sans recalculer tout l’historique.

Mis à jour le 18 avr. 2024
Infini-Attention de Google
Sommaire

À retenir

  • Une plus grande fenêtre de contexte ne garantit pas de meilleures réponses. Les modèles peuvent perdre des détails importants dans de longues entrées, tandis que les coûts d’attention augmentent rapidement.
  • Infini-Attention traite des segments locaux et transporte l’information plus ancienne dans une mémoire compressée, réduisant le besoin de recalculer tout l’historique.
  • L’article rapporte de meilleurs résultats à mesure que le contexte augmente, mais les équipes doivent quand même évaluer le rappel, la qualité des réponses et le coût de calcul sur leurs propres tâches.

Regardez la vidéo complète

Fenêtre de contexte. Ces deux mots ont peut-être été les plus recherchés et attendus dans les articles de recherche sur les grands modèles de langage et les annonces d’OpenAI, d’Anthropic ou de Google. Eh bien, grâce au plus récent article de Google, appelé Infini-Attention, les fenêtres de contexte ne sont plus un problème. Voyons comment ils y sont parvenus. Mais d’abord, nous avons aussi besoin d’un peu de « contexte » pour comprendre ce qu’ils ont fait.

Exemple visuel tiré de Infini-Attention de Google

Image de l’article Infini-Attention.

Une fenêtre de contexte est une façon élégante de dire combien de mots vous pouvez envoyer simultanément à un LLM. Plus la fenêtre est grande, plus vous pouvez envoyer de mots, plus il peut saisir de contexte et donc mieux comprendre votre question pour fournir une réponse adéquate.

Nous voulons envoyer autant d’information que possible au modèle et le laisser déterminer la meilleure façon de répondre à nos besoins. Le problème, c’est que la performance des modèles de langage diminue énormément lorsque le contexte augmente. Souvent, plus ils voient de mots, moins les résultats sont bons. Si vous donnez une page de livre à GPT-4 et lui posez une question sur un personnage qui se trouve sur cette page, il répondra parfaitement. Mais si vous lui donnez le livre complet, il pourrait ne pas comprendre la question. Le modèle est simplement submergé. Je suppose que c’est pareil pour nous. Imaginez devoir étudier un livre au complet pour un examen, puis recevoir comme première question une demande portant sur un détail très précis de la page 24. C’est une tâche assez complexe !

Exemple visuel tiré de Infini-Attention de Google

La performance se dégrade énormément lorsque les modèles doivent accéder à de l’information située au milieu de leur contexte d’entrée et l’utiliser. Image tirée de l’article Lost in the Middle.

Le modèle est simplement submergé par trop d’information, dont beaucoup est inutile. Les insights clés sont dilués dans une tonne de pages non pertinentes. Et il doit traiter toute cette information supplémentaire pour rien ! Cela coûte réellement de l’argent en mémoire GPU. De plus, des modèles comme GPT-4 ont une limite stricte sur le nombre de mots, causée par l’implémentation de leur architecture, surtout par le mécanisme d’attention que nous avons couvert de nombreuses fois sur la chaîne. Le modèle n’a peut-être pas non plus été entraîné à voir autant de données d’un seul coup. Il peut donc accorder son attention à quelques mots ou phrases (jeu de mots voulu), mais un livre complet risque d’être trop. Peut-être est-il simplement habitué à quelques phrases. C’est comme donner un livre de mille mots à un enfant habitué à lire des bandes dessinées.

Exemple visuel tiré de Infini-Attention de Google

Visualisation de l’attention.

Le mécanisme d’attention est l’un des principaux obstacles à l’augmentation de la fenêtre de contexte de nos modèles de langage. Ce type de couche du réseau nous permet de comprendre le contexte qui relie nos mots. Il apprend les relations entre les mots pour déterminer si nous parlons d’une véritable banque ou du bord d’une rivière, tous deux appelés bank en anglais. À partir de millions d’exemples de phrases de ce type, ce mécanisme apprend à extraire le bon contexte des phrases afin de comprendre le sens de chaque mot. Par exemple, il peut ici se concentrer sur le fait qu’une personne est assise sur ce bank, ce qui serait possible, mais plutôt compliqué sur une véritable banque. Ce serait encore plus difficile si nous parlions d’une « banque de mots » !

Exemple visuel tiré de Infini-Attention de Google

Exemple visuel tiré de Infini-Attention de Google

Mots contre tokens.

Plus nous allongeons cette phrase, plus la tâche devient difficile et plus nous avons besoin de calculs, puisque nous comparons chaque mot avec tous les autres. En passant, pour simplifier, je parle ici de mots, mais le système fonctionne en réalité avec des jetons, soit des représentations numériques de nos mots, ou plutôt de parties de mots, afin de rendre cette comparaison mathématique possible. Comme nous sommes des êtres intelligents, nous comprenons le tout grâce au contexte de la phrase, mais une machine doit le calculer avec des vecteurs et des mathématiques.

Ces calculs sont difficiles à faire efficacement en une fraction de seconde, surtout si nous étendons le texte à un livre ou même à plusieurs manuels. Eh bien, grâce à son nouvel article et à son approche Infini-Attention, Google a rendu le mécanisme d’attention beaucoup plus facile à gérer pour d’aussi grands contextes de millions de mots.

Exemple visuel tiré de Infini-Attention de Google

Infini-Attention modifie le mécanisme d’attention standard en divisant le calcul en deux parties distinctes : l’une pour l’information locale, axée sur les mots proches, et l’autre pour les relations à longue portée, qui relie les mots beaucoup plus éloignés dans le texte. 

Exemple visuel tiré de Infini-Attention de Google

Processus d’attention (à gauche) et processus d’attention infinie (à droite), avec un bloc d’attention distinct pour les courtes et les longues portées. Image adaptée de l’article Lost in the Middle.

Une amélioration majeure de ce modèle vient de sa capacité à transformer le coût de calcul, qui passe de quadratique à linéaire par rapport à la longueur de la séquence. Ce résultat est obtenu grâce à des modifications clés du mécanisme d’attention, notamment l’ajout d’une mémoire compressive.

Exemple visuel tiré de Infini-Attention de Google

Courbes quadratique (orange) et linéaire (verte).

Au départ, Infini-Attention traite le texte en segments plutôt que de traiter tout le contexte en même temps, en calculant l’attention locale à l’intérieur de chaque segment. 

Exemple visuel tiré de Infini-Attention de Google

Séquençage original de Transformer-XL pour les longues entrées.

Au-delà du simple traitement des segments individuels, le modèle compresse l’information des segments passés dans un état de mémoire auquel il peut facilement accéder au besoin. Cette méthode intègre efficacement le contexte à longue portée dans chaque calcul local, ce qui améliore énormément la capacité à passer à l’échelle et la densité du traitement des données.

Exemple visuel tiré de Infini-Attention de Google

Séquençage d’Infini-Transformer pour les longues entrées, avec mise à jour et récupération de la mémoire compressive.

Avec cette approche, au lieu de recalculer constamment la pertinence des données plus anciennes chaque fois qu’une nouvelle entrée est traitée, le modèle stocke efficacement cette information sous forme compressée. Lorsque le contexte de ces segments passés redevient pertinent, il peut le récupérer rapidement dans cet état de mémoire compressive. Ainsi, quand le modèle traite un nouveau segment de texte, il ne repart pas de zéro. Il récupère l’information pertinente dans les états de mémoire compressive en fonction des requêtes d’entrée actuelles et ramène les données historiques les plus pertinentes au premier plan. Même les détails éloignés, mais pertinents, sont donc pris en compte à chaque nouvelle étape.

Après avoir traité chaque segment, le modèle met à jour ses états de mémoire en intégrant les nouvelles données et en écartant de façon sélective l’information moins pertinente. La mémoire reste ainsi efficace et facile à gérer, ce qui optimise à la fois la performance et l’utilisation des ressources.

Et voilà ! En gérant la mémoire de cette façon, Infini-Attention atteint un équilibre entre la profondeur du contexte et l’efficacité du calcul, ce qui est crucial pour les tâches qui impliquent de grands volumes de texte ou dans lesquelles le contexte historique influence beaucoup les décisions actuelles.

Ils ont montré que le mécanisme Infini-Attention offre même une meilleure performance à mesure que nous lui donnons plus de contexte, au lieu de produire de moins bons résultats.

Exemple visuel tiré de Infini-Attention de Google

Résultat du modèle Infini-Attention en fonction de la longueur de l’entrée. Image adaptée de l’article Lost in the Middle.

En bref, il s’agit d’un travail très important qui nous permet de fournir davantage d’information à notre modèle de langage, comme des manuels complets, afin qu’il produise de meilleures réponses, plus adéquates. Cela signifie que nous travaillons de moins en moins et perdons des cellules cérébrales ! Plutôt cool, non ? Je blague. Enfin, j’espère que je blague et que cela n’arrivera pas…

Bien sûr, il s’agissait seulement d’une vidéo de présentation de ce nouvel article de recherche et de cette approche passionnante. L’article s’intitule Leave No Context Behind. Je vous invite vraiment à le lire et à en apprendre davantage sur ce mécanisme et sur les modèles de langage en général. C’est une lecture très intéressante.

Merci d’avoir lu l’article au complet, et on se retrouve dans le prochain !

Discussion

Commentaires

Chargement

Aucun compte requis. Votre nom et votre commentaire seront publics, alors n'incluez pas de renseignements privés. Consultez la page de confidentialité pour les détails.

Continuez à apprendre

Vous voulez le côté pratique de l'IA, sans le brouillard marketing ?

Je partage ce qui est utile sur YouTube, Substack et dans mes guides d'ingénierie IA.

FAQ

À quel problème Infini-Attention s’attaque-t-elle ?

Elle aide les Transformers à traiter de très longues séquences sans conserver et recalculer l’historique complet à chaque étape.

Comment Infini-Attention gère-t-elle le contexte récent ?

L’attention locale préserve un accès détaillé à une fenêtre limitée de tokens proches.

Comment conserve-t-elle l’information plus ancienne ?

Une mémoire compressive résume le contexte passé dans un état compact qui peut être réutilisé plus tard.

Pourquoi ne pas appliquer l’attention directement à la séquence complète ?

L’attention standard devient de plus en plus coûteuse en calcul et en mémoire à mesure que la séquence s’allonge.

Un contexte plus long a-t-il nui au modèle présenté ?

Les expériences rapportées montrent que la performance s’améliore avec le contexte supplémentaire au lieu de se dégrader en raison de la séquence plus longue.