


Paramètres du modèle ChatGPT ≠ 175 milliards, quelqu'un l'a prouvé par contradiction.
La popularité de ChatGPT continue à ce jour, et les dernières nouvelles et interprétations techniques qui l'entourent continuent d'émerger. Concernant son nombre de paramètres, il existe une hypothèse courante selon laquelle ChatGPT a le même nombre de paramètres que le modèle de 175 milliards de paramètres introduit dans l'article GPT-3. Cependant, les personnes qui travaillent en profondeur dans le domaine des grands modèles de langage savent que ce n’est pas vrai. En analysant la bande passante mémoire du GPU A100, nous constatons que la vitesse d'inférence réelle de l'API ChatGPT est beaucoup plus rapide que la vitesse d'inférence théorique maximale du modèle équivalent 175 milliards de Dense.
Cet article utilisera la preuve par contradiction pour prouver et étayer l'argument ci-dessus, en utilisant uniquement certaines connaissances théoriques apprises à l'université. Notez également qu'il existe également le problème inverse, à savoir que certaines personnes prétendent que ChatGPT n'a que X milliards de paramètres (X est bien inférieur à 1750). Cependant, ces affirmations ne peuvent pas être vérifiées car leurs auteurs parlent généralement de ouï-dire.
La prochaine étape est le processus d'argumentation détaillé.
Preuve par contradiction
Supposons d'abord que le modèle ChatGPT comporte 175 milliards de paramètres. Le format INT8 est généralement utilisé pour stocker les poids LLM pour une inférence de latence plus faible, un débit plus élevé et des besoins en mémoire inférieurs (que l'utilisation du format float16 prend deux fois plus de mémoire). à stocker). Chaque paramètre INT8 nécessite 1 octet pour le stockage. Un simple calcul montre que le modèle nécessite 175 Go d'espace de stockage.
Image tirée du papier INT8 SmoothQuant, adresse : https://arxiv.org/abs/2211.10438
En termes d'inférence, le modèle de langage de style GPT effectue une passe avant dans chaque avant pass Il est toujours "autorégressif" et il prédit le prochain jeton le plus probable (pour un modèle RLHF comme ChatGPT, il prédit le prochain jeton préféré par ses annotateurs humains). Cela signifie que 200 jetons sont générés, donc 200 passes avant doivent être effectuées. Pour chaque passage direct, nous devons charger tous les poids du modèle depuis la mémoire à large bande passante (HBM) dans l'unité de calcul matriciel (le cœur de calcul tensoriel du GPU), ce qui signifie que nous devons charger 175 Go de poids pour chaque passe avant.
Sur la plateforme Microsoft Azure, le nombre maximum d'A100 pouvant être alloués sur un nœud est de 8. Cela signifie que le parallélisme tensoriel maximum par instance de modèle est de 8. Ainsi, au lieu de charger 175 Go de pondérations par passe directe, vous n'avez besoin de charger que 21,87 Go par GPU par passe directe, car le parallélisme tensoriel peut paralléliser les pondérations et les calculs sur tous les GPU.
Photo tirée du papier Megatron-LM, adresse : https://arxiv.org/abs/1909.08053
Sur la version A100 80 Go SXM, la bande passante mémoire maximale est de 2 To/s. . Cela signifie qu'avec batchsize=1 (limité par la bande passante mémoire), la vitesse de transmission théorique maximale sera de 91 fois/seconde. De plus, la plupart du temps est consacré au chargement des poids plutôt qu’au calcul des multiplications matricielles.
Remarque : Pour fp16/bfloat16, lorsqu'elle est limitée par la bande passante mémoire, la vitesse de passage théorique maximale atteint 45,5 fois/seconde.
Quelle est la latence réelle de ChatGPT ?
Exécutez un script écrit en Python la nuit (l'exécution nocturne est moins coûteuse) pour tester la latence d'utilisation de ChatGPT via l'API OpenAI. La vitesse empirique maximale atteinte avec la passe avant est de 101 fois/seconde. Cet article utilise le maximum de résultats empiriques des expériences en raison de la nécessité d'obtenir la surcharge la plus faible du backend et du système de traitement par lots dynamique d'OpenAI.
Conclusion
Sur la base des hypothèses et arguments précédents, nous pouvons constater qu'il existe des contradictions, car les résultats empiriques sont beaucoup plus rapides que les résultats théoriques maximaux basés sur la bande passante mémoire de la plateforme A100. On peut donc conclure que le modèle ChatGPT utilisé par OpenAI pour l’inférence n’est définitivement pas équivalent à un modèle dense de 175 milliards de paramètres.
FAQ
1. Pourquoi prédire le nombre de paramètres du modèle d'inférence ChatGPT au lieu du nombre de paramètres du modèle de formation ?
Utilisez la méthode de la bande passante mémoire pour estimer le nombre de paramètres du modèle, qui n'est disponible que pour les modèles d'inférence. Nous ne savons pas avec certitude si OpenAI applique des techniques telles que la distillation pour rendre son modèle d'inférence plus petit que son modèle de formation.
De nombreux insectes ont une forme larvaire optimisée pour extraire l'énergie et les nutriments de l'environnement, et une forme adulte complètement différente, optimisée pour des besoins de voyage et de reproduction très différents. ——De Geoffrey Hinton, Oriol Vinyals, Jeff Dean, 2015.
2. Y a-t-il d'autres hypothèses ?
La preuve comprend en fait 3 hypothèses :
- Supposons que le temps requis pour calculer une énorme multiplication matricielle est de 0 par rapport au temps de chargement des paramètres dans chaque passe avant ;
- Supposons que le GPU ; le temps requis pour la communication est également 0. Si le temps requis pour la communication et la multiplication matricielle entre les GPU n'est pas supposé être égal à 0, le nombre maximal de jetons théoriques par seconde du modèle à 175 milliards de paramètres sera réduit
- Supposons que ChatGPT soit une variante basée sur l'architecture Transformer ;
3. Que signifie Équivalent Dense ?
Au cours des dernières années, les chercheurs ont mené des recherches sur des LLM experts en mixage clairsemé tels que Switch Transformer. L'équivalent dense indique le nombre de paramètres utilisés dans chaque passe avant. En utilisant les méthodes décrites dans cet article, il n'existe aucun moyen de prouver que ChatGPT n'est pas un modèle MoE clairsemé de 175 milliards de paramètres.
4. Avez-vous envisagé l'optimisation de l'inférence du transformateur de cache KV ?
Même avec l'optimisation du cache KV, chaque passe avant doit toujours charger l'intégralité du modèle, le cache KV n'économise que sur les FLOP, mais ne réduit pas la consommation de bande passante mémoire (en fait, elle augmentera, car chaque passe avant est requise à la fois passe charger le cache KV).
5. Avez-vous pensé au Flash Attention ?
Bien que Flash Attention soit plus performant en termes d'efficacité de la bande passante mémoire et de vitesse en temps réel, chaque passe avant nécessite toujours le chargement de l'intégralité du modèle, donc l'argument précédent est toujours valable.
6. Avez-vous envisagé le parallélisme des pipelines/des stratégies parallèles plus fines ?
L'utilisation du parallélisme des pipelines entraîne le même nombre maximum de passes avant. Cependant, en utilisant des micro-lots et des lots de plus grande taille, le débit (total de jetons/seconde) peut être augmenté.
7. Avez-vous envisagé d'augmenter le parallélisme tenseur au-delà de 8 ?
La plateforme A100 prend en charge 16 A100 par nœud, mais Azure ne prend pas en charge cette fonctionnalité. Seul Google Cloud prend en charge cette fonctionnalité, mais presque personne ne l'utilise. Il est peu probable qu'Azure crée sur mesure un nœud avec 16 A100 pour OpenAI et ne le publie pas en version publique GA pour amortir le coût de conception ou de maintenance de nouveaux nœuds. Concernant le parallélisme tensoriel entre les nœuds, ce n'est qu'une possibilité, mais c'est un moyen moins rentable de faire de l'inférence sur l'A100. Même NVIDIA ne recommande pas le traitement parallèle des tenseurs entre les nœuds.
8. Avez-vous envisagé d'utiliser INT4 pour stocker des poids ?
Bien que l'utilisation d'INT4 se soit avérée efficace, le compilateur de noyau GPU d'OpenAI ne prend pas en charge les charges, les magasins ou les multiplications matricielles INT4, et il n'est pas prévu d'ajouter INT à leur feuille de route technologique. Puisqu'il n'y a pas de support pour les charges ou les magasins INT4, vous ne pouvez même pas stocker les poids au format INT4, puis les quantifier dans un format de haute précision (comme INT8, bfloat16, 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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La commande de fermeture CENTOS est arrêtée et la syntaxe est la fermeture de [options] le temps [informations]. Les options incluent: -H Arrêtez immédiatement le système; -P éteignez l'alimentation après l'arrêt; -r redémarrer; -t temps d'attente. Les temps peuvent être spécifiés comme immédiats (maintenant), minutes (minutes) ou une heure spécifique (HH: mm). Des informations supplémentaires peuvent être affichées dans les messages système.

La politique de sauvegarde et de récupération de GitLab dans le système CentOS afin d'assurer la sécurité et la récupérabilité des données, Gitlab on CentOS fournit une variété de méthodes de sauvegarde. Cet article introduira plusieurs méthodes de sauvegarde courantes, paramètres de configuration et processus de récupération en détail pour vous aider à établir une stratégie complète de sauvegarde et de récupération de GitLab. 1. MANUEL BACKUP Utilisez le Gitlab-RakegitLab: Backup: Créer la commande pour exécuter la sauvegarde manuelle. Cette commande sauvegarde des informations clés telles que le référentiel Gitlab, la base de données, les utilisateurs, les groupes d'utilisateurs, les clés et les autorisations. Le fichier de sauvegarde par défaut est stocké dans le répertoire / var / opt / gitlab / backups. Vous pouvez modifier / etc / gitlab

Guide complet pour vérifier la configuration HDFS dans les systèmes CentOS Cet article vous guidera comment vérifier efficacement la configuration et l'état de l'exécution des HDF sur les systèmes CentOS. Les étapes suivantes vous aideront à bien comprendre la configuration et le fonctionnement des HDF. Vérifiez la variable d'environnement Hadoop: Tout d'abord, assurez-vous que la variable d'environnement Hadoop est correctement définie. Dans le terminal, exécutez la commande suivante pour vérifier que Hadoop est installé et configuré correctement: HadoopVersion Check HDFS Fichier de configuration: Le fichier de configuration de base de HDFS est situé dans le répertoire / etc / hadoop / conf / le répertoire, où Core-site.xml et hdfs-site.xml sont cruciaux. utiliser

Activer l'accélération du GPU Pytorch sur le système CentOS nécessite l'installation de versions CUDA, CUDNN et GPU de Pytorch. Les étapes suivantes vous guideront tout au long du processus: CUDA et CUDNN Installation détermineront la compatibilité de la version CUDA: utilisez la commande NVIDIA-SMI pour afficher la version CUDA prise en charge par votre carte graphique NVIDIA. Par exemple, votre carte graphique MX450 peut prendre en charge CUDA11.1 ou plus. Téléchargez et installez Cudatoolkit: visitez le site officiel de Nvidiacudatoolkit et téléchargez et installez la version correspondante selon la version CUDA la plus élevée prise en charge par votre carte graphique. Installez la bibliothèque CUDNN:

Docker utilise les fonctionnalités du noyau Linux pour fournir un environnement de fonctionnement d'application efficace et isolé. Son principe de travail est le suivant: 1. Le miroir est utilisé comme modèle en lecture seule, qui contient tout ce dont vous avez besoin pour exécuter l'application; 2. Le Système de fichiers Union (UnionFS) empile plusieurs systèmes de fichiers, ne stockant que les différences, l'économie d'espace et l'accélération; 3. Le démon gère les miroirs et les conteneurs, et le client les utilise pour l'interaction; 4. Les espaces de noms et les CGROUP implémentent l'isolement des conteneurs et les limitations de ressources; 5. Modes de réseau multiples prennent en charge l'interconnexion du conteneur. Ce n'est qu'en comprenant ces concepts principaux que vous pouvez mieux utiliser Docker.

L'installation de MySQL sur CENTOS implique les étapes suivantes: Ajout de la source MySQL YUM appropriée. Exécutez la commande YUM Install MySQL-Server pour installer le serveur MySQL. Utilisez la commande mysql_secure_installation pour créer des paramètres de sécurité, tels que la définition du mot de passe de l'utilisateur racine. Personnalisez le fichier de configuration MySQL selon les besoins. Écoutez les paramètres MySQL et optimisez les bases de données pour les performances.

La commande pour redémarrer le service SSH est: SystemCTL Redémarrer SSHD. Étapes détaillées: 1. Accédez au terminal et connectez-vous au serveur; 2. Entrez la commande: SystemCTL Restart SSHD; 3. Vérifiez l'état du service: SystemCTL Status Sshd.

La formation distribuée par Pytorch sur le système CentOS nécessite les étapes suivantes: Installation de Pytorch: La prémisse est que Python et PIP sont installés dans le système CentOS. Selon votre version CUDA, obtenez la commande d'installation appropriée sur le site officiel de Pytorch. Pour la formation du processeur uniquement, vous pouvez utiliser la commande suivante: pipinstalltorchtorchVisionTorChaudio Si vous avez besoin d'une prise en charge du GPU, assurez-vous que la version correspondante de CUDA et CUDNN est installée et utilise la version Pytorch correspondante pour l'installation. Configuration de l'environnement distribué: la formation distribuée nécessite généralement plusieurs machines ou des GPU multiples uniques. Lieu
