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
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.
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.
Dans cet exemple, le conteneur du modèle affiche la probabilité qui peut être extraite par JMESPath
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 :
-
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.