Optimisez les performances du modèle avec Neo - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Optimisez les performances du modèle avec Neo

Neo est une fonctionnalité d'Amazon SageMaker qui permet aux modèles d'apprentissage automatique de s'entraîner une seule fois et de fonctionner n'importe où dans le cloud et à la périphérie.

Si vous utilisez SageMaker Neo pour la première fois, nous vous recommandons de consulter la section Getting Started with Edge Devices pour obtenir des step-by-step instructions sur la compilation et le déploiement sur un appareil Edge.

Qu'est-ce que SageMaker Neo ?

Généralement, il est difficile d'optimiser des modèles de machine learning pour l'inférence sur plusieurs plateformes, car vous devez régler manuellement ces modèles en fonction de la configuration matérielle et logicielle de chaque plateforme. Si vous voulez obtenir des performances optimales pour une application donnée, vous devez connaître certains facteurs comme l'architecture matérielle, l'ensemble d'instructions, les modèles d'accès à la mémoire et les formes de données d'entrée. Pour le développement logiciel traditionnel, des outils tels que des compilateurs et des profileurs simplifient le processus. Pour le machine learning, la plupart des outils sont propres au framework ou au matériel. Cela vous oblige à recourir à un trial-and-error processus manuel peu fiable et improductif.

Neo optimise automatiquement Gluon, Keras,, MXNet PyTorch TensorFlow, TensorFlow -Lite et les ONNX modèles pour l'inférence sur les machines Android, Linux et Windows basés sur des processeurs d'Ambarella, Intel, Nvidia, ARM QualcommNXP, Texas Instruments et Xilinx. Neo est testé avec des modèles de vision par ordinateur disponibles dans les zoos modèles de tous les frameworks. SageMaker Neo prend en charge la compilation et le déploiement pour deux plateformes principales : les instances cloud (y compris Inferentia) et les appareils périphériques.

Pour de plus amples informations sur les cadres pris en charge et les types d'instances cloud dans lesquels vous pouvez déployer, veuillez consulter Cadres et types d'instance pris en charge pour les instances cloud.

Pour plus d'informations sur les frameworks pris en charge, les appareils Edge, les systèmes d'exploitation, les architectures de puces et les modèles d'apprentissage automatique courants testés par SageMaker Neo pour les appareils Edge, voir Cadres, périphériques, systèmes et architectures pris en charge pour les appareils Edge.

Fonctionnement

Neo est composé d'un compilateur et d'un environnement d'exécution. Tout d'abord, la compilation Neo API lit les modèles exportés à partir de différents frameworks. Il convertit les fonctions et opérations spécifiques au cadre en une représentation intermédiaire agnostique de cadre. Ensuite, il effectue une série d'optimisations. Ensuite, il génère le code binaire pour les opérations optimisées, les écrit dans une bibliothèque d'objets partagés, et enregistre la définitions et les paramètres du modèle dans des fichiers séparés. Neo fournit également un environnement d'exécution pour chaque plateforme cible qui charge et exécute le modèle compilé.

Comment fonctionne Neo SageMaker.

Vous pouvez créer une tâche de compilation Neo à partir de la SageMaker console, du AWS Command Line Interface (AWS CLI), d'un bloc-notes Python ou du SageMaker SDK .Pour plus d'informations sur la compilation d'un modèle, consultezUtilisez Neo pour compiler un modèle. En quelques CLI commandes, en un API appel ou en quelques clics, vous pouvez convertir un modèle pour la plate-forme de votre choix. Vous pouvez déployer rapidement le modèle sur un SageMaker terminal ou sur un AWS IoT Greengrass appareil.

Neo peut optimiser les modèles avec des paramètres en termes de largeur FP32 ou de largeur FP16 binaire, quantifiés INT8 ou quantifiés.