Compilez et déployez des modèles avec Neo - Amazon SageMaker

Compilez et déployez des modèles avec Neo

Neo est une fonctionnalité d'Amazon SageMaker qui permet aux modèles de machine learning de s'entraîner une fois, puis de s'exécuter n'importe où dans le cloud et en 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 (Démarrer avec les appareils en périphérie) pour obtenir les instructions étape par étape de compilation et de déploiement sur un appareil en périphérie.

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 à adopter un processus manuel tâtonnant aussi peu fiable qu'inutile.

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

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 de plus amples informations sur les cadres pris en charge, les appareils en périphérie, les systèmes d'exploitation, les architectures de puces et les modèles de machine learning courants testés par SageMaker Neo pour les appareils en périphérie, veuillez consulter Cadres, périphériques, systèmes et architectures pris en charge pour les appareils en périphérie.

Fonctionnement

Neo est composé d'un compilateur et d'un environnement d'exécution. D'abord, l'API de compilateur Neo lit les modèles exportés depuis diverses infrastructures. 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é.

Vous pouvez créer une tâche de compilation Neo à partir de la console SageMaker, la AWS Command Line Interface (AWS CLI), un bloc-notes Python ou le SDK SageMaker. Pour obtenir des informations sur la compilation d'un modèle, veuillez consulter Utilisez Neo pour compiler un modèle. Avec quelques commandes CLI, un appel d'API ou quelques clics, vous pouvez convertir un modèle pour la plateforme de votre choix. Vous pouvez déployer le modèle sur un point de terminaison SageMaker ou un périphérique AWS IoT Greengrass rapidement.

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

Exemples de blocs-notes Neo

Pour des exemples de blocs-notes qui utilisent SageMaker Neo pour entraîner, compiler, optimiser et déployer des modèles de machine learning pour effectuer des inférences, veuillez consulter :

Pour obtenir des instructions sur l'exécution de ces exemples de blocs-notes dans SageMaker, veuillez consulter Exemples de blocs-notes. Pour obtenir des instructions sur la création d'une instance de bloc-notes en vue d'exécuter ces exemples, veuillez consulter Utilisation des instances de bloc-notes Amazon SageMaker. Pour consulter l'exemple approprié dans votre instance de bloc-notes, choisissez l'onglet Amazon SageMaker Examples (Exemples Amazon SageMaker) pour afficher une liste de tous les exemples SageMaker. Pour ouvrir un bloc-notes, choisissez l'onglet Use (Utiliser) correspondant, puis Create copy (Créer une copie).