

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à.

# Guida introduttiva AWS Batch all' SageMaker IA
<a name="getting-started-sagemaker"></a>

AWS Batch i lavori di assistenza consentono di inviare lavori di SageMaker formazione tramite code di AWS Batch lavoro con funzionalità di pianificazione, prioritizzazione e messa in coda. Questo tutorial dimostra come configurare ed eseguire un semplice processo di formazione utilizzando i job di servizio. SageMaker AWS Batch 

**Contents**
+ [Panoramica di](#getting-started-sagemaker-context)
+ [Prerequisiti](#getting-started-sagemaker-prerequisites)
+ [Fase 1: Creare un ruolo di esecuzione SageMaker AI](#getting-started-sagemaker-step-1)
+ [Fase 2: Crea il tuo ambiente di servizio](#getting-started-sagemaker-step-2)
+ [Fase 3: Crea la tua coda SageMaker di lavoro](#getting-started-sagemaker-step-3)
+ [Fase 4: Creare e inviare un lavoro di formazione](#getting-started-sagemaker-step-4)
+ [Fase 5: Monitoraggio dello stato del lavoro](#getting-started-sagemaker-step-5)
+ [Fase 6: Visualizzazione dell'output del lavoro](#getting-started-sagemaker-step-6)
+ [Passaggio 7: ripulisci le risorse del tutorial](#getting-started-sagemaker-step-7)
+ [Risorse aggiuntive](#getting-started-sagemaker-additional-resources)

## Panoramica di
<a name="getting-started-sagemaker-context"></a>

Questo tutorial illustra come configurare i lavori di AWS Batch servizio per i lavori di SageMaker formazione utilizzando. AWS CLI

**Destinatari**  
Questo tutorial è progettato per data scientist e sviluppatori responsabili della creazione e dell'esecuzione di corsi di formazione sull'apprendimento automatico su larga scala.

**Funzionalità utilizzate**  
Questo tutorial mostra come utilizzare il file AWS CLI per:  
+ Creare un ambiente di servizio per i lavori di SageMaker formazione
+ Crea una coda SageMaker di lavori di formazione
+ Invia lavori di assistenza utilizzando l'API `SubmitServiceJob`
+ Monitora lo stato del lavoro e visualizza i risultati
+ Registri di CloudWatch accesso per i lavori di formazione

**Tempo richiesto**  
Il completamento di questo tutorial richiede circa 15 minuti.

**Restrizioni regionali**  
Questo tutorial può essere completato in qualsiasi AWS regione in cui siano disponibili AWS Batch sia l'IA che l' SageMaker intelligenza artificiale.

**Costi di utilizzo delle risorse**  
La creazione di un AWS account è gratuita. Tuttavia, implementando questa soluzione, potresti incorrere in costi per le seguenti risorse:      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/batch/latest/userguide/getting-started-sagemaker.html)

## Prerequisiti
<a name="getting-started-sagemaker-prerequisites"></a>

Prima di iniziare questo tutorial, devi installare e configurare i seguenti strumenti e risorse necessari per creare e gestire sia AWS Batch le risorse di SageMaker intelligenza artificiale.
+ **AWS CLI**— Uno strumento a riga di comando per lavorare con AWS i servizi, inclusa AWS Batch l' SageMaker intelligenza artificiale. Questa guida richiede l'utilizzo della versione 2.8.6 o successiva. *Per ulteriori informazioni, vedere [Installazione, aggiornamento e disinstallazione di AWS CLI nella Guida per l'](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)utente.AWS Command Line Interface * Dopo aver installato AWS CLI, ti consigliamo di configurarlo anche. Per ulteriori informazioni, vedere [Configurazione rapida con `aws configure`](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) nella *Guida AWS Command Line Interface per l'utente*.

## Fase 1: Creare un ruolo di esecuzione SageMaker AI
<a name="getting-started-sagemaker-step-1"></a>

SageMaker L'intelligenza artificiale utilizza i ruoli di esecuzione per eseguire operazioni per tuo conto utilizzando altri AWS servizi. È necessario creare un ruolo di esecuzione e concedere all' SageMaker IA le autorizzazioni per utilizzare i servizi e le risorse necessari per i lavori di formazione. Utilizza la policy `AmazonSageMakerFullAccess` gestita in quanto include le autorizzazioni per Amazon S3. 

**Nota**  
Utilizza le seguenti istruzioni per creare il ruolo di esecuzione SageMaker AI per questo tutorial.  
Prima di creare un ruolo di esecuzione per il tuo ambiente di produzione, ti consigliamo di leggere «[Come usare i ruoli di esecuzione SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html)» nella *[guida per sviluppatori SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html)*.

1. 

**Crea il ruolo IAM**

   Crea un file JSON denominato `sagemaker-trust-policy.json` con la seguente politica di fiducia:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "sagemaker.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

   Crea il ruolo IAM utilizzando la policy di fiducia:

   ```
   aws iam create-role \
       --role-name SageMakerExecutionRole \
       --assume-role-policy-document file://sagemaker-trust-policy.json \
       --description "Execution role for SageMaker training jobs"
   ```

1. 

**Allega politiche gestite**

   Allega le politiche gestite richieste al ruolo:

   ```
   aws iam attach-role-policy \
       --role-name SageMakerExecutionRole \
       --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
   ```

   ```
   aws iam attach-role-policy \
       --role-name SageMakerExecutionRole \
       --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess
   ```

1. 

**Nota il ruolo ARN**

   Ottieni il ruolo ARN, che ti servirà nei passaggi successivi:

   ```
   aws iam get-role --role-name SageMakerExecutionRole --query 'Role.Arn' --output text
   ```

   Salva questo ARN perché lo utilizzerai per creare il payload del tuo lavoro di formazione.

## Fase 2: Crea il tuo ambiente di servizio
<a name="getting-started-sagemaker-step-2"></a>

Un ambiente di servizio definisce i vincoli di capacità per i lavori di SageMaker formazione. L'ambiente di servizio incapsula il numero massimo di istanze di addestramento che possono essere eseguite contemporaneamente.

**Importante**  
Quando crei il tuo primo ambiente di servizio per SageMaker Training, crea AWS Batch automaticamente un ruolo collegato al servizio chiamato nel tuo account. `AWSServiceRoleForAWSBatchWithSagemaker` Questo ruolo consente di AWS Batch mettere in coda e gestire i lavori di SageMaker formazione per tuo conto. Per ulteriori informazioni su questo ruolo collegato al servizio e sulle relative autorizzazioni, consulta. [Utilizzo dei ruoli per AWS Batch l'intelligenza artificiale SageMaker](using-service-linked-roles-batch-sagemaker.md)

Crea un ambiente di servizio in grado di gestire fino a 5 istanze:

```
aws batch create-service-environment \
    --service-environment-name TutorialServiceEnvironment \
    --service-environment-type SAGEMAKER_TRAINING \
    --capacity-limits capacityUnit=NUM_INSTANCES,maxCapacity=5
```

Output:

```
{
    "serviceEnvironmentName": "TutorialServiceEnvironment",
    "serviceEnvironmentArn": "arn:aws:batch:your-region:your-account-id:service-environment/TutorialServiceEnvironment"
}
```

Verifica che l'ambiente di servizio sia stato creato correttamente:

```
aws batch describe-service-environments --service-environments TutorialServiceEnvironment
```

Output:

```
{
    "serviceEnvironments": [
        {
            "serviceEnvironmentName": "TutorialServiceEnvironment",
            "serviceEnvironmentArn": "arn:aws:batch:your-region:your-account-id:service-environment/TutorialServiceEnvironment",
            "serviceEnvironmentType": "SAGEMAKER_TRAINING",
            "state": "ENABLED",
            "status": "VALID",
            "capacityLimits": [
                {
                    "maxCapacity": 5,
                    "capacityUnit": "NUM_INSTANCES"
                }
            ],
            "tags": {}
        }
    ]
}
```

Per ulteriori informazioni sugli ambienti di servizio, vedere[Ambienti di servizio per AWS Batch](service-environments.md).

## Fase 3: Crea la tua coda SageMaker di lavoro
<a name="getting-started-sagemaker-step-3"></a>

Una coda di SageMaker lavoro gestisce la pianificazione e l'esecuzione dei lavori di servizio. I lavori inviati a questa coda verranno inviati all'ambiente di servizio in base alla capacità disponibile.

Crea una coda per i lavori di SageMaker formazione:

```
aws batch create-job-queue \
    --job-queue-name my-sm-training-fifo-jq \
    --job-queue-type SAGEMAKER_TRAINING \
    --priority 1 \
    --service-environment-order order=1,serviceEnvironment=TutorialServiceEnvironment
```

Output:

```
{
    "jobQueueName": "my-sm-training-fifo-jq",
    "jobQueueArn": "arn:aws:batch:your-region:your-account-id:job-queue/my-sm-training-fifo-jq"
}
```

Verifica che la tua coda di lavoro sia stata creata correttamente:

```
aws batch describe-job-queues --job-queues my-sm-training-fifo-jq
```

Output:

```
{
    "jobQueues": [
        {
            "jobQueueName": "my-sm-training-fifo-jq",
            "jobQueueArn": "arn:aws:batch:your-region:your-account-id:job-queue/my-sm-training-fifo-jq",
            "state": "ENABLED",
            "status": "VALID",
            "statusReason": "JobQueue Healthy",
            "priority": 1,
            "computeEnvironmentOrder": [],
            "serviceEnvironmentOrder": [
                {
                    "order": 1,
                    "serviceEnvironment": "arn:aws:batch:your-region:your-account-id:service-environment/TutorialServiceEnvironment"
                }
            ],
            "jobQueueType": "SAGEMAKER_TRAINING",
            "tags": {}
        }
    ]
}
```

Per ulteriori informazioni sulle code di SageMaker lavoro, consulta. [Crea una coda SageMaker di lavoro di formazione in AWS Batch](create-sagemaker-job-queue.md)

## Fase 4: Creare e inviare un lavoro di formazione
<a name="getting-started-sagemaker-step-4"></a>

Ora creerai un semplice lavoro di formazione e lo invierai alla tua lista di lavoro. Questo esempio utilizza un corso di formazione di base «hello world» che dimostra la funzionalità di Service Job.

Crea un archivio denominato `my_training_job.json` con i seguenti contenuti. Sostituisci *your-account-id* con l'ID AWS del tuo account:

**Nota**  
`S3OutputPath`è necessario per creare il processo di SageMaker formazione, ma i risultati di questo tutorial non sono archiviati nel bucket Amazon S3 ed è possibile utilizzare il percorso nel seguente formato JSON. Nel tuo ambiente di produzione avrai bisogno di un bucket Amazon S3 valido per archiviare lì l'output, se lo desideri.

```
{
    "TrainingJobName": "my-simple-training-job",
    "RoleArn": "arn:aws:iam::your-account-id:role/SageMakerExecutionRole",
    "AlgorithmSpecification": {
        "TrainingInputMode": "File",
        "TrainingImage": "763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-training:2.0.0-cpu-py310",
        "ContainerEntrypoint": [
            "echo",
            "hello world"
        ]
    },
    "ResourceConfig": {
        "InstanceType": "ml.c5.xlarge",
        "InstanceCount": 1,
        "VolumeSizeInGB": 1
    },
    "OutputDataConfig": {
        "S3OutputPath": "s3://your-s3-bucket/output"
    },
    "StoppingCondition": {
        "MaxRuntimeInSeconds": 30
    }
}
```

Invia il lavoro di formazione utilizzando l'[SubmitServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_SubmitServiceJob.html)API:

```
aws batch submit-service-job \
    --job-queue my-sm-training-fifo-jq \
    --job-name my-batch-sm-job \
    --service-job-type SAGEMAKER_TRAINING \
    --retry-strategy attempts=1 \
    --timeout-config attemptDurationSeconds=60 \
    --service-request-payload file://my_training_job.json
```

Output:

```
{
    "jobArn": "arn:aws:batch:your-region:your-account-id:service-job/your-job-id",
    "jobName": "my-batch-sm-job",
    "jobId": "your-job-id"
}
```

Per ulteriori informazioni sui payload dei lavori di assistenza, consulta[Carichi utili per lavori di assistenza in AWS Batch](service-job-payload.md). Per ulteriori informazioni sull'invio di lavori di assistenza, vedere. [Invia un lavoro di assistenza in AWS Batch](service-job-submit.md)

## Fase 5: Monitoraggio dello stato del lavoro
<a name="getting-started-sagemaker-step-5"></a>

Puoi monitorare i tuoi lavori di formazione utilizzando quanto segue AWS Batch APIs: [DescribeServiceJob](https://docs.aws.amazon.com/batch/latest/APIReference/API_DescribeServiceJob.html), [ListServiceJobs](https://docs.aws.amazon.com/batch/latest/APIReference/API_ListServiceJobs.html), e [GetJobQueueSnapshot](https://docs.aws.amazon.com/batch/latest/APIReference/API_GetJobQueueSnapshot.html). Questa sezione mostra diversi modi per controllare lo stato dei lavori e le informazioni sulla coda.

Visualizza i lavori in esecuzione nella coda:

```
aws batch list-service-jobs \
    --job-queue my-sm-training-fifo-jq --job-status RUNNING
```

Output:

```
{
    "jobSummaryList": [
        {
            "latestAttempt": {
                "serviceResourceId": {
                    "name": "TrainingJobArn",
                    "value": "arn:aws:sagemaker:your-region:your-account-id:training-job/AWSBatch<my-simple-training-job><your-attempt-id>"
                }
            },
            "createdAt": 1753718760,
            "jobArn": "arn:aws:batch:your-region:your-account-id:service-job/your-job-id",
            "jobId": "your-job-id",
            "jobName": "my-batch-sm-job",
            "serviceJobType": "SAGEMAKER_TRAINING",
            "status": "RUNNING",
            "startedAt": 1753718820
        }
    ]
}
```

Visualizza i lavori che si trovano nello `RUNNABLE` stato:

```
aws batch list-service-jobs \
    --job-queue my-sm-training-fifo-jq --job-status RUNNABLE
```

Ottieni un'istantanea dei lavori imminenti in coda:

```
aws batch get-job-queue-snapshot --job-queue my-sm-training-fifo-jq
```

Output:

```
{
    "frontOfQueue": {
        "jobs": [
            {
                "jobArn": "arn:aws:batch:your-region:your-account-id:service-job/your-job-id",
                "earliestTimeAtPosition": 1753718880
            },
            {
                "jobArn": "arn:aws:batch:your-region:your-account-id:service-job/your-job-id-2",
                "earliestTimeAtPosition": 1753718940
            }
        ],
        "lastUpdatedAt": 1753718970
    }
}
```

Cerca offerte di lavoro per nome:

```
aws batch list-service-jobs \
    --job-queue my-sm-training-fifo-jq \
    --filters name=JOB_NAME,values="my-batch-sm-job"
```

Output:

```
{
    "jobSummaryList": [
        {
            "latestAttempt": {
                "serviceResourceId": {
                    "name": "TrainingJobArn",
                    "value": "arn:aws:sagemaker:your-region:your-account-id:training-job/AWSBatch<my-simple-training-job><your-attempt-id>"
                }
            },
            "createdAt": 1753718760,
            "jobArn": "arn:aws:batch:your-region:your-account-id:service-job/your-job-id",
            "jobId": "your-job-id",
            "jobName": "my-batch-sm-job",
            "serviceJobType": "SAGEMAKER_TRAINING",
            "status": "RUNNING"
        }
    ]
}
```

Per ulteriori informazioni sulla mappatura dello stato del lavoro, vedere[Mappatura dello stato AWS Batch del lavoro del servizio allo stato dell' SageMaker IA](service-job-status.md).

## Fase 6: Visualizzazione dell'output del lavoro
<a name="getting-started-sagemaker-step-6"></a>

Una volta completato il lavoro, puoi visualizzarne l'output e i log sia tramite l'intelligenza artificiale AWS Batch . SageMaker APIs

Ottieni informazioni dettagliate sul tuo lavoro da: AWS Batch

```
aws batch describe-service-job \
    --job-id your-job-id
```

Output:

```
{
    "attempts": [
        {
            "serviceResourceId": {
                "name": "TrainingJobArn",
                "value": "arn:aws:sagemaker:your-region:your-account-id:training-job/AWSBatch<my-simple-training-job><your-attempt-id>"
            },
            "startedAt": 1753718820,
            "stoppedAt": 1753718880,
            "statusReason": "Received status from SageMaker: Training job completed"
        }
    ],
    "createdAt": 1753718760,
    "jobArn": "arn:aws:batch:your-region:your-account-id:service-job/your-job-id",
    "jobId": "your-job-id",
    "jobName": "my-batch-sm-job",
    "jobQueue": "arn:aws:batch:your-region:your-account-id:job-queue/my-sm-training-fifo-jq",
    "latestAttempt": {
        "serviceResourceId": {
            "name": "TrainingJobArn",
            "value": "arn:aws:sagemaker:your-region:your-account-id:training-job/AWSBatch<my-simple-training-job><your-attempt-id>"
        }
    },
    "retryStrategy": {
        "attempts": 1,
        "evaluateOnExit": []
    },
    "serviceRequestPayload": "your-training-job-request-json",
    "serviceJobType": "SAGEMAKER_TRAINING",
    "startedAt": 1753718820,
    "status": "SUCCEEDED",
    "statusReason": "Received status from SageMaker: Training job completed",
    "stoppedAt": 1753718880,
    "tags": {},
    "timeoutConfig": {
        "attemptDurationSeconds": 60
    }
}
```

Questo comando restituisce informazioni complete sul lavoro, incluso l'ARN del lavoro di SageMaker formazione, che puoi utilizzare per accedere al lavoro direttamente tramite SageMaker AI:

```
aws sagemaker describe-training-job \
    --training-job-name AWSBatch<my-simple-training-job><your-attempt-id>
```

Per visualizzare CloudWatch i log del tuo processo di formazione, per prima cosa ottieni il nome del flusso di log:

```
aws logs describe-log-streams \
    --log-group-name /aws/sagemaker/TrainingJobs \
    --log-stream-name-prefix AWSBatchmy-simple-training-job
```

Output:

```
{
    "logStreams": [
        {
            "logStreamName": "your-log-stream-name",
            "creationTime": 1753718830,
            "firstEventTimestamp": 1753718840,
            "lastEventTimestamp": 1753718850,
            "lastIngestionTime": 1753718860,
            "uploadSequenceToken": upload-sequence-token,
            "arn": "arn:aws:logs:your-region:your-account-id:log-group:/aws/sagemaker/TrainingJobs:log-stream:AWSBatch<my-simple-training-job><your-attempt-id>/algo-1-algo-id",
            "storedBytes": 0
        }
    ]
}
```

Quindi recupera i log utilizzando il nome del flusso di log della risposta precedente:

```
aws logs get-log-events \
    --log-group-name /aws/sagemaker/TrainingJobs \
    --log-stream-name your-log-stream-name
```

Output:

```
{
    "events": [
        {
            "timestamp": 1753718845,
            "message": "hello world",
            "ingestionTime": 1753718865
        }
    ],
    "nextForwardToken": "next-forward-token",
    "nextBackwardToken": "next-backward-token"
}
```

L'output del registro mostra il messaggio «hello world» del processo di formazione, che conferma che il processo è stato eseguito correttamente.

## Passaggio 7: ripulisci le risorse del tutorial
<a name="getting-started-sagemaker-step-7"></a>

Quando hai finito con il tutorial, ripulisci le risorse che hai creato per evitare addebiti continui.

Innanzitutto, disabilita ed elimina la coda dei lavori:

```
aws batch update-job-queue \
    --job-queue my-sm-training-fifo-jq \
    --state DISABLED
```

Attendi che la coda dei lavori sia disabilitata, quindi eliminala:

```
aws batch delete-job-queue \
    --job-queue my-sm-training-fifo-jq
```

Quindi, disabilita ed elimina l'ambiente di servizio:

```
aws batch update-service-environment \
    --service-environment TutorialServiceEnvironment \
    --state DISABLED
```

Attendi che l'ambiente di servizio sia disabilitato, quindi eliminalo:

```
aws batch delete-service-environment \
    --service-environment TutorialServiceEnvironment
```

## Risorse aggiuntive
<a name="getting-started-sagemaker-additional-resources"></a>

Dopo aver completato il tutorial, potresti voler esplorare i seguenti argomenti:
+ Ti consigliamo di utilizzare PySDK per la creazione di lavori di servizio e l'invio alla coda dei lavori perché PySDK ha classi e utilità di supporto. [Per un esempio di utilizzo di PySDK, consulta Esempi di intelligenza artificiale su. SageMaker ](https://github.com/aws/amazon-sagemaker-examples) GitHub
+ Ulteriori informazioni su [Lavori di assistenza in AWS Batch](service-jobs.md).
+ Esplora configurazioni [Carichi utili per lavori di assistenza in AWS Batch](service-job-payload.md) di lavoro di formazione più complesse.
+ Scopri di più sull'API [Invia un lavoro di assistenza in AWS Batch](service-job-submit.md) e sull'`SubmitServiceJob`API.
+ Rivedi [Mappatura dello stato AWS Batch del lavoro del servizio allo stato dell' SageMaker IA](service-job-status.md) per comprendere le transizioni dello stato lavorativo.
+ Consulta la [documentazione di SageMaker AI Python SDK](https://sagemaker.readthedocs.io/en/stable/) per ulteriori modi ricchi di funzionalità per creare e inviare lavori di formazione SageMaker utilizzando Python.
+ Esplora [taccuini di SageMaker esempio](https://github.com/aws/amazon-sagemaker-examples) per flussi di lavoro di machine learning più complessi.