Graphcore a annoncé ce début de mois rejoindre le programme de partenariat de Hugging Face centré notamment sur les modèles optimisés et les intégrations logicielles. Cette collaboration permettra aux développeurs de déployer, à l’échelle de production et sur des IPU, des modèles basés sur des transformeurs.
Le secteur de l’intelligence artificielle (IA) s’est vu refaçonné avec l’arrivée des transformeurs. Des modèles tels que BERT sont employés dans le traitement automatique du langage naturel, l’extraction de caractéristiques, la génération de textes, l’analyse des sentiments, la traduction et dans bien d’autres domaines. Cependant la mise en production de ces modèles massifs et leur exécution rapide à grande échelle constituent un défi de taille.
C’est dans ce cadre que la startup Hugging Face a lancé un nouveau programme de partenariat. Ce dernier est axé, en particulier, sur les modèles optimisés et les intégrations logicielles, et Graphcore en est l’un des membres fondateurs. Du fait de cette collaboration, les développeurs exploitant des systèmes Graphcore pourront déployer, sur une plus grande échelle de production et sur un IPU, des modèles basés sur des transformeurs avoir avoir à procéder à un codage complexe.
Optimiser les transformeurs pour la production
Hugging Face héberge déjà des centaines de transformeurs, parmi lesquels CamemBERT, en langue française, ou ViT, qui applique les résultats obtenus avec le TALN à la vision par ordinateur. La bibliothèque de transformeurs est téléchargée en moyenne deux millions de fois chaque mois, et la demande est en augmentation.
Avec une communauté de plus de 50 000 développeurs, Hugging Face a connu une adoption massive, qui plus est pour un projet open source. Par le biais de son programme de partenariat, Hugging Face permet de profiter d’un kit de transformeurs de haute qualité, combiné à un matériel très évolué en matière d’IA. À l’aide d’Optimum, un nouvel ensemble d’outils open source qui inclut une bibliothèque, les développeurs peuvent accéder à des modèles optimisés et certifiés par Hugging Face.
Ces derniers sont le fruit d’une collaboration entre Graphcore et Hugging Face : les premiers modèles optimisés pour les IPU feront leur apparition au sein d’Optimum d’ici la fin 2021. À terme, ces modèles engloberont aussi bien des applications dédiées à la vision et à la parole qu’à la traduction et à la génération de textes, pour ne citer que ces exemples. Comme l’indique Clément Delangue, PDG de Hugging Face,
“Les développeurs souhaitent tous pouvoir exploiter le matériel le plus récent et le plus performant, comme l’IPU de Graphcore. Cependant, la question est à chaque fois de savoir s’il sera nécessaire de maîtriser un nouveau code ou de nouveaux processus. Avec Optimum et le programme de partenariat de Hugging Face, elle ne se pose pas. On parle essentiellement de plug and play”.
Qu’est-ce qu’une « Intelligence Processing Unit » ?
Une « Intelligence Processing Unit », ou IPU, est un processeur que l’on retrouve sur les systèmes de calcul IPU-POD pour datacenter de Graphcore. Ce nouveau type de processeur a été spécialement conçu afin de répondre aux besoins spécifiques et uniques requis pour l’IA et l’apprentissage automatique. Il se caractérise, entre autres, par un parallélisme granulaire, une arithmétique à simple précision et la prise en charge de la sparsité.
L’architecture des IPU de Graphcore diffère de l’architecture SIMD/SIMT des GPU. Il s’agit en effet d’une architecture MIMD à fort parallélisme, avec une mémoire sur puce à bande passante extrêmement élevée. Une telle conception est garante de performances d’exception et d’une efficacité inégalée, qu’il soit question des modèles les plus populaires d’aujourd’hui, comme BERT et EfficientNet, ou d’applications d’IA nouvelle génération. L’aspect logiciel joue un rôle majeur. Poplar, le kit SDK de Graphcore, a été élaboré conjointement au processeur. Il s’intègre désormais totalement aux cadres d’apprentissage automatique standard, comme PyTorch et TensorFlow, ainsi qu’à des outils d’orchestration et de déploiement tels que Docker et Kubernetes.
Poplar étant compatible avec ces systèmes tiers, largement répandus, les développeurs peuvent sans difficulté transposer des modèles provenant d’autres plateformes de calcul et, ainsi, bénéficier pleinement des fonctionnalités d’IA avancées de l’IPU.