Configuración de un trabajo de procesamiento de SageMaker Clarify
Para analizar los datos y los modelos para determinar el sesgo y la explicabilidad con SageMaker Clarify, debe configurar un trabajo de procesamiento de SageMaker Clarify. Esta guía muestra cómo especificar el nombre del conjunto de datos de entrada, el nombre del archivo de configuración de análisis y la ubicación de salida de un trabajo de procesamiento. Para configurar el contenedor de procesamiento, las entradas, las salidas, los recursos y otros parámetros del trabajo, tiene dos opciones. Puede usar la API de SageMaker CreateProcessingJob
o la API del SageMaker Python SDK SageMaker ClarifyProcessor
.
Para obtener información sobre los parámetros comunes a todos los trabajos de procesamiento, consulte la Referencia de la API de Amazon SageMaker.
Las siguientes instrucciones muestran cómo proporcionar cada parte de la configuración específica de SageMaker Clarify mediante la API CreateProcessingJob
.
-
Introduzca el identificador uniforme de investigación (URI) de una imagen de contenedor de SageMaker Clarify dentro del parámetro
AppSpecification
, como se muestra en el siguiente ejemplo de código.{ "ImageUri": "
the-clarify-container-image-uri
" }nota
El URI debe identificar una imagen de contenedor de SageMaker Clarify prediseñada.
ContainerEntrypoint
yContainerArguments
no se admiten. Para obtener más información sobre imágenes de contenedores de SageMaker Clarify, consulte Contenedores prediseñados de SageMaker Clarify. -
Especifique tanto la configuración del análisis como los parámetros del conjunto de datos de entrada dentro del parámetro
ProcessingInputs
.-
Especifique la ubicación del archivo de configuración del análisis JSON, que incluye los parámetros para el análisis del sesgo y el análisis de explicabilidad. El parámetro
InputName
del objetoProcessingInput
debe seranalysis_config
como se muestra en el siguiente ejemplo de código.{ "InputName": "analysis_config", "S3Input": { "S3Uri": "
s3://your-bucket/analysis_config.json
", "S3DataType": "S3Prefix", "S3InputMode": "File", "LocalPath": "/opt/ml/processing/input/config
" } }Para obtener más información sobre el esquema del archivo de configuración del análisis, consulte Archivos de configuración del análisis.
-
Especifique la ubicación del conjunto de datos de entrada. El parámetro
InputName
del objetoProcessingInput
debe serdataset
. Este parámetro es opcional si ha proporcionado el “dataset_uri” en el archivo de configuración del análisis. Los siguientes valores son obligatorios en la configuración deS3Input
.-
S3Uri
puede ser un objeto de Amazon S3 o un prefijo de S3. -
S3InputMode
debe ser del tipoFile
. -
S3CompressionType
debe ser del tipoNone
(el valor predeterminado). -
S3DataDistributionType
debe ser del tipoFullyReplicated
(el valor predeterminado). -
S3DataType
puede serS3Prefix
oManifestFile
. Para usarManifestFile
, el parámetroS3Uri
debe especificar la ubicación de un archivo de manifiesto que siga el esquema de la sección S3Uri de la referencia de la API de SageMaker. Este archivo de manifiesto debe enumerar los objetos de S3 que contienen los datos de entrada para el trabajo.
En el siguiente código se muestra un ejemplo de configuración de entrada.
{ "InputName": "dataset", "S3Input": { "S3Uri": "
s3://your-bucket/your-dataset.csv
", "S3DataType": "S3Prefix", "S3InputMode": "File", "LocalPath": "/opt/ml/processing/input/data
" } } -
-
-
Especifique la configuración de la salida del trabajo de procesamiento dentro del parámetro
ProcessingOutputConfig
. Se requiere un único objetoProcessingOutput
en la configuración deOutputs
. La configuración de salida requiere lo siguiente:-
OutputName
debe seranalysis_result
. -
S3Uri
debe ser un prefijo de S3 para la ubicación de salida. -
S3UploadMode
se debe establecer enEndOfJob
.
En el siguiente código se muestra un ejemplo de configuración de salida.
{ "Outputs": [{ "OutputName": "analysis_result", "S3Output": { "S3Uri": "
s3://your-bucket/result/
", "S3UploadMode": "EndOfJob", "LocalPath": "/opt/ml/processing/output
" } }] } -
-
Especifique la configuración
ClusterConfig
de los recursos que utiliza en el trabajo de procesamiento dentro del parámetroProcessingResources
. Se requieren los siguientes parámetros dentro del objetoClusterConfig
.-
InstanceCount
especifica el número de instancias de computación del clúster que ejecuta el trabajo de procesamiento. Para trabajos de procesamiento distribuido, especifique un valor mayor que1
. -
InstanceType
hace referencia a los recursos que ejecuta su trabajo de procesamiento. Como el análisis SHAP de SageMaker requiere un uso intensivo de recursos de computación, el uso de un tipo de instancia que esté optimizado para el cómputo debería mejorar el tiempo de ejecución del análisis. El trabajo de procesamiento de SageMaker Clarify no utiliza GPU.
En el siguiente código se muestra un ejemplo de configuración de recursos.
{ "ClusterConfig": { "InstanceCount":
1
, "InstanceType": "ml.m5.xlarge
", "VolumeSizeInGB":20
} } -
-
Especifique la configuración de la red que utilizará en el trabajo de procesamiento dentro del objeto
NetworkConfig
. Los siguientes valores son obligatorios en la configuración.-
EnableNetworkIsolation
debe estar establecido enFalse
(predeterminado) para que SageMaker Clarify pueda invocar un punto de conexión, si es necesario, para realizar predicciones. -
Si el modelo o punto de conexión que proporcionó al trabajo de SageMaker Clarify está dentro de una Amazon Virtual Private Cloud (Amazon VPC), el trabajo de SageMaker Clarify también debe estar en la misma VPC. Especifique la VPC mediante VpcConfig. Además, la VPC debe tener puntos de conexión con un bucket de Amazon S3, un servicio de SageMaker y un servicio de tiempo de ejecución de SageMaker.
Si está activado el procesamiento distribuido, también debe permitir la comunicación entre distintas instancias en el mismo trabajo de procesamiento. Configure una regla para el grupo de seguridad que permita conexiones entrantes entre miembros del mismo grupo de seguridad. Para obtener más información, consulte Conceder acceso a los trabajos de compilación de Amazon SageMaker Clarify a los recursos de su Amazon VPC.
El código siguiente proporciona un ejemplo de configuración de red.
{ "EnableNetworkIsolation": False, "VpcConfig": { ... } }
-
-
Establezca el tiempo máximo que se ejecutará el trabajo mediante el parámetro
StoppingCondition
. El tiempo máximo que puede durar un trabajo de SageMaker Clarify es de7
días o604800
segundos. Si el trabajo no se puede completar dentro de este límite de tiempo, se detendrá y no se proporcionará ningún resultado de análisis. Por ejemplo, la siguiente configuración limita el tiempo máximo de ejecución del trabajo a 3600 segundos.{ "MaxRuntimeInSeconds": 3600 }
-
Especifique un rol de IAM para el parámetro
RoleArn
. El rol debe tener una relación de confianza con Amazon SageMaker. Se puede utilizar para realizar las operaciones de la API de SageMaker que se indican en la siguiente tabla. Se recomienda utilizar la política administrada Amazon SageMakerFullAccess, que otorga acceso total a SageMaker. Para obtener más información sobre esta política, consulte Política administrada por AWS: AmazonSageMakerFullAccess. Si tiene dudas sobre la posibilidad de conceder acceso total, los permisos mínimos necesarios dependen de si proporciona un modelo o un nombre de punto de conexión. El uso de un nombre de punto de conexión permite conceder menos permisos a SageMaker.La siguiente tabla contiene las operaciones de API utilizadas por el trabajo de procesamiento de SageMaker Clarify. Una
X
bajo Nombre del modelo y Nombre del punto de conexión indica la operación de la API necesaria para cada entrada.Operación de API Nombre de modelo Endpoint name (Nombre del punto de conexión) Para qué se usa X
Las etiquetas del trabajo se aplican al punto de conexión de sombra.
X
Crea la configuración del punto de conexión con el nombre del modelo que proporcionó
X
Crea un punto de conexión de sombra mediante la configuración del punto de conexión.
X
X
Describe el estado del punto de conexión; el punto de conexión debe estar InService para atender las solicitudes.
X
X
Invoca el punto de conexión para realizar predicciones.
Para obtener más información acerca de los permisos requeridos, consulte Permisos de la API de Amazon SageMaker: referencia de acciones, permisos y recursos.
Para obtener más información sobre la transferencia de roles a SageMaker, consulte Transferencia de roles.
Una vez que tenga las partes individuales de la configuración del trabajo de procesamiento, combínelas para configurar el trabajo.
El siguiente ejemplo de código muestra cómo lanzar un trabajo de procesamiento de SageMaker Clarify mediante el AWS SDK para Python
sagemaker_client.create_processing_job( ProcessingJobName="
your-clarify-job-name
", AppSpecification={ "ImageUri": "the-clarify-container-image-uri
", }, ProcessingInputs=[{ "InputName": "analysis_config", "S3Input": { "S3Uri": "s3://your-bucket/analysis_config.json
", "S3DataType": "S3Prefix", "S3InputMode": "File", "LocalPath": "/opt/ml/processing/input/config
", }, }, { "InputName": "dataset", "S3Input": { "S3Uri": "s3://your-bucket/your-dataset.csv
", "S3DataType": "S3Prefix", "S3InputMode": "File", "LocalPath": "/opt/ml/processing/input/data
", }, }, ], ProcessingOutputConfig={ "Outputs": [{ "OutputName": "analysis_result", "S3Output": { "S3Uri": "s3://your-bucket/result/
", "S3UploadMode": "EndOfJob", "LocalPath": "/opt/ml/processing/output
", }, }], }, ProcessingResources={ "ClusterConfig": { "InstanceCount":1
, "InstanceType": "ml.m5.xlarge
", "VolumeSizeInGB":20
, }, }, NetworkConfig={ "EnableNetworkIsolation": False, "VpcConfig": { ... }, }, StoppingCondition={ "MaxRuntimeInSeconds":3600
, }, RoleArn="arn:aws:iam::<your-account-id>:role/service-role/AmazonSageMaker-ExecutionRole
", )
Para ver un ejemplo de cuaderno con instrucciones para ejecutar un trabajo de procesamiento de SageMaker Clarify con el AWS SDK para Python, consulte Fairness and Explainability with SageMaker Clarify using AWS SDK for Python
También puede configurar un trabajo de procesamiento de SageMaker Clarify mediante SageMaker ClarifyProcessor