Creazione di un’immagine SageMaker personalizzata in Amazon SageMaker Studio Classic - Amazon SageMaker AI

Creazione di un’immagine SageMaker personalizzata in Amazon SageMaker Studio Classic

Importante

Le policy IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare risorse Amazon SageMaker devono inoltre concedere le autorizzazioni per aggiungere tag a tali risorse. L’autorizzazione per aggiungere tag alle risorse è necessaria perché Studio e Studio Classic applicano automaticamente tag a tutte le risorse che creano. Se una policy IAM consente a Studio e Studio Classic di creare risorse ma non consente il tagging, possono verificarsi errori di tipo “AccessDenied” quando provi a creare le risorse. Per ulteriori informazioni, consulta Concessione delle autorizzazioni per il tagging delle risorse SageMaker AI.

Policy gestite da AWS per Amazon SageMaker AI, che forniscono autorizzazioni per creare risorse SageMaker, includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Importante

A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio ha cambiato nome in Amazon SageMaker Studio Classic. La sezione seguente è specifica per l’utilizzo dell’applicazione Studio Classic. Per informazioni sull’utilizzo dell’esperienza Studio aggiornata, consulta Amazon SageMaker Studio.

Questo argomento spiega come creare un’immagine SageMaker personalizzata utilizzando la console SageMaker AI o la AWS CLI.

Quando crei un’immagine dalla console, SageMaker AI crea anche una versione iniziale dell’immagine. Ogni versione dell’immagine rappresenta un'immagine del container presente in Amazon Elastic Container Registry (ECR). L’immagine del container deve soddisfare i requisiti per poter essere utilizzata in Amazon SageMaker Studio Classic. Per ulteriori informazioni, consulta Specifiche dell’immagine SageMaker personalizzata per Amazon SageMaker Studio Classic. Per informazioni su come testare l’immagine localmente e risolvere i problemi più comuni, consulta il repository SageMaker Studio Classic Custom Image Samples.

Una volta creata l’immagine SageMaker personalizzata, dovrai collegarla al dominio o allo spazio condiviso per poterla utilizzare con Studio Classic. Per ulteriori informazioni, consulta Collegamento di un’immagine SageMaker personalizzata in Amazon SageMaker Studio Classic.

Creazione di un'immagine SageMaker dalla console

Nella sezione seguente viene illustrato come creare un’immagine SageMaker personalizzata dalla console SageMaker AI.

Per creare un'immagine
  1. Apri la console di Amazon SageMaker AI all’indirizzo https://console.aws.amazon.com/sagemaker/.

  2. Nel pannello di navigazione sinistro scegli Configurazioni admin.

  3. In Configurazioni admin, scegli Immagini.

  4. Nella pagina Immagini personalizzate, scegli Crea immagine.

  5. In Origine dell’immagine, inserisci il percorso di registrazione dell'immagine del container in Amazon ECR. Il percorso si presenta nel formato seguente:

    acct-id.dkr.ecr.region.amazonaws.com/repo-name[:tag] or [@digest]

  6. Seleziona Successivo.

  7. In Proprietà dell’immagine, inserisci quanto segue:

    • Nome immagine: il nome deve essere univoco per il tuo account nella Regione AWS corrente.

    • (Facoltativo) Nome visualizzato: il nome visualizzato nell’interfaccia utente di Studio Classic. Se non fornito, viene visualizzato Image name.

    • (Facoltativo) Descrizione: descrizione dell’immagine.

    • Ruolo IAM: il ruolo deve avere la policy AmazonSageMakerFullAccess collegata. Usa il menu a discesa per selezionare una delle seguenti opzioni:

      • Crea un nuovo ruolo: specifica eventuali bucket Amazon Simple Storage Service (Amazon S3) a cui desideri che gli utenti dei tuoi notebook abbiano accesso. Se preferisci non consentire l'accesso ad altri bucket, scegli Nessuno.

        SageMaker AI collega la policy AmazonSageMakerFullAccess al ruolo. Il ruolo consente agli utenti dei tuoi notebook di accedere ai bucket S3 elencati accanto ai segni di spunta.

      • Inserisci un ARN personalizzato per il ruolo IAM: inserisci il nome della risorsa Amazon (ARN) del ruolo IAM.

      • Usa un ruolo esistente: scegli dell’elenco uno dei tuoi ruoli già esistenti.

    • (Facoltativo) Tagga l’immagine: scegli Aggiungi nuovo tag. Puoi aggiungere fino a 50 tag. Puoi effettuare ricerche sui tag utilizzando l’interfaccia utente di Studio Classic, la console SageMaker AI o l’API Search di SageMaker AI.

  8. Scegli Invia.

La nuova immagine viene visualizzata nell'elenco Immagini personalizzate ed evidenziata per qualche secondo. Una volta che l'immagine è stata creata con successo, puoi scegliere il nome dell'immagine per visualizzarne le proprietà o scegliere Crea versione per crearne un'altra versione.

Per creare un'altra versione dell'immagine
  1. Scegli Crea versione sulla stessa riga dell'immagine.

  2. In Origine dell’immagine, inserisci il percorso di registrazione dell'immagine del container Amazon ECR. L'immagine del container non deve essere la stessa immagine utilizzata in una versione precedente dell'immagine SageMaker.

Creazione di un'immagine SageMaker dalla AWS CLI

Per creare un'immagine SageMaker dall'immagine del container utilizzando la AWS CLI, procedi come segue.

  • Creazione di Image.

  • Creazione di ImageVersion.

  • Creazione di un file di configurazione.

  • Creazione di AppImageConfig.

Per creare le entità dell’immagine SageMaker
  1. Crea un'immagine SageMaker.

    aws sagemaker create-image \ --image-name custom-image \ --role-arn arn:aws:iam::<acct-id>:role/service-role/<execution-role>

    Il risultato dovrebbe essere simile al seguente.

    { "ImageArn": "arn:aws:sagemaker:us-east-2:acct-id:image/custom-image" }
  2. Crea una versione dell’immagine SageMaker dall’immagine del container.

    aws sagemaker create-image-version \ --image-name custom-image \ --base-image <acct-id>.dkr.ecr.<region>.amazonaws.com/smstudio-custom:custom-image

    Il risultato dovrebbe essere simile al seguente.

    { "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/custom-image/1" }
  3. Verifica che la versione dell'immagine sia stata creata correttamente.

    aws sagemaker describe-image-version \ --image-name custom-image \ --version-number 1

    Il risultato dovrebbe essere simile al seguente.

    { "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/custom-image/1", "ImageVersionStatus": "CREATED" }
    Nota

    Se l’esito è "ImageVersionStatus": "CREATED_FAILED", l’esito include anche il motivo dell'errore. Un problema di autorizzazioni è una causa di errore comune. Puoi anche controllare Amazon CloudWatch Logs se riscontri un errore durante l'avvio o l'esecuzione dell'app KernelGateway per un'immagine personalizzata. Il nome del gruppo di log è /aws/sagemaker/studio. Il nome del flusso di log è $domainID/$userProfileName/KernelGateway/$appName.

  4. Creazione di un file di configurazione denominato app-image-config-input.json. Il Name valore di KernelSpecs deve corrispondere al nome del kernelSpec disponibile nell'immagine associata a questa AppImageConfig. Questo valore prevede la distinzione tra lettere maiuscole e minuscole. Puoi trovare i kernelSpec disponibili in un'immagine eseguendo jupyter-kernelspec list da una shell all'interno del container. MountPath è il percorso all'interno dell'immagine per montare la home directory Amazon Elastic File System (Amazon EFS). Deve essere diverso dal percorso che usi all'interno del container, perché quel percorso verrà sovrascritto una volta montata la tua home directory Amazon EFS.

    Nota

    Le combinazioni seguenti DefaultUID e DefaultGID sono gli unici valori accettati:

    • DefaultUID 1000 e DefaultGID 100

    • DefaultUID 0 e DefaultGID 0

    { "AppImageConfigName": "custom-image-config", "KernelGatewayImageConfig": { "KernelSpecs": [ { "Name": "python3", "DisplayName": "Python 3 (ipykernel)" } ], "FileSystemConfig": { "MountPath": "/home/sagemaker-user", "DefaultUid": 1000, "DefaultGid": 100 } } }
  5. Creazione di AppImageConfig utilizzando il file creato nella fase precedente.

    aws sagemaker create-app-image-config \ --cli-input-json file://app-image-config-input.json

    Il risultato dovrebbe essere simile al seguente.

    { "AppImageConfigArn": "arn:aws:sagemaker:us-east-2:acct-id:app-image-config/custom-image-config" }