Beschleunigung des groß angelegten neuronalen Netzwerktrainings auf CPUs mit ThirdAI und AWS Graviton | Amazon Web Services

Beschleunigung des groß angelegten neuronalen Netzwerktrainings auf CPUs mit ThirdAI und AWS Graviton | Amazon Web Services

Dieser Gastbeitrag wurde von Vihan Lakshman, Tharun Medini und Anshumali Shrivastava von ThirdAI verfasst.

Deep Learning im großen Maßstab hat in jüngster Zeit in einer Vielzahl von Bereichen zu revolutionären Fortschritten geführt. Obwohl dieser erstaunliche Fortschritt in der künstlichen Intelligenz nach wie vor bemerkenswert ist, haben sich die finanziellen Kosten und der Energieverbrauch, die für das Training dieser Modelle erforderlich sind, aufgrund des Bedarfs an spezieller Hardware wie GPUs als kritischer Engpass erwiesen. Traditionell waren für das Training selbst neuronaler Modelle bescheidener Größe kostspielige Hardwarebeschleuniger erforderlich, was die Anzahl der Organisationen begrenzt, die über die finanziellen Mittel verfügen, um diese Technologie in vollem Umfang zu nutzen.

ThirdAI Corp. wurde 2021 gegründet und ist ein Startup, das sich der Demokratisierung künstlicher Intelligenztechnologien durch Algorithmen- und Softwareinnovationen verschrieben hat, die die Ökonomie des Deep Learning grundlegend verändern. Wir haben eine spärliche Deep-Learning-Engine entwickelt, die als bekannt ist BOLT, das speziell für das Training und die Bereitstellung von Modellen auf Standard-CPU-Hardware im Gegensatz zu kostspieligen und energieintensiven Beschleunigern wie GPUs entwickelt wurde. Viele unserer Kunden haben berichteten von großer Zufriedenheit mit der Fähigkeit von ThirdAI, Deep-Learning-Modelle für kritische Geschäftsprobleme auf einer kostengünstigen CPU-Infrastruktur zu trainieren und bereitzustellen.

In diesem Beitrag untersuchen wir das Potenzial des AWS Graviton3-Prozessors zur Beschleunigung des neuronalen Netzwerktrainings für die einzigartige CPU-basierte Deep-Learning-Engine von ThirdAI.

Die Vorteile von Hochleistungs-CPUs

Bei ThirdAI erzielen wir diese Durchbrüche beim effizienten Training neuronaler Netzwerke auf CPUs durch proprietäre dynamische Sparse-Algorithmen, die nur eine Teilmenge von Neuronen für eine bestimmte Eingabe aktivieren (siehe folgende Abbildung), wodurch die Notwendigkeit vollständig dichter Berechnungen umgangen wird. Im Gegensatz zu anderen Ansätzen zum spärlichen Training neuronaler Netze verwendet ThirdAI lokalitätssensitives Hashing um Neuronen für eine bestimmte Eingabe dynamisch auszuwählen, wie in den fetten Linien unten gezeigt. In bestimmten Fällen haben wir sogar beobachtet, dass unsere spärliche CPU-basierte Modelle Trainieren Sie schneller als die vergleichbare dichte Architektur auf GPUs.

Dichte neuronale Architektur mit fetten Linien, die zeigen, welche Neuronen ausgewählt sind

Angesichts der Tatsache, dass viele unserer Zielkunden in der Cloud arbeiten – und die meisten von ihnen nutzen AWS – waren wir gespannt darauf, den AWS Graviton3-Prozessor auszuprobieren, um zu sehen, ob sich die beeindruckenden Preis-Leistungs-Verbesserungen der Siliziuminnovation von Amazon auf unsere einzigartige Arbeitslast übertragen lassen von spärlichem Training neuronaler Netze und damit weitere Einsparungen für Kunden. Obwohl sowohl die Forschungsgemeinschaft als auch das AWS Graviton-Team aufregende Fortschritte bei der Beschleunigung erzielt haben Inferenz neuronaler Netzwerke Bei CPU-Instanzen sind wir bei ThirdAI unseres Wissens die ersten, die sich ernsthaft damit befassen, wie man neuronale Modelle effizient auf CPUs trainiert.

Wie unsere Ergebnisse zeigen, beobachteten wir bei mehreren repräsentativen Modellierungs-Workloads eine deutliche Trainingsbeschleunigung mit AWS Graviton3 gegenüber den vergleichbaren Intel- und NVIDIA-Instanzen.

Instanztypen

Für unsere Bewertung haben wir zwei vergleichbare AWS-CPU-Instanzen berücksichtigt: eine c6i.8xlarge-Maschine mit Intels Ice-Lake-Prozessor und eine c7g.8xlarge-Maschine mit AWS Graviton3. Die folgende Tabelle fasst die Details jeder Instanz zusammen.

Beispiel vCPU RAM (GB) Prozessor On-Demand-Preis (us-east-1)
c7g.8xgroß 32 64 AWS Graviton3 $ 1.1562 / hr
c6i.8xgroß 32 64 Intel Ice Lake $ 1.36 / hr
g5g.8xlarge (GPU) 32 64 mit 16 GB GPU-Speicher AWS Graviton2-Prozessoren mit 1 NVIDIA T4G-GPU $ 1.3720 / hr

Bewertung 1: Extreme Klassifizierung

Für unsere erste Bewertung konzentrieren wir uns auf das Problem der extremen Multi-Label-Klassifizierung (XMC), einem immer beliebter werdenden Paradigma des maschinellen Lernens (ML) mit einer Reihe praktischer Anwendungen in der Suche und in Empfehlungen (einschließlich bei Amazon). Bei unserer Bewertung orientieren wir uns an der Öffentlichkeit Amazon-670K-Produktempfehlungsaufgabe, das bei gegebenem Eingabeprodukt ähnliche Produkte aus einer Sammlung von über 670,000 Artikeln identifiziert.

In diesem Experiment vergleichen wir die BOLT-Engine von ThirdAI mit TensorFlow 2.11 und PyTorch 2.0 auf den oben genannten Hardware-Optionen: Intel Ice Lake, AWS Graviton3 und eine NVIDIA T4G-GPU. Für unsere Experimente zu Intel und AWS Graviton verwenden wir das AWS Deep Learning AMI (Ubuntu 18.04) Version 59.0. Für unsere GPU-Bewertung verwenden wir die NVIDIA GPU-optimiertes Arm64 AMI, verfügbar über den AWS Marketplace. Für diese Auswertung nutzen wir die SLIDE-Modellarchitektur, das sowohl eine wettbewerbsfähige Leistung bei dieser extremen Klassifizierungsaufgabe als auch eine starke Trainingsleistung auf CPUs erzielt. Für unsere TensorFlow- und PyTorch-Vergleiche implementieren wir die analoge Version der SLIDE Multi-Layer Perceptron (MLP)-Architektur mit dichten Matrixmultiplikationen. Wir trainieren jedes Modell für fünf Epochen (vollständige Durchläufe durch den Trainingsdatensatz) mit einer festen Stapelgröße von 256 und einer Lernrate von 0.001. Wir haben festgestellt, dass alle Modelle die gleiche Testgenauigkeit von 33.6 % erreichten.

Das folgende Diagramm vergleicht die Trainingszeit von ThirdAIs BOLT mit TensorFlow 2.11 und PyTorch 2.0 auf dem Amazon670k-Extreme-Klassifizierungs-Benchmark. Alle Modelle erreichen die gleiche Prüfgenauigkeit. Wir stellen fest, dass AWS Graviton3 die Leistung von BOLT sofort und ohne erforderliche Anpassungen erheblich beschleunigt – um etwa 40 %. Der BOLT von ThirdAI auf AWS Graviton3 erreicht zudem ein deutlich schnelleres Training als die auf der GPU trainierten TensorFlow- oder PyTorch-Modelle. Beachten Sie, dass es beim NVIDIA GPU-Benchmark kein ThirdAI-Ergebnis gibt, da BOLT für die Ausführung auf CPUs konzipiert ist. Aufgrund der unerschwinglich langen Trainingszeit schließen wir keine TensorFlow- und PyTorch-CPU-Benchmarks ein.

Amazon 670k Trainingszeit Balkendiagramm zum Vergleich der Instanzen c6i.8xlarge und c7g.8xlarge

Die folgende Tabelle fasst die Trainingszeit und Testgenauigkeit für jeden Prozessor/spezialisierten Prozessor (GPU) zusammen.

Prozessor Motor Trainingszeit(en) Testgenauigkeit
Intel Ice Lake (c6i.8xlarge) BOLT 1470 33.6
AWS Graviton3 (c7g.8xlarge) BOLT 935 33.6
NVIDIA T4G (g5g.8xlarge) TensorFlow 7550 33.6
NVIDIA T4G (g5g.8xlarge) PyTorch 5130 33.6

Auswertung 2: Yelp Polarity-Sentiment-Analyse

Für unsere zweite Bewertung konzentrieren wir uns auf das Populäre Yelp Polarität Sentiment-Analyse-Benchmark, bei dem eine Bewertung als positiv oder negativ klassifiziert wird. Für diese Bewertung vergleichen wir ThirdAIs Universelle Tiefentransformatoren (UDT) Modell gegen ein fein abgestimmtes DestillierBERT Netzwerk, ein komprimiertes vorab trainiertes Sprachmodell, das nahezu modernste Leistung mit reduzierter Inferenzlatenz erreicht. Da die Feinabstimmung von DistilBERT-Modellen auf einer CPU unerschwinglich lange dauern würde (mindestens mehrere Tage), vergleichen wir die CPU-basierten Modelle von ThirdAI mit DistilBERT, das auf einer GPU feinabgestimmt wurde. Wir trainieren alle Modelle mit einer Stapelgröße von 256 für einen einzigen Datendurchlauf (eine Epoche). Wir stellen fest, dass wir mit BOLT mit zusätzlichen Durchgängen durch die Daten eine etwas höhere Genauigkeit erreichen können, beschränken uns in dieser Bewertung jedoch aus Konsistenzgründen auf einen einzigen Durchlauf.

Wie in der folgenden Abbildung dargestellt, beschleunigt AWS Graviton3 das UDT-Modelltraining von ThirdAI noch einmal erheblich. Darüber hinaus ist UDT in der Lage, mit einem Bruchteil der Trainingszeit und ohne die Notwendigkeit einer GPU eine vergleichbare Testgenauigkeit wie DistilBERT zu erreichen. Wir stellen fest, dass es auch kürzlich Arbeiten gegeben hat Optimierung der Feinabstimmung von Yelp Polarity auf CPUs. Unsere Modelle erzielen jedoch immer noch größere Effizienzgewinne und vermeiden die Kosten für das Vortraining, das erheblich ist und den Einsatz von Hardwarebeschleunigern wie GPUs erfordert.

Trainingszeit auf Yelp Polarity C7g vs c6i

Die folgende Tabelle fasst die Trainingszeit, Testgenauigkeit und Inferenzlatenz zusammen.

Prozessor Motor Modell Trainingszeit(en) Testgenauigkeit Inferenzlatenz (ms)
Intel Icelake (c6i.8xlarge) BOLT UDT 47 93.2 <1
Graviton3 (c7g.8xlarge) BOLT UDT 29 92.9 <1
T4G-GPU (g5g.8xlarge) TensorFlow DestillierBERT 4200 93.3 8.7
T4G-GPU (g5g.8xlarge) PyTorch DestillierBERT 3780 93.4 8.3

Auswertung 3: Mehrklassen-Textklassifizierung (DBPedia)

Für unsere abschließende Bewertung konzentrieren wir uns auf das Problem der Mehrklassen-Textklassifizierung, bei der einem bestimmten Eingabetext aus einer Menge von mehr als zwei Ausgabeklassen eine Bezeichnung zugewiesen wird. Wir konzentrieren uns auf die DBPedia Benchmark, der aus 14 möglichen Ausgabeklassen besteht. Auch hier sehen wir, dass AWS Graviton3 die UDT-Leistung gegenüber der vergleichbaren Intel-Instanz um etwa 40 % beschleunigt. Wir sehen auch, dass BOLT vergleichbare Ergebnisse mit dem transformatorbasierten DistilBERT-Modell erzielt, das auf einer GPU feinabgestimmt wurde, und dabei eine Latenz von weniger als einer Millisekunde erreicht.

ThirdAI BOLT-Trainingszeit auf c7g vs. c6i

Die folgende Tabelle fasst die Trainingszeit, Testgenauigkeit und Inferenzlatenz zusammen.

Prozessor Motor Modell Trainingszeit(en) Testgenauigkeit Inferenzlatenz (ms)
Intel Icelake (c6i.8xlarge) BOLT UDT 23 98.23 <1
Graviton3 (c7g.8xlarge) BOLT UDT 14 98.10 <1
T4G-GPU (g5g.8xlarge) TensorFlow DestillierBERT 4320 99.23 8.6
T4G-GPU (g5g.8xlarge) PyTorch DestillierBERT 3480 99.29 8

Beginnen Sie mit ThirdAI auf AWS Graviton

Wir haben unsere BOLT-Software so konzipiert, dass sie mit allen wichtigen CPU-Architekturen kompatibel ist, einschließlich AWS Graviton3. Tatsächlich mussten wir keine Anpassungen an unserem Code vornehmen, um ihn auf AWS Graviton3 auszuführen. Daher können Sie ThirdAI ohne zusätzlichen Aufwand für das Modelltraining und die Bereitstellung auf AWS Graviton3 verwenden. Darüber hinaus, wie in unserem jüngsten ausführlich beschrieben Forschungs-Whitepaperhaben wir eine Reihe neuartiger mathematischer Techniken entwickelt, um die mit unseren spärlichen Modellen verbundenen speziellen Hyperparameter automatisch abzustimmen, sodass unsere Modelle sofort nach dem Auspacken gut funktionieren.

Wir stellen außerdem fest, dass unsere Modelle vor allem für Such-, Empfehlungs- und Verarbeitungsaufgaben in natürlicher Sprache gut funktionieren, die typischerweise große, hochdimensionale Ausgaberäume und eine extrem niedrige Inferenzlatenz erfordern. Wir arbeiten aktiv daran, unsere Methoden auf weitere Bereiche wie Computer Vision auszudehnen. Beachten Sie jedoch, dass sich unsere Effizienzverbesserungen derzeit nicht auf alle ML-Bereiche übertragen lassen.

Zusammenfassung

In diesem Beitrag haben wir das Potenzial des AWS Graviton3-Prozessors untersucht, das Training neuronaler Netzwerke für die einzigartige CPU-basierte Deep-Learning-Engine von ThirdAI zu beschleunigen. Unsere Benchmarks zu Suche, Textklassifizierung und Empfehlungsbenchmarks legen nahe, dass AWS Graviton3 die Modelltrainings-Workloads von ThirdAI um 30–40 % gegenüber den vergleichbaren x86-Instanzen beschleunigen kann, bei einer Preis-Leistungs-Verbesserung von fast 50 %. Da AWS Graviton3-Instanzen außerdem zu geringeren Kosten als die analogen Intel- und NVIDIA-Maschinen verfügbar sind und kürzere Trainings- und Inferenzzeiten ermöglichen, können Sie den Wert des AWS-Nutzungsmodells „Pay-as-you-go“ noch weiter ausschöpfen, indem Sie niedrigere Kosten nutzen Maschinen für kürzere Zeiträume.

Wir freuen uns sehr über die Preis- und Leistungseinsparungen von AWS Graviton3 und werden diese Verbesserungen an unsere Kunden weitergeben, damit sie schnelleres ML-Training und Inferenz mit verbesserter Leistung auf kostengünstigen CPUs genießen können. Da wir selbst Kunden von AWS sind, freuen wir uns über die Geschwindigkeit, mit der wir mit AWS Graviton3 mit unseren Modellen experimentieren können, und wir freuen uns darauf, in Zukunft weitere hochmoderne Siliziuminnovationen von AWS zu nutzen. Technischer Leitfaden zu Graviton ist eine gute Ressource, die Sie bei der Bewertung Ihrer ML-Workloads für die Ausführung auf Graviton berücksichtigen sollten. Sie können auch Graviton t4g-Instanzen ausprobieren die kostenlose Testversion..

Der Inhalt und die Meinungen in diesem Beitrag stammen vom Drittautor und AWS ist nicht für den Inhalt oder die Richtigkeit dieses Beitrags verantwortlich. Zum Zeitpunkt des Schreibens des Blogs waren die aktuellsten Instanzen c6i und daher wurde der Vergleich mit c6i-Instanzen durchgeführt.


Über den Autor

Vihan Lakshman – Vihan Lakshman ist Forschungswissenschaftler bei ThirdAI Corp. und konzentriert sich auf die Entwicklung von Systemen für ressourceneffizientes Deep Learning. Vor ThirdAI arbeitete er als angewandter Wissenschaftler bei Amazon und erhielt Bachelor- und Master-Abschlüsse von der Stanford University. Vihan ist außerdem Empfänger eines Forschungsstipendiums der National Science Foundation.

Tharun Medini – Tharun Medini ist Mitbegründer und CTO von ThirdAI Corp. Er promovierte in „Hashing-Algorithmen für Suche und Informationsabruf“ an der Rice University. Vor ThirdAI arbeitete Tharun bei Amazon und Target. Tharun erhielt zahlreiche Auszeichnungen für seine Forschung, darunter das Ken Kennedy Institute BP Fellowship, das American Society of Indian Engineers Scholarship und ein Graduate Fellowship der Rice University.

Anshumali Shrivastava – Anshumali Shrivastava ist außerordentlicher Professor in der Informatikabteilung der Rice University. Er ist außerdem Gründer und CEO von ThirdAI Corp, einem Unternehmen, das KI durch Softwareinnovationen auf Standardhardware demokratisiert. Zu seinen breiten Forschungsinteressen gehören probabilistische Algorithmen für ressourcenschonendes Deep Learning. Im Jahr 2018 ernannte ihn Science News zu einem der zehn besten Wissenschaftler unter 10, die man im Auge behalten sollte. Er ist Träger des CAREER Award der National Science Foundation, eines Young Investigator Award des Air Force Office of Scientific Research, eines Machine Learning Research Award von Amazon und eines Data Science Research Award von Adobe. Er hat zahlreiche Papierpreise gewonnen, darunter die Best Paper Awards bei NIPS 40 und MLSys 2014 sowie den Most Reproducible Paper Award bei SIGMOD 2022. Über seine Arbeit zu effizienten maschinellen Lerntechnologien auf CPUs wurde in der Fachpresse berichtet, darunter im Wall Street Journal, New York Times, TechCrunch, NDTV usw.

Zeitstempel:

Mehr von AWS Maschinelles Lernen