Maison > Article > Périphériques technologiques > L'inférence LLM est 3 fois plus rapide ! Microsoft lance LLM Accelerator : utiliser un texte de référence pour obtenir une accélération sans perte
Avec le développement rapide de la technologie de l'intelligence artificielle, de nouveaux produits et technologies tels que ChatGPT, New Bing et GPT-4 ont été lancés les uns après les autres et joueront un rôle de plus en plus important dans de nombreuses applications.
La plupart des grands modèles linguistiques actuels sont des modèles autorégressifs. L'autorégression signifie que le modèle utilise souvent une sortie mot par mot lors de la sortie, c'est-à-dire que lors de la sortie de chaque mot, le modèle doit utiliser les mots précédemment générés comme entrée. Ce mode autorégressif restreint généralement la pleine utilisation des accélérateurs parallèles pendant la sortie.
Dans de nombreux scénarios d'application, la sortie d'un grand modèle présente souvent une grande similitude avec certains textes de référence, comme dans les trois scénarios courants suivants :
1. Génération améliorée par récupération
Quand. les applications de recherche telles que New Bing répondent aux entrées de l'utilisateur, elles renverront d'abord certaines informations liées à l'entrée de l'utilisateur, puis utiliseront un modèle de langage pour résumer les informations récupérées, puis répondront à l'entrée de l'utilisateur. Dans ce scénario, la sortie du modèle contient souvent un grand nombre de fragments de texte issus des résultats de recherche.
2. Utiliser la génération en cache
Dans le processus de déploiement à grande échelle de modèles de langage, les entrées et sorties historiques seront mises en cache. Lors du traitement d'une nouvelle entrée, l'application de récupération recherche une entrée similaire dans le cache. Par conséquent, la sortie du modèle est souvent très similaire à la sortie correspondante dans le cache.
3. Génération dans des conversations à plusieurs tours
Lors de l'utilisation d'applications telles que ChatGPT, les utilisateurs font souvent des demandes de modifications répétées en fonction de la sortie du modèle. Dans ce scénario de dialogue à plusieurs tours, les multiples résultats du modèle ne comportent souvent qu'un faible degré de changement et un degré élevé de répétition.
Figure 1 : Scénarios courants dans lesquels la sortie d'un grand modèle est similaire au texte de référence
Sur la base des observations ci-dessus, les chercheurs ont utilisé la répétabilité du texte de référence et du modèle la sortie comme une percée dans l'autorégression En nous concentrant sur le goulot d'étranglement, nous espérons améliorer l'utilisation des accélérateurs parallèles et accélérer le raisonnement sur de grands modèles de langage, puis proposer une méthode LLM Accelerator qui utilise la répétition de la sortie et du texte de référence pour produire plusieurs mots en une seule étape .
Figure 2 : Algorithme de décodage de l'accélérateur LLM
Plus précisément, à chaque étape de décodage, laissez le modèle correspondre d'abord aux résultats de sortie existants et au texte de référence si une référence est trouvée Si le texte. correspond à la sortie existante, le modèle continuera probablement à générer le texte de référence existant.
Par conséquent, les chercheurs ont ajouté les mots suivants du texte de référence comme entrée au modèle, de sorte qu'une étape de décodage puisse produire plusieurs mots.
Afin de garantir l'exactitude des entrées et des sorties, les chercheurs ont ensuite comparé les mots produits par le modèle avec les mots entrés dans le document de référence. Si les deux sont incohérents, les résultats d’entrée et de sortie incorrects seront ignorés.
La méthode ci-dessus peut garantir que les résultats de décodage sont complètement cohérents avec la méthode de base et peut augmenter le nombre de mots de sortie dans chaque étape de décodage, obtenant ainsi une accélération sans perte de l'inférence de grand modèle.
LLM Accelerator ne nécessite pas de modèles auxiliaires supplémentaires, est simple à utiliser et peut être facilement déployé dans divers scénarios d'application.
Lien papier : https://arxiv.org/pdf/2304.04487.pdf
Lien du projet : https://github.com/microsoft/LMOps
Utilisation de LLM Accelerator, Il y a deux hyperparamètres qui doivent être réglés.
Premièrement, le nombre de mots correspondants entre la sortie requise pour déclencher le mécanisme de correspondance et le texte de référence : plus le nombre de mots correspondants est long, plus il est précis, ce qui peut mieux garantir que les mots copiés à partir du texte de référence sont sortie correcte, réduisant les déclenchements et calculs inutiles ; correspondances plus courtes, moins d'étapes de décodage, accélération potentiellement plus rapide.
Le deuxième est le nombre de mots copiés à chaque fois : plus il y a de mots copiés, plus le potentiel d'accélération est grand, mais cela peut également entraîner la suppression d'un plus grand nombre de résultats incorrects, ce qui gaspille des ressources informatiques. Les chercheurs ont découvert grâce à des expériences que des stratégies plus agressives (faire correspondre des déclencheurs d'un seul mot, copier 15 à 20 mots à la fois) peuvent souvent atteindre de meilleurs taux d'accélération.
Afin de vérifier l'efficacité de LLM Accelerator, les chercheurs ont mené des expériences sur l'amélioration de la récupération et la génération assistée par cache, et ont construit des échantillons expérimentaux à l'aide de l'ensemble de données de récupération de paragraphe MS-MARCO.
Dans l'expérience d'amélioration de la récupération, les chercheurs ont utilisé le modèle de récupération pour renvoyer les 10 documents les plus pertinents pour chaque requête, puis les ont intégrés à la requête comme entrée du modèle, en utilisant ces 10 documents comme texte de référence.
Dans l'expérience de génération assistée par cache, chaque requête génère quatre requêtes similaires, puis utilise le modèle pour générer la requête correspondante comme texte de référence.
Tableau 1 : Comparaison temporelle dans le scénario de génération améliorée par récupération
Tableau 2 : Comparaison temporelle dans le scénario de génération utilisant le cache
Le les chercheurs ont utilisé la sortie du modèle Davinci-003 obtenue via l'interface OpenAI comme sortie cible pour obtenir une sortie de haute qualité. Après avoir obtenu les entrées, sorties et textes de référence requis, les chercheurs ont mené des expériences sur le modèle de langage open source LLaMA.
Étant donné que la sortie du modèle LLaMA est incompatible avec la sortie Davinci-003, les chercheurs ont utilisé une méthode de décodage orientée objectif pour tester le rapport d'accélération sous la sortie idéale (résultat du modèle Davinci-003).
Les chercheurs ont utilisé l'algorithme 2 pour obtenir les étapes de décodage nécessaires pour générer la sortie cible lors du décodage gourmand, et ont forcé le modèle LLaMA à décoder en fonction des étapes de décodage obtenues.
Figure 3 : Utilisation de l'algorithme 2 pour obtenir les étapes de décodage requises pour générer la sortie cible lors du décodage gourmand
Pour les modèles avec des quantités de paramètres de 7B et 13B, les chercheurs ont utilisé un seul Les expériences NVIDIA 32G sont menées sur le GPU V100 ; pour un modèle avec une taille de paramètre de 30 B, les expériences sont menées sur quatre GPU identiques. Toutes les expériences utilisent des nombres à virgule flottante demi-précision, le décodage est un décodage gourmand et la taille du lot est de 1.
Les résultats expérimentaux montrent que LLM Accelerator a atteint deux à trois fois le taux d'accélération dans différentes tailles de modèle (7B, 13B, 30B) et différents scénarios d'application (amélioration de la récupération, assistance au cache).
Une analyse expérimentale plus approfondie a révélé que LLM Accelertator peut réduire considérablement les étapes de décodage requises et que le taux d'accélération est positivement corrélé au taux de réduction des étapes de décodage.
D'une part, moins d'étapes de décodage signifie que chaque étape de décodage génère plus de mots de sortie, ce qui peut améliorer l'efficacité des calculs GPU, d'autre part, pour le modèle 30B qui nécessite un parallélisme multi-cartes, cela signifie ; plus Moins de cartes multiples peuvent être synchronisées pour obtenir une amélioration plus rapide de la vitesse.
Dans l'expérience d'ablation, les résultats de l'analyse des hyperparamètres de LLM Accelertator sur l'ensemble de développement ont montré que lors de la correspondance d'un seul mot (c'est-à-dire en déclenchant le mécanisme de copie), le taux d'accélération peut atteindre le maximum lors de la copie de 15 à 20 mots à la fois (illustré dans la figure 4).
Dans la figure 5, nous pouvons voir que le nombre de mots correspondants est de 1, ce qui peut déclencher davantage le mécanisme de copie, et à mesure que la longueur de la copie augmente, les mots de sortie acceptés par chaque étape de décodage augmentent et les étapes de décodage diminuent, ainsi atteindre un taux d'accélération plus élevé.
Figure 4 : Dans l'expérience d'ablation, les résultats de l'analyse des hyperparamètres de l'accélérateur LLM sur l'ensemble de développement
Figure 5 : Sur l'ensemble de développement , avec des données statistiques sur les étapes de décodage pour différents nombres de mots correspondants n et nombre de mots copiés k
LLM Accelertator fait partie de la série de travaux du Microsoft Research Asia Natural Language Computing Group sur l'accélération des grands modèles de langage. les chercheurs continueront d'étudier les questions connexes. Explorez plus en profondeur.
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!