IA et HPC : l’essentiel sur SambaNova Systems
SambaNova a rapidement pris ses marques comme concepteurs de puces et de systèmes dédiés à l’IA, mais la startup affirme qu’elle a plus que cela à offrir. Sa stratégie axée sur l’intelligence artificielle à la demande commence à séduire certaines entreprises en dehors du monde de la recherche.
Fondée en 2017 à Palo Alto, SambaNova Systems a le statut de licorne. L’entreprise, qui a levé 1,1 milliard de dollars au total, est valorisée 5 milliards de dollars et compte près de 500 employés. Sur le papier, cette société est une énième startup consacrée à l’IA, mais elle a quelques arguments à faire valoir.
Considérant que les équipements du marché ne pouvaient traiter efficacement les charges de travail dédiées à l’intelligence artificielle, les fondateurs Kunle Olukotun, Christophe Ré – tous deux professeurs à l’université de Stanford – et Rodrigo Liang auparavant responsable du développement de SPARC et des processeurs ASICS chez Oracle, ont commencé par imaginer leur propre puce, un accélérateur nommé Cardinal SN10.
Marshall ChoySVP, Product, SambaNova Systems
« Nous avions besoin de quelque chose qui soit plus programmable, plus économe en énergie et plus facile à utiliser », affirme Marshall Choy, SVP produit chez SambaNova lors de l’IT Press Tour 42. « Les architectures CPU, GPU et FPGA existantes ne nous donnaient pas entière satisfaction ».
Imiter le fonctionnement d’un logiciel avec une puce
Pour comprendre ce que fait la scale-up, il faut plonger dans le fonctionnement des outils ML/DL. « Les frameworks tels TensorFlow et Pytorch permettent de développer des modèles de machine learning basés sur des graphes de flux de données », affirmait Kunle Oloktun, CTO et cofondateur de SambaNova en 2021.
En effet, ces outils s’appuient sur des frameworks orientés graphes. Ici, le graphe décrit tous les calculs en série effectués pendant l’entraînement d’un modèle. Avec TensorFlow, les manipulations de données dit ops (ou opérations), sont effectuées sur des tensors, c’est-à-dire des vecteurs ou des matrices de n dimension qui stockent les données. « Les graphes sont des structures de données qui contiennent un ensemble d’objets tf. Operation qui représentent les unités de calcul, et d’objets tf. Tensor, qui représentent les unités de données qui circulent entre les opérations », précise la documentation de TensorFlow.
L’implémentation d’une opération (ou fonction) en matière de hardware est appelée kernel. Ce kernel est spécifique à la plateforme matérielle utilisée. Quand ils développent des modèles de deep learning, les data engineers tendent à préférer les GPU pour leur capacité à exécuter des milliers de séquence d’opération (ou threads) en parallèle, pour leur bande passante plus large et pour l’accès à la mémoire plus rapide qu’un CPU.
Sauf que l’exécution des kernels dans un GPU se fait un à un (« kernel by kernel » en VO), selon Marshall Choy. Ce passage d’une opération à l’autre doit être programmé par les développeurs et peut provoquer des ralentissements.
Aussi, la consommation de RAM et de VRAM de certains algorithmes de deep learning est conséquente. « Les CPU et les GPU lisent les données et les poids depuis la mémoire, effectuent les calculs et réécrivent les résultats de sortie en mémoire », affirment les porte-parole de SambaNova dans un livre blanc. Il n’est pas rare que cette pratique provoque des erreurs liées à une quantité de mémoire insuffisante.
Les réseaux de neurones servent à concevoir ces modèles de reconnaissance d’images (computer vision), de traitement du langage naturel (NLP) et de génération de langage naturel (NLG). Ceux-là deviennent des mégamodèles. Les data sets sont de plus en plus importants et le nombre de paramètres explosent. Pour éviter les erreurs « Out of Memory », les géants du deep learning empilent les GPU. Par exemple, GPT-3 d’OpenAI a été entraîné sur 10 000 GPUs Nvidia V100 dans un data center Microsoft. La facture d’entrée ? Plus de 10 millions de dollars.
En outre, ces modèles, bien souvent entraînés sur des GPU, sont ensuite inférés sur des ASICs ou des FPGAs, ce qui réclame d’acheter (ou de louer) et d’optimiser plusieurs systèmes différents pour un cas d’usage donné.
C’est pour répondre à ces enjeux que SambaNova a créé sa puce reprogrammable gravée en 7 nm par TSMC. SN10 contient 40 milliards de transistors. Il s’agit d’une RDU, une Reconfigurable Dataflow Unit. Les autres fabricants, dont Nvidia, font plutôt mention de DPU (Data Processing Unit).
La technologie de SambaNova repose sur une architecture reconfigurable « à gros grains » (CGRA), nommée Plasticine. C’est le fruit du travail de Kunle Olukotun, d’après ce rapport. Un accélérateur Cardinal SN10 est composé de 640 unités de calcul (Pattern Compute Unit, PCU), de 640 unités de mémoire (Pattern Memory Unit, PMU) et de 320 Mo de SRAM. Les PMU stocke les tensors. Une matrice d’interconnexion basée sur trois types de commutateurs statiques assurent la transmission de ces tensors aux PCU. Chaque PCU contient 96 fonctions SIMD pour gérer les différents types de données entières et à virgule flottante. Un SN10 permet d’obtenir jusqu’à 300 téraFLOPs au format d’encodage BF16. Pour l’inférence des modèles d’IA, SN10 prend en charge les formats de données int8, int16 et int32.
SambaNova couple huit Cardinal SN10 dans son système SN10-8, aussi nommé DataScale. Ce système occupe l’espace d’un quart de baie et comprend 3, 6 ou 12 To de RAM DDR4 (2667 ou 3200 Mhz) associé à un processeur AMD Epyc. La puissance maximale d’un quart de baie atteint 2,6 pétaFLOPS au format BF16.
Une baie SN10-8R peut accueillir quatre systèmes SN10-8. Selon SambaNova, il est possible de relier jusqu’à 100 systèmes (ou nœuds) ensemble.
Résultat, sur un benchmark d’entraînement BERT-Large (128 longueurs de séquence, 64 répliques, 1 k taille de lot), La SN10-8R est 1,4 fois plus rapide qu’un Nvidia DGX A100, selon SambaNova. Le système Nvidia traite 20 086 échantillons à la seconde, contre 28 800 pour la baie SN10-8R. Architecture reprogrammable oblige, la vitesse d’inférence du RDU est 6,9 fois plus rapide que celle d’un GPU Nvidia A100, selon un benchmark MLPerf publié le 24 novembre 2020.
Combien de temps faudrait-il alors pour entraîner un mégamodèle de type GPT-3 avec les systèmes DataScale ? « Cela dépend de la vitesse à laquelle vous voulez l’entraîner », répond Marshall Choy. « Si vous pouvez attendre mille jours, faites-le avec le petit système, mais typiquement personne ne veut vraiment patienter plus d’un mois pour entraîner un modèle GPT avec 175 milliards de paramètres », avance-t-il. « Suivant la configuration, nous pouvons atteindre cet objectif en installant 8 à 16 racks. Avec les systèmes Nvidia, il faut près de 75 baies pour obtenir le même résultat, soit un coût dix fois supérieur à notre approche ».
SambaFlow : interpréter les graphes des modèles ML
Pour instrumenter cette architecture matérielle dite « software defined », la société a développé sa propre pile logicielle nommée SambaFlow, installée sur RHEL ou Ubuntu. Celle-ci intègre les frameworks de machine learning TensorFlow et Pytorch. Il est également possible d’y injecter des modèles existants développés avec ces deux outils sans en modifier le code, assure la startup. D’ailleurs, SambaFlow peut être connecté à des dépôts Hugging Face via API.
En clair, SambaFlow doit abstraire l’architecture sous-jacente du RDU pour les data scientists. Pour cela, la plateforme s’appuie sur la programmation spatiale. Elle extrait, analyse et décompose automatiquement le graphe d’un modèle pour déduire les ressources nécessaires à son entraînement. Plus spécifiquement elle modélise « la manière idéale dont les données devraient transiter à travers une série de calcul ». SambaFlow optimise à la volée les patterns de communication des algorithmes pour qu’ils s’exécutent sur son accélérateur. L’entreprise donne aussi accès au compilateur et à l’optimiseur pour manipuler les kernels et les graphes.
À première vue, une telle offre HPC semble adressée à certains laboratoires de recherche et aux filiales R&D de grands groupes. C’est d’ailleurs le point d’entrée de la startup sur le marché. Son port d’attache demeure l’université de Stanford et elle a commencé par convaincre les laboratoires nationaux américains d’installer ses appliances. Ainsi, le laboratoire d’Argonne et le Lawrence Livermore ont opté pour cette plateforme. Plus récemment, Ascend Clinical, un laboratoire indépendant d’inspection de dialyses a opté pour les baies SambaNova et le modèle d’analyse rénale développé par DeLorean AI.
En matière de vision par ordinateur, SambaNova se spécialise dans le traitement d’images de très haute résolution. « Les équipes d’Argonne et de SambaNova sont capables d’entraîner des réseaux de neurones convolutionnels avec des images d’une résolution supérieure à 50 k x 50k, sans modifier la taille originale des images », assure Marshall Choy. Plus spécifiquement, Argonne a utilisé les appliances SambaNova et son framework Pytorch pour nettoyer les images capturées dans une chambre à projection temporelle remplie d’argon liquide double phase. En clair, il s’agit d’un détecteur de neutrinos semblable à celui du CERN. Auparavant, les chercheurs devaient réduire la résolution des images pour ne pas saturer la VRAM des GPU utilisés.
DataFlow-as-a-Service, l’IA à la demande
La startup ne vend pas seulement ses puces Cardinal SN10, ses baies et sa plateforme logicielle. L’entreprise pousse son concept de DataFlow-as-a-Service. Avec cette solution, les baies DataScale incluant SambaFlow sont infogérées. Les utilisateurs peuvent se connecter par API à des modèles préentraînés de NLP, de NLG, de computer vision et des systèmes de recommandation. Le client paie alors une souscription. L’éditeur promet ainsi de faire gagner 12 à 18 mois sur un projet, le temps de déployer les machines et d’entraîner les modèles. Les algorithmes en question sont connus. Le modèle de NLG est une variante propriétaire de GPT-2 personnalisé pour atteindre le même nombre de paramètres que GPT-3 d’OpenAI, dont la licence d’exploitation est exclusive à Microsoft.
Cette approche a convaincu OTP, une banque hongroise (40 000 employés, 17 millions de clients) qui a décidé de monter un supercalculateur basé sur les baies de SambaNova. Le HPC en question a été déployé en moins de trois mois et doit servir à entraîner un modèle NLG spécifique à la langue hongroise. En général, les algorithmes de traitement du langage sont d’abord développés pour l’anglais, puis convertis dans une autre langue, ce qui peut entraîner divers problèmes de précision et des biais.
En sus de l’analyse de sentiments et la reconnaissance d’entités nommées, la banque compte également développer les usages autour de la prise de décision automatisée. Le projet est soutenu par le gouvernement hongrois, qui compte profiter de ces capacités de calcul pour répondre à d’autres usages et les ouvrir aux universités du pays. Les trois partenaires sont engagés sur plusieurs années.
De son côté, SambaNova décline son offre pour des verticaux spécifiques, en commençant par les services financiers, avec GPT Banking. Le modèle préentraîné que l’entreprise propose doit permettre d’effectuer différentes tâches de traitement de documents et d’enregistrements vocaux (reconnaissance d’entités nommées, production de résumés, classification, traduction, etc.) pour des besoins liés à la gestion des risques, des centres d’appels et des flux omnicanaux propres aux services financiers.
Reste à savoir si la startup arrivera à convaincre plus largement en dehors des cercles scientifiques et universitaires. SambaNova n’est pas le seul à proposer une suite d’outils compatible avec Pytorch et TensorFlow en sus d’un analyseur et d’un compilateur de graphes par-dessus des équipements HPC. Malgré des différences d’architecture évidentes, Cerebras, Habana Gaudi (Intel), Graphcore ou encore Groq proposent à peu de choses près ce type d’offre. SambaNova a pour lui d’aller, semble-t-il, un cran plus loin avec une offre incluant des modèles préentraînés. Attention, car Nvidia développe non seulement un écosystème robuste de partenaires, une plateforme logicielle, mais cherche aussi à bâtir des puces et des systèmes plus adaptés aux projets d’intelligence artificielle.