IA : Groq lance une puce accélératrice pour l’inférence
En se spécialisant dans l’accélération des grands modèles de langages au moment de leur exécution plutôt qu’au moment de leur entraînement, la puce LPU de la startup serait dix fois plus rentable qu’un GPU.
Une puce pour accélérer spécifiquement l’inférence, c’est-à-dire l’exécution de modèles d’IA préentraînés. Telle est l’idée de la startup américaine Groq, fondée par Jonathan Ross. Cet ex-ingénieur de Google avait déjà mis au point les puces accélératrices TPU, celles qui ont permis à GCP de traiter certains algorithmes d’IA dès la décennie précédente.
« Les GPUs sont adaptés pour accélérer le type de calculs effectués lors de l’entraînement des modèles d’IA. En revanche, ils ne sont pas optimisés pour exécuter ces modèles. Nous avons donc mis au point une puce qui accélère par dix l’exécution de ces modèles. Concrètement, cela signifie que lorsque vous posez une question à une IA qui fonctionne sur un serveur équipé de notre puce, vous obtenez une réponse en temps réel », lance Jonathan Ross.
« Vous allez me demander : à quoi cela sert-il d’obtenir une réponse en temps réel ? Hé bien principalement à éviter que les visiteurs d’un site s’en aillent parce que le chatbot avec lequel ils discutent met trop de temps à répondre », ajoute-t-il. LeMagIT a pu le rencontrer lors d’un événement IT Press Tour consacré aux startups de la Silicon Valley qui innovent dans les infrastructures.
La startup avance un chiffre de performances : sa puce serait capable de produire 300 tokens par seconde et par utilisateur, ce qui lui permettrait de répondre à une question 75 fois plus vite que ne le ferait un humain. À titre de démonstration, elle a publié en ligne son équivalent de ChatGPT, GroqChat, qui exécute un modèle Llama-2 70B de Meta sur ses puces.
Selon différentes études, il semble que seules les très grandes entreprises auront les moyens d’investir dans l’entraînement de leurs propres modèles. La plupart se contenteront plutôt d’exécuter des modèles déjà entraînés, ce qui coûte bien moins cher, mais nécessite tout de même certaines capacités de calcul que seuls les GPUs conçus pour l’entraînement étaient jusqu’ici capables de fournir. C’est dans ce domaine que Groq compte s’imposer.
Il est à noter que les puces de Groq n’abordent a priori pas – du moins pour l’instant – la problématique intermédiaire d’affinage (fine-tuning) qui consiste à intégrer dans les réponses d’un modèle préentraîné des données propres à une entreprise.
320 fractions de données traitées en même temps
La puce de Groq est baptisée LPU, pour Language Processing Unit, et elle est basée sur une architecture maison appelée TSP (Tensor Stream Processor). Partant du principe que l’inférence repose sur de nombreuses actions parallèles, l’architecture est comme un assemblage de plusieurs mini-DSP montés en série les uns derrière les autres.
Un DSP est un circuit dit SIMD qui consiste à appliquer une même instruction à plusieurs données à la fois (au contraire d’un processeur qui applique une instruction à une donnée). Mais pour maximiser les performances, chaque circuit successif n’a ici qu’un seul type de fonction. Aux extrémités du pipeline, le circuit ne peut que lire ou écrire en mémoire, à partir du deuxième étage il décode les instructions, plus tard il les exécute. Le pipeline est composé de 20 étages et 16 données sont ingérées à chaque cycle.
À un instant T, la puce effectue donc une fraction d’un traitement sur 320 données en consommant l’énergie de 20 unités de traitement, alors qu’un GPU consommerait l’énergie de 320 unités de traitements dans une situation similaire. Selon Jonathan Ross, la carte PCIe contenant sa puce LPU, gravée en 14 nm dans des usines nord-américaines et fonctionnant à 900 MHz, consommerait dix fois moins d’énergie qu’une carte Nvidia dont le GPU est gravé en 5 nm.
Jonathan RossFondateur, Groq
« De par le parallélisme de notre architecture, nous n’avons pas besoin d’utiliser une mémoire excessivement rapide, comme la mémoire HBM contenue dans les solutions GPU. Nous nous contentons d’embarquer une SRAM de 230 Mo. Et, pour l’inférence, nous n’avons pas non plus besoin d’un dispositif de type GPUdirect [système qui permet aux cartes Nvidia de puiser les données directement dans le stockage, sans solliciter le serveur hôte, N.D.R.]. De fait, nous sommes bien moins chers, à l’achat, comme en coûts d’exploitation », argumente Jonathan Ross.
Revers de la médaille, les grands modèles de langage doivent être recompilés pour pouvoir être exécutés par la puce LPU. Selon Groq, il faut compter environ cinq jours pour recompiler chaque déclinaison de Llama, par exemple. Cinq jours sur le serveur que Groq propose lui-même en l’occurrence, car la startup ne fait pas que mettre au point la puce. Depuis mi-janvier, elle la commercialise aussi sous différentes formes.
Déjà des produits disponibles à l’achat
Dans son catalogue de produits, la puce LPU est présentée sous la marque GroqChip. Destinée aux fabricants de serveurs pour qu’ils l’intègrent sur leurs cartes mères ou sur des cartes PCIe de leur conception, la puce accélératrice GroqChip dispose de 16 canaux pour communiquer avec l’extérieur et s’accompagne de 230 Mo de SRAM. Sa puissance de traitement est de 750 TOPS/188 TFLOPS.
On trouve également la GroqCard, une carte PCIe 4.0 prête à l’emploi qui utilise 16 canaux de communication. Cette carte contient une seule puce LPU, mais dispose de deux connecteurs Ethernet pour faire travailler en réseau jusqu’à 12 GroqCard ensemble.
Le serveur s’appelle le GroqNode. Proposé sous la forme d’un boîtier rack 4U, il contient deux processeurs x86, jusqu’à 11 To de RAM et 8 cartes GroqCard. La puissance cumulée est de 6 POPS/1,5 PFLOPS.
Groq propose enfin un cluster, le GroqRack, qui intègre huit serveurs GroqNode, soit un ensemble de 64 puces LPU qui cumulent une puissance de calcul de 48 POPS/12 PFLOPS, selon la startup.
L’ensemble des produits matériels s’accompagne d’une suite logicielle, la GroqWare Suite. Elle comprend le compilateur, qui permet d’adapter à la puce LPU tout modèle entraîné avec PyTorch, TensorFlow, ou ONNX. Une bibliothèque Linux permet de piloter le comportement des puces LPU via une API. Un outil GroqView autorise quant à lui de tester certains réglages.