Erste Schritte mit Cloud TPU

Mit von Google entwickelten spezialisierten ASICs (Application-Specific Integrated Circuits) lassen sich Modelle für maschinelles Lernen (ML) schneller und kostengünstiger trainieren.

Tensor Processing Units (TPUs) sind ASIC-Geräte, die speziell für die rechnerischen Anforderungen von ML-Anwendungen entwickelt wurden. Mit der Cloud TPU-Produktfamilie können Sie typische TPU-Vorteile in einer anwenderfreundlichen, skalierbaren Cloud-Computing-Umgebung nutzen. ML-Forscher, ML-Entwickler, Programmierer und Data Scientists können ihre komplexen ML-Modelle in der Google Cloud ausführen. Die Skalierbarkeit der Cloud TPU reicht von einem TPU-v2-Knoten mit 8 Kernen bis zu einem vollständig bestückten Cloud-TPU-v3-Knoten mit 2048 Kernen, die über 100 Petaflops liefern.

Erste Schritte mit Cloud TPU auf Compute Engine

Hauptmerkmale

ML-Anwendungen beschleunigen Cloud TPU nutzen speziell entwickelte ASIC-Beschleunigerchips von Google, die für Deep-Learning-Berechnungen optimiert wurden.
Anwendungen schnell skalieren Sie beginnen das Prototyping mit einem einzigen kostengünstigen Cloud TPU-Gerät (180 Teraflops) und skalieren ohne Codeänderungen auf immer größere Cloud TPU-Knoten.
ML-Arbeitslasten kosteneffizient managen Cloud TPUs sind sehr preisgünstig erhältlich, sodass Sie die Kosten für das Training und die Ausführung Ihrer ML-Modelle deutlich senken können.
Optimierte Open-Source-Referenzmodelle erleichtern den Einstieg Profitieren Sie von einer ständig wachsenden Anzahl von Open-Source-Referenzmodellen, die von den Google Forschungs- und Entwicklungsteams veröffentlicht, optimiert und kontinuierlich getestet werden, darunter Mask R-CNN, AmoebaNet und viele andere leistungsstarke Modelle.

Funktionsweise

Damit Sie besser beurteilen können, welche Vorteile eine Cloud TPU für ML-Anwendungen bietet, sollten Sie die Funktionsweise von neuronalen Netzen in ML-Lernanwendungen kennen.

Viele Durchbrüche in der künstlichen Intelligenz (KI) der letzten Jahre wurden mit sogenannten neuronalen Deep-Learning-Netzwerken erzielt. Die Funktionsweise dieser Netzwerke ist lose an neurowissenschaftliche Erkenntnisse angelehnt, der Begriff neuronales Netz wird jedoch für eine große Auswahl an mathematischen Strukturen verwendet, die nicht auf biologische Befunde beschränkt sind. Viele gängige neuronale Netze oder Architekturen sind in einer schichtartigen Hierarchie organisiert. Die genauesten und nützlichsten Modelle bestehen in der Regel aus zahlreichen Schichten, daher die Begriffserweiterung deep (tief reichend). Die meisten neuronalen Deep-Learning-Netzwerke akzeptieren Eingabedaten wie Bilder, Audio, Text oder strukturierte Daten, wenden eine Reihe von Transformationen an und erzeugen dann eine Ausgabe, die für Vorhersagen verwendet werden kann.

Betrachten Sie beispielsweise ein einschichtiges neuronales Netz zum Erkennen einer handgeschriebenen Ziffer, wie in der folgenden Abbildung dargestellt:

Abbildung eines neuronalen Netzes zur Ziffernanalyse

In diesem Beispiel besteht das Eingabebild aus einem Raster von 28 x 28 Graustufenpixeln. In einem ersten Schritt wird jedes Bild in eine Folge von 784 numerischen Werten übersetzt, die formal als Vektor mit 784 Dimensionen beschrieben werden. In diesem Beispiel akzeptiert das Ausgabeneuron, das der Ziffer 8 entspricht, die Eingangspixel direkt, multipliziert sie mit einem Satz von Parameterwerten, sogenannten Gewichtungen, und leitet das Ergebnis weiter. Für jede der roten Linien in der Abbildung oben gibt es eine individuelle Gewichtung.

Durch den Abgleich der Gewichtungen mit der erhaltenen Eingabe agiert das Neuron als Ähnlichkeitsfilter, wie unten dargestellt:

Abbildung zur Funktionsweise von Parametern

Obwohl dies ein einfaches Beispiel ist, veranschaulicht es gut das Grundverhalten auch viel komplexerer neuronaler Netze mit mehr Schichten, die viele Zwischentransformationen der empfangenen Eingangsdaten durchführen. In jeder Schicht werden die erhaltenen Eingangsdaten, die möglicherweise durch vorhergehende Schichten stark verändert wurden, mit den Gewichtungen jedes Neurons im Netz abgeglichen. Diese Neuronen geben dann ihre Antworten als Eingabe an die nächste Schicht weiter.

Wie werden die Gewichtungen für jedes Neuronenset berechnet? Das geschieht durch Training. Dabei werden oft sehr große beschriftete Datasets wieder und wieder verarbeitet. Diese Datasets können Millionen oder sogar Milliarden beschrifteter Beispiele enthalten! Das Training eines aktuellen ML-Modells für große Datasets kann sogar auf leistungsfähiger Hardware mehrere Wochen dauern. Google hat TPUs entworfen und entwickelt, um die Produktivität zu steigern, indem massive Rechenaufgaben wie diese in Minuten oder Stunden statt Wochen erledigt werden.

Funktionsweise einer CPU

Im vorherigen Abschnitt wurde der Begriff neuronale Netze erläutert und für welche Art von Berechnungen diese verwendet werden. Damit Sie die Rolle der TPU in diesen Netzen besser verstehen, lohnt sich ein Vergleich mit anderen Arten von Hardware, die für Rechenaufgaben genutzt werden. Erster Halt: CPUs.

Die CPU ist ein Universalprozessor, der auf der Von-Neumann-Architektur basiert. Das bedeutet, dass eine CPU mit Software und Speicher arbeitet:

Abbildung zur Funktionsweise einer CPU

Der größte Vorteil einer CPU ist ihre Flexibilität. Mit der Von-Neumann-Architektur kann jede Art von Software für Millionen verschiedener Anwendungen geladen werden. Sie können mit einer CPU die Textverarbeitung auf einem PC ausführen, Raketentriebwerke steuern, Bankgeschäfte tätigen oder mithilfe eines neuronalen Netzes Bilder klassifizieren.

Weil CPUs so flexibel sind, weiß die Hardware erst dann mit Sicherheit, was als Nächstes berechnet werden soll, wenn sie von der Software die nächste Anweisung erhält. Eine CPU muss die Ergebnisse für jede einzelne Berechnung in den CPU-Registern oder im L1-Cache speichern. Dieser Speicherzugriff ist der wesentliche Nachteil der CPU-Architektur und wird auch Von-Neumann-Engpass genannt. Aufgrund der schieren Größe von Berechnungen in neuronalen Netzen sind diese zukünftigen Schritte vollständig vorhersehbar. Die arithmetisch-logischen Einheiten (Arithmetic Logic Units, ALUs) einer CPU, welche die Multiplikatoren und Summanden enthalten und steuern, können jeweils nur eine Berechnung gleichzeitig ausführen. Das heißt, die CPU muss jedes Mal auf den Speicher zugreifen, was den Gesamtdurchsatz begrenzt und viel Energie verbraucht.

Funktionsweise einer GPU

GPUs nutzen eine einfache Strategie, um den Durchsatz gegenüber CPUs deutlich zu erhöhen; sie kombinieren Tausende ALUs in einem einzigen Prozessor. Eine moderne GPU vereint in einem Prozessor zwischen 2.500 bis 5.000 ALUs. Diese große Anzahl von Prozessoren bedeutet, dass sie Tausende von Multiplikationen und Additionen gleichzeitig ausführen kann.

Abbildung zur Funktionsweise einer GPU

Eine GPU-Architektur eignet sich gut für Anwendungen mit massiver Parallelität, z. B. die Matrixmultiplikation in einem neuronalen Netz. Im Vergleich zu einer CPU liefert eine GPU für eine typische Deep-Learning-Trainingsarbeitslast einen um Größenordnungen höheren Durchsatz. Aus diesem Grund ist die GPU die am weitesten verbreitete Prozessorarchitektur für Deep Learning.

Die GPU ist jedoch immer noch ein Universalprozessor, der Millionen verschiedener Anwendungen und Software unterstützen muss. Das bedeutet, dass GPUs das gleiche Problem haben wie CPUs: den Von-Neumann-Engpass. Für jede einzelne Berechnung in den Tausenden von ALUs muss eine GPU auf Register oder gemeinsam genutzten Speicher zugreifen, um Zwischenberechnungsergebnisse zu lesen und zu speichern. Da die GPU auf ihren Tausenden von ALUs mehr parallele Berechnungen durchführt, benötigt sie anteilig auch mehr Energie für den Speicherzugriff, wodurch ihr Verbrauch bei komplexen Projekten insgesamt stark ansteigt.

Funktionsweise einer TPU

Google hat Cloud TPUs als Matrixprozessoren konzipiert, die auf Arbeitslasten für neuronale Netze spezialisiert sind. TPUs können keine Textverarbeitungsprogramme ausführen, Raketentriebwerke steuern oder Banktransaktionen tätigen. Sie können jedoch mit sehr hoher Geschwindigkeit die umfangreichen Multiplikationen und Additionen in neuronalen Netzen verarbeiten, wobei sie weniger Strom verbrauchen und einen geringeren Platzbedarf haben.

Ein Vorteil, den TPUs gegenüber anderen Geräten haben, ist die erhebliche Reduzierung des Von-Neumann-Engpasses. Da die Hauptaufgabe für diesen Prozessor die Matrixverarbeitung ist, kannten die Hardwareentwickler der TPU jeden Berechnungsschritt, um diese Operation auszuführen. So konnten sie Tausende von Multiplikatoren und Addierern platzieren und direkt miteinander verbinden, um eine große physische Matrix dieser Operatoren zu bilden. Dies wird als systolische Arrayarchitektur bezeichnet. Im Fall von Cloud TPU v2 gibt es zwei systolische Arrays von 128 x 128, die 32.768 ALUs für 16-Bit-Gleitkommawerte in einem einzigen Prozessor vereinen.

Mal sehen, wie ein systolisches Array die Berechnung im neuronalen Netz durchführt. Zuerst lädt die TPU die Parameter aus dem Speicher in die Matrix der Multiplizierer und Addierer.

Abbildung dazu, wie eine TPU Parameter aus dem Speicher lädt

Dann lädt die TPU die Daten aus dem Speicher. Wenn eine Multiplikation ausgeführt wird, wird das Ergebnis an die nächsten Multiplikatoren weitergeleitet, wobei gleichzeitig die Addition erfolgt. Die Ausgabe ist also die Summe aller Multiplikationsergebnisse zwischen Daten und Parametern. Während der gesamten Berechnung und Datenübergabe ist überhaupt kein Speicherzugriff erforderlich.

Abbildung dazu, wie eine TPU Daten aus dem Speicher lädt

Infolgedessen können TPUs bei Berechnungen in neuronalen Netzen einen hohen rechnerischen Durchsatz mit wesentlich geringerem Stromverbrauch und geringerem Platzbedarf erzielen.

Cloud TPU-Voraussetzungen

GCP-Konto einrichten Bevor Sie Cloud TPU-Ressourcen zum Trainieren von Modellen verwenden können, müssen Sie über ein Google Cloud (GCP)-Konto und ein entsprechendes Projekt verfügen.
Cloud TPU APIs aktivieren Zum Trainieren eines Modells müssen Sie die Compute Engine API und die Cloud TPU API aktivieren.
Cloud TPU-Zugriff auf Cloud Storage-Buckets gewähren Mit Cloud Storage-Buckets können Sie Ihre Datasets speichern.
TPU-Dienst auswählen Wählen Sie den Google Cloud-Dienst aus, den Sie zum Starten und Verwalten von Cloud TPUs verwenden möchten. Sie können zwischen Compute Engine, Google Kubernetes Engine oder AI Platform auswählen.
TPU-Typ auswählen Es gibt verschiedene Typen von Cloud TPUs. Wählen Sie den, der Ihnen die beste Kombination aus Leistung und Wirtschaftlichkeit bietet. Mit präemptiven TPUs können Sie Geld sparen. Weitere Informationen finden Sie unter Präemptive TPUs verwenden.
Cloud TPU erstellen und löschen Das Ausführen eines ML-Modells auf Cloud TPUs erfordert eine Compute Engine-VM- und Cloud TPU-Ressource.
Tools konfigurieren Nutzen Sie ctpu, ein leistungsfähiges Befehlszeilentool zur gleichzeitigen Verwaltung von Compute Engine und TPUs. Sie können auch Tools nutzen, die Sie möglicherweise bereits kennen, z. B. TensorBoard.
Modell ausführen Nutzen Sie eine der von uns erstellten Anleitungen, um das ML-Modell auszuwählen, das am besten zu Ihrer Anwendung passt.

Auf der Suche nach anderen ML-Diensten?

Cloud TPU ist einer von vielen ML-Diensten, die in der Google Cloud verfügbar sind. Hier einige andere interessante Dienste:

Video Intelligence API Die Video Intelligence API sorgt dafür, dass Videos such- und auffindbar sind. Dazu werden Metadaten extrahiert, wichtige Begriffe identifiziert und Anmerkungen zum Videoinhalt erstellt. Durch das Aufrufen einer nutzerfreundlichen REST API können Sie jetzt in allen Videodateien Ihres Katalogs nach jedem Moment suchen sowie alle Vorkommen wichtiger Begriffe finden und deren Signifikanz erkennen. Signale werden von Rauschen getrennt, indem das Video Aufnahme für Aufnahme oder Frame für Frame analysiert wird.
Cloud Vision Mit der Cloud Vision API können Sie mit unseren leistungsfähigen vortrainierten API-Modellen Informationen aus Ihren Bildern gewinnen oder benutzerdefinierte Visionsmodelle mit AutoML Vision Beta trainieren. Die API ordnet Bilder schnell Tausenden von Kategorien zu (z. B. "Segelboot" oder "Eiffelturm") und erfasst einzelne Objekte und Gesichter in den Bildern. Außerdem findet und liest sie gedruckte Wörter. Mit AutoML Vision können Sie benutzerdefinierte ML-Modelle mit minimalem ML-Fachwissen erstellen und trainieren, um sie an domainspezifische Geschäftsanforderungen anzupassen.
Speech-to-Text Mit Cloud Speech-to-Text können Entwickler Audioinhalte in Text umwandeln. Dazu kommen in einer nutzerfreundlichen API Modelle neuronaler Netzwerke zum Einsatz. Die API erkennt 120 Sprachen und Sprachvarianten und unterstützt damit Nutzer auf der ganzen Welt. So können Sie zum Beispiel die Sprachsteuerung nutzen, Sprachaufzeichnungen aus Callcentern transkribieren und vieles mehr. Dank der Machine Learning-Technologie von Google können Audioinhalte in Echtzeit oder in aufgezeichneter Form verarbeitet werden.
Sprachausgabe Mit der Sprachausgabe können Entwickler natürlich klingende Sprache mit 32 Stimmen synthetisieren, die in mehreren Sprachen und Sprachvarianten verfügbar sind. Unter Anwendung der bahnbrechenden Forschung von DeepMind in WaveNet und der leistungsstarken neuronalen Netzwerke von Google werden erstklassige Audiodateien produziert. Mit dieser nutzerfreundlichen API können Sie naturgetreue Interaktionen mit Ihren Nutzern in vielen Anwendungen und Geräten erstellen.
Cloud Natural Language API Die Cloud Natural Language API ist in der Lage, mit leistungsstarken Modellen des maschinellen Lernens die Struktur und die Bedeutung von Text sichtbar zu machen. Sie wird als einfach zu nutzende REST API angeboten. Mit AutoML Natural Language Beta lassen sich außerdem ohne umfangreiches Fachwissen ML-Modelle erstellen und trainieren. Mit der Cloud Natural Language API können Sie aus Textdokumenten, Nachrichtenartikeln oder Blogbeiträgen Informationen über Menschen, Orte, Veranstaltungen und vieles mehr extrahieren. Mit ihrer Hilfe können Sie die Stimmungen in Bezug auf die von Ihnen angebotenen Artikel besser verstehen, die in sozialen Medien zum Ausdruck kommen, und die Kundenabsichten analysieren, die in Gesprächen in einem Callcenter oder einer Messaging-App mitgeteilt werden.
Cloud Translation Google Cloud Translation bietet eine einfache programmatische Benutzeroberfläche zur Übersetzung eines beliebigen Strings in eine unterstützte Sprache. Da die Cloud Translation API sehr schnell arbeitet, können Websites und Anwendungen problemlos mit ihr verknüpft werden. Das Ergebnis sind schnelle, dynamische Übersetzungen der Ausgangstexte von der Quell- in die Zielsprache, z. B. vom Englischen ins Deutsche.) Neben der API können Sie auch AutoML Translation Beta verwenden, um qualitativ hochwertige Modelle, die für Ihr Projekt oder Ihre Domain spezifisch sind, schnell und einfach zu erstellen und zu trainieren.

Weitere Optionen finden Sie auf der Seite Cloud AI-Produkte.

Weitere Informationen

Möchten Sie mehr über Cloud TPU erfahren? Nachfolgend eine Auswahl interessanter Ressourcen.

Kurzanleitung für Compute Engine Nehmen Sie sich ein paar Minuten Zeit, um zu erfahren, wie Sie Cloud TPU mit Google Cloud einrichten und verwenden.
TPU Colabs Kostenlose Colabs zum Experimentieren mit Cloud TPUs
Cloud TPU-Anleitungen Cloud TPUs mit verschiedenen ML-Modellen testen
Preise Informationen dazu, wie Sie mit Cloud TPU kostengünstig ML-Arbeitslasten verarbeiten können
Vertrieb kontaktieren Möchten Sie eine bestimmte Implementierung oder Anwendung besprechen? Wenden Sie sich an unseren Vertrieb.