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, die die einmalige Schulung von Machine Learning-Modellen ermöglicht, um sie anschließend überall in der Cloud und an der Grenze auszuführen.

Wenn Sie SageMaker Neo zum ersten Mal verwenden, empfehlen wir Ihnen, den Abschnitt Erste Schritte mit Edge-Geräten zu lesen, um schrittweise Anleitungen zur Kompilierung und Bereitstellung 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. Das zwingt Sie dazu, Verschiedenes manuell nacheinander auszuprobieren, was unzuverlässig und unproduktiv ist.

Neo optimiert Gluon-, Keras-, MXNet-, PyTorch-, TensorFlow-, TensorFlow-Lite- und ONNX-Modelle automatisch für die Inferenz auf Android-, Linux- und Windows-Computern, die mit Prozessoren von Ambarella, ARM, Intel, Nvidia, NXP, Qualcomm, Texas Instruments und Xilinx arbeiten. Neo wird mit Computervisionsmodellen getestet, die in den Modellzoos in den verschiedenen 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, Chip-Architekturen und gängigen Modellen für Machine Learning, 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.