Wie Amazon Search T5-Inferenz mit niedriger Latenz und hohem Durchsatz mit NVIDIA Triton auf AWS PlatoBlockchain Data Intelligence erreicht. Vertikale Suche. Ai.

Wie Amazon Search T5-Inferenz mit niedriger Latenz und hohem Durchsatz mit NVIDIA Triton auf AWS erreicht

Die Vision von Amazon Search ist es, Kunden eine mühelose Suche zu ermöglichen. Unsere Rechtschreibkorrektur hilft Ihnen, das Gewünschte zu finden, auch wenn Sie die genaue Schreibweise der beabsichtigten Wörter nicht kennen. In der Vergangenheit haben wir klassische Algorithmen für maschinelles Lernen (ML) mit manuellem Feature-Engineering für die Rechtschreibkorrektur verwendet. Um den nächsten Generationssprung in der Leistung der Rechtschreibkorrektur zu machen, setzen wir auf eine Reihe von Deep-Learning-Ansätzen, einschließlich Sequenz-zu-Sequenz-Modellen. Deep Learning (DL)-Modelle sind sowohl beim Training als auch bei der Inferenz rechenintensiv, und diese Kosten haben DL-Modelle in der Vergangenheit in einer Produktionsumgebung in der Größenordnung von Amazon unpraktisch gemacht. In diesem Beitrag präsentieren wir die Ergebnisse eines Experiments zur Inferenzoptimierung, bei dem wir diese Hindernisse überwinden und eine Inferenzgeschwindigkeit von 534 % für den beliebten Hugging Face T5 Transformer erreichen.

Herausforderung

Der Text-zu-Text-Übertragungstransformator (T5, Erkundung der Grenzen des Transferlernens mit einem einheitlichen Text-zu-Text-Transformator, Reffel et al) ist die hochmoderne Modellarchitektur für die Verarbeitung natürlicher Sprache (NLP). T5 ist eine vielversprechende Architektur für die Rechtschreibkorrektur, die sich in unseren Experimenten gut bewährt hat. T5-Modelle sind dank Open-Source-Deep-Learning-Frameworks und laufender akademischer und Unternehmensforschung einfach zu erforschen, zu entwickeln und zu trainieren.

Es ist jedoch schwierig, mit einem T5 Inferenz in Produktionsqualität mit geringer Latenz zu erreichen. Beispielsweise dauert eine einzelne Inferenz mit einem PyTorch T5 45 Millisekunden auf einer der vier NVIDIA V100 Tensor Core-GPUs, die eine Amazon Elastic Compute Cloud (EC2) p3.8xlarge-Instanz ausstatten. (Alle gemeldeten Inferenzzahlen gelten für eine Eingabe von 9 Tokens und eine Ausgabe von 11 Tokens. Die Latenz von T5-Architekturen hängt sowohl von der Eingabe- als auch von der Ausgabelänge ab.)

Kosteneffiziente T5-Inferenz mit geringer Latenz im großen Maßstab ist ein bekanntes Problem, das von mehreren AWS-Kunden außerhalb der Amazon-Suche gemeldet wurde, was unsere Motivation, diesen Beitrag beizusteuern, verstärkt. Um von einer wissenschaftlichen Offline-Errungenschaft zu einem kundenorientierten Produktionsservice zu werden, steht Amazon Search vor den folgenden Herausforderungen:

  • Latency – Wie man T5-Inferenz in weniger als 50 Millisekunden P99-Latenzzeit realisiert
  • Durchsatz – Umgang mit umfangreichen gleichzeitigen Inferenzanforderungen
  • Kosteneffizienz – Wie Sie die Kosten unter Kontrolle halten

Im Rest dieses Beitrags erklären wir, wie der NVIDIA Inference Optimization Stack – nämlich der NVIDIA TensorRT Compiler und Open Source NVIDIA Triton-Inferenzserver– löst diese Herausforderungen. Lesen NVIDIAs Pressemitteilung um mehr über die Aktualisierungen zu erfahren.

NVIDIA TensorRT: Reduzierung von Kosten und Latenz durch Inferenzoptimierung

Deep-Learning-Frameworks sind praktisch, um die Wissenschaft schnell zu iterieren, und verfügen über zahlreiche Funktionen für die wissenschaftliche Modellierung, das Laden von Daten und die Trainingsoptimierung. Die meisten dieser Tools sind jedoch nicht optimal für die Inferenz, die nur einen minimalen Satz von Operatoren für Matrixmultiplikations- und Aktivierungsfunktionen erfordert. Daher können erhebliche Gewinne erzielt werden, indem eine spezialisierte, nur auf Vorhersagen basierende Anwendung verwendet wird, anstatt Inferenzen im Deep-Learning-Entwicklungsframework auszuführen.

NVIDIA TensorRT ist ein SDK für leistungsstarke Deep-Learning-Inferenz. TensorRT bietet sowohl eine optimierte Laufzeit unter Verwendung von Low-Level-optimierten Kerneln, die auf NVIDIA-GPUs verfügbar sind, als auch einen Nur-Inferenz-Modellgraphen, der die Inferenzberechnung in einer optimierten Reihenfolge neu anordnet.

Im folgenden Abschnitt werden wir über die Details sprechen, die hinter TensorRT stehen und wie es die Leistung beschleunigt.

Wie Amazon Search T5-Inferenz mit niedriger Latenz und hohem Durchsatz mit NVIDIA Triton auf AWS PlatoBlockchain Data Intelligence erreicht. Vertikale Suche. Ai.

  1. Reduzierte Präzision maximiert den Durchsatz mit FP16 oder INT8 durch Quantisierung von Modellen unter Beibehaltung der Korrektheit.
  2. Schicht- und Tensorfusion optimiert die Nutzung von GPU-Speicher und Bandbreite, indem Knoten in einem Kernel verschmolzen werden, um Latenz beim Kernel-Start zu vermeiden.
  3. Automatisches Kernel-Tuning wählt die besten Datenschichten und Algorithmen basierend auf der Ziel-GPU-Plattform und den Datenkernformen aus.
  4. Dynamisches Tensorgedächtnis minimiert den Speicherbedarf, indem unnötiger Speicherverbrauch von Zwischenergebnissen freigegeben und Speicher für Tensoren effizient wiederverwendet wird.
  5. Multi-Stream-Ausführung verwendet ein skalierbares Design, um mehrere Eingabestreams parallel mit dedizierten CUDA-Streams zu verarbeiten.
  6. Zeitfusion optimiert wiederkehrende neuronale Netze über Zeitschritte mit dynamisch generierten Kerneln.

T5 verwendet Transformatorschichten als Bausteine ​​für seine Architekturen. Die neueste Version von NVIDIA TensorRT 8.2 führt neue Optimierungen für die Modelle T5 und GPT-2 für Echtzeit-Inferenz ein. In der folgenden Tabelle sehen wir die Beschleunigung mit TensorRT bei einigen öffentlichen T5-Modellen, die auf Amazon EC2G4dn-Instances laufen, die von NVIDIA T4-GPUs und EC2 G5-Instances betrieben werden, die von NVIDIA A10G-GPUs betrieben werden.

 

Modell Beispiel Baseline-Pytorch-Latenz (ms) TensorRT 8.2 Latenz (ms) Beschleunigung gegenüber der HF-Grundlinie
FP32 FP32 FP16 FP32 FP16
Encoder Decoder Ende zu Ende Encoder Decoder Ende zu Ende Encoder Decoder Ende zu Ende Ende zu Ende Ende zu Ende
t5-klein g4dn.xlarge 5.98 9.74 30.71 1.28 2.25 7.54 0.93 1.59 5.91 407.40% 519.34%
g5.xlarge 4.63 7.56 24.22 0.61 1.05 3.99 0.47 0.80 3.19 606.66% 760.01%
t5-Basis g4dn.xlarge 11.61 19.05 78.44 3.18 5.45 19.59 3.15 2.96 13.76 400.48% 569.97%
g5.xlarge 8.59 14.23 59.98 1.55 2.47 11.32 1.54 1.65 8.46 530.05% 709.20%

Weitere Informationen zu Optimierungen und Replikation der angehängten Leistung finden Sie unter Optimierung von T5 und GPT-2 für Echtzeit-Inferenz mit NVIDIA TensorRT.

Es ist wichtig zu beachten, dass die Kompilierung die Modellgenauigkeit bewahrt, da sie auf der Inferenzumgebung und der Berechnungsplanung arbeitet und die Modellwissenschaft unverändert lässt – im Gegensatz zur Gewichtsentfernungskomprimierung wie Destillation oder Beschneidung. NVIDIA TensorRT ermöglicht es, Kompilierung mit Quantisierung zu kombinieren, um weitere Gewinne zu erzielen. Die Quantisierung hat bei neuerer NVIDIA-Hardware zwei Vorteile: Sie reduziert die Speichernutzung und ermöglicht die Verwendung von NVIDIA Tensor Cores, DL-spezifischen Zellen, die eine fusionierte Matrix-Multiplikation-Addierung in gemischter Präzision ausführen.

Im Fall des Amazon Search-Experiments mit dem Hugging Face T5-Modell erhöht das Ersetzen von PyTorch durch TensorRT für die Modellinferenz die Geschwindigkeit um 534 %.

NVIDIA Triton: Inference Serving mit geringer Latenz und hohem Durchsatz

Moderne Model-Serving-Lösungen können offline trainierte Modelle in kundenorientierte ML-basierte Produkte umwandeln. Um die Kosten in einem solchen Umfang angemessen zu halten, ist es wichtig, den Bereitstellungsaufwand niedrig zu halten (HTTP-Verarbeitung, Vorverarbeitung und Nachverarbeitung, CPU-GPU-Kommunikation) und die Parallelverarbeitungsfähigkeit von GPUs voll auszunutzen.

NVIDIA Triton ist eine Software für Inferenzdienste, die eine breite Unterstützung von Modelllaufzeiten (unter anderem NVIDIA TensorRT, ONNX, PyTorch, XGBoost) und Infrastruktur-Backends, einschließlich GPUs, CPU und AWS-Inferenz.

ML-Anwender lieben Triton aus mehreren Gründen. Seine dynamische Batching-Fähigkeit ermöglicht es, Inferenzanforderungen während einer benutzerdefinierten Verzögerung und innerhalb einer maximalen benutzerdefinierten Batchgröße zu akkumulieren, sodass die GPU-Inferenz gestapelt wird, wodurch der CPU-GPU-Kommunikationsaufwand amortisiert wird. Beachten Sie, dass das dynamische Batching serverseitig und innerhalb sehr kurzer Zeiträume erfolgt, sodass der anfordernde Client immer noch eine synchrone Aufruferfahrung nahezu in Echtzeit hat. Triton-Benutzer genießen auch die gleichzeitige Modellausführungskapazität. GPUs sind leistungsstarke Multitasker, die sich durch die parallele Ausführung rechenintensiver Workloads auszeichnen. Triton maximiert die GPU-Auslastung und den Durchsatz, indem es CUDA-Streams verwendet, um mehrere Modellinstanzen gleichzeitig auszuführen. Diese Modellinstanzen können verschiedene Modelle aus verschiedenen Frameworks für verschiedene Anwendungsfälle oder eine direkte Kopie desselben Modells sein. Dies führt zu einer direkten Verbesserung des Durchsatzes, wenn Sie über genügend GPU-Speicher im Leerlauf verfügen. Da Triton nicht an ein bestimmtes DL-Entwicklungsframework gebunden ist, ermöglicht es Wissenschaftlern, sich in dem Tool ihrer Wahl vollständig auszudrücken.

Mit Triton auf AWS erwartet Amazon Search einen besseren Service Amazon.com Kunden und erfüllen Latenzanforderungen zu geringen Kosten. Die enge Integration zwischen der TensorRT-Laufzeitumgebung und dem Triton-Server erleichtert die Entwicklungserfahrung. Die Verwendung der AWS-Cloud-Infrastruktur ermöglicht es, basierend auf den Durchsatzanforderungen innerhalb von Minuten nach oben oder unten zu skalieren, während die Messlatte für Zuverlässigkeit und Sicherheit hoch bleibt.

Wie AWS die Eintrittsbarriere senkt

Während Amazon Search dieses Experiment auf der Amazon EC2-Infrastruktur durchführte, existieren andere AWS-Services, um die Entwicklung, das Training und das Hosting von hochmodernen Deep-Learning-Lösungen zu erleichtern.

Beispielsweise haben AWS und NVIDIA zusammengearbeitet, um eine verwaltete Implementierung von Triton Inference Server in zu veröffentlichen Amazon Sage Maker ; Weitere Informationen finden Sie unter Stellen Sie schnelle und skalierbare KI mit NVIDIA Triton Inference Server in Amazon SageMaker bereit. AWS hat auch mit Hugging Face zusammengearbeitet, um eine verwaltete, optimierte Integration zwischen Amazon SageMaker und Hugging Face Transformers zu entwickeln, dem Open-Source-Framework, von dem das T5-Modell von Amazon Search abgeleitet ist; Lesen Sie mehr unter https://aws.amazon.com/machine-learning/hugging-face/.

Wir empfehlen Kunden mit latenzempfindlichen CPU- und GPU-Deep-Learning-Serving-Anwendungen, NVIDIA TensorRT und Triton auf AWS in Betracht zu ziehen. Lassen Sie uns wissen, was Sie bauen!

Haben Sie eine Leidenschaft für Deep Learning und die Entwicklung von Deep-Learning-basierten Lösungen für die Amazon-Suche? Schauen Sie sich unsere an Karriereseite.


Über die Autoren

Wie Amazon Search T5-Inferenz mit niedriger Latenz und hohem Durchsatz mit NVIDIA Triton auf AWS PlatoBlockchain Data Intelligence erreicht. Vertikale Suche. Ai.RJ ist ein Ingenieur im Search M5-Team, das die Bemühungen zum Aufbau groß angelegter Deep-Learning-Systeme für Training und Inferenz leitet. Außerhalb der Arbeit erkundet er verschiedene Küchen und spielt Schlägersport.

Wie Amazon Search T5-Inferenz mit niedriger Latenz und hohem Durchsatz mit NVIDIA Triton auf AWS PlatoBlockchain Data Intelligence erreicht. Vertikale Suche. Ai.Hemant Pugalija ist Angewandte Wissenschaftlerin bei Search M5. Er arbeitet an der Anwendung neuester Forschungen zur Verarbeitung natürlicher Sprache und zum Deep Learning, um das Kundenerlebnis beim Einkaufen auf Amazon weltweit zu verbessern. Seine Forschungsinteressen umfassen die Verarbeitung natürlicher Sprache und groß angelegte maschinelle Lernsysteme. Außerhalb der Arbeit wandert, kocht und liest er gerne.

Wie Amazon Search T5-Inferenz mit niedriger Latenz und hohem Durchsatz mit NVIDIA Triton auf AWS PlatoBlockchain Data Intelligence erreicht. Vertikale Suche. Ai.Andi Sonne ist ein Softwareentwickler und technischer Leiter für die Rechtschreibkorrektur bei der Suche. Zu seinen Forschungsinteressen gehören die Optimierung der Deep-Learning-Inferenzlatenz und der Aufbau von Plattformen für schnelle Experimente. Außerhalb der Arbeit genießt er Filmemachen und Akrobatik.

Wie Amazon Search T5-Inferenz mit niedriger Latenz und hohem Durchsatz mit NVIDIA Triton auf AWS PlatoBlockchain Data Intelligence erreicht. Vertikale Suche. Ai.Le Cai ist Software Engineer bei Amazon Search. Er arbeitet an der Verbesserung der Leistung der Such-Rechtschreibkorrektur, um Kunden bei ihrem Einkaufserlebnis zu unterstützen. Er konzentriert sich auf leistungsstarke Online-Inferenz und verteilte Trainingsoptimierung für Deep-Learning-Modelle. Außerhalb der Arbeit fährt er gerne Ski, wandert und fährt Rad.

Wie Amazon Search T5-Inferenz mit niedriger Latenz und hohem Durchsatz mit NVIDIA Triton auf AWS PlatoBlockchain Data Intelligence erreicht. Vertikale Suche. Ai.Anton Ko arbeitet derzeit als Softwareentwickler bei Search M5 Palo Alto, CA. Er arbeitet an der Erstellung von Tools und Produkten für die Modellbereitstellung und Inferenzoptimierung. Außerhalb der Arbeit kocht er gerne und spielt Schlägersport.

Wie Amazon Search T5-Inferenz mit niedriger Latenz und hohem Durchsatz mit NVIDIA Triton auf AWS PlatoBlockchain Data Intelligence erreicht. Vertikale Suche. Ai.Olivier Cruchant ist Machine Learning Specialist Solutions Architect bei AWS mit Sitz in Frankreich. Olivier hilft AWS-Kunden – von kleinen Startups bis hin zu großen Unternehmen – bei der Entwicklung und Bereitstellung von Anwendungen für maschinelles Lernen auf Produktionsniveau. In seiner Freizeit liest er gerne Forschungsarbeiten und erkundet mit Freunden und Familie die Wildnis.

Wie Amazon Search T5-Inferenz mit niedriger Latenz und hohem Durchsatz mit NVIDIA Triton auf AWS PlatoBlockchain Data Intelligence erreicht. Vertikale Suche. Ai.Anisch Mohan ist Machine Learning Architect bei NVIDIA und technischer Leiter für ML- und DL-Engagements mit seinen Kunden im Großraum Seattle.

Wie Amazon Search T5-Inferenz mit niedriger Latenz und hohem Durchsatz mit NVIDIA Triton auf AWS PlatoBlockchain Data Intelligence erreicht. Vertikale Suche. Ai.Jiahong Liu ist Solution Architect im Cloud Service Provider-Team bei NVIDIA. Er unterstützt Kunden bei der Einführung von Lösungen für maschinelles Lernen und KI, die NVIDIA Accelerated Computing nutzen, um ihre Trainings- und Inferenzherausforderungen zu bewältigen. In seiner Freizeit beschäftigt er sich gerne mit Origami, DIY-Projekten und spielt Basketball.

Wie Amazon Search T5-Inferenz mit niedriger Latenz und hohem Durchsatz mit NVIDIA Triton auf AWS PlatoBlockchain Data Intelligence erreicht. Vertikale Suche. Ai.Eliuth Triana ist Developer Relations Manager bei NVIDIA. Er verbindet Amazon- und AWS-Produktleiter, Entwickler und Wissenschaftler mit NVIDIA-Technologen und Produktleitern, um Amazon ML/DL-Workloads, EC2-Produkte und AWS-KI-Services zu beschleunigen. Außerdem ist Eliuth leidenschaftlicher Mountainbiker, Skifahrer und Pokerspieler.

Zeitstempel:

Mehr von AWS Maschinelles Lernen