Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Vérification préalable du conteneur de modèle

Mode de mise au point
Vérification préalable du conteneur de modèle - 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.

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.

Cette section vous explique comment vérifier au préalable la compatibilité des entrées et des sorties du conteneur de modèle avant de configurer un point de terminaison. La fiche SageMaker explicative Clarify est indépendante du modèle, mais elle comporte des exigences relatives à l'entrée et à la sortie du conteneur du modèle.

Note

Vous pouvez gagner en efficacité en configurant votre conteneur afin qu'il prenne en charge les demandes par lots, qui prennent en charge au moins deux enregistrements dans une même demande. Par exemple, un enregistrement unique est une seule ligne de CSV données ou une seule ligne de données de JSON lignes. SageMaker Clarify tentera d'abord d'envoyer un mini-lot d'enregistrements au conteneur modèle avant de revenir aux demandes d'enregistrement unique.

Entrée du conteneur de modèle

CSV

Le conteneur modèle prend en charge la saisie CSV avec le MIME type :text/csv. Le tableau suivant présente des exemples d'entrées prises en charge par SageMaker Clarify.

Entrée du conteneur de modèle (représentation sous forme de chaîne) Commentaires

'1,2,3,4'

Enregistrement unique qui utilise quatre fonctionnalités numériques.

'1,2,3,4\n5,6,7,8'

Deux enregistrements, séparés par un saut de ligne '\n'.

'"This is a good product",5'

Enregistrement unique qui contient une fonctionnalité textuelle et une fonctionnalité numérique.

‘"This is a good product",5\n"Bad shopping experience",1'

Deux enregistrements.

JSON Lines

SageMaker prend également en charge la saisie au format JSON Lines dense avec MIME type :application/jsonlines, comme indiqué dans le tableau suivant.

Entrée du conteneur de modèle Commentaires

'{"data":{"features":[1,2,3,4]}}'

Enregistrement unique ; une liste de fonctionnalités peut être extraite par JMESPath expressiondata.features.

'{"data":{"features":[1,2,3,4]}}\n{"data":{"features":[5,6,7,8]}}'

Deux enregistrements.

'{"features":["This is a good product",5]}'

Enregistrement unique ; une liste de fonctionnalités peut être extraite par JMESPath expressionfeatures.

'{"features":["This is a good product",5]}\n{"features":["Bad shopping experience",1]}'

Deux enregistrements.

Le conteneur modèle prend en charge la saisie CSV avec le MIME type :text/csv. Le tableau suivant présente des exemples d'entrées prises en charge par SageMaker Clarify.

Entrée du conteneur de modèle (représentation sous forme de chaîne) Commentaires

'1,2,3,4'

Enregistrement unique qui utilise quatre fonctionnalités numériques.

'1,2,3,4\n5,6,7,8'

Deux enregistrements, séparés par un saut de ligne '\n'.

'"This is a good product",5'

Enregistrement unique qui contient une fonctionnalité textuelle et une fonctionnalité numérique.

‘"This is a good product",5\n"Bad shopping experience",1'

Deux enregistrements.

Sortie du conteneur de modèle

La sortie de votre conteneur modèle doit également être au format dense JSON Lines ou au format Lines. CSV De plus, le conteneur du modèle doit inclure les probabilités des enregistrements d'entrée, que SageMaker Clarify utilise pour calculer les attributions de fonctionnalités.

Les exemples de données suivants concernent les sorties de conteneurs de modèles au CSVformat.

Probability only

Pour les problèmes de régression et de classification binaire, le conteneur de modèle génère une valeur de probabilité (score) unique de l'étiquette prédite. Ces probabilités peuvent être extraites à l'aide de l'index de colonne 0. Pour les problèmes impliquant plusieurs classes, le conteneur de modèle génère une liste de probabilités (scores). Pour les problèmes impliquant plusieurs classes, si aucun index n'est fourni, toutes les valeurs sont extraites.

Entrée du conteneur de modèle Sortie du conteneur de modèle (représentation sous forme de chaîne)

Enregistrement unique

'0.6'

Deux enregistrements (résultats sur une ligne)

'0.6,0.3'

Deux enregistrements (résultats sur deux lignes)

'0.6\n0.3'

Enregistrement unique d'un modèle multi-classes (trois classes)

'0.1,0.6,0.3'

Deux enregistrements d'un modèle multi-classes (trois classes)

'0.1,0.6,0.3\n0.2,0.5,0.3'

Predicted label and probabilities

Le conteneur du modèle produit l'étiquette prédite suivie de sa probabilité au CSVformat. Ces probabilités peuvent être extraites à l'aide de l'index 1.

Entrée du conteneur de modèle Sortie du conteneur de modèle

Enregistrement unique

'1,0.6'

Deux enregistrements

'1,0.6\n0,0.3'

Predicted labels header and probabilities

Un conteneur de modèles multiclasses entraîné par Autopilot peut être configuré pour générer la représentation sous forme de chaîne de la liste des étiquettes et des probabilités prédites. CSV Dans l'exemple suivant, les probabilités peuvent être extraites par l'index 1. Les en-têtes d'étiquette peuvent être extraits par l'index 1 et les en-têtes d'étiquette peuvent être extraits à l'aide de l'index 0.

Entrée du conteneur de modèle Sortie du conteneur de modèle

Enregistrement unique

'"[\'cat\',\'dog\',\'fish\']","[0.1,0.6,0.3]"'

Deux enregistrements

'"[\'cat\',\'dog\',\'fish\']","[0.1,0.6,0.3]"\n"[\'cat\',\'dog\',\'fish\']","[0.2,0.5,0.3]"'

Pour les problèmes de régression et de classification binaire, le conteneur de modèle génère une valeur de probabilité (score) unique de l'étiquette prédite. Ces probabilités peuvent être extraites à l'aide de l'index de colonne 0. Pour les problèmes impliquant plusieurs classes, le conteneur de modèle génère une liste de probabilités (scores). Pour les problèmes impliquant plusieurs classes, si aucun index n'est fourni, toutes les valeurs sont extraites.

Entrée du conteneur de modèle Sortie du conteneur de modèle (représentation sous forme de chaîne)

Enregistrement unique

'0.6'

Deux enregistrements (résultats sur une ligne)

'0.6,0.3'

Deux enregistrements (résultats sur deux lignes)

'0.6\n0.3'

Enregistrement unique d'un modèle multi-classes (trois classes)

'0.1,0.6,0.3'

Deux enregistrements d'un modèle multi-classes (trois classes)

'0.1,0.6,0.3\n0.2,0.5,0.3'

Les exemples de données suivants concernent les sorties de conteneurs de modèles au format JSONLines.

Probability only

Dans cet exemple, le conteneur du modèle affiche la probabilité qui peut être extraite par JMESPathexpression score au format JSONLignes.

Entrée du conteneur de modèle Sortie du conteneur de modèle

Enregistrement unique

'{"score":0.6}'

Deux enregistrements

'{"score":0.6}\n{"score":0.3}'

Predicted label and probabilities

Dans cet exemple, un conteneur de modèles multiclasses génère une liste d'en-têtes d'étiquettes ainsi qu'une liste de probabilités au JSON format Lignes. Les probabilités peuvent être extraites par l'expression JMESPath probability et les en-têtes d'étiquette peuvent être extraits par l'expression JMESPath predicted labels.

Entrée du conteneur de modèle Sortie du conteneur de modèle

Enregistrement unique

'{"predicted_labels":["cat","dog","fish"],"probabilities":[0.1,0.6,0.3]}'

Deux enregistrements

'{"predicted_labels":["cat","dog","fish"],"probabilities":[0.1,0.6,0.3]}\n{"predicted_labels":["cat","dog","fish"],"probabilities":[0.2,0.5,0.3]}'

Predicted labels header and probabilities

Dans cet exemple, un conteneur de modèles multiclasses génère une liste d'en-têtes d'étiquettes et de probabilités au JSON format Lignes. Les probabilités peuvent être extraites par l'expression JMESPath probability et les en-têtes d'étiquette peuvent être extraits par l'expression JMESPath predicted labels.

Entrée du conteneur de modèle Sortie du conteneur de modèle

Enregistrement unique

'{"predicted_labels":["cat","dog","fish"],"probabilities":[0.1,0.6,0.3]}'

Deux enregistrements

'{"predicted_labels":["cat","dog","fish"],"probabilities":[0.1,0.6,0.3]}\n{"predicted_labels":["cat","dog","fish"],"probabilities":[0.2,0.5,0.3]}'

Dans cet exemple, le conteneur du modèle affiche la probabilité qui peut être extraite par JMESPathexpression score au format JSONLignes.

Entrée du conteneur de modèle Sortie du conteneur de modèle

Enregistrement unique

'{"score":0.6}'

Deux enregistrements

'{"score":0.6}\n{"score":0.3}'

Validation d'un conteneur de modèle

Nous vous recommandons de déployer votre modèle sur un point de terminaison d'inférence SageMaker en temps réel et d'envoyer des demandes à ce point de terminaison. Examinez manuellement les demandes (entrées du conteneur de modèle) et les réponses (sorties du conteneur de modèle) pour vous assurer qu'elles sont conformes aux exigences des sections Entrée du conteneur de modèle et Sortie du conteneur de modèle. Si votre conteneur de modèle prend en charge les demandes par lots, vous pouvez commencer par une seule demande d'enregistrement, puis essayer deux enregistrements ou plus.

Les commandes suivantes montrent comment demander une réponse à l'aide de l' AWS CLI. AWS CLI Il est préinstallé dans les instances SageMaker Studio Classic et SageMaker Notebook. Si vous devez l'installer AWS CLI, suivez ce guide d'installation.

aws sagemaker-runtime invoke-endpoint \ --endpoint-name $ENDPOINT_NAME \ --content-type $CONTENT_TYPE \ --accept $ACCEPT_TYPE \ --body $REQUEST_DATA \ $CLI_BINARY_FORMAT \ /dev/stderr 1>/dev/null

Les paramètres sont définis, comme suit :

  • $ENDPOINT NAME : nom du point de terminaison.

  • $CONTENT_TYPE: le MIME type de demande (entrée du conteneur du modèle).

  • $ACCEPT_TYPE: MIME type de réponse (modèle de sortie du conteneur).

  • $REQUEST_DATA : chaîne de charge utile demandée.

  • $CLI_BINARY_FORMAT: format du paramètre d'interface de ligne de commande (CLI). Pour AWS CLI la version 1, ce paramètre doit rester vide. Pour la version 2, ce paramètre doit être défini sur --cli-binary-format raw-in-base64-out.

Les exemples suivants utilisent la version AWS CLI 1 :

Request and response in CSV format
  • La demande se compose d'un seul enregistrement et la réponse est sa valeur de probabilité.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-sagemaker-xgboost-model \ --content-type text/csv \ --accept text/csv \ --body '1,2,3,4' \ /dev/stderr 1>/dev/null

    Sortie :

    0.6

  • La demande se compose de deux enregistrements, la réponse inclut leurs probabilités et le modèle sépare les probabilités par une virgule. L'expression $'content' contenue dans le --body indique à la commande d'interpréter \n dans le contenu comme un saut de ligne.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-sagemaker-xgboost-model \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    Sortie :

    0.6,0.3

  • La demande se compose de deux enregistrements, la réponse inclut leurs probabilités et le modèle sépare les probabilités par un saut de ligne.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-1 \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    Sortie :

    0.6

    0.3

  • La demande se compose d'un seul enregistrement et la réponse est constituée de valeurs de probabilité (modèle multi-classes, trois classes).

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-1 \ --content-type text/csv \ --accept text/csv \ --body '1,2,3,4' \ /dev/stderr 1>/dev/null

    Sortie :

    0.1,0.6,0.3

  • La demande se compose de deux enregistrements et la réponse comprend leurs valeurs de probabilité (modèle multi-classes, trois classes).

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-1 \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    Sortie :

    0.1,0.6,0.3

    0.2,0.5,0.3

  • La demande se compose de deux enregistrements, et la réponse comprend l'étiquette prédite et la probabilité.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-2 \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    Sortie :

    1,0.6

    0,0.3

  • La demande se compose de deux enregistrements, et la réponse comprend les en-têtes d'étiquette et les probabilités.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-3 \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    Sortie :

    "['cat','dog','fish']","[0.1,0.6,0.3]"

    "['cat','dog','fish']","[0.2,0.5,0.3]"

Request and response in JSON Lines format
  • La demande se compose d'un seul enregistrement et la réponse est sa valeur de probabilité.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-jsonlines \ --content-type application/jsonlines \ --accept application/jsonlines \ --body '{"features":["This is a good product",5]}' \ /dev/stderr 1>/dev/null

    Sortie :

    {"score":0.6}

  • La demande contient deux enregistrements, et la réponse comprend l'étiquette prédite et la probabilité.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-jsonlines-2 \ --content-type application/jsonlines \ --accept application/jsonlines \ --body $'{"features":[1,2,3,4]}\n{"features":[5,6,7,8]}' \ /dev/stderr 1>/dev/null

    Sortie :

    {"predicted_label":1,"probability":0.6}

    {"predicted_label":0,"probability":0.3}

  • La demande contient deux enregistrements, et la réponse comprend les en-têtes d'étiquette et les probabilités.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-jsonlines-3 \ --content-type application/jsonlines \ --accept application/jsonlines \ --body $'{"data":{"features":[1,2,3,4]}}\n{"data":{"features":[5,6,7,8]}}' \ /dev/stderr 1>/dev/null

    Sortie :

    {"predicted_labels":["cat","dog","fish"],"probabilities":[0.1,0.6,0.3]}

    {"predicted_labels":["cat","dog","fish"],"probabilities":[0.2,0.5,0.3]}

Request and response in different formats
  • La demande est au CSV format et la réponse est au format JSON Lignes :

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-in-jsonlines-out \ --content-type text/csv \ --accept application/jsonlines \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    Sortie :

    {"probability":0.6}

    {"probability":0.3}

  • La demande est au format JSON Lignes et la réponse est au CSV format suivant :

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-jsonlines-in-csv-out \ --content-type application/jsonlines \ --accept text/csv \ --body $'{"features":[1,2,3,4]}\n{"features":[5,6,7,8]}' \ /dev/stderr 1>/dev/null

    Sortie :

    0.6

    0.3

  • La demande se compose d'un seul enregistrement et la réponse est sa valeur de probabilité.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-sagemaker-xgboost-model \ --content-type text/csv \ --accept text/csv \ --body '1,2,3,4' \ /dev/stderr 1>/dev/null

    Sortie :

    0.6

  • La demande se compose de deux enregistrements, la réponse inclut leurs probabilités et le modèle sépare les probabilités par une virgule. L'expression $'content' contenue dans le --body indique à la commande d'interpréter \n dans le contenu comme un saut de ligne.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-sagemaker-xgboost-model \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    Sortie :

    0.6,0.3

  • La demande se compose de deux enregistrements, la réponse inclut leurs probabilités et le modèle sépare les probabilités par un saut de ligne.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-1 \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    Sortie :

    0.6

    0.3

  • La demande se compose d'un seul enregistrement et la réponse est constituée de valeurs de probabilité (modèle multi-classes, trois classes).

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-1 \ --content-type text/csv \ --accept text/csv \ --body '1,2,3,4' \ /dev/stderr 1>/dev/null

    Sortie :

    0.1,0.6,0.3

  • La demande se compose de deux enregistrements et la réponse comprend leurs valeurs de probabilité (modèle multi-classes, trois classes).

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-1 \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    Sortie :

    0.1,0.6,0.3

    0.2,0.5,0.3

  • La demande se compose de deux enregistrements, et la réponse comprend l'étiquette prédite et la probabilité.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-2 \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    Sortie :

    1,0.6

    0,0.3

  • La demande se compose de deux enregistrements, et la réponse comprend les en-têtes d'étiquette et les probabilités.

    aws sagemaker-runtime invoke-endpoint \ --endpoint-name test-endpoint-csv-3 \ --content-type text/csv \ --accept text/csv \ --body $'1,2,3,4\n5,6,7,8' \ /dev/stderr 1>/dev/null

    Sortie :

    "['cat','dog','fish']","[0.1,0.6,0.3]"

    "['cat','dog','fish']","[0.2,0.5,0.3]"

Une fois les validations terminées, supprimez le point de terminaison de test.

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.