AWS Neuron

SDK zur Optimierung der Machine-Learning-Inferenz auf AWS-Inferentia-Chips

AWS Neuron ist ein Software-Development-Kit (SDK) für die Durchführung von Inferenzen beim Machine Learning unter Verwendung von AWS-Inferentia-Chips. Die Chips bestehen aus Compiler, Laufzeit- und Profilerstellungs-Tools, die es Entwicklern ermöglichen, hochleistungsfähige und latenzarme Inferenz-Workloads auf AWS-Inferentia-basierten Amazon-EC2-Inf1-Instances auszuführen. Mit Neuron können Entwickler ihre Machine-Learning-Modelle einfach auf jedem gängigen Framework wie TensorFlow, PyTorch und MXNet zu trainieren und optimal auf Amazon-EC2-Inf1-Instances auszuführen. Sie können weiterhin die gleichen ML-Frameworks verwenden, die Sie heute einsetzen, und Ihre Software mit minimalen Code-Änderungen und ohne Bindung an herstellerspezifische Lösungen auf Inf1-Instances migrieren.

Der schnellste und einfachste Weg, um mit Inf1-Instances zu beginnen, ist Amazon SageMaker, ein vollständig verwalteter Service, der es Datenwissenschaftlern und Entwicklern ermöglicht, Modelle für Machine Learning zu erstellen, zu trainieren und bereitzustellen. Entwickler, die es vorziehen, ihre eigenen Machine-Learning-Workflows zu verwalten, werden feststellen, dass AWS Neuron einfach in ihre bestehenden und zukünftigen Workflows integriert werden kann, da es nativ in gängige Frameworks wie TensorFlow, PyTorch und MXNet integriert ist. Neuron ist in AWS-Deep-Learning-AMIs sowie in AWS Deep Learning Containers vorinstalliert. Kunden, die containerisierte Anwendungen verwenden, können Neuron mithilfe von Amazon ECS, Amazon EKS oder ihrer nativen Container-Engine ihrer Wahl bereitstellen.

Vorteile

Benutzerfreundlich

Das AWS Neuron SDK ist in gängige Frameworks wie TensorFlow, PyTorch und MXNet integriert. Es ist in Amazon-Deep-Learning-AMIs und Amazon-Deep-Learning-Containern vorinstalliert, damit Kunden schnell mit der Ausführung hochleistungsfähiger und kostengünstiger Inferenz auf Amazon-EC2-Inf1-Instances mit AWS-Inferentia-Chips beginnen können.

Optimierte Leistung

Das AWS Neuron SDK ermöglicht einen effizienten Programmier- und Laufzeitzugriff auf die Inferentia-Chips. Es bietet erweiterte Funktionen wie Auto Casting, das auf Genauigkeit optimierte FP32-Modelle (32-Bit-Gleitkomma) automatisch in 16-Bit-bfloat umwandelt, um den Verarbeitungsdurchsatz zu maximieren. Entwickler können die Leistung weiter verbessern, indem sie Neuron-Funktionen wie Modellparallelität, Batchverarbeitung oder NeuronCore-Gruppen verwenden, die es ermöglichen, dass die Datenparallelität des gleichen Modells oder verschiedener Modelle parallel läuft, um maximalen Durchsatz zu erzielen.

Flexibilität und Auswahl

Da Neuron in gängige Machine-Learning-Frameworks integriert ist, stellen Entwickler ihre vorhandenen Modelle mit minimalen Codeänderungen auf EC2-Inf1-Instances bereit. Dies gibt ihnen die Freiheit, die Portabilität der Hardware aufrechtzuerhalten und die neuesten Technologien zu nutzen, ohne an herstellerspezifische Softwarebibliotheken gebunden zu sein. Mit Neuron können Entwickler viele häufig verwendete Machine-Learning-Modelle wie Single-Shot-Detektor (SSD) und ResNet für die Bilderkennung/Klassifizierung sowie Transformer und BERT für die natürliche Sprachverarbeitung un Übersetzung einsetzen. Zusätzlich bietet der Support für das HuggingFace-Modell-Repository in Neuron den Kunden die Möglichkeit, die vortrainierten Modelle zu kompilieren und die Inferenz auszuführen – oder sogar feinabgestimmte Modelle, einfach durch die Änderung einer einzigen Codezeile.

Funktionen

Intelligente Partitionierung

AWS Neuron optimiert automatisch die Berechnung des neuronalen Netzes, um intensive Aufgaben auf Inferentia und andere Aufgaben auf der CPU auszuführen, um die Gesamtleistung zu erhöhen. 

FP32 Autocasting

AWS Neuron verwendet hochpräzise FP32-trainierte Modelle und sendet sie automatisch an BF16, um eine Inferenz mit hohem Durchsatz zu geringeren Kosten und höherer Geschwindigkeit des 16-Bit-Datentyps zu ermöglichen. 

NeuronCore Pipeline

Die NeuronCore Pipeline ermöglicht Modellparallelität mit hohem Durchsatz für latenzempfindliche Anwendungen, wie z.B. die natürliche Sprachverarbeitung durch Sharding eines Computing-Diagramms über mehrere NeuronCores, Zwischenspeichern der Modellparameter im On-Chip-Speicher jedes Kerns und anschließendes Streaming von Inferenzanfragen über die Kerne in einer Pipeline. 

NeuronCore-Gruppen

NeuronCore-Gruppen ermöglichen es Entwicklern, gleichzeitig mehrere Modelle bereitzustellen, um Hardwareressourcen optimal zu nutzen, indem in jeder der Gruppen unterschiedliche Modelle ausgeführt werden.

Optimiertes Batching

AWS Neuron optimiert die Workloads auf dem Inferentia-Chip, um eine maximale Auslastung bei kleinen Batches zu erreichen, was eine hohe Leistung für Anwendungen mit strengen Anforderungen an die Reaktionszeit ermöglicht.

Funktionsweise

AWS-Inferentia-Chips

AWS Inferentia ist ein Inferenzchip für Machine Learning, der von AWS entwickelt und gebaut wurde, um hohe Leistung zu niedrigen Kosten zu liefern. Jeder AWS Inferentia-Chip hat 4 Neuronen-Kerne und unterstützt die Datentypen FP16, BF16 und INT8. AWS-Inferentia-Chips verfügen über einen großen On-Chip-Speicher, der für das Caching umfangreicher Modelle verwendet werden kann, was besonders bei Modellen mit häufigen Speicherzugriffen vorteilhaft ist.

Weitere Informationen »

Amazon-EC2-Inf1-Instances

Amazon-EC2-Inf1-Instances, die auf AWS-Inferentia-Chips basieren, liefern einen bis zu 2,3-fach höheren Durchsatz und bis zu 70 % niedrigere Kosten pro Inferenz als vergleichbare GPU-basierte Amazon-EC2-Instances der aktuellen Generation. Inf1-Instances verfügen über bis zu 16 AWS-Inferentia-Chips, die neuesten kundenspezifischen Intel®-Xeon®-Scalable-Prozessoren der 2. Generation und bis zu 100 Gbit/s Netzwerkfähigkeit, um Inferenzen mit hohem Durchsatz zu ermöglichen.

Weitere Informationen »

Erste Schritte

In der Dokumentation finden Sie Tutorials, Anleitungen, Anwendungshinweise und eine Roadmap.
Für weitere Unterstützung steht ein Entwicklerforum über die AWS-Konsole oder unter: https://forums.aws.amazon.com/forum.jspa?forumID=355 zur Verfügung