Usa Amazon SageMaker AI Jobs - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Usa Amazon SageMaker AI Jobs

Questa sezione è basata sulla versione originale di SageMaker AI Operators for Kubernetes.

Importante

Stiamo interrompendo lo sviluppo e il supporto tecnico della versione originale di Operators for Kubernetes. SageMaker

Se attualmente utilizzi una versione v1.2.2 o precedente di SageMaker Operators for Kubernetes, ti consigliamo di migrare le tue risorse al service ACKcontroller per Amazon. SageMaker Il ACK service controller è una nuova generazione di SageMaker Operators for Kubernetes basata su Controller for Kubernetes ().AWS ACK

Per informazioni sulle fasi di migrazione, consulta Migrazione di risorse verso gli operatori più recenti.

Per le risposte alle domande frequenti sulla fine del supporto della versione originale di Operators for Kubernetes, consulta SageMaker Annuncio della fine del supporto della versione originale di SageMaker AI Operators for Kubernetes

Per eseguire un job Amazon SageMaker AI utilizzando Operators for Kubernetes, puoi applicare un YAML file o utilizzare gli Helm Charts forniti.

Tutti i lavori di esempio degli operatori descritti nei seguenti tutorial utilizzano dati di esempio tratti da un set di dati pubblico. MNIST Per eseguire tali esempi, scarica il set di dati nel bucket Amazon S3. Puoi trovare il set di dati in Scarica il set di dati. MNIST

L'operatore TrainingJob

Gli addetti alla formazione riconciliano le specifiche del lavoro di formazione specificato con l' SageMaker intelligenza artificiale lanciandola per te nell'IA. SageMaker Puoi saperne di più sui lavori di SageMaker formazione nella documentazione sull'intelligenza artificiale. SageMaker CreateTrainingJob API

Crea un file TrainingJob utilizzando un YAML file

  1. Scaricate il YAML file di esempio per l'addestramento utilizzando il seguente comando:

    wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-trainingjob.yaml
  2. Modifica il xgboost-mnist-trainingjob.yaml file per sostituire il roleArn parametro con il tuo <sagemaker-execution-role> e outputPath con il tuo bucket Amazon S3 a cui il ruolo di esecuzione SageMaker AI ha accesso in scrittura. roleArnDevono disporre delle autorizzazioni affinché l' SageMaker IA possa accedere ad Amazon S3, CloudWatch Amazon e altri servizi per tuo conto. Per ulteriori informazioni sulla creazione di un' SageMaker IA ExecutionRole, consulta SageMaker AI Roles. Applica il YAML file utilizzando il seguente comando:

    kubectl apply -f xgboost-mnist-trainingjob.yaml

Crea un TrainingJob grafico utilizzando un Helm

Puoi usare Helm Charts per correre. TrainingJobs

  1. Clona il GitHub repository per ottenere il codice sorgente usando il seguente comando:

    git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
  2. Vai alla cartella amazon-sagemaker-operator-for-k8s/hack/charts/training-jobs/ e modifica il file values.yaml per sostituire valori come rolearn e outputpath con valori che corrispondono al tuo account. Il ruolo ARN deve disporre delle autorizzazioni affinché l' SageMaker IA possa accedere ad Amazon S3, CloudWatch Amazon e altri servizi per tuo conto. Per ulteriori informazioni sulla creazione di un' SageMaker IA ExecutionRole, consulta SageMaker AI Roles.

Crea il TrainingJob

Dopo aver sostituito i ruoli e i bucket Amazon S3 con i valori appropriati in values.yaml, puoi creare un processo di addestramento utilizzando il seguente comando:

helm install . --generate-name

L'aspetto dell'output deve essere simile al seguente:

NAME: chart-12345678 LAST DEPLOYED: Wed Nov 20 23:35:49 2019 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: Thanks for installing the sagemaker-k8s-trainingjob.

Verifica il tuo grafico Helm di addestramento

Per verificare che Helm Chart sia stato creato correttamente, esegui quanto segue:

helm ls

L'aspetto dell'output deve essere simile al seguente:

NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION chart-12345678 default 1 2019-11-20 23:35:49.9136092 +0000 UTC deployed sagemaker-k8s-trainingjob-0.1.0 rolebased-12345678 default 1 2019-11-20 23:14:59.6777082 +0000 UTC deployed sagemaker-k8s-operator-0.1.0

helm install crea una risorsa TrainingJob Kubernetes. L'operatore avvia l'effettivo processo di formazione sull' SageMaker intelligenza artificiale e aggiorna la risorsa TrainingJob Kubernetes in modo che rifletta lo stato del lavoro nell'IA. SageMaker Ti verranno addebitati dei costi per le risorse di SageMaker intelligenza artificiale utilizzate durante la durata del tuo lavoro. I processi interrotti o completati non influiscono in alcun modo sulle risorse.

Nota: l' SageMaker intelligenza artificiale non consente di aggiornare un lavoro di formazione in corso. Non è possibile modificare alcun parametro e riapplicare il file di configurazione. Modifica il nome dei metadati o elimina il processo esistente e creane uno nuovo. Analogamente agli operatori di addestramento esistenti, come TFJob in Kubeflow, update non è supportato.

Elenco TrainingJobs

Utilizza il seguente comando per elencare tutti i processi creati utilizzando l'operatore Kubernetes:

kubectl get TrainingJob

L'output con l’elenco di tutti i processi deve essere simile al seguente:

kubectl get trainingjobs NAME STATUS SECONDARY-STATUS CREATION-TIME SAGEMAKER-JOB-NAME xgboost-mnist-from-for-s3 InProgress Starting 2019-11-20T23:42:35Z xgboost-mnist-from-for-s3-examplef11eab94e0ed4671d5a8f

Un processo di addestramento continua a essere elencato dopo il completamento o l'esito negativo del processo. È possibile rimuovere un TrainingJobprocesso dall'elenco seguendo le fasi Elimina TrainingJobs. I lavori completati o interrotti non comportano alcun addebito per le risorse di SageMaker intelligenza artificiale.

TrainingJob valori di stato

Il campo STATUS può corrispondere a uno dei seguenti valori:

  • Completed

  • InProgress

  • Failed

  • Stopped

  • Stopping

Questi stati provengono direttamente dalla APIdocumentazione ufficiale dell' SageMaker IA.

Oltre allo status ufficiale di SageMaker IA, è possibile STATUS SynchronizingK8sJobWithSageMaker esserlo. Ciò significa che l'operatore non ha ancora elaborato il processo.

Valori di stato secondari

Gli stati secondari provengono direttamente dalla APIdocumentazione ufficiale dell' SageMaker IA. Contengono informazioni più dettagliate sullo stato del processo.

Descrivi un TrainingJob

È possibile ricevere maggiori dettagli sul processo di addestramento utilizzando il comando describe kubectl. Viene in genere utilizzato per il debug di un problema o il controllo dei parametri di un processo di addestramento. Per ottenere informazioni sul processo di addestramento, usa il comando seguente:

kubectl describe trainingjob xgboost-mnist-from-for-s3

L'output per il processo di addestramento deve essere simile al seguente:

Name: xgboost-mnist-from-for-s3 Namespace: default Labels: <none> Annotations: <none> API Version: sagemaker.aws.amazon.com/v1 Kind: TrainingJob Metadata: Creation Timestamp: 2019-11-20T23:42:35Z Finalizers: sagemaker-operator-finalizer Generation: 2 Resource Version: 23119 Self Link: /apis/sagemaker.aws.amazon.com/v1/namespaces/default/trainingjobs/xgboost-mnist-from-for-s3 UID: 6d7uiui-0bef-11ea-b94e-0ed467example Spec: Algorithm Specification: Training Image: 8256416981234.dkr.ecr.us-east-2.amazonaws.com/xgboost:1 Training Input Mode: File Hyper Parameters: Name: eta Value: 0.2 Name: gamma Value: 4 Name: max_depth Value: 5 Name: min_child_weight Value: 6 Name: num_class Value: 10 Name: num_round Value: 10 Name: objective Value: multi:softmax Name: silent Value: 0 Input Data Config: Channel Name: train Compression Type: None Content Type: text/csv Data Source: S 3 Data Source: S 3 Data Distribution Type: FullyReplicated S 3 Data Type: S3Prefix S 3 Uri: https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/train/ Channel Name: validation Compression Type: None Content Type: text/csv Data Source: S 3 Data Source: S 3 Data Distribution Type: FullyReplicated S 3 Data Type: S3Prefix S 3 Uri: https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/validation/ Output Data Config: S 3 Output Path: s3://amzn-s3-demo-bucket/sagemaker/xgboost-mnist/xgboost/ Region: us-east-2 Resource Config: Instance Count: 1 Instance Type: ml.m4.xlarge Volume Size In GB: 5 Role Arn: arn:aws:iam::12345678910:role/service-role/AmazonSageMaker-ExecutionRole Stopping Condition: Max Runtime In Seconds: 86400 Training Job Name: xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0example Status: Cloud Watch Log URL: https://us-east-2.console.aws.amazon.com/cloudwatch/home?region=us-east-2#logStream:group=/aws/sagemaker/TrainingJobs;prefix=<example>;streamFilter=typeLogStreamPrefix Last Check Time: 2019-11-20T23:44:29Z Sage Maker Training Job Name: xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94eexample Secondary Status: Downloading Training Job Status: InProgress Events: <none>

Visualizza i registri da TrainingJobs

Utilizza il seguente comando per visualizzare i registri del processo di addestramento kmeans-mnist:

kubectl smlogs trainingjob xgboost-mnist-from-for-s3

L'aspetto dell'output sarà simile al seguente. I log delle istanze sono disposti in ordine cronologico.

"xgboost-mnist-from-for-s3" has SageMaker TrainingJobName "xgboost-mnist-from-for-s3-123456789" in region "us-east-2", status "InProgress" and secondary status "Starting" xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC Arguments: train xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [2019-11-20:23:45:22:INFO] Running standalone xgboost training. xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [2019-11-20:23:45:22:INFO] File size need to be processed in the node: 1122.95mb. Available memory size in the node: 8586.0mb xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [2019-11-20:23:45:22:INFO] Determined delimiter of CSV input is ',' xgboost-mnist-from-for-s3-6d7fa0af0bef11eab94e0ed46example/algo-1-1574293123 2019-11-20 23:45:24.7 +0000 UTC [23:45:22] S3DistributionType set as FullyReplicated

Elimina TrainingJobs

Utilizza il seguente comando per interrompere un processo di formazione su Amazon SageMaker AI:

kubectl delete trainingjob xgboost-mnist-from-for-s3

Questo comando rimuove il processo SageMaker di formazione da Kubernetes. Questo comando restituisce il seguente output:

trainingjob.sagemaker.aws.amazon.com "xgboost-mnist-from-for-s3" deleted

Se il processo è ancora in corso sull' SageMaker intelligenza artificiale, il processo si interrompe. Non è previsto alcun addebito per le risorse di SageMaker intelligenza artificiale dopo l'interruzione o il completamento del lavoro.

Nota: l' SageMaker IA non elimina i lavori di formazione. I lavori interrotti continuano a essere visualizzati sulla console SageMaker AI. Il delete comando impiega circa 2 minuti per ripulire le risorse dall' SageMaker IA.

L' HyperParameterTuningJoboperatore

Gli operatori del processo di ottimizzazione degli iperparametri riconciliano le specifiche del lavoro di ottimizzazione degli iperparametri specificato con l'intelligenza artificiale avviandola nell'IA. SageMaker SageMaker Puoi saperne di più sui lavori di ottimizzazione degli iperparametri dell'IA nella documentazione dell' SageMaker IA. SageMaker CreateHyperParameterTuningJob API

Crea un file HyperparameterTuningJob utilizzando un file YAML

  1. Scaricate il YAML file di esempio per il lavoro di ottimizzazione degli iperparametri utilizzando il seguente comando:

    wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-hpo.yaml
  2. Modifica il file xgboost-mnist-hpo.yaml per sostituire il parametro roleArn con il tuo sagemaker-execution-role. Affinché il processo di ottimizzazione degli iperparametri abbia esito positivo, devi anche modificare s3InputPath e s3OutputPath con valori che corrispondano al tuo account. Applicate il YAML file degli aggiornamenti utilizzando il seguente comando:

    kubectl apply -f xgboost-mnist-hpo.yaml

Crea un grafico HyperparameterTuningJob utilizzando un Helm Chart

È possibile utilizzare i grafici Helm per eseguire processi di ottimizzazione degli iperparametri.

  1. Clona il GitHub repository per ottenere il codice sorgente usando il seguente comando:

    git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git
  2. Accedi alla cartella amazon-sagemaker-operator-for-k8s/hack/charts/hyperparameter-tuning-jobs/.

  3. Modifica il file values.yaml per sostituire il parametro roleArn con il tuo sagemaker-execution-role. Affinché il processo di ottimizzazione degli iperparametri abbia esito positivo, devi anche modificare s3InputPath e s3OutputPath con valori che corrispondano al tuo account.

Crea il HyperparameterTuningJob

Dopo aver sostituito i ruoli e i percorsi Amazon S3 con i valori appropriati in values.yaml, puoi creare un processo di ottimizzazione degli iperparametri utilizzando il seguente comando:

helm install . --generate-name

L'aspetto dell'output sarà simile al seguente:

NAME: chart-1574292948 LAST DEPLOYED: Wed Nov 20 23:35:49 2019 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: Thanks for installing the sagemaker-k8s-hyperparametertuningjob.

Verifica dell'installazione del grafico

Per verificare che Helm Chart sia stato creato correttamente, esegui il comando seguente:

helm ls

L'aspetto dell'output deve essere simile al seguente:

NAME NAMESPACE REVISION UPDATED chart-1474292948 default 1 2019-11-20 23:35:49.9136092 +0000 UTC deployed sagemaker-k8s-hyperparametertuningjob-0.1.0 STATUS CHART APP VERSION chart-1574292948 default 1 2019-11-20 23:35:49.9136092 +0000 UTC deployed sagemaker-k8s-trainingjob-0.1.0 rolebased-1574291698 default 1 2019-11-20 23:14:59.6777082 +0000 UTC deployed sagemaker-k8s-operator-0.1.0

helm install crea una risorsa HyperParameterTuningJob Kubernetes. L'operatore avvia l'effettivo processo di ottimizzazione degli iperparametri nell' SageMaker intelligenza artificiale e aggiorna la risorsa HyperParameterTuningJob Kubernetes in modo che rifletta lo stato del lavoro nell'IA. SageMaker Ti verranno addebitati dei costi per le risorse di SageMaker intelligenza artificiale utilizzate durante la durata del tuo lavoro. I processi interrotti o completati non influiscono in alcun modo sulle risorse.

Nota: l' SageMaker intelligenza artificiale non consente di aggiornare un processo di ottimizzazione iperparametrica in esecuzione. Non è possibile modificare alcun parametro e riapplicare il file di configurazione. È necessario modificare il nome dei metadati o eliminare il processo esistente e crearne uno nuovo. Analogamente agli operatori di addestramento esistenti, come TFJob in Kubeflow, update non è supportato.

Elenco HyperparameterTuningJobs

Utilizza il seguente comando per elencare tutti i processi creati utilizzando l'operatore Kubernetes:

kubectl get hyperparametertuningjob

L'aspetto dell'output deve essere simile al seguente:

NAME STATUS CREATION-TIME COMPLETED INPROGRESS ERRORS STOPPED BEST-TRAINING-JOB SAGEMAKER-JOB-NAME xgboost-mnist-hpo Completed 2019-10-17T01:15:52Z 10 0 0 0 xgboostha92f5e3cf07b11e9bf6c06d6-009-4c7a123 xgboostha92f5e3cf07b11e9bf6c123

Un processo di ottimizzazione degli iperparametri continua a essere elencato dopo il completamento o l'esito negativo del processo. È possibile rimuovere un file hyperparametertuningjob dall'elenco seguendo le fasi in Eliminare un HyperparameterTuningJob. I lavori completati o interrotti non comportano alcun addebito per le risorse di SageMaker intelligenza artificiale.

Valori dello stato del processo di ottimizzazione degli iperparametri

Il campo STATUS può corrispondere a uno dei seguenti valori:

  • Completed

  • InProgress

  • Failed

  • Stopped

  • Stopping

Questi stati provengono direttamente dalla documentazione ufficiale dell' SageMaker IA. API

Oltre allo status ufficiale di SageMaker IA, è possibile STATUS SynchronizingK8sJobWithSageMaker esserlo. Ciò significa che l'operatore non ha ancora elaborato il processo.

Contatori di stato

L’output ha vari contatori, come COMPLETED e INPROGRESS. Questi rappresentano rispettivamente quanti processi di addestramento sono stati completati e sono in corso. Per ulteriori informazioni su come vengono determinati, TrainingJobStatusCountersconsulta la SageMaker API documentazione.

Migliore TrainingJob

Questa colonna contiene il nome di TrainingJob che meglio ha ottimizzato la metrica selezionata.

Per visualizzare un riepilogo degli iperparametri ottimizzati, esegui:

kubectl describe hyperparametertuningjob xgboost-mnist-hpo

Per visualizzare informazioni dettagliate su TrainingJob, esegui:

kubectl describe trainingjobs <job name>

Generato TrainingJobs

Puoi anche tracciare tutti i 10 processi di addestramento in Kubernetes avviati da HyperparameterTuningJob eseguendo il seguente comando:

kubectl get trainingjobs

Descrivi un HyperparameterTuningJob

È possibile consultare i dettagli di debug utilizzando il comando describe kubectl.

kubectl describe hyperparametertuningjob xgboost-mnist-hpo

Oltre alle informazioni sul processo di ottimizzazione, SageMaker AI Operator for Kubernetes presenta nell'output anche il miglior processo di formazione trovato dal processo di ottimizzazione degli iperparametri, come segue: describe

Name: xgboost-mnist-hpo Namespace: default Labels: <none> Annotations: kubectl.kubernetes.io/last-applied-configuration: {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"HyperparameterTuningJob","metadata":{"annotations":{},"name":"xgboost-mnist-hpo","namespace":... API Version: sagemaker.aws.amazon.com/v1 Kind: HyperparameterTuningJob Metadata: Creation Timestamp: 2019-10-17T01:15:52Z Finalizers: sagemaker-operator-finalizer Generation: 2 Resource Version: 8167 Self Link: /apis/sagemaker.aws.amazon.com/v1/namespaces/default/hyperparametertuningjobs/xgboost-mnist-hpo UID: a92f5e3c-f07b-11e9-bf6c-06d6f303uidu Spec: Hyper Parameter Tuning Job Config: Hyper Parameter Tuning Job Objective: Metric Name: validation:error Type: Minimize Parameter Ranges: Integer Parameter Ranges: Max Value: 20 Min Value: 10 Name: num_round Scaling Type: Linear Resource Limits: Max Number Of Training Jobs: 10 Max Parallel Training Jobs: 10 Strategy: Bayesian Training Job Early Stopping Type: Off Hyper Parameter Tuning Job Name: xgboostha92f5e3cf07b11e9bf6c06d6 Region: us-east-2 Training Job Definition: Algorithm Specification: Training Image: 12345678910.dkr.ecr.us-east-2.amazonaws.com/xgboost:1 Training Input Mode: File Input Data Config: Channel Name: train Content Type: text/csv Data Source: s3DataSource: s3DataDistributionType: FullyReplicated s3DataType: S3Prefix s3Uri: https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/train/ Channel Name: validation Content Type: text/csv Data Source: s3DataSource: s3DataDistributionType: FullyReplicated s3DataType: S3Prefix s3Uri: https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/validation/ Output Data Config: s3OutputPath: https://s3-us-east-2.amazonaws.com/amzn-s3-demo-bucket/sagemaker/xgboost-mnist/xgboost Resource Config: Instance Count: 1 Instance Type: ml.m4.xlarge Volume Size In GB: 5 Role Arn: arn:aws:iam::123456789012:role/service-role/AmazonSageMaker-ExecutionRole Static Hyper Parameters: Name: base_score Value: 0.5 Name: booster Value: gbtree Name: csv_weights Value: 0 Name: dsplit Value: row Name: grow_policy Value: depthwise Name: lambda_bias Value: 0.0 Name: max_bin Value: 256 Name: max_leaves Value: 0 Name: normalize_type Value: tree Name: objective Value: reg:linear Name: one_drop Value: 0 Name: prob_buffer_row Value: 1.0 Name: process_type Value: default Name: rate_drop Value: 0.0 Name: refresh_leaf Value: 1 Name: sample_type Value: uniform Name: scale_pos_weight Value: 1.0 Name: silent Value: 0 Name: sketch_eps Value: 0.03 Name: skip_drop Value: 0.0 Name: tree_method Value: auto Name: tweedie_variance_power Value: 1.5 Stopping Condition: Max Runtime In Seconds: 86400 Status: Best Training Job: Creation Time: 2019-10-17T01:16:14Z Final Hyper Parameter Tuning Job Objective Metric: Metric Name: validation:error Value: Objective Status: Succeeded Training End Time: 2019-10-17T01:20:24Z Training Job Arn: arn:aws:sagemaker:us-east-2:123456789012:training-job/xgboostha92f5e3cf07b11e9bf6c06d6-009-4sample Training Job Name: xgboostha92f5e3cf07b11e9bf6c06d6-009-4c7a3059 Training Job Status: Completed Training Start Time: 2019-10-17T01:18:35Z Tuned Hyper Parameters: Name: num_round Value: 18 Hyper Parameter Tuning Job Status: Completed Last Check Time: 2019-10-17T01:21:01Z Sage Maker Hyper Parameter Tuning Job Name: xgboostha92f5e3cf07b11e9bf6c06d6 Training Job Status Counters: Completed: 10 In Progress: 0 Non Retryable Error: 0 Retryable Error: 0 Stopped: 0 Total Error: 0 Events: <none>

Visualizza i log da HyperparameterTuningJobs

I processi di ottimizzazione degli iperparametri non dispongono di log, ma tutti i processi di addestramento da essi avviati li contengono. È possibile accedere a questi log come se si trattasse di un normale processo di addestramento. Per ulteriori informazioni, consulta Visualizza i registri da TrainingJobs.

Eliminare un HyperparameterTuningJob

Usa il seguente comando per interrompere un lavoro iperparametrico in SageMaker AI.

kubectl delete hyperparametertuningjob xgboost-mnist-hpo

Questo comando rimuove il processo di ottimizzazione degli iperparametri e i lavori di formazione associati dal cluster Kubernetes e li interrompe nell'IA. SageMaker I lavori interrotti o completati non comportano alcun addebito per le risorse AI. SageMaker SageMaker L'intelligenza artificiale non elimina i lavori di ottimizzazione degli iperparametri. I lavori interrotti continuano a essere visualizzati sulla console SageMaker AI.

L'aspetto dell'output deve essere simile al seguente:

hyperparametertuningjob.sagemaker.aws.amazon.com "xgboost-mnist-hpo" deleted

Nota: il comando delete impiega circa 2 minuti per ripulire le risorse dall' SageMaker IA.

L' BatchTransformJob operatore

Gli operatori del processo di trasformazione in batch riconciliano le specifiche del lavoro di trasformazione in batch specificato con l' SageMaker intelligenza artificiale lanciandola nell'IA. SageMaker Puoi saperne di più sul processo di trasformazione in batch dell' SageMaker IA nella documentazione sull'intelligenza artificiale. SageMaker CreateTransformJob API

Crea un BatchTransformJob utilizzando un YAML file

  1. Scaricate il YAML file di esempio per il processo di trasformazione batch utilizzando il seguente comando:

    wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-batchtransform.yaml
  2. Modifica il file xgboost-mnist-batchtransform.yaml per modificare i parametri necessari per sostituirlo inputdataconfig con i tuoi dati di input e s3OutputPath con i bucket Amazon S3 a cui il ruolo di esecuzione SageMaker AI ha accesso in scrittura.

  3. Applica il YAML file utilizzando il seguente comando:

    kubectl apply -f xgboost-mnist-batchtransform.yaml

Crea un grafico BatchTransformJob utilizzando un Helm Chart

È possibile utilizzare Helm Chart per eseguire processi di trasformazione in batch.

Ottenimento della directory del programma di installazione Helm

Clona il GitHub repository per ottenere il codice sorgente usando il seguente comando:

git clone https://github.com/aws/amazon-sagemaker-operator-for-k8s.git

Configurazione di Helm Chart

Accedi alla cartella amazon-sagemaker-operator-for-k8s/hack/charts/batch-transform-jobs/.

Modifica il values.yaml file per sostituirlo inputdataconfig con i tuoi dati di input e outputPath con i tuoi bucket S3 a cui il ruolo di esecuzione SageMaker AI ha accesso in scrittura.

Crea un BatchTransformJob

  1. Per creare un processo di trasformazione in batch, utilizza il comando seguente:

    helm install . --generate-name

    L'aspetto dell'output deve essere simile al seguente:

    NAME: chart-1574292948 LAST DEPLOYED: Wed Nov 20 23:35:49 2019 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: Thanks for installing the sagemaker-k8s-batch-transform-job.
  2. Per verificare che Helm Chart sia stato creato correttamente, esegui il comando seguente:

    helm ls NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION chart-1474292948 default 1 2019-11-20 23:35:49.9136092 +0000 UTC deployed sagemaker-k8s-batchtransformjob-0.1.0 chart-1474292948 default 1 2019-11-20 23:35:49.9136092 +0000 UTC deployed sagemaker-k8s-hyperparametertuningjob-0.1.0 chart-1574292948 default 1 2019-11-20 23:35:49.9136092 +0000 UTC deployed sagemaker-k8s-trainingjob-0.1.0 rolebased-1574291698 default 1 2019-11-20 23:14:59.6777082 +0000 UTC deployed sagemaker-k8s-operator-0.1.0

    Questo comando crea una risorsa BatchTransformJob Kubernetes. L'operatore avvia l'effettivo processo di trasformazione in SageMaker AI e aggiorna la risorsa BatchTransformJob Kubernetes in modo che rifletta lo stato del lavoro nell'IA. SageMaker Ti verranno addebitati dei costi per le risorse di SageMaker intelligenza artificiale utilizzate durante la durata del tuo lavoro. I processi interrotti o completati non influiscono in alcun modo sulle risorse.

Nota: l' SageMaker intelligenza artificiale non consente di aggiornare un processo di trasformazione in batch in esecuzione. Non è possibile modificare alcun parametro e riapplicare il file di configurazione. È necessario modificare il nome dei metadati o eliminare il processo esistente e crearne uno nuovo. Analogamente agli operatori di addestramento esistenti, come TFJob in Kubeflow, update non è supportato.

Elenco BatchTransformJobs

Utilizza il seguente comando per elencare tutti i processi creati utilizzando l'operatore Kubernetes:

kubectl get batchtransformjob

L'aspetto dell'output deve essere simile al seguente:

NAME STATUS CREATION-TIME SAGEMAKER-JOB-NAME xgboost-mnist-batch-transform Completed 2019-11-18T03:44:00Z xgboost-mnist-a88fb19809b511eaac440aa8axgboost

Un processo di trasformazione in batch continua a essere elencato dopo il completamento o l'esito negativo del processo. È possibile rimuovere un file hyperparametertuningjob dall'elenco seguendo le fasi Eliminare un BatchTransformJob. I lavori completati o interrotti non comportano alcun addebito per le risorse di SageMaker intelligenza artificiale.

Valori dello stato di trasformazione in batch

Il campo STATUS può corrispondere a uno dei seguenti valori:

  • Completed

  • InProgress

  • Failed

  • Stopped

  • Stopping

Questi stati provengono direttamente dalla documentazione ufficiale dell' SageMaker IA. API

Oltre allo status ufficiale di SageMaker IA, è possibile STATUS SynchronizingK8sJobWithSageMaker esserlo. Ciò significa che l'operatore non ha ancora elaborato il processo.

Descrivi un BatchTransformJob

È possibile consultare i dettagli di debug utilizzando il comando describe kubectl.

kubectl describe batchtransformjob xgboost-mnist-batch-transform

L'aspetto dell'output deve essere simile al seguente:

Name: xgboost-mnist-batch-transform Namespace: default Labels: <none> Annotations: kubectl.kubernetes.io/last-applied-configuration: {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"BatchTransformJob","metadata":{"annotations":{},"name":"xgboost-mnist","namespace"... API Version: sagemaker.aws.amazon.com/v1 Kind: BatchTransformJob Metadata: Creation Timestamp: 2019-11-18T03:44:00Z Finalizers: sagemaker-operator-finalizer Generation: 2 Resource Version: 21990924 Self Link: /apis/sagemaker.aws.amazon.com/v1/namespaces/default/batchtransformjobs/xgboost-mnist UID: a88fb198-09b5-11ea-ac44-0aa8a9UIDNUM Spec: Model Name: TrainingJob-20190814SMJOb-IKEB Region: us-east-1 Transform Input: Content Type: text/csv Data Source: S 3 Data Source: S 3 Data Type: S3Prefix S 3 Uri: s3://amzn-s3-demo-bucket/mnist_kmeans_example/input Transform Job Name: xgboost-mnist-a88fb19809b511eaac440aa8a9SMJOB Transform Output: S 3 Output Path: s3://amzn-s3-demo-bucket/mnist_kmeans_example/output Transform Resources: Instance Count: 1 Instance Type: ml.m4.xlarge Status: Last Check Time: 2019-11-19T22:50:40Z Sage Maker Transform Job Name: xgboost-mnist-a88fb19809b511eaac440aaSMJOB Transform Job Status: Completed Events: <none>

Visualizza i registri da BatchTransformJobs

Utilizza il seguente comando per visualizzare i registri del processo di trasformazione in batch xgboost-mnist:

kubectl smlogs batchtransformjob xgboost-mnist-batch-transform

Eliminare un BatchTransformJob

Usa il seguente comando per interrompere un processo di trasformazione batch in SageMaker AI.

kubectl delete batchTransformJob xgboost-mnist-batch-transform

L'aspetto dell'output deve essere simile al seguente:

batchtransformjob.sagemaker.aws.amazon.com "xgboost-mnist" deleted

Questo comando rimuove il processo di trasformazione in batch dal cluster Kubernetes e lo interrompe nell'IA. SageMaker I lavori interrotti o completati non comportano alcun addebito per le risorse AI. SageMaker L'eliminazione richiede circa 2 minuti per ripulire le risorse dall' SageMaker IA.

Nota: l' SageMaker intelligenza artificiale non elimina i lavori di trasformazione in batch. I lavori interrotti continuano a essere visualizzati sulla console SageMaker AI.

L' HostingDeployment operatore

HostingDeployment gli operatori supportano la creazione e l'eliminazione di un endpoint, nonché l'aggiornamento di un endpoint esistente, per l'inferenza in tempo reale. L'operatore di distribuzione dell'hosting riconcilia le specifiche del lavoro di distribuzione di hosting specificato con l'intelligenza artificiale creando modelli, configurazioni di endpoint ed endpoint nell' SageMaker intelligenza artificiale. SageMaker Puoi saperne di più sull'inferenza dell'IA nella documentazione sull'intelligenza artificiale. SageMaker SageMaker CreateEndpoint API

Configura una risorsa HostingDeployment

Scarica il YAML file di esempio per il processo di distribuzione dell'hosting utilizzando il seguente comando:

wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/xgboost-mnist-hostingdeployment.yaml

Il file xgboost-mnist-hostingdeployment.yaml contiene i seguenti componenti, che possono essere modificati in base alle esigenze:

  • ProductionVariants. Una variante di produzione è un insieme di istanze che servono un singolo modello. SageMaker L'IA bilancia il carico tra tutte le varianti di produzione in base ai pesi impostati.

  • Modelli. Un modello è il contenitore e il ruolo di esecuzione ARN necessari per servire un modello. Richiede almeno un singolo container.

  • Container. Un container specifica il set di dati e l'immagine di servizio. Se si utilizza un algoritmo personalizzato anziché un algoritmo fornito dall' SageMaker intelligenza artificiale, il codice di inferenza deve soddisfare i requisiti di SageMaker intelligenza artificiale. Per ulteriori informazioni, consulta Using Your Own Algorithms with SageMaker AI.

Crea un HostingDeployment

Per creare un HostingDeployment, usa kubectl per applicare il file hosting.yaml con il seguente comando:

kubectl apply -f hosting.yaml

SageMaker L'IA crea un endpoint con la configurazione specificata. Sono previsti costi per le risorse di SageMaker intelligenza artificiale utilizzate durante il ciclo di vita dell'endpoint. L’eliminazione dell'endpoint non influisce in alcun modo sulle risorse.

La procedura di creazione richiede circa 10 minuti.

Elenco HostingDeployments

Per verificare che sia HostingDeployment stato creato, utilizzare il seguente comando:

kubectl get hostingdeployments

L'aspetto dell'output deve essere simile al seguente:

NAME STATUS SAGEMAKER-ENDPOINT-NAME host-xgboost Creating host-xgboost-def0e83e0d5f11eaaa450aSMLOGS

HostingDeployment valori di stato

Il campo di stato può avere uno dei seguenti valori:

  • SynchronizingK8sJobWithSageMaker: l'operatore si sta preparando a creare l'endpoint.

  • ReconcilingEndpoint: l'operatore sta creando, aggiornando o eliminando le risorse dell'endpoint. Se HostingDeployment rimane in questo stato, usa kubectl describe per vedere il motivo nel Additional campo.

  • OutOfService: l'endpoint non è disponibile per accettare le richieste in arrivo.

  • Creating: CreateEndpointè in esecuzione.

  • Updating: UpdateEndpointo UpdateEndpointWeightsAndCapacitiesè in esecuzione.

  • SystemUpdating: l'endpoint è in fase di manutenzione e non può essere aggiornato, eliminato o ridimensionato fino al suo completamento. Questa operazione di manutenzione non modifica i valori specificati dal cliente come VPC configurazione, AWS KMS crittografia, modello, tipo di istanza o numero di istanze.

  • RollingBack: l'endpoint non è in grado di aumentare o ridurre il peso della variante o di modificare il peso della variante ed è in procinto di ripristinare la configurazione precedente. Una volta completato il ripristino, l'endpoint torna allo stato InService. Questo stato transitorio si applica solo a un endpoint con scalabilità automatica attivata e che sta subendo variazioni di peso o capacità di variante nell'ambito di una UpdateEndpointWeightsAndCapacitieschiamata o quando l'operazione viene richiamata in modo esplicito. UpdateEndpointWeightsAndCapacities

  • InService: l'endpoint è disponibile per elaborare le richieste in arrivo.

  • DeletingDeleteEndpoint: è in esecuzione.

  • Failed: l'endpoint non può essere creato, aggiornato o ridimensionato. Usa DescribeEndpoint: FailureReason per informazioni sull'errore. DeleteEndpointè l'unica operazione che può essere eseguita su un endpoint guasto.

Descrivi un HostingDeployment

È possibile consultare i dettagli di debug utilizzando il comando describe kubectl.

kubectl describe hostingdeployment

L'aspetto dell'output deve essere simile al seguente:

Name: host-xgboost Namespace: default Labels: <none> Annotations: kubectl.kubernetes.io/last-applied-configuration: {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"HostingDeployment","metadata":{"annotations":{},"name":"host-xgboost","namespace":"def..." API Version: sagemaker.aws.amazon.com/v1 Kind: HostingDeployment Metadata: Creation Timestamp: 2019-11-22T19:40:00Z Finalizers: sagemaker-operator-finalizer Generation: 1 Resource Version: 4258134 Self Link: /apis/sagemaker.aws.amazon.com/v1/namespaces/default/hostingdeployments/host-xgboost UID: def0e83e-0d5f-11ea-aa45-0a3507uiduid Spec: Containers: Container Hostname: xgboost Image: 123456789012.dkr.ecr.us-east-2.amazonaws.com/xgboost:latest Model Data URL: s3://amzn-s3-demo-bucket/inference/xgboost-mnist/model.tar.gz Models: Containers: xgboost Execution Role Arn: arn:aws:iam::123456789012:role/service-role/AmazonSageMaker-ExecutionRole Name: xgboost-model Primary Container: xgboost Production Variants: Initial Instance Count: 1 Instance Type: ml.c5.large Model Name: xgboost-model Variant Name: all-traffic Region: us-east-2 Status: Creation Time: 2019-11-22T19:40:04Z Endpoint Arn: arn:aws:sagemaker:us-east-2:123456789012:endpoint/host-xgboost-def0e83e0d5f11eaaaexample Endpoint Config Name: host-xgboost-1-def0e83e0d5f11e-e08f6c510d5f11eaaa450aexample Endpoint Name: host-xgboost-def0e83e0d5f11eaaa450a350733ba06 Endpoint Status: Creating Endpoint URL: https://runtime.sagemaker.us-east-2.amazonaws.com/endpoints/host-xgboost-def0e83e0d5f11eaaaexample/invocations Last Check Time: 2019-11-22T19:43:57Z Last Modified Time: 2019-11-22T19:40:04Z Model Names: Name: xgboost-model Value: xgboost-model-1-def0e83e0d5f11-df5cc9fd0d5f11eaaa450aexample Events: <none>

Il campo di stato fornisce ulteriori informazioni utilizzando i seguenti campi:

  • Additional: ulteriori informazioni sullo stato dell’implementazione in hosting. Questo campo è facoltativo e viene compilato solo in caso di errore.

  • Creation Time: Quando l'endpoint è stato creato in SageMaker AI.

  • Endpoint ARN: L'endpoint SageMaker ARN AI.

  • Endpoint Config Name: il nome SageMaker AI della configurazione dell'endpoint.

  • Endpoint Name: il nome SageMaker AI dell'endpoint.

  • Endpoint Status: lo stato dell'endpoint.

  • Endpoint URL: Il HTTPS URL che può essere utilizzato per accedere all'endpoint. Per ulteriori informazioni, consulta Implementare un modello sui servizi di hosting SageMaker AI.

  • FailureReason: se un comando di creazione, aggiornamento o eliminazione non riesce, la causa viene mostrata di seguito.

  • Last Check Time: l'ultima volta in cui l'operatore ha verificato lo stato dell'endpoint.

  • Last Modified Time: l'ultima volta in cui l'endpoint è stato modificato.

  • Model Names: coppia chiave-valore di nomi di HostingDeployment modelli per nomi di modelli SageMaker AI.

Richiamo dell'endpoint

Una volta raggiunto lo stato dell'endpointInService, è possibile richiamare l'endpoint in due modi: utilizzando AWS CLI, che esegue l'autenticazione e la firma delle URL richieste, oppure utilizzando un client come c. HTTP URL Se utilizzi il tuo client, devi eseguire la URL firma e l'autenticazione AWS v4 da solo.

Per richiamare l'endpoint utilizzando il AWS CLI, esegui il comando seguente. Assicurati di sostituire la regione e il nome dell'endpoint con la regione e il nome dell'endpoint AI del tuo endpoint. SageMaker Queste informazioni possono essere ottenute dall'output di kubectl describe.

# Invoke the endpoint with mock input data. aws sagemaker-runtime invoke-endpoint \ --region us-east-2 \ --endpoint-name <endpoint name> \ --body $(seq 784 | xargs echo | sed 's/ /,/g') \ >(cat) \ --content-type text/csv > /dev/null

Ad esempio, se la Regione è us-east-2 e il nome di configurazione dell'endpoint è host-xgboost-f56b6b280d7511ea824b129926example, il comando seguente richiamerà l'endpoint:

aws sagemaker-runtime invoke-endpoint \ --region us-east-2 \ --endpoint-name host-xgboost-f56b6b280d7511ea824b1299example \ --body $(seq 784 | xargs echo | sed 's/ /,/g') \ >(cat) \ --content-type text/csv > /dev/null 4.95847082138

Di seguito si riporta la previsione 4.95847082138 tratta dal modello per i dati fittizi.

Aggiorna HostingDeployment

  1. Una volta HostingDeployment che a ha uno stato diInService, può essere aggiornato. Potrebbero essere necessari circa 10 minuti HostingDeployment per essere in servizio. Utilizza il seguente comando per verificare che lo stato sia InService:

    kubectl get hostingdeployments
  2. HostingDeployment Può essere aggiornato prima che lo stato siaInService. L'operatore attende l'arrivo dell'endpoint SageMaker AI InService prima di applicare l'aggiornamento.

    Per applicare un aggiornamento, modifica il file hosting.yaml. Ad esempio, modifica il campo initialInstanceCount da 1 a 2 come segue:

    apiVersion: sagemaker.aws.amazon.com/v1 kind: HostingDeployment metadata: name: host-xgboost spec: region: us-east-2 productionVariants: - variantName: all-traffic modelName: xgboost-model initialInstanceCount: 2 instanceType: ml.c5.large models: - name: xgboost-model executionRoleArn: arn:aws:iam::123456789012:role/service-role/AmazonSageMaker-ExecutionRole primaryContainer: xgboost containers: - xgboost containers: - containerHostname: xgboost modelDataUrl: s3://amzn-s3-demo-bucket/inference/xgboost-mnist/model.tar.gz image: 123456789012.dkr.ecr.us-east-2.amazonaws.com/xgboost:latest
  3. Salva il file, quindi usa kubectl per applicare l'aggiornamento come segue. Dovresti vedere lo stato cambiare da InService a ReconcilingEndpoint, quindi Updating.

    $ kubectl apply -f hosting.yaml hostingdeployment.sagemaker.aws.amazon.com/host-xgboost configured $ kubectl get hostingdeployments NAME STATUS SAGEMAKER-ENDPOINT-NAME host-xgboost ReconcilingEndpoint host-xgboost-def0e83e0d5f11eaaa450a350abcdef $ kubectl get hostingdeployments NAME STATUS SAGEMAKER-ENDPOINT-NAME host-xgboost Updating host-xgboost-def0e83e0d5f11eaaa450a3507abcdef

SageMaker L'intelligenza artificiale implementa un nuovo set di istanze con i tuoi modelli, modifica il traffico per utilizzare le nuove istanze e prosciuga le vecchie istanze. Non appena questo processo inizia, lo stato diventa Updating. Una volta completato l'aggiornamento, l'endpoint diventa InService. La procedura richiede circa 10 minuti.

Elimina il HostingDeployment

  1. Usa kubectl per eliminare un HostingDeployment con il seguente comando:

    kubectl delete hostingdeployments host-xgboost

    L'aspetto dell'output deve essere simile al seguente:

    hostingdeployment.sagemaker.aws.amazon.com "host-xgboost" deleted
  2. Per verificare che l’implementazione in hosting sia stata eliminata, utilizza il seguente comando:

    kubectl get hostingdeployments No resources found.

Gli endpoint che sono stati eliminati non comportano alcun addebito per SageMaker le risorse AI.

L'operatore ProcessingJob

ProcessingJob gli operatori vengono utilizzati per avviare i processi di SageMaker elaborazione di Amazon. Per ulteriori informazioni sui SageMaker processi di elaborazione, consulta CreateProcessingJob.

Creare un file ProcessingJob utilizzando un YAML file

Segui questi passaggi per creare un processo di SageMaker elaborazione Amazon utilizzando un YAML file:

  1. Scarica lo script kmeans_preprocessing.py di pre-elaborazione.

    wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/kmeans_preprocessing.py
  2. In uno dei bucket Amazon Simple Storage Service (Amazon S3), crea una cartella mnist_kmeans_example/processing_code e carica lo script nella cartella.

  3. Scarica il file kmeans-mnist-processingjob.yaml.

    wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/kmeans-mnist-processingjob.yaml
  4. Modifica il YAML file per specificare sagemaker-execution-role e sostituisci tutte le istanze amzn-s3-demo-bucket con il tuo bucket S3.

    ... metadata: name: kmeans-mnist-processing ... roleArn: arn:aws:iam::<acct-id>:role/service-role/<sagemaker-execution-role> ... processingOutputConfig: outputs: ... s3Output: s3Uri: s3://<amzn-s3-demo-bucket>/mnist_kmeans_example/output/ ... processingInputs: ... s3Input: s3Uri: s3://<amzn-s3-demo-bucket>/mnist_kmeans_example/processing_code/kmeans_preprocessing.py

    sagemaker-execution-roleDevono disporre delle autorizzazioni affinché l' SageMaker IA possa accedere al tuo bucket S3, ad Amazon CloudWatch e ad altri servizi per tuo conto. Per ulteriori informazioni sulla creazione di un ruolo di esecuzione, consulta SageMaker AI Roles.

  5. Applica il YAML file utilizzando uno dei seguenti comandi.

    Per l'installazione nell’ambito del cluster:

    kubectl apply -f kmeans-mnist-processingjob.yaml

    Per l'installazione nell’ambito dello spazio dei nomi:

    kubectl apply -f kmeans-mnist-processingjob.yaml -n <NAMESPACE>

Elenco ProcessingJobs

Utilizzate uno dei seguenti comandi per elencare tutti i lavori creati utilizzando l' ProcessingJob operatore. SAGEMAKER-JOB-NAME proviene dalla metadata sezione del YAML file.

Per l'installazione nell’ambito del cluster:

kubectl get ProcessingJob kmeans-mnist-processing

Per l'installazione nell’ambito dello spazio dei nomi:

kubectl get ProcessingJob -n <NAMESPACE> kmeans-mnist-processing

L'aspetto dell'output sarà simile al seguente:

NAME STATUS CREATION-TIME SAGEMAKER-JOB-NAME kmeans-mnist-processing InProgress 2020-09-22T21:13:25Z kmeans-mnist-processing-7410ed52fd1811eab19a165ae9f9e385

L'output elenca tutti i processi, indipendentemente dal loro stato. Per rimuovere un processo dall'elenco, consulta Eliminazione di un processo di elaborazione.

ProcessingJob Stato
  • SynchronizingK8sJobWithSageMaker: il processo viene innanzitutto trasmesso al cluster. L'operatore ha ricevuto la richiesta e si sta preparando per creare il processo di elaborazione.

  • Reconciling: l'operatore sta inizializzando o ripristinando errori transitori, insieme ad altri. Se il processo di elaborazione rimane in questo stato, utilizza il comando kubectl describe per visualizzare il motivo nel campo Additional.

  • InProgress | Completed | Failed | Stopping | Stopped— Stato del SageMaker processo di elaborazione. Per ulteriori informazioni, consulta DescribeProcessingJob.

  • Error: l'operatore non può eseguire il ripristino mediante riconciliazione.

I lavori completati, interrotti o non riusciti non comportano ulteriori addebiti per le risorse di SageMaker intelligenza artificiale.

Descrivi un ProcessingJob

Utilizza uno dei seguenti comandi per ottenere maggiori dettagli su un processo di elaborazione. Questi comandi vengono in genere utilizzati per il debug di un problema o il controllo dei parametri di un processo di elaborazione.

Per l'installazione nell’ambito del cluster:

kubectl describe processingjob kmeans-mnist-processing

Per l'installazione nell’ambito dello spazio dei nomi:

kubectl describe processingjob kmeans-mnist-processing -n <NAMESPACE>

L'aspetto dell'output del processo di elaborazione sarà simile al seguente.

$ kubectl describe ProcessingJob kmeans-mnist-processing Name: kmeans-mnist-processing Namespace: default Labels: <none> Annotations: kubectl.kubernetes.io/last-applied-configuration: {"apiVersion":"sagemaker.aws.amazon.com/v1","kind":"ProcessingJob","metadata":{"annotations":{},"name":"kmeans-mnist-processing",... API Version: sagemaker.aws.amazon.com/v1 Kind: ProcessingJob Metadata: Creation Timestamp: 2020-09-22T21:13:25Z Finalizers: sagemaker-operator-finalizer Generation: 2 Resource Version: 21746658 Self Link: /apis/sagemaker.aws.amazon.com/v1/namespaces/default/processingjobs/kmeans-mnist-processing UID: 7410ed52-fd18-11ea-b19a-165ae9f9e385 Spec: App Specification: Container Entrypoint: python /opt/ml/processing/code/kmeans_preprocessing.py Image Uri: 763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-training:1.5.0-cpu-py36-ubuntu16.04 Environment: Name: MYVAR Value: my_value Name: MYVAR2 Value: my_value2 Network Config: Processing Inputs: Input Name: mnist_tar s3Input: Local Path: /opt/ml/processing/input s3DataType: S3Prefix s3InputMode: File s3Uri: s3://<s3bucket>-us-west-2/algorithms/kmeans/mnist/mnist.pkl.gz Input Name: source_code s3Input: Local Path: /opt/ml/processing/code s3DataType: S3Prefix s3InputMode: File s3Uri: s3://<s3bucket>/mnist_kmeans_example/processing_code/kmeans_preprocessing.py Processing Output Config: Outputs: Output Name: train_data s3Output: Local Path: /opt/ml/processing/output_train/ s3UploadMode: EndOfJob s3Uri: s3://<s3bucket>/mnist_kmeans_example/output/ Output Name: test_data s3Output: Local Path: /opt/ml/processing/output_test/ s3UploadMode: EndOfJob s3Uri: s3://<s3bucket>/mnist_kmeans_example/output/ Output Name: valid_data s3Output: Local Path: /opt/ml/processing/output_valid/ s3UploadMode: EndOfJob s3Uri: s3://<s3bucket>/mnist_kmeans_example/output/ Processing Resources: Cluster Config: Instance Count: 1 Instance Type: ml.m5.xlarge Volume Size In GB: 20 Region: us-west-2 Role Arn: arn:aws:iam::<acct-id>:role/m-sagemaker-role Stopping Condition: Max Runtime In Seconds: 1800 Tags: Key: tagKey Value: tagValue Status: Cloud Watch Log URL: https://us-west-2.console.aws.amazon.com/cloudwatch/home?region=us-west-2#logStream:group=/aws/sagemaker/ProcessingJobs;prefix=kmeans-mnist-processing-7410ed52fd1811eab19a165ae9f9e385;streamFilter=typeLogStreamPrefix Last Check Time: 2020-09-22T21:14:29Z Processing Job Status: InProgress Sage Maker Processing Job Name: kmeans-mnist-processing-7410ed52fd1811eab19a165ae9f9e385 Events: <none>

Eliminare un ProcessingJob

Quando elimini un processo di elaborazione, il processo di SageMaker elaborazione viene rimosso da Kubernetes ma non viene eliminato dall'AI. SageMaker Se lo stato del processo in SageMaker AI è, InProgress il processo viene interrotto. I processi di elaborazione interrotti non comportano alcun addebito per le risorse SageMaker AI. Utilizza uno dei seguenti comandi per eliminare un processo di elaborazione.

Per l'installazione nell’ambito del cluster:

kubectl delete processingjob kmeans-mnist-processing

Per l'installazione nell’ambito dello spazio dei nomi:

kubectl delete processingjob kmeans-mnist-processing -n <NAMESPACE>

L'aspetto dell'output del processo di elaborazione sarà simile al seguente.

processingjob.sagemaker.aws.amazon.com "kmeans-mnist-processing" deleted

Nota

SageMaker L'IA non elimina il processo di elaborazione. I lavori interrotti continuano a essere visualizzati nella console SageMaker AI. Il delete comando impiega alcuni minuti per ripulire le risorse dall' SageMaker IA.

HostingAutoscalingPolicy (HAP) Operatore

L'operatore HostingAutoscalingPolicy (HAP) accetta un elenco di risorse IDs come input e applica la stessa politica a ciascuna di esse. Ogni ID di risorsa è una combinazione di un nome di endpoint e un nome di variante. L'HAPoperatore esegue due passaggi: registra la risorsa IDs e quindi applica la politica di scalabilità a ciascun ID di risorsa. Deleteannulla entrambe le azioni. Puoi applicarlo HAP a un endpoint SageMaker AI esistente oppure puoi creare un nuovo endpoint SageMaker AI utilizzando l'operatore. HostingDeployment Puoi leggere ulteriori informazioni sull'autoscaling dell' SageMaker IA nella documentazione dell'Application Autoscaling Policy.

Nota

Nei comandi kubectl, è possibile utilizzare la forma breve hap anziché hostingautoscalingpolicy.

HostingAutoscalingPolicy Crea un file utilizzando un file YAML

Usa un YAML file per creare un HostingAutoscalingPolicy (HAP) che applichi una metrica predefinita o personalizzata a uno o più endpoint SageMaker AI.

Amazon SageMaker AI richiede valori specifici per applicare la scalabilità automatica alla tua variante. Se questi valori non sono specificati nelle YAML specifiche, l'HAPoperatore applica i seguenti valori predefiniti.

# Do not change Namespace = "sagemaker" # Do not change ScalableDimension = "sagemaker:variant:DesiredInstanceCount" # Only one supported PolicyType = "TargetTrackingScaling" # This is the default policy name but can be changed to apply a custom policy DefaultAutoscalingPolicyName = "SageMakerEndpointInvocationScalingPolicy"

Utilizzate i seguenti esempi per creare una metrica HAP che applichi una metrica predefinita o personalizzata a uno o più endpoint.

Esempio 1: applicazione di una metrica predefinita a una singola variante di endpoint

  1. Scarica il YAML file di esempio per una metrica predefinita utilizzando il seguente comando:

    wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-predefined-metric.yaml
  2. Modifica il YAML file per specificare il tuo endpointNamevariantName, e. Region

  3. Utilizza uno dei seguenti comandi per applicare una metrica predefinita a un singolo ID di risorsa (combinazione di nome dell'endpoint e nome della variante).

    Per l'installazione nell’ambito del cluster:

    kubectl apply -f hap-predefined-metric.yaml

    Per l'installazione nell’ambito dello spazio dei nomi:

    kubectl apply -f hap-predefined-metric.yaml -n <NAMESPACE>

Esempio 2: applicazione di una metrica personalizzata a una singola variante di endpoint

  1. Scarica il YAML file di esempio per una metrica personalizzata utilizzando il seguente comando:

    wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-custom-metric.yaml
  2. Modifica il YAML file per specificare il tuo endpointNamevariantName, eRegion.

  3. Utilizza uno dei seguenti comandi per applicare una metrica personalizzata a un singolo ID di risorsa (combinazione di nome dell'endpoint e nome della variante) al posto di SageMakerVariantInvocationsPerInstance (consigliato).

    Nota

    Amazon SageMaker AI non verifica la validità delle tue YAML specifiche.

    Per l'installazione nell’ambito del cluster:

    kubectl apply -f hap-custom-metric.yaml

    Per l'installazione nell’ambito dello spazio dei nomi:

    kubectl apply -f hap-custom-metric.yaml -n <NAMESPACE>

Esempio 3: applicazione di una policy di scalabilità a più endpoint e varianti

Puoi utilizzare l'HAPoperatore per applicare la stessa politica di scalabilità a più risorse. IDs Viene creata una richiesta scaling_policy separata per ogni ID di risorsa (combinazione di nome dell'endpoint e nome della variante).

  1. Scaricate il YAML file di esempio per una metrica predefinita utilizzando il seguente comando:

    wget https://raw.githubusercontent.com/aws/amazon-sagemaker-operator-for-k8s/master/samples/hap-predefined-metric.yaml
  2. Modifica il YAML file per specificare i tuoi Region e multipli endpointName e variantName valori.

  3. Utilizza uno dei seguenti comandi per applicare una metrica predefinita a più risorse IDs (combinazioni di nome dell'endpoint e nome della variante).

    Per l'installazione nell’ambito del cluster:

    kubectl apply -f hap-predefined-metric.yaml

    Per l'installazione nell’ambito dello spazio dei nomi:

    kubectl apply -f hap-predefined-metric.yaml -n <NAMESPACE>

Considerazioni relative a più endpoint e HostingAutoscalingPolicies varianti

Le seguenti considerazioni si applicano quando si utilizzano più risorse: IDs

  • Se si applica una singola politica a più risorseIDs, ARN viene creata una politica per ID di risorsa. Cinque endpoint hanno cinque P. olicyARNs Quando si esegue il describe comando sulla policy, le risposte vengono visualizzate come un unico processo e includono un unico stato del processo.

  • Se applichi una metrica personalizzata a più risorseIDs, viene utilizzata la stessa dimensione o lo stesso valore per tutti i valori dell'ID della risorsa (variante). Ad esempio, se si applica una metrica relativa al cliente per le istanze 1-5 e la dimensione della variante dell'endpoint viene mappata alla variante 1, quando la variante 1 supera le metriche, tutti gli endpoint vengono ridimensionati verso l'alto o verso il basso.

  • L'HAPoperatore supporta l'aggiornamento dell'elenco delle risorseIDs. Se si modifica, si aggiunge o si elimina una risorsa IDs alla specifica, la politica di scalabilità automatica viene rimossa dall'elenco precedente di varianti e applicata alle nuove combinazioni di ID di risorsa specificate. Utilizzate il describecomando per elencare la risorsa IDs a cui è attualmente applicata la politica.

Elenco HostingAutoscalingPolicies

Utilizzate uno dei seguenti comandi per elencare tutti i HostingAutoscalingPolicies (HAPs) creati utilizzando l'HAPoperatore.

Per l'installazione nell’ambito del cluster:

kubectl get hap

Per l'installazione nell’ambito dello spazio dei nomi:

kubectl get hap -n <NAMESPACE>

L'aspetto dell'output sarà simile al seguente:

NAME STATUS CREATION-TIME hap-predefined Created 2021-07-13T21:32:21Z

Usa il seguente comando per controllare lo stato del tuo HostingAutoscalingPolicy (HAP).

kubectl get hap <job-name>

Viene restituito uno dei seguenti valori:

  • Reconciling: alcuni tipi di errori mostrano lo stato Reconciling anziché Error. Ne sono un esempio gli errori lato server e gli endpoint con stato Creating o Updating. Controlla il campo Additional dello stato o dei registri dell'operatore per ulteriori dettagli.

  • Created

  • Error

Per visualizzare l'endpoint di scalabilità automatica a cui hai applicato la policy:
  1. Apri la console Amazon SageMaker AI all'indirizzo https://console.aws.amazon.com/sagemaker/.

  2. Nel pannello laterale sinistro, espandi Inferenza.

  3. Scegli Endpoint.

  4. Seleziona il nome dell'endpoint di interesse.

  5. Scorri fino alla sezione Impostazioni di configurazione degli endpoint.

Descrivi un HostingAutoscalingPolicy

Usa il seguente comando per ottenere maggiori dettagli su a HostingAutoscalingPolicy (HAP). Questi comandi vengono in genere utilizzati per eseguire il debug di un problema o controllare la risorsa IDs (nome dell'endpoint e combinazioni di nomi delle varianti) di a. HAP

kubectl describe hap <job-name>

Aggiorna un HostingAutoscalingPolicy

L'operatore HostingAutoscalingPolicy (HAP) supporta gli aggiornamenti. È possibile modificare le YAML specifiche per modificare i valori e quindi riapplicare la politica. L'HAPoperatore elimina la politica esistente e applica la nuova politica.

Eliminare un HostingAutoscalingPolicy

Utilizzate uno dei seguenti comandi per eliminare una politica HostingAutoscalingPolicy (HAP).

Per l'installazione nell’ambito del cluster:

kubectl delete hap hap-predefined

Per l'installazione nell’ambito dello spazio dei nomi:

kubectl delete hap hap-predefined -n <NAMESPACE>

Questo comando elimina la policy di scalabilità e annulla la registrazione della destinazione di scalabilità da Kubernetes. Questo comando restituisce il seguente output:

hostingautoscalingpolicies.sagemaker.aws.amazon.com "hap-predefined" deleted

Aggiorna o elimina un endpoint con un HostingAutoscalingPolicy

Per aggiornare un endpoint che ha un HostingAutoscalingPolicy (HAP), utilizzate il kubectl delete comando per rimuovere ilHAP, aggiornare l'endpoint e quindi riapplicare il. HAP

Per eliminare un endpoint che ha unHAP, usa il kubectl delete comando remove the HAP prima di eliminare l'endpoint.