Avec jusqu'à 4 millions de contextes de jetons et une inférence 22 fois plus rapide, StreamingLLM est devenu populaire et a reçu 2,5 000 étoiles sur GitHub.
Si vous avez déjà eu l'occasion de communiquer avec un robot d'IA conversationnel, vous vous souvenez certainement de moments extrêmement « frustrants ». Par exemple, les points clés que vous avez évoqués lors de la conversation de la veille ont été complètement oubliés par l'IA...
En effet, la plupart des LLM actuels ne peuvent mémoriser qu'un contexte limité : tout comme les étudiants qui préparent leurs examens, leurs pieds seront exposés après un petit interrogatoire.
Imaginez si un assistant IA dans une conversation pouvait faire référence de manière contextuelle à des conversations d'il y a des semaines ou des mois, ou si vous pouviez demander à l'assistant IA de résumer un rapport de plusieurs milliers de pages.
Afin que LLM se souvienne davantage et mieux, les chercheurs travaillent constamment dur. Récemment, des chercheurs du MIT, Meta AI et CMU ont proposé une méthode appelée « StreamingLLM » pour permettre aux modèles de langage de traiter en douceur du texte sans fin.
* Adresse papier :
*adresse du projet :
Le principe de fonctionnement de StreamingLLM est d'identifier et de sauvegarder les jetons initiaux ancrés par les « puits d'attention » inhérents au modèle pour son raisonnement. Combiné avec le cache roulant des jetons récents, StreamingLLM accélère l'inférence de 22 fois sans sacrifier la précision. En quelques jours seulement, le projet a gagné 2,5K étoiles sur la plateforme GitHub :
Plus précisément, StreamingLLM permet aux modèles linguistiques de mémoriser avec précision le score de touchdown du dernier match, le nom du nouveau-né, le contenu d'un long contrat ou d'un débat, tout comme la mémoire de l'assistant IA a été mise à niveau pour gérer parfaitement des charges de travail plus lourdes.
Examinons ensuite les détails techniques.
Innovation de méthode
Habituellement, le LLM est limité par la fenêtre d’attention lorsqu’il est pré-entraîné. Bien que de nombreux travaux aient été réalisés pour étendre cette taille de fenêtre et améliorer l'efficacité de la formation et de l'inférence, la longueur de séquence acceptable de LLM est encore limitée, ce qui n'est pas convivial pour un déploiement persistant.
Dans cet article, les chercheurs ont d'abord présenté le concept d'applications de streaming LLM et posé la question : « LLM peut-il être déployé avec des entrées infiniment longues sans sacrifier l'efficacité et les performances ? »
Il existe deux défis principaux lors de l'application du LLM à des flux d'entrée infiniment longs :
Pendant la phase de décodage, le LLM basé sur le transformateur met en cache l'état de clé et de valeur (KV) de tous les jetons précédents, comme le montre la figure 1 (a), ce qui peut entraîner une utilisation excessive de la mémoire et augmenter la latence de décodage ;
La capacité d'extrapolation de longueur des modèles existants est limitée, c'est-à-dire que lorsque la longueur de la séquence dépasse la taille de la fenêtre d'attention définie lors de la pré-entraînement, ses performances diminuent.
Une méthode intuitive est appelée Window Attention (Figure 1 b). Cette méthode maintient uniquement une fenêtre glissante de taille fixe sur l'état KV du jeton le plus récent, bien qu'elle puisse garantir qu'elle peut maintenir une utilisation de la mémoire et une vitesse de décodage stables, mais une fois que la longueur de la séquence dépasse la taille du cache, ou même expulse simplement le KV du premier jeton, le modèle s'effondrera. Une autre méthode consiste à recalculer la fenêtre glissante (illustré dans la figure 1 c). Cette méthode reconstruira l'état KV du jeton récent pour chaque jeton généré. Bien que les performances soient puissantes, elle nécessite le calcul de l'attention secondaire dans la fenêtre. le résultat est nettement plus lent, ce qui n’est pas idéal dans les vraies applications de streaming.
Dans le processus de compréhension de l'échec de l'attention de la fenêtre, les chercheurs ont découvert un phénomène intéressant de LLM autorégressif : comme le montre la figure 2, un grand nombre de scores d'attention sont attribués aux jetons initiaux, que ces jetons soient liés ou non à la tâche de modélisation du langage. . .
Les chercheurs appellent ces jetons « pools d’attention » : bien qu’ils manquent de signification sémantique, ils occupent un grand nombre de points d’attention. Les chercheurs attribuent ce phénomène à Softmax (qui nécessite que la somme des scores d'attention de tous les jetons de contexte soit égale à 1). Même si la requête actuelle n'a pas de correspondance forte parmi de nombreux jetons précédents, le modèle doit quand même transférer ces attentions inutiles. Les valeurs sont attribuées quelque part de manière à ce qu'elles totalisent 1. La raison pour laquelle le jeton initial devient un « pool » est intuitive : en raison des caractéristiques de la modélisation du langage autorégressive, le jeton initial est visible par presque tous les jetons suivants, ce qui facilite leur formation en tant que pool d'attention.
Sur la base des informations ci-dessus, les chercheurs ont proposé StreamingLLM, un cadre simple et efficace qui permet à un modèle d'attention formé à l'aide d'une fenêtre d'attention limitée de traiter un texte infiniment long sans réglage fin.
StreamingLLM exploite le fait que les pools d'attention ont des valeurs d'attention élevées, et le maintien de ces pools d'attention peut rendre la distribution du score d'attention proche d'une distribution normale. Par conséquent, StreamingLLM n'a besoin que de conserver la valeur KV du jeton du pool d'attention (seuls 4 jetons initiaux suffisent) et la valeur KV de la fenêtre glissante pour ancrer le calcul de l'attention et stabiliser les performances du modèle.
Grâce à StreamingLLM, les modèles tels que Llama-2-[7,13,70] B, MPT-[7,30] B, Falcon-[7,40] B et Pythia [2.9,6.9,12] B peuvent être fiables. Simuler 4 millions de jetons ou même plus.
Par rapport à la seule référence réalisable, recalculant la fenêtre glissante, StreamingLLM est 22,2 fois plus rapide sans sacrifier les performances.
Évaluation
Dans la session expérimentale, comme le montre la figure 3, sur un texte couvrant 20 000 jetons, la perplexité de StreamingLLM est comparable à la ligne de base d'Oracle (recalcul de la fenêtre glissante). Dans le même temps, lorsque la longueur d'entrée dépasse la fenêtre de pré-entraînement, l'attention dense échouera, et lorsque la longueur d'entrée dépasse la taille du cache, l'attention de la fenêtre aura des problèmes, entraînant l'élimination du jeton initial.
La figure 5 confirme en outre que StreamingLLM peut gérer de manière fiable des textes de tailles inhabituelles, dont plus de 4 millions de jetons, couvrant une variété de familles et de tailles de modèles. Cela inclut Llama-2-[7,13,70] B, Falcon-[7,40] B, Pythia-[2.8,6.9,12] B et MPT-[7,30] B.
Par la suite, les chercheurs ont confirmé l'hypothèse du « pool d'attention » et ont prouvé que le modèle de langage peut être pré-entraîné et ne nécessite qu'un jeton de pool d'attention lors du déploiement du streaming. Plus précisément, ils recommandent d’ajouter un jeton apprenable supplémentaire au début de tous les échantillons de formation en tant que pool d’attention désigné. En pré-entraînant un modèle de langage avec 160 millions de paramètres à partir de zéro, les chercheurs ont démontré que cette méthode peut maintenir les performances du modèle. Cela contraste fortement avec les modèles de langage actuels, qui nécessitent la réintroduction de plusieurs jetons initiaux en tant que pools d'attention pour atteindre le même niveau de performances.
Enfin, les chercheurs ont comparé la latence de décodage et l'utilisation de la mémoire de StreamingLLM avec la fenêtre glissante de recalcul et ont testé sur un seul GPU NVIDIA A6000 en utilisant les modèles Llama-2-7B et Llama-2-13B. Comme le montre la figure 10, à mesure que la taille du cache augmente, la vitesse de décodage de StreamingLLM augmente de manière linéaire. Le retard de décodage de ce dernier augmente selon une courbe quadratique. Des expériences ont prouvé que StreamingLLM atteint des accélérations impressionnantes, la vitesse de chaque jeton étant augmentée jusqu'à 22,2 fois.
Pour plus de détails sur la recherche, veuillez vous référer à l’article original.
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
Avec jusqu'à 4 millions de contextes de jetons et une inférence 22 fois plus rapide, StreamingLLM est devenu populaire et a reçu 2,5 000 étoiles sur GitHub.
Éditeur : Sauce aux œufs
Si vous avez déjà eu l'occasion de communiquer avec un robot d'IA conversationnel, vous vous souvenez certainement de moments extrêmement « frustrants ». Par exemple, les points clés que vous avez évoqués lors de la conversation de la veille ont été complètement oubliés par l'IA...
En effet, la plupart des LLM actuels ne peuvent mémoriser qu'un contexte limité : tout comme les étudiants qui préparent leurs examens, leurs pieds seront exposés après un petit interrogatoire.
Imaginez si un assistant IA dans une conversation pouvait faire référence de manière contextuelle à des conversations d'il y a des semaines ou des mois, ou si vous pouviez demander à l'assistant IA de résumer un rapport de plusieurs milliers de pages.
Afin que LLM se souvienne davantage et mieux, les chercheurs travaillent constamment dur. Récemment, des chercheurs du MIT, Meta AI et CMU ont proposé une méthode appelée « StreamingLLM » pour permettre aux modèles de langage de traiter en douceur du texte sans fin.
Le principe de fonctionnement de StreamingLLM est d'identifier et de sauvegarder les jetons initiaux ancrés par les « puits d'attention » inhérents au modèle pour son raisonnement. Combiné avec le cache roulant des jetons récents, StreamingLLM accélère l'inférence de 22 fois sans sacrifier la précision. En quelques jours seulement, le projet a gagné 2,5K étoiles sur la plateforme GitHub :
Innovation de méthode
Habituellement, le LLM est limité par la fenêtre d’attention lorsqu’il est pré-entraîné. Bien que de nombreux travaux aient été réalisés pour étendre cette taille de fenêtre et améliorer l'efficacité de la formation et de l'inférence, la longueur de séquence acceptable de LLM est encore limitée, ce qui n'est pas convivial pour un déploiement persistant.
Dans cet article, les chercheurs ont d'abord présenté le concept d'applications de streaming LLM et posé la question : « LLM peut-il être déployé avec des entrées infiniment longues sans sacrifier l'efficacité et les performances ? »
Il existe deux défis principaux lors de l'application du LLM à des flux d'entrée infiniment longs :
Pendant la phase de décodage, le LLM basé sur le transformateur met en cache l'état de clé et de valeur (KV) de tous les jetons précédents, comme le montre la figure 1 (a), ce qui peut entraîner une utilisation excessive de la mémoire et augmenter la latence de décodage ;
La capacité d'extrapolation de longueur des modèles existants est limitée, c'est-à-dire que lorsque la longueur de la séquence dépasse la taille de la fenêtre d'attention définie lors de la pré-entraînement, ses performances diminuent.
Dans le processus de compréhension de l'échec de l'attention de la fenêtre, les chercheurs ont découvert un phénomène intéressant de LLM autorégressif : comme le montre la figure 2, un grand nombre de scores d'attention sont attribués aux jetons initiaux, que ces jetons soient liés ou non à la tâche de modélisation du langage. . .
Sur la base des informations ci-dessus, les chercheurs ont proposé StreamingLLM, un cadre simple et efficace qui permet à un modèle d'attention formé à l'aide d'une fenêtre d'attention limitée de traiter un texte infiniment long sans réglage fin.
StreamingLLM exploite le fait que les pools d'attention ont des valeurs d'attention élevées, et le maintien de ces pools d'attention peut rendre la distribution du score d'attention proche d'une distribution normale. Par conséquent, StreamingLLM n'a besoin que de conserver la valeur KV du jeton du pool d'attention (seuls 4 jetons initiaux suffisent) et la valeur KV de la fenêtre glissante pour ancrer le calcul de l'attention et stabiliser les performances du modèle.
Grâce à StreamingLLM, les modèles tels que Llama-2-[7,13,70] B, MPT-[7,30] B, Falcon-[7,40] B et Pythia [2.9,6.9,12] B peuvent être fiables. Simuler 4 millions de jetons ou même plus.
Par rapport à la seule référence réalisable, recalculant la fenêtre glissante, StreamingLLM est 22,2 fois plus rapide sans sacrifier les performances.
Évaluation
Dans la session expérimentale, comme le montre la figure 3, sur un texte couvrant 20 000 jetons, la perplexité de StreamingLLM est comparable à la ligne de base d'Oracle (recalcul de la fenêtre glissante). Dans le même temps, lorsque la longueur d'entrée dépasse la fenêtre de pré-entraînement, l'attention dense échouera, et lorsque la longueur d'entrée dépasse la taille du cache, l'attention de la fenêtre aura des problèmes, entraînant l'élimination du jeton initial.
Enfin, les chercheurs ont comparé la latence de décodage et l'utilisation de la mémoire de StreamingLLM avec la fenêtre glissante de recalcul et ont testé sur un seul GPU NVIDIA A6000 en utilisant les modèles Llama-2-7B et Llama-2-13B. Comme le montre la figure 10, à mesure que la taille du cache augmente, la vitesse de décodage de StreamingLLM augmente de manière linéaire. Le retard de décodage de ce dernier augmente selon une courbe quadratique. Des expériences ont prouvé que StreamingLLM atteint des accélérations impressionnantes, la vitesse de chaque jeton étant augmentée jusqu'à 22,2 fois.