Recommandations compilées avec Neo - Amazon SageMaker AI

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 peut optimiser votre modèle pour une plateforme matérielle cible (c’est-à-dire un environnement ou un type d’instance 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 conteneur XGBoost ou DLC appartenant à SageMaker AI.

  • Vous utilisez une version de framework prise en charge par Neo. Pour les versions de framework prises en charge par Neo, consultez Instances cloud dans la documentation sur 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, consultez Préparation d’un modèle pour la compilation dans la documentation sur 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 Neo, vous n’avez pas à effectuer de configuration supplémentaire en plus de veiller à ce que votre entrée répond aux exigences qui précèdent. Inference Recommender exécute automatiquement la compilation Neo sur votre modèle si votre entrée répond aux exigences et vous recevez une réponse incluant 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 la valeur du champ InferenceSpecificationName est neo-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 données utiles.

  • Enregistrez votre modèle dans le registre de modèles SageMaker.

  • 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 obtenir un exemple illustrant le flux de travail précédent et la façon d’obtenir des recommandations optimisées par Neo à l’aide de XGBoost, consultez l’exemple de bloc-notes suivant. Pour obtenir un exemple montrant comment obtenir des recommandations optimisées par Neo à l’aide de TensorFlow, consultez l’exemple de bloc-notes suivant.