
L'entraînement et l'inférence utilisent le même modèle pour deux tâches différentes.
Pendant l'entraînement, le système modifie le modèle.
Pendant l'inférence, le système l'utilise.
Cette distinction, apparemment simple, modifie presque toutes les exigences matérielles importantes.
L'entraînement peut durer des heures, des jours ou des semaines et privilégie un débit maximal sur de grands lots et de nombreux accélérateurs. L'inférence doit souvent répondre à un utilisateur en quelques millisecondes tout en traitant des milliers de requêtes de manière économique.
L'entraînement nécessite de la mémoire pour bien plus que les simples poids du modèle.
L'inférence peut souvent tolérer une quantification agressive qui serait inappropriée pour le processus d'entraînement.
Les clusters d'entraînement peuvent consacrer énormément de temps au transfert de gradients entre les accélérateurs.
Un service d'inférence peut se soucier davantage du temps nécessaire avant la génération du premier jeton.
C'est pourquoi demander quel est le « meilleur GPU pour l'IA » sans préciser s'il s'agit d'entraînement ou d'inférence revient à omettre l'aspect le plus important de la question.
NVIDIA décrit l'entraînement comme le processus itératif d'ajustement des poids d'un modèle à partir de données, tandis que l'inférence applique ces poids entraînés à de nouvelles entrées. La relation mathématique est étroite. Les exigences opérationnelles, elles, ne le sont pas. L'explication actuelle de NVIDIA sur l'entraînement et l'inférence couvre la distinction fondamentale. (blogs.nvidia.com)
Le même accélérateur peut gérer les deux étapes.
Cela ne signifie pas pour autant qu'il soit aussi économique pour l'une que pour l'autre.
L'entraînement en IA est le processus consistant à ajuster les paramètres d'un modèle afin d'améliorer ses résultats en fonction d'un objectif défini.
Une étape d'entraînement simplifiée se présente comme suit :
Ce passage en arrière est l'une des différences majeures entre l'entraînement et l'inférence.
L'inférence nécessite que le modèle calcule des résultats.
L'entraînement nécessite ces calculs, auxquels s'ajoutent les informations nécessaires pour déterminer comment le modèle doit évoluer.
Pour les grands réseaux de neurones, répéter cette opération des milliards, voire des milliers de milliards de fois, rend l'entraînement extrêmement gourmand en ressources de calcul. NVIDIA note que l'entraînement de Llama 3.1 405B a nécessité environ (3,8 × 10^{25}) opérations mathématiques sur l'ensemble du cycle d'entraînement. Ce chiffre provient des explications de NVIDIA et doit être compris comme une illustration de l'échelle impliquée plutôt que comme une exigence générale pour l'entraînement des LLM.blogs.nvidia.com)
L'inférence IA est le processus consistant à utiliser un modèle entraîné pour effectuer une prédiction ou générer un résultat à partir de nouvelles données d'entrée.
Les paramètres du modèle ne sont généralement plus mis à jour.
Un modèle de vision par ordinateur peut classer une image.
Un modèle de recommandation peut classer des produits.
Un modèle de reconnaissance vocale peut convertir de l'audio en texte.
Un modèle de langage peut générer des jetons.
L'inférence est moins exigeante en calcul que l'entraînement du même modèle, dans la mesure où les gradients et les mises à jour des paramètres ne sont plus nécessaires.
Cela ne rend pas l'inférence peu coûteuse pour autant.
Un modèle au service de millions d'utilisateurs peut consommer beaucoup plus de ressources de calcul au cours de sa durée de vie opérationnelle que ce qui a été nécessaire pour l'entraîner.
Les modèles de raisonnement modernes peuvent également mobiliser une puissance de calcul importante lors de l'inférence en générant des traces de raisonnement plus longues ou en effectuant des calculs répétés avant de fournir une réponse.
L'infrastructure doit donc optimiser un problème différent :
Comment exécuter de manière répétée ce modèle entraîné avec la latence, l'échelle et le coût requis par l'application ?
Notre guide pratique de l'inférence LLM en production traite ce problème de déploiement en détail.
Une comparaison matérielle courante ne prend en compte que la taille du modèle.
Cela sous-estime considérablement la mémoire nécessaire à l'entraînement.
Supposons qu'un LLM contienne des poids occupant 20 Go.
L'inférence nécessite un accès à ces poids ainsi qu'à la mémoire d'exécution.
L'entraînement peut également nécessiter de la mémoire pour :
Selon l'optimiseur, le format numérique, l'architecture du modèle, la taille des lots et la méthode d'entraînement, ces structures supplémentaires peuvent largement dépasser la mémoire occupée par les poids eux-mêmes.
C'est pourquoi un modèle qui tient aisément sur un seul GPU pour l'inférence peut ne pas y tenir pour un entraînement complet.
Lors de la passe avant, chaque couche du modèle produit des valeurs intermédiaires appelées activations.
L'entraînement nécessite bon nombre de ces valeurs ultérieurement lors de la rétropropagation.
Leur conservation consomme de la mémoire.
Augmentation :
et la mémoire d'activation peuvent augmenter considérablement.
Des techniques telles que le point de contrôle d'activation permettent d'échanger du calcul supplémentaire contre de la mémoire en enregistrant moins de valeurs intermédiaires et en recalculant certaines d'entre elles lors de la passe arrière.
Encore une fois, le choix du matériel ne peut pas se baser uniquement sur le nombre de paramètres.
L'entraînement nécessite également de conserver les informations utilisées par l'algorithme d'optimisation.
Les optimiseurs de la famille Adam, par exemple, conservent des valeurs supplémentaires pour les paramètres du modèle.
Cela génère une surcharge mémoire importante lors de l'entraînement de milliards de paramètres.
Les systèmes d'entraînement distribués utilisent des techniques telles que le partitionnement des états de l'optimiseur, des gradients et des paramètres du modèle entre les accélérateurs afin de réduire les besoins en mémoire par appareil.
C'est l'une des raisons pour lesquelles les grands systèmes d'entraînement s'étendent souvent sur de nombreux GPU, même lorsque le débit arithmétique brut n'est pas la seule contrainte.
L' état du modèle doit être stocké quelque part.
L'inférence élimine une grande partie de l'état d'entraînement.
Pour les LLM basés sur des transformeurs, un autre consommateur de mémoire important apparaît : le cache KV.
Lors de la génération, le modèle stocke les représentations des clés et des valeurs des jetons précédemment traités afin de ne pas avoir à recalculer tout l'historique d'attention à chaque nouveau jeton produit.
Cela accélère considérablement la génération.
Cela signifie également que l'utilisation de la mémoire augmente en fonction de :
Un serveur capable de gérer confortablement une conversation peut manquer de mémoire s'il doit traiter des centaines de longues conversations.
Ainsi, l'entraînement et l'inférence se préoccupent tous deux de la mémoire, mais pour des raisons différentes.
L'entraînement tend à favoriser l'exécution du maximum de calculs utiles au fil du temps.
Si un modèle met deux semaines à s'entraîner, réduire ce délai à une semaine présente une valeur évidente.
Des tailles de lots importantes permettent de maintenir les accélérateurs en activité.
Plusieurs GPU peuvent traiter différentes données simultanément.
Les grands modèles peuvent être répartis entre plusieurs processeurs.
L'infrastructure peut privilégier le débit total car aucun utilisateur n'attend la fin de chaque exemple d'entraînement individuel.
Cela ne signifie pas que la latence est sans importance dans l'entraînement distribué. Une communication lente peut bloquer tous les GPU.
La latence importante est toutefois généralement celle de la communication entre machines au sein du système d'entraînement, plutôt que la latence perçue par l'utilisateur.
L'inférence en production poursuit deux objectifs contradictoires.
Traiter chaque requête rapidement.
Traiter autant de requêtes que possible.
Ces objectifs peuvent entrer en conflit.
Le regroupement de plusieurs requêtes en lots (batching) améliore l'utilisation des accélérateurs et le débit.
Attendre un lot plus important peut augmenter la latence.
Les recommandations actuelles de NVIDIA en matière d'inférence décrivent directement ce compromis : les charges de travail hors ligne peuvent utiliser de grands lots pour favoriser le débit, tandis que les applications en temps réel nécessitent des contraintes de latence plus strictes. (Guide de performance d'inférence NVIDIA)
Cela fait apparaître des métriques qui importent beaucoup moins lors de l'entraînement.
Pour le service de LLM, celles-ci incluent :
Nous expliquons ces points dans notre Guide des métriques d'inférence LLM.
Les grands lots d'entraînement peuvent améliorer l'utilisation du matériel, car un même ensemble de poids de modèle peut être réutilisé pour de nombreuses entrées pendant que les accélérateurs restent sollicités.
C'est pourquoi les systèmes d'entraînement traitent souvent des centaines, des milliers, voire davantage d'exemples sous forme de lot global réparti sur plusieurs accélérateurs.
Le traitement par lots en inférence est davantage contraint par l'expérience utilisateur.
Une tâche d'inférence par lots traitant 10 millions d'images peut également utiliser de grands lots.
Un chatbot interactif ne peut pas attendre indéfiniment que suffisamment de requêtes s'accumulent pour remplir l'accélérateur.
C'est pourquoi les systèmes de production utilisent des techniques telles que le traitement par lots continu, où les requêtes entrent et sortent dynamiquement du lot actif au lieu d'attendre qu'un lot fixe soit complet.
Notre guide sur le traitement par lots continu explique comment cela peut modifier l'utilisation du GPU et l'économie de l'inférence sans changer le matériel.
Les réseaux de neurones ont rarement besoin que chaque calcul soit effectué en FP32.
L'entraînement utilise désormais couramment la précision mixte, incluant des formats tels que BF16, FP16, FP8, avec une accumulation en précision supérieure lorsque nécessaire.
L'objectif est de réduire le trafic mémoire et d'augmenter le débit sans déstabiliser l'optimisation ni nuire au modèle entraîné.
L'inférence offre plus de liberté.
Le modèle n'est plus en phase d'apprentissage.
Ses poids peuvent souvent être convertis en formats beaucoup plus légers tels que :
Cela peut réduire considérablement les besoins en mémoire.
Une représentation sur 4 bits nécessite environ un quart du nombre de bits d'une représentation sur 16 bits, sans compter les métadonnées de quantification et les détails d'implémentation.
Cela peut modifier entièrement les exigences matérielles.
Un modèle qui nécessitait plusieurs GPU en FP16 pourrait tenir sur moins d'accélérateurs après quantification.
Cependant, des poids plus petits ne garantissent ni une qualité équivalente ni une vitesse proportionnelle. Le matériel doit disposer de noyaux efficaces pour le format choisi.
Notre guide de quantification LLM aborde ces compromis.
Une fois que l'entraînement est réparti sur plusieurs GPU, la communication devient un facteur déterminant de la performance.
Dans le parallélisme de données, plusieurs GPU conservent des répliques du modèle et traitent des données différentes. Le système doit synchroniser les gradients.
Dans parallélisme tensoriel, des parties d'opérations individuelles sont réparties entre les accélérateurs.
Dans le parallélisme de pipeline, différents groupes de couches s'exécutent sur des appareils distincts.
Des systèmes d'entraînement plus élaborés combinent plusieurs méthodes.
Ces accélérateurs nécessitent donc une communication rapide.
La bibliothèque NCCL de NVIDIA fournit des opérations collectives telles que AllReduce pour les charges de travail multi-GPU et multi-nœuds, et le développement actuel de NCCL continue de cibler la latence et la bande passante de communication pour l'entraînement comme pour l'inférence. (NVIDIA NCCL)
À grande échelle, acheter des GPU en ignorant l'interconnexion peut produire un cluster coûteux dont les processeurs attendent constamment les uns après les autres.
L'inférence distribuée peut également nécessiter une communication à haut débit entre les accélérateurs.
Un modèle trop volumineux pour un seul appareil peut être fragmenté sur plusieurs GPU.
Le parallélisme tensoriel permet de diviser les couches entre les accélérateurs.
Les modèles de type « mixture-of-experts » peuvent transférer des tâches entre les appareils.
Les systèmes d'inférence à grande échelle peuvent même séparer le préremplissage et le décodage sur différents groupes d'accélérateurs.
Les interconnexions rapides ne sont donc pas réservées à l'entraînement.
La priorité est différente.
L'entraînement optimise souvent le débit d'une tâche distribuée colossale.
L'inférence doit préserver un débit utile tout en respectant les objectifs de latence de service pour de nombreuses requêtes indépendantes.
L'entraînement a besoin de données.
Potentiellement en quantités énormes.
L'infrastructure doit être capable de diffuser les jeux de données d'entraînement assez rapidement pour que les accélérateurs coûteux ne restent jamais inactifs en attendant des données.
L'entraînement génère également des points de contrôle afin qu'une tâche longue puisse se remettre d'une défaillance ou être reprise ultérieurement.
L'inférence a généralement des besoins en données plus légers.
Elle doit tout de même charger les poids du modèle, parfois très lourds, et peut dépendre du stockage pour :
La pression se déplace : il ne s'agit plus d'alimenter un pipeline d'entraînement massif, mais de maintenir un service déployé réactif et disponible.
Une tâche d'entraînement peut durer plusieurs jours.
Une défaillance matérielle survenant vers la fin de l'exécution peut anéantir une quantité considérable de calculs utiles si les points de contrôle sont mal gérés.
L'infrastructure d'entraînement nécessite donc :
L'inférence est généralement un service de production.
La fiabilité devient :
Une charge de travail cherche à éviter la perte d'une semaine de travail.
L'autre cherche à éviter la perte de la prochaine requête utilisateur.
Le réglage fin est parfois décrit comme s'il s'agissait d'une troisième catégorie computationnelle.
D'un point de vue matériel, il appartient au domaine de l'entraînement.
Les paramètres du modèle, ou un sous-ensemble sélectionné de ceux-ci, sont mis à jour.
Le réglage fin complet peut nécessiter une mémoire importante pour les gradients et l'état de l'optimiseur.
Les méthodes à paramètres efficaces telles que LoRA modifient moins de paramètres et peuvent réduire considérablement la charge d'entraînement.
QLoRA va plus loin en combinant des poids de modèle de base quantifiés avec des adaptateurs de bas rang entraînables.
Cela permet d'effectuer un réglage fin utile sur du matériel qui ne pourrait jamais prendre en charge l'entraînement complet du même modèle.
La distinction importante reste de savoir si le modèle est modifié.
Si des paramètres sont en cours d'apprentissage, vous effectuez un entraînement.
L'expression « entraînement IA » couvre un éventail énorme.
L'entraînement d'un modèle de pointe à partir de zéro peut impliquer d'immenses clusters d'accélérateurs fonctionnant pendant des mois.
Le réglage fin d'un modèle 7B existant avec LoRA peut tenir sur un seul GPU.
Un petit réseau de vision par ordinateur pourrait s'entraîner sur un ordinateur portable.
Les recommandations matérielles doivent donc préciser la méthode d'entraînement.
« L'entraînement nécessite huit GPU » est tout aussi faux que « l'inférence tient sur un seul ».
Le modèle et la méthode déterminent les besoins.
À l'autre extrémité :
C'est pourquoi le CPU vs GPU vs NPU choix doit être abordé aussi bien dans le cadre de l'entraînement que de l'inférence.
L'entraînement de grands modèles tire profit de l'ajout d'accélérateurs tant que la charge de travail continue de s'adapter efficacement.
Cela rend plusieurs propriétés matérielles particulièrement importantes :
La documentation actuelle de Google sur les TPU l'illustre directement. Les TPU Pods connectent de nombreux accélérateurs via un réseau dédié à haute vitesse, et les conseils de Google en matière d'entraînement recommandent de maintenir la taille des lots par cœur à mesure que les configurations TPU augmentent pour améliorer la mise à l'échelle. (Entraînement sur Google Cloud TPU)
La puce n'est qu'un composant de la machine d'entraînement.
L'infrastructure reliant les puces en est un autre.
L'inférence stable crée une opportunité pour des processeurs plus spécialisés.
AWS a initialement distingué ces deux domaines de manière visible :
Cette frontière est devenue moins rigide. Le positionnement actuel d'AWS Trainium inclut à la fois l'entraînement et l'inférence à grande échelle, tandis qu'Inferentia reste spécifiquement conçu pour l'inférence. Tous deux utilisent la pile logicielle AWS Neuron. (AWS Trainium, AWS Inferentia)
Les TPU de Google prennent également en charge ces deux étapes.
La documentation actuelle des Cloud TPU prend en charge l'entraînement et le réglage fin ainsi que le déploiement, y compris l'inférence LLM via vLLM sur les générations de TPU plus récentes. (Inférence Google Cloud TPU)
La leçon plus large est importante :
le matériel d'entraînement et le matériel d'inférence sont des catégories de charge de travail, et non des espèces de processeurs rigides.
Un processeur peut être performant dans les deux domaines.
Les GPU restent utiles tout au long du cycle de vie complet d'un modèle.
Le même environnement GPU permet souvent de :
Cette continuité offre une réelle valeur opérationnelle.
Un processeur d'inférence spécialisé peut finir par surpasser le GPU sur le plan économique une fois que la charge de travail en production devient importante et prévisible.
Lors du développement, passer d'un environnement matériel spécifique à un autre peut coûter plus cher en temps d'ingénierie que ce qu'il permet d'économiser.
C'est pourquoi notre guide sur l'inférence : accélérateur IA vs GPU soutient que la spécialisation doit justifier ses contraintes.
Les NPU qui équipent désormais les ordinateurs portables et les appareils clients sont principalement conçus pour une inférence efficace.
Ils prennent en charge les charges de travail de réseaux neuronaux compatibles sans solliciter intensivement le CPU ou le GPU.
C'est une solution idéale pour :
Mais le terme NPU englobe bien plus que le matériel pour ordinateurs portables. Certaines plateformes NPU de classe serveur prennent également en charge l'entraînement.
Nos guides sur ce qu'est un NPU et NPU vs GPU expliquent pourquoi il est nécessaire de préciser la classe de l'accélérateur avant d'affirmer ce que les NPU peuvent ou ne peuvent pas faire.
La plupart des systèmes déployés en périphérie n'ont pas besoin d'apprendre un grand modèle à partir de zéro.
Ils ont besoin de l'utiliser.
Une caméra détecte des objets.
Une machine détecte des anomalies.
Un ordinateur portable effectue une transcription.
Un robot assure une perception locale.
L'entraînement peut se dérouler ailleurs sur du matériel plus vaste et plus flexible.
Le modèle optimisé est ensuite déployé sur l'appareil.
Cette division permet au matériel de périphérie de rester compact, efficace et prévisible.
Notre guide du matériel d'IA en périphérie aborde ce modèle d'entraînement dans le cloud et d'inférence en périphérie, ainsi que plusieurs alternatives hybrides.
Les grands modèles de langage accentuent particulièrement cette distinction matérielle.
L'entraînement à partir de zéro peut nécessiter :
La question de la performance tend à être :
À quelle vitesse pouvons-nous atteindre la qualité de modèle requise ?
Le déploiement du modèle déplace la question vers :
Combien de jetons utiles pouvons-nous fournir en respectant les contraintes de latence et de coût ?
Désormais, l'infrastructure se concentre sur :
Le GPU peut être identique.
L'objectif d'optimisation, lui, ne l'est pas.
Même l'inférence LLM peut se diviser en deux comportements matériels distincts.
Pendant le préremplissage, le modèle traite tous les jetons d'entrée et construit le cache KV initial.
Cette phase offre une capacité de calcul parallèle substantielle.
Pendant le décodage, le système génère un jeton à la fois et lit de manière répétée les poids ainsi que l'état d'attention mis en cache.
Le décodage peut devenir extrêmement sensible aux transferts de mémoire.
Les systèmes de service modernes peuvent optimiser ces phases différemment, et les déploiements à grande échelle peuvent même les exécuter sur des groupes de matériel distincts.
Ainsi, le « matériel d'inférence » devient une collection de sous-problèmes à part entière.
C'est une autre raison pour laquelle les TOPS ou FLOPS de crête ne peuvent pas trancher le choix. Notre guide sur les TOPS, les FLOPS et les mesures de performance IA utiles explique ce qu'il faut mesurer à la place.
Les meilleures mesures d'entraînement décrivent la progression vers un modèle utilisable.
Mesurer :
MLPerf Training suit ce principe en comparant le temps nécessaire aux systèmes pour entraîner des charges de travail définies jusqu'à des objectifs de qualité spécifiés, plutôt que de classer les systèmes uniquement sur la base des FLOPS de crête. (MLPerf Training)
L'inférence en production nécessite une grille d'évaluation différente.
Mesurer :
MLPerf Inference évalue de la même manière des charges de travail définies dans des scénarios de déploiement et selon des objectifs de qualité, plutôt que de considérer les performances d'entraînement comme un indicateur pour la mise en service. (MLPerf Inference)
Imaginons deux GPU.
Le GPU A dispose de plus de mémoire et d'une meilleure communication multi-GPU.
Le GPU B possède moins de mémoire, mais offre un meilleur rapport prix-performance pour la précision et la taille de modèle utilisées en production.
Le GPU A pourrait être le système le plus adapté à l'entraînement.
Le GPU B pourrait être le système le plus adapté à l'inférence.
Tout dépend de la charge de travail.
Pour l'entraînement, une VRAM supplémentaire permet :
Pour l'inférence, payer pour de la mémoire inutilisée peut s'avérer inutile.
À l'inverse, une charge de travail d'inférence avec des contextes immenses ou des centaines de requêtes simultanées peut nécessiter plus de mémoire qu'une expérimentation d'entraînement modeste.
Il n'existe pas de classement permanent.
Une estimation approximative du poids du modèle est utile.
Mais un dimensionnement complet doit inclure :
poids + activations + gradients + état de l'optimiseur + tampons temporaires + surcharge du framework
poids + cache KV + activations + tampons d'exécution + surcharge liée au traitement par lots/concurrence
Prévoyez ensuite une marge de manœuvre.
Faire fonctionner un GPU à la limite absolue de sa mémoire disponible rend le déploiement fragile et limite les futures tailles de lots, longueurs de contexte ou modifications de modèle.
La quantification peut réduire les besoins en entraînement via des méthodes comme QLoRA.
Son impact le plus important sur l'infrastructure est généralement visible lors de l'inférence.
Réduire la précision des poids signifie :
Cela peut faire passer la réponse de :
inférence multi-GPU
vers :
inférence sur GPU unique
dont les modifications coûtent bien plus cher qu'une légère amélioration des performances.
C'est pourquoi l'optimisation des modèles doit intervenir avant l'achat définitif de l'infrastructure.
L'entraînement comme l'inférence incluent des tâches qui n'ont pas forcément leur place sur un GPU.
Les pipelines d'entraînement peuvent utiliser les CPU pour :
Les services d'inférence utilisent les CPU pour :
Payer des tarifs GPU pour des étapes de pipeline limitées par le CPU peut entraîner un gaspillage de capacité.
Notre guide sur les machines virtuelles vCPU et quand vous n'avez pas besoin de GPU recommande de diviser les pipelines afin que l'accélérateur coûteux ne soit utilisé que là où l'accélération modifie le résultat.
Il s'agit de points de départ.
Évaluez la charge de travail avant de faire votre choix final.
Posez-vous ces questions dans l'ordre.
Ces tâches ont des besoins en mémoire radicalement différents.
Calculez les poids, les gradients, l'état de l'optimiseur et les activations attendues.
Les deux influencent la mémoire et le débit.
Si oui, la complexité liée à la distribution est peut-être inutile.
Parallélisme de données ?
Parallélisme de tenseurs ?
Parallélisme de pipeline ?
Une combinaison des deux ?
L'ajout de GPU n'est utile que si la charge de travail utile augmente plus vite que le coût de communication.
Si réduire un entraînement de deux semaines à trois jours apporte une réelle valeur ajoutée au projet, payer pour un débit supérieur peut se justifier.
Si le modèle n'est entraîné qu'une fois par trimestre, une exécution plus lente mais moins coûteuse peut être préférable.
Les questions changent.
Évaluez la représentation utilisée en production, et non le point de contrôle de l'entraînement.
L'inférence interactive et l'inférence par lots ont des modèles économiques différents.
Cela détermine les besoins en matière de file d'attente, de traitement par lots et de cache KV.
Prenez en compte le contexte et les requêtes simultanées.
Les changements fréquents de modèles favorisent une infrastructure flexible.
Vérifiez le modèle exact, les opérateurs, la précision et la pile de service.
Comparez l'économie globale du système plutôt que le prix du périphérique.
L'entraînement et l'inférence autogérée bénéficient tous deux d'une infrastructure où vous contrôlez l'environnement logiciel.
Compute avec Hivenet est cette voie.
Pour l'entraînement et le réglage fin, vous contrôlez l'environnement d'exploitation, les frameworks, les jeux de données, le code du modèle, la précision et l'expérimentation.
Pour l'inférence, vous pouvez contrôler le serveur de modèle, la stratégie de traitement par lots, la quantification, l'exécution et l'application environnante.
Cela rend Compute particulièrement utile lorsque la charge de travail est encore en évolution ou lorsque vous devez comparer plusieurs approches avant de définir la configuration de production.
La bibliothèque de benchmarks de Hivenet mesure des charges de travail réelles, incluant la virtualisation GPU, le comportement d'inférence et la communication multi-GPU, plutôt que de traiter les spécifications théoriques des puces comme des résultats de production.
Pour un exemple actuel, les tests d'inférence de la RTX 5090 de Hivenet utilisent un modèle défini, un moteur de service, une configuration de prompt et une charge de requête plutôt que d'estimer le débit de jetons à partir des spécifications arithmétiques de pointe.
Une fois que la tâche devient :
déployez ce modèle de manière fiable via une API
vous n'avez peut-être plus besoin d'un contrôle direct sur la machine.
L' API d'inférence Hivenet fournit des points de terminaison gérés compatibles avec OpenAI pour cette approche.
Cela permet une séparation utile du cycle de vie du modèle :
Expérimentez, entraînez, affinez et gérez vous-même sur Compute.
Utilisez un point de terminaison d'inférence géré lorsque vous n'avez plus besoin de gérer vous-même la couche de service.
Les charges de travail se chevauchent, mais la responsabilité opérationnelle change.
Cette différence est tout aussi importante que le processeur lui-même.
La spécialisation est intéressante à grande échelle.
Elle peut aussi arriver trop tôt.
Maintenir l'entraînement et l'inférence sur la même plateforme GPU peut faciliter le développement car :
Une fois que la charge de travail en production devient importante et prévisible, il devient intéressant d'évaluer une plateforme d'inférence spécialisée.
Le cycle de vie peut donc se présenter comme suit :
Recherche GPU → Entraînement GPU → Inférence GPU → Inférence spécialisée si la rentabilité le justifie
plutôt que de choisir l'architecture d'inférence finale avant que le modèle ne soit stabilisé.
L'entraînement ajuste les paramètres d'un modèle à l'aide de données et d'un processus d'optimisation. L'inférence utilise les paramètres entraînés qui en résultent pour produire des prédictions ou des contenus générés à partir de nouvelles entrées.
Pour une exécution unique du même modèle, l'entraînement nécessite généralement plus de calcul car il inclut la rétropropagation et la mise à jour des paramètres. Les services d'inférence à grande échelle peuvent toutefois consommer une puissance de calcul totale énorme, car le modèle entraîné peut être exécuté des millions ou des milliards de fois.
Généralement, pour un même modèle et une même précision. L'entraînement nécessite des gradients, des activations, des états d'optimiseur et d'autres données de travail en plus des poids du modèle. L'inférence élimine une grande partie de cet état, mais peut consommer une mémoire importante via le cache KV, les contextes longs et la concurrence.
Oui. Les GPU sont largement utilisés pour les deux. La configuration optimale peut différer, car l'entraînement privilégie le débit, la mémoire et la mise à l'échelle, tandis que l'inférence peut privilégier la latence, la concurrence et le coût.
L'entraînement doit calculer comment le modèle doit évoluer et mettre à jour ses paramètres de manière répétée. Cela nécessite des calculs et une mémoire supplémentaires par rapport à la simple évaluation du modèle entraîné.
Le réglage fin est de l'entraînement, car les paramètres du modèle ou les adaptateurs sont mis à jour.
Oui. Le LoRA est un réglage fin efficace en termes de paramètres. Il entraîne un ensemble relativement restreint de paramètres de bas rang supplémentaires plutôt que de mettre à jour chaque paramètre du modèle de base.
La quantification est particulièrement courante dans l'inférence, car les modèles entraînés peuvent souvent utiliser une précision moindre tout en conservant une qualité de sortie acceptable. La quantification peut également être utilisée dans les flux de travail d'entraînement et de réglage fin, notamment avec le QLoRA.
Parfois. Les grands modèles peuvent nécessiter un partitionnement sur plusieurs GPU, tandis qu'un trafic élevé peut exiger plusieurs accélérateurs pour assurer la capacité. Les modèles plus petits et le trafic plus léger peuvent souvent fonctionner sur un seul GPU.
L'entraînement distribué nécessite que les GPU échangent des informations telles que des gradients ou des fragments de modèle. Une communication lente laisse les accélérateurs en attente et réduit l'efficacité de la mise à l'échelle.
C'est possible. Les très grands modèles peuvent être répartis sur plusieurs accélérateurs, et l'inférence par parallélisme tensoriel ou désagrégée peut nécessiter une communication importante. Ce n'est pas le cas pour les modèles plus petits sur un seul GPU.
Les GPU constituent le point de départ le plus flexible pour la plupart des entraînements en deep learning. Les TPU, Trainium et autres accélérateurs d'entraînement peuvent être de solides alternatives pour les charges de travail prises en charge à grande échelle. Le choix doit dépendre du modèle, du framework, des besoins en mémoire et de l'architecture distribuée.
Les CPU peuvent gérer de petites charges de travail. Les GPU prennent en charge une large gamme de modèles exigeants. Les NPU conviennent aux charges de travail locales et en périphérie prises en charge. Les accélérateurs d'inférence spécialisés peuvent devenir intéressants pour des charges de travail stables et à haut volume. Évaluez le modèle exact et le modèle de trafic.
Cela dépend de l'échelle. L'entraînement d'un grand modèle peut être extrêmement coûteux en tant que projet unique. L'inférence peut dépasser le coût d'entraînement au fil du temps lorsqu'un modèle traite un grand nombre de requêtes en continu.
Parfois. La séparation est judicieuse lorsque leurs exigences diffèrent suffisamment pour améliorer les coûts ou les performances. Maintenir les deux sur la même plateforme GPU peut simplifier le développement lorsque les charges de travail sont plus petites ou encore en évolution.
L'entraînement et l'inférence semblent similaires car ils exécutent le même réseau neuronal.
Leurs tâches sont différentes.
L'entraînement demande au matériel d'apprendre.
Cela implique des calculs vers l'avant, des calculs vers l'arrière, des gradients, l'état de l'optimiseur, de grands lots, de la communication et des tâches de longue durée.
L'inférence demande au matériel de produire des réponses utiles de manière répétée.
Cela fait de la latence, du débit, de l'efficacité mémoire, de la concurrence, de l'utilisation, de la fiabilité et du coût des exigences de premier ordre.
Cette distinction a des conséquences pratiques.
Un système multi-GPU à haute mémoire peut valoir l'investissement lors de l'entraînement, mais s'avérer inutile pour le modèle d'inférence final.
Une quantification agressive peut sembler peu pertinente lors de l'entraînement complet, mais transformer radicalement la rentabilité du déploiement.
Un accélérateur d'inférence spécialisé peut être inutilement restrictif lors de la phase d'expérimentation, mais devenir extrêmement attractif une fois que le modèle est exécuté un milliard de fois par mois.
Commencez par identifier l'étape du cycle de vie du modèle.
Dimensionnez ensuite le matériel en fonction de cette tâche.
Poursuivez votre lecture sur le cluster avec NPU vs GPU pour les charges de travail IA, ce qu'est un NPU, le guide pratique des accélérateurs d'IA, CPU vs GPU vs NPU, accélérateurs d'IA vs GPU pour l'inférence, matériel pour l'IA en périphérie, et TOPS vs FLOPS.
Pick one AI, compute, or storage workload and see the difference for yourself. Spin it up in minutes, or let our team map your fastest path to production.