Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Esta sección le muestra cómo realizar la comprobación previa de la compatibilidad de las entradas y salidas del contenedor de modelos antes de configurar un punto de conexión. La explicación SageMaker de Clarify es independiente del modelo, pero tiene requisitos para la entrada y salida del contenedor del modelo.
nota
Puede aumentar la eficiencia si configura su contenedor para que admita solicitudes por lotes, que admiten dos o más registros en una sola solicitud. Por ejemplo, un único registro es una sola línea de datos CSV o una sola línea de datos JSON Lines. SageMaker Clarify intentará enviar primero un minilote de registros al contenedor modelo antes de recurrir a solicitudes de registro único.
Entrada del contenedor de modelos
El contenedor de modelos admite entradas en CSV con el tipo MIME: text/csv
. La siguiente tabla muestra ejemplos de entradas compatibles con SageMaker Clarify.
Entrada del contenedor de modelos (representación de cadena) | Comentarios |
---|---|
'1,2,3,4' |
Registro único que utiliza cuatro características numéricas. |
'1,2,3,4\n5,6,7,8' |
Dos registros, separados por un salto de línea '\n'. |
'"Este es un buen producto",5' |
Registro único que contiene una característica de texto y una característica numérica. |
‘"Este es un buen producto",5\n"Mala experiencia de compra",1' |
Dos registros. |
Salida del contenedor de modelos
La salida del contenedor de modelos también debe estar en formato denso CSV o JSON Lines. Además, el contenedor del modelo debe incluir las probabilidades de los registros de entrada, que SageMaker Clarify utiliza para calcular las atribuciones de las características.
Los siguientes ejemplos de datos son para salidas de contenedores de modelos en formato CSV.
En el caso de problemas de regresión y clasificación binaria, el contenedor de modelos genera un único valor de probabilidad (puntuación) de la etiqueta predicha. Estas probabilidades se pueden extraer utilizando el índice de columna 0. En el caso de problemas con varias clases, el contenedor de modelos genera una lista de probabilidades (puntuaciones). En el caso de problemas con varias clases, si no se proporciona ningún índice, se extraen todos los valores.
Entrada del contenedor de modelos | Salida del contenedor de modelos (representación de cadena) |
---|---|
Registro único |
'0,6' |
Dos registros (resultados en una línea) |
'0,6,0,3' |
Dos registros (resultados en dos líneas) |
'0,6\n0,3' |
Registro único de un modelo multiclase (tres clases) |
'0,1,0,6,0,3' |
Dos registros de un modelo multiclase (tres clases) |
'0,1,0,6,0,3\n0,2,0,5,0,3' |
Los siguientes ejemplos de datos son para salidas del contenedor de modelos en formato JSON Lines.
En este ejemplo, el contenedor de modelos genera la probabilidad que se puede extraer mediante una expresión de JMESPath
score
en formato JSON Lines.
Entrada del contenedor de modelos | Salida del contenedor de modelos |
---|---|
Registro único |
'{"puntuación":0,6}' |
Dos registros |
'{"puntuación":0,6}\n{"puntuación":0,3}' |
Validación del contenedor de modelos
Le recomendamos que implemente su modelo en un punto final de inferencia en tiempo real de la SageMaker IA y que envíe las solicitudes al punto final. Examine manualmente las solicitudes (entradas del contenedor de modelos) y las respuestas (salidas del contenedor de modelos) para asegurarse de que ambas cumplan con los requisitos de las secciones Entrada del contenedor de modelos y Salida del contenedor de modelos. Si el contenedor de modelos admite solicitudes por lotes, puede empezar con una sola solicitud de registro y, a continuación, probar con dos o más registros.
En los siguientes comandos se muestra cómo solicitar una respuesta mediante la AWS CLI. Viene AWS CLI
preinstalado en las instancias de SageMaker Studio Classic y SageMaker Notebook. Si necesita instalar el AWS CLI, siga esta guía de instalación
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
Los parámetros se definen como sigue:
-
$ENDPOINT NAME
: el nombre del punto de conexión. -
$CONTENT_TYPE
: el tipo MIME de la solicitud (entrada del contenedor de modelos). -
$ACCEPT_TYPE
: el tipo MIME de la respuesta (salida del contenedor de modelos). -
$REQUEST_DATA
: la cadena de carga solicitada. -
$CLI_BINARY_FORMAT
: el formato del parámetro de la interfaz de la línea de comandos (CLI). Para la AWS CLI versión 1, este parámetro debe permanecer en blanco. En la versión 2, este parámetro debe establecerse en--cli-binary-format raw-in-base64-out
.
En los ejemplos siguientes se utiliza v1: AWS CLI
-
La solicitud consta de un único registro y la respuesta es su valor de probabilidad.
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
Salida:
0.6
-
La solicitud consta de dos registros, la respuesta incluye sus probabilidades y el modelo separa las probabilidades con una coma. La expresión
$'content'
en--body
indica al comando que debe interpretar\n
en el contenido como un salto de línea.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
Salida:
0.6,0.3
-
La solicitud consta de dos registros, la respuesta incluye sus probabilidades y el modelo separa las probabilidades con un salto de línea.
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
Salida:
0.6
0.3
-
La solicitud consta de un único registro y la respuesta son los valores de probabilidad (modelo multiclase, tres clases).
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
Salida:
0.1,0.6,0.3
-
La solicitud consta de dos registros y la respuesta incluye sus valores de probabilidad (modelo multiclase, tres clases).
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
Salida:
0.1,0.6,0.3
0.2,0.5,0.3
-
La solicitud consta de dos registros y la respuesta incluye la probabilidad y la etiqueta predicha.
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
Salida:
1,0.6
0,0.3
-
La solicitud consta de dos registros y la respuesta incluye los encabezados de la etiqueta y las probabilidades.
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
Salida:
"['cat','dog','fish']","[0.1,0.6,0.3]"
"['cat','dog','fish']","[0.2,0.5,0.3]"
Una vez finalizadas las validaciones, elimine el punto de conexión de prueba.