Guide du débutant sur Cloud TPU

Entraînez des modèles de machine learning (ML) rapidement et à moindre coût à l'aide de circuits intégrés spécifiques aux applications (ASIC) conçus par Google.

Les TPU (Tensor Processing Units) sont des appareils ASIC spécialement conçus pour répondre aux exigences de calcul des applications de machine learning. La famille de produits Cloud TPU met les avantages des TPU à la disposition de tous les chercheurs en ML, ingénieurs en ML, développeurs et data scientists qui exploitent des modèles de ML de pointe sur Google Cloud via des ressources informatiques cloud évolutives et faciles à utiliser. En offrant la possibilité d'évoluer d'un nœud TPU v2 complet doté de huit cœurs à un nœud TPU v3 complet comprenant 2 048 cœurs, Cloud TPU peut offrir des performances dépassant les 100 pétaflops.

Premiers pas avec Cloud TPU sur Compute Engine

Capacités clés

Accélérer les applications de machine learning Les Cloud TPU sont construits autour de puces ASIC personnalisées développées par Google et conçues spécialement pour accélérer les calculs de deep learning.
Mettre l'application à l'échelle rapidement Commencez le prototypage à moindre coût avec un seul appareil Cloud TPU (180 téraflops), puis effectuez une mise à l'échelle sans modifier le code sur des nœuds Cloud TPU plus grands.
Gérer efficacement vos charges de travail de machine learning Cloud TPU offre des tarifs pouvant vous permettant de réduire de manière significative les coûts d'entraînement et d'exécution de vos modèles de machine learning.
Commencer avec des modèles de référence Open Source bien optimisés. Profitez d'un ensemble de modèles de référence Open Source en constante évolution que les équipes de recherche et d'ingénierie de Google publient, optimisent et testent en permanence, y compris Mask R-CNN, AmoebaNet et de nombreux autres modèles de pointe.

Fonctionnement

Pour mieux comprendre comment Cloud TPU peut vous être profitable, à vous et à vos applications de machine learning, il est utile d'examiner le fonctionnement des réseaux de neurones dans les applications de machine learning.

La plupart des innovations les plus impressionnantes en matière d'intelligence artificielle (IA) de ces dernières années ont été réalisées avec ce que l'on appelle des réseaux de neurones profonds. Le comportement de ces réseaux s'inspire vaguement des découvertes de la neuroscience, mais le terme réseau de neurones est maintenant appliqué à une vaste classe de structures mathématiques qui ne sont pas contraintes de correspondre à des découvertes biologiques. La plupart des structures de réseau de neurones, ou architectures, les plus populaires sont organisées en une hiérarchie de couches. Les modèles les plus précis et les plus utiles ont tendance à contenir de nombreuses couches ; c'est pourquoi ils sont définis par le terme profond. La plupart de ces réseaux de neurones profonds acceptent les données d'entrée, telles que les images, l'audio, le texte ou les données structurées, exécutent une série de transformations, puis produisent une sortie qui peut être utilisée pour effectuer des prédictions.

Prenons l'exemple d'un réseau de neurones à une seule couche afin de reconnaître une image numérique manuscrite, comme illustré dans le schéma suivant :

Une représentation d'un réseau de neurones pour des chiffres

Dans cet exemple, l'image d'entrée est une grille de 28 x 28 pixels en niveaux de gris. Dans un premier temps, chaque image est traduite en une chaîne de 784 valeurs numériques, décrites de manière plus formelle comme vecteur de 784 dimensions. Dans cet exemple, le neurone de sortie correspondant au chiffre 8 accepte directement les pixels d'entrée, les multiplie par un ensemble de valeurs de paramètres appelé pondérations et transmet le résultat. Il existe une pondération individuelle pour chacune des lignes rouges dans le schéma ci-dessus.

En faisant correspondre ses pondérations à l'entrée qu'il reçoit, le neurone agit comme un filtre de similarité, comme illustré ici :

Une illustration du fonctionnement des paramètres

Bien qu'il s'agisse d'un exemple élémentaire, il illustre le comportement fondamental de réseaux de neurones beaucoup plus complexes contenant de nombreuses couches, qui effectuent de nombreuses transformations intermédiaires des données d'entrée qu'ils reçoivent. À chaque couche, les données d'entrée entrantes, qui peuvent avoir été fortement modifiées par les couches précédentes, sont comparées aux pondérations de chaque neurone du réseau. Ces neurones transmettent ensuite leurs réponses comme données d'entrée à la couche suivante.

Comment ces pondérations sont-elles calculées pour chaque ensemble de neurones ? Cela passe par un processus d'entraînement. Ce processus implique souvent le traitement répétitif de très grands ensembles de données étiquetés. Ces ensembles de données peuvent contenir des millions, voire des milliards d'exemples étiquetés ! L'entraînement de modèles de ML de pointe sur de grands ensembles de données peut prendre des semaines, même sur un matériel puissant. Les TPU conçus et développés par Google ont pour objectif d'accroître la productivité en permettant de réaliser d'énormes charges de travail de calcul, comme celles-ci, en quelques minutes ou quelques heures au lieu de plusieurs semaines.

Fonctionnement d'un processeur

Le paragraphe précédent a proposé une définition pratique des réseaux de neurones et du type de calculs qu'ils impliquent. Pour comprendre le rôle du TPU dans ces réseaux, il est utile de comprendre comment les autres périphériques matériels répondent à ces défis. Pour commencer, examinons le processeur.

Le processeur est un processeur polyvalent basé sur l'architecture de von Neumann. Cela signifie qu'un processeur fonctionne avec un logiciel et une mémoire, comme illustré ci-dessous :

Une illustration du fonctionnement d'un processeur

Le principal avantage du processeur est sa flexibilité. Grâce à son architecture de von Neumann, vous pouvez charger n'importe quel type de logiciel, et ce, pour des millions d'applications différentes. Vous pouvez utiliser un processeur pour faire du traitement de texte sur PC, contrôler des moteurs-fusées, exécuter des transactions bancaires ou encore classer des images sur un réseau de neurones.

Mais, en raison de la flexibilité du processeur, le matériel ne connaît pas toujours le prochain calcul avant de lire la prochaine instruction du logiciel. Pour chaque calcul, un processeur doit stocker les résultats des calculs dans les registres du processeur ou dans le cache L1. Cet accès à la mémoire devient l'inconvénient de l'architecture du processeur appelé goulot d'étranglement de von Neumann. L'échelle des calculs de réseau de neurones est énorme, et cela signifie que ces futures étapes sont entièrement prévisibles. Les unités logiques arithmétiques (ALU) de chaque processeur, qui sont les composants qui contiennent et contrôlent les multiplicateurs et les additionneurs, ne peuvent exécuter qu'un seul calcul à la fois. À chaque fois, le processeur doit accéder à la mémoire, ce qui limite le débit total et consomme une énergie importante.

Fonctionnement d'un GPU

Pour obtenir un débit supérieur à celui d'un processeur, un GPU utilise une stratégie simple : employer des milliers d'ALU dans un seul processeur. En fait, le GPU moderne contient généralement entre 2 500 et 5 000 ALU dans un seul processeur. Grâce à ce grand nombre de processeurs, vous pouvez exécuter des milliers de multiplications et d'additions simultanément.

Une illustration du fonctionnement d'un GPU

Cette architecture GPU fonctionne bien sur les applications à parallélisme massif, comme la multiplication matricielle dans un réseau de neurones. En réalité, avec une charge de travail d'entraînement classique pour le deep learning, un GPU peut fournir une commande beaucoup plus importante qu'un processeur. C'est pourquoi le GPU est le processeur le plus utilisé dans l'architecture du deep learning.

Mais le GPU reste un processeur polyvalent qui doit prendre en charge des millions d'applications et de logiciels différents. Cela signifie que les GPU ont le même problème que les processeurs : le goulot d'étranglement de von Neumann. Pour chaque calcul dans les milliers d'ALU, un GPU doit accéder aux registres ou à la mémoire partagée pour lire et stocker les résultats du calcul intermédiaire. Étant donné que le GPU effectue davantage de calculs en parallèle sur ses milliers d'ALU, il dépense proportionnellement davantage d'énergie pour accéder à la mémoire, ce qui augmente l'encombrement du GPU pour les câblages complexes.

Fonctionnement d'un TPU

Cloud TPU a été conçu par Google comme un processeur matriciel spécialisé dans les charges de travail des réseaux de neurones. Les TPU ne peuvent pas faire de traitement de texte, contrôler des moteurs de fusée ou exécuter des transactions bancaires, mais ils peuvent gérer les multiplications et additions massives des réseaux de neurones à des vitesses très rapides tout en consommant beaucoup moins d'énergie, et dans un encombrement physique réduit.

L'un des avantages des TPU par rapport aux autres appareils est une réduction majeure du goulot d'étranglement de von Neumann. Étant donné que la tâche de ce processeur est le traitement matriciel, les concepteurs matériels du TPU connaissaient chaque étape de calcul permettant d'effectuer cette opération. Ils ont donc pu placer des milliers de multiplicateurs et d'additionneurs et les connecter directement les uns aux autres pour former une grande matrice physique de ces opérateurs. C'est ce qu'on appelle une architecture de tableau systolique. Dans le cas de Cloud TPU v2, il existe deux tableaux systoliques de 128 X 128, regroupant 32 768 ALU pour 16 bits dans un seul processeur.

Voyons comment un tableau systolique peut exécuter les calculs d'un réseau de neurones. Au début, le TPU charge les paramètres depuis la mémoire vers la matrice des multiplicateurs et des additionneurs.

Une illustration de la façon dont un TPU charge des paramètres depuis la mémoire

Ensuite, le TPU charge les données de la mémoire. Au fur et à mesure des multiplications, le résultat est transmis aux multiplicateurs suivants tout en faisant la somme. La sortie est donc la somme de tous les résultats de multiplication entre les données et les paramètres. Tout au long du processus de calculs massifs et du passage des données, aucun accès à la mémoire n'est nécessaire.

Une illustration de la façon dont un TPU charge des données depuis la mémoire

Par conséquent, les TPU peuvent atteindre un débit de calcul élevé sur les calculs de réseau de neurones avec une consommation bien plus faible et un encombrement réduit.

Prérequis Cloud TPU

Configurer un compte GCP Pour pouvoir utiliser des ressources Cloud TPU pour entraîner des modèles, vous devez disposer d'un compte et d'un projet Google Cloud (GCP).
Activer des API Cloud TPU Pour entraîner un modèle, vous devez activer les API Compute Engine et Cloud TPU.
Accorder à Cloud TPU l'accès à vos buckets Cloud Storage Les buckets Cloud Storage vous permettent de stocker vos ensembles de données.
Choisir un service TPU Sélectionnez le service Google Cloud que vous souhaitez utiliser pour lancer et gérer les Cloud TPU. Vous pouvez choisir entre Compute Engine, Google Kubernetes Engine ou AI Platform.
Choisir un type de TPU Il existe plusieurs types de Cloud TPU. Choisissez celui qui offre la meilleure combinaison de puissance et de rentabilité. Vous pouvez réaliser des économies en utilisant des TPU préemptifs. Pour en savoir plus, consultez la page Utiliser des TPU préemptifs.
Créer et supprimer des Cloud TPU L'exécution d'un modèle de machine learning (ML) sur Cloud TPU nécessite une VM Compute Engine et des ressources Cloud TPU.
Exécuter votre modèle Utilisez l'un de nos nombreux tutoriels pour sélectionner le modèle de machine learning le mieux adapté à votre application.
Analyser votre modèle Utilisez TensorBoard ou d'autres outils pour visualiser votre modèle et suivre les métriques clés au cours du processus d'entraînement du modèle, telles que le taux d'apprentissage, la perte et la justesse.

Vous recherchez d'autres services de machine learning ?

Cloud TPU est l'un des nombreux services de machine learning disponibles dans Google Cloud. Parmi les autres ressources qui pourraient vous être utiles, vous trouverez :

API Video Intelligence L'API Video Intelligence permet d'analyser des vidéos pour y trouver des informations en extrayant des métadonnées, en identifiant des mots-clés et en annotant le contenu des vidéos. Vous pouvez désormais appeler une API REST conviviale pour rechercher n'importe quel passage de n'importe quel fichier vidéo de votre catalogue, et trouver chaque occurrence des mots-clés recherchés, ainsi que leur signification. Vous pouvez également séparer le signal du bruit en récupérant les informations pertinentes par vidéo, plan ou image.
Cloud Vision Cloud Vision vous permet de tirer des informations de vos images grâce à nos puissants modèles d'API pré-entraînés ou d'entraîner facilement des modèles de reconnaissance visuelle personnalisés avec AutoML Vision (version bêta). L'API classe rapidement les images dans des milliers de catégories (par exemple "voilier" ou "Tour Eiffel"), détecte les objets et les visages dans les images, et reconnaît les mots en caractères d'imprimerie contenus dans les images. Avec AutoML Vision, vous pouvez créer et entraîner des modèles de machine learning personnalisés pour répondre aux besoins spécifiques de votre entreprise, même sans expérience approfondie du ML.
Speech-to-Text Speech-to-Text permet aux développeurs de convertir le son en texte en appliquant des modèles de réseau de neurones via une API facile à utiliser. L'API reconnaît 120 langues et variantes pour être compatible avec votre base mondiale d'utilisateurs. Vous pouvez activer la commande vocale, transcrire des contenus audio provenant de centres d'appels et bien plus. L'outil s'appuie également sur la technologie de machine learning de Google pour traiter des flux en temps réel et des fichiers audio préenregistrés.
Text-to-Speech Text-to-Speech permet aux développeurs de synthétiser des discours naturels à l'aide de 32 voix différentes, dans plusieurs langues et variantes. L'outil applique les avancées révolutionnaires de DeepMind aux réseaux de neurones de Google et WaveNet afin d'offrir une excellente fidélité audio. Cette API facile à utiliser permet de créer des interactions réalistes avec vos utilisateurs dans de nombreuses applications et sur de nombreux appareils.
API Cloud Natural Language L'API Cloud Natural Language révèle la structure et la signification du texte en proposant de puissants modèles de machine learning dans une API REST facile à utiliser. De plus, grâce à la version bêta d'AutoML Natural Language, vous pouvez créer et entraîner facilement des modèles de ML, même sans connaissances approfondies dans ce domaine. Vous pouvez utiliser l'API Cloud Natural Language pour extraire des informations sur des personnes, des lieux, des événements, etc., dans des documents texte, articles de presse ou articles de blog. L'API permet également d'apprécier le sentiment général lié à un produit sur les médias sociaux, ou d'analyser l'intention qui se dégage des conversations avec les clients, que ce soit dans un centre d'appels ou une application de messagerie.
Cloud Translation Cloud Translation fournit une interface de programmation simple permettant de traduire une chaîne arbitraire dans n'importe quelle langue compatible. L'API Cloud Translation est extrêmement réactive. Intégrée à un site Web ou à une application, elle permet d'offrir des traductions instantanées d'une langue à une autre (par exemple, du français vers anglais). En complément de l'API, vous pouvez utiliser AutoML Translation Bêta pour créer et entraîner rapidement et facilement des modèles de haute qualité, spécifiques à votre projet ou votre secteur.

Pour davantage d'options, consultez la page Produits Cloud AI.

Et ensuite ?

Vous souhaitez en savoir plus sur Cloud TPU ? Les ressources suivantes peuvent vous y aider.

Démarrage rapide avec Compute Engine Prenez quelques minutes pour apprendre à configurer et utiliser Cloud TPU avec Google Cloud.
Colabs TPU Expérimentez Cloud TPU à l'aide de divers Colabs gratuits.
Tutoriels Cloud TPU Testez Cloud TPU à l'aide de divers modèles de ML.
Tarif Découvrez comment Cloud TPU peut traiter vos charges de travail de machine learning de manière rentable.
Contacter le service commercial Vous souhaitez discuter d'une mise en œuvre ou d'une application spécifique ? Contactez notre service commercial.