Guide "d'alchimie" GPT-4 : MoE, quantité de paramètres, coût de formation et secrets d'inférence

Original : Ramasser des éléphants

Source : Licornes d'outre-mer

Auteurs : Dylan Patel, Gerald Wong

Édité par : Haina, Wenli, Cage

Éditeur : Siqi

Source de l'image : générée par l'IA illimitée‌

Cet article est compilé à partir de la colonne SemiAnalysis de Dylan Patel et Gerald Wong. Il n'y a pas si longtemps, Dylan Patel a annoncé la nouvelle de la lettre interne de Google : Nous n'avons pas de fossé, et OpenAI non plus.

GPT-4 est le résultat de l'intégration et de l'innovation profondes de la science et de l'ingénierie. Il existe d'innombrables astuces au milieu. Pour le monde extérieur, si vous pouvez comprendre la structure de GPT-4, c'est comme obtenir la "recette de l'alchimie". " du modèle le plus fort. Ce contenu donne l'architecture GPT-4, l'infrastructure de formation et d'inférence, la quantité de paramètres, l'ensemble de données de formation, le numéro de jeton, le coût et le modèle MoE et d'autres paramètres et informations détaillées.

Dylan et Gerald pensent que la raison pour laquelle OpenAI ne divulgue pas l'architecture de GPT-4 n'est pas à cause des soi-disant considérations de sécurité de l'IA, mais parce que cette architecture est facile à copier ; George Hotz, connu comme le "hacker de génie" , a également exprimé une opinion similaire, cependant, George soutient que GPT-4 se compose de MoE de 8 modèles experts, chacun avec environ 1100 paramètres.

Les deux auteurs prédisent que des entreprises telles que Google, Meta, Anthropic, Inflection, Character.ai, Tencent, ByteDance, Baidu, etc. auront à court terme les mêmes capacités de modèle, voire plus, que GPT-4. Même si l'architecture de GPT-4 est "facilement copiée", selon eux, OpenAI a le fossé le plus durable - le plus grand nombre d'utilisateurs finaux, des talents d'ingénierie de premier plan et des avantages de précurseur dans les changements intergénérationnels de modèles.

Rappel amical : les données de l'article proviennent de la collection et de la recherche multipartites de l'auteur original, et n'ont pas été confirmées par OpenAI. La recherche de Dylan Patel est généralement considérée comme très fiable et peut être utilisée comme une bonne référence pour GPT-4 matériel de recherche approfondie. De plus, nous pensons que les points de vue faciles à reproduire dans l'article peuvent être suspectés d'être une "partie principale", car à part OpenAI et Google, les scientifiques qui sont bons dans la formation et le raisonnement complexes du cadre MoE sont actuellement rares, et le GPT-4 actuel n'est que la première génération de MoE. Ce n'est pas la réponse finale donnée par OpenAI, et beaucoup d'expérience dans le processus n'est pas disponible pour les autres équipes, et ces expériences deviendront certainement un avantage unique d'OpenAI.

Ce qui suit est la table des matières de cet article, et il est recommandé de le lire en combinaison avec les points principaux.

👇

01 Aperçu

02 Structure du modèle

03 Jeu de données

04 Stratégie Parallèle

05 Coût de la formation

06 MoE

07 Raisonnement

08 Infra et coût de raisonnement

09 Mécanisme d'attention multi-requêtes

10 lots consécutifs

11 Décodage spéculatif

12 Vision Multimodale

01.Vue d'ensemble

Les capacités d'ingénierie d'OpenAI et ce qu'ils ont créé sont incroyables, mais cela ne signifie pas que les solutions sont insurmontables. Leur solution est très élégante et implique également la prise en compte et l'équilibre d'une série de facteurs complexes, et l'expansion de l'échelle du modèle n'en est qu'une partie. ** La douve la plus durable d'OpenAI provient de trois aspects : premièrement, ils ont le plus grand nombre d'utilisateurs dans le monde réel, deuxièmement, les meilleurs talents en ingénierie, et enfin, ils sont susceptibles de continuer à conserver une longueur d'avance dans le développement de futurs modèles. **

Non seulement il est utile de comprendre pourquoi GPT-4 a choisi une certaine architecture, mais plus récemment, nous décrirons également les coûts de formation et d'inférence de GPT-4 sur A100, et comment utiliser H100 dans l'architecture de modèle de prochaine génération.

De GPT-3 à GPT-4, OpenAI souhaite multiplier la taille du modèle par 100. Le cœur de ce processus est naturellement la question du coût**. Les transformateurs denses sont des architectures modèles couramment utilisées telles que OpenAI GPT-3, Google PaLM, Meta LLaMA, TII Falcon, MosaicML MPT, etc. À l'heure actuelle, au moins 50 entreprises utilisent cette architecture pour former LLM, ce qui en est un bon exemple. architecture, mais son évolutivité est très limitée.

AI Brick Wall a discuté du coût de formation du modèle dans cet article, avant la sortie de GPT-4. Du point de vue du coût de la formation, le modèle dense (transformateurs denses) est sur le point de faire face à son propre « mur de briques IA ». Faites des efforts architecturaux de niveau supérieur.

Mur de briques AI : le matériel à ce stade a atteint sa limite en termes de transformateur dense, il est donc peu pratique et coûteux d'étendre continuellement l'échelle du modèle à un modèle avec un billion ou dix billions de paramètres. Avant la nouvelle génération de matériel, diverses stratégies et techniques sont nécessaires pour réduire les coûts de formation, améliorer l'efficacité de la formation du modèle et étendre le modèle à un plus grand nombre de paramètres. L'auteur pense que cette série de technologies sera réalisée vers 2023, et les entreprises susceptibles d'y participer incluent OpenAI, Google, DeepMind, Microsoft et Nvidia. Bon nombre de ces stratégies ont été présentées lors de la conférence NeurIPS et sont susceptibles d'avoir un impact majeur sur les applications d'IA.

Mais au cours des 6 derniers mois, nous avons réalisé que le coût de la formation n'était peut-être pas un problème. Bien que dépenser des millions, voire des centaines de millions de dollars pour former des modèles semble fou, c'est en fait anodin pour les géants de la technologie. Un grand modèle est un projet d'investissement en capital (élément de ligne Capex), et plus le modèle est grand, meilleur est le résultat. Le seul facteur limitant est de savoir si les êtres humains ont suffisamment de capacité et de temps pour fournir des commentaires et modifier l'architecture du modèle tout en développant le modèle. escalader.

Meta investit plus de 16 milliards de dollars dans le "Metaverse" chaque année, Google dépense environ 10 milliards de dollars pour de nouvelles tentatives de projets, Amazon dépense plus de 50 milliards de dollars pour Alexa et les crypto-monnaies sont sur des "choses sans valeur". Plus de 100 milliards de dollars gaspillés. La société dans son ensemble dépensera plus de 100 milliards de dollars pour créer des supercalculateurs capables de former des modèles à grande échelle pouvant être produits de différentes manières. Plusieurs pays et entreprises renouvelleront l'effort de formation** sur les grands modèles, qui sont la nouvelle "course aux armements dans l'espace"**. Par rapport au "gaspillage des ressources" précédent, la valeur réelle sera réalisée à court terme en raison de l'émergence d'assistants humains et d'agents autonomes.

Mais dans les prochaines années, Google, Meta et OpenAI, Microsoft et d'autres entreprises dépenseront plus de 100 milliards de dollars américains pour construire un supercalculateur pour former le modèle.

Le problème le plus important de l'expansion de la taille du modèle, le véritable "mur de briques AI", réside dans le lien d'inférence. L'objectif ici est de dissocier la puissance de calcul d'entraînement de la puissance de calcul d'inférence, donc pour tout modèle qui sera déployé, il est logique de s'entraîner au-delà de Chinchilla-optimal de DeepMind. (Note de sélection : augmenter la quantité de données d'entraînement pour que le modèle sur-apprenne est une stratégie pour augmenter la capacité des petits modèles et réduire le coût du raisonnement.) C'est pourquoi une architecture de modèle clairsemée (architecture de modèle clairsemée) est utilisée. Le raisonnement sous cette architecture ne nécessite pas que tous les paramètres soient actifs.

Chinchilla optimal : tiré de l'article de Deepmind Training Compute-Optimal Large Language Models, il indique la taille du modèle et la taille des données à utiliser pour obtenir la perte la plus faible lorsqu'il existe un nombre total fixe de FLOPS.

À l'heure actuelle, Chinchilla-optimal est la stratégie optimale du côté de l'entraînement, et l'entraînement avec plus de jetons pour surpasser l'effet de Chinchilla-optimal est la stratégie optimale du côté de l'inférence. Et parce que le coût de raisonnement explique la "grosse tête", la plupart des entreprises choisiront une stratégie qui dépasse Chinchilla-optimal.

L'essence du problème dans le lien d'inférence est que le coût de déploiement du modèle pour les utilisateurs et les agents est trop élevé. Le coût de l'inférence est plusieurs fois supérieur au coût de la formation, et résoudre ce problème est l'objectif d'OpenAI en termes d'architecture et d'infrastructure de modèles.

Lorsqu'il s'agit d'inférence avec de grands modèles, en particulier des modèles denses, la taille du modèle peut devenir un problème multivarié. Sur Device AI - Double Edged Sword Cet article a discuté de la situation dans le contexte de l'informatique de pointe. Pour le dire simplement, les terminaux ne peuvent jamais avoir le débit et la bande passante mémoire nécessaires pour implémenter de grands modèles de langage.Même si la bande passante est suffisante, l'efficacité des périphériques de périphérie dans l'utilisation des ressources informatiques matérielles est très faible. Les centres de données sont confrontés à des problèmes similaires.

L'utilisation des ressources informatiques est très importante pour les centres de données et les nuages. (Remarque : à l'heure actuelle, la limite supérieure d'utilisation du GPU/TPU dans l'industrie est d'environ 50 %). également constamment mis à jour Une génération de logiciels qui entraîne une utilisation accrue des FLOPS en permettant un mouvement de données plus intelligent autour des puces, entre les puces et entre les mémoires.

FLOPS : Floating Point Operations Per Second, est une unité utilisée pour mesurer la vitesse des opérations informatiques. Plus le FLOPS est élevé, mieux l'ordinateur peut gérer le problème. La puissance de calcul du GPU provient principalement des FLOPS qu'il peut fournir, plus le FLOPS fourni par le GPU est élevé, plus sa puissance de calcul est forte.

À ce stade, les cas d'utilisation de l'inférence LLM sont principalement des "assistants en direct", ce qui ** signifie qu'il doit atteindre un débit suffisamment élevé pour être vraiment utile aux utilisateurs **. En prenant les humains comme analogie, la vitesse de lecture moyenne des humains est d'environ 250 mots par minute, et certaines personnes peuvent atteindre environ 1 000 mots par minute. Selon le modèle, cela signifie produire au moins 8,33 jetons par seconde, de préférence 33,33 jetons par seconde. jeton, il est possible de répondre à tous les besoins humains.

Cependant, en raison de la limitation de la bande passante mémoire, même sur le dernier serveur GPU NVIDA H100, le modèle dense (modèle dense) avec des milliards de paramètres ne peut pas atteindre mathématiquement ce débit. Chaque fois qu'un jeton est généré, il doit être chargé de la mémoire vers la puce, puis ce jeton est renvoyé pour générer le jeton suivant. De plus, le cache KV (KV Cache) pour la mise en œuvre du mécanisme d'attention nécessite également une bande passante supplémentaire.

KV Cache (KV Cache) : Lors du processus d'échantillonnage, le modèle Transformer effectuera une opération d'auto-attention (Self-Attention), pour laquelle il est nécessaire d'extraire une valeur clé pour chaque élément de la séquence en cours (qu'il soit /context ou un jeton généré) vecteur (Clé-Valeur, KV). Ces vecteurs sont stockés dans une matrice, souvent appelée cache KV ou cache passé. La fonction du cache KV est d'éviter de recalculer le vecteur clé-valeur à chaque fois que le jeton est échantillonné. L'utilisation de valeurs K et V précalculées peut économiser beaucoup de temps de calcul, même si cela prendra de l'espace de stockage. Le cache KV joue un rôle très important dans le modèle Transformer et peut aider à améliorer considérablement l'efficacité et les performances du modèle.

Ce diagramme suppose que le fait de ne pas fusionner chaque opération est inefficace et que les mécanismes d'attention nécessitent une bande passante mémoire et une surcharge matérielle comparables lors de la lecture des paramètres. En réalité, même avec des bibliothèques "optimisées" telles que NVIDIA FasterTransformer, le surcoût global sera plus élevé.

La figure ci-dessus montre la bande passante mémoire requise pour servir un seul utilisateur LLM avec un débit suffisamment élevé. De cette image on peut voir que :

• Même une bande passante 8 fois celle de H100 ne peut pas servir un modèle dense avec une échelle de 1 trillion de paramètres à un taux de 33,33 jetons par seconde ;

• De plus, l'utilisation FLOPS de 8x H100 est toujours inférieure à 5 % à 20 jetons par seconde, ce qui entraîne un coût d'inférence extrêmement élevé.

En fait, pour le système H100 parallélisé de tenseur à 8 voies d'aujourd'hui, la contrainte d'inférence est d'environ 300 milliards de paramètres d'anticipation.

Cependant, OpenAI atteint une vitesse de lecture humaine avec l'A100 et des modèles avec plus de 1 000 milliards de paramètres, largement disponibles à un prix modique de 0,06 $ pour 1 000 jetons, et cela est possible précisément en raison de son architecture clairsemée.

Ensuite, nous aborderons l'architecture du modèle GPT-4, infra pour l'entraînement et le raisonnement, le nombre de paramètres, la composition du jeu de données d'entraînement, le nombre de jetons, le nombre de couches, les stratégies parallèles, les encodeurs visuels multimodaux, derrière une série de conceptions techniques différentes Considérations, techniques de mise en œuvre et comment OpenAI résout les goulots d'étranglement dans l'inférence de grands modèles.

02. Structure du modèle

** L'échelle de GPT-4 est plus de 10 fois supérieure à celle de GPT-3 **, nous estimons qu'il contient environ 1,8 billion de paramètres, et ces paramètres sont répartis sur 120 couches de transformateur. À titre de comparaison, les paramètres de GPT-3 sont d'environ 1750 milliards. (Remarque : GPT-3 n'a que 12 couches de transformateur, et le nombre de couches est 1/10 de GPT-4.)

Pour maîtriser les coûts, OpenAI a choisi d'utiliser le modèle MoE. OpenAI utilise 16 experts de type MLP.2 dans le modèle, chacun avec environ 111 milliards de paramètres. Deux de ces modèles experts sont appelés à chaque passe avant.

• Mixture-of-Experts (MoE) : le modèle MoE est une architecture d'apprentissage en profondeur, qui se compose généralement de plusieurs experts (Experts), chaque expert est responsable du traitement de différents aspects des données d'entrée et possède son propre ensemble de paramètres (il existe également certains paramètres, tels que l'intégration, qui peuvent être partagés par tous les experts, c'est-à-dire des paramètres partagés). Dans le processus de raisonnement du modèle, en fonction des différentes caractéristiques des données d'entrée, le modèle acheminera l'entrée vers différents experts. Chaque expert traite l'entrée affectée correspondante en fonction de son ensemble de paramètres et complète la sortie. La sortie finale est le intégration de la production de chaque expert. .

• MLP : Multi-Layer Perceptron (Multi-Layer Perceptron) MLP est un réseau neuronal artificiel qui comprend plusieurs couches cachées.Il y a généralement plusieurs experts MLP indépendants dans le modèle MoE.

Il existe de nombreuses littératures traitant de la façon d'acheminer (attribuer) chaque jeton en attente à un modèle expert, mais on dit que l'ensemble d'algorithmes utilisés par OpenAI est assez simple, du moins GPT-4 est comme ça.

De plus, environ 55 milliards de paramètres partagés sont utilisés dans le mécanisme d'attention.

Chaque inférence directe (générant un jeton) n'utilise qu'environ 280 milliards de paramètres et 560 TFLOP, contre environ 1,8 billion de paramètres et 3700 TFLOP requis pour chaque inférence directe si le modèle dense est purement utilisé.

03. Jeu de données

GPT-4 a été formé sur environ 13 billions de jetons, ce qui est raisonnable étant donné que CommonCrawl RefinedWeb contient environ 5 billions de jetons de haute qualité. Pour référence, les modèles Chinchilla de Deepmind et PaLM de Google ont été formés avec environ 1,4 billion de jetons et environ 0,78 billion de jetons, respectivement, et PaLM2 serait formé sur environ 5 billions de jetons.

Web raffiné CommonCrawl : CommonCrawl est un projet à but non lucratif qui vise à créer et à maintenir un ensemble de données Internet ouvert et accessible qui utilise la technologie des robots d'indexation pour analyser régulièrement les pages Web sur Internet et organiser les pages Web et les métadonnées et archives associées. CommonCrawl RefinedWeb est une bibliothèque de textes de haute qualité que CommonCrawl a sélectionnés à partir de données brutes collectées après un examen algorithmique et humain.

L'ensemble de données utilisé par OpenAI pour former GPT-4 n'est pas de 13 000 milliards de jetons uniques. Au contraire, en raison du manque de jetons de haute qualité, cet ensemble de données contient plusieurs époques. Il existe 2 époques pour les données textuelles et 4 époques pour les données codées. (Remarque : cela fait référence à certains textes et codes de haute qualité qui ont été appris par le modèle à plusieurs reprises.) Ceci est loin d'être optimal pour Chinchilla (le modèle doit être formé sur le double du nombre de jetons), ce qui montre également que le réseau est facile à obtenir. L'obtention d'un jeton ne suffit pas. Les jetons de texte de haute qualité qui existent réellement sur le réseau devraient être 1000 fois plus disponibles aujourd'hui, et les jetons audio et vidéo sont encore plus nombreux, mais la collecte de ces jetons ne peut pas être réalisée simplement par le grattage Web. Malheureusement, nous n'avons pas trouvé beaucoup d'informations sur le RLHF d'OpenAI vers les données.

Une époque fait référence au processus d'utilisation de tous les échantillons de l'ensemble d'apprentissage complet (ensemble d'apprentissage) pour entraîner le modèle une fois. Plus précisément, une époque comprend plusieurs étapes de formation (étapes de formation), chaque étape de formation consiste à entrer un petit lot d'échantillons dans le modèle pour la formation et à mettre à jour les paramètres du modèle pour minimiser la fonction de perte (fonction de perte).

Si l'époque est trop petite, le modèle peut ne pas être en mesure d'utiliser pleinement les informations de l'ensemble d'apprentissage, ce qui entraîne un sous-ajustement, c'est-à-dire que le modèle ne peut pas bien s'adapter aux données d'apprentissage, ce qui entraîne de mauvaises performances sur l'ensemble de test . Inversement, si une époque est trop grande, le modèle peut être surajusté, apprenant trop de bruit et de caractéristiques locales dans l'ensemble d'apprentissage, tout en ignorant les caractéristiques globales.

Dans la phase de pré-formation, la longueur du contexte (seqlen) est de 8k. La version contextuelle 32k de GPT-4 est implémentée en plus du réglage fin 8k après la pré-formation.

La taille du lot a été progressivement augmentée sur le cluster pendant plusieurs jours, mais au final, OpenAI a utilisé une taille de lot aussi élevée que 60 millions. Bien sûr, puisque tous les paramètres ne voient pas tous les paramètres, il ne s'agit que d'un lot de 7,5 millions par expert.

La taille du lot fait référence au nombre d'échantillons d'apprentissage pour chaque itération (itération) ou passe avant (passe avant). Pendant la formation du modèle, les données sont divisées en lots pour la formation, et la taille du lot indique le nombre d'échantillons dans chaque lot. L'avantage de la formation par lots est qu'elle peut éviter les contraintes de mémoire et économiser des ressources informatiques pour le calcul répété des résultats intermédiaires.

La taille de la taille du lot a un grand impact sur l'effet d'entraînement et la vitesse du modèle. Plus la taille du lot est grande, plus le calcul des paramètres de mise à jour à chaque fois est important, mais le processus de formation sera plus stable, car les échantillons de chaque lot peuvent faire la moyenne du bruit et de l'incertitude. D'autre part, si la taille du lot est trop petite, le processus de formation peut devenir instable et nécessiter davantage d'étapes de formation pour converger vers la solution optimale. De plus, la taille de la taille du lot sera également limitée par les ressources matérielles. Par conséquent, dans les applications pratiques, il est très important de choisir une taille de lot appropriée.

04. Stratégie parallèle

Le traitement parallèle sur tous les GPU A100 est très important.

OpenAI utilise le parallélisme de tenseur d'échelle à 8 voies (8 voies) (Tensor Parallelism), la raison en est 8 voies (8 voies) car c'est la limite de NVLink. De plus, nous avons également entendu dire qu'OpenAI utilise une stratégie de parallélisme de pipeline à 15 voies (15 voies). Théoriquement, 15 voies sont trop nombreuses compte tenu de la communication des données et du temps de calcul, mais elles sont également raisonnables si elles sont limitées par la capacité mémoire.

Il existe plusieurs paradigmes parallèles distribués classiques dans la formation de grands modèles, à savoir le parallélisme de pipeline, le parallélisme de données et le parallélisme de tenseur. FastSpeed, le framework de formation distribué open source de Microsoft, combine ces trois paradigmes parallèles.

Si vous utilisez uniquement le parallélisme de pipeline et le parallélisme tenseur, les paramètres de chaque GPU nécessitent environ 30 Go sous FP16, et une fois le cache KV et la surcharge KV pris en compte, si la plupart des GPU utilisés par OpenAI sont de 40 Go A100, cette architecture de It is également raisonnable en théorie. OpenAI peut utiliser ZeRo stage 1, FSDP au niveau du bloc ou le parallélisme hybride des données partagées.

• Surdébit KV (KV overhead) : fait référence à la charge causée par un surdébit supplémentaire dans le système de stockage KV. Ces frais généraux peuvent inclure des métadonnées pour stocker et gérer des paires clé-valeur, des structures d'index, la réplication et la synchronisation des données, la communication réseau, etc. Une augmentation de la surcharge KV peut entraîner une dégradation des performances, une augmentation des besoins en stockage et une augmentation de la complexité du système.

• ZeRo Stage 1 : ZeRO (Zero Redundancy Optimizer) signifie que chaque carte stocke un état complet de l'optimiseur. Si chaque carte ne stocke qu'une partie de l'état de l'optimiseur, les états de l'optimiseur de toutes les cartes forment ensemble un état complet, c'est-à-dire Pos (Partition Optimizer States), appelé ZeRO-stage1.

• FSDP au niveau des blocs : fait référence à la technologie de quantification dynamique de précision complète (Full Precision Dynamic Quantization) basée sur les blocs. Une plus grande précision du modèle peut être préservée pendant la formation et le raisonnement, ce qui réduit le coût de l'inférence du modèle.

La raison pour laquelle le modèle complet FSDP n'est pas utilisé peut être le coût élevé de la communication. Bien qu'OpenAI dispose d'un réseau à haut débit entre la plupart des nœuds, probablement pas tous, nous pensons qu'il existe au moins certains clusters avec une bande passante de connexion beaucoup plus faible que d'autres.

On ne sait pas comment OpenAI évite les énormes bulles avec un parallélisme de pipeline aussi élevé. Il y a de fortes chances qu'ils en aient simplement supporté le coût.

Bulle : le retard ou le temps d'attente dans chaque lot en raison du degré élevé de parallélisme du pipeline. Cela signifie que dans le processus de calcul hautement parallèle, en raison des différentes vitesses de calcul des différentes parties, certaines parties peuvent avoir besoin d'attendre que d'autres parties terminent le calcul, ce qui entraîne un retard ou un temps d'inactivité. Dans ce cas, "bulle" fait référence à ces intervalles d'inactivité ou d'attente. Cette phrase signifie qu'ils peuvent simplement accepter qu'il y ait un certain temps d'inactivité ou un retard dans le processus de calcul.

05. Coût de la formation

OpenAI a utilisé environ 2,15e25 FLOPS dans la formation de GPT-4, sur environ 25 000 GPU A100 pendant 90 à 100 jours de formation, où l'utilisation maximale de la puissance de calcul était d'environ 32 % à 36 %. **

Cette utilisation extrêmement faible est en partie due au grand nombre de pannes qui nécessitent le redémarrage de points de contrôle, les bulles mentionnées ci-dessus coûtant beaucoup.

Une autre raison est que la réduction totale sur autant de GPU coûte très cher. Surtout si nous soupçonnons que le cluster est en fait composé de nombreux clusters plus petits avec des connexions réseau relativement faibles, telles que des connexions non bloquantes 800G/1.6T entre différentes parties du cluster, mais ces Certains ne peuvent se connecter qu'à une vitesse de 200G/400G.

all-reduce est une opération de communication en calcul parallèle, qui est utilisée pour réaliser une réduction globale des données en calcul distribué. Dans l'apprentissage en profondeur distribué, tout réduire est une opération de communication courante pour partager et agréger des informations de gradient entre plusieurs nœuds de calcul, afin de mettre à jour les paramètres du modèle pendant la formation.

Si leur coût sur le Cloud est d'environ 1 $ par heure et par A100, cela revient à ~ 63 millions de dollars pour cette seule session de formation **. Cela n'inclut pas tous les essais, tentatives infructueuses et autres coûts de collecte de données, RLHF, personnel, etc. Lorsque ces facteurs sont pris en compte, le coût réel est beaucoup plus élevé. De plus, vous devez également considérer que vous devez disposer d'une équipe pour terminer la configuration de la puce, l'équipement réseau et le centre de données, supporter l'investissement en capital (Capex) et vous les louer.

Actuellement, la pré-formation peut être effectuée en environ 55 jours avec environ 8 192 H100 pour un coût total de 21,5 millions de dollars, chaque GPU H100 coûte 2 $/heure.

Nous nous attendons à ce que neuf entreprises aient plus de GPU H100 d'ici la fin de l'année. Peut-être que ces H100 ne seront pas tous utilisés pour la formation de modèles, mais ces entreprises adopteront certainement de grands modèles et deviendront des acteurs importants. Meta s'attend à avoir plus de 100 000 H100 d'ici la fin de l'année, dont une partie importante sera déployée dans leurs propres centres de données à des fins d'inférence, bien que leur plus grand cluster comptera plus de 25 000 GPU H100. (Remarque : les ressources informatiques de Meta feront de la capacité de LLaMA d'évoluer en une variable importante pour le déploiement open source et privé.) De nombreuses entreprises formeront un modèle avec la même capacité que GPT-4 avant la fin de cette année.

06.MoE

MoE est un moyen efficace de réduire le nombre de paramètres lors de l'inférence, tout en augmentant également le nombre de paramètres, ce qui permet d'encoder plus d'informations par jeton d'apprentissage. Parce qu'il est très difficile d'obtenir suffisamment de jetons de haute qualité, il est nécessaire de choisir l'architecture MoE. Parce que si OpenAI veut vraiment implémenter Chinchilla-Optimal, ils doivent former deux fois plus de jetons maintenant.

Cela étant dit, OpenAI fait plusieurs compromis. Par exemple, traiter le MoE pendant l'inférence est très difficile car toutes les parties du modèle ne sont pas utilisées lors de la génération de chaque jeton. Cela signifie que certaines pièces peuvent être inactives pendant que d'autres pièces sont utilisées. Cela peut avoir un impact sérieux sur l'utilisation lors de la maintenance des utilisateurs.

Les chercheurs ont prouvé que l'utilisation de 64 à 128 experts donnait de meilleurs résultats de perte que l'utilisation de 16 experts, mais ce n'est que de la recherche. Plusieurs raisons justifient la réduction du nombre d'experts. L'une des raisons pour lesquelles OpenAI a choisi 16 experts est qu'avoir plus d'experts rend plus difficile la généralisation et la convergence. Compte tenu d'une formation aussi importante, OpenAI a choisi d'être plus conservateur dans le nombre d'experts.

De plus, utiliser moins d'experts est utile pour les architectures d'inférence. Il existe divers compromis complexes lors du passage à une architecture d'inférence MoE. Commençons par les compromis d'inférence LLM de base, puis explorons les problèmes rencontrés par OpenAI et les choix qu'ils ont faits.

07. Raisonnement

Dans cette partie, nous voulons d'abord souligner que toutes les sociétés LLM que nous avons contactées pensent que la bibliothèque d'inférence FasterTransformer de NVIDIA est plutôt mauvaise, et que TensorRT est encore pire. Sans la possibilité d'utiliser les modèles de Nvidia et de les modifier, ce qui signifie créer votre propre solution à partir de zéro, NVIDIA doit résoudre ce problème au plus vite pour s'adapter aux besoins d'inférence LLM, sinon cela deviendra un outil ouvert en fait. pour ajouter un support matériel tiers. De plus en plus de grands modèles arrivent, et si NVIDA ne peut pas fournir un avantage logiciel en matière d'inférence et que les noyaux doivent toujours être écrits à la main, alors le MI300 d'AMD et d'autres matériels auront un marché beaucoup plus important.

Il existe 3 facteurs clés dans le lien d'inférence de LLM, qui sont principalement liés au nombre de puces utilisées.

1. Latence

Le modèle doit répondre dans un délai raisonnable. Les gens ne veulent pas attendre quelques secondes avant de commencer à recevoir une sortie dans une application de chat. Les temps de traitement des jetons d'entrée et de sortie peuvent fluctuer.

2. Débit

Le modèle doit produire un certain nombre de jetons par seconde. L'utilisation humaine est d'environ 30 jetons par seconde, et le débit peut être inférieur ou supérieur pour divers autres cas d'utilisation.

3. Utilisation

Le matériel exécutant le modèle doit atteindre des taux d'utilisation élevés, sinon le coût sera prohibitif. Bien qu'il soit possible d'obtenir une utilisation plus élevée en regroupant davantage de demandes d'utilisateurs avec une latence plus élevée et un débit plus faible, cela augmente la difficulté.

L'inférence LLM consiste principalement à équilibrer deux facteurs principaux, la bande passante mémoire et le calcul.

En termes simples, chaque paramètre doit être lu avec deux FLOP qui lui sont associés. Par conséquent, le rapport de la plupart des puces (par exemple, H100 SXM n'a que 3 To/s de bande passante mémoire, mais a 2 000 TFLOP/s FP8) est complètement déséquilibré en inférence avec la taille de lot 1. Si un seul utilisateur est servi, c'est-à-dire avec une taille de lot de 1, la bande passante mémoire requise pour diffuser chaque paramètre pour chaque génération de jeton domine le temps d'inférence, et le temps de calcul est presque négligeable.

Afin de pouvoir mettre à l'échelle de grands modèles pour plusieurs utilisateurs, la taille du lot doit être supérieure à 1 et plusieurs utilisateurs partagent le coût de lecture des paramètres. Par exemple, avec une taille de lot de 256 ou 512, chaque octet de mémoire lu correspond à 512 FLOP/s ou 1024 FLOP/s. Ce rapport est plus proche du rapport bande passante mémoire/FLOPS du H100. Permet d'atteindre une utilisation plus élevée, mais présente l'inconvénient d'une latence plus élevée.

Beaucoup de gens pensent que la capacité de mémoire est le principal goulot d'étranglement pour l'inférence LLM, car la taille du modèle peut tenir sur plusieurs puces, mais cette vision peut être problématique. Bien que l'inférence de grands modèles nécessite plusieurs puces et qu'une capacité de mémoire plus élevée entraîne moins de puces adaptées, il est en fait préférable d'utiliser plus de puces que nécessaire afin de réduire la latence, d'augmenter le débit et de plus grandes tailles de lots peuvent être utilisées pour augmenter continuellement l'utilisation.

Google a également mentionné le traitement des trois problèmes ci-dessus dans le document d'inférence PaLM. Il convient de noter que ** ceci est pour un modèle dense comme PaLM, pas un modèle clairsemé comme GPT4. **

Si une application nécessite la latence la plus faible possible, nous avons besoin de plus de puces et divisons le modèle de la manière la plus économique possible. Des tailles de lot plus petites permettent une latence plus faible, mais des tailles de lot plus petites entraînent également une plus faible MFU [utilisation], ce qui entraîne un coût total par jeton plus élevé (en secondes de puce ou en dollars) .

Si une application nécessite une inférence hors ligne et que la latence n'est pas un problème, l'objectif principal est de maximiser le débit par puce (c'est-à-dire de minimiser le coût total par jeton). L'augmentation de la taille du lot est la plus efficace, car les tailles de lot plus importantes conduisent généralement à une meilleure MFU [utilisation], mais certaines stratégies de partitionnement qui ne sont pas efficaces pour les petites tailles de lot augmentent à mesure que la taille du lot augmente et deviennent efficaces.

** Plus de puces et des tailles de lots plus importantes sont moins chères car elles augmentent l'utilisation, mais cela introduit également une troisième variable, le temps de mise en réseau. ** La méthode de déploiement du modèle sur plusieurs puces peut résoudre efficacement le retard, mais au détriment de l'utilisation.

La partie charge pondérale du temps de stockage et le temps de calcul non attentionnel sont proportionnels à la taille du modèle et inversement proportionnels au nombre de puces. Pour un agencement de partition donné, le temps nécessaire à la communication puce à puce diminue moins rapidement (ou pas du tout) avec le nombre de puces utilisées, de sorte que plus le nombre de puces augmente, plus cela devient un goulot d'étranglement de plus en plus important.

Nous avons remarqué que les besoins en mémoire du cache KV explosaient à mesure que la taille et la taille du lot augmentaient.

Si une application doit générer du texte avec des contextes d'attention longs (contextes d'attention longs), cela augmentera considérablement le temps d'inférence. Pour un modèle avec plus de 500 B d'attention multi-têtes, le cache KV d'attention peut devenir très volumineux : pour un modèle avec une taille de lot de 512 et une longueur de contexte de 2 048, la quantité totale de cache KV est de 3 To, soit 3 fois la taille du paramètre du modèle . La mémoire sur puce (mémoire sur puce) doit charger le cache KV à partir de la mémoire hors puce (mémoire hors puce), qui est chargée à chaque fois qu'un jeton est généré. Pendant cette période, le cœur de calcul de la puce est fondamentalement inactif.

Les longueurs de séquence longues sont particulièrement gênantes pour la bande passante et la capacité de la mémoire. La raison pour laquelle le turbo GPT-3.5 d'OpenAI avec des contextes 16k et GPT-4 avec des contextes 32k sont chers est qu'ils ne peuvent pas prendre des lots plus importants en raison de contraintes de mémoire.

Des lots plus petits entraînent une utilisation moindre du matériel. De plus, le cache KV gonfle à mesure que la longueur de la séquence augmente. Le cache KV ne peut pas être partagé entre les utilisateurs, des lectures de mémoire séparées sont donc nécessaires, ce qui réduit encore la bande passante de la mémoire. Voir ci-dessous pour plus d'informations sur MQA.

08. Infra et coût de raisonnement

Infra

L'architecture du MoE rend l'inférence de GPT-4 confrontée à des défis en termes de latence, de débit et d'utilisation. Étant donné que le passage vers l'avant de chaque jeton peut être acheminé vers différents modèles experts, il est très difficile d'obtenir une latence faible, un débit élevé et une utilisation élevée dans ce cas, en particulier avec une taille de lot élevée.

L'architecture GPT-4 d'OpenAI contient 16 modèles experts et chaque canal de transfert dispose de 2 routeurs. Cela signifie qu'avec une taille de lot de 8, chaque paramètre d'expert lu ne peut occuper que "1" de la taille du lot. Plus sérieusement, cela se traduit également par une taille de lot de 8 pour un expert, tandis que la taille de lot d'autres experts peut n'être que de 4, 1 ou 0.

De plus, l'algorithme de routage achemine la passe directe dans différentes directions chaque fois qu'un jeton est généré, ce qui entraîne des variations importantes de la latence de jeton à jeton et de la taille du lot expert. Autrement dit, lors du traitement de différents jetons, différents experts peuvent être affectés à différentes tâches, et la charge de calcul et la taille du lot peuvent varier en conséquence.

** L'infra infra est l'une des principales considérations pour OpenAI de choisir un petit nombre d'experts dans la conception de MoE **. S'ils utilisent plus d'experts, la bande passante mémoire devient un goulot d'étranglement plus important pour l'inférence. OpenAI atteint souvent des tailles de lot supérieures à 4k sur ses propres clusters d'inférence, ce qui signifie que même avec un équilibrage de charge optimal entre experts, chaque expert ne peut atteindre qu'une taille de lot d'environ 500. Cela nécessite une très grande utilisation pour y parvenir.

Notre compréhension est qu'OpenAI exécute l'inférence sur un cluster de 128 GPU et dispose de plusieurs clusters de ce type dans différents centres de données et régions géographiques. L'inférence est effectuée en parallèle avec des tenseurs à 8 voies et des pipelines à 16 voies. En utilisant 8 GPU par nœud, chaque GPU n'a qu'environ 130 Go de paramètres, soit moins de 30 Go par GPU sous FP16, et moins de 15 Go sous FP8/int8. Cela permet d'exécuter l'inférence sur un A100 de 40 Go tant que la taille du cache KV pour tous les lots ne gonfle pas trop.

FP16, FP8 et int8 sont différentes représentations de précision numérique (précision), qui sont souvent utilisées dans le processus de calcul dans l'apprentissage en profondeur pour réduire l'utilisation de la mémoire et des ressources informatiques, améliorant ainsi l'efficacité de la formation et du raisonnement du modèle.

FP16, FP8 et int8 font respectivement référence aux nombres à virgule flottante 16 bits, aux nombres à virgule flottante 8 bits et aux entiers 8 bits. Leur précision est inférieure à celle des nombres à virgule flottante simple précision 32 bits (FP32 ), mais ils peuvent réduire considérablement les ressources de mémoire et de calcul. Utilisez-les pour accélérer la formation de modèles et l'inférence dans l'apprentissage en profondeur. Par exemple, l'utilisation de FP16 peut réduire de plus de moitié le temps de calcul sans perdre trop de précision, tandis que l'utilisation de int8 peut réduire le temps de calcul d'un facteur d'environ 4 sans perdre trop de précision.

Il convient de noter que l'utilisation de calculs de faible précision peut avoir un certain impact sur la précision du modèle, il est donc nécessaire de faire un compromis entre précision et efficacité, et de choisir la méthode de représentation de la précision la plus appropriée en fonction de la exigences spécifiques de la tâche.

Pour éviter que la communication réseau soit trop irrégulière et en même temps éviter le coût prohibitif du recalcul du cache KV entre chaque génération de jeton, les différentes couches contenant différents experts ne sont pas éclatées sur différents nœuds afin de partager le cache KV.

**La plus grande difficulté pour toutes les futures extensions de modèle MoE et le routage conditionnel. C'est comment gérer la limite de 120 couches de routage autour du cache KV. **

Dans le modèle MoE, le nombre de couches de routage par branche ne peut pas dépasser 120 couches, sinon le cache KV ne peut pas être géré efficacement. En effet, lors du processus d'inférence du modèle, chaque branche doit calculer le cache KV, ce qui entraîne une augmentation du coût de calcul.

Une solution simple à ce problème consiste à placer une route couvrante dans 15 nœuds différents en fonction de la limite de couche de 120. De cette manière, la charge de calcul peut être répartie uniformément sur différents nœuds, améliorant ainsi l'efficacité et les performances du modèle. Cependant, étant donné que le premier nœud doit effectuer le chargement et l'intégration des données, il est important de placer moins de couches sur le nœud principal du cluster d'inférence.

De plus, dans le processus de codage et de décodage des données d'entrée, il peut y avoir du bruit concernant le décodage inférentiel, dont nous parlerons plus en détail plus tard. Une question plus critique est de déterminer si un tel bruit doit être cru. Cela peut également expliquer pourquoi il est logique d'inclure moins de couches sur le nœud principal.

coût de raisonnement

Comparé au modèle Davinchi avec des paramètres 175B, GPT-4 a 1,6 fois les paramètres d'anticipation, mais le coût est 3 fois celui de Davinchi. Cela est principalement dû au fait que GPT-4 nécessite un cluster plus grand et atteint une utilisation plus faible.

Nous supposons que l'utilisation de 128 A100 pour l'inférence avec une longueur de contexte GPT-4 de 8 k (seqlen) coûte environ 0,0049 $ par jeton de 1 k. Lors de l'utilisation de 128 H100 pour l'inférence sur le contexte GPT-4 8k, le coût par 1k jetons est d'environ 0,0021 $. (Remarque : le prix actuel de GPT-4-8k est de 0,03/1k jetons d'entrée, 0,06/1k jetons de sortie. Actuellement, l'utilisation par OpenAI de puces d'inférence ne sera pas aussi extravagante que le spécule l'auteur. Ce calcul peut être utilisé comme une valeur inférieure lié à de futures réductions de prix .) Il est important de noter que ** ces coûts sont calculés en cas d'utilisation élevée et de taille de lot. **

Il est également possible que notre hypothèse soit erronée, étant donné que l'utilisation des clusters OpenAI peut parfois être très faible.

Nous émettons l'hypothèse qu'OpenAI ferme le cluster pendant les ralentissements et réaffecte ces nœuds à d'autres tâches, telles que la reprise de la formation aux points de contrôle de petits modèles de test ou l'expérimentation de diverses nouvelles techniques. Cela permet de maintenir les coûts d'inférence bas, sinon l'utilisation d'OpenAI pourrait être encore plus faible, impliquant plus de 2 fois l'estimation des coûts.

Reprendre l'entraînement aux points de contrôle d'un petit modèle de test, généralement lors de l'entraînement d'un modèle d'apprentissage en profondeur, redémarrer l'entraînement d'un modèle plus petit (par exemple, un sous-ensemble utilisant uniquement un sous-ensemble de ) afin de tester rapidement de nouvelles structures ou algorithmes de modèle dans un court laps de temps . Cette approche peut aider les chercheurs à itérer rapidement sur la conception du modèle et à trouver des structures et des paramètres de modèle optimaux.

09. Mécanisme d'attention multi-requêtes

L'utilisation de Multi-Query Attention est assez courante, mais nous tenons à souligner qu'OpenAI fait de même. En général, une seule tête d'attention est nécessaire et la capacité de mémoire peut être considérablement réduite pour la mise en cache KV. Même ainsi, GPT-4 avec des contextes de 32 000 ne peut certainement pas fonctionner sur l'A100 de 40 Go, et la taille de lot maximale de 8 000 est déjà plafonnée. S'il n'y a pas de MQA, la taille de lot maximale de 8k sera considérablement limitée et les avantages économiques seront considérablement réduits.

• Attention multi-requêtes (MQA) : décodage par transformateur rapide : une seule tête d'écriture suffit. Cet article a proposé le concept de MQA en 2019, et est devenu plus tard un mécanisme d'attention fréquemment utilisé dans le traitement du langage naturel.

Dans le mécanisme d'attention traditionnel, une requête (requête) est mise en correspondance avec un ensemble de paires clé-valeur pour obtenir une représentation pondérée pour chaque clé. Alors que dans l'attention multi-requêtes, il y a plusieurs requêtes, et chaque requête est comparée à des paires clé-valeur pour obtenir une représentation pondérée différente pour chaque clé. Ce processus peut être considéré comme encodant l'entrée sous plusieurs "vues" différentes, résultant en une représentation plus complète et plus précise.

• Tête d'attention (Head) : dans un modèle d'apprentissage en profondeur, il contient généralement plusieurs couches (couches) et une tête (head), qui est utilisée pour mapper la sortie du modèle à l'espace de sortie souhaité. La couche d'en-tête est généralement ajoutée au modèle pour répondre à des tâches spécifiques. Par exemple, dans les tâches de traitement du langage naturel, l'en-tête est généralement utilisé pour convertir la sortie du modèle en texte pour la classification de texte et d'autres tâches. Dans le modèle d'apprentissage en profondeur, la tête est généralement suivie de la dernière couche, qui est utilisée pour convertir la sortie de la dernière couche dans la forme de sortie souhaitée.

10. Traitement par lots en continu

Pour permettre un certain degré de latence maximale et optimiser les coûts d'inférence, OpenAI utilise à la fois des techniques de taille de lot variable et de traitement par lot continu. Cette approche peut améliorer l'utilisation des ressources informatiques sans sacrifier les performances du modèle, et obtenir une latence plus faible et un débit plus élevé pendant le processus d'inférence du modèle. Si vous ne comprenez pas le concept de traitement par lots continu, l'article officiel d'AnyScale Comment le traitement par lots continu permet un débit 23x dans l'inférence LLM tout en réduisant la latence p50 vaut la peine d'être lu. (Remarque : le framework informatique distribué Ray développé par Anyscale est utilisé par OpenAI dans le pipeline infra du modèle. Pickup a déjà publié des recherches sur cette société.)

Traitement par lots continu : une technique utilisée pendant la formation en apprentissage approfondi pour améliorer l'efficacité de la formation et l'utilisation des ressources grâce au matériel. La méthode traditionnelle de traitement par lots consiste à charger une certaine quantité de données d'entraînement dans la mémoire en une seule fois, puis à s'entraîner sur ces données.Cette méthode peut améliorer l'efficacité de l'entraînement, mais elle peut également gaspiller de l'espace mémoire.

Le traitement par lots continu consiste à diviser les données de formation en plusieurs petits lots, et à ne charger qu'un petit lot pour la formation à chaque fois, puis à charger le petit lot suivant une fois la formation terminée, et ainsi de suite, jusqu'à l'achèvement de l'ensemble processus de formation de l'ensemble de données de formation. L'utilisation de techniques de traitement par lots en continu peut améliorer l'efficacité de la formation tout en réduisant l'utilisation de la mémoire, et peut également améliorer la stabilité et la généralisation du modèle.

Source : Anyscale

11. Décodage spéculatif

Il y a des rumeurs selon lesquelles OpenAI utilise la technologie de décodage spéculatif dans la tâche d'inférence du modèle GPT-4. Bien que nous ne puissions pas être sûrs de l'exactitude de ce message, la variation générale de la latence et de la variance d'un jeton à l'autre pour les tâches de récupération simples et les tâches plus complexes semble suggérer que cette technique est possible. Cependant, comme il y a trop de variables, nous ne pouvons pas confirmer si cette technique est réellement utilisée.

Afin d'éviter les litiges de contenu, une partie du contenu de Accelerating LLM Infeferencewith Staged Speculative Decoding est citée ici, et le contenu clé est en gras.

L'utilisation des LLM est généralement divisée en deux phases :

1. Étape de pré-remplissage

Dans cette phase, un indice () est d'abord donné en entrée et exécuté dans le modèle pour générer le cache KV et les premiers logits de sortie. Parmi eux, logits est le vecteur de distribution de probabilité produit par LLM à chaque pas de temps, qui est utilisé pour représenter la possibilité de chaque jeton. Cette phase de pré-population est généralement rapide en raison du calcul parallèle.

2. Étape de décodage

À cette étape, un jeton est sélectionné parmi les logits de sortie et renvoyé au modèle pour générer des logits pour le jeton suivant. Ceci est répété jusqu'à ce que le nombre souhaité de jetons soit généré. Étant donné que chaque décodage doit être calculé séquentiellement pour produire un jeton, l'intensité arithmétique de cette deuxième étape (c'est-à-dire les FLOP calculés/octets de bande passante mémoire) est très faible lors de l'exécution par petits lots, ce qui entraîne une sous-utilisation de la puissance de calcul.) Par conséquent, le décodage est généralement la partie la plus coûteuse de la génération autorégressive.

C'est pourquoi il est beaucoup moins cher d'entrer des jetons que de sortir des jetons dans les appels d'API d'OpenAI.

L'idée centrale du décodage spéculatif est d'utiliser un modèle de brouillon plus petit et plus rapide pour décoder plusieurs jetons à l'avance et les introduire dans le modèle oracle sous forme de lot. Si les prédictions du modèle préliminaire sont correctes (c'est-à-dire en accord avec les prédictions du modèle oracle), un lot peut être utilisé pour décoder plusieurs jetons, ce qui permet d'économiser beaucoup de bande passante mémoire et de temps par jeton.

Le modèle Oracle fait référence à un modèle LLM plus grand et plus lent utilisé dans la méthode de décodage spéculatif pour valider les prédictions du projet de modèle. Le modèle Oracle calculera la distribution de probabilité du jeton suivant en fonction des résultats de prédiction du modèle provisoire et des jetons générés précédemment, puis renverra cette distribution de probabilité au modèle provisoire en tant que sortie.

En utilisant le modèle Oracle pour vérifier les résultats de prédiction du projet de modèle, les erreurs et les écarts dans le processus de décodage ultérieur du projet de modèle peuvent être évités, améliorant ainsi la précision et la stabilité du modèle. Dans le même temps, le modèle Oracle peut également aider le projet de modèle à mieux apprendre et comprendre les informations de contexte dans le modèle de langage, améliorant ainsi la capacité de génération et l'effet du modèle.

Cependant, si le plus grand modèle rejette un jeton prédit par le modèle provisoire, le reste du lot est ignoré et l'algorithme revient au décodage standard jeton par jeton. Le décodage spéculatif peut également être combiné avec un schéma d'échantillonnage de rejet pour échantillonner les jetons de la distribution d'origine. Notez que cette approche ne fonctionne que dans les paramètres de petits lots où la bande passante est le goulot d'étranglement.

En bref, le décodage spéculatif échange le calcul contre la bande passante, et il existe deux raisons principales pour lesquelles il s'agit d'une cible d'optimisation des performances attrayante. Premièrement, le décodage spéculatif ne dégrade en rien la qualité du modèle, car il améliore uniquement la vitesse d'inférence et le débit du modèle en modifiant le processus de calcul de l'étape de décodage. Deuxièmement, les avantages qu'elle offre sont généralement indépendants des autres méthodes, car son avantage réside dans la conversion de calculs séquentiels en exécution parallèle, tandis que d'autres méthodes commencent principalement par la structure du modèle, les paramètres, la formation, etc. pour l'optimisation.

Les méthodes d'inférence actuelles prédisent une seule séquence pour chaque lot. Cependant** cette méthode ne s'adapte pas bien dans le cas de gros lots ou de modèles de brouillon de faible précision. ** Intuitivement, pour de longues séquences de jetons continus, la probabilité que les deux modèles prédisent l'accord diminue de façon exponentielle, ce qui signifie qu'à mesure que la force de l'algorithme augmente, le retour du décodage spéculatif diminuera rapidement.

Nous pensons que si OpenAI utilise un décodage spéculatif, ils ne l'utilisent probablement que pour de courtes séquences d'environ 4 jetons. De plus, certaines personnes pensent que la baisse des performances du modèle GPT-4 est due au fait qu'OpenAI a ajouté des séquences à faible probabilité du modèle de décodage spéculatif à la pré-formation du modèle, ce qui peut ne pas être vrai.

Aussi - Certaines personnes pensent que le modèle Bard utilise également un décodage spéculatif car Google attend que la séquence complète soit générée avant de l'envoyer à l'utilisateur, mais nous ne pensons pas que cette supposition soit vraie.

12. Multimodal visuel

Vision Multi-Modal est probablement la partie la moins convaincante de GPT-4, du moins par rapport à d'autres recherches. Jusqu'à présent, personne n'a exploré la commercialisation de la recherche LLM multimodale.

Vision multi-modale : elle fait référence au traitement et à l'analyse conjoints d'informations de différentes modalités (telles que des images, des textes, des voix, etc.). Habituellement, les informations de ces différentes modalités sont sémantiquement liées, de sorte que leur combinaison peut fournir des informations plus riches et des résultats d'inférence plus précis.

La capacité multimodale visuelle de GPT-4 est obtenue grâce à un encodeur visuel indépendant de l'encodeur de texte, et dispose d'un mécanisme d'attention croisée (Cross-Attention) avec l'encodeur de texte. On dit que son architecture est similaire au modèle Flamingo. L'encodeur de vision a été affiné sur le modèle GPT-4 de 1,8 billion de paramètres, cependant, il n'a été pré-formé qu'avec environ 2 billions de jetons supplémentaires de données textuelles, pas de données de vision.

Cross-Attention : il s'agit d'un mécanisme permettant d'établir des associations entre plusieurs séquences de données, qui a été largement utilisé dans le traitement du langage naturel et la vision par ordinateur. Dans les tâches de séquence à séquence, telles que la traduction automatique et le résumé de texte, un mécanisme d'attention croisée est utilisé pour calculer la corrélation entre les séquences source et cible afin que les informations de la séquence source soient utilisées lors de la génération de la séquence cible.

Dans les tâches de vision par ordinateur, des mécanismes d'attention croisée sont utilisés pour lier des images et du texte à utiliser dans des tâches telles que la génération de description d'image et la réponse visuelle à des questions.

OpenAI prévoit de former le modèle de vision à partir de zéro, mais la technologie n'est pas encore mature, ils espèrent donc réduire le risque en s'entraînant à partir de texte.

** Selon la rumeur, le GPT-5 d'OpenAI formera des modèles de vision à partir de zéro et aura la capacité de générer automatiquement un traitement d'image et audio. **

Un objectif majeur de la technologie multimodale visuelle est de permettre à des agents autonomes de lire des pages Web et de retranscrire leur contenu image et vidéo. Les données utilisées par OpenAI pour former ce modèle comprennent des données conjointes (y compris le rendu LaTeX/texte), des captures d'écran de pages Web et des exemples d'images vidéo Youtube, etc., et utilisent la technologie Whisper pour la transcription.

Une chose intéressante à propos du problème de sur-optimisation de LLM est que le coût des E/S du modèle visuel est différent du coût des E/S du modèle en texte brut. Le coût IO du modèle texte est très bon marché, mais dans le modèle de vision, le coût IO du chargement des données est environ 150 fois supérieur à celui du modèle texte. La taille de chaque jeton est de 600 octets, tandis que le modèle de texte n'a que 4 octets. Actuellement, de nombreux travaux sont en cours dans la recherche sur la compression d'images. (Remarque Xianxiang : les informations textuelles sont plus faciles à compresser et la segmentation image/vidéo est une direction digne d'attention dans le domaine multimodal.)

Coût IO : le coût IO fait référence au temps, aux ressources et aux coûts énergétiques nécessaires pour effectuer une opération d'entrée/sortie dans un système informatique. Ces coûts comprennent des aspects tels que le transfert, le stockage et le traitement des données. Dans le domaine de l'apprentissage automatique et de l'apprentissage en profondeur, le coût des E/S fait généralement référence au coût de lecture et d'écriture de données à partir de supports de stockage (tels que le disque dur, la mémoire, le réseau, etc.). Pendant la formation et l'inférence du modèle, le coût des E/S peut devenir un goulot d'étranglement, affectant les performances et l'efficacité du système. Par conséquent, afin d'améliorer les performances et l'efficacité des systèmes informatiques, le coût des E/S doit être pris en compte et optimisé.

Ceci est très important pour les fournisseurs qui optimisent leur matériel après 2 à 3 ans pour tenir compte des fortes capacités visuelles et audio de chaque modèle. Ils peuvent trouver que leur architecture est mal adaptée. Dans l'ensemble, les futures architectures LLM évolueront certainement au-delà des modèles réduits denses et / ou MoE basés sur du texte que nous voyons aujourd'hui.

Référence

Voir l'original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Récompense
  • Commentaire
  • Partager
Commentaire
0/400
Aucun commentaire
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)