Optimieren Sie die Modellleistung mit Neo - Amazon SageMaker

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Optimieren Sie die Modellleistung mit Neo

Neo ist eine Funktion von Amazon SageMaker , mit der Machine-Learning-Modelle einmal trainiert und überall in der Cloud und am Edge ausgeführt werden können.

Wenn Sie SageMaker Neo zum ersten Mal verwenden, empfehlen wir Ihnen, den Abschnitt Erste Schritte mit Edge-Geräten zu lesen, um step-by-step Anweisungen zum Kompilieren und Bereitstellen auf einem Edge-Gerät zu erhalten.

Was ist SageMaker Neo?

Normalerweise ist es äußerst schwierig, ML-Modelle für die Inferenz auf mehreren Plattformen zu optimieren, da Sie die Modelle für die jeweilige Hardware- und Softwarekonfiguration jeder Plattform manuell anpassen müssen. Um optimale Leistung für eine bestimme Workload zu erreichen, müssen Sie verschiedene Faktoren kennen, beispielsweise die Hardwarearchitektur, den Befehlssatz, die Speicherzugriffsmuster und die Formen von Eingabedaten. Bei der herkömmlichen Softwareentwicklung vereinfachen Tools wie Compiler und Profiler den Prozess. Im maschinellen Lernen sind die meisten Tools aber speziell auf das Framework oder die Hardware ausgerichtet. Dies zwingt Sie zu einem manuellen trial-and-error Prozess, der unzuverlässig und unproduktiv ist.

Neo optimiert automatisch Gluon-, Keras-, MXNet-, PyTorch TensorFlow-Lite TensorFlow- und ONNX-Modelle für Inferenzen auf Android-, Linux- und Windows-Maschinen basierend auf Prozessoren von Ambarella, ARM, Intel, Nvidia, N, Qualcomm, und Xilinx. Neo wird mit Computer Vision-Modellen getestet, die in den Modellzoos in den Frameworks verfügbar sind. SageMaker Neo unterstützt die Kompilierung und Bereitstellung für zwei Hauptplattformen: Cloud-Instances (einschließlich Inferentia) und Edge-Geräte.

Weitere Informationen zu unterstützten Frameworks und Cloud-Instance Type, auf denen Sie bereitstellen können, finden Sie unter Unterstützte Instance-Typen und Frameworks Cloud-Instances.

Weitere Informationen zu unterstützten Frameworks, Edge-Geräten, Betriebssystemen, Chiparchitekturen und gängigen Machine-Learning-Modellen, die von SageMaker Neo für Edge-Geräte getestet wurden, finden Sie unter Unterstützte Frameworks, Geräte, Systeme und Architekturen für Edge-Geräte.

Funktionsweise

Neo besteht aus einem Compiler und einer Laufzeit. Zuerst liest die Neo-Kompilierungs-API Modelle, die von unterschiedlichen Frameworks exportiert wurden. Anschließend wandelt sie die Framework-spezifischen Funktionen und Operationen in eine Framework-unabhängige Zwischenrepräsentation um. Danach führt sie eine Reihe von Optimierungen aus. Daraufhin generiert sie den Binärcode für die optimierten Operationen, schreibt sie in eine gemeinsame Objektbibliothek und speichert die Modelldefinition und die Parameter in separaten Dateien. Neo bietet außerdem eine Laufzeit für jede Zielplattform, die das kompilierte Modell lädt und ausführt.

Sie können einen Neo-Kompilierungsauftrag entweder über die SageMaker Konsole, die AWS Command Line Interface (AWS CLI), ein Python-Notebook oder das SageMaker SDK erstellen. Informationen zum Kompilieren eines Modells finden Sie unter Verwendung von Neo zum Kompilieren eines Modells. Sie können mit nur wenigen CLI-Befehlen, einem API-Aufruf oder einigen Klicks ein Modell für die gewünschte Plattform konvertieren. Sie können das Modell schnell auf einem SageMaker Endpunkt oder auf einem - AWS IoT Greengrass Gerät bereitstellen.

Neo kann Modelle mit Parametern entweder in FP32 oder quantifiziert nach INT8- oder FP16-Bitbreite optimieren.