Recommandations compilées 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.

Recommandations compilées avec Neo

Dans Inference Recommender, vous pouvez compiler votre modèle avec Neo et obtenir des recommandations de points de terminaison pour votre modèle compilé. SageMaker Neo est un service qui permet d'optimiser votre modèle pour une plate-forme matérielle cible (c'est-à-dire un type d'instance ou un environnement spécifique). L'optimisation d'un modèle avec Neo peut améliorer les performances de votre modèle hébergé.

Pour les conteneurs et les frameworks pris en charge par Neo, Inference Recommender suggère automatiquement des recommandations optimisées par Neo. Pour être éligible à la compilation Neo, votre entrée doit remplir les conditions préalables suivantes :

  • Vous utilisez un SageMaker propriétaire DLCou un XGBoost conteneur.

  • Vous utilisez une version de framework prise en charge par Neo. Pour les versions du framework prises en charge par Neo, consultez Instances cloud la documentation de SageMaker Neo.

  • Neo exige que vous fournissiez une forme de données d'entrée correcte pour votre modèle. Vous pouvez spécifier cette forme de données en tant que DataInputConfig dans InferenceSpecification lorsque vous créez un package de modèle. Pour plus d'informations sur les formes de données correctes pour chaque framework, voir Préparer le modèle pour la compilation dans la documentation SageMaker Neo.

    L'exemple suivant montre comment spécifier le champ DataInputConfig dans InferenceSpecification, où data_input_configuration est une variable qui contient la forme de données dans un format dictionnaire (par exemple, {'input':[1,1024,1024,3]}).

    "InferenceSpecification": { "Containers": [ { "Image": dlc_uri, "Framework": framework.upper(), "FrameworkVersion": framework_version, "NearestModelName": model_name, "ModelInput": {"DataInputConfig": data_input_configuration}, } ], "SupportedContentTypes": input_mime_types, # required, must be non-null "SupportedResponseMIMETypes": [], "SupportedRealtimeInferenceInstanceTypes": supported_realtime_inference_types, # optional }

Si ces conditions sont remplies dans votre demande, Inference Recommender exécute des scénarios pour les versions compilées et non compilées de votre modèle, vous offrant ainsi plusieurs combinaisons de recommandations parmi lesquelles choisir. Vous pouvez comparer les configurations des versions compilées et non compilées de la même recommandation d'inférence et déterminer celle qui convient le mieux à votre cas d'utilisation. Les recommandations sont classées en fonction de leur coût par inférence.

Pour obtenir les recommandations de compilation de Neo, vous n'avez pas à effectuer de configuration supplémentaire, à part vous assurer que votre entrée répond aux exigences précédentes. Inference Recommender exécute automatiquement la compilation Neo sur votre modèle si votre entrée répond aux exigences et si vous recevez une réponse qui inclut les recommandations Neo.

Si vous rencontrez des erreurs au cours de la compilation Neo, consultez Résolution des erreurs de compilation Neo.

Le tableau suivant est un exemple de réponse que vous pouvez obtenir à partir d'une tâche Inference Recommender, qui inclut des recommandations pour les modèles compilés. Si le champ InferenceSpecificationName a pour valeur None, la recommandation est un modèle non compilé. La dernière ligne, dans laquelle se trouve la valeur du InferenceSpecificationNamechampneo-00011122-2333-4445-5566-677788899900, correspond à un modèle compilé avec Neo. La valeur du champ est le nom de la tâche Neo utilisée pour compiler et optimiser votre modèle.

EndpointName InstanceType InitialInstanceCount EnvironmentParameters CostPerHour CostPerInference MaxInvocations ModelLatency InferenceSpecificationName

sm-epc-example-000111222

ml.c5.9xlarge

1

[]

1,836

9,15E-07

33456

7

Aucun

sm-epc-example-111222333

ml.c5.2xlarge

1

[]

0,408

2,11E-07

32211

21

Aucun

sm-epc-example-222333444

ml.c5.xlarge

1

[]

0,204

1,86E-07

18276

92

Aucun

sm-epc-example-333444555

ml.c5.xlarge

1

[]

0,204

1,60E-07

21286

42

neo-00011122-2333-4445-5566-677788899900

Mise en route

Les étapes générales pour créer une tâche Inference Recommender qui inclut des recommandations optimisées par Neo sont les suivantes :

  • Préparez votre modèle de machine learning pour la compilation. Pour plus d'informations, consultez Préparation d'un modèle pour la compilation dans la documentation sur Neo.

  • Empaquetez votre modèle dans une archive de modèle (fichier .tar.gz).

  • Créez un exemple d'archive de charge utile.

  • Enregistrez votre modèle dans le SageMaker Model Registry.

  • Créez une tâche Inference Recommender.

  • Affichez les résultats de la tâche Inference Recommender et choisissez une configuration.

  • Déboguez les échecs de compilation, le cas échéant Pour plus d'informations, consultez Résolution des erreurs de compilation Neo.

Pour un exemple illustrant le flux de travail précédent et expliquant comment obtenir des recommandations optimisées pour NeoXGBoost, consultez l'exemple de bloc-notes suivant. Pour un exemple montrant comment obtenir des recommandations optimisées pour Neo à l'aide de Neo TensorFlow, consultez l'exemple de bloc-notes suivant.