La rubrique AIxiv est une rubrique où ce site publie du contenu académique et technique. Au cours des dernières années, la rubrique AIxiv de ce site a reçu plus de 2 000 rapports, couvrant les meilleurs laboratoires des principales universités et entreprises du monde entier, favorisant efficacement les échanges et la diffusion académiques. Si vous souhaitez partager un excellent travail, n'hésitez pas à contribuer ou à nous contacter pour un rapport. Courriel de soumission : liyazhou@jiqizhixin.com ; zhaoyunfeng@jiqizhixin.com
Li Yuhui : Master de l'École d'intelligence, Université de Pékin, sous la direction des professeurs Zhang Hongyang et Zhang Chao, sa direction de recherche est accélération et alignement des grands modèles, et est actuellement à la recherche d'opportunités d'emploi dans la 25e classeWei Fangyun : chercheur au Microsoft Asia Research Institute, l'orientation de la recherche est l'intelligence incarnée, la génération d'images et les agents d'IAZhang Chao : Chercheur à la Peking University School of Intelligence, la direction de la recherche est la vision par ordinateur et l'apprentissage automatique
Zhang Hongyang : professeur adjoint à la School of Computer Science and Vector Research Institute, Université de Waterloo, la direction de la recherche est l'accélération LLM et la sécurité de l'IA
Le décodage autorégressif est devenu le standard de facto pour les grands modèles de langage (LLM), grands modèles de langage. Chaque calcul direct nécessite l'accès à tous ses paramètres, mais un seul jeton peut être obtenu, ce qui rend sa génération coûteuse et lente. Aujourd'hui, un article intitulé "EAGLE-2: Faster Inference of Language Models with Dynamic Draft Trees" propose un échantillonnage spéculatif dynamique d'arbre de brouillon, qui ajuste dynamiquement la structure de l'arbre de brouillon en fonction de la confiance du modèle de brouillon, avec le plus élevé, il peut augmenter la vitesse d'inférence des grands modèles de langage de 5 fois sans modifier la distribution de sortie des grands modèles de langage, garantissant ainsi l'absence de perte.
- Lien papier : https://arxiv.org/pdf/2406.16858
- Lien du projet : https://github.com/SafeAILab/EAGLE
- Lien démo : https : //huggingface.co/spaces/yuhuili/EAGLE-2
L'effet d'accélération d'EAGLE-2 sur l'ensemble de données de dialogue multi-tours MT-bench (l'image du haut est la génération gourmande, l'image du bas est génération d'échantillonnage) : En utilisant EAGLE-2, la vitesse d'inférence de 2 RTX 3060 (300 $) peut dépasser A100 (10 000 $). L'échantillonnage spéculatif utilise un petit modèle pour générer rapidement des brouillons. Le grand modèle de langage original peut vérifier l'exactitude du brouillon grâce à un calcul avancé et prendre le brouillon correct comme sortie. . Cela génère plusieurs jetons à la fois et garantit aucune perte. EAGLE est une amélioration par rapport à l’échantillonnage spéculatif. Il effectue une autorégression au niveau des fonctionnalités plus régulières plutôt qu'au niveau des jetons, et saisit en même temps les résultats d'échantillonnage (jetons avec une avance de temps) pour éliminer l'incertitude et améliorer considérablement la précision du projet de modèle. Jusqu'à présent, EAGLE se classe premier dans le test tiers Spec-Bench (https://github.com/hemingkx/Spec-Bench/blob/main/Leaderboard.md). Des méthodes telles que EAGLE et Medusa utilisent des arbres de brouillon statiques, en supposant implicitement que le taux d'acceptation des jetons de brouillon est indépendant du contexte . Lorsque ce qui précède est "10+2", le prochain jeton est difficile à prédire. EAGLE ajoute deux jetons candidats à cette position pour augmenter le taux de réussite du draft. Un seul parmi "10+2=" et "10+2+" est. correct. Lorsque ce qui précède est "10+2=", le jeton suivant est évidemment "1", mais EAGLE utilise une structure de brouillon statique et ajoute toujours deux candidats "1" et "3" n'y figurent pas. peut être un gaspillage lors de l’inspection de grands modèles de langage. EAGLE-2 vise à résoudre ce problème. Comme le montre la figure ci-dessous, lorsque ce qui précède est "10+2=", EAGLE-2 n'ajoute qu'un seul jeton candidat "1" et utilise le jeton enregistré pour approfondir l'arborescence de brouillon. , de sorte que "10+2=12" passe l'inspection du grand modèle de langage et qu'EAGLE-2 puisse générer plus de jetons à la fois. Les auteurs d'EAGLE-2 ont effectué un test simple sur l'ensemble de données Alpaca. La figure ci-dessous montre le taux d'acceptation des jetons de draft à différentes positions P1-P6 dans la figure de gauche représente la position, et la ligne horizontale. dans la figure de droite, les coordonnées des axes correspondent. Les résultats expérimentaux montrent que les taux d'acceptation des jetons de brouillon à la même position sont également significativement différents, ce qui montre que l'utilisation d'arbres de brouillon dynamiques peut obtenir de meilleurs résultats que les arbres de brouillon statiques. Dans l'exemple ci-dessus, EAGLE-2 détermine la structure de l'arbre de brouillon en fonction de la difficulté de prédire le jeton de brouillon. Un calcul précis de la difficulté (taux d'acceptation) nécessite les résultats de calcul du grand modèle de langage original, ce qui viole la réduction de l'échantillonnage spéculatif. Intention initiale d'accéder aux grands modèles de langage originaux. Heureusement, la confiance dans le projet de modèle d'EAGLE est fortement positivement corrélée au taux d'acceptation (difficulté). La figure ci-dessous montre le taux d'acceptation moyen des projets de jetons à différents intervalles de confiance du projet de modèle, la ligne pointillée rouge reliant (0,0) et (1,1). Il s’ensuit que le niveau de confiance du projet de modèle peut être utilisé comme une approximation valable du taux d’acceptation.
EAGLE-2 comprend deux étapes, l'expansion et le réarrangement. L'étape d'expansion approfondit et agrandit l'arbre de brouillon, et l'étape de réarrangement élague l'arbre de brouillon et supprime certains nœuds (jetons). Afin de garantir l'absence de perte, la prémisse pour qu'un brouillon de jeton soit accepté est que tous ses nœuds ancêtres sont acceptés, donc EAGLE-2 définit la valeur d'un nœud comme le produit de celui-ci et le taux d'acceptation de son ancêtre, en utilisant le produit du niveau de confiance pour obtenir une approximation. Dans la phase d'expansion, EAGLE-2 sélectionne les m nœuds (jetons) avec la valeur la plus élevée dans la dernière couche de l'arbre de brouillon pour l'expansion. Ces jetons sont introduits dans le modèle brouillon, puis la sortie du modèle brouillon est connectée au nœud d'entrée en tant que nœud enfant, approfondissant et élargissant l'arborescence brouillon. Dans la phase de réorganisation, EAGLE-2 réorganise l'ensemble de l'arborescence de brouillon en fonction de la valeur, en conservant les n premiers nœuds (jetons). La confiance du draft token est comprise entre 0 et 1. Lorsque les deux nœuds ont la même valeur, les nœuds superficiels sont conservés en premier. Par conséquent, l'arborescence draft conservée après réarrangement doit être connectée, assurant la cohérence sémantique. Après le réarrangement, l'arborescence brouillon devient plus petite, réduisant ainsi la charge de calcul de la vérification originale du grand modèle de langage. Afin de garantir l'exactitude des résultats du calcul, le masque d'attention doit être ajusté pour garantir que chaque jeton ne peut voir que ses nœuds ancêtres et n'est pas affecté par les autres branches. Vous trouverez ci-dessous un exemple simple. Les cases jaunes de l'étape Expand représentent les nœuds sélectionnés pour l'expansion, et les cases vertes sont les prédictions du projet de modèle lorsque ces nœuds sont utilisés comme entrée. Les cases bleues de l'étape Rerank représentent les nœuds retenus, qui sont ensuite aplatis en une seule dimension en tant qu'entrée dans le grand modèle de langage d'origine. EAGLE-2 ajuste le masque d'attention en fonction de la structure de l'arbre. Par exemple, "a" ne peut voir que ses ancêtres "It" et "is", mais ne peut pas voir les "has" d'une autre branche. EAGLE-2 ajuste également le codage de position pour garantir la cohérence avec le décodage autorégressif standard. EAGLE-2 utilise MT-bench, Humaneval, GSM8K, Alpaca, CNN/ Des expériences ont été menées sur l'ensemble de données DM, Natural Questions et comparées à 6 méthodes d'échantillonnage spéculatives avancées (SpS, PLD, Méduse, Lookahead, Hydra, EAGLE).
Speedup dans le tableau est le taux d'accélération et τ est la longueur d'acceptation moyenne, qui est le nombre de jetons que le grand modèle de langage d'origine peut générer pour chaque calcul direct. EAGLE-2 peut générer environ 4 à 5 jetons pour chaque calcul direct, tandis que le décodage autorégressif génère 1 jeton à chaque fois. Par conséquent, EAGLE-2 accélère considérablement la génération de grands modèles de langage, avec un taux d'accélération de 2,5x-5x. L'accélération et la longueur d'acceptation sont les plus élevées sur la tâche de génération de code (ensemble de données Humaneval), car il existe un grand nombre de modèles déterministes dans le code et les brouillons sont plus faciles à réaliser. Pour toutes les tâches et tous les grands modèles de langage, EAGLE-2 présente le taux d'accélération et la durée d'acceptation moyenne les plus élevés, bien meilleurs que les autres méthodes. EAGLE-2 est également utilisé dans l'industrie et intégré à Intel/intel-extension-for-transformers, etc. Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!