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 all'intelligenza artificiale AWS Batch SageMaker
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
Indice
Panoramica
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, l'implementazione di questa soluzione potrebbe comportare costi per le seguenti risorse:
Descrizione Costo (dollari USA) SageMaker Istanze di formazione basata sull'intelligenza artificiale Paghi per ogni istanza di SageMaker AI Training utilizzata. Per ulteriori informazioni sui prezzi, consulta SageMaker AI Pricing . Archiviazione Amazon S3 Costo minimo per l'archiviazione dei risultati dei lavori di formazione. Per ulteriori informazioni, consulta Prezzi di Amazon S3 .
Prerequisiti
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'utente.AWS Command Line Interface Dopo aver installato AWS CLI, ti consigliamo di configurarlo anche. Per ulteriori informazioni, vedere Configurazione rapida con
aws configure
nella Guida AWS Command Line Interface per l'utente.
Fase 1: Creare un ruolo di esecuzione SageMaker AI
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» nella guida per sviluppatori SageMaker AI.
-
Crea il ruolo IAM
Crea un file JSON denominato
sagemaker-trust-policy.json
con la seguente politica di fiducia: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"
-
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
-
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
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
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, vedereAmbienti di servizio per AWS Batch.
Fase 3: Crea la tua coda SageMaker di lavoro
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
Fase 4: Creare e inviare un lavoro di formazione
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.
Creare un archivio denominato
con i seguenti contenuti. Sostituisci my_training_job.json
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'SubmitServiceJobAPI:
aws batch submit-service-job \ --job-queue
my-sm-training-fifo-jq
\ --job-namemy-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, consultaCarichi utili per lavori di assistenza in AWS Batch. Per ulteriori informazioni sull'invio di lavori di assistenza, vedere. Invia un lavoro di assistenza in AWS Batch
Fase 5: Monitoraggio dello stato del lavoro
Puoi monitorare i tuoi lavori di formazione utilizzando quanto segue AWS Batch APIs: DescribeServiceJob, ListServiceJobs, e GetJobQueueSnapshot. 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, vedereMappatura dello stato AWS Batch del lavoro del servizio allo stato dell' SageMaker IA.
Fase 6: Visualizzazione dell'output del lavoro
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 AWSBatch
my-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
Quando hai finito con il tutorial, pulisci 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
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
GitHub -
Ulteriori informazioni su Lavori di assistenza in AWS Batch.
-
Esplora configurazioni Carichi utili per lavori di assistenza in AWS Batch di lavoro di formazione più complesse.
-
Scopri di più sull'API Invia un lavoro di assistenza in AWS Batch e sull'
SubmitServiceJob
API. -
Rivedi Mappatura dello stato AWS Batch del lavoro del servizio allo stato dell' SageMaker IA per comprendere le transizioni dello stato lavorativo.
-
Consulta la documentazione di SageMaker AI Python SDK
per ulteriori modi ricchi di funzionalità per creare e inviare lavori di formazione SageMaker utilizzando Python. -
Esplora taccuini di SageMaker esempio
per flussi di lavoro di machine learning più complessi.