Configurazione di un processo di elaborazione di SageMaker Clarify
Per analizzare i dati e i modelli per verificarne la spiegabilità e i bias utilizzando SageMaker Clarify, è necessario configurare un processo di elaborazione di SageMaker Clarify. Questa guida mostra come specificare il nome del set di dati di input, il nome del file di configurazione dell'analisi e la posizione di output per un processo di elaborazione. Per configurare il container di elaborazione, gli input, gli output, le risorse e altri parametri del processo, sono disponibili due opzioni. Puoi utilizzare l’API CreateProcessingJob di SageMaker AI o l’API SageMaker ClarifyProcessor di SageMaker AI Python SDK.
Per informazioni sui parametri comuni a tutti i processi di elaborazione, consulta Amazon SageMaker API Reference.
Le seguenti istruzioni mostrano come fornire ciascuna parte della configurazione specifica di SageMaker Clarify utilizzando l'API CreateProcessingJob.
-
Inserisci l'Uniform Research Identifier (URI) di un'immagine del container SageMaker Clarify all'interno del parametro
AppSpecification, come mostrato nel seguente esempio di codice.{ "ImageUri": "the-clarify-container-image-uri" }Nota
L’URI deve identificare un’immagine del container SageMaker Clarify predefinita.
ContainerEntrypointeContainerArgumentsnon sono supportati. Per ulteriori informazioni sulle immagini del container SageMaker Clarify, consulta Container predefiniti di SageMaker Clarify. -
Specifica sia la configurazione per l'analisi che i parametri per il set di dati di input all'interno del parametro
ProcessingInputs.-
Specifica la posizione del file di configurazione dell'analisi JSON, che include i parametri per l'analisi dei bias e l'analisi della spiegabilità. Il parametro
InputNamedell'oggettoProcessingInputdeve essereanalysis_configcome mostrato nel seguente esempio di codice.{ "InputName": "analysis_config", "S3Input": { "S3Uri": "s3://your-bucket/analysis_config.json", "S3DataType": "S3Prefix", "S3InputMode": "File", "LocalPath": "/opt/ml/processing/input/config" } }Per ulteriori informazioni sullo schema del file di configurazione dell’analisi, consulta File di configurazione dell’analisi.
-
Specifica la posizione del set di dati di input. Il parametro
InputNamedell'oggettoProcessingInputdeve esseredataset. Questo parametro è facoltativo se hai fornito "dataset_uri" nel file di configurazione dell'analisi. Nella configurazioneS3Inputsono richiesti i seguenti valori.-
S3Uripuò essere un oggetto Amazon S3 o un prefisso S3. -
S3InputModedeve essere di tipoFile. -
S3CompressionTypedeve essere di tipoNone(il valore predefinito). -
S3DataDistributionTypedeve essere di tipoFullyReplicated(il valore predefinito). -
S3DataTypepuò essereS3PrefixoManifestFile. Per utilizzareManifestFile, il parametroS3Urideve specificare la posizione di un file manifesto che segue lo schema riportato nella sezione SageMaker API Reference S3Uri. Questo file manifest deve elencare gli oggetti S3 che contengono i dati di input per il processo.
Il codice seguente mostra un esempio di configurazione di input.
{ "InputName": "dataset", "S3Input": { "S3Uri": "s3://your-bucket/your-dataset.csv", "S3DataType": "S3Prefix", "S3InputMode": "File", "LocalPath": "/opt/ml/processing/input/data" } } -
-
-
Specifica la configurazione per l'output del processo di elaborazione all'interno del parametro
ProcessingOutputConfig. Nella configurazioneOutputsè richiesto un singolo oggettoProcessingOutput. Per la configurazione di output sono richiesti i seguenti elementi:-
OutputNamedeve essereanalysis_result. -
S3Urideve essere un prefisso S3 per la posizione di output. -
S3UploadModedeve essere impostato suEndOfJob.
Il seguente codice mostra un esempio di configurazione di output.
{ "Outputs": [{ "OutputName": "analysis_result", "S3Output": { "S3Uri": "s3://your-bucket/result/", "S3UploadMode": "EndOfJob", "LocalPath": "/opt/ml/processing/output" } }] } -
-
Specifica la configurazione
ClusterConfigper le risorse utilizzate nel processo di elaborazione all'interno del parametroProcessingResources. I seguenti parametri sono obbligatori all'interno dell'oggettoClusterConfig.-
InstanceCountspecifica il numero di istanze di calcolo nel cluster che esegue il processo di elaborazione. Per attivare l'elaborazione distribuita, specifica un valore maggiore di1. -
InstanceTypesi riferisce alle risorse che eseguono il processo di elaborazione. Poiché l’analisi SHAP di SageMaker AI richiede molte risorse di calcolo, l’utilizzo di un tipo di istanza ottimizzato per il calcolo dovrebbe migliorare il runtime dell’analisi. Il processo di elaborazione di SageMaker Clarify non utilizza GPU.
Il seguente codice mostra un esempio di configurazione delle risorse.
{ "ClusterConfig": { "InstanceCount":1, "InstanceType": "ml.m5.xlarge", "VolumeSizeInGB":20} } -
-
Specifica la configurazione della rete utilizzata nel processo di elaborazione all'interno dell'oggetto
NetworkConfig. Nella configurazione sono richiesti i seguenti valori.-
EnableNetworkIsolationdeve essere impostato suFalse(impostazione predefinita) in modo che SageMaker Clarify possa richiamare un endpoint, se necessario, per eseguire le previsioni. -
Se il modello o l'endpoint che hai fornito al processo di SageMaker Clarify si trova all'interno di un Amazon Virtual Private Cloud (Amazon VPC), anche il processo di SageMaker Clarify deve trovarsi nello stesso VPC. Specifica il VPC utilizzando VPCConfig. Inoltre, il VPC deve disporre di endpoint per un bucket Amazon S3, per il servizio SageMaker AI e per il servizio di runtime di SageMaker AI.
Se è attivata l'elaborazione distribuita, è necessario consentire anche la comunicazione tra diverse istanze nello stesso processo di elaborazione. Configura una regola per il gruppo di sicurezza che consente connessioni in entrata tra i membri dello stesso gruppo di sicurezza. Per ulteriori informazioni, consulta Autorizzazione dei processi di Amazon SageMaker Clarify ad accedere alle risorse nel tuo Amazon VPC.
Il codice seguente mostra un esempio di configurazione della rete.
{ "EnableNetworkIsolation": False, "VpcConfig": { ... } } -
-
Imposta il tempo massimo di esecuzione del processo utilizzando il parametro
StoppingCondition. Il periodo massimo di esecuzione di un processo di SageMaker Clarify è di7giorni o604800secondi. Se il lavoro non può essere completato entro questo limite di tempo, verrà interrotto e non verranno forniti risultati di analisi. Ad esempio, la configurazione seguente limita il tempo massimo di esecuzione del processo a 3600 secondi.{ "MaxRuntimeInSeconds": 3600 } -
Specifica un ruolo IAM per il parametro
RoleArn. Il ruolo deve avere una relazione di attendibilità con Amazon SageMaker AI. Può essere utilizzato per eseguire le operazioni API SageMaker elencate nella tabella seguente. Ti consigliamo di utilizzare la policy FullAccess gestita da Amazon SageMaker AI, che garantisce l’accesso completo a SageMaker AI. Per ulteriori informazioni su questa policy, consulta Policy gestita da AWS: AmazonSageMakerFullAccess. Se hai dubbi sulla concessione dell'accesso completo, le autorizzazioni minime richieste dipendono dall'eventuale fornitura di un modello o un nome di endpoint. L’utilizzo di un nome dell’endpoint consente di concedere meno autorizzazioni a SageMaker AI.La tabella seguente contiene le operazioni API utilizzate dal processo di elaborazione SageMaker Clarify.
Xin Nome modello e Nome endpoint indica l'operazione API richiesta per ogni input.Operazione API Nome modello Nome endpoint Finalità d'utilizzo X
I tag del processo vengono applicati all'endpoint shadow.
X
Crea la configurazione dell'endpoint utilizzando il nome del modello che hai fornito
X
Crea un endpoint shadow usando la configurazione dell'endpoint.
X
X
Descrive l'endpoint per il suo stato; l'endpoint deve essere InService per soddisfare le richieste.
X
X
Consente di invocare l'endpoint per le previsioni.
Per ulteriori informazioni sulle autorizzazioni richieste, consultare Documentazione di riferimento sulle autorizzazioni delle API di Amazon SageMaker AI: azioni, autorizzazioni e risorse.
Per ulteriori informazioni sul passaggio dei ruoli a SageMaker AI, consulta Passaggio dei ruoli.
Dopo aver creato le singole parti della configurazione del processo di elaborazione, combinale per configurare il processo.
Il seguente esempio di codice mostra come avviare un processo di elaborazione di SageMaker Clarify utilizzando l'SDK per Python AWS
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", )
Per un notebook di esempio contenente le istruzioni per eseguire un processo di elaborazione SageMaker Clarify utilizzando SDK per Python AWS, vedere Equità e spiegabilità con SageMaker Clarify usando l'SDK per Python AWS
È inoltre possibile configurare un processo di elaborazione di SageMaker Clarify utilizzando SageMaker ClarifyProcessor