Maison  >  Article  >  Périphériques technologiques  >  Pour exécuter le modèle de volume ChatGPT, vous n’avez désormais besoin que d’un GPU : voici une méthode pour l’accélérer cent fois.

Pour exécuter le modèle de volume ChatGPT, vous n’avez désormais besoin que d’un GPU : voici une méthode pour l’accélérer cent fois.

WBOY
WBOYavant
2023-04-11 19:58:12899parcourir

Le coût de calcul est l'un des défis majeurs auxquels les gens sont confrontés lors de la création de grands modèles tels que ChatGPT.

Selon les statistiques, l'évolution de GPT vers GPT-3 est également un processus de croissance du volume du modèle - le nombre de paramètres est passé de 117 millions à 175 milliards, et la quantité de données de pré-entraînement est passée de 5 Go à 45 To, dont formation GPT-3. Les frais uniques s'élèvent à 4,6 millions de dollars, ce qui porte le coût total de la formation à 12 millions de dollars.

En plus de la formation, l'inférence coûte également cher. Certaines personnes estiment que le coût en puissance de calcul d’OpenAI exécutant ChatGPT est de 100 000 USD par jour.

Tout en développant une technologie pour permettre aux grands modèles de maîtriser davantage de capacités, certains tentent également de réduire les ressources informatiques nécessaires à l'IA. Récemment, une technologie appelée FlexGen a attiré l'attention des gens grâce à « un RTX 3090 exécutant le modèle de volume ChatGPT ».

Bien que le grand modèle accéléré par FlexGen semble encore très lent - 1 jeton par seconde lors de l'exécution d'un modèle de langage de 175 milliards de paramètres, ce qui est impressionnant, c'est qu'il a rendu l'impossible possible.

Traditionnellement, les exigences élevées en matière de calcul et de mémoire de l'inférence de grands modèles de langage (LLM) nécessitaient l'utilisation de plusieurs accélérateurs d'IA haut de gamme pour la formation. Cette étude explore comment réduire les exigences de l'inférence LLM à un GPU grand public et obtenir des performances pratiques.

Récemment, de nouvelles recherches de l'Université de Stanford, de l'UC Berkeley, de l'ETH Zurich, de Yandex, de l'École supérieure d'économie de Moscou, de Meta, de l'Université Carnegie Mellon et d'autres institutions ont proposé FlexGen, une méthode pour exécuter des GPU limités. Une génération à haut débit moteur pour LLM en mémoire.

En agrégeant la mémoire et les calculs du GPU, du CPU et du disque, FlexGen peut être configuré de manière flexible sous diverses contraintes de ressources matérielles. Grâce à un optimiseur de programmation linéaire, il recherche le meilleur modèle pour stocker et accéder aux tenseurs, y compris les poids, les activations et les caches clé/valeur d'attention (KV). FlexGen compresse davantage les poids et le cache KV à 4 bits avec une perte de précision négligeable. Par rapport aux systèmes de déchargement de pointe, FlexGen exécute l'OPT-175B 100 fois plus rapidement sur un seul GPU de 16 Go et atteint pour la première fois un débit de génération réel de 1 jeton/s. FlexGen est également livré avec un environnement d'exécution parallèle en pipeline pour permettre une mise à l'échelle super-linéaire du décodage si davantage de GPU distribués sont disponibles.

Actuellement, la technologie a publié le code et obtenu plusieurs milliers d'étoiles : Introduction

Ces dernières années, les grands modèles de langage ont montré d'excellentes performances dans un large éventail de tâches. Si le LLM fait preuve d’une intelligence générale sans précédent, il expose également les utilisateurs à des défis sans précédent lors de la construction. Ces modèles peuvent comporter des milliards, voire des milliards de paramètres, ce qui entraîne des besoins de calcul et de mémoire extrêmement élevés pour leur exécution. Par exemple, GPT-175B (GPT-3) nécessite 325 Go de mémoire uniquement pour stocker les poids des modèles. Pour que ce modèle fasse de l'inférence, vous avez besoin d'au moins cinq Nvidia A100 (80 Go) et d'une stratégie de parallélisme complexe.

Pour exécuter le modèle de volume ChatGPT, vous n’avez désormais besoin que d’un GPU : voici une méthode pour l’accélérer cent fois.Les méthodes permettant de réduire les besoins en ressources d'inférence LLM sont quelque chose dont les gens discutent souvent récemment. Ces efforts sont divisés en trois directions :

(1) Compression du modèle pour réduire l'empreinte mémoire totale

(2) Inférence collaborative pour partager les coûts grâce à la décentralisation

(3) Déchargement pour utiliser le processeur ; et mémoire disque.

Ces techniques réduisent considérablement les besoins en ressources informatiques pour l'utilisation du LLM. Cependant, on suppose souvent que les modèles tiennent dans la mémoire du GPU, et les systèmes existants basés sur le déchargement ont encore du mal à exécuter 175 milliards de modèles de taille de paramètres avec un débit acceptable en utilisant un seul GPU.

Dans de nouvelles recherches, les auteurs se concentrent sur des stratégies de déchargement efficaces pour l'inférence générative à haut débit. Lorsque la mémoire GPU n'est pas suffisante, nous devons la décharger vers le stockage secondaire et effectuer les calculs pièce par pièce grâce à un chargement partiel. Sur une machine typique, la hiérarchie de la mémoire est divisée en trois niveaux, comme le montre la figure ci-dessous. La mémoire de haut niveau est rapide mais rare, la mémoire de bas niveau est lente mais abondante.

Dans FlexGen, l'auteur ne recherche pas une faible latence, mais cible des scénarios orientés débit, qui sont populaires dans des applications telles que l'analyse comparative, l'extraction d'informations et le tri de données. Atteindre une faible latence est intrinsèquement un défi pour le déchargement, mais pour les scénarios axés sur le débit, l'efficacité du déchargement peut être considérablement améliorée. La figure 1 illustre le compromis latence-débit pour trois systèmes d'inférence avec déchargement. Avec une planification minutieuse, les coûts d’E/S peuvent être répartis sur de grandes quantités d’entrées et chevaucher les calculs. Dans l’étude, les auteurs ont montré qu’un seul GPU T4 grand public à débit optimisé est 4 fois plus efficace que 8 GPU A100 à latence optimisée sur le cloud en termes de coût par unité de puissance de calcul.

Pour exécuter le modèle de volume ChatGPT, vous n’avez désormais besoin que d’un GPU : voici une méthode pour l’accélérer cent fois.

Figure 1. Compromis de latence et de débit pour trois systèmes basés sur le déchargement sur OPT-175B (à gauche) et OPT-30B (à droite). FlexGen atteint une nouvelle limite optimale de Pareto, augmentant le débit maximum de l'OPT-175B d'un facteur 100. D'autres systèmes n'ont pas pu augmenter davantage le débit en raison d'une mémoire insuffisante.

Bien qu'il y ait eu des études discutant du compromis latence-débit du déchargement dans le contexte de la formation, personne ne l'a encore utilisé pour générer l'inférence LLM, qui est un processus distinct. L'inférence générative présente des défis uniques en raison de la nature autorégressive des LLM. En plus de stocker tous les paramètres, il nécessite un décodage séquentiel et le maintien d'un grand cache clé/valeur d'attention (cache KV). Les systèmes de déchargement existants sont incapables de relever ces défis, ils effectuent donc trop d'E/S et atteignent un débit bien inférieur aux capacités du matériel.

Concevoir de bonnes stratégies de déchargement pour l'inférence générative est un défi. Premièrement, il y a trois tenseurs dans ce processus : les poids, les activations et le cache KV. La politique doit spécifier quoi, où et quand désinstaller sur une hiérarchie à trois niveaux. Deuxièmement, la structure des calculs lot par lot, par jeton et par couche forme un graphe de dépendance complexe qui peut être calculé de différentes manières. La stratégie doit choisir un calendrier qui minimise le temps d'exécution. Ensemble, ces choix créent un espace de conception complexe.

À cette fin, sur la nouvelle méthode FlexGen, un cadre de déchargement pour l'inférence LLM a été proposé. FlexGen regroupe la mémoire du GPU, du CPU et du disque et planifie efficacement les opérations d'E/S. Les auteurs discutent également des méthodes de compression possibles et du parallélisme des pipelines distribués.

Les principales contributions de cette recherche sont les suivantes :

1 L'auteur définit formellement l'espace de recherche des stratégies de déchargement possibles et utilise un modèle de coût et un solveur de programmation linéaire pour rechercher la stratégie optimale. Les chercheurs ont notamment démontré que l’espace de recherche capture un ordre de calcul presque optimal en termes d’E/S avec une complexité d’E/S deux fois supérieure à l’ordre de calcul optimal. L'algorithme de recherche peut être configuré pour une variété de spécifications matérielles et de contraintes de latence/débit, offrant ainsi un moyen de naviguer en douceur dans l'espace des compromis. Par rapport aux stratégies existantes, la solution FlexGen unifie les pondérations, les activations et le placement du cache KV, permettant ainsi des lots de plus grande taille.

2. La recherche montre que les poids et le cache KV des LLM tels que l'OPT-175B peuvent être compressés à 4 bits sans recyclage/calibrage et avec une perte de précision négligeable. Ceci est réalisé grâce à une quantification de regroupement à granularité fine, qui peut réduire considérablement les coûts d’E/S.

3. Démontrez l'efficacité de FlexGen en exécutant OPT-175B sur le GPU NVIDIA T4 (16 Go). Sur un seul GPU, compte tenu des mêmes exigences de latence, FlexGen non compressé peut atteindre un débit 65 fois supérieur à celui de DeepSpeed ​​​​Zero-Inference (Aminabadi et al., 2022) et Hugging Face Accelerate (HuggingFace, 2022). Ce dernier est actuellement le plus avancé. système d’inférence basé sur le déchargement dans l’industrie. Si une latence et une compression plus élevées sont autorisées, FlexGen peut encore augmenter le débit et obtenir des améliorations 100 fois supérieures. FlexGen est le premier système à atteindre un débit de vitesse de 1 jeton/s pour l'OPT-175B en utilisant un seul GPU T4. FlexGen avec parallélisme pipeline permet une mise à l'échelle super-linéaire du décodage avec plusieurs GPU distribués.

Dans l'étude, les auteurs ont également comparé FlexGen et Petals en tant que représentants des méthodes de déchargement et d'inférence d'ensembles décentralisées. Les résultats montrent que FlexGen avec un seul GPU T4 surpasse un cluster Petal décentralisé avec 12 GPU T4 en termes de débit et, dans certains cas, atteint même une latence plus faible.

Mécanisme de fonctionnement

En agrégeant la mémoire et les calculs du GPU, du CPU et du disque, FlexGen peut être configuré de manière flexible sous diverses contraintes de ressources matérielles. Grâce à un optimiseur de programmation linéaire, il recherche le meilleur modèle pour stocker et accéder aux tenseurs, y compris les poids, les activations et les caches clé/valeur d'attention (KV). FlexGen compresse davantage les poids et le cache KV à 4 bits avec une perte de précision négligeable.

Une idée clé de FlexGen est de faire un compromis latence-débit. Atteindre une faible latence est intrinsèquement difficile pour les méthodes de déchargement, mais pour les scénarios orientés débit, l'efficacité du déchargement peut être considérablement améliorée (voir la figure ci-dessous). FlexGen utilise la planification par blocs pour réutiliser les pondérations et chevaucher les E/S avec les calculs, comme le montre la figure (b) ci-dessous, tandis que d'autres systèmes de base utilisent une planification ligne par ligne inefficace, comme le montre la figure (a) ci-dessous.

Pour exécuter le modèle de volume ChatGPT, vous n’avez désormais besoin que d’un GPU : voici une méthode pour l’accélérer cent fois.

Actuellement, les prochaines étapes prévues par l'auteur de l'étude incluent la prise en charge des puces Apple M1, M2 et la prise en charge du déploiement de Colab.

FlexGen a rapidement reçu des milliers d'étoiles sur GitHub depuis sa sortie, et est également très populaire sur les réseaux sociaux. Les gens ont exprimé que ce projet est très prometteur. Il semble que les obstacles à l'exécution de modèles de langage à grande échelle et hautes performances soient progressivement surmontés. On espère que d'ici cette année, ChatGPT pourra être géré sur une seule machine.

Quelqu'un a utilisé cette méthode pour entraîner un modèle de langage, et les résultats sont les suivants :

Pour exécuter le modèle de volume ChatGPT, vous n’avez désormais besoin que d’un GPU : voici une méthode pour l’accélérer cent fois.

Bien que l'IA n'ait pas reçu une grande quantité de données et ne connaisse pas le spécifique Connaissance, la logique pour répondre à la question semble relativement claire, peut-être pourrons-nous voir de tels PNJ dans les prochains jeux ?

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer