

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

# Ambienti di apprendimento automatico offerti da Amazon SageMaker AI
<a name="machine-learning-environments"></a>

**Importante**  
Amazon SageMaker Studio e Amazon SageMaker Studio Classic sono due degli ambienti di apprendimento automatico che puoi utilizzare per interagire con l' SageMaker intelligenza artificiale.  
Se il tuo dominio è stato creato dopo il 30 novembre 2023, Studio è la tua esperienza predefinita.  
Se il tuo dominio è stato creato prima del 30 novembre 2023, Amazon SageMaker Studio Classic è la tua esperienza predefinita. Per utilizzare Studio se Amazon SageMaker Studio Classic è la tua esperienza predefinita, consulta[Migrazione da Amazon SageMaker Studio Classic](studio-updated-migrate.md).  
Quando esegui la migrazione da Amazon SageMaker Studio Classic ad Amazon SageMaker Studio, non si verifica alcuna perdita nella disponibilità delle funzionalità. Studio Classic esiste anche come IDE all'interno di Amazon SageMaker Studio per aiutarti a eseguire i tuoi flussi di lavoro di machine learning legacy.

SageMaker L'intelligenza artificiale supporta i seguenti ambienti di apprendimento automatico:
+ *Amazon SageMaker Studio* (consigliato): la più recente esperienza basata sul Web per l'esecuzione di flussi di lavoro ML con una suite di. IDEs Studio supporta le applicazioni seguenti:
  + Amazon SageMaker Studio Classic
  + Editor di codice, basato su Code-OSS, Visual Studio Code - Open Source
  + JupyterLab
  + Amazon SageMaker Tela
  + RStudio
+ *Amazon SageMaker Studio Classic*: ti consente di creare, addestrare, eseguire il debug, distribuire e monitorare i tuoi modelli di machine learning.
+ *Istanze Amazon SageMaker Notebook*: consente di preparare ed elaborare dati e addestrare e distribuire modelli di machine learning da un'istanza di calcolo che esegue l'applicazione Jupyter Notebook.
+ *Amazon SageMaker Studio Lab*: Studio Lab è un servizio gratuito che consente di accedere alle risorse di AWS calcolo, in un ambiente basato sull'open source JupyterLab, senza richiedere un AWS account.
+ *Amazon SageMaker Canvas*: ti offre la possibilità di utilizzare l'apprendimento automatico per generare previsioni senza bisogno di codificare.
+ *Amazon SageMaker geospatial*: ti dà la possibilità di creare, addestrare e distribuire modelli geospaziali.
+ *RStudio su Amazon SageMaker AI*: RStudio è un IDE per [R](https://aws.amazon.com/blogs/opensource/getting-started-with-r-on-amazon-web-services/), con una console, un editor di evidenziazione della sintassi che supporta l'esecuzione diretta del codice e strumenti per il plottaggio, la cronologia, il debug e la gestione dello spazio di lavoro.
+ *SageMaker HyperPod*: SageMaker HyperPod consente di fornire cluster resilienti per l'esecuzione di carichi di lavoro di machine learning (ML) e lo sviluppo di state-of-the-art modelli come modelli di linguaggio di grandi dimensioni (), modelli di diffusione e modelli di base (). LLMs FMs

Per utilizzare questi ambienti di machine learning, tu o l'amministratore della tua organizzazione dovete creare un dominio Amazon SageMaker AI. Le eccezioni sono Studio Lab, SageMaker Notebook Instances e. SageMaker HyperPod

Invece di fornire manualmente le risorse e gestire le autorizzazioni per te e i tuoi utenti, puoi creare un dominio Amazon DataZone . Il processo di creazione di un DataZone dominio Amazon crea un dominio Amazon SageMaker AI corrispondente con AWS Glue o database Amazon Redshift per i tuoi flussi di lavoro ETL. La configurazione di un dominio tramite Amazon DataZone riduce il tempo necessario per configurare ambienti di SageMaker intelligenza artificiale per i tuoi utenti. Per ulteriori informazioni sulla configurazione di un dominio Amazon SageMaker AI all'interno di Amazon DataZone, consulta[Configura SageMaker Assets (guida per amministratori)](sm-assets-set-up.md).

Gli utenti all'interno del DataZone dominio Amazon dispongono delle autorizzazioni per tutte le azioni di Amazon SageMaker AI, ma le loro autorizzazioni sono limitate alle risorse all'interno del dominio Amazon. DataZone 

La creazione di un DataZone dominio Amazon semplifica la creazione di un dominio che consente agli utenti di condividere dati e modelli tra loro. Per informazioni sulle modalità di condivisione di dati e modelli, consulta [Accesso controllato agli asset con Amazon SageMaker Assets](sm-assets.md).

**Topics**
+ [Amazon SageMaker Studio](studio-updated.md)
+ [SageMaker JupyterLab](studio-updated-jl.md)
+ [Istanze SageMaker per notebook Amazon](nbi.md)
+ [Laboratorio Amazon SageMaker Studio](studio-lab.md)
+ [Amazon SageMaker Tela](canvas.md)
+ [Funzionalità SageMaker geospaziali di Amazon](geospatial.md)
+ [RStudio su Amazon SageMaker AI](rstudio.md)
+ [Editor di codice in Amazon SageMaker Studio](code-editor.md)
+ [Amazon SageMaker HyperPod](sagemaker-hyperpod.md)
+ [AI generativa in ambienti notebook SageMaker](jupyterai.md)
+ [Amazon Q Developer](studio-updated-amazon-q.md)
+ [Panoramica delle app Amazon SageMaker Partner AI](partner-apps.md)

# Amazon SageMaker Studio
<a name="studio-updated"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata Amazon SageMaker Studio Classic. La sezione seguente è specifica per l’utilizzo dell’esperienza Studio aggiornata. Per informazioni sull’utilizzo dell’applicazione Studio Classic, consulta [Amazon SageMaker Studio Classic](studio.md).

 Amazon SageMaker Studio è l'esperienza basata sul Web più recente per l'esecuzione di flussi di lavoro ML. Studio offre una suite di ambienti di sviluppo integrati ()IDEs. Questi includono Code Editor, basato su Code-OSS, Visual Studio Code - Open Source, una nuova JupyterLab applicazione e Amazon SageMaker Studio Classic. RStudio Per ulteriori informazioni, consulta [Applicazioni supportate in Amazon SageMaker Studio](studio-updated-apps.md). 

La nuova interfaccia utente basata sul Web di Studio è più veloce e fornisce l'accesso a tutte le risorse di SageMaker intelligenza artificiale, inclusi job ed endpoint, in un'unica interfaccia. I professionisti di ML possono anche scegliere il loro IDE preferito per accelerare lo sviluppo di ML. Un data scientist può utilizzarli JupyterLab per esplorare i dati e ottimizzare i modelli. Inoltre, un tecnico addetto alle operazioni di machine learning (MLOps) può utilizzare Code Editor con lo strumento pipelines di Studio per distribuire e monitorare i modelli in produzione. 

 La precedente esperienza di Studio è ancora supportata come Amazon SageMaker Studio Classic. Studio Classic è l’esperienza predefinita per i clienti esistenti ed è disponibile come applicazione in Studio. Per ulteriori informazioni su Studio Classic, consulta [Amazon SageMaker Studio Classic](studio.md). Per informazioni su come eseguire la migrazione da Studio Classic a Studio, consulta [Migrazione da Amazon SageMaker Studio Classic](studio-updated-migrate.md). 

 Studio offre i vantaggi seguenti: 
+ Una nuova JupyterLab applicazione che ha un tempo di avvio più rapido ed è più affidabile dell'applicazione Studio Classic esistente. Per ulteriori informazioni, consulta [SageMaker JupyterLab](studio-updated-jl.md).
+ Una suite di queste IDEs si apre in una scheda separata, incluso il nuovo Code Editor, basato su Code-OSS, l'applicazione Visual Studio Code - Open Source. Gli utenti possono interagire con il supporto IDEs in un'esperienza a schermo intero. Per ulteriori informazioni, consulta [Applicazioni supportate in Amazon SageMaker Studio](studio-updated-apps.md).
+ Accedi a tutte le tue risorse SageMaker AI in un unico posto. Studio mostra le istanze in esecuzione su tutte le tue applicazioni.  
+ Accesso a tutti i lavori di formazione in un'unica visualizzazione, indipendentemente dal fatto che siano stati pianificati da notebook o avviati da Amazon. SageMaker JumpStart
+ Flussi di lavoro semplificati di implementazione dei modelli e gestione e monitoraggio degli endpoint direttamente da Studio. Non è necessario accedere alla console AI. SageMaker 
+ Creazione automatica di tutte le applicazioni configurate durante l’onboarding in un dominio. Per informazioni sull’onboarding in un dominio, consulta [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md).
+ Un' JumpStart esperienza migliorata in cui puoi scoprire, importare, registrare, perfezionare e implementare un modello di base. Per ulteriori informazioni, consulta [SageMaker JumpStart modelli preaddestrati](studio-jumpstart.md).

**Topics**
+ [Avvia Amazon SageMaker Studio](studio-updated-launch.md)
+ [Panoramica dell'interfaccia utente di Amazon SageMaker Studio](studio-updated-ui.md)
+ [Montaggio automatico di Amazon EFS in Studio](studio-updated-automount.md)
+ [Spegnimento in modalità inattiva](studio-updated-idle-shutdown.md)
+ [Applicazioni supportate in Amazon SageMaker Studio](studio-updated-apps.md)
+ [Connect il tuo IDE remoto a SageMaker spazi con accesso remoto](remote-access.md)
+ [Bring Your Own Image (BYOI)](studio-updated-byoi.md)
+ [Configurazioni del ciclo di vita all'interno di Amazon Studio SageMaker](studio-lifecycle-configurations.md)
+ [Spazi Amazon SageMaker Studio](studio-updated-spaces.md)
+ [Propagazione attendibile delle identità con Studio](trustedidentitypropagation.md)
+ [Esecuzione di attività comuni nell’interfaccia utente](studio-updated-common.md)
+ [NVMe negozi con Amazon SageMaker Studio](studio-updated-nvme.md)
+ [Supporto in modalità locale in Amazon SageMaker Studio](studio-updated-local.md)
+ [Visualizzazione di istanze, applicazioni e spazi in esecuzione in Studio](studio-updated-running.md)
+ [Arresto ed eliminazione delle applicazioni e degli spazi in esecuzione in Studio](studio-updated-running-stop.md)
+ [SageMaker Politica di supporto delle immagini di Studio](sagemaker-distribution.md)
+ [Prezzi di Amazon SageMaker Studio](studio-updated-cost.md)
+ [Risoluzione dei problemi](studio-updated-troubleshooting.md)
+ [Migrazione da Amazon SageMaker Studio Classic](studio-updated-migrate.md)
+ [Amazon SageMaker Studio Classic](studio.md)

# Avvia Amazon SageMaker Studio
<a name="studio-updated-launch"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse 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 è ora denominata Amazon SageMaker Studio Classic. La sezione seguente è specifica per l’utilizzo dell’esperienza Studio aggiornata. Per informazioni sull’utilizzo dell’applicazione Studio Classic, consulta [Amazon SageMaker Studio Classic](studio.md).

 Gli argomenti di questa pagina mostrano come avviare Amazon SageMaker Studio dalla console Amazon SageMaker AI e da AWS Command Line Interface (AWS CLI). 

**Topics**
+ [Prerequisiti](#studio-updated-launch-prereq)
+ [Avvio dalla console Amazon SageMaker AI](#studio-updated-launch-console)
+ [Avvia utilizzando il AWS CLI](#studio-updated-launch-cli)

## Prerequisiti
<a name="studio-updated-launch-prereq"></a>

 Prima di iniziare, completa i seguenti prerequisiti: 
+ Accedi a un dominio SageMaker AI con accesso a Studio. Se non disponi delle autorizzazioni per impostare Studio come esperienza predefinita per il dominio, contatta l’amministratore. Per ulteriori informazioni, consulta [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md). 
+ Aggiorna il AWS CLI seguendo i passaggi descritti in [Installazione della AWS CLI versione corrente](https://docs.aws.amazon.com//cli/latest/userguide/install-cliv1.html#install-tool-bundled). 
+ Dal computer locale, esegui `aws configure` e inserisci le tue credenziali AWS . Per informazioni sulle AWS credenziali, consulta [Comprendere e ottenere le AWS credenziali](https://docs.aws.amazon.com//general/latest/gr/aws-sec-cred-types.html).

## Avvio dalla console Amazon SageMaker AI
<a name="studio-updated-launch-console"></a>

Completa la seguente procedura per avviare Studio dalla console Amazon SageMaker AI.

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1.  Nel riquadro di navigazione a sinistra, seleziona Studio. 

1.  Nella pagina di destinazione di Studio, seleziona il dominio e il profilo utente per avviare Studio. 

1.  Scegli **Apri Studio**. 

1.  Per avviare Studio, scegli **Avvia Studio personale**. 

## Avvia utilizzando il AWS CLI
<a name="studio-updated-launch-cli"></a>

Questa sezione illustra come avviare Studio utilizzando. AWS CLI La procedura per accedere a Studio utilizzando il AWS CLI dipende se il dominio utilizza l'autenticazione o AWS IAM Identity Center l'autenticazione AWS Identity and Access Management (IAM). Puoi utilizzare il AWS CLI per avviare Studio creando un URL di dominio predefinito quando il dominio utilizza l'autenticazione IAM. Per informazioni su come avviare Studio con l’autenticazione del Centro identità IAM, consulta [Usa una configurazione personalizzata per Amazon SageMaker AI](onboard-custom.md). 

### Modalità di avvio quando Studio è l’esperienza predefinita
<a name="studio-updated-launch-console-updated"></a>

 Il frammento di codice seguente mostra come avviare Studio dalla AWS CLI utilizzando un URL di dominio prefirmato se Studio è l’esperienza predefinita. Per ulteriori informazioni, consulta [create-presigned-domain-url](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-presigned-domain-url.html). 

```
aws sagemaker create-presigned-domain-url \
--region region \
--domain-id domain-id \
--user-profile-name user-profile-name \
--session-expiration-duration-in-seconds 43200
```

### Avvia se Amazon SageMaker Studio Classic è la tua esperienza predefinita
<a name="studio-updated-launch-console-classic"></a>

 Il frammento di codice seguente mostra come avviare Studio dalla AWS CLI utilizzando un URL di dominio prefirmato se Studio Classic è l’esperienza predefinita. Per ulteriori informazioni, consulta [create-presigned-domain-url](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-presigned-domain-url.html). 

```
aws sagemaker create-presigned-domain-url \
--region region \
--domain-id domain-id \
--user-profile-name user-profile-name \
--session-expiration-duration-in-seconds 43200 \
--landing-uri studio::
```

# Panoramica dell'interfaccia utente di Amazon SageMaker Studio
<a name="studio-updated-ui"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata Amazon SageMaker Studio Classic. La sezione seguente è specifica per l’utilizzo dell’esperienza Studio aggiornata. Per informazioni sull’utilizzo dell’applicazione Studio Classic, consulta [Amazon SageMaker Studio Classic](studio.md).

 L'interfaccia utente di Amazon SageMaker Studio è suddivisa in tre parti distinte. Questa pagina fornisce informazioni su queste parti e sui relativi componenti. 
+  **Barra di navigazione**: questa sezione dell’interfaccia utente include l’URL, i percorsi di navigazione, le notifiche e le opzioni utente. 
+  **Riquadro di navigazione**: questa sezione dell’interfaccia utente include un elenco delle applicazioni supportate in Studio e le opzioni per i principali flussi di lavoro in Studio. 
+  **Riquadro dei contenuti**: l’area di lavoro principale che mostra la pagina corrente dell’interfaccia utente di Studio aperta.

![\[Home page di Amazon SageMaker Studio con riquadro di navigazione e riquadro dei contenuti (area di lavoro principale).\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/monarch/studio-updated-ui.png)


**Topics**
+ [Barra di navigazione di Amazon SageMaker Studio](#studio-updated-ui-top)
+ [Pannello di navigazione di Amazon SageMaker Studio](#studio-updated-ui-left)
+ [Riquadro dei contenuti di Studio](#studio-updated-ui-working)

## Barra di navigazione di Amazon SageMaker Studio
<a name="studio-updated-ui-top"></a>

 La barra di navigazione dell’interfaccia utente di Studio include l’URL, i percorsi di navigazione, le notifiche e le opzioni utente. 

 **Struttura dell’URL** 

 L’URL di Studio cambia durante la navigazione nell’interfaccia utente. Quando accedi a un’altra pagina dell’interfaccia utente, l’URL cambia per corrispondere a quella pagina. Con l’URL aggiornato, apri direttamente qualsiasi pagina nell’interfaccia utente di Studio senza passare dalla pagina di destinazione. 

 **Percorsi di navigazione** 

 Mentre navighi nell’interfaccia utente di Studio, i percorsi di navigazione monitorano le pagine principali della pagina corrente. Scegliendo uno di questi percorsi di navigazione, puoi accedere alle pagine principali dell’interfaccia utente. 

 **Notifiche** 

 La sezione delle notifiche dell’interfaccia utente fornisce informazioni su importanti modifiche a Studio, aggiornamenti delle applicazioni e problemi da risolvere. 

 **Opzioni utente** 

Scegli l’icona delle opzioni utente (![\[User icon with a circular avatar placeholder and a downward-pointing arrow.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/monarch/user-settings.png)) per ottenere informazioni sul profilo utente che attualmente utilizza Studio e, se necessario, per disconnettersi da Studio.  

## Pannello di navigazione di Amazon SageMaker Studio
<a name="studio-updated-ui-left"></a>

 **Riquadro di navigazione** 

 Il riquadro di navigazione dell’interfaccia utente include un elenco delle applicazioni supportate in Studio. Fornisce inoltre opzioni per i principali flussi di lavoro in Studio. 

 Questa sezione dell’interfaccia utente può essere visualizzata in modalità espansa o compressa. Per passare dalla modalità espansa a compressa e viceversa, seleziona l’icona **Comprimi** (![\[Square icon with "ID" text representing an identity or identification concept.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/monarch/collapse-ui.png)). 

 **Applicazioni** 

 La sezione Applicazioni elenca le applicazioni disponibili in Studio. Scegliendo un tipo di applicazione, si apre la pagina di destinazione dell’applicazione. 

 **Flussi di lavoro** 

 L’elenco dei flussi di lavoro include tutte le azioni che è possibile eseguire in Studio. Scegli una delle opzioni per accedere alla pagina di destinazione del flusso di lavoro. Se sono disponibili più flussi di lavoro per l’opzione selezionata, si apre un menu a discesa dal quale puoi scegliere la pagina di destinazione desiderata. 

 L’elenco seguente descrive le opzioni e fornisce un link per ottenere ulteriori informazioni. 
+  **Home**: la pagina di destinazione principale, che include una panoramica, le informazioni introduttive e le novità. 
+  **Istanze in esecuzione**: tutte le istanze attualmente in esecuzione in Studio. Per ulteriori informazioni, consulta [Visualizzazione di istanze, applicazioni e spazi in esecuzione in Studio](studio-updated-running.md). 
+  **Dati**: opzioni di preparazione dei dati che consentono la collaborazione per archiviare, esplorare, preparare, trasformare e condividere i dati.  
  +  Per ulteriori informazioni su Amazon SageMaker Data Wrangler, consulta. [Preparazione dei dati](canvas-data-prep.md) 
  +  Per ulteriori informazioni su Amazon SageMaker Feature Store, consulta[Creazione, archiviazione e condivisione di funzionalità con l’archivio delle caratteristiche](feature-store.md). 
  +  Per ulteriori informazioni sui cluster Amazon EMR, consulta [Preparazione dei dati con Amazon EMR](studio-notebooks-emr-cluster.md). 
+  **AutoML**: crea, addestra, ottimizza e implementa automaticamente i modelli di machine learning (ML). Per ulteriori informazioni, consulta [Amazon SageMaker Tela](canvas.md). 
+  **Experiments**: crea, gestisci, analizza e confronta i tuoi esperimenti di machine learning utilizzando Amazon SageMaker Experiments. Per ulteriori informazioni, consulta [SageMaker Esperimenti di Amazon in Studio Classic](experiments.md). 
+  **Processi**: visualizza i processi creati in Studio.  
  +  Per ulteriori informazioni sull’addestramento, consulta [Training del modello](train-model.md). 
  +  Per ulteriori informazioni sulla valutazione dei modelli, consulta [Comprendi le opzioni per valutare modelli linguistici di grandi dimensioni con Clarify SageMaker](clarify-foundation-model-evaluate.md). 
+  **Pipelines**: automatizza il tuo flusso di lavoro ML con Amazon SageMaker Pipelines, che fornisce risorse per aiutarti a creare, tracciare e gestire le risorse della pipeline. Per ulteriori informazioni, consulta [Pipelines](pipelines.md).
+  **Modelli**: organizza i modelli in gruppi e raccolte nel registro dei modelli, dove puoi gestire le versioni dei modelli, visualizzare i metadati e implementare i modelli in produzione. Per ulteriori informazioni, consulta [Implementazione della registrazione del modello con il registro dei modelli](model-registry.md).
+  **JumpStart**— Amazon SageMaker JumpStart fornisce modelli open source preaddestrati per un'ampia gamma di tipi di problemi per aiutarti a iniziare con l'apprendimento automatico. Per ulteriori informazioni, consulta. [SageMaker JumpStart modelli preaddestrati](studio-jumpstart.md) 
+  **Implementazioni**: implementa i modelli di machine learning (ML) per l’inferenza.
  +  Per ulteriori informazioni su Amazon SageMaker Inference Recommender, consulta. [Raccomandazione Amazon SageMaker Inference](inference-recommender.md) 
  +  Per ulteriori informazioni sugli endpoint, consulta [Implementa modelli per l'inferenza](deploy-model.md). 

## Riquadro dei contenuti di Studio
<a name="studio-updated-ui-working"></a>

 L’area di lavoro principale viene chiamata anche riquadro dei contenuti. Visualizza la pagina attualmente aperta dell’interfaccia utente di Studio. 

 **Home page di Studio** 

 La home page di Studio è la pagina di destinazione primaria nell’area di lavoro principale. La home page include due schede distinte: **Panoramica** e **Nozioni di base**. 

 **Panoramica** 

 La scheda **Panoramica** include le opzioni per avviare gli spazi per i tipi di applicazioni più diffusi, iniziare con le soluzioni predefinite e automatizzate per i flussi di lavoro di ML e passare alle attività più comuni nell’interfaccia utente di Studio. 

 **Nozioni di base** 

 La scheda **Nozioni di base** include informazioni, indicazioni e risorse su come iniziare a utilizzare Studio. Offre un tour guidato dell’interfaccia utente di Studio, un link alla documentazione su Studio e una selezione di suggerimenti rapidi. 

# Montaggio automatico di Amazon EFS in Studio
<a name="studio-updated-automount"></a>

 Amazon SageMaker AI supporta il montaggio automatico di una cartella in un volume Amazon EFS per ogni utente in un dominio. Utilizzando questa cartella, gli utenti possono condividere i dati nei propri spazi privati. Tuttavia, gli utenti non possono condividere i dati con altri utenti del dominio. Gli utenti hanno accesso solo alla propria cartella. 

 È possibile accedere alla cartella dell’utente attraverso una cartella denominata `user-default-efs`. Questa cartella è presente nella directory `$HOME` dell’applicazione Studio.

 Per informazioni sulla non adesione al montaggio automatico di Amazon EFS, consulta [Scelta dell’opzione di non adesione al montaggio automatico di Amazon EFS](studio-updated-automount-optout.md). 

 Il montaggio automatico di Amazon EFS facilita anche la migrazione dei dati da Studio Classic a Studio. Per ulteriori informazioni, consulta [(Facoltativo) Migrazione dei dati da Studio Classic a Studio](studio-updated-migrate-data.md). 

 **Informazioni sui punti di accesso** 

 Quando il montaggio automatico è attivato, l' SageMaker intelligenza artificiale utilizza un punto di accesso Amazon EFS per facilitare l'accesso ai dati nel volume Amazon EFS. Per ulteriori informazioni sugli access point, consulta [Lavorare con i punti di accesso Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html) L' SageMaker IA crea un punto di accesso unico per ogni profilo utente nel dominio durante la creazione del profilo utente o durante la creazione dell'applicazione per un profilo utente esistente. Il valore utente POSIX del punto di accesso corrisponde al `HomeEfsFileSystemUid` valore del profilo utente per cui l' SageMaker IA crea il punto di accesso. Per ottenere il valore dell'utente, vedi [DescribeUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeUserProfile.html#sagemaker-DescribeUserProfile-response-HomeEfsFileSystemUid). Anche il percorso della directory root è impostato sullo stesso valore del valore utente POSIX.  

 SageMaker AI imposta le autorizzazioni della nuova directory sui seguenti valori: 

 
+  ID utente proprietario: `POSIX user value` 
+  ID gruppo proprietario: `0` 
+  Autorizzazioni `700` 

 Il punto di accesso è necessario per accedere al volume Amazon EFS. Di conseguenza, non è possibile eliminare o aggiornare il punto di accesso senza perdere l’accesso al volume Amazon EFS. 

 **Risoluzione degli errori** 

 Se l' SageMaker IA riscontra un problema durante il montaggio automatico della cartella utente Amazon EFS durante la creazione dell'applicazione, l'applicazione viene comunque creata. Tuttavia, in questo caso, l' SageMaker IA crea un file denominato `error.txt` anziché montare la cartella Amazon EFS. Questo file descrive l'errore riscontrato e i passaggi per risolverlo. SageMaker AI crea il `error.txt` file nella `user-default-efs` cartella situata nella `$HOME` directory dell'applicazione. 

# Scelta dell’opzione di non adesione al montaggio automatico di Amazon EFS
<a name="studio-updated-automount-optout"></a>

 Puoi disattivare il montaggio automatico delle cartelle utente Amazon EFS da parte di Amazon SageMaker AI durante la creazione del dominio e del profilo utente o per un dominio o un profilo utente esistente. 

## Scelta dell’opzione di non adesione durante la creazione del dominio
<a name="studio-updated-automount-optout-domain-creation"></a>

 Puoi scegliere di non aderire al montaggio automatico di Amazon EFS quando crei un dominio con la console o l’ AWS Command Line Interface. 

### Console
<a name="studio-updated-automount-optout-domain-creation-console"></a>

Completa la procedura seguente per non aderire al montaggio automatico di Amazon EFS quando crei un dominio dalla console. 

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1.  Completa la procedura in [Usa una configurazione personalizzata per Amazon SageMaker AI](onboard-custom.md) con la modifica seguente per configurare un dominio. 
   +  Nella fase di **configurazione dell’archiviazione**, disattiva **Monta automaticamente i dati e lo spazio di archiviazione EFS**. 

### AWS CLI
<a name="studio-updated-automount-optout-domain-creation-cli"></a>

 Utilizza il comando seguente per non aderire al montaggio automatico di Amazon EFS quando crei un dominio con la AWS CLI. Per ulteriori informazioni sulla creazione di un dominio utilizzando il AWS CLI, consulta[Usa una configurazione personalizzata per Amazon SageMaker AI](onboard-custom.md).

```
aws --region region sagemaker create-domain \
--domain-name "my-domain-$(date +%s)" \
--vpc-id default-vpc-id \
--subnet-ids subnet-ids \
--auth-mode IAM \
--default-user-settings "ExecutionRole=execution-role-arn,AutoMountHomeEFS=Disabled" \
--default-space-settings "ExecutionRole=execution-role-arn"
```

## Scelta dell’opzione di non adesione per un dominio esistente
<a name="studio-updated-automount-optout-domain-existing"></a>

 Puoi scegliere di non aderire al montaggio automatico di Amazon EFS per un dominio esistente utilizzando la console o la AWS CLI. 

### Console
<a name="studio-updated-automount-optout-domain-existing-console"></a>

 Completa la procedura seguente per non aderire al montaggio automatico di Amazon EFS quando aggiorni un dominio dalla console. 

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1.  Nel menu di navigazione a sinistra, in **Configurazioni di amministrazione**, scegli **Domini**. 

1.  Nella pagina **Domini**, seleziona il dominio che non desideri aderisca al montaggio automatico di Amazon EFS. 

1.  Nella pagina **Dettagli del dominio**, seleziona la scheda **Impostazioni del dominio**. 

1.  Passa alla sezione **Configurazioni di archiviazione**. 

1.  Seleziona **Edit (Modifica)**. 

1.  Nella pagina **Modifica le impostazioni di archiviazione**, disattiva **Monta automaticamente i dati e lo spazio di archiviazione EFS**. 

1.  Selezionare **Invia**.

### AWS CLI
<a name="studio-updated-automount-optout-domain-existing-cli"></a>

 Utilizza questo comando per non aderire al montaggio automatico di Amazon EFS quando aggiorni un dominio esistente con la AWS CLI. 

```
aws --region region sagemaker update-domain \
--domain-id domain-id \
--default-user-settings "AutoMountHomeEFS=Disabled"
```

## Scelta dell’opzione di non adesione durante la creazione del profilo utente
<a name="studio-updated-automount-optout-user-creation"></a>

 Puoi scegliere di non aderire al montaggio automatico di Amazon EFS quando crei un profilo utente con la console o la AWS CLI. 

### Console
<a name="studio-updated-automount-optout-user-creation-console"></a>

 Completa la procedura seguente per non aderire al montaggio automatico di Amazon EFS quando crei un profilo utente dalla console. 

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1.  Completa la procedura in [Aggiunta di profili utente](domain-user-profile-add.md) con la modifica seguente per creare un profilo utente. 
   +  Nella fase **Dati e archiviazione**, disattiva **Eredita le impostazioni dal dominio**. In questo modo, l’utente può impostare un valore diverso rispetto a quelli predefiniti per il dominio.  
   +  Disattiva **Monta automaticamente i dati e lo spazio di archiviazione EFS**. 

### AWS CLI
<a name="studio-updated-automount-optout-user-creation-cli"></a>

 Utilizza il comando seguente per non aderire al montaggio automatico di Amazon EFS quando crei un profilo utente con la AWS CLI. Per ulteriori informazioni sulla creazione di un profilo utente utilizzando il AWS CLI, consulta[Aggiunta di profili utente](domain-user-profile-add.md).

```
aws --region region sagemaker create-user-profile \
--domain-id domain-id \
--user-profile-name "user-profile-$(date +%s)" \
--user-settings "ExecutionRole=arn:aws:iam::account-id:role/execution-role-name,AutoMountHomeEFS=Enabled/Disabled/DefaultAsDomain"
```

## Scelta dell’opzione di non adesione per un profilo utente esistente
<a name="studio-updated-automount-optout-user-existing"></a>

 Puoi scegliere di non aderire al montaggio automatico di Amazon EFS per un profilo utente esistente utilizzando la console o la AWS CLI. 

### Console
<a name="studio-updated-automount-optout-user-existing-console"></a>

 Completa la procedura seguente per non aderire al montaggio automatico di Amazon EFS quando aggiorni un profilo utente dalla console. 

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1.  Nel menu di navigazione a sinistra, in **Configurazioni di amministrazione**, scegli **Domini**. 

1.  Nella pagina **Domini**, seleziona il dominio che contiene il profilo utente che non desideri aderisca al montaggio automatico di Amazon EFS. 

1.  Nella pagina **Dettagli del dominio**, seleziona la scheda **Profili utente**. 

1.  Seleziona il profilo utente da aggiornare. 

1.  Dalla scheda **Dettagli utente**, vai alla sezione **AutoMountHomeEFS**. 

1.  Seleziona **Edit (Modifica)**. 

1.  Nella pagina **Modifica le impostazioni di archiviazione**, disattiva **Eredita le impostazioni dal dominio**. In questo modo, l’utente può impostare un valore diverso rispetto a quelli predefiniti per il dominio.  

1.  Disattiva **Monta automaticamente i dati e lo spazio di archiviazione EFS**. 

1.  Selezionare **Invia**. 

### AWS CLI
<a name="studio-updated-automount-optout-user-existing-cli"></a>

 Utilizza questo comando per non aderire al montaggio automatico di Amazon EFS quando aggiorni un profilo utente esistente con la AWS CLI. 

```
aws --region region sagemaker update-user-profile \
--domain-id domain-id \
--user-profile-name user-profile-name \
--user-settings "AutoMountHomeEFS=DefaultAsDomain"
```

# Spegnimento in modalità inattiva
<a name="studio-updated-idle-shutdown"></a>

Amazon SageMaker AI supporta la chiusura delle risorse inattive per gestire i costi e prevenire gli sforamenti dei costi dovuti ai costi accumulati dalle risorse inattive e fatturabili. A tale scopo rileva lo stato inattivo di un’app e la arresta quando vengono soddisfatti i criteri di inattività. 

SageMaker L'intelligenza artificiale supporta lo spegnimento in stato di inattività per le seguenti applicazioni. Lo spegnimento in modalità inattiva deve essere impostato separatamente per ogni tipo di applicazione. 
+  JupyterLab 
+  Editor di codice, basato su Code-OSS, Visual Studio Code - Open Source 

 Lo spegnimento in modalità inattiva può essere impostato a livello di dominio o di profilo utente. Quando lo spegnimento in modalità inattiva è configurato a livello di dominio, le relative impostazioni si applicano a tutte le applicazioni create nel dominio. Se invece è configurato a livello di profilo utente, le impostazioni si applicano solo agli utenti specificati. Le impostazioni del profilo utente hanno la precedenza sulle impostazioni del dominio.  

**Nota**  
Lo spegnimento in modalità inattiva richiede l’utilizzo dell’immagine `SageMaker-distribution` (SMD) con la versione 2.0 o successiva. I domini con una versione precedente di SMD non possono utilizzare questa funzionalità. Questi utenti devono invece utilizzare una LCC per gestire lo spegnimento automatico. 

## Definizione di inattività
<a name="studio-updated-idle-shutdown-definition"></a>

 Le impostazioni di spegnimento in modalità inattiva si applicano solo quando l’applicazione diventa inattiva e non ha alcun processo in esecuzione. SageMaker L'intelligenza artificiale non avvia il periodo di spegnimento dell'istanza finché l'istanza non diventa inattiva. La definizione di idle varia a seconda che il tipo di applicazione sia o meno Code Editor. JupyterLab 

 Per JupyterLab le applicazioni, l'istanza è considerata inattiva quando vengono soddisfatte le seguenti condizioni: 
+  Nessuna sessione attiva del kernel Jupyter 
+  Nessuna sessione attiva del terminale Jupyter 

 Per le applicazioni Editor di codice, l’istanza viene considerata inattiva quando vengono soddisfatte le condizioni seguenti: 
+  Nessuna modifica al file di testo o al notebook 
+  Nessun file visualizzato 
+  Nessuna interazione con il terminale

# Configurazione dello spegnimento in modalità inattiva
<a name="studio-updated-idle-shutdown-setup"></a>

 Le sezioni seguenti mostrano come configurare lo spegnimento in modalità inattiva dalla console o dalla AWS CLI. Lo spegnimento in modalità inattiva può essere impostato a livello di dominio o di profilo utente. 

## Prerequisiti
<a name="studio-updated-idle-shutdown-setup-prereq"></a>

 Per utilizzare lo spegnimento in modalità inattiva per l’applicazione, devi completare i prerequisiti seguenti. 
+ Assicurati che l'applicazione utilizzi la versione 2.0 di SageMaker Distribution (SMD). Puoi selezionare questa versione mentre crei l’applicazione o aggiornare la versione dell’immagine dell’applicazione dopo la creazione. Per ulteriori informazioni, consulta [Aggiorna l'immagine SageMaker di distribuzione](studio-updated-jl-update-distribution-image.md). 
+ Per le applicazioni create con immagini personalizzate, lo spegnimento in stato di inattività è supportato se l'immagine personalizzata viene creata con SageMaker Distribution (SMD) versione 2.0 o successiva come immagine di base. Se l'immagine personalizzata viene creata con un'immagine di base diversa, devi installare l'estensione [jupyter-activity-monitor-extension >= 0.3.1](https://anaconda.org/conda-forge/jupyter-activity-monitor-extension) sull'immagine e allegare l'immagine al tuo dominio Amazon SageMaker AI per le JupyterLab applicazioni. Per ulteriori informazioni sulle immagini personalizzate, consulta [Bring Your Own Image (BYOI)](studio-updated-byoi.md).

## Dalla console
<a name="studio-updated-idle-shutdown-setup-console"></a>

 Le sezioni seguenti mostrano come abilitare lo spegnimento in modalità inattiva dalla console. 

### Aggiunta durante la creazione di un nuovo dominio
<a name="studio-updated-idle-shutdown-setup-console-new-domain"></a>

1. Crea un dominio seguendo la procedura descritta in [Usa una configurazione personalizzata per Amazon SageMaker AI](onboard-custom.md). 

1.  Quando configuri le impostazioni dell'applicazione nel dominio, accedi al Code Editor o alla sezione. JupyterLab   

1.  Seleziona **Abilita spegnimento inattivo**. 

1.  Inserisci un valore in minuti per il tempo di spegnimento in modalità inattiva predefinito. Se non viene immesso alcun valore, l’impostazione predefinita è `10,080`. 

1.  (Facoltativo) Seleziona **Consenti agli utenti di impostare un tempo di spegnimento inattivo personalizzato** per consentire agli utenti di modificare tale intervallo di tempo. 
   +  Inserisci un valore massimo che gli utenti possono utilizzare per impostare il tempo di spegnimento in modalità inattiva predefinito. È necessario inserire un valore massimo. Il valore minimo è impostato da Amazon SageMaker AI e deve essere`60`. 

### Aggiunta a un dominio esistente
<a name="studio-updated-idle-shutdown-setup-console-existing-domain"></a>

**Nota**  
Se lo spegnimento in modalità inattiva viene impostato mentre le applicazioni sono in esecuzione, è necessario riavviarle affinché le impostazioni di questa funzionalità abbiano effetto. 

1.  Vai al dominio. 

1.  Scegli la scheda **Configurazioni app**. 

1.  Dalla scheda **Configurazioni dell'app**, vai all'editor di codice o alla JupyterLab sezione. 

1.  Seleziona **Edit (Modifica)**. 

1.  Seleziona **Abilita spegnimento inattivo**. 

1.  Inserisci un valore in minuti per il tempo di spegnimento in modalità inattiva predefinito. Se non viene immesso alcun valore, l’impostazione predefinita è `10,080`. 

1.  (Facoltativo) Seleziona **Consenti agli utenti di impostare un tempo di spegnimento inattivo personalizzato** per consentire agli utenti di modificare tale intervallo di tempo. 
   +  Inserisci un valore massimo che gli utenti possono utilizzare per impostare il tempo di spegnimento in modalità inattiva predefinito. Devi inserire un valore massimo. Il valore minimo è impostato da Amazon SageMaker AI e deve essere`60`. 

1.  Selezionare **Invia**. 

### Aggiunta durante la creazione di un nuovo profilo utente
<a name="studio-updated-idle-shutdown-setup-console-new-userprofile"></a>

1. Aggiungi un profilo utente seguendo la procedura riportata in [Aggiunta di profili utente](domain-user-profile-add.md). 

1.  Quando configuri le impostazioni dell'applicazione per il profilo utente, accedi all'editor di codice o alla JupyterLab sezione. 

1.  Seleziona **Abilita spegnimento inattivo**. 

1.  Inserisci un valore in minuti per il tempo di spegnimento in modalità inattiva predefinito. Se non viene immesso alcun valore, l’impostazione predefinita è `10,080`. 

1.  (Facoltativo) Seleziona **Consenti agli utenti di impostare un tempo di spegnimento inattivo personalizzato** per consentire agli utenti di modificare tale intervallo di tempo. 
   +  Inserisci un valore massimo che gli utenti possono utilizzare per impostare il tempo di spegnimento in modalità inattiva predefinito. È necessario immettere un valore massimo. Il valore minimo è impostato da Amazon SageMaker AI e deve essere`60`. 

1.  Seleziona “Salva modifiche”. 

### Aggiunta a un profilo utente esistente
<a name="studio-updated-idle-shutdown-setup-console-existing-userprofile"></a>

 Nota: se lo spegnimento in modalità inattiva è impostato mentre le applicazioni sono in esecuzione, è necessario riavviarle affinché le impostazioni di questa funzionalità abbiano effetto. 

1.  Vai al profilo utente. 

1.  Scegli la scheda **Configurazioni app**. 

1.  Dalla scheda ****Configurazioni dell'app****, vai all'editor di codice o alla JupyterLab sezione.  

1.  Seleziona **Edit (Modifica)**. 

1.  Se sono configurate per il dominio, le impostazioni di spegnimento in modalità inattiva corrisponderanno per impostazione predefinita alle impostazioni del dominio. 

1.  Seleziona **Abilita spegnimento inattivo**. 

1.  Inserisci un valore in minuti per il tempo di spegnimento in modalità inattiva predefinito. Se non viene immesso alcun valore, l’impostazione predefinita è `10,080`. 

1.  (Facoltativo) Seleziona **Consenti agli utenti di impostare un tempo di spegnimento inattivo personalizzato** per consentire agli utenti di modificare tale intervallo di tempo. 
   +  Inserisci un valore massimo che gli utenti possono utilizzare per impostare il tempo di spegnimento in modalità inattiva predefinito. Devi inserire un valore massimo. Il valore minimo è impostato da Amazon SageMaker AI e deve essere`60`. 

1.  Seleziona **Salva modifiche**. 

## Dal AWS CLI
<a name="studio-updated-idle-shutdown-setup-cli"></a>

 Nelle sezioni seguenti viene mostrato come abilitare lo spegnimento in modalità inattiva con la AWS CLI. 

**Nota**  
Per applicare un valore di timeout specifico da AWS CLI, è necessario impostare `IdleTimeoutInMinutes``MaxIdleTimeoutInMinutes`, e `MinIdleTimeoutInMinutes` sullo stesso valore.

### Dominio
<a name="studio-updated-idle-shutdown-setup-cli-domain"></a>

 Il comando seguente mostra come abilitare lo spegnimento in modalità inattiva quando si aggiorna un dominio esistente. Se invece desideri aggiungere la funzionalità di spegnimento in modalità inattiva a un nuovo dominio, utilizza il comando `create-domain`. 

**Nota**  
Se lo spegnimento in modalità inattiva viene impostato mentre le applicazioni sono in esecuzione, è necessario riavviarle affinché le impostazioni di questa funzionalità abbiano effetto. 

```
aws sagemaker update-domain --region region --domain-id domain-id \
--default-user-settings file://default-user-settings.json

## default-user-settings.json example for enforcing the default timeout
{
    "JupyterLabAppSettings": {
        "AppLifecycleManagement": {
            "IdleSettings": {
                "LifecycleManagement": "ENABLED",
                "IdleTimeoutInMinutes": 120,
                "MaxIdleTimeoutInMinutes": 120,
                "MinIdleTimeoutInMinutes": 120
        }
    }
}

## default-user-settings.json example for letting users customize the default timeout, between 2-5 hours
{
    "JupyterLabAppSettings": {
        "AppLifecycleManagement": {
            "IdleSettings": {
                "LifecycleManagement": "ENABLED",
                "IdleTimeoutInMinutes": 120,
                "MinIdleTimeoutInMinutes": 120,
                "MaxIdleTimeoutInMinutes": 300
        }
    }
}
```

### Profilo utente
<a name="studio-updated-idle-shutdown-setup-cli-userprofile"></a>

 Il comando seguente mostra come abilitare lo spegnimento in modalità inattiva quando si aggiorna un profilo utente esistente. Se invece desideri aggiungere la funzionalità di spegnimento in modalità inattiva a un nuovo profilo utente, utilizza il comando `create-user-profile`. 

**Nota**  
Se lo spegnimento in modalità inattiva viene impostato mentre le applicazioni sono in esecuzione, è necessario riavviarle affinché le impostazioni di questa funzionalità abbiano effetto. 

```
aws sagemaker update-user-profile --region region --domain-id domain-id \
--user-profile-name user-profile-name --user-settings file://user-settings.json

## user-settings.json example for enforcing the default timeout
{
    "JupyterLabAppSettings": {
        "AppLifecycleManagement": {
            "IdleSettings": {
                "LifecycleManagement": "ENABLED",
                "IdleTimeoutInMinutes": 120,
                "MaxIdleTimeoutInMinutes": 120,
                "MinIdleTimeoutInMinutes": 120
        }
    }
}

## user-settings.json example for letting users customize the default timeout, between 2-5 hours
{
    "JupyterLabAppSettings": {
        "AppLifecycleManagement": {
            "IdleSettings": {
                "LifecycleManagement": "ENABLED",
                "IdleTimeoutInMinutes": 120,
                "MinIdleTimeoutInMinutes": 120,
                "MaxIdleTimeoutInMinutes": 300
        }
    }
}
```

# Aggiornamento delle impostazioni predefinite per lo spegnimento in modalità inattiva
<a name="studio-updated-idle-shutdown-update"></a>

 Puoi aggiornare le impostazioni predefinite per lo spegnimento in modalità inattiva a livello di dominio o di profilo utente. 

**Nota**  
Se lo spegnimento in modalità inattiva viene impostato mentre le applicazioni sono in esecuzione, è necessario riavviarle affinché le impostazioni di questa funzionalità abbiano effetto. 

## Aggiornamento delle impostazioni di dominio
<a name="studio-updated-idle-shutdown-update-domain"></a>

1.  Vai al dominio. 

1.  Scegli la scheda **Configurazioni app**. 

1.  Dalla scheda **Configurazioni dell'app**, vai all'editor di codice o alla JupyterLab sezione.  

1.  Nella sezione relativa all’applicazione per cui desideri modificare il limite per il tempo di spegnimento in modalità inattiva, seleziona **Modifica**. 

1.  Aggiorna le impostazioni di spegnimento in modalità inattiva per il dominio. 

1.  Seleziona **Salva modifiche**. 

## Aggiornamento delle impostazioni del profilo utente
<a name="studio-updated-idle-shutdown-update-userprofile"></a>

1.  Vai al dominio. 

1.  Scegli la scheda **Profili utente**. 

1.  Nella scheda **Profili utente**, seleziona il profilo utente da modificare. 

1.  Nella pagina **Profilo utente**, scegli la scheda **Applicazioni**. 

1.  Nella scheda **Applicazioni**, accedi all'editor di codice o alla JupyterLab sezione.  

1.  Nella sezione relativa all’applicazione per cui desideri modificare il limite per il tempo di spegnimento in modalità inattiva, seleziona **Modifica**. 

1.  Aggiorna le impostazioni di spegnimento in modalità inattiva per il profilo utente. 

1.  Seleziona **Salva modifiche**. 

# Modifica del limite per il tempo di spegnimento in modalità inattiva
<a name="studio-updated-idle-shutdown-modify"></a>

 Gli utenti possono modificare il limite per il tempo di spegnimento in modalità inattiva se l’amministratore concede loro l’accesso quando aggiunge il supporto per lo spegnimento in modalità inattiva. Se viene aggiunto il supporto per lo spegnimento in modalità inattiva, potrebbe essere applicato un limite al tempo massimo consentito per lo spegnimento in modalità inattiva. Un utente può impostare qualsiasi valore compreso tra il limite inferiore e il limite superiore. 

1.  Avvia Amazon SageMaker Studio seguendo la procedura riportata di seguito[Avvia Amazon SageMaker Studio](studio-updated-launch.md). 

1.  Nella sezione **Applicazioni**, seleziona il tipo di applicazione per cui aggiornare il tempo di spegnimento in modalità inattiva. 

1.  Seleziona lo spazio da aggiornare. 

1.  Aggiorna il campo **Tempo di spegnimento inattivo (minuti)** con il valore desiderato. 
**Nota**  
Se lo spegnimento in modalità inattiva viene impostato mentre le applicazioni sono in esecuzione, è necessario riavviarle affinché le impostazioni di questa funzionalità abbiano effetto. 

# Applicazioni supportate in Amazon SageMaker Studio
<a name="studio-updated-apps"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata Amazon SageMaker Studio Classic. La sezione seguente è specifica per l’utilizzo dell’esperienza Studio aggiornata. Per informazioni sull’utilizzo dell’applicazione Studio Classic, consulta [Amazon SageMaker Studio Classic](studio.md).

 Amazon SageMaker Studio supporta le seguenti applicazioni: 
+  **Editor di codice, basato su Code-OSS, Visual Studio Code - Open Source**: l’Editor di codice offre un ambiente di sviluppo integrato (IDE) leggero e potente con scorciatoie familiari, terminali, funzionalità di debug avanzate e strumenti di rifattorizzazione avanzati. È un’applicazione completamente gestita e basata su browser in Studio. Per ulteriori informazioni, consulta [Editor di codice in Amazon SageMaker Studio](code-editor.md). 
+  **Amazon SageMaker Studio Classic** — Amazon SageMaker Studio Classic è un IDE basato sul Web per l'apprendimento automatico. Con Studio Classic puoi creare, addestrare, eseguire il debug, implementare e monitorare i modelli di machine learning. Per ulteriori informazioni, consulta [Amazon SageMaker Studio Classic](studio.md). 
+  **JupyterLab**— JupyterLab offre una serie di funzionalità che ampliano l'offerta di notebook completamente gestiti. Include kernel che si avviano in pochi secondi, un runtime preconfigurato con i più diffusi sistemi di data science, framework di machine learning e archiviazione a blocchi ad alte prestazioni. Per ulteriori informazioni, consulta [SageMaker JupyterLab](studio-updated-jl.md). 
+  **Amazon SageMaker Canvas**: con SageMaker Canvas, puoi utilizzare l'apprendimento automatico per generare previsioni senza scrivere codice. Con Canvas, puoi chattare con i più diffusi modelli di linguaggio di grandi dimensioni (LLMs), accedere ai ready-to-use modelli o creare un modello personalizzato addestrato sui tuoi dati. Per ulteriori informazioni, consulta [Amazon SageMaker Tela](canvas.md). 
+  **RStudio**— RStudio è un ambiente di sviluppo integrato per R. Include una console e un editor di evidenziazione della sintassi che supporta l'esecuzione diretta del codice. Include anche strumenti per la grafica, la cronologia, il debug e la gestione degli spazi di lavoro. Per ulteriori informazioni, consulta [RStudio su Amazon SageMaker AI](rstudio.md). 

# Connect il tuo IDE remoto a SageMaker spazi con accesso remoto
<a name="remote-access"></a>

Puoi connetterti in remoto dal tuo IDE remoto agli spazi Amazon SageMaker Studio. Puoi utilizzare la tua configurazione IDE locale personalizzata, inclusi strumenti di sviluppo assistito dall'intelligenza artificiale ed estensioni personalizzate, con le risorse di calcolo scalabili di Amazon AI. SageMaker In questa guida sono descritti i concetti e le istruzioni di configurazione per gli amministratori e gli utenti.

Una connessione IDE remota stabilisce una connessione sicura tra l'IDE locale e gli spazi. SageMaker Questa connessione consente di:
+ **Accedi alle risorse di calcolo SageMaker AI**: esegui codice su un'infrastruttura SageMaker AI scalabile dal tuo ambiente locale
+ **Mantieni i limiti di sicurezza**: lavora all'interno dello stesso framework di sicurezza dell'IA SageMaker 
+ **Mantieni la tua esperienza IDE familiare**: utilizza estensioni, temi e configurazioni locali compatibili che supportano lo sviluppo remoto

**Nota**  
Non tutte le estensioni IDE sono compatibili con lo sviluppo remoto. Le estensioni che richiedono componenti GUI locali, hanno dipendenze dall’architettura o richiedono interazioni client-server specifiche potrebbero non funzionare correttamente nell’ambiente remoto. Verifica che le estensioni richieste supportino lo sviluppo remoto prima dell'uso.

**Topics**
+ [Concetti chiave](#remote-access-key-concepts)
+ [Metodi di connessione](#remote-access-connection-methods)
+ [Supportato IDEs](#remote-access-supported-ides)
+ [Requisiti della versione IDE](#remote-access-ide-version-requirements)
+ [Requisiti del sistema operativo](#remote-access-os-requirements)
+ [Prerequisiti del computer locale](#remote-access-local-prerequisites)
+ [Requisiti delle immagini](#remote-access-image-requirements)
+ [Requisiti per l’istanza](#remote-access-instance-requirements)
+ [Configurazione dell’accesso remoto](remote-access-remote-setup.md)
+ [Configura IDE remoto](remote-access-local-ide-setup.md)
+ [AWS Regioni supportate](remote-access-supported-regions.md)

## Concetti chiave
<a name="remote-access-key-concepts"></a>
+ **Connessione remota**: un tunnel sicuro tra l'IDE remoto e uno SageMaker spazio. Questa connessione consente lo sviluppo interattivo e l'esecuzione del codice utilizzando risorse di calcolo SageMaker AI.
+ [https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-spaces.html](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-spaces.html): un ambiente dedicato all'interno di Amazon SageMaker Studio in cui puoi gestire lo storage e le risorse per le tue applicazioni Studio.
+ **Deep link**: un pulsante (URL diretto) dall' SageMaker interfaccia utente che avvia una connessione remota all'IDE locale.

## Metodi di connessione
<a name="remote-access-connection-methods"></a>

Esistono tre modi principali per connettere l'IDE remoto agli SageMaker spazi:
+ **Accesso diretto**: puoi connetterti direttamente a uno spazio specifico utilizzando il pulsante **Apri spazio con** disponibile in SageMaker AI. Questo utilizza modelli di URL per stabilire una connessione remota e aprire il tuo SageMaker spazio nel tuo IDE remoto.
+ [https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html): puoi eseguire l’autenticazione con AWS Toolkit for Visual Studio Code. Ciò ti consente di connetterti agli spazi e aprire una finestra connessa in remoto dal tuo IDE remoto.
+ **Connessione terminale SSH**: puoi connetterti tramite riga di comando utilizzando la configurazione SSH.

## Supportato IDEs
<a name="remote-access-supported-ides"></a>

La connessione remota agli spazi di Studio supporta:
+ [Visual Studio Code](https://code.visualstudio.com/)
+ [Kiro](https://kiro.dev/)
+ [Cursore](https://cursor.com/home)

## Requisiti della versione IDE
<a name="remote-access-ide-version-requirements"></a>

La tabella seguente elenca i requisiti minimi di versione per ogni IDE remoto supportato.


| IDE | Versione minima | 
| --- | --- | 
|  Visual Studio Code  |  [v1.90 o superiore](https://code.visualstudio.com/updates/v1_90). Ti consigliamo di utilizzare l'[ultima versione stabile](https://code.visualstudio.com/updates).  | 
|  Kiro  |  v0.10.78 o superiore  | 
|  Cursore  |  v2.6.18 o superiore  | 

L'estensione AWS Toolkit è necessaria per connettere l'IDE remoto agli spazi di Studio. Per Kiro e Cursor, è richiesta la versione dell'estensione AWS Toolkit v3.100 o successiva.

## Requisiti del sistema operativo
<a name="remote-access-os-requirements"></a>

Per connetterti in remoto agli spazi di Studio, devi disporre di uno dei seguenti sistemi operativi:
+ macOS 13\$1
+ Windows 10
  + [Il supporto per Windows 10 termina il 14 ottobre 2025](https://support.microsoft.com/en-us/windows/windows-10-support-ends-on-october-14-2025-2ca8b313-1946-43d3-b55c-2b95b107f281)
+ Windows 11
+ Linux
  + Per VS Code, installa il [Microsoft VS Code ufficiale per Linux](https://code.visualstudio.com/docs/setup/linux), non una versione open source

## Prerequisiti del computer locale
<a name="remote-access-local-prerequisites"></a>

Prima di connettere l'IDE remoto agli spazi di Studio, assicurati che il computer locale disponga delle dipendenze e dell'accesso alla rete richiesti.

**Importante**  
Gli ambienti con restrizioni all'installazione del software possono impedire agli utenti di installare le dipendenze richieste. Cerca AWS Toolkit for Visual Studio Code automaticamente queste dipendenze all'avvio delle connessioni remote e richiederà l'installazione se ce ne sono alcune mancanti. Coordinatevi con il vostro reparto IT per garantire la disponibilità di questi componenti.

**Dipendenze locali richieste**

Sul computer locale devono essere installati i seguenti componenti:
+ **[Remote-SSH Extension: estensione](https://code.visualstudio.com/docs/remote/ssh)** di sviluppo remoto per il tuo IDE (disponibile nel marketplace delle estensioni per VS Code, Kiro e Cursor)
+ **[Plugin Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html)**: necessario per la gestione sicura delle sessioni
+ **Client SSH**: componente standard sulla maggior parte delle macchine ([OpenSSH consigliato](https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse) per Windows)
+ **Comando IDE CLI**: in genere incluso nell'installazione IDE (ad esempio, per VS Code, `code` per Kiro, `kiro` `cursor` per Cursor)

**Requisiti specifici della piattaforma**
+ **Utenti Windows**: per le connessioni terminali SSH è richiesta la versione PowerShell 5.1 o successiva

**requisiti di connettività di rete**

Il computer locale deve avere accesso di rete agli [endpoint di Session Manager](https://docs.aws.amazon.com/general/latest/gr/ssm.html). Ad esempio, negli Stati Uniti orientali (Virginia settentrionale) (us-east-1) questi possono essere:
+ ssm.us-east-1.amazonaws.com
+ ssm.us-east-1.api.aws
+ ssmmessages.us-east-1.amazonaws.com
+ ec2messages.us-east-1.amazonaws.com

## Requisiti delle immagini
<a name="remote-access-image-requirements"></a>

**SageMaker Immagini di distribuzione**

Quando si utilizza SageMaker Distribution con accesso remoto, utilizzare [SageMaker Distribution](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-distribution.html) versione 2.7 o successiva.

**Immagini personalizzate**

Se utilizzi [Bring Your Own Image (BYOI)](studio-updated-byoi.md) l'accesso remoto, assicurati di seguire le [specifiche dell'immagine personalizzata](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-byoi-specs.html) e assicurati che siano installate le seguenti dipendenze:
+ `curl`o `wget` — Necessario per scaricare i componenti AWS CLI 
+ `unzip`— Necessario per estrarre i file AWS CLI di installazione
+ `tar`— Necessario per l'estrazione dell'archivio
+ `gzip`— Necessario per la gestione di file compressi

## Requisiti per l’istanza
<a name="remote-access-instance-requirements"></a>
+ **Memoria**: almeno 8 GB
+ **Tipi di istanze**: utilizza istanze con almeno 8 GB di memoria. I seguenti tipi di istanze *non* sono supportati a causa della memoria insufficiente (meno di 8 GB): `ml.t3.medium`, `ml.c7i.large`, `ml.c6i.large`, `ml.c6id.large` e `ml.c5.large`. Per un elenco completo dei tipi di istanze, consulta la pagina [Amazon EC2 On-Demand Pricing](https://aws.amazon.com/ec2/pricing/on-demand/).

**Topics**
+ [Concetti chiave](#remote-access-key-concepts)
+ [Metodi di connessione](#remote-access-connection-methods)
+ [Supportato IDEs](#remote-access-supported-ides)
+ [Requisiti della versione IDE](#remote-access-ide-version-requirements)
+ [Requisiti del sistema operativo](#remote-access-os-requirements)
+ [Prerequisiti del computer locale](#remote-access-local-prerequisites)
+ [Requisiti delle immagini](#remote-access-image-requirements)
+ [Requisiti per l’istanza](#remote-access-instance-requirements)
+ [Configurazione dell’accesso remoto](remote-access-remote-setup.md)
+ [Configura IDE remoto](remote-access-local-ide-setup.md)
+ [AWS Regioni supportate](remote-access-supported-regions.md)

# Configurazione dell’accesso remoto
<a name="remote-access-remote-setup"></a>

Prima che gli utenti possano connettere il proprio IDE remoto agli spazi di Studio, l'amministratore deve configurare le autorizzazioni. Questa sezione fornisce istruzioni per gli amministratori su come configurare il proprio dominio Amazon SageMaker AI con accesso remoto.

I diversi metodi di connessione richiedono autorizzazioni IAM specifiche. Configura le autorizzazioni appropriate a seconda del tipo di connessione utilizzato dagli utenti. Utilizza il flusso di lavoro seguente insieme alle autorizzazioni specifiche per il metodo di connessione.

**Importante**  
Attualmente le connessioni remote agli IDE non vengono autenticate con il Centro identità IAM, ma con le credenziali IAM. Questo vale per i domini che utilizzano il [metodo di autenticazione](https://docs.aws.amazon.com/sagemaker/latest/dg/onboard-custom.html#onboard-custom-authentication-details) del Centro identità IAM per concedere agli utenti l’accesso al dominio. Se preferisci non utilizzare l’autenticazione IAM per le connessioni remote, puoi scegliere di non aderire disabilitando questa funzionalità con la chiave condizionale `RemoteAccess` nelle policy IAM. Per ulteriori informazioni, consulta [Applicazione dell’accesso remoto](remote-access-remote-setup-abac.md#remote-access-remote-setup-abac-remote-access-enforcement). Quando si utilizzano le credenziali IAM, le connessioni IDE remote possono mantenere le sessioni attive anche dopo la disconnessione dalla sessione di IAM Identity Center. A volte, queste connessioni IDE remote possono persistere fino a 12 ore. Per garantire la sicurezza dell'ambiente, gli amministratori devono rivedere le impostazioni sulla durata delle sessioni, ove possibile, e prestare attenzione quando utilizzano workstation condivise o reti pubbliche.

1. Scegli una delle autorizzazioni seguenti in base ai diversi metodi di connessione degli utenti descritti in [Metodi di connessione](remote-access.md#remote-access-connection-methods).

1. [Crea una policy IAM personalizzata](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) basata sull’autorizzazione per il metodo di connessione.

**Topics**
+ [Fase 1. Configura la sicurezza e le autorizzazioni](#remote-access-remote-setup-permissions)
+ [Fase 2. Abilita l’accesso remoto al tuo spazio](#remote-access-remote-setup-enable)
+ [Controllo degli accessi avanzato](remote-access-remote-setup-abac.md)
+ [Configurazione di Studio per l’esecuzione con sottoreti senza accesso a Internet all’interno di un VPC](remote-access-remote-setup-vpc-subnets-without-internet-access.md)
+ [Configura il filtraggio automatico dello spazio di Studio quando usi il AWS Toolkit](remote-access-remote-setup-filter.md)

## Fase 1. Configura la sicurezza e le autorizzazioni
<a name="remote-access-remote-setup-permissions"></a>

**Topics**
+ [Metodo 1: autorizzazioni per i link diretti](#remote-access-remote-setup-method-1-deep-link-permissions)
+ [Metodo 2: autorizzazioni AWS Toolkit](#remote-access-remote-setup-method-2-aws-toolkit-permissions)
+ [Metodo 3: autorizzazioni del terminale SSH](#remote-access-remote-setup-method-3-ssh-terminal-permissions)

**Importante**  
L'utilizzo di autorizzazioni ampie per`sagemaker:StartSession`, in particolare con una risorsa wildcard, `*` comporta il rischio che qualsiasi utente con questa autorizzazione possa avviare una sessione con qualsiasi SageMaker app Space dell'account. Ciò può comportare l'impatto dell'accesso involontario degli scienziati dei dati agli Spazi di altri utenti. SageMaker Per gli ambienti di produzione, è necessario limitare queste autorizzazioni a uno spazio specifico per ARNs applicare il principio del privilegio minimo. Vedi esempi [Controllo degli accessi avanzato](remote-access-remote-setup-abac.md) di politiche di autorizzazione più granulari che utilizzano risorse ARNs, tag e vincoli basati sulla rete.

### Metodo 1: autorizzazioni per i link diretti
<a name="remote-access-remote-setup-method-1-deep-link-permissions"></a>

[Per gli utenti che si connettono tramite deep link dall' SageMaker interfaccia utente, utilizza la seguente autorizzazione e collegala al ruolo di [esecuzione dello spazio SageMaker AI o al ruolo di esecuzione del dominio](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-get-execution-role-space).](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-get-execution-role) Se il ruolo di esecuzione dello spazio non è configurato, per impostazione predefinita viene utilizzato il ruolo di esecuzione del dominio.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RestrictStartSessionOnSpacesToUserProfile",
            "Effect": "Allow",
            "Action": [
                "sagemaker:StartSession"
            ],
            "Resource": "arn:*:sagemaker:*:*:space/${sagemaker:DomainId}/*",
            "Condition": {
                "ArnLike": {
                    "sagemaker:ResourceTag/sagemaker:user-profile-arn": "arn:aws:sagemaker:*:*:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"
                }
            }
        }
    ]
}
```

------

### Metodo 2: autorizzazioni AWS Toolkit
<a name="remote-access-remote-setup-method-2-aws-toolkit-permissions"></a>

Per gli utenti che si connettono tramite l' AWS Toolkit for Visual Studio Code estensione, allega la seguente politica a una delle seguenti:
+ Per l’autenticazione IAM, collega questa policy all’utente o al ruolo IAM.
+ Per l’autenticazione IdC, collega questa policy ai [set di autorizzazioni](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) gestiti dall’IdC.

Per mostrare solo gli spazi relativi all'utente autenticato, consulta[Panoramica sulla funzionalità di filtraggio](remote-access-remote-setup-filter.md#remote-access-remote-setup-filter-overview).

**Importante**  
Questa policy, che utilizza `*` come vincolo delle risorse, è consigliata solo per l’esecuzione di test rapidi. Per gli ambienti di produzione, è necessario limitare queste autorizzazioni a uno spazio specifico ARNs per applicare il principio del privilegio minimo. Vedi esempi [Controllo degli accessi avanzato](remote-access-remote-setup-abac.md) di politiche di autorizzazione più granulari che utilizzano risorse ARNs, tag e vincoli basati sulla rete.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:ListSpaces",
                "sagemaker:DescribeSpace",
                "sagemaker:ListApps",
                "sagemaker:DescribeApp",
                "sagemaker:DescribeDomain",
                "sagemaker:UpdateSpace",
                "sagemaker:CreateApp",
                "sagemaker:DeleteApp",
                "sagemaker:AddTags"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowStartSessionOnSpaces",
            "Effect": "Allow",
            "Action": "sagemaker:StartSession",
            "Resource": [
                "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/space-name-1",
                "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/space-name-2"
            ]
        }
    ]
}
```

------

### Metodo 3: autorizzazioni del terminale SSH
<a name="remote-access-remote-setup-method-3-ssh-terminal-permissions"></a>

Per le connessioni terminali SSH, l'`StartSession`API viene richiamata dallo script di comando del proxy SSH riportato di seguito, utilizzando le credenziali locali. AWS AWS CLI Per informazioni e istruzioni [sulla configurazione](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) delle credenziali locali dell'utente, consulta Configure the. AWS Per utilizzare queste autorizzazioni:

1. Collega questa policy all’utente o al ruolo IAM associato alle credenziali AWS locali.

1. Se utilizzi un profilo di credenziali denominato, modifica il comando proxy nella configurazione SSH:

   ```
   ProxyCommand '/home/user/sagemaker_connect.sh' '%h' YOUR_CREDENTIAL_PROFILE_NAME
   ```
**Nota**  
La policy deve essere collegata all'identità IAM (utente/ruolo) utilizzata nella configurazione delle AWS credenziali locali, non al ruolo di esecuzione del dominio Amazon SageMaker AI.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowStartSessionOnSpecificSpaces",
               "Effect": "Allow",
               "Action": "sagemaker:StartSession",
               "Resource": [
                   "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/space-name-1",
                   "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/space-name-2"
               ]
           }
       ]
   }
   ```

------

Dopo la configurazione, gli utenti possono eseguire `ssh my_studio_space_abc` per avviare lo spazio. Per ulteriori informazioni, consulta [Metodo 3: connettersi dal terminale tramite la CLI SSH](remote-access-local-ide-setup.md#remote-access-local-ide-setup-local-vs-code-method-3-connect-from-the-terminal-via-ssh-cli).

## Fase 2. Abilita l’accesso remoto al tuo spazio
<a name="remote-access-remote-setup-enable"></a>

Dopo aver configurato le autorizzazioni, devi attivare l'**accesso remoto** e avviare lo spazio in Studio prima che l'utente possa connettersi utilizzando il proprio IDE remoto. Questa configurazione deve essere eseguita solo una volta.

**Nota**  
Se gli utenti si connettono tramite[Metodo 2: autorizzazioni AWS Toolkit](#remote-access-remote-setup-method-2-aws-toolkit-permissions), questo passaggio non è necessariamente necessario. AWS Toolkit for Visual Studio gli utenti possono abilitare l'accesso remoto dal Toolkit.

**Attivazione dell’accesso remoto per lo spazio Studio**

1. [Avvia Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html#studio-updated-launch-console).

1. Apri l’interfaccia utente di Studio.

1. Vai al tuo spazio.

1. Nei dettagli dello spazio, attiva l’opzione **Accesso remoto**.

1. Scegli **Esegui lo spazio**.

# Controllo degli accessi avanzato
<a name="remote-access-remote-setup-abac"></a>

Amazon SageMaker AI supporta il controllo degli [accessi basato sugli attributi (ABAC) per ottenere un controllo](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) granulare degli accessi per le connessioni IDE remote utilizzando le politiche ABAC. Di seguito sono riportati alcuni esempi di politiche ABAC per connessioni IDE remote.

**Topics**
+ [Applicazione dell’accesso remoto](#remote-access-remote-setup-abac-remote-access-enforcement)
+ [Controllo degli accessi basato su tag](#remote-access-remote-setup-abac-tag-based-access-control)

## Applicazione dell’accesso remoto
<a name="remote-access-remote-setup-abac-remote-access-enforcement"></a>

Controlla l’accesso alle risorse utilizzando la chiave di condizione `sagemaker:RemoteAccess`. Questo è supportato sia da che`CreateSpace`. `UpdateSpace` APIs Nell'esempio seguente viene utilizzato `CreateSpace`. 

Puoi impedire agli utenti di creare spazi con l’accesso remoto abilitato. Limitando le impostazioni predefinite di accesso, puoi garantire una maggiore sicurezza. La policy seguente consente agli utenti di:
+ Creare nuovi spazi Studio in cui l’accesso remoto è esplicitamente disabilitato.
+ Creare nuovi spazi Studio senza specificare alcuna impostazione di accesso remoto.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenyCreateSpaceRemoteAccessEnabled",
            "Effect": "Deny",
            "Action": [
                "sagemaker:CreateSpace",
                "sagemaker:UpdateSpace"
            ],
            "Resource": "arn:aws:sagemaker:*:*:space/*",
            "Condition": {
                "StringEquals": {
                    "sagemaker:RemoteAccess": [
                        "ENABLED"
                    ]
                }
            }
        },
        {
            "Sid": "AllowCreateSpace",
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreateSpace",
                "sagemaker:UpdateSpace"
            ],
            "Resource": "arn:aws:sagemaker:*:*:space/*"
        }
    ]
}
```

------

## Controllo degli accessi basato su tag
<a name="remote-access-remote-setup-abac-tag-based-access-control"></a>

Implementa il controllo degli accessi [basato su tag](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/what-are-tags.html) per limitare le connessioni in base ai tag di risorse e principali.

Puoi limitare l’accesso degli utenti esclusivamente alle risorse appropriate per i loro ruoli e le loro assegnazioni di progetto. Puoi utilizzare la policy seguente per:
+ Consentire agli utenti di connettersi solo agli spazi che corrispondono al team, all’ambiente e al centro di costo assegnato.
+ Implementare un controllo granulare degli accessi basato sulla struttura organizzativa.

In questo esempio, lo spazio contiene i tag seguenti:

```
{ "Team": "ML", "Environment": "Production", "CostCenter": "12345" }
```

È possibile avere un ruolo che contiene la policy seguente che associa i tag delle risorse e i tag dei principali:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "RestrictStartSessionOnTaggedSpacesInDomain",
            "Effect": "Allow",
            "Action": [
                "sagemaker:StartSession"
            ],
            "Resource": [
                "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/Team": "${aws:PrincipalTag/Team}",
                    "aws:ResourceTag/Environment": "${aws:PrincipalTag/Environment}",
                    "aws:ResourceTag/CostCenter": "${aws:PrincipalTag/CostCenter}",
                    "aws:ResourceTag/IDC_UserName": "${aws:PrincipalTag/IDC_UserName}"
                }
            }
        }
    ]
}
```

------

Quando i tag del ruolo corrispondono, l’utente è autorizzato ad avviare la sessione e a connettersi in remoto al proprio spazio. Per ulteriori informazioni, consulta [Controllo dell’accesso alle risorse AWS con i tag](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html).

# Configurazione di Studio per l’esecuzione con sottoreti senza accesso a Internet all’interno di un VPC
<a name="remote-access-remote-setup-vpc-subnets-without-internet-access"></a>

Questa guida mostra come connetterti agli spazi Amazon SageMaker Studio dal tuo IDE remoto quando il tuo dominio Amazon SageMaker AI viene eseguito in sottoreti private senza accesso a Internet. Scoprirai quali sono i requisiti di connettività e le opzioni di configurazione per stabilire connessioni remote sicure in ambienti di rete isolati.

Puoi configurare Amazon SageMaker Studio per l'esecuzione in modalità solo VPC con sottoreti senza accesso a Internet. Questa configurazione migliora la sicurezza dei carichi di lavoro di machine learning operando in un ambiente di rete isolato in cui tutto il traffico fluisce attraverso il VPC. Per abilitare le comunicazioni esterne mantenendo al contempo la sicurezza, utilizza gli endpoint VPC per i AWS servizi e configura PrivateLink VPC per le dipendenze richieste. AWS 

**Supporto IDE per connessioni di sottorete private**

La tabella seguente mostra i metodi di connessione supportati per ogni IDE remoto quando ci si connette a spazi Studio in sottoreti private senza accesso a Internet.


| Metodo di connessione | VS Code | Kiro | Cursore | 
| --- | --- | --- | --- | 
|  Supporto per proxy HTTP  |  Supportata  |  Supportata  |  Non supportata  | 
|  Server remoto ed estensioni preconfezionati  |  Supportata  |  Non supportata  |  Non supportata  | 

**Importante**  
Il cursore non è supportato per la connessione agli spazi Studio in sottoreti private senza accesso a Internet in uscita.

**Topics**
+ [Requisiti della rete di accesso remoto di Studio](#remote-access-remote-setup-vpc-subnets-without-internet-access-network-requirements)
+ [Configurazione della rete di accesso remoto di Studio](#remote-access-remote-setup-vpc-subnets-without-internet-access-setup)

## Requisiti della rete di accesso remoto di Studio
<a name="remote-access-remote-setup-vpc-subnets-without-internet-access-network-requirements"></a>

**Limitazioni della modalità VPC**: Studio in modalità VPC supporta solo le sottoreti private. Studio non funziona con le sottoreti collegate direttamente a un gateway Internet (IGW). Le connessioni IDE remote condividono le stesse limitazioni dell'IA. SageMaker Per ulteriori informazioni, consulta [Connessione dei notebook Studio in un VPC a risorse esterne](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-and-internet-access.html).

### Requisiti VPC PrivateLink
<a name="remote-access-remote-setup-vpc-subnets-without-internet-access-vpc-privatelink-requirements"></a>

Quando l' SageMaker intelligenza artificiale viene eseguita in sottoreti private, configura questi endpoint VPC SSM oltre agli endpoint VPC standard richiesti per. SageMaker Per ulteriori informazioni, consulta [Connessione di Studio tramite un endpoint VPC](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-interface-endpoint.html).
+ `com.amazonaws.REGION.ssm`
+ `com.amazonaws.REGION.ssmmessages`

**Raccomandazioni sulla policy degli endpoint VPC**

Di seguito sono riportate le policy degli endpoint VPC consigliate che consentono le azioni necessarie per l'accesso remoto utilizzando la `aws:PrincipalIsAWSService` condizione per garantire che solo servizi AWS come Amazon SageMaker AI possano effettuare le chiamate. Per ulteriori informazioni sulla chiave di `aws:PrincipalIsAWSService` condizione, consulta [la](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalisawsservice) documentazione.

**Politica degli endpoint SSM**

Utilizza la seguente politica per l'`com.amazonaws.REGION.ssm`endpoint:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "ssm:CreateActivation",
                "ssm:RegisterManagedInstance",
                "ssm:DeleteActivation",
                "ssm:DeregisterManagedInstance",
                "ssm:AddTagsToResource",
                "ssm:UpdateInstanceInformation",
                "ssm:UpdateInstanceAssociationStatus",
                "ssm:DescribeInstanceInformation",
                "ssm:ListInstanceAssociations",
                "ssm:ListAssociations",
                "ssm:GetDocument",
                "ssm:PutInventory"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:PrincipalIsAWSService": "true"
                }
            }
        }
    ]
}
```

**Politica degli endpoint dei messaggi SSM**

Utilizza la seguente politica per l'`com.amazonaws.REGION.ssmmessages`endpoint:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "ssmmessages:CreateControlChannel",
                "ssmmessages:CreateDataChannel",
                "ssmmessages:OpenControlChannel",
                "ssmmessages:OpenDataChannel"
            ],
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "aws:PrincipalIsAWSService": "true"
                }
            }
        }
    ]
}
```

**Requisiti di rete specifici di VS Code**

La connessione remota VS Code richiede lo sviluppo remoto VS Code, che a sua volta necessita di un accesso alla rete specifico per installare il server remoto e le estensioni. Consulta le [domande frequenti sullo sviluppo remoto](https://code.visualstudio.com/docs/remote/faq) nella documentazione di Visual Studio Code per i requisiti di rete completi. Di seguito è riportato un riepilogo dei requisiti:
+ L’accesso agli endpoint del server VS Code di Microsoft è necessario per installare e aggiornare il server remoto VS Code.
+ L’accesso a Visual Studio Marketplace e ai relativi endpoint CDN è necessario per installare le estensioni VS Code tramite il pannello delle estensioni (in alternativa, le estensioni possono essere installate manualmente utilizzando i file VSIX senza connessione Internet).
+ Alcune estensioni potrebbero richiedere l’accesso a ulteriori endpoint per scaricare le relative dipendenze specifiche. Consulta la documentazione dell’estensione per i requisiti di connettività specifici.

**Requisiti di rete specifici di Kiro**

La connessione remota a Kiro richiede lo sviluppo remoto di Kiro, che richiede un accesso specifico alla rete per installare il server remoto e le estensioni. Per la configurazione del firewall e del server proxy, consulta Configurazione del firewall [Kiro.](https://kiro.dev/docs/privacy-and-security/firewalls/) I requisiti sono simili a quelli di VS Code:
+ L'accesso agli endpoint del server Kiro è necessario per installare e aggiornare il server remoto Kiro.
+ L'accesso al marketplace delle estensioni e ai relativi endpoint CDN è necessario per installare le estensioni Kiro tramite il pannello di estensione.
+ Alcune estensioni potrebbero richiedere l’accesso a ulteriori endpoint per scaricare le relative dipendenze specifiche. Consulta la documentazione dell’estensione per i requisiti di connettività specifici.

## Configurazione della rete di accesso remoto di Studio
<a name="remote-access-remote-setup-vpc-subnets-without-internet-access-setup"></a>

Sono disponibili le seguenti opzioni per connettere l'IDE remoto agli spazi Studio in sottoreti private:
+ Proxy HTTP (supportato per VS Code e Kiro)
+ Server remoto ed estensioni preconfezionati (solo VS Code)

### Configurazione del proxy HTTP con elenchi controllati di elementi consentiti
<a name="remote-access-remote-setup-vpc-subnets-without-internet-access-setup-http-proxy-with-controlled-allow-listing"></a>

Se lo spazio di Studio è protetto da un firewall o da un proxy, consenti l'accesso al server IDE e agli endpoint relativi alle estensioni CDNs .

1. Per eseguire il proxy HTTP, configura una sottorete pubblica, ad esempio Squid, dove puoi specificare quali siti web autorizzare. Assicurati che il proxy HTTP sia accessibile tramite spazi. SageMaker 

1. La sottorete pubblica può trovarsi nello stesso VPC utilizzato dallo Studio o in un VPC separato con tutti i domini di intelligenza artificiale VPCs utilizzati da Amazon. SageMaker 

### Configura server ed estensioni remoti preconfezionati (solo VS Code)
<a name="remote-access-remote-setup-vpc-subnets-without-internet-access-setup-pre-packaged-vs-code-remote-server-and-extensions"></a>

**Nota**  
Questa opzione è disponibile solo per Visual Studio Code. Kiro e Cursor non supportano la configurazione preconfezionata del server remoto.

Quando gli spazi Studio non possono accedere agli endpoint esterni per scaricare il server remoto e le estensioni VS Code, puoi preconfezionarli. Con questo approccio, esporti un tarball che contiene la directory `.VS Code-server` per una versione specifica di VS Code. Quindi, si utilizza uno script SageMaker AI Lifecycle Configuration (LCC) per copiare ed estrarre il tarball nella home directory () degli spazi di Studio. `/home/sagemaker-user` Questa soluzione basata su LCC funziona sia con immagini fornite che personalizzate. AWS Anche quando non si utilizzano sottoreti private, questo approccio accelera la configurazione del server remoto VS Code e delle estensioni preinstallate.

**Istruzioni per preconfezionare il server remoto e le estensioni VS Code**

1. Installa VS Code sul computer locale.

1. Avvia un container Docker basato su Linux (x64) con SSH abilitato, localmente o tramite uno spazio Studio con accesso a Internet. Per semplicità, consigliamo di utilizzare uno spazio Studio temporaneo con accesso remoto e accesso a Internet.

1. Connetti l’istanza VS Code installata sul container Docker locale tramite SSH remoto oppure connettiti allo spazio Studio tramite la funzionalità VS Code remoto di Studio. VS Code installa il server remoto in `.VS Code-server` nella home directory del container remoto durante la connessione. Per ulteriori informazioni, consulta [Esempio di utilizzo di Dockerfile per preconfezionare il server remoto e le estensioni VS Code](remote-access-local-ide-setup-vpc-no-internet.md#remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions-example-dockerfile).

1. Una volta completata la connessione remota, assicurati di utilizzare il profilo predefinito VS Code.

1. Installa le estensioni VS Code richieste e convalidane la funzionalità. Ad esempio, crea ed esegui un notebook per installare le estensioni relative al notebook Jupyter nel server remoto VS Code.

   Assicurati di [installare l' AWS Toolkit for Visual Studio Code estensione](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/setup.html) dopo aver effettuato la connessione al contenitore remoto.

1. Archivia la directory `$HOME/.VS Code-server` (ad esempio, `VS Code-server-with-extensions-for-1.100.2.tar.gz`) nel container Docker locale o nel terminale dello spazio Studio connesso in remoto.

1. Carica il tarball su Amazon S3.

1. Crea uno [script LCC](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-lifecycle-configurations.html) ([Esempio di script LCC (LCC-install-VS C ode-server-v 1.100.2)](remote-access-local-ide-setup-vpc-no-internet.md#remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions-example-lcc)) che:
   + Scarichi l’archivio specifico da Amazon S3.
   + Estragga l’archivio nella home directory quando viene avviato uno spazio Studio in una sottorete privata.

1. (Facoltativo) Estendi lo script LCC per supportare i tarball del server VS Code per ogni utente archiviati in cartelle Amazon S3 specifiche dell’utente.

1. (Facoltativo) Gestisci gli script LCC specifici della versione ([Esempio di script LCC (LCC-install-VS C ode-server-v 1.100.2)](remote-access-local-ide-setup-vpc-no-internet.md#remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions-example-lcc)) da collegare ai tuoi spazi per garantire la compatibilità tra il client VS Code locale e il server remoto.

# Configura il filtraggio automatico dello spazio di Studio quando usi il AWS Toolkit
<a name="remote-access-remote-setup-filter"></a>

Gli utenti possono filtrare gli spazi nell' AWS Toolkit for Visual Studio Code explorer per visualizzare solo gli spazi pertinenti. Questa sezione fornisce informazioni sul filtraggio e su come configurare il filtraggio automatico.

Questa configurazione si applica solo quando si utilizza il [Metodo 2: AWS Toolkit nell'IDE remoto](remote-access-local-ide-setup.md#remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code) metodo di connessione dall'IDE remoto agli spazi Amazon SageMaker Studio. Per ulteriori informazioni, consulta [Configurazione dell’accesso remoto](remote-access-remote-setup.md).

**Topics**
+ [Panoramica sulla funzionalità di filtraggio](#remote-access-remote-setup-filter-overview)
+ [Configurazione quando si esegue la connessione con le credenziali IAM](#remote-access-remote-setup-filter-set-up-iam-credentials)

## Panoramica sulla funzionalità di filtraggio
<a name="remote-access-remote-setup-filter-overview"></a>

Il **filtraggio manuale** consente agli utenti di selezionare manualmente i profili utente per cui visualizzare gli spazi tramite l'interfaccia AWS Toolkit. Questo metodo funziona per tutti i tipi di autenticazione e ha la precedenza sul filtraggio automatico. Per il filtraggio manuale, consulta [Filtraggio manuale](remote-access-local-ide-setup-filter.md#remote-access-local-ide-setup-filter-manual).

Il **filtraggio automatico** mostra automaticamente solo gli spazi pertinenti per l’utente autenticato. Questo comportamento di filtraggio dipende dal metodo di autenticazione utilizzato durante l’accesso. [Per ulteriori informazioni, consulta Connessione AWS dal Toolkit](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/connect.html#connect-to-aws) nella Guida per l'utente di Toolkit for VS Code. Di seguito sono elencate le opzioni di accesso.
+ **Autenticazione e connessione con SSO**: il filtraggio automatico è applicato per impostazione predefinita.
+ **Autenticazione e connessione con le credenziali IAM**: il filtraggio automatico **richiede che l’amministratore configuri** le credenziali IAM seguenti. Senza questa configurazione, AWS Toolkit non è in grado di identificare quali spazi appartengono all'utente, quindi tutti gli spazi vengono visualizzati per impostazione predefinita.
  + **Utilizzo delle credenziali utente IAM**
  + **Utilizzo delle credenziali della sessione del ruolo IAM assunto**

## Configurazione quando si esegue la connessione con le credenziali IAM
<a name="remote-access-remote-setup-filter-set-up-iam-credentials"></a>

**Quando si utilizzano le credenziali utente IAM**

Il Kit di strumenti per VS Code può associare gli spazi appartenenti ai profili utente che iniziano con il nome utente IAM autenticato o il nome della sessione del ruolo assunto. Per configurarlo:

**Nota**  
Per il corretto funzionamento del filtraggio automatico, gli amministratori devono configurare i nomi dei profili utente Studio in modo che seguano questa convenzione di denominazione.
+ Gli amministratori devono assicurarsi che i nomi dei profili utente Studio seguano la convenzione di denominazione:
  + Per gli utenti IAM: prefisso con `IAM-user-name-`.
  + Per i ruoli assunti: prefisso con `assumed-role-session-name-`.
+ `aws sts get-caller-identity` restituisce le informazioni sull’identità utilizzate per la corrispondenza.
+ Gli spazi che appartengono ai profili utente associati verranno filtrati automaticamente nel Kit di strumenti per VS Code.

**Quando si utilizzano le credenziali di sessione del ruolo IAM presunte** Oltre alla configurazione per l'utilizzo delle credenziali utente IAM di cui sopra, è necessario assicurarsi che la sessione ARNs includa gli identificatori utente come prefissi corrispondenti. Puoi configurare politiche di fiducia che assicurino che la sessione ARNs includa gli identificatori utente come prefissi. [Crea una policy di attendibilità](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) e collegala al ruolo assunto utilizzato per l’autenticazione.

Questa configurazione non è richiesta per le credenziali utente IAM dirette o per l’autenticazione IdC.

**Esempio di configurazione di una policy di attendibilità per le credenziali della sessione del ruolo IAM**: crea una policy di attendibilità che imponga alle sessioni del ruolo di includere il nome utente IAM. Di seguito è riportato un esempio di policy:

```
{
    "Statement": [
        {
            "Sid": "RoleTrustPolicyRequireUsernameForSessionName",
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {"AWS": "arn:aws:iam::ACCOUNT:root"},
            "Condition": {
                "StringLike": {"sts:RoleSessionName": "${aws:username}"}
            }
        }
    ]
}
```

# Configura IDE remoto
<a name="remote-access-local-ide-setup"></a>

Dopo che gli amministratori hanno completato le istruzioni riportate in[Connect il tuo IDE remoto a SageMaker spazi con accesso remoto](remote-access.md), puoi connettere l'IDE remoto agli SageMaker spazi remoti.

**Topics**
+ [Configurazione dell’ambiente locale](#remote-access-local-ide-setup-local-environment)
+ [Connect al tuo IDE remoto](#remote-access-local-ide-setup-local-vs-code)
+ [Connessione a VPC con sottoreti senza accesso a Internet](remote-access-local-ide-setup-vpc-no-internet.md)
+ [Filtraggio degli spazi Studio](remote-access-local-ide-setup-filter.md)

## Configurazione dell’ambiente locale
<a name="remote-access-local-ide-setup-local-environment"></a>

Installa il tuo IDE remoto preferito sul tuo computer locale:
+ [Visual Studio Code](https://code.visualstudio.com/)
+ [Kiro](https://kiro.dev/)
+ [Cursore](https://cursor.com/home)

Per informazioni sui requisiti di versione, vedere[Requisiti della versione IDE](remote-access.md#remote-access-ide-version-requirements).

## Connect al tuo IDE remoto
<a name="remote-access-local-ide-setup-local-vs-code"></a>

Prima di poter stabilire una connessione dall'IDE remoto agli SageMaker spazi remoti, l'amministratore deve farlo[Configurazione dell’accesso remoto](remote-access-remote-setup.md). L’amministratore configura un metodo specifico per stabilire una connessione. Scegli il metodo che è stato configurato per te.

**Topics**
+ [Metodo 1: link diretto dall’interfaccia utente di Studio](#remote-access-local-ide-setup-local-vs-code-method-1-deep-link-from-studio-ui)
+ [Metodo 2: AWS Toolkit nell'IDE remoto](#remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code)
+ [Metodo 3: connettersi dal terminale tramite la CLI SSH](#remote-access-local-ide-setup-local-vs-code-method-3-connect-from-the-terminal-via-ssh-cli)

### Metodo 1: link diretto dall’interfaccia utente di Studio
<a name="remote-access-local-ide-setup-local-vs-code-method-1-deep-link-from-studio-ui"></a>

Utilizza la procedura seguente per stabilire una connessione tramite link diretto.

1. [Avvia Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html#studio-updated-launch-console).

1. Nell’interfaccia utente di Studio, accedi al tuo spazio.

1. Scegli **il pulsante Apri in VS Code**, **Apri in Kiro o** **Apri in cursore** per il tuo IDE preferito. Assicurati che il tuo IDE preferito sia già installato sul tuo computer locale.

1. Quando richiesto, conferma l'apertura dell'IDE. L'IDE si apre con un altro pop-up di conferma. Una volta completata, viene stabilita la connessione remota.

### Metodo 2: AWS Toolkit nell'IDE remoto
<a name="remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code"></a>

Utilizza la procedura seguente per stabilire una connessione con il AWS Toolkit for Visual Studio Code. Questo metodo è disponibile per VS Code, Kiro e Cursor.

1. Apri il tuo IDE remoto (VS Code, Kiro o Cursor).

1. Apri l'estensione AWS Toolkit.

1. [Connettiti ad AWS](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/connect.html).

1. In AWS Explorer, espandi **SageMaker AI**, quindi espandi **Studio**.

1. Trova il tuo spazio Studio.

1. Scegli l’icona **Connetti** accanto al tuo spazio per avviarlo.
**Nota**  
Arresta e riavvia lo spazio nel Kit di strumenti per Visual Studio per abilitare l’accesso remoto, se non è già connesso.
Se lo spazio non utilizza una [dimensione dell’istanza](https://docs.aws.amazon.com/sagemaker/latest/dg/remote-access.html#remote-access-instance-requirements) supportata, ti verrà chiesto di modificare l’istanza.

### Metodo 3: connettersi dal terminale tramite la CLI SSH
<a name="remote-access-local-ide-setup-local-vs-code-method-3-connect-from-the-terminal-via-ssh-cli"></a>

Scegli una delle seguenti opzioni di piattaforma per visualizzare la procedura per stabilire una connessione utilizzando la CLI SSH.

**Nota**  
Assicurati di avere [Prerequisiti del computer locale](remote-access.md#remote-access-local-prerequisites) installato le versioni più recenti prima di seguire le istruzioni riportate di seguito.
In caso [Bring Your Own Image (BYOI)](studio-updated-byoi.md) affermativo, assicuratevi di aver installato le dipendenze richieste elencate in [Requisiti delle immagini](remote-access.md#remote-access-image-requirements) prima di procedere

------
#### [ Linux/macOS ]

Crea uno script shell (ad esempio, `/home/user/sagemaker_connect.sh`):

```
#!/bin/bash
# Disable the -x option if printing each command is not needed.
set -exuo pipefail

SPACE_ARN="$1"
AWS_PROFILE="${2:-}"

# Validate ARN and extract region
if [[ "$SPACE_ARN" =~ ^arn:aws[-a-z]*:sagemaker:([a-z0-9-]+):[0-9]{12}:space\/[^\/]+\/[^\/]+$ ]]; then
    AWS_REGION="${BASH_REMATCH[1]}"
else
    echo "Error: Invalid SageMaker Studio Space ARN format."
    exit 1
fi

# Optional profile flag
PROFILE_ARG=()
if [[ -n "$AWS_PROFILE" ]]; then
    PROFILE_ARG=(--profile "$AWS_PROFILE")
fi

# Start session
START_SESSION_JSON=$(aws sagemaker start-session \
    --resource-identifier "$SPACE_ARN" \
    --region "${AWS_REGION}" \
    "${PROFILE_ARG[@]}")

# Extract fields using grep and sed
SESSION_ID=$(echo "$START_SESSION_JSON" | grep -o '"SessionId": "[^"]*"' | sed 's/.*: "//;s/"$//')
STREAM_URL=$(echo "$START_SESSION_JSON" | grep -o '"StreamUrl": "[^"]*"' | sed 's/.*: "//;s/"$//')
TOKEN=$(echo "$START_SESSION_JSON" | grep -o '"TokenValue": "[^"]*"' | sed 's/.*: "//;s/"$//')

# Validate extracted values
if [[ -z "$SESSION_ID" || -z "$STREAM_URL" || -z "$TOKEN" ]]; then
    echo "Error: Failed to extract session information from sagemaker start session response."
    exit 1
fi

# Call session-manager-plugin
session-manager-plugin \
    "{\"streamUrl\":\"$STREAM_URL\",\"tokenValue\":\"$TOKEN\",\"sessionId\":\"$SESSION_ID\"}" \
    "$AWS_REGION" "StartSession"
```

1. Rendi eseguibile lo script:

   ```
   chmod +x /home/user/sagemaker_connect.sh
   ```

1. Configura `$HOME/.ssh/config` per aggiungere la voce seguente:

```
Host space-name
  HostName 'arn:PARTITION:sagemaker:us-east-1:111122223333:space/domain-id/space-name'
  ProxyCommand '/home/user/sagemaker_connect.sh' '%h'
  ForwardAgent yes
  AddKeysToAgent yes
  StrictHostKeyChecking accept-new
```

Ad esempio, `PARTITION` può essere `aws`.

Se è necessario utilizzare un [profilo di AWS credenziali denominato](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html#cli-configure-files-using-profiles), modificare il comando proxy come segue:

```
  ProxyCommand '/home/user/sagemaker_connect.sh' '%h' YOUR_CREDENTIAL_PROFILE_NAME
```
+ Connettiti tramite SSH o esegui il comando SCP:

```
ssh space-name
scp file_abc space-name:/tmp/
```

------
#### [ Windows ]

**Prerequisiti per Windows:**
+ PowerShell 5.1 o versione successiva
+ Client SSH (OpenSSH consigliato)

Crea uno PowerShell script (ad esempio,): `C:\Users\user-name\sagemaker_connect.ps1`

```
# sagemaker_connect.ps1
param(
    [Parameter(Mandatory=$true)]
    [string]$SpaceArn,

    [Parameter(Mandatory=$false)]
    [string]$AwsProfile = ""
)

# Enable error handling
$ErrorActionPreference = "Stop"

# Validate ARN and extract region
if ($SpaceArn -match "^arn:aws[-a-z]*:sagemaker:([a-z0-9-]+):[0-9]{12}:space\/[^\/]+\/[^\/]+$") {
    $AwsRegion = $Matches[1]
} else {
    Write-Error "Error: Invalid SageMaker Studio Space ARN format."
    exit 1
}

# Build AWS CLI command
$awsCommand = @("sagemaker", "start-session", "--resource-identifier", $SpaceArn, "--region", $AwsRegion)

if ($AwsProfile) {
    $awsCommand += @("--profile", $AwsProfile)
}

try {
    # Start session and capture output
    Write-Host "Starting SageMaker session..." -ForegroundColor Green
    $startSessionOutput = & aws @awsCommand

    # Try to parse JSON response
    try {
        $sessionData = $startSessionOutput | ConvertFrom-Json
    } catch {
        Write-Error "Failed to parse JSON response: $_"
        Write-Host "Raw response was:" -ForegroundColor Yellow
        Write-Host $startSessionOutput
        exit 1
    }

    $sessionId = $sessionData.SessionId
    $streamUrl = $sessionData.StreamUrl
    $token = $sessionData.TokenValue

    # Validate extracted values
    if (-not $sessionId -or -not $streamUrl -or -not $token) {
        Write-Error "Error: Failed to extract session information from sagemaker start session response."
        Write-Host "Parsed response was:" -ForegroundColor Yellow
        Write-Host ($sessionData | ConvertTo-Json)
        exit 1
    }

    Write-Host "Session started successfully. Connecting..." -ForegroundColor Green

    # Create session manager plugin command
    $sessionJson = @{
        streamUrl = $streamUrl
        tokenValue = $token
        sessionId = $sessionId
    } | ConvertTo-Json -Compress

    # Escape the JSON string
    $escapedJson = $sessionJson -replace '"', '\"'

    # Call session-manager-plugin
    & session-manager-plugin "$escapedJson" $AwsRegion "StartSession"

} catch {
    Write-Error "Failed to start session: $_"
    exit 1
}
```
+ Configura `C:\Users\user-name\.ssh\config` per aggiungere la voce seguente:

```
Host space-name                            
  HostName "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/space-name"
  ProxyCommand "C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy RemoteSigned -File "C:\\Users\\user-name\\sagemaker_connect.ps1" "%h"
  ForwardAgent yes
  AddKeysToAgent yes
  User sagemaker-user
  StrictHostKeyChecking accept-new
```

------

# Connessione a VPC con sottoreti senza accesso a Internet
<a name="remote-access-local-ide-setup-vpc-no-internet"></a>

Prima di connettere l'IDE remoto agli spazi di Studio in sottoreti private senza accesso a Internet, assicurati che l'amministratore lo abbia fatto. [Configurazione di Studio per l’esecuzione con sottoreti senza accesso a Internet all’interno di un VPC](remote-access-remote-setup-vpc-subnets-without-internet-access.md)

Sono disponibili le seguenti opzioni per connettere l'IDE remoto agli spazi Studio in sottoreti private:
+ Configura il proxy HTTP (supportato per VS Code e Kiro)
+ Server remoto ed estensioni preconfezionati (solo VS Code)

**Importante**  
Il cursore non è supportato per la connessione agli spazi Studio in sottoreti private senza accesso a Internet in uscita.

**Topics**
+ [Proxy HTTP con elenchi controllati di elementi consentiti](#remote-access-local-ide-setup-vpc-no-internet-http-proxy-with-controlled-allow-listing)
+ [Server ed estensioni remoti preconfezionati (solo VS Code)](#remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions)

## Proxy HTTP con elenchi controllati di elementi consentiti
<a name="remote-access-local-ide-setup-vpc-no-internet-http-proxy-with-controlled-allow-listing"></a>

Se lo spazio di Studio è protetto da un firewall o da un proxy, chiedete all'amministratore di consentire l'accesso al server IDE e agli endpoint relativi alle estensioni. CDNs Per ulteriori informazioni, consulta [Configurazione del proxy HTTP con elenchi controllati di elementi consentiti](remote-access-remote-setup-vpc-subnets-without-internet-access.md#remote-access-remote-setup-vpc-subnets-without-internet-access-setup-http-proxy-with-controlled-allow-listing).

------
#### [ VS Code ]

Configura il proxy HTTP per lo sviluppo remoto di VS Code fornendo all'URL del proxy l'`remote.SSH.httpProxy`impostazione or. `remote.SSH.httpsProxy`

**Nota**  
Prendi in considerazione l'abilitazione di «Remote.ssh: usa i file di configurazione Curl e Wget» per utilizzare la configurazione dall'ambiente e dai file remoti. `curlrc` `wgetrc` In questo modo i `wgetrc` file `curlrc` and, collocati nelle rispettive posizioni predefinite SageMaker nello spazio, possono essere utilizzati per abilitare determinati casi.

------
#### [ Kiro ]

Configura il proxy HTTP per lo sviluppo remoto di Kiro impostando l'`aws.sagemaker.ssh.kiro.httpsProxy`impostazione sul tuo endpoint proxy HTTP o HTTPS.

Se utilizzi i server MCP (Model Context Protocol) in Kiro, devi anche aggiungere le variabili di ambiente proxy alla configurazione del tuo server MCP:

```
"env": {
    "http_proxy": "${http_proxy}",
    "https_proxy": "${https_proxy}"
}
```

------

Questa opzione, che richiede le autorizzazioni per configurare il proxy HTTP, consente di installare estensioni aggiuntive in modo flessibile, visto che alcune estensioni richiedono un endpoint pubblico.

## Server ed estensioni remoti preconfezionati (solo VS Code)
<a name="remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions"></a>

**Nota**  
Questa opzione è disponibile solo per Visual Studio Code. Kiro e Cursor non supportano la configurazione preconfezionata del server remoto.

Quando gli spazi Studio non possono accedere agli endpoint esterni per scaricare il server remoto e le estensioni VS Code, puoi preconfezionarli. Con questo approccio, l’amministratore può esportare un tarball che contiene la directory `.VS Code-server` per una versione specifica di VS Code. Quindi, l'amministratore utilizza uno script SageMaker AI Lifecycle Configuration (LCC) per copiare ed estrarre il tarball nella home directory (). `/home/sagemaker-user` Per ulteriori informazioni, consulta [Configura server ed estensioni remoti preconfezionati (solo VS Code)](remote-access-remote-setup-vpc-subnets-without-internet-access.md#remote-access-remote-setup-vpc-subnets-without-internet-access-setup-pre-packaged-vs-code-remote-server-and-extensions).

**Istruzioni per utilizzare il preconfezionamento per il server remoto e le estensioni VS Code**

1. Installa VS Code sul computer locale.

1. Quando ti connetti allo spazio: SageMaker 
   + Utilizza il profilo predefinito per garantire la compatibilità con le estensioni preconfezionate. In caso contrario, dovrai installare le estensioni utilizzando i file VSIX scaricati dopo la connessione allo spazio Studio.
   + Scegli uno script LCC specifico per la versione di VS Code da collegare allo spazio quando lo avvii.

### Esempio di utilizzo di Dockerfile per preconfezionare il server remoto e le estensioni VS Code
<a name="remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions-example-dockerfile"></a>

Di seguito è riportato un Dockerfile di esempio per avviare un container locale con il server SSH preinstallato, se non è possibile creare uno spazio con accesso remoto e accesso a Internet.

**Nota**  
In questo esempio, il server SSH non richiede l’autenticazione e viene utilizzato solo per esportare il server remoto VS Code.
Il container deve essere creato ed eseguito su un’architettura x64.

```
FROM amazonlinux:2023

# Install OpenSSH server and required tools
RUN dnf install -y \
    openssh-server \
    shadow-utils \
    passwd \
    sudo \
    tar \
    gzip \
    && dnf clean all

# Create a user with no password
RUN useradd -m -s /bin/bash sagemaker-user && \
    passwd -d sagemaker-user

# Add sagemaker-user to sudoers via wheel group
RUN usermod -aG wheel sagemaker-user && \
    echo 'sagemaker-user ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/sagemaker-user && \
    chmod 440 /etc/sudoers.d/sagemaker-user

# Configure SSH to allow empty passwords and password auth
RUN sed -i 's/^#\?PermitEmptyPasswords .*/PermitEmptyPasswords yes/' /etc/ssh/sshd_config && \
    sed -i 's/^#\?PasswordAuthentication .*/PasswordAuthentication yes/' /etc/ssh/sshd_config

# Generate SSH host keys
RUN ssh-keygen -A

# Expose SSH port
EXPOSE 22

WORKDIR /home/sagemaker-user
USER sagemaker-user

# Start SSH server
CMD ["bash"]
```

Utilizza i comandi seguenti per creare ed eseguire il container:

```
# Build the image
docker build . -t remote_server_export

# Run the container
docker run --rm -it -d \
  -v /tmp/remote_access/.VS Code-server:/home/sagemaker-user/.VS Code-server \
  -p 2222:22 \
  --name remote_server_export \
  remote_server_export
  
# change the permisson for the mounted folder
docker exec -i remote_server_export \
       bash -c 'sudo chown sagemaker-user:sagemaker-user ~/.VS Code-server'

# start the ssh server in the container 
docker exec -i remote_server_export bash -c 'sudo /usr/sbin/sshd -D &'
```

Connettiti con il comando seguente:

```
ssh sagemaker-user@localhost -p 2222
```

Prima di connettere il container, configura quanto segue nel file `.ssh/config`. Successivamente, potrai visualizzare `remote_access_export` come nome host nel pannello laterale SSH remoto durante la connessione. Esempio:

```
Host remote_access_export
  HostName localhost
  User=sagemaker-user
  Port 2222
  ForwardAgent yes
```

Archivia `/tmp/remote_access/.VS Code-server` e segui la procedura indicata in Server remoto ed estensioni VS Code preconfezionati per connettere e installare l’estensione. Dopo la decompressione, assicurati che la cartella `.VS Code-server` venga visualizzata come cartella principale.

```
cd /tmp/remote_access/
sudo tar -czvf VS Code-server-with-extensions-for-1.100.2.tar.gz .VS Code-server
```

### Esempio di script LCC (LCC-install-VS C ode-server-v 1.100.2)
<a name="remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions-example-lcc"></a>

Di seguito è riportato un esempio che spiega come installare una versione specifica del server remoto VS Code.

```
#!/bin/bash

set -x

remote_server_file=VS Code-server-with-extensions-for-1.100.2.tar.gz

if [ ! -d "${HOME}/.VS Code-server" ]; then
    cd /tmp
    aws s3 cp s3://S3_BUCKET/remote_access/${remote_server_file} .
    tar -xzvf ${remote_server_file}
    mv .VS Code-server "${HOME}"
    rm ${remote_server_file}
else
    echo "${HOME}/.VS Code-server already exists, skipping download and install."
fi
```

# Filtraggio degli spazi Studio
<a name="remote-access-local-ide-setup-filter"></a>

Puoi utilizzare il filtro per visualizzare solo gli spazi Amazon SageMaker AI pertinenti nell' AWS Toolkit for Visual Studio Code explorer. Di seguito vengono fornite informazioni sul filtraggio manuale e sul filtraggio automatico. Per ulteriori informazioni sulle definizioni di filtraggio manuale e automatico, consulta [Panoramica sulla funzionalità di filtraggio](remote-access-remote-setup-filter.md#remote-access-remote-setup-filter-overview).

Questa configurazione si applica solo quando si utilizza il [Metodo 2: AWS Toolkit nell'IDE remoto](remote-access-local-ide-setup.md#remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code) metodo di connessione dall'IDE remoto agli spazi Amazon SageMaker Studio. Per ulteriori informazioni, consulta [Configurazione dell’accesso remoto](remote-access-remote-setup.md).

**Topics**
+ [Filtraggio manuale](#remote-access-local-ide-setup-filter-manual)
+ [Configurazione del filtraggio automatico quando si utilizzano le credenziali IAM per l’accesso](#remote-access-local-ide-setup-filter-automatic-IAM-credentials)

## Filtraggio manuale
<a name="remote-access-local-ide-setup-filter-manual"></a>

Per filtrare manualmente gli spazi visualizzati:
+ Apri il tuo IDE remoto e vai all'esploratore del pannello laterale Toolkit for VS Code
+ Trova la sezione **SageMaker AI**
+ Scegli l'icona del filtro a destra dell'intestazione della sezione SageMaker AI. Si apre un menu a discesa.
+ Dal menu a discesa, seleziona i profili utente per i quali desideri visualizzare gli spazi.

## Configurazione del filtraggio automatico quando si utilizzano le credenziali IAM per l’accesso
<a name="remote-access-local-ide-setup-filter-automatic-IAM-credentials"></a>

Il filtraggio automatico dipende dal metodo di autenticazione utilizzato durante l’accesso. [Per ulteriori informazioni, consulta Connecting to AWS from the Toolkit](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/connect.html#connect-to-aws) nella Toolkit for VS Code User Guide.

Se utilizzi le **credenziali IAM** per l’autenticazione e la connessione, il filtraggio automatico richiede [Configurazione quando si esegue la connessione con le credenziali IAM](remote-access-remote-setup-filter.md#remote-access-remote-setup-filter-set-up-iam-credentials). Senza questa configurazione, se gli utenti aderiscono al filtraggio delle identità, non verranno visualizzati spazi.

Una volta impostato quanto sopra, AWS Toolkit abbina gli spazi appartenenti ai profili utente che iniziano con il nome utente IAM autenticato o il nome della sessione del ruolo assunto.

Il filtraggio automatico è opzionale per gli utenti:
+ Apri le impostazioni IDE remote
+ Vai all’estensione **Kit di strumenti AWS **.
+ Trova **Abilita filtraggio delle identità**.
+ Scegli di abilitare il filtraggio automatico degli spazi in base alla tua identità AWS .

# AWS Regioni supportate
<a name="remote-access-supported-regions"></a>

La tabella seguente elenca le AWS regioni in cui sono supportate le connessioni IDE remote agli spazi di Studio, oltre a quelle IDEs disponibili in ciascuna regione.


| AWS Regione | VS Code | Kiro | Cursore | 
| --- | --- | --- | --- | 
| us-east-1 | Supportata | Supportato | Supportata | 
| us-east-2 | Supportata | Supportato | Supportata | 
| us-west-1 | Supportata | Supportato | Supportata | 
| us-west-2 | Supportata | Supportato | Supportata | 
| af-south-1 | Supportata | Supportato | Supportata | 
| ap-east-1 | Supportata | Supportato | Supportata | 
| ap-south-1 | Supportata | Supportato | Supportata | 
| ap-northeast-1 | Supportata | Supportato | Supportata | 
| ap-northeast-2 | Supportata | Supportato | Supportata | 
| ap-northeast-3 | Supportata | Supportato | Supportata | 
| ap-southeast-1 | Supportata | Supportato | Supportata | 
| ap-southeast-2 | Supportata | Supportato | Supportata | 
| ap-southeast-3 | Supportata | Supportato | Supportata | 
| ap-southeast-5 | Supportata | Supportato | Supportata | 
| ca-central-1 | Supportata | Supportato | Supportata | 
| eu-central-1 | Supportata | Supportato | Supportata | 
| eu-central-2 | Supportata | Supportato | Supportata | 
| eu-north-1 | Supportata | Supportato | Supportata | 
| eu-south-1 | Supportata | Supportato | Supportata | 
| eu-south-2 | Supportata | Supportato | Supportata | 
| eu-west-1 | Supportata | Supportato | Supportata | 
| eu-west-2 | Supportata | Supportato | Supportata | 
| eu-west-3 | Supportata | Supportato | Supportata | 
| il-central-1 | Supportata | Supportato | Supportata | 
| me-central-1 | Supportata | Non supportata | Non supportata | 
| me-south-1 | Supportata | Non supportata | Non supportata | 
| sa-east-1 | Supportata | Supportato | Supportata | 

# Bring Your Own Image (BYOI)
<a name="studio-updated-byoi"></a>

Un’immagine è un file che identifica i kernel, i pacchetti linguistici e altre dipendenze necessarie per eseguire le applicazioni e include:
+ Linguaggi di programmazione (come Python o R)
+ Kernel
+ Librerie e pacchetti
+ Altro software necessario

Amazon SageMaker Distribution (`sagemaker-distribution`) è un set di immagini Docker che include framework e pacchetti popolari per l'apprendimento automatico, la scienza dei dati e la visualizzazione. Per ulteriori informazioni, consulta [SageMaker Politica di supporto delle immagini di Studio](sagemaker-distribution.md).

Se hai esigenze diverse, puoi utilizzare la funzionalità Bring Your Own Image (BYOI). Potresti voler creare un’immagine personalizzata se:
+ Hai bisogno di una versione specifica di un linguaggio di programmazione o di una libreria
+ Vuoi includere strumenti o pacchetti personalizzati
+ Stai lavorando con software specializzato non disponibile nelle immagini standard

## Terminologia chiave
<a name="studio-updated-byoi-basics"></a>

La sezione seguente definisce i termini chiave per utilizzare la propria immagine con l'intelligenza artificiale. SageMaker 
+ **Dockerfile:** un documento basato su testo con istruzioni per creare un’immagine Docker. Identifica i pacchetti linguistici e le altre dipendenze della tua immagine Docker.
+ **Immagine Docker:** un set di software e dipendenze preparato a partire da un Dockerfile.
+ **SageMaker AI image store:** un archivio delle tue immagini personalizzate in SageMaker AI.

**Topics**
+ [Terminologia chiave](#studio-updated-byoi-basics)
+ [Specifiche dell’immagine personalizzata](studio-updated-byoi-specs.md)
+ [Come utilizzare la tua immagine](studio-updated-byoi-how-to.md)
+ [Avvio di un’immagine personalizzata in Studio](studio-updated-byoi-how-to-launch.md)
+ [Visualizzazione dei dettagli dell’immagine personalizzata](studio-updated-byoi-view-images.md)
+ [Accelera l'avvio dei container con SOCI](soci-indexing.md)
+ [Scollegamento e pulizia delle risorse delle immagini personalizzate](studio-updated-byoi-how-to-detach-from-domain.md)

# Specifiche dell’immagine personalizzata
<a name="studio-updated-byoi-specs"></a>

Per crearla correttamente, l’immagine che specifichi nel tuo Dockerfile deve corrispondere alle specifiche descritte nelle sezioni seguenti.

**Topics**
+ [Esecuzione dell'immagine](#studio-updated-byoi-specs-run)
+ [Specifiche per l’utente e il file system](#studio-updated-byoi-specs-user-and-filesystem)
+ [Controllo dell’integrità e URL per le applicazioni](#studio-updated-byoi-specs-app-healthcheck)
+ [Esempi di Dockerfile](#studio-updated-byoi-specs-dockerfile-templates)

## Esecuzione dell'immagine
<a name="studio-updated-byoi-specs-run"></a>

Le configurazioni seguenti possono essere effettuate aggiornando [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerConfig.html). Per vedere un esempio, consulta [Aggiornamento della configurazione del container](studio-updated-byoi-how-to-container-configuration.md).
+ `Entrypoint`: puoi configurare `ContainerEntrypoint` e `ContainerArguments` passati al container al runtime. Consigliamo di configurare il punto di ingresso utilizzando `ContainerConfig`. Per un esempio, apri il link qui sopra.
+ `EnvVariables`: quando utilizzi Studio, puoi definire variabili `ContainerEnvironment` personalizzate per il container. Se lo desideri, puoi anche aggiornare le variabili di ambiente con `ContainerConfig`. Per un esempio, apri il link qui sopra.

  SageMaker Le variabili di ambiente specifiche dell'IA hanno la precedenza e sostituiranno qualsiasi variabile con lo stesso nome. Ad esempio, l' SageMaker intelligenza artificiale fornisce automaticamente variabili di ambiente con il prefisso `AWS_` e `SAGEMAKER_` per garantire una corretta integrazione con AWS i servizi e le funzionalità dell'intelligenza artificiale. SageMaker Di seguito sono riportati alcuni esempi di variabili di ambiente SageMaker specifiche dell'IA:
  + `AWS_ACCOUNT_ID`
  + `AWS_REGION`
  + `AWS_DEFAULT_REGION`
  + `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`
  + `SAGEMAKER_SPACE_NAME`
  + `SAGEMAKER_APP_TYPE`

## Specifiche per l’utente e il file system
<a name="studio-updated-byoi-specs-user-and-filesystem"></a>
+ `WorkingDirectory`: il volume Amazon EBS per il tuo spazio è montato sul percorso `/home/sagemaker-user`. Non puoi cambiare il percorso di montaggio. Utilizza le istruzioni `WORKDIR` per impostare la directory di lavoro dell’immagine in una cartella all’interno di `/home/sagemaker-user`.
+ `UID`: l’ID utente del container Docker. UID = 1000 è un valore supportato. Puoi aggiungere l’accesso sudo per i tuoi utenti. IDs Vengono rimappate per evitare che un processo in esecuzione nel contenitore disponga di più privilegi del necessario.
+ `GID`: l’ID del gruppo del container Docker. GID = 100 è un valore supportato. Puoi aggiungere l’accesso sudo per i tuoi utenti. IDs Vengono rimappati per evitare che un processo in esecuzione nel contenitore disponga di più privilegi del necessario.
+ Directory di metadati: le `/opt/ml` directory `/opt/.sagemakerinternal` e utilizzate da. AWS Il file di metadati `/opt/ml` contiene metadati relativi a risorse come `DomainId`.

  Utilizza il comando seguente per visualizzare il contenuto del file system:

  ```
  cat /opt/ml/metadata/resource-metadata.json
  ```
+ Directory di registrazione dei log: `/var/log/studio` è riservato alle directory di registrazione di log delle applicazioni e alle estensioni ad esse associate. È consigliabile non utilizzare queste cartelle per creare l’immagine.

## Controllo dell’integrità e URL per le applicazioni
<a name="studio-updated-byoi-specs-app-healthcheck"></a>

Il controllo dell’integrità e l’URL dipendono dalle applicazioni. Scegli il link seguente associato all’applicazione per cui stai creando l’immagine.
+ [Controllo dell’integrità e URL per le applicazioni](code-editor-custom-images.md#code-editor-custom-images-app-healthcheck) per l’Editor di codice
+ [Controllo dell’integrità e URL per le applicazioni](studio-updated-jl-admin-guide-custom-images.md#studio-updated-jl-admin-guide-custom-images-app-healthcheck) per JupyterLab

## Esempi di Dockerfile
<a name="studio-updated-byoi-specs-dockerfile-templates"></a>

Per esempi di Dockerfile che soddisfano sia i requisiti di questa pagina sia le esigenze specifiche dell’applicazione, vai ai Dockerfile di esempio nella sezione della rispettiva applicazione. Le seguenti opzioni includono le applicazioni Amazon SageMaker Studio. 
+ [Esempi di Dockerfile](code-editor-custom-images.md#code-editor-custom-images-dockerfile-templates) per l’Editor di codice
+ [Esempi di Dockerfile](studio-updated-jl-admin-guide-custom-images.md#studio-updated-jl-custom-images-dockerfile-templates)per JupyterLab

**Nota**  
Se stai trasferendo la tua immagine in SageMaker Unified Studio, dovrai seguire le [specifiche di Dockerfile nella Guida](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html) per l'utente di *Amazon SageMaker Unified* Studio.  
`Dockerfile`alcuni esempi di SageMaker Unified Studio sono disponibili nell'[esempio di Dockerfile](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example) nella *Amazon SageMaker Unified* Studio User Guide.

# Come utilizzare la tua immagine
<a name="studio-updated-byoi-how-to"></a>

Le pagine seguenti descrivono come utilizzare la tua immagine personalizzata. Verifica che i prerequisiti seguenti siano soddisfatti prima di continuare.

## Prerequisiti
<a name="studio-updated-byoi-how-to-prerequisites"></a>

Dovrai completare i seguenti prerequisiti per portare la tua immagine su Amazon SageMaker AI.
+ Configura l’applicazione Docker. Per ulteriori informazioni, consulta la sezione [Get started](https://docs.docker.com/get-started/) nella *documentazione Docker*.
+ Installa la versione più recente AWS CLI seguendo la procedura [descritta AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) nella *Guida per l'AWS Command Line Interface utente della versione 2*.
+ Autorizzazioni per accedere al servizio Amazon Elastic Container Registry (Amazon ECR). Per ulteriori informazioni, consulta [Amazon ECR Managed Policies](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ecr_managed_policies.html) in *Amazon ECR User Guide*.
+ Un AWS Identity and Access Management ruolo a cui è allegata la [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)politica.

**Topics**
+ [Prerequisiti](#studio-updated-byoi-how-to-prerequisites)
+ [Creazione di un’immagine personalizzata e invio ad Amazon ECR](studio-updated-byoi-how-to-prepare-image.md)
+ [Collegamento dell’immagine personalizzata al dominio](studio-updated-byoi-how-to-attach-to-domain.md)
+ [Aggiornamento della configurazione del container](studio-updated-byoi-how-to-container-configuration.md)

# Creazione di un’immagine personalizzata e invio ad Amazon ECR
<a name="studio-updated-byoi-how-to-prepare-image"></a>

Questa pagina fornisce istruzioni su come creare un Dockerfile locale, elaborare l’immagine del container e aggiungere l’immagine ad Amazon Elastic Container Registry (Amazon ECR).

**Nota**  
Negli esempi seguenti, i tag non sono specificati, quindi il tag `latest` viene applicato per impostazione predefinita. Se desideri specificare un tag, dovrai aggiungere `:tag` alla fine dei nomi delle immagini. Per ulteriori informazioni, consulta [docker image tag](https://docs.docker.com/reference/cli/docker/image/tag/) nella *documentazione Docker*.

**Topics**
+ [Creazione di un Dockerfile e di un’immagine del container](#studio-updated-byoi-how-to-create-local-dockerfile)
+ [Aggiunta di un’immagine Docker ad Amazon ECR](#studio-updated-byoi-add-container-image)

## Creazione di un Dockerfile e di un’immagine del container
<a name="studio-updated-byoi-how-to-create-local-dockerfile"></a>

Utilizza le istruzioni seguenti per creare un Dockerfile con il software e le dipendenze desiderati.

**Per creare il tuo Dockerfile**

1. Imposta innanzitutto le variabili per i AWS CLI comandi che seguono.

   ```
   LOCAL_IMAGE_NAME=local-image-name
   ```

   `local-image-name` è il nome dell’immagine del container sul dispositivo locale, che viene definito in questa sede.

1. Crea un documento basato su testo, denominato `Dockerfile`, che soddisfi le specifiche descritte in [Specifiche dell’immagine personalizzata](studio-updated-byoi-specs.md).

   Gli esempi di `Dockerfile` per le applicazioni supportate sono disponibili in [Esempi di Dockerfile](studio-updated-byoi-specs.md#studio-updated-byoi-specs-dockerfile-templates).
**Nota**  
Se stai trasferendo la tua immagine in SageMaker Unified Studio, dovrai seguire le [specifiche di Dockerfile nella Guida](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html) per l'utente di *Amazon SageMaker Unified* Studio.  
`Dockerfile`alcuni esempi di SageMaker Unified Studio sono disponibili nell'[esempio di Dockerfile](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example) nella *Amazon SageMaker Unified* Studio User Guide.

1. Nella directory che contiene `Dockerfile`, crea l’immagine Docker con il comando seguente. Il punto (`.`) specifica che `Dockerfile` deve trovarsi nel contesto del comando build.

   ```
   docker build -t ${LOCAL_IMAGE_NAME} .
   ```

   Una volta completata l’operazione build, puoi elencare le informazioni sull’immagine del container con il comando seguente.

   ```
   docker images
   ```

1. (Facoltativo) Puoi testare l’immagine con il comando seguente.

   ```
   docker run -it ${LOCAL_IMAGE_NAME}
   ```

   Nell’output vedrai che il tuo server è in esecuzione su un URL, ad esempio `http://127.0.0.1:8888/...`. Puoi testare l’immagine copiando l’URL nel browser. 

   Se non funziona, potrebbe essere necessario includere `-p port:port` nel comando docker run. L’opzione mappa la porta esposta sul container alla porta sul sistema host. Per ulteriori informazioni su docker run, consulta la sezione [Running container](https://docs.docker.com/engine/containers/run/) nella *documentazione Docker*.

   Dopo aver verificato il funzionamento del server, puoi arrestarlo e chiudere tutti i kernel prima di continuare. Le istruzioni sono disponibili nell’output.

## Aggiunta di un’immagine Docker ad Amazon ECR
<a name="studio-updated-byoi-add-container-image"></a>

Per aggiungere un’immagine del container ad Amazon ECR, procedi come segue.
+ Crea un repository Amazon ECR.
+ Accedi al registro predefinito.
+ Inserisci l'immagine nel repository Amazon ECR.

**Nota**  
L'archivio Amazon ECR deve trovarsi nello Regione AWS stesso dominio a cui alleghi l'immagine.

**Per creare e inviare un’immagine del container ad Amazon ECR**

1. Per prima cosa imposta le variabili per i AWS CLI comandi che seguono.

   ```
   ACCOUNT_ID=account-id
   REGION=aws-region
   ECR_REPO_NAME=ecr-repository-name
   ```
   + `account-id` è l’ID del tuo account. Puoi trovarlo in alto a destra in qualsiasi pagina della AWS console. Ad esempio, la [console SageMaker AI](https://console.aws.amazon.com/sagemaker).
   + `aws-region`è il dominio Amazon SageMaker AI Regione AWS del tuo dominio Amazon. Puoi trovarlo in alto a destra in qualsiasi pagina della AWS console. 
   + `ecr-repository-name` è il nome del tuo repository Amazon Elastic Container Registry, che viene definito in questa sede. Per visualizzare i tuoi repository Amazon ECR, passa alla [console di Amazon ECR](https://console.aws.amazon.com/ecr).

1. Accedi ad Amazon ECR, quindi a Docker.

   ```
   aws ecr get-login-password \
       --region ${REGION} | \
       docker login \
       --username AWS \
       --password-stdin ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com
   ```

   Una volta completata l’autenticazione, riceverai un messaggio di conferma dell’accesso.
**Importante**  
Se ricevi un errore, potresti dover installare la AWS CLI o aggiornarla alla versione più recente. Per ulteriori informazioni, consulta [Installazione dell’ AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) nella *Guida per l’utente dell’AWS Command Line Interface *.

1. Tagga l’immagine in un formato compatibile con Amazon ECR per inviarla al tuo repository.

   ```
   docker tag \
       ${LOCAL_IMAGE_NAME} \
       ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${ECR_REPO_NAME}
   ```

1. Crea un repository in Amazon ECR tramite la AWS CLI. Per creare il repository utilizzando la console di Amazon ECR, consulta [Creating an Amazon ECR private repository to store images](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-create.html).

   ```
   aws ecr create-repository \
       --region ${REGION} \
       --repository-name ${ECR_REPO_NAME}
   ```

1. Invia l’immagine al tuo repository Amazon ECR. Puoi anche taggare l’immagine Docker.

   ```
   docker push ${ACCOUNT_ID}.dkr.ecr.${REGION}.amazonaws.com/${ECR_REPO_NAME}
   ```

Una volta aggiunta correttamente l’immagine al repository Amazon ECR, puoi visualizzarla nella [console di Amazon ECR](https://console.aws.amazon.com/ecr).

# Collegamento dell’immagine personalizzata al dominio
<a name="studio-updated-byoi-how-to-attach-to-domain"></a>

Questa pagina fornisce istruzioni su come collegare l’immagine personalizzata al dominio. Utilizza la seguente procedura per utilizzare la console Amazon SageMaker AI per accedere al tuo dominio e avviare il processo di **collegamento dell'immagine**.

Le seguenti istruzioni presuppongono che tu abbia inviato un'immagine a un repository Amazon ECR nello Regione AWS stesso del tuo dominio. Se non l’hai ancora fatto, consulta [Creazione di un’immagine personalizzata e invio ad Amazon ECR](studio-updated-byoi-how-to-prepare-image.md).

Quando scegli di collegare un’immagine, hai due opzioni:
+ Allega una **nuova immagine**: questa opzione creerà un'immagine e una versione dell'immagine nel tuo archivio di immagini SageMaker AI e quindi le allegherà al tuo dominio.
**Nota**  
Se stai continuando il processo BYOI, utilizza l’opzione **Nuova immagine** da [Creazione di un’immagine personalizzata e invio ad Amazon ECR](studio-updated-byoi-how-to-prepare-image.md).
+ Allega un'**immagine esistente**: se hai già creato l'immagine personalizzata desiderata nell'archivio di immagini SageMaker AI, usa questa opzione. Questa opzione collega un’immagine personalizzata esistente al tuo dominio. Per visualizzare le immagini personalizzate nell'archivio di immagini SageMaker AI, consulta[Visualizzazione dei dettagli dell’immagine personalizzata (console)](studio-updated-byoi-view-images.md#studio-updated-byoi-view-images-console).

------
#### [ New image ]

**Per collegare una nuova immagine al dominio**

1. Apri la [console SageMaker AI](https://console.aws.amazon.com/sagemaker).

1. Espandi la sezione **Configurazioni di amministrazione**, se non l’hai già fatto.

1. In **Configurazioni admin**, scegli **Domini**.

1. Dall’elenco di **domini**, seleziona il dominio a cui collegare l’immagine.
**Nota**  
Se stai allegando l'immagine a un progetto SageMaker Unified Studio e hai bisogno di chiarimenti su quale dominio utilizzare, consulta [Visualizzare i dettagli del dominio SageMaker AI associato al](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/view-project-details.html#view-project-details-smai-domain) tuo progetto.

1. Apri la scheda **Ambiente**.

1. Nella sezione **Immagini personalizzate per app Studio personali**, scegli **Collega immagine**.

1. In **Origine dell’immagine**, scegli **Nuova immagine**.

1. Includi l’URI dell’immagine Amazon ECR. Il formato è il seguente:

   ```
   account-id.dkr.ecr.aws-region.amazonaws.com/repository-name:tag
   ```

   1. Per ottenere l’URI dell’immagine Amazon ECR, accedi alla pagina [Repository privati di Amazon ECR](https://console.aws.amazon.com/ecr/private-registry/repositories).

   1. Scegli il link con il nome del repository.

   1. Scegli l’icona **Copia URI** che corrisponde alla versione dell’immagine (**Tag immagine**).

1. Segui le altre istruzioni per collegare l’immagine personalizzata.
**Nota**  
Assicurati di utilizzare un tipo di applicazione compatibile con il `Dockerfile`. Per ulteriori informazioni, consulta [Esempi di Dockerfile](studio-updated-byoi-specs.md#studio-updated-byoi-specs-dockerfile-templates).

Una volta che l’immagine è stata collegata correttamente al dominio, potrai visualizzarla nella scheda **Ambiente**.

------
#### [ Existing image ]

**Per collegare un’immagine esistente al dominio**

1. [Apri la console AI. SageMaker ](https://console.aws.amazon.com/sagemaker)

1. Espandi la sezione **Configurazioni di amministrazione**, se non l’hai già fatto.

1. In **Configurazioni admin**, scegli **Domini**.

1. Dall’elenco di **domini**, seleziona il dominio a cui collegare l’immagine.
**Nota**  
Se stai allegando l'immagine a un progetto SageMaker Unified Studio e hai bisogno di chiarimenti su quale dominio utilizzare, consulta [Visualizzare i dettagli del dominio SageMaker AI associato al](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/view-project-details.html#view-project-details-smai-domain) tuo progetto.

1. Apri la scheda **Ambiente**.

1. Nella sezione **Immagini personalizzate per app Studio personali**, scegli **Collega immagine**.

1. In **Origine dell’immagine**, scegli **Immagine esistente**.

1. Scegli un'immagine e una versione dell'immagine esistenti dall'archivio di immagini SageMaker AI.

   Se non visualizzi la versione dell’immagine, potresti doverla creare. Per ulteriori informazioni, consulta [Visualizzazione dei dettagli dell’immagine personalizzata (console)](studio-updated-byoi-view-images.md#studio-updated-byoi-view-images-console).

1. Segui le altre istruzioni per collegare l’immagine personalizzata.
**Nota**  
Assicurati di utilizzare un tipo di applicazione compatibile con il `Dockerfile`. Per ulteriori informazioni, consulta [Esempi di Dockerfile](studio-updated-byoi-specs.md#studio-updated-byoi-specs-dockerfile-templates).

Una volta che l’immagine è stata collegata correttamente al dominio, potrai visualizzarla nella scheda **Ambiente**.

------

Una volta che l’immagine è stata collegata correttamente al dominio, gli utenti del dominio possono scegliere l’immagine per la propria applicazione. Per ulteriori informazioni, consulta [Avvio di un’immagine personalizzata in Studio](studio-updated-byoi-how-to-launch.md).

**Nota**  
Se hai allegato un'immagine personalizzata al tuo progetto SageMaker Unified Studio, dovrai avviare l'applicazione da SageMaker Unified Studio. Per ulteriori informazioni, consulta [Launch your custom image](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-launch-custom-image.html) nella *Amazon SageMaker Unified Studio User Guide*.

# Aggiornamento della configurazione del container
<a name="studio-updated-byoi-how-to-container-configuration"></a>

Puoi utilizzare immagini Docker personalizzate nei tuoi flussi di lavoro di machine learning. Un aspetto chiave della personalizzazione di queste immagini è la configurazione del container, o [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerConfig.html). La pagina seguente fornisce un esempio di come configurare `ContainerConfig`. 

Un punto di ingresso corrisponde al comando o allo script eseguito all’avvio del container. I punti di ingresso personalizzati consentono di configurare l’ambiente, inizializzare i servizi o completare le configurazioni necessarie prima dell’avvio dell’applicazione. 

Questo esempio fornisce istruzioni su come configurare un punto di ingresso personalizzato, per la tua JupyterLab applicazione, utilizzando il. AWS CLI Questo esempio presuppone che tu abbia già creato un’immagine personalizzata e un dominio. Per istruzioni, consulta [Collegamento dell’immagine personalizzata al dominio](studio-updated-byoi-how-to-attach-to-domain.md).

1. Imposta innanzitutto le variabili per i AWS CLI comandi che seguono.

   ```
   APP_IMAGE_CONFIG_NAME=app-image-config-name
   ENTRYPOINT_FILE=entrypoint-file-name
   ENV_KEY=environment-key
   ENV_VALUE=environment-value
   REGION=aws-region
   DOMAIN_ID=domain-id
   IMAGE_NAME=custom-image-name
   IMAGE_VERSION=custom-image-version
   ```
   + `app-image-config-name` è il nome della configurazione dell’immagine dell’applicazione.
   + `entrypoint-file-name` è il nome dello script del punto di ingresso del container. Ad esempio, `entrypoint.sh`.
   + `environment-key` è il nome di una variabile di ambiente.
   + `environment-value` è il valore assegnato alla variabile di ambiente.
   + `aws-region`è il dominio Amazon SageMaker AI Regione AWS del tuo dominio Amazon. Puoi trovarlo in alto a destra in qualsiasi pagina della AWS console. 
   + `domain-id` è il tuo ID dominio. Per visualizzare i tuoi domini, consulta [Visualizzazione dei domini](domain-view.md).
   + `custom-image-name` è il nome dell’immagine personalizzata. Per visualizzare i dettagli dell’immagine personalizzata, consulta [Visualizzazione dei dettagli dell’immagine personalizzata (console)](studio-updated-byoi-view-images.md#studio-updated-byoi-view-images-console).

     Se hai seguito le istruzioni riportate in [Collegamento dell’immagine personalizzata al dominio](studio-updated-byoi-how-to-attach-to-domain.md), potresti voler utilizzare lo stesso nome dell’immagine indicato nella procedura.
   + `custom-image-version` è il numero della versione dell’immagine personalizzata. Dovrebbe essere un numero intero, che rappresenta la versione dell’immagine. Per visualizzare i dettagli dell’immagine personalizzata, consulta [Visualizzazione dei dettagli dell’immagine personalizzata (console)](studio-updated-byoi-view-images.md#studio-updated-byoi-view-images-console).

1. Utilizza l’API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAppImageConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAppImageConfig.html) per creare una configurazione dell’immagine.

   ```
   aws sagemaker create-app-image-config \
       --region ${REGION} \
       --app-image-config-name "${APP_IMAGE_CONFIG_NAME}" \
       --jupyter-lab-app-image-config "ContainerConfig = {
           ContainerEntrypoint = "${ENTRYPOINT_FILE}", 
           ContainerEnvironmentVariables = {
               "${ENV_KEY}"="${ENV_VALUE}"
           }
       }"
   ```

1. Utilizza l’API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateDomain.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateDomain.html) per aggiornare le impostazioni predefinite per il tuo dominio. In questo modo, verranno collegate sia l’immagine personalizzata che la configurazione dell’immagine dell’applicazione. 

   ```
   aws sagemaker update-domain \
       --region ${REGION} \
       --domain-id "${DOMAIN_ID}" \
       --default-user-settings "{
           \"JupyterLabAppSettings\": {
               \"CustomImages\": [
                   {
                       \"ImageName\": \"${IMAGE_NAME}\",
                       \"ImageVersionNumber\": ${IMAGE_VERSION},
                       \"AppImageConfigName\": \"${APP_IMAGE_CONFIG_NAME}\"
                   }
               ]
           }
       }"
   ```

# Avvio di un’immagine personalizzata in Studio
<a name="studio-updated-byoi-how-to-launch"></a>

Dopo aver allegato un'immagine personalizzata al tuo dominio Amazon SageMaker AI, l'immagine diventa disponibile per gli utenti del dominio. Utilizza le istruzioni seguenti per avviare un’applicazione con l’immagine personalizzata.

**Nota**  
Se hai allegato un'immagine personalizzata al tuo progetto SageMaker Unified Studio, dovrai avviare l'applicazione da SageMaker Unified Studio. Per ulteriori informazioni, consulta [Launch your custom image](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-launch-custom-image.html) nella *Amazon SageMaker Unified Studio User Guide*.

1. Avvia Amazon SageMaker Studio. Per istruzioni, consulta [Avvia Amazon SageMaker Studio](studio-updated-launch.md).

1. Se non l’hai già fatto, espandi la sezione **Applicazioni**.

1. Scegli l’applicazione nella sezione **Applicazioni**. Se non visualizzi l’applicazione, potrebbe essere nascosta. In questo caso, contatta il tuo amministratore.

1. Per creare uno spazio, scegli **\$1 Crea *application* spazio** e segui le istruzioni per creare lo spazio.

   Per scegliere uno spazio esistente, scegli il link con il nome dello spazio che desideri aprire.

   

1. In **Immagine**, scegli l’immagine da utilizzare.

   Se l’elenco a discesa **Immagine** non è disponibile, potrebbe essere necessario arrestare lo spazio. Scegli **Interrompi spazio** per farlo.

1. Conferma le impostazioni dello spazio e scegli **Esegui lo spazio**.

# Visualizzazione dei dettagli dell’immagine personalizzata
<a name="studio-updated-byoi-view-images"></a>

La pagina seguente fornisce istruzioni su come visualizzare i dettagli dell'immagine personalizzata nell' SageMaker AI image store.

## Visualizzazione dei dettagli dell’immagine personalizzata (console)
<a name="studio-updated-byoi-view-images-console"></a>

Di seguito vengono fornite istruzioni su come visualizzare le immagini personalizzate utilizzando la console SageMaker AI. In questa sezione puoi visualizzare e modificare i dettagli dell’immagine.

**Visualizzazione delle immagini personalizzate (console)**

1. Apri la [console SageMaker AI](https://console.aws.amazon.com/sagemaker).

1. Espandi la sezione **Configurazioni di amministrazione**.

1. In **Configurazioni admin**, scegli **Immagini**.

1. Dall’elenco **Immagini personalizzate**, seleziona il collegamento ipertestuale del nome dell’immagine.

## Visualizzazione dei dettagli dell’immagine personalizzata (AWS CLI)
<a name="studio-updated-byoi-view-images-cli"></a>

La sezione seguente mostra un esempio di come visualizzare le immagini personalizzate con la AWS CLI.

```
aws sagemaker list-images \
       --region aws-region
```

# Accelera l'avvio dei container con SOCI
<a name="soci-indexing"></a>

[L'indicizzazione SOCI (Seekable Open Container Initiative) consente il caricamento lento di immagini di container personalizzate in Amazon Unified Studio. [Amazon SageMaker Studio](studio-updated.md) SageMaker ](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/what-is-sagemaker-unified-studio.html) SOCI riduce in modo significativo i tempi di avvio di circa il 30-70% per i contenitori personalizzati. [Bring Your Own Image (BYOI)](studio-updated-byoi.md) Il miglioramento della latenza varia a seconda delle dimensioni dell'immagine, della disponibilità dell'istanza di hosting e di altre dipendenze dell'applicazione. SOCI crea un indice che consente l'avvio dei contenitori solo con i componenti necessari, recuperando file aggiuntivi su richiesta, se necessario.

SOCI risolve i tempi lenti di avvio dei container, che interrompono i flussi di lavoro di sviluppo iterativo di machine learning (ML), per immagini personalizzate. Man mano che i carichi di lavoro ML diventano più complessi, le immagini dei container sono aumentate, creando ritardi all'avvio che ostacolano i cicli di sviluppo.

**Topics**
+ [Vantaggi principali](#soci-indexing-key-benefits)
+ [Come funziona l'indicizzazione SOCI](#soci-indexing-how-works)
+ [Componenti dell'architettura](#soci-indexing-architecture-components)
+ [Strumenti supportati](#soci-indexing-supported-tools)
+ [Autorizzazioni per l'indicizzazione SOCI](soci-indexing-setup.md)
+ [Crea indici SOCI con l'esempio nerdctl e SOCI CLI](soci-indexing-example-create-indexes.md)
+ [Integra immagini indicizzate SOC con l'esempio di Studio](soci-indexing-example-integrate-studio.md)

## Vantaggi principali
<a name="soci-indexing-key-benefits"></a>
+ **Cicli di iterazione più rapidi**: riduci l'avvio dei container, a seconda dei tipi di immagine e istanza
+ **Ottimizzazione universale**: estendi i vantaggi prestazionali a tutti i contenitori BYOI personalizzati in Studio

## Come funziona l'indicizzazione SOCI
<a name="soci-indexing-how-works"></a>

SOCI crea un indice di metadati specializzato che mappa la struttura dei file interni dell'immagine del contenitore. Questo indice consente l'accesso ai singoli file senza scaricare l'intera immagine. L'indice SOCI viene archiviato come elemento conforme a OCI (Open Container Initiative) in [Amazon](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) ECR e collegato all'immagine originale del contenitore, preservando i digest delle immagini e la validità della firma.

Quando avvii un contenitore in Studio, il sistema utilizza l'indice SOCI per identificare e scaricare solo i file essenziali necessari all'avvio. I componenti aggiuntivi vengono recuperati in parallelo quando l'applicazione li richiede.

## Componenti dell'architettura
<a name="soci-indexing-architecture-components"></a>
+ **Immagine originale del contenitore**: il tuo contenitore di base archiviato in Amazon ECR
+ Elemento **dell'indice SOCI: metadati che mappano la struttura del file** dell'immagine
+ **Manifesto dell'indice di immagini OCI**: collega l'immagine originale e l'indice SOCI
+ **Finch Container Runtime**: consente l'integrazione del lazy loading con Studio

## Strumenti supportati
<a name="soci-indexing-supported-tools"></a>


| Strumento | Integrazione | 
| --- | --- | 
| nerdctl | Richiede la configurazione containerd | 
| CLI Finch | Supporto SOCI nativo | 
| CLI Docker \$1 SOCI | Sono necessari strumenti aggiuntivi | 

**Topics**
+ [Vantaggi principali](#soci-indexing-key-benefits)
+ [Come funziona l'indicizzazione SOCI](#soci-indexing-how-works)
+ [Componenti dell'architettura](#soci-indexing-architecture-components)
+ [Strumenti supportati](#soci-indexing-supported-tools)
+ [Autorizzazioni per l'indicizzazione SOCI](soci-indexing-setup.md)
+ [Crea indici SOCI con l'esempio nerdctl e SOCI CLI](soci-indexing-example-create-indexes.md)
+ [Integra immagini indicizzate SOC con l'esempio di Studio](soci-indexing-example-integrate-studio.md)

# Autorizzazioni per l'indicizzazione SOCI
<a name="soci-indexing-setup"></a>

[Crea indici SOCI per le immagini dei tuoi container e archiviali in Amazon ECR prima di utilizzare l'indicizzazione SOCI con Amazon Unified Studio. [Amazon SageMaker Studio](studio-updated.md) SageMaker ](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/what-is-sagemaker-unified-studio.html)

**Topics**
+ [Prerequisiti](#soci-indexing-setup-prerequisites)
+ [Autorizzazioni IAM richieste](#soci-indexing-setup-iam-permissions)

## Prerequisiti
<a name="soci-indexing-setup-prerequisites"></a>
+ Account AWS con un ruolo (IAM) con autorizzazioni di gestione [AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started.html)
  + [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)
  + [Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/gs.html)
+ [Archivi privati Amazon ECR per l'archiviazione delle](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html) immagini dei container
+ [AWS CLI v2.0\$1](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) configurato con le credenziali appropriate
+ I seguenti strumenti di contenitore:
  + Richiesto: [soci-snapshotter](https://github.com/awslabs/soci-snapshotter)
  + Opzioni:
    + [nerdctl](https://github.com/containerd/nerdctl)
    + [fringuello](https://github.com/runfinch/finch)

## Autorizzazioni IAM richieste
<a name="soci-indexing-setup-iam-permissions"></a>

Il tuo ruolo IAM richiede le autorizzazioni per:
+ Crea e gestisci risorse SageMaker AI (domini, immagini, configurazioni di app).
  + Puoi utilizzare la politica [SageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html) AWS gestita. Per ulteriori dettagli sulle autorizzazioni, consulta[AWS politica gestita: AmazonSageMakerFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSageMakerFullAccess).
+ [Autorizzazioni IAM per il trasferimento di un'immagine a un repository privato Amazon ECR.](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-push-iam.html)

# Crea indici SOCI con l'esempio nerdctl e SOCI CLI
<a name="soci-indexing-example-create-indexes"></a>

La pagina seguente fornisce un esempio su come creare indici SOCI con nerdctl e SOCI CLI.

**Esempio di creazione di indici SOCI**

1. Per prima cosa imposta le variabili per i AWS CLI comandi che seguono. Di seguito è riportato un esempio di impostazione delle variabili.

   ```
   ACCOUNT_ID="111122223333"
   REGION="us-east-1"
   REPOSITORY_NAME="repository-name"
   ORIGINAL_IMAGE_TAG="original-image-tag"
   SOCI_IMAGE_TAG="soci-indexed-image-tag"
   ```

   Definizioni delle variabili:
   + `ACCOUNT_ID`è il tuo Account AWS ID
   + `REGION`è il Regione AWS tuo registro privato Amazon ECR
   + `REPOSITORY_NAME`è il nome del tuo registro privato Amazon ECR
   + `ORIGINAL_IMAGE_TAG`è il tag dell'immagine originale
   + `SOCI_IMAGE_TAG`è il tag della tua immagine indicizzata SOC

1. Installa gli strumenti necessari:

   ```
   # Install SOCI CLI, containerd, and nerdctl
   sudo yum install soci-snapshotter
   sudo yum install containerd jq  
   sudo systemctl start soci-snapshotter
   sudo systemctl restart containerd
   sudo yum install nerdctl
   ```

1. Imposta le variabili del registro:

   ```
   REGISTRY_USER=AWS
   REGISTRY="$ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com"
   ```

1. Esporta la tua regione ed esegui l'autenticazione su Amazon ECR:

   ```
   export AWS_REGION=$REGION
   REGISTRY_PASSWORD=$(/usr/local/bin/aws ecr get-login-password --region $AWS_REGION)
   echo $REGISTRY_PASSWORD | sudo nerdctl login -u $REGISTRY_USER --password-stdin $REGISTRY
   ```

1. Recupera l'immagine del contenitore originale:

   ```
   sudo nerdctl pull $REGISTRY/$REPOSITORY_NAME:$ORIGINAL_IMAGE_TAG
   ```

1. Crea l'indice SOCI:

   ```
   sudo nerdctl image convert --soci $REGISTRY/$REPOSITORY_NAME:$ORIGINAL_IMAGE_TAG $REGISTRY/$REPOSITORY_NAME:$SOCI_IMAGE_TAG
   ```

1. Invia l'immagine indicizzata SOCI:

   ```
   sudo nerdctl push --platform linux/amd64 $REGISTRY/$REPOSITORY_NAME:$SOCI_IMAGE_TAG
   ```

Questo processo crea due artefatti per l'immagine del contenitore originale nel tuo repository ECR:
+ Indice SOCI: metadati che consentono il caricamento lento
+ Image Index manifest - Manifesto conforme a OCI

# Integra immagini indicizzate SOC con l'esempio di Studio
<a name="soci-indexing-example-integrate-studio"></a>

È necessario fare riferimento al tag immagine indicizzato SOC per utilizzare le immagini con indicizzazione SOC in Studio, anziché al tag dell'immagine contenitore originale. Utilizzate il tag specificato durante il processo di conversione SOCI (ad esempio, in). `SOCI_IMAGE_TAG` [Crea indici SOCI con l'esempio nerdctl e SOCI CLI](soci-indexing-example-create-indexes.md)

**Esempio di integrazione di immagini indicizzate SOCI**

1. Per prima cosa imposta le variabili per i comandi che AWS CLI seguono. Di seguito è riportato un esempio di impostazione delle variabili.

   ```
   ACCOUNT_ID="111122223333"
   REGION="us-east-1"
   IMAGE_NAME="sagemaker-image-name"
   IMAGE_CONFIG_NAME="sagemaker-image-config-name"
   ROLE_ARN="your-role-arn"
   DOMAIN_ID="domain-id"
   SOCI_IMAGE_TAG="soci-indexed-image-tag"
   ```

   Definizioni delle variabili:
   + `ACCOUNT_ID`è il tuo Account AWS ID
   + `REGION`è il Regione AWS tuo registro privato Amazon ECR
   + `IMAGE_NAME`è il nome della tua immagine SageMaker 
   + `IMAGE_CONFIG_NAME`è il nome della configurazione SageMaker dell'immagine
   + `ROLE_ARN`[è l'ARN del ruolo di esecuzione con le autorizzazioni elencate in Autorizzazioni IAM richieste](soci-indexing-setup.md#soci-indexing-setup-iam-permissions)
   + `DOMAIN_ID`[è l'ID del dominio](https://docs.aws.amazon.com/sagemaker/latest/dg/domain-view.html)
**Nota**  
Se stai allegando l'immagine a un progetto SageMaker Unified Studio e hai bisogno di chiarimenti su quale dominio utilizzare, consulta [Visualizzare i dettagli del dominio SageMaker AI associato al](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/view-project-details.html#view-project-details-smai-domain) tuo progetto.
   + `SOCI_IMAGE_TAG`è il tag della tua immagine indicizzata SOC

1. Esporta la tua regione:

   ```
   export AWS_REGION=$REGION
   ```

1. Crea un' SageMaker immagine:

   ```
   aws sagemaker create-image \
       --image-name "$IMAGE_NAME" \
       --role-arn "$ROLE_ARN"
   ```

1. Crea una versione SageMaker dell'immagine utilizzando l'URI dell'indice SOCI:

   ```
   IMAGE_INDEX_URI="$ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com/$IMAGE_NAME:$SOCI_IMAGE_TAG"
   
   aws sagemaker create-image-version \
       --image-name "$IMAGE_NAME" \
       --base-image "$IMAGE_INDEX_URI"
   ```

1. Crea una configurazione dell'immagine dell'applicazione e aggiorna il tuo dominio Amazon SageMaker AI per includere l'immagine personalizzata per la tua app. Puoi farlo per Code Editor, basato su Code-OSS, Visual Studio Code - Open Source (Code Editor) e JupyterLab applicazioni. Scegli l'opzione di applicazione qui sotto per visualizzare i passaggi.

------
#### [ Code Editor ]

   Crea una configurazione dell'immagine dell'applicazione per Code Editor:

   ```
   aws sagemaker create-app-image-config \
       --app-image-config-name "$IMAGE_CONFIG_NAME" \
       --code-editor-app-image-config '{ "FileSystemConfig": { "MountPath": "/home/sagemaker-user", "DefaultUid": 1000, "DefaultGid": 100 } }'
   ```

   Aggiorna il tuo dominio Amazon SageMaker AI per includere l'immagine personalizzata per Code Editor:

   ```
   aws sagemaker update-domain \
       --domain-id "$DOMAIN_ID" \
       --default-user-settings '{
           "CodeEditorAppSettings": {
           "CustomImages": [{
               "ImageName": "$IMAGE_NAME", 
               "AppImageConfigName": "$IMAGE_CONFIG_NAME"
           }]
       }
   }'
   ```

------
#### [ JupyterLab ]

   Crea una configurazione dell'immagine dell'applicazione per JupyterLab:

   ```
   aws sagemaker create-app-image-config \
       --app-image-config-name "$IMAGE_CONFIG_NAME" \
       --jupyter-lab-app-image-config '{ "FileSystemConfig": { "MountPath": "/home/sagemaker-user", "DefaultUid": 1000, "DefaultGid": 100 } }'
   ```

   Aggiorna il tuo dominio Amazon SageMaker AI per includere l'immagine personalizzata per JupyterLab:

   ```
   aws sagemaker update-domain \
       --domain-id "$DOMAIN_ID" \
       --default-user-settings '{
           "JupyterLabAppSettings": {
           "CustomImages": [{
               "ImageName": "$IMAGE_NAME", 
               "AppImageConfigName": "$IMAGE_CONFIG_NAME"
           }]
       }
   }'
   ```

------

1. Dopo aver aggiornato il dominio per includere l'immagine personalizzata, puoi creare un'applicazione in Studio utilizzando l'immagine personalizzata. Quando ti [Avvio di un’immagine personalizzata in Studio](studio-updated-byoi-how-to-launch.md) assicuri di utilizzare l'immagine personalizzata.

# Scollegamento e pulizia delle risorse delle immagini personalizzate
<a name="studio-updated-byoi-how-to-detach-from-domain"></a>

La pagina seguente fornisce istruzioni su come scollegare le immagini personalizzate e ripulire le risorse correlate utilizzando la console Amazon SageMaker AI o il AWS Command Line Interface (AWS CLI). 

**Importante**  
Devi prima scollegare l'immagine personalizzata dal tuo dominio prima di eliminarla dall'archivio di immagini SageMaker AI. Se non lo fai, potrebbero verificarsi errori durante la visualizzazione delle informazioni sul dominio o il collegamento di nuove immagini personalizzate al dominio.   
Se riscontri un errore durante il caricamento di un’immagine personalizzata, consulta [Errore durante il caricamento dell’immagine personalizzata](studio-updated-troubleshooting.md#studio-updated-troubleshooting-custom-image). 

## Scollegamento ed eliminazione delle immagini personalizzate (console)
<a name="studio-updated-byoi-how-to-detach-from-domain-console"></a>

Di seguito vengono fornite istruzioni su come scollegare le immagini personalizzate dall' SageMaker intelligenza artificiale e ripulire le risorse di immagini personalizzate utilizzando la console.

**Scollegamento dell’immagine personalizzata dal dominio**

1. Apri la [console SageMaker AI](https://console.aws.amazon.com/sagemaker).

1. Espandi la sezione **Configurazioni di amministrazione**.

1. In **Configurazioni admin**, scegli **Domini**.

1. Scegli un dominio dall’elenco **Domini**.

1. Apri la scheda **Ambiente**.

1. In **Immagini personalizzate per app Studio personali**, seleziona le caselle di controllo relative alle immagini da scollegare.

1. Seleziona **Scollega**.

1. Segui le istruzioni per scollegare le immagini.

**Eliminazione dell’immagine personalizzata**

1. Apri la [console SageMaker AI](https://console.aws.amazon.com/sagemaker).

1. Espandi la sezione **Configurazioni di amministrazione**, se non l’hai già fatto.

1. In **Configurazioni admin**, scegli **Immagini**.

1. Seleziona l’immagine da eliminare dall’elenco **Immagini**.

1. Scegli **Elimina**.

1. Segui le istruzioni per eliminare la tua immagine e tutte le sue versioni dall' SageMaker IA.

**Eliminazione di immagini e repository personalizzati da Amazon ECR**
**Importante**  
Questa operazione eliminerà anche tutte le immagini e gli artefatti del container in questo repository.

1. Apri la [console di Amazon ECR](https://console.aws.amazon.com/ecr).

1. Se non l’hai ancora fatto, espandi il riquadro di navigazione a sinistra.

1. In **Registro privato**, scegli **Repository**.

1. Seleziona i repository da eliminare.

1. Scegli **Elimina**.

1. Segui le istruzioni per l’eliminazione.

## Scollegamento ed eliminazione delle immagini personalizzate (AWS CLI)
<a name="studio-updated-byoi-how-to-detach-from-domain-cli"></a>

La sezione seguente mostra un esempio di come scollegare le immagini personalizzate utilizzando la AWS CLI.

1. Per prima cosa imposta le variabili per i AWS CLI comandi che seguono.

   ```
   ACCOUNT_ID=account-id
   REGION=aws-region
   APP_IMAGE_CONFIG=app-image-config
   SAGEMAKER_IMAGE_NAME=custom-image-name
   ```
   + `aws-region`è il dominio Amazon SageMaker AI Regione AWS del tuo dominio Amazon. Puoi trovarlo in alto a destra in qualsiasi pagina della AWS console. 
   + `app-image-config` è il nome della configurazione dell’immagine dell’applicazione. Usa il seguente AWS CLI comando per elencare le configurazioni delle immagini dell'applicazione nel tuo Regione AWS.

     ```
     aws sagemaker list-app-image-configs \
            --region ${REGION}
     ```
   + `custom-image-name` è il nome dell’immagine personalizzata. Usa il seguente AWS CLI comando per elencare le immagini presenti nel tuo Regione AWS.

     ```
     aws sagemaker list-images \
            --region ${REGION}
     ```

1. Per scollegare l’immagine e le versioni dell’immagine dal dominio utilizzando questa procedura, dovrai creare o aggiornare un file json per la configurazione del dominio.
**Nota**  
Se hai seguito le istruzioni riportate in [Collegamento dell’immagine personalizzata al dominio](studio-updated-byoi-how-to-attach-to-domain.md), è probabile che il dominio sia stato aggiornato con il file denominato `update-domain.json`.   
Se non hai questo file, puoi creare un nuovo file json.

   Crea un file denominato `update-domain.json` da utilizzare per aggiornare il dominio.

1. Per eliminare le immagini personalizzate, dovrai lasciare vuoto il campo `CustomImages`, ad esempio `"CustomImages": []`. Scegliete una delle seguenti opzioni per visualizzare file di configurazione di esempio per Code Editor o JupyterLab.

------
#### [ Code Editor: update domain configuration file example ]

   Un file di configurazione di esempio per l’Editor di codice che utilizza [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CodeEditorAppSettings.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CodeEditorAppSettings.html).

   ```
   {
       "DomainId": "domain-id",
       "DefaultUserSettings": {
           "CodeEditorAppSettings": {
               "CustomImages": [
               ]
           }
       }
   }
   ```

------
#### [ JupyterLab: update domain configuration file example ]

   Un esempio di file di configurazione per JupyterLab, using [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_JupyterLabAppSettings.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_JupyterLabAppSettings.html).

   ```
   {
       "DomainId": "domain-id",
       "DefaultUserSettings": {
           "JupyterLabAppSettings": {
               "CustomImages": [
               ]
           }
       }
   }
   ```

------

   `domain-id` è l’ID dominio a cui è collegata l’immagine. Utilizza il comando seguente per elencare i tuoi domini.

   ```
   aws sagemaker list-domains \
         --region ${REGION}
   ```

1. Salvare il file.

1. Chiama il [dominio di aggiornamento](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html) AWS CLI utilizzando il file di configurazione del dominio di aggiornamento,. `update-domain.json`
**Nota**  
Prima di aggiornare le immagini personalizzate, devi eliminare tutte le **applicazioni** nel dominio. **Non** è necessario eliminare i profili utente o gli spazi condivisi. Per istruzioni sull’eliminazione delle applicazioni, scegli una delle opzioni seguenti.  
Se desideri utilizzare la console SageMaker AI, consulta. [Chiudi le risorse di SageMaker intelligenza artificiale nel tuo dominio](sm-console-domain-resources-shut-down.md)
Se desideri utilizzare il AWS CLI, segui i passaggi da 1 a 3 di[Eliminare un dominio Amazon SageMaker AI (AWS CLI)](gs-studio-delete-domain.md#gs-studio-delete-domain-cli).

   ```
   aws sagemaker update-domain \
       --cli-input-json file://update-domain.json \
       --region ${REGION}
   ```

1. Elimina la configurazione dell'immagine dell'app.

   ```
   aws sagemaker delete-app-image-config \
       --app-image-config-name ${APP_IMAGE_CONFIG}
   ```

1. Elimina l’immagine personalizzata. Questa operazione elimina anche tutte le versioni dell’immagine, ma non l’immagine e le versioni dell’immagine del container Amazon ECR. A tale scopo, utilizza le fasi facoltative riportate di seguito.

   ```
   aws sagemaker delete-image \
       --image-name ${SAGEMAKER_IMAGE_NAME}
   ```

1. (Facoltativo) Elimina le risorse Amazon ECR. L'elenco seguente fornisce AWS CLI i comandi per ottenere informazioni sulle risorse Amazon ECR per i passaggi seguenti.

   1. Imposta le variabili per i AWS CLI comandi seguenti.

      ```
      ECR_REPO_NAME=ecr-repository-name
      ```

      `ecr-repository-name` è il nome del repository Amazon Elastic Container Registry. 

      Per elencare i dettagli dei repository, utilizza il comando seguente.

      ```
      aws ecr describe-repositories \
              --region ${REGION}
      ```

   1. Elimina il repository da Amazon ECR. 
**Importante**  
Questa operazione eliminerà anche tutte le immagini e gli artefatti del container in questo repository.

      ```
      aws ecr delete-repository \
            --repository-name ${ECR_REPO_NAME} \
            --force \
            --region ${REGION}
      ```

# Configurazioni del ciclo di vita all'interno di Amazon Studio SageMaker
<a name="studio-lifecycle-configurations"></a>

Le configurazioni del ciclo di vita (LCCs) sono script che amministratori e utenti possono utilizzare per automatizzare la personalizzazione delle seguenti applicazioni all'interno del tuo ambiente Amazon Studio: SageMaker 
+ Amazon SageMaker AI JupyterLab
+ Editor di codice, basato su Code-OSS, Visual Studio Code - Open Source
+ Studio Classic
+ Istanza notebook

La personalizzazione dell’applicazione include:
+ Installazione di pacchetti personalizzati
+ Configurazione delle estensioni
+ Precaricamento dei set di dati
+ Impostazione dei repository di codice sorgente

Gli utenti creano e collegano configurazioni integrate del ciclo di vita ai propri profili utente. Gli amministratori creano e collegano configurazioni predefinite o integrate del ciclo di vita a livello di dominio, spazio o profilo utente.

**Importante**  
Amazon SageMaker Studio esegue prima la configurazione del ciclo di vita integrata e quindi esegue la scheda LCC predefinita. Amazon SageMaker AI non risolverà i conflitti di pacchetti tra utente e amministratore LCCs. Ad esempio, se la LCC integrata installa `python3.11` e la LCC predefinita installa `python3.12`, Studio installa `python3.12`. 

# Creazione e collegamento di configurazioni del ciclo di vita
<a name="studio-lifecycle-configurations-create"></a>

Puoi creare e allegare configurazioni del ciclo di vita utilizzando o. Console di gestione AWS AWS Command Line Interface

**Topics**
+ [Creazione e collegamento di configurazioni del ciclo di vita (AWS CLI)](#studio-lifecycle-configurations-create-cli)
+ [Creazione e collegamento di configurazioni del ciclo di vita (console)](#studio-lifecycle-configurations-create-console)

## Creazione e collegamento di configurazioni del ciclo di vita (AWS CLI)
<a name="studio-lifecycle-configurations-create-cli"></a>

**Importante**  
Prima di iniziare, completa i seguenti prerequisiti:   
Aggiorna il AWS CLI seguendo la procedura descritta in [Installazione della](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled) versione corrente. AWS CLI 
Dal computer locale, esegui `aws configure` e fornisci AWS le tue credenziali. Per informazioni sulle AWS credenziali, consulta [Comprendere e ottenere le AWS](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html) credenziali. 
Effettua l'onboard nel dominio Amazon SageMaker AI. Per informazioni concettuali, consulta [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md). Per una guida di avvio rapido, consulta [Usa la configurazione rapida per Amazon SageMaker AI](onboard-quick-start.md).

La procedura seguente mostra come creare uno script di configurazione del ciclo di vita da stampare `Hello World` in Code Editor o. JupyterLab

**Nota**  
Ogni script può contenere un massimo di **16.384 caratteri.**

1. Dal computer locale, crea un file denominato `my-script.sh` con il contenuto seguente:

   ```
   #!/bin/bash
   set -eux
   echo 'Hello World!'
   ```

1. Utilizza quanto segue per convertire il file `my-script.sh` nel formato base64. Questo requisito previene gli errori dovuti alla codifica della spaziatura e delle interruzioni di riga.

   ```
   LCC_CONTENT=`openssl base64 -A -in my-script.sh`
   ```

1. Creazione di una configurazione del ciclo di vita da utilizzare con Studio. Il comando seguente crea una configurazione del ciclo di vita che viene eseguita all’avvio di un’applicazione `JupyterLab` associata:

   ```
   aws sagemaker create-studio-lifecycle-config \
   --region region \
   --studio-lifecycle-config-name my-lcc \
   --studio-lifecycle-config-content $LCC_CONTENT \
   --studio-lifecycle-config-app-type application-type
   ```

   Per `studio-lifecycle-config-app-type`, specifica *CodeEditor* o *JupyterLab*.
**Nota**  
L’ARN restituito per la configurazione del ciclo di vita appena creata. L’ARN è richiesto per collegare la configurazione del ciclo di vita all'applicazione.

Per garantire che gli ambienti siano personalizzati correttamente, utenti e amministratori utilizzano comandi diversi per collegare le configurazioni del ciclo di vita.

### Collegamento di configurazioni del ciclo di vita predefinite (amministratore)
<a name="studio-lifecycle-configurations-attach-cli-administrator"></a>

Per collegare la configurazione del ciclo di vita, devi aggiornare `UserSettings` per il tuo dominio o profilo utente. Gli script di configurazione del ciclo di vita associati a livello di dominio vengono ereditati da tutti gli utenti. Tuttavia, gli script associati a livello di profilo utente sono limitati a un utente specifico. 

Puoi creare un nuovo profilo utente, dominio o spazio a cui è collegata una configurazione del ciclo di vita utilizzando i comandi seguenti:
+ [create-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-user-profile.html)
+ [create-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-domain.html)
+ [create-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-space.html)

Il comando seguente crea un profilo utente con una configurazione del ciclo di vita per un'applicazione. JupyterLab Aggiungi l’ARN della configurazione del ciclo di vita della fase precedente alle impostazioni `JupyterLabAppSettings` dell’utente. Se inoltri un elenco di configurazioni del ciclo di vita, puoi aggiungere più configurazioni contemporaneamente. Quando un utente avvia un' JupyterLab applicazione con AWS CLI, può specificare una configurazione del ciclo di vita anziché utilizzare quella predefinita. La configurazione del ciclo di vita inoltrata dall'utente deve appartenere all'elenco delle configurazioni del ciclo di vita in `JupyterLabAppSettings`.

```
# Create a new UserProfile
aws sagemaker create-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"JupyterLabAppSettings": {
  "LifecycleConfigArns":
    [lifecycle-configuration-arn-list]
  }
}'
```

Il comando seguente crea un profilo utente con una configurazione del ciclo di vita per un’applicazione dell’Editor di codice. Aggiungi l’ARN della configurazione del ciclo di vita della fase precedente alle impostazioni `CodeEditorAppSettings` dell’utente. Se inoltri un elenco di configurazioni del ciclo di vita, puoi aggiungere più configurazioni contemporaneamente. Quando un utente avvia un’applicazione dell’Editor di codice con la AWS CLI, può inoltrare una configurazione del ciclo di vita da utilizzare al posto di quella predefinita. La configurazione del ciclo di vita inoltrata dall'utente deve appartenere all'elenco delle configurazioni del ciclo di vita in `CodeEditorAppSettings`.

```
# Create a new UserProfile
aws sagemaker create-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"CodeEditorAppSettings": {
  "LifecycleConfigArns":
    [lifecycle-configuration-arn-list]
  }
}'
```

### Collegamento delle configurazioni integrate del ciclo di vita (utente)
<a name="studio-lifecycle-configurations-attach-cli-user"></a>

Per collegare la configurazione del ciclo di vita, devi aggiornare `UserSettings` per il tuo profilo utente.

Il comando seguente crea un profilo utente con una configurazione del ciclo di vita per un'applicazione. JupyterLab Aggiungi l’ARN della configurazione del ciclo di vita della fase precedente alle impostazioni `JupyterLabAppSettings` del profilo utente.

```
# Update a UserProfile
aws sagemaker update-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"JupyterLabAppSettings": {
  "BuiltInLifecycleConfigArn":"lifecycle-configuration-arn"
  }
}'
```

Il comando seguente crea un profilo utente con una configurazione del ciclo di vita per un’applicazione dell’Editor di codice. Aggiungi l’ARN della configurazione del ciclo di vita della fase precedente alle impostazioni `CodeEditorAppSettings` del profilo utente. La configurazione del ciclo di vita inoltrata dall'utente deve appartenere all'elenco delle configurazioni del ciclo di vita in `CodeEditorAppSettings`.

```
# Update a UserProfile
aws sagemaker update-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"CodeEditorAppSettings": {
  "BuiltInLifecycleConfigArn":"lifecycle-configuration-arn"
  }
}'
```

## Creazione e collegamento di configurazioni del ciclo di vita (console)
<a name="studio-lifecycle-configurations-create-console"></a>

Per creare e collegare configurazioni del ciclo di vita in Console di gestione AWS, accedi alla [console Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker) e scegli le **configurazioni del ciclo** di vita nella barra di navigazione a sinistra. La console ti guiderà attraverso il processo di creazione della configurazione del ciclo di vita.

# Esecuzione del debug delle configurazioni del ciclo di vita
<a name="studio-lifecycle-configurations-debug"></a>

I seguenti contenuti spiegano come recuperare le informazioni sulle configurazioni del ciclo di vita e come eseguirne il debug.

**Topics**
+ [Verifica il processo di CloudWatch configurazione del ciclo di vita da Logs](#studio-lifecycle-configurations-debug-logs)
+ [Timeout della configurazione del ciclo di vita](studio-lifecycle-configurations-debug-timeout.md)

## Verifica il processo di CloudWatch configurazione del ciclo di vita da Logs
<a name="studio-lifecycle-configurations-debug-logs"></a>

Le configurazioni del ciclo di vita eseguono solo log `STDOUT` e `STDERR`.

`STDOUT` è il formato di output predefinito per gli script bash. Puoi scrivere in `STDERR` aggiungendo `>&2` alla fine di un comando bash. Ad esempio, `echo 'hello'>&2`. 

I log per le configurazioni del ciclo di vita vengono pubblicati su Amazon che utilizza Amazon. Account AWS CloudWatch Questi log possono essere trovati nel flusso di `/aws/sagemaker/studio` log della console. CloudWatch 

1. Apri la CloudWatch console all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Seleziona **Log** dal riquadro di navigazione a sinistra. Dal menu a discesa, seleziona **Gruppi di log**.

1. Nella pagina **Gruppi di log**, cerca `aws/sagemaker/studio`. 

1. Seleziona il gruppo di log .

1. Nella pagina **Dettagli gruppo di log**, scegli la scheda **Flussi di log**.

1. Per trovare i log per uno spazio e un’app specifici, cerca nei flussi di log utilizzando il formato seguente:

   ```
   domain-id/space-name/app-type/default/LifecycleConfigOnStart
   ```

   Ad esempio, per trovare i log di configurazione del ciclo di vita per l’ID dominio `d-m85lcu8vbqmz`, lo spazio `i-sonic-js` e il tipo di applicazione `JupyterLab`, utilizza la stringa di ricerca seguente:

   ```
   d-m85lcu8vbqmz/i-sonic-js/JupyterLab/default/LifecycleConfigOnStart
   ```

1. Per visualizzare i log di esecuzione dello script, seleziona il flusso di log collegato a `LifecycleConfigOnStart`.

# Timeout della configurazione del ciclo di vita
<a name="studio-lifecycle-configurations-debug-timeout"></a>

Il limite di timeout della configurazione del ciclo di vita è di 5 minuti. Se l’esecuzione di uno script di configurazione del ciclo di vita impiega più di cinque minuti, viene visualizzato un errore.

Per risolvere questo errore, assicurati che lo script di configurazione del ciclo di vita venga completato in meno di cinque minuti. 

Per ridurre il runtime degli script, prova quanto segue:
+ Elimina le fasi superflue. Ad esempio, limita gli ambienti conda in cui installare pacchetti di grandi dimensioni.
+ Esegui le attività in processi paralleli.
+ Utilizza il comando nohup nello script, che permette allo script di ignorare i segnali di arresto e, quindi, di completare l’esecuzione senza interruzioni.

# Spazi Amazon SageMaker Studio
<a name="studio-updated-spaces"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse 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 è ora denominata Amazon SageMaker Studio Classic. La sezione seguente è specifica per l’utilizzo dell’esperienza Studio aggiornata. Per informazioni sull’utilizzo dell’applicazione Studio Classic, consulta [Amazon SageMaker Studio Classic](studio.md).

Gli spazi vengono utilizzati per gestire le esigenze di archiviazione e risorse di alcune applicazioni Amazon SageMaker Studio. Ogni spazio è composto da più risorse e può essere privato o condiviso. Ogni spazio ha una relazione 1:1 con un’istanza di un’applicazione. Ogni applicazione supportata ha un proprio spazio quando viene creata. Le applicazioni seguenti in Studio vengono eseguite su spazi: 
+  [Editor di codice in Amazon SageMaker Studio](code-editor.md)
+  [SageMaker JupyterLab](studio-updated-jl.md) 
+  [Amazon SageMaker Studio Classic](studio.md) 

Uno spazio è costituito dalle risorse seguenti: 
+ Un volume di archiviazione. 
  + Per Studio Classic, lo spazio è collegato al volume Amazon Elastic File System (Amazon EFS) condiviso per il dominio. 
  + Per altre applicazioni, allo spazio viene collegato un volume Amazon Elastic Block Store (Amazon EBS) separato. A tutte le applicazioni viene assegnato un volume Amazon EBS. Le applicazioni non possono accedere al volume Amazon EBS di altre applicazioni. Per ulteriori informazioni sui volumi Amazon EBS, consulta [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/AmazonEBS.html). 
+ Il tipo di applicazione dello spazio. 
+ L’immagine su cui si basa l’applicazione.

Gli spazi possono essere privati o condivisi:
+  **Privato**: gli spazi privati sono limitati a un singolo utente in un dominio. Gli spazi privati non possono essere condivisi con altri utenti. Tutte le applicazioni che supportano gli spazi supportano anche gli spazi privati. 
+  **Condivisi**: gli spazi condivisi sono accessibili a tutti gli utenti del dominio. Per ulteriori informazioni sugli spazi condivisi, consulta [Collaborazione con spazi condivisi](domain-space.md). 

Gli spazi possono essere creati in domini che utilizzano l'autenticazione AWS IAM Identity Center o AWS Identity and Access Management (IAM). Le sezioni seguenti forniscono informazioni generali su come accedere agli spazi. Per informazioni specifiche sulla creazione e l’accesso a uno spazio, consulta la documentazione relativa al tipo di applicazione dello spazio che stai creando. 

Per informazioni sulla visualizzazione, l’interruzione o l’eliminazione di applicazioni, istanze o spazi, consulta [Arresto ed eliminazione delle applicazioni e degli spazi in esecuzione in Studio](studio-updated-running-stop.md).

**Topics**
+ [Avvio degli spazi](studio-updated-spaces-access.md)
+ [Collaborazione con spazi condivisi](domain-space.md)

# Avvio degli spazi
<a name="studio-updated-spaces-access"></a>

Le sezioni seguenti forniscono informazioni sull’accesso agli spazi in un dominio. Per accedere agli spazi sono disponibili diverse modalità:
+ dalla console Amazon SageMaker AI
+ da Studio.
+ utilizzando il AWS CLI

## Accesso agli spazi dalla console Amazon SageMaker AI
<a name="studio-updated-spaces-access-console"></a>

**Per accedere agli spazi dalla console Amazon SageMaker AI**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. In **Configurazioni admin**, scegli **Domini**.

1. Dall’elenco di domini, seleziona il dominio che contiene gli spazi.

1. Nella pagina **Dettagli del dominio**, seleziona la scheda **Gestione dello spazio**. Per ulteriori informazioni sulla gestione degli spazi, consulta [Collaborazione con spazi condivisi](domain-space.md).

1. Dall’elenco degli spazi del dominio, seleziona lo spazio da avviare.

1. Scegli **Avvia Studio** per lo spazio che desideri avviare.

## Accesso agli spazi da Studio
<a name="studio-updated-spaces-access-updated"></a>

Segui questa procedura per accedere agli spazi da Studio per un tipo di applicazione specifico. 

**Per accedere agli spazi da Studio**

1. Apri Studio seguendo le fasi descritte in [Avvia Amazon SageMaker Studio](studio-updated-launch.md). 

1. Seleziona il tipo di applicazione con gli spazi a cui desideri accedere.

## Accesso agli spazi utilizzando il AWS CLI
<a name="studio-updated-spaces-access-cli"></a>

Le seguenti sezioni mostrano come accedere a uno spazio da AWS Command Line Interface (AWS CLI). Le procedure riguardano i domini che utilizzano AWS Identity and Access Management (IAM) o AWS IAM Identity Center l'autenticazione. 

### Autenticazione IAM
<a name="studio-updated-spaces-access-cli-iam"></a>

La procedura seguente descrive in generale come accedere a uno spazio utilizzando l’autenticazione IAM dalla AWS CLI. 

1. Crea un URL di dominio prefirmato specificando il nome dello spazio a cui desideri accedere.

   ```
   aws \
       --region region \
       sagemaker \
       create-presigned-domain-url \
       --domain-id domain-id \
       --user-profile-name user-profile-name \
       --space-name space-name
   ```

1. Passa all’URL. 

### Accesso a uno spazio con l’autenticazione del Centro identità IAM
<a name="studio-updated-spaces-access-identity-center"></a>

La procedura seguente descrive come accedere a uno spazio utilizzando l’autenticazione del Centro identità IAM dalla AWS CLI. 

1. Utilizza il comando seguente per restituire l’URL associato allo spazio.

   ```
   aws \
       --region region \
       sagemaker \
       describe-space \
       --domain-id domain-id \
       --space-name space-name
   ```

1. Aggiungi il rispettivo parametro di reindirizzamento per il tipo di applicazione all’URL da federare tramite il Centro identità IAM. Per ulteriori informazioni sui parametri di reindirizzamento, consulta [describe-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/describe-space.html). 

1. Passa all’URL da federare tramite il Centro identità IAM. 

# Collaborazione con spazi condivisi
<a name="domain-space"></a>

Uno spazio condiviso Amazon SageMaker Studio Classic è costituito da un' JupyterServer applicazione condivisa e una directory condivisa. Uno spazio JupyterLab condiviso è costituito da un' JupyterLab applicazione condivisa e una directory condivisa all'interno di Amazon SageMaker Studio. Tutti i profili utente di un dominio hanno accesso a tutti gli spazi condivisi del dominio. Amazon SageMaker AI elabora automaticamente l'ambito delle risorse in uno spazio condiviso nel contesto dell'applicazione Amazon SageMaker Studio Classic che avvii in quello spazio condiviso. Le risorse in uno spazio condiviso includono notebook, file, esperimenti e modelli. Utilizza gli spazi condivisi per collaborare con altri utenti in tempo reale eseguendo funzionalità come il tagging automatico, la modifica congiunta in tempo reale dei notebook e la personalizzazione. 

Gli spazi condivisi sono disponibili in:
+ Amazon SageMaker Studio Classic
+ JupyterLab

Uno spazio condiviso di Studio Classic supporta solo Studio Classic e KernelGateway le applicazioni. Uno spazio condiviso supporta solo l'uso di un Amazon Resource Name (ARN) a JupyterLab 3 immagini. Per ulteriori informazioni, consulta [JupyterLab Controllo delle versioni in Amazon SageMaker Studio Classic](studio-jl.md).

 Amazon SageMaker AI etichetta automaticamente tutte le risorse di SageMaker intelligenza artificiale che crei nell'ambito di uno spazio condiviso. Puoi utilizzare questi tag per monitorare i costi e pianificare i budget utilizzando strumenti come Budget AWS. 

Uno spazio condiviso utilizza le stesse impostazioni VPC del dominio in cui è stato creato. 

**Nota**  
 Gli spazi condivisi non supportano l'uso di cluster cross-account Amazon SageMaker Data Wrangler o Amazon EMR. 

 **Tagging automatico** 

 A tutte le risorse create in uno spazio condiviso vengono automaticamente assegnati con tag ARN del dominio e un tag ARN dello spazio condiviso. Il tag ARN del dominio si basa sull’ID dominio, mentre il tag ARN dello spazio condiviso si basa sul nome dello spazio condiviso. 

 Puoi utilizzare questi tag per monitorare l'utilizzo. AWS CloudTrail Per ulteriori informazioni, consulta [Log Amazon SageMaker API Calls with AWS CloudTrail](https://docs.aws.amazon.com//sagemaker/latest/dg/logging-using-cloudtrail.html). 

 Puoi anche utilizzare questi tag per monitorare i costi con Gestione dei costi e fatturazione AWS. Per ulteriori informazioni, vedere [Utilizzo AWS dei tag di allocazione dei costi](https://docs.aws.amazon.com//awsaccountbilling/latest/aboutv2/cost-alloc-tags.html). 

 **Modifica condivisa in tempo reale dei notebook** 

 Un vantaggio chiave di uno spazio condiviso è che facilita la collaborazione tra i membri dello spazio condiviso in tempo reale. Gli utenti che collaborano in uno spazio di lavoro hanno accesso a un’applicazione Studio Classic condivisa in cui possono accedere, leggere e modificare i propri notebook in tempo reale. La collaborazione in tempo reale è supportata solo per JupyterServer le applicazioni all'interno di uno spazio condiviso. 

 Gli utenti con accesso a uno spazio condiviso possono aprire, visualizzare, modificare ed eseguire contemporaneamente i notebook Jupyter nello Studio Classic condiviso o nell'applicazione in quello spazio. JupyterLab 

Il notebook indica ogni utente che collabora alle modifiche con un cursore diverso che mostra il nome del profilo utente. Sebbene più utenti possano visualizzare lo stesso notebook, la modifica in collaborazione è più adatta per piccoli gruppi con un numero da due a cinque utenti.

Per tenere traccia delle modifiche apportate da più utenti, consigliamo vivamente di utilizzare il controllo delle versioni integrato basato su Git di Studio Classic.

 **JupyterServer 2** 

Per utilizzare gli spazi condivisi in Studio Classic, è richiesta la versione 2 del server Jupyter. Alcune JupyterLab estensioni e pacchetti possono forzatamente effettuare il downgrade di Jupyter Server alla versione 1. Ciò impedisce l'uso dello spazio condiviso. Esegui quanto segue dal prompt dei comandi per modificare il numero di versione e continuare a utilizzare gli spazi condivisi.

```
conda activate studio
pip install jupyter-server==2.0.0rc3
```

 **Personalizzazione di uno spazio condiviso** 

Per collegare una configurazione del ciclo di vita o un'immagine personalizzata a uno spazio condiviso, è necessario utilizzare la AWS CLI. Per ulteriori informazioni su come creare e collegare configurazioni del ciclo di vita, consulta [Crea e associa una configurazione del ciclo di vita con Amazon Studio Classic SageMaker](studio-lcc-create.md). Per informazioni sulla creazione e il collegamento di immagini personalizzate, consulta [Immagini personalizzate in Amazon SageMaker Studio Classic](studio-byoi.md).

# Creazione di uno spazio condiviso
<a name="domain-space-create"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

 Il seguente argomento dimostra come creare uno spazio condiviso in un dominio Amazon SageMaker AI esistente. Se hai creato il dominio senza il supporto per gli spazi condivisi, devi aggiungerlo prima di poter creare uno spazio condiviso. 

**Topics**
+ [Aggiunta del supporto per gli spazi condivisi a un dominio esistente](#domain-space-add)
+ [Creazione di uno spazio condiviso](#domain-space-create-app)

## Aggiunta del supporto per gli spazi condivisi a un dominio esistente
<a name="domain-space-add"></a>

 Puoi utilizzare la console SageMaker AI o aggiungere il AWS CLI supporto per gli spazi condivisi a un dominio esistente. Se il dominio utilizza l’accesso alla rete `VPC only`, puoi aggiungere il supporto per gli spazi condivisi solo tramite la AWS CLI.

### Console
<a name="domain-space-add-console"></a>

 Completa la seguente procedura per aggiungere il supporto per gli spazi condivisi di Studio Classic a un dominio esistente dalla console SageMaker AI. 

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1.  Dall’elenco di domini, seleziona il dominio per il quale desideri aprire la pagina **Impostazioni del dominio**. 

1.  Nella pagina **Dettagli del dominio**, seleziona la scheda **Impostazioni del dominio**. 

1.  Scegli **Modifica**. 

1.  In **Ruolo di esecuzione predefinito dello spazio**, imposta un ruolo IAM da utilizzare per impostazione predefinita per tutti gli spazi condivisi creati nel dominio. 

1.  Scegli **Next (Successivo)**. 

1.  Scegli **Next (Successivo)**. 

1.  Scegli **Next (Successivo)**. 

1.  Seleziona **Invia**. 

### AWS CLI
<a name="domain-space-add-cli"></a>

------
#### [ Studio Classic ]

Esegui il seguente comando dal terminale del tuo computer locale per aggiungere impostazioni di spazio condiviso predefinite a un dominio dalla AWS CLI. Se stai aggiungendo impostazioni predefinite per lo spazio condiviso a un dominio all’interno di un Amazon VPC, devi includere anche un elenco di gruppi di sicurezza. Gli spazi condivisi di Studio Classic supportano solo l'uso di JupyterLab 3 immagini ARNs. Per ulteriori informazioni, consulta [JupyterLab Controllo delle versioni in Amazon SageMaker Studio Classic](studio-jl.md).

```
# Public Internet domain
aws --region region \
sagemaker update-domain \
--domain-id domain-id \
--default-space-settings "ExecutionRole=execution-role-arn,JupyterServerAppSettings={DefaultResourceSpec={InstanceType=example-instance-type,SageMakerImageArn=sagemaker-image-arn}}"

# VPCOnly domain
aws --region region \
sagemaker update-domain \
--domain-id domain-id \
--default-space-settings "ExecutionRole=execution-role-arn,JupyterServerAppSettings={DefaultResourceSpec={InstanceType=system,SageMakerImageArn=sagemaker-image-arn}},SecurityGroups=[security-groups]"
```

Utilizza il comando seguente per verificare che le impostazioni predefinite dello spazio condiviso siano state aggiornate. 

```
aws --region region \
sagemaker describe-domain \
--domain-id domain-id
```

------
#### [ JupyterLab ]

Esegui il seguente comando dal terminale del tuo computer locale per aggiungere impostazioni di spazio condiviso predefinite a un dominio dalla AWS CLI. Se stai aggiungendo impostazioni predefinite per lo spazio condiviso a un dominio all’interno di un Amazon VPC, devi includere anche un elenco di gruppi di sicurezza. Gli spazi condivisi di Studio Classic supportano solo l'uso di JupyterLab 4 immagini ARNs. Per ulteriori informazioni, consulta [JupyterLab Controllo delle versioni in Amazon SageMaker Studio Classic](studio-jl.md).

```
# Public Internet domain
aws --region region \
sagemaker update-domain \
--domain-id domain-id \
--default-space-settings "ExecutionRole=execution-role-arn", JupyterLabAppSettings={DefaultResourceSpec={InstanceType=example-instance-type,SageMakerImageArn=sagemaker-image-arn}}"

# VPCOnly domain
aws --region region \
sagemaker update-domain \
--domain-id domain-id \
--default-space-settings "ExecutionRole=execution-role-arn, SecurityGroups=[security-groups]"
```

Utilizza il comando seguente per verificare che le impostazioni predefinite dello spazio condiviso siano state aggiornate. 

```
aws --region region \
sagemaker describe-domain \
--domain-id domain-id
```

------

## Creazione di uno spazio condiviso
<a name="domain-space-create-app"></a>

Le seguenti sezioni mostrano come creare uno spazio condiviso dalla console Amazon SageMaker AI, Amazon SageMaker Studio o AWS CLI.

### Creazione da Studio
<a name="domain-space-create-updated"></a>

Utilizza le procedure seguenti per creare uno spazio condiviso in un dominio da Studio.

------
#### [ Studio Classic ]

1. Passa a Studio seguendo la procedura indicata in [Avvia Amazon SageMaker Studio](studio-updated-launch.md).

1. Dall’interfaccia utente di Studio, trova il riquadro delle applicazioni sulla sinistra.

1. Dal riquadro delle applicazioni, seleziona **Studio Classic**.

1. Scegli **Crea spazio Studio Classic**.

1. Nella finestra pop-up, inserisci un nome per lo spazio.

1. Scegli **Crea spazio**.

------
#### [ JupyterLab ]

1. Passa a Studio seguendo la procedura indicata in [Avvia Amazon SageMaker Studio](studio-updated-launch.md).

1. Dall’interfaccia utente di Studio, trova il riquadro delle applicazioni sulla sinistra.

1. Dal riquadro delle applicazioni, seleziona **JupyterLab**.

1. Scegli **Crea JupyterLab spazio**

1. Nella finestra pop-up, inserisci un nome per lo spazio.

1. Scegli **Crea spazio**.

------

### Creazione dalla console
<a name="domain-space-create-console"></a>

 Completa la seguente procedura per creare uno spazio condiviso in un dominio dalla console SageMaker AI. 

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1.  Nell’elenco di domini, seleziona quello per il quale desideri creare uno spazio condiviso. 

1.  Nella pagina **Dettagli del dominio**, seleziona la scheda **Gestione dello spazio**. 

1.  Scegli **Create** (Crea). 

1.  Inserisci un nome per lo spazio condiviso. I nomi degli spazi condivisi all’interno di un dominio devono essere univoci. Il ruolo di esecuzione per lo spazio condiviso è impostato sul ruolo di esecuzione IAM del dominio. 

### Crea da AWS CLI
<a name="domain-space-create-cli"></a>

In questa sezione viene illustrato come creare uno spazio condiviso dalla AWS CLI. 

Non è possibile impostare il ruolo di esecuzione di uno spazio condiviso durante la creazione o l'aggiornamento. `DefaultDomainExecRole`Può essere impostato solo durante la creazione o l'aggiornamento del dominio. gli spazi condivisi supportano solo l'uso di JupyterLab 3 immagini. ARNs Per ulteriori informazioni, consulta [JupyterLab Controllo delle versioni in Amazon SageMaker Studio Classic](studio-jl.md).

Per creare uno spazio condiviso da AWS CLI, esegui uno dei seguenti comandi dal terminale del tuo computer locale.

------
#### [ Studio Classic ]

```
aws --region region \
sagemaker create-space \
--domain-id domain-id \
--space-name space-name \
--space-settings '{
  "JupyterServerAppSettings": {
    "DefaultResourceSpec": {
      "SageMakerImageArn": "sagemaker-image-arn",
      "InstanceType": "system"
    }
  }
}'
```

------
#### [ JupyterLab ]

```
aws --region region \
sagemaker create-space \
--domain-id domain-id \
--space-name space-name \
--ownership-settings "{\"OwnerUserProfileName\": \"user-profile-name\"}" \
--space-sharing-settings "{\"SharingType\": \"Shared\"}" \
--space-settings "{\"AppType\": \"JupyterLab\"}"
```

------

# Recupero di informazioni sugli spazi condivisi
<a name="domain-space-list"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

 Questa guida mostra come accedere a un elenco di spazi condivisi in un dominio Amazon SageMaker AI con la console Amazon SageMaker AI, Amazon SageMaker Studio o il AWS CLI. Mostra anche come visualizzare i dettagli di uno spazio condiviso dalla AWS CLI. 

**Topics**
+ [Elenchi di spazi condivisi](#domain-space-list-spaces)
+ [Visualizzazione dei dettagli dello spazio condiviso](#domain-space-describe)

## Elenchi di spazi condivisi
<a name="domain-space-list-spaces"></a>

 Il seguente argomento descrive come visualizzare un elenco di spazi condivisi all'interno di un dominio dalla console SageMaker AI o da AWS CLI. 

### Elenco degli spazi condivisi da Studio
<a name="domain-space-list-updated"></a>

 Completa la procedura seguente per visualizzare un elenco degli spazi condivisi in un dominio da Studio.

1. Passa a Studio seguendo la procedura indicata in [Avvia Amazon SageMaker Studio](studio-updated-launch.md).

1. Dall’interfaccia utente di Studio, trova il riquadro delle applicazioni sulla sinistra.

1. Dal riquadro delle applicazioni, seleziona **Studio Classic** o **JupyterLab**. Puoi visualizzare gli spazi utilizzati per l’esecuzione dello specifico tipo di applicazione.

### Elenchi di spazi condivisi dalla console
<a name="domain-space-list-console"></a>

 Completa la seguente procedura per visualizzare un elenco degli spazi condivisi in un dominio dalla console SageMaker AI. 

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1.  Dall’elenco di domini, seleziona quello per il quale desideri visualizzare l’elenco degli spazi condivisi. 

1.  Nella pagina **Dettagli del dominio**, seleziona la scheda **Gestione dello spazio**. 

### Elenca gli spazi condivisi da AWS CLI
<a name="domain-space-list-cli"></a>

 Per elencare gli spazi condivisi in un dominio da AWS CLI, esegui il seguente comando dal terminale del tuo computer locale.

```
aws --region region \
sagemaker list-spaces \
--domain-id domain-id
```

## Visualizzazione dei dettagli dello spazio condiviso
<a name="domain-space-describe"></a>

 La sezione seguente descrive come visualizzare i dettagli dello spazio condiviso dalla console SageMaker AI, da Studio o da AWS CLI. 

### Visualizzazione dei dettagli degli spazi condivisi da Studio
<a name="domain-space-describe-updated"></a>

 Completa la procedura seguente per visualizzare i dettagli di uno spazio condiviso in un dominio da Studio.

1. Passa a Studio seguendo la procedura indicata in [Avvia Amazon SageMaker Studio](studio-updated-launch.md).

1. Dall’interfaccia utente di Studio, trova il riquadro delle applicazioni sulla sinistra.

1. Dal riquadro delle applicazioni, seleziona **Studio Classic** o **JupyterLab**. Puoi visualizzare gli spazi in cui è in esecuzione l’applicazione.

1. Seleziona il nome dello spazio per il quale desideri visualizzare i dettagli.

### Visualizzazione dei dettagli dello spazio condiviso dalla console
<a name="domain-space-describe-console"></a>

 È possibile visualizzare i dettagli di uno spazio condiviso dalla console SageMaker AI utilizzando la seguente procedura. 

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1.  Dall’elenco di domini, seleziona quello per il quale desideri visualizzare l’elenco degli spazi condivisi. 

1.  Nella pagina **Dettagli del dominio**, seleziona la scheda **Gestione dello spazio**. 

1.  Seleziona il nome dello spazio per aprire una nuova pagina in cui sono elencati i dettagli dello spazio condiviso. 

### Visualizza i dettagli dello spazio condiviso dal AWS CLI
<a name="domain-space-describe-cli"></a>

Per visualizzare i dettagli di uno spazio condiviso da AWS CLI, esegui il seguente comando dal terminale del tuo computer locale.

```
aws --region region \
sagemaker describe-space \
--domain-id domain-id \
--space-name space-name
```

# Modifica di uno spazio condiviso
<a name="domain-space-edit"></a>

 Puoi modificare i dettagli di Amazon SageMaker Studio Classic o di uno spazio JupyterLab condiviso solo utilizzando AWS CLI. Non puoi modificare i dettagli di uno spazio condiviso dalla console Amazon SageMaker AI. È possibile aggiornare gli attributi dell'area di lavoro solo quando non ci sono applicazioni in esecuzione nello spazio condiviso. 

------
#### [ Studio Classic ]

Per modificare i dettagli di uno spazio condiviso di Studio Classic da AWS CLI, esegui uno dei seguenti comandi dal terminale del tuo computer locale. gli spazi condivisi supportano solo l'uso di JupyterLab 3 immagini. ARNs Per ulteriori informazioni, consulta [JupyterLab Controllo delle versioni in Amazon SageMaker Studio Classic](studio-jl.md).

```
aws --region region \
sagemaker update-space \
--domain-id domain-id \
--space-name space-name \
--query SpaceArn --output text \
--space-settings '{
  "JupyterServerAppSettings": {
    "DefaultResourceSpec": {
      "SageMakerImageArn": "sagemaker-image-arn",
      "InstanceType": "system"
    }
  }
}'
```

------
#### [ JupyterLab ]

Per modificare i dettagli di uno spazio JupyterLab condiviso da AWS CLI, esegui uno dei seguenti comandi dal terminale del tuo computer locale. gli spazi condivisi supportano solo l'uso di 4 immagini. JupyterLab ARNs Per ulteriori informazioni, consulta [SageMaker JupyterLab](studio-updated-jl.md).

```
aws --region region \
sagemaker update-space \
--domain-id domain-id \
--space-name space-name \
--space-settings "{
      "SpaceStorageSettings": {
      "EbsStorageSettings": { 
      "EbsVolumeSizeInGb":100
    }
    }
  }
}"
```

------

# Eliminazione di uno spazio condiviso
<a name="domain-space-delete"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

 Il seguente argomento mostra come eliminare uno spazio condiviso Amazon SageMaker Studio Classic dalla console Amazon SageMaker AI o AWS CLI. Uno spazio condiviso può essere eliminato solo se non contiene applicazioni in esecuzione. 

**Topics**
+ [Console](#domain-space-delete-console)
+ [AWS CLI](#domain-space-delete-cli)

## Console
<a name="domain-space-delete-console"></a>

 Completa la seguente procedura per eliminare uno spazio condiviso nel dominio Amazon SageMaker AI dalla console SageMaker AI. 

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1.  Nell’elenco di domini, seleziona quello per il quale desideri creare uno spazio condiviso. 

1.  Nella pagina **Dettagli del dominio**, seleziona la scheda **Gestione dello spazio**. 

1.  Seleziona lo spazio condiviso da eliminare. Lo spazio condiviso non deve contenere app non riuscite. 

1.  Scegli **Elimina**. Si apre una nuova finestra. 

1.  Seleziona **Sì, elimina lo spazio**. 

1.  Immetti *delete* nel campo. 

1.  Seleziona **Elimina spazio**. 

## AWS CLI
<a name="domain-space-delete-cli"></a>

Per eliminare uno spazio condiviso da AWS CLI, esegui il seguente comando dal terminale del tuo computer locale.

```
aws --region region \
sagemaker delete-space \
--domain-id domain-id \
--space-name space-name
```

# Propagazione attendibile delle identità con Studio
<a name="trustedidentitypropagation"></a>

La propagazione affidabile delle identità è una AWS IAM Identity Center funzionalità che gli amministratori dei AWS servizi connessi possono utilizzare per concedere e controllare l'accesso ai dati del servizio. L’accesso a questi dati si basa su attributi utente come le associazioni di gruppo. La configurazione di una propagazione affidabile delle identità richiede la collaborazione tra gli amministratori dei AWS servizi connessi e l'amministratore di IAM Identity Center. Per ulteriori informazioni, consulta [Prerequisites and considerations](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-overall-prerequisites.html).

Gli amministratori di Amazon SageMaker Studio e IAM Identity Center possono collaborare per connettere i servizi per una propagazione affidabile delle identità. La propagazione affidabile delle identità risponde alle esigenze di autenticazione aziendale tra AWS i servizi semplificando:
+ Gli audit avanzati che monitorano le azioni eseguite da utenti specifici.
+ Gestione degli accessi per i carichi di lavoro di data science e machine learning attraverso l'integrazione con servizi compatibili AWS 
+ I requisiti di conformità nei settori regolamentati.

Studio supporta la propagazione affidabile delle identità per scopi di audit e controllo degli accessi con servizi connessi AWS . La propagazione attendibile delle identità in Studio non gestisce direttamente le decisioni di autenticazione o autorizzazione all’interno di Studio stesso. Al contrario, propaga le informazioni sul contesto dell’identità a servizi compatibili che possono utilizzare queste informazioni per il controllo degli accessi.

Quando utilizzi la propagazione affidabile delle identità con Studio, la tua identità di IAM Identity Center si propaga ai AWS servizi connessi, creando autorizzazioni e governance di sicurezza più granulari.

**Topics**
+ [Architettura e compatibilità della propagazione attendibile delle identità](trustedidentitypropagation-compatibility.md)
+ [Configurazione della propagazione attendibile delle identità per Studio](trustedidentitypropagation-setup.md)
+ [Monitoraggio e controllo con CloudTrail](trustedidentitypropagation-auditing.md)
+ [Sessioni in background degli utenti](trustedidentitypropagation-user-background-sessions.md)
+ [Come connettersi ad altri AWS servizi con la propagazione affidabile delle identità abilitata](trustedidentitypropagation-connect-other.md)

# Architettura e compatibilità della propagazione attendibile delle identità
<a name="trustedidentitypropagation-compatibility"></a>

La propagazione affidabile delle identità si integra con AWS IAM Identity Center Amazon SageMaker Studio e altri AWS servizi connessi per diffondere il contesto dell'identità degli utenti tra i servizi. La pagina seguente riassume l'architettura affidabile di propagazione delle identità e la compatibilità con l'IA. SageMaker Per una panoramica completa di come funziona la propagazione delle identità affidabili AWS, consulta Panoramica sulla propagazione delle [identità affidabili](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-overview.html).

I componenti chiave dell’architettura di propagazione attendibile delle identità includono:
+ **Propagazione attendibile delle identità**: una metodologia per la propagazione del contesto dell’identità dell’utente tra applicazioni e servizi.
+ **Contesto dell’identità**: informazioni su un utente.
+ **Sessione di ruolo IAM con identità migliorata: le sessioni di ruolo** con identità migliorata hanno un contesto di identità aggiunto che trasmette un identificatore utente al servizio che richiamano AWS 
+ ** AWS Servizi connessi: altri AWS servizi** in grado di riconoscere il contesto di identità che viene propagato tramite una propagazione di identità affidabile

La propagazione affidabile delle identità consente ai AWS servizi connessi di prendere decisioni di accesso in base all'identità dell'utente. All’interno dello stesso Studio, i ruoli IAM vengono utilizzati come carrier del contesto dell’identità e non come strumenti per prendere decisioni sul controllo degli accessi. Il contesto dell'identità viene propagato ai AWS servizi connessi dove può essere utilizzato sia per il controllo degli accessi che per scopi di verifica. Per ulteriori informazioni, consulta [trusted identity propagation considerations](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-overall-prerequisites.html#trustedidentitypropagation-considerations).

Quando abiliti la propagazione affidabile dell'identità con Studio e esegui l'autenticazione tramite IAM Identity Center, AI: SageMaker 
+ Acquisisce il contesto dell’identità dell’utente dal Centro identità IAM.
+ Crea una sessione del ruolo IAM rafforzata con l’identità che include il contesto dell’identità dell’utente.
+ Passa la sessione di ruolo IAM con identità migliorata ai AWS servizi compatibili quando l'utente accede alle risorse
+ Consente ai AWS servizi downstream di prendere decisioni di accesso e registrare le attività in base all'identità dell'utente

## Funzionalità SageMaker AI compatibili
<a name="trustedidentitypropagation-compatibility-compatible-features"></a>

La propagazione attendibile delle identità può essere utilizzata con le seguenti funzionalità di Studio:
+ Spazi privati di [Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) (JupyterLab e Code Editor, basato su Code-OSS, Visual Studio Code - Open Source)

**Nota**  
Quando viene avviato con la propagazione attendibile delle identità abilitata, Studio utilizza il contesto dell’identità dell’utente in aggiunta alle autorizzazioni del ruolo di esecuzione. Tuttavia, i seguenti processi durante la configurazione dell'istanza utilizzeranno solo le autorizzazioni del ruolo di esecuzione, senza il contesto dell'identità: Lifecycle Configuration Bring-Your-Own-Image, CloudWatch agente per l'inoltro dei log degli utenti.
[L’accesso remoto](https://docs.aws.amazon.com/sagemaker/latest/dg/remote-access.html) non è attualmente supportato con la propagazione attendibile delle identità.
Quando si utilizzano le operazioni di assunzione dei ruoli all'interno dei notebook di Studio, i ruoli assunti non propagano un contesto di propagazione dell'identità affidabile. Solo il ruolo di esecuzione originale mantiene il contesto di identità.
+  [SageMakerFormazione](https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works-training.html) 
+  [SageMakerElaborazione](https://docs.aws.amazon.com/sagemaker/latest/dg/processing-job.html) 
+  [SageMaker Hosting AI in tempo reale](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints-options.html) 
+  [SageMakerGasdotti](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-overview.html) 
+  [SageMakerinferenza in tempo reale](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints.html) 
+  [SageMakerInferenza asincrona](https://docs.aws.amazon.com/sagemaker/latest/dg/async-inference.html) 
+  [Gestito MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html) 

## AWS Servizi compatibili
<a name="trustedidentitypropagation-compatibility-compatible-services"></a>

La propagazione affidabile delle identità per Amazon SageMaker Studio si integra con i AWS servizi compatibili, in cui è abilitata la propagazione delle identità affidabili. Consulta i [casi d’uso](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-integrations.html) per un elenco completo corredato da esempi su come abilitare la propagazione attendibile delle identità. I servizi compatibili con la propagazione attendibile delle identità includono quanto segue.
+  [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/workgroups-identity-center.html) 
+  [Amazon EMR su EC2](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-idc-start.html) 
+  [EMR Serverless](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-service-trusted-prop.html) 
+  [AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/identity-center-integration.html) 
+  [API dati di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/data-api-trusted-identity-propagation.html) 
+ Amazon S3 (tramite [Amazon S3 Access Grants](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-get-started.html))
+ [Connessioni AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/security-trusted-identity-propagation.html)

Quando la propagazione delle identità attendibili è abilitata con l' SageMaker intelligenza artificiale, ogni altro AWS servizio con propagazione dell'identità affidabile è connesso. Una volta connessi, riconoscono e utilizzano il contesto dell’identità dell’utente per il controllo degli accessi e gli audit.

## Supportato Regioni AWS
<a name="trustedidentitypropagation-compatibility-supported-regions"></a>

Studio supporta la propagazione attendibile delle identità se [è supportato il Centro identità IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/regions.html) ed è supportato Studio con l’autenticazione del Centro identità IAM. Studio supporta la propagazione affidabile delle identità nei seguenti casi: Regioni AWS
+ af-south-1
+ ap-east-1
+ ap-northeast-1
+ ap-northeast-2
+ ap-northeast-3
+ ap-south-1
+ ap-southeast-1
+ ap-southeast-2
+ ap-southeast-3
+ ca-central-1
+ eu-central-1
+ eu-central-2
+ eu-north-1
+ eu-south-1
+ eu-west-1
+ eu-west-2
+ eu-west-3
+ il-central-1
+ me-south-1
+ sa-east-1
+ us-east-1
+ us-east-2
+ us-west-1
+ us-west-2

# Configurazione della propagazione attendibile delle identità per Studio
<a name="trustedidentitypropagation-setup"></a>

La configurazione della propagazione dell'identità affidabile per Amazon SageMaker Studio richiede che il tuo dominio Amazon SageMaker AI disponga del metodo di autenticazione IAM Identity Center configurato. Questa sezione ti guida attraverso i prerequisiti e le fasi necessari per abilitare e configurare la propagazione attendibile delle identità per gli utenti di Studio.

**Topics**
+ [Prerequisiti](#trustedidentitypropagation-setup-prerequisites)
+ [Abilita la propagazione affidabile delle identità per il tuo dominio Amazon SageMaker AI](#trustedidentitypropagation-setup-enable)
+ [Configura il tuo ruolo di esecuzione dell' SageMaker IA](#trustedidentitypropagation-setup-permissions)

## Prerequisiti
<a name="trustedidentitypropagation-setup-prerequisites"></a>

Prima di configurare la propagazione affidabile delle identità per l' SageMaker intelligenza artificiale, configura il tuo IAM Identity Center seguendo le seguenti istruzioni.

**Nota**  
Assicurati che il tuo Centro identità IAM e il tuo dominio si trovino nella stessa Regione.
+  [IAM Identity Center trusted identity propagation prerequisites](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-overall-prerequisites.html#trustedidentitypropagation-prerequisites) 
+  [Set up IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) 
+  [Add users to your IAM Identity Center directory](https://docs.aws.amazon.com/singlesignon/latest/userguide/addusers.html) 

## Abilita la propagazione affidabile delle identità per il tuo dominio Amazon SageMaker AI
<a name="trustedidentitypropagation-setup-enable"></a>

**Importante**  
Puoi abilitare la propagazione attendibile delle identità solo per i domini in cui è configurato il metodo di autenticazione AWS IAM Identity Center .
Il tuo IAM Identity Center e il dominio Amazon SageMaker AI devono trovarsi nello stesso dominio Regione AWS.

Utilizza una delle opzioni seguenti per informazioni su come abilitare la propagazione attendibile delle identità per un dominio nuovo o esistente.

------
#### [ New domain - console ]

**Abilita la propagazione affidabile delle identità per un nuovo dominio utilizzando la console SageMaker AI**

1. Apri la [console Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker).

1. Vai a **Domini**.

1. [Crea un dominio personalizzato](https://docs.aws.amazon.com/sagemaker/latest/dg/onboard-custom.html). Nel dominio deve essere configurato il metodo di autenticazione **AWS IAM Identity Center**.

1. Nella sezione **Propagazione attendibile delle identità**, scegli **Abilita la propagazione attendibile delle identità per tutti gli utenti di questo dominio**.

1. Completa il processo di creazione personalizzata.

------
#### [ Existing domain - console ]

**Abilita la propagazione affidabile delle identità per un dominio esistente utilizzando la console SageMaker AI**
**Nota**  
Affinché la propagazione delle identità affidabili funzioni correttamente dopo essere stata abilitata per un dominio esistente, gli utenti dovranno riavviare le sessioni IAM Identity Center esistenti. Per farlo, puoi:  
Gli utenti dovranno disconnettersi e accedere nuovamente alle sessioni IAM Identity Center esistenti
Gli amministratori possono [terminare le sessioni attive per gli utenti della forza lavoro](https://docs.aws.amazon.com/singlesignon/latest/userguide/end-active-sessions.html).

1. Apri la [console Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker).

1. Vai a **Domini**.

1. Seleziona il dominio esistente. Nel dominio deve essere configurato il metodo di autenticazione **AWS IAM Identity Center**.

1. Nella scheda **Impostazioni del dominio**, scegli **Modifica** nella sezione **Autenticazione e autorizzazioni**.

1. Scegli **Abilita la propagazione attendibile delle identità per tutti gli utenti di questo dominio**.

1. Completa la configurazione del dominio.

------
#### [ Existing domain - AWS CLI ]

Abilita la propagazione affidabile delle identità per un dominio esistente utilizzando il AWS CLI

**Nota**  
Affinché la propagazione delle identità affidabili funzioni correttamente dopo essere stata abilitata per un dominio esistente, gli utenti dovranno riavviare le sessioni di IAM Identity Center esistenti. Per farlo, puoi:  
Gli utenti dovranno disconnettersi e accedere nuovamente alle sessioni IAM Identity Center esistenti
Gli amministratori possono [terminare le sessioni attive per gli utenti della forza lavoro](https://docs.aws.amazon.com/singlesignon/latest/userguide/end-active-sessions.html).

```
aws sagemaker update-domain \
    --region $REGION \
    --domain-id $DOMAIN_ID \
    --domain-settings "TrustedIdentityPropagationSettings={Status=ENABLED}"
```
+ `DOMAIN_ID`è l'ID del dominio Amazon SageMaker AI. Per ulteriori informazioni, consulta [Visualizzazione dei domini](https://docs.aws.amazon.com/sagemaker/latest/dg/domain-view.html).
+ `REGION`è il dominio Amazon SageMaker AI Regione AWS del tuo dominio Amazon. Puoi trovarlo in alto a destra in qualsiasi pagina della AWS console.

------

## Configura il tuo ruolo di esecuzione dell' SageMaker IA
<a name="trustedidentitypropagation-setup-permissions"></a>

Per abilitare la propagazione attendibile delle identità per gli utenti di Studio, tutti i ruoli di propagazione attendibile delle identità devono impostare le autorizzazioni seguenti per il contesto. Aggiorna la policy di attendibilità per tutti i ruoli per includere le azioni `sts:AssumeRole` e `sts:SetContext`. Utilizza la policy seguente quando [aggiorni la policy di attendibilità del tuo ruolo](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-trust-policy.html).

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

****  

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

------

# Monitoraggio e controllo con CloudTrail
<a name="trustedidentitypropagation-auditing"></a>

Con la propagazione affidabile delle identità abilitata, AWS CloudTrail i log includono le informazioni sull'identità dell'utente specifico che ha eseguito un'azione, anziché solo il ruolo IAM. Ciò fornisce funzionalità di audit avanzate per la conformità e la sicurezza.

Per visualizzare le informazioni sull'identità nei CloudTrail log:
+ Apri la [CloudTrail console](https://console.aws.amazon.com/cloudtrail).
+ Nel riquadro di navigazione a sinistra, seleziona **Cronologia eventi**.
+ Scegli gli eventi dall' SageMaker intelligenza artificiale e dai servizi correlati.
+ In **Record di eventi**, cerca la chiave `onBehalfOf`. Questa contiene la chiave `userId` e altre informazioni di identificazione dell’utente che possono essere mappate a uno specifico utente del Centro identità IAM.

  [Per ulteriori informazioni, consulta i casi d'CloudTrail uso di IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/sso-cloudtrail-use-cases.html).

# Sessioni in background degli utenti
<a name="trustedidentitypropagation-user-background-sessions"></a>

Le sessioni in background degli utenti continuano anche quando l’utente non è più attivo. Consentono di eseguire processi di lunga durata che possono continuare anche dopo la disconnessione dell’utente. Ciò può essere reso possibile tramite la propagazione affidabile delle identità di SageMaker AI. La pagina seguente spiega le opzioni e i comportamenti di configurazione per le sessioni in background degli utenti.

**Nota**  
Le sessioni utente già attive non sono interessate dall’abilitazione della propagazione attendibile delle identità. La durata predefinita si applica solo alle nuove sessioni utente o alle sessioni riavviate.
Le sessioni utente in background si applicano a qualsiasi flusso di lavoro di SageMaker intelligenza artificiale di lunga durata o a qualsiasi lavoro con stati persistenti. Ciò include, a titolo esemplificativo, tutte le risorse di SageMaker intelligenza artificiale che mantengono lo stato di esecuzione o richiedono un monitoraggio continuo. Ad esempio, i lavori di esecuzione di SageMaker Training, Processing e Pipelines.

**Topics**
+ [Configurazione della sessione in background dell’utente](#configure-user-background-sessions)
+ [Durata predefinita della sessione in background dell’utente](#default-user-background-session-duration)
+ [Impatto della disabilitazione della propagazione attendibile delle identità in Studio](#user-background-session-impact-disable-trustedidentitypropagation-studio)
+ [Impatto della disabilitazione delle sessioni in background degli utenti nella console del Centro identità IAM](#user-background-session-impact-disable-trustedidentitypropagation-identity-center)
+ [Considerazioni sul runtime](#user-background-session-runtime-considerations)

## Configurazione della sessione in background dell’utente
<a name="configure-user-background-sessions"></a>

Una volta abilitata la propagazione affidabile delle identità per Amazon SageMaker Studio, i limiti di durata predefiniti possono essere configurati tramite le [sessioni utente in background nello IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/user-background-sessions.html).

## Durata predefinita della sessione in background dell’utente
<a name="default-user-background-session-duration"></a>

Per impostazione predefinita, tutte le sessioni in background degli utenti hanno una durata limitata a sette giorni. Gli amministratori possono [modificare questa durata nella console del Centro identità IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/user-background-sessions.html). Questa impostazione si applica a livello di istanza del Centro identità IAM e interessa tutte le applicazioni del Centro identità IAM e i domini Studio supportati che si trovano in tale istanza.

Quando la propagazione affidabile delle identità è abilitata, gli amministratori nella console SageMaker AI troveranno un banner con le seguenti informazioni:
+ Il limite di durata per le sessioni in background degli utenti.
+ Un link alla console del Centro identità IAM in cui gli amministratori possono modificare questa configurazione.
  + La durata può essere impostata su un qualsiasi valore compreso tra 15 minuti e 90 giorni.

Quando una sessione in background dell’utente scade, viene visualizzato un messaggio di errore. Puoi utilizzare il link alla console del Centro identità IAM per aggiornare la durata.

## Impatto della disabilitazione della propagazione attendibile delle identità in Studio
<a name="user-background-session-impact-disable-trustedidentitypropagation-studio"></a>

Se un amministratore disabilita la propagazione delle identità affidabili, dopo averla inizialmente abilitata, nella console AI: SageMaker 
+ Se le sessioni in background degli utenti sono abilitate, i processi esistenti continuano senza interruzioni.
+ Quando le sessioni utente in background sono disabilitate, tutti i flussi di lavoro di intelligenza artificiale o i lavori di SageMaker intelligenza artificiale di lunga durata con stati persistenti passeranno all'utilizzo di sessioni interattive. Ciò include, a titolo esemplificativo, tutte le risorse di SageMaker intelligenza artificiale che mantengono lo stato di esecuzione o richiedono un monitoraggio continuo. Ad esempio, i lavori di Amazon SageMaker Training and Processing.
+ Gli utenti possono riavviare i processi scaduti dai checkpoint.
+ I nuovi processi vengono eseguiti con le credenziali del ruolo IAM e non propagano il contesto dell’identità.

## Impatto della disabilitazione delle sessioni in background degli utenti nella console del Centro identità IAM
<a name="user-background-session-impact-disable-trustedidentitypropagation-identity-center"></a>

Quando la sessione utente in background è **disabilitata** per l'istanza IAM Identity Center, il job SageMaker AI utilizza sessioni interattive con l'utente. Quando si utilizzano sessioni interattive, un processo di SageMaker intelligenza artificiale fallirà entro 15 minuti quando:
+ L’utente si disconnette.
+ La sessione interattiva viene revocata dall’amministratore.

Quando la sessione utente in background è **abilitata** per l'istanza IAM Identity Center, il job SageMaker AI utilizza sessioni utente in background. Quando si utilizzano sessioni interattive, un processo di SageMaker intelligenza artificiale fallirà entro 15 minuti quando:
+ La sessione in background dell’utente scade.
+ La sessione in background dell’utente viene revocata manualmente da un amministratore.

Di seguito vengono forniti esempi di comportamento con i lavori di SageMaker formazione. Quando un amministratore abilita la propagazione attendibile delle identità, ma disabilita le [sessioni in background degli utenti](https://docs.aws.amazon.com/singlesignon/latest/userguide/user-background-sessions.html) nella console del Centro identità IAM:
+ Se l’utente rimane connesso, i job di addestramento creati mentre le sessioni in background erano disabilitate eseguono il fallback nella sessione interattiva.
+ Se l’utente si disconnette, la sessione scade e i job di addestramento che dipendono dalla sessione interattiva si interrompono con un errore.
+ Gli utenti possono riavviare il job di addestramento dall’ultimo checkpoint. La durata della sessione è determinata dal valore impostato per la durata della sessione interattiva nella console del Centro identità IAM.
+ Se un utente disabilita le sessioni in background **dopo** l’avvio di un processo, il processo continuerà a utilizzare le sessioni in background esistenti. In altre parole, l' SageMaker intelligenza artificiale non creerà nuove sessioni in background.

Lo stesso comportamento si applica se le sessioni in background sono abilitate a livello di istanza di IAM Identity Center ma disabilitate specificamente per l'applicazione Studio che utilizza [IAM Identity Center APIs](https://docs.aws.amazon.com/singlesignon/latest/APIReference/welcome.html).

## Considerazioni sul runtime
<a name="user-background-session-runtime-considerations"></a>

Quando un amministratore imposta processi `MaxRuntimeInSeconds` di formazione o elaborazione di lunga durata inferiori alla durata della sessione utente in background, SageMaker AI esegue il lavoro per la durata minima della sessione in background dell'utente `MaxRuntimeInSeconds` o della durata minima della sessione in background dell'utente. Per ulteriori informazioni su `MaxRuntimeInSeconds`, consultare [CreateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html#sagemaker-CreateTrainingJob-request-StoppingCondition). Per informazioni su come impostare il runtime, consulta [User background sessions in IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/user-background-sessions.html).

# Come connettersi ad altri AWS servizi con la propagazione affidabile delle identità abilitata
<a name="trustedidentitypropagation-connect-other"></a>

Quando la propagazione delle identità affidabili è abilitata per il tuo dominio Amazon SageMaker AI, gli utenti del dominio possono connettersi ad altri servizi affidabili abilitati AWS alla propagazione delle identità. Quando la propagazione attendibile delle identità è abilitata, il contesto dell’identità viene automaticamente propagato ai servizi compatibili, consentendo un controllo granulare degli accessi e audit migliori sui flussi di lavoro di machine learning. Questa integrazione elimina la necessità di un complesso cambio di ruolo IAM e offre un'esperienza di identità unificata tra i servizi. AWS Le pagine seguenti forniscono informazioni su come connettere Amazon SageMaker Studio ad altri AWS servizi quando è abilitata la propagazione di identità affidabili.

**Topics**
+ [Connetti JupyterLab i notebook Connect Studio ad Amazon S3 Access Grants con la propagazione affidabile delle identità abilitata](trustedidentitypropagation-s3-access-grants.md)
+ [Connetti i JupyterLab notebook Connect Studio ad Amazon EMR con la propagazione delle identità affidabile abilitata](trustedidentitypropagation-emr-ec2.md)
+ [Connect i JupyterLab notebook Studio a EMR Serverless con la propagazione affidabile delle identità abilitata](trustedidentitypropagation-emr-serverless.md)
+ [Connetti i JupyterLab notebook di Studio all'API Redshift Data con la propagazione affidabile delle identità abilitata](trustedidentitypropagation-redshift-data-apis.md)
+ [Connetti JupyterLab i notebook Studio a Lake Formation e Athena con la propagazione affidabile delle identità abilitata](trustedidentitypropagation-lake-formation-athena.md)

# Connetti JupyterLab i notebook Connect Studio ad Amazon S3 Access Grants con la propagazione affidabile delle identità abilitata
<a name="trustedidentitypropagation-s3-access-grants"></a>

Puoi utilizzare [Amazon S3 Access Grants](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants.html) per concedere in modo flessibile il controllo granulare degli accessi basato sull’identità alle posizioni Amazon S3. In questo modo, i bucket Amazon S3 possono accedere direttamente agli utenti e ai gruppi aziendali. Le pagine seguenti forniscono informazioni e istruzioni su come utilizzare Amazon S3 Access Grants con la propagazione dell'identità affidabile per l'intelligenza artificiale. SageMaker 

## Prerequisiti
<a name="s3-access-grants-prerequisites"></a>

Per connettere Studio a Lake Formation e Athena con la propagazione attendibile delle identità abilitata, assicurati di aver soddisfatto i prerequisiti seguenti:
+  [Configurazione della propagazione attendibile delle identità per Studio](trustedidentitypropagation-setup.md) 
+ Segui le istruzioni in [Getting started with Amazon S3 Access Grants](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-get-started.html) per configurare Amazon S3 Access Grants per il tuo bucket. Per ulteriori informazioni, consulta [Scaling data access with Amazon S3 Access Grants](https://aws.amazon.com/blogs/storage/scaling-data-access-with-amazon-s3-access-grants/).
**Nota**  
Amazon S3 standard APIs non funziona automaticamente con Amazon S3 Access Grants. È necessario utilizzare in modo esplicito Amazon S3 Access Grants. APIs Per ulteriori informazioni, consulta [Managing access with Amazon S3 Access Grants](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants.html).

**Topics**
+ [Prerequisiti](#s3-access-grants-prerequisites)
+ [Connetti Amazon S3 Access Grants ai notebook Studio JupyterLab](s3-access-grants-setup.md)
+ [Connetti JupyterLab i notebook Studio ad Amazon S3 Access Grants con lavori di formazione ed elaborazione](trustedidentitypropagation-s3-access-grants-jobs.md)

# Connetti Amazon S3 Access Grants ai notebook Studio JupyterLab
<a name="s3-access-grants-setup"></a>

Utilizza le seguenti informazioni per concedere Amazon S3 Access Grants nei notebook Studio. JupyterLab 

Dopo aver configurato Amazon S3 Access Grants, [aggiungi le autorizzazioni seguenti](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) al [ruolo di esecuzione](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-get-execution-role) del dominio o dell’utente.
+ `us-east-1` è la tua Regione AWS.
+ `111122223333` è il tuo ID Account AWS .
+ `S3-ACCESS-GRANT-ROLE` è il tuo ruolo Amazon S3 Access Grants.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowDataAccessAPI",
            "Effect": "Allow",
            "Action": [
                "s3:GetDataAccess"
            ],
            "Resource": [
                "arn:aws:s3:us-east-1:111122223333:access-grants/default"
            ]
        },
        {
            "Sid": "RequiredForTIP",
            "Effect": "Allow",
            "Action": "sts:SetContext",
            "Resource": "arn:aws:iam::111122223333:role/S3-ACCESS-GRANT-ROLE"
        }
    ]
}
```

------

Verifica che la policy di attendibilità del tuo ruolo Amazon S3 Access Grants consenta le azioni `sts:SetContext` e `sts:AssumeRole`. Di seguito è riportato un esempio di policy da utilizzare quando [aggiorni la policy di attendibilità del ruolo](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-trust-policy.html).

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "access-grants.s3.amazonaws.com"
                ]
            },
            "Action": [
                "sts:AssumeRole",
                "sts:SetContext"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333",
                    "aws:SourceArn": "arn:aws:s3:us-east-1:111122223333:access-grants/default"
                }
            }
        }
    ]
}
```

------

## Utilizzo di Amazon S3 Access Grants per chiamare Amazon S3
<a name="s3-access-grants-python-example"></a>

Di seguito è riportato un esempio di script Python che mostra come utilizzare Amazon S3 Access Grants per chiamare Amazon S3. Ciò presuppone che tu abbia già configurato correttamente la propagazione delle identità affidabili con l'intelligenza artificiale. SageMaker 

```
import boto3
from botocore.config import Config

def get_access_grant_credentials(account_id: str, target: str, 
                                 permission: str = 'READ'):
    s3control = boto3.client('s3control')
    response = s3control.get_data_access(
        AccountId=account_id,
        Target=target,
        Permission=permission
    )
    return response['Credentials']

def create_s3_client_from_credentials(credentials) -> boto3.client:
    return boto3.client(
        's3',
        aws_access_key_id=credentials['AccessKeyId'],
        aws_secret_access_key=credentials['SecretAccessKey'],
        aws_session_token=credentials['SessionToken']
    )

# Create client
credentials = get_access_grant_credentials('111122223333',
                                        "s3://tip-enabled-bucket/tip-enabled-path/")
s3 = create_s3_client_from_credentials(credentials)

s3.list_objects(Bucket="tip-enabled-bucket", Prefix="tip-enabled-path/")
```

Se utilizzi un percorso di un bucket Amazon S3 in cui non è abilitato Amazon S3 Access Grants, la chiamata non riuscirà.

Per ulteriori informazioni su altri linguaggi di programmazione, consulta [Managing access with Amazon S3 Access Grants](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants.html).

# Connetti JupyterLab i notebook Studio ad Amazon S3 Access Grants con lavori di formazione ed elaborazione
<a name="trustedidentitypropagation-s3-access-grants-jobs"></a>

Utilizza le seguenti informazioni per concedere ad Amazon S3 Access Grants l'accesso ai dati nei job di Amazon SageMaker Training and Processing.

Quando un utente con la propagazione dell'identità affidabile abilitata avvia un processo di SageMaker formazione o elaborazione che deve accedere ai dati di Amazon S3:
+ SageMaker L'intelligenza artificiale chiama Amazon S3 Access Grants per ottenere credenziali temporanee basate sull'identità dell'utente
+ Se la chiamata riesce, l’utente accede ai dati di Amazon S3 con le credenziali temporanee.
+ In caso di esito negativo, l' SageMaker IA torna a utilizzare le credenziali del ruolo IAM

**Nota**  
Per impostare la concessione di tutte le autorizzazioni tramite Amazon S3 Access Grants, dovrai rimuovere le relative autorizzazioni di accesso Amazon S3 dal tuo ruolo di esecuzione e collegarle all’autorizzazione [Amazon S3 Access Grant](https://docs.aws.amazon.com/singlesignon/latest/userguide/tip-tutorial-s3.html#tip-tutorial-s3-create-grant) corrispondente.

**Topics**
+ [Considerazioni](#s3-access-grants-jobs-considerations)
+ [Configurazione di Amazon S3 Access Grants con job di addestramento e processi di elaborazione](#s3-access-grants-jobs-setup)

## Considerazioni
<a name="s3-access-grants-jobs-considerations"></a>

Amazon S3 Access Grants non può essere utilizzato con la [modalità Pipe](https://docs.aws.amazon.com/sagemaker/latest/dg/augmented-manifest-stream.html) sia per la SageMaker formazione che per l'elaborazione per l'input di Amazon S3.

Quando la propagazione delle identità affidabili è abilitata, non è possibile avviare un SageMaker Training Job con la seguente funzionalità
+ Debug remoto
+ Debugger
+ Profiler

Quando la propagazione attendibile delle identità è abilitata, non è possibile avviare un processo di elaborazione con la funzionalità seguente:
+ DatasetDefinition

## Configurazione di Amazon S3 Access Grants con job di addestramento e processi di elaborazione
<a name="s3-access-grants-jobs-setup"></a>

Dopo aver configurato Amazon S3 Access Grants, [aggiungi le autorizzazioni seguenti](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) al [ruolo di esecuzione](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-get-execution-role) del dominio o dell’utente.
+ `us-east-1` è la tua Regione AWS.
+ `111122223333` è il tuo ID Account AWS .
+ `S3-ACCESS-GRANT-ROLE` è il tuo ruolo Amazon S3 Access Grants.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowDataAccessAPI",
            "Effect": "Allow",
            "Action": [
                "s3:GetDataAccess",
                "s3:GetAccessGrantsInstanceForPrefix"
            ],
            "Resource": [
                "arn:aws:s3:us-east-1:111122223333:access-grants/default"
            ]
        },
        {
            "Sid": "RequiredForIdentificationPropagation",
            "Effect": "Allow",
            "Action": "sts:SetContext",
            "Resource": "arn:aws:iam::111122223333:role/S3-ACCESS-GRANT-ROLE"
        }
    ]
}
```

------

# Connetti i JupyterLab notebook Connect Studio ad Amazon EMR con la propagazione delle identità affidabile abilitata
<a name="trustedidentitypropagation-emr-ec2"></a>

La connessione dei JupyterLab notebook Amazon SageMaker Studio ai cluster Amazon EMR consente di sfruttare la potenza di calcolo distribuita di Amazon EMR per carichi di lavoro di elaborazione e analisi dei dati su larga scala. Con la propagazione attendibile delle identità abilitata, il contesto dell’identità viene propagato ad Amazon EMR, consentendo un controllo granulare degli accessi e audit trail completi. La pagina seguente fornisce istruzioni su come collegare il notebook Studio ai cluster Amazon EMR. Una volta configurata, puoi utilizzare l’opzione `Connect to Cluster` sul notebook Studio.

Per connettere Studio ad Amazon EMR con la propagazione attendibile delle identità abilitata, assicurati di aver completato le configurazioni seguenti:
+  [Configurazione della propagazione attendibile delle identità per Studio](trustedidentitypropagation-setup.md) 
+  [Guida introduttiva all' AWS IAM Identity Center integrazione per Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-idc-start.html) 
+  [Abilitazione delle comunicazioni tra i cluster Studio e Amazon EMR](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-emr-cluster.html) 

 **Connessione al cluster Amazon EMR** 

Per un elenco completo delle opzioni su come connettere il JupyterLab notebook ad Amazon EMR, consulta [Connessione a un cluster Amazon EMR.](https://docs.aws.amazon.com/sagemaker/latest/dg/connect-emr-clusters.html)

# Connect i JupyterLab notebook Studio a EMR Serverless con la propagazione affidabile delle identità abilitata
<a name="trustedidentitypropagation-emr-serverless"></a>

Amazon EMR serverless offre un’opzione serverless per eseguire le applicazioni Apache Spark e Apache Hive senza dover gestire i cluster. Se integrato con la propagazione attendibile delle identità, EMR Serverless ridimensiona automaticamente le risorse di calcolo mantenendo il contesto dell’identità per gli audit e il controllo degli accessi. Questo approccio elimina il sovraccarico operativo della gestione dei cluster, preservando al contempo i vantaggi in termini di sicurezza offerti dal controllo degli accessi basato sull’identità. La sezione seguente fornisce informazioni su come connettere il tuo Studio con propagazione attendibile delle identità a EMR Serverless.

Per connettere Studio ad Amazon EMR serverless con la propagazione attendibile delle identità abilitata, assicurati di aver completato le configurazioni seguenti:
+  [Configurazione della propagazione attendibile delle identità per Studio](trustedidentitypropagation-setup.md) 
+  [Propagazione attendibile delle identità con EMR Serverless](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-service-trusted-prop.html) 
+  [Abilitazione delle comunicazioni tra Studio ed EMR Serverless](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-emr-serverless.html) 

 **Connessione all’applicazione EMR Serverless** 

Per un elenco completo delle opzioni su come connettere il JupyterLab notebook a EMR Serverless, vedere [Connessione a un'applicazione EMR](https://docs.aws.amazon.com/sagemaker/latest/dg/connect-emr-serverless-application.html) Serverless.

# Connetti i JupyterLab notebook di Studio all'API Redshift Data con la propagazione affidabile delle identità abilitata
<a name="trustedidentitypropagation-redshift-data-apis"></a>

L’API di dati di Amazon Redshift consente di interagire con i cluster Amazon Redshift in modo programmatico senza gestire connessioni persistenti. In combinazione con la propagazione attendibile delle identità, l’API di dati di Redshift offre un accesso sicuro e basato sull’identità al data warehouse, consentendoti di eseguire query SQL e recuperare i risultati, garantendo al tempo stesso audit trail completi sulle attività degli utenti. Questa integrazione è particolarmente utile per i flussi di lavoro di data science che richiedono l’accesso ai dati strutturati archiviati in Redshift. La pagina seguente include informazioni e istruzioni su come collegare la propagazione delle identità affidabili con Amazon SageMaker Studio all'API Redshift Data.

Per connettere Studio a l’API di dati di Redshift con la propagazione attendibile delle identità abilitata, assicurati di aver completato le configurazioni seguenti:
+  [Configurazione della propagazione attendibile delle identità per Studio](trustedidentitypropagation-setup.md) 
+  [Utilizzo dell’API di dati di Redshift con propagazione attendibile delle identità](https://docs.aws.amazon.com/redshift/latest/mgmt/data-api-trusted-identity-propagation.html) 
  + Verifica che il tuo ruolo di esecuzione disponga delle autorizzazioni necessarie per l’API di dati di Redshift. Per ulteriori informazioni, consulta [Authorizing access](https://docs.aws.amazon.com/redshift/latest/mgmt/data-api-access.html).
+  [Semplifica la gestione degli accessi con Amazon Redshift e AWS Lake Formation per gli utenti di un provider di identità esterno](https://aws.amazon.com/blogs/big-data/simplify-access-management-with-amazon-redshift-and-aws-lake-formation-for-users-in-an-external-identity-provider/) 

# Connetti JupyterLab i notebook Studio a Lake Formation e Athena con la propagazione affidabile delle identità abilitata
<a name="trustedidentitypropagation-lake-formation-athena"></a>

AWS Lake Formation e Amazon Athena collaborano per fornire una soluzione data lake completa con controllo granulare degli accessi e funzionalità di query serverless. Lake Formation centralizza la gestione delle autorizzazioni per il data lake, mentre Athena fornisce servizi di query interattivi. Se integrata con la propagazione attendibile delle identità, questa funzionalità consente ai Data Scientist di accedere solo ai dati che sono autorizzati a vedere, con tutte le query e l’accesso ai dati registrati automaticamente per scopi di conformità e audit. La pagina seguente fornisce informazioni e istruzioni su come collegare la propagazione delle identità affidabili con Amazon SageMaker Studio a Lake Formation e Athena.

Per connettere Studio a Lake Formation e Athena con la propagazione attendibile delle identità abilitata, assicurati di aver completato le configurazioni seguenti:
+  [Configurazione della propagazione attendibile delle identità per Studio](trustedidentitypropagation-setup.md) 
+  [Creazione di un ruolo in Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/prerequisites-identity-center.html) 
+  [Connessione di Lake Formation con il Centro identità IAM](https://docs.aws.amazon.com/lake-formation/latest/dg/connect-lf-identity-center.html) 
+ Creazione di risorse per Lake Formation:
  +  [Database](https://docs.aws.amazon.com/lake-formation/latest/dg/creating-database.html) 
  +  [Tabelle](https://docs.aws.amazon.com/lake-formation/latest/dg/creating-tables.html) 
+  [Creazione di un gruppo di lavoro Athena](https://docs.aws.amazon.com/athena/latest/ug/creating-workgroups.html) 
  + Scegli **AthenaSQL** per il motore
  + Scegli **Centro identità IAM** per il metodo di autenticazione
  + Creazione di un nuovo ruolo di servizio
    + Assicurati che gli utenti del Centro identità IAM abbiano accesso alla posizione dei risultati delle query con Amazon S3 Access Grants
+  [Concessione delle autorizzazioni al database tramite il metodo delle risorse denominate](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-database-permissions.html) 

# Esecuzione di attività comuni nell’interfaccia utente
<a name="studio-updated-common"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata Amazon SageMaker Studio Classic. La sezione seguente è specifica per l’utilizzo dell’esperienza Studio aggiornata. Per informazioni sull’utilizzo dell’applicazione Studio Classic, consulta [Amazon SageMaker Studio Classic](studio.md).

 Le seguenti sezioni descrivono come eseguire attività comuni nell'interfaccia utente di Amazon SageMaker Studio. Per una panoramica dell'interfaccia utente di Studio, consulta [Panoramica dell'interfaccia utente di Amazon SageMaker Studio](studio-updated-ui.md). 

 **Impostazione delle preferenze relative ai cookie** 

1. Avvia Studio seguendo le fasi descritte in [Avvia Amazon SageMaker Studio](studio-updated-launch.md). 

1.  Nella parte inferiore dell’interfaccia utente di Studio, scegli **Preferenze relative ai cookie**. 

1.  Seleziona la casella di controllo per ogni tipo di cookie che desideri che Amazon SageMaker AI utilizzi. 

1.  Scegli **Save preferences** (Salva preferenze). 

 **Gestione delle notifiche** 

Le notifiche forniscono informazioni su modifiche importanti a Studio, aggiornamenti alle applicazioni e problemi da risolvere. 

1. Avvia Studio seguendo le fasi descritte in [Avvia Amazon SageMaker Studio](studio-updated-launch.md). 

1.  Nella barra di navigazione in alto, scegli l’icona **Notifiche** (![\[Logo for Notifications, a cloud service with a stylized bell icon.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/monarch/notification.png)). 

1.  Dall’elenco delle notifiche, seleziona la notifica per la quale desideri ottenere informazioni. 

 **Inserimento di un feedback** 

 Ci interessa il tuo feedback. Ti invitiamo a fornire feedback. 

 Nella barra di navigazione superiore di Studio, scegli **Fornisci feedback**. 

 **Disconnessione** 

 Uscire dall’interfaccia utente di Studio non è come chiudere la finestra del browser. La disconnessione cancella i dati della sessione dal browser ed elimina le modifiche non salvate. 

Lo stesso comportamento si applica anche al timeout della sessione di Studio, che si verifica dopo cinque minuti. 

1. Avvia Studio seguendo le fasi descritte in [Avvia Amazon SageMaker Studio](studio-updated-launch.md). 

1. Scegli l’icona **Opzioni utente** (![\[User icon with a circular avatar placeholder and a downward-pointing arrow.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/monarch/user-settings.png)). 

1.  Scegli **Esci**. 

1. Nella finestra pop-up, scegli **Esci**. 

# NVMe negozi con Amazon SageMaker Studio
<a name="studio-updated-nvme"></a>

Le applicazioni Amazon SageMaker Studio e i notebook associati vengono eseguiti su istanze Amazon Elastic Compute Cloud (Amazon EC2). Alcuni tipi di istanze Amazon EC2, come la famiglia di istanze, offrono archivi di `ml.m5d` istanze SSD (Solid State DriveNVMe) con memoria non volatile Express (). NVMe gli instance store sono archivi di dischi temporanei locali collegati fisicamente a un'istanza per uno storage temporaneo rapido. Le applicazioni Studio supportano gli store di NVMe istanze per i tipi di istanze supportati. Per ulteriori informazioni sui tipi di istanze e sui volumi di NVMe archiviazione associati, consulta i [dettagli sul tipo di istanza Amazon Elastic Compute Cloud](https://aws.amazon.com/ec2/instance-types/). Questo argomento fornisce informazioni sull'accesso e sull'utilizzo degli NVMe instance store, nonché considerazioni sull'utilizzo degli NVMe instance store con Studio.

## Considerazioni
<a name="studio-updated-nvme-considerations"></a>

Le seguenti considerazioni si applicano all'utilizzo degli NVMe instance store con Studio.
+ Un NVMe instance store è un archivio temporaneo. I dati archiviati nell' NVMe archivio vengono eliminati quando l'istanza viene terminata, interrotta o ibernata. Quando si utilizzano gli NVMe store con le applicazioni Studio, i dati sull' NVMe instance store vengono persi ogni volta che l'applicazione viene eliminata, riavviata o applicata una patch. Ti consigliamo di eseguire il backup dei dati essenziali su soluzioni di archiviazione persistenti, come Amazon Elastic Block Store, Amazon Elastic File System o Amazon Simple Storage Service. 
+ Studio applica periodicamente patch alle istanze per installare nuovi aggiornamenti di sicurezza. Quando viene applicata una patch, l’istanza viene riavviata. Questo riavvio comporta l'eliminazione dei dati archiviati nell' NVMe instance store. Ti consigliamo di eseguire spesso il backup dei dati necessari dall' NVMe Instance Store su soluzioni di storage persistenti, come Amazon Elastic Block Store, Amazon Elastic File System o Amazon Simple Storage Service. 
+ Le seguenti applicazioni Studio supportano l'utilizzo NVMe dello storage:
  + JupyterLab
  + Editor di codice, basato su Code-OSS, Visual Studio Code - Open Source
  + KernelGateway

## Accedi agli archivi di NVMe istanze
<a name="studio-updated-nvme-access"></a>

Quando si seleziona un tipo di istanza con archivi di NVMe istanze collegati per ospitare un'applicazione Studio, la directory dell' NVMe instance store viene montata nel contenitore dell'applicazione nella seguente posizione:

```
/mnt/sagemaker-nvme
```

Se a un'istanza è collegato più di un NVMe instance store, Studio crea un volume logico con striping che si estende su tutti i dischi locali collegati. A questo punto, Studio monta il volume logico con striping nella directory `/mnt/sagemaker-nvme`. Di conseguenza, la dimensione di archiviazione della directory è la somma di tutte le dimensioni del volume dell' NVMe Instance Store collegato all'istanza. 

Se la `/mnt/sagemaker-nvme` directory non esiste, verifica che al tipo di istanza che ospita l'applicazione sia collegato un volume di NVMe instance store.

# Supporto in modalità locale in Amazon SageMaker Studio
<a name="studio-updated-local"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Le applicazioni Amazon SageMaker Studio supportano l'uso della modalità locale per creare stimatori, processori e pipeline, quindi distribuirli in un ambiente locale. Con la modalità locale, puoi testare gli script di machine learning prima di eseguirli in ambienti di hosting o formazione gestiti da Amazon SageMaker AI. Studio supporta la modalità locale nelle applicazioni seguenti:
+ Amazon SageMaker Studio Classic
+ JupyterLab
+ Editor di codice, basato su Code-OSS, Visual Studio Code - Open Source

La modalità locale nelle applicazioni Studio viene richiamata utilizzando SageMaker Python SDK. Nelle applicazioni Studio, la modalità locale funziona in modo simile a come funziona nelle istanze di SageMaker notebook Amazon, con alcune differenze. Se è abilitata la [Configurazione di Docker rootless](studio-updated-local-get-started.md#studio-updated-local-rootless), puoi anche accedere a registri Docker aggiuntivi tramite la configurazione VPC, inclusi repository on-premises e registri pubblici. [Per ulteriori informazioni sull'uso della modalità locale con SageMaker Python SDK, consulta Local Mode.](https://sagemaker.readthedocs.io/en/stable/overview.html#local-mode)

**Nota**  
Le applicazioni Studio non supportano processi multi-container in modalità locale. I processi in modalità locale sono limitati a una singola istanza per i job di addestramento, inferenza ed elaborazione. Quando crei un processo in modalità locale, il numero delle istanze deve essere configurato su `1`. 

## Supporto di Docker
<a name="studio-updated-local-docker"></a>

Nell’ambito del supporto della modalità locale, le applicazioni Studio supportano funzionalità limitate di accesso a Docker. Grazie a questo supporto, gli utenti possono interagire con l’API Docker dai notebook Jupyter o dal terminale delle immagini dell’applicazione. I clienti possono interagire con Docker utilizzando uno dei comandi seguenti:
+ [CLI Docker](https://docs.docker.com/engine/reference/run/)
+ [CLI Docker Compose](https://docs.docker.com/compose/reference/)
+ Client SDK Docker specifici per lingua

Studio supporta anche funzionalità limitate di accesso a Docker con le seguenti restrizioni:
+ L’utilizzo delle reti Docker non è supportato.
+ L’utilizzo [del volume](https://docs.docker.com/storage/volumes/) Docker non è supportato durante l’esecuzione del container. Durante l’orchestrazione del container sono consentiti solo gli input per il montaggio vincolato del volume. Gli input per il montaggio vincolato del volume devono essere posizionati sul volume Amazon Elastic File System (Amazon EFS) per Studio Classic. Per le applicazioni JupyterLab e Code Editor, deve trovarsi nel volume Amazon Elastic Block Store (Amazon EBS).
+ Le operazioni di ispezione dei container sono consentite.
+ La mappatura tra la porta del container e l’host non è consentita. Tuttavia, puoi specificare una porta per l’hosting. L’endpoint è quindi accessibile da Studio tramite l’URL seguente:

  ```
  http://localhost:port
  ```

### Operazioni Docker supportate
<a name="studio-updated-local-docker-supported"></a>

La tabella seguente mostra tutti gli endpoint API Docker supportati in Studio, incluse le eventuali limitazioni al supporto. Se nella tabella manca un endpoint API, Studio non lo supporta.


|  Documentazione API  |  Limitazioni  | 
| --- | --- | 
|  [SystemAuth](https://docs.docker.com/engine/api/v1.43/#tag/System/operation/SystemAuth)  |   | 
|  [SystemEvents](https://docs.docker.com/engine/api/v1.43/#tag/System/operation/SystemEvents)  |   | 
|  [SystemVersion](https://docs.docker.com/engine/api/v1.43/#tag/System/operation/SystemVersion)  |   | 
|  [SystemPing](https://docs.docker.com/engine/api/v1.43/#tag/System/operation/SystemPing)  |   | 
|  [SystemPingHead](https://docs.docker.com/engine/api/v1.43/#tag/System/operation/SystemPingHead)  |   | 
|  [ContainerCreate](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerCreate)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/studio-updated-local.html)  | 
|  [ContainerStart](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerStart)  |   | 
|  [ContainerStop](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerStop)  |   | 
|  [ContainerKill](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerKill)  |   | 
|  [ContainerDelete](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerDelete)  |   | 
|  [ContainerList](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerList)  |   | 
|  [ContainerLogs](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerLogs)  |   | 
|  [ContainerInspect](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerInspect)  |   | 
|  [ContainerWait](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerWait)  |   | 
|  [ContainerAttach](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerAttach)  |   | 
|  [ContainerPrune](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerPrune)  |   | 
|  [ContainerResize](https://docs.docker.com/engine/api/v1.43/#tag/Container/operation/ContainerResize)  |   | 
|  [ImageCreate](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageCreate)  |  Il supporto della modalità VPC-only è limitato alle immagini Amazon ECR negli account consentiti. Se è abilitata la [Configurazione di Docker rootless](studio-updated-local-get-started.md#studio-updated-local-rootless), puoi anche accedere a registri Docker aggiuntivi tramite la configurazione VPC, inclusi repository on-premises e registri pubblici. | 
|  [ImagePrune](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImagePrune)  |   | 
|  [ImagePush](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImagePush)  |  Il supporto della modalità VPC-only è limitato alle immagini Amazon ECR negli account consentiti. Se è abilitata la [Configurazione di Docker rootless](studio-updated-local-get-started.md#studio-updated-local-rootless), puoi anche accedere a registri Docker aggiuntivi tramite la configurazione VPC, inclusi repository on-premises e registri pubblici. | 
|  [ImageList](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageList)  |   | 
|  [ImageInspect](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageInspect)  |   | 
|  [ImageGet](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageGet)  |   | 
|  [ImageDelete](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageDelete)  |   | 
|  [ImageBuild](https://docs.docker.com/engine/api/v1.43/#tag/Image/operation/ImageBuild)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/studio-updated-local.html)  | 

**Topics**
+ [Supporto di Docker](#studio-updated-local-docker)
+ [Nozioni di base sulla modalità locale](studio-updated-local-get-started.md)

# Nozioni di base sulla modalità locale
<a name="studio-updated-local-get-started"></a>

Le seguenti sezioni descrivono i passaggi necessari per iniziare a utilizzare la modalità locale in Amazon SageMaker Studio, tra cui:
+ Completamento dei prerequisiti
+ Impostazione di `EnableDockerAccess`
+ Installazione di Docker

## Prerequisiti
<a name="studio-updated-local-prereq"></a>

Completa i prerequisiti seguenti per utilizzare la modalità locale nelle applicazioni Studio:
+ Per estrarre immagini da un repository Amazon Elastic Container Registry, l’account che ospita l’immagine Amazon ECR deve fornire l’autorizzazione di accesso per il ruolo di esecuzione dell’utente. Anche il ruolo di esecuzione del dominio deve consentire l’accesso ad Amazon ECR.
+ Verifica di disporre della versione più recente di Studio Python SDK utilizzando il comando seguente: 

  ```
  pip install -U sagemaker
  ```
+ Per utilizzare la modalità locale e le funzionalità Docker, imposta il parametro seguente `DockerSettings` del dominio dalla AWS Command Line Interface (AWS CLI): 

  ```
  EnableDockerAccess : ENABLED
  ```
+ Con `EnableDockerAccess`, puoi anche controllare se gli utenti del dominio possono utilizzare la modalità locale. Per impostazione predefinita, la modalità locale e le funzionalità Docker non sono consentite nelle applicazioni Studio. Per ulteriori informazioni, consulta [Impostazione di `EnableDockerAccess`](#studio-updated-local-enable).
+ Installa la CLI Docker nell’applicazione Studio seguendo la procedura in [Installazione di Docker](#studio-updated-local-docker-installation).
+ Per la [Configurazione di Docker rootless](#studio-updated-local-rootless), verifica che il VPC abbia gli endpoint appropriati e il routing configurato per i registri Docker desiderati.

## Impostazione di `EnableDockerAccess`
<a name="studio-updated-local-enable"></a>

Le sezioni seguenti mostrano come impostare `EnableDockerAccess` quando il dominio dispone di un accesso pubblico a Internet o è in modalità `VPC-only`.

**Nota**  
Le modifiche a `EnableDockerAccess` si applicano solo alle applicazioni create dopo l’aggiornamento del dominio. È necessario creare una nuova applicazione dopo l’aggiornamento del dominio.

**Accesso pubblico a Internet**

I comandi di esempio seguenti mostrano come impostare `EnableDockerAccess` quando crei un nuovo dominio o aggiorni un dominio esistente con accesso pubblico a Internet:

```
# create new domain
aws --region region \
    sagemaker create-domain --domain-name domain-name \
    --vpc-id vpc-id \
    --subnet-ids subnet-ids \
    --auth-mode IAM \
    --default-user-settings "ExecutionRole=execution-role" \
    --domain-settings '{"DockerSettings": {"EnableDockerAccess": "ENABLED"}}' \
    --query DomainArn \
    --output text

# update domain
aws --region region \
    sagemaker update-domain --domain-id domain-id \
    --domain-settings-for-update '{"DockerSettings": {"EnableDockerAccess": "ENABLED"}}'
```

**Modalità `VPC-only`**

Quando utilizzi un dominio in modalità `VPC-only`, le richieste push e pull delle immagini Docker non vengono instradate tramite il VPC configurato dal cliente, ma tramite il VPC del servizio. Grazie a questa funzionalità, gli amministratori possono configurare un elenco di Account AWS attendibili a cui gli utenti possono inviare richieste di operazioni pull e push Docker in Amazon ECR.

Se viene effettuata una richiesta push o pull di un'Dockerimmagine a un utente Account AWS che non è nell'elenco delle immagini attendibili Account AWS, la richiesta ha esito negativo. DockerLe operazioni pull and push al di fuori di Amazon Elastic Container Registry (Amazon ECR) non sono supportate in modalità. `VPC-only`

Le seguenti Account AWS sono considerate affidabili per impostazione predefinita:
+ L'account che ospita il dominio SageMaker AI.
+ SageMaker Account AI che ospitano le seguenti SageMaker immagini:
  + Immagini del framework DLC
  + SklearnSpark, XGBoost elaborazione delle immagini

Per configurare un elenco di altri affidabili Account AWS, specifica il `VpcOnlyTrustedAccounts` valore come segue:

```
aws --region region \
    sagemaker update-domain --domain-id domain-id \
    --domain-settings-for-update '{"DockerSettings": {"EnableDockerAccess": "ENABLED", "VpcOnlyTrustedAccounts": ["account-list"]}}'
```

**Nota**  
Quando [Configurazione di Docker rootless](#studio-updated-local-rootless) è abilitato, `VpcOnlyTrustedAccounts` viene ignorato e il traffico Docker viene instradato attraverso la configurazione VPC, consentendo l’accesso a qualsiasi registro raggiungibile dal VPC.

## Configurazione di Docker rootless
<a name="studio-updated-local-rootless"></a>

Quando [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DockerSettings.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DockerSettings.html) è abilitato, Studio utilizza un [daemon Docker rootless](https://docs.docker.com/engine/security/rootless/) che instrada il traffico attraverso il VPC. Ciò offre una maggiore sicurezza e consente l’accesso a ulteriori registri Docker. Le differenze principali con `RootlessDocker` sono:
+ Le porte dei container sono accessibili utilizzando l’IP del gateway Docker (`172.17.0.1`) anziché localhost.
+ La configurazione del VPC determina quali registri sono accessibili per le operazioni Docker. `VpcOnlyTrustedAccounts` viene ignorato e il traffico Docker viene instradato attraverso la configurazione del VPC.

Per utilizzare Docker rootless, devi impostare sia `EnableDockerAccess` che `RootlessDocker` su `ENABLED` per `DockerSettings`. Ad esempio, negli esempi [Impostazione di `EnableDockerAccess`](#studio-updated-local-enable) precedenti, puoi modificare le impostazioni del dominio per includere:

```
'{"DockerSettings": {"EnableDockerAccess": "ENABLED", "RootlessDocker": "ENABLED"}}'
```

## Installazione di Docker
<a name="studio-updated-local-docker-installation"></a>

Per utilizzare Docker, devi installare manualmente Docker dal terminale dell’applicazione Studio. La procedura per l’installazione di Docker può variare a seconda che il dominio abbia accesso a Internet o meno.

### Accesso a Internet
<a name="studio-updated-local-docker-installation-internet"></a>

Se il dominio viene creato con accesso pubblico a Internet o in modalità `VPC-only` con accesso limitato a Internet, utilizza la procedura seguente per l’installazione di Docker.

1. (Facoltativo) Se il dominio è stato creato in modalità `VPC-only` con accesso limitato a Internet, crea un gateway NAT pubblico con accesso al sito web Docker. Per istruzioni, consulta [NAT gateways](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html).

1. Accedi al terminale dell’applicazione Studio in cui desideri installare Docker.

1. Per restituire il sistema operativo dell’applicazione, utilizza il comando seguente dal terminale:

   ```
   cat /etc/os-release
   ```

1. Installa Docker seguendo le istruzioni per il sistema operativo dell'applicazione nel [repository Amazon SageMaker AI Local Mode Examples](https://github.com/aws-samples/amazon-sagemaker-local-mode/tree/main/sagemaker_studio_docker_cli_install).

   Ad esempio, esegui l'installazione Docker Ubuntu seguendo lo script in [https://github.com/aws-samples/amazon-sagemaker-local-mode/blob/main/sagemaker\$1studio\$1docker\$1cli\$1install/sagemaker- ubuntu-focal-docker-cli -install.sh](https://github.com/aws-samples/amazon-sagemaker-local-mode/blob/main/sagemaker_studio_docker_cli_install/sagemaker-ubuntu-focal-docker-cli-install.sh) con le seguenti considerazioni:
   + Se i comandi concatenati non riescono, esegui un comando alla volta.
   + Studio supporta solo Docker versione `20.10.X.` e Docker Engine API versione `1.41`.
   + I seguenti pacchetti non sono necessari per utilizzare la CLI Docker in Studio e la loro installazione può essere ignorata:
     + `containerd.io`
     + `docker-ce`
     + `docker-buildx-plugin`
**Nota**  
Non è necessario avviare il servizio Docker nelle applicazioni. L’istanza che ospita l’applicazione Studio esegue il servizio Docker per impostazione predefinita. Tutte le chiamate API Docker vengono instradate automaticamente tramite il servizio Docker.

1. Utilizza il socket Docker esposto per le interazioni Docker all’interno delle applicazioni Studio. Per impostazione predefinita, è esposto il socket seguente:

   ```
   unix:///docker/proxy.sock
   ```

   La variabile di ambiente dell’applicazione Studio seguente per il valore `USER` predefinito utilizza questo socket esposto:

   ```
   DOCKER_HOST
   ```

### Nessun accesso a Internet
<a name="studio-updated-local-docker-installation-no-internet"></a>

Se il dominio viene creato in modalità `VPC-only` senza accesso a Internet, utilizza la procedura seguente per l’installazione di Docker.

1. Accedi al terminale dell’applicazione Studio in cui desideri installare Docker.

1. Utilizza il comando seguente dal terminale per restituire il sistema operativo dell’applicazione:

   ```
   cat /etc/os-release
   ```

1. Scarica i file `.deb` Docker richiesti nel computer locale. Per istruzioni su come scaricare i file richiesti per il sistema operativo dell’applicazione Studio, consulta [Install Docker Engine](https://docs.docker.com/engine/install/).

   Ad esempio, installa Docker da un pacchetto su Ubuntu seguendo le fasi da 1 a 4 in [Install from a package](https://docs.docker.com/engine/install/ubuntu/#install-from-a-package) con le seguenti considerazioni:
   + Installa Docker da un pacchetto. Non sono previsti altri metodi di installazione di Docker.
   + Installa i pacchetti più recenti corrispondenti a Docker versione `20.10.X`.
   + I pacchetti seguenti non sono necessari per utilizzare la CLI Docker in Studio. Non è necessario installare quanto segue:
     + `containerd.io`
     + `docker-ce`
     + `docker-buildx-plugin`
**Nota**  
Non è necessario avviare il servizio Docker nelle applicazioni. L’istanza che ospita l’applicazione Studio esegue il servizio Docker per impostazione predefinita. Tutte le chiamate API Docker vengono instradate automaticamente tramite il servizio Docker.

1. Carica i file `.deb` nel file system Amazon EFS o nel file system Amazon EBS dell’applicazione.

1. Installa manualmente i pacchetti `docker-ce-cli` e `docker-compose-plugin` `.deb` dal terminale dell’applicazione Studio. Per ulteriori informazioni e istruzioni, consulta la fase 5 in [Install from a package](https://docs.docker.com/engine/install/ubuntu/#install-from-a-package) sul sito web della documentazione Docker.

1. Utilizza il socket Docker esposto per le interazioni Docker all’interno delle applicazioni Studio. Per impostazione predefinita, è esposto il socket seguente:

   ```
   unix:///docker/proxy.sock
   ```

   La variabile di ambiente dell’applicazione Studio seguente per il valore `USER` predefinito utilizza questo socket esposto:

   ```
   DOCKER_HOST
   ```

# Visualizzazione di istanze, applicazioni e spazi in esecuzione in Studio
<a name="studio-updated-running"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata Amazon SageMaker Studio Classic. La sezione seguente è specifica per l’utilizzo dell’esperienza Studio aggiornata. Per informazioni sull’utilizzo dell’applicazione Studio Classic, consulta [Amazon SageMaker Studio Classic](studio.md).

Gli argomenti seguenti includono informazioni e istruzioni su come visualizzare le istanze, le applicazioni e gli spazi in esecuzione in Studio. Per ulteriori informazioni sugli spazi Studio, consulta [Spazi Amazon SageMaker Studio](studio-updated-spaces.md).

## Visualizzazione delle istanze e delle applicazioni in esecuzione in Studio
<a name="studio-updated-running-view-app"></a>

La pagina **Istanze in esecuzione** fornisce informazioni su tutte le istanze di applicazioni in esecuzione create in Amazon SageMaker Studio dall'utente o condivise con l'utente. 

Puoi visualizzare e arrestare le istanze in esecuzione per tutte le applicazioni e gli spazi. Se un’istanza viene arrestata, non viene visualizzata in questa pagina. Le istanze interrotte possono essere visualizzate nella pagina di destinazione dei rispettivi tipi di applicazione. 

Puoi visualizzare un elenco di applicazioni in esecuzione e i relativi dettagli in Studio.

**Per visualizzare le istanze in esecuzione**

1. Avvia Studio seguendo le fasi descritte in [Avvia Amazon SageMaker Studio](studio-updated-launch.md). 

1. Nel riquadro di navigazione a sinistra, scegli **Istanze in esecuzione**. 

1. Nella pagina **Istanze in esecuzione**, puoi visualizzare un elenco di applicazioni in esecuzione e i relativi dettagli. 

   Per visualizzare le istanze non in esecuzione, dal riquadro di navigazione a sinistra scegli l’applicazione pertinente in **Applicazioni**. Le applicazioni non in esecuzione avranno lo stato **Arrestato** nella colonna **Stato**.

## Visualizzazione degli spazi Studio
<a name="studio-updated-running-view-space"></a>

La sezione **Spazi** nella pagina **Dettagli del dominio** fornisce informazioni sugli spazi Studio all’interno del tuo dominio. In questa pagina puoi visualizzare, creare ed eliminare gli spazi. 

Gli spazi visualizzabili nella sezione **Spazi** sono quelli in esecuzione per:
+ JupyterLab spazio privato. Per informazioni su JupyterLab, vedere[SageMaker JupyterLab](studio-updated-jl.md).
+ Spazio privato dell’Editor di codice. Per informazioni sull’Editor di codice, basato su Code-OSS, Visual Studio Code - Open Source, consulta [Editor di codice in Amazon SageMaker Studio](code-editor.md).
+ Spazio condiviso di Studio Classic. Per informazioni sullo spazio condiviso di Studio Classic, consulta [Collaborazione con spazi condivisi](domain-space.md).

Non ci sono spazi per SageMaker Canvas, Studio Classic (privato) o RStudio. 

**Visualizza i tuoi spazi Studio in un dominio**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, espandi **Configurazioni di amministrazione** e scegli **Domini**.

1. Scegli il dominio in cui desideri visualizzare gli spazi.

1. Nella pagina **Dettagli del dominio**, scegli la scheda **Gestione dello spazio** per aprire la sezione **Spazi**.

**Visualizza i tuoi spazi Studio utilizzando il AWS CLI**

Usa il seguente comando per elencare tutti gli spazi del tuo dominio:

```
aws sagemaker list-spaces --region us-east-1 --domain-id domain-id
```
+ `us-east-1`è tuo Regione AWS.
+ *domain-id* è il tuo ID dominio. Per ulteriori informazioni, consulta [Visualizzazione dei domini](domain-view.md).

# Arresto ed eliminazione delle applicazioni e degli spazi in esecuzione in Studio
<a name="studio-updated-running-stop"></a>

La pagina seguente include informazioni e istruzioni su come bloccare ed eliminare risorse Amazon SageMaker Studio inutilizzate per evitare costi aggiuntivi indesiderati. Per le risorse di Studio che non desideri più utilizzare, dovrai eseguire queste due operazioni:
+ Arresta l’applicazione: questa operazione arresta l’applicazione ed elimina l’istanza su cui è in esecuzione. Dopo averla arrestata, puoi riavviare l’applicazione.
+ Elimina lo spazio: questa operazione elimina il volume Amazon EBS creato per l’applicazione e l’istanza.
**Importante**  
Se elimini lo spazio, perderai l’accesso ai dati che contiene. Non eliminare lo spazio se hai dubbi sull’operazione.

Per ulteriori informazioni sulle differenze tra gli spazi e le applicazioni Studio, consulta [Visualizzazione di istanze, applicazioni e spazi in esecuzione in Studio](studio-updated-running.md).

**Topics**
+ [Interrompi la tua applicazione Amazon SageMaker Studio](#studio-updated-running-stop-app)
+ [Eliminazione di uno spazio Studio](#studio-updated-running-stop-space)

## Interrompi la tua applicazione Amazon SageMaker Studio
<a name="studio-updated-running-stop-app"></a>

Per evitare costi aggiuntivi dovuti alle applicazioni in esecuzione non utilizzate, è necessario arrestarle. Di seguito sono riportate informazioni sugli effetti dell’arresto di un’applicazione e su come farlo.
+ Nelle istruzioni seguenti viene utilizzata l’API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteApp.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteApp.html) per arrestare l’applicazione. Viene arrestata anche l’istanza su cui è in esecuzione l’applicazione.
+ Dopo aver arrestato un’applicazione, è possibile riavviarla in un secondo momento.
  + Quando si arresta un’applicazione, i file nello spazio persistono. Se esegui di nuovo l’applicazione, dovresti accedere agli stessi file presenti nello spazio prima dell’eliminazione dell’applicazione.

    
  + Quando arresti un’applicazione, i relativi *metadati* verranno eliminati entro 24 ore. Per ulteriori informazioni, consulta la nota nell'elemento di `CreationTime` risposta per l'[DescribeApp](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeApp.html#sagemaker-DescribeApp-response-CreationTime)API.

**Nota**  
Se il servizio rileva che un’applicazione non è integra, assume il ruolo collegato al servizio [AmazonSageMakerNotebooksServiceRolePolicy](security-iam-awsmanpol-notebooks.md#security-iam-awsmanpol-AmazonSageMakerNotebooksServiceRolePolicy) ed elimina l’applicazione con l’API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteApp.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteApp.html).

Le seguenti schede forniscono istruzioni per interrompere un'applicazione dal tuo dominio utilizzando l'interfaccia utente di Studio, la console SageMaker AI o il AWS CLI.

**Nota**  
Per visualizzare e arrestare tutte le istanze di Studio in esecuzione in un’unica posizione, consigliamo di scegliere il flusso di lavoro [Arresto delle applicazioni con l’interfaccia utente di Studio](#studio-updated-running-stop-app-using-studio-updated-ui) tra le seguenti opzioni.

### Arresto delle applicazioni con l’interfaccia utente di Studio
<a name="studio-updated-running-stop-app-using-studio-updated-ui"></a>

Per arrestare le applicazioni Studio con l’interfaccia utente di Studio, segui queste istruzioni.

**Per eliminare le applicazioni (interfaccia utente di Studio)**

1. Avvia Studio. Questo processo può variare a seconda della configurazione. Per informazioni su come avviare Studio, consulta [Avvia Amazon SageMaker Studio](studio-updated-launch.md). 

1. Nel riquadro di navigazione a sinistra, scegli **Istanze in esecuzione**. 

   Se la tabella nella pagina è vuota, non ci sono istanze o applicazioni in esecuzione negli spazi.

1. Nella tabella sotto le colonne **Nome** e **Applicazione**, individua il nome dello spazio e l’applicazione da arrestare.

1. Scegli il pulsante **Arresta** corrispondente per arrestare l’applicazione.

### Interrompi le applicazioni che utilizzano la console SageMaker AI
<a name="studio-updated-running-stop-app-using-sagemaker-console"></a>

Per visualizzare o arrestare le istanze di Studio in esecuzione da una posizione centralizzata, consulta [Arresto delle applicazioni con l’interfaccia utente di Studio](#studio-updated-running-stop-app-using-studio-updated-ui). In caso contrario, utilizza le seguenti istruzioni.

Nella console SageMaker AI, puoi interrompere l'esecuzione delle applicazioni Studio solo per gli spazi che puoi visualizzare nella sezione **Spaces** della console. Per un elenco degli spazi visualizzabili, consulta [Visualizzazione degli spazi Studio](studio-updated-running.md#studio-updated-running-view-space).

Questi passaggi mostrano come interrompere le applicazioni Studio utilizzando la console SageMaker AI.

**Per interrompere le applicazioni (console SageMaker AI)**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, espandi **Configurazioni di amministrazione** e scegli **Domini**. 

1. Scegli il dominio da ripristinare.

1. Dalla pagina **Dettagli del dominio**, seleziona la scheda **Gestione dello spazio**.

1. 
**Importante**  
Nella scheda **Gestione dello spazio**, hai la possibilità di eliminare lo spazio. Esiste una differenza tra l’eliminazione dello spazio e l’eliminazione di un’applicazione. Se elimini lo spazio, perderai l’accesso ai dati che contiene. Non eliminare lo spazio se hai dubbi sull’operazione.

   Per arrestare l’applicazione, nella scheda **Gestione dello spazio** e nella colonna **Nome**, scegli lo spazio per l’applicazione.

1. Nella sezione **App** e nella colonna **Tipo di app**, cerca l’app da arrestare.

1. Nella colonna **Azione**, scegli il pulsante **Elimina app** corrispondente.

1. Nella finestra pop-up, scegli **Sì, elimina l’app**. A questo punto, il campo di input per l’eliminazione diventa disponibile.

1. Inserisci **delete** in questo campo per confermare l’eliminazione.

1. Scegli **Elimina**.

### Interrompi le applicazioni del tuo dominio utilizzando il AWS CLI
<a name="studio-updated-running-stop-app-using-cli"></a>

Per visualizzare o arrestare qualsiasi istanza di Studio in esecuzione da una posizione centralizzata, consulta [Arresto delle applicazioni con l’interfaccia utente di Studio](#studio-updated-running-stop-app-using-studio-updated-ui). In caso contrario, utilizza le seguenti istruzioni.

Gli esempi di codice seguenti utilizzano l’API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteApp.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteApp.html) per arrestare un’applicazione in un dominio di esempio. 

Per interrompere l'esecuzione delle istanze **JupyterLab**o di **Code Editor**, utilizzate il seguente esempio di codice:

```
aws sagemaker delete-app \
--domain-id example-domain-id \
--region Regione AWS \
--app-name default \
--app-type example-app-type \
--space-name example-space-name
```
+ Per ottenere `example-domain-id`, utilizza le istruzioni seguenti:

**Per ottenere `example-domain-id`**

  1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

  1. Nel riquadro di navigazione a sinistra, espandi **Configurazioni di amministrazione** e scegli **Domini**. 

  1. Scegli il dominio pertinente.

  1. Dalla pagina **Dettagli dominio**, seleziona la scheda **Impostazioni dominio**.

  1. Copia l’**ID dominio**.
+ Per ottenere `Regione AWS`, segui queste istruzioni per assicurarti di utilizzare la Regione AWS corretta per il tuo dominio: 

**Per ottenere `Regione AWS`**

  1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

  1. Nel riquadro di navigazione a sinistra, espandi **Configurazioni di amministrazione** e scegli **Domini**. 

  1. Scegli il dominio pertinente.

  1. Nella pagina **Dettagli del dominio**, verifica che si tratti del dominio pertinente.

  1. Espandi l'elenco a discesa delle regioni in alto a destra della console SageMaker AI e utilizza l' Regione AWS ID corrispondente a destra del tuo Regione AWS nome. Ad esempio, `us-west-1`.
+ Per `example-app-type`, scegli il tipo di applicazione specifico dell’applicazione che desideri arrestare. Ad esempio, sostituisci `example-app-type` con uno dei seguenti tipi di applicazione:
  + JupyterLab tipo di applicazione:`JupyterLab`. Per informazioni su JupyterLab, vedere[SageMaker JupyterLab](studio-updated-jl.md).
  + Tipo di applicazione Editor di codice: `CodeEditor`. Per informazioni sull’Editor di codice, basato su Code-OSS, Visual Studio Code - Open Source, consulta [Editor di codice in Amazon SageMaker Studio](code-editor.md).
+ Utilizza la procedura seguente per ottenere `example-space-name`: 

**Per ottenere `example-space-name`**

  1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

  1. Nel riquadro di navigazione a sinistra, espandi **Configurazioni di amministrazione** e scegli **Domini**. 

  1. Scegli il dominio pertinente.

  1. Dalla pagina **Dettagli del dominio**, seleziona la scheda **Gestione dello spazio**.

  1. Copia il nome dello spazio pertinente.

Per interrompere l'esecuzione di istanze per **SageMaker Canvas**, **Studio Classic** or **RStudio**, usa il seguente esempio di codice:

```
aws sagemaker delete-app \
--domain-id example-domain-id \
--region Regione AWS \
--app-name default \
--app-type example-app-type \
--user-profile example-user-name
```
+ Per `example-app-type`, scegli il tipo di applicazione specifico dell’applicazione che desideri arrestare. Ad esempio, sostituisci `example-app-type` con uno dei seguenti tipi di applicazione:
  + SageMaker Tipo di applicazione Canvas:`Canvas`. Per informazioni su SageMaker Canvas, vedere[Amazon SageMaker Tela](canvas.md).
  + Tipo di applicazione Studio Classic: `JupyterServer`. Per informazioni su Studio Classic, consulta [Amazon SageMaker Studio Classic](studio.md).
  + RStudio tipo di applicazione:`RStudioServerPro`. Per informazioni su RStudio, vedere[RStudio su Amazon SageMaker AI](rstudio.md).
+ Per ottenere `example-user-name`, vai alla pagina **Dettagli del dominio**. 
  + Quindi, scegli la scheda **Profili utente** e copia il nome dello spazio pertinente.

Per istruzioni alternative su come arrestare le applicazioni Studio in esecuzione, consulta: 
+ JupyterLab: [Eliminazione delle risorse inutilizzate](studio-updated-jl-admin-guide-clean-up.md).
+ Editor di codice: [Chiusura delle risorse dell’Editor di codice](code-editor-use-log-out.md).
+ SageMaker Tela:[Disconnettersi da Amazon Canvas SageMaker](canvas-log-out.md).
+ Studio Classic: [Chiudi e aggiorna Amazon SageMaker Studio Classic e le app](studio-tasks-update.md).
+ RStudio: [Spegnere RStudio](rstudio-shutdown.md).

## Eliminazione di uno spazio Studio
<a name="studio-updated-running-stop-space"></a>

**Importante**  
L’eliminazione dello spazio comporta la perdita di tutti i dati in esso archiviati. Ti consigliamo di eseguire il backup dei dati prima di eliminare lo spazio.

Per eliminare uno spazio Studio, dovrai disporre delle autorizzazioni di amministratore, o almeno delle autorizzazioni per aggiornare il dominio, IAM e Amazon S3.
+ Gli spazi vengono utilizzati per gestire le esigenze in termini di archiviazione e risorse dell’applicazione in questione. Quando elimini uno spazio, viene eliminato anche il volume di archiviazione. Di conseguenza, perdi l’accesso ai file archiviati in quello spazio. Per ulteriori informazioni sugli spazi Studio, consulta [Spazi Amazon SageMaker Studio](studio-updated-spaces.md).

  Se scegli di eliminare uno spazio, ti consigliamo di eseguire il backup dei dati.
+ Dopo aver eliminato uno spazio, non potrai più accedervi.

Puoi eliminare gli spazi di Studio visualizzabili nella sezione **Spazi** della console. Per un elenco degli spazi visualizzabili, consulta [Visualizzazione degli spazi Studio](studio-updated-running.md#studio-updated-running-view-space). 

Non ci sono spazi per SageMaker Canvas, Studio Classic (privato) e RStudio. Per interrompere ed eliminare SageMaker Canvas, Studio Classic (privato) o RStudio applicazioni, consulta[Interrompi la tua applicazione Amazon SageMaker Studio](#studio-updated-running-stop-app).

### Eliminare uno spazio utilizzando la console SageMaker AI
<a name="studio-updated-running-stop-space-using-sagemaker-console"></a>

La sezione **Spazi** nella pagina **Dettagli del dominio** fornisce informazioni sugli spazi Studio all’interno del tuo dominio. In questa pagina puoi visualizzare, creare ed eliminare gli spazi. 

**Per visualizzare gli spazi di Studio in un dominio**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, espandi **Configurazioni di amministrazione** e scegli **Domini**. 

1. Scegli il dominio in cui desideri visualizzare gli spazi.

1. In **Dettagli del dominio**, scegli **Gestione dello spazio** per aprire la sezione **Spazi**.

1. Seleziona lo spazio da eliminare.

1. Scegli **Elimina**. 

1. Nella finestra pop-up **Elimina spazio** sono disponibili due opzioni: 
   + Se hai già chiuso tutte le applicazioni presenti nello spazio, scegli **Sì, elimina spazio**.
   + Se ci sono ancora applicazioni in esecuzione nello spazio, scegli **Sì, chiudi tutte le app ed elimina spazio**.

1. Inserisci **delete** in questo campo per confermare l’eliminazione.

1. Per eliminare lo spazio, sono disponibili due opzioni:
   + Se hai già chiuso tutte le applicazioni presenti nello spazio, scegli **Elimina spazio**.
   + Se ci sono ancora applicazioni in esecuzione nello spazio, scegli **Arresta tutte le app ed elimina spazio**.

### Elimina uno spazio utilizzando il AWS CLI
<a name="studio-updated-running-stop-space-using-cli"></a>

Prima di poter eliminare uno spazio utilizzando il AWS CLI, è necessario eliminare l'applicazione ad esso associata. Per informazioni sull’arresto delle applicazioni Studio, consulta [Interrompi la tua applicazione Amazon SageMaker Studio](#studio-updated-running-stop-app).

Utilizzate il seguente AWS CLI comando per eliminare uno spazio all'interno di un dominio:

```
aws sagemaker delete-space \
--domain-id example-domain-id \
--region Regione AWS \
--space-name example-space-name
```
+ Per ottenere `example-domain-id`, utilizza le istruzioni seguenti:

**Per ottenere `example-domain-id`**

  1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

  1. Nel riquadro di navigazione a sinistra, espandi **Configurazioni di amministrazione** e scegli **Domini**. 

  1. Scegli il dominio pertinente.

  1. Dalla pagina **Dettagli dominio**, seleziona la scheda **Impostazioni dominio**.

  1. Copia l’**ID dominio**.
+ Per ottenere `Regione AWS`, segui queste istruzioni per assicurarti di utilizzare la Regione AWS corretta per il tuo dominio: 

**Per ottenere `Regione AWS`**

  1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

  1. Nel riquadro di navigazione a sinistra, espandi **Configurazioni di amministrazione** e scegli **Domini**. 

  1. Scegli il dominio pertinente.

  1. Nella pagina **Dettagli del dominio**, verifica che si tratti del dominio pertinente.

  1. Espandi l'elenco a discesa delle regioni in alto a destra della console SageMaker AI e utilizza l' Regione AWS ID corrispondente a destra del tuo Regione AWS nome. Ad esempio, `us-west-1`.
+ Utilizza la procedura seguente per ottenere `example-space-name`: 

**Per ottenere `example-space-name`**

  1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

  1. Nel riquadro di navigazione a sinistra, espandi **Configurazioni di amministrazione** e scegli **Domini**. 

  1. Scegli il dominio pertinente.

  1. Dalla pagina **Dettagli del dominio**, seleziona la scheda **Gestione dello spazio**.

  1. Copia il nome dello spazio pertinente.

# SageMaker Politica di supporto delle immagini di Studio
<a name="sagemaker-distribution"></a>

**Importante**  
Attualmente, tutti i pacchetti in SageMaker Distribution images sono concessi in licenza per l'uso con Amazon SageMaker AI e non richiedono licenze commerciali aggiuntive. Tuttavia, questa condizione potrebbe essere soggetta a modifiche in futuro, pertanto ti consigliamo di consultare regolarmente i termini di licenza per eventuali aggiornamenti.

Amazon SageMaker Distribution è un set di immagini Docker disponibili su SageMaker Studio che includono i framework più diffusi per l'apprendimento automatico, la scienza dei dati e la visualizzazione.

Le immagini includono framework di deep learning come PyTorch, TensorFlow e Keras; pacchetti Python popolari come numpy, scikit-learn e pandas; e IDEs like JupyterLab e Code Editor, basati su Code-OSS, Visual Studio Code - Open Source. La distribuzione contiene le versioni più recenti di tutti questi pacchetti per assicurarne la reciproca compatibilità.

Questa pagina descrive in dettaglio la politica di supporto e la disponibilità di Distribution Images on Studio. SageMaker SageMaker

## Controllo delle versioni, cadenza di rilascio e policy di supporto
<a name="sm-distribution-versioning"></a>

La tabella seguente riporta il programma di rilascio delle versioni di SageMaker Distribution Image e il relativo supporto pianificato. AWS fornisce aggiornamenti continui di funzionalità e sicurezza per le versioni di immagini supportate. Le nuove versioni secondarie vengono rilasciate per 12 mesi per le versioni principali e le versioni secondarie supportate ricevono patch regolari di funzionalità e sicurezza. In alcuni casi, potrebbe essere necessario dichiarare fine del supporto per una versione di immagine prima di quanto inizialmente previsto se (a) i problemi di sicurezza non possono essere risolti mantenendo le linee guida semantiche per il controllo delle versioni o (b) una delle nostre principali dipendenze, come Python, è raggiungibile. end-of-life AWS rilascia versioni principali o secondarie ad hoc in base alle esigenze.


| Versione | Description | Cadenza di rilascio | Supporto pianificato | 
| --- | --- | --- | --- | 
| Principale | Le versioni principali di Amazon SageMaker Distribution prevedono l'aggiornamento di tutte le sue dipendenze principali alle versioni compatibili più recenti. Queste versioni principali possono anche aggiungere o rimuovere pacchetti nell’ambito dell’aggiornamento. Le versioni principali sono indicate dal primo numero nella stringa della versione, ad esempio 1.0, 2.0 o 3.0. | 6 mesi | 18 mesi | 
| Secondaria | Le versioni secondarie di Amazon SageMaker Distribution includono l'aggiornamento di tutte le sue dipendenze principali alle versioni secondarie compatibili più recenti all'interno della stessa versione principale. SageMaker La distribuzione può aggiungere nuovi pacchetti durante il rilascio di una versione secondaria. Le versioni secondarie sono indicate dal secondo numero nella stringa della versione, ad esempio 1.1, 1.2 o 2.1. | 1 mese | 6 mesi | 
| Patch | Le versioni patch di Amazon SageMaker Distribution includono l'aggiornamento di tutte le sue dipendenze principali alle ultime versioni di patch compatibili all'interno della stessa versione secondaria. SageMaker La distribuzione non aggiunge o rimuove alcun pacchetto durante il rilascio di una versione patch. Le versioni patch sono indicate dal terzo numero nella stringa della versione, ad esempio 1.1.1, 1.2.1 o 2.1.3. Poiché le versioni patch vengono generalmente rilasciate per correggere le vulnerabilità di sicurezza, consigliamo sempre di eseguire l’aggiornamento alla versione patch più recente appena viene resa disponibile. | Secondo necessità per la correzione delle vulnerabilità di sicurezza | Fino al rilascio della nuova versione patch | 

Ogni versione principale di Amazon SageMaker Distribution è disponibile per 18 mesi. Ogni mese, durante i primi 12 mesi, vengono rilasciate nuove versioni secondarie. Per i restanti 6 mesi, le versioni secondarie esistenti continuano a essere supportate.

## Versioni dell’immagine supportate
<a name="sagemaker-distribution-supported-packages"></a>

Le tabelle seguenti elencano le versioni delle immagini di SageMaker Distribution supportate, le date di fine del supporto pianificate e la loro disponibilità su SageMaker Studio. Le versioni dell’immagine il cui supporto termina prima della data prevista continuano a essere disponibili su Studio fino alla data di disponibilità indicata. Puoi continuare a utilizzare l’immagine per avviare le applicazioni per un massimo di 90 giorni o fino alla data di disponibilità su Studio, a seconda di quale evento si verifica per primo. Per ulteriori informazioni su questi casi, contattate Supporto.

Per ricevere ininterrottamente gli aggiornamenti per la funzionalità e la sicurezza, esegui la migrazione a una versione più recente supportata il prima possibile. Quando scegli una versione dell'immagine in SageMaker Studio, ti consigliamo di scegliere una versione dell'immagine supportata dalle tabelle seguenti.

### Versioni principali supportate
<a name="sm-distribution-major-versions"></a>

La tabella seguente elenca le principali versioni delle immagini SageMaker di Distribution supportate.


| Versione dell’immagine | Rilascio più recente della versione secondaria | Data di fine supporto | Description | 
| --- | --- | --- | --- | 
| 1.x.x | 30 aprile 2025 | 30 ottobre 2025 | SageMaker La versione principale di Distribution 1 è stata creata con Python 3.10. | 
| 2.x.x | 25 agosto 2025 | 25 febbraio 2026 | SageMaker La versione principale di Distribution 2 è stata creata con Python 3.11. | 
|  3.x.x  | 29 marzo 2026 | 29 settembre 2026 |  SageMaker La versione principale di Distribution 3 è stata creata con Python 3.12.  | 

### Versioni secondarie dell’immagine per la CPU
<a name="sm-distribution-cpu-versions"></a>

La tabella seguente elenca le versioni delle immagini secondarie di SageMaker Distribution supportate per. CPUs


| Versione dell’immagine | URI dell’immagine Amazon ECR | Data di fine supporto prevista | Data di fine disponibilità in Studio | Note di rilascio | 
| --- | --- | --- | --- | --- | 
| 3.1.x | public.ecr. aws/sagemaker/sagemaker- distribuzione: 3.1 cpu | 19 novembre 2025 | 19 novembre 2025 | [Note di rilascio](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v3/v3.1) | 
| 3.0.x  | pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 3.0-cpu  | 30 giugno 2025 | 29 settembre 2025 | [Note di rilascio](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v3/v3.0) | 
| 2.6.x | pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 2.6-cpu | 30 giugno 2025 | 28 ottobre 2025 | [Note di rilascio](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v2/v2.6) | 

### Versioni secondarie dell’immagine per la GPU
<a name="sm-distribution-gpu-versions"></a>

La tabella seguente elenca le versioni delle immagini secondarie di Distribution SageMaker supportate per. GPUs


| Versione dell’immagine | URI dell’immagine Amazon ECR | Data di fine supporto prevista | Data di fine disponibilità in Studio | Note di rilascio per la patch più recente | 
| --- | --- | --- | --- | --- | 
| 3.1.x | public.ecr. aws/sagemaker/sagemaker- distribuzione: 3.1-gpu | 19 novembre 2025 | 19 novembre 2025 | [Note di rilascio](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v3/v3.1) | 
| 3.0.x | pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 3.0-gpu | 30 giugno 2025 | 29 settembre 2025 | [Note di rilascio](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v3/v3.0) | 
| 2.6.x | pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 2.6-gpu | 30 giugno 2025 | 28 ottobre 2025 | [Note di rilascio](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v2/v2.6) | 

### Immagini non supportate
<a name="sm-distribution-unsupported-images"></a>

La tabella seguente elenca le versioni di Distribution image non supportate. SageMaker 


| Versione dell’immagine | URI dell’immagine Amazon ECR | Data di fine supporto | Data di fine disponibilità in Studio | 
| --- | --- | --- | --- | 
| 2.4.x |  public.ecr. aws/sagemaker/sagemaker- distribuzione: 2,4 CPU pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 2,4 CPU  | 7 settembre 2025 | 7 settembre 2025 | 
| 2.3.x |  pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 2.3-cpu pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 2.3-cpu  | 27 luglio 2025 | 27 luglio 2025 | 
| 2.2.x |  pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 2.2-cpu pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 2.2-gpu  | 15 maggio 2025 | 15 maggio 2025 | 
| 2.1.x |  pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 2.1 cpu pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 2.1-gpu  | 25 aprile 2025 | 12 maggio 2025 | 
| 2.0.x |  pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 2.0-cpu pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 2.0-gpu  | 25 febbraio 2025 | 21 aprile 2025 | 
| 1.13.x |  pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 1.13-cpu pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 1.13-gpu  | 15 maggio 2025 | 20 settembre 2025 | 
| 1.12.x |  pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 1.12-cpu pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 1.12-gpu  | 23 luglio 2025 | 23 luglio 2025 | 
| 1.11.x |  pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 1.11-cpu pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 1.11-gpu  | 1 aprile 2025 | 12 maggio 2025 | 
| 1.10.x |  pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 1.10-cpu pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 1.10-gpu  | 5 febbraio 2025 | 10 aprile 2025 | 
| 1.9.x |  pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 1,9 CPU pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 1.9-gpu  | 15 gennaio 2025 | 10 aprile 2025 | 
| 1.8.x |  pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 1.8-cpu pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 1.8-gpu  | 31 dicembre 2024 | 10 aprile 2025 | 
| 1.7.x |  pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 1.7 cpu pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 1.7-gpu  | 15 dicembre 2024 | 10 aprile 2025 | 
| 1.6.x |  pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 1.6-cpu pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 1.6-gpu  | 15 dicembre 2024 | 10 aprile 2025 | 
| 1.5.x |  pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 1,5 CPU pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 1.5-gpu  | 31 ottobre 2024 | 1 novembre 2024 | 
| 1.4.x |  public.ecr. aws/sagemaker/sagemaker- distribuzione: 1.4-cpu pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 1.4-gpu  | 31 ottobre 2024 | 1 novembre 2024 | 
| 1.3.x | pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 1.3 cpu | 28 giugno 2024 | 18 ottobre 2024 | 
| 1.2.x | pubblico.ecr. aws/sagemaker/sagemaker- distribuzione: 1.2-cpu | 28 giugno 2024 | 18 ottobre 2024 | 

### Domande frequenti
<a name="sm-distribution-faqs"></a>

**Quali sono le caratteristiche di un rilascio della versione dell’immagine principale?**

Le versioni principali dell’immagine vengono rilasciate ogni 6 mesi. Una versione di immagine principale per Amazon SageMaker Distribution prevede l'aggiornamento di tutte le dipendenze principali alle versioni compatibili più recenti e può includere l'aggiunta o la rimozione di pacchetti. Il framework Python viene aggiornato solo con le nuove versioni principali. Ad esempio, con la versione principale 2, il framework Python è stato aggiornato da 3.10 a 3.11, PyTorch è stato aggiornato dalla 2.0 alla 2.3, è stato aggiornato dalla 2.14 alla 2.17, Autogluon TensorFlow è stato aggiornato da 0.8 a 1.1 e sono stati aggiunti 4 pacchetti all'immagine.

**Quali sono le caratteristiche di un rilascio della versione dell’immagine secondaria?**

Le versioni secondarie dell’immagine vengono rilasciate mensilmente per tutte le versioni principali supportate. Una versione di immagine secondaria per Amazon SageMaker Distribution prevede l'aggiornamento di tutte le dipendenze principali tranne Python e CUDA alle versioni secondarie compatibili più recenti all'interno della stessa versione principale e può includere l'aggiunta di nuovi pacchetti. Ad esempio, con il rilascio di una versione secondaria, langchain potrebbe essere aggiornato dalla versione 0.1 alla 0.2 e jupyter-ai dalla versione 2.18 alla 2.20.

**Quali sono le caratteristiche di un rilascio della versione patch dell’immagine?**

Le versioni patch dell’immagine vengono rilasciate se necessario per correggere le vulnerabilità di sicurezza. Una versione con immagine di patch per Amazon SageMaker Distribution prevede l'aggiornamento di tutte le sue dipendenze principali alle ultime versioni di patch compatibili all'interno della stessa versione secondaria. SageMaker La distribuzione non aggiunge o rimuove alcun pacchetto durante il rilascio di una versione patch. Ad esempio, con il rilascio di una versione patch, matplotlib potrebbe essere aggiornato dalla versione 3.9.1 alla 3.9.2 e boto3 dalla versione 1.34.131 alla 1.34.162.

**Dove posso trovare i pacchetti disponibili in una specifica versione dell’immagine?**

Ogni versione dell'immagine ha un `release.md` file nella `build_artifacts` cartella del [GitHub repository](https://github.com/aws/sagemaker-distribution), che mostra tutti i pacchetti e le versioni dei pacchetti per le immagini di CPU e GPU. File changelog separati per le versioni di CPU e GPU descrivono in dettaglio gli aggiornamenti dei pacchetti. I changelog confrontano la nuova versione dell’immagine con la precedente. Ad esempio, la versione 1.9.0 viene confrontata con l’ultima versione patch della versione 1.8, la versione 1.9.1 viene confrontata con la 1.9.0 e la versione 2.0.0 viene confrontata con l’ultima versione patch della versione secondaria più recente disponibile al momento.

**Come vengono scansionate le immagini alla ricerca di vulnerabilità ed esposizioni comuni ()? CVEs**

Amazon SageMaker AI sfrutta la [scansione avanzata di Amazon Elastic Container Registry (Amazon ECR)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-scanning-enhanced.html) per rilevare automaticamente vulnerabilità e correzioni per le immagini di distribuzione. SageMaker AWS esegue continuamente la scansione avanzata ECR per l'ultima versione di patch di tutte le versioni di immagini supportate. Quando vengono rilevate vulnerabilità ed è disponibile una correzione, AWS rilascia una versione aggiornata dell'immagine per risolvere il problema.

**Posso continuare a utilizzare immagini precedenti dopo la fine del supporto di un’immagine?**

Le immagini sono disponibili su SageMaker Studio fino alla data di disponibilità designata. Le immagini precedenti rimangono disponibili in ECR dopo la fine del supporto e vengono rimosse da Studio. È possibile scaricare versioni precedenti di immagini da ECR e [creare un' SageMaker immagine personalizzata](studio-byoi-create.md). Tuttavia, consigliamo vivamente di eseguire l’aggiornamento a una versione dell’immagine supportata per ricevere continuamente gli aggiornamenti di sicurezza e le correzioni dei bug. I clienti che creano immagini personalizzate sono responsabili della scansione e dell’applicazione delle patch alle immagini. Per ulteriori informazioni, consulta il [Modello di responsabilità condivisa AWS](https://aws.amazon.com/compliance/shared-responsibility-model/).

**Importante**  
SageMaker Distribution v0.x.y viene utilizzato solo in Studio Classic. SageMaker La distribuzione v1.x.y viene utilizzata solo in. JupyterLab

# Prezzi di Amazon SageMaker Studio
<a name="studio-updated-cost"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata Amazon SageMaker Studio Classic. La sezione seguente è specifica per l’utilizzo dell’esperienza Studio aggiornata. Per informazioni sull’utilizzo dell’applicazione Studio Classic, consulta [Amazon SageMaker Studio Classic](studio.md).

Non sono previsti costi aggiuntivi per l'utilizzo dell'interfaccia utente di Amazon SageMaker Studio.  

Gli elementi seguenti, invece, prevedono dei costi:
+ Volumi Amazon Elastic Block Store o Amazon Elastic File System montati con le applicazioni.
+ Tutti i processi e le risorse che gli utenti avviano dalle applicazioni Studio.
+ Avvio di un' JupyterLab applicazione, anche se nell'applicazione non sono state avviate risorse o lavori. 

Per informazioni sulla fatturazione di Amazon SageMaker Studio Classic, consulta[Prezzi di Amazon SageMaker Studio Classic](studio-pricing.md). 

Per ulteriori informazioni sulla fatturazione ed esempi di prezzi, consulta la pagina dei [ SageMaker prezzi di Amazon](https://aws.amazon.com//sagemaker/pricing/). 

# Risoluzione dei problemi
<a name="studio-updated-troubleshooting"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata Amazon SageMaker Studio Classic. La sezione seguente è specifica per l’utilizzo dell’esperienza Studio aggiornata. Per informazioni sull’utilizzo dell’applicazione Studio Classic, consulta [Amazon SageMaker Studio Classic](studio.md).

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Questa sezione mostra come risolvere i problemi più comuni in Amazon SageMaker Studio.

## Modalità di ripristino
<a name="studio-updated-troubleshooting-recovery-mode"></a>

La modalità di ripristino consente di accedere all’applicazione Studio quando un problema di configurazione ne impedisce il normale avvio. Fornisce un ambiente semplificato con funzionalità essenziali per aiutarti a diagnosticare e risolvere il problema.

Quando un’applicazione non viene avviata, potrebbe essere visualizzato un messaggio di errore che segnala l’accesso in modalità di ripristino per risolvere uno dei seguenti problemi di configurazione.
+ File [https://docs.conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html](https://docs.conda.io/projects/conda/en/latest/user-guide/configuration/use-condarc.html) danneggiato.

  Per informazioni sulla risoluzione dei problemi del file `.condarc`, consulta la pagina [Troubleshooting](https://docs.conda.io/projects/conda/en/latest/user-guide/troubleshooting.html) in *Conda user guide*.
+ Volume di archiviazione disponibile insufficiente. 

  Puoi aumentare lo spazio di archiviazione di Amazon EBS disponibile per l’applicazione o accedere alla modalità di ripristino per rimuovere i dati non necessari.

  Per informazioni su come aumentare le dimensioni del volume Amazon EBS, consulta la pagina [Request a quota size](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) in *Service Quotas Developer Guide*.

In modalità di ripristino:
+ La home directory avrà un aspetto diverso rispetto a quello di un normale avvio. Questa directory è temporanea e garantisce che eventuali configurazioni danneggiate nella home directory standard non influiscano sulle operazioni della modalità di ripristino. Puoi accedere alla home directory standard utilizzando il comando `cd /home/sagemaker-user`.
  + Modalità standard: `/home/sagemaker-user`
  + Modalità di ripristino: `/tmp/sagemaker-recovery-mode-home`
+ L’ambiente conda utilizza un ambiente conda minimo che contiene solo i pacchetti essenziali. La configurazione conda semplificata aiuta a isolare i problemi relativi all’ambiente e fornisce funzionalità di base per la risoluzione dei problemi.

Puoi utilizzare l'interfaccia utente di Studio o accedere AWS CLI all'applicazione in modalità di ripristino.

### Utilizzo dell’interfaccia utente di Studio per accedere all’applicazione in modalità di ripristino
<a name="studio-updated-troubleshooting-recovery-mode-console"></a>

Di seguito vengono fornite istruzioni per accedere all’applicazione in modalità di ripristino.

1. Se non lo hai già fatto, avvia l’interfaccia utente di Studio seguendo le istruzioni riportate in [Avvio dalla console Amazon SageMaker AI](studio-updated-launch.md#studio-updated-launch-console).

1. Dal menu di navigazione a sinistra, scegli l’applicazione in **Applicazioni**.

1. Scegli lo spazio che presenta problemi di configurazione.

   Le fasi seguenti diventano disponibili quando si verificano uno o più dei problemi di configurazione menzionati in precedenza. In questo caso, verranno visualizzati un banner di avviso e un messaggio sulla **modalità di ripristino**. 
**Nota**  
Il banner di avviso dovrebbe contenere una soluzione consigliata per il problema. Prendine nota prima di procedere.

1. Scegli **Esegui lo spazio (modalità di ripristino)**. 

1. Per accedere all'applicazione in modalità di ripristino, scegli **Apri *application* (modalità di ripristino)**.

### Utilizzate il AWS CLI per accedere all'applicazione in modalità di ripristino
<a name="studio-updated-troubleshooting-recovery-mode-cli"></a>

Per accedere all'applicazione in modalità di ripristino, è necessario aggiungerla `--recovery-mode` al comando [AWS CLI create-app](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-app.html). Di seguito viene fornito un esempio su come accedere all’applicazione in modalità di ripristino. 

Per il seguente esempio, sono necessari:
+ *domain-id*

  Per ottenere i dettagli del tuo dominio, consulta [Visualizzazione dei domini](domain-view.md).
+ *space-name*

  Per ottenere i nomi degli spazi associati al tuo dominio, consulta [Usa il AWS CLI per visualizzare gli spazi SageMaker AI nel tuo dominio](sm-console-domain-resources-view.md#sm-console-domain-resources-view-spaces-cli).
+ *app-name*

  Il nome dell'applicazione . Per visualizzare le tue applicazioni, consulta [Usa il AWS CLI per visualizzare le applicazioni SageMaker AI nel tuo dominio](sm-console-domain-resources-view.md#sm-console-domain-resources-view-apps-cli).

------
#### [ Access Code Editor application in recovery mode ]

```
aws sagemaker create-app \
    --app-name app-name \
    --app-type CodeEditor \
    --domain-id domain-id \
    --space-name space-name \
    --recovery-mode
```

------
#### [ Access JupyterLab application in recovery mode ]

```
aws sagemaker create-app \
    --app-name app-name \
    --app-type JupyterLab \
    --domain-id domain-id \
    --space-name space-name \
    --recovery-mode
```

------

## Impossibile eliminare l'editor di codice o l'applicazione JupyterLab
<a name="studio-updated-troubleshooting-cannot-delete-application"></a>

Questo problema si verifica quando un utente crea un'applicazione da Amazon SageMaker Studio, disponibile solo in Studio, quindi ripristina l'esperienza predefinita su Studio Classic. Di conseguenza, l'utente non può eliminare un'applicazione per Code Editor, basata su Code-OSS, Visual Studio Code - Open Source o JupyterLab perché non può accedere all'interfaccia utente di Studio.

Per risolvere questo problema, avvisa l'amministratore in modo che possa eliminare l'applicazione manualmente utilizzando AWS Command Line Interface ()AWS CLI. 

## EC2InsufficientCapacityError
<a name="studio-updated-troubleshooting-ec2-capacity"></a>

Questo problema si verifica quando si tenta di gestire uno spazio e al momento AWS non è disponibile una capacità on-demand sufficiente per soddisfare la richiesta. 

Per risolvere il problema, procedi come segue. 
+ Attendi alcuni minuti, quindi invia di nuovo la richiesta. La capacità dell’istanza cambia frequentemente.
+ Esegui lo spazio con una dimensione o un tipo di istanza alternativi.

**Nota**  
La capacità è fornita da più zone di disponibilità. Per massimizzare la disponibilità della capacità per gli utenti, consigliamo di configurare le sottoreti in tutte le zone di disponibilità. Studio esegue diversi tentativi in tutte le zone di disponibilità configurate per il dominio.   
La disponibilità del tipo di istanza varia a seconda delle Regioni. Per un elenco dei tipi di istanze supportati per regione, consulta i [prezzi di Amazon SageMaker AI](https://aws.amazon.com/sagemaker/pricing/))

La tabella seguente elenca le famiglie di istanze e le relative alternative consigliate.


| Famiglia di istanze | Tipo CPU | v CPUs | Memoria (GiB) | Tipo GPU | GPUs | Memoria GPU (GiB) | Alternativa consigliata | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
| G4dn | Processori Intel Xeon scalabili di seconda generazione | Da 4 a 96 | Da 16 a 384 | NVIDIA T4 Tensor Core | Da 1 a 8 | 16 per GPU | G6 | 
| G5 | Processori AMD EYPC di seconda generazione | Da 4 a 192 | Da 16 a 768 | NVIDIA A10G Tensor Core | Da 1 a 8 | 24 per GPU | G6e | 
| G6 | Processori AMD EPYC di terza generazione | Da 4 a 192 | Da 16 a 768 | NVIDIA L4 Tensor Core | Da 1 a 8 | 24 per GPU | G4dn | 
| G6e | Processori AMD EPYC di terza generazione | Da 4 a 192 | Da 32 a 1536 | NVIDIA L40S Tensor Core | Da 1 a 8 | 48 per GPU | G5, P4 | 
| P3 | Processori scalabili Intel Xeon | Da 8 a 96 | Da 61 a 768 | NVIDIA Tesla V100 | Da 1 a 8 | 16 per GPU (32 per GPU per P3dn) | G6e, P4 | 
| P4 | Processori Intel Xeon scalabili di seconda generazione | 96 | 1152 | NVIDIA A100 Tensor Core | 8 | 320 (640 per P4de) | G6e | 
| P5 | Processori AMD EPYC di terza generazione | 192 | 2000 | NVIDIA H100 Tensor Core | 8 | 640 | P4de | 

## Limite insufficiente (è necessario un aumento della quota)
<a name="studio-updated-troubleshooting-insufficient-limit"></a>

Questo problema si verifica quando visualizzi il messaggio di errore seguente mentre tenti di eseguire uno spazio. 

```
Error when creating application for space: ... : The account-level service limit is X Apps, with current utilization Y Apps and a request delta of 1 Apps. Please use Quote di servizio to request an increase for this quota.
```

Esiste un limite predefinito, per ciascun tipo di istanza, per il numero di istanze che puoi eseguire in ogni Regione AWS. Questo errore indica che hai raggiunto tale limite. 

Per risolvere questo problema, richiedi un aumento del limite di istanza per Regione AWS lo spazio in cui stai avviando lo spazio. Per ulteriori informazioni, consulta la sezione [Richiesta di un aumento di quota](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html).

## Errore durante il caricamento dell’immagine personalizzata
<a name="studio-updated-troubleshooting-custom-image"></a>

Questo problema si verifica quando un'immagine SageMaker AI viene eliminata prima di staccarla dal dominio. Il messaggio compare quando visualizzi la scheda **Ambiente** del dominio.

Per risolvere il problema, devi creare una nuova immagine temporanea con lo stesso nome di quella eliminata, scollegare l’immagine, quindi eliminare l’immagine temporanea. Utilizza le seguenti istruzioni per la procedura dettagliata.

1. Se non l'hai già fatto, avvia la [console SageMaker AI](https://console.aws.amazon.com/sagemaker).

1. Nel menu di navigazione a sinistra, in **Configurazioni di amministrazione**, scegli **Domini**.

1. Scegli il tuo dominio.

1. Scegli la scheda **Ambiente**. Il messaggio di errore compare in questa pagina.

1. Copia il nome dell’immagine dall’ARN dell’immagine.

1. Nel menu di navigazione a sinistra, in **Configurazioni di amministrazione**, scegli **Immagini**.

1. Scegliere **Create Image (Crea immagine)**.

1. Segui le fasi della procedura, ma assicurati che il nome dell’immagine sia uguale a quello dell’immagine precedente. 

   Se non disponi di un’immagine in una directory Amazon ECR, consulta le istruzioni in [Creazione di un’immagine personalizzata e invio ad Amazon ECR](studio-updated-byoi-how-to-prepare-image.md).

1. Dopo aver creato l'immagine SageMaker AI, torna alla scheda **Ambiente** del dominio. Viene visualizzata l’immagine collegata al dominio.

1. Seleziona l’immagine e scegli **Scollega**.

1. Segui le istruzioni per scollegare ed eliminare l'immagine SageMaker AI temporanea.

# Migrazione da Amazon SageMaker Studio Classic
<a name="studio-updated-migrate"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Quando apri Amazon SageMaker Studio, l'interfaccia utente basata sul Web si basa sull'esperienza predefinita scelta. Amazon SageMaker AI attualmente supporta due diverse esperienze predefinite: l'esperienza Amazon SageMaker Studio e l'esperienza Amazon SageMaker Studio Classic. Per accedere alle funzionalità più recenti di Amazon SageMaker Studio, devi migrare i domini esistenti dall'esperienza Amazon SageMaker Studio Classic. Quando esegui la migrazione della tua esperienza predefinita da Studio Classic a Studio, non perdi alcuna funzionalità e puoi comunque accedere all’IDE di Studio Classic all’interno di Studio. Per informazioni sui vantaggi aggiuntivi dell’esperienza Studio, consulta [Amazon SageMaker Studio](studio-updated.md).

**Nota**  
Per i clienti esistenti che hanno creato i propri account prima del 30 novembre 2023, Studio Classic potrebbe essere l’esperienza predefinita. Puoi abilitare Studio come esperienza predefinita utilizzando AWS Command Line Interface (AWS CLI) o la console Amazon SageMaker AI. Per ulteriori informazioni su Studio Classic, consulta [Amazon SageMaker Studio Classic](studio.md). 
Ai clienti che hanno creato i propri account dopo il 30 novembre 2023, consigliamo di utilizzare Studio come esperienza predefinita perché contiene vari ambienti di sviluppo integrati (IDEs), incluso l'IDE Studio Classic e altre nuove funzionalità.  
JupyterLab 3 ha raggiunto la data di fine della manutenzione il 15 maggio 2024. Dopo il 31 dicembre 2024, puoi creare nuovi notebook Studio Classic su JupyterLab 3 solo per un periodo limitato. Tuttavia, dopo il 31 dicembre 2024, l' SageMaker intelligenza artificiale non fornirà più correzioni per i problemi critici sui notebook Studio Classic on 3. JupyterLab Ti consigliamo di migrare i tuoi carichi di lavoro alla nuova esperienza Studio, che supporta 4. JupyterLab 
+ Se Studio è l’esperienza predefinita, l’interfaccia utente sarà simile alle immagini visualizzate in [Panoramica dell'interfaccia utente di Amazon SageMaker Studio](studio-updated-ui.md).
+ Se Studio Classic è la tua esperienza predefinita, l’interfaccia utente sarà simile alle immagini visualizzate in [Panoramica dell'interfaccia utente di Amazon SageMaker Studio Classic](studio-ui.md).

Per eseguire la migrazione, devi aggiornare un dominio esistente. La migrazione di un dominio esistente da Studio Classic a Studio richiede tre fasi distinte:

1. **Migrazione dell’interfaccia utente da Studio Classic a Studio**: attività semplice e una tantum che richiede la creazione di un dominio di test per garantire la conformità di Studio alle configurazioni di rete dell’organizzazione prima di eseguire la migrazione l’interfaccia utente del dominio esistente da Studio Classic a Studio.

1. **(Facoltativo) Migrazione delle immagini personalizzate e degli script di configurazione del ciclo di vita**: attività mediamente impegnativa per la migrazione di immagini personalizzate e script LCC da Studio Classic a Studio.

1. **(Facoltativo) Migrazione dei dati da Studio Classic a Studio**: attività impegnativa che richiede l’utilizzo di AWS DataSync per eseguire la migrazione dei dati dal volume Amazon Elastic File System di Studio Classic a un volume Amazon EFS o Amazon Elastic Block Store di destinazione.

   1. **(Facoltativo) Migrazione dei flussi di dati da Data Wrangler in Studio Classic**: operazione unica e semplice per la migrazione dei flussi di dati da Data Wrangler in Studio Classic a Studio, a cui puoi quindi accedere nell'ultima versione di Studio tramite Canvas. SageMaker Per ulteriori informazioni, consulta [Migrazione dei flussi di dati da Data Wrangler](studio-updated-migrate-data.md#studio-updated-migrate-flows).

 Gli argomenti seguenti mostrano come completare queste fasi per eseguire la migrazione di un dominio esistente da Studio Classic a Studio.

## Migrazione automatica
<a name="studio-updated-migrate-auto"></a>

Nei mesi di luglio e agosto 2024, aggiorneremo automaticamente l’esperienza di destinazione predefinita per gli utenti alla nuova esperienza Studio. L’unica modifica riguarda l’interfaccia utente di destinazione predefinita, che corrisponderà all’interfaccia utente di Studio aggiornata. L’applicazione Studio Classic è ancora accessibile dalla nuova interfaccia utente di Studio.

Per garantire che la migrazione funzioni correttamente per i tuoi utenti, consulta [Migrazione dell’interfaccia utente da Studio Classic a Studio](studio-updated-migrate-ui.md). In particolare, verifica quanto segue:
+ il ruolo di esecuzione del dominio dispone delle autorizzazioni corrette
+ l’esperienza di destinazione predefinita è impostata su Studio
+ L’Amazon VPC del dominio, se applicabile, è configurato su Studio con l’endpoint VPC Studio

Tuttavia, se devi continuare a utilizzare Studio Classic come interfaccia utente predefinita per un periodo di tempo limitato, imposta esplicitamente l’esperienza di destinazione su Studio Classic. Per ulteriori informazioni, consulta [Impostazione di Studio Classic come esperienza predefinita](studio-updated-migrate-ui.md#studio-updated-migrate-revert).

**Topics**
+ [Migrazione automatica](#studio-updated-migrate-auto)
+ [Completamento dei prerequisiti per la migrazione dell’esperienza di Studio](studio-updated-migrate-prereq.md)
+ [Migrazione dell’interfaccia utente da Studio Classic a Studio](studio-updated-migrate-ui.md)
+ [(Facoltativo) Migrazione di immagini personalizzate e configurazioni del ciclo di vita](studio-updated-migrate-lcc.md)
+ [(Facoltativo) Migrazione dei dati da Studio Classic a Studio](studio-updated-migrate-data.md)

# Completamento dei prerequisiti per la migrazione dell’esperienza di Studio
<a name="studio-updated-migrate-prereq"></a>

La migrazione dell’esperienza predefinita da Studio Classic a Studio è gestita dall’amministratore del dominio esistente. Se non disponi delle autorizzazioni per impostare Studio come esperienza predefinita per il dominio esistente, contatta il tuo amministratore. Per migrare la tua esperienza predefinita, devi disporre delle autorizzazioni di amministratore o almeno delle autorizzazioni per aggiornare il dominio esistente AWS Identity and Access Management (IAM) e Amazon Simple Storage Service (Amazon S3). Completa i prerequisiti seguenti prima di eseguire la migrazione di un dominio esistente da Studio Classic a Studio.
+ Il AWS Identity and Access Management ruolo utilizzato per completare la migrazione deve avere una policy allegata con almeno le seguenti autorizzazioni. Per informazioni sulla creazione di una policy IAM, consultare [Creazione di policy IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_create.html).
**Nota**  
La versione di Studio include aggiornamenti alle politiche AWS gestite. Per ulteriori informazioni, consulta [SageMaker Aggiornamenti AI alle politiche AWS gestite](security-iam-awsmanpol.md#security-iam-awsmanpol-updates).
  + Autorizzazioni richieste per la fase 1:
    + `iam:CreateServiceLinkedRole`
    + `iam:PassRole`
    + `sagemaker:DescribeDomain`
    + `sagemaker:UpdateDomain`
    + `sagemaker:CreateDomain`
    + `sagemaker:CreateUserProfile`
    + `sagemaker:ListApps`
    + `sagemaker:AddTags`
    + `sagemaker:DeleteApp`
    + `sagemaker:DeleteSpace`
    + `sagemaker:UpdateSpace`
    + `sagemaker:DeleteUserProfile`
    + `sagemaker:DeleteDomain`
    + `s3:PutBucketCORS`
  + Autorizzazioni richieste per la fase 2 (facoltative, solo se si utilizzano script di configurazione del ciclo di vita):

    Non sono necessarie ulteriori autorizzazioni. Se il dominio esistente dispone di configurazioni del ciclo di vita e immagini personalizzate, l’amministratore avrà già le autorizzazioni richieste.
  + Autorizzazioni richieste per la fase 3 con Amazon Elastic File System personalizzato (facoltative, solo in caso di trasferimento di dati):
    + `efs:CreateFileSystem`
    + `efs:CreateMountTarget`
    + `efs:DescribeFileSystems`
    + `efs:DescribeMountTargets`
    + `efs:DescribeMountTargetSecurityGroups`
    + `efs:ModifyMountTargetSecurityGroups`
    + `ec2:DescribeSubnets`
    + `ec2:DescribeSecurityGroups`
    + `ec2:DescribeNetworkInterfaceAttribute`
    + `ec2:DescribeNetworkInterfaces`
    + `ec2:AuthorizeSecurityGroupEgress`
    + `ec2:AuthorizeSecurityGroupIngress`
    + `ec2:CreateNetworkInterface`
    + `ec2:CreateNetworkInterfacePermission`
    + `ec2:RevokeSecurityGroupIngress`
    + `ec2:RevokeSecurityGroupEgress`
    + `ec2:DeleteSecurityGroup`
    + `datasync:CreateLocationEfs`
    + `datasync:CreateTask`
    + `datasync:StartTaskExecution`
    + `datasync:DeleteTask`
    + `datasync:DeleteLocation`
    + `sagemaker:ListUserProfiles`
    + `sagemaker:DescribeUserProfile`
    + `sagemaker:UpdateDomain`
    + `sagemaker:UpdateUserProfile`
  + Autorizzazioni richieste per la fase 3 con Amazon Simple Storage Service (facoltative, solo in caso di trasferimento di dati):
    + `iam:CreateRole`
    + `iam:GetRole`
    + `iam:AttachRolePolicy`
    + `iam:DetachRolePolicy`
    + `iam:DeleteRole`
    + `efs:DescribeFileSystems`
    + `efs:DescribeMountTargets`
    + `efs:DescribeMountTargetSecurityGroups`
    + `ec2:DescribeSubnets`
    + `ec2:CreateSecurityGroup`
    + `ec2:DescribeSecurityGroups`
    + `ec2:DescribeNetworkInterfaces`
    + `ec2:CreateNetworkInterface`
    + `ec2:CreateNetworkInterfacePermission`
    + `ec2:DetachNetworkInterfaces`
    + `ec2:DeleteNetworkInterface`
    + `ec2:DeleteNetworkInterfacePermission`
    + `ec2:CreateTags`
    + `ec2:AuthorizeSecurityGroupEgress`
    + `ec2:AuthorizeSecurityGroupIngress`
    + `ec2:RevokeSecurityGroupIngress`
    + `ec2:RevokeSecurityGroupEgress`
    + `ec2:DeleteSecurityGroup`
    + `datasync:CreateLocationEfs`
    + `datasync:CreateLocationS3`
    + `datasync:CreateTask`
    + `datasync:StartTaskExecution`
    + `datasync:DescribeTaskExecution`
    + `datasync:DeleteTask`
    + `datasync:DeleteLocation`
    + `sagemaker:CreateStudioLifecycleConfig`
    + `sagemaker:UpdateDomain`
    + `s3:ListBucket`
    + `s3:GetObject`
+ Accesso ai AWS servizi da un ambiente terminale su:
  + Il computer locale utilizza la AWS CLI versione`2.13+`. Usa il seguente comando per verificare la AWS CLI versione.

    ```
    aws --version
    ```
  + AWS CloudShell. Per ulteriori informazioni, vedi [Cos'è AWS CloudShell?](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)
+ Dal computer locale oppure AWS CloudShell, esegui il comando seguente e fornisci le tue AWS credenziali. Per informazioni sulle AWS credenziali, consulta [Comprendere e ottenere le AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html) credenziali.

  ```
  aws configure
  ```
+ Verificate che il processore JSON leggero,jq, sia installato nell'ambiente terminale. jqè necessario per analizzare le risposte. AWS CLI 

  ```
  jq --version
  ```

  Se jq non è installato, installarlo con uno dei seguenti comandi:
  + 

    ```
    sudo apt-get install -y jq
    ```
  + 

    ```
    sudo yum install -y jq
    ```

# Migrazione dell’interfaccia utente da Studio Classic a Studio
<a name="studio-updated-migrate-ui"></a>

La prima fase per la migrazione di un dominio esistente prevede la migrazione dell'interfaccia utente da Amazon SageMaker Studio Classic ad Amazon SageMaker Studio. Questa fase non include la migrazione dei dati. Gli utenti possono continuare a lavorare normalmente con i propri dati, come prima della migrazione. Per informazioni sulla migrazione dei dati, consulta [(Facoltativo) Migrazione dei dati da Studio Classic a Studio](studio-updated-migrate-data.md).

La fase 1 prevede i passaggi seguenti:

1. Aggiornare le autorizzazioni di creazione delle applicazioni per le nuove applicazioni disponibili in Studio.

1. Aggiornare la configurazione VPC per il dominio.

1. Aggiornare il dominio per utilizzare l’interfaccia utente di Studio.

## Prerequisiti
<a name="studio-updated-migrate-ui-prereq"></a>

Prima di eseguire questa procedura, completa i prerequisiti descritti in [Completamento dei prerequisiti per la migrazione dell’esperienza di Studio](studio-updated-migrate-prereq.md).

## Fase 1. Aggiorna le autorizzazioni per la creazione di applicazioni
<a name="studio-updated-migrate-limit-apps"></a>

Prima di eseguire la migrazione del dominio, aggiorna il ruolo di esecuzione del dominio per concedere agli utenti le autorizzazioni per creare le applicazioni.

1. Crea una AWS Identity and Access Management policy con uno dei seguenti contenuti seguendo i passaggi descritti in [Creazione di politiche IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_create.html): 
   + Utilizza la policy seguente per concedere le autorizzazioni per tutti i tipi e gli spazi delle applicazioni.
**Nota**  
Se il dominio utilizza la policy `SageMakerFullAccess`, non è necessario eseguire questa azione. `SageMakerFullAccess` concede le autorizzazioni per creare tutte le applicazioni.

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

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "SMStudioUserProfileAppPermissionsCreateAndDelete",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:CreateApp",
                     "sagemaker:DeleteApp"
                 ],
                 "Resource": "arn:aws:sagemaker:us-east-1:111122223333:app/*",
                 "Condition": {
                     "Null": {
                         "sagemaker:OwnerUserProfileArn": "true"
                     }
                 }
             },
             {
                 "Sid": "SMStudioCreatePresignedDomainUrlForUserProfile",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:CreatePresignedDomainUrl"
                 ],
                 "Resource": "arn:aws:sagemaker:us-east-1:111122223333:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"
             },
             {
                 "Sid": "SMStudioAppPermissionsListAndDescribe",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:ListApps",
                     "sagemaker:ListDomains",
                     "sagemaker:ListUserProfiles",
                     "sagemaker:ListSpaces",
                     "sagemaker:DescribeApp",
                     "sagemaker:DescribeDomain",
                     "sagemaker:DescribeUserProfile",
                     "sagemaker:DescribeSpace"
                 ],
                 "Resource": "*"
             },
             {
                 "Sid": "SMStudioAppPermissionsTagOnCreate",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:AddTags"
                 ],
                 "Resource": "arn:aws:sagemaker:us-east-1:111122223333:*/*",
                 "Condition": {
                     "Null": {
                         "sagemaker:TaggingAction": "false"
                     }
                 }
             },
             {
                 "Sid": "SMStudioRestrictSharedSpacesWithoutOwners",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:CreateSpace",
                     "sagemaker:UpdateSpace",
                     "sagemaker:DeleteSpace"
                 ],
                 "Resource": "arn:aws:sagemaker:us-east-1:111122223333:space/${sagemaker:DomainId}/*",
                 "Condition": {
                     "Null": {
                         "sagemaker:OwnerUserProfileArn": "true"
                     }
                 }
             },
             {
                 "Sid": "SMStudioRestrictSpacesToOwnerUserProfile",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:CreateSpace",
                     "sagemaker:UpdateSpace",
                     "sagemaker:DeleteSpace"
                 ],
                 "Resource": "arn:aws:sagemaker:us-east-1:111122223333:space/${sagemaker:DomainId}/*",
                 "Condition": {
                     "ArnLike": {
                         "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:us-east-1:111122223333:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"
                     },
                     "StringEquals": {
                         "sagemaker:SpaceSharingType": [
                             "Private",
                             "Shared"
                         ]
                     }
                 }
             },
             {
                 "Sid": "SMStudioRestrictCreatePrivateSpaceAppsToOwnerUserProfile",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:CreateApp",
                     "sagemaker:DeleteApp"
                 ],
                 "Resource": "arn:aws:sagemaker:us-east-1:111122223333:app/${sagemaker:DomainId}/*",
                 "Condition": {
                     "ArnLike": {
                         "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:us-east-1:111122223333:user-profile/${sagemaker:DomainId}/${sagemaker:UserProfileName}"
                     },
                     "StringEquals": {
                         "sagemaker:SpaceSharingType": [
                             "Private"
                         ]
                     }
                 }
             },
             {
                 "Sid": "AllowAppActionsForSharedSpaces",
                 "Effect": "Allow",
                 "Action": [
                     "sagemaker:CreateApp",
                     "sagemaker:DeleteApp"
                 ],
                 "Resource": "arn:aws:sagemaker:*:*:app/${sagemaker:DomainId}/*/*/*",
                 "Condition": {
                     "StringEquals": {
                         "sagemaker:SpaceSharingType": [
                             "Shared"
                         ]
                     }
                 }
             }
         ]
     }
     ```

------
   + Poiché Studio mostra un set esteso di applicazioni, gli utenti possono accedere ad applicazioni che prima non venivano visualizzate. Gli amministratori possono limitare l'accesso a queste applicazioni predefinite creando una policy AWS Identity and Access Management (IAM) che conceda le autorizzazioni di negazione per alcune applicazioni a utenti specifici.
**Nota**  
I tipi di applicazione possono essere `jupyterlab` o `codeeditor`.

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

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Sid": "DenySageMakerCreateAppForSpecificAppTypes",
                 "Effect": "Deny",
                 "Action": "sagemaker:CreateApp",
                 "Resource": "arn:aws:sagemaker:us-east-1:111122223333:app/domain-id/*/app-type/*"
             }
         ]
     }
     ```

------

1. Associa la policy al ruolo di esecuzione del dominio. Per le istruzioni, segui la procedura descritta in [Adding IAM identity permissions (console)](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console).

## Fase 2. Aggiorna la configurazione VPC
<a name="studio-updated-migrate-vpc"></a>

Se utilizzi il dominio in modalità `VPC-Only`, assicurati che la configurazione del VPC soddisfi i requisiti per l’utilizzo di Studio in modalità `VPC-Only`. Per ulteriori informazioni, consulta [Connect Amazon SageMaker Studio in un VPC a risorse esterne](studio-updated-and-internet-access.md).

## Fase 3. Aggiorna l’interfaccia utente di Studio
<a name="studio-updated-migrate-set-studio-updated"></a>

Prima di eseguire la migrazione del dominio esistente da Studio Classic a Studio, consigliamo di creare un dominio di test utilizzando Studio con le stesse configurazioni del dominio esistente.

### (Facoltativo) Creazione di un dominio di test
<a name="studio-updated-migrate-ui-create-test"></a>

Utilizza questo dominio di test per interagire con Studio, testare le configurazioni di rete e avviare le applicazioni, prima di eseguire la migrazione del dominio esistente.

1. Ottieni l’ID dominio del dominio esistente.

   1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

   1. Nel riquadro di navigazione a sinistra, espandi **Configurazioni di amministrazione** e scegli **Domini**. 

   1. Scegli il dominio esistente.

   1. Dalla pagina **Dettagli dominio**, seleziona la scheda **Impostazioni dominio**.

   1. Copia l’**ID dominio**.

1. Aggiungi l’ID dominio al dominio esistente.

   ```
   export REF_DOMAIN_ID="domain-id"
   export SM_REGION="region"
   ```

1. Utilizza `describe-domain` per ottenere informazioni importanti sul dominio esistente.

   ```
   export REF_EXECROLE=$(aws sagemaker describe-domain --region=$SM_REGION --domain-id=$REF_DOMAIN_ID | jq -r '.DefaultUserSettings.ExecutionRole')
   export REF_VPC=$(aws sagemaker describe-domain --region=$SM_REGION --domain-id=$REF_DOMAIN_ID | jq -r '.VpcId')
   export REF_SIDS=$(aws sagemaker describe-domain --region=$SM_REGION --domain-id=$REF_DOMAIN_ID | jq -r '.SubnetIds | join(",")')
   export REF_SGS=$(aws sagemaker describe-domain --region=$SM_REGION --domain-id=$REF_DOMAIN_ID | jq -r '.DefaultUserSettings.SecurityGroups | join(",")')
   export AUTHMODE=$(aws sagemaker describe-domain --region=$SM_REGION --domain-id=$REF_DOMAIN_ID | jq -r '.AuthMode')
   ```

1. Convalida i parametri.

   ```
   echo "Execution Role: $REF_EXECROLE || VPCID: $REF_VPC || SubnetIDs: $REF_SIDS || Security GroupIDs: $REF_SGS || AuthMode: $AUTHMODE"
   ```

1. Crea un dominio di test utilizzando le configurazioni del dominio esistente.

   ```
   IFS=',' read -r -a subnet_ids <<< "$REF_SIDS"
   IFS=',' read -r -a security_groups <<< "$REF_SGS"
   security_groups_json=$(printf '%s\n' "${security_groups[@]}" | jq -R . | jq -s .)
   
   aws sagemaker create-domain \
   --domain-name "TestV2Config" \
   --vpc-id $REF_VPC \
   --auth-mode $AUTHMODE \
   --subnet-ids "${subnet_ids[@]}" \
   --app-network-access-type VpcOnly \
   --default-user-settings "
   {
       \"ExecutionRole\": \"$REF_EXECROLE\",
       \"StudioWebPortal\": \"ENABLED\",
       \"DefaultLandingUri\": \"studio::\",
       \"SecurityGroups\": $security_groups_json
   }
   "
   ```

1. Dopo aver creato il dominio di test `In Service`, utilizza l’ID del dominio di test per creare un profilo utente. Questo profilo utente viene utilizzato per avviare e testare le applicazioni.

   ```
   aws sagemaker create-user-profile \
   --region="$SM_REGION" --domain-id=test-domain-id \
   --user-profile-name test-network-user
   ```

#### Test della funzionalità di Studio
<a name="studio-updated-migrate-ui-testing"></a>

Avvia il dominio di test utilizzando il profilo utente `test-network-user`. Ti consigliamo di testare accuratamente l’interfaccia utente di Studio e di creare applicazioni per testare la funzionalità di Studio in modalità `VPCOnly`. Testa i flussi di lavoro seguenti:
+ Crea un nuovo JupyterLab spazio, ambiente di test e connettività.
+ Crea un nuovo Editor di codice, basato sullo spazio, l’ambiente di test e la connettività Code-OSS, Visual Studio Code - Open Source.
+ Avvia una nuova app Studio Classic, un ambiente di test e una connettività.
+ Testa la connettività di Amazon Simple Storage Service con azioni di test di lettura e scrittura.

Se questi test hanno esito positivo, aggiorna il dominio esistente. In caso di errori, consigliamo di risolvere i problemi relativi ad ambiente e connettività prima di aggiornare il dominio esistente.

#### Pulizia delle risorse del dominio di test
<a name="studio-updated-migrate-ui-clean"></a>

Dopo aver eseguito la migrazione del dominio esistente, pulisci le risorse del dominio di test.

1. Aggiungi l’ID del dominio di test.

   ```
   export TEST_DOMAIN="test-domain-id"
   export SM_REGION="region"
   ```

1. Elenca tutte le applicazioni del dominio che sono in esecuzione.

   ```
   active_apps_json=$(aws sagemaker list-apps --region=$SM_REGION --domain-id=$TEST_DOMAIN)
   echo $active_apps_json
   ```

1. Analizza l’elenco JSON delle applicazioni in esecuzione ed eliminale. Se gli utenti hanno tentato di creare un’applicazione per la quale non dispongono delle autorizzazioni, potrebbero esserci degli spazi che non sono stati acquisiti nello script seguente. Questi spazi dovranno essere eliminati manualmente.

   ```
   echo "$active_apps_json" | jq -c '.Apps[]' | while read -r app;
   do
       if echo "$app" | jq -e '. | has("SpaceName")' > /dev/null;
       then
           app_type=$(echo "$app" | jq -r '.AppType')
           app_name=$(echo "$app" | jq -r '.AppName')
           domain_id=$(echo "$app" | jq -r '.DomainId')
           space_name=$(echo "$app" | jq -r '.SpaceName')
   
           echo "Deleting App - AppType: $app_type || AppName: $app_name || DomainId: $domain_id || SpaceName: $space_name"
           aws sagemaker delete-app --region=$SM_REGION --domain-id=$domain_id \
           --app-type $app_type --app-name $app_name --space-name $space_name
   
           echo "Deleting Space - AppType: $app_type || AppName: $app_name || DomainId: $domain_id || SpaceName: $space_name"
           aws sagemaker delete-space --region=$SM_REGION --domain-id=$domain_id \
           --space-name $space_name
       else
   
           app_type=$(echo "$app" | jq -r '.AppType')
           app_name=$(echo "$app" | jq -r '.AppName')
           domain_id=$(echo "$app" | jq -r '.DomainId')
           user_profile_name=$(echo "$app" | jq -r '.UserProfileName')
   
           echo "Deleting Studio Classic - AppType: $app_type || AppName: $app_name || DomainId: $domain_id || UserProfileName: $user_profile_name"
           aws sagemaker delete-app --region=$SM_REGION --domain-id=$domain_id \
           --app-type $app_type --app-name $app_name --user-profile-name $user_profile_name
   
       fi
   
   done
   ```

1. Elimina il profilo utente di test.

   ```
   aws sagemaker delete-user-profile \
   --region=$SM_REGION --domain-id=$TEST_DOMAIN \
   --user-profile-name "test-network-user"
   ```

1. Elimina il dominio di test.

   ```
   aws sagemaker delete-domain \
   --region=$SM_REGION --domain-id=$TEST_DOMAIN
   ```

Dopo aver testato la funzionalità di Studio con le configurazioni nel dominio di test, esegui la migrazione del dominio esistente. Se Studio è l’esperienza predefinita per un dominio, lo sarà per tutti gli utenti del dominio. Tuttavia, le impostazioni utente sono prioritarie rispetto alle impostazioni del dominio. Di conseguenza, se Studio Classic è l’esperienza predefinita configurata nelle impostazioni di un utente, l’utente avrà Studio Classic come esperienza predefinita. 

Puoi migrare il dominio esistente aggiornandolo dalla console SageMaker AI AWS CLI, o AWS CloudFormation. Scegli una delle schede seguenti per visualizzare le istruzioni pertinenti.

### Imposta Studio come esperienza predefinita per il dominio esistente utilizzando la console SageMaker AI
<a name="studio-updated-migrate-set-studio-updated-console"></a>

Puoi impostare Studio come esperienza predefinita per il dominio esistente utilizzando la console SageMaker AI.

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, espandi **Configurazioni di amministrazione** e scegli **Domini**. 

1. Scegli il dominio esistente per il quale desideri abilitare Studio come esperienza predefinita.

1. Nella pagina **Dettagli del dominio**, espandi **Abilita il nuovo Studio**.

1. (Facoltativo) Per visualizzare i dettagli sulla procedura necessaria per abilitare Studio come esperienza predefinita, scegli **Visualizza dettagli**. La pagina mostra quanto segue.
   + Nella sezione **Panoramica di SageMaker Studio** puoi visualizzare le applicazioni incluse o disponibili nell'interfaccia basata sul web di Studio. 
   + Nella sezione **Processo di abilitazione** puoi vedere le descrizioni delle attività del flusso di lavoro per abilitare Studio.
**Nota**  
Dovrai eseguire la migrazione dei dati manualmente. Per istruzioni sulla migrazione dei dati, consulta [(Facoltativo) Migrazione dei dati da Studio Classic a Studio](studio-updated-migrate-data.md).
   + Nella sezione **Torna all’esperienza Studio Classic** puoi vedere come tornare a Studio Classic dopo aver abilitato Studio come esperienza predefinita.

1. Per iniziare il processo di abilitazione di Studio come esperienza predefinita, scegli **Abilita il nuovo Studio**.

1. Nella sezione **Specifica e configura il ruolo** puoi vedere le applicazioni predefinite che vengono incluse automaticamente in Studio.

   Per impedire agli utenti di eseguire queste applicazioni, scegli il ruolo AWS Identity and Access Management (IAM) con una policy IAM che rifiuta l’accesso. Per informazioni su come creare una policy per limitare l’accesso, consulta [Fase 1. Aggiorna le autorizzazioni per la creazione di applicazioni](#studio-updated-migrate-limit-apps).

1. Nella sezione **Scegli il bucket S3 predefinito per collegare la policy CORS** puoi concedere a Studio l’accesso ai bucket Amazon S3. In questo caso, il bucket Amazon S3 predefinito è quello per Studio Classic. In questa fase puoi procedere come descritto di seguito:
   + Verifica il bucket Amazon S3 predefinito del dominio a cui collegare la policy CORS. Se il tuo dominio non dispone di un bucket Amazon S3 predefinito, SageMaker AI crea un bucket Amazon S3 con la policy CORS corretta allegata.
   + Puoi includere altri dieci bucket Amazon S3 a cui collegare la policy CORS.

     Se intendi includere più di dieci bucket, puoi aggiungerli manualmente. Per ulteriori informazioni su come collegare manualmente la policy CORS al bucket Amazon S3, consulta [(Facoltativo) Aggiornamento della policy CORS per accedere ai bucket Amazon S3](#studio-updated-migrate-cors).

   Per procedere, seleziona la casella di controllo accanto ad **Accetti di sostituire qualsiasi policy CORS esistente sui bucket Amazon S3 scelti?**

1. La sezione **Esegui la migrazione dei dati** contiene informazioni sui diversi volumi di archiviazione di dati per Studio Classic e Studio. Con questo processo, non verrà eseguita automaticamente la migrazione dei dati. Per istruzioni sulla migrazione dei dati, sulle configurazioni del ciclo di vita e sulle estensioni, consulta. JupyterLab [(Facoltativo) Migrazione dei dati da Studio Classic a Studio](studio-updated-migrate-data.md)

1. Dopo aver completato le attività sulla pagina e verificato la configurazione, scegli **Abilita il nuovo Studio**.

### Imposta Studio come esperienza predefinita per il dominio esistente utilizzando il AWS CLI
<a name="studio-updated-migrate-set-studio-updated-cli"></a>

Per impostare Studio come esperienza predefinita per il dominio esistente con la AWS CLI, utilizza la chiamata [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html). Devi impostare `ENABLED` come valore per `StudioWebPortal` e `studio::` come valore per `DefaultLandingUri` all’interno del parametro `default-user-settings`. 

`StudioWebPortal` indica se Studio è l’esperienza predefinita e `DefaultLandingUri` indica l’esperienza predefinita alla quale viene indirizzato l’utente quando accede al dominio. In questo esempio, l’impostazione di questi valori a livello di dominio (in `default-user-settings`) rende Studio l’esperienza predefinita per gli utenti all’interno del dominio.

Se un utente all’interno del dominio ha impostato `StudioWebPortal` su `DISABLED` e `DefaultLandingUri` su `app:JupyterServer:` a livello utente (in `UserSettings`), queste impostazioni hanno la precedenza rispetto a quelle del dominio. In altre parole, l’utente avrà Studio Classic come esperienza predefinita, indipendentemente dalle impostazioni del dominio. 

Nell’esempio di codice seguente viene illustrato come impostare Studio come esperienza predefinita per gli utenti all’interno del dominio:

```
aws sagemaker update-domain \
--domain-id existing-domain-id \
--region Regione AWS \
--default-user-settings '
{
    "StudioWebPortal": "ENABLED",
    "DefaultLandingUri": "studio::"
}
'
```
+ Per ottenere `existing-domain-id`, utilizza le istruzioni seguenti:

**Per ottenere `existing-domain-id`**

  1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

  1. Nel riquadro di navigazione a sinistra, espandi **Configurazioni di amministrazione** e scegli **Domini**. 

  1. Scegli il dominio esistente.

  1. Dalla pagina **Dettagli dominio**, seleziona la scheda **Impostazioni dominio**.

  1. Copia l’**ID dominio**.
+ Per assicurarti di utilizzare quello corretto Regione AWS per il tuo dominio, utilizza le seguenti istruzioni: 

**Per ottenere `Regione AWS`**

  1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

  1. Nel riquadro di navigazione a sinistra, espandi **Configurazioni di amministrazione** e scegli **Domini**. 

  1. Scegli il dominio esistente.

  1. Nella pagina **Dettagli del dominio**, verifica che si tratti del dominio esistente.

  1. Espandi l'elenco a Regione AWS discesa in alto a destra della console SageMaker AI e utilizza l' Regione AWS ID corrispondente a destra del tuo Regione AWS nome. Ad esempio, `us-west-1`.

Dopo aver eseguito la migrazione della tua esperienza predefinita a Studio, puoi concedere a Studio l’accesso ai bucket Amazon S3. Ad esempio, puoi includere l’accesso al tuo bucket Amazon S3 predefinito di Studio Classic e a bucket Amazon S3 aggiuntivi. Per farlo, devi collegare manualmente una configurazione [Condivisione delle risorse multiorigine](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) (CORS) ai bucket Amazon S3. Per ulteriori informazioni su come collegare manualmente la policy CORS ai bucket Amazon S3, consulta [(Facoltativo) Aggiornamento della policy CORS per accedere ai bucket Amazon S3](#studio-updated-migrate-cors).

Allo stesso modo, puoi impostare Studio come esperienza predefinita quando crei un dominio dalla chiamata AWS CLI using the [create-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-domain.html). 

### Imposta Studio come esperienza predefinita per il dominio esistente utilizzando AWS CloudFormation
<a name="studio-updated-migrate-set-studio-updated-cloud-formation"></a>

Puoi impostare l’esperienza predefinita quando crei un dominio con AWS CloudFormation. Per un modello di CloudFormation migrazione, consulta [SageMaker Studio Administrator IaC Templates](https://github.com/aws-samples/sagemaker-studio-admin-iac-templates/tree/main?tab=readme-ov-file#phase-1-migration). Per ulteriori informazioni sulla creazione di un dominio utilizzando CloudFormation, consulta [Creazione di un dominio Amazon SageMaker AI utilizzando CloudFormation](https://github.com/aws-samples/cloudformation-studio-domain?tab=readme-ov-file#creating-sagemaker-studio-domains-using-cloudformation).

Per informazioni sulla risorsa di dominio supportata da AWS CloudFormation, consulta [AWS:: SageMaker AI: :Domain](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-domain.html#cfn-sagemaker-domain-defaultusersettings).

Dopo aver eseguito la migrazione della tua esperienza predefinita a Studio, puoi concedere a Studio l’accesso ai bucket Amazon S3. Ad esempio, puoi includere l’accesso al tuo bucket Amazon S3 predefinito di Studio Classic e a bucket Amazon S3 aggiuntivi. Per farlo, devi collegare manualmente una configurazione [Condivisione delle risorse multiorigine](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) (CORS) ai bucket Amazon S3. Per informazioni su come collegare manualmente la policy CORS ai bucket Amazon S3, consulta [(Facoltativo) Aggiornamento della policy CORS per accedere ai bucket Amazon S3](#studio-updated-migrate-cors).

### (Facoltativo) Aggiornamento della policy CORS per accedere ai bucket Amazon S3
<a name="studio-updated-migrate-cors"></a>

In Studio Classic, gli utenti possono creare, elencare e caricare file nei bucket Amazon Simple Storage Service (Amazon S3). Per supportare la stessa esperienza in Studio, gli amministratori devono collegare una configurazione [Condivisione delle risorse multiorigine](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) (CORS) ai bucket Amazon S3. Si tratta di un’operazione necessaria perché Studio effettua chiamate Amazon S3 dal browser Internet. Il browser invoca CORS per conto degli utenti. Di conseguenza, se la policy CORS non è collegata ai bucket Amazon S3, tutte le richieste ai bucket Amazon S3 hanno esito negativo.

Potrebbe essere necessario collegare manualmente la policy CORS ai bucket Amazon S3 per i seguenti motivi.
+ Se esiste già un bucket Amazon S3 predefinito a cui non è collegata la policy CORS corretta durante la migrazione dell’esperienza predefinita del dominio esistente a Studio.
+ Se utilizzi il AWS CLI per migrare l'esperienza predefinita del dominio esistente a Studio. Per informazioni sull'utilizzo di AWS CLI to migrate, consulta. [Imposta Studio come esperienza predefinita per il dominio esistente utilizzando il AWS CLI](#studio-updated-migrate-set-studio-updated-cli)
+ Se desideri collegare la policy CORS a ulteriori bucket Amazon S3.

**Nota**  
Se prevedi di utilizzare la console SageMaker AI per abilitare Studio come esperienza predefinita, i bucket Amazon S3 a cui colleghi la policy CORS verranno sostituite dalle politiche CORS esistenti durante la migrazione. Per questo motivo, puoi ignorare le istruzioni manuali seguenti.  
Tuttavia, se hai già utilizzato la console SageMaker AI per la migrazione e desideri includere altri bucket Amazon S3 a cui allegare la policy CORS, continua con le seguenti istruzioni manuali.

La procedura seguente mostra come aggiungere manualmente una configurazione CORS a un bucket Amazon S3.

**Per aggiungere una configurazione CORS a un bucket Amazon S3**

1. Verifica che esista un bucket Amazon S3 nello Regione AWS stesso dominio esistente con il nome seguente. Per istruzioni, consulta [Viewing the properties for an Amazon S3 bucket](https://docs.aws.amazon.com//AmazonS3/latest/userguide/view-bucket-properties.html). 

   ```
   sagemaker-region-account-id
   ```

1. Aggiungi una configurazione CORS con il contenuto seguente al bucket Amazon S3 predefinito. Per istruzioni, consulta [Configuring cross-origin resource sharing (CORS)](https://docs.aws.amazon.com//AmazonS3/latest/userguide/enabling-cors-examples.html).

   ```
   [
       {
           "AllowedHeaders": [
               "*"
           ],
           "AllowedMethods": [
               "POST",
               "PUT",
               "GET",
               "HEAD",
               "DELETE"
           ],
           "AllowedOrigins": [
               "https://*.sagemaker.aws"
           ],
           "ExposeHeaders": [
               "ETag",
               "x-amz-delete-marker",
               "x-amz-id-2",
               "x-amz-request-id",
               "x-amz-server-side-encryption",
               "x-amz-version-id"
           ]
       }
   ]
   ```

### (Facoltativo) Esegui la migrazione da Data Wrangler in Studio Classic a Canvas SageMaker
<a name="studio-updated-migrate-dw"></a>

Amazon SageMaker Data Wrangler esiste come funzionalità propria nell'esperienza Studio Classic. Quando abiliti Studio come esperienza predefinita, utilizza l'applicazione [Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html) per accedere alla funzionalità Data Wrangler. SageMaker Canvas è un'applicazione in cui puoi addestrare e distribuire modelli di apprendimento automatico senza scrivere alcun codice e Canvas offre funzionalità di preparazione dei dati basate su Data Wrangler.

La nuova esperienza di Studio non supporta l’interfaccia utente classica di Data Wrangler, quindi devi creare un’applicazione Canvas per continuare a utilizzare Data Wrangler. Tuttavia, devi disporre delle autorizzazioni necessarie per creare e utilizzare le applicazioni Canvas.

Completa i seguenti passaggi per allegare le politiche di autorizzazione necessarie al ruolo IAM del tuo dominio SageMaker AI o al ruolo IAM dell'utente. AWS 

**Per concedere le autorizzazioni per la funzionalità Data Wrangler all’interno di Canvas**

1. Allega la policy AWS gestita [AmazonSageMakerFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol.html#security-iam-awsmanpol-AmazonSageMakerFullAccess)al ruolo IAM del tuo utente. Per la procedura su come collegare le policy IAM a un ruolo, consulta [Adding IAM identity permissions (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console) nella *Guida per l’utente di AWS IAM*.

   Se questa policy di autorizzazione è troppo permissiva per il tuo caso d’uso, puoi creare policy limitate che includano almeno le autorizzazioni seguenti:

   ```
   {
       "Sid": "AllowStudioActions",
       "Effect": "Allow",
       "Action": [
           "sagemaker:CreatePresignedDomainUrl",
           "sagemaker:DescribeDomain",
           "sagemaker:ListDomains",
           "sagemaker:DescribeUserProfile",
           "sagemaker:ListUserProfiles",
           "sagemaker:DescribeSpace",
           "sagemaker:ListSpaces",
           "sagemaker:DescribeApp",
           "sagemaker:ListApps"
       ],
       "Resource": "*"
   },
   {
       "Sid": "AllowAppActionsForUserProfile",
       "Effect": "Allow",
       "Action": [
           "sagemaker:CreateApp",
           "sagemaker:DeleteApp"
       ],
       "Resource": "arn:aws:sagemaker:region:account-id:app/domain-id/user-profile-name/canvas/*",
       "Condition": {
           "Null": {
               "sagemaker:OwnerUserProfileArn": "true"
           }
       }
   }
   ```

1. Allega la policy AWS gestita [AmazonSageMakerCanvasDataPrepFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasDataPrepFullAccess.html)al ruolo IAM del tuo utente.

Dopo aver assegnato le autorizzazioni necessarie, puoi creare un’applicazione Canvas e accedere. Per ulteriori informazioni, consulta [Guida introduttiva all'utilizzo di Amazon SageMaker Canvas](canvas-getting-started.md).

Dopo aver effettuato l’accesso a Canvas, puoi accedere direttamente a Data Wrangler e iniziare a creare flussi di dati. Per ulteriori informazioni, consulta [Preparazione dei dati](canvas-data-prep.md) nella documentazione di Canvas.

### (Facoltativo) Esegui la migrazione da Autopilot in Studio Classic a Canvas SageMaker
<a name="studio-updated-migrate-autopilot"></a>

[Amazon SageMaker Autopilot](https://docs.aws.amazon.com/sagemaker/AWSIronmanApiDoc/integ/npepin-studio-migration-autopilot-to-canvas/latest/dg/autopilot-automate-model-development.html) esiste come funzionalità propria nell'esperienza Studio Classic. Quando esegui la migrazione all'utilizzo dell'esperienza Studio aggiornata, utilizza l'applicazione [Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html) per continuare a utilizzare le stesse funzionalità di apprendimento automatico (AutoML) tramite un'interfaccia utente (UI). SageMaker Canvas è un'applicazione in cui è possibile addestrare e distribuire modelli di machine learning senza scrivere alcun codice e Canvas fornisce un'interfaccia utente per eseguire le attività di AutoML.

La nuova esperienza di Studio non supporta l’interfaccia utente classica di Autopilot. Se desideri continuare a utilizzare le funzionalità AutoML di Autopilot tramite un’interfaccia utente, devi creare un’applicazione Canvas. 

Tuttavia, devi disporre delle autorizzazioni necessarie per creare e utilizzare le applicazioni Canvas.
+ Se accedi a SageMaker Canvas da Studio, aggiungi tali autorizzazioni al ruolo di esecuzione del tuo dominio o profilo utente SageMaker AI.
+ Se accedi a SageMaker Canvas dalla console, aggiungi tali autorizzazioni al ruolo AWS IAM del tuo utente.
+ Se accedi a SageMaker Canvas tramite un [URL predefinito, aggiungi tali autorizzazioni al ruolo IAM che stai utilizzando per l'accesso SSO a Okta](https://docs.aws.amazon.com/sagemaker/latest/dg/setting-up-canvas-sso.html#canvas-optional-access).

Per abilitare le funzionalità AutoML in Canvas, aggiungi le policy seguenti al ruolo di esecuzione o al ruolo utente IAM.
+ AWS [politica gestita:. `CanvasFullAccess`](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess) 
+ Policy inline:

  ```
  {
      "Sid": "AllowAppActionsForUserProfile",
      "Effect": "Allow",
      "Action": [
          "sagemaker:CreateApp",
          "sagemaker:DeleteApp"
      ],
      "Resource": "arn:aws:sagemaker:region:account-id:app/domain-id/user-profile-name/canvas/*",
      "Condition": {
          "Null": {
              "sagemaker:OwnerUserProfileArn": "true"
          }
      }
  }
  ```

**Per collegare le policy IAM a un ruolo di esecuzione**

1. 

**Trova il ruolo di esecuzione associato al tuo profilo utente SageMaker AI**

   1. Nella console SageMaker AI[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/), vai su **Domini**, quindi scegli il tuo dominio SageMaker AI.

   1. L’ARN del ruolo di esecuzione è elencato in *Ruolo di esecuzione* nella pagina **Dettagli utente** del profilo utente. Prendi nota del nome del ruolo di esecuzione nell’ARN.

   1. Nella console IAM [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/), scegli **Ruoli**.

   1. Cerca il ruolo in base al nome nel campo di ricerca.

   1. Seleziona il ruolo.

1. Aggiungi le policy al ruolo.

   1. Nella console IAM [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/), scegli **Ruoli**.

   1. Cerca il ruolo in base al nome nel campo di ricerca.

   1. Seleziona il ruolo.

   1. Nella scheda **Autorizzazioni**, vai al menu a discesa **Aggiungi autorizzazioni**.

   1. 
      + Per le policy gestite: seleziona **Collega policy** e cerca il nome della policy gestita da collegare.

        Seleziona la policy, quindi scegli **Aggiungi autorizzazioni**.
      + Per le policy inline: seleziona **Crea policy inline**, incolla la policy nella scheda JSON, scegli Avanti, assegna un nome alla policy e scegli **Crea**.

Per la procedura su come collegare le policy IAM a un ruolo, consulta [Adding IAM identity permissions (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console) nella *Guida per l’utente di AWS IAM*.

Dopo aver assegnato le autorizzazioni necessarie, puoi creare un’applicazione Canvas e accedere. Per ulteriori informazioni, consulta [Guida introduttiva all'utilizzo di Amazon SageMaker Canvas](canvas-getting-started.md).

## Impostazione di Studio Classic come esperienza predefinita
<a name="studio-updated-migrate-revert"></a>

Gli amministratori possono reimpostare Studio Classic come esperienza predefinita per un dominio esistente. Questa operazione può essere eseguita tramite la AWS CLI.

**Nota**  
Quando è impostato come esperienza predefinita a livello di dominio, Studio Classic è l’esperienza predefinita per tutti gli utenti del dominio. Tuttavia, le impostazioni a livello di utente hanno la precedenza sulle impostazioni a livello di dominio. Quindi, se un utente ha impostato l’esperienza predefinita su Studio, avrà Studio come esperienza predefinita. 

Per tornare a Studio Classic come esperienza predefinita per il dominio esistente utilizzando la AWS CLI, usa la chiamata [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html). Nel campo `default-user-settings`, imposta:
+ Il valore `StudioWebPortal` su `DISABLED`.
+ Il valore `DefaultLandingUri` su `app:JupyterServer:`.

`StudioWebPortal` indica se Studio è l’esperienza predefinita e `DefaultLandingUri` indica l’esperienza predefinita alla quale viene indirizzato l’utente quando accede al dominio. In questo esempio, l’impostazione di questi valori a livello di dominio (in `default-user-settings`) rende Studio Classic l’esperienza predefinita per gli utenti all’interno del dominio.

Se un utente all’interno del dominio ha impostato `StudioWebPortal` su `ENABLED` e `DefaultLandingUri` su `studio::` a livello utente (in `UserSettings`), queste impostazioni hanno la precedenza rispetto a quelle a livello di dominio. In altre parole, l’utente avrà Studio come esperienza predefinita, indipendentemente dalle impostazioni a livello di dominio. 

Nell’esempio di codice seguente viene illustrato come impostare Studio Classic come esperienza predefinita per gli utenti all’interno del dominio:

```
aws sagemaker update-domain \
--domain-id existing-domain-id \
--region Regione AWS \
--default-user-settings '
{
    "StudioWebPortal": "DISABLED",
    "DefaultLandingUri": "app:JupyterServer:"
}
'
```

Utilizza le istruzioni seguenti per ottenere `existing-domain-id`.

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, espandi **Configurazioni di amministrazione** e scegli **Domini**. 

1. Scegli il dominio esistente.

1. Dalla pagina **Dettagli dominio**, seleziona la scheda **Impostazioni dominio**.

1. Copia l’**ID dominio**.

Per ottenere il tuo`Regione AWS`, usa le seguenti istruzioni per assicurarti di utilizzare quello corretto Regione AWS per il tuo dominio.

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, espandi **Configurazioni di amministrazione** e scegli **Domini**. 

1. Scegli il dominio esistente.

1. Nella pagina **Dettagli del dominio**, verifica che si tratti del dominio esistente.

1. Espandi l'elenco a Regione AWS discesa in alto a destra della console SageMaker AI e utilizza l' Regione AWS ID corrispondente a destra del tuo Regione AWS nome. Ad esempio, `us-west-1`.

# (Facoltativo) Migrazione di immagini personalizzate e configurazioni del ciclo di vita
<a name="studio-updated-migrate-lcc"></a>

È necessario aggiornare le immagini personalizzate e gli script di configurazione del ciclo di vita (LCC) per utilizzare il modello di esecuzione locale semplificato di Amazon Studio. SageMaker Se non hai creato immagini o configurazioni del ciclo di vita personalizzate nel tuo dominio, salta questa fase.

Amazon SageMaker Studio Classic funziona in un ambiente diviso con:
+ Un’applicazione `JupyterServer` che esegue il Jupyter Server. 
+ Notebook Studio Classic eseguiti su una o più applicazioni `KernelGateway`. 

Studio non utilizza più un ambiente diviso. Studio esegue JupyterLab and Code Editor, basato su applicazioni Code-OSS, Visual Studio Code - Open Source in un modello di runtime locale. Per ulteriori informazioni sulla modifica dell'architettura, consulta [Aumentare la produttività su Amazon SageMaker Studio](https://aws.amazon.com/blogs//machine-learning/boost-productivity-on-amazon-sagemaker-studio-introducing-jupyterlab-spaces-and-generative-ai-tools/). 

## Migrazione di immagini personalizzate
<a name="studio-updated-migrate-lcc-custom"></a>

Le immagini personalizzate esistenti di Studio Classic potrebbero non funzionare in Studio. Ti consigliamo di creare una nuova immagine personalizzata che soddisfi i requisiti di Studio. La versione di Studio semplifica il processo di creazione di immagini personalizzate fornendo[SageMaker Politica di supporto delle immagini di Studio](sagemaker-distribution.md). SageMaker Le immagini di AI Distribution includono librerie e pacchetti popolari per l'apprendimento automatico, la scienza dei dati e la visualizzazione dell'analisi dei dati. Per un elenco delle immagini di SageMaker distribuzione di base e informazioni sull'account Amazon Elastic Container Registry, consulta[SageMaker Immagini Amazon disponibili per l'uso con i notebook Studio Classic](notebooks-available-images.md).

Per creare un’immagine personalizzata, utilizza una delle operazioni seguenti.
+ Estendi un'immagine di SageMaker distribuzione con pacchetti e moduli personalizzati. Queste immagini sono preconfigurate con un JupyterLab editor di codice, basato su Code-OSS, Visual Studio Code - Open Source.
+ Crea un file Dockerfile personalizzato seguendo le istruzioni riportate in [Bring Your Own Image (BYOI)](studio-updated-byoi.md). Per assicurare la compatibilità con Studio, devi installare JupyterLab e CodeServer open source sull’immagine.

## Migrazione delle configurazioni del ciclo di vita
<a name="studio-updated-migrate-lcc-lcc"></a>

Grazie al modello di runtime locale semplificato di Studio, consigliamo di migrare la struttura di Studio Classic esistente. LCCs In Studio Classic, spesso è necessario creare configurazioni del ciclo di vita separate per entrambe le applicazioni, KernelGateway e JupyterServer. Poiché le KernelGateway applicazioni JupyterServer e vengono eseguite su risorse di elaborazione separate all'interno di Studio Classic, Studio Classic LCCs può essere di entrambi i tipi: 
+ JupyterServerLCC: gestiscono LCCs principalmente le azioni domestiche di un utente, tra cui l'impostazione del proxy, la creazione di variabili di ambiente e lo spegnimento automatico delle risorse.
+ KernelGatewayLCC: LCCs regolano le ottimizzazioni dell'ambiente dei notebook Studio Classic. Queste includono l’aggiornamento delle versioni del pacchetto numpy nel kernel `Data Science 3.0` e l’installazione del pacchetto snowflake nel kernel `Pytorch 2.0 GPU`.

Nell’architettura semplificata di Studio, è necessario solo uno script LCC da eseguire all’avvio dell’applicazione. Sebbene la migrazione degli script LCC vari in base all'ambiente di sviluppo, consigliamo di combinare JupyterServer e KernelGateway LCCs creare un LCC combinato.

LCCs in Studio può essere associato a una delle seguenti applicazioni: 
+ JupyterLab 
+ Editor di codici

Gli utenti possono selezionare la LCC per il rispettivo tipo di applicazione durante la creazione di uno spazio oppure possono utilizzare la LCC predefinita impostata dall’amministratore.

**Nota**  
Gli script di spegnimento automatico di Studio Classic esistenti non funzionano con Studio. Per un esempio di script di spegnimento automatico di Studio, consulta Esempi di configurazione del [ciclo di vita di SageMaker Studio](https://github.com/aws-samples/sagemaker-studio-apps-lifecycle-config-examples).

### Considerazioni relative al refactoring LCCs
<a name="studio-updated-migrate-lcc-considerations"></a>

Considerate le seguenti differenze tra Studio Classic e Studio durante il refactoring del vostro. LCCs
+ JupyterLab e le applicazioni Code Editor, una volta create, vengono eseguite come `sagemaker-user` con `UID:1001` e. `GID:101` Per impostazione predefinita, `sagemaker-user` dispone delle autorizzazioni necessarie per assumere le sudo/root autorizzazioni. KernelGatewayle applicazioni vengono eseguite come impostazione `root` predefinita.
+ SageMaker Le immagini di distribuzione eseguite all'interno delle app Code Editor JupyterLab e Code Editor utilizzano il gestore di pacchetti Debian basato,`apt-get`.
+ Le applicazioni Studio JupyterLab e Code Editor utilizzano il gestore di Conda pacchetti. SageMaker L'intelligenza artificiale crea un unico Python3 Conda ambiente di base all'avvio di un'applicazione Studio. Per informazioni sull’aggiornamento dei pacchetti nell’ambiente Conda di base e sulla creazione di nuovi ambienti Conda, consulta [JupyterLab guida per l'utente](studio-updated-jl-user-guide.md). D’altro canto, non tutte le applicazioni KernelGateway utilizzano Conda come gestore dei pacchetti.
+ L' JupyterLab applicazione Studio utilizza`JupyterLab 4.0`, mentre Studio Classic utilizza`JupyterLab 3.0`. Verifica che tutte le estensioni JupyterLab che utilizzi siano compatibili con `JupyterLab 4.0`. Per ulteriori informazioni sulle estensioni, consulta [Compatibilità delle estensioni con JupyterLab 4.0](https://github.com/jupyterlab/jupyterlab/issues/14590).

# (Facoltativo) Migrazione dei dati da Studio Classic a Studio
<a name="studio-updated-migrate-data"></a>

Studio Classic e Studio utilizzano due diversi tipi di volumi di archiviazione. Studio Classic utilizza un singolo volume Amazon Elastic File System (Amazon EFS) per archiviare i dati di tutti gli utenti e gli spazi condivisi nel dominio. In Studio, ogni spazio ha il proprio volume Amazon Elastic Block Store (Amazon EBS). Quando aggiorni l'esperienza predefinita di un dominio esistente, SageMaker AI monta automaticamente una cartella in un volume Amazon EFS per ogni utente in un dominio. Di conseguenza, gli utenti possono accedere ai file da Studio Classic nelle proprie applicazioni Studio. Per ulteriori informazioni, consulta [Montaggio automatico di Amazon EFS in Studio](studio-updated-automount.md). 

Puoi anche non aderire al montaggio automatico di Amazon EFS ed eseguire la migrazione manuale dei dati per consentire agli utenti di accedere ai file da Studio Classic nelle applicazioni Studio. Per farlo, devi trasferire i file dalle home directory degli utenti ai volumi Amazon EBS associati a tali spazi. La sezione seguente fornisce informazioni su questo flusso di lavoro. Per ulteriori informazioni sulla non adesione al montaggio automatico di Amazon EFS, consulta [Scelta dell’opzione di non adesione al montaggio automatico di Amazon EFS](studio-updated-automount-optout.md).

## Migrazione manuale di tutti i dati da Studio Classic
<a name="studio-updated-migrate-data-all"></a>

La sezione seguente descrive come eseguire la migrazione di tutti i dati dal volume di archiviazione di Studio Classic alla nuova esperienza Studio.

Durante la migrazione manuale di dati, codice e artefatti di un utente da Studio Classic a Studio, suggeriamo di utilizzare uno dei seguenti approcci:

1. Utilizzo di un volume Amazon EFS personalizzato

1. Utilizzo di Amazon Simple Storage Service (Amazon S3)

Se hai utilizzato Amazon SageMaker Data Wrangler in Studio Classic e desideri migrare i file del flusso di dati, scegli una delle seguenti opzioni di migrazione:
+ Se desideri eseguire la migrazione di tutti i dati dal volume di archiviazione di Studio Classic, inclusi i file del flusso di dati, consulta [Migrazione manuale di tutti i dati da Studio Classic](#studio-updated-migrate-data-all) e segui le istruzioni nella sezione **Utilizzo di Amazon S3 per eseguire la migrazione dei dati**. Quindi, passa alla sezione [Importazione dei file del flusso in Canvas](#studio-updated-migrate-flows-import).
+ Se desideri eseguire la migrazione dei soli file del flusso di dati, senza includere gli altri dati del volume di archiviazione di Studio Classic, vai alla sezione [Migrazione dei flussi di dati da Data Wrangler](#studio-updated-migrate-flows).

### Prerequisiti
<a name="studio-updated-migrate-data-prereq"></a>

Prima di eseguire questa procedura, completa i prerequisiti descritti in [Completamento dei prerequisiti per la migrazione dell’esperienza di Studio](studio-updated-migrate-prereq.md). Devi anche completare le fasi indicate in [Migrazione dell’interfaccia utente da Studio Classic a Studio](studio-updated-migrate-ui.md).

### Scelta di un approccio
<a name="studio-updated-migrate-data-choose"></a>

Considera quanto segue quando scegli un approccio per la migrazione dei dati di Studio Classic.

**Pro e contro dell’utilizzo di un volume Amazon EFS personalizzato**

In questo approccio, utilizzi un' AWS DataSync attività Amazon EFS-to-Amazon EFS (una tantum o con cadenza) per copiare i dati, quindi monti il volume Amazon EFS di destinazione negli spazi di un utente. In questo modo, gli utenti possono accedere ai dati di Studio Classic nei propri ambienti di calcolo Studio.

Pro:
+ Negli spazi dell’utente sono visibili solo i dati della home directory dell’utente. Non si verifica alcun incrocio dei dati.
+ La sincronizzazione dal volume Amazon EFS di origine a un volume Amazon EFS di destinazione è più sicura rispetto al montaggio diretto del volume Amazon EFS di origine gestito dall' SageMaker IA negli spazi. In questo modo si evita il potenziale impatto sui file dell’utente nella home directory.
+ Gli utenti hanno la flessibilità di continuare a lavorare nelle applicazioni Studio Classic e Studio, oltre ad avere i dati disponibili in entrambe le applicazioni se AWS DataSync è configurato a cadenza regolare.
+ Non è necessario ripetere le operazioni di push and pull con Amazon S3.

Contro:
+ Nessun accesso in scrittura al volume Amazon EFS di destinazione montato negli spazi dell’utente. Per ottenere l’accesso in scrittura al volume Amazon EFS di destinazione, i clienti devono montare il volume Amazon EFS di destinazione su un’istanza Amazon Elastic Compute Cloud e fornire agli utenti le autorizzazioni appropriate per scrivere nel prefisso Amazon EFS.
+ Richiede la modifica dei gruppi di sicurezza gestiti dall' SageMaker IA per consentire il flusso in entrata e in uscita del file system di rete (NFS).
+ Costa di più rispetto all’utilizzo di Amazon S3.
+ Se stai [eseguendo la migrazione dei flussi di dati da Data Wrangler a Studio Classic](#studio-updated-migrate-flows), devi seguire la procedura per esportare manualmente i file del flusso.

**Pro e contro dell’utilizzo di Amazon S3**

In questo approccio, utilizzi un' AWS DataSync attività Amazon EFS-to-Amazon S3 (una tantum o con cadenza) per copiare i dati, quindi crei una configurazione del ciclo di vita per copiare i dati dell'utente da Amazon S3 al volume Amazon EBS del suo spazio privato.

Pro:
+ Se la LCC è collegata al dominio, gli utenti possono scegliere di utilizzarla per copiare i dati nel proprio spazio o di eseguire lo spazio senza script LCC. In questo modo gli utenti possono scegliere di copiare i propri file solo negli spazi necessari.
+ Se un' AWS DataSync attività è impostata su una cadenza, gli utenti possono riavviare l'applicazione Studio per scaricare i file più recenti.
+ Poiché i dati vengono copiati su Amazon EBS, gli utenti dispongono delle autorizzazioni di scrittura sui file.
+ L’archiviazione Amazon S3 è più conveniente di Amazon EFS.
+ Se stai [migrando i flussi di dati da Data Wrangler in Studio Classic](#studio-updated-migrate-flows), puoi saltare i passaggi di esportazione manuale e importare direttamente i flussi di dati in Canvas da SageMaker Amazon S3.

Contro:
+ Per prevenire l’incrocio di dati, gli amministratori devono creare policy AWS Identity and Access Management a livello di utente per garantire che gli utenti possano accedere solo al prefisso Amazon S3 che contiene i loro file.

### Utilizzo di un volume Amazon EFS personalizzato per eseguire la migrazione dei dati
<a name="studio-updated-migrate-data-approach1"></a>

In questo approccio, utilizzi un Amazon EFS-to-Amazon EFS AWS DataSync per copiare il contenuto di un volume Amazon EFS Studio Classic su un volume Amazon EFS di destinazione una volta o con cadenza regolare, quindi monta il volume Amazon EFS di destinazione negli spazi di un utente. In questo modo, gli utenti possono accedere ai dati di Studio Classic nei propri ambienti di calcolo Studio.

1. Crea un volume Amazon EFS di destinazione. Per trasferire i dati in questo volume Amazon EFS e montarlo nello spazio dell’utente corrispondente, utilizza il montaggio a livello di prefisso.

   ```
   export SOURCE_DOMAIN_ID="domain-id"
   export AWS_REGION="region"
   
   export TARGET_EFS=$(aws efs create-file-system --performance-mode generalPurpose --throughput-mode bursting --encrypted --region $REGION | jq -r '.FileSystemId')
   
   echo "Target EFS volume Created: $TARGET_EFS"
   ```

1. Aggiungi le variabili per il volume Amazon EFS di origine attualmente collegato al dominio e utilizzato da tutti gli utenti. Le informazioni su Amazon Virtual Private Cloud del dominio sono necessarie per garantire che Amazon EFS di destinazione venga creato nello stesso Amazon VPC, nella stessa sottorete e con la stessa configurazione del gruppo di sicurezza.

   ```
   export SOURCE_EFS=$(aws sagemaker describe-domain --domain-id $SOURCE_DOMAIN_ID | jq -r '.HomeEfsFileSystemId')
   export VPC_ID=$(aws sagemaker describe-domain --domain-id $SOURCE_DOMAIN_ID | jq -r '.VpcId')
   
   echo "EFS managed by SageMaker: $SOURCE_EFS | VPC: $VPC_ID"
   ```

1. Crea una destinazione di montaggio Amazon EFS nello stesso Amazon VPC e nella stessa sottorete Amazon del volume Amazon EFS di origine, con la stessa configurazione del gruppo di sicurezza. La destinazione di montaggio diventa disponibile dopo alcuni minuti.

   ```
   export EFS_VPC_ID=$(aws efs describe-mount-targets --file-system-id $SOURCE_EFS | jq -r ".MountTargets[0].VpcId")
   export EFS_AZ_NAME=$(aws efs describe-mount-targets --file-system-id $SOURCE_EFS | jq -r ".MountTargets[0].AvailabilityZoneName")
   export EFS_AZ_ID=$(aws efs describe-mount-targets --file-system-id $SOURCE_EFS | jq -r ".MountTargets[0].AvailabilityZoneId")
   export EFS_SUBNET_ID=$(aws efs describe-mount-targets --file-system-id $SOURCE_EFS | jq -r ".MountTargets[0].SubnetId")
   export EFS_MOUNT_TARG_ID=$(aws efs describe-mount-targets --file-system-id $SOURCE_EFS | jq -r ".MountTargets[0].MountTargetId")
   export EFS_SG_IDS=$(aws efs describe-mount-target-security-groups --mount-target-id $EFS_MOUNT_TARG_ID | jq -r '.SecurityGroups[]')
   
   aws efs create-mount-target \
   --file-system-id $TARGET_EFS \
   --subnet-id $EFS_SUBNET_ID \
   --security-groups $EFS_SG_IDS
   ```

1. Crea posizioni di origine e destinazione di Amazon EFS per l' AWS DataSync attività.

   ```
   export SOURCE_EFS_ARN=$(aws efs describe-file-systems --file-system-id $SOURCE_EFS | jq -r ".FileSystems[0].FileSystemArn")
   export TARGET_EFS_ARN=$(aws efs describe-file-systems --file-system-id $TARGET_EFS | jq -r ".FileSystems[0].FileSystemArn")
   export EFS_SUBNET_ID_ARN=$(aws ec2 describe-subnets --subnet-ids $EFS_SUBNET_ID | jq -r ".Subnets[0].SubnetArn")
   export ACCOUNT_ID=$(aws ec2 describe-security-groups --group-id $EFS_SG_IDS | jq -r ".SecurityGroups[0].OwnerId")
   export EFS_SG_ID_ARN=arn:aws:ec2:$REGION:$ACCOUNT_ID:security-group/$EFS_SG_IDS
   
   export SOURCE_LOCATION_ARN=$(aws datasync create-location-efs --subdirectory "/" --efs-filesystem-arn $SOURCE_EFS_ARN --ec2-config SubnetArn=$EFS_SUBNET_ID_ARN,SecurityGroupArns=$EFS_SG_ID_ARN --region $REGION | jq -r ".LocationArn")
   export DESTINATION_LOCATION_ARN=$(aws datasync create-location-efs --subdirectory "/" --efs-filesystem-arn $TARGET_EFS_ARN --ec2-config SubnetArn=$EFS_SUBNET_ID_ARN,SecurityGroupArns=$EFS_SG_ID_ARN --region $REGION | jq -r ".LocationArn")
   ```

1. Consenti il traffico tra i montaggi del file system di rete (NFS) di origine e di destinazione. Quando viene creato un nuovo dominio, l' SageMaker IA crea 2 gruppi di sicurezza.
   + Gruppo di sicurezza NFS in entrata con solo traffico in entrata.
   + Gruppo di sicurezza NFS in uscita con solo traffico in uscita.

   Il file system di rete di origine e quello di destinazione si trovano all’interno degli stessi gruppi di sicurezza. È possibile consentire il traffico tra questi supporti da Console di gestione AWS o AWS CLI.
   + Consenti il traffico proveniente da Console di gestione AWS

     1. Accedi Console di gestione AWS e apri la console Amazon VPC all'indirizzo. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

     1. Scegli i **Security Groups** (Gruppi di sicurezza).

     1. Cerca l’ID del dominio esistente nella pagina **Gruppi di sicurezza**.

        ```
        d-xxxxxxx
        ```

        I risultati dovrebbero restituire due gruppi di sicurezza che includono l’ID dominio nel nome.
        + `security-group-for-inbound-nfs-domain-id`
        + `security-group-for-outbound-nfs-domain-id`

     1. Seleziona l’ID del gruppo di sicurezza in entrata. Viene aperta una nuova pagina con i dettagli sul gruppo di sicurezza.

     1. Seleziona la scheda **Regole in uscita**.

     1. Scegli **Modifica le regole in uscita**.

     1. Aggiorna le regole in uscita esistenti o aggiungi una nuova regola in uscita con i valori seguenti:
        + **Type (Tipo)**: NFS
        + **Protocollo**: TCP
        + **Intervallo porte**: 2049
        + **Destinazione**: security-group-for-outbound -nfs- \$1 *domain-id* *security-group-id*

     1. Scegliere **Salva regole**.

     1. Seleziona la scheda **Regole in entrata**.

     1. Scegli **Modifica le regole in entrata**.

     1. Aggiorna le regole in entrata esistenti o aggiungi una nuova regola in uscita con i valori seguenti:
        + **Type (Tipo)**: NFS
        + **Protocollo**: TCP
        + **Intervallo porte**: 2049
        + **Destinazione**: security-group-for-outbound -nfs- \$1 *domain-id* *security-group-id*

     1. Scegliere **Salva regole**.
   + Consenti il traffico proveniente da AWS CLI

     1.  Aggiorna le regole in entrata e in uscita del gruppo di sicurezza con i valori seguenti:
        + **Protocollo**: TCP
        + **Intervallo porte**: 2049
        + **ID gruppo**: ID del gruppo di sicurezza in entrata o ID del gruppo di sicurezza in uscita

        ```
        export INBOUND_SG_ID=$(aws ec2 describe-security-groups --filters "Name=group-name,Values=security-group-for-inbound-nfs-$SOURCE_DOMAIN_ID" | jq -r ".SecurityGroups[0].GroupId")
        export OUTBOUND_SG_ID=$(aws ec2 describe-security-groups --filters "Name=group-name,Values=security-group-for-outbound-nfs-$SOURCE_DOMAIN_ID" | jq -r ".SecurityGroups[0].GroupId")
        
        echo "Outbound SG ID: $OUTBOUND_SG_ID | Inbound SG ID: $INBOUND_SG_ID"
        aws ec2 authorize-security-group-egress \
        --group-id $INBOUND_SG_ID \
        --protocol tcp --port 2049 \
        --source-group $OUTBOUND_SG_ID
        
        aws ec2 authorize-security-group-ingress \
        --group-id $OUTBOUND_SG_ID \
        --protocol tcp --port 2049 \
        --source-group $INBOUND_SG_ID
        ```

     1.  Aggiungi i gruppi di sicurezza in entrata e in uscita alle destinazioni di montaggio Amazon EFS di origine e di destinazione. In questo modo, si consente il traffico tra i due montaggi Amazon EFS.

        ```
        export SOURCE_EFS_MOUNT_TARGET=$(aws efs describe-mount-targets --file-system-id $SOURCE_EFS | jq -r ".MountTargets[0].MountTargetId")
        export TARGET_EFS_MOUNT_TARGET=$(aws efs describe-mount-targets --file-system-id $TARGET_EFS | jq -r ".MountTargets[0].MountTargetId")
        
        aws efs modify-mount-target-security-groups \
        --mount-target-id $SOURCE_EFS_MOUNT_TARGET \
        --security-groups $INBOUND_SG_ID $OUTBOUND_SG_ID
        
        aws efs modify-mount-target-security-groups \
        --mount-target-id $TARGET_EFS_MOUNT_TARGET \
        --security-groups $INBOUND_SG_ID $OUTBOUND_SG_ID
        ```

1. Crea un' AWS DataSync attività. Viene restituito un ARN dell’attività che può essere utilizzato per eseguire l’attività on demand o a cadenza regolare.

   ```
   export EXTRA_XFER_OPTIONS='VerifyMode=ONLY_FILES_TRANSFERRED,OverwriteMode=ALWAYS,Atime=NONE,Mtime=NONE,Uid=NONE,Gid=NONE,PreserveDeletedFiles=REMOVE,PreserveDevices=NONE,PosixPermissions=NONE,TaskQueueing=ENABLED,TransferMode=CHANGED,SecurityDescriptorCopyFlags=NONE,ObjectTags=NONE'
   export DATASYNC_TASK_ARN=$(aws datasync create-task --source-location-arn $SOURCE_LOCATION_ARN --destination-location-arn $DESTINATION_LOCATION_ARN --name "SMEFS_to_CustomEFS_Sync" --region $REGION --options $EXTRA_XFER_OPTIONS | jq -r ".TaskArn")
   ```

1. Avvia un' AWS DataSync attività per copiare automaticamente i dati dall'Amazon EFS di origine al mount Amazon EFS di destinazione. Non vengono mantenute le autorizzazioni POSIX del file, quindi gli utenti possono leggere, ma non scrivere, nel montaggio Amazon EFS di destinazione.

   ```
   aws datasync start-task-execution --task-arn $DATASYNC_TASK_ARN
   ```

1. Monta il volume Amazon EFS di destinazione sul dominio a livello root.

   ```
   aws sagemaker update-domain --domain-id $SOURCE_DOMAIN_ID \
   --default-user-settings '{"CustomFileSystemConfigs": [{"EFSFileSystemConfig": {"FileSystemId": "'"$TARGET_EFS"'", "FileSystemPath": "/"}}]}'
   ```

1. Sovrascrivi ogni profilo utente con un prefisso `FileSystemPath`. Il prefisso include l'UID dell'utente, creato dall' SageMaker IA. In questo modo, gli utenti possono accedere solo ai propri dati, evitando eventuali incroci. Quando viene creato uno spazio nel dominio e il volume Amazon EFS di destinazione viene montato sull’applicazione, il prefisso dell’utente sovrascrive il prefisso del dominio. Di conseguenza, SageMaker AI monta la `/user-id` directory solo sull'applicazione dell'utente.

   ```
   aws sagemaker list-user-profiles --domain-id $SOURCE_DOMAIN_ID | jq -r '.UserProfiles[] | "\(.UserProfileName)"' | while read user; do
   export uid=$(aws sagemaker describe-user-profile --domain-id $SOURCE_DOMAIN_ID --user-profile-name $user | jq -r ".HomeEfsFileSystemUid")
   echo "$user $uid"
   aws sagemaker update-user-profile --domain-id $SOURCE_DOMAIN_ID --user-profile-name $user --user-settings '{"CustomFileSystemConfigs": [{"EFSFileSystemConfig":{"FileSystemId": "'"$TARGET_EFS"'", "FileSystemPath": "'"/$uid/"'"}}]}'
   done
   ```

1. Gli utenti possono quindi selezionare il file system Amazon EFS personalizzato all’avvio di un’applicazione. Per ulteriori informazioni, consulta [JupyterLab guida per l'utente](studio-updated-jl-user-guide.md) o [Avvio di un’applicazione Editor di codice in Studio](code-editor-use-studio.md).

### Utilizzo di Amazon S3 per eseguire la migrazione dei dati
<a name="studio-updated-migrate-data-approach2"></a>

In questo approccio, utilizzi un' AWS DataSync attività Amazon EFS-to-Amazon S3 per copiare il contenuto di un volume Amazon EFS Studio Classic in un bucket Amazon S3 una volta o con cadenza regolare, quindi crea una configurazione del ciclo di vita per copiare i dati dell'utente da Amazon S3 al volume Amazon EBS del suo spazio privato.

**Nota**  
Questo approccio funziona solo per i domini con accesso a Internet.

1. Imposta l’ID del volume Amazon EFS di origine dal dominio che contiene i dati di cui stai eseguendo la migrazione.

   ```
   timestamp=$(date +%Y%m%d%H%M%S)
   export SOURCE_DOMAIN_ID="domain-id"
   export AWS_REGION="region"
   export ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
   export EFS_ID=$(aws sagemaker describe-domain --domain-id $SOURCE_DOMAIN_ID | jq -r '.HomeEfsFileSystemId')
   ```

1. Imposta il nome del bucket Amazon S3 di destinazione. Per informazioni sulla creazione di un bucket Amazon S3, consulta [Creating a bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). Il bucket utilizzato deve avere una policy CORS come descritto in [(Facoltativo) Aggiornamento della policy CORS per accedere ai bucket Amazon S3](studio-updated-migrate-ui.md#studio-updated-migrate-cors). Gli utenti del dominio devono disporre anche delle autorizzazioni per accedere al bucket Amazon S3.

   In questo esempio, stiamo copiando i file in un prefisso denominato `studio-new`. Se utilizzi un singolo bucket Amazon S3 per eseguire la migrazione di più domini, utilizza il prefisso `studio-new/<domain-id>` per limitare le autorizzazioni ai file tramite IAM.

   ```
   export BUCKET_NAME=s3-bucket-name
   export S3_DESTINATION_PATH=studio-new
   ```

1. Crea una politica di fiducia che dia le AWS DataSync autorizzazioni per assumere il ruolo di esecuzione del tuo account. 

   ```
   export TRUST_POLICY=$(cat <<EOF
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "datasync.amazonaws.com"
               },
               "Action": "sts:AssumeRole",
               "Condition": {
                   "StringEquals": {
                       "aws:SourceAccount": "$ACCOUNT_ID"
                   },
                   "ArnLike": {
                       "aws:SourceArn": "arn:aws:datasync:$REGION:$ACCOUNT_ID:*"
                   }
               }
           }
       ]
   }
   EOF
   )
   ```

1. Crea un ruolo IAM e collega la policy.

   ```
   export timestamp=$(date +%Y%m%d%H%M%S)
   export ROLE_NAME="DataSyncS3Role-$timestamp"
   
   aws iam create-role --role-name $ROLE_NAME --assume-role-policy-document "$TRUST_POLICY"
   aws iam attach-role-policy --role-name $ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess
   echo "Attached IAM Policy AmazonS3FullAccess"
   aws iam attach-role-policy --role-name $ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
   echo "Attached IAM Policy AmazonSageMakerFullAccess"
   export ROLE_ARN=$(aws iam get-role --role-name $ROLE_NAME --query 'Role.Arn' --output text)
   echo "Created IAM Role $ROLE_ARN"
   ```

1. Crea un gruppo di sicurezza per consentire l’accesso alla posizione Amazon EFS.

   ```
   export EFS_ARN=$(aws efs describe-file-systems --file-system-id $EFS_ID | jq -r '.FileSystems[0].FileSystemArn' )
   export EFS_SUBNET_ID=$(aws efs describe-mount-targets --file-system-id $EFS_ID | jq -r '.MountTargets[0].SubnetId')
   export EFS_VPC_ID=$(aws efs describe-mount-targets --file-system-id $EFS_ID | jq -r '.MountTargets[0].VpcId')
   export MOUNT_TARGET_ID=$(aws efs describe-mount-targets --file-system-id $EFS_ID | jq -r '.MountTargets[0].MountTargetId ')
   export EFS_SECURITY_GROUP_ID=$(aws efs describe-mount-target-security-groups --mount-target-id $MOUNT_TARGET_ID | jq -r '.SecurityGroups[0]')
   export EFS_SUBNET_ARN=$(aws ec2 describe-subnets --subnet-ids $EFS_SUBNET_ID | jq -r '.Subnets[0].SubnetArn')
   echo "Subnet ID: $EFS_SUBNET_ID"
   echo "Security Group ID: $EFS_SECURITY_GROUP_ID"
   echo "Subnet ARN: $EFS_SUBNET_ARN"
   
   timestamp=$(date +%Y%m%d%H%M%S)
   sg_name="datasync-sg-$timestamp"
   export DATASYNC_SG_ID=$(aws ec2 create-security-group --vpc-id $EFS_VPC_ID --group-name $sg_name --description "DataSync SG" --output text --query 'GroupId')
   aws ec2 authorize-security-group-egress --group-id $DATASYNC_SG_ID --protocol tcp --port 2049 --source-group $EFS_SECURITY_GROUP_ID
   aws ec2 authorize-security-group-ingress --group-id $EFS_SECURITY_GROUP_ID --protocol tcp --port 2049 --source-group $DATASYNC_SG_ID
   export DATASYNC_SG_ARN="arn:aws:ec2:$REGION:$ACCOUNT_ID:security-group/$DATASYNC_SG_ID"
   echo "Security Group ARN: $DATASYNC_SG_ARN"
   ```

1. Crea una posizione Amazon EFS di origine per l' AWS DataSync attività.

   ```
   export SOURCE_ARN=$(aws datasync create-location-efs --efs-filesystem-arn $EFS_ARN --ec2-config "{\"SubnetArn\": \"$EFS_SUBNET_ARN\", \"SecurityGroupArns\": [\"$DATASYNC_SG_ARN\"]}" | jq -r '.LocationArn')
   echo "Source Location ARN: $SOURCE_ARN"
   ```

1. Crea una posizione Amazon S3 di destinazione per l' AWS DataSync attività.

   ```
   export BUCKET_ARN="arn:aws:s3:::$BUCKET_NAME"
   export DESTINATION_ARN=$(aws datasync create-location-s3 --s3-bucket-arn $BUCKET_ARN --s3-config "{\"BucketAccessRoleArn\": \"$ROLE_ARN\"}" --subdirectory $S3_DESTINATION_PATH | jq -r '.LocationArn')
   echo "Destination Location ARN: $DESTINATION_ARN"
   ```

1. Crea un' AWS DataSync attività.

   ```
   export TASK_ARN=$(aws datasync create-task --source-location-arn $SOURCE_ARN --destination-location-arn $DESTINATION_ARN | jq -r '.TaskArn')
   echo "DataSync Task: $TASK_ARN"
   ```

1. Avviate l' AWS DataSync operazione. Questa attività copia automaticamente i dati dal volume Amazon EFS di origine al bucket Amazon S3 di destinazione. Attendi il completamento dell’attività.

   ```
   aws datasync start-task-execution --task-arn $TASK_ARN
   ```

1. Controlla lo stato dell' AWS DataSync attività per verificare che sia completa. Passa l’ARN restituito nella fase precedente.

   ```
   export TASK_EXEC_ARN=datasync-task-arn
   echo "Task execution ARN: $TASK_EXEC_ARN"
   export STATUS=$(aws datasync describe-task-execution --task-execution-arn $TASK_EXEC_ARN | jq -r '.Status')
   echo "Execution status: $STATUS"
   while [ "$STATUS" = "QUEUED" ] || [ "$STATUS" = "LAUNCHING" ] || [ "$STATUS" = "PREPARING" ] || [ "$STATUS" = "TRANSFERRING" ] || [ "$STATUS" = "VERIFYING" ]; do
       STATUS=$(aws datasync describe-task-execution --task-execution-arn $TASK_EXEC_ARN | jq -r '.Status')
       if [ $? -ne 0 ]; then
           echo "Error Running DataSync Task"
           exit 1
       fi
       echo "Execution status: $STATUS"
       sleep 30
   done
   ```

1. Una volta completata l' AWS DataSync attività, pulisci le risorse create in precedenza.

   ```
   aws datasync delete-task --task-arn $TASK_ARN
   echo "Deleted task $TASK_ARN"
   aws datasync delete-location --location-arn $SOURCE_ARN
   echo "Deleted location source $SOURCE_ARN"
   aws datasync delete-location --location-arn $DESTINATION_ARN
   echo "Deleted location source $DESTINATION_ARN"
   aws iam detach-role-policy --role-name $ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess
   aws iam detach-role-policy --role-name $ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerFullAccess
   aws iam delete-role --role-name $ROLE_NAME
   echo "Deleted IAM Role $ROLE_NAME"
   echo "Wait 5 minutes for the elastic network interface to detach..."
   start_time=$(date +%s)
   while [[ $(($(date +%s) - start_time)) -lt 300 ]]; do
       sleep 1
   done
   aws ec2 revoke-security-group-ingress --group-id $EFS_SECURITY_GROUP_ID --protocol tcp --port 2049 --source-group $DATASYNC_SG_ID
   echo "Revoked Ingress from $EFS_SECURITY_GROUP_ID"
   aws ec2 revoke-security-group-egress --group-id $DATASYNC_SG_ID --protocol tcp --port 2049 --source-group $EFS_SECURITY_GROUP_ID
   echo "Revoked Egress from $DATASYNC_SG_ID"
   aws ec2 delete-security-group --group-id $DATASYNC_SG_ID
   echo "Deleted DataSync SG $DATASYNC_SG_ID"
   ```

1. Dal tuo computer locale, crea un file locale denominato `on-start.sh` con il seguente contenuto. Questo script copia la home directory Amazon EFS dell’utente in Amazon S3 nel volume Amazon EBS dell’utente in Studio e crea un prefisso per ogni profilo utente.

   ```
   #!/bin/bash
   set -eo pipefail
   
   sudo apt-get install -y jq
   
   # Studio Variables
   DOMAIN_ID=$(cat /opt/ml/metadata/resource-metadata.json | jq -r '.DomainId')
   SPACE_NAME=$(cat /opt/ml/metadata/resource-metadata.json | jq -r '.SpaceName')
   USER_PROFILE_NAME=$(aws sagemaker describe-space --domain-id=$DOMAIN_ID --space-name=$SPACE_NAME | jq -r '.OwnershipSettings.OwnerUserProfileName')
   
   # S3 bucket to copy from
   BUCKET=s3-bucket-name
   # Subfolder in bucket to copy
   PREFIX=studio-new
   
   # Getting HomeEfsFileSystemUid for the current user-profile
   EFS_FOLDER_ID=$(aws sagemaker describe-user-profile --domain-id $DOMAIN_ID --user-profile-name $USER_PROFILE_NAME | jq -r '.HomeEfsFileSystemUid')
   
   # Local destination directory
   DEST=./studio-classic-efs-backup
   mkdir -p $DEST
   
   echo "Bucket: s3://$BUCKET/$PREFIX/$EFS_FOLDER_ID/"
   echo "Destination $DEST/"
   echo "Excluding .*"
   echo "Excluding .*/*"
   
   aws s3 cp s3://$BUCKET/$PREFIX/$EFS_FOLDER_ID/ $DEST/ \
       --exclude ".*" \
       --exclude "**/.*" \
       --recursive
   ```

1. Converti lo script nel formato base64. Questo requisito previene gli errori dovuti alla codifica della spaziatura e delle interruzioni di riga. Il tipo di script può essere `JupyterLab` o `CodeEditor`.

   ```
   export LCC_SCRIPT_NAME='studio-classic-sync'
   export SCRIPT_FILE_NAME='on-start.sh'
   export SCRIPT_TYPE='JupyterLab-or-CodeEditor'
   LCC_CONTENT=`openssl base64 -A -in ${SCRIPT_FILE_NAME}`
   ```

1. Verifica quanto segue prima di utilizzare lo script: 
   + Il volume Amazon EBS è sufficientemente grande per archiviare gli oggetti che stai esportando.
   + Se non è tua intenzione, non stai eseguendo la migrazione di file e cartelle nascosti, ad esempio `.bashrc` e `.condarc`.
   + Il ruolo di esecuzione AWS Identity and Access Management (IAM) associato ai profili utente di Studio ha le policy configurate per accedere solo alla rispettiva home directory in Amazon S3.

1. Crea una configurazione del ciclo di vita utilizzando lo script.

   ```
   aws sagemaker create-studio-lifecycle-config \
       --studio-lifecycle-config-name $LCC_SCRIPT_NAME \
       --studio-lifecycle-config-content $LCC_CONTENT \
       --studio-lifecycle-config-app-type $SCRIPT_TYPE
   ```

1. Collega la LCC al dominio.

   ```
   aws sagemaker update-domain \
       --domain-id $SOURCE_DOMAIN_ID \
       --default-user-settings '
           {"JupyterLabAppSettings":
               {"LifecycleConfigArns":
                   [
                       "lifecycle-config-arn"
                   ]
               }
           }'
   ```

1. Gli utenti possono quindi selezionare lo script LCC all’avvio di un’applicazione. Per ulteriori informazioni, consulta [JupyterLab guida per l'utente](studio-updated-jl-user-guide.md) o [Avvio di un’applicazione Editor di codice in Studio](code-editor-use-studio.md). Questo sincronizza automaticamente i file da Amazon S3 all’archiviazione Amazon EBS per lo spazio dell’utente.

## Migrazione dei flussi di dati da Data Wrangler
<a name="studio-updated-migrate-flows"></a>

Se in precedenza hai utilizzato Amazon SageMaker Data Wrangler in Amazon SageMaker Studio Classic per attività di preparazione dei dati, puoi migrare al nuovo Amazon SageMaker Studio e accedere all'ultima versione di Data Wrangler in Amazon Canvas. SageMaker Data Wrangler in SageMaker Canvas ti offre un'esperienza utente migliorata e l'accesso alle funzionalità più recenti, come un'interfaccia in linguaggio naturale e prestazioni più elevate.

Puoi accedere a SageMaker Canvas in qualsiasi momento per iniziare a utilizzare la nuova esperienza Data Wrangler. Per ulteriori informazioni, consulta [Guida introduttiva all'utilizzo di Amazon SageMaker Canvas](canvas-getting-started.md).

Se hai salvato in Studio Classic file del flusso di dati su cui stavi lavorando, puoi effettuare l’onboarding in Studio e quindi importare i file del flusso in Canvas. Per la migrazione sono disponibili le opzioni seguenti:
+ Migrazione con un solo clic: quando accedi a Canvas, puoi utilizzare l’opzione di importazione una tantum che esegue automaticamente la migrazione di tutti i file del flusso.
+ Migrazione manuale: puoi importare manualmente i file del flusso in Canvas. Da Studio Classic, esporta i file su Amazon S3 o scaricali sul tuo computer locale. Quindi, accedi all'applicazione SageMaker Canvas, importi i file di flusso e continui le attività di preparazione dei dati.

La guida seguente descrive i prerequisiti per la migrazione e fornisce indicazioni su come eseguire la migrazione dei file del flusso di dati utilizzando l’opzione manuale o con un solo clic.

### Prerequisiti
<a name="studio-updated-migrate-flows-prereqs"></a>

Verifica i prerequisiti seguenti prima di iniziare la migrazione dei file del flusso.

**Fase 1: Migrazione del dominio e concessione delle autorizzazioni**

Prima di migrare i file del flusso di dati, devi seguire i passaggi specifici della [Migrazione da Amazon SageMaker Studio Classic](studio-updated-migrate.md) guida per assicurarti che il ruolo di esecuzione AWS IAM del tuo profilo utente disponga delle autorizzazioni richieste. Prima di procedere, segui le indicazioni nella sezione dei [prerequisiti](studio-updated-migrate-prereq.md) e in [Migrazione dell’interfaccia utente da Studio Classic a Studio](studio-updated-migrate-ui.md), che descrivono come concedere le autorizzazioni richieste, configurare Studio come nuova esperienza ed eseguire la migrazione del dominio esistente.

In particolare, è necessario disporre delle autorizzazioni per creare un'applicazione SageMaker Canvas e utilizzare le funzionalità di preparazione dei dati SageMaker Canvas. Per ottenere queste autorizzazioni, puoi:
+ Aggiungi la [ AmazonSageMakerCanvasDataPrepFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasDataPrepFullAccess.html)policy al tuo ruolo IAM, oppure
+ Allega una politica relativa ai permessi minimi, come mostrato nella sezione **(Facoltativo) Migrazione da Data Wrangler in Studio Classic** a Canvas della pagina. SageMaker [Migrazione dell’interfaccia utente da Studio Classic a Studio](studio-updated-migrate-ui.md)

Assicurati di utilizzare lo stesso profilo utente sia per Studio che per Canvas. SageMaker 

Dopo aver completato i prerequisiti indicati nella guida alla migrazione, dovresti disporre di un nuovo dominio con le autorizzazioni necessarie per accedere a SageMaker Canvas tramite Studio.

**Fase 2. (Facoltativo) Preparazione di una posizione Amazon S3**

Se stai eseguendo una migrazione manuale e prevedi di utilizzare Amazon S3 invece dell’opzione di download locale, per trasferire i file del flusso, nell’account deve essere disponibile un bucket Amazon S3 in cui archiviare i file del flusso.

### Metodo di migrazione con un solo clic
<a name="studio-updated-migrate-flows-auto"></a>

SageMaker Canvas offre un'opzione di importazione unica per la migrazione dei flussi di dati da Data Wrangler in Studio Classic a Data Wrangler in Canvas. SageMaker Se le applicazioni Studio Classic e Canvas condividono lo stesso volume di archiviazione Amazon EFS, puoi eseguire la migrazione con un clic da Canvas. Questo processo semplificato elimina i passaggi manuali di esportazione e importazione e consente di importare tutti i flussi contemporaneamente.

Utilizza questa procedura per eseguire la migrazione di tutti i file del flusso:

1. Apri la versione più recente di Studio.

1. In Studio, nel riquadro di navigazione a sinistra, scegli il menu a discesa **Dati**.

1. Dalle opzioni di navigazione, scegli **Data Wrangler**.

1. Nella pagina **Data Wrangler**, scegli **Esegui in Canvas**. Se hai impostato correttamente le autorizzazioni, verrà creata automaticamente un’applicazione Canvas. Potrebbero essere necessari alcuni minuti prima che l’applicazione Canvas sia pronta. 

1. Quando Canvas è pronta, scegli **Apri in Canvas**.

1. Canvas si apre sulla pagina **Data Wrangler** e nella parte superiore della pagina viene visualizzato un banner con il messaggio Importa i flussi di dati da Data Wrangler in Studio Classic a Canvas. Si tratta di un’importazione una tantum. Ulteriori informazioni. Nel banner, scegli **Importa tutto**.
**avvertimento**  
Se chiudi la notifica del banner, non potrai più riaprirla, né utilizzare il metodo di migrazione con un solo clic. 

Viene visualizzata una notifica pop-up che indica che Canvas sta importando i file del flusso da Studio Classic. Se l’importazione ha esito positivo, riceverai un’altra notifica che indica che sono stati importati `X` file del flusso, che possono essere visualizzati nella pagina **Data Wrangler** dell’applicazione Canvas. Tutti i file del flusso importati che hanno lo stesso nome dei flussi di dati esistenti nell’applicazione Canvas vengono rinominati con un suffisso. Puoi aprire un flusso di dati per verificare che abbia l’aspetto previsto.

Nel caso in cui uno dei file del flusso non venga importato correttamente, riceverai una notifica che indica che l’importazione è riuscita solo parzialmente o non è riuscita. Scegli **Visualizza errori** nel messaggio di notifica per controllare i singoli messaggi di errore e ottenere indicazioni su come riformattare gli eventuali file del flusso formattati in modo errato.

Dopo aver importato i file di flusso, ora dovresti essere in grado di continuare a utilizzare Data Wrangler per preparare i dati in Canvas. SageMaker 

### Metodo di migrazione manuale
<a name="studio-updated-migrate-flows-manual"></a>

Le sezioni seguenti descrivono come importare manualmente i file del flusso in Canvas nel caso in cui il metodo di migrazione con un solo clic non abbia funzionato.

#### Esportazione dei file del flusso da Studio Classic
<a name="studio-updated-migrate-flows-export"></a>

**Nota**  
Se hai già eseguito la migrazione dei dati di Studio Classic ad Amazon S3 seguendo le istruzioni riportate in [(Facoltativo) Migrazione dei dati da Studio Classic a Studio](#studio-updated-migrate-data), puoi saltare questa fase e andare direttamente alla sezione [Importazione dei file del flusso in Canvas](#studio-updated-migrate-flows-import), nella quale importi i file del flusso dalla posizione Amazon S3 in cui sono archiviati i dati di Studio Classic.

Puoi esportare i file del flusso salvandoli su Amazon S3 o scaricandoli sul tuo computer locale. Quando importi i file di flusso in SageMaker Canvas nel passaggio successivo, se scegli l'opzione di caricamento locale, puoi caricare solo 20 file di flusso alla volta. Se devi importare un alto numero di file del flusso, ti raccomandiamo di utilizzare Amazon S3.

Segui le istruzioni riportate in [Metodo 1: utilizzare Amazon S3 per trasferire i file del flusso](#studio-updated-migrate-flows-export-s3) o [Metodo 2: utilizzare il computer locale per trasferire i file del flusso](#studio-updated-migrate-flows-export-local) per procedere.

##### Metodo 1: utilizzare Amazon S3 per trasferire i file del flusso
<a name="studio-updated-migrate-flows-export-s3"></a>

Con questo metodo, utilizzi Amazon S3 come intermediario tra Data Wrangler in Studio Classic e Data Wrangler in SageMaker Canvas (accessibile tramite l'ultima versione di Studio). Esporti i file del flusso da Studio Classic ad Amazon S3 e quindi, nella fase successiva, accedi a Canvas tramite Studio e importi i file del flusso da Amazon S3.

Assicurati che un bucket Amazon S3 sia disponibile come posizione di archiviazione per i file del flusso.

Utilizza la procedura seguente per esportare i file del flusso da Studio Classic ad Amazon S3:

1. Apri Studio Classic.

1. Apri un nuovo terminale con la procedura seguente:

   1. Nella barra di navigazione in alto, seleziona **File**.

   1. Nel menu contestuale, passa il mouse su **Nuovo**, quindi seleziona **Terminale**.

1. Per impostazione predefinita, il terminale dovrebbe aprirsi nella home directory. Accedi alla cartella che contiene tutti i file del flusso di cui eseguire la migrazione.

1. Utilizza il comando seguente per sincronizzare tutti i file del flusso nella posizione Amazon S3 specificata. Sostituisci `{bucket-name}` e `{folder}` con il percorso della posizione Amazon S3 desiderata. Per ulteriori informazioni sul comando e sui parametri, consulta il comando [sync](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) nel Command Reference. AWS AWS CLI 

   ```
   aws s3 sync . s3://{bucket-name}/{folder}/ --exclude "*.*" --include "*.flow"
   ```

   Se stai usando il tuo AWS KMS key, usa invece il comando seguente per sincronizzare i file e specificare l'ID della tua chiave KMS. Verifica che il ruolo di esecuzione IAM dell’utente (che dovrebbe essere lo stesso ruolo utilizzato nella **Fase 1. Migrazione del dominio e concessione delle autorizzazioni** dei [prerequisiti](#studio-updated-migrate-flows-prereqs) precedenti) disponga dell’accesso per utilizzare la chiave KMS.

   ```
   aws s3 sync . s3://{bucket-name}/{folder}/ --exclude "*.*" --include "*.flow" --sse-kms-key-id {your-key-id}
   ```

I file del flusso ora dovrebbero essere stati esportati. Puoi controllare il tuo bucket Amazon S3 per assicurarti che i file del flusso siano sincronizzati correttamente.

Per importare questi file nella versione più recente di Data Wrangler, segui la procedura in [Importazione dei file del flusso in Canvas](#studio-updated-migrate-flows-import).

##### Metodo 2: utilizzare il computer locale per trasferire i file del flusso
<a name="studio-updated-migrate-flows-export-local"></a>

Con questo metodo puoi scaricare i file del flusso da Studio Classic sul computer locale. Puoi scaricare i file direttamente oppure comprimerli come archivio zip. Nel secondo caso, decomprimi il file zip localmente (se applicabile), accedi a Canvas e importa i file del flusso caricandoli dal tuo computer locale.

Utilizza la procedura seguente per scaricare i file del flusso da Studio Classic:

1. Apri Studio Classic.

1. (Facoltativo) Se desideri comprimere più file del flusso in un archivio zip e scaricarli tutti in una volta, procedi come descritto di seguito:

   1. Nella barra di navigazione in alto di Studio Classic, scegli **File**.

   1. Nel menu contestuale, passa il mouse su **Nuovo**, quindi seleziona **Terminale**.

   1. Per impostazione predefinita, il terminale si apre nella home directory. Accedi alla cartella che contiene tutti i file del flusso di cui eseguire la migrazione.

   1. Utilizza il comando seguente per comprimere i file del flusso nella directory corrente come file zip. Il comando esclude qualsiasi file nascosto:

      ```
      find . -not -path "*/.*" -name "*.flow" -print0 | xargs -0 zip my_archive.zip
      ```

1. Scarica l’archivio zip o i singoli file del flusso sul tuo computer locale seguendo questa procedura:

   1. Nel riquadro di navigazione a sinistra di Studio Classic, scegli **Browser di file**.

   1. Trova il file da scaricare nel browser di file.

   1. Fai clic con il pulsante destro del mouse sul file e, nel menu contestuale, seleziona **Scarica**.

Il file dovrebbe essere scaricato nel computer locale. Se li hai compressi come archivio zip, estrai i file localmente. Dopo aver estratto i file, per importarli nell’ultima versione di Data Wrangler, segui la procedura riportata in [Importazione dei file del flusso in Canvas](#studio-updated-migrate-flows-import). 

#### Importazione dei file del flusso in Canvas
<a name="studio-updated-migrate-flows-import"></a>

Dopo aver esportato i file del flusso, accedi a Canvas tramite Studio e importa i file.

Utilizza la procedura seguente per importare i file del flusso in Canvas:

1. Apri la versione più recente di Studio.

1. In Studio, nel riquadro di navigazione a sinistra, scegli il menu a discesa **Dati**.

1. Dalle opzioni di navigazione, scegli **Data Wrangler**.

1. Nella pagina **Data Wrangler**, scegli **Esegui in Canvas**. Se hai impostato correttamente le autorizzazioni, verrà creata automaticamente un’applicazione Canvas. Potrebbero essere necessari alcuni minuti prima che l’applicazione Canvas sia pronta. 

1. Quando Canvas è pronta, scegli **Apri in Canvas**.

1. Canvas si apre nella pagina **Data Wrangler**. Nel riquadro superiore, scegli **Importa flussi di dati**.

1. Da **Origine dati**, scegli **Amazon S3** o **Caricamento locale**.

1. Seleziona i file del flusso dal tuo bucket Amazon S3 o carica i file dal tuo computer locale.
**Nota**  
Per il caricamento locale, puoi caricare un massimo di 20 file del flusso alla volta. Per importazioni di dimensioni maggiori, utilizza Amazon S3. Se selezioni una cartella da importare, vengono importati anche tutti i file del flusso nelle sottocartelle.

1. Scegli **Import data** (Importa dati).

Se l’importazione riesce, riceverai una notifica che indica che `X` file del flusso sono stati importati correttamente.

Nel caso in cui i file di flusso non vengano importati correttamente, riceverai una notifica nell'applicazione SageMaker Canvas. Scegli **Visualizza errori** nel messaggio di notifica per controllare i singoli messaggi di errore e ottenere indicazioni su come riformattare gli eventuali file del flusso formattati in modo errato.

Al termine dell'importazione dei file di flusso, vai alla pagina **Data Wrangler** dell'applicazione SageMaker Canvas per visualizzare i flussi di dati. Puoi provare ad aprire un flusso di dati per verificare che abbia l’aspetto previsto.

# Amazon SageMaker Studio Classic
<a name="studio"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Amazon SageMaker Studio Classic è un ambiente di sviluppo integrato (IDE) basato sul Web per l'apprendimento automatico (ML). Studio Classic consente di creare, addestrare, eseguire il debug, implementare e monitorare i modelli di ML. Studio Classic include tutti gli strumenti necessari per gestire le varie fasi dei modelli, dalla preparazione dei dati alla sperimentazione fino alla produzione, aumentando al tempo stesso la produttività. Puoi eseguire tutte queste attività in un’unica interfaccia visiva:
+ Scrivere ed eseguire codice nei notebook Jupyter
+ Preparare dati per il machine learning
+ Costruire e addestrare modelli di ML
+ Distribuire i modelli e monitorare le prestazioni delle previsioni
+ Monitorare ed eseguire il debug degli esperimenti di ML
+ Collaborare con altri utenti in tempo reale

Per informazioni sulla procedura di onboarding per Studio Classic, consulta [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md).

Per informazioni sulla collaborazione con altri utenti in tempo reale, consulta [Collaborazione con spazi condivisi](domain-space.md).

Per le AWS regioni supportate da Studio Classic, consulta[Regioni e quote supportate](regions-quotas.md).

## Piano della fase di manutenzione di Amazon SageMaker Studio Classic
<a name="studio-deprecation"></a>

La tabella seguente fornisce informazioni sulla tempistica di inizio della fase di manutenzione estesa di Amazon SageMaker Studio Classic.




| Data | Description | 
| --- | --- | 
|  31/12/2024  |  Il 31 dicembre Studio Classic ha raggiunto la fine della manutenzione. Da questa data in poi, Studio Classic non riceverà più aggiornamenti e correzioni di sicurezza. Tutti i nuovi domini verranno creati con Amazon SageMaker Studio come impostazione predefinita.  | 
|  31/1/2025  |  A partire dal 31 gennaio, gli utenti non potranno più creare JupyterLab 3 nuovi notebook in Studio Classic. Inoltre, non possono riavviare o aggiornare i notebook esistenti. L’accesso alle applicazioni Studio Classic esistenti da Studio è consentito solo al fine di eliminare o arrestare i notebook esistenti.  | 

**Nota**  
La migrazione a Studio non viene eseguita automaticamente per il tuo dominio Studio Classic esistente. Per ulteriori informazioni sulla migrazione, consulta [Migrazione da Amazon SageMaker Studio Classic](studio-updated-migrate.md).

**Topics**
+ [Piano della fase di manutenzione di Amazon SageMaker Studio Classic](#studio-deprecation)
+ [Caratteristiche di Amazon SageMaker Studio Classic](#studio-features)
+ [Panoramica dell'interfaccia utente di Amazon SageMaker Studio Classic](studio-ui.md)
+ [Avvia Amazon SageMaker Studio Classic](studio-launch.md)
+ [JupyterLab Controllo delle versioni in Amazon SageMaker Studio Classic](studio-jl.md)
+ [Usa Amazon SageMaker Studio Classic Launcher](studio-launcher.md)
+ [Usa i notebook Amazon SageMaker Studio Classic](notebooks.md)
+ [Personalizzazione di Amazon SageMaker Studio Classic](studio-customize.md)
+ [Esegui attività comuni in Amazon SageMaker Studio Classic](studio-tasks.md)
+ [Prezzi di Amazon SageMaker Studio Classic](studio-pricing.md)
+ [Risoluzione dei problemi di Amazon SageMaker Studio Classic](studio-troubleshooting.md)

## Caratteristiche di Amazon SageMaker Studio Classic
<a name="studio-features"></a>

Studio Classic include le seguenti funzionalità:
+ [SageMaker Pilota automatico](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development.html)
+ [SageMaker Chiarire](https://docs.aws.amazon.com/sagemaker/latest/dg/model-explainability.html)
+ [SageMaker Data Wrangler](https://docs.aws.amazon.com/sagemaker/latest/dg/data-wrangler.html)
+ [SageMaker Debugger](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-on-studio.html)
+ [SageMaker Experiments](https://docs.aws.amazon.com/sagemaker/latest/dg/experiments.html)
+ [SageMaker Feature Store](https://docs.aws.amazon.com/sagemaker/latest/dg/feature-store-use-with-studio.html)
+ [SageMaker JumpStart](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-jumpstart.html)
+ [Amazon SageMaker Pipeline](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-studio.html)
+ [SageMaker Registro dei modelli](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry.html)
+ [SageMaker Progetti](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-projects.html)
+ [SageMakerNotebook Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/notebooks.html)
+ [SageMaker Notebook universale Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-emr-cluster.html)

# Panoramica dell'interfaccia utente di Amazon SageMaker Studio Classic
<a name="studio-ui"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Amazon SageMaker Studio Classic estende le funzionalità JupyterLab con risorse personalizzate in grado di accelerare il processo di Machine Learning (ML) sfruttando la potenza dell' AWS elaborazione. Gli utenti precedenti di JupyterLab noteranno la somiglianza dell'interfaccia utente. Gli elementi più importanti sono illustrati nei dettagli nelle sezioni seguenti. Per una panoramica dell' JupyterLab interfaccia originale, vedere [L' JupyterLabinterfaccia](https://jupyterlab.readthedocs.io/en/latest/user/interface.html). 

L'immagine seguente mostra la visualizzazione predefinita all'avvio di Amazon SageMaker Studio Classic. Il *pannello di navigazione a sinistra* mostra tutte le categorie di funzionalità di primo livello e una *[Pagina iniziale di Amazon SageMaker Studio Classic](#studio-ui-home)* è aperta nell’*area di lavoro principale.* È possibile tornare a questo punto centrale di orientamento scegliendo l’icona **Home** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/house.png)) in qualsiasi momento, quindi selezionando il nodo **Home** nel menu di navigazione.

Prova il **notebook Getting** started per una guida pratica integrata nel prodotto su come configurare e acquisire familiarità con le funzionalità di Amazon SageMaker Studio Classic. Nella sezione **Azioni rapide** della home page di Studio Classic, scegli **Apri notebook Nozioni di base**.

![\[SageMaker Home page di Studio Classic.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/studio-home.png)


**Nota**  
Questo capitolo si basa sull'interfaccia utente (UI) aggiornata di Studio Classic disponibile nella versione JupyterLab 3 `v5.38.x` e successive.  
Per recuperare la versione dell’interfaccia utente di Studio Classic, apri un terminale di sistema da [Utilità di avvio di Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launcher.html), quindi  
Esegui `conda activate studio`
Esegui `jupyter labextension list`
Cerca la versione visualizzata dopo `@amzn/sagemaker-ui version` nell’output.
Per informazioni sull'aggiornamento di Amazon SageMaker Studio Classic, consulta[Chiudi e aggiorna Amazon SageMaker Studio Classic](studio-tasks-update-studio.md).

**Topics**
+ [Pagina iniziale di Amazon SageMaker Studio Classic](#studio-ui-home)
+ [Layout Amazon SageMaker Studio Classic](#studio-ui-layout)

## Pagina iniziale di Amazon SageMaker Studio Classic
<a name="studio-ui-home"></a>

La Home page consente di accedere alle attività e ai flussi di lavoro comuni. In particolare, include un elenco di **Azioni rapide** per attività comuni come **Apri utilità di avvio** per creare notebook e altre risorse e **Importa e prepara dati visivamente** per creare un nuovo flusso in Data Wrangler. La **Home page** offre anche suggerimenti sui controlli chiave dell’interfaccia utente.

Le **soluzioni predefinite e automatizzate** ti aiutano a iniziare rapidamente con le soluzioni low-code di SageMaker AI come Amazon SageMaker JumpStart e Autopilot.

In **Workflows and tasks**, puoi trovare un elenco di attività pertinenti per ogni fase del flusso di lavoro ML che ti porta allo strumento giusto per il lavoro. Ad esempio, **Transform, analyse, and export data ti porta ad Amazon SageMaker Data** Wrangler e apre il flusso di lavoro per creare un nuovo flusso di dati, oppure **Visualizza tutti gli esperimenti** ti porta a SageMaker Esperimenti e apre la visualizzazione elenco degli esperimenti.

All’avvio di Studio Classic, la **home page** si apre nell’area di lavoro principale. **Puoi personalizzare la tua **home** page SageMaker AI scegliendo l'icona **Personalizza layout** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/layout.png)) in alto a destra nella scheda Home.**

## Layout Amazon SageMaker Studio Classic
<a name="studio-ui-layout"></a>

L'interfaccia di Amazon SageMaker Studio Classic è composta da una *barra dei menu* nella parte superiore, una *barra laterale sinistra* pieghevole che mostra una varietà di icone come l'icona **Home** e il **File Browser**, una *barra di stato* nella parte inferiore dello schermo e un'*area centrale* divisa orizzontalmente in due riquadri. Il pannello a sinistra è un *pannello di navigazione* pieghevole. Il pannello a destra, o area di lavoro principale, contiene una o più schede per risorse quali utilità di avvio, notebook, terminali, parametri e grafici e può essere ulteriormente suddiviso.

**Segnala un bug** in Studio Classic o scegli l'icona di notifica (![\[Red circle icon with white exclamation mark, indicating an alert or warning.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/Notification.png)) per visualizzare le notifiche di Studio Classic, come nuove versioni di Studio Classic e nuove funzionalità di SageMaker intelligenza artificiale, nell'angolo destro della barra dei menu. Per eseguire l’aggiornamento a una nuova versione di Studio Classic, consulta [Chiudi e aggiorna Amazon SageMaker Studio Classic e le app](studio-tasks-update.md).

Le sezioni seguenti descrivono le aree principali dell’interfaccia utente di Studio Classic.

### Barra laterale sinistra
<a name="studio-ui-nav-bar"></a>

La *barra laterale sinistra* include le seguenti icone. Quando si passa il mouse su un’icona, un suggerimento visualizza il nome dell’icona. Un solo clic su un’icona apre il pannello di navigazione a sinistra con le funzionalità descritte. Un doppio clic minimizza il pannello di navigazione a sinistra.


| Icon | Description | 
| --- | --- | 
|  ![\[L’icona Home.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/house@2x.png)  | **Home** Scegli l’icona **Home** per aprire un menu di navigazione di primo livello nel pannello di *navigazione a sinistra*. Utilizzando il menu di navigazione **Home**, puoi scoprire e accedere agli strumenti giusti per ogni fase del flusso di lavoro ML. Il menu fornisce anche scorciatoie per soluzioni di avvio rapido e risorse di apprendimento come documentazione e tutorial guidati. Le categorie del menu raggruppano le funzioni pertinenti. **Choosing Data**, ad esempio, amplia le funzionalità di SageMaker intelligenza artificiale pertinenti per le attività di preparazione dei dati. Da qui, puoi preparare i tuoi dati con Data Wrangler, creare e archiviare funzionalità di machine learning con Amazon SageMaker Feature Store e gestire i cluster Amazon EMR per l'elaborazione di dati su larga scala. Le categorie sono ordinate in base a un tipico flusso di lavoro ML, dalla preparazione dei dati alla creazione, addestramento e distribuzione di modelli ML (dati, pipeline, modelli e implementazioni). Quando scegli un nodo specifico (come Data Wrangler), viene aperta una pagina corrispondente nell’area di lavoro principale. Scegli **Home** nel menu di navigazione per aprire [Pagina iniziale di Amazon SageMaker Studio Classic](#studio-ui-home) | 
|  ![\[L’icona Browser di file.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/folder@2x.png)  |  **Browser di file** Il **browser di file** visualizza gli elenchi dei notebook, degli esperimenti, delle prove, dei componenti di prova e degli endpoint. Il fatto che ci si trovi in uno spazio personale o condiviso determina chi ha accesso ai propri file. È possibile identificare il tipo di spazio in cui ci si trova guardando l’angolo in alto a destra. **Se utilizzi un'app personale, vedi un'icona utente seguita da *[user\$1name]***/Personal Studio** e se lavori in uno spazio collaborativo, vedi l'icona a forma di globo seguita da "/» *[user\$1name] *** *[space\$1name].* [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/studio-ui.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/studio-ui.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/studio-ui.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/studio-ui.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/studio-ui.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/studio-ui.html) Per le voci gerarchiche, un breadcrumb selezionabile nella parte superiore del browser mostra la tua posizione nella gerarchia.  | 
|  ![\[L’icona Controllo proprietà.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/gears@2x.png)  |  **Property Inspector** Property Inspector è un inspector degli strumenti delle celle dei notebook che visualizza le impostazioni delle proprietà contestuali quando è aperto.  | 
|  ![\[L’icona Terminali e kernel in esecuzione.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/running-terminals-kernels@2x.png)  |  **Terminali e kernel in esecuzione** È possibile controllare l’elenco di tutti i *kernel* e i *terminali* attualmente in esecuzione su tutti i notebook, le console di codice e le directory. Puoi arrestare risorse singole, inclusi notebook, terminali, kernel, app e istanze. Puoi anche arrestare contemporaneamente tutte le risorse di una di queste categorie. Per ulteriori informazioni, consulta [Chiudi le risorse di Amazon SageMaker Studio Classic](notebooks-run-and-manage-shut-down.md).  | 
|  ![\[L’icona Git.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/git@2x.png)  |  **Git** È possibile connettersi a un repository Git e quindi accedere a una gamma completa di strumenti e operazioni Git. Per ulteriori informazioni, consulta [Clona un repository Git in Amazon Studio Classic SageMaker](studio-tasks-git.md).  | 
|  ![\[L’icona Sommario.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/table-of-contents@2x.png)  | **Sommario**È possibile navigare nella struttura di un documento quando un notebook o file Python sono aperti. Vene generato automaticamente un sommario nel pannello di navigazione a sinistra quando sono aperti un notebook, file Markdown o file Python. Puoi fare clic sulle voci e scorrere il documento fino all’intestazione in questione. | 
|  ![\[L’icona Estensioni.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/extensions@2x.png)  |  **Estensioni** Puoi attivare e gestire estensioni di terze parti JupyterLab . Puoi controllare le estensioni già installate e cercarle digitando il nome nella barra di ricerca. Una volta trovata l’estensione che desideri installare, scegli **Installa**. Dopo aver installato le nuove estensioni, assicurati di riavviare il browser JupyterLab aggiornando il browser. Per ulteriori informazioni, consulta la [documentazione JupyterLab sulle estensioni](https://jupyterlab.readthedocs.io/en/stable/user/extensions.html).  | 

### Pannello di navigazione a sinistra
<a name="studio-ui-browser"></a>

Il contenuto del pannello di navigazione a sinistra varia a seconda dell’icona selezionata nella barra laterale sinistra.

Ad esempio, scegliendo l’icona **Home** viene visualizzato il menu di navigazione. Scegliendo **Browser di file** vengono elencati tutti i file e le directory disponibili nell’area di lavoro (notebook, esperimenti, flussi di dati, versioni di prova, componenti di prova, endpoint o soluzioni di codice a uso limitato).

Nel menu di navigazione, scegliendo un nodo viene visualizzata la pagina di funzionalità corrispondente nell’area di lavoro principale. Ad esempio, selezionando **Data Wrangler** nel menu **Dati** si apre **Data Wrangler** che elenca tutti i flussi esistenti.

### Area di lavoro principale
<a name="studio-ui-work"></a>

L’area di lavoro principale è costituita da più schede che contengono i notebook e i terminali aperti e informazioni dettagliate sugli esperimenti e sugli endpoint. Nell’area di lavoro principale, è possibile organizzare documenti (come notebook e file di testo) e altre attività (come terminali e console di codice) in pannelli di schede che è possibile ridimensionare o suddividere. Trascina una scheda al centro di un pannello a schede per spostarla sul pannello. Suddividi un pannello a schede trascinandolo verso sinistra, destra, in alto o in basso rispetto al pannello. La scheda per l’attività attuale è contrassegnata da un bordo superiore colorato (blu per impostazione predefinita).

**Nota**  
Tutte le pagine di funzionalità forniscono un aiuto contestuale integrato nel prodotto. Per accedere alla guida, scegli **Mostra informazioni**. L’interfaccia di aiuto fornisce una breve introduzione allo strumento e collegamenti a risorse aggiuntive, come video, tutorial o blog.

# Avvia Amazon SageMaker Studio Classic
<a name="studio-launch"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse 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 è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Dopo aver effettuato l'onboarding su un dominio Amazon SageMaker AI, puoi avviare un'applicazione Amazon SageMaker Studio Classic dalla console SageMaker AI o dal. AWS CLI Per ulteriori informazioni sull’onboarding in un dominio, consulta [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md).

**Topics**
+ [Avvia Amazon SageMaker Studio Classic utilizzando la console Amazon SageMaker AI](#studio-launch-console)
+ [Avvia Amazon SageMaker Studio Classic utilizzando AWS CLI](#studio-launch-cli)

## Avvia Amazon SageMaker Studio Classic utilizzando la console Amazon SageMaker AI
<a name="studio-launch-console"></a>

Il processo per accedere a Studio Classic dalla console Amazon SageMaker AI varia a seconda che Studio Classic o Amazon SageMaker Studio siano impostati come esperienza predefinita per il tuo dominio. Per ulteriori informazioni su come configurare l’esperienza predefinita per il tuo dominio, consulta [Migrazione da Amazon SageMaker Studio Classic](studio-updated-migrate.md).

**Topics**
+ [Prerequisito](#studio-launch-console-prerequisites)

### Prerequisito
<a name="studio-launch-console-prerequisites"></a>

 Per completare questa procedura, devi effettuare l'onboarding su un dominio seguendo i passaggi descritti in [Onboard to Amazon SageMaker AI](https://docs.aws.amazon.com//sagemaker/latest/dg/gs-studio-onboard.html) domain. 

### Avvio di Studio Classic se Studio è la tua esperienza predefinita
<a name="studio-launch-console-updated"></a>

1. Passa a Studio seguendo la procedura indicata in [Avvia Amazon SageMaker Studio](studio-updated-launch.md).

1. Dall’interfaccia utente di Studio, trova il riquadro delle applicazioni sulla sinistra.

1. Dal riquadro delle applicazioni, seleziona **Studio Classic**.

1. Nella pagina di destinazione di Studio Classic, seleziona l’istanza di Studio Classic da aprire.

1. Scegli “Apri”.

## Avvia Amazon SageMaker Studio Classic utilizzando AWS CLI
<a name="studio-launch-cli"></a>

Puoi utilizzare AWS Command Line Interface (AWS CLI) per avviare Amazon SageMaker Studio Classic creando un URL di dominio predefinito.

 **Prerequisiti** 

 Prima di iniziare, completa i seguenti prerequisiti: 
+  Effettua l'onboard nel dominio Amazon SageMaker AI. Per ulteriori informazioni, consulta [Onboard to Amazon SageMaker AI domain](https://docs.aws.amazon.com//sagemaker/latest/dg/gs-studio-onboard.html). 
+  Aggiorna il AWS CLI seguendo la procedura descritta in [Installazione della AWS CLI versione corrente](https://docs.aws.amazon.com//cli/latest/userguide/install-cliv1.html#install-tool-bundled). 
+  Dal computer locale, esegui `aws configure` e fornisci AWS le tue credenziali. Per informazioni sulle AWS credenziali, consulta [Comprendere e ottenere le AWS](https://docs.aws.amazon.com//general/latest/gr/aws-sec-cred-types.html) credenziali. 

Il seguente frammento di codice mostra come avviare Amazon SageMaker Studio Classic AWS CLI utilizzando un URL di dominio predefinito. Per ulteriori informazioni, consulta [create-presigned-domain-url](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-presigned-domain-url.html).

```
aws sagemaker create-presigned-domain-url \
--region region \
--domain-id domain-id \
--space-name space-name \
--user-profile-name user-profile-name \
--session-expiration-duration-in-seconds 43200
```

# JupyterLab Controllo delle versioni in Amazon SageMaker Studio Classic
<a name="studio-jl"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse 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 è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

L'interfaccia Amazon SageMaker Studio Classic si basa su JupyterLab, un ambiente di sviluppo interattivo basato sul Web per notebook, codice e dati. Studio Classic supporta solo l'utilizzo di 3. JupyterLab

Se hai creato il dominio e il profilo utente utilizzando il codice Console di gestione AWS precedente al 31/08/2022 o il precedente 22/02/23, l' AWS Command Line Interface istanza di Studio Classic è impostata come predefinita su 1. JupyterLab Dopo il 07/01/2024, non è possibile creare alcuna applicazione Studio Classic che esegua 1. JupyterLab 

## JupyterLab 3
<a name="jl3"></a>

JupyterLab 3 include le seguenti funzionalità che non sono disponibili nelle versioni precedenti. Per ulteriori informazioni su queste funzionalità, vedi [è stata rilasciata la JupyterLab versione 3.0\$1](https://blog.jupyter.org/jupyterlab-3-0-is-out-4f58385e25bb) . 
+ Debugger visivo quando utilizzi i kernel Base Python 2.0 e Data Science 2.0.
+ Filtro del browser di file 
+ Sommario 
+ Supporto multilingue 
+ Modalità semplice 
+ Modalità interfaccia singola 

### Modifiche importanti a JupyterLab 3
<a name="jl3-changes"></a>

 Quando usi JupyterLab 3, considera quanto segue: 
+ Quando impostate la JupyterLab versione utilizzando il AWS CLI, selezionate l'immagine corrispondente per la vostra regione e JupyterLab versione dall'elenco delle immagini in[Dal AWS CLI](#studio-jl-set-cli).
+ In JupyterLab 3, è necessario attivare l'ambiente `studio` conda prima di installare le estensioni. Per ulteriori informazioni, consulta [Installazione JupyterLab e estensioni di Jupyter Server](#studio-jl-install).
+ Debugger è supportato solo quando si utilizzano le seguenti immagini: 
  + Base Python 2.0
  + Data Science 2.0
  + Base Python 3.0
  + Data Science 3.0

## Limitazione della JupyterLab versione predefinita utilizzando una chiave di condizione della policy IAM
<a name="iam-policy"></a>

Puoi utilizzare le chiavi delle condizioni della policy IAM per limitare la versione JupyterLab che gli utenti possono lanciare.

La seguente politica mostra come limitare la JupyterLab versione a livello di dominio. 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "BlockJupyterLab3DomainLevelAppCreation",
            "Effect": "Deny",
            "Action": [
                "sagemaker:CreateDomain",
                "sagemaker:UpdateDomain"
            ],
            "Resource": "*",
            "Condition": {
                "ForAnyValue:ArnLike": {
                    "sagemaker:ImageArns": "arn:aws:sagemaker:us-east-1:111122223333:image/jupyter-server-3"
                }
            }
        }
    ]
}
```

------

La seguente politica mostra come limitare la JupyterLab versione a livello di profilo utente. 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "BlockUsersFromCreatingJupyterLab3Apps",
            "Effect": "Deny",
            "Action": [
                "sagemaker:CreateUserProfile",
                "sagemaker:UpdateUserProfile"
            ],
            "Resource": "*",
            "Condition": {
                "ForAnyValue:ArnLike": {
                    "sagemaker:ImageArns": "arn:aws:sagemaker:us-east-1:111122223333:image/jupyter-server-3"
                }
            }
        }
    ]
}
```

------

La seguente politica mostra come limitare la JupyterLab versione a livello di applicazione. La richiesta `CreateApp` deve includere l’ARN immagine affinché questa policy venga applicata.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "BlockJupyterLab3AppLevelAppCreation",
            "Effect": "Deny",
            "Action": "sagemaker:CreateApp",
            "Resource": "*",
            "Condition": {
                "ForAnyValue:ArnLike": {
                    "sagemaker:ImageArns": "arn:aws:sagemaker:us-east-1:111122223333:image/jupyter-server-3"
                }
            }
        }
    ]
}
```

------

## Impostazione di una JupyterLab versione predefinita
<a name="studio-jl-set"></a>

Nelle sezioni seguenti viene illustrato come impostare una JupyterLab versione predefinita per Studio Classic utilizzando la console o il AWS CLI.  

### Mediante la console
<a name="studio-jl-set-console"></a>

 È possibile selezionare la JupyterLab versione predefinita da utilizzare a livello di dominio o di profilo utente durante la creazione delle risorse. Per impostare la JupyterLab versione predefinita utilizzando la console, vedere[Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md).  

### Dal AWS CLI
<a name="studio-jl-set-cli"></a>

 È possibile selezionare la JupyterLab versione predefinita da utilizzare a livello di dominio o di profilo utente utilizzando AWS CLI.  

 Per impostare la JupyterLab versione predefinita utilizzando AWS CLI, è necessario includere l'ARN della JupyterLab versione predefinita desiderata come parte di un AWS CLI comando. Questo ARN si differenzia in base alla versione e alla regione del SageMaker dominio AI.  

La tabella seguente elenca le ARNs JupyterLab versioni disponibili per ogni regione:


|  Region  |  JL3  | 
| --- | --- | 
|  us-east-1  |  arn:aws:sagemaker:us-east-1:081325390199:image/jupyter-server-3  | 
|  us-east-2  |  arn:aws:sagemaker:us-east-2:429704687514:image/jupyter-server-3  | 
|  us-west-1  |  arn:aws:sagemaker:us-west-1:742091327244:image/jupyter-server-3  | 
|  us-west-2  |  arn:aws:sagemaker:us-west-2:236514542706:image/jupyter-server-3  | 
|  af-south-1  |  arn:aws:sagemaker:af-south-1:559312083959:image/jupyter-server-3  | 
|  ap-east-1  |  arn:aws:sagemaker:ap-east-1:493642496378:image/jupyter-server-3  | 
|  ap-south-1  |  arn:aws:sagemaker:ap-south-1:394103062818:image/jupyter-server-3  | 
|  ap-northeast-2  |  arn:aws:sagemaker:ap-northeast-2:806072073708:image/jupyter-server-3  | 
|  ap-southeast-1  |  arn:aws:sagemaker:ap-southeast-1:492261229750:image/jupyter-server-3  | 
|  ap-southeast-2  |  arn:aws:sagemaker:ap-southeast-2:452832661640:image/jupyter-server-3  | 
|  ap-northeast-1  |  arn:aws:sagemaker:ap-northeast-1:102112518831:image/jupyter-server-3  | 
|  ca-central-1  |  arn:aws:sagemaker:ca-central-1:310906938811:image/jupyter-server-3  | 
|  eu-central-1  |  arn:aws:sagemaker:eu-central-1:936697816551:image/jupyter-server-3  | 
|  eu-west-1  |  arn:aws:sagemaker:eu-west-1:470317259841:image/jupyter-server-3  | 
|  eu-west-2  |  arn:aws:sagemaker:eu-west-2:712779665605:image/jupyter-server-3  | 
|  eu-west-3  |  arn:aws:sagemaker:eu-west-3:615547856133:image/jupyter-server-3  | 
|  eu-north-1  |  arn:aws:sagemaker:eu-north-1:243637512696:image/jupyter-server-3  | 
|  eu-south-1  |  arn:aws:sagemaker:eu-south-1:592751261982:image/jupyter-server-3  | 
|  eu-south-2  |  arn:aws:sagemaker:eu-south-2:127363102723:image/jupyter-server-3  | 
|  sa-east-1  |  arn:aws:sagemaker:sa-east-1:782484402741:image/jupyter-server-3  | 
|  cn-north-1  |  arn:aws-cn:sagemaker:cn-north-1:390048526115:image/jupyter-server-3  | 
|  cn-northwest-1  |  arn:aws-cn:sagemaker:cn-northwest-1:390780980154:image/jupyter-server-3  | 

#### Creazione o aggiornamento del dominio
<a name="studio-jl-set-cli-domain"></a>

 È possibile impostare una JupyterServer versione predefinita a livello di dominio richiamando [CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html)o [UpdateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateDomain.html)e passando il `UserSettings.JupyterServerAppSettings.DefaultResourceSpec.SageMakerImageArn` campo. 

 Di seguito viene illustrato come creare un dominio con JupyterLab 3 come impostazione predefinita, utilizzando: AWS CLI

```
aws --region <REGION> \
sagemaker create-domain \
--domain-name <NEW_DOMAIN_NAME> \
--auth-mode <AUTHENTICATION_MODE> \
--subnet-ids <SUBNET-IDS> \
--vpc-id <VPC-ID> \
--default-user-settings '{
  "JupyterServerAppSettings": {
    "DefaultResourceSpec": {
      "SageMakerImageArn": "arn:aws:sagemaker:<REGION>:<ACCOUNT_ID>:image/jupyter-server-3",
      "InstanceType": "system"
    }
  }
}'
```

 Di seguito viene illustrato come aggiornare un dominio per utilizzare JupyterLab 3 come predefinito, utilizzando AWS CLI: 

```
aws --region <REGION> \
sagemaker update-domain \
--domain-id <YOUR_DOMAIN_ID> \
--default-user-settings '{
  "JupyterServerAppSettings": {
    "DefaultResourceSpec": {
      "SageMakerImageArn": "arn:aws:sagemaker:<REGION>:<ACCOUNT_ID>:image/jupyter-server-3",
      "InstanceType": "system"
    }
  }
}'
```

#### Creazione o aggiornamento di un profilo utente
<a name="studio-jl-set-cli-user"></a>

 È possibile impostare una JupyterServer versione predefinita a livello di profilo utente richiamando [CreateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html)o [UpdateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateUserProfile.html)e passando il `UserSettings.JupyterServerAppSettings.DefaultResourceSpec.SageMakerImageArn` campo. 

 Di seguito viene illustrato come creare un profilo utente con JupyterLab 3 come impostazione predefinita su un dominio esistente, utilizzando: AWS CLI

```
aws --region <REGION> \
sagemaker create-user-profile \
--domain-id <YOUR_DOMAIN_ID> \
--user-profile-name <NEW_USERPROFILE_NAME> \
--query UserProfileArn --output text \
--user-settings '{
  "JupyterServerAppSettings": {
    "DefaultResourceSpec": {
      "SageMakerImageArn": "arn:aws:sagemaker:<REGION>:<ACCOUNT_ID>:image/jupyter-server-3",
      "InstanceType": "system"
    }
  }
}'
```

 Di seguito viene illustrato come aggiornare un profilo utente per utilizzare JupyterLab 3 come predefinito, utilizzando AWS CLI: 

```
aws --region <REGION> \
sagemaker update-user-profile \
 --domain-id <YOUR_DOMAIN_ID> \
 --user-profile-name <EXISTING_USERPROFILE_NAME> \
--user-settings '{
  "JupyterServerAppSettings": {
    "DefaultResourceSpec": {
      "SageMakerImageArn": "arn:aws:sagemaker:<REGION>:<ACCOUNT_ID>:image/jupyter-server-3",
      "InstanceType": "system"
    }
  }
}'
```

## Visualizza e aggiorna la JupyterLab versione di un'applicazione dalla console
<a name="studio-jl-view"></a>

 Di seguito viene illustrato come visualizzare e aggiornare la JupyterLab versione di un'applicazione. 

1.  Vai alla pagina dei **domini SageMaker ** AI. 

1.  Seleziona un dominio per visualizzarne i profili utente. 

1.  Seleziona un utente per visualizzarne le applicazioni. 

1.  Per visualizzare la JupyterLab versione di un'applicazione, seleziona il nome dell'applicazione. 

1.  Per aggiornare la JupyterLab versione, seleziona **Azione**. 

1.  Dal menu a discesa, seleziona **Cambia JupyterLab versione**. 

1.  Dalla pagina delle **impostazioni di Studio Classic**, seleziona la JupyterLab versione dal menu a discesa. 

1.  Dopo aver aggiornato correttamente la JupyterLab versione del profilo utente, riavvia l' JupyterServer applicazione per rendere effettive le modifiche alla versione. Per ulteriori informazioni sul riavvio di un' JupyterServer applicazione, vedere. [Chiudi e aggiorna Amazon SageMaker Studio Classic](studio-tasks-update-studio.md)

## Installazione JupyterLab e estensioni di Jupyter Server
<a name="studio-jl-install"></a>

In JupyterLab 3, è necessario attivare l'ambiente `studio` conda prima di installare le estensioni. Il metodo varia se stai installando le estensioni da Studio Classic o con uno script di configurazione del ciclo di vita.

### Installazione dell’estensione da Studio Classic
<a name="studio-jl-install-studio"></a>

Prima di installare le estensioni da Studio Classic, devi attivare l’ambiente `studio`. 

```
# Before installing extensions
conda activate studio

# Install your extensions
pip install <JUPYTER_EXTENSION>

# After installing extensions
conda deactivate
```

### Installazione delle estensioni tramite uno script di configurazione del ciclo di vita
<a name="studio-jl-install-lcc"></a>

Se state installando JupyterLab estensioni di Jupyter Server nello script di configurazione del ciclo di vita, dovete modificare lo script in modo che funzioni con 3. JupyterLab Le sezioni seguenti mostrano il codice necessario per gli script di configurazione del ciclo di vita esistenti e nuovi.

#### Script di configurazione del ciclo di vita
<a name="studio-jl-install-lcc-existing"></a>

Se stai riutilizzando uno script di configurazione del ciclo di vita esistente che deve funzionare con entrambe le versioni di JupyterLab, utilizza il codice seguente nello script:

```
# Before installing extension
export AWS_SAGEMAKER_JUPYTERSERVER_IMAGE="${AWS_SAGEMAKER_JUPYTERSERVER_IMAGE:-'jupyter-server'}"
if [ "$AWS_SAGEMAKER_JUPYTERSERVER_IMAGE" = "jupyter-server-3" ] ; then
   eval "$(conda shell.bash hook)"
   conda activate studio
fi;

# Install your extensions
pip install <JUPYTER_EXTENSION>


# After installing extension
if [ "$AWS_SAGEMAKER_JUPYTERSERVER_IMAGE" = "jupyter-server-3" ]; then
   conda deactivate
fi;
```

#### Nuovo script di configurazione del ciclo di vita
<a name="studio-jl-install-lcc-new"></a>

Se stai scrivendo un nuovo script di configurazione del ciclo di vita che utilizza solo JupyterLab 3, puoi utilizzare il seguente codice nello script:

```
# Before installing extension
eval "$(conda shell.bash hook)"
conda activate studio


# Install your extensions
pip install <JUPYTER_EXTENSION>


conda deactivate
```

# Usa Amazon SageMaker Studio Classic Launcher
<a name="studio-launcher"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Puoi usare Amazon SageMaker Studio Classic Launcher per creare notebook e file di testo e per avviare terminali e shell Python interattive.

Puoi aprire l’utilità di avvio di Studio Classic nei seguenti modi:
+ Scegli **Amazon SageMaker Studio Classic** nella parte superiore sinistra dell'interfaccia di Studio Classic.
+ Utilizza la scelta rapida da tastiera `Ctrl + Shift + L`.
+ Dal menu di Studio Classic, scegli **File**, quindi **Nuova utilità di avvio**.
+ Se il browser di file SageMaker AI è aperto, scegli il segno più (**\$1**) nel menu del file browser di Studio Classic.
+ Nella sezione **Azioni rapide** della scheda **Home**, scegli **Apri utilità di avvio**. L’utilità di avvio viene aperta in una nuova scheda. La sezione **Azioni rapide** è visibile per impostazione predefinita ma può essere disattivata. Scegli **Personalizza layout** per riattivare questa sezione.

![\[SageMaker Avvio di Studio Classic.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/studio-new-launcher.png)


L’utilità di avvio include le due sezioni seguenti:

**Topics**
+ [Notebook e risorse di calcolo](#studio-launcher-launch)
+ [Utilità e file](#studio-launcher-other)

## Notebook e risorse di calcolo
<a name="studio-launcher-launch"></a>

In questa sezione puoi creare un notebook, aprire un terminale di immagini o aprire una console Python.

Per creare o avviare uno di questi elementi:

1. Scegliete **Cambia ambiente** per selezionare un' SageMaker immagine, un kernel, un tipo di istanza e, facoltativamente, aggiungere uno script di configurazione del ciclo di vita da eseguire all'avvio dell'immagine. Per ulteriori informazioni sugli script di configurazione del ciclo di vita, consulta [Usa le configurazioni del ciclo di vita per personalizzare Amazon Studio Classic SageMaker](studio-lcc.md). Per ulteriori informazioni sugli aggiornamenti del kernel, consulta [Modifica dell'immagine o di un kernel per un notebook Amazon SageMaker Studio Classic](notebooks-run-and-manage-change-image.md).

1. Selezione di un elemento.

**Nota**  
Quando scegli un articolo da questa sezione, potresti incorrere in costi di utilizzo aggiuntivi. Per ulteriori informazioni, consulta [Misurazione dell'utilizzo per i notebook Amazon SageMaker Studio Classic](notebooks-usage-metering.md).

Sono disponibili i seguenti tipi di elementi:
+ **Notebook**

  Avvia il notebook in una sessione del kernel sull'immagine scelta. SageMaker 

  Crea il notebook nella cartella attualmente selezionata nel browser di file. Per visualizzare il browser di file, nella barra laterale sinistra di Studio Classic seleziona l’icona **Browser di file**.
+ **Console**

  Avvia la shell in una sessione del kernel sull'immagine scelta. SageMaker 

  Apre la shell nella cartella attualmente selezionata nel browser di file.
+ **Immagine del terminale**

  Avvia il terminale in una sessione terminale sull'immagine scelta. SageMaker 

  Apre il terminale nella cartella principale dell’utente (come mostrato dalla cartella **Home** nel browser di file).

**Nota**  
Per impostazione predefinita, le istanze CPU vengono avviate su un’istanza `ml.t3.medium`, mentre le istanze GPU vengono avviate su un’istanza `ml.g4dn.xlarge`.

## Utilità e file
<a name="studio-launcher-other"></a>

In questa sezione, è possibile aggiungere un aiuto contestuale in un notebook, creare file Python, Markdown e di testo e aprire un terminale di sistema.

**Nota**  
Gli articoli in questa sezione vengono eseguiti nel contesto di Amazon SageMaker Studio Classic e non comportano costi di utilizzo.

Sono disponibili i seguenti tipi di elementi:
+ **Mostra la guida contestuale**

  Apre una nuova scheda che mostra la guida contestuale per le funzioni in un notebook di Studio Classic. Per visualizzare la guida, scegli una funzione in un notebook attivo. Per facilitare la visualizzazione della guida nel contesto, trascina la scheda di aiuto in modo che sia adiacente alla scheda del notebook. Per aprire la scheda della guida dall’interno di un notebook, premi `Ctrl + I`.

  Lo screenshot seguente mostra la guida contestuale per il metodo `Experiment.create`.  
![\[SageMaker Guida contestuale di Studio Classic.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/studio-context-help.png)
+ **Terminale di sistema**

  Apre una shell `bash` nella cartella principale dell’utente (come mostrato dalla cartella **Home** nel browser di file).
+ **File di testo** e **file Markdown**

  Crea un file del tipo associato nella cartella attualmente selezionata nel browser di file. Per visualizzare il browser di file, nella barra laterale sinistra seleziona l'icona **Browser di file** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/folder.png)).

# Usa i notebook Amazon SageMaker Studio Classic
<a name="notebooks"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

I notebook Amazon SageMaker Studio Classic sono notebook collaborativi che puoi avviare rapidamente perché non è necessario configurare prima istanze di calcolo e storage di file. I notebook Studio Classic forniscono un’archiviazione persistente, che consente di visualizzare e condividere i notebook anche se le istanze su cui i notebook vengono eseguiti sono chiuse.

Puoi condividere i notebook con altri utenti, in modo che possano riprodurre facilmente i risultati e collaborare durante la creazione di modelli e l’esplorazione dei dati. Fornisci l’accesso a una copia di sola lettura del notebook tramite un URL protetto. Le dipendenze per il notebook sono incluse nei metadati del notebook. Quando i colleghi copiano il notebook, viene aperto nello stesso ambiente del notebook originale.

Un notebook Studio Classic viene eseguito in un ambiente definito da quanto segue:
+ Tipo di istanza Amazon EC2: configurazione hardware su cui viene eseguito il notebook. La configurazione include il numero e il tipo di processori (vCPU e vGPU), nonché la quantità e il tipo di memoria. Il tipo di istanza determina i prezzi.
+ SageMaker image: un'immagine del contenitore compatibile con Studio Classic. SageMaker L’immagine è costituita dai kernel, dai pacchetti linguistici e da altri file necessari per eseguire un notebook in Studio Classic. Possono esserci più immagini in un’istanza. Per ulteriori informazioni, consulta [Immagini personalizzate in Amazon SageMaker Studio Classic](studio-byoi.md).
+ KernelGateway app: un' SageMaker immagine viene eseguita come KernelGateway app. Viene fornito l’accesso ai kernel dell’immagine. Esiste una one-to-one corrispondenza tra un'immagine SageMaker AI e un' KernelGateway app.
+ Kernel: processo che ispeziona ed esegue il codice contenuto nel notebook. Un kernel è definito da una *specifica del kernel nell’immagine*. In un’immagine possono esserci più kernel.

Puoi modificare una qualsiasi di queste risorse dal notebook.

Il diagramma seguente illustra come funziona il kernel di un notebook in relazione all' KernelGatewayapp, all'utente e al dominio.

![\[Come funziona un kernel di un notebook in relazione all' KernelGateway app, all'utente e al dominio.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/studio-components.png)


[I notebook Sample SageMaker Studio Classic sono disponibili nella cartella [aws\$1sagemaker\$1studio](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/aws_sagemaker_studio) del repository di esempio Amazon. SageMaker GitHub ](https://github.com/awslabs/amazon-sagemaker-examples) Ogni notebook viene fornito con l'immagine necessaria che apre il notebook con il kernel appropriato. SageMaker 

Si consiglia di acquisire familiarità con l'interfaccia di SageMaker Studio Classic e la barra degli strumenti del notebook Studio Classic prima di creare o utilizzare un notebook Studio Classic. Per ulteriori informazioni, consultare [Panoramica dell'interfaccia utente di Amazon SageMaker Studio Classic](studio-ui.md) e [Utilizzo della barra degli strumenti dei notebook Studio Classic](notebooks-menu.md).

**Topics**
+ [In che modo i notebook Amazon SageMaker Studio Classic sono diversi dalle istanze Notebook?](notebooks-comparison.md)
+ [Inizia a usare i notebook Amazon SageMaker Studio Classic](notebooks-get-started.md)
+ [Tour classico di Amazon SageMaker Studio](gs-studio-end-to-end.md)
+ [Crea o apri un notebook Amazon SageMaker Studio Classic](notebooks-create-open.md)
+ [Utilizzo della barra degli strumenti dei notebook Studio Classic](notebooks-menu.md)
+ [Installazione di librerie e kernel esterni in Amazon SageMaker Studio Classic](studio-notebooks-add-external.md)
+ [Condividi e usa un notebook Amazon SageMaker Studio Classic](notebooks-sharing.md)
+ [Ottieni i metadati delle app e dei notebook Amazon SageMaker Studio Classic](notebooks-run-and-manage-metadata.md)
+ [Scopri le differenze tra i notebook in Amazon SageMaker Studio Classic](notebooks-diff.md)
+ [Gestisci le risorse per i notebook Amazon SageMaker Studio Classic](notebooks-run-and-manage.md)
+ [Misurazione dell'utilizzo per i notebook Amazon SageMaker Studio Classic](notebooks-usage-metering.md)
+ [Risorse disponibili per i notebook Amazon SageMaker Studio Classic](notebooks-resources.md)

# In che modo i notebook Amazon SageMaker Studio Classic sono diversi dalle istanze Notebook?
<a name="notebooks-comparison"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Quando inizi a creare un nuovo notebook, ti consigliamo di crearlo in Amazon SageMaker Studio Classic anziché avviare un'istanza di notebook dalla console Amazon SageMaker AI. L’utilizzo di un notebook Studio Classic offre numerosi vantaggi, inclusi i seguenti:
+ **Più velocità:** l’avvio di un notebook Studio Classic è più veloce rispetto a uno basato su istanze. In genere, è 5-10 volte più veloce dei notebook basati su istanze.
+ **Condivisione semplificata dei notebook:** la condivisione dei notebook è una funzionalità integrata in Studio Classic. Gli utenti possono generare un link condivisibile che riproduce il codice del notebook e anche l' SageMaker immagine necessaria per eseguirlo, in pochi clic.
+ **SDK Python più recente:** [i notebook Studio Classic sono preinstallati con l'ultimo SDK Amazon Python. SageMaker ](https://sagemaker.readthedocs.io/en/stable)
+ **Accesso a tutte le funzionalità di Studio Classic:** i notebook Studio Classic sono accessibili dall’interno di Studio Classic. Ciò consente di creare, addestrare, eseguire il debug, tracciare e monitorare i modelli senza uscire da Studio Classic.
+ **Directory utenti persistenti:** ogni membro di un team di Studio ottiene la propria home directory per archiviare i propri notebook e altri file. La directory viene montata automaticamente su tutte le istanze e i kernel all’avvio, in modo che i relativi notebook e altri file siano sempre disponibili. Le home directory sono archiviate in Amazon Elastic File System (Amazon EFS) in modo che siano accessibili da altri servizi.
+ **Accesso diretto:** quando utilizzi il Centro identità IAM, le credenziali del Centro identità IAM vengono fornite tramite un URL univoco che consente di accedere direttamente a Studio Classic. Non è necessario interagire con loro per far funzionare i notebook. Console di gestione AWS 
+ **Immagini ottimizzate:** i notebook Studio Classic sono dotati di una serie di impostazioni di SageMaker immagine predefinite per consentirti di iniziare più velocemente.

**Nota**  
I notebook Studio Classic non supportano la *modalità locale*. Tuttavia, puoi utilizzare un’istanza del notebook per addestrare localmente un campione del set di dati e quindi utilizzare lo stesso codice in un notebook di Studio Classic per eseguire l’addestramento sul set di dati completo.

Quando si apre un notebook in SageMaker Studio Classic, la visualizzazione è un'estensione dell'interfaccia. JupyterLab Le funzionalità principali sono le stesse, quindi troverai le caratteristiche tipiche di un notebook Jupyter e. JupyterLab Per ulteriori informazioni sull’interfaccia di Studio Classic, consulta [Panoramica dell'interfaccia utente di Amazon SageMaker Studio Classic](studio-ui.md).

# Inizia a usare i notebook Amazon SageMaker Studio Classic
<a name="notebooks-get-started"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Per iniziare, tu o l'amministratore della tua organizzazione dovete completare il processo di onboarding del dominio SageMaker AI. Per ulteriori informazioni, consulta [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md).

Puoi accedere a un notebook Studio Classic in uno dei seguenti modi:
+ Riceverai un invito via e-mail per accedere a Studio Classic tramite l'IAM Identity Center della tua organizzazione, che include un link diretto per accedere a Studio Classic senza dover utilizzare la console Amazon SageMaker AI. Puoi passare alle [Fasi successive](#notebooks-get-started-next-steps).
+ Riceverai un link a un notebook Studio Classic condiviso, che include un collegamento diretto per accedere a Studio Classic senza dover utilizzare la console SageMaker AI. Puoi passare alle [Fasi successive](#notebooks-get-started-next-steps). 
+ Effettua l'onboarding a un dominio e poi accedi alla console SageMaker AI. Per ulteriori informazioni, consulta [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md).

## Avvia Amazon SageMaker AI
<a name="notebooks-get-started-log-in"></a>

Completa la procedura in [Avvia Amazon SageMaker Studio Classic](studio-launch.md) per avviare Studio Classic.

## Fasi successive
<a name="notebooks-get-started-next-steps"></a>

Dopo aver effettuato l’accesso a Studio Classic, puoi provare una delle opzioni seguenti:
+ Per creare un notebook Studio Classic o esplorare i taccuini con end-to-end tutorial di Studio Classic, consulta la sezione [Tour classico di Amazon SageMaker Studio](gs-studio-end-to-end.md) successiva.
+ Per familiarizzare con l’interfaccia di Studio Classic, consulta [Panoramica dell'interfaccia utente di Amazon SageMaker Studio Classic](studio-ui.md) o prova il **notebook Nozioni di base** selezionando **Apri notebook Nozioni di base** nella sezione **Azioni rapide** della home page di Studio Classic.

# Tour classico di Amazon SageMaker Studio
<a name="gs-studio-end-to-end"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

[Per una guida dettagliata che illustra le caratteristiche principali di Amazon SageMaker Studio Classic, consulta il notebook di esempio [xgboost\$1customer\$1churn\$1studio.ipynb](https://sagemaker-examples.readthedocs.io/en/latest/aws_sagemaker_studio/getting_started/xgboost_customer_churn_studio.html) dal repository aws/. amazon-sagemaker-examples](https://github.com/aws/amazon-sagemaker-examples) GitHub Il codice contenuto nel notebook SageMaker addestra SageMaker più modelli e configura Debugger e Model Monitor. Nella procedura dettagliata viene illustrato come visualizzare le versioni di prova, confrontare i modelli risultanti, mostrare i risultati del debugger e implementare il modello migliore utilizzando l’interfaccia utente di Studio Classic. Non è necessario comprendere il codice per seguire questa procedura dettagliata.

**Prerequisiti**

Per eseguire il notebook in questa presentazione, è necessario:
+ Un account IAM per accedere a Studio. Per informazioni, consulta [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md).
+ Familiarità di base con l'interfaccia utente Studio e i notebook Jupyter. Per informazioni, consulta [Panoramica dell'interfaccia utente di Amazon SageMaker Studio Classic](studio-ui.md).
+ Una copia del amazon-sagemaker-examples repository [aws/](https://github.com/aws/amazon-sagemaker-examples) nell'ambiente Studio.

**Per clonare il repository**

1. Avvia Studio Classic con la procedura descritta in [Avvia Amazon SageMaker Studio Classic](studio-launch.md). Gli utenti del Centro identità IAM possono accedere utilizzando l’URL nell’e-mail di invito.

1. Nel menu in alto, scegli **File**, poi **Nuovo**, quindi **Terminale**.

1. [Al prompt dei comandi, esegui il seguente comando per clonare il repository aws/. amazon-sagemaker-examples](https://github.com/aws/amazon-sagemaker-examples) GitHub 

   ```
   $ git clone https://github.com/aws/amazon-sagemaker-examples.git
   ```

**Per accedere al notebook di esempio**

1. Dal **File Browser** nel menu a sinistra, seleziona. **amazon-sagemaker-examples**

1. Vai al notebook di esempio con il seguente percorso.

   `~/amazon-sagemaker-examples/aws_sagemaker_studio/getting_started/xgboost_customer_churn_studio.ipynb`

1. Segui il notebook per scoprire le funzionalità principali di Studio Classic.

**Nota**  
Se riscontri un errore durante l'esecuzione del notebook di esempio ed è passato del tempo dalla clonazione del repository, controlla il notebook sul repository remoto per verificare la presenza di eventuali aggiornamenti.

# Crea o apri un notebook Amazon SageMaker Studio Classic
<a name="notebooks-create-open"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse 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 è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Quando utilizzi [Creazione di un notebook dal menu File](#notebooks-create-file-menu) Amazon SageMaker Studio Classic o [Apertura di un notebook in Studio Classic](#notebooks-open) per la prima volta, ti viene richiesto di configurare il tuo ambiente scegliendo SageMaker un'immagine, un kernel, un tipo di istanza e, facoltativamente, uno script di configurazione del ciclo di vita da eseguire all'avvio dell'immagine. SageMaker L'intelligenza artificiale avvia il notebook su un'istanza del tipo scelto. Per immagini basate su CPU, il tipo di istanza predefinito è `ml.t3.medium` (disponibile come parte del [AWS Piano gratuito](https://aws.amazon.com/free)). Per le immagini basate su GPU, il tipo di istanza predefinito è `ml.g4dn.xlarge`.

Se crei o apri notebook aggiuntivi che utilizzano lo stesso tipo di istanza, a prescindere che i notebook utilizzino o meno lo stesso kernel, i notebook vengono eseguiti sulla stessa istanza di tale tipo di istanza.

Dopo aver avviato un notebook, è possibile modificarne il tipo di istanza, SageMaker l'immagine e il kernel dall'interno del notebook. Per ulteriori informazioni, consultare [Modifica del tipo di istanza per un notebook Amazon SageMaker Studio Classic](notebooks-run-and-manage-switch-instance-type.md) e [Modifica dell'immagine o di un kernel per un notebook Amazon SageMaker Studio Classic](notebooks-run-and-manage-change-image.md).

**Nota**  
Puoi avere una sola istanza per tipo di istanza. Ogni istanza può avere più SageMaker immagini in esecuzione su di essa. Ogni SageMaker immagine può eseguire più kernel o istanze di terminale. 

La fatturazione avviene per istanza e inizia quando viene avviata la prima istanza di un determinato tipo di istanza. Se desideri creare o aprire un notebook senza il rischio di sostenere costi, apri il notebook dal menu **File** e scegli **Nessun kernel** dalla finestra di dialogo **Seleziona kernel**. Puoi leggere e modificare un notebook senza un kernel, ma non puoi eseguire celle di codice.

La fatturazione termina quando l' SageMaker immagine dell'istanza viene chiusa. Per ulteriori informazioni, consulta [Misurazione dell'utilizzo per i notebook Amazon SageMaker Studio Classic](notebooks-usage-metering.md).

Per informazioni sull'arresto dei notebook, consulta [Arresto delle risorse](notebooks-run-and-manage-shut-down.md#notebooks-run-and-manage-shut-down-sessions).

**Topics**
+ [Apertura di un notebook in Studio Classic](#notebooks-open)
+ [Creazione di un notebook dal menu File](#notebooks-create-file-menu)
+ [Creazione di un notebook dall'utilità di avvio](#notebooks-create-launcher)
+ [Elenco dei tipi di istanze, immagini e kernel disponibili](#notebooks-instance-image-kernels)

## Apertura di un notebook in Studio Classic
<a name="notebooks-open"></a>

Amazon SageMaker Studio Classic può aprire solo i notebook elencati nel browser di file Studio Classic. Per istruzioni sull'aggiunta di un notebook al browser di file, vedere [Caricare file su Amazon SageMaker Studio Classic](studio-tasks-files.md) o [Clona un repository Git in Amazon Studio Classic SageMaker](studio-tasks-git.md).

**Per aprire un notebook**

1. Nella barra laterale sinistra, seleziona l'icona **File Browser (Browser di file)** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/folder.png)) per visualizzare il browser di file.

1. Individua un file notebook e fai doppio clic per aprire il notebook in una nuova scheda.

## Creazione di un notebook dal menu File
<a name="notebooks-create-file-menu"></a>

**Per creare un notebook dal menu File**

1. Dal menu di Studio Classic, scegli **File**, **Nuovo**, quindi **Notebook**.

1. Nella finestra di dialogo **Cambia ambiente**, utilizza i menu a discesa per selezionare **immagine**, **kernel**, **tipo di istanza** e **script di avvio**, quindi scegli **Seleziona**. Studio Classic avvia e apre il notebook in una nuova scheda.  
![\[Configurazione dell’ambiente del notebook Studio Classic.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/studio-notebook-environment-setup.png)

## Creazione di un notebook dall'utilità di avvio
<a name="notebooks-create-launcher"></a>

**Per creare un notebook dall'utilità di avvio**

1. Per aprire il Launcher, scegli **Amazon SageMaker Studio Classic** in alto a sinistra dell'interfaccia di Studio Classic o usa la scorciatoia `Ctrl + Shift + L` da tastiera.

   Per informazioni sulle modalità di apertura dell’utilità di avvio disponibili, consulta [Usa Amazon SageMaker Studio Classic Launcher](studio-launcher.md)

1. Nell’utilità di avvio, nella sezione **Notebook e risorse di calcolo**, scegli **Cambia ambiente**.  
![\[SageMaker Studio Classic imposta l'ambiente per notebook.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/studio-launcher-notebook-creation.png)

1. Nella finestra di dialogo **Cambia ambiente**, utilizza i menu a discesa per selezionare **immagine**, **kernel**, **tipo di istanza** e **script di avvio**, quindi scegli **Seleziona**.

1. Nell’utilità di avvio, selezionare **Crea notebook**. Studio Classic avvia e apre il notebook in una nuova scheda.

Per visualizzare la sessione di kernel del notebook, nella barra laterale sinistra, seleziona l’icona **Terminali e kernel in esecuzione** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/running-terminals-kernels.png)). Puoi interrompere la sessione kernel del notebook da questa visualizzazione.

## Elenco dei tipi di istanze, immagini e kernel disponibili
<a name="notebooks-instance-image-kernels"></a>

Per un elenco di tutte le risorse disponibili, consulta:
+ [Tipi di istanze disponibili per l'uso con i notebook Amazon SageMaker Studio Classic](notebooks-available-instance-types.md)
+ [SageMaker Immagini Amazon disponibili per l'uso con i notebook Studio Classic](notebooks-available-images.md)

# Utilizzo della barra degli strumenti dei notebook Studio Classic
<a name="notebooks-menu"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

I notebook Amazon SageMaker Studio Classic estendono l'interfaccia. JupyterLab [Per una panoramica dell' JupyterLabinterfaccia originale, consulta The Interface. JupyterLab](https://jupyterlab.readthedocs.io/en/latest/user/interface.html)

L’immagine seguente mostra la barra degli strumenti e una cella vuota di un notebook Studio Classic.

![\[SageMaker Menu del notebook Studio Classic.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/studio-notebook-menu.png)


Passando il cursore su un’icona della barra degli strumenti, un tooltip ne mostra la funzione. Ulteriori comandi del notebook sono disponibili nel menu principale di Studio Classic. La barra degli strumenti include le seguenti icone:


| Icon | Description | 
| --- | --- | 
|  ![\[L’icona Salva ed esegui il checkpoint.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/notebook-save-and-checkpoint.png)  |  **Salva ed esegui il checkpoint** Salva il notebook e aggiorna il file del checkpoint. Per ulteriori informazioni, consulta [Ottieni la differenza tra l'ultimo checkpoint](notebooks-diff.md#notebooks-diff-checkpoint).  | 
|  ![\[L’icona Inserisci cella.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/notebook-insert-cell.png)  |  **Inserisci cella** Inserisce una cella di codice sotto la cella corrente. La cella corrente è annotata dal marcatore verticale blu nel margine sinistro.  | 
|  ![\[Le icone Taglia, copia e incolla celle.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/notebook-cut-copy-paste.png)  |  **Taglia, copia e incolla celle** Taglia, copia e incolla le celle selezionate.  | 
|  ![\[L’icona Esegui celle.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/notebook-run.png)  |  **Esegui celle** Esegue le celle selezionate e quindi rende la cella che segue l'ultima cella selezionata la nuova cella selezionata.  | 
|  ![\[L’icona Interrompi kernel.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/notebook-interrupt-kernel.png)  |  **Interrompi kernel** Interrompe il kernel, il che annulla l'operazione attualmente in esecuzione. Il kernel rimane attivo.  | 
|  ![\[L’icona Riavvia kernel.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/notebook-restart-kernel.png)  |  **Riavvia kernel** Riavvia il kernel. Le variabili vengono reimpostate. Le informazioni non salvate non sono interessate.  | 
|  ![\[L’icona Riavvia kernel ed esegui tutte le celle.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/notebook-restart-kernel-run-all-cells.png)  |  **Riavvia kernel ed esegui tutte le celle** Riavvia il kernel, quindi esegue tutte le celle del notebook.  | 
|  ![\[L’icona Tipo di cella.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/notebook-cell-type.png)  |  **Tipo di cella** Visualizza o modifica il tipo di cella corrente. I tipi di cella sono: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/notebooks-menu.html)  | 
|  ![\[L’icona Avvia terminale.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/notebook-launch-terminal.png)  |  **Avvio terminale** Avvia un terminale nell' SageMaker immagine che ospita il notebook. Per vedere un esempio, consulta [Ottenere i metadati dell’app](notebooks-run-and-manage-metadata.md#notebooks-run-and-manage-metadata-app).  | 
|  ![\[L’icona Diff checkpoint.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/notebook-checkpoint-diff.png)  |  **Diff checkpoint** Apre una nuova scheda che visualizza la differenza tra il notebook e il file del checkpoint. Per ulteriori informazioni, consulta [Ottieni la differenza tra l'ultimo checkpoint](notebooks-diff.md#notebooks-diff-checkpoint).  | 
|  ![\[L’icona Diff Git.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/notebook-git-diff.png)  |  **Git diff** Abilitato solo se il notebook viene aperto da un repository Git. Apre una nuova scheda che visualizza la differenza tra il notebook e l'ultimo commit Git. Per ulteriori informazioni, consulta [Ottenere la differenza tra l'ultimo commit](notebooks-diff.md#notebooks-diff-git).  | 
|  **2 vCPU \$1 4 GiB**  |  **Tipo di istanza** Visualizza o modifica il tipo di istanza in cui viene eseguito il notebook. Il formato è il seguente: `number of vCPUs + amount of memory + number of GPUs` `Unknown` indica che il notebook è stato aperto senza specificare un kernel. Il notebook funziona sull'istanza SageMaker Studio e non comporta costi di runtime. Non è possibile assegnare il notebook a un tipo di istanza. È necessario specificare un kernel e quindi Studio assegna il notebook a un tipo predefinito. Per ulteriori informazioni, consultare [Crea o apri un notebook Amazon SageMaker Studio Classic](notebooks-create-open.md) e [Modifica del tipo di istanza per un notebook Amazon SageMaker Studio Classic](notebooks-run-and-manage-switch-instance-type.md).  | 
|  ![\[L’icona Cluster.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/notebook-cluster.png)  |  **Cluster** Connette il notebook a un cluster Amazon EMR e dimensiona le attività ETL o esegue l’addestramento di modelli su larga scala utilizzando Apache Spark, Hive o Presto. Per ulteriori informazioni, consulta [Preparazione dei dati con Amazon EMR](studio-notebooks-emr-cluster.md).  | 
|  **Python 3 (Data Science)**  |  **Kernel e Image SageMaker ** Visualizza o modifica il kernel che elabora le celle nel notebook. Il formato è il seguente: `Kernel (SageMaker Image)` `No Kernel` indica che il notebook è stato aperto senza specificare un kernel. È possibile modificare il notebook ma non è possibile eseguire alcuna cella. Per ulteriori informazioni, consulta [Modifica dell'immagine o di un kernel per un notebook Amazon SageMaker Studio Classic](notebooks-run-and-manage-change-image.md).  | 
|  ![\[L’icona Stato kernel occupato.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/notebook-kernel-status.png)  |  **Stato kernel occupato** Visualizza lo stato occupato del kernel. Quando il bordo del cerchio e il suo interno sono dello stesso colore il kernel è occupato. Il kernel è occupato all'avvio e quando sta elaborando le celle. Gli stati aggiuntivi del kernel vengono visualizzati nella barra di stato nell'angolo inferiore sinistro di Studio. SageMaker   | 
|  ![\[L’icona Condividi notebook.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/notebook-share.png)  |  **Condividi notebook** Condivide il notebook. Per ulteriori informazioni, consulta [Condividi e usa un notebook Amazon SageMaker Studio Classic](notebooks-sharing.md).  | 

Per selezionare più celle, fai clic sul margine sinistro all'esterno di una cella. Tieni premuto il tasto `Shift` e premi `K` o il tasto `Up` per selezionare le celle precedenti oppure utilizza `J` o il tasto `Down` per selezionare le celle seguenti.

# Installazione di librerie e kernel esterni in Amazon SageMaker Studio Classic
<a name="studio-notebooks-add-external"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

I notebook Amazon SageMaker Studio Classic sono dotati di più immagini già installate. Queste immagini contengono kernel e pacchetti Python tra cui scikit-learn, NumPy Pandas,,, e. TensorFlow PyTorch MXNet Puoi anche installare le tue immagini che contengono la tua scelta di pacchetti e kernel. Per ulteriori informazioni sull'installazione delle tue immagini, consulta [Immagini personalizzate in Amazon SageMaker Studio Classic](studio-byoi.md).

I diversi kernel Jupyter nei notebook SageMaker Amazon Studio Classic sono ambienti conda separati. Per informazioni sugli ambienti conda, consulta [Managing Environments](https://conda.io/docs/user-guide/tasks/manage-environments.html).

## Strumenti di installazione dei pacchetti
<a name="studio-notebooks-external-tools"></a>

**Importante**  
Attualmente, tutti i pacchetti di SageMaker notebook Amazon sono concessi in licenza per l'uso con Amazon SageMaker AI e non richiedono licenze commerciali aggiuntive. Tuttavia, questa condizione potrebbe essere soggetta a modifiche in futuro, pertanto ti consigliamo di consultare regolarmente i termini di licenza per eventuali aggiornamenti.

Il metodo da utilizzare per installare i pacchetti Python dal terminale varia a seconda dell'immagine. Studio Classic supporta i seguenti strumenti di installazione dei pacchetti:
+ **Notebook**: sono supportati i seguenti comandi. Se uno dei seguenti comandi non funziona sulla tua immagine, prova l'altro.
  + `%conda install`
  + `%pip install`
+ **Terminale Jupyter**: puoi installare pacchetti utilizzando direttamente pip e conda. Puoi anche usare `apt-get install` per installare pacchetti di sistema dal terminale.

**Nota**  
Non è consigliabile utilizzare `pip install -u` o`pip install --user`, poiché tali comandi installano pacchetti sul volume Amazon EFS dell'utente e possono potenzialmente bloccare il riavvio delle JupyterServer app. Utilizza, invece, una configurazione del ciclo di vita per reinstallare i pacchetti richiesti al riavvio dell’app, come mostrato in [Installazione dei pacchetti utilizzando le configurazioni del ciclo di vita](#nbi-add-external-lcc).

Si consiglia di utilizzare `%pip` e `%conda` per installare i pacchetti dall'interno di un notebook, perché tengono correttamente conto dell'ambiente attivo o dell'interprete utilizzato. Per ulteriori informazioni, consulta [Add %pip and %conda magic functions](https://github.com/ipython/ipython/pull/11524). Per installare i pacchetti, puoi anche utilizzare la sintassi dei comandi di sistema (righe che iniziano con \$1). Ad esempio `!pip install` e `!conda install`. 

### Conda
<a name="studio-notebooks-add-external-tools-conda"></a>

Conda è un sistema open source di gestione dei pacchetti e un sistema di gestione dell'ambiente in grado di installare pacchetti e le relative dipendenze. SageMaker L'intelligenza artificiale supporta l'utilizzo di conda con il canale conda-forge. Per ulteriori informazioni, consulta la pagina [Conda channels](https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/channels.html). Il canale conda-forge è un community channel in cui i contributori possono caricare pacchetti.

**Nota**  
L'installazione di pacchetti da conda-forge può richiedere fino a 10 minuti. Il tempo varia in base al metodo usato da conda per risolvere il grafico delle dipendenze.

Tutti gli ambienti forniti dall' SageMaker intelligenza artificiale sono funzionali. I pacchetti installati dall'utente potrebbero non funzionare correttamente.

Conda si avvale di due metodi per attivare gli ambienti: `conda activate` e `source activate`. Per ulteriori informazioni, consulta [Managing environment](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html).

**Operazioni supportate da conda**
+ `conda install` di un pacchetto in un unico ambiente
+ `conda install` di un pacchetto in tutti gli ambienti
+ Installazione di un pacchetto dal repository principale di conda
+ Installazione di un pacchetto da conda-forge
+ Modifica della posizione di installazione di conda per utilizzare Amazon EBS
+ Supporta sia `conda activate` che `source activate`

### Pip
<a name="studio-notebooks-add-external-tools-pip"></a>

Pip è lo strumento per installare e gestire i pacchetti Python. Per impostazione predefinita, pip cerca i pacchetti nell’indice dei pacchetti Python (PyPI). A differenza di conda, pip non dispone di un supporto integrato per l’ambiente. Pertanto, pip non è così completo come conda quando si tratta di pacchetti con dipendenze di librerie native o di sistema. Puoi usare pip per installare pacchetti in ambienti conda. Invece che l’indice PyPI, con pip puoi anche usare repository di pacchetti alternativi.

**Operazioni supportate da pip**
+ Uso di pip per installare un pacchetto senza un ambiente conda attivo
+ Uso di pip per installare un pacchetto in un ambiente conda
+ Uso di pip per installare un pacchetto in tutti gli ambienti conda
+ Modifica della posizione di installazione di pip per utilizzare Amazon EBS
+ Uso di un repository alternativo per installare pacchetti con pip

### Non supportato.
<a name="studio-notebooks-add-external-tools-misc"></a>

SageMaker L'intelligenza artificiale mira a supportare il maggior numero possibile di operazioni di installazione dei pacchetti. Tuttavia, se i pacchetti sono stati installati dall' SageMaker IA e si utilizzano le seguenti operazioni su questi pacchetti, l'ambiente potrebbe diventare instabile:
+ Disinstallazione
+ Downgrade
+ Aggiornamento

A causa di potenziali problemi relativi alle condizioni o alle configurazioni della rete o alla disponibilità di conda or PyPi, i pacchetti potrebbero non essere installati in un periodo di tempo fisso o deterministico.

**Nota**  
Il tentativo di installare un pacchetto in un ambiente con dipendenze incompatibili può causare un errore. In caso di problemi, è possibile contattare il responsabile della libreria per aggiornare le dipendenze del pacchetto. Modificare l'ambiente, ad esempio rimuovendo o aggiornando pacchetti esistenti, può rendere quell’ambiente instabile.

## Installazione dei pacchetti utilizzando le configurazioni del ciclo di vita
<a name="nbi-add-external-lcc"></a>

Installa immagini e kernel personalizzati sul volume Amazon EBS dell'istanza Studio Classic in modo che persistano quando fermi e riavvii il notebook e che le librerie esterne installate non vengano aggiornate dall'IA. SageMaker Per farlo, usa una configurazione del ciclo di vita che includa sia uno script che venga eseguito quando crei il notebook (`on-create)` sia uno script che venga eseguito ogni volta che riavvii il notebook (`on-start`). Per ulteriori informazioni sull’utilizzo delle configurazioni del ciclo di vita con Studio Classic, consulta [Usa le configurazioni del ciclo di vita per personalizzare Amazon Studio Classic SageMaker](studio-lcc.md). Per esempi di script di configurazione del ciclo di vita, consulta Esempi di configurazione del ciclo di vita di [SageMaker AI Studio Classic](https://github.com/aws-samples/sagemaker-studio-lifecycle-config-examples).

# Condividi e usa un notebook Amazon SageMaker Studio Classic
<a name="notebooks-sharing"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse 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 è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Puoi condividere i tuoi notebook Amazon SageMaker Studio Classic con i tuoi colleghi. Il notebook condiviso è una copia. Dopo aver condiviso il notebook, le eventuali modifiche apportate al notebook originale non vengono riflesse nel notebook condiviso e le eventuali modifiche apportate dal collega nelle copie condivise del notebook non vengono riflesse nel notebook originale. Se si desidera condividere la versione più recente, è necessario creare un nuovo snapshot e condividerlo.

**Topics**
+ [Condivisione di un notebook](#notebooks-sharing-share)
+ [Utilizzo di un notebook condiviso](#notebooks-sharing-using)
+ [Spazi condivisi e collaborazione in tempo reale](#notebooks-sharing-rtc)

## Condivisione di un notebook
<a name="notebooks-sharing-share"></a>

Lo screenshot seguente mostra il menu di un notebook Studio Classic.

![\[La posizione dell’icona Condividi in un notebook Studio Classic.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/studio-notebook-menu-share.png)


**Per condividere un notebook**

1. Nell'angolo in alto a destra del notebook, scegli **Condividi**.

1. (Facoltativo) In **Crea snapshot condivisibe**, scegli uno dei seguenti elementi:
   + **Includi informazioni sul repository Git**: include un link al repository Git che contiene il notebook. Ciò consente all'utente e al destinatario di collaborare e contribuire allo stesso repository Git.
   + **Includi output**: include tutto l'output del notebook che è stato salvato.
**Nota**  
Se sei un utente in IAM Identity Center e queste opzioni non sono visibili, è probabile che l'amministratore del tuo IAM Identity Center abbia disabilitato la funzionalità. Contatta l'amministratore

1. Scegli **Create** (Crea).

1. Dopo aver creato lo snapshot, scegli **Copia collegamento** e poi **Chiudi**.

1. Condivisione del link con un collega.

Dopo aver selezionato le opzioni di condivisione, viene fornito un URL. Puoi condividere questo link con gli utenti che hanno accesso ad Amazon SageMaker Studio Classic. Quando l'utente apre l'URL, viene richiesto di accedere con IAM Identity Center o tramite autenticazione IAM. Questo notebook condiviso diventa una copia, pertanto le modifiche apportate dal destinatario non verranno riprodotte nel notebook originale.

## Utilizzo di un notebook condiviso
<a name="notebooks-sharing-using"></a>

Un notebook condiviso viene utilizzato nello stesso modo di qualsiasi notebook creato autonomamente. Devi prima accedere al tuo account, quindi aprire il link condiviso. Se non hai una sessione attiva, sarà visualizzato un messaggio di errore.

Quando selezioni un collegamento a un notebook condiviso per la prima volta, viene aperta una versione di sola lettura del notebook. Per modificare il notebook condiviso, scegli **Crea una copia**. In questo modo il notebook condiviso viene copiato nello storage personale.

Il notebook copiato viene avviato su un'istanza del tipo di istanza e SageMaker dell'immagine utilizzati dal notebook quando il mittente lo ha condiviso. Se non stai eseguendo attualmente un'istanza del tipo corretto, viene avviata una nuova istanza. La personalizzazione dell' SageMaker immagine non è condivisa. È inoltre possibile controllare l'istantanea del notebook scegliendo **Dettagli snapshot**.

Di seguito sono riportate alcune considerazioni importanti relative alla condivisione e all'autenticazione;
+ Se hai una sessione attiva, viene visualizzata una visualizzazione di sola lettura del notebook finché non selezioni **Crea una copia**.
+ Se non hai una sessione attiva, è necessario effettuare il login.
+ Se utilizzi IAM per accedere, dopo aver effettuato l’accesso, seleziona il tuo profilo utente, quindi scegli **Apri Studio Classic**. Quindi, seleziona il link che ti è stato inviato.
+ Se utilizzi IAM Identity Center per accedere, dopo aver effettuato il login, il notebook condiviso viene aperto automaticamente in Studio.

## Spazi condivisi e collaborazione in tempo reale
<a name="notebooks-sharing-rtc"></a>

Uno spazio condiviso è costituito da un' JupyterServer applicazione condivisa e una directory condivisa. Un vantaggio chiave di uno spazio condiviso è che facilita la collaborazione tra i membri dello spazio condiviso in tempo reale. Gli utenti che collaborano in uno spazio di lavoro hanno accesso a un’applicazione Studio Classic condivisa in cui possono accedere, leggere e modificare i propri notebook in tempo reale. La collaborazione in tempo reale è supportata solo per JupyterServer le applicazioni all'interno di uno spazio condiviso. Gli utenti con accesso a uno spazio condiviso possono aprire, visualizzare, modificare ed eseguire contemporaneamente i notebook Jupyter nell’applicazione Studio Classic condivisa in quello spazio. Per ulteriori informazioni sugli spazi condivisi e la collaborazione in tempo reale, consulta [Collaborazione con spazi condivisi](domain-space.md).

# Ottieni i metadati delle app e dei notebook Amazon SageMaker Studio Classic
<a name="notebooks-run-and-manage-metadata"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Puoi accedere ai metadati del notebook e ai metadati delle app utilizzando l'interfaccia utente di Amazon SageMaker Studio Classic.

**Topics**
+ [Recupero dei metadati dei notebook Studio Classic](#notebooks-run-and-manage-metadata-notebook)
+ [Ottenere i metadati dell’app](#notebooks-run-and-manage-metadata-app)

## Recupero dei metadati dei notebook Studio Classic
<a name="notebooks-run-and-manage-metadata-notebook"></a>

I notebook Jupyter contengono metadati opzionali a cui puoi accedere tramite l'interfaccia utente di Amazon Studio Classic. SageMaker 

**Per visualizzare i metadati del notebook:**

1. Nella barra laterale destra, seleziona l’icona **Controllo proprietà** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/gears.png)). 

1. Apri la sezione **Strumenti avanzati**.

I metadati dovrebbero avere un aspetto simile al seguente.

```
{
    "instance_type": "ml.t3.medium",
    "kernelspec": {
        "display_name": "Python 3 (Data Science)",
        "language": "python",
        "name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-west-2:<acct-id>:image/datascience-1.0"
    },
    "language_info": {
        "codemirror_mode": {
            "name": "ipython",
            "version": 3
        },
        "file_extension": ".py",
        "mimetype": "text/x-python",
        "name": "python",
        "nbconvert_exporter": "python",
        "pygments_lexer": "ipython3",
        "version": "3.7.10"
    }
}
```

## Ottenere i metadati dell’app
<a name="notebooks-run-and-manage-metadata-app"></a>

Quando crei un notebook in Amazon SageMaker Studio Classic, i metadati dell'app vengono scritti in un file denominato `resource-metadata.json` nella cartella`/opt/ml/metadata/`. È possibile ottenere i metadati dell'app aprendo un terminale immagine dall'interno del notebook. I metadati forniscono le seguenti informazioni, tra cui l' SageMaker immagine e il tipo di istanza in cui viene eseguito il notebook:
+ **AppType** – `KernelGateway` 
+ **DomainId**— Uguale allo Studio ClassicID
+ **UserProfileName**— Il nome del profilo dell'utente corrente
+ **ResourceArn**— L'Amazon Resource Name (ARN) dell'app, che include il tipo di istanza
+ **ResourceName**— Il nome dell'immagine SageMaker 

Potrebbero essere inclusi ulteriori metadati per uso interno di Studio Classic, che sono soggetti a modifica.

**Per ottenere i metadati dell'app**

1. Al centro del menu del notebook, scegli l’icona **Avvia terminale** (![\[Dollar sign icon representing currency or financial transactions.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/notebook-launch-terminal.png)). Si apre un terminale nell' SageMaker immagine in cui gira il notebook.

1. Esegui i seguenti comandi per visualizzare il contenuto del file `resource-metadata.json`.

   ```
   $ cd /opt/ml/metadata/
   cat resource-metadata.json
   ```

   Il file si presenta in maniera simile a quanto riportato di seguito:

   ```
   {
       "AppType": "KernelGateway",
       "DomainId": "d-xxxxxxxxxxxx",
       "UserProfileName": "profile-name",
       "ResourceArn": "arn:aws:sagemaker:us-east-2:account-id:app/d-xxxxxxxxxxxx/profile-name/KernelGateway/datascience--1-0-ml-t3-medium",
       "ResourceName": "datascience--1-0-ml",
       "AppImageVersion":""
   }
   ```

# Scopri le differenze tra i notebook in Amazon SageMaker Studio Classic
<a name="notebooks-diff"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse 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 è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Puoi visualizzare la differenza tra il notebook corrente e l'ultimo checkpoint o l'ultimo commit Git utilizzando l'interfaccia utente di Amazon SageMaker AI.

Lo screenshot seguente mostra il menu di un notebook Studio Classic.

![\[La posizione del menu pertinente in un notebook Studio Classic.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/studio-notebook-menu-diffs.png)


**Topics**
+ [Ottieni la differenza tra l'ultimo checkpoint](#notebooks-diff-checkpoint)
+ [Ottenere la differenza tra l'ultimo commit](#notebooks-diff-git)

## Ottieni la differenza tra l'ultimo checkpoint
<a name="notebooks-diff-checkpoint"></a>

Quando crei un notebook, viene creato un file di checkpoint nascosto corrispondente al notebook. È possibile visualizzare le modifiche tra il notebook e il file del checkpoint oppure ripristinare il notebook in modo che corrisponda al file del checkpoint.

Per impostazione predefinita, un notebook viene salvato automaticamente ogni 120 secondi e anche quando si chiude il notebook. Tuttavia, il file del checkpoint non viene aggiornato in modo che corrisponda al notebook. Per salvare il notebook e aggiornare il file del checkpoint in modo che corrisponda, è necessario scegliere l'icona **Salva notebook e crea checkpoint** ( ![\[Padlock icon representing security or access control in cloud services.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/notebook-save-and-checkpoint.png)) a sinistra del menu del notebook o utilizzare la scelta rapida da tastiera `Ctrl + S`.

Per visualizzare le modifiche tra il notebook e il file del checkpoint, scegli l’icona **Diff checkpoint** (![\[Clock icon representing time or duration in a user interface.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/notebook-checkpoint-diff.png)) al centro del menu del notebook.

Per ripristinare il notebook nel file del checkpoint, scegli **File** dal menu principale di Studio Classic, quindi seleziona **Ripristina notebook su checkpoint**.

## Ottenere la differenza tra l'ultimo commit
<a name="notebooks-diff-git"></a>

Se un notebook viene aperto da un repository Git, è possibile visualizzare la differenza tra il notebook e l'ultimo commit Git.

Per visualizzare le modifiche nel notebook dall’ultimo commit di Git, scegli l’icona **Diff Git** (![\[Dark button with white text displaying "git" in lowercase letters.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/notebook-git-diff.png)) al centro del menu del notebook.

# Gestisci le risorse per i notebook Amazon SageMaker Studio Classic
<a name="notebooks-run-and-manage"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Puoi modificare il tipo di istanza, SageMaker l'immagine e il kernel direttamente da un notebook Amazon SageMaker Studio Classic. Per creare un kernel personalizzato da utilizzare con i notebook, consulta [Immagini personalizzate in Amazon SageMaker Studio Classic](studio-byoi.md).

**Topics**
+ [Modifica del tipo di istanza per un notebook Amazon SageMaker Studio Classic](notebooks-run-and-manage-switch-instance-type.md)
+ [Modifica dell'immagine o di un kernel per un notebook Amazon SageMaker Studio Classic](notebooks-run-and-manage-change-image.md)
+ [Chiudi le risorse di Amazon SageMaker Studio Classic](notebooks-run-and-manage-shut-down.md)

# Modifica del tipo di istanza per un notebook Amazon SageMaker Studio Classic
<a name="notebooks-run-and-manage-switch-instance-type"></a>

La prima volta che si apre un nuovo notebook Studio Classic, viene assegnato un tipo di istanza predefinito Amazon Elastic Compute Cloud (Amazon EC2) per eseguire il notebook. Quando si aprono notebook aggiuntivi sulla stessa istanza, i notebook vengono eseguiti sullo stesso tipo di istanza come il primo notebook, anche se i notebook utilizzano kernel differenti. 

Puoi modificare il tipo di istanza su cui viene eseguito il notebook Studio Classic dall’interno del notebook. 

Le informazioni seguenti si applicano solo ai notebook Studio Classic. Per informazioni su come modificare il tipo di istanza di un'istanza Amazon SageMaker Notebook, consulta[Aggiornamento di un'istanza del notebook](nbi-update.md).

**Importante**  
Se modifichi il tipo di istanza, le informazioni non salvate e le impostazioni esistenti per il notebook vengono perse e i pacchetti installati devono essere reinstallati.  
Il tipo di istanza precedente resta in esecuzione, anche se ci sono sessioni o app kernel attive. Devi inviare un comando esplicito di arresto dell'istanza per arrestare l'accumulo di addebiti. Per arrestare l'istanza, consulta [Arresto delle risorse](notebooks-run-and-manage-shut-down.md#notebooks-run-and-manage-shut-down-sessions).

Lo screenshot seguente mostra il menu di un notebook Studio Classic. Il processore e la memoria del tipo di istanza che alimenta il notebook vengono visualizzati come **2 vCPU \$1 4 GiB**.

![\[La posizione del processore e della memoria del tipo di istanza per il notebook Studio Classic.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/studio-notebook-menu-instance.png)


**Per cambiare il tipo di istanza**

1. Scegli il processore e la memoria del tipo di istanza che alimentano il notebook. Viene visualizzata una finestra pop-up.

1. Dalla finestra pop-up, scegli **Configura ambiente notebook**, quindi seleziona **Tipo di istanza** dal menu a discesa.

1. Dal menu a discesa scegli **Tipo di istanza**, quindi seleziona uno dei tipi di istanza elencati.

1. Dopo aver scelto un tipo di istanza, sceglie **Seleziona**.

1. Attendi che la nuova istanza venga abilitata; verranno visualizzate le informazioni sul nuovo tipo di istanza.

Per un elenco dei tipi di istanza disponibili, consulta [Tipi di istanze disponibili per l'uso con i notebook Amazon SageMaker Studio Classic](notebooks-available-instance-types.md). 

# Modifica dell'immagine o di un kernel per un notebook Amazon SageMaker Studio Classic
<a name="notebooks-run-and-manage-change-image"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Con i notebook Amazon SageMaker Studio Classic, puoi modificare l'immagine o il kernel del notebook direttamente dal notebook.

Lo screenshot seguente mostra il menu di un notebook Studio Classic. Il kernel e l'immagine SageMaker AI correnti vengono visualizzati come **Python 3 (Data Science**), `Python 3` dove indica il kernel `Data Science` e indica l'immagine AI che contiene il kernel. SageMaker Il colore del cerchio a destra indica lo stato inattivo o occupato del kernel. Il kernel è occupato quando il bordo del cerchio e il suo centro sono dello stesso colore.

![\[La posizione del kernel e dell’immagine correnti nella barra dei menu di un notebook Studio Classic.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/studio-notebook-menu-kernel.png)


**Per modificare l'immagine o il kernel di un notebook**

1. Scegli il nome nel menu del taccuino. image/kernel 

1. Dalla finestra pop-up, scegli **Configura ambiente notebook**, quindi seleziona **Immagine** o **Kernel** dal menu a discesa.

1. Dal menu a discesa, scegli una delle immagini o dei kernel elencati.

1. Dopo aver scelto un'immagine o un kernel, scegli **Seleziona**.

1. Attendi che lo stato del kernel venga visualizzato come inattivo, il che indica che il kernel è stato avviato.

Per un elenco delle SageMaker immagini e dei kernel disponibili, consulta[SageMaker Immagini Amazon disponibili per l'uso con i notebook Studio Classic](notebooks-available-images.md).

# Chiudi le risorse di Amazon SageMaker Studio Classic
<a name="notebooks-run-and-manage-shut-down"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Puoi disattivare singole risorse di Amazon SageMaker AI, inclusi notebook, terminali, kernel, app e istanze di Studio Classic. Puoi anche chiudere contemporaneamente tutte le risorse di una di queste categorie. Amazon SageMaker Studio Classic non supporta la chiusura delle risorse dall'interno di un notebook.

**Nota**  
Quando chiudi un’istanza del notebook Studio Classic, le risorse aggiuntive create in Studio Classic non vengono eliminate. Ad esempio, le risorse aggiuntive possono includere endpoint SageMaker AI, cluster Amazon EMR e bucket Amazon S3. Per arrestare l’accumulo degli addebiti, è necessario eliminare manualmente queste risorse. Per informazioni sulla ricerca di risorse che comportano addebiti, consulta [Analyzing your costs with AWS Cost Explorer](https://docs.aws.amazon.com/cost-management/latest/userguide/ce-what-is.html).

I seguenti argomenti mostrano come eliminare queste risorse AI. SageMaker 

**Topics**
+ [Arresto di un notebook aperto](#notebooks-run-and-manage-shut-down-notebook)
+ [Arresto delle risorse](#notebooks-run-and-manage-shut-down-sessions)

## Arresto di un notebook aperto
<a name="notebooks-run-and-manage-shut-down-notebook"></a>

Quando chiudi un notebook Studio Classic, il notebook non viene eliminato. Il kernel su cui è in esecuzione il notebook viene chiuso e tutte le informazioni non salvate nel notebook vengono perse. Puoi chiudere un notebook aperto dal menu **File** di Studio Classic o dal riquadro Terminali e kernel in esecuzione. La procedura seguente mostra come chiudere un notebook aperto dal menu **File** di Studio Classic.

**Per arrestare un notebook aperto dal menu File**

1. Avvia Studio Classic seguendo la procedura indicata in [Avvia Amazon SageMaker Studio Classic](studio-launch.md).

1. (Facoltativo) Salva il contenuto del notebook scegliendo **File** e **Salva notebook**.

1. Scegli **File**.

1. Scegli **Chiudi e arresta notebook**. Viene visualizzata una finestra pop-up.

1. Dalla finestra pop-up, scegli **OK**.

## Arresto delle risorse
<a name="notebooks-run-and-manage-shut-down-sessions"></a>

Puoi accedere al pannello **Running Terminals and Kernels** di Amazon SageMaker Studio Classic selezionando l'icona **Running Terminals and Kernels** (). ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/running-terminals-kernels.png) Il riquadro **Running Terminals and Kernels** è composto da quattro sezioni. Ogni sezione elenca tutte le risorse di quel tipo. È possibile arrestare ogni risorsa singolarmente o arrestare contemporaneamente tutte le risorse di una sezione.

Se si arrestano tutte le risorse di una sezione, si verifica quanto segue:
+ ** INSTANCES/RUNNING APP IN ESECUZIONE**: tutte le istanze, le app, i notebook, le sessioni del kernel, le console/shell e i terminali di immagine vengono chiusi. I terminali di sistema non vengono arrestati.
+ **SESSIONI DEL KERNEL: tutti i kernel**, i notebook e i notebook vengono chiusi. consoles/shells 
+ **SESSIONI DEL TERMINALE**: tutti i terminali di immagine e i terminali di sistema vengono arrestati.

**Per arrestare le risorse**

1. Avvia Studio Classic seguendo la procedura indicata in [Avvia Amazon SageMaker Studio Classic](studio-launch.md).

1. Scegli l’icona **Terminali e kernel in esecuzione**.

1. Esegui una delle operazioni seguenti:
   + Per chiudere una risorsa specifica, scegli l’icona **Chiudi** nella stessa riga della risorsa.

     Per le istanze in esecuzione, una finestra di dialogo di conferma elenca tutte le risorse che l'IA chiuderà. SageMaker Una finestra di dialogo di conferma mostra tutte le app in esecuzione. Scegli **Chiudi tutto** per continuare.
**Nota**  
Non viene visualizzata alcuna finestra di dialogo di conferma per le sessioni del kernel o del terminale.
   + Per arrestare tutte le risorse in una sezione, sceglie la **X** a destra dell'etichetta della sezione. Non viene visualizzata alcuna finestra di dialogo di conferma. Scegli **Arresta tutto** per continuare.
**Nota**  
Quando chiudi queste risorse di Studio Classic, tutte le risorse aggiuntive create da Studio Classic, come endpoint SageMaker AI, cluster Amazon EMR e bucket Amazon S3, non vengono eliminate. È necessario eliminare manualmente queste risorse per evitare l’accumulo di addebiti. [Per informazioni sulla ricerca di risorse a cui vengono addebitati costi, consulta Analisi dei costi con. AWS Cost Explorer](https://docs.aws.amazon.com/cost-management/latest/userguide/ce-what-is.html)

# Misurazione dell'utilizzo per i notebook Amazon SageMaker Studio Classic
<a name="notebooks-usage-metering"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Non sono previsti costi aggiuntivi per l'utilizzo di Amazon SageMaker Studio Classic. I costi sostenuti per l'esecuzione di notebook, shell interattive, console e terminali Amazon SageMaker Studio Classic si basano sull'utilizzo delle istanze Amazon Elastic Compute Cloud (Amazon EC2).

Quando esegui le seguenti risorse, devi scegliere un'immagine e un kernel: SageMaker 

**Dall’utilità di avvio di Studio Classic**
+ Notebook
+ Shell interattiva
+ Immagine del terminale

**Dal menu **File****
+ Notebook
+ Console

Quando viene avviata, la risorsa viene eseguita su un'istanza Amazon EC2 del tipo di istanza selezionata. Se un'istanza di quel tipo è stata avviata in precedenza ed è disponibile, la risorsa viene eseguita su tale istanza.

Per le immagini basate su CPU, il tipo di istanza predefinito consigliato è `ml.t3.medium`. Per le immagini basate su GPU, il tipo di istanza predefinito consigliato è `ml.g4dn.xlarge`.

I costi sostenuti si basano sul tipo di istanza. I costi vengono fatturati separatamente per ogni istanza.

La misurazione inizia quando viene creata un'istanza. La misurazione termina quando si arrestano tutte le app sull'istanza o quando si arresta l'istanza stessa. Per informazioni su come arrestare un'istanza, consulta [Chiudi le risorse di Amazon SageMaker Studio Classic](notebooks-run-and-manage-shut-down.md).

**Importante**  
Per evitare di accumulare ulteriori addebiti, è necessario arrestare l’istanza. Se si arresta il notebook in esecuzione sull'istanza ma non si arresta l'istanza, verranno comunque addebitati dei costi. Quando chiudi le istanze del notebook Studio Classic, tutte le risorse aggiuntive, come endpoint SageMaker AI, cluster Amazon EMR e bucket Amazon S3 creati da Studio Classic, non vengono eliminate. Elimina queste risorse per evitare l'accumulo di addebiti.

Quando apri più notebook sullo stesso tipo di istanza, i notebook vengono eseguiti sulla stessa istanza anche se utilizzano kernel diversi. Ti viene addebitato solo il tempo di esecuzione dell'istanza.

Puoi modificare il tipo di istanza dall'interno del notebook dopo averlo aperto. Per ulteriori informazioni, consulta [Modifica del tipo di istanza per un notebook Amazon SageMaker Studio Classic](notebooks-run-and-manage-switch-instance-type.md).

Per informazioni sulla fatturazione ed esempi di prezzi, consulta la pagina dei [ SageMaker prezzi di Amazon](https://aws.amazon.com/sagemaker/pricing/).

# Risorse disponibili per i notebook Amazon SageMaker Studio Classic
<a name="notebooks-resources"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Nelle seguenti sezioni sono elencate le risorse disponibili per i notebook Amazon SageMaker Studio Classic.

**Topics**
+ [Tipi di istanze disponibili per l'uso con i notebook Amazon SageMaker Studio Classic](notebooks-available-instance-types.md)
+ [SageMaker Immagini Amazon disponibili per l'uso con i notebook Studio Classic](notebooks-available-images.md)

# Tipi di istanze disponibili per l'uso con i notebook Amazon SageMaker Studio Classic
<a name="notebooks-available-instance-types"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

I notebook Amazon SageMaker Studio Classic vengono eseguiti su istanze Amazon Elastic Compute Cloud (Amazon EC2). I seguenti tipi di istanze Amazon EC2 sono disponibili per l’utilizzo con i notebook Studio Classic. Per informazioni dettagliate sui tipi di istanza adatti al tuo caso d'uso e sulle relative funzionalità prestazionali, consulta [ Amazon Elastic Compute Cloud Instance types](https://aws.amazon.com/ec2/instance-types/). Per ulteriori informazioni sui prezzi di questi tipi di istanza, consulta [Prezzi di Amazon EC2](https://aws.amazon.com/ec2/pricing/).

Per informazioni sui tipi di istanze Amazon SageMaker Notebook disponibili, consulta [CreateNotebookInstance](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateNotebookInstance.html#sagemaker-CreateNotebookInstance-request-InstanceType).

**Nota**  
Per la maggior parte dei casi d'uso, è consigliabile utilizzare un `ml.t3.medium`. Questo è il tipo di istanza predefinito per SageMaker le immagini basate su CPU ed è disponibile come parte del piano [AWS gratuito](https://aws.amazon.com/free).

**Topics**
+ [Istanze CPU](#notebooks-resources-no-gpu)
+ [Istanze con 1 o più GPUs](#notebooks-resources-gpu)

## Istanze CPU
<a name="notebooks-resources-no-gpu"></a>

La tabella seguente elenca i tipi di istanze Amazon EC2 CPU senza GPU collegate disponibili per l’utilizzo con i notebook Studio Classic. Inoltre, fornisce informazioni sulle specifiche di ogni tipo di istanza. Per le immagini basate su CPU, il tipo di istanza predefinito è `ml.t3.medium`. 

Per informazioni dettagliate sui tipi di istanza adatti al tuo caso d'uso e sulle relative funzionalità prestazionali, consulta [Amazon Elastic Compute Cloud Instance types](https://aws.amazon.com/ec2/instance-types/). Per ulteriori informazioni sui prezzi di questi tipi di istanza, consulta [Prezzi di Amazon EC2](https://aws.amazon.com/ec2/pricing/).

Istanze CPU


| Istanza | Caso d’uso | Avvio rapido | VPCU | Memoria (GiB) | Archiviazione delle istanze (GB) | 
| --- | --- | --- | --- | --- | --- | 
| ml.t3.medium | Uso generale | Sì | 2 | 4 | Solo Amazon EBS | 
| ml.t3.large | Uso generale | No | 2 | 8 | Solo Amazon EBS | 
| ml.t3.xlarge | Uso generale | No | 4 | 16 | Solo Amazon EBS | 
| ml.t3.2xlarge | Uso generale | No | 8 | 32 | Solo Amazon EBS | 
| ml.m5.large | Uso generale | Sì | 2 | 8 | Solo Amazon EBS | 
| ml.m5.xlarge | Uso generale | No | 4 | 16 | Solo Amazon EBS | 
| ml.m5.2xlarge | Uso generale | No | 8 | 32 | Solo Amazon EBS | 
| ml.m5.4xlarge | Uso generale | No | 16 | 64 | Solo Amazon EBS | 
| ml.m5.8xlarge | Uso generale | No | 32 | 128 | Solo Amazon EBS | 
| ml.m5.12xlarge | Uso generale | No | 48 | 192 | Solo Amazon EBS | 
| ml.m5.16xlarge | Uso generale | No | 64 | 256 | Solo Amazon EBS | 
| ml.m5.24xlarge | Uso generale | No | 96 | 384 | Solo Amazon EBS | 
| ml.m5d.large | Uso generale | No | 2 | 8 | 1 x SSD da 75 NVMe  | 
| ml.m5d.xlarge | Uso generale | No | 4 | 16 | 1 x 150 SSD NVMe  | 
| ml.m5d.2xlarge | Uso generale | No | 8 | 32 | 1 x 300 SSD NVMe  | 
| ml.m5d.4xlarge | Uso generale | No | 16 | 64 | 2 unità SSD da 300 NVMe  | 
| ml.m5d.8xlarge | Uso generale | No | 32 | 128 | 2 unità SSD da 600 NVMe  | 
| ml.m5d.12xlarge | Uso generale | No | 48 | 192 | 2 unità SSD 900 NVMe  | 
| ml.m5d.16xlarge | Uso generale | No | 64 | 256 | SSD 4 x 600 NVMe  | 
| ml.m5d.24xlarge | Uso generale | No | 96 | 384 | Unità SSD 4 x 900 NVMe  | 
| ml.c5.large | Calcolo ottimizzato | Sì | 2 | 4 | Solo Amazon EBS | 
| ml.c5.xlarge | Calcolo ottimizzato | No | 4 | 8 | Solo Amazon EBS | 
| ml.c5.2xlarge | Calcolo ottimizzato | No | 8 | 16 | Solo Amazon EBS | 
| ml.c5.4xlarge | Calcolo ottimizzato | No | 16 | 32 | Solo Amazon EBS | 
| ml.c5.9xlarge | Calcolo ottimizzato | No | 36 | 72 | Solo Amazon EBS | 
| ml.c5.12xlarge | Calcolo ottimizzato | No | 48 | 96 | Solo Amazon EBS | 
| ml.c5.18xlarge | Calcolo ottimizzato | No | 72 | 144 | Solo Amazon EBS | 
| ml.c5.24xlarge | Calcolo ottimizzato | No | 96 | 192 | Solo Amazon EBS | 
| ml.r5.large | Memoria ottimizzata | No | 2 | 16 | Solo Amazon EBS | 
| ml.r5.xlarge | Memoria ottimizzata | No | 4 | 32 | Solo Amazon EBS | 
| ml.r5.2xlarge | Memoria ottimizzata | No | 8 | 64 | Solo Amazon EBS | 
| ml.r5.4xlarge | Memoria ottimizzata | No | 16 | 128 | Solo Amazon EBS | 
| ml.r5.8xlarge | Memoria ottimizzata | No | 32 | 256 | Solo Amazon EBS | 
| ml.r5.12xlarge | Memoria ottimizzata | No | 48 | 384 | Solo Amazon EBS | 
| ml.r5.16xlarge | Memoria ottimizzata | No | 64 | 512 | Solo Amazon EBS | 
| ml.r5.24xlarge | Memoria ottimizzata | No | 96 | 768 | Solo Amazon EBS | 

## Istanze con 1 o più GPUs
<a name="notebooks-resources-gpu"></a>

La tabella seguente elenca i tipi di istanze Amazon EC2 con 1 o più collegamenti che GPUs sono disponibili per l'uso con i notebook Studio Classic. Inoltre, fornisce informazioni sulle specifiche di ogni tipo di istanza. Per le immagini basate su GPU, il tipo di istanza predefinito è `ml.g4dn.xlarge`. 

Per informazioni dettagliate sui tipi di istanza adatti al tuo caso d'uso e sulle relative funzionalità prestazionali, consulta [ Amazon Elastic Compute Cloud Instance types](https://aws.amazon.com/ec2/instance-types/). Per ulteriori informazioni sui prezzi di questi tipi di istanza, consulta [Prezzi di Amazon EC2](https://aws.amazon.com/ec2/pricing/).

Istanze con 1 o più GPUs


| Istanza | Caso d’uso | Avvio rapido | GPUs | VPCU | Memoria (GiB) | Memoria GPU (GiB) | Archiviazione delle istanze (GB) | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
| ml.p3.2xlarge | Elaborazione accelerata | No | 1 | 8 | 61 | 16 | Solo Amazon EBS | 
| ml.p3.8xlarge | Elaborazione accelerata | No | 4 | 32 | 244 | 64 | Solo Amazon EBS | 
| ml.p3.16xlarge | Elaborazione accelerata | No | 8 | 64 | 488 | 128 | Solo Amazon EBS | 
| ml.p3dn.24xlarge | Elaborazione accelerata | No | 8 | 96 | 768 | 256 | 2 x 900 SSD NVMe  | 
| ml.p4d.24xlarge | Elaborazione accelerata | No | 8 | 96 | 1152 | 320 GB HBM2 |  NVMe SSD 8 x 1000 | 
| ml.p4de.24xlarge | Elaborazione accelerata | No | 8 | 96 | 1152 | 640 GB HBM2e | SSD 8 x 1000 NVMe  | 
| ml.g4dn.xlarge | Elaborazione accelerata | Sì | 1 | 4 | 16 | 16 | 1 unità SSD da 125 NVMe  | 
| ml.g4dn.2xlarge | Elaborazione accelerata | No | 1 | 8 | 32 | 16 | 1 x SSD da 225 NVMe  | 
| ml.g4dn.4xlarge | Elaborazione accelerata | No | 1 | 16 | 64 | 16 | 1 x SSD da 225 NVMe  | 
| ml.g4dn.8xlarge | Elaborazione accelerata | No | 1 | 32 | 128 | 16 | 1 x SSD 900 NVMe  | 
| ml.g4dn.12xlarge | Elaborazione accelerata | No | 4 | 48 | 192 | 64 | 1 x SSD 900 NVMe  | 
| ml.g4dn.16xlarge | Elaborazione accelerata | No | 1 | 64 | 256 | 16 | 1 x SSD 900 NVMe  | 
| ml.g5.xlarge | Elaborazione accelerata | No | 1 | 4 | 16 | 24 | 1 x 250 SSD NVMe  | 
| ml.g5.2xlarge | Elaborazione accelerata | No | 1 | 8 | 32 | 24 | 1 x SSD da 450 NVMe  | 
| ml.g5.4xlarge | Elaborazione accelerata | No | 1 | 16 | 64 | 24 | 1 x SSD 600 NVMe  | 
| ml.g5.8xlarge | Elaborazione accelerata | No | 1 | 32 | 128 | 24 | 1 x SSD 900 NVMe  | 
| ml.g5.12xlarge | Elaborazione accelerata | No | 4 | 48 | 192 | 96 | 1 x SSD 3800 NVMe  | 
| ml.g5.16xlarge | Elaborazione accelerata | No | 1 | 64 | 256 | 24 | 1 x SSD 1900 NVMe  | 
| ml.g5.24xlarge | Elaborazione accelerata | No | 4 | 96 | 384 | 96 | 1 x SSD 3800 NVMe  | 
| ml.g5.48xlarge | Elaborazione accelerata | No | 8 | 192 | 768 | 192 | 2 x SSD 3800 NVMe  | 

# SageMaker Immagini Amazon disponibili per l'uso con i notebook Studio Classic
<a name="notebooks-available-images"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Questa pagina elenca le SageMaker immagini e i kernel associati disponibili in Amazon SageMaker Studio Classic. Questa pagina fornisce anche informazioni sul formato necessario per creare l'ARN per ogni immagine. SageMaker le immagini contengono l'ultimo [SDK Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable) e l'ultima versione del kernel. Per ulteriori informazioni, consulta [Deep Learning Containers Images](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/deep-learning-containers-images.html).

**Topics**
+ [Formato ARN dell’immagine](#notebooks-available-images-arn)
+ [Tag URI supportati](#notebooks-available-uri-tag)
+ [Immagini supportate](#notebooks-available-images-supported)
+ [Immagini destinate al ritiro](#notebooks-available-images-deprecation)
+ [Immagini obsolete](#notebooks-available-images-deprecated)

## Formato ARN dell’immagine
<a name="notebooks-available-images-arn"></a>

La tabella seguente elenca il formato degli ARN delle immagini e degli URI per ogni Regione. Per creare l'ARN completo per un'immagine, sostituisci il *resource-identifier* segnaposto con l'identificatore di risorsa corrispondente per l'immagine. L'identificatore di risorsa si trova nella tabella delle immagini e dei SageMaker kernel. Per creare l'URI completo per un'immagine, sostituisci il *tag* segnaposto con il tag cpu o gpu corrispondente. Per l’elenco dei tag che puoi utilizzare, consulta [Tag URI supportati](#notebooks-available-uri-tag).

**Nota**  
SageMaker Le immagini di distribuzione utilizzano un insieme distinto di immagini ARNs, elencate nella tabella seguente.


| Region | Formato ARN dell’immagine | SageMaker Formato ARN dell'immagine di distribuzione | SageMaker Formato URI dell'immagine di distribuzione | 
| --- | --- | --- | --- | 
|  us-east-1  | arn:aws:sagemaker:us-east-1:081325390199:image/resource-identifier | arn:aws:sagemaker:us-east-1:885854791233:image/resource-identifier | 885854791233.dkr. ecr.us-east-1.amazonaws.com/: sagemaker-distribution-prod tag | 
|  us-east-2  | arn:aws:sagemaker:us-east-2:429704687514:image/resource-identifier | arn:aws:sagemaker:us-east-2:137914896644:image/resource-identifier | 137914896644.dkr. ecr.us-east-2.amazonaws.com/sagemaker-distribution-prod: tag | 
|  us-west-1  | arn:aws:sagemaker:us-west-1:742091327244:image/resource-identifier | arn:aws:sagemaker:us-west-1:053634841547:image/resource-identifier | 053634841547.dkr. ecr.us-west-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  us-west-2  | arn:aws:sagemaker:us-west-2:236514542706:image/resource-identifier | arn:aws:sagemaker:us-west-2:542918446943:image/resource-identifier | 542918446943.dkr. ecr.us-west-2.amazonaws.com/sagemaker-distribution-prod: tag | 
|  af-south-1  | arn:aws:sagemaker:af-south-1:559312083959:image/resource-identifier | arn:aws:sagemaker:af-south-1:238384257742:image/resource-identifier | 238384257742.dkr. ecr.af-south-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  ap-east-1  | arn:aws:sagemaker:ap-east-1:493642496378:image/resource-identifier | arn:aws:sagemaker:ap-east-1:523751269255:image/resource-identifier | 523751269255dkr. ecr.ap-east-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  ap-south-1  | arn:aws:sagemaker:ap-south-1:394103062818:image/resource-identifier | arn:aws:sagemaker:ap-south-1:245090515133:image/resource-identifier | 245090515133dkr. ecr.ap-south-1.amazonaws.com/: sagemaker-distribution-prod tag | 
|  ap-northeast-2  | arn:aws:sagemaker:ap-northeast-2:806072073708:image/resource-identifier | arn:aws:sagemaker:ap-northeast-2:064688005998:image/resource-identifier | 064688005998.dkr. ecr.ap-northeast-2.amazonaws.com/: sagemaker-distribution-prod tag | 
|  ap-southeast-1  | arn:aws:sagemaker:ap-southeast-1:492261229750:image/resource-identifier | arn:aws:sagemaker:ap-southeast-1:022667117163:image/resource-identifier | 022667117163.dkr. ecr.ap-southeast-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  ap-southeast-2  | arn:aws:sagemaker:ap-southeast-2:452832661640:image/resource-identifier | arn:aws:sagemaker:ap-southeast-2:648430277019:image/resource-identifier | 648430277019.dkr. ecr.ap-southeast-2.amazonaws.com/: sagemaker-distribution-prod tag | 
|  ap-northeast-1  |  arn:aws:sagemaker:ap-northeast-1:102112518831:image/resource-identifier |  arn:aws:sagemaker:ap-northeast-1:010972774902:image/resource-identifier | 010972774902.dkr. ecr.ap-northeast-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  ca-central-1  | arn:aws:sagemaker:ca-central-1:310906938811:image/resource-identifier | arn:aws:sagemaker:ca-central-1:481561238223:image/resource-identifier | 481561238223.dkr. ecr.ca-central-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  eu-central-1  | arn:aws:sagemaker:eu-central-1:936697816551:image/resource-identifier | arn:aws:sagemaker:eu-central-1:545423591354:image/resource-identifier | 545423591354.dkr. ecr.eu-central-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  eu-west-1  | arn:aws:sagemaker:eu-west-1:470317259841:image/resource-identifier | arn:aws:sagemaker:eu-west-1:819792524951:image/resource-identifier | 819792524951.dkr. ecr.eu-west-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  eu-west-2  | arn:aws:sagemaker:eu-west-2:712779665605:image/resource-identifier | arn:aws:sagemaker:eu-west-2:021081402939:image/resource-identifier | 021081402939dkr. ecr.eu-west-2.amazonaws.com/: sagemaker-distribution-prod tag | 
|  eu-west-3  | arn:aws:sagemaker:eu-west-3:615547856133:image/resource-identifier | arn:aws:sagemaker:eu-west-3:856416204555:image/resource-identifier | 856416204555.dkr. ecr.eu-west-3.amazonaws.com/sagemaker-distribution-prod: tag | 
|  eu-north-1  | arn:aws:sagemaker:eu-north-1:243637512696:image/resource-identifier | arn:aws:sagemaker:eu-north-1:175620155138:image/resource-identifier | 175620155138.dkr. ecr.eu-north-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  eu-south-1  | arn:aws:sagemaker:eu-south-1:592751261982:image/resource-identifier | arn:aws:sagemaker:eu-south-1:810671768855:image/resource-identifier | 810671768855.dkr. ecr.eu-south-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  sa-east-1  | arn:aws:sagemaker:sa-east-1:782484402741:image/resource-identifier | arn:aws:sagemaker:sa-east-1:567556641782:image/resource-identifier | 567556641782.dkr. ecr.sa-east-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  ap-northeast-3  | arn:aws:sagemaker:ap-northeast-3:792733760839:image/resource-identifier | arn:aws:sagemaker:ap-northeast-3:564864627153:image/resource-identifier | 564864627153.dkr. ecr.ap-northeast-3.amazonaws.com/sagemaker-distribution-prod: tag | 
|  ap-southeast-3  | arn:aws:sagemaker:ap-southeast-3:276181064229:image/resource-identifier | arn:aws:sagemaker:ap-southeast-3:370607712162:image/resource-identifier | 370607712162.dkr. ecr.ap-southeast-3.amazonaws.com/sagemaker-distribution-prod: tag | 
|  me-south-1  | arn:aws:sagemaker:me-south-1:117516905037:image/resource-identifier | arn:aws:sagemaker:me-south-1:523774347010:image/resource-identifier | 523774347010.dkr. ecr.me-south-1.amazonaws.com/sagemaker-distribution-prod: tag | 
|  me-central-1  | arn:aws:sagemaker:me-central-1:103105715889:image/resource-identifier | arn:aws:sagemaker:me-central-1:358593528301:image/resource-identifier | 358593528301.dkr. ecr.me-central-1.amazonaws.com/sagemaker-distribution-prod: tag | 

## Tag URI supportati
<a name="notebooks-available-uri-tag"></a>

L’elenco seguente mostra i tag che puoi includere nell’URI dell’immagine.
+ 1-cpu
+ 1-gpu
+ 0-cpu
+ 0-gpu

**Gli esempi seguenti vengono illustrati con vari formati di tag: URIs **
+ 542918446943.dkr. ecr.us-west-2.amazonaws.com /:1-cpu sagemaker-distribution-prod
+ 542918446943.dkr. ecr.us-west-2.amazonaws.com /:0-gpu sagemaker-distribution-prod

## Immagini supportate
<a name="notebooks-available-images-supported"></a>

La tabella seguente fornisce informazioni sulle SageMaker immagini e sui kernel associati disponibili in Amazon SageMaker Studio Classic. Fornisce inoltre informazioni sull’identificatore della risorsa e sulla versione Python inclusi nell’immagine.

SageMaker immagini e kernel


| SageMaker Immagine | Description | Identificatore di risorsa | Kernel (e identificatore) | Versione di Python | 
| --- | --- | --- | --- | --- | 
| Base Python 4.3 | Immagine ufficiale di Python 3.11 DockerHub con boto3 e inclusa. AWS CLI  | sagemaker-base-python-v4. | Python 3 (python3) | Python 3.11 | 
| Base Python 4.2 | Immagine ufficiale di Python 3.11 DockerHub con boto3 e inclusa. AWS CLI  | sagemaker-base-python-v4. | Python 3 (python3) | Python 3.11 | 
| Base Python 4.1 | Immagine ufficiale di Python 3.11 DockerHub con boto3 e inclusa. AWS CLI  | sagemaker-base-python-v4. | Python 3 (python3) | Python 3.11 | 
| Base Python 4.0 | Immagine ufficiale di Python 3.11 DockerHub con boto3 e inclusa. AWS CLI  | sagemaker-base-python-v4. | Python 3 (python3) | Python 3.11 | 
| Base Python 3.0 | Immagine ufficiale di Python 3.10 DockerHub con boto3 e inclusa. AWS CLI  | sagemaker-base-python-310-v1 | Python 3 (python3) | Python 3.10 | 
| Data Science 5.3 | Data Science 5.3 è un’immagine [conda](https://docs.conda.io/projects/conda/en/latest/index.html) di Python 3.11 basata sulla versione jammy-20240212 di Ubuntu. Include i pacchetti e le librerie Python più comunemente usati, come NumPy Learn. SciKit  | sagemaker-data-science-v5 | Python 3 (python3) | Python 3.11 | 
| Data Science 5.2 | Data Science 5.2 è un’immagine [conda](https://docs.conda.io/projects/conda/en/latest/index.html) di Python 3.11 basata sulla versione jammy-20240212 di Ubuntu. Include i pacchetti e le librerie Python più comunemente usati, come NumPy Learn. SciKit  | sagemaker-data-science-v5 | Python 3 (python3) | Python 3.11 | 
| Data Science 5.1 | Data Science 5.1 è un’immagine [conda](https://docs.conda.io/projects/conda/en/latest/index.html) di Python 3.11 basata sulla versione jammy-20240212 di Ubuntu. Include i pacchetti e le librerie Python più comunemente usati, come NumPy Learn. SciKit  | sagemaker-data-science-v5 | Python 3 (python3) | Python 3.11 | 
| Data Science 5.0 | Data Science 5.0 è un’immagine [conda](https://docs.conda.io/projects/conda/en/latest/index.html) di Python 3.11 basata sulla versione jammy-20240212 di Ubuntu. Include i pacchetti e le librerie Python più comunemente usati, come NumPy Learn. SciKit  | sagemaker-data-science-v5 | Python 3 (python3) | Python 3.11 | 
| Data Science 4.0 | Data Science 4.0 è un’immagine [conda](https://docs.conda.io/projects/conda/en/latest/index.html) di Python 3.11 basata sulla versione 22.04 di Ubuntu. Include i pacchetti e le librerie Python più comunemente usati, come NumPy Learn. SciKit  | sagemaker-data-science-311-v1 | Python 3 (python3) | Python 3.11 | 
| Data Science 3.0 | Data Science 3.0 è un’immagine [conda](https://docs.conda.io/projects/conda/en/latest/index.html) di Python 3.10 basata sulla versione 22.04 di Ubuntu. Include i pacchetti e le librerie Python più comunemente usati, come NumPy Learn. SciKit  | sagemaker-data-science-310-v1 | Python 3 (python3) | Python 3.10 | 
| Geospatial 1.0 | Amazon SageMaker geospatial è un'immagine Python composta da librerie geospaziali di uso comune come GDAL, Fiona, Shapley e Rasterio. GeoPandas Ti consente di visualizzare i SageMaker dati geospaziali all'interno dell'IA. Per ulteriori informazioni, consulta [Amazon SageMaker geospatial](https://docs.aws.amazon.com/sagemaker/latest/dg/geospatial-notebook-sdk.html) Notebook SDK | sagemaker-geospatial-1.0 | Python 3 (python3) | Python 3.10 | 
| SparkAnalytics 4.3 | L'immagine SparkAnalytics 4.3 fornisce le opzioni Spark e del PySpark kernel su Amazon SageMaker Studio Classic, tra cui SparkMagic Spark, Glue Spark e SparkMagic PySpark Glue, che consentono un'elaborazione flessibile dei PySpark dati distribuita. | sagemaker-spark-analytics-v4 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/notebooks-available-images.html)  | Python 3.11 | 
| SparkAnalytics 4.2 | L'immagine SparkAnalytics 4.2 fornisce le opzioni Spark e del PySpark kernel su Amazon SageMaker Studio Classic, tra cui SparkMagic Spark, Glue Spark e SparkMagic PySpark Glue, che consentono un'elaborazione flessibile dei PySpark dati distribuita. | sagemaker-spark-analytics-v4 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/notebooks-available-images.html)  | Python 3.11 | 
| SparkAnalytics 4.1 | L'immagine SparkAnalytics 4.1 fornisce le opzioni Spark e del PySpark kernel su Amazon SageMaker Studio Classic, tra cui SparkMagic Spark, Glue Spark e SparkMagic PySpark Glue, che consentono un'elaborazione flessibile dei PySpark dati distribuita. | sagemaker-spark-analytics-v4 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/notebooks-available-images.html)  | Python 3.11 | 
| SparkAnalytics 4.0 | L'immagine SparkAnalytics 4.0 fornisce opzioni Spark e PySpark kernel su Amazon SageMaker Studio Classic, tra cui SparkMagic Spark, Glue Spark e SparkMagic PySpark Glue, che consentono un'elaborazione flessibile dei PySpark dati distribuita. | sagemaker-spark-analytics-v4 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/notebooks-available-images.html)  | Python 3.11 | 
| SparkAnalytics 3.0 | L'immagine SparkAnalytics 3.0 fornisce opzioni Spark e PySpark kernel su Amazon SageMaker Studio Classic, tra cui SparkMagic Spark, Glue Spark e SparkMagic PySpark Glue, che consentono un'elaborazione flessibile dei PySpark dati distribuita. | sagemaker-sparkanalytics-311-v1 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/notebooks-available-images.html) | Python 3.11 | 
| SparkAnalytics 2.0 | Anaconda Individual Edition con kernel PySpark Spark. Per ulteriori informazioni, vedi [sparkmagic.](https://github.com/jupyter-incubator/sparkmagic) | sagemaker-sparkanalytics-310-v1 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/notebooks-available-images.html) | Python 3.10 | 
| PyTorch 2.4.0 Python 3.11 ottimizzato per la CPU | I AWS Deep Learning Containers for PyTorch 2.4.0 con CUDA 12.4 includono contenitori per l'addestramento sulla CPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.4.0-cpu-py311 | Python 3 (python3) | Python 3.11 | 
| PyTorch 2.4.0 Python 3.11 GPU ottimizzata | I AWS Deep Learning Containers for PyTorch 2.4.0 con CUDA 12.4 includono contenitori per la formazione su GPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.4.0-gpu-py311 | Python 3 (python3) | Python 3.11 | 
| PyTorch 2.3.0 Python 3.11 ottimizzato per la CPU | I AWS Deep Learning Containers for PyTorch 2.3.0 con CUDA 12.1 includono contenitori per l'addestramento sulla CPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.3.0-cpu-py311 | Python 3 (python3) | Python 3.11 | 
| PyTorch 2.3.0 GPU Python 3.11 ottimizzata | I AWS Deep Learning Containers for PyTorch 2.3.0 con CUDA 12.1 includono contenitori per la formazione su GPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.3.0-gpu-py311 | Python 3 (python3) | Python 3.11 | 
| PyTorch 2.2.0 Python 3.10 ottimizzato per la CPU | I AWS Deep Learning Containers for PyTorch 2.2 con CUDA 12.1 includono contenitori per l'addestramento sulla CPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.2.0-cpu-py310 | Python 3 (python3) | Python 3.10 | 
| PyTorch 2.2.0 Python 3.10 GPU ottimizzata | I AWS Deep Learning Containers for PyTorch 2.2 con CUDA 12.1 includono contenitori per la formazione su GPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.2.0-gpu-py310 | Python 3 (python3) | Python 3.10 | 
| PyTorch 2.1.0 Python 3.10 ottimizzato per la CPU | I AWS Deep Learning Containers for PyTorch 2.1 con CUDA 12.1 includono contenitori per l'addestramento sulla CPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.1.0-cpu-py310 | Python 3 (python3) | Python 3.10 | 
| PyTorch 2.1.0 Python 3.10 GPU ottimizzata | I AWS Deep Learning Containers for PyTorch 2.1 con CUDA 12.1 includono contenitori per la formazione su GPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.1.0-gpu-py310 | Python 3 (python3) | Python 3.10 | 
| PyTorch 1.13 HuggingFace Python 3.10 Neuron ottimizzato | PyTorch Immagine 1.13 con pacchetti Neuron installati per l'addestramento su istanze Trainium ottimizzate per prestazioni HuggingFace e scalabilità. AWS | hf-neuron-pypytorch-1.13- 310 | Python 3 (python3) | Python 3.10 | 
| PyTorch 1.13 Python 3.10 Neuron ottimizzato | PyTorch Immagine 1.13 con pacchetti Neuron installati per l'addestramento su istanze Trainium ottimizzate per prestazioni e scalabilità. AWS | pytorch-1.13-neuron-py310 | Python 3 (python3) | Python 3.10 | 
| TensorFlow 2.14.0 Python 3.10 ottimizzato per la CPU | I AWS Deep Learning Containers for TensorFlow 2.14 con CUDA 11.8 includono contenitori per l'addestramento sulla CPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | tensorflow-2.14.1-cpu-py310-ubuntu20.04-sagemaker-v1.0 | Python 3 (python3) | Python 3.10 | 
| TensorFlow 2.14.0 Python 3.10 GPU ottimizzata | I AWS Deep Learning Containers for TensorFlow 2.14 con CUDA 11.8 includono contenitori per la formazione su GPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | tensorflow-2.14.1-gpu-py310-cu118-ubuntu20.04-sagemaker-v1.0 | Python 3 (python3) | Python 3.10 | 

## Immagini destinate al ritiro
<a name="notebooks-available-images-deprecation"></a>

SageMaker L'intelligenza artificiale interrompe il supporto per le immagini il giorno successivo alla scadenza del ciclo di vita di uno qualsiasi dei pacchetti dell'immagine da parte dell'editore. Le seguenti SageMaker immagini sono destinate a diventare obsolete. 

Immagini basate su Python 3.8 raggiunte il 31 [end-of-life](https://endoflife.date/python)ottobre 2024. A partire dal 1° novembre 2024, l' SageMaker IA interromperà il supporto per queste immagini e non saranno selezionabili dall'interfaccia utente di Studio Classic. Per evitare problemi di compatibilità, se utilizzi una di queste immagini, ti consigliamo di passare a un'immagine con una versione più recente.

SageMaker immagini destinate a diventare obsolete


| SageMaker Immagine | Data di ritiro | Description | Identificatore di risorsa | Kernel | Versione di Python | 
| --- | --- | --- | --- | --- | --- | 
| SageMaker CPU di distribuzione v0.12 | 1 novembre 2024 | SageMaker Distribution v0 CPU è un'immagine Python 3.8 che include framework popolari per machine learning, data science e visualizzazione su CPU. Ciò include framework di deep learning come TensorFlow e Keras; pacchetti Python popolari come numpy PyTorch, scikit-learn e pandas; e come Jupyter Lab. IDEs Per ulteriori informazioni, consulta il repository [Amazon SageMaker AI Distribution](https://github.com/aws/sagemaker-distribution).  | sagemaker-distribution-cpu-v0 | Python 3 (python3) | Python 3.8 | 
| SageMaker GPU di distribuzione v0.12 | 1 novembre 2024 | SageMaker Distribution v0 GPU è un'immagine Python 3.8 che include framework popolari per machine learning, data science e visualizzazione su GPU. Ciò include framework di deep learning come TensorFlow e Keras; pacchetti Python popolari come numpy PyTorch, scikit-learn e pandas; e come Jupyter Lab. IDEs Per ulteriori informazioni, consulta il repository [Amazon SageMaker AI Distribution](https://github.com/aws/sagemaker-distribution).  | sagemaker-distribution-gpu-v0 | Python 3 (python3) | Python 3.8 | 
| Base Python 2.0 | 1 novembre 2024 | Immagine ufficiale di Python 3.8 DockerHub con boto3 e inclusa. AWS CLI  | sagemaker-base-python-38 | Python 3 (python3) | Python 3.8 | 
| Data Science 2.0 | 1 novembre 2024 | Data Science 2.0 è un’immagine [conda](https://docs.conda.io/projects/conda/en/latest/index.html) di Python 3.8 basata sulla versione 22.04 di Ubuntu. Include i pacchetti e le librerie Python più comunemente usati, come NumPy Learn. SciKit  | sagemaker-data-science-38 | Python 3 (python3) | Python 3.8 | 
| PyTorch 1.13 Python 3.9 ottimizzato per la CPU | 1 novembre 2024 | I AWS Deep Learning Containers for PyTorch 1.13 con CUDA 11.3 includono contenitori per l'addestramento sulla CPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-1.13-cpu-py39 | Python 3 (python3) | Python 3.9 | 
| PyTorch 1.13 Python 3.9 GPU ottimizzata | 1 novembre 2024 | I AWS Deep Learning Containers for PyTorch 1.13 con CUDA 11.7 includono contenitori per la formazione su GPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-1.13-gpu-py39 | Python 3 (python3) | Python 3.9 | 
| PyTorch 1.12 Python 3.8 ottimizzato per la CPU | 1 novembre 2024 | I AWS Deep Learning Containers for PyTorch 1.12 con CUDA 11.3 includono contenitori per l'addestramento sulla CPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [AWS Deep Learning Containers for PyTorch 1.12.0](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-for-pytorch-1-12-0-on-sagemaker/). | pytorch-1.12-cpu-py38 | Python 3 (python3) | Python 3.8 | 
| PyTorch 1.12 GPU Python 3.8 ottimizzata | 1 novembre 2024 | I AWS Deep Learning Containers for PyTorch 1.12 con CUDA 11.3 includono contenitori per la formazione su GPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [AWS Deep Learning Containers for PyTorch 1.12.0](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-for-pytorch-1-12-0-on-sagemaker/). | pytorch-1.12-gpu-py38 | Python 3 (python3) | Python 3.8 | 
| PyTorch 1.10 Python 3.8 ottimizzato per la CPU | 1 novembre 2024 | I AWS Deep Learning Containers for PyTorch 1.10 includono contenitori per l'addestramento sulla CPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [AWS Deep Learning Containers for PyTorch 1.10.2 on SageMaker ](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-for-pytorch-1-10-2-on-sagemaker/) AI. | pytorch-1.10-cpu-py38 | Python 3 (python3) | Python 3.8 | 
| PyTorch 1.10 Python 3.8 GPU ottimizzata | 1 novembre 2024 | I AWS Deep Learning Containers for PyTorch 1.10 con CUDA 11.3 includono contenitori per la formazione su GPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [AWS Deep Learning Containers for PyTorch 1.10.2 on SageMaker ](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-for-pytorch-1-10-2-on-sagemaker/) AI. | pytorch-1.10-gpu-py38 | Python 3 (python3) | Python 3.8 | 
| SparkAnalytics 1.0 | 1 novembre 2024 | Anaconda Individual Edition con kernel PySpark Spark. Per ulteriori informazioni, vedi [sparkmagic](https://github.com/jupyter-incubator/sparkmagic). | sagemaker-sparkanalytics-v1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/notebooks-available-images.html)  | Python 3.8 | 
| TensorFlow 2.13.0 Python 3.10 ottimizzato per la CPU | 1 novembre 2024 | I AWS Deep Learning Containers for TensorFlow 2.13 con CUDA 11.8 includono contenitori per l'addestramento sulla CPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | tensorflow-2.13.0-cpu-py310-ubuntu20.04-sagemaker-v1.0 | Python 3 (python3) | Python 3.10 | 
| TensorFlow 2.13.0 Python 3.10 GPU ottimizzata | 1 novembre 2024 | I AWS Deep Learning Containers for TensorFlow 2.13 con CUDA 11.8 includono contenitori per la formazione su GPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | tensorflow-2.13.0-gpu-py310-cu118-ubuntu20.04-sagemaker-v1.0 | Python 3 (python3) | Python 3.10 | 
| TensorFlow 2.6 Python 3.8 ottimizzato per la CPU | 1 novembre 2024 | I AWS Deep Learning Containers for TensorFlow 2.6 includono contenitori per l'addestramento sulla CPU, ottimizzati per prestazioni e scalabilità AWS. Per ulteriori informazioni, consulta [AWS Deep Learning Containers for TensorFlow 2.6](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-for-tensorflow-2-6/). | tensorflow-2.6-cpu-py38-ubuntu20.04-v1 | Python 3 (python3) | Python 3.8 | 
| TensorFlow 2.6 Python 3.8 ottimizzato per GPU | 1 novembre 2024 | I AWS Deep Learning Containers for TensorFlow 2.6 con CUDA 11.2 includono contenitori per la formazione su GPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [AWS Deep Learning Containers for TensorFlow 2.6](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-for-tensorflow-2-6/). | tensorflow-2.6-gpu-py38-cu112-ubuntu20.04-v1 | Python 3 (python3) | Python 3.8 | 
| PyTorch 2.0.1 Python 3.10 ottimizzato per la CPU | 1 novembre 2024 | I AWS Deep Learning Containers for PyTorch 2.0.1 con CUDA 12.1 includono contenitori per l'addestramento sulla CPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.0.1-cpu-py310 | Python 3 (python3) | Python 3.10 | 
| PyTorch 2.0.1 Python 3.10 GPU ottimizzata | 1 novembre 2024 | I AWS Deep Learning Containers for PyTorch 2.0.1 con CUDA 12.1 includono contenitori per la formazione su GPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.0.1-gpu-py310 | Python 3 (python3) | Python 3.10 | 
| PyTorch 2.0.0 Python 3.10 ottimizzato per la CPU | 1 novembre 2024 | I AWS Deep Learning Containers for PyTorch 2.0.0 includono contenitori per l'addestramento sulla CPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.0.0-cpu-py310 | Python 3 (python3) | Python 3.10 | 
| PyTorch 2.0.0 Python 3.10 GPU ottimizzata | 1 novembre 2024 | I AWS Deep Learning Containers for PyTorch 2.0.0 con CUDA 11.8 includono contenitori per la formazione su GPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | pytorch-2.0.0-gpu-py310 | Python 3 (python3) | Python 3.10 | 
| TensorFlow 2.12.0 Python 3.10 ottimizzato per la CPU | 1 novembre 2024 | I AWS Deep Learning Containers per TensorFlow 2.12.0 con CUDA 11.2 includono contenitori per l'addestramento sulla CPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | tensorflow-2.12.0-cpu-py310-ubuntu20.04-sagemaker-v1.0 | Python 3 (python3) | Python 3.10 | 
| TensorFlow 2.12.0 Python 3.10 GPU ottimizzata | 1 novembre 2024 | I AWS Deep Learning Containers per TensorFlow 2.12.0 con CUDA 11.8 includono contenitori per la formazione su GPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | tensorflow-2.12.0-gpu-py310-cu118-ubuntu20.04-sagemaker-v1 | Python 3 (python3) | Python 3.10 | 
| TensorFlow 2.11.0 Python 3.9 ottimizzato per la CPU | 1 novembre 2024 | I AWS Deep Learning Containers for TensorFlow 2.11.0 con CUDA 11.2 includono contenitori per l'addestramento sulla CPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | tensorflow-2.11.0-cpu-py39-ubuntu20.04-sagemaker-v1.1 | Python 3 (python3) | Python 3.9 | 
| TensorFlow 2.11.0 Python 3.9 GPU ottimizzata | 1 novembre 2024 | I AWS Deep Learning Containers for TensorFlow 2.11.0 con CUDA 11.2 includono contenitori per la formazione su GPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | tensorflow-2.11.0-gpu-py39-cu112-ubuntu20.04-sagemaker-v1.1 | Python 3 (python3) | Python 3.9 | 
| TensorFlow 2.10 Python 3.9 ottimizzato per la CPU | 1 novembre 2024 | I AWS Deep Learning Containers for TensorFlow 2.10 con CUDA 11.2 includono contenitori per l'addestramento sulla CPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | tensorflow-2.10.1-cpu-py39-ubuntu20.04-sagemaker-v1.2 | Python 3 (python3) | Python 3.9 | 
| TensorFlow 2.10 Python 3.9 GPU ottimizzata | 1 novembre 2024 | I AWS Deep Learning Containers for TensorFlow 2.10 con CUDA 11.2 includono contenitori per la formazione su GPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [Release Notes for Deep Learning Containers](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/dlc-release-notes.html). | tensorflow-2.10.1-gpu-py39-ubuntu20.04-sagemaker-v1.2 | Python 3 (python3) | Python 3.9 | 

## Immagini obsolete
<a name="notebooks-available-images-deprecated"></a>

SageMaker L'IA ha interrotto il supporto per le seguenti immagini. L’obsolescenza si applica il giorno successivo alla scadenza del ciclo di vita di uno qualsiasi dei pacchetti nell’immagine stabilita dai rispettivi publisher.

SageMaker immagini destinate alla deprecazione


| SageMaker Immagine | Data di ritiro | Description | Identificatore di risorsa | Kernel | Versione di Python | 
| --- | --- | --- | --- | --- | --- | 
| Data science | 30 ottobre 2023 | Data Science è un'immagine [conda](https://docs.conda.io/projects/conda/en/latest/index.html) di Python 3.7 con i pacchetti e le librerie Python più comunemente usati, come Learn. NumPy SciKit  | datascience-1.0 | Python 3 | Python 3.7 | 
| SageMaker JumpStart Scienza dei dati 1.0 | 30 ottobre 2023 | SageMaker JumpStart Data Science 1.0 è un' JumpStart immagine che include pacchetti e librerie di uso comune. | sagemaker-jumpstart-data-science-1,0 | Python 3 | Python 3.7 | 
| SageMaker JumpStart MXNet 1,0 | 30 ottobre 2023 | SageMaker JumpStart MXNet 1.0 è un' JumpStart immagine che include MXNet. | sagemaker-jumpstart-mxnet-1,0 | Python 3 | Python 3.7 | 
| SageMaker JumpStart PyTorch 1,0 | 30 ottobre 2023 | SageMaker JumpStart PyTorch 1.0 è un' JumpStart immagine che include PyTorch. | sagemaker-jumpstart-pytorch-1,0 | Python 3 | Python 3.7 | 
| SageMaker JumpStart TensorFlow 1,0 | 30 ottobre 2023 | SageMaker JumpStart TensorFlow 1.0 è un' JumpStart immagine che include TensorFlow. | sagemaker-jumpstart-tensorflow-1,0 | Python 3 | Python 3.7 | 
| SparkMagic | 30 ottobre 2023 | Anaconda Individual Edition con kernel PySpark Spark. Per ulteriori informazioni, vedi [sparkmagic](https://github.com/jupyter-incubator/sparkmagic). | sagemaker-sparkmagic |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/notebooks-available-images.html)  | Python 3.7 | 
| TensorFlow 2.3 Python 3.7 ottimizzato per la CPU | 30 ottobre 2023 | I AWS Deep Learning Containers for TensorFlow 2.3 includono contenitori per l'addestramento sulla CPU, ottimizzati per prestazioni e scalabilità AWS. Per ulteriori informazioni, consulta [AWS Deep Learning Containers with TensorFlow 2.3.0](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-with-tensorflow-2-3-0/). | tensorflow-2.3-cpu-py37-ubuntu18.04-v1 | Python 3 | Python 3.7 | 
| TensorFlow 2.3 Python 3.7 GPU ottimizzata | 30 ottobre 2023 | I AWS Deep Learning Containers for TensorFlow 2.3 con CUDA 11.0 includono contenitori per la formazione su GPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [AWS Deep Learning Containers per TensorFlow 2.3.1 con CUDA 11.0](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-for-tensorflow-2-3-1-with-cuda-11-0/). | tensorflow-2.3-gpu-py37-cu110-ubuntu18.04-v3 | Python 3 | Python 3.7 | 
| TensorFlow 1.15 Python 3.7 ottimizzato per la CPU | 30 ottobre 2023 | I AWS Deep Learning Containers for TensorFlow 1.15 includono contenitori per l'addestramento sulla CPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [AWS Deep Learning Containers v7.0](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-v7-0-for-tensorflow/) per. TensorFlow | tensorflow-1.15-cpu-py37-ubuntu18.04-v7 | Python 3 | Python 3.7 | 
| TensorFlow 1.15 Python 3.7 GPU ottimizzata | 30 ottobre 2023 | I AWS Deep Learning Containers for TensorFlow 1.15 con CUDA 11.0 includono contenitori per la formazione su GPU, ottimizzati per prestazioni e scalabilità. AWS Per ulteriori informazioni, consulta [AWS Deep Learning Containers v7.0](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-v7-0-for-tensorflow/) per. TensorFlow | tensorflow-1.15-gpu-py37-cu110-ubuntu18.04-v8 | Python 3 | Python 3.7 | 

# Personalizzazione di Amazon SageMaker Studio Classic
<a name="studio-customize"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Esistono quattro opzioni per personalizzare il tuo ambiente Amazon SageMaker Studio Classic. Puoi portare la tua SageMaker immagine, utilizzare uno script di configurazione del ciclo di vita, allegare repository Git suggeriti a Studio Classic o creare kernel utilizzando ambienti Conda persistenti in Amazon EFS. Puoi scegliere se usare una sola opzione o usarle insieme. 
+ **Porta la tua SageMaker immagine: un'** SageMaker immagine è un file che identifica i kernel, i pacchetti linguistici e le altre dipendenze necessarie per eseguire un notebook Jupyter in Amazon Studio Classic. SageMaker Amazon SageMaker AI fornisce molte immagini integrate da utilizzare. Se hai bisogno di altre funzionalità, puoi utilizzare le tue immagini personalizzate in Studio Classic.
+ **Usa le configurazioni del ciclo di vita con Amazon SageMaker Studio Classic:** le configurazioni del ciclo di vita sono script di shell attivati da eventi del ciclo di vita di Amazon SageMaker Studio Classic, come l'avvio di un nuovo notebook Studio Classic. Puoi utilizzare le configurazioni del ciclo di vita per automatizzare la personalizzazione del tuo ambiente Studio Classic. Ad esempio, puoi installare pacchetti personalizzati, configurare estensioni per notebook, precaricare set di dati e configurare repository di codice sorgente.
+ **Allega repository Git suggeriti a Studio Classic:** puoi allegare il repository Git consigliato URLs a livello di dominio Amazon SageMaker AI o profilo utente. Quindi, puoi selezionare l’URL del repository dall’elenco dei suggerimenti e clonarlo nel tuo ambiente utilizzando l’estensione Git in Studio Classic. 
+ **Rendi gli ambienti Conda persistenti sul volume Amazon EFS di Studio Classic:** Studio Classic utilizza un volume Amazon EFS come livello di archiviazione persistente. Puoi salvare il tuo ambiente Conda su questo volume Amazon EFS, quindi utilizzare l'ambiente salvato per creare kernel. Studio Classic preleva automaticamente tutti gli ambienti validi salvati in Amazon EFS come KernelGateway kernel. Questi kernel perdurano, anche dopo il riavvio del kernel, dell’app e di Studio Classic. Per ulteriori informazioni, consulta la sezione **Persistenza degli ambienti Conda nel volume Studio Classic EFS** in [Quattro approcci per gestire i pacchetti Python nei notebook Amazon SageMaker ](https://aws.amazon.com/blogs/machine-learning/four-approaches-to-manage-python-packages-in-amazon-sagemaker-studio-notebooks/) Studio Classic.

I seguenti argomenti mostrano come utilizzare queste tre opzioni per personalizzare l'ambiente Amazon SageMaker Studio Classic.

**Topics**
+ [Immagini personalizzate in Amazon SageMaker Studio Classic](studio-byoi.md)
+ [Usa le configurazioni del ciclo di vita per personalizzare Amazon Studio Classic SageMaker](studio-lcc.md)
+ [Allega repository Git consigliati ad Amazon SageMaker Studio Classic](studio-git-attach.md)

# Immagini personalizzate in Amazon SageMaker Studio Classic
<a name="studio-byoi"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Un' SageMaker immagine è un file che identifica i kernel, i pacchetti linguistici e altre dipendenze necessarie per eseguire un notebook Jupyter in Amazon Studio Classic. SageMaker Queste immagini vengono utilizzate per creare un ambiente da cui poi eseguire i notebook Jupyter. Amazon SageMaker AI fornisce molte immagini integrate da utilizzare. Per l'elenco delle immagini integrate, consulta [SageMaker Immagini Amazon disponibili per l'uso con i notebook Studio Classic](notebooks-available-images.md).

Se hai bisogno di altre funzionalità, puoi utilizzare le tue immagini personalizzate in Studio Classic. Puoi creare immagini e versioni di immagini e allegare versioni di immagini al tuo dominio o spazio condiviso utilizzando il pannello di controllo SageMaker AI [AWS SDK per Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html), e il [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/). Puoi anche creare immagini e versioni di immagini utilizzando la console SageMaker AI, anche se non hai effettuato l'onboarding a un dominio SageMaker AI. SageMaker AI fornisce Dockerfile di esempio da utilizzare come punto di partenza per le SageMaker immagini personalizzate nel repository [SageMaker Studio Classic Custom](https://github.com/aws-samples/sagemaker-studio-custom-image-samples/) Image Samples.

I seguenti argomenti spiegano come importare la propria immagine utilizzando la console SageMaker AI o AWS CLI come avviare l'immagine in Studio Classic. Per un articolo di blog simile, consulta [Porting your own R environment to Amazon SageMaker Studio Classic](https://aws.amazon.com/blogs/machine-learning/bringing-your-own-r-environment-to-amazon-sagemaker-studio/). Per i notebook che mostrano come utilizzare la propria immagine per la formazione e l'inferenza, consulta [Amazon SageMaker Studio Classic Container](https://github.com/aws/amazon-sagemaker-examples/tree/main/aws_sagemaker_studio/sagemaker_studio_image_build) Build CLI.

## Terminologia chiave
<a name="studio-byoi-basics"></a>

La sezione seguente definisce i termini chiave da conoscere quando si utilizza la propria immagine con Studio Classic.
+ **File Docker:** un file Docker è un file che identifica pacchetti linguistici e altre dipendenze della tua immagine Docker.
+ **Immagine Docker:** l'immagine Docker è un file Docker integrato. Questa immagine viene archiviata in Amazon ECR e funge da base per l'immagine SageMaker AI.
+ **SageMaker immagine:** Un' SageMaker immagine è un supporto per un set di versioni di immagini SageMaker AI basate su immagini Docker. Le singole versioni dell’immagine non sono modificabili.
+ **Versione immagine:** una versione immagine di un' SageMaker immagine rappresenta un'immagine Docker ed è archiviata in un repository Amazon ECR. Le singole versioni dell’immagine non sono modificabili. Queste versioni dell’immagine possono essere collegate a un dominio o a uno spazio condiviso e utilizzate con Studio Classic.

**Topics**
+ [Terminologia chiave](#studio-byoi-basics)
+ [Specifiche di SageMaker immagine personalizzate per Amazon SageMaker Studio Classic](studio-byoi-specs.md)
+ [Prerequisiti per le immagini personalizzate in Amazon SageMaker Studio Classic](studio-byoi-prereq.md)
+ [Aggiungi un'immagine Docker compatibile con Amazon SageMaker Studio Classic ad Amazon ECR](studio-byoi-sdk-add-container-image.md)
+ [Crea un' SageMaker immagine personalizzata per Amazon SageMaker Studio Classic](studio-byoi-create.md)
+ [Allega un' SageMaker immagine personalizzata in Amazon SageMaker Studio Classic](studio-byoi-attach.md)
+ [Avvio di un' SageMaker immagine personalizzata in Amazon SageMaker Studio Classic](studio-byoi-launch.md)
+ [Risorse di pulizia per immagini personalizzate in Amazon SageMaker Studio Classic](studio-byoi-cleanup.md)

# Specifiche di SageMaker immagine personalizzate per Amazon SageMaker Studio Classic
<a name="studio-byoi-specs"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Le seguenti specifiche si applicano all'immagine del contenitore rappresentata da una versione di immagine SageMaker AI.

**Esecuzione dell'immagine**  
`ENTRYPOINT`e `CMD` le istruzioni vengono sovrascritte per consentire all'immagine di funzionare come KernelGateway app.  
La porta 8888 nell'immagine è riservata all'esecuzione del server KernelGateway Web.

**Arresto dell'immagine**  
L’API `DeleteApp` invia l’equivalente di un comando `docker stop`. Gli altri processi nel contenitore non riceveranno i SIGKILL/SIGTERM segnali.

**Riconoscimento dei kernel**  
SageMaker [L'intelligenza artificiale riconosce i kernel come definito dalle specifiche del kernel di Jupyter.](https://jupyter-client.readthedocs.io/en/latest/kernels.html#kernelspecs)  
Puoi specificare una lista di kernel da visualizzare prima di eseguire l'immagine. In caso contrario, viene visualizzato python3. Usa l'[DescribeAppImageConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAppImageConfig.html)API per visualizzare l'elenco dei kernel.  
Per impostazione predefinita, gli ambienti conda sono riconosciuti come specifiche del kernel. 

**File system**  
Le directory `/opt/.sagemakerinternal` e `/opt/ml` sono riservate. I dati presenti in queste directory potrebbero non essere visibili durante il runtime.

**Dati utente**  
A ogni utente di un dominio viene associata una directory utente su un volume Amazon Elastic File System condiviso nell'immagine. La posizione della directory dell'utente corrente sul volume Amazon EFS è configurabile. Per impostazione predefinita, la posizione della directory è `/home/sagemaker-user`.  
SageMaker L'IA configura le UID/GID mappature POSIX tra l'immagine e l'host. L'impostazione predefinita è la mappatura dell'utente root UID/GID (0/0) su quello dell'host. UID/GID   
È possibile specificare questi valori utilizzando l'API. [CreateAppImageConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAppImageConfig.html)

**Limiti GID/UID**  
Amazon SageMaker Studio Classic supporta solo `DefaultUID` le seguenti `DefaultGID` combinazioni:   
+  DefaultUID 1000 e DefaultGID 100, che corrisponde a un utente senza privilegi.
+  DefaultUID 0 e DefaultGID 0, che corrisponde all'accesso root.

**Metadati**  
Un file di metadati si trova in `/opt/ml/metadata/resource-metadata.json`. Alle variabili definite nell'immagine non viene aggiunta alcuna variabile di ambiente. Per ulteriori informazioni, consulta [Ottenere i metadati dell’app](notebooks-run-and-manage-metadata.md#notebooks-run-and-manage-metadata-app).

**GPU**  
In un'istanza GPU, l'immagine viene eseguita con l'opzione `--gpus`. Nell'immagine deve essere incluso solo il toolkit CUDA, non i driver NVIDIA. Per ulteriori informazioni, consulta [Guida per l'utente di NVIDIA](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/user-guide.html).

**Parametri e logging**  
I log del KernelGateway processo vengono inviati ad Amazon CloudWatch nell'account del cliente. Il nome del gruppo di log è `/aws/sagemaker/studio`. Il nome del flusso di log è `$domainID/$userProfileName/KernelGateway/$appName`.

**Dimensione dell’immagine**  
Massimo 35 GB. Per visualizzare le dimensioni della tua immagine, esegui `docker image ls`.  


## File Docker di esempio
<a name="studio-byoi-specs-sample"></a>

Il seguente file Docker di esempio crea un’immagine basata su Amazon Linux 2, installa pacchetti di terze parti e il kernel `python3` e imposta l'ambito dell’utente senza privilegi.

```
FROM public.ecr.aws/amazonlinux/amazonlinux:2

ARG NB_USER="sagemaker-user"
ARG NB_UID="1000"
ARG NB_GID="100"

RUN \
    yum install --assumeyes python3 shadow-utils && \
    useradd --create-home --shell /bin/bash --gid "${NB_GID}" --uid ${NB_UID} ${NB_USER} && \
    yum clean all && \
    jupyter-activity-monitor-extension \
    python3 -m pip install ipykernel && \
    python3 -m ipykernel install

USER ${NB_UID}
```

# Prerequisiti per le immagini personalizzate in Amazon SageMaker Studio Classic
<a name="studio-byoi-prereq"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

È necessario soddisfare i seguenti prerequisiti per portare il proprio contenitore da utilizzare con Amazon SageMaker Studio Classic.
+ L'applicazione Docker. Per informazioni sulla configurazione di Docker, consulta [Orientation and setup](https://docs.docker.com/get-started/).
+ Installa il AWS CLI seguendo la procedura descritta in [Guida introduttiva a](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html). AWS CLI
+ Una copia locale di ogni Dockerfile per creare un’immagine compatibile con Studio Classic. Per immagini personalizzate di esempio, consulta il repository di [esempi di immagini personalizzate SageMaker AI Studio Classic](https://github.com/aws-samples/sagemaker-studio-custom-image-samples/).
+ Autorizzazioni per accedere al servizio Amazon Elastic Container Registry (Amazon ECR). Per ulteriori informazioni, consulta [Amazon ECR Managed Policies ](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ecr_managed_policies.html).
+ Un ruolo di AWS Identity and Access Management esecuzione a cui è allegata la [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)policy. Se hai effettuato l'onboarding nel dominio Amazon SageMaker AI, puoi ottenere il ruolo dalla sezione **Domain Summary** del pannello di controllo SageMaker AI.
+ Installa la CLI di creazione di immagini Studio Classic seguendo i passaggi di [SageMaker Docker](https://github.com/aws-samples/sagemaker-studio-image-build-cli) Build. Questa CLI consente di creare un Dockerfile utilizzando. AWS CodeBuild

# Aggiungi un'immagine Docker compatibile con Amazon SageMaker Studio Classic ad Amazon ECR
<a name="studio-byoi-sdk-add-container-image"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Esegui le seguenti fasi per aggiungere un'immagine del container ad Amazon ECR:
+ Crea un repository Amazon ECR.
+ Effettua l'autenticazione su Amazon ECR.
+ Crea un’immagine Docker compatibile con Studio Classic.
+ Inserisci l'immagine nel repository Amazon ECR.

**Nota**  
Il repository Amazon ECR deve trovarsi nello stesso spazio di Studio Regione AWS Classic.

**Per creare e aggiungere un'immagine da un container ad Amazon ECR**

1. Crea un repository in Amazon ECR tramite la AWS CLI. Per creare il repository utilizzando la console Amazon ECR, consulta la sezione [Creating a repository](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-create.html).

   ```
   aws ecr create-repository \
       --repository-name smstudio-custom \
       --image-scanning-configuration scanOnPush=true
   ```

   Il risultato dovrebbe essere simile al seguente.

   ```
   {
       "repository": {
           "repositoryArn": "arn:aws:ecr:us-east-2:acct-id:repository/smstudio-custom",
           "registryId": "acct-id",
           "repositoryName": "smstudio-custom",
           "repositoryUri": "acct-id.dkr.ecr.us-east-2.amazonaws.com/smstudio-custom",
           ...
       }
   }
   ```

1. Crea il `Dockerfile` utilizzando la CLI di Studio Classic Image Build. Il punto (.) specifica che il file Docker deve trovarsi nel contesto del comando build. Questo comando crea l'immagine e carica l'immagine creata nel repository ECR. Quindi, genera l'URI dell'immagine.

   ```
   sm-docker build . --repository smstudio-custom:custom
   ```

   Il risultato dovrebbe essere simile al seguente.

   ```
   Image URI: <acct-id>.dkr.ecr.<region>.amazonaws.com/<image_name>
   ```

# Crea un' SageMaker immagine personalizzata per Amazon SageMaker Studio Classic
<a name="studio-byoi-create"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse 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 è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Questo argomento descrive come creare un' SageMaker immagine personalizzata utilizzando la console SageMaker AI o. 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)](https://console.aws.amazon.com/ecr/). L'immagine del contenitore deve soddisfare i requisiti per essere utilizzata in Amazon SageMaker Studio Classic. Per ulteriori informazioni, consulta [Specifiche di SageMaker immagine personalizzate per Amazon SageMaker Studio Classic](studio-byoi-specs.md). Per informazioni su come testare l'immagine localmente e risolvere i problemi più comuni, consulta il repository [SageMaker Studio Classic Custom Image Samples](https://github.com/aws-samples/sagemaker-studio-custom-image-samples/blob/main/DEVELOPMENT.md).

Dopo aver creato SageMaker l'immagine personalizzata, è necessario allegarla al dominio o allo spazio condiviso per utilizzarla con Studio Classic. Per ulteriori informazioni, consulta [Allega un' SageMaker immagine personalizzata in Amazon SageMaker Studio Classic](studio-byoi-attach.md).

## Crea un' SageMaker immagine dalla console
<a name="studio-byoi-create-console"></a>

La sezione seguente mostra come creare un' SageMaker immagine personalizzata dalla console SageMaker AI.

**Come creare un’immagine**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel pannello di navigazione sinistro scegli **Configurazioni admin**.

1. In **Configurazioni admin**, scegli **Immagini**. 

1. Nella pagina **Immagini personalizzate**, scegli **Crea immagine**.

1. 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] `

1. Seleziona **Successivo**.

1. 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: al ruolo deve essere associata la [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)policy. 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 L'intelligenza artificiale associa la `AmazonSageMakerFullAccess` policy 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. I tag sono ricercabili utilizzando l'interfaccia utente di Studio Classic, la console SageMaker AI o l'`Search`API SageMaker AI.

1. Seleziona **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.

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

## Crea un' SageMaker immagine da AWS CLI
<a name="studio-byoi-sdk-create-image"></a>

Per creare SageMaker un'immagine dall'immagine del contenitore, effettuate le seguenti operazioni utilizzando il AWS CLI.
+ Creazione di `Image`.
+ Creazione di `ImageVersion`.
+ Creazione di un file di configurazione.
+ Creazione di `AppImageConfig`.

**Per creare le entità SageMaker dell'immagine**

1. Crea un' SageMaker immagine.

   ```
   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"
   }
   ```

1. Crea una versione SageMaker dell'immagine dall'immagine del contenitore.

   ```
   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"
   }
   ```

1. 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 CloudWatch i log di Amazon se riscontri un errore durante l'avvio o l'esecuzione dell' KernelGateway app per un'immagine personalizzata. Il nome del gruppo di log è `/aws/sagemaker/studio`. Il nome del flusso di log è `$domainID/$userProfileName/KernelGateway/$appName`.

1. 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
           }
       }
   }
   ```

1. Crea il file AppImageConfig utilizzando il file creato nel passaggio 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"
   }
   ```

# Allega un' SageMaker immagine personalizzata in Amazon SageMaker Studio Classic
<a name="studio-byoi-attach"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse 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 è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Per utilizzare un' SageMaker immagine personalizzata, devi allegare una versione dell'immagine al tuo dominio o spazio condiviso. Quando alleghi una versione dell'immagine, questa viene visualizzata in SageMaker Studio Classic Launcher ed è disponibile nell'elenco a discesa **Seleziona immagine**, che gli utenti utilizzano per avviare un'attività o modificare l'immagine utilizzata da un taccuino.

Per rendere disponibile un' SageMaker immagine personalizzata a tutti gli utenti all'interno di un dominio, è necessario allegare l'immagine al dominio. Collegando un’immagine a uno spazio condiviso, la si rende disponibile a tutti gli utenti all'interno di quello spazio condiviso. Collegando un’immagine a un profilo utente, la si rende disponibile a quel singolo utente. Quando alleghi un'immagine, l' SageMaker IA utilizza la versione più recente dell'immagine per impostazione predefinita. È inoltre possibile collegare una versione specifica dell'immagine. Dopo aver allegato la versione, puoi scegliere la versione da SageMaker AI Launcher o dal selettore di immagini quando avvii un notebook.

Il numero di versioni dell’immagine che si possono collegare in un dato momento è limitato. Una volta raggiunto il limite, dovrai scollegare una versione per collegare un'altra versione dell'immagine.

Le sezioni seguenti mostrano come allegare un' SageMaker immagine personalizzata al tuo dominio utilizzando la console SageMaker AI o il. AWS CLI Puoi collegare un’immagine personalizzata a uno spazio condiviso solo utilizzando la AWS CLI.

## Allega l' SageMaker immagine a un dominio
<a name="studio-byoi-attach-domain"></a>

### Allega l' SageMaker immagine utilizzando la console
<a name="studio-byoi-attach-existing"></a>

Questo argomento descrive come allegare una versione di SageMaker immagine personalizzata esistente al dominio utilizzando il pannello di controllo SageMaker AI. Puoi anche creare un' SageMaker immagine e una versione dell'immagine personalizzate e quindi allegare quella versione al tuo dominio. Per conoscere la procedura per creare un'immagine e una versione dell'immagine, consulta [Crea un' SageMaker immagine personalizzata per Amazon SageMaker Studio Classic](studio-byoi-create.md).

**Per collegare un'immagine esistente**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1. Nella pagina **Domini**, seleziona il dominio a cui collegare l’immagine.

1. Dalla pagina **Dettagli del dominio**, seleziona la scheda **Ambiente**.

1. Nella scheda **Ambiente**, in **Immagini Custom SageMaker Studio Classic allegate al dominio**, scegli **Allega immagine**.

1. In **Origine dell’immagine**, scegli **Immagine esistente**.

1. Seleziona un’immagine esistente dall'elenco.

1. Seleziona una versione dell'immagine dall'elenco.

1. Seleziona **Successivo**.

1. Verifica i valori per **Nome dell’immagine**, **Nome visualizzato dell’immagine** e **Descrizione**.

1. Seleziona il ruolo IAM. Per ulteriori informazioni, consulta [Crea un' SageMaker immagine personalizzata per Amazon SageMaker Studio Classic](studio-byoi-create.md).

1. (Facoltativo) Aggiunta di tag all'immagine.

1. Specifica il percorso di montaggio EFS. Si tratta del percorso all'interno dell'immagine dove montare la directory principale Amazon Elastic File System (EFS) dell'utente.

1. Per **Tipo di immagine**, seleziona **Immagine da SageMaker Studio**

1. In **Nome kernel**, inserisci nell’immagine il nome di un kernel esistente. Per informazioni su come ottenere le informazioni sul kernel dall'immagine, vedete [SVILUPPO](https://github.com/aws-samples/sagemaker-studio-custom-image-samples/blob/main/DEVELOPMENT.md) nel repository SageMaker Studio Classic Custom Image Samples. Per ulteriori informazioni, consulta le sezioni **Kernel discovery** e **User data** di [Specifiche di SageMaker immagine personalizzate per Amazon SageMaker Studio Classic](studio-byoi-specs.md).

1. (Facoltativo) In **Nome di visualizzazione del kernel**, inserisci il nome visualizzato per il kernel.

1. Scegli **Aggiungi kernel**.

1. Seleziona **Invia**. 

   1. Attendi che la versione dell'immagine venga collegata al dominio. Una volta collegata, la versione viene visualizzata nella lista **Immagini personalizzate** ed evidenziata per qualche secondo.

### Allega l' SageMaker immagine usando il AWS CLI
<a name="studio-byoi-sdk-attach"></a>

Nelle sezioni seguenti viene illustrato come allegare SageMaker un'immagine personalizzata quando si crea un nuovo dominio o si aggiorna il dominio esistente utilizzando il AWS CLI.

#### Allega l' SageMaker immagine a un nuovo dominio
<a name="studio-byoi-sdk-attach-new-domain"></a>

La sezione seguente mostra come creare un nuovo dominio collegandovi la versione dell’immagine. Queste fasi richiedono di specificare le informazioni sul cloud privato virtuale (VPC) di Amazon e sul ruolo di esecuzione, necessarie per creare il dominio. Per creare il dominio e allegare l' SageMaker immagine personalizzata, attenersi alla seguente procedura:
+ Ottieni l'ID VPC e la sottorete predefiniti. IDs
+ Crea il file di configurazione per il dominio, il quale specifica l'immagine.
+ Crea il dominio con il file di configurazione.

**Per aggiungere l' SageMaker immagine personalizzata al tuo dominio**

1. Ottieni l’ID del tuo VPC predefinito.

   ```
   aws ec2 describe-vpcs \
       --filters Name=isDefault,Values=true \
       --query "Vpcs[0].VpcId" --output text
   ```

   Il risultato dovrebbe essere simile al seguente.

   ```
   vpc-xxxxxxxx
   ```

1. Ottieni la tua sottorete predefinita IDs utilizzando l'ID VPC del passaggio precedente.

   ```
   aws ec2 describe-subnets \
       --filters Name=vpc-id,Values=<vpc-id> \
       --query "Subnets[*].SubnetId" --output json
   ```

   Il risultato dovrebbe essere simile al seguente.

   ```
   [
       "subnet-b55171dd",
       "subnet-8a5f99c6",
       "subnet-e88d1392"
   ]
   ```

1. Crea un file di configurazione denominato `create-domain-input.json`. Inserisci l'ID VPC, la sottorete IDs e `AppImageConfigName` dai passaggi precedenti. `ImageName` Poiché `ImageVersionNumber` non è specificato, si usa la versione più recente dell'immagine, che, in questo caso, è anche l'unica.

   ```
   {
       "DomainName": "domain-with-custom-image",
       "VpcId": "<vpc-id>",
       "SubnetIds": [
           "<subnet-ids>"
       ],
       "DefaultUserSettings": {
           "ExecutionRole": "<execution-role>",
           "KernelGatewayAppSettings": {
               "CustomImages": [
                   {
                       "ImageName": "custom-image",
                       "AppImageConfigName": "custom-image-config"
                   }
               ]
           }
       },
       "AuthMode": "IAM"
   }
   ```

1. Crea il dominio con l'immagine personalizzata SageMaker allegata.

   ```
   aws sagemaker create-domain \
       --cli-input-json file://create-domain-input.json
   ```

   Il risultato dovrebbe essere simile al seguente.

   ```
   {
       "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx",
       "Url": "https://d-xxxxxxxxxxxx.studio.us-east-2.sagemaker.aws/..."
   }
   ```

#### Allega l' SageMaker immagine al tuo dominio attuale
<a name="studio-byoi-sdk-attach-current-domain"></a>

Se hai effettuato l'onboarding a un dominio SageMaker AI, puoi allegare l'immagine personalizzata al tuo dominio attuale. Per ulteriori informazioni sull'onboarding in un dominio SageMaker AI, consulta. [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md) Non è necessario specificare le informazioni sul VPC e sul ruolo di esecuzione per collegare un'immagine personalizzata al tuo dominio corrente. Dopo aver collegato la versione, devi eliminare tutte le app all’interno del dominio e riaprire Studio Classic. Per informazioni su come eliminare le app, consulta [Eliminare un dominio Amazon SageMaker AI](gs-studio-delete-domain.md).

Per aggiungere l' SageMaker immagine al dominio corrente, procedi nel seguente modo.
+ Scaricala `DomainID` dal pannello di controllo SageMaker AI.
+ Usa il `DomainID` per ottenere `DefaultUserSettings` per il dominio.
+ Aggiungi `ImageName` e `AppImageConfig` come `CustomImage` a `DefaultUserSettings`.
+ Aggiornamento del tuo dominio per includere l'immagine personalizzata.

**Per aggiungere l' SageMaker immagine personalizzata al tuo dominio**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1. Nella pagina **Domini**, seleziona il dominio a cui collegare l’immagine.

1. Dalla pagina **Dettagli del dominio**, seleziona la scheda **Impostazioni del dominio**.

1. Nella scheda **Impostazioni del dominio**, in **Impostazioni generali**, trova `DomainId`. L'ID è nel formato seguente: `d-xxxxxxxxxxxx`.

1. Utilizza l'ID del dominio per generare la descrizione del dominio.

   ```
   aws sagemaker describe-domain \
       --domain-id <d-xxxxxxxxxxxx>
   ```

   Il risultato dovrebbe essere simile al seguente.

   ```
   {
       "DomainId": "d-xxxxxxxxxxxx",
       "DefaultUserSettings": {
         "KernelGatewayAppSettings": {
           "CustomImages": [
           ],
           ...
         }
       }
   }
   ```

1. Salva la sezione delle impostazioni utente predefinite del risultato in un file denominato `default-user-settings.json`.

1. Inserisci `ImageName` e `AppImageConfigName` dalle fasi precedenti come immagine personalizzata. Poiché `ImageVersionNumber` non è specificato, si usa la versione più recente dell'immagine, che, in questo caso, è anche l'unica.

   ```
   {
       "DefaultUserSettings": {
           "KernelGatewayAppSettings": { 
              "CustomImages": [ 
                 { 
                    "ImageName": "string",
                    "AppImageConfigName": "string"
                 }
              ],
              ...
           }
       }
   }
   ```

1. Utilizza l'ID del dominio e il file delle impostazioni utente predefinite per aggiornare il dominio.

   ```
   aws sagemaker update-domain \
       --domain-id <d-xxxxxxxxxxxx> \
       --cli-input-json file://default-user-settings.json
   ```

   Il risultato dovrebbe essere simile al seguente.

   ```
   {
       "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx"
   }
   ```

## Allega l' SageMaker immagine a uno spazio condiviso
<a name="studio-byoi-attach-shared-space"></a>

È possibile allegare l' SageMaker immagine a uno spazio condiviso solo utilizzando AWS CLI. Dopo aver collegato la versione, devi eliminare tutte le applicazioni all’interno del tuo spazio condiviso e riaprire Studio Classic. Per informazioni su come eliminare le app, consulta [Eliminare un dominio Amazon SageMaker AI](gs-studio-delete-domain.md).

Per aggiungere l' SageMaker immagine a uno spazio condiviso, si eseguono le seguenti operazioni.
+ Scaricala `DomainID` dal pannello di controllo SageMaker AI.
+ Usa il `DomainID` per ottenere `DefaultSpaceSettings` per il dominio.
+ Aggiungi `ImageName` e `AppImageConfig` come `CustomImage` a `DefaultSpaceSettings`.
+ Aggiornamento del tuo dominio per includere l'immagine personalizzata per lo spazio condiviso.

**Per aggiungere l' SageMaker immagine personalizzata al tuo spazio condiviso**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1. Nella pagina **Domini**, seleziona il dominio a cui collegare l’immagine.

1. Dalla pagina **Dettagli del dominio**, seleziona la scheda **Impostazioni del dominio**.

1. Nella scheda **Impostazioni del dominio**, in **Impostazioni generali**, trova `DomainId`. L'ID è nel formato seguente: `d-xxxxxxxxxxxx`.

1. Utilizza l'ID del dominio per generare la descrizione del dominio.

   ```
   aws sagemaker describe-domain \
       --domain-id <d-xxxxxxxxxxxx>
   ```

   Il risultato dovrebbe essere simile al seguente.

   ```
   {
       "DomainId": "d-xxxxxxxxxxxx",
       ...
       "DefaultSpaceSettings": {
         "KernelGatewayAppSettings": {
           "CustomImages": [
           ],
           ...
         }
       }
   }
   ```

1. Salva la sezione delle impostazioni spazio predefinite che visualizzi nel risultato in un file denominato `default-space-settings.json`.

1. Inserisci `ImageName` e `AppImageConfigName` dalle fasi precedenti come immagine personalizzata. Poiché `ImageVersionNumber` non è specificato, si usa la versione più recente dell'immagine, che, in questo caso, è anche l'unica.

   ```
   {
       "DefaultSpaceSettings": {
           "KernelGatewayAppSettings": { 
              "CustomImages": [ 
                 { 
                    "ImageName": "string",
                    "AppImageConfigName": "string"
                 }
              ],
              ...
           }
       }
   }
   ```

1. Utilizza l'ID del dominio e il file delle impostazioni spazio predefinite per aggiornare il dominio.

   ```
   aws sagemaker update-domain \
       --domain-id <d-xxxxxxxxxxxx> \
       --cli-input-json file://default-space-settings.json
   ```

   Il risultato dovrebbe essere simile al seguente.

   ```
   {
       "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx"
   }
   ```

## Visualizza l'immagine allegata in SageMaker AI
<a name="studio-byoi-sdk-view"></a>

Dopo aver creato l' SageMaker immagine personalizzata e averla associata al dominio, l'immagine viene visualizzata nella scheda **Ambiente** del dominio. È possibile visualizzare solo le immagini allegate per gli spazi condivisi AWS CLI utilizzando il comando seguente.

```
aws sagemaker describe-domain \
    --domain-id <d-xxxxxxxxxxxx>
```

# Avvio di un' SageMaker immagine personalizzata in Amazon SageMaker Studio Classic
<a name="studio-byoi-launch"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Dopo aver creato SageMaker l'immagine personalizzata e averla associata al dominio o allo spazio condiviso, l'immagine e il kernel personalizzati vengono visualizzati nei selettori della finestra di dialogo **Cambia ambiente** di Studio Classic Launcher.

**Per avviare e selezionare la propria immagine personalizzata e il kernel**

1. In Amazon SageMaker Studio Classic, apri il Launcher. Per aprire il Launcher, scegli **Amazon SageMaker Studio Classic** in alto a sinistra dell'interfaccia di Studio Classic o usa la scorciatoia `Ctrl + Shift + L` da tastiera.

   Per informazioni sulle modalità di apertura dell’utilità di avvio disponibili, consulta [Usa Amazon SageMaker Studio Classic Launcher](studio-launcher.md)  
![\[SageMaker Launcher di Studio Classic.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/studio-new-launcher.png)

1. Nell’utilità di avvio, nella sezione **Notebooks and compute resources**, scegli **Cambia ambiente**.

1. Nella finestra di dialogo **Cambia ambiente**, usa i menu a discesa per selezionare la tua **immagine** dalla sezione **Immagine personalizzata** e il tuo **kernel**, quindi scegli **Seleziona**.

1. Nell’utilità di avvio, scegli **Crea notebook** o **Open image terminal**. Il notebook o il terminale si avvia nell'immagine personalizzata e nel kernel selezionati.

Per modificare l'immagine o il kernel in un notebook aperto, consulta [Modifica dell'immagine o di un kernel per un notebook Amazon SageMaker Studio Classic](notebooks-run-and-manage-change-image.md).

**Nota**  
Se riscontri un errore durante l'avvio dell'immagine, controlla i CloudWatch log di Amazon. Il nome del gruppo di log è `/aws/sagemaker/studio`. Il nome del flusso di log è `$domainID/$userProfileName/KernelGateway/$appName`.

# Risorse di pulizia per immagini personalizzate in Amazon SageMaker Studio Classic
<a name="studio-byoi-cleanup"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Le sezioni seguenti mostrano come ripulire le risorse create nelle sezioni precedenti dalla console SageMaker AI o. AWS CLI Per pulire le risorse, procedi come segue:
+ Scollega l'immagine e le relative versioni dal tuo dominio.
+ Elimina l'immagine, la versione dell'immagine e la configurazione dell'immagine nell'app.
+ Elimina l'immagine e il repository del container da Amazon ECR. Per ulteriori informazioni, consulta [Deleting a repository](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-delete.html).

## Pulisci le risorse dalla console SageMaker AI
<a name="studio-byoi-detach"></a>

La sezione seguente mostra come pulire le risorse dalla console SageMaker AI.

Quando si scollega un'immagine da un dominio, vengono scollegate anche tutte le versioni dell'immagine. Quando un'immagine viene scollegata, tutti gli utenti del dominio perdono l'accesso alle versioni dell'immagine. Un notebook in esecuzione che ha una sessione del kernel su una versione dell’immagine continua a funzionare anche quando questa viene scollegata. Quando il notebook viene interrotto o il kernel viene arrestato, la versione dell'immagine non risulta più disponibile.

**Per scollegare un'immagine**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel pannello di navigazione sinistro scegli **Configurazioni admin**.

1. In **Configurazioni admin**, scegli **Immagini**. 

1. In **Immagini Custom SageMaker Studio Classic allegate al dominio**, scegli l'immagine, quindi scegli **Scollega.**

1. (Facoltativo) Per eliminare l'immagine e tutte le versioni da SageMaker AI, seleziona **Elimina anche le immagini selezionate**... . Questa azione non elimina le immagini del container associate da Amazon ECR.

1. Seleziona **Scollega**.

## Ripulisci le risorse di AWS CLI
<a name="studio-byoi-sdk-cleanup"></a>

La sezione seguente mostra come pulire risorse da AWS CLI.

**Per eliminare le risorse**

1. Scollega l'immagine e le versioni delle immagini dal tuo dominio inoltrando al dominio un elenco di immagini personalizzate vuoto. Apri il file `default-user-settings.json` creato in [Allega l' SageMaker immagine al tuo dominio attuale](studio-byoi-attach.md#studio-byoi-sdk-attach-current-domain). Per scollegare l'immagine e la versione dell'immagine da uno spazio condiviso, apri il file `default-space-settings.json`.

1. Elimina le immagini personalizzate e quindi salva il file.

   ```
   "DefaultUserSettings": {
     "KernelGatewayAppSettings": {
        "CustomImages": [
        ],
        ...
     },
     ...
   }
   ```

1. Utilizza l'ID del dominio e il file delle impostazioni utente predefinite per aggiornare il dominio. Utilizza il file delle impostazioni dello spazio predefinito per aggiornare lo spazio condiviso.

   ```
   aws sagemaker update-domain \
       --domain-id <d-xxxxxxxxxxxx> \
       --cli-input-json file://default-user-settings.json
   ```

   Il risultato dovrebbe essere simile al seguente.

   ```
   {
       "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx"
   }
   ```

1. Elimina la configurazione dell'immagine dell'app.

   ```
   aws sagemaker delete-app-image-config \
       --app-image-config-name custom-image-config
   ```

1. Eliminare l' SageMaker immagine, eliminando anche tutte le versioni dell'immagine. Le immagini dei container in ECR rappresentate dalle versioni delle immagini non vengono eliminate.

   ```
   aws sagemaker delete-image \
       --image-name custom-image
   ```

# Usa le configurazioni del ciclo di vita per personalizzare Amazon Studio Classic SageMaker
<a name="studio-lcc"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Amazon SageMaker Studio Classic attiva gli script della shell di configurazione del ciclo di vita durante importanti eventi del ciclo di vita, come l'avvio di un nuovo notebook Studio Classic. Puoi utilizzare le configurazioni del ciclo di vita per automatizzare la personalizzazione del tuo ambiente Studio Classic. Questa personalizzazione include l'installazione di pacchetti personalizzati, la configurazione delle estensioni dei notebook, il precaricamento di set di dati e la configurazione di repository di codice sorgente.

Le configurazioni del ciclo di vita ti offrono la flessibilità e il controllo necessari per configurare Studio Classic in base alle tue esigenze specifiche. Ad esempio, puoi utilizzare immagini del container personalizzate con script di configurazione del ciclo di vita per modificare l’ambiente. Crea prima di tutto un set minimo di immagini del container di base, quindi installa i pacchetti e le librerie utilizzati più di frequente in tali immagini. Dopo aver completato le immagini, utilizza le configurazioni del ciclo di vita per installare pacchetti aggiuntivi per casi d’uso specifici. Questa procedura offre la flessibilità necessaria per modificare l’ambiente nei vari team di data science e machine learning in base alle loro esigenze specifiche.

Gli utenti possono selezionare solo gli script di configurazione del ciclo di vita a cui hanno accesso. Sebbene sia possibile consentire l’accesso a più script di configurazione del ciclo di vita, puoi anche scegliere di impostare script di configurazione del ciclo di vita predefiniti per le risorse. A seconda della risorsa per cui è impostata la configurazione del ciclo di vita predefinita, l’opzione predefinita viene eseguita automaticamente oppure viene mostrata per prima.

[Per esempi di script di configurazione del ciclo di vita, consulta l'archivio di esempi di Studio Classic Lifecycle Configuration. GitHub ](https://github.com/aws-samples/sagemaker-studio-lifecycle-config-examples) Per un blog sull'implementazione della configurazione del ciclo di vita, consulta Personalizza [Amazon SageMaker Studio Classic usando le configurazioni del ciclo di vita](https://aws.amazon.com/blogs/machine-learning/customize-amazon-sagemaker-studio-using-lifecycle-configurations/).

**Nota**  
Ogni script ha un limite di **16.384 caratteri**.

**Topics**
+ [Crea e associa una configurazione del ciclo di vita con Amazon Studio Classic SageMaker](studio-lcc-create.md)
+ [Imposta le configurazioni predefinite del ciclo di vita per Amazon Studio Classic SageMaker](studio-lcc-defaults.md)
+ [Configurazioni del ciclo di vita di debug in Amazon Studio Classic SageMaker](studio-lcc-debug.md)
+ [Aggiorna e scollega le configurazioni del ciclo di vita in Amazon Studio Classic SageMaker](studio-lcc-delete.md)

# Crea e associa una configurazione del ciclo di vita con Amazon Studio Classic SageMaker
<a name="studio-lcc-create"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Amazon SageMaker AI fornisce applicazioni interattive che abilitano l'interfaccia visiva, la creazione di codice e l'esperienza di esecuzione di Studio Classic. Questa serie mostra come creare una configurazione del ciclo di vita e associarla a un SageMaker dominio AI.

I tipi di applicazione possono essere `JupyterServer` o `KernelGateway`. 
+ **Applicazioni `JupyterServer`:** questo tipo di applicazioni consente l’accesso all’interfaccia visiva di Studio Classic. Ogni utente e spazio condiviso in Studio Classic dispone della propria applicazione. JupyterServer 
+ **Applicazioni `KernelGateway`:** questo tipo di applicazioni consente l’accesso all’ambiente di esecuzione del codice e ai kernel per i notebook e i terminali Studio Classic. Per ulteriori informazioni, consulta [Jupyter Kernel Gateway](https://jupyter-kernel-gateway.readthedocs.io/en/latest/).

Per ulteriori informazioni sull'architettura di Studio Classic e sulle applicazioni Studio Classic, consulta [Usare Amazon SageMaker Studio Classic Notebooks](https://docs.aws.amazon.com/sagemaker/latest/dg/notebooks.html).

**Topics**
+ [Crea una configurazione del ciclo di vita da per AWS CLI Amazon Studio Classic SageMaker](studio-lcc-create-cli.md)
+ [Crea una configurazione del ciclo di vita dalla console SageMaker AI per Amazon Studio Classic SageMaker](studio-lcc-create-console.md)

# Crea una configurazione del ciclo di vita da per AWS CLI Amazon Studio Classic SageMaker
<a name="studio-lcc-create-cli"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse 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 è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

L'argomento seguente mostra come creare una configurazione del ciclo di vita utilizzando AWS CLI per automatizzare la personalizzazione dell'ambiente Studio Classic.

## Prerequisiti
<a name="studio-lcc-create-cli-prerequisites"></a>

Prima di iniziare, completa i seguenti prerequisiti: 
+  AWS CLI Aggiornate il file seguendo la procedura descritta in [Installazione](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled) della versione corrente. AWS CLI 
+ Dal computer locale, esegui `aws configure` e inserisci le tue credenziali AWS . Per informazioni sulle AWS credenziali, consulta [Comprendere e ottenere le AWS credenziali](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 
+ Effettua l'accesso al dominio SageMaker AI seguendo i passaggi indicati. [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md)

## Fase 1: creazione di una configurazione del ciclo di vita
<a name="studio-lcc-create-cli-step1"></a>

La procedura seguente mostra come creare uno script di configurazione del ciclo di vita che stampa `Hello World`.

**Nota**  
Ogni script può contenere un massimo di **16.384 caratteri.**

1. Dal tuo computer locale, crea un file locale denominato `my-script.sh` con il seguente contenuto.

   ```
   #!/bin/bash
   set -eux
   echo 'Hello World!'
   ```

1. Converti il file `my-script.sh` in formato base64. Questo requisito previene gli errori dovuti alla codifica della spaziatura e delle interruzioni di riga.

   ```
   LCC_CONTENT=`openssl base64 -A -in my-script.sh`
   ```

1. Creazione di una configurazione del ciclo di vita da utilizzare con Studio Classic. Il comando seguente crea una configurazione del ciclo di vita che viene eseguita all'avvio di un'applicazione `KernelGateway` associata. 

   ```
   aws sagemaker create-studio-lifecycle-config \
   --region region \
   --studio-lifecycle-config-name my-studio-lcc \
   --studio-lifecycle-config-content $LCC_CONTENT \
   --studio-lifecycle-config-app-type KernelGateway
   ```

   Prendi nota dell'ARN (nome della risorsa Amazon) della configurazione del ciclo di vita appena creata che viene restituito. L’ARN è richiesto per collegare la configurazione del ciclo di vita all'applicazione.

## Fase 2: collegamento della configurazione del ciclo di vita al proprio dominio, profilo utente o spazio condiviso
<a name="studio-lcc-create-cli-step2"></a>

Per collegare la configurazione del ciclo di vita, devi aggiornare `UserSettings` del tuo dominio o profilo utente o `SpaceSettings` per uno spazio condiviso. Gli script di configurazione del ciclo di vita associati a livello di dominio vengono ereditati da tutti gli utenti. Tuttavia, gli script associati a livello di profilo utente sono limitati a un utente specifico, mentre gli script associati a livello di spazio condiviso sono limitati allo spazio condiviso. 

Nell'esempio seguente viene illustrato come creare un nuovo profilo utente con la configurazione del ciclo di vita collegata. Puoi anche creare un nuovo dominio o spazio con una configurazione del ciclo di vita collegata utilizzando rispettivamente i comandi [create-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-domain.html) e [create-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-space.html).

Aggiungi l'ARN della configurazione del ciclo di vita della fase precedente alle impostazioni del tipo di app appropriato. Ad esempio, inseriscilo in `JupyterServerAppSettings` dell'utente. Puoi aggiungere più configurazioni del ciclo di vita contemporaneamente inoltrando un elenco di configurazioni del ciclo di vita. Quando un utente avvia un' JupyterServer applicazione con il AWS CLI, può passare una configurazione del ciclo di vita da utilizzare al posto di quella predefinita. La configurazione del ciclo di vita inoltrata dall'utente deve appartenere all'elenco delle configurazioni del ciclo di vita in `JupyterServerAppSettings`.

```
# Create a new UserProfile
aws sagemaker create-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"JupyterServerAppSettings": {
  "LifecycleConfigArns":
    [lifecycle-configuration-arn-list]
  }
}'
```

Nell'esempio seguente viene illustrato come aggiornare uno spazio condiviso esistente per collegare la configurazione del ciclo di vita. [È inoltre possibile aggiornare un dominio o un profilo utente esistente con una configurazione del ciclo di vita allegata utilizzando il comando update-domain o. [update-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-user-profile.html)](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html) Quando aggiorni l'elenco delle configurazioni del ciclo di vita collegate, devi inoltrare tutte le configurazioni del ciclo di vita come parte dell'elenco. Se una configurazione del ciclo di vita non fa parte di questo elenco, non verrà collegata all'applicazione.

```
aws sagemaker update-space --domain-id domain-id \
--space-name space-name \
--region region \
--space-settings '{
"JupyterServerAppSettings": {
  "LifecycleConfigArns":
    [lifecycle-configuration-arn-list]
  }
}'
```

Per informazioni sull'impostazione di una configurazione del ciclo di vita predefinita per una risorsa, consulta [Imposta le configurazioni predefinite del ciclo di vita per Amazon Studio Classic SageMaker](studio-lcc-defaults.md).

## Fase 3: avvio dell'applicazione con configurazione del ciclo di vita
<a name="studio-lcc-create-cli-step3"></a>

Dopo aver collegato una configurazione del ciclo di vita a un dominio, un profilo utente o uno spazio, l'utente può selezionarla all'avvio di un'applicazione con la AWS CLI. Questa sezione spiega come avviare un'applicazione con una configurazione del ciclo di vita collegata. Per informazioni sulla modifica della configurazione del ciclo di vita predefinita dopo l'avvio di un'applicazione, vedere. JupyterServer [Imposta le configurazioni predefinite del ciclo di vita per Amazon Studio Classic SageMaker](studio-lcc-defaults.md)

Avvia il tipo di applicazione desiderato utilizzando il comando `create-app` e specifica l'ARN della configurazione del ciclo di vita nell'argomento `resource-spec`. 
+ L'esempio seguente mostra come creare un’applicazione `JupyterServer` con una configurazione del ciclo di vita associata. Quando crei il `JupyterServer`, il `app-name` deve essere `default`. La configurazione del ciclo di vita ARN passata come parte del `resource-spec` parametro deve far parte dell'elenco delle configurazioni del ciclo di vita ARNs specificate in `UserSettings` per il dominio o il profilo utente o per uno spazio condiviso. `SpaceSettings`

  ```
  aws sagemaker create-app --domain-id domain-id \
  --region region \
  --user-profile-name user-profile-name \
  --app-type JupyterServer \
  --resource-spec LifecycleConfigArn=lifecycle-configuration-arn \
  --app-name default
  ```
+ L'esempio seguente mostra come creare un’applicazione `KernelGateway` con una configurazione del ciclo di vita associata.

  ```
  aws sagemaker create-app --domain-id domain-id \
  --region region \
  --user-profile-name user-profile-name \
  --app-type KernelGateway \
  --resource-spec LifecycleConfigArn=lifecycle-configuration-arn,SageMakerImageArn=sagemaker-image-arn,InstanceType=instance-type \
  --app-name app-name
  ```

# Crea una configurazione del ciclo di vita dalla console SageMaker AI per Amazon Studio Classic SageMaker
<a name="studio-lcc-create-console"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse 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 è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

L'argomento seguente mostra come creare una configurazione del ciclo di vita dalla console Amazon SageMaker AI per automatizzare la personalizzazione per il tuo ambiente Studio Classic.

## Prerequisiti
<a name="studio-lcc-create-console-prerequisites"></a>

Prima di procedere con questo tutorial, completa i prerequisiti descritti di seguito:
+ Effettua il login su Amazon SageMaker Studio Classic. Per ulteriori informazioni, consulta [Onboard to Amazon SageMaker Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-onboard.html).

## Fase 1: creazione di una nuova configurazione del ciclo di vita
<a name="studio-lcc-create-console-step1"></a>

Puoi creare una configurazione del ciclo di vita inserendo uno script dalla console Amazon SageMaker AI.

**Nota**  
Ogni script può contenere un massimo di **16.384 caratteri.**

La procedura seguente mostra come creare uno script di configurazione del ciclo di vita che stampa `Hello World`.

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel pannello di navigazione sinistro scegli **Configurazioni admin**.

1. In **Configurazioni admin**, scegli **Configurazioni del ciclo di vita**. 

1. Scegli la scheda **Studio**.

1. Scegli **Crea configurazione**.

1. In **Seleziona il tipo di configurazione**, seleziona il tipo di applicazione a cui collegare la configurazione del ciclo di vita. Per ulteriori informazioni sulla scelta dell'applicazione a cui collegare la configurazione del ciclo di vita, consulta [Imposta le configurazioni predefinite del ciclo di vita per Amazon Studio Classic SageMaker](studio-lcc-defaults.md).

1. Scegli **Next (Successivo)**.

1. Nella sezione denominata **Impostazioni di configurazione**, inserisci un nome per la configurazione del ciclo di vita.

1. Nella sezione **Script**, inserisci il seguente contenuto.

   ```
   #!/bin/bash
   set -eux
   echo 'Hello World!'
   ```

1. (Facoltativo) Crea un tag per la configurazione del ciclo di vita.

1. Seleziona **Invia**.

## Fase 2: collegamento della configurazione del ciclo di vita al un dominio o a un profilo utente
<a name="studio-lcc-create-console-step2"></a>

Gli script di configurazione del ciclo di vita associati a livello di dominio vengono ereditati da tutti gli utenti. Tuttavia, gli script associati a livello di profilo utente sono limitati a un utente specifico. 

Puoi collegare più configurazioni del ciclo di vita a un dominio o a un profilo utente per entrambe le JupyterServer applicazioni. KernelGateway 

**Nota**  
Per collegare una configurazione del ciclo di vita a uno spazio condiviso, è necessario utilizzare la AWS CLI. Per ulteriori informazioni, consulta [Crea una configurazione del ciclo di vita da per AWS CLI Amazon Studio Classic SageMaker](studio-lcc-create-cli.md).

Le sezioni seguenti spiegano come collegare una configurazione del ciclo di vita al proprio dominio o profilo utente.

### Collegamento a un dominio
<a name="studio-lcc-create-console-step2-domain"></a>

Di seguito viene illustrato come collegare una configurazione del ciclo di vita al dominio esistente dalla console AI. SageMaker 

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1. Dall’elenco di domini, seleziona il dominio a cui collegare la configurazione del ciclo di vita.

1. Da **Dettagli del dominio**, seleziona la scheda **Ambiente**.

1. In **Configurazioni del ciclo di vita per app Studio personali**, scegli **Collega**.

1. In **Origine**, scegli **Configurazione esistente**.

1. In **Configurazioni del ciclo di vita in Studio**, seleziona la configurazione del ciclo di vita creata nella fase precedente.

1. Seleziona **Collega al dominio**.

### Collegamento al proprio profilo utente
<a name="studio-lcc-create-console-step2-userprofile"></a>

Di seguito viene illustrato come collegare una configurazione del ciclo di vita al proprio profilo utente esistente.

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1. Dall’elenco di domini, seleziona il dominio che contiene il profilo utente a cui collegare la configurazione del ciclo di vita.

1. In **Profili utente**, seleziona il profilo utente.

1. Nella pagina **Dettagli utente** seleziona **Modifica**.

1. Nella barra di navigazione a sinistra, scegli **Impostazioni di Studio**.

1. In **Configurazioni del ciclo di vita collegate all'utente**, scegli **Collega**.

1. In **Origine**, scegli **Configurazione esistente**.

1. In **Configurazioni del ciclo di vita in Studio**, seleziona la configurazione del ciclo di vita creata nella fase precedente.

1. Seleziona **Collega al profilo utente**.

## Fase 3: avvio di un’applicazione con la configurazione del ciclo di vita
<a name="studio-lcc-create-console-step3"></a>

Dopo aver collegato una configurazione del ciclo di vita a un dominio o a un profilo utente, puoi avviare un'applicazione con quella configurazione del ciclo di vita collegata. La scelta della configurazione del ciclo di vita da avviare dipende dal tipo di applicazione.
+ **JupyterServer**: Quando avvia un' JupyterServerapplicazione dalla console, l' SageMaker intelligenza artificiale utilizza sempre la configurazione predefinita del ciclo di vita. Non è possibile utilizzare una configurazione del ciclo di vita diversa quando si avvia dalla console. Per informazioni sulla modifica della configurazione del ciclo di vita predefinita dopo l'avvio di un'applicazione, consulta. JupyterServer [Imposta le configurazioni predefinite del ciclo di vita per Amazon Studio Classic SageMaker](studio-lcc-defaults.md)

  Per selezionare un’altra configurazione del ciclo di vita collegata, devi eseguire l’avvio con AWS CLI. Per ulteriori informazioni sull'avvio di un' JupyterServer applicazione con una configurazione del ciclo di vita associata da, vedere. AWS CLI[Crea una configurazione del ciclo di vita da per AWS CLI Amazon Studio Classic SageMaker](studio-lcc-create-cli.md)
+ **KernelGateway**: È possibile selezionare una qualsiasi delle configurazioni del ciclo di vita allegate all'avvio di un' KernelGateway applicazione utilizzando Studio Classic Launcher.

La procedura seguente descrive come avviare un' KernelGateway applicazione con una configurazione del ciclo di vita collegata dalla console AI. SageMaker 

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Avvia Studio Classic. Per ulteriori informazioni, consulta [Avvia Amazon SageMaker Studio Classic](studio-launch.md).

1. Nell’interfaccia utente di Studio Classic, apri l’utilità di avvio di Studio Classic. Per ulteriori informazioni, consulta [Usa Amazon SageMaker Studio Classic Launcher](studio-launcher.md). 

1. Nell’utilità di avvio di Studio Classic, vai alla sezione **Notebook e risorse di calcolo**. 

1. Fai clic sul tasto **Cambia ambiente**.

1. Nella finestra di dialogo **Cambia ambiente**, usa i menu a discesa per selezionare **immagine**, **kernel**, **tipo di istanza** e **script di avvio**. Se non esiste una configurazione predefinita del ciclo di vita, il valore dello **script di avvio** predefinito è `No script`. Altrimenti, il valore dello **script di avvio** è la configurazione del ciclo di vita predefinita. Dopo aver selezionato una configurazione del ciclo di vita, puoi visualizzare l'intero script.

1. Fai clic su **Seleziona**.

1. Tornando all’utilità di avvio, fai clic su **Crea notebook** per avviare un nuovo kernel del notebook con l'immagine e la configurazione del ciclo di vita selezionate.

## Fase 4: visualizzazione dei log di una configurazione del ciclo di vita
<a name="studio-lcc-create-console-step4"></a>

Puoi visualizzare i log relativi alla configurazione del ciclo di vita dopo averla collegata a un dominio o a un profilo utente. 

1. Innanzitutto, fornisci l'accesso CloudWatch al tuo ruolo AWS Identity and Access Management (IAM). Aggiungi le autorizzazioni di lettura per i seguenti gruppo di log e flusso di log.
   + **Gruppo di log:**`/aws/sagemaker/studio`
   + **Flusso di log:**`domain/user-profile/app-type/app-name/LifecycleConfigOnStart`

    Per informazioni sull'aggiunta di autorizzazioni, consulta [Abilitazione della registrazione da determinati AWS servizi](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html).

1. Da Studio Classic, vai all’icona **Terminali e kernel in esecuzione** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/running-terminals-kernels.png)) per monitorare la configurazione del ciclo di vita.

1. Seleziona un'applicazione dall'elenco delle applicazioni in esecuzione. Le applicazioni con configurazioni del ciclo di vita collegate hanno un'icona indicatore ![\[Code brackets symbol representing programming or markup languages.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/studio-lcc-indicator-icon.png)collegata.

1. Seleziona l'icona indicatore per la tua applicazione. Si aprirà un nuovo pannello su cui verrà visualizzata la configurazione del ciclo di vita.

1. Dal nuovo pannello, seleziona `View logs`. Si aprirà una nuova scheda su cui verranno visualizzati i log.

# Imposta le configurazioni predefinite del ciclo di vita per Amazon Studio Classic SageMaker
<a name="studio-lcc-defaults"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Sebbene sia possibile allegare più script di configurazione del ciclo di vita a una singola risorsa, è possibile impostare solo una configurazione del ciclo di vita predefinita per ciascuna applicazione. JupyterServer KernelGateway Il comportamento della configurazione del ciclo di vita predefinita dipende dal fatto che sia impostata per o app. JupyterServer KernelGateway 
+ **JupyterServer app:** se impostato come script di configurazione del ciclo di vita predefinito per JupyterServer le app, lo script di configurazione del ciclo di vita viene eseguito automaticamente quando l'utente accede a Studio Classic per la prima volta o riavvia Studio Classic. Utilizza questa configurazione predefinita del ciclo di vita per automatizzare le azioni di configurazione una tantum per l'ambiente di sviluppo Studio Classic, come l'installazione di estensioni per notebook o la configurazione di un repository. GitHub Per un esempio di ciò, consulta [Personalizzare Amazon SageMaker Studio utilizzando le configurazioni del ciclo](https://aws.amazon.com/blogs/machine-learning/customize-amazon-sagemaker-studio-using-lifecycle-configurations/) di vita.
+ **KernelGateway app:** se impostato come script di configurazione del ciclo di vita predefinito per KernelGateway le app, la configurazione del ciclo di vita viene selezionata per impostazione predefinita nel launcher di Studio Classic. Gli utenti possono avviare un notebook o un terminale con lo script predefinito selezionato oppure selezionarne uno diverso dall'elenco delle configurazioni del ciclo di vita.

SageMaker L'intelligenza artificiale supporta l'impostazione di una configurazione del ciclo di vita predefinita per le seguenti risorse:
+ Domini
+ Profili utente
+ Spazi condivisi

Sebbene i domini e i profili utente supportino l'impostazione di una configurazione del ciclo di vita predefinita sia dalla console Amazon SageMaker AI che dagli spazi condivisi supportano solo l'impostazione di una configurazione del ciclo di vita predefinita da. AWS Command Line Interface AWS CLI

Puoi impostare una configurazione del ciclo di vita come predefinita quando crei una nuova risorsa o aggiorni una risorsa esistente. I seguenti argomenti mostrano come impostare una configurazione del ciclo di vita predefinita utilizzando la console AI e. SageMaker AWS CLI

## Ereditarietà della configurazione del ciclo di vita
<a name="studio-lcc-defaults-inheritance"></a>

Le configurazioni del ciclo di vita predefinite impostate a livello di *dominio* vengono ereditate da tutti gli utenti e da tutti gli spazi condivisi. Le configurazioni del ciclo di vita predefinite impostate a livello di *utente* e *spazio condiviso* sono limitate a quell'utente o a quello spazio condiviso. Le impostazioni predefinite per utente e spazio hanno la precedenza su quelle impostate a livello di dominio.

Un set di configurazione KernelGateway del ciclo di vita predefinito per un dominio si applica a tutte le KernelGateway applicazioni avviate nel dominio. A meno che l’utente non selezioni una configurazione del ciclo di vita diversa dall’elenco presente nell’utilità di avvio di Studio Classic, viene applicata la configurazione del ciclo di vita predefinita. Lo script predefinito viene eseguito anche se `No Script` è selezionato dall'utente. Per ulteriori informazioni su come selezionare uno script, consulta [Fase 3: avvio di un’applicazione con la configurazione del ciclo di vita](studio-lcc-create-console.md#studio-lcc-create-console-step3).

**Topics**
+ [Ereditarietà della configurazione del ciclo di vita](#studio-lcc-defaults-inheritance)
+ [Imposta i valori predefiniti da per AWS CLI Amazon Studio Classic SageMaker](studio-lcc-defaults-cli.md)
+ [Imposta i valori predefiniti dalla console SageMaker AI per Amazon Studio Classic SageMaker](studio-lcc-defaults-console.md)

# Imposta i valori predefiniti da per AWS CLI Amazon Studio Classic SageMaker
<a name="studio-lcc-defaults-cli"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse 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 è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

È possibile impostare gli script di configurazione del ciclo di vita predefiniti dalle seguenti AWS CLI risorse:
+ Domini
+ Profili utente
+ Spazi condivisi

Le sezioni seguenti spiegano come impostare gli script di configurazione del ciclo di vita predefiniti dalla AWS CLI.

**Topics**
+ [Prerequisiti](#studio-lcc-defaults-cli-prereq)
+ [Impostazione di una configurazione del ciclo di vita predefinita quando si crea una nuova risorsa](#studio-lcc-defaults-cli-new)
+ [Impostazione di una configurazione del ciclo di vita predefinita per una risorsa esistente](#studio-lcc-defaults-cli-existing)

## Prerequisiti
<a name="studio-lcc-defaults-cli-prereq"></a>

Prima di iniziare, completa i seguenti prerequisiti:
+  AWS CLI Aggiornate il file seguendo la procedura descritta in [Installazione della](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled) versione corrente. AWS CLI 
+ Dal computer locale, esegui `aws configure` e inserisci le tue credenziali AWS . Per informazioni sulle AWS credenziali, consulta [Comprendere e ottenere le AWS credenziali](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 
+ Effettua l'accesso al dominio SageMaker AI seguendo i passaggi indicati. [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md)
+ Crea una configurazione del ciclo di vita seguendo le fasi descritte in [Crea e associa una configurazione del ciclo di vita con Amazon Studio Classic SageMaker](studio-lcc-create.md).

## Impostazione di una configurazione del ciclo di vita predefinita quando si crea una nuova risorsa
<a name="studio-lcc-defaults-cli-new"></a>

Per impostare una configurazione del ciclo di vita predefinita durante la creazione di un nuovo dominio, profilo utente o spazio, passa l'ARN della configurazione del ciclo di vita precedentemente creata come parte di uno dei seguenti comandi: AWS CLI 
+ [create-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-user-profile.html)
+ [create-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/opensearch/create-domain.html)
+ [create-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-space.html)

È necessario passare l'ARN di configurazione del ciclo di vita per i seguenti valori nelle impostazioni o predefinite: KernelGateway JupyterServer 
+ `DefaultResourceSpec`:`LifecycleConfigArn`: specifica la configurazione del ciclo di vita predefinita per il tipo di applicazione.
+ `LifecycleConfigArns`: è l'elenco di tutte le configurazioni del ciclo di vita collegate al tipo di applicazione. Anche la configurazione del ciclo di vita predefinita deve far parte di questo elenco.

Ad esempio, la seguente chiamata API crea un nuovo profilo utente con una configurazione del ciclo di vita predefinita.

```
aws sagemaker create-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"KernelGatewayAppSettings": {
    "DefaultResourceSpec": { 
            "InstanceType": "ml.t3.medium",
            "LifecycleConfigArn": "lifecycle-configuration-arn"
         },
    "LifecycleConfigArns": [lifecycle-configuration-arn-list]
  }
}'
```

## Impostazione di una configurazione del ciclo di vita predefinita per una risorsa esistente
<a name="studio-lcc-defaults-cli-existing"></a>

Per impostare o aggiornare la configurazione del ciclo di vita predefinita per una risorsa esistente, passa l'ARN della configurazione del ciclo di vita precedentemente creata come parte di uno dei seguenti comandi: AWS CLI 
+ [update-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-user-profile.html)
+ [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html)
+ [update-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-space.html)

È necessario passare l'ARN di configurazione del ciclo di vita per i seguenti valori nelle impostazioni o predefinite: KernelGateway JupyterServer 
+ `DefaultResourceSpec`:`LifecycleConfigArn`: specifica la configurazione del ciclo di vita predefinita per il tipo di applicazione.
+ `LifecycleConfigArns`: è l'elenco di tutte le configurazioni del ciclo di vita collegate al tipo di applicazione. Anche la configurazione del ciclo di vita predefinita deve far parte di questo elenco.

Ad esempio, la seguente chiamata API aggiorna un nuovo profilo utente con una configurazione del ciclo di vita predefinita.

```
aws sagemaker update-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"KernelGatewayAppSettings": {
    "DefaultResourceSpec": {
            "InstanceType": "ml.t3.medium",
            "LifecycleConfigArn": "lifecycle-configuration-arn"
         },
    "LifecycleConfigArns": [lifecycle-configuration-arn-list]
  }
}'
```

La seguente chiamata API aggiorna un dominio per impostare una nuova configurazione del ciclo di vita predefinita.

```
aws sagemaker update-domain --domain-id domain-id \
--region region \
--default-user-settings '{
"JupyterServerAppSettings": {
    "DefaultResourceSpec": {
            "InstanceType": "system",
            "LifecycleConfigArn": "lifecycle-configuration-arn"
         },
    "LifecycleConfigArns": [lifecycle-configuration-arn-list]
  }
}'
```

# Imposta i valori predefiniti dalla console SageMaker AI per Amazon Studio Classic SageMaker
<a name="studio-lcc-defaults-console"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse 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 è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Puoi impostare script di configurazione del ciclo di vita predefiniti dalla console SageMaker AI per le seguenti risorse.
+ Domini
+ Profili utente

Non è possibile impostare script di configurazione del ciclo di vita predefiniti per gli spazi condivisi dalla console AI. SageMaker Per informazioni su come impostare i valori predefiniti per gli spazi condivisi, consulta [Imposta i valori predefiniti da per AWS CLI Amazon Studio Classic SageMaker](studio-lcc-defaults-cli.md).

Le sezioni seguenti descrivono come impostare gli script di configurazione del ciclo di vita predefiniti dalla console AI. SageMaker 

**Topics**
+ [Prerequisiti](#studio-lcc-defaults-cli-prerequisites)
+ [Impostazione di una configurazione del ciclo di vita predefinita per un dominio](#studio-lcc-defaults-cli-domain)
+ [Impostazione di una configurazione del ciclo di vita predefinita per un profilo utente](#studio-lcc-defaults-cli-user-profile)

## Prerequisiti
<a name="studio-lcc-defaults-cli-prerequisites"></a>

Prima di iniziare, completa i seguenti prerequisiti:
+ Effettua l'accesso al dominio SageMaker AI seguendo i passaggi indicati. [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md)
+ Crea una configurazione del ciclo di vita seguendo le fasi descritte in [Crea e associa una configurazione del ciclo di vita con Amazon Studio Classic SageMaker](studio-lcc-create.md).

## Impostazione di una configurazione del ciclo di vita predefinita per un dominio
<a name="studio-lcc-defaults-cli-domain"></a>

La procedura seguente mostra come impostare una configurazione del ciclo di vita predefinita per un dominio dalla SageMaker console AI.

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Dall'elenco dei domini, seleziona il nome del dominio per cui impostare la configurazione del ciclo di vita.

1. Da **Dettagli del dominio**, seleziona la scheda **Ambiente**.

1. In **Lifecycle configurations for personal Studio apps**, seleziona la configurazione del ciclo di vita che desideri impostare come predefinita per il dominio. Puoi impostare impostazioni predefinite JupyterServer e KernelGateway applicazioni distinte.

1. Scegli **Imposta come predefinito**. Si apre una finestra pop-up che elenca le impostazioni predefinite correnti per e le applicazioni. JupyterServer KernelGateway

1. Scegli **Imposta come predefinito** per impostare la configurazione del ciclo di vita come predefinita per il rispettivo tipo di applicazione.

## Impostazione di una configurazione del ciclo di vita predefinita per un profilo utente
<a name="studio-lcc-defaults-cli-user-profile"></a>

La procedura seguente mostra come impostare una configurazione del ciclo di vita predefinita per un profilo utente dalla console AI. SageMaker 

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Dall'elenco dei domini, seleziona il nome del dominio che contiene il profilo utente per cui desideri impostare la configurazione del ciclo di vita predefinita.

1. Da **Dettagli del dominio**, seleziona la scheda **Profilo utente**.

1. Seleziona il nome del profilo utente per cui impostare la configurazione del ciclo di vita predefinita. Si aprirà una pagina denominata **Dettagli utente**.

1. Nella pagina **Dettagli utente** seleziona **Modifica**. Si aprirà una pagina denominata **Modifica profilo utente**.

1. Dalla pagina **Modifica profilo utente**, scegli **Impostazioni Studio fase 2**.

1. In **Lifecycle configurations attached to user**, seleziona la configurazione del ciclo di vita che desideri impostare come predefinita per il profilo utente. Puoi impostare impostazioni predefinite JupyterServer e KernelGateway applicazioni distinte.

1. Scegli **Imposta come predefinito**. Si apre una finestra pop-up che elenca le impostazioni predefinite correnti per e le applicazioni. JupyterServer KernelGateway

1. Scegli **Imposta come predefinito** per impostare la configurazione del ciclo di vita come predefinita per il rispettivo tipo di applicazione.

# Configurazioni del ciclo di vita di debug in Amazon Studio Classic SageMaker
<a name="studio-lcc-debug"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

I seguenti contenuti spiegano come recuperare le informazioni sulle configurazioni del ciclo di vita e come eseguirne il debug.

**Topics**
+ [Verifica il processo di configurazione del ciclo di vita da Logs CloudWatch](#studio-lcc-debug-logs)
+ [JupyterServer errore dell'app](#studio-lcc-debug-jupyterserver)
+ [KernelGateway errore dell'app](#studio-lcc-debug-kernel)
+ [Timeout della configurazione del ciclo di vita](#studio-lcc-debug-timeout)

## Verifica il processo di configurazione del ciclo di vita da Logs CloudWatch
<a name="studio-lcc-debug-logs"></a>

Le configurazioni del ciclo di vita eseguono solo log `STDOUT` e `STDERR`.

`STDOUT` è il formato di output predefinito per gli script bash. Puoi scrivere in `STDERR` aggiungendo `>&2` alla fine di un comando bash. Ad esempio, `echo 'hello'>&2`. 

I log per le configurazioni del ciclo di vita vengono pubblicati su Amazon che utilizza Amazon. Account AWS CloudWatch Questi log possono essere trovati nel flusso di `/aws/sagemaker/studio` log della console. CloudWatch 

1. Apri la CloudWatch console all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Scegli **Log** dal lato sinistro. Dal menu a discesa, seleziona **Gruppi di log**.

1. Nella pagina **Gruppi di log**, cerca `aws/sagemaker/studio`. 

1. Seleziona il gruppo di log .

1. Nella pagina **Dettagli gruppo di log**, scegli la scheda **Flussi di log**.

1. Per trovare i log di un'app specifica, cerca nei flussi di log utilizzando il seguente formato:

   ```
   domain-id/space-name/app-type/default/LifecycleConfigOnStart
   ```

   Ad esempio, per trovare i log della configurazione del ciclo di vita per il dominio `d-m85lcu8vbqmz`, il nome dello spazio `i-sonic-js` e il tipo di applicazione `JupyterLab`, utilizza la seguente stringa di ricerca:

   ```
   d-m85lcu8vbqmz/i-sonic-js/JupyterLab/default/LifecycleConfigOnStart
   ```

## JupyterServer errore dell'app
<a name="studio-lcc-debug-jupyterserver"></a>

Se JupyterServer l'app si blocca a causa di un problema con la configurazione del ciclo di vita allegata, Studio Classic visualizza il seguente messaggio di errore nella schermata di avvio di Studio Classic. 

```
Failed to create SageMaker Studio due to start-up script failure
```

Seleziona il `View script logs` link per visualizzare i CloudWatch log dell'app. JupyterServer 

Nel caso in cui la configurazione del ciclo di vita difettosa sia specificata in `DefaultResourceSpec` del dominio, del profilo utente o dello spazio condiviso, Studio Classic continua a utilizzare la configurazione del ciclo di vita anche dopo il riavvio di Studio Classic. 

Per risolvere questo errore, segui le fasi descritte in [Imposta le configurazioni predefinite del ciclo di vita per Amazon Studio Classic SageMaker](studio-lcc-defaults.md) per rimuovere lo script di configurazione del ciclo di vita da `DefaultResourceSpec` o imposta un altro script come predefinito. Quindi avvia una nuova JupyterServer app.

## KernelGateway errore dell'app
<a name="studio-lcc-debug-kernel"></a>

Se KernelGateway l'app si blocca a causa di un problema con la configurazione del ciclo di vita allegata, Studio Classic visualizza il messaggio di errore nel notebook Studio Classic. 

Scegli `View script logs` di visualizzare i CloudWatch log della tua app. KernelGateway

In questo caso, la configurazione del ciclo di vita viene specificata nell’utilità di avvio di Studio Classic all’avvio di un nuovo notebook Studio Classic. 

Per risolvere questo errore, utilizza l’utilità di avvio di Studio Classic per selezionare un’altra configurazione del ciclo di vita o seleziona `No script`.

**Nota**  
La configurazione KernelGateway del ciclo di vita predefinita specificata in `DefaultResourceSpec` si applica a tutte le KernelGateway immagini nel dominio, nel profilo utente o nello spazio condiviso, a meno che l'utente non selezioni uno script diverso dall'elenco presentato nel programma di avvio di Studio Classic. Lo script predefinito viene eseguito anche se `No Script` è selezionato dall'utente. Per ulteriori informazioni su come selezionare uno script, consulta [Fase 3: avvio di un’applicazione con la configurazione del ciclo di vita](studio-lcc-create-console.md#studio-lcc-create-console-step3).

## Timeout della configurazione del ciclo di vita
<a name="studio-lcc-debug-timeout"></a>

Il limite di timeout della configurazione del ciclo di vita è di 5 minuti. Se l’esecuzione di uno script di configurazione del ciclo di vita impiega più di cinque minuti, Studio Classic genera un errore.

Per risolvere questo errore, assicurati che lo script di configurazione del ciclo di vita venga completato in meno di 5 minuti. 

Per ridurre il tempo di esecuzione degli script, prova a:
+ Eliminare le fasi non necessarie. Ad esempio, limita gli ambienti conda in cui installare pacchetti di grandi dimensioni.
+ Esegui le attività in processi paralleli.
+ Utilizza il comando `nohup` nel tuo script per assicurarti che i segnali di arresto vengano ignorati e non interrompano l'esecuzione dello script.

# Aggiorna e scollega le configurazioni del ciclo di vita in Amazon Studio Classic SageMaker
<a name="studio-lcc-delete"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Uno script di configurazione del ciclo di vita non può essere modificato dopo che è stato creato. Per aggiornare lo script, devi creare un nuovo script di configurazione del ciclo di vita e collegarlo al rispettivo dominio, profilo utente o spazio condiviso. Per ulteriori informazioni su come creare e collegare la configurazione del ciclo di vita, consulta [Crea e associa una configurazione del ciclo di vita con Amazon Studio Classic SageMaker](studio-lcc-create.md).

L'argomento seguente mostra come scollegare una configurazione del ciclo di vita utilizzando la console e AI. AWS CLI SageMaker 

**Topics**
+ [Prerequisiti](#studio-lcc-delete-pre)
+ [Staccare utilizzando il AWS CLI](#studio-lcc-delete-cli)

## Prerequisiti
<a name="studio-lcc-delete-pre"></a>

Prima di scollegare una configurazione del ciclo di vita, completa i seguenti prerequisiti.
+ Per scollegare correttamente una configurazione del ciclo di vita, nessuna applicazione in esecuzione deve utilizzare la configurazione del ciclo di vita. Come prima cosa, devi chiudere le applicazioni in esecuzione come illustrato in [Chiudi e aggiorna Amazon SageMaker Studio Classic e le app](studio-tasks-update.md).

## Staccare utilizzando il AWS CLI
<a name="studio-lcc-delete-cli"></a>

Per scollegare una configurazione del ciclo di vita utilizzando il AWS CLI, rimuovete la configurazione del ciclo di vita desiderata dall'elenco delle configurazioni del ciclo di vita allegate alla risorsa e passate l'elenco come parte del rispettivo comando:
+ [update-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-user-profile.html)
+ [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html)
+ [update-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-space.html)

Ad esempio, il comando seguente rimuove tutte le configurazioni del ciclo di vita collegate al dominio. KernelGateways 

```
aws sagemaker update-domain --domain-id domain-id \
--region region \
--default-user-settings '{
"KernelGatewayAppSettings": {
  "LifecycleConfigArns":
    []
  }
}'
```

# Allega repository Git consigliati ad Amazon SageMaker Studio Classic
<a name="studio-git-attach"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Amazon SageMaker Studio Classic offre un'estensione Git che ti consente di inserire l'URL di un repository Git (repo), clonarlo nel tuo ambiente, inviare modifiche e visualizzare la cronologia dei commit. Oltre a questa estensione Git, puoi anche allegare un repository Git consigliato URLs a livello di dominio Amazon SageMaker AI o profilo utente. Quindi, puoi selezionare l’URL del repository dall’elenco dei suggerimenti e clonarlo nel tuo ambiente utilizzando l’estensione Git in Studio Classic. 

I seguenti argomenti mostrano come collegare il repository Git URLs a un dominio o a un profilo utente dalla AWS CLI console SageMaker AI. Imparerai anche come scollegare questi repository. URLs

**Topics**
+ [Collega un repository Git da AWS CLI per Amazon SageMaker Studio Classic](studio-git-attach-cli.md)
+ [Collega un repository Git dalla console SageMaker AI per Amazon SageMaker Studio Classic](studio-git-attach-console.md)
+ [Scollegare i repository Git da Amazon Studio Classic SageMaker](studio-git-detach.md)

# Collega un repository Git da AWS CLI per Amazon SageMaker Studio Classic
<a name="studio-git-attach-cli"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

L'argomento seguente mostra come allegare l'URL di un repository Git utilizzando AWS CLI, in modo che Amazon SageMaker Studio Classic lo suggerisca automaticamente per la clonazione. Dopo aver collegato l'URL repository Git, puoi clonarlo seguendo le fasi descritte in [Clona un repository Git in Amazon Studio Classic SageMaker](studio-tasks-git.md).

## Prerequisiti
<a name="studio-git-attach-cli-prerequisites"></a>

Prima di iniziare, completa i seguenti prerequisiti: 
+ Aggiorna il AWS CLI seguendo i passaggi descritti in [Installazione della versione AWS CLI corrente](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled).
+ Dal computer locale, esegui `aws configure` e inserisci le tue credenziali AWS . Per informazioni sulle AWS credenziali, consulta [Comprendere e ottenere le AWS](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html) credenziali. 
+ Effettua l'onboard nel dominio Amazon SageMaker AI. Per ulteriori informazioni, consulta [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md).

## Collegamento del repository Git a un dominio o a un profilo utente
<a name="studio-git-attach-cli-attach"></a>

I repository Git URLs associati a livello di dominio vengono ereditati da tutti gli utenti. Tuttavia, i repository URLs Git associati a livello di profilo utente sono riservati a un utente specifico. Puoi allegare più repository Git URLs a un dominio o a un profilo utente passando un elenco di repository URLs.

Le sezioni seguenti mostrano come collegare un URL dei repository Git al dominio e al profilo utente.

### Collegamento a un dominio
<a name="studio-git-attach-cli-attach-domain"></a>

Il comando seguente collega un URL dei repository Git a un dominio esistente.

```
aws sagemaker update-domain --region region --domain-id domain-id \
    --default-user-settings JupyterServerAppSettings={CodeRepositories=[{RepositoryUrl="repository"}]}
```

### Collegamento a un profilo utente
<a name="studio-git-attach-cli-attach-userprofile"></a>

L'esempio seguente mostra come collegare un URL repository Git a un profilo utente esistente.

```
aws sagemaker update-user-profile --domain-id domain-id --user-profile-name user-name\
    --user-settings JupyterServerAppSettings={CodeRepositories=[{RepositoryUrl="repository"}]}
```

# Collega un repository Git dalla console SageMaker AI per Amazon SageMaker Studio Classic
<a name="studio-git-attach-console"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

L'argomento seguente mostra come associare un URL di repository Git dalla console Amazon SageMaker AI per clonarlo nel tuo ambiente Studio Classic. Dopo aver associato l'URL repository Git, puoi clonarlo seguendo le fasi descritte in [Clona un repository Git in Amazon Studio Classic SageMaker](studio-tasks-git.md).

## Prerequisiti
<a name="studio-git-attach-console-prerequisites"></a>

Prima di iniziare questo tutorial, devi effettuare l'onboarding del dominio Amazon SageMaker AI. Per ulteriori informazioni, consulta [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md).

## Collegamento del repository Git a un dominio o a un profilo utente
<a name="studio-git-attach-console-attach"></a>

I repository Git URLs associati a livello di dominio vengono ereditati da tutti gli utenti. Tuttavia, gli URL repository Git associati a livello di profilo utente sono limitati a un utente specifico. 

Le sezioni seguenti mostrano come collegare un URL dei repository Git a un dominio e a un profilo utente.

### Collegamento a un dominio
<a name="studio-git-attach-console-attach-domain"></a>

**Per collegare un URL dei repository Git a un dominio esistente**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1. Seleziona il dominio a cui collegare il repository Git.

1. Nella pagina **Dettagli del dominio**, seleziona la scheda **Ambiente**.

1. Nella scheda **Suggested code repositories for the domain**, scegli **Collega**.

1. In **Origine**, inserisci l'URL repository Git.

1. Seleziona **Collega al dominio**.

### Collegamento a un profilo utente
<a name="studio-git-attach-console-attach-userprofile"></a>

L'esempio seguente mostra come collegare un URL repository Git a un profilo utente esistente.

**Per collegare un URL repository Git a un profilo utente**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1. Seleziona il dominio che include il profilo utente a cui collegare il repository Git.

1. Nella pagina **Dettagli del dominio**, seleziona la scheda **Profili utente**.

1. Seleziona il profilo utente a cui collegare l'URL repository Git.

1. Nella pagina **Dettagli utente**, scegli **Modifica**.

1. Nella pagina **Impostazioni di Studio**, scegli **Collega** dalla sezione **Suggested code repositories for the user**.

1. In **Origine**, inserisci l'URL repository Git.

1. Scegli **Collega all'utente**.

# Scollegare i repository Git da Amazon Studio Classic SageMaker
<a name="studio-git-detach"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Questa guida mostra come scollegare l'archivio Git URLs da un dominio o profilo utente Amazon SageMaker AI utilizzando la console AWS CLI Amazon SageMaker AI.

**Topics**
+ [Stacca un repository Git usando il AWS CLI](#studio-git-detach-cli)
+ [Scollega il repository Git usando la SageMaker console AI](#studio-git-detach-console)

## Stacca un repository Git usando il AWS CLI
<a name="studio-git-detach-cli"></a>

Per scollegare tutti i repository Git URLs da un dominio o da un profilo utente, devi passare un elenco vuoto di repository di codice. Questo elenco viene passato come parte del parametro `JupyterServerAppSettings` in un comando `update-domain` o `update-user-profile`. Per scollegare solo un URL repository Git, passa l'elenco dei repository di codice senza l'URL repository Git desiderato. Questa sezione mostra come scollegare tutti i repository Git URLs dal tuo dominio o profilo utente usando AWS Command Line Interface ()AWS CLI.

### Scollegamento da un dominio
<a name="studio-git-detach-cli-domain"></a>

Il comando seguente scollega tutti i repository Git URLs da un dominio.

```
aws sagemaker update-domain --region region --domain-name domain-name \
    --domain-settings JupyterServerAppSettings={CodeRepositories=[]}
```

### Scollegamento da un profilo utente
<a name="studio-git-detach-cli-userprofile"></a>

Il comando seguente scollega tutti i repository Git URLs da un profilo utente.

```
aws sagemaker update-user-profile --domain-name domain-name --user-profile-name user-name\
    --user-settings JupyterServerAppSettings={CodeRepositories=[]}
```

## Scollega il repository Git usando la SageMaker console AI
<a name="studio-git-detach-console"></a>

Le seguenti sezioni mostrano come scollegare un URL del repository Git da un dominio o da un profilo utente utilizzando la console SageMaker AI.

### Scollegamento da un dominio
<a name="studio-git-detach-console-domain"></a>

Utilizza le fasi seguenti per scollegare un URL dei repository Git da un dominio esistente.

**Per scollegare un URL dei repository Git da un dominio esistente**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1. Seleziona il dominio con l’URL dei repository Git che desideri scollegare.

1. Nella pagina **Dettagli del dominio**, seleziona la scheda **Ambiente**.

1. Nella scheda **Repository di codice suggeriti per il dominio**, seleziona l'URL repository Git da scollegare.

1. Seleziona **Scollega**.

1. Nella nuova finestra, scegli **Scollega**.

### Scollegamento da un profilo utente
<a name="studio-git-detach-console-userprofile"></a>

Utilizza le fasi seguenti per scollegare un URL repository Git da un profilo utente.

**Per scollegare un URL repository Git da un profilo utente**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1. Seleziona il dominio che include il profilo utente con l’URL dei repository Git che desideri scollegare.

1. Nella pagina **Dettagli del dominio**, seleziona la scheda **Profili utente**.

1. Seleziona il profilo utente con l'URL repository Git che desideri scollegare.

1. Nella pagina **Dettagli utente**, scegli **Modifica**.

1. Nella pagina **Impostazioni di Studio**, seleziona l'URL repository Git da scollegare dalla scheda **Repository di codice suggeriti per l’utente**.

1. Seleziona **Scollega**.

1. Nella nuova finestra, scegli **Scollega**.

# Esegui attività comuni in Amazon SageMaker Studio Classic
<a name="studio-tasks"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Le seguenti sezioni descrivono come eseguire attività comuni in Amazon SageMaker Studio Classic. Per una panoramica dell’interfaccia di Studio Classic, consulta [Panoramica dell'interfaccia utente di Amazon SageMaker Studio Classic](studio-ui.md).

**Topics**
+ [Caricare file su Amazon SageMaker Studio Classic](studio-tasks-files.md)
+ [Clona un repository Git in Amazon Studio Classic SageMaker](studio-tasks-git.md)
+ [Interrompi un corso di formazione in Amazon SageMaker Studio Classic](studio-tasks-stop-training-job.md)
+ [Utilizzo TensorBoard in Amazon SageMaker Studio Classic](studio-tensorboard.md)
+ [Usa Amazon Q Developer con Amazon SageMaker Studio Classic](sm-q.md)
+ [Gestisci il tuo volume di storage Amazon EFS in Amazon SageMaker Studio Classic](studio-tasks-manage-storage.md)
+ [Fornisci feedback su Amazon SageMaker Studio Classic](studio-tasks-provide-feedback.md)
+ [Chiudi e aggiorna Amazon SageMaker Studio Classic e le app](studio-tasks-update.md)

# Caricare file su Amazon SageMaker Studio Classic
<a name="studio-tasks-files"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Quando effettui l'onboarding su Amazon SageMaker Studio Classic, viene creata per te una home directory nel volume Amazon Elastic File System (Amazon EFS) creato per il tuo team. Studio Classic può aprire solo i file che sono stati caricati nella tua directory. Il browser di file di Studio Classic esegue la mappatura alla home directory.

**Nota**  
Studio Classic non supporta il caricamento di cartelle. Sebbene sia possibile caricare solo singoli file, puoi caricare più file contemporaneamente.

**Per caricare i file nella home directory**

1. Nella barra laterale sinistra, selezionare l'icona **File Browser (Browser di file)** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/folder.png)).

1. Nel browser di file, scegli l’icona **Carica file** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/File_upload_squid.png)).

1. Seleziona i file da caricare, quindi scegli **Apri**.

1. Fai doppio clic su un file per aprirlo in una nuova scheda in Studio Classic.

# Clona un repository Git in Amazon Studio Classic SageMaker
<a name="studio-tasks-git"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Amazon SageMaker Studio Classic può connettersi solo a un repository Git locale (repo). Ciò significa che devi clonare il repository Git dall’interno di Studio Classic per accedere ai file nel repository. Studio Classic offre un’estensione Git che ti consente di inserire l’URL di un repository Git, clonarlo nel tuo ambiente, apportare modifiche e visualizzare la cronologia dei commit. Se il repository è privato e richiede credenziali per l'accesso, ti viene richiesto di inserire le credenziali utente. Ciò include il nome utente e il token di accesso personale. Per ulteriori informazioni sui token di accesso personali, consulta [Managing your personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens).

Gli amministratori possono anche allegare il repository Git consigliato a URLs livello di dominio Amazon SageMaker AI o profilo utente. Gli utenti possono quindi selezionare l’URL del repository dall’elenco di suggerimenti e clonarlo in Studio Classic. Per ulteriori informazioni sul collegamento di repository suggeriti, consulta [Allega repository Git consigliati ad Amazon SageMaker Studio Classic](studio-git-attach.md).

La procedura seguente mostra come clonare un GitHub repository da Studio Classic. 

**Per clonare il repository**

1. Nella barra laterale sinistra, scegliere l'icona **Git** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/git.png)).

1. Scegli **Clona un repository**. Si apre una nuova finestra.

1. Nella finestra **Clona un repository Git**, inserisci l'URL nel seguente formato per il repository Git che desideri clonare o seleziona un repository dall'elenco di **Repository suggeriti**.

   ```
   https://github.com/path-to-git-repo/repo.git
   ```

1. Se hai inserito manualmente l'URL del repository Git, seleziona **Clone "*git-url*"** dal menu a discesa.

1. In **Directory del progetto in cui clonare**, inserisci il percorso della directory locale in cui vuoi clonare il repository Git. Se questo valore viene lasciato vuoto, Studio Classic clona il repository nella directory principale. JupyterLab

1. Seleziona **Clona**. Si apre una nuova finestra di terminale.

1. Se il repository richiede credenziali, ti viene richiesto di inserire il tuo nome utente e il token di accesso personale. Non si accettano password, pertanto devi utilizzare un token di accesso personale. Per ulteriori informazioni sui token di accesso personali, consulta [Managing your personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens).

1. Attendi la fine del download. Dopo la clonazione del repository, si apre il **Browser di file** per visualizzare il repository clonato.

1. Fare doppio clic sul repository per aprirlo.

1. Scegli l'icona **Git** per visualizzare l'interfaccia utente di Git che ora tiene traccia del repository.

1. Per tenere traccia di un repository diverso, apri il repository nel browser di file e poi scegli l'icona **Git**.

# Interrompi un corso di formazione in Amazon SageMaker Studio Classic
<a name="studio-tasks-stop-training-job"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Puoi interrompere un processo di formazione con l'interfaccia utente di Amazon SageMaker Studio Classic. Quando interrompi un processo di addestramento, il suo stato cambia in `Stopping` e la fatturazione cessa. Un algoritmo può ritardare la fine per salvare gli artefatti del modello dopo i quali lo stato del lavoro cambia in `Stopped`. Per ulteriori informazioni, consulta il metodo [stop\$1training\$1job](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.stop_training_job) in AWS SDK per Python (Boto3).

**Per interrompere un processo di addestramento**

1. Seguire la procedura [Visualizzare esperimenti ed esecuzioni](experiments-view-compare.md) su questa pagina fino ad aprire la scheda **Descrivi componente di prova** .

1. Nella parte in alto a destra della scheda, scegliere **Interrompi processo di addestramento**. Lo **stato** in alto a sinistra della scheda cambia in **Interrotto**.

1. Per visualizzare il tempo di addestramento e il tempo di fatturazione, scegli **Impostazioni AWS **.

# Utilizzo TensorBoard in Amazon SageMaker Studio Classic
<a name="studio-tensorboard"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

 Il seguente documento descrive come installare ed eseguire TensorBoard Amazon SageMaker Studio Classic. 

**Nota**  
Questa guida mostra come aprire l' TensorBoard applicazione tramite un server notebook SageMaker Studio Classic di un profilo utente di un dominio SageMaker AI individuale. Per un' TensorBoard esperienza più completa integrata con SageMaker Training e le funzionalità di controllo degli accessi del dominio SageMaker AI, consulta[TensorBoard in Amazon SageMaker AI](tensorboard-on-sagemaker.md).

## Prerequisiti
<a name="studio-tensorboard-prereq"></a>

Questo tutorial richiede un dominio SageMaker AI. Per ulteriori informazioni, consulta [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md)

## Configurazione di `TensorBoardCallback`
<a name="studio-tensorboard-setup"></a>

1. Avvia Studio Classic e apri l’utilità di avvio. Per ulteriori informazioni, consulta [Usa Amazon SageMaker Studio Classic Launcher](studio-launcher.md)

1. In Amazon SageMaker Studio Classic Launcher, sotto`Notebooks and compute resources`, scegli il pulsante **Cambia ambiente**.

1. Nella finestra di dialogo **Cambia ambiente**, utilizza i menu a discesa per selezionare l’**immagine** `TensorFlow 2.6 Python 3.8 CPU Optimized` di Studio Classic.

1. Tornando all'utilità di avvio, fai clic sul riquadro **Crea notebook**. Studio Classic avvia e apre il notebook in una nuova scheda.

1. Esegui questo codice dall'interno delle celle del tuo notebook.

1. Importa i pacchetti richiesti. 

   ```
   import os
   import datetime
   import tensorflow as tf
   ```

1. Crea un modello Keras.

   ```
   mnist = tf.keras.datasets.mnist
   
   (x_train, y_train),(x_test, y_test) = mnist.load_data()
   x_train, x_test = x_train / 255.0, x_test / 255.0
   
   def create_model():
     return tf.keras.models.Sequential([
       tf.keras.layers.Flatten(input_shape=(28, 28)),
       tf.keras.layers.Dense(512, activation='relu'),
       tf.keras.layers.Dropout(0.2),
       tf.keras.layers.Dense(10, activation='softmax')
     ])
   ```

1. Crea una directory per i tuoi log TensorBoard 

   ```
   LOG_DIR = os.path.join(os.getcwd(), "logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S"))
   ```

1. Esegui l'allenamento con TensorBoard.

   ```
   model = create_model()
   model.compile(optimizer='adam',
                 loss='sparse_categorical_crossentropy',
                 metrics=['accuracy'])
                 
                 
   tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=LOG_DIR, histogram_freq=1)
   
   model.fit(x=x_train,
             y=y_train,
             epochs=5,
             validation_data=(x_test, y_test),
             callbacks=[tensorboard_callback])
   ```

1. Genera il percorso EFS per TensorBoard i log. Utilizza questo percorso per configurare i log dal terminale.

   ```
   EFS_PATH_LOG_DIR = "/".join(LOG_DIR.strip("/").split('/')[1:-1])
   print (EFS_PATH_LOG_DIR)
   ```

   Recupera il valore `EFS_PATH_LOG_DIR`. Ti servirà nella sezione di TensorBoard installazione.

## Installa TensorBoard
<a name="studio-tensorboard-install"></a>

1. Fai clic sul `Amazon SageMaker Studio Classic` pulsante nell'angolo in alto a sinistra di Studio Classic per aprire Amazon SageMaker Studio Classic Launcher. Questa utilità di avvio deve essere aperta dalla directory root. Per ulteriori informazioni, consulta [Usa Amazon SageMaker Studio Classic Launcher](studio-launcher.md)

1. Nell'utilità di avvio, in `Utilities and files`, fai clic su `System terminal`. 

1. Dal terminale, esegui i comandi seguenti: Copia `EFS_PATH_LOG_DIR` dal notebook Jupyter. Devi eseguirlo dalla directory root di `/home/sagemaker-user`.

   ```
   pip install tensorboard
   tensorboard --logdir <EFS_PATH_LOG_DIR>
   ```

## Avvia TensorBoard
<a name="studio-tensorboard-launch"></a>

1. Per avviare TensorBoard, copia l'URL di Studio Classic e `lab?` sostituiscilo con il `proxy/6006/` seguente. Devi includere il carattere `/` finale.

   ```
   https://<YOUR_URL>.studio.region.sagemaker.aws/jupyter/default/proxy/6006/
   ```

1. Vai all'URL per esaminare i risultati. 

# Usa Amazon Q Developer con Amazon SageMaker Studio Classic
<a name="sm-q"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Amazon SageMaker Studio Classic è un ambiente di apprendimento automatico integrato in cui puoi creare, addestrare, distribuire e analizzare i tuoi modelli nella stessa applicazione. Puoi generare consigli sul codice e suggerire miglioramenti relativi ai problemi di codice utilizzando Amazon Q Developer con Amazon SageMaker AI.

Amazon Q Developer è un assistente conversazionale generativo basato sull'intelligenza artificiale (AI) che può aiutarti a comprendere, creare, estendere e utilizzare le applicazioni. AWS Nel contesto di un ambiente di AWS codifica integrato, Amazon Q può generare consigli sul codice degli sviluppatori e sui loro commenti in linguaggio naturale. 

Amazon Q offre il supporto massimo per Java, Python,, C\$1, Go JavaScript TypeScript, PHP, Rust, Kotlin e SQL, oltre ai linguaggi Infrastructure as Code (IaC) JSON (), YAML (), HCL (Terraform CloudFormation) e CDK (CloudFormation Typescript, Python). Supporta anche la generazione di codice per Ruby, C\$1\$1, C, Shell e Scala. Per esempi di come Amazon Q si integra con Amazon SageMaker AI e visualizza suggerimenti di codice nell'IDE Amazon SageMaker Studio Classic, consulta [Code Examples](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/inline-suggestions-code-examples.html) nella *Amazon Q Developer User Guide*.

Per ulteriori informazioni sull'uso di Amazon Q con Amazon SageMaker Studio Classic, consulta la [Amazon Q Developer User Guide](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/sagemaker-setup.html).

# Gestisci il tuo volume di storage Amazon EFS in Amazon SageMaker Studio Classic
<a name="studio-tasks-manage-storage"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

La prima volta che un utente del tuo team accede ad Amazon SageMaker Studio Classic, Amazon SageMaker AI crea un volume Amazon Elastic File System (Amazon EFS) per il team. Nel volume viene creata una home directory per ogni utente che accede a Studio Classic come parte del team. I file di notebook e i file di dati sono archiviati in queste directory. Gli utenti non hanno accesso alle home directory degli altri membri del team. Il dominio Amazon SageMaker AI non supporta il montaggio di volumi Amazon EFS personalizzati o aggiuntivi.

**Importante**  
Non eliminare il volume Amazon EFS. In caso contrario, il dominio non funzionerà più e tutti gli utenti perderanno il loro lavoro.

**Per trovare il volume Amazon EFS**

1. Apri la [console SageMaker AI](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1. Dalla pagina **Domini**, seleziona il dominio per cui trovare l'ID.

1. Dalla pagina **Dettagli del dominio**, seleziona la scheda **Impostazioni del dominio**.

1. In **Impostazioni generali**, trova l'**ID dominio**. Il formato dell'ID sarà il seguente: `d-xxxxxxxxxxxx`.

1. Passa `Domain ID`, come `DomainId`, al metodo [describe\$1domain](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.describe_domain).

1. Nella risposta da `describe_domain`, prendi nota del valore per la chiave `HomeEfsFileSystemId`. Questo è l'ID del file system Amazon EFS da utilizzare.

1. Apri la [Console di Amazon EFS](https://console.aws.amazon.com/efs#/file-systems/). Assicurati che la AWS regione sia la stessa utilizzata da Studio Classic.

1. In **File system**, scegli l'ID del file system nella fase precedente.

1. Per verificare di aver scelto il file system corretto, seleziona l'intestazione **Tag**. Il valore corrispondente alla chiave `ManagedByAmazonSageMakerResource` deve corrispondere a `Studio Classic ID`.

Per informazioni su come accedere al volume Amazon EFS, consulta [Using file systems in Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/using-fs.html).

Per eliminare il volume Amazon EFS, consulta [Deleting an Amazon EFS file system](https://docs.aws.amazon.com/efs/latest/ug/delete-efs-fs.html).

# Fornisci feedback su Amazon SageMaker Studio Classic
<a name="studio-tasks-provide-feedback"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Amazon SageMaker AI prende sul serio il tuo feedback. Ti invitiamo a fornire feedback.

**Per fornire feedback**

1. A destra di SageMaker Studio Classic, trova l'icona **Feedback** (![\[Speech bubble icon representing messaging or communication functionality.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/feedback.png)).

1. Scegli un'emoji sorridente per farci sapere quanto sei soddisfatto di SageMaker Studio Classic e aggiungi qualsiasi feedback che desideri condividere con noi.

1. Decidi se condividere la tua identità con noi, quindi seleziona **Invia**.

# Chiudi e aggiorna Amazon SageMaker Studio Classic e le app
<a name="studio-tasks-update"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Negli argomenti seguenti viene illustrato come chiudere e aggiornare le app SageMaker Studio Classic e Studio Classic.

Studio Classic fornisce un’icona di notifica (![\[Red circle icon with white exclamation mark, indicating an alert or warning.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/Notification.png)) nell’angolo in alto a destra dell’interfaccia utente di Studio Classic. Questa icona di notifica mostra il numero di avvisi non letti. Per leggere gli avvisi, seleziona l'icona.

Studio Classic offre due tipi di notifiche:
+ Aggiornamento: notifica visualizzata quando Studio Classic o una delle app di Studio Classic rilascia una nuova versione. Per aggiornare Studio Classic, consulta [Chiudi e aggiorna Amazon SageMaker Studio Classic](studio-tasks-update-studio.md). Per aggiornare le app di Studio Classic, consulta [Chiudi e aggiorna le app Amazon SageMaker Studio Classic](studio-tasks-update-apps.md).
+ Informazioni: viene visualizzata per nuove funzionalità e altre informazioni.

Per reimpostare l'icona di notifica, devi selezionare il collegamento in ogni avviso. Le notifiche di lettura potrebbero ancora essere visualizzate nell'icona. Ciò non indica che gli aggiornamenti siano ancora necessari dopo aver aggiornato Studio Classic e le app di Studio Classic.

Per informazioni su come aggiornare [Amazon SageMaker Data Wrangler](https://docs.aws.amazon.com/sagemaker/latest/dg/data-wrangler.html), consulta. [Chiudi e aggiorna le app Amazon SageMaker Studio Classic](studio-tasks-update-apps.md)

Per assicurarti di disporre degli aggiornamenti software più recenti, aggiorna Amazon SageMaker Studio Classic e le tue app Studio Classic utilizzando i metodi descritti nei seguenti argomenti.

**Topics**
+ [Chiudi e aggiorna Amazon SageMaker Studio Classic](studio-tasks-update-studio.md)
+ [Chiudi e aggiorna le app Amazon SageMaker Studio Classic](studio-tasks-update-apps.md)

# Chiudi e aggiorna Amazon SageMaker Studio Classic
<a name="studio-tasks-update-studio"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse 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 è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Per aggiornare Amazon SageMaker Studio Classic all'ultima versione, devi chiudere l' JupyterServer app. Puoi chiudere l' JupyterServer app dalla console SageMaker AI, da Amazon SageMaker Studio o da Studio Classic. Dopo aver chiuso l' JupyterServer app, devi riaprire Studio Classic tramite la console SageMaker AI o da Studio che crea una nuova versione dell' JupyterServer app. 

Non è possibile eliminare l' JupyterServer applicazione mentre l'interfaccia utente di Studio Classic è ancora aperta nel browser. Se elimini l' JupyterServer applicazione mentre l'interfaccia utente di Studio Classic è ancora aperta nel browser, SageMaker AI ricrea automaticamente l' JupyterServer applicazione.

Qualsiasi informazione non salvata sul notebook viene persa nel processo. I dati utente nel volume Amazon EFS non subiscono alcun impatto.

Alcuni servizi di Studio Classic, come Data Wrangler, vengono eseguiti sulle rispettive app. Per aggiornare questi servizi, devi eliminare l'app relativa a quel servizio. Per ulteriori informazioni, consulta [Chiudi e aggiorna le app Amazon SageMaker Studio Classic](studio-tasks-update-apps.md).

**Nota**  
Un' JupyterServer app è associata a un singolo utente di Studio Classic. Quando aggiorni l'app per un utente, ciò non influisce su altri utenti.

La pagina seguente mostra come aggiornare l' JupyterServer app dalla console SageMaker AI, da Studio o dall'interno di Studio Classic.

## Arresta e aggiorna dalla console SageMaker AI
<a name="studio-tasks-update-studio-console"></a>

1. Accedi a [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1. Seleziona il dominio che include l’applicazione Studio Classic da aggiornare.

1. In **Profili utente**, seleziona il tuo nome utente.

1. In **App**, nella riga visualizzata **JupyterServer**, scegli **Azione**, quindi scegli **Elimina**.

1. Scegli **Sì, elimina l'app**.

1. Digita **delete** nella casella di conferma.

1. Scegli **Elimina**.

1. Dopo aver eliminato l’app, avvia una nuova app Studio Classic per scaricare la versione più recente.

## Chiusura e aggiornamento da Studio
<a name="studio-tasks-update-studio-updated"></a>

1. Passa a Studio seguendo la procedura indicata in [Avvia Amazon SageMaker Studio](studio-updated-launch.md).

1. Dall’interfaccia utente di Studio, trova il riquadro delle applicazioni sulla sinistra.

1. Dal riquadro delle applicazioni, seleziona **Studio Classic**.

1. Nella pagina di destinazione di Studio Classic, seleziona l’istanza di Studio Classic da arrestare.

1. Scegli **Stop (Arresta)**.

1. Dopo aver arrestato l’app, seleziona **Esegui** per utilizzare la versione più recente.

## Chiusura e aggiornamento dall’interno di Studio Classic
<a name="studio-tasks-update-studio-classic"></a>

1. Avvia Studio Classic.

1. Nel menu in alto, scegli **File** quindi **Arresta**.

1. Scegli una delle seguenti opzioni:
   + **Shutdown Server**: chiude l'app. JupyterServer Le sessioni di terminale, le sessioni del kernel, SageMaker le immagini e le istanze non vengono chiuse. Queste risorse continuano ad essere addebitate.
   + **Chiudi tutto: chiude tutte le** app, le sessioni terminali, le sessioni del kernel, le immagini e le istanze. SageMaker Queste risorse non vengono più addebitate.

1. Chiudi la finestra

1. Dopo aver eliminato l’app, avvia una nuova app Studio Classic per utilizzare la versione più recente.

# Chiudi e aggiorna le app Amazon SageMaker Studio Classic
<a name="studio-tasks-update-apps"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse 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 è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Per aggiornare un'app Amazon SageMaker Studio Classic all'ultima versione, devi prima chiudere l' KernelGateway app corrispondente dalla console SageMaker AI. Dopo aver chiuso l' KernelGateway app, devi riaprirla tramite SageMaker Studio Classic eseguendo un nuovo kernel. Il kernel si aggiorna automaticamente. Qualsiasi informazione non salvata sul notebook viene persa nel processo. I dati utente nel volume Amazon EFS non subiscono alcun impatto.

Dopo che un'applicazione è stata chiusa per 24 ore, SageMaker AI elimina tutti i metadati dell'applicazione. Per essere considerato un aggiornamento e per conservare i metadati dell'applicazione, le applicazioni devono essere riavviate entro 24 ore dalla chiusura dell'applicazione precedente. Dopo questa finestra temporale, la creazione di un'applicazione viene considerata una nuova applicazione anziché un aggiornamento dell'applicazione precedente.

**Nota**  
Un' KernelGateway app è associata a un singolo utente di Studio Classic. Quando si aggiorna l'app per un utente, ciò non influisce su altri utenti.

**Per aggiornare l' KernelGateway app**

1. Accedi a [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1. Seleziona il dominio che include l’applicazione da aggiornare.

1. In **Profili utente**, seleziona il tuo nome utente.

1. In **App**, nella riga che mostra il **Nome dell'app**, scegli **Azioni**, quindi scegli **Elimina** 

   Per aggiornare Data Wrangler, elimina l'app che inizia con. **sagemaker-data-wrang**

1. Scegli **Sì, elimina l'app**.

1. Digita **delete** nella casella di conferma.

1. Scegli **Elimina**.

1. Dopo aver eliminato l’app, avvia un nuovo kernel da Studio Classic per utilizzare la versione più recente.

# Prezzi di Amazon SageMaker Studio Classic
<a name="studio-pricing"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

Quando il primo membro del team accede ad Amazon SageMaker Studio Classic, Amazon SageMaker AI crea un volume Amazon Elastic File System (Amazon EFS) per il team. Quando questo o un altro membro del team apre Studio Classic, viene creata una home directory nel volume per questa persona. Per questa directory viene addebitato un costo per lo storage. Successivamente, vengono addebitati costi per lo storage. aggiuntivi per i notebook e i file di dati archiviati nella home directory del membro. Per informazioni sui prezzi di Amazon EFS, consulta [Prezzi di Amazon EFS](https://aws.amazon.com/efs/pricing/).

L’esecuzione di altre operazioni all’interno di Studio Classic, ad esempio l’esecuzione di un notebook, l’esecuzione di job di addestramento e l’hosting di un modello, potrebbe comportare costi aggiuntivi.

Per informazioni sui costi associati all’utilizzo dei notebook Studio Classic, consulta [Misurazione dell'utilizzo per i notebook Amazon SageMaker Studio Classic](notebooks-usage-metering.md).

Per informazioni sulla fatturazione ed esempi di prezzi, consulta la pagina dei [ SageMaker prezzi di Amazon](https://aws.amazon.com/sagemaker/pricing/).

Se Amazon SageMaker Studio è la tua esperienza predefinita, consulta [Prezzi di Amazon SageMaker Studio](studio-updated-cost.md) la pagina per ulteriori informazioni sui prezzi.

# Risoluzione dei problemi di Amazon SageMaker Studio Classic
<a name="studio-troubleshooting"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Questo argomento descrive come risolvere i problemi più comuni di Amazon SageMaker Studio Classic durante la configurazione e l'uso. Di seguito sono riportati gli errori più comuni che potrebbero verificarsi durante l'utilizzo di Amazon SageMaker Studio Classic. Ogni errore è seguito dalla relativa soluzione.

## Problemi relativi all’applicazione Studio Classic
<a name="studio-troubleshooting-ui"></a>

 I problemi seguenti si verificano durante l’avvio e l’utilizzo dell’applicazione Studio Classic.
+ **La schermata non si carica: cancellare l'area di lavoro e attendere non aiuta**

  Quando si avvia l’applicazione Studio Classic, viene visualizzata una finestra pop-up con il messaggio seguente. Indipendentemente dall’opzione selezionata, Studio Classic non viene caricato. 

  ```
  Loading...
  The loading screen is taking a long time. Would you like to clear the workspace or keep waiting?
  ```

  L’applicazione Studio Classic può subire un ritardo nell’avvio se nello spazio di lavoro di Studio Classic sono aperte più schede o se ci sono diversi file su Amazon EFS. Questa finestra pop-up dovrebbe scomparire in pochi secondi appena lo spazio di lavoro di Studio Classic è pronto. 

  Se continui a visualizzare una schermata di caricamento con uno spinner dopo aver selezionato una delle opzioni, potrebbero esserci problemi di connettività con Amazon Virtual Private Cloud utilizzato da Studio Classic.  

  Per risolvere i problemi di connettività con Amazon Virtual Private Cloud (Amazon VPC) utilizzato da Studio Classic, verifica le configurazioni di rete seguenti:
  + Se il tuo dominio è configurato in `VpcOnly` modalità: verifica che esista un endpoint Amazon VPC per o un gateway NAT per AWS STS il traffico in uscita, incluso il traffico su Internet. A tale scopo, segui le fasi descritte in [Connessione dei notebook Studio in un VPC a risorse esterne](studio-notebooks-and-internet-access.md). 
  + Se il tuo Amazon VPC è configurato con un DNS personalizzato anziché il DNS fornito da Amazon: verifica che i percorsi siano configurati utilizzando Dynamic Host Configuration Protocol (DHCP) per ogni endpoint Amazon VPC aggiunto all’Amazon VPC utilizzato da Studio Classic. Per ulteriori informazioni sull'impostazione di set di opzioni DHCP predefiniti e personalizzati, consulta [DHCP option sets in Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html). 
+ ****Internal Failure** all’avvio di Studio Classic**

  L’interfaccia utente di Studio Classic non viene visualizzata all’avvio di Studio Classic. Viene inoltre visualizzato un errore simile al seguente, con **Guasto interno** come dettaglio dell'errore. 

  ```
  Amazon SageMaker Studio
  The JupyterServer app default encountered a problem and was stopped.
  ```

  Questo errore può essere causato da diversi fattori. Se il completamento di questi passaggi non risolve il problema, crea un problema con. https://aws.amazon.com/premiumsupport/  
  + **Destinazione di montaggio Amazon EFS mancante**: Studio Classic utilizza Amazon EFS per l’archiviazione. Il volume Amazon EFS necessita di una destinazione di montaggio per ogni sottorete in cui viene creato il dominio Amazon SageMaker AI. Se questa destinazione di montaggio Amazon EFS viene eliminata accidentalmente, l’applicazione Studio Classic non può essere caricata perché non può montare la directory dei file dell’utente. Per risolvere il problema, completa la seguente procedura. 

**Per verificare o creare target di montaggio**

    1. Trova il volume Amazon EFS associato al dominio utilizzando la chiamata [DescribeDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeDomain.html)API.  

    1. Accedi Console di gestione AWS e apri la console Amazon EFS all'indirizzo [ https://console.aws.amazon.com/efs/](https://console.aws.amazon.com/efs/).

    1. Dall'elenco dei volumi Amazon EFS, seleziona il volume Amazon EFS associato al dominio. 

    1. Nella pagina dei dettagli di Amazon EFS, seleziona la scheda **Rete**. Verifica che esistano target di montaggio per tutte le sottoreti in cui è configurato il dominio. 

    1. Se mancano i target di montaggio, aggiungi le destinazioni di montaggio Amazon EFS mancanti. Per istruzioni, consulta [Creating and managing mount targets and security groups](https://docs.aws.amazon.com/efs/latest/ug/accessing-fs.html). 

    1. Dopo aver creato le destinazioni di montaggio mancanti, avvia l’applicazione Studio Classic. 
  + **File in conflitto nella `.local` cartella dell'utente**: se utilizzi la JupyterLab versione 1 su Studio Classic, le librerie in conflitto `.local` nella cartella possono causare problemi all'avvio dell'applicazione Studio Classic. Per risolvere questo problema, aggiorna la JupyterLab versione predefinita del profilo utente alla 3.0. JupyterLab Per ulteriori informazioni sulla visualizzazione e l'aggiornamento della JupyterLab versione, vedere[JupyterLab Controllo delle versioni in Amazon SageMaker Studio Classic](studio-jl.md). 
+ ****ConfigurationError:** all' LifecycleConfigavvio di Studio Classic**

  L’interfaccia utente di Studio Classic non viene visualizzata all’avvio di Studio Classic. Ciò è causato da problemi con lo script di configurazione del ciclo di vita predefinito collegato al dominio.

**Per risolvere i problemi di configurazione del ciclo di vita**

  1. Visualizza Amazon CloudWatch Logs per la configurazione del ciclo di vita per tracciare il comando che ha causato l'errore. Per visualizzare il log, segui le fasi descritte in [Verifica il processo di configurazione del ciclo di vita da Logs CloudWatch](studio-lcc-debug.md#studio-lcc-debug-logs). 

  1. Scollega lo script predefinito dal profilo utente o dal dominio. Per ulteriori informazioni, consulta [Aggiorna e scollega le configurazioni del ciclo di vita in Amazon Studio Classic SageMaker](studio-lcc-delete.md). 

  1. Avvia l’applicazione Studio Classic. 

  1. Esegui il debug dello script di configurazione del ciclo di vita. Puoi eseguire lo script di configurazione del ciclo di vita dal terminale di sistema per risolvere i problemi. Quando lo script viene eseguito correttamente dal terminale, puoi collegarlo al profilo utente o al dominio. 
+ **SageMaker Le funzionalità principali di Studio Classic non sono disponibili.**

  Se ricevi questo messaggio di errore all’apertura di Studio Classic, potrebbe essere dovuto a conflitti di versione del pacchetto Python. Ciò si verifica se hai utilizzato i seguenti comandi in un notebook o in un terminale per installare pacchetti Python che presentano conflitti di versione con le dipendenze dei pacchetti SageMaker AI.

  ```
  !pip install
  ```

  ```
  pip install --user
  ```

  Per risolvere il problema, completala seguente procedura:

  1. Disinstalla i pacchetti Python installati di recente. Se non sei sicuro del pacchetto da disinstallare, crea un problema con. https://aws.amazon.com/premiumsupport/ 

  1. Riavvia Studio Classic:

     1. Chiudi Studio Classic dal menu **File**.

     1. Attendi un minuto.

     1. Riapri Studio Classic aggiornando la pagina o aprendola dalla Console di gestione AWS.

  Il problema dovrebbe essere risolto se è stato disinstallato il pacchetto che ha causato il conflitto. Per installare i pacchetti senza causare nuovamente questo problema, utilizza `%pip install` senza il flag `--user`.

  Se il problema persiste, crea un nuovo profilo utente e configura l'ambiente con quel profilo utente.

  Se queste soluzioni non risolvono il problema, crea un problema con https://aws.amazon.com/premiumsupport/. 
+ **Impossibile aprire Studio Classic dalla Console di gestione AWS.**

  Se non riesci ad aprire Studio Classic e non riesci a creare una nuova istanza in esecuzione con tutte le impostazioni predefinite, crea un problema con https://aws.amazon.com/premiumsupport/. 

## KernelGateway problemi relativi all'applicazione
<a name="studio-troubleshooting-kg"></a>

 I seguenti problemi sono specifici KernelGateway delle applicazioni avviate in Studio Classic. 
+ **Impossibile accedere alla sessione Kernel**

  Quando l'utente avvia un nuovo notebook, non è in grado di connettersi alla sessione del notebook. Se lo stato dell' KernelGateway applicazione è`In Service`, puoi verificare quanto segue per risolvere il problema. 
  + **Controllo delle configurazioni dei gruppi di sicurezza**

    Se il dominio è configurato in `VPCOnly` modalità, il gruppo di sicurezza associato al dominio deve consentire il traffico tra le porte nell'intervallo di `8192-65535` connettività tra le JupyterServer e KernelGateway le app.

**Per verificare le regole del gruppo di sicurezza**

    1. Ottieni i gruppi di sicurezza associati al dominio utilizzando la chiamata [DescribeDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeDomain.html)API.

    1. Accedi Console di gestione AWS e apri la console Amazon VPC all'indirizzo. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

    1. Nel riquadro di navigazione a sinistra, in **Sicurezza**, scegli **Gruppi di sicurezza**.

    1. Filtra in base ai gruppi IDs di sicurezza associati al dominio.

    1. Per ogni gruppo di sicurezza: 

       1. Seleziona il gruppo di sicurezza. 

       1. Dalla pagina dei dettagli del gruppo di sicurezza, visualizza le **Regole in entrata**. Verifica che il traffico sia consentito tra le porte dell'intervallo `8192-65535`. 

    Per ulteriori informazioni sulle regole del gruppo di sicurezza, consulta [Control traffic to resources using security groups](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#working-with-security-group-rules). Per ulteriori informazioni sui requisiti per utilizzare Studio Classic in modalità `VPCOnly`, consulta [Connessione dei notebook Studio in un VPC a risorse esterne](studio-notebooks-and-internet-access.md).
  + **Verifica il firewall e WebSocket le connessioni**

    Se le KernelGateway app hanno uno `InService` stato e l'utente non è in grado di connettersi alla sessione del notebook Studio Classic, verifica il firewall e WebSocket le impostazioni. 

    1. Avvia l’applicazione Studio Classic. Per ulteriori informazioni, consulta [Avvia Amazon SageMaker Studio Classic](studio-launch.md). 

    1. Apri gli strumenti per sviluppatori del tuo browser Web. 

    1. Scegli la scheda **Rete**. 

    1. Cerca una voce che corrisponda al formato seguente.

       ```
       wss://<domain-id>.studio.<region>.sagemaker.aws/jupyter/default/api/kernels/<unique-code>/channels?session_id=<unique-code>
       ```

       Se lo stato o il codice di risposta dell'immissione è diverso da questo`101`, le impostazioni di rete impediscono la connessione tra l'applicazione Studio Classic e le KernelGateway app.

       Per risolvere questo problema, contattate il team che gestisce le impostazioni di rete per consentire l'elenco dell'URL di Studio Classic e l'attivazione delle WebSocket connessioni.  
+ **Impossibile avviare un'app a causa del superamento delle quote delle risorse**

  Quando un utente tenta di avviare un nuovo notebook, la creazione del notebook non riesce e causa uno dei seguenti errori. Ciò è causato dal superamento delle quote delle risorse. 
  + 

    ```
    Unable to start more Apps of AppType [KernelGateway] and ResourceSpec(instanceType=[]) for UserProfile []. Please delete an App with a matching AppType and ResourceSpec, then try again
    ```

    Studio Classic supporta fino a quattro KernelGateway app in esecuzione sulla stessa istanza. Per risolvere il problema, puoi procedere in uno dei seguenti modi:
    + Elimina un' KernelGateway applicazione esistente in esecuzione sull'istanza, quindi riavvia il nuovo notebook.
    + Avviare il nuovo notebook su un tipo di istanza diverso

     Per ulteriori informazioni, consulta [Modifica del tipo di istanza per un notebook Amazon SageMaker Studio Classic](notebooks-run-and-manage-switch-instance-type.md).
  + 

    ```
    An error occurred (ResourceLimitExceeded) when calling the CreateApp operation
    ```

    In questo caso, l’account non ha limiti sufficienti per creare un’applicazione Studio Classic sul tipo di istanza specificato. Per risolvere il problema, accedi alla Quote di servizio console all'indirizzo [https://console.aws.amazon.com/servicequotas/](https://console.aws.amazon.com/servicequotas/). In quella console, richiedi di aumentare il limite `Studio KernelGateway Apps running on instance-type instance`. Per ulteriori informazioni, consulta [AWS service quotas](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html). 

# SageMaker JupyterLab
<a name="studio-updated-jl"></a>

Crea uno JupyterLab spazio all'interno di Amazon SageMaker Studio per avviare l' JupyterLabapplicazione. Uno JupyterLab spazio è uno spazio privato o condiviso all'interno di Studio che gestisce le risorse di archiviazione e di calcolo necessarie per eseguire l' JupyterLab applicazione. L' JupyterLab applicazione è un ambiente di sviluppo interattivo (IDE) basato sul Web per notebook, codice e dati. Utilizza l'interfaccia flessibile ed estesa dell' JupyterLab applicazione per configurare e organizzare i flussi di lavoro di machine learning (ML).

Per impostazione predefinita, l' JupyterLab applicazione viene fornita con l'immagine SageMaker Distribution. L’immagine di Distribution contiene pacchetti molto diffusi, ad esempio:
+ PyTorch
+ TensorFlow
+ Keras
+ NumPy
+ Pandas
+ Scikit-learn

Puoi utilizzare gli spazi condivisi per collaborare sui tuoi notebook Jupyter con altri utenti in tempo reale. Per ulteriori informazioni sugli spazi condivisi, consulta [Collaborazione con spazi condivisi](domain-space.md).

All'interno dell' JupyterLab applicazione, puoi utilizzare Amazon Q Developer, un complemento di codice generativo basato sull'intelligenza artificiale per generare, eseguire il debug e spiegare il codice. Per informazioni sull’utilizzo di Amazon Q Developer, consulta [JupyterLab guida per l'utente](studio-updated-jl-user-guide.md). Per informazioni sulla configurazione di Amazon Q Developer, consulta [JupyterLab guida per amministratori](studio-updated-jl-admin-guide.md).

Crea flussi di lavoro di analisi e machine learning unificati nello stesso notebook Jupyter. Esegui Spark lavori interattivi su Amazon EMR e sull'infrastruttura AWS Glue serverless, direttamente dal tuo notebook. Monitora ed esegui il debug dei processi più velocemente utilizzando l’interfaccia utente inline di Spark. In poche fasi, puoi automatizzare la preparazione dei dati pianificando il notebook come processo.

L' JupyterLab applicazione ti aiuta a lavorare in modo collaborativo con i tuoi colleghi. Usa l'integrazione Git integrata nell' JupyterLab IDE per condividere e modificare il codice. Porta il tuo sistema di archiviazione dei file, se hai un volume Amazon EFS.

L' JupyterLab applicazione viene eseguita su una singola istanza Amazon Elastic Compute Cloud (Amazon EC2) e utilizza un singolo volume Amazon Elastic Block Store (Amazon EBS) per lo storage. Puoi passare tra le istanze più velocemente o aumentare la dimensione del volume Amazon EBS in base alle tue esigenze.

L'applicazione JupyterLab 4 viene eseguita in JupyterLab uno spazio all'interno di Studio. Studio Classic utilizza l'applicazione JupyterLab 3. JupyterLab 4 offre i seguenti vantaggi:
+ Un IDE più veloce di Amazon SageMaker Studio Classic, in particolare con notebook di grandi dimensioni
+ Ricerca dei documenti migliorata
+ Un editor di testo più performante e accessibile

[Per ulteriori informazioni su JupyterLab, consulta Documentazione. JupyterLab](https://jupyterlab.readthedocs.io/en/stable/#)

**Topics**
+ [JupyterLab guida per l'utente](studio-updated-jl-user-guide.md)
+ [JupyterLab guida per amministratori](studio-updated-jl-admin-guide.md)

# JupyterLab guida per l'utente
<a name="studio-updated-jl-user-guide"></a>

Questa guida mostra JupyterLab agli utenti come eseguire flussi di lavoro di analisi e apprendimento automatico all'interno SageMaker di Studio. Puoi accelerare l’archiviazione e scalare le capacità di calcolo a seconda delle tue esigenze.

JupyterLab supporta spazi privati e condivisi. Gli spazi privati sono limitati a un singolo utente in un dominio. Gli spazi condivisi consentono agli altri utenti del dominio di collaborare con te in tempo reale. Per informazioni sull’utilizzo degli spazi di Studio, consulta [Spazi Amazon SageMaker Studio](studio-updated-spaces.md).

Per iniziare a utilizzarlo JupyterLab, crea uno spazio e avvia JupyterLab l'applicazione. Lo spazio su cui è in esecuzione JupyterLab l'applicazione è uno JupyterLab spazio. Lo JupyterLab spazio utilizza una singola istanza Amazon EC2 per l'elaborazione e un singolo volume Amazon EBS per lo storage. Tutti gli elementi presenti nel tuo spazio, ad esempio il codice, il profilo Git e le variabili di ambiente, vengono archiviati nello stesso volume Amazon EBS. Il volume ha 3000 IOPS e un throughput di 125 megabyte al secondo (). MBps Puoi utilizzare l’archiviazione rapida per aprire ed eseguire più notebook Jupyter sulla stessa istanza. Puoi anche passare molto rapidamente tra i vari kernel di un notebook.

L’amministratore configura le impostazioni predefinite di archiviazione Amazon EBS per il tuo spazio. La dimensione dell’archiviazione predefinita è di 5 GB, ma puoi aumentare la quantità di spazio disponibile. Puoi chiedere al tuo amministratore di fornirti delle linee guida.

Puoi cambiare il tipo di istanza Amazon EC2 che usi per l'esecuzione JupyterLab, scalando il calcolo verso l'alto o verso il basso a seconda delle tue esigenze. Le istanze con la funzionalità di **avvio rapido** si avviano più velocemente delle altre istanze.

L’amministratore potrebbe fornirti una configurazione del ciclo di vita per personalizzare il tuo ambiente. Puoi specificare la configurazione del ciclo di vita quando crei lo spazio.

Se il tuo amministratore ti dà accesso a un Amazon EFS, puoi configurare il tuo JupyterLab spazio per accedervi.

Per impostazione predefinita, l' JupyterLab applicazione utilizza l'immagine SageMaker di distribuzione. Ciò include il supporto per molti pacchetti di machine learning, analisi e deep learning. Tuttavia, se hai bisogno di un’immagine personalizzata, l’amministratore può aiutarti concedendoti l’accesso alle immagini personalizzate.

Il volume Amazon EBS persiste indipendentemente dalla durata di un’istanza. Non perderai i tuoi dati quando cambi istanza. Utilizza le librerie di gestione dei pacchetti conda e pip per creare ambienti personalizzati riproducibili che persistono anche quando cambi tipo di istanza.

Dopo l'apertura JupyterLab, è possibile configurare l'ambiente utilizzando il terminale. Per aprire il terminale, vai all’**utilità di avvio** e scegli **Terminale**.

Di seguito sono riportati alcuni esempi di diversi modi in cui è possibile configurare un ambiente JupyterLab.

**Nota**  
All’interno di Studio, puoi utilizzare le configurazioni del ciclo di vita per personalizzare l’ambiente, anche se ti consigliamo di utilizzare un gestore dei pacchetti. L’utilizzo delle configurazioni del ciclo di vita è un metodo più soggetto a errori. È più facile aggiungere o rimuovere le dipendenze piuttosto che eseguire il debug di uno script di configurazione del ciclo di vita. Può anche aumentare il tempo JupyterLab di avvio.  
Per informazioni sulle configurazioni del ciclo di vita, consulta [Configurazioni del ciclo di vita con JupyterLab](jl-lcc.md).

**Topics**
+ [Creazione di uno spazio](studio-updated-jl-user-guide-create-space.md)
+ [Configurazione di uno spazio](studio-updated-jl-user-guide-configure-space.md)
+ [Personalizzazione dell’ambiente con un gestore dei pacchetti](studio-updated-jl-user-guide-customize-package-manager.md)
+ [Pulizia di un ambiente conda](studio-updated-jl-clean-up-conda.md)
+ [Condivisione di ambienti conda tra diversi tipi di istanze](studio-updated-jl-create-conda-share-environment.md)
+ [Utilizzo di Amazon Q per accelerare i flussi di lavoro di machine learning](studio-updated-jl-user-guide-use-amazon-q.md)

# Creazione di uno spazio
<a name="studio-updated-jl-user-guide-create-space"></a>

Per iniziare a utilizzarlo JupyterLab, crea uno spazio o scegli lo spazio che l'amministratore ha creato per te e apri JupyterLab.

Utilizza la procedura seguente per creare uno spazio e aprirlo JupyterLab.

**Per creare uno spazio e aprirlo JupyterLab**

1. Apri Studio. Per informazioni su come aprire Studio, consulta [Avvia Amazon SageMaker Studio](studio-updated-launch.md).

1. Scegli **JupyterLab**.

1. Scegli **Crea JupyterLab spazio**.

1. Per **Nome**, specifica il nome dello spazio.

1. (Facoltativo) Seleziona **Condividi con il mio dominio** per creare uno spazio condiviso.

1. Scegli **Crea spazio**.

1. (Facoltativo) In **Istanza**, specifica l’istanza Amazon EC2 che esegue lo spazio.

1. (Facoltativo) In **Immagine**, specifica un’immagine fornita dall’amministratore per personalizzare l’ambiente.
**Importante**  
Le policy IAM personalizzate che consentono agli utenti di Studio di creare spazi devono concedere anche le autorizzazioni per elencare le immagini (`sagemaker: ListImage`) per poter visualizzare le immagini personalizzate. Per aggiungere l’autorizzazione, consulta [Add or remove identity permissions](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) in *AWS Identity and Access Management* User Guide.   
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che concedono le autorizzazioni per creare risorse SageMaker AI includono già le autorizzazioni per elencare le immagini durante la creazione di tali risorse.

1. (Facoltativo) In **Impostazioni spazio**, specifica quanto segue:
   + **Archiviazione (GB)**: fino a 100 GB o la quantità specificata dall’amministratore.
   + **Configurazione del ciclo di vita**: una configurazione del ciclo di vita specificata dall’amministratore.
   + **Allega un file system EFS personalizzato**: un Amazon EFS per il quale l’amministratore fornisce l’accesso.

1. Scegli **Esegui lo spazio**.

1. Seleziona **Apri JupyterLab**.

# Configurazione di uno spazio
<a name="studio-updated-jl-user-guide-configure-space"></a>

Dopo aver creato uno JupyterLab spazio, puoi configurarlo per eseguire le seguenti operazioni:
+ Cambiare il tipo di istanza.
+ Modificare il volume di archiviazione.
+ (È richiesta la configurazione dell’amministratore) Utilizzare un’immagine personalizzata.
+ (È richiesta la configurazione dell’amministratore) Utilizzare una configurazione del ciclo di vita.
+ (È richiesta la configurazione dell’amministratore) Collegare un Amazon EFS personalizzato.

**Importante**  
È necessario interrompere lo JupyterLab spazio ogni volta che lo si configura. Utilizza la procedura seguente per configurare lo spazio.

**Per configurare uno spazio**

1. All'interno di Studio, accedi alla pagina JupyterLab dell'applicazione.

1. Scegli il nome dello spazio.

1. (Facoltativo) In **Immagine**, specifica un’immagine fornita dall’amministratore per personalizzare l’ambiente.
**Importante**  
Le policy IAM personalizzate che consentono agli utenti di Studio di creare spazi devono concedere anche le autorizzazioni per elencare le immagini (`sagemaker: ListImage`) per poter visualizzare le immagini personalizzate. Per aggiungere l’autorizzazione, consulta [Add or remove identity permissions](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) in *AWS Identity and Access Management* User Guide.   
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che concedono le autorizzazioni per creare risorse SageMaker AI includono già le autorizzazioni per elencare le immagini durante la creazione di tali risorse.

1. (Facoltativo) In **Impostazioni spazio**, specifica quanto segue:
   + **Archiviazione (GB)**: fino a 100 GB o la quantità che l’amministratore ha configurato per lo spazio.
   + **Configurazione del ciclo di vita**: una configurazione del ciclo di vita fornita dall’amministratore.
   + **Allega un file system EFS personalizzato**: un Amazon EFS per il quale l’amministratore fornisce l’accesso.

1. Scegli **Esegui lo spazio**.

Quando apri l' JupyterLab applicazione, il tuo spazio ha la configurazione aggiornata.

# Personalizzazione dell’ambiente con un gestore dei pacchetti
<a name="studio-updated-jl-user-guide-customize-package-manager"></a>

Utilizza pip o conda per personalizzare il tuo ambiente. Consigliamo di utilizzare gestori dei pacchetti anziché script di configurazione del ciclo di vita. 

## Creazione e attivazione dell’ambiente personalizzato
<a name="studio-updated-jl-create-basic-conda"></a>

Questa sezione fornisce esempi di diversi modi in cui è possibile configurare un ambiente JupyterLab.

Un ambiente conda di base ha il numero minimo di pacchetti necessari per i flussi di lavoro in SageMaker AI. Utilizza il modello seguente per creare un ambiente conda di base:

```
# initialize conda for shell interaction
conda init

# create a new fresh environment
conda create --name test-env

# check if your new environment is created successfully
conda info --envs

# activate the new environment
conda activate test-env

# install packages in your new conda environment
conda install pip boto3 pandas ipykernel

# list all packages install in your new environment 
conda list

# parse env name information from your new environment
export CURRENT_ENV_NAME=$(conda info | grep "active environment" | cut -d : -f 2 | tr -d ' ')

# register your new environment as Jupyter Kernel for execution 
python3 -m ipykernel install --user --name $CURRENT_ENV_NAME --display-name "user-env:($CURRENT_ENV_NAME)"

# to exit your new environment
conda deactivate
```

L’immagine seguente mostra la posizione dell’ambiente creato.

![\[L’ambiente test-env viene visualizzato nell’angolo in alto a destra della schermata.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/juptyer-notebook-environment-location.png)


Per modificare l’ambiente, selezionalo e scegli un’opzione dal menu a discesa.

![\[Il segno di spunta e il testo corrispondente mostrano un ambiente di esempio creato in precedenza.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/jupyter-notebook-select-env.png)


Scegli **Seleziona** per selezionare un kernel per l’ambiente.

## Creazione di un ambiente conda con una specifica versione di Python
<a name="studio-updated-jl-create-conda-version"></a>

La pulizia degli ambienti conda non utilizzati può aiutare a liberare spazio su disco e migliorare le prestazioni. Utilizza il modello seguente per pulire un ambiente conda:

```
# create a conda environment with a specific python version
conda create --name py38-test-env python=3.8.10

# activate and test your new python version
conda activate py38-test-env & python3 --version

# Install ipykernel to facilicate env registration
conda install ipykernel

# parse env name information from your new environment
export CURRENT_ENV_NAME=$(conda info | grep "active environment" | cut -d : -f 2 | tr -d ' ')

# register your new environment as Jupyter Kernel for execution 
python3 -m ipykernel install --user --name $CURRENT_ENV_NAME --display-name "user-env:($CURRENT_ENV_NAME)"

# deactivate your py38 test environment
conda deactivate
```

## Creazione di un ambiente conda con un set specifico di pacchetti
<a name="studio-updated-jl-create-conda-specific-packages"></a>

Utilizza il modello seguente per creare un ambiente conda con una versione di Python e un set di pacchetti specifici:

```
# prefill your conda environment with a set of packages,
conda create --name py38-test-env python=3.8.10 pandas matplotlib=3.7 scipy ipykernel

# activate your conda environment and ensure these packages exist
conda activate py38-test-env

# check if these packages exist
conda list | grep -E 'pandas|matplotlib|scipy'

# parse env name information from your new environment
export CURRENT_ENV_NAME=$(conda info | grep "active environment" | cut -d : -f 2 | tr -d ' ')

# register your new environment as Jupyter Kernel for execution 
python3 -m ipykernel install --user --name $CURRENT_ENV_NAME --display-name "user-env:($CURRENT_ENV_NAME)"

# deactivate your conda environment
conda deactivate
```

## Clonazione di conda da un ambiente esistente
<a name="studio-updated-jl-create-conda-clone"></a>

Clona il tuo ambiente conda per preservarne lo stato di funzionamento. Conduci esperimenti nell’ambiente clonato senza temere di introdurre modifiche pericolose nel tuo ambiente di test.

Utilizza il comando seguente per clonare un ambiente.

```
# create a fresh env from a base environment 
conda create --name py310-base-ext --clone base # replace 'base' with another env

# activate your conda environment and ensure these packages exist
conda activate py310-base-ext

# install ipykernel to register your env
conda install ipykernel

# parse env name information from your new environment
export CURRENT_ENV_NAME=$(conda info | grep "active environment" | cut -d : -f 2 | tr -d ' ')

# register your new environment as Jupyter Kernel for execution 
python3 -m ipykernel install --user --name $CURRENT_ENV_NAME --display-name "user-env:($CURRENT_ENV_NAME)"

# deactivate your conda environment
conda deactivate
```

## Clonazione di conda da un file YAML di riferimento
<a name="studio-updated-jl-create-conda-yaml"></a>

Crea un ambiente conda da un file YAML di riferimento. Di seguito è riportato un file YAML di esempio che puoi utilizzare.

```
# anatomy of a reference environment.yml
name: py311-new-env
channels:
  - conda-forge
dependencies:
  - python=3.11
  - numpy
  - pandas
  - scipy
  - matplotlib
  - pip
  - ipykernel
  - pip:
      - git+https://github.com/huggingface/transformers
```

In `pip`, consigliamo di specificare solo le dipendenze che non sono disponibili con conda.

Utilizza i comandi seguenti per creare un ambiente conda da un file YAML.

```
# create your conda environment 
conda env create -f environment.yml

# activate your env
conda activate py311-new-env
```

# Pulizia di un ambiente conda
<a name="studio-updated-jl-clean-up-conda"></a>

La pulizia degli ambienti conda non utilizzati può aiutare a liberare spazio su disco e migliorare le prestazioni. Utilizza il modello seguente per pulire un ambiente conda:

```
# list your environments to select an environment to clean
conda info --envs # or conda info -e

# once you've selected your environment to purge
conda remove --name test-env --all

# run conda environment list to ensure the target environment is purged
conda info --envs # or conda info -e
```

# Condivisione di ambienti conda tra diversi tipi di istanze
<a name="studio-updated-jl-create-conda-share-environment"></a>

Puoi condividere gli ambienti conda salvandoli in una directory Amazon EFS esterna al tuo volume Amazon EBS. Un altro utente può accedere all’ambiente nella directory in cui lo hai salvato.

**Importante**  
La condivisione degli ambienti presenta delle limitazioni. Ad esempio, non consigliamo di preferire un ambiente progettato per l’esecuzione su un’istanza GPU di Amazon EC2 rispetto a un ambiente in esecuzione su un’istanza CPU.

Utilizza i comandi seguenti come modello per specificare la directory di destinazione in cui stai creando un ambiente personalizzato. Stai creando un conda all’interno di un percorso particolare. Lo crei all’interno della directory Amazon EFS. Puoi avviare una nuova istanza ed eseguire il percorso di attivazione conda all’interno di Amazon EFS.

```
# if you know your environment path for your conda environment
conda create --prefix /home/sagemaker-user/my-project/py39-test python=3.9

# activate the env with full path from prefix
conda activate home/sagemaker-user/my-project/py39-test

# parse env name information from your new environment
export CURRENT_ENV_NAME=$(conda info | grep "active environment" | awk -F' : ' '{print $2}' | awk -F'/' '{print $NF}')

# register your new environment as Jupyter Kernel for execution 
python3 -m ipykernel install --user --name $CURRENT_ENV_NAME --display-name "user-env-prefix:($CURRENT_ENV_NAME)"

# deactivate your conda environment
conda deactivate
```

# Utilizzo di Amazon Q per accelerare i flussi di lavoro di machine learning
<a name="studio-updated-jl-user-guide-use-amazon-q"></a>

Amazon Q Developer è il tuo partner basato sull’IA per lo sviluppo del machine learning. Con Amazon Q Developer, puoi:
+ Ricevi step-by-step indicazioni sull'utilizzo delle funzionalità di SageMaker intelligenza artificiale in modo indipendente o in combinazione con altri AWS servizi.
+ Ottieni codice di esempio per iniziare le tue attività di machine learning come la preparazione dei dati, la formazione, l'inferenza e MLOps.
+ Ricevere assistenza sulla risoluzione dei problemi per eseguire il debug e correggere gli errori riscontrati durante l’esecuzione del codice.

Amazon Q Developer si integra perfettamente nel tuo JupyterLab ambiente. Per utilizzare Amazon Q Developer, scegli **Q** dalla barra di navigazione a sinistra del tuo JupyterLab ambiente o dall'ambiente Code Editor.

Se non vedi l’icona **Q**, il tuo amministratore deve configurarla per te. Per ulteriori informazioni sulla configurazione di Amazon Q Developer, consulta [Configurazione di Amazon Q Developer per i tuoi utenti](studio-updated-amazon-q-admin-guide-set-up.md).

Amazon Q fornisce automaticamente suggerimenti per aiutarti a scrivere il codice. Puoi anche chiedere suggerimenti tramite l’interfaccia della chat.

# JupyterLab guida per amministratori
<a name="studio-updated-jl-admin-guide"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Questa guida per gli amministratori descrive JupyterLab le risorse SageMaker AI, come quelle di Amazon Elastic Block Store (Amazon EBS) e Amazon Elastic Compute Cloud (Amazon EC2) Elastic Compute Cloud (Amazon EC2). Gli argomenti mostrano anche come fornire l’accesso agli utenti e modificare la dimensione dell’archiviazione. 

Uno JupyterLab spazio SageMaker AI è composto dalle seguenti risorse:
+ Un volume Amazon EBS distinto che archivia tutti i dati, come il codice e le variabili di ambiente. 
+ L’istanza Amazon EC2 utilizzata per eseguire lo spazio.
+ L'immagine utilizzata per l'esecuzione JupyterLab.

**Nota**  
Le applicazioni non hanno accesso al volume EBS di altre applicazioni. Ad esempio, Code Editor, basato su Code-OSS, Visual Studio Code - Open Source non ha accesso al volume EBS per. JupyterLab Per ulteriori informazioni sui volumi EBS, consulta [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html).

Puoi utilizzare l' SageMaker API Amazon per effettuare le seguenti operazioni:
+ Modificare la dimensione dell’archiviazione predefinita del volume EBS per i tuoi utenti.
+ Modificare la dimensione massima dell’archiviazione EBS.
+ Specificare le impostazioni utente per l’applicazione. Ad esempio, puoi specificare se l’utente sta utilizzando un’immagine personalizzata o un repository di codice.
+ Specificare il tipo di applicazione di supporto.

La dimensione predefinita del volume Amazon EBS è di 5 GB. Puoi aumentarla fino a un massimo di 16.384 GB. Se non apporti modifiche, gli utenti possono aumentare la dimensione del volume fino a 100 GB. La dimensione del volume può essere modificata solo una volta in un intervallo di sei ore.

I kernel associati all' JupyterLab applicazione vengono eseguiti sulla stessa istanza Amazon EC2 in esecuzione. JupyterLab Quando crei uno spazio, per impostazione predefinita viene utilizzata la versione più recente dell'immagine di SageMaker distribuzione. Per ulteriori informazioni sulle immagini SageMaker di distribuzione, vedere[SageMaker Politica di supporto delle immagini di Studio](sagemaker-distribution.md).

**Importante**  
Per informazioni sull'aggiornamento dello spazio per utilizzare la versione più recente di SageMaker AI Distribution Image, consulta[Aggiorna l'immagine SageMaker di distribuzione](studio-updated-jl-update-distribution-image.md).

La directory di lavoro degli utenti all’interno del volume di archiviazione è `/home/sagemaker-user`. Se specifichi la tua AWS KMS chiave per crittografare il volume, tutto ciò che si trova nella directory di lavoro viene crittografato utilizzando la chiave gestita dal cliente. Se non si specifica alcuna AWS KMS chiave, i dati all'interno `/home/sagemaker-user` vengono crittografati con una chiave AWS gestita. Indipendentemente dal fatto che venga specificata una AWS KMS chiave, tutti i dati al di fuori della directory di lavoro vengono crittografati con una chiave AWS gestita.

Le sezioni seguenti forniscono istruzioni sulle configurazioni che devi eseguire in qualità di amministratore.

**Topics**
+ [Concessione agli utenti dell’accesso agli spazi](studio-updated-jl-admin-guide-permissions.md)
+ [Modifica la dimensione di archiviazione predefinita per i tuoi utenti JupyterLab](studio-updated-jl-admin-guide-storage-size.md)
+ [Configurazioni del ciclo di vita con JupyterLab](jl-lcc.md)
+ [Repos Git in JupyterLab](studio-updated-jl-admin-guide-git-attach.md)
+ [Immagini personalizzate](studio-updated-jl-admin-guide-custom-images.md)
+ [Aggiorna l'immagine SageMaker di distribuzione](studio-updated-jl-update-distribution-image.md)
+ [Eliminazione delle risorse inutilizzate](studio-updated-jl-admin-guide-clean-up.md)
+ [Quote](studio-updated-jl-admin-guide-quotas.md)

# Concessione agli utenti dell’accesso agli spazi
<a name="studio-updated-jl-admin-guide-permissions"></a>

Per consentire agli utenti di accedere a spazi privati o condivisi, devi collegare una policy di autorizzazione ai loro ruoli IAM. Puoi utilizzare la policy di autorizzazione anche per limitare gli spazi privati e le relative applicazioni associate a un profilo utente specifico.

La policy di autorizzazione seguente consente l’accesso a spazi privati e condivisi. Consente agli utenti di creare il proprio spazio ed elencare altri spazi all’interno del proprio dominio. Un utente con questa policy non può accedere allo spazio privato di un altro utente. Per informazioni sull’utilizzo degli spazi di Studio, consulta [Spazi Amazon SageMaker Studio](studio-updated-spaces.md).

La policy di esempio seguente fornisce le autorizzazioni per:
+ Spazi privati o spazi condivisi.
+ Un profilo utente per accedere a tali spazi.

Per fornire le autorizzazioni, puoi definire l’ambito delle autorizzazioni della policy seguente e aggiungerla ai ruoli IAM dei tuoi utenti. Puoi utilizzare questa policy anche per limitare i tuoi spazi e le relative applicazioni associate a un profilo utente specifico.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {

      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateApp",
        "sagemaker:DeleteApp"
      ],
      "Resource": "arn:aws:sagemaker:us-east-2:111122223333:app/*",
      "Condition": {
        "Null": {
          "sagemaker:OwnerUserProfileArn": "true"
        }
      }
    },
    {
      "Sid": "SMStudioCreatePresignedDomainUrlForUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreatePresignedDomainUrl"
      ],
      "Resource": "arn:aws:sagemaker:us-east-2:111122223333:user-profile/sagemaker:DomainId/sagemaker:UserProfileName"
    },
    {
      "Sid": "SMStudioAppPermissionsListAndDescribe",
      "Effect": "Allow",
      "Action": [
        "sagemaker:ListApps",
        "sagemaker:ListDomains",
        "sagemaker:ListUserProfiles",
        "sagemaker:ListSpaces",
        "sagemaker:DescribeApp",
        "sagemaker:DescribeDomain",
        "sagemaker:DescribeUserProfile",
        "sagemaker:DescribeSpace"
      ],
      "Resource": "*"
    },
    {
      "Sid": "SMStudioAppPermissionsTagOnCreate",
      "Effect": "Allow",
      "Action": [
        "sagemaker:AddTags"
      ],
      "Resource": "arn:aws:sagemaker:us-east-2:111122223333:*/*",
      "Condition": {
        "Null": {
          "sagemaker:TaggingAction": "false"
        }
      }
    },
    {
      "Sid": "SMStudioRestrictSharedSpacesWithoutOwners",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateSpace",
        "sagemaker:UpdateSpace",
        "sagemaker:DeleteSpace"
      ],
      "Resource": "arn:aws:sagemaker:us-east-2:111122223333:space/sagemaker:DomainId/*",
      "Condition": {
        "Null": {
          "sagemaker:OwnerUserProfileArn": "true"
        }
      }
    },
    {
      "Sid": "SMStudioRestrictSpacesToOwnerUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateSpace",
        "sagemaker:UpdateSpace",
        "sagemaker:DeleteSpace"
      ],
      "Resource": "arn:aws:sagemaker:us-east-2:111122223333:space/sagemaker:DomainId/*",
      "Condition": {
        "ArnLike": {
        "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:us-east-2:111122223333:user-profile/sagemaker:DomainId/sagemaker:UserProfileName"
        },
        "StringEquals": {
          "sagemaker:SpaceSharingType": [
            "Private",
            "Shared"
          ]
        }
      }
    },
    {
      "Sid": "SMStudioRestrictCreatePrivateSpaceAppsToOwnerUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateApp",
        "sagemaker:DeleteApp"
      ],
      "Resource": "arn:aws:sagemaker:us-east-2:111122223333:app/sagemaker:DomainId/*",
      "Condition": {
        "ArnLike": {
          "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:us-east-2:111122223333:user-profile/sagemaker:DomainId/sagemaker:UserProfileName"
        },
        "StringEquals": {
          "sagemaker:SpaceSharingType": [
            "Private"
          ]
        }
      }
    }
  ]
}
```

------

# Modifica la dimensione di archiviazione predefinita per i tuoi utenti JupyterLab
<a name="studio-updated-jl-admin-guide-storage-size"></a>

Puoi modificare le impostazioni di archiviazione predefinite per gli utenti. Puoi anche modificare le impostazioni di archiviazione predefinite in base ai requisiti organizzativi e alle esigenze degli utenti.

Per modificare la dimensione dell’archiviazione, questa sezione fornisce i comandi per:

1. Aggiorna le impostazioni di storage di Amazon EBS nel dominio Amazon SageMaker AI (dominio).

1. Creare un profilo utente e specificare le impostazioni di archiviazione al suo interno.

Utilizza i seguenti comandi AWS Command Line Interface (AWS CLI) per modificare la dimensione di storage predefinita.

Utilizzate il seguente AWS CLI comando per aggiornare il dominio:

```
aws --region Regione AWS sagemaker update-domain \
--domain-id domain-id \
--default-user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":5,
            "MaximumEbsVolumeSizeInGb":100
        }
    }
}'
```

Utilizzate il seguente AWS CLI comando per creare il profilo utente e specificare le impostazioni di archiviazione predefinite:

```
aws --region Regione AWS sagemaker create-user-profile \
--domain-id domain-id \
--user-profile-name user-profile-name \
--user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":5,
            "MaximumEbsVolumeSizeInGb":100
        }
    }
}'
```

Utilizza i seguenti AWS CLI comandi per aggiornare le impostazioni di archiviazione predefinite nel profilo utente:

```
aws --region Regione AWS sagemaker update-user-profile \
--domain-id domain-id \
--user-profile-name user-profile-name \
--user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":25,
            "MaximumEbsVolumeSizeInGb":200
        }
    }
}'
```

# Configurazioni del ciclo di vita con JupyterLab
<a name="jl-lcc"></a>

Le configurazioni del ciclo di vita sono script di shell attivati da JupyterLab eventi del ciclo di vita, come l'avvio di un nuovo notebook. JupyterLab È possibile utilizzare le configurazioni del ciclo di vita per automatizzare la personalizzazione del proprio ambiente. JupyterLab Questa personalizzazione include l'installazione di pacchetti personalizzati, la configurazione delle estensioni dei notebook, il precaricamento di set di dati e la configurazione di repository di codice sorgente.

L'utilizzo delle configurazioni del ciclo di vita offre flessibilità e controllo per la configurazione in base alle esigenze specifiche. JupyterLab Ad esempio, puoi creare un set minimo di immagini del container di base con i pacchetti e le librerie utilizzati più di frequente. Puoi quindi utilizzare le configurazioni del ciclo di vita per installare pacchetti aggiuntivi per casi d’uso specifici per i team di data science e machine learning.

**Nota**  
Ogni script ha un limite di **16.384 caratteri**.

**Topics**
+ [Errore di configurazione del ciclo di vita](jl-lcc-create.md)
+ [Esecuzione del debug delle configurazioni del ciclo di vita](jl-lcc-debug.md)
+ [Scollegamento delle configurazioni del ciclo di vita](jl-lcc-delete.md)

# Errore di configurazione del ciclo di vita
<a name="jl-lcc-create"></a>

Questo argomento include istruzioni per creare e associare una configurazione del ciclo di vita a. JupyterLab È possibile utilizzare il AWS Command Line Interface (AWS CLI) o il Console di gestione AWS per automatizzare la personalizzazione del proprio ambiente. JupyterLab 

Le configurazioni del ciclo di vita sono script di shell attivati da eventi del JupyterLab ciclo di vita, come l'avvio di un nuovo notebook. JupyterLab Per ulteriori informazioni sulle configurazioni del ciclo di vita, consulta [Configurazioni del ciclo di vita con JupyterLab](jl-lcc.md).

## Creazione di una configurazione del ciclo di vita (AWS CLI)
<a name="jl-lcc-create-cli"></a>

Scopri come creare una configurazione del ciclo di vita utilizzando AWS Command Line Interface ()AWS CLI per automatizzare la personalizzazione del tuo ambiente Studio.

### Prerequisiti
<a name="jl-lcc-create-cli-prerequisites"></a>

Prima di iniziare, completa i seguenti prerequisiti: 
+ Aggiorna il file AWS CLI seguendo la procedura descritta in [Installazione](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled) della versione corrente. AWS CLI 
+ Dal computer locale, esegui `aws configure` e inserisci le tue credenziali AWS . Per informazioni sulle AWS credenziali, consulta [Comprendere e ottenere le AWS credenziali](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 
+ Effettua l'onboard nel dominio Amazon SageMaker AI. Per informazioni concettuali, consulta [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md). Per una guida di avvio rapido, consulta [Usa la configurazione rapida per Amazon SageMaker AI](onboard-quick-start.md).

### Fase 1: creazione di una configurazione del ciclo di vita
<a name="jl-lcc-create-cli-step1"></a>

La procedura seguente mostra come creare uno script di configurazione del ciclo di vita che stampa `Hello World`.

**Nota**  
Ogni script può contenere un massimo di **16.384 caratteri.**

1. Dal computer locale, crea un file denominato `my-script.sh` con il contenuto seguente:

   ```
   #!/bin/bash
   set -eux
   echo 'Hello World!'
   ```

1. Utilizza quanto segue per convertire il file `my-script.sh` nel formato base64. Questo requisito previene gli errori dovuti alla codifica della spaziatura e delle interruzioni di riga.

   ```
   LCC_CONTENT=`openssl base64 -A -in my-script.sh`
   ```

1. Creazione di una configurazione del ciclo di vita da utilizzare con Studio. Il comando seguente crea una configurazione del ciclo di vita che viene eseguita all’avvio di un’applicazione `JupyterLab` associata:

   ```
   aws sagemaker create-studio-lifecycle-config \
   --region region \
   --studio-lifecycle-config-name my-jl-lcc \
   --studio-lifecycle-config-content $LCC_CONTENT \
   --studio-lifecycle-config-app-type JupyterLab
   ```

   Prendi nota dell’ARN (nome della risorsa Amazon) della configurazione del ciclo di vita appena creata che viene restitutio. L’ARN è richiesto per collegare la configurazione del ciclo di vita all'applicazione.

### Fase 2: collega la configurazione del ciclo di vita al dominio Amazon SageMaker AI (dominio) e al profilo utente
<a name="jl-lcc-create-cli-step2"></a>

Per collegare la configurazione del ciclo di vita, devi aggiornare `UserSettings` per il tuo dominio o profilo utente. Gli script di configurazione del ciclo di vita associati a livello di dominio vengono ereditati da tutti gli utenti. Tuttavia, gli script associati a livello di profilo utente sono limitati a un utente specifico. 

Puoi creare un nuovo profilo utente, dominio o spazio a cui è collegata una configurazione del ciclo di vita utilizzando i comandi seguenti:
+ [create-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-user-profile.html)
+ [create-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-domain.html)
+ [create-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-space.html)

Il comando seguente crea un profilo utente con una configurazione del ciclo di vita. Aggiungi l’ARN della configurazione del ciclo di vita della fase precedente alle impostazioni `JupyterLabAppSettings` dell’utente. Se inoltri un elenco di configurazioni del ciclo di vita, puoi aggiungere più configurazioni contemporaneamente. Quando un utente avvia un' JupyterLab applicazione con AWS CLI, può specificare una configurazione del ciclo di vita anziché utilizzare quella predefinita. La configurazione del ciclo di vita inoltrata dall'utente deve appartenere all'elenco delle configurazioni del ciclo di vita in `JupyterLabAppSettings`.

```
# Create a new UserProfile
aws sagemaker create-user-profile --domain-id domain-id \
--user-profile-name user-profile-name \
--region region \
--user-settings '{
"JupyterLabAppSettings": {
  "LifecycleConfigArns":
    [lifecycle-configuration-arn-list]
  }
}'
```

## Creazione di una configurazione del ciclo di vita (console)
<a name="jl-lcc-create-console"></a>

Scopri come creare una configurazione del ciclo di vita utilizzando Console di gestione AWS per automatizzare la personalizzazione del tuo ambiente Studio.

### Fase 1: creazione di una configurazione del ciclo di vita
<a name="jl-lcc-create-console-step1"></a>

Utilizza la procedura seguente per creare uno script di configurazione del ciclo di vita che stampa `Hello World`.

**Per creare una configurazione del ciclo di vita**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel pannello di navigazione sinistro scegli **Configurazioni admin**.

1. In **Configurazioni admin**, scegli **Configurazioni del ciclo di vita**. 

1. Scegli la scheda **JupyterLab**.

1. Scegli **Crea configurazione**.

1. In **Nome**, specifica il nome della configurazione del ciclo di vita.

1. Nella casella di testo sotto **Script**, specifica la configurazione del ciclo di vita seguente:

   ```
   #!/bin/bash
   set -eux
   echo 'Hello World!'
   ```

1. Scegli **Crea configurazione**.

### Fase 2: collega la configurazione del ciclo di vita al dominio Amazon SageMaker AI (dominio) e al profilo utente
<a name="jl-lcc-create-console-step2"></a>

Gli script di configurazione del ciclo di vita associati a livello di dominio vengono ereditati da tutti gli utenti. Tuttavia, gli script associati a livello di profilo utente sono limitati a un utente specifico.

Puoi collegare più configurazioni del ciclo di vita a un dominio o a un profilo utente per. JupyterLab

Utilizza la procedura seguente per collegare una configurazione del ciclo di vita a un dominio.

**Per collegare una configurazione del ciclo di vita a un dominio**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1. Dall’elenco di domini, seleziona il dominio a cui collegare la configurazione del ciclo di vita.

1. Da **Dettagli del dominio**, seleziona la scheda **Ambiente**.

1. In **Configurazioni del ciclo di vita per app Studio personali**, scegli **Collega**.

1. In **Origine**, scegli **Configurazione esistente**.

1. In **Configurazioni del ciclo di vita in Studio**, seleziona la configurazione del ciclo di vita creata nella fase precedente.

1. Seleziona **Collega al dominio**.

Utilizza la procedura seguente per collegare una configurazione del ciclo di vita a un profilo utente.

**Per collegare una configurazione del ciclo di vita a un profilo utente**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1. Dall’elenco di domini, seleziona il dominio che contiene il profilo utente a cui collegare la configurazione del ciclo di vita.

1. In **Profili utente**, seleziona il profilo utente.

1. Nella pagina **Dettagli utente** seleziona **Modifica**.

1. Nella barra di navigazione a sinistra, scegli **Impostazioni di Studio**.

1. In **Configurazioni del ciclo di vita collegate all'utente**, scegli **Collega**.

1. In **Origine**, scegli **Configurazione esistente**.

1. In **Configurazioni del ciclo di vita in Studio**, seleziona la configurazione del ciclo di vita creata nella fase precedente.

1. Seleziona **Collega al profilo utente**.

# Esecuzione del debug delle configurazioni del ciclo di vita
<a name="jl-lcc-debug"></a>

I seguenti contenuti spiegano come recuperare le informazioni sulle configurazioni del ciclo di vita e come eseguirne il debug.

**Topics**
+ [Verifica il processo di configurazione del ciclo di vita da Logs CloudWatch](#jl-lcc-debug-logs)
+ [Timeout della configurazione del ciclo di vita](#jl-lcc-debug-timeout)

## Verifica il processo di configurazione del ciclo di vita da Logs CloudWatch
<a name="jl-lcc-debug-logs"></a>

Le configurazioni del ciclo di vita eseguono solo log `STDOUT` e `STDERR`.

`STDOUT` è il formato di output predefinito per gli script bash. Puoi scrivere in `STDERR` aggiungendo `>&2` alla fine di un comando bash. Ad esempio, `echo 'hello'>&2`. 

I log per le configurazioni del ciclo di vita vengono pubblicati su Amazon che utilizza Amazon. Account AWS CloudWatch Questi log possono essere trovati nel flusso di `/aws/sagemaker/studio` log della console. CloudWatch 

1. Apri la CloudWatch console all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Seleziona **Log** dal riquadro di navigazione a sinistra. Dal menu a discesa, seleziona **Gruppi di log**.

1. Nella pagina **Gruppi di log**, cerca `aws/sagemaker/studio`. 

1. Seleziona il gruppo di log .

1. Nella pagina **Dettagli gruppo di log**, scegli la scheda **Flussi di log**.

1. Per trovare i log di uno spazio specifico, cerca nei flussi di log utilizzando il seguente formato:

   ```
   domain-id/space-name/app-type/default/LifecycleConfigOnStart
   ```

   Ad esempio, per trovare i log di configurazione del ciclo di vita per l’ID dominio `d-m85lcu8vbqmz`, lo spazio `i-sonic-js` e il tipo di applicazione `JupyterLab`, utilizza la stringa di ricerca seguente:

   ```
   d-m85lcu8vbqmz/i-sonic-js/JupyterLab/default/LifecycleConfigOnStart
   ```

## Timeout della configurazione del ciclo di vita
<a name="jl-lcc-debug-timeout"></a>

Il limite di timeout della configurazione del ciclo di vita è di 5 minuti. Se l’esecuzione di uno script di configurazione del ciclo di vita impiega più di cinque minuti, viene visualizzato un errore.

Per risolvere questo errore, assicurati che lo script di configurazione del ciclo di vita venga completato in meno di cinque minuti. 

Per ridurre il runtime degli script, prova quanto segue:
+ Elimina le fasi superflue. Ad esempio, limita gli ambienti conda in cui installare pacchetti di grandi dimensioni.
+ Esegui le attività in processi paralleli.
+ Utilizza il comando nohup nello script, che permette allo script di ignorare i segnali di arresto e, quindi, di completare l’esecuzione senza interruzioni.

# Scollegamento delle configurazioni del ciclo di vita
<a name="jl-lcc-delete"></a>

Per aggiornare lo script, devi creare un nuovo script di configurazione del ciclo di vita e collegarlo al rispettivo dominio Amazon SageMaker AI (dominio), profilo utente o spazio condiviso. Uno script di configurazione del ciclo di vita non può essere modificato dopo che è stato creato. Per ulteriori informazioni su come creare e collegare la configurazione del ciclo di vita, consulta [Errore di configurazione del ciclo di vita](jl-lcc-create.md).

La sezione seguente mostra come scollegare una configurazione del ciclo di vita utilizzando la AWS Command Line Interface (AWS CLI).

## Scollega utilizzando il AWS CLI
<a name="jl-lcc-delete-cli"></a>

Per scollegare una configurazione del ciclo di vita utilizzando la AWS CLI, rimuovi la configurazione del ciclo di vita desiderata dall’elenco delle configurazioni del ciclo di vita collegate alla risorsa. Quindi, passa l’elenco come parte del rispettivo comando:
+ [update-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-user-profile.html)
+ [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html)
+ [update-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-space.html)

Ad esempio, il comando seguente rimuove tutte le configurazioni del ciclo di vita per l' JupyterLab applicazione collegata al dominio.

```
aws sagemaker update-domain --domain-id domain-id \
--region region \
--default-user-settings '{
"JupyterLabAppSettings": {
  "LifecycleConfigArns":
    []
  }
}'
```

# Repos Git in JupyterLab
<a name="studio-updated-jl-admin-guide-git-attach"></a>

JupyterLab offre un'estensione Git per inserire l'URL di un repository Git (repo), clonarlo in un ambiente, inviare modifiche e visualizzare la cronologia dei commit. Puoi anche allegare il repository Git consigliato URLs a un dominio (dominio) o a un profilo utente Amazon SageMaker AI.

Le seguenti sezioni mostrano come collegare o scollegare il URLs repository Git.

**Topics**
+ [Collegamento di un repository Git (AWS CLI)](studio-updated-git-attach-cli.md)
+ [Scollegare il repository Git URLs](studio-updated-git-detach.md)

# Collegamento di un repository Git (AWS CLI)
<a name="studio-updated-git-attach-cli"></a>

Questa sezione mostra come allegare un URL del repository Git (repo) utilizzando il. AWS CLI Dopo aver collegato l’URL dei repository Git, puoi clonarlo seguendo le fasi descritte in [Clona un repository Git in Amazon Studio SageMaker](#studio-updated-tasks-git).

## Prerequisiti
<a name="studio-updated-git-attach-cli-prerequisites"></a>

Prima di iniziare, completa i seguenti prerequisiti: 
+ Aggiorna il AWS CLI seguendo la procedura descritta in [Installazione della versione corrente AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled).
+ Dal computer locale, esegui `aws configure` e inserisci le tue credenziali AWS . Per informazioni sulle AWS credenziali, consulta [Comprendere e ottenere le AWS credenziali](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 
+ Effettua l'onboard nel dominio Amazon SageMaker AI. Per ulteriori informazioni, consulta [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md).

## Collega il repository Git a un dominio Amazon SageMaker AI (dominio) o a un profilo utente
<a name="studio-updated-git-attach-cli-attach"></a>

I repository URLs Git associati a livello di dominio vengono ereditati da tutti gli utenti. Tuttavia, i repository URLs Git associati a livello di profilo utente sono riservati a un utente specifico. Puoi collegare più repository Git URLs a un dominio Amazon SageMaker AI o a un profilo utente passando un elenco di repository URLs.

Le sezioni seguenti mostrano come collegare un URL dei repository Git al tuo dominio e profilo utente.

### Collegamento a un dominio Amazon SageMaker AI
<a name="studio-updated-git-attach-cli-attach-domain"></a>

Il comando seguente collega un URL dei repository Git a un dominio esistente: 

```
aws sagemaker update-domain --region region --domain-id domain-id \
    --default-user-settings JupyterLabAppSettings={CodeRepositories=[{RepositoryUrl="repository"}]}
```

### Collegamento a un profilo utente
<a name="studio-updated-git-attach-cli-attach-userprofile"></a>

Il comando seguente collega un URL dei repository Git a un profilo utente esistente:

```
aws sagemaker update-user-profile --domain-id domain-id --user-profile-name user-name\
    --user-settings JupyterLabAppSettings={CodeRepositories=[{RepositoryUrl="repository"}]}
```

## Clona un repository Git in Amazon Studio SageMaker
<a name="studio-updated-tasks-git"></a>

Amazon SageMaker Studio si connette solo a un repository Git locale. Per accedere ai file nel repository, clona il repository Git dall’interno di Studio. A tale scopo, Studio offre un’estensione Git che ti consente di inserire l’URL di un repository Git, clonarlo nel tuo ambiente, apportare modifiche e visualizzare la cronologia dei commit. 

Se il repository è privato e richiede credenziali per l’accesso, viene richiesto di inserire le credenziali utente, che includono il nome utente e il token di accesso personale. Per ulteriori informazioni sui token di accesso personali, consulta [Managing your personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens).

Gli amministratori possono anche allegare il repository Git consigliato a URLs livello di dominio Amazon SageMaker AI o profilo utente. Gli utenti possono quindi selezionare l'URL del repository dall'elenco di suggerimenti e clonarlo in Studio. Per ulteriori informazioni sul collegamento di repository suggeriti, consulta [Allega repository Git consigliati ad Amazon SageMaker Studio Classic](studio-git-attach.md).

# Scollegare il repository Git URLs
<a name="studio-updated-git-detach"></a>

Questa sezione mostra come scollegare l'archivio Git URLs da un dominio Amazon SageMaker AI (dominio) o da un profilo utente. Puoi scollegare il repository URLs utilizzando AWS Command Line Interface (AWS CLI) o la console Amazon SageMaker AI.

## Stacca un repository Git usando il AWS CLI
<a name="studio-updated-git-detach-cli"></a>

Per scollegare tutti i repository Git URLs da un dominio o da un profilo utente, devi passare un elenco vuoto di repository di codice. Questo elenco viene passato come parte del parametro `JupyterLabAppSettings` in un comando `update-domain` o `update-user-profile`. Per scollegare solo un URL repository Git, passa l'elenco dei repository di codice senza l'URL repository Git desiderato. 

### Staccare da un dominio Amazon SageMaker AI
<a name="studio-updated-git-detach-cli-domain"></a>

Il comando seguente scollega tutti i repository Git URLs da un dominio:

```
aws sagemaker update-domain --region region --domain-name domain-name \
    --domain-settings JupyterLabAppSettings={CodeRepositories=[]}
```

### Scollegamento da un profilo utente
<a name="studio-updated-git-detach-cli-userprofile"></a>

Il comando seguente scollega tutti i repository Git URLs da un profilo utente:

```
aws sagemaker update-user-profile --domain-name domain-name --user-profile-name user-name\
    --user-settings JupyterLabAppSettings={CodeRepositories=[]}
```

# Immagini personalizzate
<a name="studio-updated-jl-admin-guide-custom-images"></a>

Se hai bisogno di funzionalità diverse da quelle fornite dalla SageMaker distribuzione, puoi aggiungere la tua immagine con estensioni e pacchetti personalizzati. Puoi anche usarla per personalizzare l' JupyterLab interfaccia utente in base alle tue esigenze di branding o di conformità.

La pagina seguente fornirà informazioni e modelli JupyterLab specifici per creare immagini AI personalizzate SageMaker . Questo ha lo scopo di integrare le informazioni e le istruzioni di Amazon SageMaker Studio su come creare la propria immagine SageMaker AI e portare la propria immagine in Studio. Per informazioni sulle immagini Amazon SageMaker AI personalizzate e su come portare la tua immagine in Studio, consulta[Bring Your Own Image (BYOI)](studio-updated-byoi.md). 

**Topics**
+ [Controllo dell’integrità e URL per le applicazioni](#studio-updated-jl-admin-guide-custom-images-app-healthcheck)
+ [Esempi di Dockerfile](#studio-updated-jl-custom-images-dockerfile-templates)

## Controllo dell’integrità e URL per le applicazioni
<a name="studio-updated-jl-admin-guide-custom-images-app-healthcheck"></a>
+ `Base URL`: l’URL di base per l’applicazione BYOI deve essere `jupyterlab/default`. È possibile avere una sola applicazione e deve avere sempre il nome `default`.
+ `HealthCheck API`— L' SageMaker intelligenza artificiale utilizza l'endpoint Health Check presso la porta `8888` per verificare lo stato dell' JupyterLabapplicazione. `jupyterlab/default/api/status`è l'endpoint per il controllo dello stato di salute.
+ `Home/Default URL`— Le `/opt/ml` directory `/opt/.sagemakerinternal` e che vengono utilizzate da. AWS Il file di metadati `/opt/ml` contiene metadati relativi a risorse come `DomainId`.
+ Autenticazione: per abilitare l’autenticazione per i tuoi utenti, disattiva il token dei notebook Jupyter o l’autenticazione basata su password e consenti tutte le origini.

## Esempi di Dockerfile
<a name="studio-updated-jl-custom-images-dockerfile-templates"></a>

Gli esempi seguenti sono `Dockerfile` che soddisfano le informazioni descritte sopra e quelle in [Specifiche dell’immagine personalizzata](studio-updated-byoi-specs.md).

**Nota**  
Se stai trasferendo la tua immagine in SageMaker Unified Studio, dovrai seguire le [specifiche di Dockerfile nella Guida](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html) per l'utente di *Amazon SageMaker Unified* Studio.  
`Dockerfile`alcuni esempi di SageMaker Unified Studio sono disponibili nell'[esempio di Dockerfile](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example) nella *Amazon SageMaker Unified* Studio User Guide.

------
#### [ Example AL2023 Dockerfile ]

L’esempio seguente è un Dockerfile AL2023 che soddisfa le informazioni descritte sopra e quelle in [Specifiche dell’immagine personalizzata](studio-updated-byoi-specs.md).

```
FROM public.ecr.aws/amazonlinux/amazonlinux:2023

ARG NB_USER="sagemaker-user"
ARG NB_UID=1000
ARG NB_GID=100

# Install Python3, pip, and other dependencies
RUN yum install -y \
    python3 \
    python3-pip \
    python3-devel \
    gcc \
    shadow-utils && \
    useradd --create-home --shell /bin/bash --gid "${NB_GID}" --uid ${NB_UID} ${NB_USER} && \
    yum clean all

RUN python3 -m pip install --no-cache-dir \
    'jupyterlab>=4.0.0,<5.0.0' \
    urllib3 \
    jupyter-activity-monitor-extension \
    --ignore-installed

# Verify versions
RUN python3 --version && \
    jupyter lab --version

USER ${NB_UID}
CMD jupyter lab --ip 0.0.0.0 --port 8888 \
    --ServerApp.base_url="/jupyterlab/default" \
    --ServerApp.token='' \
    --ServerApp.allow_origin='*'
```

------
#### [ Example  SageMaker Distribuzione Amazon Dockerfile ]

L’esempio seguente è un Dockerfile Amazon SageMaker Distribution che soddisfa le informazioni descritte sopra e quelle in [Specifiche dell’immagine personalizzata](studio-updated-byoi-specs.md).

```
FROM public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu
ARG NB_USER="sagemaker-user"
ARG NB_UID=1000
ARG NB_GID=100

ENV MAMBA_USER=$NB_USER

USER root

RUN apt-get update
RUN micromamba install sagemaker-inference --freeze-installed --yes --channel conda-forge --name base

USER $MAMBA_USER

ENTRYPOINT ["entrypoint-jupyter-server"]
```

------

# Aggiorna l'immagine SageMaker di distribuzione
<a name="studio-updated-jl-update-distribution-image"></a>

**Importante**  
Questo argomento presuppone che tu abbia creato uno spazio e concesso l’accesso all’utente. Per ulteriori informazioni, consulta [Concessione agli utenti dell’accesso agli spazi](studio-updated-jl-admin-guide-permissions.md).

Aggiorna gli JupyterLab spazi che hai già creato per utilizzare l'ultima versione dell'immagine di SageMaker distribuzione per accedere alle funzionalità più recenti. Puoi utilizzare l'interfaccia utente di Studio o AWS Command Line Interface (AWS CLI) per aggiornare l'immagine.

Nelle sezioni seguenti vengono fornite informazioni sull’aggiornamento di un’immagine.

## Aggiornamento dell’immagine (interfaccia utente)
<a name="studio-updated-jl-update-distribution-image-ui"></a>

L'aggiornamento dell'immagine comporta il riavvio dello JupyterLab spazio dell'utente. Utilizzate la procedura seguente per aggiornare JupyterLab lo spazio dell'utente con l'immagine più recente.

**Per aggiornare l’immagine (interfaccia utente)**

1. Apri Studio. Per informazioni su come aprire Studio, consulta [Avvia Amazon SageMaker Studio](studio-updated-launch.md).

1. Scegli **JupyterLab**.

1. Seleziona lo JupyterLab spazio del tuo utente.

1. Scegli **Interrompi spazio**.

1. Per **Immagine**, seleziona una versione aggiornata di SageMaker AI Distribution Image. Per l’immagine più recente, scegli **Più recente**.

1. Scegli **Esegui lo spazio**.

## Aggiornamento dell’immagine (AWS CLI)
<a name="studio-updated-jl-update-distribution-image-cli"></a>

Questa sezione presuppone che tu abbia installato AWS Command Line Interface (AWS CLI). Per informazioni sull'installazione di AWS CLI, consulta [Installare o aggiornare alla versione più recente di AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

Per aggiornare l’immagine, esegui queste operazioni per lo spazio dell’utente:

1. Eliminare l' JupyterLab applicazione

1. Aggiornamento dello spazio

1. Creazione dell’applicazione

**Importante**  
Per aggiornare l’immagine, devi disporre delle informazioni seguenti:  
ID di dominio: l'ID del dominio Amazon SageMaker AI del tuo utente.
Tipo di applicazione: JupyterLab.
Nome dell’applicazione: predefinito.
Nome dello spazio: il nome specificato per lo spazio.
Tipo di istanza: il tipo di istanza Amazon EC2 utilizzata per eseguire l’applicazione. Ad esempio, `ml.t3.medium`.
SageMaker ARN dell'immagine: Amazon Resource Name (ARN) dell'immagine di distribuzione AI SageMaker . Puoi fornire la versione più recente dell' SageMaker AI Distribution Image specificando una delle due `sagemaker-distribution-cpu` o `sagemaker-distribution-gpu` come identificatore di risorsa.

Per eliminare l' JupyterLab applicazione, esegui il seguente comando:

```
aws sagemaker delete-app \
--domain-id your-user's-domain-id 
--app-type JupyterLab \
--app-name default \
--space-name name-of-your-user's-space
```

Per aggiornare lo spazio dell’utente, utilizza il comando seguente:

```
aws sagemaker update-space \
--space-name name-of-your-user's-space \
--domain-id your-user's-domain-id
```

Se hai aggiornato correttamente lo spazio, vedrai l’ARN dello spazio nella risposta:

```
{
"SpaceArn": "arn:aws:sagemaker:Regione AWS:111122223333:space/your-user's-domain-id/name-of-your-user's-space"
}
```

Per creare l’applicazione, utilizza il comando seguente:

```
aws sagemaker create-app \
--domain-id your-user's-domain-id  \
--app-type JupyterLab \
--app-name default \
--space-name name-of-your-user's-space \
--resource-spec "InstanceType=instance-type,SageMakerImageArn=arn:aws:sagemaker:Regione AWS:555555555555:image/sagemaker-distribution-resource-identifier"
```

# Eliminazione delle risorse inutilizzate
<a name="studio-updated-jl-admin-guide-clean-up"></a>

Per evitare di incorrere in costi di gestione aggiuntivi JupyterLab, consigliamo di eliminare le risorse non utilizzate nel seguente ordine:

1. JupyterLab applicazioni

1. Spazi

1. Profili utente

1. domains

Utilizzate i seguenti comandi AWS Command Line Interface (AWS CLI) per eliminare le risorse all'interno di un dominio:

------
#### [ Delete a JupyterLab application ]

```
aws --region Regione AWS sagemaker delete-app --domain-id example-domain-id --app-name default --app-type JupyterLab --space-name example-space-name
```

------
#### [ Delete a space ]

**Importante**  
Se elimini uno spazio, elimini anche il volume Amazon EBS associato. Ti consigliamo di eseguire il backup di tutti i dati importanti prima di eliminare lo spazio.

```
aws --region Regione AWS sagemaker delete-space --domain-id example-domain-id  --space-name example-space-name
```

------
#### [ Delete a user profile ]

```
aws --region Regione AWS sagemaker delete-user-profile --domain-id example-domain-id --user-profile example-user-profile
```

------

# Quote
<a name="studio-updated-jl-admin-guide-quotas"></a>

JupyterLab, ha quote per quanto segue:
+ La somma di tutti i volumi Amazon EBS all’interno di un Account AWS.
+ I tipi di istanze disponibili per gli utenti.
+ Il numero di istanze che gli utenti possono avviare per un particolare elemento.

Per aumentare le capacità di archiviazione e di calcolo per i tuoi utenti, richiedi un aumento delle quote di AWS . Per ulteriori informazioni sulla richiesta di un aumento delle quote, consulta [Endpoint e quote Amazon SageMaker AI](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html).

# Istanze SageMaker per notebook Amazon
<a name="nbi"></a>

Un'istanza Amazon SageMaker Notebook è un'istanza di calcolo di machine learning (ML) che esegue l'applicazione Jupyter Notebook. Uno dei modi migliori per i professionisti del machine learning (ML) di utilizzare Amazon SageMaker AI è addestrare e distribuire modelli di machine learning utilizzando SageMaker istanze notebook. Le istanze SageMaker notebook aiutano a creare l'ambiente avviando i server Jupyter su Amazon Elastic Compute Cloud (Amazon EC2) e fornendo kernel preconfigurati con i seguenti pacchetti: SageMaker Amazon AWS SDK per Python (Boto3) Python AWS Command Line Interface SDK AWS CLI, (), Conda, Pandas, librerie framework di deep learning e altre librerie per la scienza dei dati e l'apprendimento automatico.

Utilizza i notebook Jupyter nell’istanza del notebook per:
+ preparare ed elaborare i dati
+ scrivere codice per addestrare i modelli
+ distribuisci modelli all'hosting SageMaker 
+ testare o convalidare i modelli

Per informazioni sui prezzi con le istanze per SageMaker notebook Amazon, consulta la pagina [ SageMaker Prezzi di Amazon](https://aws.amazon.com/sagemaker/pricing/).

## Maintenance (Manutenzione)
<a name="nbi-maintenance"></a>

SageMaker L'intelligenza artificiale aggiorna il software sottostante per Amazon SageMaker Notebook Instances almeno una volta ogni 90 giorni. Alcuni aggiornamenti di manutenzione, come gli aggiornamenti del sistema operativo, possono richiedere che l'applicazione venga messa offline per un breve periodo di tempo. Non è possibile eseguire alcuna operazione durante questo periodo mentre il software sottostante è in fase di aggiornamento. Si consiglia di riavviare i notebook almeno una volta ogni 30 giorni per utilizzare automaticamente le patch.

Se l'istanza del notebook non è aggiornata e utilizza software non sicuro, l' SageMaker IA potrebbe aggiornare periodicamente l'istanza come parte della manutenzione regolare. Durante questi aggiornamenti, i dati al di fuori della cartella non `/home/ec2-user/SageMaker` vengono mantenuti.

Per ulteriori informazioni, contatta il [Supporto AWS](https://aws.amazon.com/premiumsupport/).

## Machine Learning con SageMaker Python SDK
<a name="gs-ml-with-sagemaker-pysdk"></a>

Per addestrare, convalidare, distribuire e valutare un modello ML in un'istanza SageMaker notebook, usa Python SageMaker SDK. Gli abstract AWS SDK per Python (Boto3) dell'SDK SageMaker Python e le operazioni API. SageMaker Ti consente di integrare e orchestrare altri AWS servizi, come Amazon Simple Storage Service (Amazon S3) per il salvataggio di dati e artefatti del modello, Amazon Elastic Container Registry (ECR) per l'importazione e la manutenzione dei modelli ML, Amazon Elastic Compute Cloud (Amazon EC2) per la formazione e l'inferenza.

Puoi anche sfruttare le funzionalità di SageMaker intelligenza artificiale che ti aiutano a gestire ogni fase di un ciclo di machine learning completo: etichettatura dei dati, preelaborazione dei dati, formazione dei modelli, implementazione del modello, valutazione delle prestazioni di previsione e monitoraggio della qualità del modello in produzione.

Se sei un utente di SageMaker intelligenza artificiale per la prima volta, ti consigliamo di utilizzare SageMaker Python SDK, seguendo end-to-end il tutorial ML. Per trovare la documentazione open source, consulta l'[SDK Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable).

**Topics**
+ [Maintenance (Manutenzione)](#nbi-maintenance)
+ [Machine Learning con SageMaker Python SDK](#gs-ml-with-sagemaker-pysdk)
+ [Tutorial per la creazione di modelli con le istanze del notebook](gs-console.md)
+ [AL2023 istanze di notebook](nbi-al2023.md)
+ [Istanze del notebook Amazon Linux 2](nbi-al2.md)
+ [JupyterLab controllo delle versioni](nbi-jl.md)
+ [Crea un'istanza Amazon SageMaker Notebook](howitworks-create-ws.md)
+ [Accesso alle istanze del notebook](howitworks-access-ws.md)
+ [Aggiornamento di un'istanza del notebook](nbi-update.md)
+ [Personalizzazione di un'istanza di SageMaker notebook utilizzando uno script LCC](notebook-lifecycle-config.md)
+ [Impostazione del kernel notebook](howitworks-set-kernel.md)
+ [Archivi Git con istanze SageMaker AI Notebook](nbi-git-repo.md)
+ [Metadati dell'istanza del notebook](nbi-metadata.md)
+ [Monitora i log di Jupyter in Amazon Logs CloudWatch](jupyter-logs.md)

# Tutorial per la creazione di modelli con le istanze del notebook
<a name="gs-console"></a>

Questo tutorial introduttivo ti spiega come creare un'istanza di notebook, aprire un SageMaker notebook Jupyter con un kernel preconfigurato con l'ambiente Conda per l'apprendimento automatico e avviare una sessione di intelligenza artificiale per eseguire un SageMaker ciclo di machine learning. end-to-end Imparerai come salvare un set di dati in un bucket Amazon S3 predefinito associato SageMaker automaticamente alla sessione di intelligenza artificiale, inviare un processo di formazione su un modello ML ad Amazon EC2 e distribuire il modello addestrato per la previsione mediante hosting o inferenza in batch tramite Amazon EC2. 

Questo tutorial mostra esplicitamente un flusso di apprendimento automatico completo per addestrare il modello dal pool di modelli integrato nell'intelligenza artificiale. XGBoost SageMaker Utilizzi il [set di dati del censimento degli adulti degli Stati Uniti](https://archive.ics.uci.edu/ml/datasets/adult) e valuti le prestazioni del XGBoost modello di SageMaker intelligenza artificiale addestrato nella previsione del reddito delle persone.
+ [SageMaker AI XGBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html): il [XGBoost](https://xgboost.readthedocs.io/en/latest/)modello è adattato all'ambiente SageMaker AI e preconfigurato come contenitori Docker. SageMaker L'intelligenza artificiale fornisce una suite di [algoritmi integrati](https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html) preparati per l'utilizzo SageMaker delle funzionalità di intelligenza artificiale. Per saperne di più su quali algoritmi ML sono adattati all' SageMaker intelligenza artificiale, consulta [Scegli un algoritmo e usa gli algoritmi SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/algorithms-choose.html) [integrati di Amazon](https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). Per le operazioni API basate sull'algoritmo SageMaker AI, consulta [First-Party Algorithms](https://sagemaker.readthedocs.io/en/stable/algorithms/index.html) in Amazon [Python SDK SageMaker ](https://sagemaker.readthedocs.io/en/stable).
+ [Set di dati Adult Census](https://archive.ics.uci.edu/ml/datasets/adult): il set di dati del [database del Census Bureau del 1994](http://www.census.gov/en.html) di Ronny Kohavi e Barry Becker (Data Mining and Visualization, Silicon Graphics). Il XGBoost modello di SageMaker intelligenza artificiale viene addestrato utilizzando questo set di dati per prevedere se un individuo guadagna più di 50.000 dollari all'anno o meno.

**Topics**
+ [Crea un'istanza Amazon SageMaker Notebook per il tutorial](gs-setup-working-env.md)
+ [Crea un notebook Jupyter nell'istanza del notebook SageMaker](ex1-prepare.md)
+ [Preparazione di un set di dati](ex1-preprocess-data.md)
+ [Eseguire il training di un modello](ex1-train-model.md)
+ [Implementazione del modello in Amazon EC2](ex1-model-deployment.md)
+ [Valutazione del modello](ex1-test-model.md)
+ [Pulisci le risorse delle istanze di SageMaker notebook Amazon](ex1-cleanup.md)

# Crea un'istanza Amazon SageMaker Notebook per il tutorial
<a name="gs-setup-working-env"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Un'istanza Amazon SageMaker Notebook è un'istanza di calcolo Amazon Elastic Compute Cloud (Amazon EC2) di machine learning (ML) completamente gestita. Un'istanza Amazon SageMaker Notebook esegue l'applicazione Jupyter Notebook. Utilizza l’istanza del notebook per creare e gestire i notebook Jupyter per pre-elaborare i dati e per addestrare e implementare i modelli di ML.

**Per creare un'istanza di notebook SageMaker**  
![\[Schermata animata che mostra come creare un'istanza di SageMaker notebook.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/get-started-ni/gs-ni-create-instance.gif)

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Scegli **istanze del notebook**, quindi **Crea un'istanza del notebook**.

1. Nella pagina **Crea un'istanza del notebook** specifica le seguenti informazioni (se un campo non è citato, lasciare i valori predefiniti):

   1. In **Nome istanza del notebook** digita un nome per l'istanza del notebook.

   1. Per **Tipo di istanza del notebook**, scegli `ml.t2.medium`. Questo è il tipo di istanza meno costoso supportato dalle istanze del notebook ed è sufficiente per questo esercizio. Se un tipo di istanza `ml.t2.medium` non è disponibile nella Regione AWS corrente, scegli `ml.t3.medium`.

   1. Per **Identificatore piattaforma**, scegli un tipo di piattaforma su cui creare l'istanza del notebook. Questo tipo di piattaforma definisce il sistema operativo e la JupyterLab versione con cui viene creata l'istanza del notebook. La versione più recente e consigliata è`notebook-al2023-v1`, per un'istanza di notebook Amazon Linux 2023. Per informazioni sui tipi di identificatori di piattaforma, consulta [AL2023 istanze di notebook](nbi-al2023.md) e[Istanze del notebook Amazon Linux 2](nbi-al2.md). Per informazioni sulle JupyterLab versioni, vedere[JupyterLab controllo delle versioni](nbi-jl.md).

   1. In **Ruolo IAM** scegli **Crea un nuovo ruolo**, quindi **Crea ruolo**. Questo ruolo IAM ottiene automaticamente le autorizzazioni per accedere a qualsiasi bucket S3 il cui nome contiene `sagemaker`. Ottiene queste autorizzazioni tramite la `AmazonSageMakerFullAccess` policy, che l' SageMaker IA attribuisce al ruolo. 
**Nota**  
Per concedere al ruolo IAM l’autorizzazione per accedere ai bucket S3 che non includono `sagemaker` nel nome, devi collegare la policy `S3FullAccess`. Puoi anche limitare le autorizzazioni per specifici bucket S3 al ruolo IAM. Per ulteriori informazioni ed esempi sull'aggiunta di policy del bucket al ruolo IAM, consulta [Bucket policy examples](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html).

   1. Scegli **Crea un'istanza del notebook**. 

      In pochi minuti, l' SageMaker intelligenza artificiale avvia un'istanza notebook e vi allega un volume di storage Amazon EBS da 5 GB. L'istanza notebook ha un server notebook Jupyter preconfigurato, librerie SageMaker AI e AWS SDK e un set di librerie Anaconda.

      [Per ulteriori informazioni sulla creazione di un'istanza di notebook, consulta Creare un'istanza SageMaker Notebook.](https://docs.aws.amazon.com/sagemaker/latest/dg/howitworks-create-ws.html) 

## (Facoltativo) Modifica le impostazioni dell'istanza SageMaker Notebook
<a name="gs-change-ni-settings"></a>

Per modificare il tipo di istanza di calcolo ML o la dimensione dello storage Amazon EBS di un'istanza notebook SageMaker AI, modifica le impostazioni dell'istanza notebook.

**Per modificare e aggiornare il tipo di istanza SageMaker Notebook e il volume EBS**

1. Nella pagina delle **istanze di Notebook** nella console SageMaker AI, scegli l'istanza del tuo notebook.

1. Scegli **Azioni**, **Arresta**, quindi attendi che l'istanza del notebook si fermi completamente.

1. Dopo che lo stato dell'istanza del notebook è stato modificato in **Arrestato**, scegli **Azioni**, quindi **Aggiorna le impostazioni**.  
![\[Schermata animata che mostra come aggiornare le impostazioni delle istanze di SageMaker Notebook.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/get-started-ni/gs-ni-update-instance.gif)

   1. Per **Tipo di istanza del notebook**, scegli un tipo di istanza ML diverso.

   1. Per **Dimensioni del volume in GB**, digita un numero intero diverso per specificare una nuova dimensione del volume EBS.
**Nota**  
I volumi di archiviazione EBS sono crittografati, quindi l' SageMaker IA non può determinare la quantità di spazio libero disponibile sul volume. Per questo motivo è possibile aumentare, ma non ridurre, le dimensioni del volume quando si aggiorna un'istanza del notebook. Per ridurre le dimensioni del volume di storage ML in uso, è necessario creare una nuova istanza del notebook con le dimensioni desiderate. 

1. Nella parte inferiore della pagina, seleziona **Aggiorna l'istanza del notebook**. 

1. Una volta completato l'aggiornamento, **avvia** l'istanza del notebook con le nuove impostazioni.

Per ulteriori informazioni sull'aggiornamento delle impostazioni delle istanze di SageMaker Notebook, consulta [Aggiornare un'istanza Notebook](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-update.html). 

## (Facoltativo) Impostazioni avanzate per le istanze SageMaker Notebook
<a name="gs-ni-advanced-settings"></a>

Il seguente video tutorial mostra come configurare e utilizzare le istanze di SageMaker notebook tramite la console SageMaker AI. Include opzioni avanzate, come la configurazione del ciclo di vita dell' SageMaker IA e l'importazione di repository. GitHub (Durata: 26:04)

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/X5CLunIzj3U/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/X5CLunIzj3U)


Per una documentazione completa sull'istanza di SageMaker notebook, consulta [Use Amazon SageMaker Notebook Instances.](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi.html)

# Crea un notebook Jupyter nell'istanza del notebook SageMaker
<a name="ex1-prepare"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Per iniziare a creare script per l'addestramento e la distribuzione del modello, create un notebook Jupyter nell'istanza del notebook. SageMaker Utilizzando il notebook Jupyter, è possibile eseguire esperimenti di machine learning (ML) per l'addestramento e l'inferenza utilizzando le funzionalità di intelligenza artificiale e l'infrastruttura. SageMaker AWS 

**Per creare un notebook Jupyter**  
![\[Schermata animata che mostra come creare un notebook Jupyter nell'istanza del notebook AI. SageMaker\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/get-started-ni/gs-ni-create-notebook.gif)

1. Apri l'istanza del notebook come segue:

   1. Accedi alla console AI all'indirizzo. SageMaker [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)

   1. Nella pagina **Istanze del notebook**, apri l’istanza del notebook scegliendo una delle opzioni seguenti:
      + **Apri JupyterLab** l' JupyterLabinterfaccia
      + **Apri Jupyter** per la visualizzazione classica di Jupyter
**Nota**  
Se lo stato dell'istanza del notebook è **In attesa** nella colonna **Stato**, l'istanza del notebook è ancora in fase di creazione. Lo stato cambierà **InService**quando l'istanza del notebook sarà pronta per l'uso. 

1. Crea un notebook nel modo seguente: 
   + Se hai aperto il taccuino nella JupyterLab visualizzazione, scegli **Nuovo** dal menu **File**, quindi scegli **Notebook**. In **Seleziona kernel** scegli **conda\$1python3**. Queste ambiente preinstallato include l'installazione personalizzata di Anaconda e Python 3.
   + Se hai aperto il notebook nella visualizzazione Jupyter classica, nella scheda **File** scegli **Nuovo** e quindi **conda\$1python3**. Queste ambiente preinstallato include l'installazione personalizzata di Anaconda e Python 3.

1. Salva i notebook come segue:
   + Nella JupyterLab visualizzazione, scegli **File**, scegli **Salva taccuino con nome...** , quindi rinomina il taccuino.
   + Nella visualizzazione Jupyter classica, scegli **File**, quindi **Salva con nome...** e infine rinomina il notebook.

# Preparazione di un set di dati
<a name="ex1-preprocess-data"></a>

In questo passaggio, carichi il [set di dati Adult Census sull'](https://archive.ics.uci.edu/ml/datasets/adult)istanza del tuo notebook utilizzando la libreria SHAP (SHapley Additive Explanations), esamini il set di dati, lo trasformi e lo carichi su Amazon S3. SHAP è un approccio teorico ai giochi per spiegare l'output di qualsiasi modello di machine learning. Per ulteriori informazioni su SHAP, consulta [Welcome to the SHAP documentation](https://shap.readthedocs.io/en/latest/).

Per eseguire il seguente esempio, incolla il codice di esempio in una cella dell'istanza del notebook.

## Caricamento del set di dati del censimento degli adulti utilizzando SHAP
<a name="ex1-preprocess-data-pull-data"></a>

Utilizzando la libreria SHAP, importa il set di dati Adult Census come mostrato di seguito:

```
import shap
X, y = shap.datasets.adult()
X_display, y_display = shap.datasets.adult(display=True)
feature_names = list(X.columns)
feature_names
```

**Nota**  
Se il kernel Jupyter corrente non dispone della libreria SHAP, installala eseguendo il comando `conda` seguente:  

```
%conda install -c conda-forge shap
```
Se lo utilizzi JupyterLab, devi aggiornare manualmente il kernel al termine dell'installazione e degli aggiornamenti. Esegui lo IPython script seguente per spegnere il kernel (il kernel si riavvierà automaticamente):  

```
import IPython
IPython.Application.instance().kernel.do_shutdown(True)
```

L'oggetto elenco `feature_names` dovrebbe restituire il seguente elenco di funzionalità: 

```
['Age',
 'Workclass',
 'Education-Num',
 'Marital Status',
 'Occupation',
 'Relationship',
 'Race',
 'Sex',
 'Capital Gain',
 'Capital Loss',
 'Hours per week',
 'Country']
```

**Suggerimento**  
Se inizi con dati senza etichetta, puoi utilizzare Amazon SageMaker Ground Truth per creare un flusso di lavoro di etichettatura dei dati in pochi minuti. Per ulteriori informazioni, consulta [Label Data](https://docs.aws.amazon.com/sagemaker/latest/dg/data-label.html). 

## Panoramica del set di dati
<a name="ex1-preprocess-data-inspect"></a>

Esegui il seguente script per visualizzare la panoramica statistica del set di dati e gli istogrammi delle funzionalità numeriche.

```
display(X.describe())
hist = X.hist(bins=30, sharey=True, figsize=(20, 10))
```

![\[Panoramica del set di dati del censimento degli adulti.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/get-started-ni/gs-ni-prepare-data-1.png)


**Suggerimento**  
Se desideri utilizzare un set di dati che deve essere pulito e trasformato, puoi semplificare e ottimizzare la preelaborazione dei dati e l'ingegneria delle funzionalità utilizzando Amazon SageMaker Data Wrangler. Per ulteriori informazioni, consulta [Prepare i dati ML con Amazon SageMaker Data Wrangler](https://docs.aws.amazon.com/sagemaker/latest/dg/data-wrangler.html).

## Suddivisione del set di dati in set di dati di addestramento, di convalida e di test
<a name="ex1-preprocess-data-transform"></a>

Utilizzando Sklearn, suddividi il set di dati in un set di addestramento e un set di test. Il set di addestramento viene utilizzato per addestrare il modello, mentre il set di test viene utilizzato per valutare le prestazioni del modello addestrato finale. Il set di dati viene ordinato casualmente in base al seed casuale fisso: l'80% del set di dati per il set di addestramento e il 20% per un set di test.

```
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)
X_train_display = X_display.loc[X_train.index]
```

Suddividi il set di addestramento per separare un set di convalida. Il set di convalida viene utilizzato per valutare le prestazioni del modello addestrato ottimizzando al contempo gli iperparametri del modello. Il 75% del set di addestramento diventa il set di addestramento finale e il resto è il set di convalida.

```
X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.25, random_state=1)
X_train_display = X_display.loc[X_train.index]
X_val_display = X_display.loc[X_val.index]
```

Utilizzando il pacchetto pandas, allinea esplicitamente ogni set di dati concatenando le funzionalità numeriche con le etichette vere.

```
import pandas as pd
train = pd.concat([pd.Series(y_train, index=X_train.index,
                             name='Income>50K', dtype=int), X_train], axis=1)
validation = pd.concat([pd.Series(y_val, index=X_val.index,
                            name='Income>50K', dtype=int), X_val], axis=1)
test = pd.concat([pd.Series(y_test, index=X_test.index,
                            name='Income>50K', dtype=int), X_test], axis=1)
```

Controlla se il set di dati è suddiviso e strutturato come previsto:

```
train
```

![\[Il set di dati di addestramento di esempio.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/get-started-ni/gs-ni-prepare-data-2-train.png)


```
validation
```

![\[Il set di dati di convalida di esempio.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/get-started-ni/gs-ni-prepare-data-2-validation.png)


```
test
```

![\[Il set di dati di test di esempio.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/get-started-ni/gs-ni-prepare-data-2-test.png)


## Conversione dei set di dati di addestramento e di convalida in file CSV
<a name="ex1-preprocess-data-transform-2"></a>

Converti gli oggetti `train` e `validation` dataframe in file CSV in modo che corrispondano al formato del file di input per l'algoritmo. XGBoost 

```
# Use 'csv' format to store the data
# The first column is expected to be the output column
train.to_csv('train.csv', index=False, header=False)
validation.to_csv('validation.csv', index=False, header=False)
```

## Caricamento dei set di dati su Amazon S3
<a name="ex1-preprocess-data-transform-4"></a>

Utilizzando SageMaker AI e Boto3, carica i set di dati di addestramento e convalida nel bucket Amazon S3 predefinito. I set di dati nel bucket S3 verranno utilizzati da un'istanza ottimizzata per il calcolo su SageMaker Amazon EC2 per la formazione. 

Il codice seguente configura l'URI predefinito del bucket S3 per la sessione SageMaker AI corrente, crea una nuova `demo-sagemaker-xgboost-adult-income-prediction` cartella e carica i set di dati di addestramento e convalida nella sottocartella. `data`

```
import sagemaker, boto3, os
bucket = sagemaker.Session().default_bucket()
prefix = "demo-sagemaker-xgboost-adult-income-prediction"

boto3.Session().resource('s3').Bucket(bucket).Object(
    os.path.join(prefix, 'data/train.csv')).upload_file('train.csv')
boto3.Session().resource('s3').Bucket(bucket).Object(
    os.path.join(prefix, 'data/validation.csv')).upload_file('validation.csv')
```

Esegui quanto segue AWS CLI per verificare se i file CSV sono stati caricati correttamente nel bucket S3.

```
! aws s3 ls {bucket}/{prefix}/data --recursive
```

Dovrebbe essere restituito il seguente output:

![\[Output del comando CLI per controllare i set di dati nel bucket S3.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/get-started-ni/gs-ni-prepare-data-3.png)


# Eseguire il training di un modello
<a name="ex1-train-model"></a>

In questa fase, scegli un algoritmo di addestramento ed esegui un job di addestramento per il modello. L'[SDK Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable) fornisce stimatori di framework e stimatori generici per addestrare il modello mentre orchestrate il ciclo di vita dell'apprendimento automatico (ML), accedendo alle funzionalità di SageMaker intelligenza artificiale per la formazione e alle infrastrutture AWS , come Amazon Elastic Container Registry (Amazon ECR), Amazon Elastic Compute Cloud (Amazon EC2), Amazon Simple Storage Service (Amazon) 3) Simple Storage Service S3. Per ulteriori informazioni sugli stimatori di framework integrati nell' SageMaker intelligenza artificiale, consulta [Frameworks](https://sagemaker.readthedocs.io/en/stable/frameworks/index.html) nella documentazione di Amazon [Python SageMaker SDK](https://sagemaker.readthedocs.io/en/stable). Per ulteriori informazioni sugli algoritmi integrati, consulta [Algoritmi integrati e modelli preaddestrati in Amazon SageMaker](algos.md).

**Topics**
+ [Scegliere l'algoritmo di addestramento](#ex1-train-model-select-algorithm)
+ [Creazione ed esecuzione di un processo di addestramento](#ex1-train-model-sdk)

## Scegliere l'algoritmo di addestramento
<a name="ex1-train-model-select-algorithm"></a>

Per scegliere l'algoritmo giusto per il tuo set di dati, in genere devi valutare diversi modelli per trovare i modelli più adatti ai tuoi dati. Per semplicità, l'algoritmo [XGBoost algoritmo con Amazon SageMaker AI](xgboost.md) integrato di SageMaker intelligenza artificiale viene utilizzato in questo tutorial senza la valutazione preliminare dei modelli.

**Suggerimento**  
Se desideri che l' SageMaker intelligenza artificiale trovi un modello appropriato per il tuo set di dati tabulari, usa Amazon SageMaker Autopilot che automatizza una soluzione di machine learning. Per ulteriori informazioni, consulta [SageMaker Pilota automatico](autopilot-automate-model-development.md).

## Creazione ed esecuzione di un processo di addestramento
<a name="ex1-train-model-sdk"></a>

Dopo aver capito quale modello usare, inizia a costruire uno stimatore di intelligenza artificiale per la formazione. SageMaker Questo tutorial utilizza l'algoritmo XGBoost integrato per lo stimatore generico SageMaker AI.

**Per eseguire il processo di addestramento di un modello**

1. Importa l'[SDK Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable) e inizia recuperando le informazioni di base dalla tua sessione di intelligenza artificiale corrente. SageMaker 

   ```
   import sagemaker
   
   region = sagemaker.Session().boto_region_name
   print("AWS Region: {}".format(region))
   
   role = sagemaker.get_execution_role()
   print("RoleArn: {}".format(role))
   ```

   Questa procedura restituisce le seguenti informazioni:
   + `region`— La AWS regione corrente in cui è in esecuzione l'istanza SageMaker AI Notebook.
   + `role`: il ruolo IAM utilizzato dall'istanza del notebook.
**Nota**  
Controlla la versione di SageMaker Python SDK eseguendo. `sagemaker.__version__` Questo tutorial è basato su `sagemaker>=2.20`. Se l'SDK non è aggiornato, installa la versione più recente eseguendo il seguente comando:   

   ```
   ! pip install -qU sagemaker
   ```
Se esegui questa installazione nelle istanze di SageMaker Studio o notebook esistenti, devi aggiornare manualmente il kernel per completare l'applicazione dell'aggiornamento della versione.

1. Crea uno XGBoost stimatore usando la classe. `sagemaker.estimator.Estimator` Nel codice di esempio seguente, lo XGBoost stimatore è denominato. `xgb_model`

   ```
   from sagemaker.debugger import Rule, ProfilerRule, rule_configs
   from sagemaker.session import TrainingInput
   
   s3_output_location='s3://{}/{}/{}'.format(bucket, prefix, 'xgboost_model')
   
   container=sagemaker.image_uris.retrieve("xgboost", region, "1.2-1")
   print(container)
   
   xgb_model=sagemaker.estimator.Estimator(
       image_uri=container,
       role=role,
       instance_count=1,
       instance_type='ml.m4.xlarge',
       volume_size=5,
       output_path=s3_output_location,
       sagemaker_session=sagemaker.Session(),
       rules=[
           Rule.sagemaker(rule_configs.create_xgboost_report()),
           ProfilerRule.sagemaker(rule_configs.ProfilerReport())
       ]
   )
   ```

   Per costruire lo stimatore SageMaker AI, specifica i seguenti parametri:
   + `image_uri`: specifica l'URI dell'immagine del container di addestramento. In questo esempio, l'URI del contenitore di XGBoost addestramento SageMaker AI viene specificato utilizzando. `sagemaker.image_uris.retrieve`
   + `role`— Il ruolo AWS Identity and Access Management (IAM) utilizzato dall' SageMaker IA per eseguire attività per tuo conto (ad esempio, leggere i risultati della formazione, chiamare gli artefatti del modello di chiamata da Amazon S3 e scrivere i risultati della formazione su Amazon S3). 
   + `instance_count` e `instance_type`: il tipo e il numero di istanze di calcolo ML Amazon EC2 da utilizzare per l'addestramento del modello. Per questo esercizio di addestramento, utilizza una singola istanza `ml.m4.xlarge` con 4 CPU, 16 GB di memoria, uno storage Amazon Elastic Block Store (Amazon EBS) e prestazioni di rete elevate. Per ulteriori informazioni sui tipi di istanze di calcolo EC2, consulta [Amazon EC2 Instance Types](https://aws.amazon.com/ec2/instance-types/). Per ulteriori informazioni sulla fatturazione, consulta i [ SageMaker prezzi di Amazon](https://aws.amazon.com/sagemaker/pricing/). 
   + `volume_size`: la dimensione, in GB, del volume di storage EBS da collegare all'istanza di addestramento. Deve avere spazio sufficiente per archiviare i dati di addestramento se utilizzi la modalità `File` (la modalità `File` è attivata per impostazione predefinita). Se non specifichi questo parametro, il suo valore predefinito è 30.
   + `output_path`— Il percorso verso il bucket S3 in cui l' SageMaker intelligenza artificiale archivia l'artefatto del modello e i risultati dell'allenamento.
   + `sagemaker_session`— L'oggetto di sessione che gestisce le interazioni con le operazioni SageMaker API e altri AWS servizi utilizzati dal processo di formazione.
   + `rules`— Specificare un elenco di regole integrate nel SageMaker Debugger. In questo esempio, la `create_xgboost_report()` regola crea un XGBoost report che fornisce informazioni dettagliate sui progressi e sui risultati della formazione e la `ProfilerReport()` regola crea un report sull'utilizzo delle risorse di calcolo EC2. Per ulteriori informazioni, consulta [SageMaker Report interattivo del debugger per XGBoost](debugger-report-xgboost.md).
**Suggerimento**  
Se desideri eseguire l'addestramento distribuito di modelli di deep learning di grandi dimensioni, come reti neurali convoluzionali (CNN) e modelli di elaborazione del linguaggio naturale (NLP), utilizza SageMaker AI Distributed per il parallelismo dei dati o il parallelismo dei modelli. Per ulteriori informazioni, consulta [Formazione distribuita in Amazon SageMaker AI](distributed-training.md).

1. Imposta gli iperparametri per l'algoritmo chiamando il metodo dello stimatore. XGBoost `set_hyperparameters` Per un elenco completo degli XGBoost iperparametri, vedere. [XGBoost iperparametri](xgboost_hyperparameters.md)

   ```
   xgb_model.set_hyperparameters(
       max_depth = 5,
       eta = 0.2,
       gamma = 4,
       min_child_weight = 6,
       subsample = 0.7,
       objective = "binary:logistic",
       num_round = 1000
   )
   ```
**Suggerimento**  
Puoi anche ottimizzare gli iperparametri utilizzando la funzione di ottimizzazione degli iperparametri SageMaker AI. Per ulteriori informazioni, consulta [Ottimizzazione automatica dei modelli con AI SageMaker](automatic-model-tuning.md). 

1. Utilizza la classe `TrainingInput` per configurare un flusso di input di dati per l'addestramento. Il seguente codice di esempio mostra come configurare gli oggetti `TrainingInput` per utilizzare i set di dati di addestramento e di convalida che hai caricato su Amazon S3 nella sezione [Suddivisione del set di dati in set di dati di addestramento, di convalida e di test](ex1-preprocess-data.md#ex1-preprocess-data-transform).

   ```
   from sagemaker.session import TrainingInput
   
   train_input = TrainingInput(
       "s3://{}/{}/{}".format(bucket, prefix, "data/train.csv"), content_type="csv"
   )
   validation_input = TrainingInput(
       "s3://{}/{}/{}".format(bucket, prefix, "data/validation.csv"), content_type="csv"
   )
   ```

1. Per iniziare l'addestramento del modello, chiama il metodo `fit` dello strumento di valutazione con i set di dati di addestramento e di convalida. Impostando `wait=True`, il metodo `fit` visualizza i log di avanzamento e attende il completamento dell'addestramento.

   ```
   xgb_model.fit({"train": train_input, "validation": validation_input}, wait=True)
   ```

   Per ulteriori informazioni sull’addestramento del modello, consulta [Addestra un modello con Amazon SageMaker](how-it-works-training.md). Questo processo di addestramento del tutorial potrebbe richiedere fino a 10 minuti.

   Al termine del processo di formazione, puoi scaricare un rapporto di XGBoost formazione e un rapporto di profilazione generati da Debugger. SageMaker Il rapporto sull' XGBoost allenamento offre informazioni dettagliate sui progressi e sui risultati dell'allenamento, ad esempio la funzione di perdita rispetto all'iterazione, l'importanza delle funzionalità, la matrice di confusione, le curve di precisione e altri risultati statistici dell'allenamento. Ad esempio, è possibile trovare la seguente curva di perdita nel rapporto sull' XGBoost allenamento, che indica chiaramente l'esistenza di un problema di sovradattamento.  
![\[Il grafico nel rapporto di XGBoost allenamento.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/get-started-ni/gs-ni-train-loss-curve-validation-overfitting.png)

   Esegui il seguente codice per specificare l'URI del bucket S3 in cui vengono generati i report di addestramento di Debugger e controlla se i report esistono.

   ```
   rule_output_path = xgb_model.output_path + "/" + xgb_model.latest_training_job.job_name + "/rule-output"
   ! aws s3 ls {rule_output_path} --recursive
   ```

   Scarica i report di XGBoost formazione e profilazione di Debugger nell'area di lavoro corrente:

   ```
   ! aws s3 cp {rule_output_path} ./ --recursive
   ```

   Eseguite lo IPython script seguente per ottenere il collegamento al file del rapporto di formazione: XGBoost 

   ```
   from IPython.display import FileLink, FileLinks
   display("Click link below to view the XGBoost Training report", FileLink("CreateXgboostReport/xgboost_report.html"))
   ```

   Il seguente script IPython restituisce il collegamento al file del report di profiling di Debugger che mostra riepiloghi e dettagli relativi a utilizzo delle risorse dell'istanza EC2, risultati del rilevamento dei colli di bottiglia del sistema e risultati di profiling delle operazioni Python:

   ```
   profiler_report_name = [rule["RuleConfigurationName"] 
                           for rule in xgb_model.latest_training_job.rule_job_summary() 
                           if "Profiler" in rule["RuleConfigurationName"]][0]
   profiler_report_name
   display("Click link below to view the profiler report", FileLink(profiler_report_name+"/profiler-output/profiler-report.html"))
   ```
**Suggerimento**  
Se i report HTML non visualizzano grafici nella JupyterLab vista, è necessario scegliere **Trust HTML** nella parte superiore dei report.  
Per identificare problemi di formazione, come l'overfit, la scomparsa dei gradienti e altri problemi che impediscono la convergenza del modello, usa SageMaker Debugger e intraprendi azioni automatiche durante la prototipazione e l'addestramento dei modelli ML. Per ulteriori informazioni, consulta [Amazon SageMaker Debugger](train-debugger.md). Per trovare un'analisi completa dei parametri del modello, consulta il notebook di esempio [Explainability with Amazon SageMaker Debugger](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/xgboost_census_explanations/xgboost-census-debugger-rules.html#Explainability-with-Amazon-SageMaker-Debugger). 

Ora disponi di un modello addestrato. XGBoost SageMaker L'intelligenza artificiale memorizza l'artefatto del modello nel tuo bucket S3. Per trovare la posizione dell'artefatto del modello, esegui il seguente codice per stampare l'attributo model\$1data dello strumento di valutazione `xgb_model`:

```
xgb_model.model_data
```

**Suggerimento**  
Per misurare le distorsioni che possono verificarsi durante ogni fase del ciclo di vita del machine learning (raccolta dei dati, addestramento e ottimizzazione dei modelli e monitoraggio dei modelli ML utilizzati per la previsione), usa Clarify. SageMaker Per ulteriori informazioni, consulta [Spiegabilità del modello](clarify-model-explainability.md). Per un end-to-end esempio, consultate il taccuino di esempio [Fairness](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-clarify/fairness_and_explainability/fairness_and_explainability.html) and Explainability with Clarify. SageMaker 

# Implementazione del modello in Amazon EC2
<a name="ex1-model-deployment"></a>

Per ottenere previsioni, distribuisci il tuo modello su Amazon EC2 utilizzando SageMaker Amazon AI.

**Topics**
+ [Implementa il modello su AI Hosting Services SageMaker](#ex1-deploy-model)
+ [(Facoltativo) Usa SageMaker AI Predictor per riutilizzare l'endpoint ospitato](#ex1-deploy-model-sdk-use-endpoint)
+ [(Facoltativo) Formulazione di previsioni con la trasformazione di batch](#ex1-batch-transform)

## Implementa il modello su AI Hosting Services SageMaker
<a name="ex1-deploy-model"></a>

Per ospitare un modello tramite Amazon EC2 utilizzando Amazon SageMaker AI, distribuisci il modello su cui hai effettuato la formazione [Creazione ed esecuzione di un processo di addestramento](ex1-train-model.md#ex1-train-model-sdk) chiamando il `deploy` metodo dello estimatore. `xgb_model` Quando chiami il metodo `deploy`, devi specificare il numero e il tipo di istanze ML EC2 che vuoi utilizzare per l'hosting di un endpoint.

```
import sagemaker
from sagemaker.serializers import CSVSerializer
xgb_predictor=xgb_model.deploy(
    initial_instance_count=1,
    instance_type='ml.t2.medium',
    serializer=CSVSerializer()
)
```
+ `initial_instance_count` (int): il numero di istanze per distribuire il modello.
+ `instance_type` (str): il tipo di istanze che desideri per utilizzare il modello distribuito.
+ `serializer`(int) — Serializza i dati di input di vari formati (un NumPy array, un elenco, un file o un buffer) in una stringa in formato CSV. Lo usiamo perché l' XGBoost algoritmo accetta file di input in formato CSV.

Il `deploy` metodo crea un modello implementabile, configura l'endpoint dei servizi di hosting SageMaker AI e avvia l'endpoint per ospitare il modello. Per ulteriori informazioni, consulta il [metodo della classe deploy del generico SageMaker AI Estimator nell'SDK](https://sagemaker.readthedocs.io/en/stable/estimators.html#sagemaker.estimator.Estimator.deploy) Amazon [Python SageMaker ](https://sagemaker.readthedocs.io/en/stable). Per recuperare il nome dell'endpoint generato dal metodo `deploy`, esegui il seguente codice:

```
xgb_predictor.endpoint_name
```

Questo dovrebbe restituire il nome dell'endpoint di `xgb_predictor`. Il formato del nome dell'endpoint è `"sagemaker-xgboost-YYYY-MM-DD-HH-MM-SS-SSS"`. Questo endpoint rimane attivo nell'istanza ML e puoi effettuare previsioni istantanee in qualsiasi momento, a meno che non lo arresti in un secondo momento. Copia il nome di questo endpoint e salvalo per riutilizzarlo ed effettuare previsioni in tempo reale altrove nelle istanze di notebook Studio o AI. SageMaker SageMaker 

**Suggerimento**  
Per ulteriori informazioni sulla compilazione e sull'ottimizzazione del modello per la distribuzione su istanze Amazon EC2 o dispositivi edge, consulta [Compile and Deploy Models with Neo](https://docs.aws.amazon.com/sagemaker/latest/dg/neo.html).

## (Facoltativo) Usa SageMaker AI Predictor per riutilizzare l'endpoint ospitato
<a name="ex1-deploy-model-sdk-use-endpoint"></a>

Dopo aver distribuito il modello su un endpoint, puoi configurare un nuovo predittore SageMaker AI associando l'endpoint ed effettuare continuamente previsioni in tempo reale su qualsiasi altro notebook. Il codice di esempio seguente mostra come utilizzare la classe SageMaker AI Predictor per configurare un nuovo oggetto predittore utilizzando lo stesso endpoint. Riutilizza il nome dell'endpoint che hai usato per `xgb_predictor`.

```
import sagemaker
xgb_predictor_reuse=sagemaker.predictor.Predictor(
    endpoint_name="sagemaker-xgboost-YYYY-MM-DD-HH-MM-SS-SSS",
    sagemaker_session=sagemaker.Session(),
    serializer=sagemaker.serializers.CSVSerializer()
)
```

Il predittore `xgb_predictor_reuse` si comporta esattamente come `xgb_predictor` originale. Per ulteriori informazioni, consulta la classe [SageMaker AI Predictor](https://sagemaker.readthedocs.io/en/stable/predictors.html#sagemaker.predictor.RealTimePredictor) nell'SDK [Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable).

## (Facoltativo) Formulazione di previsioni con la trasformazione di batch
<a name="ex1-batch-transform"></a>

Invece di ospitare un endpoint in produzione, puoi eseguire un processo di inferenza in batch una tantum per fare previsioni su un set di dati di test utilizzando la trasformazione in batch AI. SageMaker [Una volta completato l'addestramento del modello, puoi estendere lo estimatore a un `transformer` oggetto, basato sulla classe AI Transformer. SageMaker ](https://sagemaker.readthedocs.io/en/stable/api/inference/transformer.html) Il trasformatore di batch legge i dati di input da un bucket S3 specificato ed effettua previsioni.

**Per creare un processo di trasformazione di batch**

1. Esegui il seguente codice per convertire le colonne delle funzionalità del set di dati di test in un file CSV e i caricamenti nel bucket S3:

   ```
   X_test.to_csv('test.csv', index=False, header=False)
   
   boto3.Session().resource('s3').Bucket(bucket).Object(
   os.path.join(prefix, 'test/test.csv')).upload_file('test.csv')
   ```

1. Specificate il bucket S3 URIs di input e output per il processo di trasformazione in batch come illustrato di seguito:

   ```
   # The location of the test dataset
   batch_input = 's3://{}/{}/test'.format(bucket, prefix)
   
   # The location to store the results of the batch transform job
   batch_output = 's3://{}/{}/batch-prediction'.format(bucket, prefix)
   ```

1. Crea un oggetto trasformatore specificando il numero minimo di parametri: i parametri `instance_count` e `instance_type` per eseguire il processo di trasformazione di batch e `output_path` per salvare i dati di previsione, come mostrato di seguito: 

   ```
   transformer = xgb_model.transformer(
       instance_count=1, 
       instance_type='ml.m4.xlarge', 
       output_path=batch_output
   )
   ```

1. Avvia il processo di trasformazione di batch eseguendo il metodo `transform()` dell'oggetto `transformer` come mostrato di seguito:

   ```
   transformer.transform(
       data=batch_input, 
       data_type='S3Prefix',
       content_type='text/csv', 
       split_type='Line'
   )
   transformer.wait()
   ```

1. Quando il processo di trasformazione in batch è completo, SageMaker AI crea i dati di `test.csv.out` previsione salvati nel `batch_output` percorso, che dovrebbero avere il seguente formato:. `s3://sagemaker-<region>-111122223333/demo-sagemaker-xgboost-adult-income-prediction/batch-prediction` Esegui quanto segue AWS CLI per scaricare i dati di output del processo di trasformazione in batch:

   ```
   ! aws s3 cp {batch_output} ./ --recursive
   ```

   Ciò dovrebbe creare il file `test.csv.out` nella directory di lavoro corrente. Sarete in grado di visualizzare i valori float previsti in base alla regressione logistica del processo di formazione. XGBoost 

# Valutazione del modello
<a name="ex1-test-model"></a>

Ora che hai addestrato e distribuito un modello utilizzando Amazon SageMaker AI, valuta il modello per assicurarti che generi previsioni accurate su nuovi dati. Per la valutazione del modello, utilizza il set di dati di test creato in [Preparazione di un set di dati](ex1-preprocess-data.md).

## Valuta il modello implementato nei servizi di hosting AI SageMaker
<a name="ex1-test-model-endpoint"></a>

Per valutare il modello e utilizzarlo in produzione, richiama l'endpoint con il set di dati di test e verifica se le inferenze ottenute restituiscono la precisione desiderata.

**Per valutare il modello**

1. Configura la seguente funzione per prevedere ogni riga del set di test. Nel seguente codice di esempio, l'argomento `rows` consiste nello specificare il numero di righe da prevedere alla volta. Puoi modificarne il valore per eseguire un'inferenza in batch che utilizzi appieno la risorsa hardware dell'istanza.

   ```
   import numpy as np
   def predict(data, rows=1000):
       split_array = np.array_split(data, int(data.shape[0] / float(rows) + 1))
       predictions = ''
       for array in split_array:
           predictions = ','.join([predictions, xgb_predictor.predict(array).decode('utf-8')])
       return np.fromstring(predictions[1:], sep=',')
   ```

1. Esegui il seguente codice per fare previsioni sul set di dati di test e tracciare un istogramma. Devi prendere solo le colonne delle funzionalità del set di dati di test, esclusa la colonna 0 per i valori effettivi.

   ```
   import matplotlib.pyplot as plt
   
   predictions=predict(test.to_numpy()[:,1:])
   plt.hist(predictions)
   plt.show()
   ```  
![\[Un istogramma dei valori previsti.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/get-started-ni/gs-ni-eval-predicted-values-histogram.png)

1. I valori previsti sono di tipo float. Per determinare `True` o `False` in base ai valori float, devi impostare un valore limite. Come mostrato nel seguente codice di esempio, utilizza la libreria Scikit-learn per restituire i parametri di confusione di output e il report di classificazione con un limite di 0,5.

   ```
   import sklearn
   
   cutoff=0.5
   print(sklearn.metrics.confusion_matrix(test.iloc[:, 0], np.where(predictions > cutoff, 1, 0)))
   print(sklearn.metrics.classification_report(test.iloc[:, 0], np.where(predictions > cutoff, 1, 0)))
   ```

   Questo dovrebbe restituire la seguente matrice di confusione:  
![\[Un esempio di matrice di confusione e statistiche dopo aver ottenuto l'inferenza del modello distribuito.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/get-started-ni/gs-ni-evaluate-confusion-matrix.png)

1. Per trovare il limite migliore con il set di test specificato, calcola la funzione di perdita di log della regressione logistica. La funzione di perdita di log è definita come la probabilità log negativa di un modello logistico che restituisce le probabilità di previsione per le etichette ground truth. Il seguente codice di esempio calcola numericamente e iterativamente i valori di perdita di log (`-(y*log(p)+(1-y)log(1-p)`), dove `y` è l'etichetta vera e `p` è una stima della probabilità dell'esempio di test corrispondente. Restituisce una perdita di log rispetto al grafico limite.

   ```
   import matplotlib.pyplot as plt
   
   cutoffs = np.arange(0.01, 1, 0.01)
   log_loss = []
   for c in cutoffs:
       log_loss.append(
           sklearn.metrics.log_loss(test.iloc[:, 0], np.where(predictions > c, 1, 0))
       )
   
   plt.figure(figsize=(15,10))
   plt.plot(cutoffs, log_loss)
   plt.xlabel("Cutoff")
   plt.ylabel("Log loss")
   plt.show()
   ```

   Ciò deve restituire la seguente curva di perdita di log.  
![\[Esempio che segue la curva di perdita dei log.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/get-started-ni/gs-ni-evaluate-logloss-vs-cutoff.png)

1. Trova i punti minimi della curva di errore utilizzando le `min` funzioni NumPy `argmin` and:

   ```
   print(
       'Log loss is minimized at a cutoff of ', cutoffs[np.argmin(log_loss)], 
       ', and the log loss value at the minimum is ', np.min(log_loss)
   )
   ```

   Ciò dovrebbe restituire: `Log loss is minimized at a cutoff of 0.53, and the log loss value at the minimum is 4.348539186773897`.

   Invece di calcolare e ridurre al minimo la funzione di perdita di log, puoi stimare una funzione di costo come alternativa. Ad esempio, se desideri addestrare un modello a eseguire una classificazione binaria per un problema aziendale, ad esempio un problema di predizione del tasso di abbandono dei clienti, puoi impostare pesi sugli elementi della matrice di confusione e calcolare di conseguenza la funzione di costo.

Ora hai addestrato, implementato e valutato il tuo primo modello di intelligenza artificiale. SageMaker 

**Suggerimento**  
Per monitorare la qualità del modello, la qualità dei dati e la deriva dei bias, usa Amazon SageMaker Model Monitor e SageMaker AI Clarify. Per ulteriori informazioni, consulta [Amazon SageMaker Model Monitor, Monitor](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor.html) [Data Quality](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-data-quality.html), [Monitor Model Quality](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality.html), [Monitor Bias Drift](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-model-monitor-bias-drift.html) e [Monitor Feature Attribution](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-model-monitor-feature-attribution-drift.html) Drift.

**Suggerimento**  
Per ottenere la revisione umana di previsioni ML a bassa attendibilità o di un campione casuale di previsioni, utilizza i flussi di lavoro di revisione umana di IA aumentata Amazon. Per ulteriori informazioni, consulta [Using Amazon Augmented AI for Human Review](https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-use-augmented-ai-a2i-human-review-loops.html).

# Pulisci le risorse delle istanze di SageMaker notebook Amazon
<a name="ex1-cleanup"></a>

Per evitare di incorrere in addebiti inutili, usa Console di gestione AWS per eliminare gli endpoint e le risorse che hai creato durante l'esecuzione degli esercizi. 

**Nota**  
I log e i processi di addestramento non possono essere eliminati e vengono conservati a tempo indeterminato.

**Nota**  
Se prevedi di esplorare altri esercizi in questa guida, ti consigliamo tenere alcune di queste risorse, ad esempio la tua istanza del notebook, il bucket S3 e il ruolo IAM.

 

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)ed elimina le seguenti risorse:
   + L'endpoint. L'eliminazione dell'endpoint comporta anche l'eliminazione dell'istanza di calcolo ML o delle istanze che la supportano.

     1. In **Inferenza**, scegli **Endpoint**.

     1. Seleziona l'endpoint creato nell'esempio, scegli **Azioni**, quindi **Elimina**.
   + La configurazione dell'endpoint.

     1. In **Inferenza**, scegli **Configurazioni endpoint**.

     1. Seleziona la configurazione dell'endpoint creata nell'esempio, scegli **Azioni**, quindi **Elimina**.
   + Il modello.

     1. In **Inferenza**, scegli **Modelli**.

     1. Seleziona il modello creato nell'esempio, scegli **Azioni**, quindi **Elimina**.
   + L'istanza del notebook. Prima di eliminare l'istanza del notebook, è necessario arrestarla.

     1. In **Notebook**, scegli **Istanze del notebook**.

     1. Seleziona l'istanza del notebook creata nell'esempio, scegli **Azioni**, quindi **Arresta**. L'istanza del notebook richiede diversi minuti per essere arrestata. Quando **Stato** passa a **Arrestato**, vai alla fase successiva.

     1. Scegli **Azioni**, quindi **Elimina**.

1. Apri la console Amazon S3 all'indirizzo [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/), quindi elimina il bucket creato per archiviare gli artefatti del modello e il set di dati di addestramento. 

1. Apri la CloudWatch console Amazon all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/), quindi elimina tutti i gruppi di log i cui nomi iniziano con`/aws/sagemaker/`.

# AL2023 istanze di notebook
<a name="nbi-al2023"></a>

Le istanze di SageMaker notebook Amazon attualmente supportano i sistemi AL2023 operativi. AL2023è ora il sistema operativo più recente e consigliato per le istanze dei notebook. Puoi selezionare il sistema operativo su cui si basa l'istanza del notebook quando crei l'istanza del notebook.

SageMaker L'IA supporta le istanze di notebook basate sui seguenti AL2023 sistemi operativi.
+ **notebook-al2023-v1**: queste istanze per notebook supportano la versione 4. JupyterLab Per informazioni sulle [JupyterLab controllo delle versioni](nbi-jl.md) versioni JupyterLab , vedere.

**Topics**
+ [Tipi di istanze supportati](#nbi-al2023-instances)
+ [Kernel disponibili](#nbi-al2023-kernel)

## Tipi di istanze supportati
<a name="nbi-al2023-instances"></a>

AL2023 supporta i tipi di istanze elencati nella sezione **Notebook Instances** in [SageMaker AI Pricing](https://aws.amazon.com/sagemaker/pricing/), con l'eccezione che AL2023 non supporta `ml.p2` le `ml.g3` istanze. `ml.p3`

## Kernel disponibili
<a name="nbi-al2023-kernel"></a>

La tabella seguente fornisce informazioni sui kernel disponibili per le istanze dei SageMaker notebook. Tutte queste immagini sono supportate sulle istanze di notebook basate sul `notebook-al2023-v1` sistema operativo.


| Nome del kernel | Description | 
| --- | --- | 
| R | Un kernel utilizzato per eseguire l'analisi e la visualizzazione dei dati utilizzando il codice R di un notebook Jupyter. | 
| Sparkmagic () PySpark | Un kernel utilizzato per eseguire la data science con cluster Spark remoti dei notebook Jupyter utilizzando il linguaggio di programmazione Python. Questo kernel viene fornito con Python 3.10. | 
| Sparkmagic (Spark) | Un kernel utilizzato per eseguire la data science con cluster Spark remoti di notebook Jupyter utilizzando il linguaggio di programmazione Scala. Questo kernel viene fornito con Python 3.10. | 
| Sparkmagic (SparkR) | Un kernel utilizzato per eseguire la data science con cluster Spark remoti di notebook Jupyter utilizzando il linguaggio di programmazione R. Questo kernel viene fornito con Python 3.10. | 
| conda\$1python3 | Un ambiente conda preinstallato con i pacchetti più diffusi per data science e machine learning. Questo kernel viene fornito con Python 3.10. | 
| conda\$1pytorch | Un ambiente conda preinstallato con la PyTorch versione 2.7.0, oltre ai più diffusi pacchetti di data science e machine learning. Questo kernel viene fornito con Python 3.10. | 

# Istanze del notebook Amazon Linux 2
<a name="nbi-al2"></a>

**Importante**  
JupyterLab 1 e JupyterLab 3 non sono più supportate a partire dal 30 giugno 2025. Non puoi più creare nuove istanze del notebook o riavviare istanze del notebook interrotte utilizzando queste versioni. Le istanze in servizio esistenti potrebbero continuare a funzionare, ma non riceveranno più aggiornamenti di sicurezza o correzioni di bug. Esegui la migrazione a JupyterLab 4 istanze di notebook per un supporto continuo. Per ulteriori informazioni, consulta [JupyterLab manutenzione della versione](nbi-jl.md#nbi-jl-version-maintenance).

**Nota**  
AL2023 è il sistema operativo più recente e consigliato disponibile per le istanze dei notebook. Per ulteriori informazioni, consulta [AL2023 istanze di notebook](nbi-al2023.md).

Le istanze di SageMaker notebook Amazon attualmente supportano i sistemi operativi Amazon Linux 2 (AL2). Puoi selezionare il sistema operativo su cui si basa l'istanza del notebook quando crei l'istanza del notebook.

SageMaker AI supporta istanze di notebook basate sui seguenti sistemi operativi Amazon Linux 2.
+ **notebook-al2-v1 (deprecato): queste istanze di notebook supportavano la versione 1**. JupyterLab A partire dal 30 giugno 2025, non sarà più possibile creare nuove istanze con questo identificatore di piattaforma. Per informazioni sulle versioni JupyterLab , [JupyterLab controllo delle versioni](nbi-jl.md) vedere.
+ **notebook-al2-v2** (obsoleta): queste istanze di notebook supportavano la versione 3. JupyterLab A partire dal 30 giugno 2025, non sarà più possibile creare nuove istanze con questo identificatore di piattaforma. Per informazioni sulle versioni JupyterLab , [JupyterLab controllo delle versioni](nbi-jl.md) vedere.
+ **notebook-al2-v3**: queste istanze di notebook supportano la versione 4. JupyterLab Per informazioni sulle [JupyterLab controllo delle versioni](nbi-jl.md) versioni JupyterLab , vedere.

Le istanze di notebook create prima del 18/08/2021 vengono eseguite automaticamente su Amazon Linux (). AL1 Le istanze di notebook basate su AL1 sono entrate in fase di manutenzione il 12/01/2022 e non sono più disponibili per la creazione di nuove istanze notebook a partire dal 02/01/2023. Per sostituire AL1, ora hai la possibilità di creare istanze di SageMaker notebook Amazon con AL2. Per ulteriori informazioni, consulta [AL1 Piano della fase di manutenzione](#nbi-al2-deprecation).

**Topics**
+ [Tipi di istanze supportati](#nbi-al2-instances)
+ [Kernel disponibili](#nbi-al2-kernel)
+ [AL1 Piano della fase di manutenzione](#nbi-al2-deprecation)

## Tipi di istanze supportati
<a name="nbi-al2-instances"></a>

Amazon Linux 2 supporta i tipi di istanze elencati nella sezione **Notebook Instances** in [Amazon SageMaker Pricing](https://aws.amazon.com/sagemaker/pricing/), con l'eccezione che Amazon Linux 2 non supporta le `ml.p2` istanze.

## Kernel disponibili
<a name="nbi-al2-kernel"></a>

La tabella seguente fornisce informazioni sui kernel disponibili per SageMaker le istanze di notebook. Tutte queste immagini sono supportate sulle istanze del notebook basate sui sistemi operativi `notebook-al2-v1`, `notebook-al2-v2` e `notebook-al2-v3`.

SageMaker kernel delle istanze di notebook


| Nome del kernel | Description | 
| --- | --- | 
| R | Un kernel utilizzato per eseguire l'analisi e la visualizzazione dei dati utilizzando il codice R di un notebook Jupyter. | 
| Sparkmagic () PySpark | Un kernel utilizzato per eseguire la data science con cluster Spark remoti dei notebook Jupyter utilizzando il linguaggio di programmazione Python. Questo kernel viene fornito con Python 3.10. | 
| Sparkmagic (Spark) | Un kernel utilizzato per eseguire la data science con cluster Spark remoti di notebook Jupyter utilizzando il linguaggio di programmazione Scala. Questo kernel viene fornito con Python 3.10. | 
| Sparkmagic (SparkR) | Un kernel utilizzato per eseguire la data science con cluster Spark remoti di notebook Jupyter utilizzando il linguaggio di programmazione R. Questo kernel viene fornito con Python 3.10. | 
| conda\$1python3 | Un ambiente conda preinstallato con i pacchetti più diffusi per data science e machine learning. Questo kernel viene fornito con Python 3.10. | 
| conda\$1pytorch\$1p310 |  Un ambiente conda preinstallato con la PyTorch versione 2.2.0, oltre ai più diffusi pacchetti di data science e machine learning. Questo kernel viene fornito con Python 3.10. | 
| conda\$1tensorflow2\$1p310 | Un ambiente conda preinstallato con la TensorFlow versione 2.16.0, oltre ai più diffusi pacchetti di data science e machine learning. Questo kernel viene fornito con Python 3.10. | 

## AL1 Piano della fase di manutenzione
<a name="nbi-al2-deprecation"></a>

La tabella seguente riporta una tempistica relativa all' AL1 entrata nella fase di manutenzione estesa. La fase AL1 di manutenzione coincide anche con la deprecazione di Python 2 e Chainer. I notebook basati su AL2 non dispongono di kernel Python 2 e Chainer gestiti.


|  Data  |  Description  | 
| --- | --- | 
|  18/08/2021  |  Vengono lanciate le istanze di notebook basate su. AL2 Le istanze di notebook appena lanciate continuano a essere impostate come impostazione predefinita. AL1 AL1 è supportato da patch e aggiornamenti di sicurezza, ma non da nuove funzionalità. Puoi scegliere tra i due sistemi operativi durante l'avvio di una nuova istanza del notebook.  | 
|  31/10/2022  |  L'identificatore di piattaforma predefinito per le istanze di SageMaker notebook cambia da Amazon Linux (al1-v1) ad Amazon Linux 2 (al2-v2). Puoi scegliere tra i due sistemi operativi durante l'avvio di una nuova istanza del notebook.  | 
|  12/01/2022  |  AL1 non è più supportato con patch e aggiornamenti di sicurezza non critici. AL1 riceve ancora correzioni per problemi [critici](https://nvd.nist.gov/vuln-metrics/cvss#) relativi alla sicurezza. Puoi comunque avviare le istanze su AL1, ma assumerti i rischi associati all'utilizzo di un sistema operativo non supportato.  | 
|  01/02/2023  |  AL1 non è più un'opzione disponibile per la creazione di nuove istanze di notebook. Dopo questa data, i clienti possono creare istanze di notebook con gli identificatori della AL2 piattaforma. I notebook esistenti con uno `INSERVICE` stato devono essere migrati alla piattaforma più recente poiché non è possibile garantire la disponibilità continua delle istanze dei AL1 notebook.  | 
|  31/03/2024  |  AL1 raggiungerà la fine del ciclo di vita delle istanze dei notebook il 31 marzo 2024. Dopo questa data, non AL1 riceverà più aggiornamenti di sicurezza, correzioni di bug e non sarà più disponibile per la creazione di nuove istanze di notebook.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/nbi-al2.html)  | 

### Migrazione ad Amazon Linux 2
<a name="nbi-al2-upgrade"></a>

L'istanza del AL1 notebook esistente non viene migrata automaticamente ad Amazon Linux 2. Per aggiornare l'istanza del AL1 notebook ad Amazon Linux 2, è necessario creare una nuova istanza notebook, replicare il codice e l'ambiente ed eliminare la vecchia istanza del notebook. Per ulteriori informazioni, consulta il blog [Amazon Linux 2 migration](https://aws.amazon.com/blogs/machine-learning/migrate-your-work-to-amazon-sagemaker-notebook-instance-with-amazon-linux-2/ ).

# JupyterLab controllo delle versioni
<a name="nbi-jl"></a>

**Importante**  
JupyterLab Le versioni 1 e JupyterLab 3 non sono più supportate a partire dal 30 giugno 2025. Non puoi più creare nuove istanze del notebook o riavviare istanze del notebook interrotte utilizzando queste versioni. Le istanze in servizio esistenti potrebbero continuare a funzionare, ma non riceveranno più aggiornamenti di sicurezza o correzioni di bug. Esegui la migrazione a JupyterLab 4 istanze di notebook per un supporto continuo. Per ulteriori informazioni, consulta [JupyterLab manutenzione della versione](#nbi-jl-version-maintenance).

L'interfaccia delle istanze di SageMaker notebook Amazon si basa su JupyterLab, un ambiente di sviluppo interattivo basato sul Web per notebook, codice e dati. I notebook ora supportano l'utilizzo di 1, 3 o JupyterLab 4. JupyterLab JupyterLab Una singola istanza di notebook può eseguire una singola istanza di JupyterLab (al massimo). È possibile disporre di più istanze di notebook con JupyterLab versioni diverse. 

È possibile configurare il notebook per eseguire la JupyterLab versione preferita selezionando l'identificatore di piattaforma appropriato. Usa la console AI AWS CLI o la console SageMaker AI per creare l'istanza del tuo notebook. Per ulteriori informazioni sugli identificatori di piattaforma, consulta [AL2023 istanze di notebook](nbi-al2023.md) e[Istanze del notebook Amazon Linux 2](nbi-al2.md). Se non configuri esplicitamente un identificatore di piattaforma, l'istanza del notebook esegue per impostazione predefinita 1. JupyterLab 

**Topics**
+ [JupyterLab manutenzione della versione](#nbi-jl-version-maintenance)
+ [JupyterLab 4](#nbi-jl-4)
+ [JupyterLab 3](#nbi-jl-3)
+ [Crea un taccuino JupyterLab con la tua versione](nbi-jl-create.md)
+ [Visualizza la JupyterLab versione di un notebook dalla console](nbi-jl-view.md)

## JupyterLab manutenzione della versione
<a name="nbi-jl-version-maintenance"></a>

JupyterLab Le piattaforme 1 e JupyterLab 3 hanno raggiunto la fine del supporto standard il 30 giugno 2025. A partire da questa data:
+ Non è più possibile creare nuove istanze di notebook o riavviare le istanze di JupyterLab 1 e JupyterLab 3 notebook interrotte.
+ Le istanze notebook JupyterLab 1 e JupyterLab 3 esistenti in servizio possono continuare a funzionare, ma non ricevono più aggiornamenti di sicurezza SageMaker AI o correzioni di bug critici.
+ La gestione della sicurezza di queste istanze obsolete è responsabilità dell’utente.
+ In caso di problemi con JupyterLab 1 o JupyterLab 3 istanze di notebook esistenti, l' SageMaker intelligenza artificiale non può garantirne la disponibilità continua. È necessario migrare il carico di lavoro su un'istanza per JupyterLab 4 notebook.

Esegui la migrazione del tuo lavoro su JupyterLab 4 istanze di notebook (l'identificatore di piattaforma della versione più recente è [notebook-al2023-v1](nbi-al2023.md)) per assicurarti un ambiente sicuro e supportato. Ciò consente di sfruttare le versioni più recenti dei notebook Jupyter e di altre librerie ML. JupyterLab Per istruzioni, consulta [migrare il tuo lavoro su un'istanza di notebook SageMaker AI con Amazon Linux 2](https://aws.amazon.com/blogs//machine-learning/migrate-your-work-to-amazon-sagemaker-notebook-instance-with-amazon-linux-2/).

## JupyterLab 4
<a name="nbi-jl-4"></a>

JupyterLab Il supporto 4 è disponibile solo sulla piattaforma del sistema operativo Amazon Linux 2. JupyterLab 4 include le seguenti funzionalità che non sono disponibili in JupyterLab 3:
+ Rendering ottimizzato per un’esperienza più veloce
+ Impostazioni di adesione per un cambio di scheda più rapido e prestazioni migliori con notebook lunghi. Per ulteriori informazioni, consulta il post sul blog [ JupyterLab 4.0 is Here](https://blog.jupyter.org/jupyterlab-4-0-is-here-388d05e03442).
+ Editor di testo aggiornato
+ Nuovo gestore di estensioni che si installa da pypi
+ Nuovi miglioramenti all’interfaccia utente, tra cui la ricerca dei documenti e accessibilità migliorata

È possibile eseguire JupyterLab 4 specificando [notebook-al2023-v1 (la versione più recente e consigliata) o notebook-al2-v3](nbi-al2023.md) come identificatore di piattaforma durante la creazione dell'istanza del [notebook](nbi-al2.md).

**Nota**  
Se si tenta di migrare a un'istanza JupyterLab 4 Notebook da un'altra JupyterLab versione, le modifiche alla versione del pacchetto tra 3 e 4 potrebbero interrompere qualsiasi configurazione o estensione del ciclo di vita esistente. JupyterLab JupyterLab Jupyter/JupyterLab 

**Modifiche alla versione del pacchetto**

JupyterLab 4 presenta le seguenti modifiche alla versione del pacchetto rispetto alla 3: JupyterLab 
+ JupyterLab è stato aggiornato da 3.x a 4.x.
+ Il notebook Jupyter è stato aggiornato dalla versione 6.x alla 7.x.
+ jupyterlab-git è stato aggiornato alla versione 0.50.0.

## JupyterLab 3
<a name="nbi-jl-3"></a>

**Importante**  
JupyterLab 1 e JupyterLab 3 non sono più supportati a partire dal 30 giugno 2025. Non puoi più creare nuove istanze del notebook o riavviare istanze del notebook interrotte utilizzando queste versioni. Le istanze in servizio esistenti potrebbero continuare a funzionare, ma non riceveranno più aggiornamenti di sicurezza o correzioni di bug. Esegui la migrazione a JupyterLab 4 istanze di notebook per un supporto continuo. Per ulteriori informazioni, consulta [JupyterLab manutenzione della versione](#nbi-jl-version-maintenance).

 JupyterLab Il supporto 3 è disponibile solo sulla piattaforma del sistema operativo Amazon Linux 2. JupyterLab 3 include le seguenti funzionalità che non sono disponibili in JupyterLab 1. Per ulteriori informazioni su queste funzionalità, vedi [è stata rilasciata la JupyterLab versione 3.0\$1](https://blog.jupyter.org/jupyterlab-3-0-is-out-4f58385e25bb) . 
+  Debugger visivo quando si utilizzano i seguenti kernel: 
  +  conda\$1pytorch\$1p38 
  +  conda\$1tensorflow2\$1p38 
  +  conda\$1amazonei\$1pytorch\$1latest\$1p37 
+ Filtro del browser di file
+ Sommario
+ Supporto multilingue
+ Modalità semplice
+ Modalità interfaccia singola
+ Modifica live di file in formato SVG con rendering aggiornato
+ Interfaccia utente per i tag delle celle del notebook

### Modifiche importanti a JupyterLab 3
<a name="nbi-jl-3-changes"></a>

 Per informazioni sulle modifiche importanti quando si utilizza JupyterLab 3, consulta i seguenti registri delle JupyterLab modifiche: 
+  [v2.0.0](https://github.com/jupyterlab/jupyterlab/releases) 
+  [v3.0.0](https://jupyterlab.readthedocs.io/en/stable/getting_started/changelog.html#for-developers) 

 **Modifiche alla versione del pacchetto** 

 JupyterLab 3 presenta le seguenti modifiche alla versione del pacchetto rispetto alla JupyterLab 1: 
+  JupyterLab è stato aggiornato da 1.x a 3.x.
+  Il notebook Jupyter è stato aggiornato da 5.x a 6.x.
+  jupyterlab-git è stato aggiornato alla versione 0.37.1.
+  nbserverproxy 0.x (0.3.2) è stato sostituito con 3.x (3.2.1). jupyter-server-proxy

# Crea un taccuino JupyterLab con la tua versione
<a name="nbi-jl-create"></a>

**Importante**  
JupyterLab Le versioni 1 e JupyterLab 3 non sono più supportate a partire dal 30 giugno 2025. Non puoi più creare nuove istanze del notebook o riavviare istanze del notebook interrotte utilizzando queste versioni. Le istanze in servizio esistenti potrebbero continuare a funzionare, ma non riceveranno più aggiornamenti di sicurezza o correzioni di bug. Esegui la migrazione a JupyterLab 4 istanze di notebook per un supporto continuo. Per ulteriori informazioni, consulta [JupyterLab manutenzione della versione](nbi-jl.md#nbi-jl-version-maintenance).

 È possibile selezionare la JupyterLab versione al momento della creazione dell'istanza del notebook dalla console seguendo la procedura riportata di seguito. [Crea un'istanza Amazon SageMaker Notebook](howitworks-create-ws.md) 

 È inoltre possibile selezionare la JupyterLab versione passando il `platform-identifier` parametro durante la creazione dell'istanza del notebook utilizzando AWS CLI quanto segue: 

```
create-notebook-instance --notebook-instance-name <NEW_NOTEBOOK_NAME> \
--instance-type <INSTANCE_TYPE> \
--role-arn <YOUR_ROLE_ARN> \
--platform-identifier notebook-al2-v3
```

# Visualizza la JupyterLab versione di un notebook dalla console
<a name="nbi-jl-view"></a>

**Importante**  
JupyterLab 1 e JupyterLab 3 non sono più supportati a partire dal 30 giugno 2025. Non puoi più creare nuove istanze del notebook o riavviare istanze del notebook interrotte utilizzando queste versioni. Le istanze in servizio esistenti potrebbero continuare a funzionare, ma non riceveranno più aggiornamenti di sicurezza o correzioni di bug. Esegui la migrazione a JupyterLab 4 istanze di notebook per un supporto continuo. Per ulteriori informazioni, consulta [JupyterLab manutenzione della versione](nbi-jl.md#nbi-jl-version-maintenance).

 È possibile visualizzare la JupyterLab versione di un notebook utilizzando la seguente procedura: 

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel pannello di navigazione a sinistra seleziona **Notebook**.

1.  Dal menu a discesa, seleziona **Istanze del notebook** per accedere alla pagina **Istanze del notebook**. 

1.  Dall'elenco delle istanze del notebook, seleziona il nome istanza del notebook. 

1.  Nella pagina delle **impostazioni dell'istanza Notebook**, visualizza il **Platform Identifier** per vedere la JupyterLab versione del notebook. 

# Crea un'istanza Amazon SageMaker Notebook
<a name="howitworks-create-ws"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Un'istanza Amazon SageMaker Notebook è un'istanza di calcolo ML che esegue l'applicazione Jupyter Notebook. SageMaker L'intelligenza artificiale gestisce la creazione dell'istanza e delle relative risorse. Utilizza i notebook Jupyter nell’istanza del notebook per:
+ preparare ed elaborare i dati
+ scrivere codice per addestrare i modelli
+ distribuisci modelli all'hosting SageMaker AI
+ testare o convalidare i modelli

Per creare un'istanza notebook, utilizza la console SageMaker AI o il [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateNotebookInstance.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateNotebookInstance.html)API.

Il tipo di istanza del notebook scelta dipende da come utilizzi l'istanza del notebook. Controlla che l’istanza del notebook non sia vincolata da memoria, CPU o IO. Per caricare un set di dati in memoria sull’istanza del notebook per esplorarlo o pre-elaborarlo, ti consigliamo di scegliere un tipo di istanza con memoria RAM sufficiente per il set di dati. Ciò richiede un’istanza con almeno 16 GB di memoria (.xlarge o superiore). Se prevedi di utilizzare l’istanza del notebook per la preelaborazione intensiva di elaborazione, ti consigliamo di scegliere un'istanza ottimizzata per il calcolo, ad esempio c4 o c5.

Una procedura ottimale per l'utilizzo di un SageMaker notebook consiste nell'utilizzare l'istanza del notebook per orchestrare altri AWS servizi. Ad esempio, puoi utilizzare l’istanza del notebook per gestire l’elaborazione di set di dati di grandi dimensioni. A tale scopo, effettua chiamate ai servizi AWS Glue for ETL (extract, transform, and load) o Amazon EMR per la mappatura e la riduzione dei dati tramite Hadoop. Puoi utilizzare AWS i servizi come forme temporanee di calcolo o archiviazione per i tuoi dati.

Puoi archiviare e recuperare i dati di addestramento e test utilizzando un bucket Amazon Simple Storage Service. Puoi quindi utilizzare l' SageMaker intelligenza artificiale per addestrare e costruire il tuo modello. Il risultato è che il tipo di istanza del notebook non influirà sulla velocità di addestramento e test del modello.

Dopo aver ricevuto la richiesta, SageMaker AI esegue le seguenti operazioni:
+ **Crea un'interfaccia di rete**: se scegli la configurazione VPC opzionale SageMaker , AI crea l'interfaccia di rete nel tuo VPC. Utilizza l'ID di sottorete fornito nella richiesta per determinare in quale zona di disponibilità creare la sottorete. SageMaker L'IA associa il gruppo di sicurezza fornito nella richiesta alla sottorete. Per ulteriori informazioni, consulta [Connessione di un'istanza del notebook in un VPC a risorse esterne](appendix-notebook-and-internet-access.md). 
+ **Avvia un'istanza di calcolo ML: SageMaker AI avvia un'istanza** di calcolo ML in un VPC AI. SageMaker SageMaker L'intelligenza artificiale esegue le attività di configurazione che le consentono di gestire l'istanza del notebook. Se hai specificato il tuo VPC, l' SageMaker IA abilita il traffico tra il tuo VPC e l'istanza del notebook.
+ **Installa pacchetti e librerie Anaconda per piattaforme di deep learning comuni**: SageMaker AI installa tutti i pacchetti Anaconda inclusi nel programma di installazione. [Per ulteriori informazioni, consulta l'elenco dei pacchetti di Anaconda.](https://docs.anaconda.com/free/anaconda/pkg-docs/) SageMaker L'IA installa anche le librerie di deep learning TensorFlow e Apache MXNet . 
+ **Allega un volume di archiviazione ML: l'SageMaker IA collega un volume** di archiviazione ML all'istanza di calcolo ML. Puoi utilizzare il volume come un'area di lavoro per pulire il set di dati di addestramento o per archiviare temporaneamente dati di convalida, testo o altri dati. Scegli qualsiasi dimensione tra 5 e 16384 GB, in incrementi di 1 GB, per il volume. Il valore predefinito è 5 GB. I volumi di archiviazione ML sono crittografati, quindi l' SageMaker IA non può determinare la quantità di spazio libero disponibile sul volume. Per questo motivo è possibile aumentare, ma non ridurre, le dimensioni del volume quando si aggiorna un'istanza del notebook. Per ridurre le dimensioni del volume di storage ML in uso, è necessario creare una nuova istanza del notebook con le dimensioni desiderate.

  Solo i file e i dati salvati all'interno della cartella `/home/ec2-user/SageMaker` persistono tra sessioni di istanze del notebook. I file e i dati che vengono salvati all'esterno di questa directory vengono sovrascritti quando l'istanza del notebook viene arrestata e riavviata. La `/tmp` directory di ogni istanza di notebook fornisce un minimo di 10 GB di spazio di archiviazione in un instance store. Un archivio dell'istanza è uno storage temporaneo a livello di blocco che non è persistente. Quando l'istanza viene arrestata o riavviata, SageMaker AI elimina il contenuto della directory e tutte le personalizzazioni del sistema operativo. Questo storage temporaneo fa parte del volume root dell'istanza del notebook.

  Se l'istanza del notebook non è aggiornata e utilizza software non sicuro, l' SageMaker IA potrebbe aggiornare periodicamente l'istanza come parte della manutenzione regolare. Durante questi aggiornamenti, i dati al di fuori della cartella non `/home/ec2-user/SageMaker` vengono mantenuti. Per ulteriori informazioni sulle patch di manutenzione e sicurezza, vedere. [Maintenance (Manutenzione)](nbi.md#nbi-maintenance)

  Se il tipo di istanza utilizzato dall'istanza notebook è NVMe supportato, i clienti possono utilizzare i volumi di NVMe Instance Store disponibili per quel tipo di istanza. Per le istanze con volumi di NVMe store, tutti i volumi di instance store vengono automaticamente collegati all'istanza al momento del lancio. Per ulteriori informazioni sui tipi di istanze e sui volumi di NVMe archiviazione associati, consulta i [dettagli sul tipo di istanza Amazon Elastic Compute Cloud](https://aws.amazon.com/ec2/instance-types/).

  Per rendere disponibile il volume di NVMe archiviazione collegato per l'istanza notebook, completa i passaggi in [Rendere disponibili i volumi di store delle istanze sull'istanza](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/add-instance-store-volumes.html#making-instance-stores-available-on-your-instances). Completa le fasi con l’accesso root o utilizzando uno script di configurazione del ciclo di vita.
**Nota**  
NVMe i volumi dell'instance store non sono storage persistente. Questa archiviazione è di breve durata nell’istanza e deve essere riconfigurata ogni volta che viene avviata un’istanza con questa archiviazione.

**Per creare un'istanza di notebook SageMaker AI:**

1. Apri la console SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/). 

1. Scegli **Istanze del notebook**, quindi **Crea un'istanza del notebook**.

1. Nella pagina **Crea un'istanza del notebook**, fornisci le seguenti informazioni: 

   1. In **Nome dell’istanza notebook**, digita un nome per l'istanza del notebook.

   1. Per il **Tipo di istanza notebook**, scegli una dimensione dell'istanza adatta al tuo caso d'uso. Per un elenco dei tipi di istanze e delle quote supportati, consulta [Amazon SageMaker AI Service](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html#limits_sagemaker) Quotas.

   1. Per **Identificatore piattaforma**, scegli un tipo di piattaforma su cui creare l'istanza del notebook. Questo tipo di piattaforma determina il sistema operativo e la JupyterLab versione con cui viene creata l'istanza del notebook. La versione più recente e consigliata è`notebook-al2023-v1`, per un'istanza di notebook Amazon Linux 2023. Al 30 giugno 2025, solo JupyterLab 4 sono supportate per le nuove istanze. Per informazioni sui tipi di identificatori di piattaforma, consulta e. [AL2023 istanze di notebook](nbi-al2023.md) [Istanze del notebook Amazon Linux 2](nbi-al2.md) Per informazioni sulle JupyterLab versioni, vedere[JupyterLab controllo delle versioni](nbi-jl.md).
**Importante**  
JupyterLab Le versioni 1 e JupyterLab 3 non sono più supportate a partire dal 30 giugno 2025. Non puoi più creare nuove istanze del notebook o riavviare istanze del notebook interrotte utilizzando queste versioni. Le istanze in servizio esistenti potrebbero continuare a funzionare, ma non riceveranno più aggiornamenti di sicurezza o correzioni di bug. Esegui la migrazione a JupyterLab 4 istanze di notebook per un supporto continuo. Per ulteriori informazioni, consulta [JupyterLab manutenzione della versione](nbi-jl.md#nbi-jl-version-maintenance).

   1. (Facoltativo) L'opzione **Configurazione aggiuntiva** consente agli utenti avanzati di creare uno script shell che può essere eseguito durante la creazione o l'avvio dell'istanza. Questo script, chiamato script di configurazione del ciclo di vita, può essere utilizzato per impostare l'ambiente per il notebook o per eseguire altre funzioni. Per informazioni, consulta [Personalizzazione di un'istanza di SageMaker notebook utilizzando uno script LCC](notebook-lifecycle-config.md).

   1. (Facoltativo) **Configurazione aggiuntiva** consente inoltre di specificare la dimensione, in GB, del volume di storage ML collegato all'istanza del notebook. È possibile scegliere una dimensione compresa tra 5 GB e 16.384 GB, in incrementi di 1 GB. Puoi utilizzare il volume per pulire il set di dati di addestramento o per archiviare temporaneamente dati di convalida o di altro tipo.

   1. (Facoltativo) Per **Versione minima di IMDS**, seleziona una versione dall'elenco a discesa. Se questo valore è impostato su v1, con l'istanza del notebook si possono utilizzare entrambe le versioni. Se è selezionata la versione v2, IMDSv2 può essere utilizzata solo con l'istanza del notebook. Per informazioni su IMDSv2, consulta [ IMDSv2Use](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html).
**Nota**  
A partire dal 31 ottobre 2022, la versione IMDS minima predefinita per le istanze dei SageMaker notebook cambia da a IMDSv1 . IMDSv2   
A partire dal 1° febbraio 2023, IMDSv1 non sarà più disponibile per la creazione di nuove istanze di notebook. Dopo questa data, potrai creare istanze del notebook con una versione minima di IMDS di 2.

   1. Per il **ruolo IAM**, scegli un ruolo IAM esistente nel tuo account con le autorizzazioni necessarie per accedere alle risorse SageMaker AI o **crea un nuovo ruolo**. Se scegli **Crea un nuovo ruolo**, l' SageMaker IA crea un ruolo IAM denominato`AmazonSageMaker-ExecutionRole-YYYYMMDDTHHmmSS`. La policy AWS gestita `AmazonSageMakerFullAccess` è allegata al ruolo. Il ruolo fornisce autorizzazioni che consentono all'istanza del notebook di chiamare SageMaker AI e Amazon S3.

   1. In **Accesso root**, per abilitare l’accesso root per tutti gli utenti dell’istanza del notebook, scegli **Abilita**. Per disabilitare l’accesso root per gli utenti, scegli **Disabilita**. Se abiliti l’accesso root, tutti gli utenti dell’istanza del notebook avranno privilegi di amministratore e potranno accedere a tutti i file che contiene e modificarli. 

   1. (Facoltativo) L'opzione **Chiave di crittografia** consente di crittografare i dati sul volume di storage ML collegato all'istanza del notebook utilizzando una chiave AWS Key Management Service (AWS KMS). Se si prevede di archiviare informazioni sensibili nel volume di storage ML, valutare se crittografare le informazioni. 

   1. (Facoltativo) **Rete** consente di inserire l'istanza del notebook in cloud privato virtuale (VPC, Virtual Private Cloud). Un VPC fornisce sicurezza aggiuntiva e limita l’accesso alle risorse del VPC da origini esterne al VPC. Per ulteriori informazioni VPCs, consulta la [Amazon VPC User Guide](https://docs.aws.amazon.com/vpc/latest/userguide/).

      **Per aggiungere l'istanza del notebook a un VPC:**

      1. Scegli il **VPC** e un. **SubnetId**

      1. Per **(Gruppo di sicurezza**, scegli il gruppo di sicurezza predefinito del VPC. 

      1. Se l'istanza del notebook deve disporre dell'accesso a Internet, abilita l'accesso diretto a Internet. Per **Accesso diretto a Internet**, scegli **Abilita**. L'accesso a Internet può ridurre la sicurezza dell'istanza del notebook. Per ulteriori informazioni, consulta [Connessione di un'istanza del notebook in un VPC a risorse esterne](appendix-notebook-and-internet-access.md). 

   1. (Facoltativo) Per associare i repository Git all'istanza del notebook, scegli un repository di default e fino a tre repository aggiuntivi. Per ulteriori informazioni, consulta [Archivi Git con istanze SageMaker AI Notebook](nbi-git-repo.md).

   1. Scegli **Crea un'istanza del notebook**. 

      In pochi minuti, Amazon SageMaker AI lancia un'istanza di calcolo ML, in questo caso un'istanza notebook, e vi allega un volume di storage ML. L'istanza del notebook include un server Notebook Jupyter preconfigurato e un set di librerie Anaconda. Per ulteriori informazioni, consulta l'API [  `CreateNotebookInstance`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateNotebookInstance.html). 

1. Quando lo stato dell'istanza del notebook è `InService`, nella console, l'istanza del notebook è pronta per l'uso. Scegli **Apri Jupyter** accanto al nome notebook per aprire il panello di controllo di Jupyter in formato classico.
**Nota**  
Per aumentare la sicurezza della tua istanza di SageMaker notebook Amazon, tutti i `notebook.region.sagemaker.aws` domini regionali sono registrati nella [Public Suffix List (](https://publicsuffix.org/)PSL) di Internet. Per una maggiore sicurezza, ti consigliamo di utilizzare i cookie con un `__Host-` prefisso per impostare cookie sensibili per i domini delle istanze del tuo notebook. SageMaker Questa pratica ti aiuterà a difendere il tuo dominio dai tentativi CSRF (cross-site request forgery). Per ulteriori informazioni, consulta la pagina [Set-Cookie](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#cookie_prefixes) nel sito web con la documentazione per gli sviluppatori [mozilla.org](https://www.mozilla.org/en-GB/?v=1).

    Puoi scegliere **Apri JupyterLab per aprire** la dashboard. JupyterLab La dashboard fornisce l’accesso all’istanza del notebook.

   Per ulteriori informazioni sui notebook Jupyter, consulta il [notebook Jupyter ](https://jupyter-notebook.readthedocs.io/en/stable/).

# Accesso alle istanze del notebook
<a name="howitworks-access-ws"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Per accedere alle tue istanze di SageMaker notebook Amazon, scegli una delle seguenti opzioni: 
+ Tramite la console.

  Scegli **Istanze del notebook**. La console visualizza un elenco di istanze del notebook nel tuo account. Per aprire un'istanza del notebook con un'interfaccia Jupyter standard, scegli **Apri Jupyter** per tale istanza. Per aprire un'istanza di notebook con un' JupyterLab interfaccia, scegli **Apri JupyterLab** per quell'istanza.  
![\[Esempio di sezione Istanze del notebook nella console.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/ws-notebook-10.png)

  La console utilizza le tue credenziali di accesso per inviare un [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html)Richiesta API all'IA. SageMaker SageMaker L'IA restituisce l'URL dell'istanza del notebook e la console apre l'URL in un'altra scheda del browser e visualizza la dashboard del notebook Jupyter. 
**Nota**  
L'URL che puoi ottenere da una chiamata a [  `CreatePresignedNotebookInstanceUrl`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html) è valido solo per 5 minuti. Se tenti di utilizzare l'URL dopo la scadenza del limite di 5 minuti, verrai indirizzato alla pagina di accesso. Console di gestione AWS 
+ Utilizzo dell'API.

  Per ottenere l'URL dell'istanza del notebook, chiama l'API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html) e utilizza l'URL restituito dall'API per aprire l'istanza del notebook.

Utilizza il pannello di controllo del notebook Jupyter per creare e gestire i notebook e scrivere codice. Per ulteriori informazioni sui notebook Jupyter, consulta [http://jupyter.org/documentation.html](http://jupyter.org/documentation.html).

# Aggiornamento di un'istanza del notebook
<a name="nbi-update"></a>

Dopo aver creato un'istanza di notebook, puoi aggiornarla utilizzando la console SageMaker AI e il funzionamento dell'[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateNotebookInstance.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateNotebookInstance.html)API.

Puoi aggiornare i tag di un'istanza del notebook il cui stato è `InService`. Per aggiornare qualsiasi altro attributo di un'istanza del notebook, il suo stato deve essere `Stopped`.

**Per aggiornare un'istanza di notebook nella console SageMaker AI:**

1. Apri la console SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/). 

1. Scegli **Istanze del notebook**.

1. Scegli l'istanza del notebook che desideri aggiornare selezionando il **nome** dell'istanza del notebook dall'elenco.

1. Se lo **stato** del notebook non è `Stopped`, seleziona il pulsante **Stop** per arrestare l'istanza del notebook. 

   Quando esegui questa operazione, lo stato dell'istanza del notebook cambia in `Stopping`. Attendi che lo stato cambi in `Stopped` per completare le seguenti fasi. 

1. Seleziona il pulsante **Modifica** per aprire la pagina **Modifica istanza del notebook**. Per informazioni sulle proprietà del notebook che è possibile aggiornare, consulta [Crea un'istanza Amazon SageMaker Notebook](howitworks-create-ws.md).

1. Aggiorna l'istanza del notebook e successivamente seleziona il pulsante **Aggiorna istanza del notebook** nella parte inferiore della pagina per tornare alla pagina delle istanze del notebook. Lo stato dell'istanza del notebook cambia in **Aggiornamento in corso**. 

   Al termine dell'aggiornamento dell’istanza del notebook, lo stato cambia in `Stopped`.

# Personalizzazione di un'istanza di SageMaker notebook utilizzando uno script LCC
<a name="notebook-lifecycle-config"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Una *configurazione del ciclo di vita* (LCC) fornisce gli script shell che vengono eseguiti solo quando crei o avvii l’istanza del notebook. Quando crei un’istanza del notebook, puoi creare una nuova LCC o collegare una LCC già disponibile. Gli script di configurazione del ciclo di vita sono utili per i seguenti casi d’uso:
+ Installazione di pacchetti o notebook di esempio su un’istanza del notebook
+ Configurazione della rete e della sicurezza per un’istanza del notebook
+ Utilizzo di uno script shell per personalizzare un’istanza del notebook

È inoltre possibile utilizzare uno script di configurazione del ciclo di vita per accedere ai AWS servizi dal notebook. Ad esempio, puoi creare uno script che ti consenta di utilizzare il tuo notebook per controllare altre AWS risorse, come un'istanza Amazon EMR.

[Gestiamo un archivio pubblico di script di configurazione del ciclo di vita dei notebook che riguardano casi d'uso comuni per la personalizzazione delle istanze dei notebook all'indirizzo -. https://github.com/aws-samples/ amazon-sagemaker-notebook-instance lifecycle-config-samples](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples)

**Nota**  
Ogni script ha un limite di 16.384 caratteri.  
Il valore della variabile di ambiente `$PATH` disponibile per entrambi gli script è `/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin`. La directory di lavoro, che è il valore della variabile di ambiente `$PWD`, è `/`.  
Visualizza CloudWatch i log per le configurazioni del ciclo di vita delle istanze di notebook nel gruppo di log nel flusso di log. `/aws/sagemaker/NotebookInstances` `[notebook-instance-name]/[LifecycleConfigHook]`  
Gli script non possono essere eseguiti per più di 5 minuti. Se uno script viene eseguito per più di 5 minuti, ha esito negativo e l'istanza del notebook non viene creata né avviata. Per ridurre il tempo di esecuzione degli script, prova a:  
Eliminare le fasi non necessarie. Ad esempio, limita gli ambienti conda in cui installare pacchetti di grandi dimensioni.
Esegui le attività in processi paralleli.
Utilizzare il comando `nohup` nello script.

**È possibile visualizzare un elenco delle configurazioni del ciclo di vita delle istanze notebook create in precedenza selezionando la configurazione del ciclo di vita nella console AI.** SageMaker Puoi collegare una LCC di un’istanza del notebook quando crei una nuova istanza del notebook. Per ulteriori informazioni sulla creazione di un'istanza del notebook, consulta [Crea un'istanza Amazon SageMaker Notebook](howitworks-create-ws.md).

# Creazione di uno script di configurazione del ciclo di vita
<a name="notebook-lifecycle-config-create"></a>

La procedura seguente mostra come creare uno script di configurazione del ciclo di vita da utilizzare con un'istanza Amazon SageMaker Notebook. Per ulteriori informazioni sulla creazione di un'istanza del notebook, consulta [Crea un'istanza Amazon SageMaker Notebook](howitworks-create-ws.md).

**Per creare una configurazione del ciclo di vita**

1. Apri la console SageMaker AI all'indirizzo. [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/) 

1. Nel pannello di navigazione sinistro scegli **Configurazioni admin**.

1. In **Configurazioni admin**, scegli **Configurazioni del ciclo di vita**. 

1. Dalla pagina **Configurazioni del ciclo di vita**, scegli la scheda **Istanza del notebook**.

1. Scegli **Crea configurazione)**.

1. Per **Nome**, digita un nome utilizzando caratteri alfanumerici e "-", ma senza spazi. Un nome può contenere un massimo di 63 caratteri.

1. (Facoltativo) Per creare uno script che viene eseguito quando si crea o si avvia un notebook, scegli **Avvia notebook**.

1. Nell'editor **Avvia notebook** digita lo script.

1. (Facoltativo) Per creare uno script che viene eseguito solo una volta, quando viene creato il notebook, scegli **Crea notebook**.

1. Nell'editor **Crea notebook** digita lo script di configurazione delle reti.

1. Scegli **Crea configurazione**.

## Best practice per la configurazione del ciclo di vita
<a name="nbi-lifecycle-config-bp"></a>

Di seguito sono indicate le best practice per l'utilizzo delle configurazioni del ciclo di vita:

**Importante**  
Non è consigliabile archiviare informazioni sensibili nello script di configurazione del ciclo di vita.

**Importante**  
Gli script di configurazione del ciclo di vita vengono eseguiti con accesso root e privilegi di ruolo di esecuzione IAM dell'istanza notebook, indipendentemente dall'impostazione di accesso root per gli utenti di notebook. I responsabili con le autorizzazioni per creare o modificare le configurazioni del ciclo di vita e aggiornare le istanze del notebook possono eseguire codice con le credenziali del ruolo di esecuzione. Per ulteriori informazioni, consulta [Controlla l'accesso root a un'istanza di notebook SageMaker](nbi-root-access.md).
+ Le configurazioni del ciclo di vita vengono eseguite dall'utente `root`. Se lo script apporta modifiche all'interno della directory `/home/ec2-user/SageMaker`, ad esempio installando un pacchetto con `pip`, utilizza il comando `sudo -u ec2-user` per l'esecuzione come utente `ec2-user`. Si tratta dello stesso utente con cui viene eseguito Amazon SageMaker AI.
+ SageMaker Le istanze di notebook AI utilizzano `conda` ambienti per implementare kernel diversi per i notebook Jupyter. Per installare pacchetti disponibili per uno o più kernel del notebook, racchiudi i comandi per installare i pacchetti con i comandi di ambiente `conda` che attivano l'ambiente conda che contiene il kernel in cui desideri installare i pacchetti.

  Ad esempio, per installare un pacchetto solo per l'ambiente `python3`, utilizza il codice seguente:

  ```
  #!/bin/bash
  sudo -u ec2-user -i <<EOF
  
  # This will affect only the Jupyter kernel called "conda_python3".
  source activate python3
  
  # Replace myPackage with the name of the package you want to install.
  pip install myPackage
  # You can also perform "conda install" here as well.
  
  source deactivate
  
  EOF
  ```

  Per installare un pacchetto in tutti gli ambienti conda nell'istanza del notebook, utilizza il codice seguente:

  ```
  #!/bin/bash
  sudo -u ec2-user -i <<EOF
  
  # Note that "base" is special environment name, include it there as well.
  for env in base /home/ec2-user/anaconda3/envs/*; do
      source /home/ec2-user/anaconda3/bin/activate $(basename "$env")
  
      # Installing packages in the Jupyter system environment can affect stability of your SageMaker
      # Notebook Instance.  You can remove this check if you'd like to install Jupyter extensions, etc.
      if [ $env = 'JupyterSystemEnv' ]; then
        continue
      fi
  
      # Replace myPackage with the name of the package you want to install.
      pip install --upgrade --quiet myPackage
      # You can also perform "conda install" here as well.
  
      source /home/ec2-user/anaconda3/bin/deactivate
  done
  
  EOF
  ```
+ È necessario archiviare tutti gli ambienti conda nella cartella degli ambienti predefinita (/). home/user/anaconda3/envs

**Importante**  
Quando si crea o si modifica uno script, si consiglia di utilizzare un editor di testo che fornisca interruzioni di riga in stile UNIX, ad esempio l'editor di testo disponibile nella console quando si crea un notebook. La copia di testo da un sistema operativo non Linux potrebbe includere interruzioni di riga incompatibili e causare un errore imprevisto.

# Installazione di librerie e kernel esterni
<a name="nbi-add-external"></a>

**Importante**  
Attualmente, tutti i pacchetti negli ambienti di istanze notebook sono concessi in licenza per l'uso con Amazon SageMaker AI e non richiedono licenze commerciali aggiuntive. Tuttavia, questa condizione potrebbe essere soggetta a modifiche in futuro, pertanto ti consigliamo di consultare regolarmente i termini di licenza per eventuali aggiornamenti.

Le istanze di SageMaker notebook Amazon sono dotate di più ambienti già installati. Questi ambienti contengono kernel Jupyter e pacchetti Python tra cui: scikit, Pandas, e. NumPy TensorFlow MXNet Questi ambienti, insieme a tutti i file nella cartella `sample-notebooks`, vengono aggiornati quando interrompi e avvii un'istanza del notebook. Puoi anche installare i tuoi ambienti che contengono la tua scelta di pacchetti e kernel.

I diversi kernel Jupyter nelle istanze di notebook SageMaker Amazon sono ambienti conda separati. Per informazioni sugli ambienti conda, consulta [Managing environments](https://conda.io/docs/user-guide/tasks/manage-environments.html) nella documentazione di *Conda*.

Installazione di ambienti e kernel personalizzati sul volume Amazon EBS dell'istanza del notebook. Ciò garantisce che persistano quando si arresta e si riavvia l'istanza del notebook e che tutte le librerie esterne installate non vengano aggiornate dall'IA. SageMaker Per farlo, usa una configurazione del ciclo di vita che includa sia uno script che venga eseguito quando crei l’istanza del notebook (`on-create)` sia uno script che venga eseguito ogni volta che riavvii l’istanza del notebook (`on-start`). Per ulteriori informazioni sull’utilizzo delle configurazioni del ciclo di vita dell'istanza del notebook, consulta [Personalizzazione di un'istanza di SageMaker notebook utilizzando uno script LCC](notebook-lifecycle-config.md). Esiste un GitHub repository che contiene esempi di script di configurazione del ciclo di vita in [SageMaker AI Notebook Instance Lifecycle](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples) Config Samples.

Gli esempi in [https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/persistent-conda-ebs/on-create.sh e https://github.com/aws-samples/ amazon-sagemaker-notebook-instance -lifecycle-config-samples/blob/master/scripts/persistent-conda-ebs/on](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/persistent-conda-ebs/on-create.sh)[-start.sh](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/persistent-conda-ebs/on-start.sh) mostrano le migliori pratiche per l'installazione di ambienti e kernel su un'istanza di notebook. Lo script `on-create` installa la libreria `ipykernel` per creare ambienti personalizzati come kernel Jupyter, quindi utilizza `pip install` e `conda install` per installare le librerie. È possibile adattare lo script per creare ambienti personalizzati e installare le librerie desiderate. SageMaker L'intelligenza artificiale non aggiorna queste librerie quando interrompi e riavvii l'istanza del notebook, quindi puoi assicurarti che il tuo ambiente personalizzato disponga delle versioni specifiche delle librerie che desideri. Lo script `on-start` installa tutti gli ambienti personalizzati creati come kernel Jupyter, in modo che vengano visualizzati nell'elenco a discesa del menu **Nuovo** di Jupyter.

## Strumenti di installazione dei pacchetti
<a name="nbi-add-external-tools"></a>

SageMaker i notebook supportano i seguenti strumenti di installazione dei pacchetti:
+ installazione conda
+ installazione pip

Puoi installare pacchetti utilizzando i seguenti metodi:
+ Script di configurazione del ciclo di vita.

  Per gli script di esempio, consulta [SageMaker AI Notebook Instance Lifecycle Config](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples) Samples. Per ulteriori informazioni sulla configurazione del ciclo di vita, consulta [Customize a Notebook Instance Using a Lifecycle Configuration Script](https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html).
+ Notebook: sono supportati i seguenti comandi.
  + `%conda install`
  + `%pip install`
+ Terminale Jupyter: puoi installare pacchetti utilizzando direttamente pip e conda.

Dall'interno di un notebook puoi utilizzare la sintassi del comando di sistema (le righe che iniziano con\$1) per installare pacchetti, ad esempio, `!pip install` e `!conda install`. Più recentemente, sono stati aggiunti nuovi comandi a: and. IPython `%pip` `%conda` Si consiglia di utilizzare questi comandi per installare i pacchetti dall'interno di un notebook, perché tengono correttamente conto dell'ambiente attivo o dell'interprete utilizzato. Per ulteriori informazioni, consulta [Add %pip and %conda magic functions](https://github.com/ipython/ipython/pull/11524).

### Conda
<a name="nbi-add-external-tools-conda"></a>

Conda è un sistema open source di gestione dei pacchetti e un sistema di gestione dell'ambiente, che può installare pacchetti e le loro dipendenze. SageMaker L'intelligenza artificiale supporta l'utilizzo di Conda con uno dei due canali principali, il canale predefinito e il canale conda-forge. Per ulteriori informazioni, consulta la pagina [Conda channels](https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/channels.html). Il canale conda-forge è un community channel in cui i collaboratori possono caricare pacchetti.

**Nota**  
Per via del modo in cui Conda risolve il grafico delle dipendenze, l'installazione di pacchetti da conda-forge può richiedere molto più tempo (nel peggiore dei casi, fino a 10 minuti).

Deep Learning AMI include molti ambienti conda e molti pacchetti preinstallati. A causa del numero di pacchetti preinstallati, è difficile trovare un set di pacchetti la cui compatibilità sia garantita. Potresti visualizzare il seguente avviso: “L'ambiente non è coerente, controlla attentamente il piano dei pacchetti”. Nonostante questo avviso, l' SageMaker IA garantisce che tutti gli ambienti forniti dall' SageMaker IA siano corretti. SageMaker L'IA non può garantire che i pacchetti installati dall'utente funzionino correttamente.

**Nota**  
Gli utenti di SageMaker AI AWS Deep Learning AMIs e Amazon EMR possono accedere all'archivio commerciale di Anaconda senza richiedere una licenza commerciale fino al 1° febbraio 2024 se utilizzano Anaconda in tali servizi. Per qualsiasi utilizzo del repository commerciale Anaconda successivo al 1° febbraio 2024, i clienti sono responsabili di determinare autonomamente i propri obblighi in merito alla licenza Anaconda.

Conda ha due metodi per attivare gli ambienti: conda. activate/deactivate, and source activate/deactivate Per ulteriori informazioni, consulta [Should I use 'conda activate' or 'source activate' in Linux](https://stackoverflow.com/questions/49600611/python-anaconda-should-i-use-conda-activate-or-source-activate-in-linux).

SageMaker L'intelligenza artificiale supporta lo spostamento degli ambienti Conda sul volume Amazon EBS, che viene mantenuto quando l'istanza viene interrotta. Gli ambienti non sono persistenti quando vengono installati nel volume root, che è il comportamento predefinito. Per un esempio di script del ciclo di vita, consulta. [persistent-conda-ebs](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/tree/master/scripts/persistent-conda-ebs)

**Operazioni conda supportate (vedi la nota in fondo a questo argomento)**
+ installazione conda di un pacchetto in un unico ambiente
+ installazione conda di un pacchetto in tutti gli ambienti
+ installazione conda di un pacchetto R nell’ambiente R
+ Installazione di un pacchetto dal repository principale di conda
+ Installazione di un pacchetto da conda-forge
+ Modifica della posizione di installazione di conda per utilizzare EBS
+ Supporta sia conda activate che source activate

### Pip
<a name="nbi-add-external-tools-pip"></a>

Pip è lo strumento preposto all’installazione e alla gestione dei pacchetti Python. Per impostazione predefinita, Pip cerca i pacchetti nell’indice dei pacchetti Python (PyPI). A differenza di Conda, pip non ha un supporto ambientale integrato e non è così completo come Conda quando si tratta di pacchetti con dipendenze di libreria. native/system Puoi usare pip per installare pacchetti in ambienti Conda.

Invece che l’indice PyPI, con pip puoi anche usare repository di pacchetti alternativi. Per un esempio di script del ciclo di vita, consulta [on-start.sh.](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/add-pypi-repository/on-start.sh)

**Operazioni conda supportate (vedi la nota in fondo a questo argomento)**
+ Uso di pip per installare un pacchetto senza un ambiente conda attivo (installazione di pacchetti a livello di sistema)
+ Uso di pip per installare un pacchetto in un ambiente conda
+ Uso di pip per installare un pacchetto in tutti gli ambienti conda
+ Modifica della posizione di installazione di pip per utilizzare EBS
+ Uso di un repository alternativo per installare pacchetti con pip

### Non supportato.
<a name="nbi-add-external-tools-misc"></a>

SageMaker L'intelligenza artificiale mira a supportare il maggior numero possibile di operazioni di installazione dei pacchetti. Tuttavia, se i pacchetti sono stati installati da SageMaker AI o DLAMI e si utilizzano le seguenti operazioni su questi pacchetti, l'istanza del notebook potrebbe diventare instabile:
+ Disinstallazione
+ Downgrade
+ Aggiornamento

Non offriamo supporto per l'installazione di pacchetti tramite yum o per l'installazione di pacchetti R da CRAN.

A causa di potenziali problemi relativi alle condizioni o alle configurazioni della rete o alla disponibilità di Conda or PyPi, non possiamo garantire che i pacchetti vengano installati in un periodo di tempo fisso o deterministico.

**Nota**  
Non possiamo garantire che l'installazione di un pacchetto avvenga correttamente. Il tentativo di installare un pacchetto in un ambiente con dipendenze incompatibili può causare un errore. In tal caso, è necessario contattare il manutentore della libreria per vedere se è possibile aggiornare le dipendenze del pacchetto. In alternativa, si può tentare di modificare l'ambiente in modo da rendere possibile l'installazione. Questa modifica, tuttavia, comporterà probabilmente la rimozione o l'aggiornamento dei pacchetti esistenti, il che significa che non possiamo più garantire la stabilità di questo ambiente.

# Aggiornamenti software dell'istanza del notebook
<a name="nbi-software-updates"></a>

Amazon SageMaker AI testa e rilascia periodicamente il software installato sulle istanze dei notebook. Questo include:
+ Aggiornamenti del kernel
+ Patch di sicurezza
+ AWS Aggiornamenti SDK
+ Aggiornamenti dell'[ SageMaker SDK Amazon Python](https://sagemaker.readthedocs.io/en/stable)
+ Aggiornamenti software open source

Per assicurarti di disporre degli aggiornamenti software più recenti, interrompi e riavvia l'istanza del notebook, nella console SageMaker AI o chiamando [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopNotebookInstance.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopNotebookInstance.html).

Puoi anche aggiornare manualmente il software installato sull'istanza del notebook mentre è in esecuzione utilizzando i comandi di aggiornamento in un terminale o in un notebook.

**Nota**  
L'aggiornamento dei kernel e di alcuni pacchetti potrebbe dipendere dal fatto che l'accesso root sia abilitato per l'istanza del notebook. Per ulteriori informazioni, consulta [Controlla l'accesso root a un'istanza di notebook SageMaker](nbi-root-access.md).

Puoi controllare [Personal Health Dashboard](https://aws.amazon.com/premiumsupport/technology/personal-health-dashboard/) o il bollettino di sicurezza nella pagina [Bollettini di sicurezza](https://aws.amazon.com/security/security-bulletins/) per aggiornamenti.

# Controllo di un'istanza Amazon EMR Spark utilizzando un notebook
<a name="nbi-lifecycle-config-emr"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

È possibile utilizzare un'istanza di notebook creata con uno script di configurazione del ciclo di vita personalizzato per accedere ai AWS servizi dal notebook. Ad esempio, puoi creare uno script che consente di utilizzare il notebook con Sparkmagic per controllare altre risorse AWS , ad esempio un'istanza Amazon EMR. Puoi quindi utilizzare l'istanza Amazon EMR per elaborare i dati anziché eseguire l'analisi dei dati sul notebook. Ciò consente di creare un'istanza del notebook più piccola perché non la si utilizzerà per elaborare i dati. Ciò è utile quando si dispone di set di dati di grandi dimensioni che richiederebbero un'istanza del notebook di grandi dimensioni per elaborare i dati.

Il processo richiede tre procedure utilizzando la console Amazon SageMaker AI:
+ Creazione di un'istanza Amazon EMR Spark
+ Creazione del notebook Jupyter
+ Verificare la notebook-to-Amazon connessione EMR

**Per creare un'istanza Amazon EMR Spark controllabile da un notebook mediante Sparkmagic**

1. Apri la console di Amazon EMR all'indirizzo [https://console.aws.amazon.com/elasticmapreduce/](https://console.aws.amazon.com/elasticmapreduce/).

1. Nel riquadro di navigazione, scegli **Crea cluster**.

1. Nella pagina **Crea cluster - Opzioni rapide** in **Configurazione del software**, scegli **Spark: Spark 2.4.4 on Hadoop 2.8.5 YARN with Ganglia 3.7.2 and Zeppelin 0.8.2**.

1. Imposta i parametri aggiuntivi nella pagina e quindi scegli **Crea cluster**.

1. Nella pagina **Cluster** scegli il nome del cluster creato. Annota i nomi di **DNS pubblico master**, **gruppo di sicurezza del master EMR** e VPC e l'ID sottorete in cui è stato creato il cluster EMR. Questi valori verranno utilizzati quando si crea un notebook.

**Per creare un notebook che utilizza Sparkmagic per controllare un'istanza Amazon EMR Spark**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione, in **Istanze del notebook**, scegli **Crea notebook**.

1. Immetti il nome dell'istanza del notebook e scegli il tipo di istanza.

1. Scegli **Configurazione aggiuntiva**, quindi in **Configurazione ciclo di vita**, scegli **Crea una nuova configurazione del ciclo di vita**.

1. Aggiungi il codice seguente allo script di configurazione del ciclo di vita:

   ```
   # OVERVIEW
   # This script connects an Amazon EMR cluster to an Amazon SageMaker notebook instance that uses Sparkmagic.
   #
   # Note that this script will fail if the Amazon EMR cluster's master node IP address is not reachable.
   #   1. Ensure that the EMR master node IP is resolvable from the notebook instance.
   #      One way to accomplish this is to have the notebook instance and the Amazon EMR cluster in the same subnet.
   #   2. Ensure the EMR master node security group provides inbound access from the notebook instance security group.
   #       Type        - Protocol - Port - Source
   #       Custom TCP  - TCP      - 8998 - $NOTEBOOK_SECURITY_GROUP
   #   3. Ensure the notebook instance has internet connectivity to fetch the SparkMagic example config.
   #
   # https://aws.amazon.com/blogs/machine-learning/build-amazon-sagemaker-notebooks-backed-by-spark-in-amazon-emr/
   
   # PARAMETERS
   EMR_MASTER_IP=your.emr.master.ip
   
   
   cd /home/ec2-user/.sparkmagic
   
   echo "Fetching Sparkmagic example config from GitHub..."
   wget https://raw.githubusercontent.com/jupyter-incubator/sparkmagic/master/sparkmagic/example_config.json
   
   echo "Replacing EMR master node IP in Sparkmagic config..."
   sed -i -- "s/localhost/$EMR_MASTER_IP/g" example_config.json
   mv example_config.json config.json
   
   echo "Sending a sample request to Livy.."
   curl "$EMR_MASTER_IP:8998/sessions"
   ```

1. Nella sezione `PARAMETERS` dello script, sostituisci `your.emr.master.ip` con il nome DNS pubblico master per l'istanza Amazon EMR.

1. Scegli **Crea configurazione**.

1. Nella pagina **Crea notebook** scegli **Rete - facoltativa**.

1. Scegli il VPC e la sottorete in cui si trova l'istanza Amazon EMR.

1. Scegli il gruppo di sicurezza utilizzato dal nodo principale di Amazon EMR.

1. Scegli **Crea un'istanza del notebook**.

Durante la creazione dell'istanza del notebook, lo stato è **Pending**. Dopo che l'istanza è stata creata e lo script di configurazione del ciclo di vita è stato eseguito correttamente, lo stato è. **InService**

**Nota**  
Se l'istanza notebook non riesce a connettersi all'istanza Amazon EMR, l' SageMaker intelligenza artificiale non può creare l'istanza notebook. La connessione può non riuscire se l'istanza Amazon EMR e il notebook non si trovano negli stessi VPC e sottorete, se il gruppo di sicurezza master di Amazon EMR non viene utilizzato dal notebook o se il nome DNS pubblico master nello script non è corretto. 

**Per testare la connessione tra l'istanza Amazon EMR e il notebook**

1.  Quando lo stato del notebook è impostato **InService**, scegli **Open Jupyter** per aprirlo.

1. Scegli **Nuovo**, quindi scegli **Sparkmagic** (). PySpark

1. Nella cella di codice immetti **%%info** ed esegui la cella.

   L'output visualizzato dovrebbe essere simile al seguente

   ```
   Current session configs: {'driverMemory': '1000M', 'executorCores': 2, 'kind': 'pyspark'}
                       No active sessions.
   ```

# Impostazione del kernel notebook
<a name="howitworks-set-kernel"></a>

Amazon SageMaker AI fornisce diversi kernel per Jupyter che forniscono supporto per Python 2 e 3, Apache e. MXNet TensorFlow PySpark Per impostare un kernel per un nuovo notebook nel pannello di controllo del notebook Jupyter, seleziona **Nuovo**, quindi scegli il kernel dall'elenco. Per ulteriori informazioni sui kernel disponibili, consulta [Kernel disponibili](nbi-al2.md#nbi-al2-kernel).

![\[Posizione dell’elenco a discesa Nuovo nella dashboard del notebook Jupyter.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/nbi-set-kernel.png)


È inoltre possibile creare un kernel personalizzato che è possibile utilizzare nell'istanza del notebook. Per informazioni, consulta [Installazione di librerie e kernel esterni](nbi-add-external.md).

# Archivi Git con istanze SageMaker AI Notebook
<a name="nbi-git-repo"></a>

Associa i repository Git all'istanza del notebook per salvare i notebook in un ambiente di controllo dell'origine che persiste anche se l'istanza del notebook viene arrestata o eliminata. Puoi associare un repository predefinito e fino a tre repository aggiuntivi a un'istanza del notebook. I repository possono essere ospitati in AWS CodeCommit o su qualsiasi altro server Git. GitHub L'associazione di repository Git all'istanza del notebook può essere utile per:
+ Persistenza: i notebook in un'istanza del notebook vengono archiviati su volumi Amazon EBS durevoli, ma non persistono oltre la durata dell'istanza del notebook. L'archiviazione di notebook in un repository Git consente di archiviare e utilizzare notebook anche se l'istanza del notebook viene arrestata o eliminata.
+ Collaborazione: i colleghi in un team lavorano spesso insieme su progetti di machine learning. L'archiviazione di notebook in repository Git permette ai colleghi che lavorano su istanze del notebook diverse di condividere notebook e collaborare su di essi in un ambiente con controllo dell'origine.
+ Apprendimento: molti notebook Jupyter che dimostrano le tecniche di machine learning sono disponibili in repository Git ospitati pubblicamente, come on. GitHub Puoi associare l'istanza del notebook a un repository per caricare facilmente notebook Jupyter contenuti in tale repository.

Sono disponibili due modi per associare un repository Git a un'istanza del notebook:
+ Aggiungi un repository Git come risorsa nel tuo account Amazon SageMaker AI. Quindi, per accedere al repository, puoi specificare un segreto di AWS Secrets Manager che contenga le credenziali. In questo modo, puoi accedere ai repository che richiedono l'autenticazione.
+ Associazione di un repository Git pubblico che non è una risorsa nell'account. In questo caso, non puoi specificare credenziali per accedere al repository.

**Topics**
+ [Aggiungi un repository Git al tuo account Amazon SageMaker AI](nbi-git-resource.md)
+ [Creazione di un'istanza del notebook con un repository Git associato](nbi-git-create.md)
+ [Associate un CodeCommit repository in un AWS account diverso a un'istanza di Notebook](nbi-git-cross.md)
+ [Utilizzo di repository Git in un'istanza del notebook](git-nbi-use.md)

# Aggiungi un repository Git al tuo account Amazon SageMaker AI
<a name="nbi-git-resource"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Per gestire i tuoi GitHub repository, associarli facilmente alle istanze del tuo notebook e associare le credenziali per i repository che richiedono l'autenticazione, aggiungi i repository come risorse nel tuo account Amazon AI. SageMaker Puoi visualizzare un elenco di repository archiviati nel tuo account e i dettagli su ciascun repository nella console SageMaker AI e utilizzando l'API.

Puoi aggiungere repository Git al tuo account SageMaker AI nella console SageMaker AI o utilizzando il AWS CLI.

**Nota**  
Puoi usare l' SageMaker API AI [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCodeRepository.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCodeRepository.html)per aggiungere repository Git al tuo account SageMaker AI, ma step-by-step le istruzioni non sono fornite qui.

## Aggiungi un repository Git al tuo account SageMaker AI (Console)
<a name="nbi-git-resource-console"></a>

**Per aggiungere un repository Git come risorsa nel tuo account SageMaker AI**

1. Apri la console SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Scegli **Notebook**, scegli **Repository Git**, quindi seleziona **Aggiungi repository**.

1. Per aggiungere un CodeCommit repository, scegli **AWS CodeCommit**. Per aggiungere uno GitHub o un altro repository basato su Git, scegli **GitHub/Altro** repository basato su Git.

**Per aggiungere un repository esistente CodeCommit**

1. Scegli **Utilizza repository esistente**.

1. Per **Repository**, scegli un repository dall'elenco.

1. Inserisci un nome da utilizzare per il repository in SageMaker AI. Il nome deve essere composto da 1 a 63 caratteri. I caratteri validi sono a–z, A-Z, 0–9 e - (trattino).

1. Scegli **Aggiungi repository**.

**Per creare un nuovo repository CodeCommit**

1. Scegli **Crea un nuovo repository**.

1. Inserisci un nome per il repository che puoi usare sia CodeCommit in AI che in AI. SageMaker Il nome deve essere composto da 1 a 63 caratteri. I caratteri validi sono a–z, A-Z, 0–9 e - (trattino).

1. Scegli **Create repository (Crea repository)**.

**Per aggiungere un repository Git ospitato in un posto diverso da CodeCommit**

1. Scegli **GitHub/Altro repository basato su Git.**

1. Immetti un nome fino a 63 caratteri. I caratteri validi includono caratteri alfanumerici, un trattino (-) e 0-9.

1. Immetti l'URL per il repository. Non fornire un nome utente nell'URL. Aggiungi le credenziali di accesso Gestione dei segreti AWS come descritto nel passaggio successivo.

1. Per **Credenziali Git**, scegli le credenziali da utilizzare per l'autenticazione nel repository. Questa operazione è necessaria solo se il repository Git è privato.
**Nota**  
Se per il repository Git è abilitata l'autenticazione a due fattori, inserisci un token di accesso personale generato dal fornitore di servizi Git nel campo `password`.

   1. Per utilizzare un segreto esistente di AWS Secrets Manager, scegli **Usa segreto esistente**, quindi scegli un segreto dall'elenco. Per ulteriori informazioni sulla creazione e l'archiviazione di un bucket, consulta [Creating a basic secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html) nella *Guida per l'utente di AWS Secrets Manager*. Il nome del segreto utilizzato deve contenere la stringa `sagemaker`.
**Nota**  
Il segreto deve avere un'etichetta di gestione temporanea di `AWSCURRENT` e deve avere il formato seguente:  
`{"username": UserName, "password": Password}`  
Per i GitHub repository, consigliamo di utilizzare un token di accesso personale sul `password` campo. Per informazioni, vedere [https://help.github.com/articles/creating-a-personal-access- token-for-the-command -line/](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/).

   1. Per creare un nuovo segreto di AWS Secrets Manager, scegli **Crea segreto**, inserisci un nome per il segreto, quindi inserisci le credenziali di accesso da utilizzare per l'autenticazione nel repository. Il nome per il segreto deve contenere la stringa `sagemaker`.
**Nota**  
Il ruolo IAM utilizzato per creare il segreto deve disporre dell'autorizzazione `secretsmanager:GetSecretValue` nella sua policy IAM.  
Il segreto deve avere un'etichetta di gestione temporanea di `AWSCURRENT` e deve avere il formato seguente:  
`{"username": UserName, "password": Password}`  
Per i GitHub repository, consigliamo di utilizzare un token di accesso personale.

   1. Per non utilizzare le credenziali, scegli **Nessun segreto**.

1. Scegli **Crea segreto**.

# Aggiungi un repository Git al tuo account Amazon SageMaker AI (CLI)
<a name="nbi-git-resource-cli"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Usa il `create-code-repository` AWS CLI comando per aggiungere un repository Git ad Amazon SageMaker AI per consentire agli utenti di accedere a risorse esterne. Specifica un nome per il repository come il valore dell'argomento `code-repository-name`. Il nome deve essere composto da 1 a 63 caratteri. I caratteri validi sono a–z, A-Z, 0–9 e - (trattino). Specifica inoltre le impostazioni seguenti:
+ Il ramo predefinito
+ L'URL del repository Git
**Nota**  
Non fornire un nome utente nell'URL. Aggiungi le credenziali di accesso Gestione dei segreti AWS come descritto nel passaggio successivo.
+ L'Amazon Resource Name (ARN) di un segreto di AWS Secrets Manager che contiene le credenziali da utilizzare per autenticare il repository come valore dell'argomento `git-config`

Per ulteriori informazioni sulla creazione e l'archiviazione di un bucket, consulta [Creating a basic secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html) nella *Guida per l'utente di AWS Secrets Manager*. Il comando seguente crea un nuovo repository denominato `MyRespository` nel tuo account Amazon SageMaker AI che punta a un repository Git ospitato su. `https://github.com/myprofile/my-repo"`

Per Linux, OS X o Unix:

```
aws sagemaker create-code-repository \
                    --code-repository-name "MyRepository" \
                    --git-config Branch=branch,RepositoryUrl=https://github.com/myprofile/my-repo,SecretArn=arn:aws:secretsmanager:us-east-2:012345678901:secret:my-secret-ABc0DE
```

Per Windows:

```
aws sagemaker create-code-repository ^
                    --code-repository-name "MyRepository" ^
                    --git-config "{\"Branch\":\"master\", \"RepositoryUrl\" :
                    \"https://github.com/myprofile/my-repo\", \"SecretArn\" : \"arn:aws:secretsmanager:us-east-2:012345678901:secret:my-secret-ABc0DE\"}"
```

**Nota**  
Il segreto deve avere un'etichetta di gestione temporanea di `AWSCURRENT` e deve avere il formato seguente:  
`{"username": UserName, "password": Password}`  
Per i GitHub repository, consigliamo di utilizzare un token di accesso personale.

# Creazione di un'istanza del notebook con un repository Git associato
<a name="nbi-git-create"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

È possibile associare i repository Git a un'istanza di notebook quando si crea l'istanza del notebook utilizzando Console di gestione AWS, o il AWS CLI. Se desideri utilizzare un CodeCommit repository che si trova in un AWS account diverso rispetto all'istanza del notebook, configura l'accesso tra account per il repository. Per informazioni, consulta [Associate un CodeCommit repository in un AWS account diverso a un'istanza di Notebook](nbi-git-cross.md).

**Topics**
+ [Creazione di un'istanza del notebook con un repository Git associato (console)](#nbi-git-create-console)
+ [Creazione di un'istanza del notebook con un repository Git associato (CLI)](nbi-git-create-cli.md)

## Creazione di un'istanza del notebook con un repository Git associato (console)
<a name="nbi-git-create-console"></a>

**Per creare un'istanza notebook e associare repository Git nella console Amazon SageMaker AI**

1. Segui le istruzioni riportate in [Crea un'istanza Amazon SageMaker Notebook per il tutorial](gs-setup-working-env.md).

1. Per **Repository Git**, scegli i repository Git da associare all'istanza del notebook.

   1. Per **Deposito predefinito**, scegli un repository che desideri utilizzare come repository predefinito. SageMaker AI clona questo repository come sottodirectory nella directory di avvio di Jupyter in. `/home/ec2-user/SageMaker` L'istanza del notebook viene aperta in questo repository. Per scegliere un repository che viene archiviato come una risorsa nell'account, scegli il nome dall'elenco. Per aggiungere un nuovo repository come risorsa nel tuo account, scegli **Aggiungi un repository all' SageMaker AI (apre il flusso Aggiungi repository in una nuova finestra) e segui le istruzioni in**. [Creazione di un'istanza del notebook con un repository Git associato (console)](#nbi-git-create-console) Per clonare un repository pubblico che non è archiviato nell'account, scegli **Clona un repository Git pubblico solo in questa istanza del notebook**, quindi specifica l'URL per tale repository.

   1. Per **Archivio aggiuntivo 1**, scegli un repository che desideri aggiungere come directory aggiuntiva. SageMaker AI clona questo repository come sottodirectory nella directory di avvio di Jupyter in. `/home/ec2-user/SageMaker` Per scegliere un repository che viene archiviato come una risorsa nell'account, scegli il nome dall'elenco. Per aggiungere un nuovo repository come risorsa nel tuo account, scegli **Aggiungi un repository all' SageMaker AI (apre il flusso Aggiungi repository in una nuova finestra) e segui le istruzioni in**. [Creazione di un'istanza del notebook con un repository Git associato (console)](#nbi-git-create-console) Per clonare un repository che non è archiviato nell'account, scegli **Clona un repository Git pubblico solo in questa istanza del notebook**, quindi specifica l'URL per tale repository.

      Ripeti questa fase fino a tre volte per aggiungere fino a tre repository aggiuntivi all'istanza del notebook.

# Creazione di un'istanza del notebook con un repository Git associato (CLI)
<a name="nbi-git-create-cli"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Per creare un'istanza del notebook e associare repository Git utilizzando AWS CLI, utilizza il comando `create-notebook-instance` come segue:
+ Specifica il repository che desideri utilizzare come repository predefinito come valore dell'argomento `default-code-repository`. Amazon SageMaker AI clona questo repository come sottodirectory nella directory di avvio di Jupyter all'indirizzo. `/home/ec2-user/SageMaker` L'istanza del notebook viene aperta in questo repository. Per utilizzare un repository archiviato come risorsa nel tuo account SageMaker AI, specifica il nome del repository come valore dell'argomento. `default-code-repository` Per utilizzare un repository che non è archiviato nell'account , specifica l'URL del repository come il valore dell'argomento `default-code-repository`.
+ Specificate fino a tre repository aggiuntivi come valore dell'argomento. `additional-code-repositories` SageMaker AI clona questo repository come sottodirectory nella directory di avvio di Jupyter in `/home/ec2-user/SageMaker` e il repository viene escluso dal repository predefinito aggiungendolo alla directory del repository predefinito. `.git/info/exclude` Per utilizzare i repository archiviati come risorse nel tuo account SageMaker AI, specifica i nomi dei repository come valore dell'argomento. `additional-code-repositories` Per utilizzare i repository che non sono archiviati nel tuo account, specifica i URLs repository come valore dell'argomento. `additional-code-repositories`

Ad esempio, il comando seguente crea un'istanza di notebook con un repository denominato`MyGitRepo`, archiviato come risorsa nel tuo account SageMaker AI, come repository predefinito e un repository aggiuntivo ospitato su: GitHub

```
aws sagemaker create-notebook-instance \
                    --notebook-instance-name "MyNotebookInstance" \
                    --instance-type "ml.t2.medium" \
                    --role-arn "arn:aws:iam::012345678901:role/service-role/AmazonSageMaker-ExecutionRole-20181129T121390" \
                    --default-code-repository "MyGitRepo" \
                    --additional-code-repositories "https://github.com/myprofile/my-other-repo"
```

**Nota**  
Se utilizzi un AWS CodeCommit repository che non contiene "SageMaker" nel nome, aggiungi le `codecommit:GitPush` autorizzazioni `codecommit:GitPull` e al ruolo che passi come argomento al `role-arn` comando. `create-notebook-instance` Per informazioni su come aggiungere autorizzazioni a un ruolo, consulta [Adding and Removing IAM Policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) nella *AWS Identity and Access Management Guida per l'utente*. 

# Associate un CodeCommit repository in un AWS account diverso a un'istanza di Notebook
<a name="nbi-git-cross"></a>

Per associare un CodeCommit repository in un AWS account diverso all'istanza del notebook, configura l'accesso tra account diversi per il repository. CodeCommit 

**Per configurare l'accesso tra più account per un CodeCommit repository e associarlo a un'istanza di notebook:**

1. Nell' AWS account che contiene il CodeCommit repository, crea una policy IAM che consenta l'accesso al repository agli utenti dell'account che contiene l'istanza del notebook. Per informazioni, consultare la [Fase 1: creare una policy per l'accesso al repository nell'AccountA](https://docs.aws.amazon.com/codecommit/latest/userguide/cross-account-administrator-a.html#cross-account-create-policy-a) nella *Guida per l'utente di CodeCommit *.

1. Nell' AWS account che contiene il CodeCommit repository, crea un ruolo IAM e collega a quel ruolo la policy creata nel passaggio precedente. Per informazioni, consultare la [Fase 2: creare un ruolo per l'accesso al repository nell'AccountA](https://docs.aws.amazon.com/codecommit/latest/userguide/cross-account-administrator-a.html#cross-account-create-role-a) nella *Guida per l'utente di CodeCommit *.

1. Nell'istanza del notebook, crea un profilo che usa il ruolo creato nella fase precedente:

   1. Apri l'istanza del notebook.

   1. Apri un terminale nell'istanza del notebook.

   1. Modifica un nuovo profilo digitando il seguente comando nel terminale:

      ```
      vi /home/ec2-user/.aws/config
      ```

   1. Modifica il file con le seguenti informazioni di profilo:

      ```
      [profile CrossAccountAccessProfile]
      region = us-west-2
      role_arn = arn:aws:iam::CodeCommitAccount:role/CrossAccountRepositoryContributorRole
      credential_source=Ec2InstanceMetadata
      output = json
      ```

      *CodeCommitAccount*Dov'è l'account che contiene l' CodeCommit archivio, *CrossAccountAccessProfile* è il nome del nuovo profilo e *CrossAccountRepositoryContributorRole* il nome del ruolo che hai creato nel passaggio precedente.

1. Nell'istanza del notebook, configura Git in modo che usi il profilo creato nella fase precedente:

   1. Apri l'istanza del notebook.

   1. Apri un terminale nell'istanza del notebook.

   1. Modifica il file di configurazione Git digitando il seguente comando nel terminale:

      ```
      vi /home/ec2-user/.gitconfig
      ```

   1. Modifica il file con le seguenti informazioni di profilo:

      ```
      [credential]
              helper = !aws codecommit credential-helper --profile CrossAccountAccessProfile $@
              UseHttpPath = true
      ```

      *CrossAccountAccessProfile*Dov'è il nome del profilo che hai creato nel passaggio precedente.

# Utilizzo di repository Git in un'istanza del notebook
<a name="git-nbi-use"></a>

Quando apri un'istanza del notebook cui sono associati repository Git, questa viene aperta nel repository predefinito, il quale è installato nell'istanza del notebook direttamente in `/home/ec2-user/SageMaker`. Puoi aprire e creare notebook ed eseguire manualmente comandi Git in un cella di notebook. Esempio:

```
!git pull origin master
```

Per aprire uno dei repository aggiuntivi, passa alla cartella superiore nella gerarchia. I repository aggiuntivi vengono anche installati come directory in `/home/ec2-user/SageMaker`.

Se apri l'istanza del notebook con un' JupyterLab interfaccia, l'estensione jupyter-git viene installata e disponibile per l'uso. [Per informazioni sull'estensione jupyter-git per, vedi jupyterlab-git. JupyterLab https://github.com/jupyterlab/](https://github.com/jupyterlab/jupyterlab-git)

Quando apri un'istanza di notebook in JupyterLab, vedi i repository git ad essa associati nel menu a sinistra:

![\[Esempio di browser di file in JupyterLab.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/git-notebook.png)


Puoi utilizzare l'estensione jupyter-git per gestire git visivamente, anziché utilizzare la riga di comando:

![\[Esempio dell'estensione jupyter-git in. JupyterLab\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/jupyterlab-git.png)


# Metadati dell'istanza del notebook
<a name="nbi-metadata"></a>

Quando crei un'istanza notebook, Amazon SageMaker AI crea un file JSON sull'istanza nella posizione `/opt/ml/metadata/resource-metadata.json` che contiene l'istanza `ResourceName` e l'istanza `ResourceArn` del notebook. Questi metadati sono accessibili da qualsiasi punto all'interno del notebook, incluse le configurazioni del ciclo di vita dell'istanza. Per informazioni sulle configurazioni del ciclo di vita dell'istanza del notebook, consulta [Personalizzazione di un'istanza di SageMaker notebook utilizzando uno script LCC](notebook-lifecycle-config.md).

**Nota**  
Il file `resource-metadata.json` può essere modificato con accesso root.

Il file `resource-metadata.json` ha la struttura seguente:

```
{
    "ResourceArn": "NotebookInstanceArn",
    "ResourceName": "NotebookInstanceName"
}
```

È possibile utilizzare questi metadati dall'interno dell'istanza del notebook per ottenere altre informazioni sull'istanza del notebook. Ad esempio, i seguenti comandi ottengono i tag associati all'istanza del notebook:

```
NOTEBOOK_ARN=$(jq '.ResourceArn'
            /opt/ml/metadata/resource-metadata.json --raw-output)
aws sagemaker list-tags --resource-arn $NOTEBOOK_ARN
```

L'output sarà simile al seguente:

```
{
    "Tags": [
        {
            "Key": "test",
            "Value": "true"
        }
    ]
}
```

# Monitora i log di Jupyter in Amazon Logs CloudWatch
<a name="jupyter-logs"></a>

I log di Jupyter includono informazioni importanti come eventi, metriche e informazioni sullo stato di salute che forniscono informazioni utili durante l'esecuzione di notebook Amazon. SageMaker Importando i log di Jupyter in Logs, i clienti possono utilizzare CloudWatch Logs per rilevare CloudWatch comportamenti anomali, impostare allarmi e scoprire informazioni utili a far funzionare i notebook AI in modo più fluido. SageMaker Puoi accedere ai log anche quando l'istanza Amazon EC2 che ospita il notebook non risponde e utilizzare i log per risolvere i problemi relativi a notebook che non rispondono. Le informazioni sensibili come AWS account IDs, chiavi segrete e token di autenticazione predefinite vengono rimosse in modo che i clienti possano condividere i log senza divulgare informazioni private. URLs 

**Per visualizzare i log Jupyter per un'istanza del notebook:**

1. Accedi Console di gestione AWS e apri la console AI all' SageMaker indirizzo. [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/) 

1. Scegli **Istanze del notebook**.

1. Nell'elenco delle istanze del notebook, scegli l'istanza del notebook per la quale desideri visualizzare i log Jupyter selezionando il **Nome** dell’istanza del notebook.

   In questo modo accederai alla pagina dei dettagli per quell'istanza del notebook.

1. In **Monitoraggio** nella pagina dei dettagli dell'istanza del notebook, scegli **Vedi log**.

1. Nella CloudWatch console, scegli il flusso di log per l'istanza del tuo notebook. Il formato del nome è `NotebookInstanceName/jupyter.log`.

Per ulteriori informazioni sul monitoraggio dei CloudWatch log per l' SageMaker IA, consulta[CloudWatch Registri per Amazon SageMaker AI](logging-cloudwatch.md).

# Laboratorio Amazon SageMaker Studio
<a name="studio-lab"></a>

**Nota**  
A partire dall'8 agosto 2025, Amazon SageMaker Studio Lab ne utilizza JupyterLab 4 anziché JupyterLab 3. Se riscontri problemi con le dipendenze, reinstalla tutte le estensioni che hai aggiunto ai tuoi ambienti.

 Amazon SageMaker Studio Lab è un servizio gratuito che offre ai clienti l'accesso alle risorse di AWS elaborazione, in un ambiente basato sull'open source 4 JupyterLab . Si basa sulla stessa architettura e interfaccia utente di Amazon SageMaker Studio Classic, ma con un sottoinsieme di funzionalità di Studio Classic.

Con Studio Lab, puoi utilizzare le risorse di AWS elaborazione per creare ed eseguire i tuoi notebook Jupyter senza creare un account. AWS Poiché Studio Lab è basato sull'open source JupyterLab, puoi sfruttare le estensioni Jupyter open source per eseguire i tuoi notebook Jupyter.

 **Studio Lab a confronto con Amazon SageMaker Studio Classic**

Sebbene Studio Lab fornisca l'accesso gratuito alle risorse di AWS elaborazione, Amazon SageMaker Studio Classic offre le seguenti funzionalità avanzate di apprendimento automatico che Studio Lab non supporta.
+ Integrazione e distribuzione continue (Pipelines)
+ Previsioni in tempo reale
+ Apprendimento distribuito su larga scala
+ Preparazione dei dati (Amazon SageMaker Data Wrangler)
+ Etichettatura dei dati (Amazon SageMaker Ground Truth)
+ Archivio funzionalità
+ Analisi dei bias (Clarify)
+ Distribuzione di modelli
+ Monitoraggio del modello

Studio Classic supporta anche il controllo granulare degli accessi e la sicurezza utilizzando AWS Identity and Access Management (IAM), Amazon Virtual Private Cloud (Amazon VPC) e (). AWS Key Management Service AWS KMS Studio Lab non supporta queste funzionalità di Studio Classic, né supporta l'uso di stimatori e algoritmi di intelligenza artificiale integrati. SageMaker 

Per esportare i progetti di Studio Lab da utilizzare con Studio Classic, consulta [Esportazione di un ambiente Amazon SageMaker Studio Lab in Amazon SageMaker Studio Classic](studio-lab-use-migrate.md).

I seguenti argomenti forniscono informazioni su Studio Lab e su come utilizzarlo

**Topics**
+ [Panoramica dei componenti di Amazon SageMaker Studio Lab](studio-lab-overview.md)
+ [Accedere ad Amazon SageMaker Studio Lab](studio-lab-onboard.md)
+ [Gestisci il tuo account](studio-lab-manage-account.md)
+ [Avvia il runtime del tuo progetto Amazon SageMaker Studio Lab](studio-lab-manage-runtime.md)
+ [Usa le risorse iniziali di Amazon SageMaker Studio Lab](studio-lab-integrated-resources.md)
+ [Ambienti Studio Lab preinstallati](studio-lab-environments.md)
+ [Usa il runtime del progetto Amazon SageMaker Studio Lab](studio-lab-use.md)
+ [Risoluzione dei problemi](studio-lab-troubleshooting.md)

# Panoramica dei componenti di Amazon SageMaker Studio Lab
<a name="studio-lab-overview"></a>

Amazon SageMaker Studio Lab è composto dai seguenti componenti. I seguenti argomenti forniscono maggiori dettagli su questi componenti. 

**Topics**
+ [Pagina di destinazione](#studio-lab-overview-landing)
+ [Account Studio Lab](#studio-lab-overview-account)
+ [Pagina di panoramica del progetto](#studio-lab-overview-project-overview)
+ [Pagina di anteprima](#studio-lab-overview-preview)
+ [Progetto](#studio-lab-overview-project)
+ [Tipo di istanza di calcolo](#studio-lab-overview-project-compute)
+ [Runtime del progetto](#studio-lab-overview-runtime)
+ [Sessione](#studio-lab-overview-session)

## Pagina di destinazione
<a name="studio-lab-overview-landing"></a>

Puoi richiedere un account e accedere a un account esistente sulla tua pagina di destinazione. Per accedere alla pagina di destinazione, consulta il [sito Web di Amazon SageMaker Studio Lab](https://studiolab.sagemaker.aws/). Per ulteriori informazioni su come creare un account Studio Lab, consulta [Accedere ad Amazon SageMaker Studio Lab](studio-lab-onboard.md).

La schermata seguente mostra l'interfaccia della pagina di destinazione di Studio Lab per la richiesta di un account utente e l'accesso.

![\[Il layout della pagina di destinazione di Amazon SageMaker Studio Lab.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio-lab-landing.png)


## Account Studio Lab
<a name="studio-lab-overview-account"></a>

Il tuo account Studio Lab ti consente di accedere a Studio Lab. Per ulteriori informazioni su come creare un account utente, consulta [Accedere ad Amazon SageMaker Studio Lab](studio-lab-onboard.md).

## Pagina di panoramica del progetto
<a name="studio-lab-overview-project-overview"></a>

Puoi avviare un'istanza di calcolo e visualizzare le informazioni sul tuo progetto in questa pagina. Per accedere a questa pagina, devi accedere dal [sito Web di Amazon SageMaker Studio Lab](https://studiolab.sagemaker.aws/). L'URL ha il seguente formato.

```
https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
```

La schermata seguente mostra una panoramica del progetto nell'interfaccia utente di Studio Lab.

![\[Il layout dell’interfaccia utente per la panoramica del progetto.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio-lab-overview.png)


## Pagina di anteprima
<a name="studio-lab-overview-preview"></a>

In questa pagina, puoi accedere a un'anteprima di sola lettura di un notebook Jupyter. Non puoi eseguire il notebook dall'anteprima, ma puoi copiare quel notebook nel tuo progetto. Per molti clienti, questa potrebbe essere la prima pagina di Studio Lab che i clienti vedono, in quanto potrebbero aprire un notebook da un GitHub notebook. Per ulteriori informazioni su come utilizzare GitHub le risorse, consulta[Usa le risorse GitHub](studio-lab-use-external.md#studio-lab-use-external-clone-github). 

Per copiare l'anteprima del notebook nel tuo progetto Studio Lab:

1.  Accedi al tuo account Studio Lab. Per ulteriori informazioni su come creare un account Studio Lab, consulta [Accedere ad Amazon SageMaker Studio Lab](studio-lab-onboard.md). 

1.  In **Istanza di calcolo notebook**, scegli un tipo di istanza di calcolo. Per ulteriori informazioni sui tipi di istanza di calcolo, consulta [Tipo di istanza di calcolo](#studio-lab-overview-project-compute). 

1.  Scegli **Avvia runtime**. È possibile che ti venga chiesto di risolvere un puzzle CAPTCHA. Per ulteriori informazioni sul CAPTCHA, vedi [Cos'è un puzzle CAPTCHA](https://docs.aws.amazon.com/waf/latest/developerguide/waf-captcha-puzzle.html)? 

1.  Configurazione una tantum, per avviare il runtime per la prima volta utilizzando il tuo account Studio Lab: 

   1.  Inserisci un numero di cellulare da associare al tuo account Amazon SageMaker Studio Lab e scegli **Continua**. 

      Per informazioni sui paesi e le Regioni supportati, consulta [Paesi e aree geografiche supportati (canale SMS)](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-countries.html).

   1.  Inserisci il codice a 6 cifre inviato al numero di cellulare associato e scegli **Verifica**. 

1.  Scegli **Copia nel progetto**. 

## Progetto
<a name="studio-lab-overview-project"></a>

Il progetto contiene tutti i file e le cartelle, inclusi i notebook Jupyter. Hai il controllo completo sui file del tuo progetto. Il tuo progetto include anche l'interfaccia utente JupyterLab basata su di essa. Da questa interfaccia, puoi interagire con i tuoi notebook Jupyter, modificare i file di codice sorgente, effettuare l'integrazione e GitHub connetterti ad Amazon S3. Per ulteriori informazioni, consulta [Usa il runtime del progetto Amazon SageMaker Studio Lab](studio-lab-use.md). 

La schermata seguente mostra un progetto Studio Lab con il browser dei file aperto e l'utilità di avvio di Studio Lab visualizzata.

![\[Il layout dell’interfaccia utente del progetto.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio-lab-ui.png)


## Tipo di istanza di calcolo
<a name="studio-lab-overview-project-compute"></a>

 Il runtime del tuo progetto Amazon SageMaker Studio Lab si basa su un'istanza EC2. Ti vengono assegnati 15 GB di spazio di archiviazione e 16 GB di RAM. La disponibilità delle istanze di calcolo non è garantita ed è soggetta alla domanda. Se hai bisogno di risorse di archiviazione o di calcolo aggiuntive, valuta la possibilità di passare a Studio.  

Amazon SageMaker Studio Lab offre la scelta tra una CPU (Central Processing Unit) e una GPU (Graphical Processing Unit). Le seguenti sezioni forniscono informazioni su queste due opzioni, inclusa una guida alla selezione. 

 **CPU** 

Un'unità di elaborazione centrale (CPU) è progettata per gestire un'ampia gamma di attività in modo efficiente, ma è limitata nel numero di attività che può eseguire contemporaneamente. Per il machine learning, una CPU è consigliata per algoritmi ad alta intensità di calcolo, come serie temporali, previsioni e dati tabulari.  

Il tipo di elaborazione della CPU ha un massimo di 4 ore alla volta con un limite di 8 ore in un periodo di 24 ore.

 **GPU** 

Un'unità di elaborazione grafica (GPU) è progettata per eseguire il rendering simultaneo di immagini e video ad alta risoluzione. Una GPU è consigliata per le attività di deep learning, in particolare per i trasformatori e la visione artificiale. 

Il tipo di elaborazione GPU ha un massimo di 4 ore alla volta con un limite di 4 ore in un periodo di 24 ore.

 **Tempo di calcolo** 

Quando il tempo di elaborazione per Studio Lab raggiunge il limite di tempo, l'istanza interrompe tutti i calcoli in esecuzione. Studio Lab non supporta aumenti dei limiti di tempo.

Studio Lab salva automaticamente l'ambiente quando si aggiorna l'ambiente e ogni volta che si crea un nuovo file. Le estensioni e i pacchetti installati in modo personalizzato persistono anche dopo la fine del runtime.

Le modifiche ai file vengono salvate periodicamente, ma non vengono salvate al termine del runtime. Per assicurarti di non perdere i tuoi progressi, salva il lavoro manualmente. Se hai contenuti nel tuo progetto Studio Lab che non vuoi perdere, ti consigliamo di eseguirne il backup altrove. Per ulteriori informazioni sull'esportazione dell'ambiente e dei file, consulta [Esportazione di un ambiente Amazon SageMaker Studio Lab in Amazon SageMaker Studio Classic](studio-lab-use-migrate.md).

Durante lunghi calcoli, non è necessario tenere aperto il progetto. Ad esempio, potete iniziare ad addestrare un modello, quindi chiudere il browser. L'istanza continua a funzionare fino al limite del tipo di elaborazione in un periodo di tempo di 24 ore. Puoi quindi accedere in un secondo momento per continuare il tuo lavoro.  

Ti consigliamo di utilizzare il checkpointing nei tuoi lavori di deep learning. Puoi utilizzare i checkpoint salvati per riavviare un lavoro dal checkpoint salvato in precedenza. Per ulteriori informazioni, consulta [I/O file](https://d2l.ai/chapter_deep-learning-computation/read-write.html?highlight=checkpointing).

## Runtime del progetto
<a name="studio-lab-overview-runtime"></a>

Il runtime del progetto è il periodo di tempo in cui l'istanza di calcolo è in esecuzione.

## Sessione
<a name="studio-lab-overview-session"></a>

Una sessione utente inizia ogni volta che si avvia il progetto. 

# Accedere ad Amazon SageMaker Studio Lab
<a name="studio-lab-onboard"></a>

Per effettuare l'onboarding in Amazon SageMaker Studio Lab, segui i passaggi descritti in questa guida. Nelle sezioni seguenti, imparerai come richiedere un account Studio Lab, creare il tuo account e accedere.

**Topics**
+ [Richiedi un account Studio Lab](#studio-lab-onboard-request)
+ [Crea un account Studio Lab](#studio-lab-onboard-register)
+ [Esegui l’accesso Studio Lab](#studio-lab-onboard-signin)

## Richiedi un account Studio Lab
<a name="studio-lab-onboard-request"></a>

Per utilizzare Studio Lab, devi prima richiedere l'approvazione per creare un account Studio Lab. Non è possibile utilizzare un AWS account per l'onboarding su Studio Lab. 

Nelle fasi seguenti viene illustrato come richiedere un account Studio Lab.

1. Vai alla [pagina di destinazione di Studio Lab](https://studiolab.sagemaker.aws).

1. Seleziona **Richiedi account**.

1. Inserisci le informazioni richieste nel modulo.

1. Seleziona **Invia richiesta**.

1. Se ricevi un'e-mail per verificare l'indirizzo e-mail, segui le istruzioni contenute nell'e-mail per completare questa fase.

La richiesta di account deve essere approvata prima di poter registrare un account Studio Lab. La tua richiesta verrà esaminata entro cinque giorni lavorativi. Quando la richiesta di account viene approvata, riceverai un'e-mail con un link alla pagina di registrazione dell'account Studio Lab. Questo link scade sette giorni dopo l'approvazione della richiesta. Se il link scade, devi inviare una nuova richiesta di account. 

Nota: la richiesta del tuo account viene rifiutata se la tua e-mail è stata associata ad attività che violano i nostri [Termini di servizio](https://aws.amazon.com/service-terms/) o altri accordi. 

### Codici di riferimento
<a name="studio-lab-onboard-request-referral"></a>

I codici di riferimento di Studio Lab consentono l'approvazione automatica delle richieste di nuovi account per supportare eventi di machine learning come workshop, hackathon e lezioni. Con un codice di riferimento, un host affidabile può consentire ai partecipanti di accedere immediatamente a Studio Lab. Dopo che un account è stato creato utilizzando un codice di riferimento, l'account continua a esistere dopo la scadenza del codice.

Per ottenere un codice di riferimento, contatta il [Supporto vendite](https://aws.amazon.com/contact-us/sales-support/). Per utilizzare un codice di riferimento, inseriscilo nel modulo di richiesta dell'account.

## Crea un account Studio Lab
<a name="studio-lab-onboard-register"></a>

Dopo l'approvazione della richiesta, completa la procedura seguente per creare il tuo account Studio Lab.

1. Seleziona **Crea account** nell'e-mail di approvazione della richiesta dell'account per aprire una nuova pagina.

1. Dalla nuova pagina, inserisci la tua **e-mail**, una **password** e un **nome utente**. 

1. Seleziona **Crea account**. 

   È possibile che ti venga chiesto di risolvere un puzzle CAPTCHA. Per ulteriori informazioni sul CAPTCHA, vedi [Cos'è un puzzle CAPTCHA](https://docs.aws.amazon.com/waf/latest/developerguide/waf-captcha-puzzle.html)?

## Esegui l’accesso Studio Lab
<a name="studio-lab-onboard-signin"></a>

Dopo aver registrato l'account, puoi accedere a Studio Lab.

1. Vai alla [pagina di destinazione di Studio Lab](https://studiolab.sagemaker.aws).

1. Seleziona **Accedi** per aprire una nuova pagina.

1. Inserisci la tua **e-mail** o **nome utente** e **password**. 

1. Seleziona **Accedi** per aprire una nuova pagina del tuo progetto. 

   È possibile che ti venga chiesto di risolvere un puzzle CAPTCHA. Per ulteriori informazioni sul CAPTCHA, vedi [Cos'è un puzzle CAPTCHA](https://docs.aws.amazon.com/waf/latest/developerguide/waf-captcha-puzzle.html)?

# Gestisci il tuo account
<a name="studio-lab-manage-account"></a>

 Il seguente argomento fornisce informazioni sulla gestione del tuo account, inclusa la modifica della password, l'eliminazione dell'account e l'ottenimento delle informazioni che abbiamo raccolto. Questi argomenti richiedono l'accesso al tuo account Amazon SageMaker Studio Lab. Per ulteriori informazioni, consulta [Esegui l’accesso Studio Lab](studio-lab-onboard.md#studio-lab-onboard-signin).

## Modifica la password
<a name="studio-lab-manage-change-password"></a>

 Segui questi passaggi per modificare la password di Amazon SageMaker Studio Lab. 

1.  Vai alla pagina di panoramica del progetto Studio Lab. L'URL ha il seguente formato.

   ```
   https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
   ```

1.  Dall'angolo in alto a destra, seleziona il tuo nome utente per aprire un menu a discesa. 

1.  Dal menu a discesa, seleziona **Cambia password** per aprire una nuova pagina. 

1.  Inserisci la tua password attuale nel campo **Inserisci la tua password attuale**.

1.  Inserisci la tua nuova password nei campi **Crea una nuova password** e **Conferma la nuova password**.

1.  Selezionare **Invia**. 

## Elimina l'account
<a name="studio-lab-manage-delete"></a>

 Completa la procedura seguente per eliminare l'account Studio Lab.  

1.  Vai alla pagina di panoramica del progetto Studio Lab. L'URL ha il seguente formato.

   ```
   https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
   ```

1.  Dall'angolo in alto a destra, seleziona il tuo nome utente per aprire un menu a discesa. 

1.  Dal menu a discesa, seleziona **Elimina account** per aprire una nuova pagina. 

1.  Inserisci la password per confermare l'eliminazione del tuo account Studio Lab. 

1.  Selezionare **Elimina**. 

## Informazioni sui clienti
<a name="studio-lab-manage-information"></a>

 Studio Lab raccoglie l'indirizzo e-mail, il nome utente, la password crittografata, i file di progetto e i metadati. Quando richiedi un account, puoi facoltativamente scegliere di fornire nome e cognome, paese, nome dell'organizzazione, professione e il motivo del tuo interesse per questo prodotto. Proteggiamo tutti i dati personali dei clienti con crittografia. Per ulteriori informazioni su come vengono gestite le tue informazioni personali, consulta l'[Informativa sulla privacy](https://aws.amazon.com//privacy/). 

Quando elimini il tuo account, tutte le tue informazioni vengono eliminate immediatamente. Se hai una domanda in merito, invia il [modulo Amazon SageMaker Studio Lab](https://pages.awscloud.com/GLOBAL_PM_PA_amazon-sagemaker_20211116_7014z000000rjq2-registration.html). Per informazioni e supporto relativi alla conformità AWS , consulta [Supporto per la conformità](https://aws.amazon.com//contact-us/compliance-support/).

# Avvia il runtime del tuo progetto Amazon SageMaker Studio Lab
<a name="studio-lab-manage-runtime"></a>

Il runtime del progetto Amazon SageMaker Studio Lab ti consente di scrivere ed eseguire codice direttamente dal tuo browser. È basato su JupyterLab e dispone di un terminale e una console integrati. Per ulteriori informazioni in merito JupyterLab, consulta la [JupyterLabDocumentazione](https://jupyterlab.readthedocs.io/en/stable/).

Il seguente argomento fornisce informazioni su come gestire il runtime del progetto. Questi argomenti richiedono l'accesso al tuo account Amazon SageMaker Studio Lab. Per ulteriori informazioni sulla firma, consulta [Esegui l’accesso Studio Lab](studio-lab-onboard.md#studio-lab-onboard-signin). Per ulteriori informazioni sul progetto, consulta [Panoramica dei componenti di Amazon SageMaker Studio Lab](studio-lab-overview.md). 

**Topics**
+ [Avvio del runtime del progetto](#studio-lab-manage-runtime-start)
+ [Interrompi il runtime del progetto](#studio-lab-manage-runtime-stop)
+ [Visualizza il tempo di calcolo rimanente](#studio-lab-manage-runtime-view)
+ [Cambia il tipo di calcolo](#studio-lab-manage-runtime-change)

## Avvio del runtime del progetto
<a name="studio-lab-manage-runtime-start"></a>

Per utilizzare Studio Lab, è necessario avviare il runtime del progetto. Questo runtime ti consente di accedere all' JupyterLab ambiente.

1. Vai alla pagina di panoramica del progetto Studio Lab. L'URL ha il seguente formato.

   ```
   https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
   ```

1. In **Il mio progetto**, seleziona un tipo di calcolo. Per ulteriori informazioni sui tipi di calcolo, consulta [Tipo di istanza di calcolo](studio-lab-overview.md#studio-lab-overview-project-compute).

1. Seleziona **Avvia runtime**. 

   È possibile che ti venga chiesto di risolvere un puzzle CAPTCHA. Per ulteriori informazioni sul CAPTCHA, vedi [Cos'è un puzzle CAPTCHA](https://docs.aws.amazon.com/waf/latest/developerguide/waf-captcha-puzzle.html)?

1. Configurazione una tantum, per avviare il runtime per la prima volta utilizzando il tuo account Studio Lab: 

   1. Inserisci un numero di cellulare da associare al tuo account Amazon SageMaker Studio Lab e scegli **Continua**. 

      Per informazioni sui paesi e le Regioni supportati, consulta [Paesi e aree geografiche supportati (canale SMS)](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-countries.html).

   1. Inserisci il codice a 6 cifre inviato al numero di cellulare associato e scegli **Verifica**. 

1. Dopo l'esecuzione del runtime, seleziona **Apri progetto** per aprire l'ambiente di runtime del progetto in una nuova scheda del browser. 

## Interrompi il runtime del progetto
<a name="studio-lab-manage-runtime-stop"></a>

Quando si interrompe il runtime del progetto, i file non vengono salvati automaticamente. Per evitare di perdere il lavoro svolto, salva tutte le modifiche prima di interrompere il runtime del progetto.
+ In **Il mio progetto**, seleziona **Arresta il runtime**. 

## Visualizza il tempo di calcolo rimanente
<a name="studio-lab-manage-runtime-view"></a>

Il tempo di runtime del progetto ha un tempo di calcolo limitato in base al tipo di calcolo selezionato. Per ulteriori informazioni sul tempo di calcolo in Studio Lab, consulta [Tipo di istanza di calcolo](studio-lab-overview.md#studio-lab-overview-project-compute).
+ In **Il mio progetto**, visualizza **Tempo rimanente**. 

## Cambia il tipo di calcolo
<a name="studio-lab-manage-runtime-change"></a>

Puoi cambiare il tipo di calcolo in base al tuo flusso di lavoro. Per ulteriori informazioni sui tipi di calcolo, consulta [Tipo di istanza di calcolo](studio-lab-overview.md#studio-lab-overview-project-compute).

1. Salva tutti i file di progetto prima di modificare il tipo di calcolo. 

1. Vai alla pagina di panoramica del progetto Studio Lab. L'URL ha il seguente formato.

   ```
   https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
   ```

1. In **Il mio progetto**, seleziona il tipo di calcolo desiderato (CPU o GPU). 

1. Conferma la tua scelta selezionando **Riavvia** nella finestra di dialogo **Riavviare runtime del progetto?**. Studio Lab interrompe il runtime corrente del progetto, quindi avvia un nuovo runtime del progetto con il tipo di calcolo aggiornato.

1. Dopo l'avvio del runtime del progetto, seleziona **Apri progetto**. In tal modo viene aperto l'ambiente di runtime del progetto in una nuova scheda del browser. Per ulteriori informazioni sull’ambiente di runtime del progetto, consulta [Usa il runtime del progetto Amazon SageMaker Studio Lab](studio-lab-use.md).

# Usa le risorse iniziali di Amazon SageMaker Studio Lab
<a name="studio-lab-integrated-resources"></a>

Amazon SageMaker Studio Lab supporta le seguenti risorse per aiutare i professionisti dell'apprendimento automatico (ML) a iniziare. Questa guida mostra come clonare i notebook per il progetto. 

**Nozioni di base sul notebook** 

Studio Lab è dotato di un notebook per principianti che fornisce informazioni generali e guida l'utente attraverso i principali flussi di lavoro. Quando si avvia il runtime del progetto per la prima volta, questo notebook si apre automaticamente.

**Immergiti nel Deep Learning** 

Immergiti nel Deep Learning (D2L) è un libro interattivo e open source che insegna le idee, la teoria matematica e il codice alla base del machine learning. Con oltre 150 notebook Jupyter, D2L offre una panoramica completa dei principi del deep learning. Per ulteriori informazioni su D2L, consulta il [sito Web D2L](https://d2l.ai/).

La procedura seguente mostra come clonare i notebook D2L Jupyter nell'istanza. 

1. Avvia e apri l'ambiente di runtime del progetto Studio Lab seguendo [Avvio del runtime del progetto](studio-lab-manage-runtime.md#studio-lab-manage-runtime-start).

1. Una volta aperto Studio Lab, scegli la scheda Git (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/git.png)) nella barra laterale sinistra. 

1. Scegli **Clona un repository**.

   Se non vedi l’opzione **Clona un repository**, è possibile che ti trovi attualmente in un repository Git. In alternativa, utilizza le fasi secondarie seguenti.

   1. Scegli la scheda Cartella (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/folder.png)) nella barra laterale sinistra.

   1. Sotto la barra di ricerca dei file, scegli l’icona a forma di cartella a sinistra del repository attualmente selezionato. Quando passi il mouse sull’icona a forma di cartella, vedrai la directory utente (`/home/studio-lab-user`).

   1. Una volta nella directory utente, scegli la scheda Git nella barra laterale sinistra.

   1. Scegli **Clona un repository**.

1. In **URL dei repository Git (.git)** ti verrà chiesto di fornire un URL.

1. In una nuova scheda del browser, accedi alla pagina di panoramica del progetto Studio Lab. L'URL ha il seguente formato.

   ```
   https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
   ```

1. In **Sei nuovo nel mondo del machine learning?**, scegli **Immergiti nel Deep Learning**. 

1. Dalla nuova scheda del browser **Dive into Deep Learning**, scegli di **GitHub**aprire una nuova pagina con i taccuini di esempio.

1. **Scegli **Code** e copia l'URL del GitHub repository nella scheda HTTPS.**

1. Torna alla scheda Apri browser progetti di Studio Lab, incolla l'URL del repository D2L e clona il repository.

**AWS Università di Machine Learning** 

La AWS Machine Learning University (MLU) fornisce l'accesso ai corsi di machine learning utilizzati per formare gli sviluppatori di Amazon. Con AWS MLU, qualsiasi sviluppatore può imparare a usare l'apprendimento automatico con la serie di apprendimento learn-at-your-own -pace MLU Accelerator. La serie MLU Accelerator è progettata per aiutare gli sviluppatori a iniziare il loro viaggio nel machine learning. Offre corsi fondamentali di tre giorni su questi tre argomenti: elaborazione del linguaggio naturale, dati tabulari e visione artificiale. Per ulteriori informazioni, consulta [Machine Learning University](https://aws.amazon.com//machine-learning/mlu/). 

La procedura seguente mostra come clonare i notebook AWS MLU Jupyter sulla propria istanza. 

1. Avvia e apri l'ambiente di runtime del progetto Studio Lab seguendo [Avvio del runtime del progetto](studio-lab-manage-runtime.md#studio-lab-manage-runtime-start).

1. Una volta aperto Studio Lab, scegli la scheda Git (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/git.png)) nella barra laterale sinistra. 

1. Scegli **Clona un repository**.

   Se non vedi l’opzione **Clona un repository**, è possibile che ti trovi attualmente in un repository Git. In alternativa, utilizza le fasi secondarie seguenti.

   1. Scegli la scheda Cartella (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/folder.png)) nella barra laterale sinistra.

   1. Sotto la barra di ricerca dei file, scegli l’icona a forma di cartella a sinistra del repository attualmente selezionato. Quando passi il mouse sull’icona a forma di cartella, vedrai la directory utente (`/home/studio-lab-user`).

   1. Una volta nella directory utente, scegli la scheda Git nella barra laterale sinistra.

   1. Scegli **Clona un repository**.

1. In **URL dei repository Git (.git)** ti verrà chiesto di fornire un URL.

1. In una nuova scheda del browser, accedi alla pagina di panoramica del progetto Studio Lab. L'URL ha il seguente formato.

   ```
   https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
   ```

1. In **Sei nuovo nel mondo del machine learning?** , scegli **AWS Machine Learning University**. 

1. Dalla nuova scheda del browser di **AWS Machine Learning University**, trova un corso che ti interessa leggendo il **riepilogo del corso** per ogni corso.

1. Scegliete l' GitHub archivio di interesse corrispondente in **Contenuto del corso, per aprire una nuova pagina con i taccuini** di esempio.

1. **Scegli **Code** e copia l'URL del GitHub repository nella scheda HTTPS.**

1. Torna alla scheda Apri browser progetti di Studio Lab, incolla l’URL del repository MLU e scegli **Clona** per clonare il repository.

** Roboflow** 

Roboflow ti offre gli strumenti per addestrare, ottimizzare ed etichettare oggetti per applicazioni di visione artificiale. Per ulteriori informazioni, consulta [https://roboflow.com/](https://roboflow.com/).

La procedura seguente mostra come clonare i notebook Jupyter Roboflow nell'istanza.

1. Vai alla pagina di panoramica del progetto Studio Lab. L'URL ha il seguente formato.

   ```
   https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
   ```

1. In **Risorse e community**, trova **Crea immagini generate dall’IA**.

1. In **Crea immagini generate dall’IA**, scegli **Apri notebook**.

1. Segui il tutorial sotto l'anteprima del Notebook.

# Ambienti Studio Lab preinstallati
<a name="studio-lab-environments"></a>

Amazon SageMaker Studio Lab utilizza ambienti conda per gestire pacchetti (o librerie) per i tuoi progetti. Questa guida spiega cosa sono gli ambienti conda, come interagire con essi e i diversi ambienti preinstallati disponibili in Studio Lab.

Un ambiente conda è una directory che contiene una raccolta dei pacchetti che hai installato. Consente di creare ambienti isolati con versioni specifiche dei pacchetti, prevenendo conflitti tra progetti con dipendenze diverse.

Puoi interagire con gli ambienti conda in Studio Lab in due modi:
+ Terminale: utilizza il terminale per creare, attivare e gestire gli ambienti.
+ JupyterLab Notebook: quando apri un JupyterLab notebook, seleziona il kernel con il nome dell'ambiente che desideri utilizzare per utilizzare i pacchetti installati in quell'ambiente.

Per la procedura dettagliata su come gestire gli ambienti, consulta [Gestisci il tuo ambiente](studio-lab-use-manage.md).

Studio Lab viene fornito con diversi ambienti di memoria preinstallati, di tipo persistente o non persistente. Qualsiasi modifica apportata agli ambienti di memoria persistente rimarrà valida per la sessione successiva. Eventuali modifiche agli ambienti di memoria non persistente non rimarranno valide per le sessioni successive, ma i pacchetti all'interno verranno aggiornati e testati per la compatibilità da Amazon SageMaker AI. Ecco una panoramica di ogni ambiente e dei relativi casi d’uso:
+ `sagemaker-distribution`: ambiente non persistente gestito da Amazon SageMaker AI. Contiene i pacchetti più diffusi per il machine learning, la data science e la visualizzazione. Questo ambiente viene aggiornato e testato regolarmente per verificarne la compatibilità. Utilizza questo ambiente se desideri una configurazione completamente gestita con pacchetti comuni preinstallati. 

  L'`sagemaker-distribution`ambiente è strettamente correlato all'ambiente utilizzato in Amazon SageMaker Studio Classic, quindi dopo il passaggio da Studio Lab a Studio Classic i notebook dovrebbero funzionare in modo simile. Per informazioni su come esportare l’ambiente da Studio Lab a Studio Classic, consulta [Esportazione di un ambiente Amazon SageMaker Studio Lab in Amazon SageMaker Studio Classic](studio-lab-use-migrate.md).
+ `default`: un ambiente persistente con un numero minimo di pacchetti preinstallati. Utilizza questo ambiente se desideri apportare personalizzazioni significative installando pacchetti aggiuntivi. 
+ `studiolab`: Un ambiente persistente in cui sono installati i pacchetti JupyterLab correlati. Utilizzate questo ambiente per configurare l'interfaccia JupyterLab utente e installare le estensioni del server Jupyter.
+ `studiolab-safemode`: un ambiente non persistente che si attiva automaticamente in caso di problemi con il runtime del progetto. Utilizza questo ambiente per la risoluzione dei problemi. Per informazioni sulla risoluzione dei problemi, consulta [Risoluzione dei problemi](studio-lab-troubleshooting.md). 
+ `base`: un ambiente non persistente utilizzato per gli strumenti di sistema. Questo ambiente non è destinato ai clienti.

Per visualizzare i pacchetti in un ambiente, esegui il comando `conda list`.

Per ulteriori informazioni sull'installazione dei pacchetti nel tuo ambiente, consulta [Personalizza il tuo ambiente](studio-lab-use-manage.md#studio-lab-use-manage-conda-default-customize).

Se hai intenzione di passare da Studio Lab ad Amazon SageMaker Studio Classic, vedi[Esportazione di un ambiente Amazon SageMaker Studio Lab in Amazon SageMaker Studio Classic](studio-lab-use-migrate.md).

Per informazioni sulle SageMaker immagini e sulle relative versioni, consulta[SageMaker Immagini Amazon disponibili per l'uso con i notebook Studio Classic](notebooks-available-images.md).

# Usa il runtime del progetto Amazon SageMaker Studio Lab
<a name="studio-lab-use"></a>

 I seguenti argomenti forniscono informazioni sull'uso del runtime del progetto Amazon SageMaker Studio Lab. Prima di poter utilizzare il runtime del progetto Studio Lab, devi effettuare l'onboarding a Studio Lab seguendo i passaggi indicati[Accedere ad Amazon SageMaker Studio Lab](studio-lab-onboard.md).

**Topics**
+ [Panoramica dell'interfaccia utente di Amazon SageMaker Studio Lab](studio-lab-use-ui.md)
+ [Crea o apri un notebook Amazon SageMaker Studio Lab](studio-lab-use-create.md)
+ [Usa la barra degli strumenti dei notebook Amazon SageMaker Studio Lab](studio-lab-use-menu.md)
+ [Gestisci il tuo ambiente](studio-lab-use-manage.md)
+ [Usa risorse esterne in Amazon SageMaker Studio Lab](studio-lab-use-external.md)
+ [Ottieni differenze nel notebook](studio-lab-use-diff.md)
+ [Esportazione di un ambiente Amazon SageMaker Studio Lab in Amazon SageMaker Studio Classic](studio-lab-use-migrate.md)
+ [Chiusura delle risorse di Studio Lab](studio-lab-use-shutdown.md)

# Panoramica dell'interfaccia utente di Amazon SageMaker Studio Lab
<a name="studio-lab-use-ui"></a>

Amazon SageMaker Studio Lab estende l' JupyterLab interfaccia. Gli utenti precedenti di JupyterLab noteranno delle somiglianze tra l' JupyterLab interfaccia utente di Studio Lab, inclusa l'area di lavoro. Per una panoramica dell' JupyterLab interfaccia di base, consulta [The JupyterLab](https://jupyterlab.readthedocs.io/en/latest/user/interface.html) Interface.

L'immagine seguente mostra Studio Lab con il browser dei file aperto e l’utilità di avvio di Studio Lab visualizzata.

![\[Il layout dell’interfaccia utente del progetto.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio-lab-ui.png)


Nella parte superiore dello schermo è disponibile la *barra dei menu*. La *barra laterale sinistra* contiene icone per aprire browser di file, browser di risorse e strumenti. La *barra di stato* si trova nell'angolo in basso a sinistra di Studio Lab.

L'area di lavoro principale è divisa orizzontalmente in due riquadri. Il riquadro sinistro è il *browser di file e risorse*. Il riquadro di destra contiene una o più schede per risorse quali notebook e terminali.

**Topics**
+ [Barra laterale sinistra](#studio-lab-use-ui-nav-bar)
+ [Browser di file e risorse](#studio-lab-use-ui-browser)
+ [Area di lavoro principale](#studio-lab-use-ui-work)

## Barra laterale sinistra
<a name="studio-lab-use-ui-nav-bar"></a>

La barra laterale sinistra include le seguenti icone. Quando si passa il mouse su un'icona, un suggerimento visualizza il nome dell'icona. Quando si seleziona un'icona, il browser di file e risorse visualizza la funzionalità descritta. Per le voci gerarchiche, un breadcrumb selezionabile nella parte superiore del browser mostra la tua posizione nella gerarchia.


| Icon | Description | 
| --- | --- | 
|  ![\[L’icona Browser di file\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/File_browser_squid@2x.png)  |  **Browser di file** Scegli l’icona **Carica file** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/File_upload_squid.png)) per aggiungere file a Studio Lab. Fare doppio clic su un file per aprire il file in una nuova scheda. Per aprire i file adiacenti, scegliere una scheda contenente un blocco appunti, Python o file di testo, quindi scegliere **Nuova vista per File**. Nel menu nella parte superiore del browser di file, scegliere il segno più (**\$1**) per aprire l'utilità di avvio di Studio Lab.  | 
|  ![\[L‘icona Terminali e kernel in esecuzione\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/Running_squid@2x.png)  |  **Terminali e kernel in esecuzione** Puoi vedere un elenco completo di tutti terminali e kernel in esecuzione nel tuo progetto. Per ulteriori informazioni, consulta [Chiusura delle risorse di Studio Lab](studio-lab-use-shutdown.md).  | 
|  ![\[L’icona Git\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/Git_squid@2x.png)  |  **Git** È possibile connettersi a un repository Git e quindi accedere a una gamma completa di strumenti e operazioni Git. Per ulteriori informazioni, consulta [Usa risorse esterne in Amazon SageMaker Studio Lab](studio-lab-use-external.md).  | 
|  ![\[L’icona Sommario\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/studio-lab-toc.png)  |  **Sommario** Puoi accedere al sommario del tuo attuale notebook Jupyter.  | 
|  ![\[L’icona Gestore estensioni\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/studio-lab-extension.png)  |  **Extension Manager** Puoi abilitare e gestire JupyterLab estensioni di terze parti.  | 

## Browser di file e risorse
<a name="studio-lab-use-ui-browser"></a>

Il browser di file e risorse mostra gli elenchi dei tuoi notebook e dei tuoi file. Nel menu nella parte superiore del browser di file, scegliere il segno più (**\$1**) per aprire l'utilità di avvio di Studio Lab. L'utilità di avvio consente di creare un notebook o aprire un terminale.

## Area di lavoro principale
<a name="studio-lab-use-ui-work"></a>

L'area di lavoro principale presenta più schede che contengono i notebook e i terminali aperti.

# Crea o apri un notebook Amazon SageMaker Studio Lab
<a name="studio-lab-use-create"></a>

Quando crei un notebook in Amazon SageMaker Studio Lab o apri un notebook in Studio Lab, devi selezionare un kernel per il notebook. Negli argomenti seguenti viene descritto come creare e aprire notebook in Studio Lab.

Per informazioni sull'arresto dei notebook, consulta [Chiusura delle risorse di Studio Lab](studio-lab-use-shutdown.md).

**Topics**
+ [Apertura di un notebook in Studio Lab](#studio-lab-use-create-open)
+ [Creazione di un notebook dal menu File](#studio-lab-use-create-file)
+ [Creazione di un notebook dall'utilità di avvio](#studio-lab-use-create-launcher)

## Apertura di un notebook in Studio Lab
<a name="studio-lab-use-create-open"></a>

Studio Lab può aprire solo i notebook elencati nel browser dei file Studio Lab. Per clonare un notebook nel browser di file da un repository esterno, consulta [Usa risorse esterne in Amazon SageMaker Studio Lab](studio-lab-use-external.md)

**Per aprire un notebook**

1. Nella barra laterale sinistra, seleziona l’icona **Browser di file** (![\[Dark blue square icon with a white outline of a cloud and an arrow pointing upward.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/File_browser_squid.png)) per visualizzare il browser di file.

1. Individua un file notebook e fai doppio clic per aprire il notebook in una nuova scheda.

## Creazione di un notebook dal menu File
<a name="studio-lab-use-create-file"></a>

**Per creare un notebook dal menu File**

1. Dal menu di Studio Lab, scegliere **File**, **Nuovo**, quindi **Notebook**.

1. Per utilizzare il kernel predefinito, nella finestra di dialogo **Seleziona kernel**, scegliere **Seleziona**. In caso contrario, utilizzare il menu a discesa per selezionare un kernel diverso.

## Creazione di un notebook dall'utilità di avvio
<a name="studio-lab-use-create-launcher"></a>

**Per creare un notebook dall'utilità di avvio**

1. Apri l’utilità di avvio usando i tasti di scelta rapida `Ctrl + Shift + L`.

   In alternativa, puoi aprire l’utilità di avvio dalla barra laterale sinistra: scegli l'icona **Browser di file**, quindi scegli l'icona più (**\$1**).

1. Per usare il kernel predefinito dell’utilità di avvio, in **Notebook**, scegli **Default:Python**. Altrimenti, seleziona un kernel diverso.

Dopo aver scelto il kernel, il notebook viene avviato e aperto in una nuova scheda Studio Lab. 

Per visualizzare la sessione di kernel del notebook, nella barra laterale sinistra, seleziona l’icona **Terminali e kernel in esecuzione** (![\[Square icon with a white outline of a cloud on a dark blue background.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/Running_squid.png)). Puoi interrompere la sessione kernel del notebook da questa visualizzazione.

# Usa la barra degli strumenti dei notebook Amazon SageMaker Studio Lab
<a name="studio-lab-use-menu"></a>

I notebook Amazon SageMaker Studio Lab estendono l'interfaccia. JupyterLab [Per una panoramica dell'interfaccia di base, consulta The JupyterLab Interface. JupyterLab](https://jupyterlab.readthedocs.io/en/latest/user/interface.html)

L'immagine seguente mostra la barra degli strumenti e una cella vuota di un notebook Studio Lab.

![\[Il layout della barra degli strumenti del notebook, incluse le icone della barra degli strumenti.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio-lab-menu.png)


Quando si passa il mouse su un'icona della barra degli strumenti, un suggerimento visualizza il nome dell'icona. Puoi trovare ulteriori comandi del notebook nel menu principale di Studio Lab. La barra degli strumenti include le seguenti icone:


| Icon | Description | 
| --- | --- | 
|  ![\[L’icona Salva ed esegui il checkpoint.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/studio-lab-save-and-checkpoint.png)  |  **Salva ed esegui il checkpoint** Salva il notebook e aggiorna il file del checkpoint.  | 
|  ![\[L’icona Inserisci cella.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/studio-lab-insert-cell.png)  |  **Inserisci cella** Inserisce una cella di codice sotto la cella corrente. La cella corrente è annotata dal marcatore verticale blu nel margine sinistro.  | 
|  ![\[L’icona Taglia, copia e incolla celle.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/studio-lab_cut_copy_paste.png)  |  **Taglia, copia e incolla celle** Taglia, copia e incolla le celle selezionate.  | 
|  ![\[L’icona Esegui celle.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/studio-lab-run.png)  |  **Esegui celle** Esegue le celle selezionate. La cella che segue l'ultima cella selezionata diventa la nuova cella selezionata.  | 
|  ![\[L’icona Interrompi kernel.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/studio-lab-interrupt-kernel.png)  |  **Interrompi kernel** Interrompe il kernel che annulla l'operazione attualmente in esecuzione. Il kernel rimane attivo.  | 
|  ![\[L’icona Riavvia kernel.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/studio-lab-restart-kernel.png)  |  **Riavvia kernel** Riavvia il kernel. Le variabili vengono reimpostate. Le informazioni non salvate non sono interessate.  | 
|  ![\[L’icona Riavvia il kernel e riesegui il notebook.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/studio-lab-restart-rerun-kernel.png)  |  **Riavvia il kernel e riavvia il notebook** Riavvia il kernel. Le variabili vengono reimpostate. Le informazioni non salvate non sono interessate. Quindi riavvia l'intero notebook.  | 
|  ![\[L’icona Tipo di cella.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/studio-lab_cell.png)  |  **Tipo di cella** Visualizza o modifica il tipo di cella corrente. I tipi di cella sono: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/studio-lab-use-menu.html)  | 
|  ![\[L’icona Diff checkpoint.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/studio-lab-checkpoint-diff.png)  |  **Diff checkpoint** Apre una nuova scheda che visualizza la differenza tra il notebook e il file del checkpoint. Per ulteriori informazioni, consulta [Ottieni differenze nel notebook](studio-lab-use-diff.md).  | 
|  ![\[L’icona Diff Git.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/studio-lab-git-diff.png)  |  **Git diff** Abilitato solo se il notebook viene aperto da un repository Git. Apre una nuova scheda che visualizza la differenza tra il notebook e l'ultimo commit Git. Per ulteriori informazioni, consulta [Ottieni differenze nel notebook](studio-lab-use-diff.md).  | 
|  **default**  |  **Kernel** Visualizza o modifica il kernel che elabora le celle nel notebook. `No Kernel` indica che il notebook è stato aperto senza specificare un kernel. È possibile modificare il notebook ma non è possibile eseguire alcuna cella.  | 
|  ![\[L’icona Stato kernel occupato.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/studio-lab-kernel.png)  |  **Stato kernel occupato** Visualizza lo stato di occupato del kernel mostrando il bordo e l'interno del cerchio con lo stesso colore. Il kernel è occupato all'avvio e quando sta elaborando le celle. Ulteriori stati del kernel vengono visualizzati nella barra di stato nell'angolo inferiore sinistro di Studio Lab.  | 

# Gestisci il tuo ambiente
<a name="studio-lab-use-manage"></a>

Amazon SageMaker Studio Lab fornisce ambienti preinstallati per le istanze notebook Studio Lab. Gli ambienti consentono di avviare un'istanza del notebook Studio Lab con i pacchetti che si desidera utilizzare. Questo viene fatto installando i pacchetti nell'ambiente e quindi selezionando l'ambiente come kernel. 

Studio Lab ha diversi ambienti preinstallati per te. In genere è preferibile utilizzare l'ambiente `sagemaker-distribution` se desideri utilizzare un ambiente completamente gestito che contenga già molti pacchetti popolari utilizzati dagli ingegneri del machine learning (ML) e dai data scientist. Altrimenti puoi usare l'ambiente `default` se desideri una personalizzazione persistente per il tuo ambiente. Per ulteriori informazioni sugli ambienti Studio Lab preinstallati disponibili, consulta [Ambienti Studio Lab preinstallati](studio-lab-environments.md).

È possibile personalizzare l'ambiente aggiungendovi nuovi pacchetti (o librerie). Puoi anche creare nuovi ambienti da Studio Lab, importare ambienti compatibili, reimpostare l'ambiente per creare spazio e altro ancora. 

I seguenti comandi sono destinati all'esecuzione in un terminale di Studio Lab. Tuttavia, durante l’installazione dei pacchetti, consigliamo vivamente di installarli all’interno del notebook Jupyter di Studio Lab. In questo modo i pacchetti vengono installati nell’ambiente previsto. Per eseguire i comandi in un notebook Jupyter, inserisci un prefisso `%` per il comando prima di eseguire la cella. Ad esempio, il frammento di codice `pip list` in un terminale è lo stesso di `%pip list` in un notebook Jupyter.

Le sezioni seguenti forniscono informazioni sull'ambiente conda `default`, su come personalizzarlo e su come aggiungere e rimuovere ambienti conda. Per un elenco di ambienti di esempio che è possibile installare in Studio Lab, consulta [Creazione di ambienti conda personalizzati](https://github.com/aws/studio-lab-examples/tree/main/custom-environments). Per utilizzare questi file YAML di ambiente di esempio con Studio Lab, consulta [Fase 4. Installa gli ambienti conda di Studio Lab in Studio Classic](studio-lab-use-migrate.md#studio-lab-use-migrate-step4). 

**Topics**
+ [Il tuo ambiente predefinito](#studio-lab-use-manage-conda-default)
+ [Visualizza gli ambienti](#studio-lab-use-view-conda-envs)
+ [Crea, attiva e utilizza nuovi ambienti conda](#studio-lab-use-manage-conda-new-conda)
+ [Utilizzo di ambienti Studio Lab di esempio](#studio-lab-use-manage-conda-sample)
+ [Personalizza il tuo ambiente](#studio-lab-use-manage-conda-default-customize)
+ [Aggiorna Studio Lab](#studio-lab-use-manage-conda-reset)

## Il tuo ambiente predefinito
<a name="studio-lab-use-manage-conda-default"></a>

Studio Lab utilizza ambienti conda per incapsulare i pacchetti software necessari per eseguire i notebook. [Il progetto contiene un ambiente conda predefinito, denominato`default`, con il kernel. IPython ](https://ipython.readthedocs.io/en/stable/) Questo ambiente funge da kernel predefinito per i notebook Jupyter.

## Visualizza gli ambienti
<a name="studio-lab-use-view-conda-envs"></a>

Per visualizzare gli ambienti in Studio Lab puoi utilizzare un terminale o un notebook Jupyter. Il comando seguente sarà per un terminale Studio Lab. Se desideri eseguire i comandi corrispondenti in un notebook Jupyter, consulta [Gestisci il tuo ambiente](#studio-lab-use-manage).

Apri il terminale Studio Lab dal pannello **Browser di file** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/folder.png)), scegli il segno più (**\$1**) nel menu nella parte superiore del browser di file per aprire l’**utilità di avvio**, quindi scegli **Terminale**. Dal terminale Studio Lab, elenca gli ambienti conda eseguendo quanto segue.

```
conda env list
```

Questo comando restituisce un elenco degli ambienti conda e delle loro posizioni nel file system. Quando esegui l’integrazione in Studio Lab, attivi automaticamente l'ambiente conda `studiolab`. Di seguito è riportato un esempio degli ambienti elencati dopo l’integrazione.

```
# conda environments:
#
default                  /home/studio-lab-user/.conda/envs/default
studiolab             *  /home/studio-lab-user/.conda/envs/studiolab
studiolab-safemode       /opt/amazon/sagemaker/safemode-home/.conda/envs/studiolab-safemode
base                     /opt/conda
sagemaker-distribution     /opt/conda/envs/sagemaker-distribution
```

`*` indica l'ambiente attivato.

## Crea, attiva e utilizza nuovi ambienti conda
<a name="studio-lab-use-manage-conda-new-conda"></a>

Se desideri mantenere più ambienti per diversi casi d'uso, puoi creare nuovi ambienti conda nel tuo progetto. Nelle sezioni seguenti viene descritto come creare e attivare nuovi ambienti conda. Per un notebook Jupyter che mostra come creare un ambiente personalizzato, vedi [Configurazione di un ambiente personalizzato in Studio Lab](https://github.com/aws/studio-lab-examples/blob/main/custom-environments/custom_environment.ipynb). SageMaker 

**Nota**  
Il mantenimento di più ambienti dipende dalla memoria di Studio Lab disponibile.

 **Crea un ambiente conda** 

Per creare un ambiente conda, esegui il seguente comando conda dal tuo terminale. Questo esempio crea un nuovo ambiente con Python 3.9. 

```
conda create --name <ENVIRONMENT_NAME> python=3.9
```

Una volta creato l'ambiente conda, puoi visualizzare l'ambiente nell'elenco degli ambienti. Per ulteriori informazioni su come visualizzare l'elenco degli ambienti, consulta [Visualizza gli ambienti](#studio-lab-use-view-conda-envs).

 **Attiva un ambiente Conda** 

Per attivare qualsiasi ambiente conda, esegui il comando seguente nel terminale.

```
conda activate <ENVIRONMENT_NAME>
```

Quando esegui questo comando, tutti i pacchetti installati utilizzando conda o pip vengono installati nell'ambiente. Per ulteriori informazioni sull'installazione dei pacchetti, consulta [Personalizza il tuo ambiente](#studio-lab-use-manage-conda-default-customize).

 **Usa un ambiente conda** 

1. Per usare i tuoi nuovi ambienti conda con i notebook, assicurati che il pacchetto `ipykernel` sia installato nell'ambiente.

   ```
   conda install ipykernel
   ```

1. Una volta installato il pacchetto `ipykernel` nell'ambiente, puoi selezionare l'ambiente come kernel per il notebook. 

   Potrebbe essere necessario riavviare il sistema JupyterLab per visualizzare l'ambiente disponibile come kernel. Questo può essere fatto scegliendo **Amazon SageMaker Studio Lab** nel menu in alto del progetto aperto di Studio Lab e scegliendo **Riavvia JupyterLab...** . 

1. Puoi scegliere il kernel per un notebook esistente oppure quando creai un nuovo notebook.
   + Per un notebook esistente: apri il notebook e scegli il kernel corrente dal lato destro del menu in alto. Puoi scegliere il kernel da utilizzare dal menu a discesa.
   + Per un nuovo notebook: apri l’utilità di avvio di Studio Lab e scegli il kernel in **Notebook**. Il notebook si aprirà con il kernel scelto.

     Per una panoramica dell'interfaccia utente di Studio Lab, consulta [Panoramica dell'interfaccia utente di Amazon SageMaker Studio Lab](studio-lab-use-ui.md).

## Utilizzo di ambienti Studio Lab di esempio
<a name="studio-lab-use-manage-conda-sample"></a>

Studio Lab fornisce esempi di ambienti personalizzati tramite il repository [SageMaker Studio Lab Examples](https://github.com/aws/studio-lab-examples). Di seguito viene illustrato come clonare e creare tali ambienti.

1. Clona il GitHub repository SageMaker Studio Lab Examples seguendo le istruzioni contenute in. [Usa le risorse GitHub](studio-lab-use-external.md#studio-lab-use-external-clone-github)

1. In Studio Lab scegli l'icona **Browser di file** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/folder.png)) nel menu a sinistra, in modo che il pannello **Browser di file** sia visualizzato sulla sinistra.

1. Vai alla directory `studio-lab-examples/custom-environments` nel Browser di file.

1. Apri la directory per l’ambiente che desideri creare.

1. Fai clic con il pulsante destro del mouse sul file `.yml` nella cartella, quindi seleziona **Crea ambiente conda**.

1. Ora puoi usare l'ambiente come kernel dopo che il tuo ambiente conda ha terminato la creazione. Per istruzioni su come utilizzare un ambiente esistente come kernel, consulta [Crea, attiva e utilizza nuovi ambienti conda](#studio-lab-use-manage-conda-new-conda).

## Personalizza il tuo ambiente
<a name="studio-lab-use-manage-conda-default-customize"></a>

Puoi personalizzare l'ambiente installando e rimuovendo estensioni e pacchetti in base alle esigenze. Studio Lab include ambienti con pacchetti preinstallati e l'utilizzo di un ambiente esistente può far risparmiare tempo e memoria, poiché i pacchetti preinstallati non contano sulla memoria di Studio Lab disponibile. Per ulteriori informazioni sugli ambienti Studio Lab preinstallati disponibili, consulta [Ambienti Studio Lab preinstallati](studio-lab-environments.md).

Tutte le estensioni e i pacchetti installati nell’ambiente `default` persisteranno nel progetto. Ciò significa che non è necessario installare i pacchetti per ogni sessione di runtime del progetto. Tuttavia, le estensioni e i pacchetti installati nell'ambiente `sagemaker-distribution` non persisteranno, quindi sarà necessario installare nuovi pacchetti durante la sessione successiva. Pertanto, si consiglia vivamente di installare i pacchetti sul notebook per assicurarsi che siano installati nell'ambiente previsto.

Per visualizzare i tuoi ambienti, esegui il comando `conda env list`.

Per attivare l'ambiente, esegui il comando `conda activate <ENVIRONMENT_NAME>`.

Per visualizzare i pacchetti in un ambiente, esegui il comando `conda list`.

 **Installa i pacchetti** 

Si consiglia vivamente di installare i pacchetti sul notebook Jupyter per assicurarsi che siano installati nell'ambiente previsto. Per installare pacchetti aggiuntivi nell'ambiente da un notebook Jupyter, esegui uno dei seguenti comandi in una cella del notebook Jupyter. Questi comandi installano i pacchetti nell'ambiente attualmente attivato. 
+  `%conda install <PACKAGE>` 
+  `%pip install <PACKAGE>` 

Non è consigliabile utilizzare i comandi `!pip` o `!conda` perché possono comportarsi in modi imprevisti quando si hanno più ambienti. 

Dopo aver installato nuovi pacchetti nell'ambiente, potrebbe essere necessario riavviare il kernel per assicurarsi che i pacchetti funzionino sul notebook. Questo può essere fatto scegliendo **Amazon SageMaker Studio Lab** nel menu in alto del progetto aperto di Studio Lab e scegliendo **Riavvia JupyterLab...** . 

 **Rimuovi i pacchetti** 

Per rimuovere un pacchetto, esegui il comando

```
%conda remove <PACKAGE_NAME>
```

Questo comando rimuoverà anche qualsiasi pacchetto che dipende da `<PACKAGE_NAME>`, a meno che non sia possibile trovarne uno sostitutivo senza tale dipendenza. 

Per rimuovere tutti i pacchetti in un ambiente, esegui il comando

```
conda deactivate
&& conda env remove --name
<ENVIRONMENT_NAME>
```

## Aggiorna Studio Lab
<a name="studio-lab-use-manage-conda-reset"></a>

Per aggiornare Studio Lab, rimuovi tutti gli ambienti e i file. 

1. Elenca tutti gli ambienti conda.

   ```
   conda env list
   ```

1. Attiva l'ambiente di base.

   ```
   conda activate base
   ```

1. Rimuovi ogni ambiente nell'elenco degli ambienti conda, oltre a quello di base.

   ```
   conda remove --name <ENVIRONMENT_NAME> --all
   ```

1. Elimina tutti i file dal tuo Studio Lab.

   ```
   rm -rf *.*
   ```

# Usa risorse esterne in Amazon SageMaker Studio Lab
<a name="studio-lab-use-external"></a>

Con Amazon SageMaker Studio Lab, puoi integrare risorse esterne, come notebook e dati Jupyter, dai repository Git e Amazon S3. Puoi anche aggiungere un pulsante **Apri in Studio Lab al repository e ai notebook**. GitHub Questo pulsante consente di clonare i notebook direttamente da Studio Lab.

I seguenti argomenti mostrano come integrare risorse esterne.

**Topics**
+ [Usa le risorse GitHub](#studio-lab-use-external-clone-github)
+ [Aggiungi un pulsante **Apri in Studio Lab** al tuo notebook](#studio-lab-use-external-add-button)
+ [Importa file dal tuo computer](#studio-lab-use-external-import)
+ [Connessione ad Amazon S3](#studio-lab-use-external-s3)

## Usa le risorse GitHub
<a name="studio-lab-use-external-clone-github"></a>

Studio Lab offre l'integrazione con GitHub. Con questa integrazione, puoi clonare notebook e repository direttamente nel tuo progetto Studio Lab. 

I seguenti argomenti forniscono informazioni su come utilizzare GitHub le risorse con Studio Lab.

### Notebook di esempio di Studio Lab
<a name="studio-lab-use-external-clone-examples"></a>

Per iniziare con un repository di notebook di esempio personalizzati per Studio Lab, consulta [Notebook di esempio di Studio Lab](https://github.com/aws/studio-lab-examples#sagemaker-studio-lab-sample-notebooks).

Questo repository fornisce notebook per i seguenti casi d'uso e altri.
+ Visione artificiale
+ Connessione a AWS
+ Creazione di ambienti personalizzati
+ Analisi di dati geospaziali
+ Elaborazione linguaggio naturale
+ Usare R

### Clona un repository GitHub
<a name="studio-lab-use-external-clone-repo"></a>

Per clonare un GitHub repository nel tuo progetto Studio Lab, segui questi passaggi. 

1. Avvia il runtime del progetto Studio Lab. Per ulteriori informazioni sull'avvio del runtime del progetto Studio Lab, consulta [Avvio del runtime del progetto](studio-lab-manage-runtime.md#studio-lab-manage-runtime-start). 

1. In Studio Lab scegli l'icona **Browser di file** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/folder.png)) nel menu a sinistra, in modo che il pannello **Browser di file** sia visualizzato sulla sinistra. 

1. Accedi alla tua directory utente scegliendo l'icona del file sotto la barra di ricerca dei file. 

1. Seleziona l'icona **Git** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/git.png)) dal menu a sinistra per aprire un nuovo menu a discesa. 

1. Scegli **Clona un repository**. 

1. Incolla l'URL del repository in **URL repository Git (.git**). 

1. Seleziona **Clona**. 

### Clona singoli notebook da GitHub
<a name="studio-lab-use-external-clone-individual"></a>

Per aprire un notebook in Studio Lab, devi avere accesso al repository in cui si trova il notebook. Gli esempi seguenti descrivono il comportamento relativo alle autorizzazioni di Studio Lab in varie situazioni.
+ Se un repository è pubblico, puoi clonare automaticamente il notebook nel tuo progetto dalla pagina di anteprima di Studio Lab.
+ Se un repository è privato, ti viene richiesto di accedere GitHub dalla pagina di anteprima di Studio Lab. Se hai accesso a un repository privato, puoi clonare il notebook nel tuo progetto.
+ Se non hai accesso a un repository privato, non puoi clonare il notebook dalla pagina di anteprima di Studio Lab.

Le sezioni seguenti mostrano due opzioni per copiare un GitHub taccuino nel progetto Studio Lab. Queste opzioni dipendono dal fatto che il notebook disponga del pulsante **Apri in Studio Lab**. 

#### Opzione 1: Copia il notebook con il pulsante **Apri in Studio Lab**
<a name="studio-lab-use-external-clone-individual-button"></a>

La procedura seguente mostra come copiare un notebook con il pulsante **Apri in Studio Lab**. Se desideri aggiungere questo pulsante al tuo notebook, consulta [Aggiungi un pulsante **Apri in Studio Lab** al tuo notebook](#studio-lab-use-external-add-button).

1. Accedi a Studio Lab seguendo le fasi descritte in [Esegui l’accesso Studio Lab](studio-lab-onboard.md#studio-lab-onboard-signin).

1. In una nuova scheda del browser, accedete al GitHub taccuino che desiderate clonare. 

1. Nel notebook, seleziona il pulsante **Apri in Studio Lab** per aprire una nuova pagina in Studio Lab con un'anteprima del notebook.

1. Se il runtime del progetto non è già in esecuzione, avvialo scegliendo il pulsante **Avvia runtime** nella parte superiore della pagina di anteprima. Attendi l’avvio del runtime prima di continuare con la fase successiva.

1. Dopo l'avvio del runtime del progetto, seleziona **Copia nel progetto** per aprire il runtime del progetto in una nuova scheda del browser. 

1. Nella **copia da GitHub**? nella finestra di dialogo, seleziona **Copia solo taccuino**. In questo modo il file del notebook viene copiato nel progetto.

#### Opzione 2: clona qualsiasi notebook GitHub
<a name="studio-lab-use-external-clone-individual-general"></a>

La procedura seguente mostra come copiare qualsiasi notebook da GitHub. 

1. Accedere al taccuino in GitHub. 

1. Nella barra degli indirizzi del browser, modifica l'URL del notebook, come segue.

   ```
   # Original URL
   https://github.com/<PATH_TO_NOTEBOOK>
   
   # Modified URL 
   https://studiolab.sagemaker.aws/import/github/<PATH_TO_NOTEBOOK>
   ```

1. Accedi all'URL modificato. Si apre un'anteprima del notebook in Studio Lab. 

1. Se il runtime del progetto non è già in esecuzione, avvialo scegliendo il pulsante **Avvia runtime** nella parte superiore della pagina di anteprima. Attendi l’avvio del runtime prima di continuare con la fase successiva. 

1. Dopo l'avvio del runtime del progetto, seleziona **Copia nel progetto** per aprire il runtime del progetto in una nuova scheda del browser. 

1. Nella **copia da GitHub?** nella finestra di dialogo, seleziona **Copia solo il taccuino** per copiare il file del taccuino nel progetto.

## Aggiungi un pulsante **Apri in Studio Lab** al tuo notebook
<a name="studio-lab-use-external-add-button"></a>

Quando aggiungi il pulsante **Apri in Studio Lab** ai tuoi notebook, altri possono clonare i tuoi notebook o repository direttamente nei propri progetti Studio Lab. Se condividi il tuo taccuino all'interno di un GitHub archivio pubblico, il contenuto sarà leggibile pubblicamente. Non condividete contenuti privati, come chiavi di AWS accesso o AWS Identity and Access Management credenziali, nel vostro taccuino.

Per aggiungere il funzionale pulsante **Apri in Studio Lab** al notebook o al repository Jupyter, aggiungi il seguente markdown nella parte superiore del notebook o del repository. 

```
[![Open In SageMaker Studio Lab](https://studiolab.sagemaker.aws/studiolab.svg)](https://studiolab.sagemaker.aws/import/github/<PATH_TO_YOUR_NOTEBOOK_ON_GITHUB>)
```

## Importa file dal tuo computer
<a name="studio-lab-use-external-import"></a>

Le fasi seguenti mostrano come importare file dal computer al progetto Studio Lab.  

1. Apri il runtime del progetto Studio Lab. 

1. Apri il pannello **Browser di file**. 

1. Nella barra delle azioni del pannello **Browser di file**, seleziona il pulsante **Carica file**. 

1. Seleziona i file che desideri caricare dal computer locale. 

1. Seleziona **Apri**. 



In alternativa puoi trascinare e rilasciare i file selezionati da un computer a un pannello **Browser di file**. 

## Connessione ad Amazon S3
<a name="studio-lab-use-external-s3"></a>

 AWS CLI Consente l' AWS integrazione nel progetto Studio Lab. Con questa integrazione, puoi estrarre risorse da Amazon S3 da utilizzare con i tuoi notebook Jupyter.

Per utilizzarlo AWS CLI con Studio Lab, completa i seguenti passaggi. Per un taccuino che descrive questa integrazione, consulta [Using Studio Lab with AWS Resources](https://github.com/aws/studio-lab-examples/blob/main/connect-to-aws/Access_AWS_from_Studio_Lab.ipynb).

1. Installa AWS CLI i seguenti passaggi in [Installazione o aggiornamento della versione più recente di AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html). 

1. Configura AWS le tue credenziali seguendo la procedura descritta in [Configurazione rapida](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html). Il ruolo del tuo AWS account deve disporre delle autorizzazioni per accedere al bucket Amazon S3 da cui stai copiando i dati. 

1. Clona le risorse dal bucket Amazon S3, se necessario. Il comando seguente mostra come clonare tutte le risorse da un percorso Amazon S3 al progetto. Per ulteriori informazioni, consulta la sezione relativa alle [informazioni di riferimento ai comandi di AWS CLI](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/cp.html).

   ```
   !aws s3 cp s3://<BUCKET_NAME>/<PATH_TO_RESOURCES>/ <PROJECT_DESTINATION_PATH>/ --recursive
   ```

# Ottieni differenze nel notebook
<a name="studio-lab-use-diff"></a>

Puoi visualizzare la differenza tra il notebook corrente e l'ultimo checkpoint, o l'ultimo commit Git, utilizzando l'interfaccia utente del progetto Amazon SageMaker Studio Lab.

**Topics**
+ [Ottieni la differenza tra l'ultimo checkpoint](#studio-lab-use-diff-checkpoint)
+ [Ottieni la differenza tra l'ultimo commit](#studio-lab-use-diff-git)

## Ottieni la differenza tra l'ultimo checkpoint
<a name="studio-lab-use-diff-checkpoint"></a>

Quando crei un notebook, viene creato un file di checkpoint nascosto corrispondente al notebook. È possibile visualizzare le modifiche tra il notebook e il file del checkpoint oppure ripristinare il notebook in modo che corrisponda al file del checkpoint.

Per salvare il notebook Studio Lab e aggiornare il file del checkpoint in modo che corrisponda: scegli l’icona **Salva notebook e crea il checkpoint** (![\[Icon of a cloud with an arrow pointing upward, representing cloud upload functionality.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/Notebook_save.png)). Si trova sul lato sinistro del menu di Studio Lab. I tasti di scelta rapida per **Salva notebook e crea il checkpoint** sono `Ctrl + s`.

Per visualizzare le modifiche tra il notebook Studio Lab e il file del checkpoint, scegli l’icona **Diff checkpoint** (![\[Camera icon representing image capture or photo functionality.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/Checkpoint_diff.png)) al centro del menu di Studio Lab.

Per ripristinare il notebook Studio lab nel file del checkpoint, scegli **File** dal menu principale di Studio Lab, quindi **Ripristina notebook su Checkpoint**.

## Ottieni la differenza tra l'ultimo commit
<a name="studio-lab-use-diff-git"></a>

Se un notebook viene aperto da un repository Git, è possibile visualizzare la differenza tra il notebook e l'ultimo commit Git.

Per visualizzare le modifiche nel notebook dall’ultimo commit di Git, scegli l’icona **Diff Git** (![\[GitHub icon representing version control and source code management.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/Git_diff.png)) al centro del menu del notebook.

# Esportazione di un ambiente Amazon SageMaker Studio Lab in Amazon SageMaker Studio Classic
<a name="studio-lab-use-migrate"></a>

Amazon SageMaker Studio Classic offre molte funzionalità per i flussi di lavoro di machine learning e deep learning che non sono disponibili in Amazon SageMaker Studio Lab. Questa pagina mostra come eseguire la migrazione di un ambiente Studio Lab a Studio Classic per sfruttarne le maggiori capacità di calcolo, l’archiviazione e le funzionalità. Tuttavia, potresti voler acquisire familiarità con i container predefiniti di Studio Classic, ottimizzati per l’intera pipeline di MLOP. Per ulteriori informazioni, consulta [Laboratorio Amazon SageMaker Studio](studio-lab.md)

Per eseguire la migrazione del tuo ambiente Studio Lab a Studio Classic, devi prima effettuare l’onboarding a Studio Classic seguendo le fasi descritte in [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md). 

**Topics**
+ [Fase 1: esportare il proprio ambiente Studio Lab conda](#studio-lab-use-migrate-step1)
+ [Fase 2: salvare gli artefatti di Studio Lab](#studio-lab-use-migrate-step2)
+ [Fase 3. Importa gli artefatti di Studio Lab in Studio Classic](#studio-lab-use-migrate-step3)
+ [Fase 4. Installa gli ambienti conda di Studio Lab in Studio Classic](#studio-lab-use-migrate-step4)

## Fase 1: esportare il proprio ambiente Studio Lab conda
<a name="studio-lab-use-migrate-step1"></a>

Puoi esportare un ambiente conda e aggiungere librerie o pacchetti all'ambiente seguendo le fasi indicate in [Gestisci il tuo ambiente](studio-lab-use-manage.md). Nell’esempio seguente viene illustrato l’utilizzo dell’ambiente `default` da esportare in Studio Classic. 

1. Apri il terminale Studio Lab dal pannello **Browser di file** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/folder.png)), scegli il segno più (**\$1**) nel menu nella parte superiore del browser di file per aprire l’**utilità di avvio**, quindi scegli **Terminale**. Dal terminale Studio Lab, elenca gli ambienti conda eseguendo quanto segue.

   ```
   conda env list
   ```

   Questo comando restituisce un elenco degli ambienti conda e delle loro posizioni nel file system. Quando esegui l’integrazione in Studio Lab, attivi automaticamente l'ambiente conda `studiolab`.

   ```
   # conda environments: #
              default                  /home/studio-lab-user/.conda/envs/default
              studiolab             *  /home/studio-lab-user/.conda/envs/studiolab
              studiolab-safemode       /opt/amazon/sagemaker/safemode-home/.conda/envs/studiolab-safemode
              base                     /opt/conda
   ```

   Ti consigliamo di non esportare gli ambienti `studiolab``studiolab-safemode`, e`base`. Questi ambienti non sono utilizzabili in Studio Classic per i seguenti motivi: 
   +  `studiolab`: Questo configura l' JupyterLab ambiente per Studio Lab. Studio Lab esegue una versione principale diversa da Studio Classic, quindi non è utilizzabile in Studio Classic. JupyterLab 
   +  `studiolab-safemode`: Questo configura anche l' JupyterLab ambiente per Studio Lab. Studio Lab esegue una versione principale diversa da Studio Classic, quindi non è utilizzabile in Studio Classic. JupyterLab 
   +  `base`: Questo ambiente viene fornito con conda per impostazione predefinita. L’ambiente `base` di Studio Lab e l’ambiente `base` di Studio Classic hanno versioni incompatibili di molti pacchetti. 

1. Per eseguire la migrazione dell’ambiente conda a Studio Classic, devi prima attivare prima l’ambiente conda. L’ambiente `default` viene quindi modificato quando vengono installate o rimosse nuove librerie. Per ottenere lo stato esatto dell'ambiente, esportalo in un file YAML utilizzando la riga di comando. Le seguenti righe di comando esportano l'ambiente predefinito in un file YAML, creando un file chiamato `myenv.yml`.

   ```
   conda activate default
   conda env export > ~/myenv.yml
   ```

## Fase 2: salvare gli artefatti di Studio Lab
<a name="studio-lab-use-migrate-step2"></a>

Ora che hai salvato l'ambiente in un file YAML, puoi spostare il file di ambiente su qualsiasi piattaforma. 

------
#### [ Save to a local machine using Studio Lab GUI ]

**Nota**  
Il download di una directory dalla GUI di Studio Lab facendo clic con il pulsante destro del mouse sulla directory non è attualmente disponibile. Se desideri esportare una directory, esegui le fasi utilizzando la scheda **Salva in repository Git**. 

Un'opzione è salvare l'ambiente sul computer locale. A tale scopo, procedi come indicato di seguito.

1. In Studio Lab scegli l'icona **Browser di file** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/folder.png)) nel menu a sinistra, in modo che il pannello **Browser di file** sia visualizzato sulla sinistra. 

1. Accedi alla tua directory utente scegliendo l'icona del file sotto la barra di ricerca dei file. 

1. Scegli (fai clic con il pulsante destro del mouse) il file `myenv.yml`, quindi scegli **Scarica**. Puoi ripetere questo processo per gli altri file che desideri importare in Studio Classic. 

------
#### [ Save to a Git repository ]

Un'altra opzione è salvare l'ambiente in un repository Git. Questa opzione utilizza GitHub come esempio. Questi passaggi richiedono un GitHub account e un repository. Per ulteriori informazioni, consulta [GitHub](https://github.com/). La procedura seguente mostra come sincronizzare i contenuti con l' GitHub utilizzo del terminale Studio Lab. 

1. Dal terminale Studio Lab, accedi alla tua directory utente e crea una nuova directory per contenere i file che desideri esportare. 

   ```
   cd ~
   mkdir <NEW_DIRECTORY_NAME>
   ```

1. Dopo aver creato una nuova directory, copia qualsiasi file o cartella che desideri esportare in `<NEW_DIRECTORY_NAME>`. 

   Copia un file utilizzando il seguente formato di codice:

   ```
   cp <FILE_NAME> <NEW_DIRECTORY_NAME>
   ```

   Ad esempio, sostituisci `<FILE_NAME>` con `myenv.yml`. 

   Copia una directory qualsiasi utilizzando il seguente formato di codice:

   ```
   cp -r <DIRECTORY_NAME> <NEW_DIRECTORY_NAME>
   ```

   Ad esempio, sostituisci `<DIRECTORY_NAME>` con qualsiasi nome di directory nella tua directory utente.

1. Passa alla nuova directory e inizializza la directory come repository Git usando il seguente comando. Per ulteriori informazioni, consulta la [documentazione cloud-init](https://git-scm.com/docs/git-init). 

   ```
   cd <NEW_DIRECTORY_NAME>
   git init
   ```

1. Usando Git, aggiungi tutti i file pertinenti e poi esegui il commit delle modifiche. 

   ```
   git add .
   git commit -m "<COMMIT_MESSAGE>"
   ```

   Ad esempio, sostituisci `<COMMIT_MESSAGE>` con `Add Amazon SageMaker Studio Lab artifacts to GitHub repository to migrate to Amazon SageMaker Studio Classic `.

1. Esegui il push del commit sul repository remoto. Questo repository ha il formato `https://github.com/<GITHUB_USERNAME>/ <REPOSITORY_NAME>.git` in cui `<GITHUB_USERNAME>` è il nome GitHub utente e il `<REPOSITORY_NAME>` nome del repository remoto. Crea un ramo `<BRANCH_NAME>` per inviare il contenuto al repository. GitHub 

   ```
   git branch -M <BRANCH_NAME>
   git remote add origin https://github.com/<GITHUB_USERNAME>/<REPOSITORY_NAME>.git
   git push -u origin <BRANCH_NAME>
   ```

------

## Fase 3. Importa gli artefatti di Studio Lab in Studio Classic
<a name="studio-lab-use-migrate-step3"></a>

La procedura seguente mostra come importare artefatti in Studio Classic. Le istruzioni sull’utilizzo dell’archivio delle caratteristiche dalla console variano a seconda che l’esperienza predefinita sia impostata su Studio o Studio Classic. Per informazioni sull’accesso a Studio Classic tramite la console, consulta [Avvio di Studio Classic se Studio è la tua esperienza predefinita](studio-launch.md#studio-launch-console-updated).

Da Studio Classic, puoi importare file dal tuo computer locale o da un repository Git. Puoi scegliere se utilizzare la GUI o il terminale di Studio Classic. La procedura seguente usa gli esempi da [Fase 2: salvare gli artefatti di Studio Lab](#studio-lab-use-migrate-step2). 

------
#### [ Import using the Studio Classic GUI ]

Se hai salvato i file sul tuo computer locale, puoi importarli in Studio Classic utilizzando la procedura seguente.

1. Apri il pannello **Browser di file** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/folder.png)) in alto a sinistra di Studio Classic. 

1. Scegli l’icona **Carica file** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/File_upload_squid.png)) nel menu in alto nel pannello **Browser di file**. 

1. Accedi al file da importare, quindi scegli **Apri**. 

**Nota**  
Per importare una directory in Studio Classic, comprimi prima la directory sul tuo computer locale in un file. Su Mac, fai clic con il pulsante destro del mouse sulla directory e scegli **Comprimi "» *<DIRECTORY\$1NAME>***. In Windows, fai clic con il pulsante destro del mouse sulla directory e scegli **Invia a**, quindi scegli **Cartella compressa (zip)**. Dopo aver compresso la directory, importa il file compresso utilizzando le fasi precedenti. Decomprimi il file compresso accedendo al terminale di Studio Classic ed eseguendo il comando `<DIRECTORY_NAME>.zip`. 

------
#### [ Import using a Git repository ]

Questo esempio fornisce due opzioni su come clonare un GitHub repository in Studio Classic. Puoi utilizzare la GUI di Studio Classic scegliendo la scheda **Git** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/git.png)) sul lato sinistro di Studio Classic. Scegli **Clona un repository**, quindi incolla l'URL del repository da. GitHub [Fase 2: salvare gli artefatti di Studio Lab](#studio-lab-use-migrate-step2) Un’altra opzione consiste nell’utilizzare il terminale di Studio Classic con la procedura seguente. 

1. Apri l’**utilità di avvio** di Studio Classic. Per ulteriori informazioni sull'apertura del **Launcher**, consulta [Amazon SageMaker Studio Classic Launcher](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launcher.html). 

1. Nell’**utilità di avvio**, nella sezione **Notebook e risorse di calcolo**, scegli **Cambia ambiente**.

1. Apri l’**utilità di avvio** in Studio Classic. Per aprire il **Launcher**, scegli **Amazon SageMaker Studio Classic** nell'angolo in alto a sinistra di Studio Classic. 

   Per informazioni sulle modalità di apertura dell’**utilità di avvio** disponibili, consulta [Usa Amazon SageMaker Studio Classic Launcher](studio-launcher.md).

1. Nella finestra di dialogo **Cambia ambiente**, utilizza l'elenco a discesa **Immagine** per selezionare l'immagine **Data Science** e scegli **Seleziona**. Questa immagine viene fornita con conda preinstallato. 

1. Nell’**utilità di avvio** di Studio Classic, scegli **Apri terminale di immagini**.

1. Dal terminale di immagini, esegui il comando seguente per clonare il repository. Questo comando crea una directory denominata `<REPOSITORY_NAME>` nell’istanza di Studio Classic e clona gli artefatti in tale repository.

   ```
   git clone https://github.com/<GITHUB_USERNAME>/<REPOSITORY_NAME>.git
   ```

------

## Fase 4. Installa gli ambienti conda di Studio Lab in Studio Classic
<a name="studio-lab-use-migrate-step4"></a>

Ora puoi ricreare il tuo ambiente conda utilizzando il file YAML nell’istanza di Studio Classic. Apri l’**utilità di avvio** di Studio Classic. Per ulteriori informazioni sull'apertura del **Launcher**, consulta [Amazon SageMaker Studio Classic Launcher](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launcher.html). Dall’**utilità di avvio**, scegli **Apri terminale di immagini**. Nel terminale accedi alla directory che contiene il file YAML, quindi esegui i comandi seguenti. 

```
conda env create --file <ENVIRONMENT_NAME>.yml
conda activate <ENVIRONMENT_NAME>
```

Una volta completati questi comandi, puoi selezionare l’ambiente come kernel per le istanze del notebook Studio Classic. Per visualizzare l'ambiente disponibile, esegui `conda env list`. Per attivare l'ambiente, esegui `conda activate <ENVIRONMENT_NAME>`.



# Chiusura delle risorse di Studio Lab
<a name="studio-lab-use-shutdown"></a>

Puoi visualizzare e chiudere le tue risorse Amazon SageMaker Studio Lab in esecuzione da un'unica posizione nel tuo ambiente Studio Lab. I tipi di risorse in esecuzione includono terminali e kernel. Puoi anche chiudere contemporaneamente tutte le risorse di un determinato tipo.

Se chiudi tutte le risorse di uno specifico tipo, si verifica quanto segue:
+ **KERNEL**: tutti i kernel, i notebook e le console vengono arrestati.
+ **TERMINALI**: tutti i terminali vengono arrestati.

**Chiusura delle risorse di Studio Lab**

1. Avvia il runtime del progetto Studio Lab. Per ulteriori informazioni sull'avvio del runtime del progetto Studio Lab, consulta [Avvio del runtime del progetto](studio-lab-manage-runtime.md#studio-lab-manage-runtime-start).

1. Nel riquadro di navigazione a sinistra, scegli l’icona **Terminali e kernel in esecuzione** (![\[Square icon with a white outline of a cloud on a dark blue background.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/icons/Running_squid.png)).

1. Scegli il simbolo **X** a destra della risorsa che desideri chiudere. Puoi visualizzare il simbolo **X** posizionando il cursore su una risorsa.

1. (Facoltativo) Puoi chiudere tutte le risorse di uno specifico tipo scegliendo **Chiudi tutto** a destra del nome del tipo di risorsa.

# Risoluzione dei problemi
<a name="studio-lab-troubleshooting"></a>

La guida mostra gli errori più comuni che potrebbero verificarsi durante l'utilizzo di Amazon SageMaker Studio Lab (Studio Lab). Ogni errore contiene una descrizione e una soluzione all'errore.

**Nota**  
Non puoi condividere la tua password con più utenti o utilizzare Studio Lab per estrarre criptovalute. Non è consigliabile utilizzare Studio Lab per le attività di produzione a causa dei limiti di runtime.

 **Problemi con le dipendenze** 

L'8 agosto 2025, Studio Lab è passato da JupyterLab 3 a JupyterLab 4. Per informazioni su JupyterLab 4, consulta la versione [4.0.0 - Highlights](https://jupyterlab.readthedocs.io/en/4.0.x/getting_started/changelog.html#highlights) in the Changelog. JupyterLab Se avete installato JupyterLab le estensioni nell'ambiente Studio Lab prima dell'8 agosto 2025, potrebbe essere necessario reinstallarle nell'ambiente 4. JupyterLab 

 **Impossibile accedere all'account** 

Se non riesci ad accedere al tuo account, verifica di utilizzare l'email e la password corrette. Se hai dimenticato la password, procedi nel seguente modo per reimpostarla. Se ancora non riesci ad accedere al tuo account, devi richiedere e registrarti per creare un nuovo account utilizzando le istruzioni riportate in [Accedere ad Amazon SageMaker Studio Lab](studio-lab-onboard.md). 

 **Password dimenticata** 

Se dimentichi la password, devi reimpostarla con la seguente procedura. 

1. Vai alla [pagina di destinazione di Studio Lab](https://studiolab.sagemaker.aws).

1. Seleziona **Accedi**.

1. Seleziona **Password dimenticata?** per aprire una nuova pagina. 

1. Inserisci l'indirizzo e-mail che hai usato per creare un account. 

1. Seleziona **Invia link di reimpostazione** per inviare un'email con un link per la reimpostazione della password. 

1. Dall'e-mail di reimpostazione della password, seleziona **Reimposta la password**. 

1. Inserisci la nuova password. 

1. Selezionare **Invia**. 

 **Impossibile avviare il runtime del progetto** 

Se il runtime del progetto Studio Lab non si avvia, prova a riavviarlo. Se il problema persiste, cambia il tipo di istanza da CPU a GPU (o viceversa). Per ulteriori informazioni, consulta [Cambia il tipo di calcolo](studio-lab-manage-runtime.md#studio-lab-manage-runtime-change).

 **L'esecuzione del runtime si è interrotta in modo imprevisto** 

Se c'è un problema con l'ambiente utilizzato per l'esecuzione JupyterLab, Studio Lab ricreerà automaticamente l'ambiente. Studio Lab non supporta l'attivazione manuale di questo processo. 

 **Versioni in conflitto** 

Poiché è possibile aggiungere pacchetti e modificare l'ambiente in base alle esigenze, è possibile che si verifichino conflitti tra i pacchetti dell'ambiente. In caso di conflitti tra i pacchetti del proprio ambiente, è necessario rimuovere il pacchetto in conflitto.

 **La compilazione dell'ambiente fallisce** 

Quando si crea un ambiente da un file YAML, un conflitto tra versioni del pacchetto o un problema di file potrebbe causare il fallimento della compilazione. Per risolvere questo problema, rimuovi l'ambiente mediante il comando seguente. Esegui questa operazione prima di tentare di crearlo di nuovo. 

```
conda remove --name <YOUR_ENVIRONMENT> --all
```

 **Messaggio di errore relativo al permesso di scaricare lo script dal dominio \$1.awswaf.com** 

Studio Classic utilizza il servizio Web Application Firewall AWS WAF per proteggere le risorse, che utilizza JavaScript. Se si utilizza un plug-in di sicurezza del browser che JavaScript impedisce il download, è possibile che venga visualizzato questo errore. Per utilizzare Studio Classic, consenti il JavaScript download da \$1.awswaf.com come dominio affidabile. Per ulteriori informazioni su AWS WAF, vedere [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)from the, e. AWS WAF AWS Firewall Manager AWS Shield Advanced Guida per gli sviluppatori. 

 **Lo spazio su disco è pieno** 

Se ricevi una notifica che indica che lo spazio su disco è pieno o un **errore di caricamento del file *<FILE\$1NAME>*** durante il tentativo di aprire un file, puoi rimuovere file, directory, librerie o ambienti per aumentare lo spazio. Per ulteriori informazioni sulla gestione delle librerie e degli ambienti, consulta [Gestisci il tuo ambiente](studio-lab-use-manage.md).

 ****Notifica indicante che il runtime del progetto è in modalità sicura**** 

Se ricevi una notifica che indica che il **runtime del progetto è in modalità sicura**, devi liberare spazio su disco per riprendere a utilizzare il runtime del progetto Studio Lab. Segui le istruzioni del precedente elemento di risoluzione dei problemi, lo **spazio su disco è pieno**. Dopo aver liberato almeno 500 MB di spazio, puoi riavviare il runtime del progetto per utilizzare Studio Lab. Questo può essere fatto scegliendo **Amazon SageMaker Studio Lab** nel menu in alto di Studio Lab e scegliendo **Riavvia JupyterLab...** .

git **Impossibile importare `cv2`** 

Se si verifica un errore durante l'importazione di `cv2` dopo l'installazione di `opencv-python`, è necessario disinstallare `opencv-python` e installare `opencv-python-headless` come segue.

```
%pip uninstall opencv-python --yes
%pip install opencv-python-headless
```

È quindi possibile importare `cv2` come previsto.

 **Studio Lab non risponde all'apertura di file di grandi dimensioni** 

L'IDE di Studio Lab potrebbe non riuscire a eseguire il rendering quando vengono aperti file di grandi dimensioni, con conseguente blocco dell'accesso alle risorse di Studio Lab. Per risolvere questo problema, reimpostate l'area di lavoro di Studio Lab utilizzando la procedura seguente.

1. Dopo aver aperto l'IDE, copia l'URL nella barra degli indirizzi del browser. L’URL deve essere nel formato `https://xxxxxx.studio.us-east-2.sagemaker.aws/studiolab/default/jupyter/lab`. Chiudi la scheda.

1. In una nuova scheda, incolla l'URL e rimuovi tutto ciò che segue `https://xxxxxx.studio.us-east-2.sagemaker.aws/studiolab/default/jupyter/lab`.

1. Aggiungi `?reset` alla fine dell'URL, in modo che sia nel formato `https://xxxxxx.studio.us-east-2.sagemaker.aws/studiolab/default/jupyter/lab?reset`.

1. Passa all'URL aggiornato. Ciò ripristina lo stato dell'interfaccia utente salvato e rende reattivo l'IDE di Studio Lab.

# Amazon SageMaker Tela
<a name="canvas"></a>

Amazon SageMaker Canvas ti offre la possibilità di utilizzare l'apprendimento automatico per generare previsioni senza dover scrivere alcun codice. Di seguito sono riportati alcuni casi d'uso in cui è possibile utilizzare SageMaker Canvas:
+ Previsione dell'abbandono del cliente
+ Pianificazione efficiente dell'inventario
+ Ottimizzazione di prezzi e ricavi
+ Miglioramento della puntualità delle consegne
+ Classificazione di testo o immagini in base a categorie personalizzate
+ Identificazione di oggetti e testo nelle immagini
+ Estrazione di informazioni dai documenti

Con Canvas, puoi chattare con i più diffusi modelli di linguaggio di grandi dimensioni (LLMs), accedere ai Ready-to-use modelli o creare un modello personalizzato basato sui tuoi dati.

Canvas chat è una funzionalità che sfrutta l'open source e Amazon LLMs per aiutarti a incrementare la tua produttività. Puoi chiedere ai modelli di ricevere assistenza per attività come generazione di contenuti, riepilogo o categorizzazione di documenti e generazione di risposte alle domande. Per ulteriori informazioni, consulta [Modelli di base generativi di intelligenza artificiale in Canvas SageMaker](canvas-fm-chat.md).

I [Ready-to-use modelli](canvas-ready-to-use-models.md) di Canvas possono estrarre informazioni dai tuoi dati per una varietà di casi d'uso. [https://docs.aws.amazon.com/textract/latest/dg/what-is.html](https://docs.aws.amazon.com/textract/latest/dg/what-is.html) Devi solo importare i tuoi dati e iniziare a utilizzare una soluzione per generare previsioni.

Se desideri un modello personalizzato in base al tuo caso d'uso e addestrato con i tuoi dati, puoi usare la funzionalità [crea un modello](canvas-custom-models.md). Puoi ottenere previsioni personalizzate in base ai tuoi dati eseguendo le seguenti operazioni:

1. Importazione dei tuoi dati da una o più origini dati.

1. Creazione di un modello predittivo.

1. Valutazione delle prestazioni del modello.

1. Generazione di previsioni con il modello.

Canvas supporta i seguenti tipi di modelli personalizzati:
+ Previsione numerica (nota anche come *regressione*)
+ Previsione categoriale per 2 e più di 3 categorie (nota anche come classificazione *binaria* e *multiclasse*)
+ Previsione di serie temporali
+ Previsione di immagini a etichetta singola (nota anche come *classificazione delle immagini*)
+ Previsione di testo multicategoria (nota anche come *classificazione del testo multiclasse*)

[Per ulteriori informazioni sui prezzi, consulta la pagina dei prezzi di Canvas. SageMaker ](https://aws.amazon.com/sagemaker/canvas/pricing/) Per ulteriori informazioni, consulta anche [Fatturazione e costi in Canvas SageMaker](canvas-manage-cost.md).

SageMaker Canvas è attualmente disponibile nelle seguenti regioni:
+ Stati Uniti orientali (Ohio)
+ Stati Uniti orientali (Virginia settentrionale)
+ Stati Uniti occidentali (California settentrionale)
+ Stati Uniti occidentali (Oregon)
+ Asia Pacifico (Mumbai)
+ Asia Pacifico (Seoul)
+ Asia Pacifico (Singapore)
+ Asia Pacifico (Sydney)
+ Asia Pacifico (Tokyo)
+ Canada (Centrale)
+ Europa (Francoforte)
+ Europa (Irlanda)
+ Europa (Londra)
+ Europe (Paris)
+ Europa (Stoccolma)
+ Sud America (San Paolo)

**Topics**
+ [Sei un utente SageMaker Canvas per la prima volta?](#canvas-first-time-user)
+ [Guida introduttiva all'utilizzo di Amazon SageMaker Canvas](canvas-getting-started.md)
+ [Tutorial: crea un flusso di lavoro di apprendimento end-to-end automatico in Canvas SageMaker](canvas-end-to-end-machine-learning-workflow.md)
+ [Configurazione e gestione delle autorizzazioni di Amazon SageMaker Canvas (per amministratori IT)](canvas-setting-up.md)
+ [Assistenza dell’IA generativa per risolvere i problemi di ML in Canvas con Amazon Q Developer](canvas-q.md)
+ [Importazione dei dati](canvas-importing-data.md)
+ [Preparazione dei dati](canvas-data-prep.md)
+ [Modelli di base generativi di intelligenza artificiale in Canvas SageMaker](canvas-fm-chat.md)
+ [Ready-to-use modelli](canvas-ready-to-use-models.md)
+ [Modelli personalizzati](canvas-custom-models.md)
+ [Disconnettersi da Amazon Canvas SageMaker](canvas-log-out.md)
+ [Limitazioni e risoluzione dei problemi](canvas-limits.md)
+ [Fatturazione e costi in Canvas SageMaker](canvas-manage-cost.md)

## Sei un utente SageMaker Canvas per la prima volta?
<a name="canvas-first-time-user"></a>

Se sei un utente di SageMaker Canvas per la prima volta, ti consigliamo di iniziare leggendo le seguenti sezioni:
+ Per amministratori IT: [Configurazione e gestione delle autorizzazioni di Amazon SageMaker Canvas (per amministratori IT)](canvas-setting-up.md)
+ Per analisti e singoli utenti: [Guida introduttiva all'utilizzo di Amazon SageMaker Canvas](canvas-getting-started.md)
+ Per un esempio di flusso di lavoro end-to-end: [Tutorial: crea un flusso di lavoro di apprendimento end-to-end automatico in Canvas SageMaker](canvas-end-to-end-machine-learning-workflow.md)

# Guida introduttiva all'utilizzo di Amazon SageMaker Canvas
<a name="canvas-getting-started"></a>

Questa guida spiega come iniziare a usare SageMaker Canvas. Se sei un amministratore IT e desideri dettagli più approfonditi, consulta la sezione Configurazione [Configurazione e gestione delle autorizzazioni di Amazon SageMaker Canvas (per amministratori IT)](canvas-setting-up.md) di SageMaker Canvas per i tuoi utenti.

**Topics**
+ [Prerequisiti per la configurazione di Amazon Canvas SageMaker](#canvas-prerequisites)
+ [Passaggio 1: accedi a Canvas SageMaker](#canvas-getting-started-step1)
+ [Passaggio 2: usa SageMaker Canvas per ottenere previsioni](#canvas-getting-started-step2)

## Prerequisiti per la configurazione di Amazon Canvas SageMaker
<a name="canvas-prerequisites"></a>

Per configurare un'applicazione SageMaker Canvas, esegui l'onboard utilizzando uno dei seguenti metodi di configurazione:

1. **A bordo con la console. AWS ** Per effettuare l'onboarding tramite la AWS console, devi prima creare un dominio Amazon SageMaker AI. SageMaker [I domini AI supportano i vari ambienti di apprendimento automatico (ML) come Canvas e SageMaker Studio.](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html) Per ulteriori informazioni sui domini, consulta [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md).

   1. (Rapido) [Usa la configurazione rapida per Amazon SageMaker AI](onboard-quick-start.md): scegli questa opzione per configurare rapidamente un dominio. Con questa procedura, l’utente ottiene tutte le autorizzazioni Canvas predefinite e le funzionalità di base. Qualsiasi funzionalità aggiuntiva, come le [query sui documenti](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-fm-chat.html#canvas-fm-chat-query), può essere abilitata in un secondo momento da un amministratore. Per configurare autorizzazioni più granulari, è preferibile scegliere l’opzione Avanzata.

   1. (Standard) [Usa una configurazione personalizzata per Amazon SageMaker AI](onboard-custom.md): scegli questa opzione per una configurazione più avanzata del tuo dominio. Mantieni il controllo granulare sulle autorizzazioni degli utenti, ad esempio l’accesso alle funzionalità di preparazione dei dati, alle capacità di IA generativa e alle implementazioni dei modelli. 

1. **A bordo con. CloudFormation** [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)automatizza l'approvvigionamento di risorse e configurazioni in modo da poter configurare Canvas per uno o più profili utente contemporaneamente. Utilizza questa opzione per automatizzare il processo di onboarding su larga scala e assicurarti che le tue applicazioni siano configurate sempre allo stesso modo. Il [CloudFormation modello](https://github.com/aws-samples/cloudformation-studio-domain) seguente fornisce un modo semplificato per effettuare l'onboarding su Canvas, garantendo che tutti i componenti necessari siano configurati correttamente e consentendoti di concentrarti sulla creazione e l'implementazione dei tuoi modelli di machine learning.

La sezione seguente descrive come effettuare l'onboarding su Canvas utilizzando la AWS console per creare un dominio.

**Importante**  
Per poter configurare Amazon SageMaker Canvas, la tua versione di Amazon SageMaker Studio deve essere la 3.19.0 o successiva. Per informazioni sull'aggiornamento di Amazon SageMaker Studio, consulta[Chiudi e aggiorna Amazon SageMaker Studio Classic](studio-tasks-update-studio.md).

### A bordo con la console AWS
<a name="canvas-prerequisites-domain"></a>

Se stai eseguendo la configurazione rapida del dominio, puoi seguire le istruzioni riportate in [Usa la configurazione rapida per Amazon SageMaker AI](onboard-quick-start.md), saltare il resto di questa sezione e passare a [Passaggio 1: accedi a Canvas SageMaker](#canvas-getting-started-step1).

Se stai eseguendo la configurazione standard del dominio, puoi specificare le funzionalità Canvas per le quali concedere l’accesso ai tuoi utenti. Per la configurazione standard del dominio, utilizza il resto di questa sezione per configurare le autorizzazioni specifiche di Canvas.

Nelle istruzioni di configurazione [Usa una configurazione personalizzata per Amazon SageMaker AI](onboard-custom.md), seleziona le autorizzazioni Canvas che desideri concedere nella **Fase 2. Utenti e attività di ML**. Nella sezione **Attività di ML**, puoi selezionare le policy di autorizzazione seguenti per concedere l’accesso alle funzionalità di Canvas. Quando configuri il dominio, puoi selezionare un massimo di otto **attività di ML** in totale. Le prime due autorizzazioni nell’elenco seguente sono necessarie per utilizzare Canvas, mentre le altre sono per funzionalità aggiuntive.
+ **Esecuzione di applicazioni Studio**: queste autorizzazioni sono necessarie per avviare l’applicazione Canvas.
+ **[Accesso di base Canvas](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)**: queste autorizzazioni consentono di accedere all’applicazione e alle funzionalità di base di Canvas, come la creazione di set di dati, l’utilizzo di trasformazioni di dati di base e la creazione e l’analisi di modelli.
+ (Facoltativo) **[Preparazione dei dati Canvas (con tecnologia Data Wrangler)](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasDataPrepFullAccess.html)**: queste autorizzazioni concedono l’accesso per la creazione di flussi di dati e l’uso di trasformazioni avanzate per preparare i dati in Canvas. Queste autorizzazioni sono necessarie anche per creare processi di elaborazione dati e pianificazioni dei processi di preparazione dati.
+ (Facoltativo) **[Servizi AI Canvas](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasAIServicesAccess.html)**: queste autorizzazioni ti consentono di accedere ai Ready-to-use modelli, ai modelli di base e alle funzionalità di Chat with Data in Canvas.
+ (Facoltativo) **Accesso Kendra**: questa autorizzazione consente di accedere alla funzionalità di [query sui documenti](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-fm-chat.html#canvas-fm-chat-query), che permette di eseguire query sui documenti archiviati in un indice Amazon Kendra utilizzando i modelli di fondazione in Canvas.

  Se selezioni questa opzione, nella sezione **Canvas Kendra** Access, inserisci IDs gli indici Amazon Kendra a cui desideri concedere l'accesso.
+ (Facoltativo) **[Canvas MLOps](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasDirectDeployAccess.html)**: questa autorizzazione ti consente di accedere alla funzionalità di [distribuzione dei modelli](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-deploy-model.html) in Canvas, dove puoi distribuire modelli da utilizzare in produzione.

Nella sezione **Fase 3. Applicazioni** della configurazione del dominio, scegli **Configura Canvas** e quindi procedi come descritto di seguito:

1.  Per la **configurazione di archiviazione Canvas**, specifica dove desideri che Canvas archivi i dati dell’applicazione, come artefatti del modello, previsioni in batch, set di dati e log. SageMaker L'IA crea una `Canvas/` cartella all'interno di questo bucket per archiviare i dati. Per ulteriori informazioni, consulta [Configurazione dello storage Amazon S3](canvas-storage-configuration.md). In questa sezione, completa le operazioni seguenti:

   1. Seleziona **Sistema gestito** se desideri impostare la posizione sul bucket predefinito SageMaker creato dall'intelligenza artificiale che segue lo schema. `s3://sagemaker-{Region}-{your-account-id}`

   1. Seleziona **Custom S3** per specificare il tuo bucket Amazon S3 come percorso di archiviazione. Immetti quindi l'URI di Amazon S3.

   1. (Facoltativo) In **Chiave di crittografia**, specifica una chiave KMS per crittografare gli artefatti Canvas archiviati nel percorso specificato.

1. (Facoltativo) In **Amazon Q Developer**, procedi come descritto di seguito:

   1. **Attiva Abilita Amazon Q Developer in SageMaker Canvas per il machine learning in linguaggio naturale per** concedere ai tuoi utenti le autorizzazioni per sfruttare l'assistenza generativa dell'intelligenza artificiale durante il loro flusso di lavoro ML in Canvas. Questa opzione autorizza solo a eseguire query in Amazon Q Developer per ottenere assistenza in merito ad attività predeterminate che possono essere completate nell’applicazione Canvas.

   1. **Attiva la chat per sviluppatori di Amazon Q per AWS domande generali per** concedere ai tuoi utenti le autorizzazioni per effettuare domande generative di intelligenza artificiale relative ai servizi. AWS 

1. (Facoltativo) Configura la sezione **Elaborazione di grandi quantità di dati** se i tuoi utenti intendono elaborare set di dati più grandi di 5 GB in Canvas. Per informazioni dettagliate su come configurare queste opzioni, consulta [Concessione di autorizzazioni agli utenti per utilizzare grandi quantità di dati nel ciclo di vita di ML](canvas-large-data-permissions.md).

1. (Facoltativo) Per la sezione **Configurazione delle autorizzazioni ML Ops**, completa le operazioni seguenti:

   1. Lascia attivata l'opzione **Abilita la distribuzione diretta dei modelli Canvas** per concedere ai tuoi utenti le autorizzazioni per distribuire i loro modelli da Canvas a un endpoint AI. SageMaker Per maggiori informazioni sull’implementazione di un modello in Canvas, consulta [Distribuzione di modelli su un endpoint](canvas-deploy-model.md).

   1. Lascia **attiva l'opzione Abilita le autorizzazioni di registrazione del registro dei modelli per tutti gli utenti** per concedere ai tuoi utenti le autorizzazioni per registrare la versione del loro modello nel registro dei modelli SageMaker AI (è attivata per impostazione predefinita). Per ulteriori informazioni, consulta [Registra una versione del modello nel registro dei modelli AI SageMaker](canvas-register-model.md).

   1. Se hai lasciato attiva l’opzione **Abilita le autorizzazioni di registrazione nel registro dei modelli per tutti gli utenti**, seleziona **Registra solo nel registro dei modelli** o **Registra e approva il modello ne registro dei modelli**.

1. (Facoltativo) Nella sezione **Configurazione del caricamento di file locali**, attiva l’opzione **Abilita caricamento di file locali** per concedere agli utenti le autorizzazioni per caricare file su Canvas dai loro computer locali. L’attivazione di questa opzione collega una policy Condivisione delle risorse multiorigine (CORS) al bucket Amazon S3 specificato nella **configurazione di archiviazione Canvas** (e sostituisce qualsiasi policy CORS esistente). Per ulteriori informazioni sulle autorizzazioni di caricamento di file locali, consulta [Concedi ai tuoi utenti le autorizzazioni per caricare file locali](canvas-set-up-local-upload.md).

1. (Facoltativo) Per la sezione **OAuth delle impostazioni**, effettuate le seguenti operazioni:

   1. **Scegliete Aggiungi OAuth configurazione**.

   1. In **Origine dati**, seleziona la tua origine dati.

   1. In **Configurazione del segreto**, seleziona **Crea un nuovo segreto** e inserisci le informazioni che hai ricevuto dal tuo gestore dell’identità digitale. Se non hai ancora eseguito la OAuth configurazione iniziale con la tua fonte di dati, vedi[Configura le connessioni alle sorgenti dati con OAuth](canvas-setting-up-oauth.md).

1. (Facoltativo) Per la **configurazione Ready-to-use dei modelli Canvas**, effettuate le seguenti operazioni:

   1. Lascia **attiva l'opzione Abilita Ready-to-use modelli Canvas** per concedere ai tuoi utenti le autorizzazioni per generare previsioni con Ready-to-use modelli in Canvas (è attivata per impostazione predefinita). Questa opzione concede anche le autorizzazioni per chattare con modelli basati su IA generativa. Per ulteriori informazioni, consulta [Modelli di base generativi di intelligenza artificiale in Canvas SageMaker](canvas-fm-chat.md).

   1. Lascia attivata l'opzione **Abilita query sui documenti utilizzando Amazon Kendra** per concedere ai tuoi utenti le autorizzazioni per utilizzare i modelli di base per fare query sui documenti archiviati in un indice Amazon Kendra. Quindi, dal menu a discesa, seleziona gli indici esistenti ai quali desideri concedere l’accesso. Per ulteriori informazioni, consulta [Modelli di base generativi di intelligenza artificiale in Canvas SageMaker](canvas-fm-chat.md).

   1. In **Ruolo di Amazon Bedrock**, seleziona **Crea e utilizza un nuovo ruolo di esecuzione** per creare un nuovo ruolo di esecuzione IAM che abbia una relazione di attendibilità con Amazon Bedrock. Questo ruolo IAM viene assunto da Amazon Bedrock per ottimizzare modelli di linguaggio di grandi dimensioni (LLMs) in Canvas. Se disponi già di un ruolo di esecuzione con una relazione di attendibilità, seleziona **Utilizza un ruolo di esecuzione esistente** e scegli il tuo ruolo dall’elenco a discesa. Per ulteriori informazioni sulla configurazione manuale delle autorizzazioni per il tuo ruolo di esecuzione, consulta [Concessione di autorizzazioni agli utenti per utilizzare le funzionalità di Amazon Bedrock e di IA generativa in Canvas](canvas-fine-tuning-permissions.md).

1. Completa la configurazione del resto delle impostazioni del dominio utilizzando le procedure in [Usa una configurazione personalizzata per Amazon SageMaker AI](onboard-custom.md).

**Nota**  
Se riscontri problemi con la concessione delle autorizzazioni tramite la console, ad esempio le autorizzazioni per Ready-to-use i modelli, consulta l'argomento. [Risoluzione dei problemi relativi alla concessione delle autorizzazioni tramite la console AI SageMaker](canvas-limits.md#canvas-troubleshoot-trusted-services)

Ora dovresti avere un dominio SageMaker AI configurato e tutte le autorizzazioni Canvas configurate.

Puoi modificare le autorizzazioni Canvas per un dominio o un utente specifico dopo la configurazione iniziale del dominio. Le impostazioni dei singoli utenti hanno la precedenza sulle impostazioni del dominio. Per informazioni su come modificare le autorizzazioni di Canvas nelle impostazioni del dominio, consulta [Modifica delle impostazioni del dominio](domain-edit.md).

### Concediti le autorizzazioni per utilizzare funzionalità specifiche in Canvas
<a name="canvas-prerequisites-permissions"></a>

Le informazioni seguenti descrivono le diverse autorizzazioni che puoi concedere a un utente Canvas per consentire l’utilizzo di varie opzioni e funzionalità all’interno di Canvas: Alcune di queste autorizzazioni possono essere concesse durante la configurazione del dominio, ma altre richiedono autorizzazioni o configurazioni aggiuntive. Fai riferimento alle informazioni sulle autorizzazioni specifiche per ogni funzionalità che desideri abilitare:
+ **Caricamento dei file locali**. Le autorizzazioni per il caricamento dei file locali vengono attivate per impostazione predefinita nelle autorizzazioni di base di Canvas durante la configurazione del dominio. Se non riesci a caricare file locali dalla tua macchina SageMaker su Canvas, puoi allegare una policy CORS al bucket Amazon S3 che hai specificato nella configurazione di storage Canvas. Se hai consentito all' SageMaker IA di utilizzare il bucket predefinito, il bucket segue lo schema di denominazione. `s3://sagemaker-{Region}-{your-account-id}` Per ulteriori informazioni, consulta [Grant Your Users Permissions to Upload Local Files](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-set-up-local-upload.html).
+ **Modelli di previsione di immagini e testi personalizzati**. Le autorizzazioni per la creazione di modelli di previsione di immagini e testo personalizzati vengono attivate per impostazione predefinita nelle autorizzazioni di base di Canvas durante la configurazione del dominio. Tuttavia, se disponi di una configurazione IAM personalizzata e non desideri collegare la [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess)policy al ruolo di esecuzione IAM dell'utente, devi concedere esplicitamente all'utente le autorizzazioni necessarie. Per ulteriori informazioni, consulta [Concedi ai tuoi utenti le autorizzazioni per creare modelli di previsione di immagini e testo personalizzati](canvas-set-up-cv-nlp.md).
+ **Ready-to-use modelli e modelli di base.** Potresti voler utilizzare i Ready-to-use modelli Canvas per fare previsioni per i tuoi dati. Con le autorizzazioni Ready-to-use dei modelli, puoi anche chattare con modelli generativi basati sull'intelligenza artificiale. Le autorizzazioni vengono attivate per impostazione predefinita durante la configurazione del dominio oppure puoi modificare le autorizzazioni per un dominio creato in precedenza. L'opzione di autorizzazione Ready-to-use dei modelli Canvas aggiunge la politica di [AmazonSageMakerCanvasAIServicesaccesso](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess) al ruolo di esecuzione. Per ulteriori informazioni, consulta la [Nozioni di base](canvas-ready-to-use-models.md#canvas-ready-to-use-get-started) sezione della documentazione dei Ready-to-use modelli.

  Per ulteriori informazioni sulle nozioni di base sui modelli di fondazione dell'IA generativa, consulta [Modelli di base generativi di intelligenza artificiale in Canvas SageMaker](canvas-fm-chat.md).
+ **Fine-tuning dei modelli di fondazione.** Per eseguire il fine-tuning dei modelli di fondazione in Canvas, puoi aggiungere le autorizzazioni durante la configurazione del dominio oppure puoi modificare le autorizzazioni per il dominio o il profilo utente dopo aver creato il dominio. Devi aggiungere la policy di [AmazonSageMakerCanvasAIServicesaccesso](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess) al ruolo AWS IAM che hai scelto durante la configurazione del profilo utente e devi anche aggiungere una relazione di trust con Amazon Bedrock al ruolo. Per istruzioni su come aggiungere queste autorizzazioni al ruolo IAM, consulta [Concessione di autorizzazioni agli utenti per utilizzare le funzionalità di Amazon Bedrock e di IA generativa in Canvas](canvas-fine-tuning-permissions.md). 
+ **Invia previsioni in batch a Quick.** Potresti voler [inviare *previsioni in batch, o set di dati di previsioni*](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-send-predictions.html) generati da un modello personalizzato, a Quick per l'analisi. In [QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html), puoi creare e pubblicare dashboard predittivi con i risultati delle tue previsioni. Per istruzioni su come aggiungere queste autorizzazioni al ruolo IAM del tuo utente Canvas, consulta [Concedi ai tuoi utenti le autorizzazioni per inviare previsioni a](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-quicksight-permissions.html) Quick.
+ **Distribuisci i modelli Canvas su un endpoint AI. SageMaker ** SageMaker AI Hosting offre *endpoint* che puoi utilizzare per implementare il tuo modello da utilizzare in produzione. Puoi distribuire modelli integrati in Canvas su un endpoint di SageMaker intelligenza artificiale e quindi fare previsioni a livello di codice in un ambiente di produzione. Per ulteriori informazioni, consulta [Distribuzione di modelli su un endpoint](canvas-deploy-model.md).
+ **Registrazione delle versioni del modello nel Model Registry.** Potresti voler registrare *le versioni* del tuo [modello nel registro dei modelli SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry.html), che è un archivio per tracciare lo stato delle versioni aggiornate del tuo modello. Un data scientist o un MLOps team che lavora nel SageMaker Model Registry può visualizzare le versioni del modello che hai creato e approvarle o rifiutarle. Quindi, può implementare la versione del modello in produzione o avviare un flusso di lavoro automatizzato. Le autorizzazioni di registrazione dei modelli per il tuo dominio sono attive per impostazione predefinita. Puoi gestire le autorizzazioni a livello di profilo utente e concedere o rimuovere le autorizzazioni a utenti specifici. Per ulteriori informazioni, consulta [Registra una versione del modello nel registro dei modelli AI SageMaker](canvas-register-model.md).
+ **Importa dati da Amazon Redshift.** Se desideri importare dati da Amazon Redshift, devi concederti autorizzazioni aggiuntive. Devi aggiungere la policy `AmazonRedshiftFullAccess` gestita al ruolo AWS IAM che hai scelto durante la configurazione del profilo utente. Per istruzioni su come aggiungere la policy al ruolo, consulta [Grant Users Permissions to Import Amazon Redshift Data](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-redshift-permissions.html).

**Nota**  
Le autorizzazioni necessarie per l'importazione tramite altre fonti di dati, come Amazon Athena e piattaforme SaaS, sono incluse nelle politiche e. [AmazonSageMakerFullAccess[AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess)](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html) Se hai seguito le istruzioni di configurazione standard, queste policy dovrebbero essere già collegate al tuo ruolo di esecuzione. Per ulteriori informazioni su queste origini dati e le relative autorizzazioni, consulta [Connessione alle origini dati](canvas-connecting-external.md).

## Passaggio 1: accedi a Canvas SageMaker
<a name="canvas-getting-started-step1"></a>

Una volta completata la configurazione iniziale, puoi accedere a SageMaker Canvas con uno dei seguenti metodi, a seconda del caso d'uso:
+ Nella [console SageMaker AI](https://console.aws.amazon.com/sagemaker/), scegli **Canvas** nel riquadro di navigazione a sinistra. Quindi, nella pagina **Canvas**, seleziona il tuo utente dall’elenco a discesa e avvia l’applicazione Canvas.
+ Apri [SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html) e, nell'interfaccia di Studio, vai alla pagina Canvas e avvia l'applicazione Canvas.
+ Utilizza i metodi SSO basati su SAML 2.0 della tua organizzazione, come Okta o Centro identità IAM.

Quando accedi a SageMaker Canvas per la prima volta, SageMaker AI crea l'applicazione e uno *spazio SageMaker * AI per te. I dati dell’applicazione Canvas vengono archiviati nello spazio. Per ulteriori informazioni sugli spazi, consulta [Collaborazione con spazi condivisi](domain-space.md). Lo spazio è composto dalle applicazioni del tuo profilo utente e da una directory condivisa per tutti i dati delle tue applicazioni. Se non desideri utilizzare lo spazio predefinito creato dall' SageMaker IA e preferisci creare il tuo spazio per l'archiviazione dei dati dell'applicazione, consulta la pagina[Archivia i dati delle applicazioni SageMaker Canvas nel tuo spazio AI SageMaker](canvas-spaces-setup.md).

## Passaggio 2: usa SageMaker Canvas per ottenere previsioni
<a name="canvas-getting-started-step2"></a>

Dopo aver effettuato l'accesso a Canvas, puoi iniziare a creare modelli e generare previsioni per i tuoi dati.

Puoi utilizzare i Ready-to-use modelli Canvas per fare previsioni senza creare un modello oppure creare un modello personalizzato per il tuo problema aziendale specifico. Consulta le seguenti informazioni per decidere se Ready-to-use i modelli o i modelli personalizzati sono i migliori per il tuo caso d'uso.
+ **Ready-to-use modelli.** Con Ready-to-use i modelli, puoi utilizzare modelli predefiniti per estrarre informazioni dai tuoi dati. I Ready-to-use modelli coprono una varietà di casi d'uso, come il rilevamento del linguaggio e l'analisi dei documenti. Per iniziare a fare previsioni con Ready-to-use i modelli, consulta[Ready-to-use modelli](canvas-ready-to-use-models.md).
+ **Modelli personalizzati.** Con i modelli personalizzati puoi creare diversi tipi di modelli personalizzati per generare previsioni per i tuoi dati. Utilizza i modelli personalizzati se desideri creare un modello addestrato sui dati specifici della tua azienda e se desideri utilizzare funzionalità come la [valutazione delle prestazioni del modello](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-evaluate-model.html). Per iniziare a creare un modello personalizzato, consulta [Modelli personalizzati](canvas-custom-models.md).

# Tutorial: crea un flusso di lavoro di apprendimento end-to-end automatico in Canvas SageMaker
<a name="canvas-end-to-end-machine-learning-workflow"></a>

Questo tutorial ti guida attraverso un flusso di lavoro di end-to-end machine learning (ML) utilizzando Amazon SageMaker Canvas. SageMaker Canvas è un'interfaccia visiva senza codice che puoi utilizzare per preparare dati e addestrare e distribuire modelli ML. Per il tutorial, utilizzi un set di dati sui taxi di New York per addestrare un modello che prevede l’importo della tariffa per un determinato viaggio. Acquisisci esperienza pratica con attività di machine learning chiave come la valutazione della qualità dei dati e la risoluzione dei problemi relativi ai dati, la suddivisione dei dati in set di formazione e test, la formazione e la valutazione dei modelli, la creazione di previsioni e l'implementazione del modello addestrato, il tutto all'interno dell'applicazione Canvas. SageMaker 

**Importante**  
Questo tutorial presuppone che tu o il tuo amministratore abbiate creato un account. AWS Per informazioni sulla creazione di un AWS account, vedi [Guida introduttiva: sei un AWS utente per la prima volta](https://docs.aws.amazon.com/accounts/latest/reference/welcome-first-time-user.html)?

## Configurazione
<a name="canvas-tutorial-setting-up"></a>

Un dominio Amazon SageMaker AI è un luogo centralizzato per gestire tutti gli ambienti e le risorse Amazon SageMaker AI. Un dominio funge da confine virtuale per il tuo lavoro nell' SageMaker intelligenza artificiale, fornendo isolamento e controllo degli accessi per le tue risorse di machine learning (ML). 

Per iniziare a usare Amazon SageMaker Canvas, tu o il tuo amministratore dovete accedere alla console di SageMaker intelligenza artificiale e creare un dominio Amazon SageMaker AI. Un dominio dispone delle risorse di archiviazione e calcolo necessarie per eseguire SageMaker Canvas. All'interno del dominio, configuri SageMaker Canvas per accedere ai bucket Amazon S3 e distribuire modelli. Utilizza la seguente procedura per configurare un dominio rapido e creare un' SageMaker applicazione Canvas.

**Per configurare SageMaker Canvas**

1. Vai alla [console SageMaker AI](https://console.aws.amazon.com/sagemaker).

1. Nella barra di navigazione a sinistra, scegli SageMaker Canvas.

1. Scegli **Crea un dominio SageMaker AI**.

1. Scegliere **Set up (Configura)**. La configurazione del dominio può richiedere alcuni minuti.

La procedura precedente utilizza una configurazione rapida del dominio, ma è possibile eseguire una configurazione avanzata per controllare tutti gli aspetti della configurazione dell’account, tra cui autorizzazioni, integrazioni e crittografia. Per ulteriori informazioni sulla configurazione personalizzata, consulta [Usa una configurazione personalizzata per Amazon SageMaker AI](onboard-custom.md).

Per impostazione predefinita, la configurazione rapida del dominio fornisce le autorizzazioni per implementare i modelli. Se le autorizzazioni personalizzate sono configurate tramite un dominio standard e devi concedere manualmente le autorizzazioni di implementazione dei modelli, consulta [Gestione delle autorizzazioni](canvas-deploy-model.md#canvas-deploy-model-prereqs).

## Creazione di flussi
<a name="canvas-tutorial-flow-creation"></a>

Amazon SageMaker Canvas è una piattaforma di apprendimento automatico che consente agli utenti di creare, addestrare e distribuire modelli di apprendimento automatico senza una vasta esperienza di programmazione o apprendimento automatico. Una delle potenti funzionalità di Amazon SageMaker Canvas è la capacità di importare e lavorare con set di dati di grandi dimensioni da varie fonti, come Amazon S3.

Per questo tutorial, utilizziamo il set di dati dei taxi di New York per prevedere l'importo della tariffa per ogni viaggio utilizzando un flusso di dati Amazon SageMaker Canvas Data Wrangler. La procedura seguente descrive le fasi per importare una versione modificata del set di dati dei taxi di New York in un flusso di dati.

**Nota**  
Per migliorare l'elaborazione, SageMaker Canvas importa un campione dei tuoi dati. Per impostazione predefinita, estrae in modo casuale un campione di 50.000 righe.

**Per importare il set di dati dei taxi di New York**

1. Dalla home page di SageMaker Canvas, scegli **Data Wrangler**.

1. Scegli **Import data** (Importa dati).

1. Seleziona **Tabulare**.

1. Scegli la casella degli strumenti accanto all’origine dati.

1. Seleziona **Amazon S3** dall’elenco a discesa.

1. In **Inserisci endpoint S3**, specifica `s3://amazon-sagemaker-data-wrangler-documentation-artifacts/canvas-single-file-nyc-taxi-dataset.csv`.

1. Scegli **Vai**.

1. Seleziona la casella di controllo accanto al set di dati.

1. Scegli **Anteprima dati**.

1. Scegli **Save** (Salva).

## Report Qualità e informazioni approfondite sui dati 1 (campione)
<a name="canvas-tutorial-data-quality-insights-report-1"></a>

Dopo aver importato un set di dati in Amazon SageMaker Canvas, puoi generare un rapporto Data Quality and Insights su un campione di dati. Utilizzalo per estrarre informazioni preziose dal set di dati. Il report:
+ Valuta la completezza del set di dati
+ Identifica i valori mancanti e anomali

Può identificare altri potenziali problemi che potrebbero influire sulle prestazioni del modello. Valuta inoltre il potere predittivo di ciascuna funzionalità rispetto alla variabile di destinazione, consentendo di identificare le funzionalità più rilevanti per il problema che stai cercando di risolvere.

Possiamo utilizzare le informazioni approfondite del report per prevedere l’importo della tariffa. Specificando la colonna “**Importo della tariffa**” come variabile di destinazione e selezionando **Regressione** come tipo di problema, il report analizzerà l’idoneità del set di dati per la previsione di valori continui come i prezzi delle tariffe. Il report dovrebbe indicare che funzionalità come **year** e **hour\$1of\$1day** hanno un basso potere predittivo per la variabile di destinazione scelta, fornendoti informazioni preziose.

Utilizza la procedura seguente per ottenere un report Qualità e informazioni approfondite sui dati su un campione di 50.000 righe del set di dati.

**Per ottenere un report su un campione**

1. Scegli **Ottieni informazioni approfondite sui dati** dalla finestra pop-up accanto al nodo **Tipi di dati**.

1. In **Nome dell’analisi**, specifica un nome per il report.

1. In **Tipo di problema**, scegli **Regressione**.

1. In **Colonna di destinazione**, scegli **Importo della tariffa**.

1. Scegli **Create** (Crea).

Puoi esaminare il report Qualità e informazioni approfondite sui dati basato su un campione di dati. Il report indica che le funzionalità **year** e **hour\$1of\$1day** non prevedono la variabile di destinazione, **Importo della tariffa**.

Nella parte superiore della navigazione, scegli il nome del flusso di dati per visualizzarlo di nuovo.

## Eliminazione di anno e ora del giorno
<a name="canvas-tutorial-drop-year-and-hour-of-day"></a>

Stiamo utilizzando le informazioni approfondite del report per eliminare le colonne **year** e **hour\$1of\$1day** per ottimizzare lo spazio delle funzionalità e migliorare potenzialmente le prestazioni del modello.

Amazon SageMaker Canvas offre un'interfaccia e strumenti intuitivi per eseguire tali trasformazioni di dati.

Utilizza la seguente procedura per eliminare le colonne **anno** e **ora\$1giorno dal set di** dati dei taxi di New York utilizzando lo strumento Data Wrangler in Amazon Canvas. SageMaker 

1. Scegli l’icona accanto a **Tipi di dati**.

1. Scegli **Aggiungi fase**.

1. Nella barra di ricerca, scrivi **Elimina colonna**.

1. Scegli **Gestisci colonne**.

1. Scegli **Elimina colonna**.

1. In **Colonne da eliminare**, seleziona le colonne **year** e **hour\$1of\$1day**.

1. Scegli **Anteprima** per vedere in che modo questa trasformazione modifica i dati.

1. Scegliere **Aggiungi**.

Puoi utilizzare la procedura precedente come base per aggiungere tutte le altre trasformazioni in Canvas. SageMaker 

## Qualità e informazioni approfondite sui dati 2 (set di dati completo)
<a name="canvas-tutorial-data-quality-insights-report-2"></a>

Nel report precedente, abbiamo utilizzato un campione del set di dati dei taxi di New York. Per il nostro secondo report, eseguiamo un’analisi completa sull’intero set di dati per identificare potenziali problemi che influiscono sulle prestazioni del modello.

Utilizza la procedura seguente per creare un report Qualità e informazioni approfondite sui dati per l’intero set di dati.

**Per ottenere un report sull’intero set di dati**

1. Scegli l’icona accanto al nodo **Elimina colonne**.

1. Scegli **Ottieni informazioni approfondite sui dati**.

1. In **Nome dell’analisi**, specifica un nome per il report.

1. In **Tipo di problema**, scegli **Regressione**.

1. In **Colonna di destinazione**, scegli **Importo della tariffa**.

1. In **Dimensioni dei dati**, scegli **Set di dati completo**.

1. Scegli **Create** (Crea).

Di seguito è riportata un’immagine tratta dal report delle informazioni approfondite:

![\[Le righe duplicate, le destinazioni disallineate e un punteggio del modello rapido molto basso sono elencati come insightsP\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/canvas-tutorial-dqi-insights.png)


Mostra i problemi seguenti:
+ Righe duplicate
+ Destinazione disallineata

Le righe duplicate possono portare a data leakage, perché il modello è esposto agli stessi dati durante l’addestramento e i test. Possono portare a metriche sulle prestazioni eccessivamente ottimistiche. La rimozione delle righe duplicate garantisce che il modello venga addestrato su istanze uniche, riducendo il rischio di data leakage e migliorando la capacità di generalizzazione del modello.

Una distribuzione disallineata delle variabili di destinazione, in questo caso la colonna **Importo della tariffa**, può produrre classi squilibrate, in cui il modello potrebbe orientarsi verso la classe maggioritaria. Questo può tradursi in prestazioni scadenti nelle classi minoritarie, un problema particolarmente sentito in scenari in cui è importante prevedere con precisione le istanze rare o sottorappresentate.

## Risoluzione dei problemi di qualità dei dati
<a name="canvas-tutorial-addressing-data-quality-issues"></a>

Per risolvere questi problemi e preparare il set di dati per la modellazione, puoi cercare le seguenti trasformazioni e applicarle:

1. Elimina i duplicati utilizzando la trasformazione **Gestisci righe**.

1. **Gestisci i valori anomali** nella colonna **Importo della tariffa** utilizzando i **valori anomali numerici con deviazione standard robusta**.

1. **Gestisci i valori anomali** nelle colonne **Distanza della corsa** e **Durata della corsa** utilizzando i **valori anomali numerici con deviazione standard**.

1. Utilizza la **codifica categorica** per codificare le colonne **ID codice tariffa**, **Tipo di pagamento**, **Flag extra** e **Flag pedaggio** come tipo in virgola mobile.

Se hai dubbi su come applicare una trasformazione, consulta [Eliminazione di anno e ora del giorno](#canvas-tutorial-drop-year-and-hour-of-day).

Risolvendo questi problemi di qualità dei dati e applicando le trasformazioni appropriate, puoi migliorare l’idoneità del set di dati per la modellazione.

## Verifica della qualità dei dati e accuratezza del modello rapido
<a name="canvas-tutorial-verifying-data-quality-and-quick-model-accuracy"></a>

Dopo aver applicato le trasformazioni per risolvere i problemi di qualità dei dati, come la rimozione delle righe duplicate, creiamo il nostro report finale Qualità e informazioni approfondite sui dati. Questo report aiuta a verificare che le trasformazioni applicate abbiano risolto i problemi e che il set di dati sia ora in uno stato adatto per la modellazione.

Durante la revisione del report finale Qualità e informazioni approfondite sui dati, non dovrebbero essere segnalati problemi importanti relativi alla qualità dei dati. Il report dovrebbe indicare che:
+ La variabile di destinazione non è più disallineata
+ Non ci sono valori anomali o righe duplicate

Inoltre, il report dovrebbe fornire un punteggio del modello rapido basato su un modello baseline addestrato sul set di dati trasformato. Questo punteggio funge da indicatore iniziale dell’accuratezza e delle prestazioni potenziali del modello.

Utilizza la procedura seguente per creare un report Qualità e informazioni approfondite sui dati.

**Per creare un report Qualità e informazioni approfondite sui dati**

1. Scegli l’icona accanto al nodo **Elimina colonne**.

1. Scegli **Ottieni informazioni approfondite sui dati**.

1. In **Nome dell’analisi**, specifica un nome per il report.

1. In **Tipo di problema**, scegli **Regressione**.

1. In **Colonna di destinazione**, scegli **Importo della tariffa**.

1. In **Dimensioni dei dati**, scegli **Set di dati completo**.

1. Scegli **Create** (Crea).

## Suddivisione dei dati in set di dati di addestramento e di test
<a name="canvas-tutorial-split-data"></a>

Per addestrare un modello e valutarne le prestazioni, utilizziamo la trasformazione **Suddividi dati** per suddividere i dati in set di addestramento e test.

Per impostazione predefinita, SageMaker Canvas utilizza una divisione randomizzata, ma puoi anche utilizzare i seguenti tipi di suddivisioni:
+ Ordinata
+ Stratificata
+ Suddivisione per chiave

Puoi modificare la **percentuale di suddivisione** o aggiungere suddivisioni.

Per questo tutorial, utilizza tutte le impostazioni predefinite nella suddivisione. Per visualizzarne il nome, fai doppio clic sul set di dati. Il nome del set di dati di addestramento è **Set di dati (addestramento)**.

Accanto al nodo **Codifica ordinale**, applica la trasformazione **Suddividi dati**.

## Addestramento del modello
<a name="canvas-tutorial-train-model"></a>

Dopo aver suddiviso i dati, puoi addestrare un modello. Questo modello impara dai modelli presenti nei dati. Puoi utilizzarlo per generare previsioni o ottenere informazioni approfondite.

SageMaker Canvas ha sia build rapide che build standard. Utilizza una build standard per addestrare il modello con le migliori prestazioni in base ai tuoi dati.

Prima di iniziare ad addestrare un modello, devi prima esportare il set di dati di addestramento come set di dati Canvas. SageMaker 

**Per esportare il set di dati**

1. Accanto al nodo per il set di dati di addestramento, scegli l’icona e seleziona **Esporta**.

1. Seleziona il set di dati **SageMaker Canvas.**

1. Scegli **Esporta** per esportare il set di dati.

Dopo aver creato un set di dati, puoi addestrare un modello sul set di dati SageMaker Canvas che hai creato. Per informazioni sul training di un modello, consulta [Creazione di un modello di previsione numerico o categorico personalizzato](canvas-build-model-how-to.md#canvas-build-model-numeric-categorical).

## Valutazione del modello e generazione di previsioni
<a name="canvas-tutorial-evaluate-model-and-make-predictions"></a>

Dopo aver addestrato il modello di machine learning, è fondamentale valutarne le prestazioni per assicurarsi che soddisfi i requisiti e funzioni correttamente sui dati non visibili. Amazon SageMaker Canvas offre un'interfaccia intuitiva per valutare l'accuratezza del modello, esaminarne le previsioni e ottenere informazioni sui suoi punti di forza e di debolezza. Puoi utilizzare queste informazioni approfondite per prendere decisioni informate sull’implementazione e sulle potenziali aree di miglioramento del modello.

Utilizza la procedura seguente per valutare un modello prima di distribuirlo.

**Per valutare un modello**

1. Scegli **I miei modelli**.

1. Scegli il modello che hai creato.

1. In **Versioni**, seleziona la versione corrispondente al modello.

Ora puoi visualizzare le metriche di valutazione del modello.

Dopo aver valutato il modello, puoi generare previsioni su nuovi dati. Stiamo utilizzando il set di dati di test che abbiamo creato.

Per utilizzare il set di dati di test per le previsioni, dobbiamo convertirlo in un set di dati Canvas. SageMaker Il set di dati SageMaker Canvas è in un formato interpretabile dal modello.

Utilizzate la seguente procedura per creare un set di dati SageMaker Canvas dal set di dati di test.

**Per creare un set di dati Canvas SageMaker**

1. Accanto al set di dati **Set di dati (test)**, scegli l’icona di opzione.

1. Seleziona **Esporta**.

1. Seleziona il **set di dati SageMaker Canvas**.

1. In **Nome set di dati**, specifica il nome del set di dati.

1. Scegli **Export** (Esporta).

Utilizza la procedura seguente per generare previsioni. Si presuppone che tu sia ancora nella pagina **Analizza**.

**Per generare previsioni sul set di dati di test**

1. Scegli **Prevedi**.

1. Scegli **Manuale**.

1. Seleziona il set di dati che hai esportato.

1. Scegli **Genera previsioni**.

1. Quando SageMaker Canvas ha finito di generare previsioni, seleziona l'icona a destra del set di dati.

1. Scegli **Anteprima** per visualizzare le previsioni.

## Distribuzione di un modello
<a name="canvas-tutorial-deploy-a-model"></a>

Dopo aver valutato il modello, puoi implementarlo su un endpoint. Puoi inviare richieste all’endpoint per ottenere previsioni.

Utilizza la procedura seguente per implementare un modello. Si presuppone che tu sia ancora nella pagina **Prevedi**.

**Per implementare un modello**

1. Seleziona **Implementa**.

1. Scegli **Create deployment (Crea distribuzione)**.

1. Seleziona **Implementa**.

## Pulizia
<a name="canvas-tutorial-cleaning-up"></a>

Il tutorial è stato completato correttamente. Per evitare di incorrere in costi aggiuntivi, elimina le risorse che non stai utilizzando.

Utilizza la procedura seguente per eliminare l’endpoint creato. Si presuppone che tu sia ancora nella pagina **Implementa**.

**Come eliminare un endpoint**

1. Scegli il pulsante di opzione a destra dell’implementazione.

1. Seleziona **Elimina implementazione**.

1. Scegli **Elimina**.

Dopo aver eliminato la distribuzione, elimina i set di dati che hai creato all'interno di Canvas. SageMaker Utilizza la procedura seguente per eliminare i set di dati.

**Per eliminare i set di dati**

1. Nel pannello di navigazione a sinistra, scegli **Set di dati**.

1. Seleziona il set di dati che hai analizzato e il set di dati sintetico utilizzato per le previsioni.

1. Scegli **Elimina**.

Per evitare di incorrere in costi aggiuntivi, devi disconnetterti da Canvas. SageMaker Per ulteriori informazioni, consulta [Disconnettersi da Amazon Canvas SageMaker](canvas-log-out.md).

# Configurazione e gestione delle autorizzazioni di Amazon SageMaker Canvas (per amministratori IT)
<a name="canvas-setting-up"></a>

Le pagine seguenti spiegano come gli amministratori IT possono configurare Amazon SageMaker Canvas e concedere autorizzazioni agli utenti all'interno delle loro organizzazioni. Scopri come configurare la configurazione dello storage, gestire la crittografia dei dati e VPCs controllare l'accesso a funzionalità specifiche come i modelli di base generativi di intelligenza artificiale, l'integrazione con altri AWS servizi come Amazon Redshift e altro ancora. Seguendo questi passaggi, puoi personalizzare SageMaker Canvas per i tuoi utenti in base ai requisiti specifici della tua organizzazione.

Puoi anche configurare SageMaker Canvas per i tuoi utenti con AWS CloudFormation. Per ulteriori informazioni, consulta [AWS:: SageMaker AI: App](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-app.html) nella *Guida per l'AWS CloudFormation utente*.

**Topics**
+ [Concedi ai tuoi utenti le autorizzazioni per caricare file locali](canvas-set-up-local-upload.md)
+ [Configura SageMaker Canvas per i tuoi utenti](setting-up-canvas-sso.md)
+ [Configurazione dello storage Amazon S3](canvas-storage-configuration.md)
+ [Concessione delle autorizzazioni per l’archiviazione multi-account in Amazon S3](canvas-permissions-cross-account.md)
+ [Concessione di autorizzazioni agli utenti per utilizzare grandi quantità di dati nel ciclo di vita di ML](canvas-large-data-permissions.md)
+ [Crittografa i tuoi dati SageMaker Canvas con AWS KMS](canvas-kms.md)
+ [Archivia i dati delle applicazioni SageMaker Canvas nel tuo spazio AI SageMaker](canvas-spaces-setup.md)
+ [Concedi ai tuoi utenti le autorizzazioni per creare modelli di previsione di immagini e testo personalizzati](canvas-set-up-cv-nlp.md)
+ [Concessione di autorizzazioni agli utenti per utilizzare le funzionalità di Amazon Bedrock e di IA generativa in Canvas](canvas-fine-tuning-permissions.md)
+ [Aggiorna SageMaker Canvas per i tuoi utenti](canvas-update.md)
+ [Richiedi un aumento delle quote.](canvas-requesting-quota-increases.md)
+ [Concedere agli utenti le autorizzazioni per importare dati Amazon Redshift](canvas-redshift-permissions.md)
+ [Concedi ai tuoi utenti le autorizzazioni per inviare previsioni a Quick](canvas-quicksight-permissions.md)
+ [Gestione delle applicazioni](canvas-manage-apps.md)
+ [Configura Amazon SageMaker Canvas in un VPC senza accesso a Internet](canvas-vpc.md)
+ [Configura le connessioni alle sorgenti dati con OAuth](canvas-setting-up-oauth.md)

# Concedi ai tuoi utenti le autorizzazioni per caricare file locali
<a name="canvas-set-up-local-upload"></a>

Se i tuoi utenti caricano file dai loro computer locali SageMaker su Canvas, devi allegare una configurazione CORS (cross-origin resource sharing) al bucket Amazon S3 che stanno utilizzando. Quando configuri o modifichi il dominio o il profilo utente SageMaker AI, puoi specificare una posizione Amazon S3 personalizzata o la posizione predefinita, ovvero un bucket Amazon S3 creato da SageMaker AI con un nome che utilizza il seguente schema:. `s3://sagemaker-{Region}-{your-account-id}` SageMaker Canvas aggiunge i dati degli utenti al bucket ogni volta che caricano un file.

Per concedere agli utenti le autorizzazioni per caricare file locali nel bucket, puoi collegarvi una configurazione CORS utilizzando una delle seguenti procedure. Puoi utilizzare il primo metodo per modificare le impostazioni del tuo dominio, in cui consenti all' SageMaker IA di allegare la configurazione CORS al bucket per te. Puoi utilizzare il primo metodo anche per modificare un profilo utente all’interno di un dominio. Il secondo metodo è il metodo manuale, in cui è possibile collegare autonomamente la configurazione CORS al bucket.

## SageMaker Metodo di impostazione del dominio AI
<a name="canvas-set-up-local-upload-domain"></a>

Per concedere ai tuoi utenti le autorizzazioni per caricare file locali, puoi modificare la configurazione dell’applicazione Canvas nelle impostazioni del dominio. Ciò collega una configurazione Cross-Origin Resource Sharing (CORS) al bucket Amazon S3 della configurazione di archiviazione Canvas e concede a tutti gli utenti del dominio l'autorizzazione a caricare file locali in Canvas. SageMaker Per impostazione predefinita, l’opzione delle autorizzazioni è attivata quando configuri un nuovo dominio, ma è possibile attivarla e disattivarla in base alle esigenze.

**Nota**  
Se disponi di una configurazione CORS esistente nel bucket Amazon S3 per la configurazione di archiviazione, l’attivazione dell’opzione di caricamento dei file locali sovrascrive la configurazione esistente con la nuova configurazione.

La procedura seguente mostra come attivare questa opzione modificando le impostazioni del dominio nella console AI. SageMaker 

1. Vai alla console SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Domains** (Domini).

1. Dall’elenco di domini, scegli il tuo dominio.

1. Nella pagina Dettagli del dominio, seleziona la scheda **Configurazioni app**.

1. Vai alla sezione **Canvas** e scegli **Modifica**.

1. Attiva l’opzione **Abilita caricamento di file locali**. Questa opzione collega la configurazione CORS e concede le autorizzazioni di caricamento dei file locali.

1. Seleziona **Invia**.

Gli utenti del dominio specificato ora dovrebbero avere le autorizzazioni per il caricamento dei file locali.

Puoi anche concedere le autorizzazioni a profili utente specifici in un dominio seguendo la procedura precedente e accedendo alle impostazioni del profilo utente anziché alle impostazioni generali del dominio.

## Metodo con bucket Amazon S3
<a name="canvas-set-up-local-upload-s3"></a>

Se desideri collegare manualmente la configurazione CORS al bucket SageMaker AI Amazon S3, utilizza la seguente procedura.

1. Eseguire l'accesso ad [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Scegli il bucket. Se il tuo dominio utilizza il bucket predefinito creato dall' SageMaker IA, il nome del bucket utilizza il seguente schema:. `s3://sagemaker-{Region}-{your-account-id}`

1. Seleziona **Autorizzazioni**.

1. Vai a **Condivisione delle risorse multiorigine (CORS)**.

1. Scegli **Modifica**.

1. Aggiungi la policy CORS seguente:

   ```
   [
       {
           "AllowedHeaders": [
               "*"
           ],
           "AllowedMethods": [
               "POST"
           ],
           "AllowedOrigins": [
               "*"
           ],
           "ExposeHeaders": []
       }
   ]
   ```

1. Scegli **Save changes** (Salva modifiche).

Nella procedura precedente, la policy CORS deve avere `"POST"` inserito in `AllowedMethods`.

Dopo aver completato la procedura, dovresti avere:
+ Un ruolo IAM assegnato a ciascuno dei tuoi utenti.
+ Autorizzazioni di runtime di Amazon SageMaker Studio Classic per ciascuno dei tuoi utenti. SageMaker Canvas utilizza Studio Classic per eseguire i comandi dei tuoi utenti.
+ Se gli utenti riescono a caricare file dalle loro macchine locali, al loro bucket Amazon S3 è collegata una policy CORS.

Se gli utenti non riescono ancora a caricare i file locali dopo l'aggiornamento della policy CORS, è possibile che il browser stia memorizzando nella cache le impostazioni CORS di un precedente tentativo di caricamento. In caso di problemi, chiedi ai tuoi utenti di svuotare la cache del browser e riprovare.

# Configura SageMaker Canvas per i tuoi utenti
<a name="setting-up-canvas-sso"></a>

Per configurare Amazon SageMaker Canvas, procedi come segue:
+ Crea un dominio Amazon SageMaker AI.
+ Crea i profili utente per il dominio.
+ Configura Okta Single Sign-On (Okta SSO) per i tuoi utenti.
+ Attiva la condivisione dei link per i modelli.

Usa Okta Single-Sign On (Okta SSO) per concedere ai tuoi utenti l'accesso ad Amazon Canvas. SageMaker SageMaker Canvas supporta i metodi SSO SAML 2.0. Le seguenti sezioni spiegano le procedure per configurare Okta SSO.

Per configurare un dominio, consulta [Usa una configurazione personalizzata per Amazon SageMaker AI](onboard-custom.md) e segui le istruzioni per configurare il tuo dominio con l’autenticazione IAM. Puoi utilizzare le informazioni seguenti per completare la procedura nella sezione:
+ Puoi ignorare la fase relativa alla creazione di progetti.
+ Non è necessario fornire l'accesso a ulteriori bucket Amazon S3. I tuoi utenti possono utilizzare il bucket predefinito che forniamo quando creiamo un ruolo.
+ Per concedere ai tuoi utenti l'accesso per condividere notebook con i data scientist, attiva **Configurazione della condivisione del notebook**.
+ Usa Amazon SageMaker Studio Classic versione 3.19.0 o successiva. Per informazioni sull'aggiornamento di Amazon SageMaker Studio Classic, consulta[Chiudi e aggiorna Amazon SageMaker Studio Classic](studio-tasks-update-studio.md).

Completa la procedura seguente per configurare Okta. Per tutte le seguenti procedure, dovrai specificare lo stesso ruolo IAM per `IAM-role` .

## Aggiungi l'applicazione SageMaker Canvas a Okta
<a name="canvas-set-up-okta"></a>

Configura il metodo Sign-On per Okta.

1. Accedi al pannello di controllo per amministratori di Okta.

1. Scegli **Aggiungi applicazione**. Cerca **AWS Federazione account**.

1. Scegli **Aggiungi**.

1. Facoltativo: modifica il nome in **Amazon SageMaker Canvas**.

1. Scegli **Next (Successivo)**.

1. Scegli **SAML 2.0** come metodo **Sign-On**.

1. Scegli **Metadati del provider di identità** per aprire il file XML dei metadati. Salva il file localmente.

1. Seleziona **Fatto**.

## Configura la federazione degli ID in IAM
<a name="set-up-id-federation-IAM"></a>

AWS Identity and Access Management (IAM) è il AWS servizio che usi per accedere al tuo AWS account. Puoi accedere AWS tramite un account IAM.

1. Accedi alla AWS console.

1. Scegli **AWS Identity and Access Management (IAM)**.

1. Scegli **Provider di identità**.

1. Scegli **Crea provider**.

1. In **Configura provider**, specifica quanto segue:
   + **Tipo di provider**: scegli **SAML** dall'elenco a discesa.
   + **Nome provider**: specifica **Okta**.
   + **Documento di metadati**: carica il documento XML che hai salvato localmente dalla fase 7 di [Aggiungi l'applicazione SageMaker Canvas a Okta](#canvas-set-up-okta).

1. Trova il tuo provider di identità in **Provider di identità**. Copia il valore **ARN del provider**.

1. In **Ruoli**, scegli il ruolo IAM che stai utilizzando per l'accesso SSO a Okta.

1. In **Relazione di attendibilità** per il ruolo IAM, scegli **Modifica relazione di attendibilità**.

1. Modifica la policy della relazione di attendibilità del ruolo IAM specificando il valore **ARN del provider** che hai copiato in precedenza e aggiungi la seguente policy:

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

****  

   ```
     {
     "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Principal": {
             "Federated": "arn:aws:iam::111122223333:saml-provider/Okta"
           },
           "Action": [
             "sts:AssumeRoleWithSAML",
             "sts:TagSession"
           ],
           "Condition": {
             "StringEquals": {
               "SAML:aud": "https://signin.aws.amazon.com/saml"
             }
           }
         },
         {
           "Effect": "Allow",
           "Principal": {
             "Federated": "arn:aws:iam::111122223333:saml-provider/Okta"
           },
           "Action": [
             "sts:SetSourceIdentity"
           ]
         }
       ]
     }
   ```

------

1. In **Autorizzazioni**, aggiungi la policy seguente:

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

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "AmazonSageMakerPresignedUrlPolicy",
              "Effect": "Allow",
              "Action": [
                   "sagemaker:CreatePresignedDomainUrl"
              ],
              "Resource": "*"
         }
     ]
   }
   ```

------

## Configura SageMaker Canvas in Okta
<a name="canvas-configure-okta"></a>

Configura Amazon SageMaker Canvas in Okta utilizzando la seguente procedura.

Per configurare Amazon SageMaker Canvas per l'utilizzo di Okta, segui i passaggi in questa sezione. È necessario specificare nomi utente univoci per ogni **SageMakerStudioProfileName**campo. Ad esempio, puoi utilizzare `user.login` come valore. Se il nome utente è diverso dal nome del profilo SageMaker Canvas, scegli un attributo identificativo univoco diverso. Ad esempio, puoi utilizzare il numero di un ID dipendente per il nome del profilo.

Per un esempio di valori che è possibile impostare in **Attributi**, consulta il codice che segue la procedura.

1. In **Directory**, scegli **Gruppi**.

1. Aggiungi un gruppo come da schema seguente: `sagemaker#canvas#IAM-role#AWS-account-id`.

1. In Okta, apri la configurazione dell’integrazione dell'applicazione **AWS Federazione account**.

1. Seleziona **Accedi per l'**applicazione AWS Account Federation.

1. Scegli **Modifica** e specifica quanto segue:
   + SAML 2.0
   + **Stato di inoltro predefinito**: https://*Region*.console.aws.amazon. com/sagemaker/home? regione = *Region* studio/canvas/open \$1//. *StudioId* Puoi trovare lo Studio Classic ID nella console: [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)

1. Scegli **Attributi**.

1. Nei **SageMakerStudioProfileName**campi, specifica valori univoci per ogni nome utente. I nomi utente devono corrispondere ai nomi utente che hai creato nella console AWS .

   ```
   Attribute 1:
   Name: https://aws.amazon.com/SAML/Attributes/PrincipalTag:SageMakerStudioUserProfileName 
   Value: ${user.login}
   
   Attribute 2:
   Name: https://aws.amazon.com/SAML/Attributes/TransitiveTagKeys
   Value: {"SageMakerStudioUserProfileName"}
   ```

1. Seleziona **Tipo di ambiente**. Scegli **Normale AWS**.
   + Se il tuo tipo di ambiente non è presente nell’elenco, puoi impostare il tuo URL ACS nel campo **URL ACS**. Se il tipo di ambiente è presente nell’elenco, non devi inserire il tuo URL ACS

1. In **ARN del provider di identità**, specifica l'ARN utilizzato nella fase 6 della procedura precedente.

1. Specifica una **durata della sessione**.

1. Scegli **Collega tutti i ruoli**.

1. Attiva **Usa la mappatura dei gruppi** specificando i seguenti campi:
   + **Filtro dell’app**: `okta`
   + **Filtro del gruppo**: `^aws\#\S+\#(?IAM-role[\w\-]+)\#(?accountid\d+)$`
   + **Modello del valore del ruolo**: `arn:aws:iam::$accountid:saml-provider/Okta,arn:aws:iam::$accountid:role/IAM-role`

1. Scegli **Salva/Successivo**.

1. In **Assegnazioni**, assegna l'applicazione al gruppo che hai creato.

## Aggiunta di policy opzionali sul controllo degli accessi in IAM
<a name="canvas-optional-access"></a>

In IAM, puoi applicare la seguente policy all'utente amministratore che crea i profili utente.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateSageMakerStudioUserProfilePolicy",
            "Effect": "Allow",
            "Action": "sagemaker:CreateUserProfile",
            "Resource": "*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:TagKeys": [
                        "studiouserid"
                    ]
                }
            }
        }
    ]
}
```

------

Se scegli di aggiungere la policy precedente all'utente amministratore, devi utilizzare le seguenti autorizzazioni da [Configura la federazione degli ID in IAM](#set-up-id-federation-IAM).

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
       {
           "Sid": "AmazonSageMakerPresignedUrlPolicy",
           "Effect": "Allow",
           "Action": [
               "sagemaker:CreatePresignedDomainUrl"
           ],
           "Resource": "*",
           "Condition": {
                  "StringEquals": {
                      "sagemaker:ResourceTag/studiouserid": "${aws:PrincipalTag/SageMakerStudioUserProfileName}"
                 }
            }
      }
  ]
}
```

------

# Configurazione dello storage Amazon S3
<a name="canvas-storage-configuration"></a>

Quando configuri l'applicazione SageMaker Canvas, la posizione di archiviazione predefinita per gli artefatti del modello, i set di dati e altri dati dell'applicazione è un bucket Amazon S3 creato da Canvas. Questo bucket Amazon S3 predefinito segue lo schema di denominazione `s3://sagemaker-{Region}-{your-account-id}` e si trova nella stessa Regione dell'applicazione Canvas. Tuttavia, puoi personalizzare il percorso di archiviazione e specificare il tuo bucket Amazon S3 per archiviare i dati dell'applicazione Canvas. Potresti voler utilizzare il tuo bucket Amazon S3 per archiviare i dati dell'applicazione per uno dei seguenti motivi:
+ La tua organizzazione utilizza convenzioni di denominazione interne per i bucket Amazon S3.
+ Vuoi abilitare l'accesso multi-account agli artefatti del modello o ad altri dati Canvas.
+ Vuoi essere conforme alle linee guida di sicurezza interne, come la limitazione degli utenti che possono accedere a bucket Amazon S3 o ad artefatti del modello specifici.
+ Desideri una visibilità e un accesso migliori ai log prodotti da Canvas, indipendentemente dalla console o da Studio Classic. AWS SageMaker 

Specificando il tuo bucket Amazon S3, puoi avere un maggiore controllo sul tuo storage ed agire in conformità con gli standard della tua organizzazione. 

Per iniziare, puoi creare un nuovo dominio o profilo utente SageMaker AI oppure aggiornare un dominio o un profilo utente esistente. Tieni presente che le impostazioni del profilo utente hanno la precedenza sulle impostazioni a livello di dominio. Ad esempio, puoi utilizzare la configurazione del bucket predefinita a livello di dominio, ma puoi specificare un bucket Amazon S3 personalizzato per un singolo utente. Dopo aver specificato il bucket Amazon S3 per il dominio o il profilo utente, Canvas crea una sottocartella chiamata `Canvas/<UserProfileName>` sotto l’URI di input di Amazon S3 e salva tutti gli artefatti generati nell’applicazione Canvas in questa sottocartella.

**Importante**  
Se aggiorni un dominio o un profilo utente esistente, non avrai più accesso agli artefatti Canvas nella posizione precedente. I tuoi file sono ancora nella vecchia posizione di Amazon S3, ma non puoi più visualizzarli da Canvas. La nuova configurazione ha effetto a partire dal successivo login all'applicazione.

Per ulteriori informazioni sulla concessione dell'accesso multi-account al tuo bucket Amazon S3, consulta [Granting cross-account object permissions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access-example4.html#access-policies-walkthrough-example4-overview) in *Guida per l’utente di Amazon S3*.

Le sezioni seguenti spiegano come specificare un bucket Amazon S3 personalizzato nella configurazione di archiviazione di Canvas. Se stai configurando un nuovo dominio SageMaker AI (o un nuovo utente in un dominio), usa il [Metodo di configurazione di un nuovo dominio](#canvas-storage-configuration-new-domain) o il[Metodo con configurazione di un nuovo profilo utente](#canvas-storage-configuration-new-user). Se disponi di un profilo utente Canvas esistente e desideri aggiornare la configurazione di archiviazione del profilo, usa [Metodo con utente esistente](#canvas-storage-configuration-existing-user).

## Prima di iniziare
<a name="canvas-storage-configuration-prereqs"></a>

Se stai specificando un URI Amazon S3 da un account AWS diverso o se utilizzi un bucket crittografato AWS KMS con, devi configurare le autorizzazioni prima di procedere. Devi concedere le autorizzazioni AWS IAM per garantire che Canvas possa scaricare e caricare oggetti da e verso il tuo bucket. Per ulteriori informazioni su come concedere le autorizzazioni necessarie, consulta [Concessione delle autorizzazioni per l’archiviazione multi-account in Amazon S3](canvas-permissions-cross-account.md).

Inoltre, l'URI finale di Amazon S3 per la cartella di addestramento nel percorso di archiviazione di Canvas deve contenere al massimo 128 caratteri. L'URI finale di Amazon S3 è costituito dal percorso bucket `s3://<your-bucket-name>/<folder-name>/` più il percorso che Canvas aggiunge al bucket: `Canvas/<user-profile-name>/Training`. Ad esempio, un percorso accettabile che contenga meno di 128 caratteri può essere `s3://<amzn-s3-demo-bucket>/<machine-learning>/Canvas/<user-1>/Training`.

## Metodo di configurazione di un nuovo dominio
<a name="canvas-storage-configuration-new-domain"></a>

Se stai configurando un nuovo dominio e una nuova applicazione Canvas, utilizza questa sezione per configurare la posizione di archiviazione a livello di dominio. Questa configurazione si applica a tutti i nuovi utenti che crei nel dominio, a meno che non specifichi una posizione di archiviazione diversa per i singoli profili utente.

Quando esegui una **Configurazione standard** per il tuo dominio, nella pagina **Fase 3. Configura le applicazioni (facoltativo)**, utilizza la procedura seguente per la sezione **Canvas**:

1. In **Configurazioni di archiviazione di Canvas**, procedi come segue:

   1. Seleziona **Sistema gestito** se desideri impostare la posizione sul bucket SageMaker AI predefinito che segue lo schema. `s3://sagemaker-{Region}-{your-account-id}`

   1. Seleziona **Custom S3** per specificare il tuo bucket Amazon S3 come percorso di archiviazione. Immetti quindi l'URI di Amazon S3.

   1. (Facoltativo) In **Chiave di crittografia**, specifica una chiave KMS per crittografare gli artefatti Canvas archiviati nel percorso specificato. 

1. Completa la configurazione del dominio e scegli **Invia**.

Il tuo dominio è ora configurato per utilizzare la posizione Amazon S3 che hai specificato per lo storage delle applicazioni SageMaker Canvas.

## Metodo con configurazione di un nuovo profilo utente
<a name="canvas-storage-configuration-new-user"></a>

Se stai configurando un nuovo profilo utente nel tuo dominio, utilizza questa sezione per configurare la posizione di archiviazione per l’utente. Questa configurazione ha la precedenza sulla configurazione a livello di dominio.

Quando aggiungi un profilo utente al dominio, in **Fase 2. Configura le applicazioni** utilizza la procedura seguente nella sezione **Canvas**:

1. In **Configurazioni di archiviazione di Canvas**, procedi come segue:

   1. Seleziona **Sistema gestito** se desideri impostare la posizione sul bucket predefinito creato dall' SageMaker IA che segue lo schema. `s3://sagemaker-{Region}-{your-account-id}`

   1. Seleziona **Custom S3** per specificare il tuo bucket Amazon S3 come percorso di archiviazione. Immetti quindi l'URI di Amazon S3.

   1. (Facoltativo) In **Chiave di crittografia**, specifica una chiave KMS per crittografare gli artefatti Canvas archiviati nel percorso specificato. 

1. Completa la configurazione del profilo utente e scegli **Invia**.

Il tuo profilo utente è ora configurato per utilizzare la posizione Amazon S3 che hai specificato per lo storage delle applicazioni SageMaker Canvas.

## Metodo con utente esistente
<a name="canvas-storage-configuration-existing-user"></a>

Se disponi di un profilo utente Canvas esistente e desideri aggiornare la posizione di archiviazione di Amazon S3, puoi modificare il dominio SageMaker AI o le impostazioni del profilo utente. La modifica ha effetto a partire dal successivo login all'applicazione Canvas.

**Nota**  
Quando modifichi il percorso di archiviazione per un'applicazione Canvas esistente, perdi l'accesso agli artefatti Canvas dal percorso di archiviazione precedente. I tuoi artefatti sono ancora nel vecchio percorso Amazon S3, ma non puoi più visualizzarli da Canvas.

Ricorda che le impostazioni del profilo utente hanno la precedenza sulle impostazioni generali del dominio, quindi puoi aggiornare la posizione di archiviazione di Amazon S3 per profili utente specifici senza modificarla per tutti gli utenti. Puoi aggiornare la configurazione di archiviazione per un dominio o un utente esistente utilizzando le procedure seguenti.

------
#### [ Update an existing domain ]

Utilizza la procedura seguente per aggiornare la configurazione di archiviazione per un dominio.

1. Apri la console SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni admin**, scegli **Domini**. 

1. Dall’elenco di domini, scegli il tuo dominio.

1. Nella pagina **Dettagli del dominio**, scegli la scheda **Configurazioni app**.

1. Scorri verso il basso fino alla sezione **Canvas** e scegli **Modifica**.

1. Viene visualizzata la pagina **Modifica le impostazioni di Canvas**. In **Configurazione di archiviazione Canvas**, procedi come descritto di seguito:

   1. Seleziona **Sistema gestito** se desideri impostare la posizione sul bucket predefinito creato dall' SageMaker IA che segue lo schema`s3://sagemaker-{Region}-{your-account-id}`.

   1. Seleziona **Custom S3** per specificare il tuo bucket Amazon S3 come percorso di archiviazione. Immetti quindi l'URI di Amazon S3.

   1. (Facoltativo) In **Chiave di crittografia**, specifica una chiave KMS per crittografare gli artefatti Canvas archiviati nel percorso specificato. 

1. Apporta tutte le altre modifiche desiderate al dominio, quindi scegli **Invia** per salvare le modifiche.

------
#### [ Update an existing user profile ]

Utilizza la procedura seguente per aggiornare la configurazione di archiviazione per un profilo utente.

1. Apri la console SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1. Dall’elenco di **domini**, scegli il tuo dominio.

1. Nell’elenco degli utenti del dominio, scegli l’utente per cui desideri modificare la configurazione.

1. Nella pagina **Dettagli utente** scegli **Modifica**.

1. Nel riquadro di navigazione, seleziona **Impostazioni Canvas**.

1. In **Configurazioni di archiviazione di Canvas**, procedi come segue:

   1. Seleziona **Sistema gestito** se desideri impostare la posizione sul bucket SageMaker AI predefinito che segue lo schema`s3://sagemaker-{Region}-{your-account-id}`.

   1. Seleziona **Custom S3** per specificare il tuo bucket Amazon S3 come percorso di archiviazione. Immetti quindi l'URI di Amazon S3.

   1. (Facoltativo) In **Chiave di crittografia**, specifica una chiave KMS per crittografare gli artefatti Canvas archiviati nel percorso specificato. 

1. Completa tutte le altre modifiche che desideri apportare al profilo utente, quindi scegli **Invia** per salvare le modifiche.

------

Il percorso di archiviazione del tuo profilo utente Canvas dovrebbe ora essere aggiornato. La prossima volta che effettuerai il login all'applicazione Canvas, riceverai la notifica che il percorso di archiviazione è stato aggiornato. Perderai l'accesso a tutti gli artefatti precedenti che hai creato in Canvas. Puoi comunque accedere ai file in Amazon S3, ma non puoi più visualizzarli in Canvas.

# Concessione delle autorizzazioni per l’archiviazione multi-account in Amazon S3
<a name="canvas-permissions-cross-account"></a>

Quando configuri il tuo dominio SageMaker AI o il profilo utente per consentire agli utenti di accedere a SageMaker Canvas, specifichi una posizione di archiviazione Amazon S3 per gli artefatti Canvas. Questi artefatti includono copie salvate dei set di dati di input, degli artefatti del modello, delle previsioni e di altri dati dell'applicazione. Puoi utilizzare il bucket Amazon S3 predefinito creato dall' SageMaker IA oppure personalizzare la posizione di archiviazione e specificare il tuo bucket per archiviare i dati delle applicazioni Canvas.

Puoi specificare un bucket Amazon S3 in un altro AWS account per archiviare i tuoi dati Canvas, ma prima devi concedere le autorizzazioni per più account in modo che Canvas possa accedere al bucket.

Le seguenti sezioni descrivono come concedere le autorizzazioni a Canvas per caricare e scaricare oggetti da e verso un bucket Amazon S3 in un altro account. Sono disponibili autorizzazioni aggiuntive per quando il bucket è crittografato con. AWS KMS

## Requisiti
<a name="canvas-permissions-cross-account-prereqs"></a>

Prima di iniziare, verifica i seguenti requisiti:
+ I bucket Amazon S3 per più account (e tutte le chiavi AWS KMS associate) devono trovarsi nella AWS stessa regione del dominio utente o del profilo utente Canvas.
+ L'URI finale di Amazon S3 per la cartella di addestramento nel percorso di archiviazione di Canvas deve contenere al massimo 128 caratteri. L'URI finale di S3 è costituito dal percorso bucket `s3://<your-bucket-name>/<folder-name>/` più il percorso che Canvas aggiunge al bucket: `Canvas/<user-profile-name>/Training`. Ad esempio, un percorso accettabile che contenga meno di 128 caratteri può essere `s3://<amzn-s3-demo-bucket>/<machine-learning>/Canvas/<user-1>/Training`.

## Autorizzazioni per bucket Amazon S3 multi-account
<a name="canvas-permissions-cross-account-s3"></a>

La sezione seguente descrive le fasi di base per concedere le autorizzazioni necessarie in modo che Canvas possa accedere al tuo bucket Amazon S3 in un altro account. Per istruzioni più dettagliate, consulta [Example 2: bucket owner granting cross-account bucket permissions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access-example2.html) in *Guida per l'utente di Amazon S3*.

1. Creazione di un bucket Amazon S3, `bucketA`, in Account A.

1. L'utente Canvas esiste in un altro account chiamato Account B. Nelle fasi seguenti, facciamo riferimento al ruolo IAM dell'utente di Canvas come `roleB` nell'Account B.

   Concedi al ruolo IAM `roleB` nell'Account B l'autorizzazione a scaricare (`GetObject`) e caricare (`PutObject`) oggetti da e verso `bucketA` nell'Account A, collegando una policy IAM.

   Per limitare l'accesso a una cartella di bucket specifica, definisci il nome cartella nell'elemento della risorsa, ad esempio `arn:aws:s3:::<bucketA>/FolderName/*`. Per ulteriori informazioni, consulta [How can I use IAM policies to grant user-specific access to specific folders?](https://aws.amazon.com/premiumsupport/knowledge-center/iam-s3-user-specific-folder/)
**Nota**  
Le operazioni a livello di bucket, come `GetBucketCors` e `GetBucketLocation`, devono essere aggiunte alle risorse a livello di bucket, non alle cartelle.

   L'esempio seguente di policy IAM concede le autorizzazioni necessarie a `roleB` per accedere agli oggetti in `bucketA`:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject",
                   "s3:PutObject",
                   "s3:DeleteObject"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketA/FolderName/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:ListBucket",
                   "s3:GetBucketCors",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketA"
               ]
           }
       ]
   }
   ```

------

1. Configura la policy del bucket per `bucketA` nell'Account A per concedere le autorizzazioni al ruolo IAM `roleB` nell'Account B.
**Nota**  
Gli amministratori devono inoltre disattivare l'opzione **Blocca tutti gli accessi pubblici** nella sezione **Autorizzazioni** del bucket.

   Quello che segue è un esempio di policy del bucket per `bucketA` affinché siano concesse le autorizzazioni necessarie a `roleB`:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/roleB"
               },
               "Action": [
                   "s3:DeleteObject",
                   "s3:GetObject",
                   "s3:PutObject"
               ],
               "Resource": "arn:aws:s3:::bucketA/FolderName/*"
           },
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/roleB"
               },
               "Action": [
                   "s3:ListBucket",
                   "s3:GetBucketCors",
                   "s3:GetBucketLocation"
               ],
               "Resource": "arn:aws:s3:::bucketA"
           }
       ]
   }
   ```

------

Dopo aver configurato le autorizzazioni precedenti, il tuo profilo utente Canvas nell'Account B può utilizzare il bucket Amazon S3 nell'Account A come percorso di archiviazione per gli artefatti Canvas.

## Autorizzazioni per i bucket Amazon S3 tra account crittografati con AWS KMS
<a name="canvas-permissions-cross-account-s3-kms"></a>

La procedura seguente mostra come concedere le autorizzazioni necessarie in modo che Canvas possa accedere al tuo bucket Amazon S3 in un altro account crittografato con. AWS KMS Le fasi sono simili a quelle della procedura precedente, ma con autorizzazioni aggiuntive. Per ulteriori informazioni su come concedere l'accesso multi-account a una chiave KMS, consulta [Allowing users in other accounts to use a KMS key](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) in *AWS KMS Guida per gli sviluppatori*.

1. Crea un bucket Amazon S3, `bucketA`, e una chiave KMS di Amazon S3, `s3KmsInAccountA`, nell’Account A.

1. L'utente Canvas esiste in un altro account chiamato Account B. Nelle fasi seguenti, facciamo riferimento al ruolo IAM dell'utente di Canvas come `roleB` nell'Account B.

   Concedi al ruolo IAM `roleB` nell'Account B l'autorizzazione a procedere come segue:
   + Scarica (`GetObject`) e carica (`PutObject`) oggetti da e verso `bucketA` nell'Account A.
   + Accedi alla AWS KMS chiave `s3KmsInAccountA` nell'Account A.

   L'esempio seguente di policy IAM concede le autorizzazioni necessarie a `roleB` per accedere agli oggetti in `bucketA` e utilizzare la chiave KMS `s3KmsInAccountA`:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject",
                   "s3:PutObject",
                   "s3:DeleteObject"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketA/FolderName/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetBucketCors",
                   "s3:GetBucketLocation"
               ],
               "Resource": [
                   "arn:aws:s3:::bucketA"
               ]
           },
           {
               "Action": [
                   "kms:DescribeKey",
                   "kms:CreateGrant",
                   "kms:RetireGrant",
                   "kms:GenerateDataKey",
                   "kms:GenerateDataKeyWithoutPlainText",
                   "kms:Decrypt"
               ],
               "Effect": "Allow",
               "Resource": "arn:aws:kms:us-east-1:111122223333:key/s3KmsInAccountA"
           }
       ]
   }
   ```

------

1. Configura la policy del bucket per `bucketA` e la policy della chiave per `s3KmsInAccountA` nell'Account A per concedere le autorizzazioni al ruolo IAM `roleB` nell'Account B.

   Quello che segue è un esempio di policy del bucket per `bucketA` affinché siano concesse le autorizzazioni necessarie a `roleB`:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/roleB"
               },
               "Action": [
                   "s3:DeleteObject",
                   "s3:GetObject",
                   "s3:PutObject"
               ],
               "Resource": "arn:aws:s3:::bucketA/FolderName/*"
           },
           {
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/roleB"
               },
               "Action": [
                   "s3:GetBucketCors",
                   "s3:GetBucketLocation"
               ],
               "Resource": "arn:aws:s3:::bucketA"
           }
       ]
   }
   ```

------

   L'esempio seguente è una policy della chiave da collegare alla chiave KMS `s3KmsInAccountA` nell'account A per concedere l'accesso a `roleB`. Per ulteriori informazioni su come creare e collegare un’istruzione della policy della chiave, consulta [Creating a key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html) in *AWS KMS Guida per gli sviluppatori*.

   ```
   {
     "Sid": "Allow use of the key",
     "Effect": "Allow",
     "Principal": {
       "AWS": [
         "arn:aws:iam::accountB:role/roleB"
       ]
     },
     "Action": [
           "kms:DescribeKey",
           "kms:CreateGrant",
           "kms:RetireGrant",
           "kms:GenerateDataKey",
           "kms:GenerateDataKeyWithoutPlainText",
           "kms:Decrypt"
     ],
     "Resource": "*"
   }
   ```

Dopo aver configurato le autorizzazioni precedenti, il tuo profilo utente Canvas nell’Account B può utilizzare il bucket Amazon S3 nell’Account A come posizione di archiviazione per gli artefatti Canvas.

# Concessione di autorizzazioni agli utenti per utilizzare grandi quantità di dati nel ciclo di vita di ML
<a name="canvas-large-data-permissions"></a>

Gli utenti di Amazon SageMaker Canvas che lavorano con set di dati di dimensioni superiori a 10 GB in formato CSV o 2,5 GB in formato Parquet richiedono autorizzazioni specifiche per l'elaborazione di dati di grandi dimensioni. Queste autorizzazioni sono essenziali per la gestione dei dati su larga scala durante l’intero ciclo di vita di machine learning. Quando i set di dati superano le soglie dichiarate o la capacità di memoria locale dell'applicazione, Canvas SageMaker utilizza Amazon EMR Serverless per un'elaborazione efficiente. Questo approccio si applica a:
+ Importazione dei dati: importazione di set di dati di grandi dimensioni con campionamento casuale o stratificato.
+ Preparazione dei dati: esportazione dei dati elaborati da Data Wrangler in Canvas ad Amazon S3, a un nuovo set di dati Canvas o a un modello Canvas.
+ Creazione dei modelli: addestramento dei modelli su set di dati di grandi dimensioni.
+ Inferenza: generazione di previsioni su set di dati di grandi dimensioni.

Per impostazione predefinita, SageMaker Canvas utilizza EMR Serverless per eseguire questi lavori remoti con le seguenti impostazioni dell'app:
+ Capacità preinizializzata: non configurata
+ Limiti delle applicazioni: capacità massima di 400 vCPUs, massimo 16 V simultanei CPUs per account, 3000 GB di memoria, disco da 20000 GB
+ Configurazione Metastore: AWS Glue Data Catalog
+ Registri delle applicazioni: storage AWS gestito (abilitato), utilizzando una AWS chiave di crittografia proprietaria
+ Comportamento dell’applicazione: si avvia automaticamente quando viene inviato il processo e si arresta automaticamente se l’applicazione resta inattiva per 15 minuti

Per abilitare queste funzionalità di elaborazione di dati di grandi dimensioni, gli utenti necessitano delle autorizzazioni necessarie, che possono essere concesse tramite le impostazioni del dominio Amazon SageMaker AI. Il metodo per concedere queste autorizzazioni dipende dalla configurazione iniziale del dominio Amazon SageMaker AI. Tratteremo tre scenari principali:
+ Configurazione rapida del dominio
+ Configurazione personalizzata del dominio (con access/without VPC Internet pubblico)
+ Configurazione personalizzata del dominio (con VPC e senza accesso pubblico a Internet)

Ogni scenario richiede passaggi specifici per garantire che gli utenti dispongano delle autorizzazioni necessarie per sfruttare EMR Serverless per l'elaborazione di dati di grandi dimensioni durante l'intero ciclo di vita dell'apprendimento automatico in Canvas. SageMaker 

## Scenario 1. Configurazione rapida del dominio
<a name="canvas-large-data-quick-setup"></a>

Se hai utilizzato l'opzione di **configurazione rapida** durante la creazione del tuo dominio SageMaker AI, segui questi passaggi:

1. Passa alle impostazioni del dominio Amazon SageMaker AI:

   1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

   1. Nel riquadro di navigazione a sinistra, scegli **Domains** (Domini).

   1. Scegli il tuo dominio.

   1. Scegli la scheda **Configurazioni app**.

   1. Scorri fino alla sezione **Canvas** e scegli **Modifica**.

1. Abilita l’elaborazione di grandi quantità di dati:

   1. Nella sezione **Configurazione di elaborazione di grandi quantità di dati**, attiva **Abilita EMR Serverless per l’elaborazione di grandi quantità di dati**.

   1. Crea o seleziona un ruolo EMR Serverless:

      1. Scegli **Crea e utilizza un nuovo ruolo di esecuzione** per creare un nuovo ruolo IAM che abbia una relazione di attendibilità con EMR Serverless e la policy [AWS politica gestita: AmazonSageMakerCanvas EMRServerless ExecutionRolePolicy](security-iam-awsmanpol-canvas.md#security-iam-awsmanpol-AmazonSageMakerCanvasEMRServerlessExecutionRolePolicy) collegata. Questo ruolo IAM viene assunto da Canvas per creare processi EMR Serverless.

      1. In alternativa, se hai già un ruolo di esecuzione con una relazione di attendibilità per EMR Serverless, seleziona **Utilizza un ruolo di esecuzione esistente** e scegli il ruolo dall’elenco a discesa.
         + Il nome del ruolo esistente deve iniziare con il prefisso `AmazonSageMakerCanvasEMRSExecutionAccess-`.
         + Inoltre, il ruolo selezionato deve avere almeno le autorizzazioni descritte nella policy [AWS politica gestita: AmazonSageMakerCanvas EMRServerless ExecutionRolePolicy](security-iam-awsmanpol-canvas.md#security-iam-awsmanpol-AmazonSageMakerCanvasEMRServerlessExecutionRolePolicy).
         + Il ruolo deve avere una policy di attendibilità EMR Serverless, come illustrato di seguito:

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

****  

           ```
           {
               "Version":"2012-10-17",		 	 	 
               "Statement": [
                   {
                       "Sid": "EMRServerlessTrustPolicy",
                       "Effect": "Allow",
                       "Principal": {
                           "Service": "emr-serverless.amazonaws.com"
                       },
                       "Action": "sts:AssumeRole",
                       "Condition": {
                           "StringEquals": {
                               "aws:SourceAccount": "111122223333"
                           }
                       }
                   }
               ]
           }
           ```

------

1. (Facoltativo) Aggiungi le autorizzazioni Amazon S3 per i bucket Amazon S3 personalizzati:

   1. La policy gestita da Canvas concede automaticamente le autorizzazioni di lettura e scrittura per i bucket Amazon S3 con `sagemaker` o `SageMaker AI` nel nome. Concede inoltre le autorizzazioni di lettura per gli oggetti nei bucket Amazon S3 personalizzati con il tag `"SageMaker": "true"`.

   1. Per i bucket Amazon S3 personalizzati senza il tag richiesto, aggiungi la policy seguente al tuo ruolo EMR Serverless:

   1. 

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "s3:GetObject",
                      "s3:PutObject",
                      "s3:DeleteObject"
                  ],
                  "Resource": [
                      "arn:aws:s3:::*"
                  ]
              }
          ]
      }
      ```

------

   1. Ti consigliamo di limitare le autorizzazioni agli specifici bucket Amazon S3 a cui desideri che Canvas acceda.

1. Salva le modifiche e riavvia l'applicazione SageMaker Canvas.

## Scenario 2: configurazione personalizzata del dominio (con access/without VPC Internet pubblico)
<a name="canvas-large-data-custom-no-vpc"></a>

Se hai creato o utilizzi un dominio personalizzato, segui le fasi 1-3 dello Scenario 1, quindi completa queste fasi aggiuntive:

1. Aggiungi le autorizzazioni per l'`DescribeImages`operazione Amazon ECR al tuo ruolo di esecuzione di Amazon SageMaker AI, poiché Canvas utilizza immagini Docker pubbliche di Amazon ECR per la preparazione dei dati e l'addestramento dei modelli:

   1. Accedi alla AWS console e apri la console IAM all'indirizzo. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

   1. Scegli **Ruoli**.

   1. Nella casella di ricerca, cerca il tuo ruolo di esecuzione SageMaker AI per nome e selezionalo.

   1. Aggiungi la seguente policy al tuo ruolo di esecuzione dell' SageMaker IA. Per farlo, puoi aggiungerla come nuova policy inline oppure puoi aggiungere l’istruzione di policy a una policy esistente. Tieni presente che a un ruolo IAM può essere collegato al massimo a dieci policy.

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [{
              "Sid": "ECRDescribeImagesOperation",
              "Effect": "Allow",
              "Action": "ecr:DescribeImages",
              "Resource": [
                  "arn:aws:ecr:*:*:repository/sagemaker-data-wrangler-emr-container",
                  "arn:aws:ecr:*:*:repository/ap-dataprep-emr"
              ]
          }]
      }
      ```

------

1. Salva le modifiche e riavvia l'applicazione SageMaker Canvas.

## Scenario 3. Configurazione personalizzata del dominio (con VPC e senza accesso pubblico a Internet)
<a name="canvas-large-data-custom-vpc"></a>

Se hai creato o utilizzi un dominio personalizzato, segui tutte le fasi dello Scenario 2, quindi completa queste fasi aggiuntive:

1. Assicurati che le sottoreti VPC siano private:

   1. Verifica che la tabella di routing per le sottoreti non abbia una mappatura delle voci `0.0.0.0/0` a un gateway Internet.

1. Aggiungi le autorizzazioni per la creazione di interfacce di rete:

   1. Quando si utilizza SageMaker Canvas con EMR Serverless per l'elaborazione di dati su larga scala, EMR Serverless richiede la possibilità di creare Amazon EC2 per ENIs abilitare la comunicazione di rete tra le applicazioni EMR Serverless e le risorse VPC.

   1. Aggiungi la seguente policy al tuo ruolo di esecuzione di Amazon SageMaker AI. Per farlo, puoi aggiungerla come nuova policy inline oppure puoi aggiungere l’istruzione di policy a una policy esistente. Tieni presente che a un ruolo IAM può essere collegato al massimo a dieci policy.

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Sid": "AllowEC2ENICreation",
                  "Effect": "Allow",
                  "Action": [
                      "ec2:CreateNetworkInterface"
                  ],
                  "Resource": [
                      "arn:aws:ec2:*:*:network-interface/*"
                  ],
                  "Condition": {
                      "StringEquals": {
                          "aws:CalledViaLast": "ops.emr-serverless.amazonaws.com"
                      }
                  }
              }
          ]
      }
      ```

------

1. (Facoltativo) Limita la creazione di ENI a sottoreti specifiche:

   1. Per proteggere ulteriormente la tua configurazione limitando la creazione di determinate sottoreti ENIs all'interno del tuo VPC, puoi etichettare ogni sottorete con condizioni specifiche.

   1. Utilizza la seguente policy IAM per garantire che le applicazioni EMR Serverless possano creare Amazon EC2 solo ENIs all'interno delle sottoreti e dei gruppi di sicurezza consentiti:

      ```
      {
          "Sid": "AllowEC2ENICreationInSubnetAndSecurityGroupWithEMRTags",
          "Effect": "Allow", 
          "Action": [
              "ec2:CreateNetworkInterface"
          ],
          "Resource": [
              "arn:aws:ec2:*:*:subnet/*",
              "arn:aws:ec2:*:*:security-group/*"
          ],
          "Condition": {
              "StringEquals": {
                  "aws:ResourceTag/KEY": "VALUE"
              }
          }
      }
      ```

1. Segui i passaggi indicati nella pagina [Configura Amazon SageMaker Canvas in un VPC senza accesso a Internet](canvas-vpc.md) per impostare l'endpoint VPC per Amazon S3, richiesto da EMR Serverless e da altri servizi utilizzati da Canvas. AWS SageMaker 

1. Salva le modifiche e riavvia l'applicazione Canvas. SageMaker 

Seguendo questi passaggi, puoi abilitare l'elaborazione di dati di grandi dimensioni in SageMaker Canvas per varie configurazioni di dominio, incluse quelle con configurazioni VPC personalizzate. Ricordati di riavviare l'applicazione SageMaker Canvas dopo aver apportato queste modifiche per applicare le nuove autorizzazioni.

# Crittografa i tuoi dati SageMaker Canvas con AWS KMS
<a name="canvas-kms"></a>

Potresti avere dati che desideri crittografare durante l'utilizzo di Amazon SageMaker Canvas, come le informazioni private della tua azienda o i dati dei clienti. SageMaker Canvas utilizza AWS Key Management Service per proteggere i tuoi dati. AWS KMS è un servizio che puoi utilizzare per creare e gestire chiavi crittografiche per la crittografia dei dati. Per ulteriori informazioni [AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)in merito AWS KMS, consulta la Guida per gli *AWS KMS sviluppatori*.

Amazon SageMaker Canvas offre diverse opzioni per crittografare i dati. SageMaker Canvas fornisce la crittografia predefinita all'interno dell'applicazione per attività come la creazione di un modello e la generazione di approfondimenti. Puoi anche scegliere di crittografare i dati archiviati in Amazon S3 per proteggere i tuoi dati a riposo. SageMaker Canvas supporta l'importazione di set di dati crittografati, in modo da poter stabilire un flusso di lavoro crittografato. Le sezioni seguenti descrivono come utilizzare la AWS KMS crittografia per proteggere i dati durante la creazione di modelli con SageMaker Canvas.

## Crittografa i tuoi dati in Canvas SageMaker
<a name="canvas-kms-app-data"></a>

Con SageMaker Canvas, puoi utilizzare due diverse chiavi di AWS KMS crittografia per crittografare i tuoi dati in SageMaker Canvas, che puoi specificare quando [configuri il dominio utilizzando la configurazione](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-onboard.html) standard del dominio. Queste chiavi sono specificate nella procedura seguente di configurazione del dominio:
+ **Fase 3. Configura le applicazioni (facoltativo)**: quando configuri la sezione **Configurazione di archiviazione Canvas**, puoi specificare una **chiave di crittografia**. Questa è una chiave KMS che SageMaker Canvas utilizza per l'archiviazione a lungo termine di oggetti del modello e set di dati, che vengono archiviati nel bucket Amazon S3 fornito per il tuo dominio. Se crei un'applicazione Canvas con l'[CreateApp](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateApp.html)API, usa il `S3KMSKeyId` campo per specificare questa chiave.
+ **Fase 6: Configurazione dello storage**: SageMaker Canvas utilizza una chiave per crittografare lo spazio privato di Amazon SageMaker Studio creato per l'applicazione Canvas, che include lo storage temporaneo delle applicazioni, le visualizzazioni e i processi di calcolo (come la creazione di modelli). Puoi utilizzare la chiave AWS gestita predefinita o specificarne una personalizzata. Se si specifica la AWS KMS chiave, i dati memorizzati nella `/home/sagemaker-user` directory vengono crittografati con la chiave. Se non specifichi alcuna AWS KMS chiave, i dati all'interno `/home/sagemaker-user` vengono crittografati con una chiave AWS gestita. Indipendentemente dal fatto che venga specificata una AWS KMS chiave, tutti i dati al di fuori della directory di lavoro vengono crittografati con una chiave AWS gestita. Per ulteriori informazioni sullo spazio di Studio e sull’archiviazione dell’applicazione Canvas, consulta [Archivia i dati delle applicazioni SageMaker Canvas nel tuo spazio AI SageMaker](canvas-spaces-setup.md). Se crei un'applicazione Canvas con l'[CreateApp](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateApp.html)API, usa il `KmsKeyID` campo per specificare questa chiave.

Le chiavi precedenti possono essere le stesse chiavi KMS o chiavi diverse.

### Prerequisiti
<a name="canvas-kms-app-data-prereqs"></a>

Per utilizzare la tua chiave KMS per uno degli scopi descritti in precedenza, devi innanzitutto concedere al ruolo IAM dell'utente l'autorizzazione a utilizzare la chiave. Quindi, puoi specificare la chiave KMS durante la configurazione del dominio.

Il modo più semplice per concedere al tuo ruolo il permesso di utilizzare la chiave è modificare la policy della chiave. Utilizza la procedura seguente per concedere al tuo ruolo le autorizzazioni necessarie.

1. Apri la [AWS KMS console](https://console.aws.amazon.com/kms/).

1. Nella sezione **Policy della chiave**, scegli **Passa alla visualizzazione della policy**.

1. Modifica la policy della chiave per concedere le autorizzazioni `kms:GenerateDataKey` e le azioni `kms:Decrypt` al ruolo IAM. Inoltre, se stai modificando la policy della chiave che crittografa l’archiviazione dell’applicazione Canvas nello spazio di Studio, esegui l’azione `kms:CreateGrant`. Puoi aggiungere un'istruzione simile alla seguente:

   ```
   {
     "Sid": "ExampleStmt",
     "Action": [
       "kms:CreateGrant", #this permission is only required for the key that encrypts your SageMaker Canvas application storage
       "kms:Decrypt",
       "kms:GenerateDataKey"
     ],
     "Effect": "Allow",
     "Principal": {
       "AWS": "<arn:aws:iam::111122223333:role/Jane>"
     },
     "Resource": "*"
   }
   ```

1. Scegli **Save changes** (Salva modifiche).

Il metodo meno consigliato consiste nel modificare il ruolo IAM dell'utente per concedere all'utente le autorizzazioni per utilizzare o gestire la chiave KMS. Se utilizzi questo metodo, la policy della chiave KMS deve consentire anche la gestione degli accessi tramite IAM. Per sapere come concedere l'autorizzazione a una chiave KMS tramite il ruolo IAM dell'utente, consulta [Specifying KMS keys in IAM policy statements](https://docs.aws.amazon.com/kms/latest/developerguide/cmks-in-iam-policies.html) in *AWS KMS Guida per gli sviluppatori*.

### Crittografa i tuoi dati nell'applicazione SageMaker Canvas
<a name="canvas-kms-app-data-app"></a>

La prima chiave KMS che puoi utilizzare in SageMaker Canvas viene utilizzata per crittografare i dati delle applicazioni archiviati nei volumi Amazon Elastic Block Store (Amazon EBS) e nell'Amazon Elastic File System SageMaker creato dall'intelligenza artificiale nel tuo dominio. SageMaker Canvas crittografa i dati con questa chiave nell'applicazione sottostante e nei sistemi di storage temporanei creati quando si utilizzano istanze di calcolo per creare modelli e generare approfondimenti. SageMaker Canvas passa la chiave ad altri AWS servizi, come Autopilot, ogni volta che SageMaker Canvas avvia dei lavori con loro per elaborare i dati.

Puoi specificare questa chiave impostando `KmsKeyID` nella chiamata API `CreateDomain` o durante la configurazione del dominio standard nella console. Se non specifichi la tua chiave KMS, SageMaker AI utilizza una chiave KMS AWS gestita predefinita per crittografare i dati nell'applicazione Canvas. SageMaker 

Per specificare la tua chiave KMS da utilizzare nell'applicazione SageMaker Canvas tramite la console, configura prima il tuo dominio Amazon SageMaker AI utilizzando la **configurazione Standard**. Utilizza la procedura seguente per completare la **sezione Rete e archiviazione** del dominio.

1. Compila le impostazioni del VPC Amazon desiderate.

1. In **Chiave di crittografia**, scegli **Inserisci l’ARN della chiave KMS**.

1. In **ARN KMS**, inserisci l'ARN per la tua chiave KMS, che dovrebbe avere un formato simile al seguente: `arn:aws:kms:example-region-1:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd`

### Crittografa i tuoi dati SageMaker Canvas salvati in Amazon S3
<a name="canvas-kms-app-data-s3"></a>

La seconda chiave KMS che puoi specificare viene utilizzata per i dati che SageMaker Canvas archivia su Amazon S3. Questa chiave KMS viene specificata nel `S3KMSKeyId` campo della chiamata `CreateDomain` API o durante la configurazione standard del dominio nella SageMaker console AI. SageMaker Canvas salva i duplicati dei set di dati di input, dei dati di applicazioni e modelli e invia i dati nel bucket SageMaker AI S3 predefinito della regione per il tuo account. Lo schema di denominazione per questo bucket è`s3://sagemaker-{Region}-{your-account-id}`, e SageMaker Canvas memorizza i dati nella cartella. `Canvas/`





1. Attiva **Abilita la condivisione delle risorse notebook**.

1. In **Percorso S3 per le risorse notebook condivisibili**, mantieni il percorso Amazon S3 predefinito. Tieni presente che SageMaker Canvas non utilizza questo percorso Amazon S3; questo percorso Amazon S3 viene utilizzato per i notebook Studio Classic.

1. In **Chiave di crittografia**, scegli **Inserisci l’ARN della chiave KMS**.

1. In **ARN KMS**, inserisci l'ARN per la tua chiave KMS, che dovrebbe avere un formato simile al seguente: `arn:aws:kms:us-east-1:111122223333:key/111aa2bb-333c-4d44-5555-a111bb2c33dd`

## Importazione di set di dati crittografati da Amazon S3
<a name="canvas-kms-datasets"></a>

I tuoi utenti potrebbero avere set di dati crittografati con una chiave KMS. Sebbene la sezione precedente mostri come crittografare i dati in SageMaker Canvas e i dati archiviati su Amazon S3, devi concedere al ruolo IAM dell'utente autorizzazioni aggiuntive se desideri importare dati da Amazon S3 che sono già crittografati con. AWS KMS

Per concedere ai tuoi utenti le autorizzazioni per importare set di dati crittografati da Amazon S3 SageMaker in Canvas, aggiungi le seguenti autorizzazioni al ruolo di esecuzione IAM che hai utilizzato per il profilo utente.

```
      "kms:Decrypt",
      "kms:GenerateDataKey"
```

Per sapere come modificare le autorizzazioni IAM per un ruolo, consulta la pagina [Adding and removing IAM identity permissions](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) in *Guida per l'utente IAM*. Per ulteriori informazioni sulle chiavi KMS, consulta [Policy della chiave AWS Key Management Service](https://docs.aws.amazon.com//kms/latest/developerguide/key-policies.html) in *AWS KMS Guida per gli sviluppatori*.

## FAQs
<a name="canvas-kms-faqs"></a>

Consulta le seguenti domande frequenti per le risposte alle domande più frequenti sul supporto di Canvas. SageMaker AWS KMS 

### D: SageMaker Canvas conserva la mia chiave KMS?
<a name="canvas-kms-faqs-1"></a>

R: No. SageMaker Canvas può temporaneamente memorizzare nella cache la chiave o trasmetterla ad altri AWS servizi (come Autopilot), ma SageMaker Canvas non conserva la chiave KMS.

### D. Ho specificato una chiave KMS durante la configurazione del mio dominio. Perché il mio set di dati non è stato importato in Canvas? SageMaker
<a name="canvas-kms-faqs-2"></a>

R: Il ruolo IAM dell'utente potrebbe non disporre delle autorizzazioni per utilizzare quella chiave KMS. Per concedere le autorizzazioni utente, consulta [Prerequisiti](#canvas-kms-app-data-prereqs). Un altro possibile errore si verifica quando si ha una policy di bucket Amazon S3 che richiede l’utilizzo di una chiave KMS specifica che non corrisponde alla chiave KMS specificata nel dominio. Assicurati di specificare la stessa chiave KMS per il bucket Amazon S3 e il dominio.

### D: Come posso trovare il bucket SageMaker AI Amazon S3 predefinito della regione per il mio account?
<a name="canvas-kms-faqs-3"></a>

R: Il bucket Amazon S3 predefinito segue lo schema di denominazione `s3://sagemaker-{Region}-{your-account-id}`. La `Canvas/` cartella in questo bucket memorizza i dati dell'applicazione SageMaker Canvas.

### D: Posso modificare il bucket SageMaker AI Amazon S3 predefinito utilizzato per SageMaker archiviare i dati Canvas?
<a name="canvas-kms-faqs-4"></a>

R: No, l' SageMaker intelligenza artificiale crea questo bucket per te.

### D: Cosa memorizza SageMaker Canvas nel bucket SageMaker AI predefinito di Amazon S3?
<a name="canvas-kms-faqs-5"></a>

R: SageMaker Canvas utilizza il bucket SageMaker AI Amazon S3 predefinito per archiviare duplicati dei set di dati di input, degli artefatti del modello e degli output del modello.

### D: Quali casi d'uso sono supportati per l'utilizzo delle chiavi KMS con Canvas? SageMaker
<a name="canvas-kms-faqs-6"></a>

R: Con SageMaker Canvas, puoi utilizzare le tue chiavi di crittografia AWS KMS per creare modelli di regressione, classificazione binaria e multiclasse e modelli di previsione delle serie temporali, nonché per l'inferenza in batch con il tuo modello.

# Archivia i dati delle applicazioni SageMaker Canvas nel tuo spazio AI SageMaker
<a name="canvas-spaces-setup"></a>

I dati dell'applicazione Amazon SageMaker Canvas, come i set di dati importati e gli artefatti del modello, vengono archiviati in uno spazio privato di *Amazon SageMaker Studio*. Lo spazio è costituito da un volume di archiviazione per i dati dell’applicazione con 100 GB di spazio di archiviazione per profilo utente, dal tipo di spazio (in questo caso, un’applicazione Canvas) e dall’immagine per il container dell’applicazione. Quando configuri Canvas e avvii l'applicazione per la prima volta, l' SageMaker intelligenza artificiale crea uno spazio privato predefinito assegnato al tuo profilo utente e memorizza i tuoi dati Canvas. Non è necessario eseguire alcuna configurazione aggiuntiva per configurare lo spazio perché l' SageMaker IA crea automaticamente lo spazio per tuo conto. Tuttavia, se non desideri utilizzare lo spazio predefinito, puoi specificare uno spazio creato da te. Questa opzione può essere utile se desideri isolare i tuoi dati. La pagina seguente spiega come creare e configurare il tuo spazio Studio per l’archiviazione dei dati dell’applicazione Canvas.

**Nota**  
Puoi configurare uno spazio Studio personalizzato solo per nuove applicazioni Canvas. Non puoi modificare la configurazione dello spazio per le applicazioni Canvas esistenti.

## Prima di iniziare
<a name="canvas-spaces-setup-prereqs"></a>

Il tuo dominio o profilo utente Amazon SageMaker AI deve avere almeno 100 GB di spazio di archiviazione per creare e utilizzare l'applicazione SageMaker Canvas.

Se hai creato il dominio tramite la console SageMaker AI, per impostazione predefinita viene fornito spazio di archiviazione sufficiente e non è necessario intraprendere alcuna azione aggiuntiva. Se hai creato il dominio o il profilo utente con [CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html)o [ CreateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html) APIs, assicurati di impostare il `MaximumEbsVolumeSizeInGb` valore su almeno 100 GB. Per impostare un valore di archiviazione maggiore, puoi creare un nuovo dominio o profilo utente oppure aggiornare un dominio o un profilo utente esistente utilizzando [UpdateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateDomain.html)o [ UpdateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateUserProfile.html) APIs. 

## Creazione di un nuovo spazio
<a name="canvas-spaces-setup-new-space"></a>

Prima di tutto, crea un nuovo spazio Studio configurato per archiviare i dati dell’applicazione Canvas. Questo è lo spazio che specifichi durante la creazione di una nuova applicazione Canvas nella fase successiva.

Per creare uno spazio, puoi usare AWS SDK per Python (Boto3) o il AWS CLI.

------
#### [ SDK for Python (Boto3) ]

L'esempio seguente mostra come utilizzare il AWS SDK per Python (Boto3) `create_space` metodo per creare uno spazio utilizzabile per le applicazioni Canvas. Assicurati di specificare questi parametri:
+ `DomainId`: Specificate l'ID per il vostro dominio SageMaker AI. Per trovare il tuo ID, puoi accedere alla console SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)e individuare il tuo dominio nella sezione **Domini**.
+ `SpaceName`: specifica un nome per il nuovo spazio.
+ `EbsVolumeSizeinGb`: specifica la dimensione del volume di archiviazione per il tuo spazio (in GB). Il valore minimo è `5` e il valore massimo è `16384`.
+ `SharingType`: specifica questo campo come `Private`. Per ulteriori informazioni, consulta [Spazi Amazon SageMaker Studio](studio-updated-spaces.md).
+ `OwnerUserProfileName`: specifica il nome del profilo utente. Per trovare i nomi dei profili utente associati a un dominio, puoi andare alla console SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)e individuare il tuo dominio nella sezione **Domini**. Nelle impostazioni del dominio, puoi visualizzare i profili utente.
+ `AppType`: specifica questo campo come `Canvas`.

```
response = client.create_space(
    DomainId='<your-domain-id>', 
    SpaceName='<your-new-space-name>',
    SpaceSettings={
        'AppType': 'Canvas',
        'SpaceStorageSettings': {
            'EbsStorageSettings': {
                'EbsVolumeSizeInGb': <storage-volume-size>
            }
        },
    },
    OwnershipSettings={
        'OwnerUserProfileName': '<your-user-profile>'
    },
    SpaceSharingSettings={
        'SharingType': 'Private'
    }  
)
```

------
#### [ AWS CLI ]

L'esempio seguente mostra come utilizzare il AWS CLI `create-space` metodo per creare uno spazio utilizzabile per le applicazioni Canvas. Assicurati di specificare questi parametri:
+ `domain-id`: specifica l’ID per il tuo dominio. Per trovare il tuo ID, puoi accedere alla console SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)e individuare il tuo dominio nella sezione **Domini**.
+ `space-name`: specifica un nome per il nuovo spazio.
+ `EbsVolumeSizeinGb`: specifica la dimensione del volume di archiviazione per il tuo spazio (in GB). Il valore minimo è `5` e il valore massimo è `16384`.
+ `SharingType`: specifica questo campo come `Private`. Per ulteriori informazioni, consulta [Spazi Amazon SageMaker Studio](studio-updated-spaces.md).
+ `OwnerUserProfileName`: specifica il nome del profilo utente. Per trovare i nomi dei profili utente associati a un dominio, puoi andare alla console SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)e individuare il tuo dominio nella sezione **Domini**. Nelle impostazioni del dominio, puoi visualizzare i profili utente.
+ `AppType`: specifica questo campo come `Canvas`.

```
  
create-space
--domain-id <your-domain-id>
--space-name <your-new-space-name>  
--space-settings '{
        "AppType": "Canvas", 
        "SpaceStorageSettings": {
            "EbsStorageSettings": {"EbsVolumeSizeInGb": <storage-volume-size>}
        },
     }'
--ownership-settings '{"OwnerUserProfileName": "<your-user-profile>"}'
--space-sharing-settings '{"SharingType": "Private"}'
```

------

A questo punto, dovresti avere uno spazio. Annota il nome del tuo spazio per la fase successiva.

## Creazione di una nuova applicazione Canvas
<a name="canvas-spaces-setup-new-app"></a>

Dopo aver creato uno spazio, crea una nuova applicazione Canvas che specifichi lo spazio come posizione di archiviazione.

Per creare una nuova applicazione Canvas, puoi usare AWS SDK per Python (Boto3) o il AWS CLI.

**Importante**  
È necessario utilizzare AWS SDK per Python (Boto3) o AWS CLI per creare l'applicazione Canvas. La specificazione di uno spazio personalizzato durante la creazione di applicazioni Canvas tramite la console SageMaker AI non è supportata.

------
#### [ SDK for Python (Boto3) ]

L'esempio seguente mostra come utilizzare il AWS SDK per Python (Boto3) `create_app` metodo per creare una nuova applicazione Canvas. Assicurati di specificare questi parametri:
+ `DomainId`: Specificate l'ID per il vostro dominio SageMaker AI.
+ `SpaceName`: specifica il nome dello spazio creato nella fase precedente.
+ `AppType`: specifica questo campo come `Canvas`.
+ `AppName`: specifica `default` come nome dell’app.

```
response = client.create_app(  
    DomainId='<your-domain-id>',
    SpaceName='<your-space-name>',
    AppType='Canvas', 
    AppName='default'  
)
```

------
#### [ AWS CLI ]

L'esempio seguente mostra come utilizzare il AWS CLI `create-app` metodo per creare una nuova applicazione Canvas. Assicurati di specificare questi parametri:
+ `DomainId`: Specificate l'ID per il vostro dominio SageMaker AI. 
+ `SpaceName`: specifica il nome dello spazio creato nella fase precedente.
+ `AppType`: specifica questo campo come `Canvas`.
+ `AppName`: specifica `default` come nome dell’app.

```
create-app
--domain-id <your-domain-id>
--space-name <your-space-name>
--app-type Canvas
--app-name default
```

------

A questo punto, dovresti avere una nuova applicazione Canvas che utilizza uno spazio Studio personalizzato come posizione di archiviazione per i dati dell’applicazione.

**Importante**  
Ogni volta che elimini l’applicazione Canvas (o ti disconnetti) e devi ricrearla, devi inserire lo spazio nel campo `SpaceName` per assicurarti che Canvas lo utilizzi.

Lo spazio è collegato al profilo utente specificato nella configurazione dello spazio. Puoi eliminare l’applicazione Canvas senza eliminare lo spazio per conservare i dati archiviati nello spazio. I dati archiviati nello spazio vengono eliminati solo se elimini il profilo utente o direttamente lo spazio.

# Concedi ai tuoi utenti le autorizzazioni per creare modelli di previsione di immagini e testo personalizzati
<a name="canvas-set-up-cv-nlp"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

In Amazon SageMaker Canvas, puoi creare [modelli personalizzati](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html) per soddisfare le tue esigenze aziendali specifiche. Due di questi tipi di modelli personalizzati sono la previsione di immagini a etichetta singola e la previsione di testo multicategoria. Le autorizzazioni per creare questi tipi di modelli sono incluse nella policy AWS Identity and Access Management (IAM) denominata [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess), che SageMaker AI associa per impostazione predefinita al ruolo di esecuzione IAM dell'utente se lasci attivate [le autorizzazioni di base Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html#canvas-prerequisites). Tuttavia, se utilizzi una configurazione IAM personalizzata, devi aggiungere esplicitamente le autorizzazioni al ruolo di esecuzione IAM dell’utente per consentire la creazione di tipi di modelli di previsione di immagini e testo personalizzati. Per concedere le autorizzazioni necessarie per creare modelli di previsione di immagini e testo, leggi la sezione seguente per scoprire come collegare una policy di autorizzazioni minime al tuo ruolo.

Per aggiungere le autorizzazioni al ruolo IAM dell'utente, procedi come segue:

1. Vai alla [console IAM](https://console.aws.amazon.com/iamv2).

1. Scegli **Ruoli**.

1. Nella casella di ricerca, cerca il ruolo IAM dell'utente per nome, quindi selezionalo.

1. Nella pagina del ruolo dell'utente, in **Autorizzazioni**, scegli **Aggiungi autorizzazioni**.

1. Scegli **Crea policy inline**.

1. Seleziona la scheda JSON e incolla la seguente policy di autorizzazioni minime nell'editor.

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

****  

   ```
   {
   "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sagemaker:CreateAutoMLJobV2",
                   "sagemaker:DescribeAutoMLJobV2"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Scegli **Esamina la policy**.

1. Inserisci un **Nome** per la policy.

1. Scegli **Crea policy**.

*Per ulteriori informazioni sulle policy AWS gestite, consulta [Managed policies e inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) nella IAM User Guide.*

# Concessione di autorizzazioni agli utenti per utilizzare le funzionalità di Amazon Bedrock e di IA generativa in Canvas
<a name="canvas-fine-tuning-permissions"></a>

Le funzionalità di intelligenza artificiale generativa di Amazon SageMaker Canvas si basano sui modelli di base di Amazon Bedrock, che sono modelli linguistici di grandi dimensioni (LLMs) che hanno la capacità di comprendere e generare testo simile a quello umano. Questa pagina descrive come concedere le autorizzazioni necessarie per le seguenti funzionalità di Canvas: SageMaker 
+ [Chatta e confronta i modelli Amazon Bedrock](canvas-fm-chat.md): accedi e avvia chat conversazionali con i modelli Amazon Bedrock tramite Canvas. SageMaker 
+ [Utilizza la funzionalità Chat per la preparazione dei dati in Data Wrangler](canvas-chat-for-data-prep.md): utilizza il linguaggio naturale per esplorare, visualizzare e trasformare i tuoi dati. Questa funzionalità si basa su Anthropic Claude 2.
+ [Esegui il fine-tuning dei modelli di fondazione di Amazon Bedrock](canvas-fm-chat-fine-tune.md): esegui il fine-tuning di un modello di fondazione Amazon Bedrock utilizzando i tuoi dati per ricevere risposte personalizzate.

Per utilizzare queste funzionalità, devi richiedere prima di tutto l’accesso al modello Amazon Bedrock specifico che desideri utilizzare. Quindi, aggiungi le autorizzazioni AWS IAM necessarie e una relazione di fiducia con Amazon Bedrock al ruolo di esecuzione dell'utente. Per concedere le autorizzazioni al ruolo, puoi scegliere uno dei metodi seguenti:
+ Crea un nuovo dominio o profilo utente Amazon SageMaker AI e attiva le autorizzazioni Amazon Bedrock. Per ulteriori informazioni, consulta [Guida introduttiva all'utilizzo di Amazon SageMaker Canvas](canvas-getting-started.md).
+ Modifica le impostazioni per un dominio o un profilo utente Amazon SageMaker AI esistente.
+ Aggiungi manualmente le autorizzazioni e una relazione di attendibilità al ruolo IAM di un dominio o di un utente.

## Fase 1. Aggiungi l’accesso ai modelli Amazon Bedrock
<a name="canvas-bedrock-access"></a>

L'accesso ai modelli Amazon Bedrock non è concesso per impostazione predefinita, quindi devi accedere alla console Amazon Bedrock per richiedere l'accesso ai modelli per il tuo AWS account.

Per informazioni su come richiedere l’accesso a un modello Amazon Bedrock specifico, segui la procedura **Add model access** nella pagina [Manage access to Amazon Bedrock foundation models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html) in *Amazon Bedrock User Guide*.

## Fase 2. Concedi le autorizzazioni al ruolo IAM dell’utente
<a name="canvas-bedrock-iam-permissions"></a>

Quando configuri il tuo dominio o profilo utente Amazon SageMaker AI, al ruolo di esecuzione IAM dell'utente deve essere associata la [ AmazonSageMakerCanvasBedrockAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasBedrockAccess.html)policy, nonché una relazione di fiducia con Amazon Bedrock, in modo che l'utente possa accedere ai modelli Amazon Bedrock da SageMaker Canvas.

Puoi modificare le impostazioni del dominio e creare un nuovo ruolo di esecuzione (a cui SageMaker AI assegna le autorizzazioni necessarie) o specificare un ruolo esistente.

In alternativa, puoi modificare manualmente le autorizzazioni per un ruolo IAM esistente tramite la console IAM.

Entrambi i metodi vengono descritti nelle sezioni seguenti.

### Concessione delle autorizzazioni tramite le impostazioni del dominio
<a name="canvas-fine-tuning-permissions-console"></a>

Puoi modificare le impostazioni del dominio o del profilo utente per attivare l'impostazione di **configurazione dei Ready-to-use modelli Canvas** e specificare un ruolo Amazon Bedrock.

Per modificare le impostazioni del dominio e concedere l’accesso ai modelli Amazon Bedrock per gli utenti Canvas del dominio, procedi come descritto di seguito:

1. Vai alla console SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Domains** (Domini).

1. Dall’elenco di domini, scegli il tuo dominio.

1. Scegli la scheda **Configurazioni app**.

1. Nella sezione **Canvas**, scegli **Modifica**.

1. Viene visualizzata la pagina **Modifica le impostazioni di Canvas**. Per la sezione di **configurazione Ready-to-use dei modelli Canvas**, procedi come segue:

   1. Attiva l'**opzione Abilita Ready-to-use i modelli Canvas**.

   1. Per il **ruolo Amazon Bedrock**, seleziona **Crea e usa un nuovo ruolo di esecuzione** per creare un nuovo ruolo di esecuzione IAM con la [ AmazonSageMakerCanvasBedrockAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasBedrockAccess.html)policy allegata e una relazione di trust con Amazon Bedrock. Questo ruolo IAM viene assunto da Amazon Bedrock quando accedi ai modelli Amazon Bedrock, utilizzi la chat per la funzionalità di preparazione dei dati o esegui il fine-tuning dei modelli Amazon Bedrock in Canvas. Se disponi già di un ruolo di esecuzione con una relazione di attendibilità, seleziona **Utilizza un ruolo di esecuzione esistente** e scegli il tuo ruolo dall’elenco a discesa.

1. Scegli **Invia** per salvare le modifiche.

I tuoi utenti dovrebbero ora disporre delle autorizzazioni necessarie per accedere ai modelli Amazon Bedrock, utilizzare la funzionalità di chat per la preparazione dei dati e eseguire il fine-tuning dei modelli Amazon Bedrock in Canvas.

Puoi utilizzare la stessa procedura descritta sopra per modificare le impostazioni di un singolo utente, accedendo però al profilo di tale utente dalla pagina del dominio e modificando le impostazioni utente. Le autorizzazioni concesse a un singolo utente non si applicano agli altri utenti del dominio, mentre le autorizzazioni concesse tramite le impostazioni del dominio si applicano a tutti i profili utente del dominio.

Per istruzioni su come modificare le impostazioni del dominio, consulta [Visualizzazione e modifica dei domini](https://docs.aws.amazon.com/sagemaker/latest/dg/domain-view-edit.html).

### Concessione manuale delle autorizzazioni tramite IAM
<a name="canvas-fine-tuning-permissions-manual"></a>

Puoi concedere manualmente agli utenti le autorizzazioni per accedere ed eseguire il fine-tuning dei modelli Amazon Bedrock in Canvas, aggiungendo le autorizzazioni al ruolo IAM specificato per il dominio o il profilo utente. Il ruolo IAM deve avere la [ AmazonSageMakerCanvasBedrockAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasBedrockAccess.html)policy allegata e un rapporto di fiducia con Amazon Bedrock.

La sezione seguente mostra come collegare la policy al tuo ruolo IAM e creare una relazione di attendibilità con Amazon Bedrock.

Innanzitutto, prendi nota del ruolo IAM del tuo dominio o profilo utente. Tieni presente che le autorizzazioni concesse a un singolo utente non si applicano agli altri utenti del dominio, mentre le autorizzazioni concesse tramite il dominio si applicano a tutti i profili utente del dominio.

Per configurare il ruolo IAM e concedere le autorizzazioni per eseguire il fine-tuning dei modelli di fondazione in Canvas, procedi come descritto di seguito:

1. Vai alla console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel pannello di navigazione a sinistra, seleziona **Ruoli**.

1. Cerca il ruolo IAM dell'utente per nome dall'elenco dei ruoli e selezionalo.

1. Nella scheda **Permissions (Autorizzazioni)**, scegliere **Add permissions (Aggiungi autorizzazioni)**. Dal menu a discesa scegli **Collega policy**.

1. Cerca la policy `AmazonSageMakerCanvasBedrockAccess` e selezionala.

1. Scegli **Aggiungi autorizzazioni**.

1. Nella pagina del ruolo IAM, scegli la scheda **Relazioni di attendibilità**.

1. Seleziona **Modifica policy di attendibilità**.

1. Nell’editor delle policy, trova l’opzione **Aggiungi un principale** nel pannello di destra e scegli **Aggiungi**.

1. Nella finestra di dialogo, in **Tipo principale**, seleziona **Servizi AWS **.

1. In **ARN**, inserisci **bedrock.amazonaws.com**.

1. Seleziona **Aggiungi principale**.

1. Scegli **Aggiorna policy**.

Ora dovresti avere un ruolo IAM con la [ AmazonSageMakerCanvasBedrockAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasBedrockAccess.html)policy allegata e un rapporto di fiducia con Amazon Bedrock. Per informazioni sulle policy AWS gestite, consulta [Managed policies e inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) nella *IAM User Guide*.

# Aggiorna SageMaker Canvas per i tuoi utenti
<a name="canvas-update"></a>

Puoi eseguire l'aggiornamento alla versione più recente di Amazon SageMaker Canvas come utente o amministratore IT. Puoi aggiornare Amazon SageMaker Canvas per un singolo utente alla volta.

Per aggiornare l'applicazione Amazon SageMaker Canvas, devi eliminare la versione precedente.

**Importante**  
L'eliminazione della versione precedente di Amazon SageMaker Canvas non elimina i dati o i modelli creati dagli utenti.

Utilizza la seguente procedura per accedere AWS, aprire il dominio Amazon SageMaker AI e aggiornare Amazon SageMaker Canvas. Gli utenti possono iniziare a utilizzare l'applicazione SageMaker Canvas quando effettuano nuovamente l'accesso.

1. Accedi alla console Amazon SageMaker AI su [Amazon SageMaker Runtime](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1. Nella pagina **Domini**, scegli il tuo dominio.

1. Dall'elenco **Profili utente**, scegli un profilo utente.

1. Per l'elenco delle **App**, trova l'applicazione Canvas (il **tipo di app** indica **Canvas**) e scegli **Elimina app**.

1. Completa la finestra di dialogo e scegli **Conferma azione**.

L'immagine seguente mostra la pagina del profilo utente ed evidenzia l'azione **Elimina app** della procedura precedente.

![\[Screenshot della pagina del profilo utente con l’azione Elimina app evidenziata.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-update-app-1.png)


# Richiedi un aumento delle quote.
<a name="canvas-requesting-quota-increases"></a>

I tuoi utenti potrebbero utilizzare AWS le risorse in quantità superiori a quelle specificate dalle loro quote. Se i tuoi utenti hanno risorse limitate e riscontrano errori in SageMaker Canvas, puoi richiedere un aumento della quota per loro.

[Per maggiori dettagli sulle quote SageMaker AI e su come richiedere un aumento delle quote, consulta Quote.](https://docs.aws.amazon.com/sagemaker/latest/dg/regions-quotas.html#regions-quotas-quotas)

Amazon SageMaker Canvas utilizza i seguenti servizi per elaborare le richieste dei tuoi utenti:
+ Amazon SageMaker Autopilot
+ Dominio Amazon SageMaker Studio Classic

Per un elenco delle quote disponibili per le operazioni SageMaker Canvas, consulta [Endpoint e quote Amazon SageMaker AI](https://docs.aws.amazon.com//general/latest/gr/sagemaker.html).

## Richiedi un aumento affinché le istanze possano creare modelli personalizzati
<a name="canvas-requesting-quota-increases-instances"></a>

Quando crei un modello personalizzato, se durante l'analisi successiva alla creazione riscontri un errore che riferisce la necessità di aumentare la quota per le istanze `ml.m5.2xlarge`, utilizza le seguenti informazioni per risolvere il problema.

Devi aumentare la quota di endpoint di SageMaker AI Hosting per il tipo di `ml.m5.2xlarge` istanza portandola a un valore diverso da zero nel tuo account. AWS Dopo aver creato un modello, SageMaker Canvas ospita il modello su un endpoint di hosting SageMaker AI e utilizza l'endpoint per generare l'analisi successiva alla creazione. Se non aumenti la quota predefinita dell'account di 0 per `ml.m5.2xlarge` le istanze, SageMaker Canvas non può completare questo passaggio e genera un errore durante l'analisi successiva alla creazione.

Per la procedura di aumento della quota, consulta [Requesting a quota increase](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) in *Service Quotas User Guide*.

# Concedere agli utenti le autorizzazioni per importare dati Amazon Redshift
<a name="canvas-redshift-permissions"></a>

I tuoi utenti potrebbero avere set di dati archiviati in Amazon Redshift. Prima che gli utenti possano importare dati da Amazon Redshift in SageMaker Canvas, devi aggiungere la policy `AmazonRedshiftFullAccess` gestita al ruolo di esecuzione IAM che hai utilizzato per il profilo utente e aggiungere Amazon Redshift come service principal alla policy di fiducia del ruolo. Inoltre, devi associare il ruolo di esecuzione IAM al tuo cluster Amazon Redshift. Completa le procedure descritte nelle seguenti sezioni per concedere ai tuoi utenti le autorizzazioni necessarie per importare dati Amazon Redshift.

## Aggiungi le autorizzazioni di Amazon Redshift al tuo ruolo IAM
<a name="canvas-redshift-permissions-iam-role"></a>

Devi concedere le autorizzazioni di Amazon Redshift al ruolo IAM specificato nel tuo profilo utente.

Per aggiungere la policy `AmazonRedshiftFullAccess` al ruolo IAM dell'utente, procedi come segue.

1. Accedi alla console IAM all'indirizzo. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. Scegli **Ruoli**.

1. Nella casella di ricerca, cerca il ruolo IAM dell'utente per nome, quindi selezionalo.

1. Nella pagina del ruolo dell'utente, in **Autorizzazioni**, scegli **Aggiungi autorizzazioni**.

1. Scegli **Collega policy**.

1. Cerca la policy gestita `AmazonRedshiftFullAccess` e selezionala.

1. Scegli **Collega policy** per collegare la policy al ruolo.

Dopo aver collegato la policy, la sezione **Autorizzazioni** del ruolo dovrebbe includere `AmazonRedshiftFullAccess`.

Per aggiungere Amazon Redshift come principale del servizio al ruolo IAM, procedi come segue.

1. Nella stessa pagina del ruolo IAM, in **Relazioni di attendibilità**, scegli **Modifica policy di attendibilità**.

1. Nell'editor **Modifica policy di attendibilità**, aggiorna la policy di attendibilità per aggiungere Amazon Redshift come principale del servizio. Un ruolo IAM che permette ad Amazon Redshift di accedere ad altri servizi AWS per tuo conto ha una relazione di attendibilità come illustrato di seguito:

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

****  

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

------

1. Dopo aver modificato la policy di attendibilità, scegli **Aggiorna policy**.

Ora dovresti avere un ruolo IAM a cui è `AmazonRedshiftFullAccess` associata la policy e una relazione di fiducia stabilita con Amazon Redshift, che consenta agli utenti di importare i dati di Amazon Redshift in Canvas. SageMaker Per ulteriori informazioni sulle politiche AWS gestite, consulta le politiche [gestite e le politiche in linea](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) nella Guida per l'utente *IAM*.

## Associazione del ruolo IAM al proprio cluster Amazon Redshift
<a name="canvas-redshift-permissions-cluster"></a>

Nelle impostazioni del tuo cluster Amazon Redshift, devi associare il ruolo IAM a cui hai concesso le autorizzazioni nella sezione precedente.

Per associare un ruolo IAM al tuo cluster, procedi come segue.

1. Accedi alla console Amazon Redshift all'indirizzo. [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)

1. Dal menu di navigazione scegli **Cluster**, quindi scegli il cluster che desideri aggiornare.

1. Nel menu a discesa **Azioni**, scegli **Gestisci ruoli IAM**. Viene visualizzata la pagina **Autorizzazioni del cluster**.

1. In **Ruoli IAM disponibili**, inserisci l'ARN o il nome del ruolo IAM, oppure scegli il ruolo IAM dall'elenco.

1. Quindi scegli **Associa ruolo IAM** per aggiungerlo all'elenco dei **Ruoli IAM associati**.

1. Scegli **Salva le modifiche** per associare il ruolo IAM al cluster.

Amazon Redshift modifica il cluster per completare la modifica e il ruolo IAM a cui in precedenza hai concesso le autorizzazioni Amazon Redshift è ora associato al tuo cluster Amazon Redshift. I tuoi utenti ora dispongono delle autorizzazioni necessarie per importare i dati SageMaker di Amazon Redshift in Canvas.

# Concedi ai tuoi utenti le autorizzazioni per inviare previsioni a Quick
<a name="canvas-quicksight-permissions"></a>

Devi concedere agli utenti SageMaker Canvas le autorizzazioni per inviare previsioni in batch a Quick. In Quick, gli utenti possono creare analisi e report con un set di dati e preparare dashboard per condividere i risultati. Per ulteriori informazioni sull'invio della previsione a QuickSight fini di analisi, consulta. [Invia previsioni a Quick](canvas-send-predictions.md)

Per concedere le autorizzazioni necessarie per condividere le previsioni in batch con gli utenti QuickSight, devi aggiungere una politica di autorizzazioni al ruolo di esecuzione AWS Identity and Access Management (IAM) che hai utilizzato per il profilo utente. La sezione seguente mostra come collegare una policy di autorizzazioni minime al tuo ruolo.

**Aggiungi la policy di autorizzazione al tuo ruolo IAM**

**Utilizza la seguente procedura per aggiungere la policy di autorizzazione:**

1. Accedi alla console IAM all'indirizzo. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. Scegli **Ruoli**.

1. Nella casella di ricerca, cerca il ruolo IAM dell'utente per nome, quindi selezionalo.

1. Nella pagina del ruolo dell'utente, in **Autorizzazioni**, scegli **Aggiungi autorizzazioni**.

1. Scegli **Crea policy inline**.

1. Seleziona la scheda JSON e incolla la seguente policy di autorizzazioni minime nell'editor. Sostituisci i segnaposto `<your-account-number>` con il tuo numero di account AWS .

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "quicksight:CreateDataSet",
                   "quicksight:ListUsers",
                   "quicksight:ListNamespaces",
                   "quicksight:CreateDataSource",
                   "quicksight:PassDataSet",
                   "quicksight:PassDataSource"
               ],
               "Resource": [
                   "arn:aws:quicksight:*:111122223333:datasource/*",
                   "arn:aws:quicksight:*:111122223333:user/*",
                   "arn:aws:quicksight:*:111122223333:namespace/*",
                   "arn:aws:quicksight:*:111122223333:dataset/*"
               ]
           }
       ]
   }
   ```

------

1. Scegli **Esamina la policy**.

1. Inserisci un **Nome** per la policy.

1. Scegli **Crea policy**.

Ora dovresti avere una policy IAM gestita dal cliente associata al tuo ruolo di esecuzione che conceda agli utenti di Canvas le autorizzazioni necessarie per inviare previsioni in batch agli utenti. QuickSight

# Gestione delle applicazioni
<a name="canvas-manage-apps"></a>

Le seguenti sezioni descrivono come gestire le applicazioni SageMaker Canvas. Puoi visualizzare, eliminare o riavviare le tue applicazioni dalla sezione **Domini** della console AI. SageMaker 

**Topics**
+ [Verifica della presenza di applicazioni attive](canvas-manage-apps-active.md)
+ [Eliminazione di un'applicazione](canvas-manage-apps-delete.md)
+ [Riavvio di un’applicazione](canvas-manage-apps-relaunch.md)

# Verifica della presenza di applicazioni attive
<a name="canvas-manage-apps-active"></a>

Per verificare se avete applicazioni SageMaker Canvas in esecuzione attivamente, utilizzate la seguente procedura.

1. Apri la [console SageMaker AI](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Dashboard**.

1. Nella sezione **LCNC**, c'è una riga per Canvas che indica quante app attive sono in esecuzione. Scegli il numero per visualizzare l'elenco delle app.

La colonna **Stato** mostra lo stato dell’applicazione, ad esempio **Pronta**, **In sospeso** o **Eliminata**. Se l'applicazione è **pronta**, l'istanza dell'area di lavoro SageMaker Canvas è attiva. È possibile eliminare l'applicazione dalla console oppure riaprire Canvas e disconnettersi.

# Eliminazione di un'applicazione
<a name="canvas-manage-apps-delete"></a>

Se desideri terminare l'istanza dell'area di lavoro SageMaker Canvas, puoi disconnetterti dall'applicazione SageMaker Canvas o eliminare l'applicazione dalla console SageMaker AI. Un'*istanza dell'area di lavoro* è dedicata all'uso da quando inizi a utilizzare SageMaker Canvas fino al momento in cui smetti di usarla. L’eliminazione dell’applicazione termina solo l’istanza dello spazio di lavoro e arresta i relativi addebiti. I modelli e i set di dati non sono interessati, ma le attività della build rapida si riavviano automaticamente all’accesso successivo.

Per eliminare l'applicazione Canvas tramite la AWS console, chiudi innanzitutto la scheda del browser in cui era aperta l'applicazione Canvas. Quindi, utilizzate la seguente procedura per eliminare l'applicazione SageMaker Canvas.

1. Apri la [console SageMaker AI](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni admin**, scegli **Domini**. 

1. Nella pagina **Domini**, scegli il tuo dominio.

1. Nella pagina dei **dettagli del dominio**, scegli **Risorse**.

1. In **Applicazioni**, trova l'applicazione che dice **Canvas** nella colonna **Tipo di app**.

1. Seleziona la casella di controllo accanto all'applicazione Canvas e scegli **Stop**.

Ora hai arrestato con successo l'applicazione e terminato l'istanza del workspace.

Puoi anche terminare l'istanza del workspace [disconnettendoti dall'interno dell'applicazione Canvas](canvas-log-out.md). SageMaker 

# Riavvio di un’applicazione
<a name="canvas-manage-apps-relaunch"></a>

Se elimini o ti disconnetti dall'applicazione SageMaker Canvas e desideri riavviare l'applicazione, usa la seguente procedura.

1. [Vai alla console AI. SageMaker ](https://console.aws.amazon.com/sagemaker/)

1. Nel riquadro di navigazione, seleziona **Canvas**.

1. Nella pagina di destinazione di SageMaker Canvas, nella casella **Inizia**, seleziona il tuo profilo utente dal menu a discesa.

1. Scegli **Apri Canvas** per aprire l'applicazione.

SageMaker Canvas inizia a lanciare l'applicazione.

Puoi utilizzare anche la seguente procedura secondaria, in caso di problemi con la procedura precedente.

1. Apri la [console SageMaker AI](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1. Nella pagina **Domini**, scegli il tuo dominio.

1. Nella pagina dei **dettagli del dominio**, in **Profili utente**, seleziona il nome del profilo utente per l'applicazione SageMaker Canvas che desideri visualizzare.

1. Scegli **Avvia** e seleziona **Canvas** dall'elenco a discesa.

SageMaker Canvas inizia a lanciare l'applicazione.

# Configura Amazon SageMaker Canvas in un VPC senza accesso a Internet
<a name="canvas-vpc"></a>

L'applicazione Amazon SageMaker Canvas viene eseguita in un contenitore in un Amazon Virtual Private Cloud (VPC) AWS gestito. Se desideri controllare ulteriormente l'accesso alle tue risorse o eseguire SageMaker Canvas senza accesso pubblico a Internet, puoi configurare il dominio Amazon SageMaker AI e le impostazioni VPC. All'interno del tuo VPC, puoi configurare impostazioni come gruppi di sicurezza (firewall virtuali che controllano il traffico in entrata e in uscita dalle istanze Amazon EC2) e sottoreti (intervalli di indirizzi IP nel tuo VPC). Per ulteriori informazioni VPCs, consulta [Come funziona Amazon VPC.](https://docs.aws.amazon.com/vpc/latest/userguide/how-it-works.html)

Quando l'applicazione SageMaker Canvas è in esecuzione nel VPC AWS gestito, può interagire con altri AWS servizi utilizzando una connessione Internet o tramite endpoint VPC creati in un VPC gestito dal cliente (senza accesso pubblico a Internet). SageMaker Le applicazioni Canvas possono accedere a questi endpoint VPC tramite un'interfaccia di rete creata da Studio Classic che fornisce connettività al VPC gestito dal cliente. Il comportamento predefinito dell'applicazione Canvas prevede l'accesso a Internet. SageMaker Quando si utilizza una connessione Internet, i container dei processi precedenti accedono a risorse AWS su Internet, come i bucket Amazon S3, in cui vengono archiviati i dati di addestramento e gli artefatti del modello.

Tuttavia, se hai requisiti di sicurezza per controllare l'accesso ai contenitori di dati e lavori, ti consigliamo di configurare SageMaker Canvas e il tuo VPC in modo che dati e contenitori non siano accessibili su Internet. SageMaker AI utilizza le impostazioni di configurazione VPC specificate durante la configurazione del dominio per SageMaker Canvas.

Se desideri configurare la tua applicazione SageMaker Canvas senza accesso a Internet, devi configurare le impostazioni VPC durante l'onboarding nel [dominio Amazon SageMaker AI](gs-studio-onboard.md), configurare gli endpoint VPC e concedere le autorizzazioni necessarie. AWS Identity and Access Management Per informazioni sulla configurazione di un VPC in SageMaker Amazon AI, consulta. [Scelta di un Amazon VPC](onboard-vpc.md) Le sezioni seguenti descrivono come eseguire SageMaker Canvas in un VPC senza accesso pubblico a Internet.

## Configura Amazon SageMaker Canvas in un VPC senza accesso a Internet
<a name="canvas-vpc-configure"></a>

Puoi inviare traffico da SageMaker Canvas ad altri AWS servizi tramite il tuo VPC. Se il tuo VPC non dispone di accesso pubblico a Internet e hai impostato il dominio in modalità **solo VPC**, SageMaker Canvas non avrà nemmeno l'accesso pubblico a Internet. Ciò include tutte le richieste, come l'accesso ai set di dati in Amazon S3 o i processi di addestramento per le build Standard, che quindi passano attraverso gli endpoint VPC nel tuo VPC anziché tramite la rete Internet pubblica. Quando effettui l’onboarding nel dominio e in [Scelta di un Amazon VPC](onboard-vpc.md), puoi impostare il tuo VPC come predefinito per il dominio e puoi specificare le impostazioni desiderate per il gruppo di sicurezza e la sottorete. Quindi, l' SageMaker intelligenza artificiale crea un'interfaccia di rete nel tuo VPC che SageMaker Canvas utilizza per accedere agli endpoint VPC nel tuo VPC.

Assicurati di configurare uno o più gruppi di sicurezza nel VPC con regole in entrata e in uscita che consentano il [traffico TCP all’interno del gruppo di sicurezza](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-other-instances). Questa configurazione è richiesta per la connettività tra l’applicazione del server Jupyter e le applicazioni del gateway kernel. Devi consentire l'accesso ad almeno le porte dell'intervallo `8192-65535`. Crea anche un gruppo di sicurezza distinto per ogni profilo utente e aggiungi l’accesso in entrata dallo stesso gruppo di sicurezza. Consigliamo di non riutilizzare un gruppo di sicurezza a livello di dominio per i profili utente. Se il gruppo di sicurezza a livello di dominio consente l’accesso in entrata a se stesso, tutte le applicazioni del dominio avranno accesso a tutte le altre applicazioni del dominio. Tieni presente che le impostazioni del gruppo di sicurezza e della sottorete vengono configurate dopo aver completato l’onboarding nel dominio.

Durante l'onboarding sul dominio, se scegli **Solo Internet pubblico** come tipo di accesso alla rete, il VPC è gestito dall' SageMaker IA e consente l'accesso a Internet.

Puoi modificare questo comportamento scegliendo **solo VPC** in modo che l' SageMaker IA invii tutto il traffico a un'interfaccia di rete creata dall' SageMaker IA nel VPC specificato. Quando scegli questa opzione, devi fornire le sottoreti, i gruppi di sicurezza e gli endpoint VPC necessari per comunicare con l' SageMaker API e SageMaker AI Runtime e vari AWS servizi, come Amazon S3 e CloudWatch Amazon, utilizzati da Canvas. SageMaker Tieni presente che puoi importare dati da bucket Amazon S3 solo se sono situati nella stessa Regione del tuo VPC.

Le seguenti procedure mostrano come configurare queste impostazioni per utilizzare SageMaker Canvas senza Internet.

### Fase 1: onboarding verso il dominio Amazon SageMaker AI
<a name="canvas-vpc-configure-onboard"></a>

[Per inviare il traffico SageMaker Canvas a un'interfaccia di rete nel tuo VPC anziché su Internet, specifica il VPC che desideri utilizzare per l'onboarding sul dominio Amazon AI. SageMaker ](gs-studio-onboard.md) È inoltre necessario specificare almeno due sottoreti nel VPC che SageMaker l'IA può utilizzare. Scegli **Configurazione standard** ed esegui questa procedura per configurare la **sezione Rete e archiviazione** del dominio.

1. Seleziona il **VPC** desiderato.

1. Scegli due o più **sottoreti**. Se non specifichi le sottoreti, l' SageMaker IA utilizza tutte le sottoreti nel VPC.

1. Scegli uno o più **Gruppi di sicurezza**.

1. Scegli **Solo VPC** per disattivare l'accesso diretto a Internet nel AWS VPC gestito in cui SageMaker è ospitato Canvas.

Dopo aver disabilitato l’accesso a Internet, completa la procedura di onboarding per configurare il tuo dominio. Per ulteriori informazioni sulle impostazioni VPC per il dominio Amazon SageMaker AI, consulta. [Scelta di un Amazon VPC](onboard-vpc.md)

### Fase 2: configurazione di endpoint VPC e accesso
<a name="canvas-vpc-configure-endpoints"></a>

**Nota**  
Per configurare Canvas nel tuo VPC, devi abilitare i nomi host DNS privati per i tuoi endpoint VPC. Per ulteriori informazioni, consulta [Connect to SageMaker AI Through a VPC Interface](https://docs.aws.amazon.com/sagemaker/latest/dg/interface-vpc-endpoint.html) Endpoint.

SageMaker Canvas accede ad altri AWS servizi solo per gestire e archiviare i dati per le sue funzionalità. Ad esempio, si connette ad Amazon Redshift se gli utenti accedono a un database Amazon Redshift. Può connettersi a un AWS servizio come Amazon Redshift utilizzando una connessione Internet o un endpoint VPC. Usa gli endpoint VPC se desideri configurare connessioni dal tuo VPC a AWS servizi che non utilizzano la rete Internet pubblica.

Un endpoint VPC crea una connessione privata a un AWS servizio che utilizza un percorso di rete isolato dalla rete Internet pubblica. Ad esempio, se configuri l'accesso ad Amazon S3 utilizzando un endpoint VPC dal tuo VPC, l'applicazione Canvas SageMaker può accedere ad Amazon S3 tramite l'interfaccia di rete del tuo VPC e quindi tramite l'endpoint VPC che si connette ad Amazon S3. La comunicazione tra SageMaker Canvas e Amazon S3 è privata.

Per ulteriori informazioni sulla configurazione degli endpoint VPC per il tuo VPC, consulta [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html). Se utilizzi modelli Amazon Bedrock in Canvas con un VPC, per ulteriori informazioni sul controllo dell'accesso ai tuoi dati, consulta [Protect jobs using a VPC](https://docs.aws.amazon.com/bedrock/latest/userguide/usingVPC.html#configureVPC) in *Guida per l’utente di Amazon Bedrock*.

Di seguito sono riportati gli endpoint VPC per ogni servizio che puoi utilizzare con Canvas: SageMaker 


| Servizio | Endpoint | Tipo di endpoint | 
| --- | --- | --- | 
|  AWS Application Auto Scaling  |  com.amazonaws. *Region*.scalabilità automatica delle applicazioni  | Interfaccia | 
|  Amazon Athena  |  com.amazonaws. *Region*.atena  | Interfaccia | 
|  Amazon SageMaker AI  |  com.amazonaws.it. *Region*.sagemaker.api com.amazonaws. *Region*.sagemaker.runtime com.amazonaws. *Region*.taccuino  | Interfaccia | 
|  Assistente di data science di Amazon SageMaker AI  |  com.amazonaws. *Region*. sagemaker-data-science-assistant  | Interfaccia | 
|  AWS Security Token Service  |  com.amazonaws. *Region*.sts  | Interfaccia | 
|  Amazon Elastic Container Registry (Amazon ECR)  |  com.amazonaws.it. *Region*.ecr.api com.amazonaws. *Region*.ecr.dkr  | Interfaccia | 
|  Amazon Elastic Compute Cloud (Amazon EC2)  |  com.amazonaws. *Region*.ec2  | Interfaccia | 
|  Amazon Simple Storage Service (Amazon S3)  |  com.amazonaws.it. *Region*.s3  | Gateway | 
|  Amazon Redshift  |  com.amazonaws.it. *Region*.redshift-dati  | Interfaccia | 
|  Gestione dei segreti AWS  |  com.amazonaws. *Region*. gestore dei segreti  | Interfaccia | 
|  AWS Systems Manager  |  com.amazonaws.it. *Region*.ssm  | Interfaccia | 
|  Amazon CloudWatch  |  com.amazonaws. *Region*.monitoraggio  | Interfaccia | 
|   CloudWatch Registri Amazon  |  com.amazonaws.it. *Region*.registri  | Interfaccia | 
|  Amazon Forecast  |  com.amazonaws.it. *Region*.previsione com.amazonaws.it. *Region*.query di previsione  | Interfaccia | 
|  Amazon Textract  |  com.amazonaws. *Region*.tr estrarre  | Interfaccia | 
|  Amazon Comprehend  |  com.amazonaws.it. *Region*. comprendere  | Interfaccia | 
|  Amazon Rekognition  |  com.amazonaws. *Region*.riconoscimento  | Interfaccia | 
|  AWS Glue  |  com.amazonaws. *Region*.colla  | Interfaccia | 
|  AWS Application Auto Scaling  |  com.amazonaws. *Region*.scalabilità automatica delle applicazioni  | Interfaccia | 
|  Amazon Relational Database Service (Amazon RDS)  |  com.amazonaws. *Region*.rds  | Interfaccia | 
|  Amazon Bedrock (vedi nota dopo la tabella)  |  com.amazonaws.it. *Region*.bedrock-runtime  | Interfaccia | 
|  Amazon Kendra  |  com.amazonaws.it. *Region*.kendra  | Interfaccia | 
|  Amazon EMR Serverless  |  com.amazonaws. *Region*.emr senza server  | Interfaccia | 
|  Amazon Q Developer (vedi nota dopo la tabella)  |  com.amazonaws. *Region*q.  | Interfaccia | 

**Nota**  
L’endpoint VPC Amazon Q Developer è attualmente disponibile solo nella Regione Stati Uniti orientali (Virginia settentrionale). Per connetterti da altre Regioni, puoi scegliere una delle seguenti opzioni in base alle tue preferenze di sicurezza e infrastruttura:  
**Configura un gateway NAT**. Configura un gateway NAT nella sottorete privata del tuo VPC per abilitare la connettività Internet per l’endpoint Q Developer. Per ulteriori informazioni, consulta [Come posso configurare un gateway NAT pubblico per accedere a Internet da una sottorete privata in Amazon VPC?](https://repost.aws/knowledge-center/nat-gateway-vpc-private-subnet)
**Abilita l’accesso agli endpoint VPC tra Regioni**. Configura l’accesso agli endpoint VPC tra Regioni per Q Developer. Utilizza questa opzione per connetterti in modo sicuro senza richiedere l’accesso a Internet. Per ulteriori informazioni, consulta la pagina che spiega come [configurare l’accesso agli endpoint VPC tra Regioni](https://repost.aws/knowledge-center/vpc-endpoints-cross-region-aws-services).

**Nota**  
Per Amazon Bedrock, il nome servizio endpoint dell’interfaccia `com.amazonaws.Region.bedrock` è obsoleto. Crea un nuovo endpoint VPC con il nome servizio elencato nella tabella precedente.  
Inoltre, non è possibile ottimizzare i modelli di base di Canvas senza accesso VPCs a Internet. Questo perché Amazon Bedrock non supporta gli endpoint VPC per la personalizzazione dei modelli. APIs Per ulteriori informazioni sul fine-tuning dei modelli di fondazione in Canvas, consulta [Fine-tuning dei modelli di fondazione](canvas-fm-chat-fine-tune.md).

È inoltre necessario aggiungere una policy per gli endpoint per Amazon S3 per AWS controllare l'accesso principale all'endpoint VPC. Per informazioni su come aggiornare la policy degli endpoint VPC, consulta [Control access to VPC endpoints using endpoint policies](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html).

Di seguito sono riportate due policy degli endpoint VPC che puoi utilizzare. Utilizza la prima policy per concedere l’accesso solo alle funzionalità di base di Canvas, come l’importazione di dati e la creazione di modelli. Utilizza la seconda policy per concedere l’accesso alle [funzionalità di IA generativa](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-fm-chat.html) aggiuntive in Canvas.

------
#### [ Basic VPC endpoint policy ]

La policy seguente garantisce l’accesso necessario all’endpoint VPC per le operazioni di base in Canvas.

```
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:CreateBucket",
                "s3:GetBucketCors",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::*SageMaker*",
                "arn:aws:s3:::*Sagemaker*",
                "arn:aws:s3:::*sagemaker*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        }
```

------
#### [ Generative AI VPC endpoint policy ]

La policy seguente garantisce l’accesso necessario all’endpoint VPC per le operazioni di base in Canvas, nonché l’utilizzo di modelli di fondazione di IA generativa.

```
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:CreateBucket",
                "s3:GetBucketCors",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "arn:aws:s3:::*SageMaker*",
                "arn:aws:s3:::*Sagemaker*",
                "arn:aws:s3:::*sagemaker*",
                "arn:aws:s3:::*fmeval/datasets*",
                "arn:aws:s3:::*jumpstart-cache-prod*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        }
```

------

### Fase 3: concessione delle autorizzazioni IAM
<a name="canvas-vpc-configure-permissions"></a>

L'utente SageMaker Canvas deve disporre delle AWS Identity and Access Management autorizzazioni necessarie per consentire la connessione agli endpoint VPC. Il ruolo IAM a cui concedi le autorizzazioni deve essere lo stesso che hai utilizzato per l'onboarding sul dominio Amazon SageMaker AI. Puoi collegare la `AmazonSageMakerFullAccess` policy gestita dall' SageMaker IA al ruolo IAM in modo che l'utente fornisca all'utente le autorizzazioni richieste. Se richiedi autorizzazioni IAM più restrittive e utilizzi invece policy personalizzate, concedi l'autorizzazione al ruolo dell'utente. `ec2:DescribeVpcEndpointServices` SageMaker Canvas richiede queste autorizzazioni per verificare l'esistenza degli endpoint VPC richiesti per i lavori di compilazione standard. Se rileva questi endpoint VPC, i processi Standard build vengono eseguiti per impostazione predefinita nel tuo VPC. In caso contrario, verranno eseguiti nel VPC AWS gestito predefinito.

Per ricevere istruzioni su come collegare la policy IAM `AmazonSageMakerFullAccess` al tuo ruolo IAM dell'utente, consulta [Adding and removing IAM identity permissions](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).

Per concedere al tuo ruolo IAM dell'utente l'autorizzazione granulare `ec2:DescribeVpcEndpointServices`, utilizza la procedura seguente.

1. Accedi Console di gestione AWS e apri la [console IAM](https://console.aws.amazon.com/iam/).

1. Nel riquadro di navigazione, seleziona **Ruoli**.

1. Nell'elenco, scegliere il numero del ruolo per il quale si desidera concedere le autorizzazioni.

1. Scegli la scheda **Autorizzazioni**.

1. Scegli **Aggiungi autorizzazioni**, quindi seleziona **Crea policy inline**.

1. Scegli la scheda **JSON** e inserisci la seguente policy, che concede l'autorizzazione `ec2:DescribeVpcEndpointServices`:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": "ec2:DescribeVpcEndpointServices",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Scegli **Esamina la policy** quindi scegli un **Nome** per la policy (per esempio, `VPCEndpointPermissions`).

1. Scegli **Crea policy**.

Il ruolo IAM dell'utente dovrebbe ora disporre delle autorizzazioni per accedere agli endpoint VPC configurati nel tuo VPC.

### (Facoltativo) Fase 4: sovrascrivere le impostazioni dei gruppi di sicurezza per utenti specifici
<a name="canvas-vpc-configure-override"></a>

Se sei un amministratore, potresti desiderare che utenti diversi abbiano impostazioni VPC diverse o impostazioni VPC specifiche dell'utente. Quando sovrascrivi le impostazioni predefinite del gruppo di sicurezza VPC per un utente specifico, queste impostazioni vengono trasmesse all'applicazione SageMaker Canvas per quell'utente.

Quando configuri un nuovo profilo utente in Studio Classic, puoi sostituire i gruppi di sicurezza a cui un utente specifico ha accesso nel tuo VPC. È possibile utilizzare la chiamata [CreateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html) SageMaker API (o [create\$1user\$1profile](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_user_profile) con [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)), quindi in, è possibile specificare l'indirizzo per l'`UserSettings`utente. `SecurityGroups`

# Configura le connessioni alle sorgenti dati con OAuth
<a name="canvas-setting-up-oauth"></a>

La sezione seguente descrive i passaggi da eseguire per configurare le OAuth connessioni alle fonti di dati da Canvas. SageMaker [OAuth](https://oauth.net/2/)è una piattaforma di autenticazione comune per concedere l'accesso alle risorse senza condividere le password. Con OAuth, puoi connetterti rapidamente ai tuoi dati da Canvas e importarli per creare modelli. Attualmente Canvas supporta OAuth Snowflake e Salesforce Data Cloud. 

**Nota**  
È possibile stabilire una sola OAuth connessione per ogni fonte di dati.

## Configurazione OAuth per Salesforce Data Cloud
<a name="canvas-setting-up-oauth-salesforce"></a>

Per eseguire la configurazione OAuth per Salesforce Data Cloud, segui questi passaggi generali:

1. Accedi al cloud dei dati Salesforce.

1. Nel cloud dei dati Salesforce, crea una nuova connessione all'app ed effettua le seguenti operazioni:

   1. Abilita le impostazioni. OAuth 

   1. Quando viene richiesto un URL di callback (o l'URL della risorsa che accede ai tuoi dati), specificare l'URL per l'applicazione Canvas. L'URL dell'applicazione Canvas segue il seguente formato: `https://<domain-id>.studio.<region>.sagemaker.aws/canvas/default`

   1. Copia la chiave e il segreto utente.

   1. Copia l'URL di autorizzazione e l'URL del token.

Per istruzioni più dettagliate sull'esecuzione delle attività precedenti nel cloud dei dati Salesforce, consulta[Importare dati da Salesforce Data Cloud](data-wrangler-import.md#data-wrangler-import-salesforce-data-cloud) nella documentazione di Data Wrangler per l'importazione di dati dal cloud dei dati Salesforce.

Dopo aver abilitato l'accesso da Salesforce Data Cloud e aver ottenuto le informazioni di connessione, devi creare un [Gestione dei segreti AWS](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)segreto per archiviare le informazioni e aggiungerle al tuo dominio o profilo utente Amazon SageMaker AI. Tieni presente che puoi aggiungere un segreto sia a un dominio che a un profilo utente, ma Canvas cerca prima i segreti nel profilo utente.

Per aggiungere un segreto al dominio o al profilo utente, procedi come descritto di seguito:

1. Vai alla [console Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker).

1. Nel riquadro di navigazione, scegli **Domini**.

1. Dall’elenco di **domini**, scegli il tuo dominio.

   1. Se aggiungi il segreto al dominio, procedi come descritto di seguito:

      1. Scegli il dominio.

      1. Nella pagina **Impostazioni del dominio**, seleziona la scheda **Impostazioni del dominio**.

      1. Scegli **Modifica**.

   1. Se aggiungi il segreto al tuo profilo utente, effettua le seguenti operazioni:

      1. Scegli il dominio dell’utente.

      1. Nella pagina **Impostazioni del dominio**, scegli il profilo utente.

      1. Nella pagina **Dettagli dell’utente** scegli **Modifica utente**.

1. Nel riquadro di navigazione, seleziona **Impostazioni Canvas**.

1. Per **OAuth le impostazioni**, scegli **Aggiungi OAuth configurazione**.

1. Per **Origine dati**, seleziona **Cloud dati Salesforce**.

1. Per **Configurazione del segreto**, seleziona **Crea un nuovo segreto**. In alternativa, se hai già creato un Gestione dei segreti AWS segreto con le tue credenziali, inserisci l'ARN per il segreto. Per creare un nuovo segreto, effettua le seguenti operazioni:

   1. Per **Provider di identità**, seleziona **SALESFORCE**.

   1. Per **Client ID**, **Client Secret**, **Authorization URL** e **Token URL**, inserisci tutte le informazioni raccolte dal cloud dei dati Salesforce nella procedura precedente.

1. Salva le impostazioni del dominio o del profilo utente.

Ora dovresti essere in grado di creare una connessione ai tuoi dati nel cloud dei dati Salesforce da Canvas.

## Configurazione per Snowflake OAuth
<a name="canvas-setting-up-oauth-snowflake"></a>

 Per configurare l'autenticazione per Snowflake, Canvas supporta gestori dell'identità che puoi utilizzare anziché chiedere agli utenti di inserire direttamente le proprie credenziali in Canvas.

Di seguito sono riportati i collegamenti alla documentazione Snowflake per i gestori dell'identità supportati da Canvas:
+ [Azure AD](https://docs.snowflake.com/en/user-guide/oauth-azure.html)
+ [Okta](https://docs.snowflake.com/en/user-guide/oauth-okta.html)
+ [Ping Federate](https://docs.snowflake.com/en/user-guide/oauth-pingfed.html)

La procedura riportata di seguito illustra il processo generale. Per istruzioni più dettagliate sull'esecuzione di queste fasi, è possibile fare riferimento alla sezione [Configurazione di Snowflake Access OAuth](data-wrangler-import.md#data-wrangler-snowflake-oauth-setup) della documentazione di Data Wrangler per l'importazione di dati da Snowflake.

 OAuth Per configurare Snowflake, procedi come segue:

1. Registra Canvas come applicazione con il gestore dell'identità. Ciò richiede la specificazione di un URL di reindirizzamento a Canvas, che dovrebbe seguire questo formato: `https://<domain-id>.studio.<region>.sagemaker.aws/canvas/default`

1. All'interno del provider di identità, crea un server o un'API che invii OAuth token a Canvas in modo che Canvas possa accedere a Snowflake. Quando configurate il server, utilizzate il codice di autorizzazione e i tipi di concessione del token di aggiornamento, specificate la durata del token di accesso e impostate una policy del token di aggiornamento. Inoltre, all'interno dell'integrazione di OAuth sicurezza esterna per Snowflake, abilita. `external_oauth_any_role_mode`

1. Ottieni le seguenti informazioni dal gestore dell'identità: URL del token, URL di autorizzazione, ID client, segreto del cliente. Per Azure AD, recupera anche le credenziali dell'ambito. OAuth 

1. Archivia le informazioni recuperate nel passaggio precedente in un luogo segreto. Gestione dei segreti AWS 

   1. Per Okta e Ping Federate, il segreto dovrebbe avere il seguente formato:

      ```
      {"token_url":"https://identityprovider.com/oauth2/example-portion-of-URL-path/v2/token",
      "client_id":"example-client-id", "client_secret":"example-client-secret", "identity_provider":"OKTA"|"PING_FEDERATE",
      "authorization_url":"https://identityprovider.com/oauth2/example-portion-of-URL-path/v2/authorize"}
      ```

   1. Per Azure AD, il segreto deve includere anche le credenziali dell' OAuth ambito come campo. `datasource_oauth_scope`

Dopo aver configurato il provider di identità e il segreto, devi creare un [Gestione dei segreti AWS](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)segreto per archiviare le informazioni e aggiungerlo al tuo dominio o profilo utente Amazon SageMaker AI. Tieni presente che puoi aggiungere un segreto sia a un dominio che a un profilo utente, ma Canvas cerca prima i segreti nel profilo utente.

Per aggiungere un segreto al dominio o al profilo utente, procedi come descritto di seguito:

1. Vai alla [console Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker).

1. Nel riquadro di navigazione, scegli **Domini**.

1. Dall’elenco di **domini**, scegli il tuo dominio.

   1. Se aggiungi il segreto al dominio, procedi come descritto di seguito:

      1. Scegli il dominio.

      1. Nella pagina **Impostazioni del dominio**, seleziona la scheda **Impostazioni del dominio**.

      1. Scegli **Modifica**.

   1. Se aggiungi il segreto al tuo profilo utente, effettua le seguenti operazioni:

      1. Scegli il dominio dell’utente.

      1. Nella pagina **Impostazioni del dominio**, scegli il profilo utente.

      1. Nella pagina **Dettagli dell’utente** scegli **Modifica utente**.

1. Nel riquadro di navigazione, seleziona **Impostazioni Canvas**.

1. Per **OAuth le impostazioni**, scegli **Aggiungi OAuth configurazione**.

1. Per **Origine dati**, seleziona **Snowflake.**

1. Per **Configurazione del segreto**, seleziona **Crea un nuovo segreto**. In alternativa, se hai già creato un Gestione dei segreti AWS segreto con le tue credenziali, inserisci l'ARN del segreto. Per creare un nuovo segreto, effettua le seguenti operazioni:

   1. Per **Provider di identità**, seleziona **SNOWFLAKE**.

   1. Per **Client ID**, **Client secret**, **Authorization URL** e **Token URL**, inserisci tutte le informazioni raccolte dal gestore dell'identità nella procedura precedente.

1. Salva le impostazioni del dominio o del profilo utente.

Ora dovresti essere in grado di creare una connessione ai tuoi dati nel cloud dei dati Salesforce da Canvas.

# Assistenza dell’IA generativa per risolvere i problemi di ML in Canvas con Amazon Q Developer
<a name="canvas-q"></a>

Durante l'utilizzo di Amazon SageMaker Canvas, puoi chattare con Amazon Q Developer in linguaggio naturale per sfruttare l'intelligenza artificiale generativa e risolvere i problemi. Q Developer è un assistente che ti aiuta a tradurre gli obiettivi in attività di machine learning (ML) e descrive ogni fase del flusso di lavoro di ML. Q Developer aiuta gli utenti di Canvas a ridurre la quantità di tempo, impegno e competenze nel campo della data science necessaria per sfruttare il machine learning e prendere decisioni basate sui dati per le proprie organizzazioni. 

Conversando con Q Developer, puoi avviare azioni in Canvas come la preparazione dei dati, la creazione di un modello di ML, la generazione di previsioni e l’implementazione di un modello. Q Developer propone suggerimenti per le fasi successive e fornisce un contesto man mano che vengono completate le singole fasi. Inoltre, ti informa sui risultati. Ad esempio, se Canvas utilizza best practice per trasformare il tuo set di dati, Q Developer può elencare le trasformazioni utilizzate e perché sono state applicate.

Amazon Q Developer è disponibile in SageMaker Canvas senza costi aggiuntivi per gli utenti di Amazon Q Developer Pro Tier e Free Tier. Tuttavia, si applicano tariffe standard per risorse come l'istanza dell' SageMaker area di lavoro Canvas e tutte le risorse utilizzate per la creazione o la distribuzione di modelli. Per ulteriori informazioni sui prezzi, consulta i [prezzi di Amazon SageMaker Canvas](https://aws.amazon.com/sagemaker-ai/canvas/pricing/).

L’utilizzo di Amazon Q è concesso in licenza ai sensi della [licenza 0 del MIT](https://github.com/aws/mit-0) ed è soggetto alla [policy sull’IA responsabile AWS](https://aws.amazon.com/machine-learning/responsible-ai/policy/). Quando lo utilizzi al di fuori degli Stati Uniti, Q Developer elabora i dati in tutte le Regioni degli Stati Uniti. Per ulteriori informazioni, consulta [Cross region inference in Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/cross-region-inference.html).

**Nota**  
Amazon Q Developer in SageMaker Canvas non utilizza i contenuti degli utenti per migliorare il servizio, indipendentemente dal fatto che utilizzi l'abbonamento Free-tier o Pro-tier. Per scopi di telemetria del servizio, Q Developer potrebbe tenere traccia dell’utilizzo da parte dell’utente, ad esempio il numero di domande poste e se le raccomandazioni sono state accettate o rifiutate. Questi dati di telemetria non includono informazioni di identificazione personale come l’indirizzo IP.

## Come funziona
<a name="canvas-q-how-it-works"></a>

Amazon Q Developer è un assistente generativo basato sull'intelligenza artificiale disponibile in SageMaker Canvas che puoi interrogare utilizzando il linguaggio naturale. Q Developer propone suggerimenti per ogni fase del flusso di lavoro di machine learning, spiegando i concetti e fornendo opzioni e ulteriori dettagli in base alle esigenze. Puoi utilizzare Q Developer per ottenere assistenza con i casi d’uso di regressione, classificazione binaria e classificazione multiclasse.

Ad esempio, per prevedere il tasso di abbandono dei clienti, utilizza Q Developer per caricare un set di dati con le informazioni cronologiche sul tasso di abbandono dei clienti su Canvas. Q Developer suggerisce un tipo di modello di ML appropriato e le procedure per risolvere i problemi relativi ai set di dati, creare un modello e generare previsioni.

**Importante**  
Amazon Q Developer è destinato alle conversazioni sui problemi di apprendimento automatico all'interno di SageMaker Canvas. Guida gli utenti attraverso le azioni di Canvas e, facoltativamente, risponde a domande sui Servizi AWS. Q Developer elabora gli input del modello solo in lingua inglese. Per ulteriori informazioni su come utilizzare Q Developer, consulta [Funzionalità di Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/features.html) in *Guida per l’utente di Amazon Q Developer*.

## Regioni supportate
<a name="canvas-q-regions"></a>

Amazon Q Developer è disponibile all'interno di SageMaker Canvas nei seguenti modi Regioni AWS:
+ Stati Uniti orientali (Virginia settentrionale)
+ Stati Uniti orientali (Ohio)
+ Stati Uniti occidentali (Oregon)
+ Asia Pacifico (Mumbai)
+ Asia Pacifico (Seoul)
+ Asia Pacifico (Singapore)
+ Asia Pacifico (Sydney)
+ Asia Pacifico (Tokyo)
+ Europa (Francoforte)
+ Europa (Irlanda)
+ Europa (Parigi)

## Funzionalità di Amazon Q Developer disponibili in Canvas
<a name="canvas-q-capabilities"></a>

L’elenco seguente riepiloga le attività di Canvas per le quali Q Developer può fornire assistenza:
+ **Descrivi il tuo obiettivo**: Q Developer può suggerire un tipo di modello di ML e un approccio generale per risolvere il problema.
+ **Importa e analizza i set di dati**: indica a Q Developer dove è archiviato il set di dati o carica un file per salvarlo come set di dati Canvas. Richiedi a Q Developer di identificare eventuali problemi nel set di dati, come valori anomali o valori mancanti. Q Developer fornisce statistiche di riepilogo sul set di dati ed elenca gli eventuali problemi rilevati.

  Q Developer supporta le query sulle statistiche seguenti per le singole colonne:
  + Colonne numeriche: `number of valid values`, `feature type`, `mean`, `median`, `minimum`, `maximum`, `standard deviation`, `25th percentile`, `75th percentile`, `number of outliers`
  + Colonne categoriche: `number of missing values`, `number of valid values`, `feature type`, `most frequent`, `most frequent category`, `most frequent category count`, `least frequent`, `least frequent category`, `least frequent category count`, `categories`
+ **Risolvi i problemi relativi al set di dati**: richiedi a Q Developer di utilizzare le funzionalità di trasformazione dei dati di Canvas per creare una versione rivista del set di dati. Canvas crea un flusso di dati Data Wrangler e applica le trasformazioni in base alle best practice di data science. Per ulteriori informazioni, consulta [Preparazione dei dati](canvas-data-prep.md).

  Se desideri eseguire attività di analisi o preparazione dei dati più avanzate rispetto a quelle proposte da Q Developer, ti consigliamo di utilizzare l’interfaccia del flusso di dati di Data Wrangler.
+ **Addestra un modello**: Q Developer ti suggerisce il tipo di modello di ML consigliato per il tuo problema e propone una configurazione per la creazione del modello. Puoi utilizzare le impostazioni predefinite suggerite per eseguire una build rapida oppure modificare la configurazione ed eseguire una build standard. Al termine, chiedi a Q Developer di creare il tuo modello Canvas.

  Sono supportati tutti i tipi di modelli personalizzati. Per ulteriori informazioni sui tipi di modello e sulle build rapide e standard, consulta [Funzionamento dei modelli personalizzati](canvas-build-model.md).
+ **Valuta l’accuratezza del modello**: dopo aver creato un modello, Q Developer fornisce un riepilogo dei punteggi del modello in base a varie metriche. Queste metriche ti aiutano a determinare l’utilità e l’accuratezza del tuo modello. Q Developer può spiegare in dettaglio qualsiasi concetto o metrica.

  Per esaminare tutti i dettagli e le visualizzazioni, apri il modello dalla chat o dalla pagina **I miei modelli** di Canvas. Per ulteriori informazioni, consulta [Valutazione del modello](canvas-evaluate-model.md).
+ **Genera previsioni per i nuovi dati**: puoi caricare un nuovo set di dati e chiedere a Q Developer di aprire la funzionalità di previsione di Canvas. 

  Q Developer apre una nuova finestra nell’applicazione in cui puoi generare una singola previsione o previsioni in batch con un nuovo set di dati. Per ulteriori informazioni, consulta [Previsioni con modelli personalizzati](canvas-make-predictions.md).
+ **Implementa un modello**: chiedi a Q Developer di aiutarti a implementare il modello per la produzione con Canvas. Q Developer apre una nuova finestra in cui puoi configurare l’implementazione. 

  Quando hai finito, visualizza i dettagli dell’implementazione 1) nella scheda **Implementa** del modello sulla pagina **I miei modelli** di Canvas o 2) nella scheda **Implementazioni** della pagina **MLOps**. Per ulteriori informazioni, consulta [Distribuzione di modelli su un endpoint](canvas-deploy-model.md).

## Prerequisiti
<a name="canvas-q-prereqs"></a>

Per utilizzare Amazon Q Developer per creare modelli ML in SageMaker Canvas, completa i seguenti prerequisiti:

**Configurazione di un’applicazione Canvas**

Assicurati di aver configurato un’applicazione Canvas. Per informazioni su come configurare un’applicazione Canvas, consulta [Guida introduttiva all'utilizzo di Amazon SageMaker Canvas](canvas-getting-started.md).

**Concessione delle autorizzazioni per Q Developer**

Per accedere a Q Developer mentre usi Canvas, devi assegnare le autorizzazioni necessarie al ruolo AWS IAM utilizzato per il tuo dominio o profilo utente SageMaker AI. Per farlo, puoi utilizzare la console descritta in questa sezione. Se riscontri problemi di autorizzazione dovuti all'utilizzo del metodo della console, collega manualmente la policy AWS gestita [ AmazonSageMakerCanvasSMDataScienceAssistantAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasSMDataScienceAssistantAccess)al ruolo IAM.

Le autorizzazioni associate a livello di dominio si applicano a tutti i profili utente del dominio, a meno che non vengano concesse o revocate autorizzazioni individuali a livello del profilo utente.

------
#### [ SageMaker AI console method ]

Puoi concedere le autorizzazioni modificando il dominio SageMaker AI o le impostazioni del profilo utente.

Per concedere le autorizzazioni tramite le impostazioni del dominio nella console SageMaker AI, procedi come segue:

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni admin**, scegli **Domini**.

1. Dall’elenco di domini, scegli il tuo dominio.

1. Nella pagina **Dettagli del dominio**, seleziona la scheda **Configurazioni app**.

1. Nella sezione **Canvas**, scegli **Modifica**.

1. Nella pagina **Modifica le impostazioni di Canvas**, vai alla sezione **Amazon Q Developer** e procedi come descritto di seguito:

   1. **Attiva Abilita Amazon Q Developer in SageMaker Canvas per il machine learning in linguaggio naturale per** aggiungere le autorizzazioni per chattare con Q Developer in Canvas al ruolo di esecuzione del tuo dominio.

   1. (Facoltativo) **Attiva la chat per sviluppatori di Amazon Q per AWS domande generali** se desideri porre domande a Q Developer su vari argomenti Servizi AWS (ad esempio: descrivi come funziona Athena).
**Nota**  
Quando fai AWS domande generiche a Q Developer, le tue richieste vengono inoltrate attraverso gli Stati Uniti orientali (Virginia settentrionale). Regione AWS Per impedire l’instradamento dei dati attraverso la Regione degli Stati Uniti orientali (Virginia settentrionale), disattiva l’opzione **Abilita la chat di Amazon Q Developer per domande generali su AWS **.

------
#### [ Manual method ]

Allega la [ AmazonSageMakerCanvasSMDataScienceAssistantAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasSMDataScienceAssistantAccess)policy al ruolo AWS IAM utilizzato per il tuo dominio o profilo utente. Per ulteriori informazioni, consulta [Adding and removing IAM identity permissions](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) nella *Guida per l’utente di AWS IAM*.

------

**(Facoltativo) Configurazione dell’accesso a Q Developer dal VPC**

Se disponi di un VPC configurato senza accesso pubblico a Internet, puoi aggiungere un endpoint VPC per Q Developer. Per ulteriori informazioni, consulta [Configura Amazon SageMaker Canvas in un VPC senza accesso a Internet](canvas-vpc.md).

## Nozioni di base
<a name="canvas-q-get-started"></a>

Per utilizzare Amazon Q Developer per creare modelli ML in SageMaker Canvas, procedi come segue:

1. Apri l'applicazione SageMaker Canvas.

1. Nel riquadro di navigazione a sinistra, scegli **Amazon Q**.

1. Scegli **Inizia una nuova conversazione** per aprire una nuova chat.

Quando avvii una nuova chat, Q Developer ti chiede di descrivere il problema o di fornire un set di dati.

![\[La formula di saluto di Q Developer all’inizio di una nuova chat.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/amazon-q-greeting.png)


Dopo aver importato i dati, puoi chiedere a Q Developer di fornirti statistiche di riepilogo sul set di dati oppure puoi porre domande su colonne specifiche. Per un elenco delle diverse statistiche supportate da Q Developer, consulta la sezione precedente [Funzionalità di Amazon Q Developer disponibili in Canvas](#canvas-q-capabilities). Lo screenshot seguente mostra un esempio di come chiedere le statistiche sul set di dati e la categoria più frequente in una colonna di categorie di prodotti.

![\[Finestra di chat in cui viene chiesto a Q Developer di fornire statistiche sul set di dati e sulle categorie più frequenti.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/amazon-q-dataset-statistics.png)


Q Developer tiene traccia di tutti gli artefatti Canvas importati o creati durante la conversazione, come set di dati e modelli trasformati. Puoi accedervi dalla chat o da altre schede dell’applicazione Canvas. Ad esempio, se Q Developer risolve problemi nel tuo set di dati, puoi accedere al nuovo set di dati trasformato dalle posizioni seguenti:
+ La barra laterale degli artefatti nell’interfaccia della chat di Q Developer
+ La pagina **Set di dati** di Canvas, dove puoi visualizzare sia i set di dati originali che quelli trasformati. Al set di dati trasformato viene aggiunta l’etichetta **Creato da Amazon Q**.
+ La pagina **Data Wrangler** di Canvas, in cui Q Developer crea un nuovo flusso di dati per il set di dati

Lo screenshot seguente mostra il set di dati originale e il set di dati trasformato nella barra laterale di una chat.

![\[Gli artefatti, ovvero un set di dati e un set di dati trasformato, visualizzati nella barra laterale di una chat di Q Developer.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/amazon-q-artifacts.png)


Quando i dati sono pronti, chiedi a Q Developer di aiutarti a creare un modello Canvas. Q Developer potrebbe chiederti di confermare alcuni campi e di rivedere la configurazione della build. Se utilizzi la configurazione della build predefinita, il modello viene creato con una build rapida. Se intendi personalizzare qualsiasi parte della configurazione della build, ad esempio selezionando gli algoritmi da utilizzare o modificando la metrica obiettivo, il modello viene creato con una build standard.

Lo screenshot seguente mostra come chiedere a Q Developer di avviare la creazione di un modello Canvas con pochi prompt. Questo esempio utilizza la configurazione predefinita per avviare una build rapida.

![\[Una conversazione con Q Developer in cui l’utente chiede di avviare la creazione di un modello Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/amazon-q-training-chat.png)


Dopo aver creato il modello, puoi eseguire ulteriori azioni utilizzando il linguaggio naturale nella chat o il menu della barra laterale degli artefatti. Ad esempio, puoi visualizzare i dettagli e le metriche del modello, generare previsioni o implementare il modello. Lo screenshot seguente mostra la barra laterale in cui puoi scegliere queste opzioni aggiuntive.

![\[Il menu di conversazione con tre puntini di Q Developer espanso, che mostra le opzioni per la visualizzazione dei dettagli, delle previsioni e dell’implementazione dei modelli.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/amazon-q-ellipsis-menu.png)


Puoi anche eseguire una qualsiasi di queste azioni accedendo alla pagina **I miei modelli** di Canvas e selezionando il modello. Nella pagina del modello puoi accedere alle schede **Analizza**, **Prevedi** e **Implementa** per, rispettivamente, visualizzare le metriche e le visualizzazioni del modello, generare previsioni e gestire le implementazioni.

# Registrazione delle conversazioni di Q Developer con AWS CloudTrail
<a name="canvas-q-cloudtrail"></a>

AWS CloudTrail è un servizio che registra le azioni intraprese da utenti, ruoli o Servizi AWS in Amazon SageMaker AI. CloudTrail acquisisce le chiamate API derivanti dalle tue interazioni con Amazon Q Developer (un assistente di intelligenza artificiale conversazionale) durante l'utilizzo di SageMaker Canvas (un'interfaccia ML senza codice). CloudTrail i dati mostrano i dettagli della richiesta, l'indirizzo IP del richiedente, chi ha effettuato la richiesta e quando.

Le tue interazioni con Q Developer vengono inviate come chiamate `SendConversation` API al servizio SageMaker AI Data Science Assistant, un servizio interno che Canvas sfrutta sul backend. L’origine degli eventi per le chiamate API `SendConversation` è `sagemaker-data-science-assistant.amazonaws.com`.

**Nota**  
Per motivi di privacy e sicurezza, il contenuto delle conversazioni è nascosto nei log e appare come `HIDDEN_DUE_TO_SECURITY_REASONS` negli elementi di richiesta e risposta.

Per saperne di più CloudTrail, consulta la Guida per l'[https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html). Per ulteriori informazioni sull' CloudTrail SageMaker intelligenza artificiale, consulta[Registrazione delle chiamate API Amazon SageMaker AI tramite AWS CloudTrail](logging-using-cloudtrail.md).

Nell’esempio seguente viene mostrata una voce del file di log per l’API `SendConversation`:

```
{
    "eventVersion":"1.10",
    "userIdentity": {
        "type":"AssumedRole",
        "principalId":"AROA123456789EXAMPLE:user-Isengard",
        "arn":"arn:aws:sts::111122223333:assumed-role/Admin/user",
        "accountId":"111122223333",
        "accessKeyId":"ASIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "sessionIssuer": {
                "type":"Role",
                "principalId":"AROA123456789EXAMPLE",
                "arn":"arn:aws:iam::111122223333:role/Admin",
                "accountId":"111122223333",
                "userName":"Admin"
            },
            "attributes": {
                "creationDate":"2024-11-11T22:04:37Z",
                "mfaAuthenticated":"false"
            }
        }
    },
    "eventTime":"2024-11-11T22:09:22Z",
    "eventSource":"sagemaker-data-science-assistant.amazonaws.com",
    "eventName":"SendConversation",
    "awsRegion":"us-west-2",
    "sourceIPAddress":"192.0.2.0",
    "userAgent":"Boto3/1.33.13 md/Botocore#1.33.13 ua/2.0 os/linux#5.10.227-198.884.amzn2int.x86_64 md/arch#x86_64 lang/python#3.7.16 md/pyimpl#CPython cfg/retry-mode#legacy Botocore/1.33.13",
    "requestParameters": {
        "conversation": [
            {
                "utteranceId":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
                "utterance":"HIDDEN_DUE_TO_SECURITY_REASONS",
                "timestamp":"Feb 4, 2020, 7:46:29 AM",
                "utteranceType":"User"
            }
        ],
        "utteranceId":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"
    },
    "responseElements": {
        "responseCode":"CHAT_RESPONSE",
        "conversationId":"1234567890abcdef0",
        "response": {
            "chat": {
                "body":"HIDDEN_DUE_TO_SECURITY_REASONS"
            }
        }
    },
    "requestID":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
    "eventID":"a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
    "readOnly":false,
    "eventType":"AwsApiCall",
    "managementEvent":true,
    "recipientAccountId":"123456789012",
    "eventCategory":"Management",
    "tlsDetails": {
        "tlsVersion":"TLSv1.2",
        "cipherSuite":"ECDHE-RSA-AES128-GCM-SHA256",
        "clientProvidedHostHeader":"gamma.us-west-2.data-science-assistant.sagemaker.aws.dev"
    }
}
```

# Importazione dei dati
<a name="canvas-importing-data"></a>

Amazon SageMaker Canvas supporta l'importazione di dati tabulari, di immagini e documenti. Puoi importare set di dati dal tuo computer locale, da servizi Amazon come Amazon S3 e Amazon Redshift e da origini dati esterne. Quando importi set di dati da Amazon S3, i set di dati possono avere qualsiasi dimensione. Utilizza i set di dati che importi per creare modelli e fare previsioni per altri set di dati.

Ogni caso d'uso per il quale è possibile creare un modello personalizzato accetta diversi tipi di input. Ad esempio, se desideri creare un modello di classificazione delle immagini a etichetta singola, devi importare i dati di immagini. Per ulteriori informazioni sui diversi tipi di modello e sui dati che accettano, consulta [Funzionamento dei modelli personalizzati](canvas-build-model.md). Puoi importare dati e creare modelli personalizzati in SageMaker Canvas per i seguenti tipi di dati:
+ **Tabulare** (CSV, Parquet o tabelle)
  + Categoriale: utilizza i dati categoriali per creare modelli di previsione categoriali personalizzati per previsioni a 2 e 3 o più categorie.
  + Numerico: utilizza dati numerici per creare modelli di previsione numerici personalizzati.
  + Testo: utilizza i dati di testo per creare modelli di previsione testuale multicategoria personalizzati.
  + Serie temporali: utilizza i dati delle serie temporali per creare modelli di previsione di serie temporali personalizzati.
+ **Immagine** (JPG o PNG): utilizza i dati di immagini per creare modelli di previsione delle immagini personalizzati con etichetta singola.
+ **Documento** (PDF, JPG, PNG, TIFF): i dati del documento sono supportati solo per i Ready-to-use modelli SageMaker Canvas. Per ulteriori informazioni sui Ready-to-use modelli in grado di effettuare previsioni per i dati dei documenti, consulta. [Ready-to-use modelli](canvas-ready-to-use-models.md)

È possibile importare dati in Canvas dalle seguenti origini dati:
+ File locali sul tuo computer
+ Bucket Amazon S3
+ Cluster con provisioning Amazon Redshift (non Amazon Redshift serverless)
+ AWS Glue Data Catalog tramite Amazon Athena
+ Amazon Aurora
+ Amazon Relational Database Service (Amazon RDS)
+ Data Cloud di Salesforce
+ Snowflake
+ Databricks, SQLServer MariaDB e altri database popolari tramite connettori JDBC
+ Oltre 40 piattaforme SaaS esterne, come SAP OData

Per un elenco completo di origini dati da cui è possibile eseguire l’importazione, consulta la seguente tabella:


| Origine | Tipo | Tipi di dati supportati | 
| --- | --- | --- | 
| Caricamento dei file locali | Locale | Tabella, immagine, documento | 
| Amazon Aurora | Interno di Amazon | Tabulare | 
| Bucket Amazon S3 | Interno di Amazon | Tabella, immagine, documento | 
| Amazon RDS | Interno di Amazon | Tabulare | 
| Cluster con provisioning Amazon Redshift (non Redshift serverless) | Interno di Amazon | Tabulare | 
| AWS Glue Data Catalog (tramite Amazon Athena) | Interno di Amazon | Tabulare | 
| [Databricks](https://www.databricks.com/) | Esterno | Tabulare | 
| Snowflake | Esterno | Tabulare | 
| [Data Cloud di Salesforce](https://www.salesforce.com/products/genie/overview/) | Esterno | Tabulare | 
| SQLServer | Esterno | Tabulare | 
| MySQL | Esterno | Tabulare | 
| PostgreSQL | Esterno | Tabulare | 
| MariaDB | Esterno | Tabulare | 
| [Amplitude](https://docs.aws.amazon.com/appflow/latest/userguide/amplitude.html) | Piattaforma SaaS esterna | Tabulare | 
| [CircleCI](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-circleci.html) | Piattaforma SaaS esterna | Tabulare | 
| [DocuSign Monitor (Monitoraggio)](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-docusign-monitor.html) | Piattaforma SaaS esterna | Tabulare | 
| [Domo](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-domo.html) | Piattaforma SaaS esterna | Tabulare | 
| [Datadog](https://docs.aws.amazon.com/appflow/latest/userguide/datadog.html) | Piattaforma SaaS esterna | Tabulare | 
| [Dynatrace](https://docs.aws.amazon.com/appflow/latest/userguide/dynatrace.html) | Piattaforma SaaS esterna | Tabulare | 
| [Annunci su Facebook](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-facebook-ads.html) | Piattaforma SaaS esterna | Tabulare | 
| [Approfondimenti sulla pagina Facebook](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-facebook-page-insights.html) | Piattaforma SaaS esterna | Tabulare | 
| [Annunci Google](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-google-ads.html) | Piattaforma SaaS esterna | Tabulare | 
| [Google Analytics 4](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-google-analytics-4.html) | Piattaforma SaaS esterna | Tabulare | 
| [Console di ricerca Google](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-google-search-console.html) | Piattaforma SaaS esterna | Tabulare | 
| [GitHub](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-github.html) | Piattaforma SaaS esterna | Tabulare | 
| [GitLab](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-gitlab.html) | Piattaforma SaaS esterna | Tabulare | 
| [Infor Nexus](https://docs.aws.amazon.com/appflow/latest/userguide/infor-nexus.html) | Piattaforma SaaS esterna | Tabulare | 
| [Annunci su Instagram](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-instagram-ads.html) | Piattaforma SaaS esterna | Tabulare | 
| [Jira Cloud](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-jira-cloud.html) | Piattaforma SaaS esterna | Tabulare | 
| [LinkedIn Annunci](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-linkedin-ads.html) | Piattaforma SaaS esterna | Tabulare | 
| [LinkedIn Annunci](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-linkedin-ads.html) | Piattaforma SaaS esterna | Tabulare | 
| [Mailchimp](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-mailchimp.html) | Piattaforma SaaS esterna | Tabulare | 
| [Marketo](https://docs.aws.amazon.com/appflow/latest/userguide/marketo.html) | Piattaforma SaaS esterna | Tabulare | 
| [Microsoft Teams](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-microsoft-teams.html) | Piattaforma SaaS esterna | Tabulare | 
| [Mixpanel](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-mixpanel.html) | Piattaforma SaaS esterna | Tabulare | 
| [Okta](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-okta.html) | Piattaforma SaaS esterna | Tabulare | 
| [Salesforce](https://docs.aws.amazon.com/appflow/latest/userguide/salesforce.html) | Piattaforma SaaS esterna | Tabulare | 
| [Salesforce Marketing Cloud](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-salesforce-marketing-cloud.html) | Piattaforma SaaS esterna | Tabulare | 
| [Salesforce Pardot](https://docs.aws.amazon.com/appflow/latest/userguide/pardot.html) | Piattaforma SaaS esterna | Tabulare | 
| [SAP OData](https://docs.aws.amazon.com/appflow/latest/userguide/sapodata.html) | Piattaforma SaaS esterna | Tabulare | 
| [SendGrid](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-sendgrid.html) | Piattaforma SaaS esterna | Tabulare | 
| [ServiceNow](https://docs.aws.amazon.com/appflow/latest/userguide/servicenow.html) | Piattaforma SaaS esterna | Tabulare | 
| [Singular](https://docs.aws.amazon.com/appflow/latest/userguide/singular.html) | Piattaforma SaaS esterna | Tabulare | 
| [Slack](https://docs.aws.amazon.com/appflow/latest/userguide/slack.html) | Piattaforma SaaS esterna | Tabulare | 
| [Stripe](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-stripe.html) | Piattaforma SaaS esterna | Tabulare | 
| [Trend Micro](https://docs.aws.amazon.com/appflow/latest/userguide/trend-micro.html) | Piattaforma SaaS esterna | Tabulare | 
| [Typeform](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-typeform.html) | Piattaforma SaaS esterna | Tabulare | 
| [Veeva](https://docs.aws.amazon.com/appflow/latest/userguide/veeva.html) | Piattaforma SaaS esterna | Tabulare | 
| [Zendesk](https://docs.aws.amazon.com/appflow/latest/userguide/zendesk.html) | Piattaforma SaaS esterna | Tabulare | 
| [Chat Zendesk](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-zendesk-chat.html) | Piattaforma SaaS esterna | Tabulare | 
| [Zendesk Sell](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-zendesk-sell.html) | Piattaforma SaaS esterna | Tabulare | 
| [Zendesk Sunshine](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-zendesk-sunshine.html) | Piattaforma SaaS esterna | Tabulare | 
| [Riunioni Zoom](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-zoom.html) | Piattaforma SaaS esterna | Tabulare | 

Per istruzioni su come importare dati e informazioni sui requisiti dei dati di input, ad esempio la dimensione massima del file per le immagini, consulta [Creazione di un set di dati](canvas-import-dataset.md).

Canvas fornisce anche diversi set di dati di esempio nell'applicazione per aiutarti a iniziare. [Per saperne di più sui set di dati di esempio SageMaker forniti dall'intelligenza artificiale che puoi sperimentare, consulta Utilizzare set di dati di esempio.](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-sample-datasets.html)

Dopo aver importato un set di dati in Canvas, è possibile aggiornare il set di dati in qualsiasi momento. È possibile eseguire un aggiornamento manuale o impostare una pianificazione per gli aggiornamenti automatici dei set di dati. Per ulteriori informazioni, consulta [Aggiornamento di un set di dati](canvas-update-dataset.md).

Per ulteriori informazioni specifiche per ciascun tipo di set di dati, consulta le sezioni seguenti:

**Tabulare**

Per importare dati da un'origine dati esterna (come un database Snowflake o una piattaforma SaaS), è necessario autenticarsi e connettersi all'origine dati nell'applicazione Canvas. Per ulteriori informazioni, consulta [Connessione alle origini dati](canvas-connecting-external.md).

Se intendi importare set di dati di dimensioni superiori a 5 GB da Amazon S3 in Canvas, puoi ottenere un campionamento più rapido utilizzando Amazon Athena per eseguire query e campionamento dei dati da Amazon S3.

Dopo aver creato i set di dati in Canvas, puoi preparare e trasformare i dati con la funzionalità di preparazione dei dati di Data Wrangler. Puoi utilizzare Data Wrangler per gestire i valori mancanti, trasformare le funzionalità, eseguire il join di più set di dati in un unico set di dati e altro ancora. Per ulteriori informazioni, consulta [Preparazione dei dati](canvas-data-prep.md).

**Suggerimento**  
Finché i dati sono disposti in tabelle, è possibile unire set di dati provenienti da varie fonti, come Amazon Redshift, Amazon Athena o Snowflake.

**Immagine**

Per informazioni su come modificare un set di dati di immagini ed eseguire attività come l'assegnazione o la riassegnazione di etichette, l'aggiunta di immagini o l'eliminazione di immagini, consulta [Modifica di un set di dati di immagini](canvas-edit-image.md).

# Creazione di un set di dati
<a name="canvas-import-dataset"></a>

**Nota**  
Se stai importando set di dati di dimensioni superiori a 5 GB in Amazon SageMaker Canvas, ti consigliamo di utilizzare la [funzionalità Data Wrangler](canvas-data-prep.md) in Canvas per creare un flusso di dati. Data Wrangler supporta funzionalità avanzate di preparazione dei dati come il [join](canvas-transform.md#canvas-transform-join) e la [concatenazione](canvas-transform.md#canvas-transform-concatenate) dei dati. Dopo aver creato un flusso di dati, puoi esportarlo come set di dati Canvas e iniziare a creare un modello. Per ulteriori informazioni, consulta [Esportazione per creare un modello](canvas-processing-export-model.md).

Le seguenti sezioni descrivono come creare un set di dati in Amazon SageMaker Canvas. Per i modelli personalizzati, è possibile creare set di dati per dati tabulari e di immagini. Per Ready-to-use i modelli, puoi utilizzare set di dati tabulari e di immagini, nonché set di dati di documenti. Scegli il tuo flusso di lavoro in base alle informazioni seguenti:
+ Per dati categorici, numerici, testuali e di serie temporali, consulta [Importazione dei dati tabulari](#canvas-import-dataset-tabular).
+ Per i dati di immagini, consulta [Importazione dei dati di immagini](#canvas-import-dataset-image).
+ Per i dati dei documenti, consulta [Importazione di dati dei documenti](#canvas-ready-to-use-import-document).

Un set di dati può essere composto da più file. Ad esempio, potresti avere più file di dati di inventario in formato CSV. È possibile caricare questi file insieme come set di dati purché lo schema (o i nomi delle colonne e i tipi di dati) dei file corrispondano.

Canvas supporta anche la gestione di più versioni del tuo set di dati. Quando crei un set di dati, la prima versione è etichettata come `V1`. È possibile creare una nuova versione del tuo set di dati aggiornandolo. È possibile eseguire un aggiornamento manuale oppure impostare una pianificazione automatica per l'aggiornamento del set di dati con nuovi dati. Per ulteriori informazioni, consulta [Aggiornamento di un set di dati](canvas-update-dataset.md).

Quando importi i tuoi dati in Canvas, assicurati che soddisfino i requisiti di input nella tabella seguente. Le limitazioni sono specifiche del tipo di modello che stai creando.


| Limite | Modelli a 2 categorie, a 3 o più categorie, numerici e modelli di serie temporali | Modelli di previsione di testo | Modelli di previsione di immagini | \$1Dati del documento per i modelli Ready-to-use | 
| --- | --- | --- | --- | --- | 
| Tipi di file supportati |  CSV e Parquet (caricamento locale, Amazon S3 o database) JSON (database)  |  CSV e Parquet (caricamento locale, Amazon S3 o database) JSON (database)  | JPG, PNG | PDF, JPG, PNG, TIFF | 
| Dimensione massima dei file |  Caricamento locale: 5 GB Fonti di dati: PBs  |  Caricamento locale: 5 GB Fonti di dati: PBs  | 30 MB per immagine | 5 MB per documento | 
| Numero massimo di file che puoi caricare alla volta | 30 | 30 | N/D | N/D | 
| Numero massimo di colonne | 1.000 | 1.000 | N/D | N/D | 
| Numero massimo di voci (righe, immagini o documenti) per le **Creazioni rapide** | N/D | 7.500 righe | 5.000 immagini | N/D | 
| Numero massimo di voci (righe, immagini o documenti) per le **Creazioni standard** | N/D | 150.000 righe | 180.000 immagini | N/D | 
| Numero minimo di voci (righe) per le **Creazioni rapide** |  A 2 categorie: 500 righe A 3 o più categorie, numeriche, serie temporali: N/D  | N/D | N/D | N/D | 
| Numero minimo di voci (righe, immagini o documenti) per le **Creazioni standard** | 250 righe | 50 righe | 50 immagini | N/D | 
|  Numero minimo di voci (righe o immagini) per etichetta | N/D | 25 righe | 25 righe | N/D | 
| Numero minimo di etichette |  A 2 categorie: 2 A 3 o più categorie: 3 Numerico, serie temporali: N/D  | 2 | 2 | N/D | 
|  Dimensione minima del campione per il campionamento casuale | 500 | N/D | N/D | N/D | 
|  Dimensione massima del campione per il campionamento casuale | 200.000 | N/D | N/D | N/D | 
| Numero massimo di etichette |  A 2 categorie: 2 A 3 o più categorie, numeriche, serie temporali: N/D  | 1000 | 1000 | N/D | 

\$1I dati del documento sono attualmente supportati solo per [Ready-to-use i modelli](canvas-ready-to-use-models.md) che accettano i dati del documento. Non è possibile creare un modello personalizzato con i dati del documento.

Si noti inoltre che sono valide le seguenti limitazioni:
+ Quando importi dati da un bucket Amazon S3, verifica che il nome del bucket Amazon S3 non contenga un `.`. Se il nome del bucket contiene un `.`, potresti riscontrare errori quando cerchi di importare i dati in Canvas.
+ Per i dati tabulari, Canvas non consente la selezione di file con estensioni diverse da .csv, .parquet, .parq e .pqt sia per il caricamento locale che per l'importazione da Amazon S3. I file CSV possono utilizzare qualsiasi delimitazione generale o personalizzata e non devono contenere caratteri di nuova riga, tranne quando indicano effettivamente una nuova riga.
+ Per i dati tabulari che utilizzano i file Parquet, tieni presente quanto segue:
  + I file Parquet non possono includere tipi complessi come mappe ed elenchi.
  + I nomi delle colonne dei file Parquet non possono contenere spazi.
  + Se si utilizza la compressione, i file Parquet devono utilizzare tipi di compressione gzip o snappy. Per ulteriori informazioni sui tipi di compressione precedenti, consulta la [documentazione di gzip](https://www.gzip.org/) e la [documentazione di snappy](https://github.com/google/snappy).
+ Per quanto riguarda i dati di immagini, se hai immagini senza etichetta, devi etichettarle prima di creare il modello. Per informazioni su come assegnare etichette alle immagini all'interno dell'applicazione Canvas, consulta [Modifica di un set di dati di immagini](canvas-edit-image.md).
+ Se si impostano aggiornamenti automatici dei set di dati o configurazioni automatiche di previsione in batch, è possibile creare solo un totale di 20 configurazioni nell'applicazione Canvas. Per ulteriori informazioni, consulta [Come gestire le automazioni](canvas-manage-automations.md).

Dopo aver importato un set di dati, è possibile visualizzarli nella pagina **Set di dati** in qualsiasi momento.

## Importazione dei dati tabulari
<a name="canvas-import-dataset-tabular"></a>

Con i set di dati tabulari, è possibile creare modelli di previsione categoriale, numerica, di previsione di serie temporali e di previsione testuale. Esamina la tabella delle limitazioni nella sezione precedente **Importazione di un set di dati** per assicurarti che il set di dati di immagini soddisfi i requisiti per i dati tabulari.

Attieniti alla procedura seguente per importare un set di dati tabulare in Canvas:

1. Apri l'applicazione SageMaker Canvas.

1. Nel pannello di navigazione a sinistra, scegli **Set di dati**.

1. Scegli **Import data** (Importa dati).

1. Dal menu a discesa, scegli **Tabulare**.

1. Nella finestra di dialogo popup, nel campo **Nome set di dati**, inserisci un nome per il set di dati e scegli **Crea**.

1. Nella pagina **Crea set di dati tabulare**, apri il menu a discesa **Origine dati**.

1. Seleziona l'origine dati:
   + Per caricare file dal computer, seleziona **Caricamento locale**.
   + Per importare dati da un'altra origine, ad esempio un bucket Amazon S3 o un database Snowflake, cerca la tua origine dati nella barra **Cerca origine dati**. Quindi scegli il riquadro per l’origine dati desiderata.
**Nota**  
È possibile importare dati solo dai riquadri che hanno una connessione attiva. Se desideri connetterti a un'origine dati che non è disponibile per te, contatta l'amministratore. Se sei un amministratore, consulta [Connessione alle origini dati](canvas-connecting-external.md).

   Il seguente screenshot mostra il menu a discesa **Origine dati**.  
![\[Screenshot che mostra il menu a discesa Origine dati e la ricerca di una origine dati nella barra di ricerca.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/import-data-choose-source.png)

1. (Facoltativo) Se ti connetti a un database Amazon Redshift o Snowflake per la prima volta, viene visualizzata una finestra di dialogo per creare una connessione. Compila la finestra di dialogo con le tue credenziali e scegli **Crea connessione**. Se hai già una connessione, scegli la tua.

1. Dall’origine dati, seleziona i file da importare. Per il caricamento e l'importazione locali da Amazon S3, è possibile selezionare i file. Solo per Amazon S3, hai anche la possibilità di inserire direttamente l’URI, l’alias o l’ARN S3 del tuo bucket o punto di accesso S3 nel campo **Inserisci endpoint S3**, quindi scegliere i file da importare. Per le fonti del database, puoi visualizzare le tabelle di drag-and-drop dati dal riquadro di navigazione a sinistra.

1. (Facoltativo) Per le origini dati tabulari che supportano le query SQL (come Amazon Redshift, Amazon Athena o Snowflake), puoi scegliere **Modifica in SQL** per creare query SQL prima di importarle.

   Il seguente screenshot mostra la visualizzazione **Modifica SQL** per un'origine dati Amazon Athena.  
![\[Screenshot che mostra una query SQL nella vista Modifica SQL per i dati di Amazon Athena.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/import-data-edit-sql.png)

1. Scegli **Anteprima set di dati** per visualizzare l’anteprima del set di dati prima dell’importazione.

1. In **Impostazioni di importazione**, inserisci un valore in **Nome del set di dati** o utilizza il nome del set di dati predefinito.

1. (Facoltativo) Per i dati importati da Amazon S3, vengono visualizzate le impostazioni **Avanzate** e puoi compilare i seguenti campi:

   1. Attiva l’opzione **Utilizza la prima riga come intestazione** se intendi utilizzare la prima riga del set di dati per i nomi delle colonne. Se hai selezionato più file, l’impostazione si applica a ogni file.

   1. Se stai importando un file CSV, nell’elenco a discesa **Codifica file (CSV)** seleziona la codifica del file del set di dati. `UTF-8` è l’impostazione predefinita.

   1. Nell’elenco a discesa **Delimitatore**, seleziona il delimitatore che separa ogni cella dei tuoi dati. Il delimitatore predefinito è `,`. Puoi anche specificare un delimitatore personalizzato.

   1. Seleziona **Rilevamento di più righe** se desideri che Canvas analizzi manualmente l’intero set di dati alla ricerca di celle con più righe. Per impostazione predefinita, questa opzione non è selezionata e Canvas determina se utilizzare o meno il supporto di più righe prelevando un campione dei tuoi dati. Tuttavia, Canvas potrebbe non rilevare alcuna cella di più righe nel campione. Se sono presenti celle di più righe, ti consigliamo di selezionare l’opzione **Rilevamento di più righe** per forzare Canvas a verificare la presenza di tali celle nell’intero set di dati.

1. Quando è tutto pronto per importare i dati, seleziona **Crea set di dati**.

Durante l'importazione del set di dati in Canvas, è possibile vedere i tuoi set di dati elencati nella pagina **Set di dati.** In questa pagina, è possibile [Visualizzazione dei dettagli dei set di dati](#canvas-view-dataset-details).

Quando lo **Stato** dei tuoi set di dati si presenta come `Ready`, Canvas ha importato correttamente i dati ed è possibile procedere con la [creazione di un modello.](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html)

Se disponi di una connessione a un'origine dati, ad esempio un database Amazon Redshift o un connettore SaaS, è possibile tornare a quella connessione. Per Amazon Redshift e Snowflake, è possibile aggiungere un'altra connessione creando un altro set di dati, tornando alla pagina **Importa dati** e scegliendo il riquadro **Origine dati** per quella connessione. Dal menu a discesa, è possibile aprire la connessione precedente o scegliere **Aggiungi connessione.**

**Nota**  
Per le piattaforme SaaS, è possibile avere solo una connessione per origine dati.

## Importazione dei dati di immagini
<a name="canvas-import-dataset-image"></a>

Con i set di dati di immagini, è possibile creare modelli personalizzati di previsione delle immagini con etichetta singola, che prevedono l'etichetta di un'immagine. Esamina la tabella delle limitazioni nella sezione precedente **Importa un set di dati** per assicurarti che il set di dati di immagini soddisfi i requisiti per gli stessi.

**Nota**  
È possibile importare set di dati di immagini solo dal caricamento di file locali o da un bucket Amazon S3 Inoltre, per i set di dati di immagini, devi avere almeno 25 immagini per etichetta.

Utilizza la procedura seguente per importare un set di dati di immagini in Canvas:

1. Apri l'applicazione SageMaker Canvas.

1. Nel pannello di navigazione a sinistra, scegli **Set di dati**.

1. Scegli **Import data** (Importa dati).

1. Dal menu a discesa, scegli **Immagine**.

1. Nella finestra di dialogo popup, nel campo **Nome set di dati**, inserisci un nome per il set di dati e scegli **Crea**.

1. Nella pagina **Importa**, apri il menu a discesa **Origine dati**.

1. Scegli l'origine dati. Per caricare file dal computer, seleziona **Caricamento locale**. Per importare file da Amazon S3, seleziona **AmazonS3**.

1. Dal computer o dal bucket Amazon S3, seleziona le immagini o le cartelle di immagini che desideri caricare.

1. Quando è tutto pronto per importare i dati, seleziona **Importa dati**.

Durante l'importazione del set di dati in Canvas, è possibile vedere i tuoi set di dati elencati nella pagina **Set di dati.** In questa pagina, è possibile [Visualizzazione dei dettagli dei set di dati](#canvas-view-dataset-details).

Quando lo **Stato** dei tuoi set di dati si presenta come `Ready`, Canvas ha importato correttamente i dati ed è possibile procedere con la [creazione di un modello](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html).

Durante la creazione del modello, è possibile modificare il set di dati di immagini e assegnare o riassegnare etichette, aggiungere immagini o eliminare immagini dal set di dati. Per ulteriori informazioni su come modificare il set di dati di immagini, consulta [Modifica di un set di dati di immagini](canvas-edit-image.md).

## Importazione di dati dei documenti
<a name="canvas-ready-to-use-import-document"></a>

I Ready-to-use modelli per l'analisi delle spese, l'analisi dei documenti di identità, l'analisi dei documenti e le interrogazioni sui documenti supportano i dati dei documenti. Non è possibile creare un modello personalizzato con i dati del documento.

Con i set di dati documentali, è possibile generare previsioni per l'analisi delle spese, l'analisi dei documenti di identità, l'analisi dei documenti e i modelli di interrogazione dei documenti. Ready-to-use Consulta la tabella delle limitazioni nella sezione [Creazione di un set di dati](#canvas-import-dataset) per assicurarti che il set di dati di documenti soddisfi i requisiti per gli stessi.

**Nota**  
È possibile importare set di dati di immagini solo dal caricamento di file locali o da un bucket Amazon S3.

Attieniti alla procedura seguente per importare un set di dati di documenti in Canvas:

1. Apri l'applicazione Canvas. SageMaker 

1. Nel pannello di navigazione a sinistra, scegli **Set di dati**.

1. Scegli **Import data** (Importa dati).

1. Dal menu a discesa scegli **Documento**.

1. Nella finestra di dialogo popup, nel campo **Nome set di dati**, inserisci un nome per il set di dati e seleziona **Crea**.

1. Nella pagina **Importa**, apri il menu a discesa **Origine dati**.

1. Scegli l'origine dati. Per caricare file dal computer, seleziona **Caricamento locale**. Per importare file da Amazon S3, seleziona **AmazonS3**.

1. Dal computer o dal bucket Amazon S3, seleziona i file di documento che desideri caricare.

1. Quando è tutto pronto per importare i dati, seleziona **Importa dati**.

Durante l'importazione del set di dati in Canvas, è possibile vedere i tuoi set di dati elencati nella pagina **Set di dati.** In questa pagina, è possibile [Visualizzazione dei dettagli dei set di dati](#canvas-view-dataset-details).

Quando lo **Stato** dei tuoi set di dati si presenta come `Ready`, Canvas ha importato i dati con successo.

Nella pagina **Set di dati**, è possibile scegliere il tuo set di dati per visualizzarne l'anteprima, che mostrerà fino ai primi 100 documenti.

## Visualizzazione dei dettagli dei set di dati
<a name="canvas-view-dataset-details"></a>



Per ciascuno dei tuoi set di dati, è possibile visualizzare tutti i file in un set di dati, la cronologia delle versioni del set di dati e qualsiasi configurazione di aggiornamento automatico per il set di dati. Dalla pagina **Set di dati**, puoi anche avviare azioni come [Aggiornamento di un set di dati](canvas-update-dataset.md) o [Funzionamento dei modelli personalizzati](canvas-build-model.md).

Per visualizzare i dettagli di un set di dati, effettua le seguenti operazioni:

1. Apri l'applicazione SageMaker Canvas.

1. Nel pannello di navigazione a sinistra, scegli **Set di dati**.

1. Dall'elenco dei set di dati, scegli il tuo set di dati.

Nella scheda **Dati**, è possibile vedere un'anteprima dei tuoi dati. Se scegli **Dettagli dei set di dati**, è possibile visualizzare tutti i file che fanno parte del tuo set di dati. Scegli un file per visualizzare solo i dati di quel file nell'anteprima. Per i set di dati di immagini, l'anteprima mostra solo le prime 100 immagini del tuo set di dati.

Nella scheda **Cronologia delle versioni**, è possibile visualizzare un elenco di tutte le versioni del tuo set di dati. Ogni volta che aggiorni un set di dati viene creata una nuova versione. Per scoprire di più sull'aggiornamento di un set di dati, consulta [Aggiornamento di un set di dati](canvas-update-dataset.md). Il seguente screenshot mostra la scheda **Cronologia delle versioni** nell'applicazione Canvas.

![\[Screenshot della scheda Cronologia delle versioni di un set di dati, con un elenco delle versioni del set di dati.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-version-history.png)


Nella scheda **Aggiornamenti automatici**, è possibile abilitare gli aggiornamenti automatici per il set di dati e impostare una configurazione per aggiornare il set di dati a intervalli regolari. Per scoprire di più sulla configurazione degli aggiornamenti automatici per i set di dati, consulta [Configurazione degli aggiornamenti automatici per un set di dati](canvas-update-dataset-auto.md). Il seguente screenshot mostra la scheda **Aggiornamenti automatici** con gli aggiornamenti automatici attivati e un elenco dei processi di aggiornamento automatico che sono stati eseguiti sul set di dati.

![\[Scheda Aggiornamenti automatici del set di dati che mostra gli aggiornamenti automatici attivati e un elenco di processi di aggiornamento automatico.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-auto-updates.png)


# Aggiornamento di un set di dati
<a name="canvas-update-dataset"></a>

Dopo aver importato il set di dati iniziale in Amazon SageMaker Canvas, potresti avere altri dati da aggiungere al tuo set di dati. Ad esempio, potresti ricevere dati di inventario alla fine di ogni settimana che desideri aggiungere al tuo set di dati. Invece di importare i dati più volte, è possibile aggiornare il set di dati esistente e aggiungere o rimuovere file da esso.

**Nota**  
È possibile aggiornare solo i set di dati che hai importato tramite caricamento locale o Amazon S3.

È possibile aggiornare il set di dati manualmente o automaticamente. Per ulteriori informazioni sugli aggiornamenti automatici per i set di dati, consulta [Configurazione degli aggiornamenti automatici per un set di dati](canvas-update-dataset-auto.md).

Ogni volta che si aggiorna il set di dati, Canvas crea una nuova versione del set di dati. È possibile utilizzare solo la versione più recente del tuo set di dati per creare un modello o generare previsioni. Per ulteriori informazioni sulla visualizzazione della cronologia delle versioni del tuo set di dati, consulta [Visualizzazione dei dettagli dei set di dati](canvas-import-dataset.md#canvas-view-dataset-details).

Inoltre, puoi utilizzare gli aggiornamenti dei set di dati con previsioni automatiche in batch, che avviano un processo di previsione in batch ogni volta che aggiorni il set di dati. Per ulteriori informazioni, consulta [Previsioni in batch in Canvas SageMaker](canvas-make-predictions-batch.md).

La sezione seguente descrive come eseguire gli aggiornamenti manuali del set di dati.

## Aggiorna manualmente un set di dati
<a name="canvas-update-dataset-manual"></a>

Per eseguire un aggiornamento manuale, effettua le seguenti operazioni:

1. Apri l'applicazione Canvas. SageMaker 

1. Nel pannello di navigazione a sinistra, scegli **Set di dati**.

1. Dall'elenco dei set di dati, scegli il set di dati che desideri aggiornare.

1. Scegli il menu a discesa **Aggiorna set di dati** e scegli **Aggiornamento manuale**. Si verrà indirizzati verso il flusso di lavoro di importazione dati.

1. Dal menu a discesa **Origine dati**, scegli **Caricamento locale** o **Amazon S3**.

1. La pagina mostra un'anteprima dei tuoi dati. Da qui, è possibile aggiungere o rimuovere file dal set di dati. Se stai importando dati tabulari, lo schema dei nuovi file (nomi colonne e tipi di dati) deve corrispondere allo schema dei file esistenti. Inoltre, i nuovi file non devono superare la dimensione massima del set di dati o la dimensione del file. Per ulteriori informazioni su queste limitazioni, consulta [Import a dataset](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-import-dataset.html).
**Nota**  
Se aggiungi un file con lo stesso nome di un file esistente nel set di dati, il nuovo file sovrascrive la vecchia versione del file.

1. Quando sei pronto per salvare le modifiche, scegli **Aggiorna set di dati**.

Ora dovresti avere una nuova versione del tuo set di dati.

Nella pagina **Set di dati**, è possibile scegliere la scheda **Cronologia delle versioni** per vedere tutte le versioni del tuo set di dati e la cronologia degli aggiornamenti manuali e automatici che hai effettuato.

# Configurazione degli aggiornamenti automatici per un set di dati
<a name="canvas-update-dataset-auto"></a>

Dopo aver importato il set di dati iniziale in Amazon SageMaker Canvas, potresti avere altri dati da aggiungere al tuo set di dati. Ad esempio, potresti ricevere dati di inventario alla fine di ogni settimana che desideri aggiungere al tuo set di dati. Invece di importare i dati più volte, è possibile aggiornare il set di dati esistente e aggiungere o rimuovere file da esso.

**Nota**  
È possibile aggiornare solo i set di dati che hai importato tramite caricamento locale o Amazon S3.

Con gli aggiornamenti automatici del set di dati, specifichi una posizione in cui Canvas controlla i file con una frequenza programmata. Se si importano nuovi file durante l'aggiornamento, lo schema dei file deve corrispondere esattamente al set di dati esistente.

Ogni volta che si aggiorna il set di dati, Canvas crea una nuova versione del set di dati. È possibile utilizzare solo la versione più recente del tuo set di dati per creare un modello o generare previsioni. Per ulteriori informazioni sulla visualizzazione della cronologia delle versioni del tuo set di dati, consulta [Visualizzazione dei dettagli dei set di dati](canvas-import-dataset.md#canvas-view-dataset-details).

Inoltre, puoi utilizzare gli aggiornamenti dei set di dati con previsioni automatiche in batch, che avviano un processo di previsione in batch ogni volta che aggiorni il set di dati. Per ulteriori informazioni, consulta [Previsioni in batch in Canvas SageMaker](canvas-make-predictions-batch.md).

La sezione seguente descrive come eseguire gli aggiornamenti automatici del set di dati.

Un aggiornamento automatico si verifica quando si imposta una configurazione per Canvas per aggiornare il set di dati a una determinata frequenza. Ti consigliamo di utilizzare questa opzione se ricevi regolarmente nuovi file di dati che desideri aggiungere al tuo set di dati.

Quando imposti la configurazione dell'aggiornamento automatico, specifichi una posizione Amazon S3 in cui caricare i file e una frequenza con cui Canvas controlla la posizione e importa i file. Ogni istanza di Canvas che aggiorna il set di dati viene definita *processo*. Per ogni processo, Canvas importa tutti i file nella posizione Amazon S3. Se hai un file con lo stesso nome di file esistenti nel set di dati, Canvas sovrascrive i vecchi file con i nuovi.

Per gli aggiornamenti automatici dei set di dati, Canvas non esegue la convalida dello schema. Se lo schema dei file importati durante un aggiornamento automatico non corrisponde allo schema dei file esistenti o supera i limiti di dimensione (consulta [Import a dataset](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-import-dataset.html) per una tabella delle limitazioni delle dimensioni dei file), si verificheranno errori durante l'esecuzione dei processi.

**Nota**  
È possibile impostare solo un massimo di 20 configurazioni automatiche nell'applicazione Canvas. Inoltre, Canvas esegue aggiornamenti automatici solo quando sei connesso all'applicazione Canvas. Se esci dall'applicazione Canvas, gli aggiornamenti automatici vengono sospesi fino a quando non effettui nuovamente l'accesso.

Per configurare gli aggiornamenti automatici per il set di dati, effettua le seguenti operazioni:

1. Apri l'applicazione Canvas. SageMaker 

1. Nel pannello di navigazione a sinistra, scegli **Set di dati**.

1. Dall'elenco dei set di dati, scegli il set di dati che desideri aggiornare.

1. Scegli il menu a discesa **Aggiorna set di dati** e scegli **Aggiornamento manuale.** Verrai reindirizzato alla scheda **Aggiornamenti automatici** del set di dati.

1. Attiva l'opzione **Aggiornamento automatico abilitato**.

1. Per **Specifica un'origine dati**, inserisci il percorso Amazon S3 di una cartella in cui prevedi di caricare regolarmente i file.

1. Per **Scegli una frequenza**, seleziona **Oraria**, **Settimanale** o **Giornaliera**.

1. Per **Specifica un'ora di inizio**, utilizza il calendario e il selettore dell'ora per selezionare quando si desidera avviare il primo processo di aggiornamento automatico.

1. Quando si è pronti per creare la configurazione di aggiornamento automatico, scegliere **Salva**.

Canvas avvia il primo processo della cadenza di aggiornamento automatico all'ora di inizio specificata.

# Visualizza i processi di aggiornamento automatico dei set di dati
<a name="canvas-update-dataset-auto-view"></a>

Per visualizzare la cronologia dei lavori per gli aggiornamenti automatici dei set di dati in Amazon SageMaker Canvas, nella pagina dei dettagli del set di dati, scegli la scheda **Aggiornamenti automatici**.

Ciascun aggiornamento automatico di un set di dati viene visualizzato come un processo nella scheda **Aggiornamenti automatici** nella sezione **Cronologia del processo**. Per ogni processo, vedrai:
+ **Processo creato**: il timestamp di quando Canvas ha iniziato ad aggiornare il set di dati.
+ **File**: il numero di file nel set di dati.
+ **Celle (colonne x righe)**: il numero di colonne e righe nel set di dati.
+ **Stato**: lo stato del set di dati dopo l'aggiornamento. Se il processo è riuscito, lo stato è **Pronto**. Se il processo non è riuscito per qualsiasi motivo, lo stato è **Non riuscito** ed è possibile passare il mouse sullo stato per ulteriori dettagli.

# Modifica della configurazione di aggiornamento automatico del set di dati
<a name="canvas-update-dataset-auto-edit"></a>

Potresti voler apportare modifiche alla configurazione dell'aggiornamento automatico per un set di dati, ad esempio cambiando la frequenza degli aggiornamenti. Potresti anche voler disattivare la configurazione di aggiornamento automatico per sospendere gli aggiornamenti del tuo set di dati.

Per apportare modifiche alla configurazione di aggiornamento automatico per un set di dati, vai alla scheda **Aggiornamenti automatici** del set di dati e scegli **Modifica**.

Per sospendere gli aggiornamenti dei set di dati, disattiva la configurazione automatica. È possibile disattivare gli aggiornamenti automatici accedendo alla scheda **Aggiornamenti automatici** del tuo set di dati e disattivando l'opzione **Abilita aggiornamenti automatici**. Per riprendere la pianificazione degli aggiornamenti è possibile riattivare l'opzione in qualsiasi momento.

Per scoprire come eliminare la tua configurazione, consulta [Eliminazione di una configurazione automatica](canvas-manage-automations-delete.md).

# Connessione alle origini dati
<a name="canvas-connecting-external"></a>

In Amazon SageMaker Canvas, puoi importare dati da una posizione esterna al tuo file system locale tramite un AWS servizio, una piattaforma SaaS o altri database utilizzando connettori JDBC. Ad esempio, magari vuoi importare tabelle da un data warehouse in Amazon Redshift o importare i dati di Google Analytics.

Quando esegui il flusso di lavoro di **importazione** per importare dati nell'applicazione Canvas, è possibile scegliere l'origine dei dati e selezionare i dati che desideri importare. Per alcune origine dati, come Snowflake e Amazon Redshift, devi specificare le tue credenziali e aggiungere una connessione all'origine dati.

Il seguente screenshot mostra la barra degli strumenti dell'origine dati nel flusso di lavoro di **importazione**, con tutte le origini dati disponibili evidenziate. È possibile importare dati solo dalle origini dati disponibili. Contatta l'amministratore se l'origine dati desiderata non è disponibile.

![\[Il menu a discesa Origine dati nella pagina Importa dati in Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/data-sources.png)


Le seguenti sezioni forniscono informazioni su come stabilire connessioni a origini dati esterne e importare dati da esse. Consulta innanzitutto la sezione seguente per determinare quali autorizzazioni sono necessarie per importare dati dalla tua origine dati.

## Permissions
<a name="canvas-connecting-external-permissions"></a>

Esamina le seguenti informazioni per assicurarti di disporre delle autorizzazioni necessarie per importare dati dalla tua origine dati:
+ **Amazon S3:** è possibile importare dati da qualsiasi bucket Amazon S3, a condizione che l'utente disponga delle autorizzazioni di accesso al bucket. *Per ulteriori informazioni sull'utilizzo di AWS IAM per controllare l'accesso ai bucket Amazon S3, consulta [Gestione delle identità e degli accessi in Amazon S3 nella Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) User Guide.*
+ **Amazon Athena:** se disponi della [AmazonSageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html)policy e della [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)policy allegate al ruolo di esecuzione del tuo utente, puoi interrogarlo AWS Glue Data Catalog con Amazon Athena. Se fai parte di un gruppo di lavoro Athena, assicurati che l'utente Canvas disponga delle autorizzazioni per eseguire le query Athena sui dati. Per ulteriori informazioni, consulta la sezione [Using workgroups for running queries](https://docs.aws.amazon.com/athena/latest/ug/workgroups.html) nella *Guida per l'utente di Amazon Athena*.
+ **Amazon DocumentDB:** puoi importare dati da qualsiasi database Amazon DocumentDB se disponi delle credenziali (nome utente e password) per la connessione al database e delle autorizzazioni Canvas di base minime associate al ruolo di esecuzione dell’utente. Per ulteriori informazioni sulle autorizzazioni Canvas, consulta [Prerequisiti per la configurazione di Amazon Canvas SageMaker](canvas-getting-started.md#canvas-prerequisites).
+ **Amazon Redshift:** per concederti le autorizzazioni necessarie per importare dati da Amazon Redshift, consulta [Grant Users Permissions to Import Amazon Redshift Data](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-redshift-permissions.html).
+ **Amazon RDS:** se hai la [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)policy associata al ruolo di esecuzione del tuo utente, potrai accedere ai tuoi database Amazon RDS da Canvas.
+ **Piattaforme SaaS:** se disponi della [AmazonSageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html)policy e della [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)policy allegate al ruolo di esecuzione dell'utente, disponi delle autorizzazioni necessarie per importare dati dalle piattaforme SaaS. Per ulteriori informazioni sulla connessione a un connettore SaaS specifico, consulta [Usa connettori SaaS con Canvas](#canvas-connecting-external-appflow).
+ **Connettori JDBC:** per le fonti di database come Databricks, MySQL o MariaDB, devi abilitare l'autenticazione di nome utente e password sul database di origine prima di tentare la connessione da Canvas. Se ti connetti a un database Databricks, devi disporre dell'URL JDBC che contiene le credenziali necessarie.

## Connect a un database archiviato in AWS
<a name="canvas-connecting-internal-database"></a>

Potresti voler importare i dati che hai archiviato in AWS. Puoi importare dati da Amazon S3, utilizzare Amazon Athena per interrogare un database in AWS Glue Data Catalog, importare dati da [Amazon RDS o stabilire una connessione a un database Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) Redshift fornito (non Redshift Serverless).

È possibile creare più connessioni a Amazon Redshift. Per Amazon Athena, è possibile accedere a qualsiasi database che hai nel tuo [AWS Glue Data Catalog](https://docs.aws.amazon.com/prescriptive-guidance/latest/serverless-etl-aws-glue/aws-glue-data-catalog.html). Per Amazon S3, è possibile importare dati da un bucket purché si disponga delle autorizzazioni necessarie.

Consulta le sezioni seguenti per informazioni dettagliate.

### Connessione ai dati in Amazon S3, Amazon Athena o Amazon RDS
<a name="canvas-connecting-internal-database-s3-athena"></a>

Amazon S3: è possibile importare dati da qualsiasi bucket Amazon S3, a condizione che l'utente disponga delle autorizzazioni di accesso al bucket.

[Per Amazon Athena, puoi accedere ai database se disponi delle autorizzazioni tramite il tuo AWS Glue Data Catalog gruppo di lavoro Amazon Athena.](https://docs.aws.amazon.com/athena/latest/ug/manage-queries-control-costs-with-workgroups.html)

Per Amazon RDS, se hai la [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)policy associata al tuo ruolo utente, potrai importare dati dai tuoi database Amazon RDS in Canvas.

Per importare dati da un bucket Amazon S3 o eseguire query e importare tabelle di dati con Amazon Athena, consulta [Creazione di un set di dati](canvas-import-dataset.md). È possibile importare solo dati tabulari da Amazon Athena e importare dati tabulari e di immagini da Amazon S3.

### Connessione a un database Amazon DocumentDB
<a name="canvas-connecting-docdb"></a>

Amazon DocumentDB è un servizio di database di documenti serverless e completamente gestito. Puoi importare dati di documenti non strutturati archiviati in un database Amazon DocumentDB SageMaker in Canvas come set di dati tabulare e quindi creare modelli di apprendimento automatico con i dati.

**Importante**  
Il tuo dominio SageMaker AI deve essere configurato in modalità **solo VPC** per aggiungere connessioni ad Amazon DocumentDB. È possibile accedere ai cluster Amazon DocumentDB solo nello stesso Amazon VPC dell’applicazione Canvas. Inoltre, Canvas può connettersi solo a cluster Amazon DocumentDB abilitati per TLS. Per ulteriori informazioni su come configurare Canvas in modalità **Solo VPC**, consulta [Configura Amazon SageMaker Canvas in un VPC senza accesso a Internet](canvas-vpc.md).

Per importare dati dai database Amazon DocumentDB, è necessario disporre delle credenziali per accedere al database Amazon DocumentDB e specificare il nome utente e la password durante la creazione di una connessione al database. Puoi configurare autorizzazioni più granulari e limitare l’accesso modificando le autorizzazioni utente di Amazon DocumentDB. Per ulteriori informazioni sul controllo degli accessi in Amazon DocumentDB, consulta [Database Access Using Role-Based Access Control](https://docs.aws.amazon.com/documentdb/latest/developerguide/role_based_access_control.html) in *Amazon DocumentDB Developer Guide*.

Quando effettui l’importazione da Amazon DocumentDB, Canvas converte i dati non strutturati in un set di dati tabulare mappando i campi alle colonne di una tabella. Vengono create tabelle aggiuntive per ogni campo complesso (o struttura annidata) nei dati, in cui le colonne corrispondono ai sottocampi del campo complesso. Per informazioni più dettagliate su questo processo ed esempi di conversione dello schema, consulta la pagina [Amazon DocumentDB JDBC Driver](https://github.com/aws/amazon-documentdb-jdbc-driver/blob/develop/src/markdown/schema/schema-discovery.md) Schema Discovery. GitHub 

Canvas può stabilire una connessione solo a un singolo database in Amazon DocumentDB. Per importare dati da un database diverso, devi creare una nuova connessione.

Puoi importare dati da Amazon DocumentDB a Canvas utilizzando i seguenti metodi:
+ [Creazione di un set di dati](canvas-import-dataset.md). Puoi importare i dati di Amazon DocumentDB e creare un set di dati tabulare in Canvas. Se scegli questo metodo, assicurati di seguire la procedura di [importazione dei dati tabulari](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-import-dataset.html#canvas-import-dataset-tabular).
+ [Creazione di un flusso di dati](canvas-data-flow.md). Puoi creare una pipeline di preparazione dei dati in Canvas e aggiungere il tuo database Amazon DocumentDB come origine dati.

Per procedere con l’importazione dei dati, segui la procedura per uno dei metodi collegati nell’elenco precedente.

Quando raggiungi la fase di scelta di un’origine dati in uno dei due flussi di lavoro (fase 6 per la creazione di un set di dati o fase 8 per la creazione di un flusso di dati), procedi come descritto di seguito:

1. In **Origine dati**, apri il menu a discesa e scegli **DocumentDB**.

1. Scegli **Aggiungi connessione**.

1. Nella finestra di dialogo, specifica le credenziali Amazon DocumentDB:

   1. Inserisci un **Nome della connessione**. Si tratta di un nome usato da Canvas per identificare questa connessione.

   1. In **Cluster**, seleziona il cluster in Amazon DocumentDB che archivia i tuoi dati. Canvas compila automaticamente il menu a discesa con i cluster Amazon DocumentDB nello stesso VPC dell’applicazione Canvas.

   1. Inserisci il **nome utente** per il tuo cluster Amazon DocumentDB.

   1. Inserisci la **password** per il tuo cluster Amazon DocumentDB.

   1. Scegli il nome del **database** a cui desideri connetterti.

   1. L’opzione **Preferenza di lettura** specifica da quali tipi di istanze del cluster Canvas legge i dati. Selezionare uno dei seguenti:
      + **Secondario preferito**: per impostazione predefinita, Canvas legge i dati dalle istanze secondarie del cluster ma, se queste non sono disponibili, Canvas utilizza un’istanza primaria.
      + **Secondario**: Canvas legge i dati solo dalle istanze secondarie del cluster. Questa impostazione evita che le operazioni di lettura interferiscano con le normali operazioni di lettura e scrittura del cluster.

   1. Scegli **Aggiungi connessione**. L’immagine seguente mostra la finestra di dialogo con i campi precedenti per una connessione ad Amazon DocumentDB.  
![\[Screenshot della finestra di dialogo Aggiungi una nuova connessione a DocumentDB in Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/add-docdb-connection.png)

A questo punto, dovresti disporre di una connessione ad Amazon DocumentDB e puoi utilizzare i dati di Amazon DocumentDB in Canvas per creare un set di dati o un flusso di dati.

### Connessione a un database Amazon Redshift
<a name="canvas-connecting-redshift"></a>

È possibile importare dati da Amazon Redshift, un data warehouse in cui la tua organizzazione conserva i propri dati. Prima di poter importare dati da Amazon Redshift, al ruolo AWS IAM utilizzato deve essere associata la policy `AmazonRedshiftFullAccess` gestita. Per istruzioni su come collegare la policy, consulta [Concedere agli utenti le autorizzazioni per importare dati Amazon Redshift](canvas-redshift-permissions.md). 

Per importare dati da Amazon Redshift, effettua le seguenti operazioni:

1. Crea una connessione a un database Amazon Redshift.

1. Scegli i dati che stai importando.

1. Importa i dati.

Puoi utilizzare l'editor di Amazon Redshift per trascinare i set di dati nel riquadro di importazione e importarli in Canvas. SageMaker Per un maggiore controllo sui valori restituiti nel set di dati, è possibile utilizzare quanto segue:
+ Query SQL
+ Join

Con le query SQL puoi personalizzare il modo in cui importi i valori nel set di dati. Ad esempio, è possibile specificare le colonne restituite nel set di dati o l'intervallo di valori per una colonna.

È possibile utilizzare join per combinare più set di dati di Amazon Redshift in un set di dati singolo. È possibile trascinare i tuoi set di dati da Amazon Redshift nel pannello che ti dà la possibilità di collegare i set di dati.

È possibile utilizzare l'editor SQL per modificare il set di dati che hai collegato e convertire il set di dati collegati in un nodo singolo. È possibile collegare un altro set di dati al nodo. Puoi importare i dati che hai selezionato in SageMaker Canvas.

Utilizza la procedura seguente per importare dati da Amazon Redshift.

1. Nell'applicazione SageMaker Canvas, vai alla pagina **Datasets**.

1. Scegli **Importa dati** e, dal menu a discesa, scegli **Tabulare**.

1. Inserisci un nome per il set di dati, quindi scegli **Crea**.

1. Per **Origine dati**, apri il menu a discesa e scegli **Redshift**.

1. Scegli **Aggiungi connessione**.

1. Nella finestra di dialogo, specifica le credenziali Amazon Redshift:

   1. Per **Metodo di autenticazione**, scegli **IAM**.

   1. Inserisci l'**identificatore del cluster** per specificare a quale cluster vuoi collegarti. Inserisci solo l'identificatore del cluster e non l'endpoint completo del cluster Amazon Redshift.

   1. Inserisci il **Nome del database** a cui desideri collegarti.

   1. Inserisci un **utente del database** per identificare l'utente che desideri utilizzare per collegarti al database.

   1. Per **ARN**, inserisci l'ARN del ruolo IAM che il cluster Amazon Redshift dovrebbe assumere per spostare e scrivere dati su Amazon S3. Per ulteriori informazioni su questo ruolo, consulta [Autorizzazione di Amazon Redshift ad accedere ad AWS altri servizi per tuo conto](https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html) nella *Amazon Redshift Management Guide*.

   1. Inserisci un **Nome della connessione**. Si tratta di un nome usato da Canvas per identificare questa connessione.

1. Dalla scheda contenente il nome della connessione, trascina il file .csv che stai importando nel pannello **Trascina e rilascia la tabella da importare**.

1. Facoltativo: trascina le tabelle aggiuntive nel pannello di importazione. È possibile utilizzare la GUI per collegare le tabelle. Per una maggiore specificità nei tuoi join, scegli **Modifica in SQL**.

1. Facoltativo: se utilizzi SQL per interrogare i dati, è possibile scegliere **Contesto** per aggiungere contesto alla connessione specificando i valori per quanto segue:
   + **Warehouse**
   + **Database**
   + **Schema**

1. Scegli **Importa dati**.

L'immagine seguente mostra un esempio di campi specificati per una connessione Amazon Redshift.

![\[Screenshot della finestra di dialogo Aggiungi una nuova connessione a Redshift in Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-redshift-add-connection.png)


L'immagine seguente mostra la pagina utilizzata per combinare set di dati in Amazon Redshift.

![\[Screenshot della pagina Importa in Canvas, che mostra il join di due set di dati.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-redshift-join.png)


L'immagine seguente mostra una query SQL utilizzata per modificare un join in Amazon Redshift.

![\[Screenshot di una query SQL nell’editor Modifica SQL nella pagina Importa in Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-redshift-edit-sql.png)


## Connettiti ai tuoi dati con connettori JDBC
<a name="canvas-connecting-jdbc"></a>

Con JDBC, puoi connetterti ai tuoi database da fonti come Databricks, MySQL, SQLServer PostgreSQL, MariaDB, Amazon RDS e Amazon Aurora.

Devi assicurarti di avere le credenziali e le autorizzazioni necessarie per creare la connessione da Canvas.
+ Per Databricks, devi fornire un URL JDBC. La formattazione dell'URL può variare tra le istanze di Databricks. Per informazioni su come trovare l'URL e specificare i parametri al suo interno, consulta [JDBC configuration and connection parameters](https://docs.databricks.com/integrations/bi/jdbc-odbc-bi.html#jdbc-configuration-and-connection-parameters) nella documentazione di Databricks. Di seguito è riportato un esempio di formato dell'URL: `jdbc:spark://aws-sagemaker-datawrangler.cloud.databricks.com:443/default;transportMode=http;ssl=1;httpPath=sql/protocolv1/o/3122619508517275/0909-200301-cut318;AuthMech=3;UID=token;PWD=personal-access-token`
+ Per altre origini di database, devi impostare l'autenticazione con nome utente e password, quindi specificare tali credenziali quando ci si connette al database da Canvas. 

Inoltre, l’origine dati deve essere accessibile tramite la rete Internet pubblica oppure, se l’applicazione Canvas è in esecuzione in modalità **Solo VPC**, l’origine dati deve essere eseguita nello stesso VPC. *Per ulteriori informazioni sulla configurazione di un database Amazon RDS in un VPC, consulta Amazon [VPC VPCs e Amazon RDS nella Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html) User Guide.*

Dopo aver configurato le credenziali dell'origine dati, è possibile accedere all'applicazione Canvas e creare una connessione all'origine dati. Specifica le tue credenziali (o, per Databricks, l'URL) durante la creazione della connessione.

## Connect a fonti di dati con OAuth
<a name="canvas-connecting-oauth"></a>

Canvas supporta l'utilizzo OAuth come metodo di autenticazione per la connessione ai dati in Snowflake e Salesforce Data Cloud. [OAuth](https://oauth.net/2/)è una piattaforma di autenticazione comune per concedere l'accesso alle risorse senza condividere le password.

**Nota**  
È possibile stabilire una sola OAuth connessione per ogni fonte di dati.

Per autorizzare la connessione, è necessario seguire la configurazione iniziale descritta in [Configura le connessioni alle sorgenti dati con OAuth](canvas-setting-up-oauth.md).

Dopo aver impostato le OAuth credenziali, puoi fare quanto segue per aggiungere una connessione Snowflake o Salesforce Data Cloud con: OAuth

1. Accedi all'applicazione Canvas.

1. Crea un set di dati tabulare. Quando ti viene richiesto di caricare dati, scegli il cloud dei dati Snowflake o Salesforce come origine dati.

1. Crea una nuova connessione alla tua origine dati nel cloud dei dati Snowflake o Salesforce. Specificate OAuth come metodo di autenticazione e inserite i dettagli della connessione.

Ora dovresti essere in grado di importare dati dai tuoi database nel cloud dei dati Snowflake o Salesforce.

## Connessione a una piattaforma SaaS
<a name="canvas-connecting-saas"></a>

È possibile importare dati da Snowflake e oltre 40 altre piattaforme SaaS esterne. Per l'elenco completo dei connettori, consulta la tabella su [Importazione dei dati](canvas-importing-data.md).

**Nota**  
È possibile importare solo dati tabulari, come tabelle di dati, da piattaforme SaaS.

### Utilizzo di Snowflake con Canvas
<a name="canvas-using-snowflake"></a>

Snowflake è un servizio di archiviazione e analisi dei dati e puoi importare i tuoi dati da Snowflake in Canvas. SageMaker Per ulteriori informazioni su Snowflake, consulta la [documentazione di Snowflake](https://www.snowflake.com/en/).

È possibile importare i dati dal tuo account Snowflake eseguendo le seguenti operazioni:

1. Crea una connessione al database Snowflake.

1. Scegli i dati da importare trascinando la tabella dal menu di navigazione a sinistra all'editor.

1. Importa i dati.

Puoi utilizzare l'editor Snowflake per trascinare i set di dati nel riquadro di importazione e importarli in Canvas. SageMaker Per un maggiore controllo sui valori restituiti nel set di dati, è possibile utilizzare quanto segue:
+ Query SQL
+ Join

Con le query SQL puoi personalizzare il modo in cui importi i valori nel set di dati. Ad esempio, è possibile specificare le colonne restituite nel set di dati o l'intervallo di valori per una colonna.

È possibile combinare più set di dati Snowflake in un singolo set di dati prima di importarli in Canvas utilizzando SQL o l'interfaccia Canvas. È possibile trascinare i tuoi set di dati da Snowflake nel pannello che ti dà la possibilità di collegare i set di dati, oppure puoi modificare i join in SQL e convertire l'SQL in un nodo singolo. È possibile unire altri nodi al nodo che hai convertito. Ora è possibile combinare i set di dati che hai collegato in un nodo singolo e collegare i nodi a un set di dati Snowflake diverso. Infine, è possibile importare i dati che hai selezionato in Canvas.

Utilizza la seguente procedura per importare dati da Snowflake ad Amazon SageMaker Canvas.

1. Nell'applicazione SageMaker Canvas, vai alla pagina **Datasets**.

1. Scegli **Importa dati** e, dal menu a discesa, scegli **Tabulare**.

1. Inserisci un nome per il set di dati, quindi scegli **Crea**.

1. Per **Origine dati**, apri il menu a discesa e scegli **Snowflake**.

1. Scegli **Aggiungi connessione**.

1. Nella finestra di dialogo **Aggiungi una nuova connessione Snowflake**, specifica le tue credenziali Snowflake. In **Metodo di autenticazione**, scegli una delle opzioni seguenti:
   + **Base (nome utente e password)**: fornisci l’ID, il nome utente e la password del tuo account Snowflake.
   + **ARN**: per una migliore protezione delle tue credenziali Snowflake, fornisci l'ARN di un segreto che contiene le tue credenziali. Gestione dei segreti AWS *Per ulteriori informazioni, consulta [Creare un Gestione dei segreti AWS](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) segreto nella Guida per l'utente.Gestione dei segreti AWS *

     Le credenziali Snowflake del tuo segreto devono essere archiviate nel formato JSON seguente:

     ```
     {"accountid": "ID",
     "username": "username",
     "password": "password"}
     ```
   + **OAuth**— OAuth consente l'autenticazione senza fornire una password ma richiede una configurazione aggiuntiva. Per ulteriori informazioni sulla configurazione delle OAuth credenziali per Snowflake, consulta. [Configura le connessioni alle sorgenti dati con OAuth](canvas-setting-up-oauth.md)

1. Scegli **Aggiungi connessione**.

1. Dalla scheda contenente il nome della connessione, trascina il file .csv che stai importando nel pannello **Trascina e rilascia la tabella da importare**.

1. Facoltativo: trascina le tabelle aggiuntive nel pannello di importazione. È possibile utilizzare l'interfaccia utente per collegare le tabelle. Per una maggiore specificità nei tuoi join, scegli **Modifica in SQL**.

1. Facoltativo: se utilizzi SQL per interrogare i dati, è possibile scegliere **Contesto** per aggiungere contesto alla connessione specificando i valori per quanto segue:
   + **Warehouse**
   + **Database**
   + **Schema**

   L'aggiunta di contesto a una connessione semplifica la specificazione di query future.

1. Scegli **Importa dati**.

L'immagine seguente mostra un esempio di campi specificati per una connessione Snowflake.

![\[Screenshot della finestra di dialogo Aggiungi una nuova connessione a Snowflake in Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-snowflake-connection.png)


L'immagine seguente mostra la pagina utilizzata per aggiungere contesto a una connessione.

![\[Screenshot della pagina Importa in Canvas, che mostra la finestra di dialogo Contesto.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-connection-context.png)


L'immagine seguente mostra la pagina utilizzata per combinare set di dati in Snowflake.

![\[Screenshot della pagina Importa in Canvas, che mostra il join di più set di dati.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-snowflake-join.png)


L'immagine seguente mostra una query SQL utilizzata per modificare un join in Snowflake.

![\[Screenshot di una query SQL nell’editor Modifica SQL nella pagina Importa in Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-snowflake-edit-sql.png)


### Usa connettori SaaS con Canvas
<a name="canvas-connecting-external-appflow"></a>

**Nota**  
Per le piattaforme SaaS oltre a Snowflake, è possibile avere solo una connessione per origine dati.

Prima di poter importare dati da una piattaforma SaaS, l'amministratore deve autenticarsi e creare una connessione all'origine dati. Per ulteriori informazioni su come gli amministratori possono creare una connessione con una piattaforma SaaS, consulta [Managing Amazon connections nella AppFlow * AppFlow Amazon*](https://docs.aws.amazon.com/appflow/latest/userguide/connections.html) User Guide.

Se sei un amministratore che inizia a usare Amazon AppFlow per la prima volta, consulta la sezione Guida [introduttiva](https://docs.aws.amazon.com/appflow/latest/userguide/getting-started.html) nella *Amazon AppFlow User Guide*.

Per importare dati da una piattaforma SaaS, è possibile seguire la procedure [Importazione dei dati tabulari](canvas-import-dataset.md#canvas-import-dataset-tabular) standard, che mostra come importare set di dati tabulari in Canvas.

# Set di dati di esempio in Canvas
<a name="canvas-sample-datasets"></a>

SageMaker Canvas fornisce set di dati di esempio che riguardano casi d'uso unici in modo da poter iniziare a creare, addestrare e convalidare modelli rapidamente senza scrivere alcun codice. I casi d'uso associati a questi set di dati evidenziano le funzionalità di SageMaker Canvas e puoi sfruttare questi set di dati per iniziare a creare modelli. Puoi trovare i set di dati di esempio nella pagina Datasets della tua **applicazione Canvas**. SageMaker 

I seguenti set di dati sono gli esempi forniti da SageMaker Canvas per impostazione predefinita. Questi set di dati coprono casi d'uso come la previsione dei prezzi delle abitazioni, l'insolvenza dei prestiti e la riammissione per i pazienti diabetici, la previsione delle vendite, la previsione dei guasti delle macchine per semplificare la manutenzione predittiva nelle unità di produzione e la generazione di previsioni sulla filiera per il trasporto e la logistica. I set di dati sono archiviati nella `sample_dataset` cartella del bucket Amazon S3 predefinito SageMaker che AI crea per il tuo account in una regione.
+ **canvas-sample-diabetic-readmission.csv:** questo set di dati contiene dati storici tra cui oltre quindici funzionalità con esiti dei pazienti e degli ospedali. È possibile utilizzare questo set di dati per prevedere se è probabile che i pazienti diabetici ad alto rischio vengano riammessi in ospedale entro 30 giorni dalla dimissione, dopo 30 giorni o non vengano ricoverati affatto. Utilizza la colonna **redadmitted** come colonna di destinazione e utilizza il tipo di modello di previsione a 3 o più categorie con questo set di dati. [Per saperne di più su come costruire un modello con questo set di dati, consulta la pagina del workshop Canvas. SageMaker ](https://catalog.us-east-1.prod.workshops.aws/workshops/80ba0ea5-7cf9-4b8c-9d3f-1cd988b6c071/en-US/zzz-legacy/1-use-cases/5-hcls) Questo set di dati è stato ottenuto dall'[UCI Machine Learning Repository](https://archive.ics.uci.edu/ml/datasets/diabetes+130-us+hospitals+for+years+1999-2008). 
+ **canvas-sample-housing.csv:** Questo set di dati contiene dati sulle caratteristiche legate a un determinato prezzo delle abitazioni. È possibile utilizzare questo set di dati per prevedere i prezzi delle abitazioni. Utilizza la colonna **median\$1house\$1value** come colonna di destinazione e utilizza il tipo di modello di previsione numerico con questo set di dati. [Per saperne di più sulla creazione di un modello con questo set di dati, consulta la pagina del SageMaker workshop Canvas.](https://catalog.us-east-1.prod.workshops.aws/workshops/80ba0ea5-7cf9-4b8c-9d3f-1cd988b6c071/en-US/zzz-legacy/1-use-cases/2-real-estate) [Questo è il set di dati sugli alloggi della California ottenuto dal StatLib repository.](https://www.dcc.fc.up.pt/~ltorgo/Regression/cal_housing.html)
+ **canvas-sample-loans.csv:** Questo set di dati contiene dati completi sui prestiti per tutti i prestiti emessi dal 2007 al 2011, tra cui lo stato attuale del prestito e le ultime informazioni di pagamento. È possibile utilizzare questo set di dati per prevedere se un cliente rimborserà un prestito. Utilizza la colonna **loan\$1status** come colonna di destinazione e utilizza il tipo di modello di previsione a 3 o più categorie con questo set di dati. [Per saperne di più su come costruire un modello con questo set di dati, consulta la pagina del workshop Canvas. SageMaker ](https://catalog.us-east-1.prod.workshops.aws/workshops/80ba0ea5-7cf9-4b8c-9d3f-1cd988b6c071/en-US/zzz-legacy/1-use-cases/4-finserv) Questi dati utilizzano i LendingClub dati ottenuti da [Kaggle](https://www.kaggle.com/datasets/wordsforthewise/lending-club).
+ **canvas-sample-maintenance.csv:** questo set di dati contiene dati sulle caratteristiche legate a un determinato tipo di errore di manutenzione. È possibile utilizzare questo set di dati per prevedere quali guasti si verificheranno in futuro. Utilizza la colonna **Tipo di errore** come colonna di destinazione e utilizza il tipo di modello di previsione a 3 o più categorie con questo set di dati. [Per saperne di più su come creare un modello con questo set di dati, consulta la pagina del SageMaker workshop Canvas.](https://catalog.us-east-1.prod.workshops.aws/workshops/80ba0ea5-7cf9-4b8c-9d3f-1cd988b6c071/en-US/zzz-legacy/1-use-cases/6-manufacturing) Questo set di dati è stato ottenuto dall'[UCI Machine Learning Repository](https://archive.ics.uci.edu/ml/datasets/AI4I+2020+Predictive+Maintenance+Dataset).
+ **canvas-sample-shipping-logs.csv:** Questo set di dati contiene dati di spedizione completi per tutti i prodotti consegnati, compresi i tempi stimati, la priorità di spedizione, il corriere e l'origine. È possibile utilizzare questo set di dati per prevedere l'ora di arrivo prevista della spedizione in numero di giorni. Usa la **ActualShippingDays**colonna come colonna di destinazione e usa il tipo di modello di previsione numerica con questo set di dati. Per saperne di più su come costruire un modello con questi dati, consulta la pagina del workshop [SageMaker Canvas](https://catalog.us-east-1.prod.workshops.aws/workshops/80ba0ea5-7cf9-4b8c-9d3f-1cd988b6c071/en-US/zzz-legacy/1-use-cases/7-supply-chain). Si tratta di un set di dati sintetico creato da Amazon.
+ **canvas-sample-sales-forecasting.csv:** questo set di dati contiene dati storici sulle vendite in serie temporali per i negozi al dettaglio. È possibile utilizzare questo set di dati per prevedere le vendite di un particolare punto vendita al dettaglio. Utilizza la colonna **sales** come colonna di destinazione e utilizza il tipo di modello di previsione delle serie temporali con questo set di dati. [Per saperne di più su come creare un modello con questo set di dati, consulta la pagina del SageMaker workshop Canvas.](https://catalog.us-east-1.prod.workshops.aws/workshops/80ba0ea5-7cf9-4b8c-9d3f-1cd988b6c071/en-US/zzz-legacy/1-use-cases/3-retail) Si tratta di un set di dati sintetico creato da Amazon.

# Reimporta un set di dati di esempio eliminato
<a name="canvas-sample-datasets-reimport"></a>

Amazon SageMaker Canvas fornisce set di dati di esempio per vari casi d'uso che evidenziano le funzionalità di Canvas. Per ulteriori informazioni sui set di dati di esempio disponibili, consulta [Set di dati di esempio in Canvas](canvas-sample-datasets.md). Se non desideri più utilizzare i set di dati di esempio, puoi eliminarli dalla pagina **Datasets** dell'applicazione Canvas. SageMaker Tuttavia, questi set di dati sono ancora archiviati nel bucket Amazon S3 che hai specificato come [Percorso di archiviazione Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-storage-configuration.html), per cui è sempre possibile accedervi in un secondo momento. 

Se hai utilizzato il bucket Amazon S3 predefinito, il nome del bucket segue lo schema `sagemaker-{region}-{account ID}`. È possibile trovare i set di dati di esempio nel Percorso directory `Canvas/sample_dataset`.

Se eliminate un set di dati di esempio dall'applicazione SageMaker Canvas e desiderate accedere nuovamente al set di dati di esempio, utilizzate la procedura seguente.

1. Vai alla pagina **Datasets** nell'applicazione Canvas. SageMaker 

1. Scegli **Importa dati**.

1. Dall'elenco dei bucket Amazon S3, seleziona il bucket che rappresenta il tuo percorso di archiviazione Canvas. Se si utilizza il bucket Amazon S3 predefinito SageMaker creato dall'intelligenza artificiale, segue lo schema di denominazione. `sagemaker-{region}-{account ID}`

1. Seleziona la cartella **Canvas**.

1. Seleziona la cartella **sample\$1dataset**, che contiene tutti i set di dati di esempio per Canvas. SageMaker 

1. Seleziona il set di dati che desideri importare, quindi scegli **Importa dati.**

# Preparazione dei dati
<a name="canvas-data-prep"></a>

**Nota**  
In precedenza, Amazon SageMaker Data Wrangler faceva parte dell'esperienza SageMaker Studio Classic. Ora, se esegui l'aggiornamento alla nuova esperienza Studio, devi usare SageMaker Canvas per accedere a Data Wrangler e ricevere gli ultimi aggiornamenti delle funzionalità. Se finora hai utilizzato Data Wrangler in Studio Classic e desideri eseguire la migrazione a Data Wrangler in Canvas, potresti dover concedere autorizzazioni aggiuntive per creare e utilizzare un’applicazione Canvas. Per ulteriori informazioni, consulta [(Facoltativo) Esegui la migrazione da Data Wrangler in Studio Classic a Canvas SageMaker](studio-updated-migrate-ui.md#studio-updated-migrate-dw).  
Per informazioni su come eseguire la migrazione dei flussi di dati da Data Wrangler a Studio Classic, consulta [(Facoltativo) Migrazione dei dati da Studio Classic a Studio](studio-updated-migrate-data.md).

Usa Amazon SageMaker Data Wrangler in Amazon SageMaker Canvas per preparare, personalizzare e analizzare i tuoi dati. Puoi integrare un flusso di preparazione dei dati di Data Wrangler nei flussi di lavoro di machine learning (ML) per semplificare e ottimizzare la preelaborazione dei dati e l'ingegneria delle funzionalità utilizzando poca o nessuna codifica. Puoi anche aggiungere i tuoi script e le trasformazioni Python per personalizzare i flussi di lavoro.
+ **Flusso di dati**: crea un flusso di dati per definire una serie di fasi di preparazione dei dati ML. Puoi utilizzare un flusso per combinare set di dati provenienti da diverse origini dati, identificare il numero e i tipi di trasformazioni che desideri applicare ai set di dati e definire un flusso di lavoro di preparazione dei dati che può essere integrato in una pipeline ML. 
+ **Trasforma**: pulisci e trasforma il tuo set di dati utilizzando *trasformazioni* standard come strumenti di formattazione di dati in stringhe, vettoriali e numerici. Personalizza i tuoi dati utilizzando trasformazioni come testo e incorporamento e codifica categorica. date/time 
+ **Genera informazioni sui dati**: verifica automaticamente la qualità dei dati e rileva le anomalie nei dati con il report Qualità e informazioni approfondite sui dati di Data Wrangler. 
+ **Analizza**: analizza le funzionalità del tuo set di dati in qualsiasi momento del flusso. Data Wrangler include strumenti integrati di visualizzazione dei dati come grafici a dispersione e istogrammi, oltre a strumenti di analisi dei dati come l'analisi delle fughe di obiettivi e la modellazione rapida per comprendere la correlazione delle funzionalità. 
+ **Esporta**: esporta il flusso di lavoro di preparazione dei dati in una posizione diversa. Di seguito sono riportati alcuni esempi di posizioni: 
  + Bucket Amazon Simple Storage Service (Amazon S3)
  + Amazon SageMaker Feature Store: archivia le funzionalità e i relativi dati in un archivio centralizzato.
+ **Automatizza la preparazione dei dati**: crea flussi di lavoro di machine learning dal tuo flusso di dati.
  + Amazon SageMaker Pipelines: crea flussi di lavoro che gestiscono i lavori di preparazione dei dati di SageMaker intelligenza artificiale, formazione dei modelli e implementazione dei modelli.
  + Pipeline di inferenza seriale: crea una pipeline di inferenza seriale dal tuo flusso di dati. Utilizzala per generare previsioni sui nuovi dati.
  + Script Python: archivia i dati e le loro trasformazioni in uno script Python per i tuoi flussi di lavoro personalizzati.

# Creazione di un flusso di dati
<a name="canvas-data-flow"></a>

Utilizza un flusso Data Wrangler in SageMaker Canvas, o flusso di *dati, per creare e modificare una pipeline* di preparazione dei dati. Ti consigliamo di utilizzare Data Wrangler per i set di dati di dimensioni superiori a 5 GB.

Per iniziare, utilizza la procedura seguente per importare i dati in un flusso di dati.

1. Apri Canvas. SageMaker 

1. Nel pannello di navigazione a sinistra, scegli **Data Wrangler**.

1. Scegli **Importa e prepara**.

1. Dal menu a discesa, scegli **Tabulare** o **Immagine**.

1. In **Seleziona un’origine dati**, scegli l’origine dati e seleziona i dati da importare. Puoi selezionare un massimo di 30 file o una cartella. Se hai già un set di dati importato in Canvas, scegli **Set di dati Canvas** come origine. In caso contrario, connettiti a un’origine dati come Amazon S3 o Snowflake e sfoglia i tuoi dati. Per informazioni sulla connessione a un’origine dati o sull’importazione di dati, consulta le pagine seguenti:
   + [Importazione dei dati](canvas-importing-data.md)
   + [Connessione alle origini dati](canvas-connecting-external.md)

1. Dopo aver selezionato i dati da importare, scegli **Avanti**.

1. (Facoltativo) Nella sezione **Impostazioni di importazione**, espandi il menu a discesa **Avanzate** durante l’importazione di un set di dati tabulare. Puoi specificare le impostazioni avanzate seguenti per le importazioni di flussi di dati:
   + **Metodo di campionamento**: seleziona il metodo di campionamento e la dimensione del campione che desideri utilizzare. Per ulteriori informazioni su come modificare il campionamento, consulta la sezione [Modifica della configurazione per il campionamento del flusso di dati](canvas-data-flow-edit-sampling.md).
   + **Codifica file (CSV)**: seleziona la codifica del file del set di dati. `UTF-8` è l’impostazione predefinita.
   + **Ignora le prime righe**: se hai righe ridondanti all’inizio del set di dati, inserisci il numero di righe da escludere dall’importazione.
   + **Delimitatore**: seleziona il delimitatore che separa ogni cella dei tuoi dati. Puoi anche specificare un delimitatore personalizzato.
   + **Rilevamento di più righe**: seleziona questa opzione se desideri che Canvas analizzi manualmente l’intero set di dati alla ricerca di celle con più righe. Canvas determina se utilizzare o meno il supporto di più righe prelevando un campione di dati, ma nel campione potrebbero non esserci celle con più righe. In questo caso, consigliamo di selezionare l’opzione **Rilevamento di più righe** per forzare Canvas a verificare la presenza tali celle nell’intero set di dati.

1. Scegli **Importa**.

A questo punto, dovresti avere un nuovo flusso di dati e puoi iniziare ad aggiungere fasi di trasformazione e analisi.

# Come funziona l’interfaccia utente del flusso di dati
<a name="canvas-data-flow-ui"></a>

Per aiutarti a navigare nel flusso di dati, Data Wrangler offre le schede seguenti nel riquadro di navigazione in alto:
+ **Flusso di dati**: questa scheda offre una visualizzazione visiva della fase del flusso di dati in cui puoi aggiungere o rimuovere le trasformazioni ed esportare i dati.
+ **Dati**: questa scheda offre un’anteprima dei dati che ti consente di controllare i risultati delle trasformazioni. Puoi anche visualizzare un elenco ordinato delle fasi del flusso di dati e modificare o riordinare tali fasi.
**Nota**  
In questa scheda, puoi osservare in anteprima solo le visualizzazioni dei dati (come la distribuzione dei valori per colonna) per le origini dati Amazon S3. Le visualizzazioni per altre origini dati, come Amazon Athena, non sono supportate.
+ **Analisi**: in questa scheda, puoi visualizzare schede secondarie separate per ogni analisi che crei. Ad esempio, se crei un istogramma e un report Qualità e informazioni approfondite sui dati, Canvas crea una scheda per ciascuno.

**Quando importi un set di dati, il set di dati originale viene visualizzato nel flusso di dati e viene denominato Source.** SageMaker **Canvas deduce automaticamente i tipi di ogni colonna del set di dati e crea un nuovo dataframe denominato Tipi di dati.** Puoi selezionare questo frame per aggiornare i tipi di dati dedotti.

I set di dati, le trasformazioni e le analisi utilizzati nel flusso di dati sono rappresentati come *fasi*. Ogni volta che aggiungi una fase di trasformazione, crei un nuovo dataframe. Quando più fasi di trasformazione (diverse da **Unisci** o **Concatena**) vengono aggiunte allo stesso set di dati, vengono impilate.

Nell’opzione **Combina dati**, **Unisci** e **Concatena** creano fasi standalone che contengono il nuovo set di dati di join o concatenato.

# Modifica della configurazione per il campionamento del flusso di dati
<a name="canvas-data-flow-edit-sampling"></a>

Quando importi dati tabulari in un flusso di dati Data Wrangler, puoi decidere di prelevare un campione del set di dati per accelerare il processo di esplorazione e pulizia dei dati. L’esecuzione di trasformazioni esplorative su un campione del set di dati è spesso più veloce rispetto all’esecuzione di trasformazioni sull’intero set di dati. Inoltre, quando è tutto pronto per esportare il set di dati e creare un modello, puoi applicare le trasformazioni all’intero set di dati.

Canvas supporta i metodi di campionamento seguenti:
+ **FirstK**: Canvas seleziona i primi *K* elementi dal set di dati, dove *K* è un numero che specifichi. Questo metodo di campionamento è semplice, ma può introdurre bias se il set di dati non è ordinato in modo casuale.
+ **Casuale**: Canvas seleziona gli elementi dal set di dati in modo casuale, quindi ogni elemento ha la stessa probabilità di essere scelto. Questo metodo di campionamento contribuisce a garantire che il campione sia rappresentativo dell’intero set di dati.
+ **Stratificato**: Canvas divide il set di dati in gruppi (o *strati*) in base a uno o più attributi (ad esempio, età e livello di reddito). Quindi, un numero proporzionale di elementi viene selezionato casualmente da ciascun gruppo. Questo metodo garantisce che tutti i sottogruppi pertinenti siano adeguatamente rappresentati nel campione.

Puoi modificare la configurazione del campionamento in qualsiasi momento per ridimensionare il campione utilizzato per l’esplorazione dei dati.

Per modificare la configurazione del campionamento, procedi come descritto di seguito:

1. Nel grafo del flusso di dati, seleziona il nodo dell’origine dati.

1. Scegli **Campionamento** nella barra di navigazione in basso.

1. Si apre la finestra di dialogo **Campionamento**. Nell’elenco a discesa **Metodo di campionamento**, seleziona il metodo di campionamento desiderato.

1. In **Dimensione massima del campione**, inserisci il numero di righe da campionare.

1. Scegli **Update (Aggiorna)** per salvare le modifiche.

A questo punto, le modifiche alla configurazione del campionamento dovrebbero essere applicate.

# Aggiunta di una fase al flusso di dati
<a name="canvas-data-flow-add-step"></a>

Nei flussi di dati di Data Wrangler, puoi aggiungere fasi che rappresentano le trasformazioni e le analisi dei dati.

Per aggiungere una fase al flusso di dati, seleziona il segno **\$1** accanto a qualsiasi nodo del set di dati o alla fase aggiunta in precedenza. Quindi seleziona una delle seguenti opzioni:
+ **Modifica i tipi di dati** (solo per una fase **Tipi di dati**): se non hai aggiunto alcuna trasformazione a una fase **Tipi di dati**, puoi fare doppio clic sulla fase **Tipi di dati** del flusso per aprire la scheda **Dati** e modificare i tipi di dati dedotti da Data Wrangler durante l’importazione del set di dati. 
+ **Aggiungi trasformazione**: aggiunge una nuova fase di trasformazione. Consulta [Trasformazione dei dati](canvas-transform.md) per saperne di più sulle trasformazioni dei dati che puoi aggiungere. 
+ **Ottieni informazioni approfondite sui dati**: aggiungi analisi, come istogrammi o visualizzazioni personalizzate. Puoi utilizzare questa opzione per analizzare i dati in qualsiasi momento del flusso di dati. Consulta [Esecuzione di un’analisi esplorativa dei dati (EDA)](canvas-analyses.md) per saperne di più sulle analisi che puoi aggiungere. 
+ **Unisci**: utilizza questa opzione in **Combina dati** per eseguire il join di due set di dati e aggiungere il set di dati risultante al flusso di dati. Per ulteriori informazioni, consulta [Unire i set di dati](canvas-transform.md#canvas-transform-join).
+ **Concatena**: utilizza questa opzione in **Combina dati** per concatenare due set di dati e aggiungere il set di dati risultante al flusso di dati. Per ulteriori informazioni, consulta [Concatena i set di dati](canvas-transform.md#canvas-transform-concatenate).

# Modifica delle fasi del flusso di dati
<a name="canvas-data-flow-edit-steps"></a>

In Amazon SageMaker Canvas, puoi modificare singoli passaggi dei flussi di dati per trasformare il set di dati senza dover creare un nuovo flusso di dati. La pagina seguente illustra come modificare le fasi di join e concatenazione, nonché le fasi relative all’origine dati.

## Modifica delle fasi di join e concatenazione
<a name="canvas-data-flow-edit-join-concat"></a>

All’interno dei flussi di dati, puoi modificare in modo flessibile le fasi di join e concatenazione. Puoi apportare le modifiche necessarie al flusso di lavoro di elaborazione dei dati, assicurando che i dati vengano combinati e trasformati correttamente senza dover ripetere l’intero flusso di dati.

Per modificare una fase di join o di concatenazione nel flusso di dati, procedi come descritto di seguito:

1. Apri il flusso di dati.

1. Scegli l’icona più (**\$1**) accanto al nodo di join o concatenazione che desideri modificare.

1. Nel menu contestuale, selezionare **Edit** (Modifica).

1. Si apre un pannello laterale in cui puoi modificare i dettagli del join o della concatenazione. Modifica i campi della fase, ad esempio il tipo di join. Per sostituire un nodo di dati e selezionarne uno diverso di cui eseguire il join o da concatenare, scegli l’icona di eliminazione accanto al nodo e quindi, nella visualizzazione del flusso di dati, seleziona il nuovo nodo da includere nella trasformazione.
**Nota**  
Quando sostituisci un nodo durante il processo di modifica, puoi selezionare solo le fasi che si verificano prima dell’operazione di join o concatenazione. Puoi scambiare il nodo sinistro o destro, ma solo un nodo alla volta. Inoltre, non è possibile selezionare un nodo di origine come sostituto.

1. Scegli **Anteprima** per visualizzare il risultato dell’operazione di combinazione.

1. Scegli **Update (Aggiorna)** per salvare le modifiche.

Il flusso di dati dovrebbe essere ora aggiornato.

## Modifica o sostituzione di una fase relativa all’origine dati
<a name="canvas-data-flow-edit-source"></a>

Potrebbe essere necessario apportare modifiche all’origine dati o al set di dati senza eliminare le trasformazioni e le fasi del flusso di dati applicate ai dati originali. In Data Wrangler, puoi modificare o sostituire la configurazione dell’origine dati mantenendo le fasi del flusso di dati. Quando modifichi un’origine dati, puoi modificare le impostazioni di importazione, come la dimensione o il metodo di campionamento, e qualsiasi impostazione avanzata. Puoi anche aggiungere altri file con lo stesso schema oppure, per origini dati basate su query come Amazon Athena, puoi modificare la query. Quando sostituisci un’origine dati, hai la possibilità di selezionare un set di dati diverso o persino di importare i dati da un’origine dati completamente diversa, purché lo schema dei nuovi dati corrisponda ai dati originali.

Per modificare una configurazione dell’origine dati, procedi come descritto di seguito:

1. Nell’applicazione Canvas, vai alla pagina **Data Wrangler**.

1. Scegli il flusso di dati per visualizzarlo.

1. Nella scheda **Flusso di dati** che mostra le fasi del flusso di dati, trova il nodo **Origine** da modificare.

1. Scegli l’icona con tre puntini accanto al nodo **Origine**.

1. Nel menu contestuale, selezionare **Edit** (Modifica).

1. Per le origini dati Amazon S3 e il caricamento locale, hai la possibilità di selezionare o caricare più file con lo stesso schema dei dati originali. Per le origini dati basate su query come Amazon Athena, puoi rimuovere e selezionare tabelle diverse nel generatore di query visive oppure modificare direttamente la query SQL. Al termine, selezionare **Next (Successivo)**.

1. In **Impostazioni di importazione**, apporta le modifiche desiderate.

1. Al termine, scegli **Salva le modifiche**.

Ora l’origine dati dovrebbe essere aggiornata.

Per sostituire un’origine dati, procedi come descritto di seguito:

1. Nell’applicazione Canvas, vai alla pagina **Data Wrangler**.

1. Scegli il flusso di dati per visualizzarlo.

1. Nella scheda **Flusso di dati** che mostra le fasi del flusso di dati, trova il nodo **Origine** da modificare.

1. Scegli l’icona con tre puntini accanto al nodo **Origine**.

1. Seleziona **Sostituisci** dal menu contestuale.

1. Passa all’[esperienza di creazione di un flusso di dati](canvas-data-flow.md) per selezionare un’altra origine dati e altri dati.

1. Una volta selezionati i dati e quando è tutto pronto per aggiornare il nodo di origine, scegli **Salva**.

A questo punto, dovresti vedere il nodo di **origine** aggiornato nel tuo flusso di dati.

# Riordinamento delle fasi del flusso di dati
<a name="canvas-data-flow-reorder-steps"></a>

Dopo aver aggiunto le fasi al flusso di dati, hai la possibilità di riordinarle invece di eliminarle, quindi di aggiungerle nuovamente nell’ordine corretto. Ad esempio, potresti decidere di spostare una trasformazione per attribuire i valori mancanti prima di una fase di formattazione delle stringhe.

**Nota**  
Non è possibile modificare l’ordine di determinati tipi di fase, ad esempio la definizione dell’origine dati, la modifica dei tipi di dati, il join, la concatenazione o la divisione. Le fasi che non possono essere riordinate sono visualizzate in grigio nell’interfaccia utente dell’applicazione Canvas.

Per riordinare le fasi del flusso di dati, procedi come descritto di seguito:

1. Durante la modifica di un flusso di dati in Data Wrangler, scegli la scheda **Dati**. Un pannello laterale chiamato **Fasi** elenca le fasi del flusso di dati in ordine.

1. Passa il mouse su una fase di trasformazione e scegli l’icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) accanto alla fase.

1. Seleziona **Riordina** dal menu contestuale.

1. Trascina e rilascia le fasi del flusso di dati nell’ordine desiderato.

1. Al termine, scegli **Save**.

Ora le fasi e il grafo del flusso di dati dovrebbero riflettere le modifiche apportate.

# Eliminazione di una fase dal flusso di dati
<a name="canvas-data-flow-delete-step"></a>

All’interno dei flussi di dati, puoi eliminare in modo flessibile le fasi di join e concatenazione e scegliere se applicare o meno eventuali trasformazioni successive ai tuoi dati.

Per eliminare una fase di join o concatenazione dal flusso di dati, procedi come descritto di seguito:

1. Apri il flusso di dati.

1. Scegli l’icona del segno più (**\$1**) accanto al nodo di join o concatenazione da eliminare.

1. Nel menu contestuale, scegliere **Delete** (Elimina).

1. (Facoltativo) Se sono presenti fasi di trasformazione successive alla fase di join o concatenazione, puoi scegliere se mantenerle o meno e aggiungerle separatamente a ciascun nodo di dati. Nel pannello laterale **Elimina join**, scegli un nodo per deselezionarlo e rimuovere eventuali fasi di trasformazione successive. Puoi lasciare entrambi i nodi selezionati per mantenere tutte le fasi di trasformazione oppure puoi deselezionare entrambi i nodi per ignorarle

   Lo screenshot seguente mostra questa fase con solo il secondo dei due nodi di dati selezionato. Quando il join viene eliminato correttamente, la successiva trasformazione **Rinomina colonna** viene conservata solo dal secondo nodo di dati.  
![\[Screenshot di un flusso di dati in Data Wrangler che mostra la visualizzazione di eliminazione del join.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-data-flow-delete-step.png)

1. Scegli **Elimina**.

Ora la fase di join o concatenazione dovrebbe essere stata rimossa dal flusso di dati.

# Esecuzione di un’analisi esplorativa dei dati (EDA)
<a name="canvas-analyses"></a>

Data Wrangler include analisi integrate che aiutano a generare visualizzazioni e analisi dei dati in pochi clic. Puoi anche creare analisi personalizzate utilizzando il tuo codice. 

Puoi aggiungere un'analisi a un dataframe selezionando una fase nel flusso di dati e quindi scegliendo **Aggiungi analisi**. Per accedere a un'analisi che hai creato, seleziona la fase che contiene l'analisi e seleziona l'analisi. 

Le analisi vengono generate utilizzando un campione con un massimo di 200.000 righe del set di dati e la dimensione del campione può essere configurata. Per ulteriori informazioni sulla modifica della dimensione del campione del flusso di dati, consulta [Modifica della configurazione per il campionamento del flusso di dati](canvas-data-flow-edit-sampling.md).

**Nota**  
Le analisi sono ottimizzate per dati con un massimo di 1000 colonne. Potresti riscontrare una certa latenza durante la generazione di analisi per dati con colonne aggiuntive.

Puoi aggiungere l'analisi seguente a un dataframe:
+ Visualizzazioni dei dati, inclusi istogrammi e grafici a dispersione. 
+ Un breve riepilogo del set di dati, incluso il numero di voci, i valori minimo e massimo (per i dati numerici) e le categorie più e meno frequenti (per i dati categoriali).
+ Un modello rapido del set di dati, che può essere utilizzato per generare un punteggio di importanza per ciascuna funzionalità. 
+ Un report sulla perdita di dati, che puoi utilizzare per determinare se una o più funzionalità sono fortemente correlate alla funzionalità di destinazione.
+ Una visualizzazione personalizzata che utilizza il tuo codice. 

Utilizza le seguenti sezioni per avere ulteriori informazioni su queste opzioni.

## Recupero di informazioni approfondite sui dati e sulla loro qualità
<a name="canvas-data-insights"></a>

Utilizza il **Report della qualità e dei dettagli dei dati** per eseguire un'analisi dei dati che hai importato in Data Wrangler. Si consiglia di creare il report dopo l'importazione del set di dati. Puoi utilizzare il report per aiutarti a pulire ed elaborare i tuoi dati. Il report fornisce informazioni come il numero di valori mancanti e il numero di valori anomali. In caso di problemi con i dati, come la perdita o lo squilibrio di dati di destinazione, il report sulle informazioni può richiamare l'attenzione su tali problemi.

Utilizza la procedura seguente per creare un report Qualità e dettagli dei dati. Si presuppone che tu abbia già importato un set di dati nel flusso di Data Wrangler.

**Per creare un report Qualità e dettagli dei dati**

1. Scegli l’icona con tre puntini accanto a un nodo nel flusso di Data Wrangler.

1. Seleziona **Ottieni dettagli dei dati**.

1. In **Tipo di analisi**, seleziona **Report Qualità e informazioni approfondite sui dati**.

1. In **Nome dell'analisi**, specifica un nome per il report dei dettagli.

1. In **Tipo di problema**, specifica **Regressione** o **Classificazione**.

1. Nella **Colonna di destinazione**, specifica la colonna di destinazione.

1. In **Dimensione dei dati**, specifica uno dei seguenti valori:
   + **Set di dati campionato**: utilizza il campione interattivo prelevato dal tuo flusso di dati, che può contenere fino a 200.000 righe del tuo set di dati. Per informazioni su come modificare le dimensioni del campione, consulta [Modifica della configurazione per il campionamento del flusso di dati](canvas-data-flow-edit-sampling.md).
   + **Set di dati completo**: utilizza il set di dati completo dell’origine dati per creare il report.
**Nota**  
La creazione di un report Data Quality and Insights sull'intero set di dati utilizza un processo di SageMaker elaborazione Amazon. Un SageMaker processo di elaborazione fornisce le risorse di elaborazione aggiuntive necessarie per ottenere informazioni dettagliate su tutti i tuoi dati. Per ulteriori informazioni sui SageMaker processi di elaborazione, vedere[Carichi di lavoro di trasformazione dei dati con Processing SageMaker](processing-job.md).

1. Scegli **Create** (Crea).

I seguenti argomenti mostrano le sezioni del report:

**Topics**
+ [Riepilogo](#canvas-data-insights-summary)
+ [Colonna di destinazione](#canvas-data-insights-target-column)
+ [Modello rapido](#canvas-data-insights-quick-model)
+ [Sintesi delle funzionalità](#canvas-data-insights-feature-summary)
+ [Esempi](#canvas-data-insights-samples)
+ [Definizioni](#canvas-data-insights-definitions)

Puoi scaricare il report o visualizzarlo online. Per scaricare il report, scegli il pulsante di download nell'angolo in alto a destra dello schermo. 

### Riepilogo
<a name="canvas-data-insights-summary"></a>

Il report dei dettagli contiene un breve riepilogo dei dati che include informazioni generali come valori mancanti, valori non validi, tipi di funzionalità, conteggi dei valori anomali e altro ancora. Può anche includere avvisi di elevata gravità che indicano probabili problemi con i dati. Si consiglia di esaminare gi avvisi.

### Colonna di destinazione
<a name="canvas-data-insights-target-column"></a>

Quando crei il report di Qualità e informazioni approfondite sui dati, Data Wrangler ti offre la possibilità di selezionare una colonna di destinazione. Una colonna di destinazione è una colonna che stai cercando di prevedere. Quando scegli una colonna di destinazione, Data Wrangler crea automaticamente un'analisi della colonna di destinazione. Inoltre classifica le funzionalità in base al loro potere predittivo. Quando selezioni una colonna di destinazione, devi specificare se stai cercando di risolvere una regressione o un problema di classificazione.

Per la classificazione, Data Wrangler mostra una tabella e un istogramma delle classi più comuni. Una classe è una categoria. Presenta inoltre osservazioni, o righe, con un valore di destinazione mancante o non valido.

Per la regressione, Data Wrangler mostra un istogramma di tutti i valori nella colonna di destinazione. Presenta inoltre osservazioni, o righe, con un valore obiettivo mancante, non valido o anomalo.

### Modello rapido
<a name="canvas-data-insights-quick-model"></a>

Il **modello rapido** fornisce una stima della qualità prevista di un modello che si addestra sulla base dei dati.

Data Wrangler suddivide i dati in file di addestramento e convalida. Utilizza l'80% dei campioni per l’addestramento e il 20% dei valori per la convalida. Per la classificazione, il campione viene suddiviso in strati. Per una suddivisione stratificata, ogni partizione di dati ha la stessa percentuale di etichette. Per problemi di classificazione, è importante avere la stessa percentuale di etichette tra i fold di addestramento e di classificazione. Data Wrangler addestra il XGBoost modello con gli iperparametri predefiniti. Applica l'arresto anticipato dei dati di convalida ed esegue una preelaborazione minima delle funzionalità.

Per i modelli di classificazione, Data Wrangler restituisce sia un riepilogo del modello che una matrice di confusione.

 Per ulteriori informazioni sulle informazioni restituite dal riepilogo del modello di classificazione, consulta [Definizioni](#canvas-data-insights-definitions)

Una matrice di confusione fornisce le seguenti informazioni:
+ Il numero di volte in cui l'etichetta prevista corrisponde all'etichetta vera.
+ Il numero di volte in cui l'etichetta prevista non corrisponde all'etichetta vera.

L'etichetta vera rappresenta un'osservazione effettiva nei dati. Ad esempio, se utilizzi un modello per rilevare transazioni fraudolente, la vera etichetta rappresenta una transazione che è effettivamente fraudolenta o non fraudolenta. L'etichetta prevista rappresenta l'etichetta che il modello assegna ai dati.

Puoi utilizzare la matrice di confusione per vedere quanto bene il modello prevede la presenza o l'assenza di una condizione. Se prevedi transazioni fraudolente, puoi utilizzare la matrice di confusione per avere un'idea sia della sensibilità che della specificità del modello. La sensibilità si riferisce alla capacità del modello di rilevare transazioni fraudolente. La specificità si riferisce alla capacità del modello di evitare di rilevare transazioni non fraudolente come fraudolente.

### Sintesi delle funzionalità
<a name="canvas-data-insights-feature-summary"></a>

Quando specifichi una colonna di destinazione, Data Wrangler ordina le funzionalità in base alla loro potenza di previsione. La potenza di previsione viene misurata sui dati dopo averli suddivisi in gruppi con l’80% di dati di addestramento e il 20% di dati di convalida. Data Wrangler inserisce un modello per ogni funzionalità separatamente nella cartella di addestramento. Applica una preelaborazione minima delle funzionalità e misura le prestazioni di previsione sui dati di convalida.

Normalizza i punteggi nell'intervallo [0,1]. I punteggi di previsione più alti indicano le colonne più utili per prevedere da sole l'obiettivo. I punteggi più bassi indicano colonne che non sono predittive della colonna di destinazione.

È raro che una colonna che di per sé non è predittiva lo sia quando viene utilizzata insieme ad altre colonne. Puoi utilizzare con sicurezza i punteggi di previsione per determinare se una funzionalità del tuo set di dati è predittiva.

Un punteggio basso di solito indica che la funzionalità è ridondante. Un punteggio pari a 1 implica capacità predittive perfette, il che spesso indica una perdita dei dati di destinazione. La perdita dei dati di destinazione si verifica in genere quando il set di dati contiene una colonna che non è disponibile al momento della previsione. Ad esempio, potrebbe essere un duplicato della colonna di destinazione.

### Esempi
<a name="canvas-data-insights-samples"></a>

Data Wrangler fornisce informazioni sull'eventuale presenza di campioni anomali o duplicati nel set di dati.

Data Wrangler rileva campioni anomali utilizzando l'*algoritmo della foresta di isolamento*. La foresta di isolamento associa un punteggio di anomalia a ciascun campione (riga) del set di dati. Punteggi di anomalia bassi indicano campioni anomali. I punteggi più alti sono associati a campioni non anomali. I campioni con un punteggio di anomalia negativo sono generalmente considerati anomali e i campioni con un punteggio di anomalia positivo sono considerati non anomali.

Quando si esamina un campione che potrebbe essere anomalo, si consiglia di prestare attenzione ai valori insoliti. Ad esempio, potresti avere valori anomali derivanti da errori nella raccolta e nell'elaborazione dei dati. Di seguito è riportato un esempio dei campioni più anomali secondo l'implementazione dell'algoritmo della foresta di isolamento da parte di Data Wrangler. Si consiglia di utilizzare la conoscenza del dominio e la logica aziendale quando si esaminano i campioni anomali.

Data Wrangler rileva le righe duplicate e calcola il rapporto tra le righe duplicate nei dati. Alcune origini dati potrebbero includere duplicati validi. Altre origini dati potrebbero avere duplicati che indicano problemi nella raccolta dei dati. I campioni duplicati derivanti da una raccolta errata dei dati potrebbero interferire con i processi di machine learning che si basano sulla suddivisione dei dati in moduli di addestramento e convalida indipendenti.

Di seguito sono riportati alcuni elementi del rapporto di approfondimento che possono essere influenzati da campioni duplicati:
+ Modello rapido
+ Stima della potenza di previsione
+ Ottimizzazione automatica degli iperparametri

È possibile rimuovere campioni duplicati dal set di dati utilizzando la trasformazione **Elimina duplicati** in **Gestisci righe**. Data Wrangler mostra le righe duplicate più frequentemente.

### Definizioni
<a name="canvas-data-insights-definitions"></a>

Di seguito sono riportate le definizioni dei termini tecnici utilizzati nel report di analisi dei dati.

------
#### [ Feature types ]

Di seguito sono riportate le definizioni per ogni tipo di funzionalità:
+ **Numerico**: i valori numerici possono essere variabili o numeri interi, ad esempio età o reddito. I modelli di machine learning presuppongono che i valori numerici siano ordinati e su di essi sia definita una distanza. Ad esempio, 3 è più vicino a 4 che a 10 e 3 < 4 < 10.
+ **Categorico**: le voci della colonna appartengono a un set di valori univoci, che in genere è molto inferiore rispetto al numero di voci nella colonna. Ad esempio, una colonna di lunghezza 100 potrebbe contenere i valori univoci `Dog`, `Cat` e `Mouse`. I valori possono essere numerici, di testo o una combinazione di entrambi. `Horse`, `House`, `8`, `Love` e `3.1` sarebbero tutti valori validi e potrebbero essere trovati nella stessa colonna categorica. Il modello di machine learning non presuppone ordine o distanza sui valori delle funzionalità categoriali, a differenza delle funzionalità numeriche, anche quando tutti i valori sono numeri.
+ **Binario**: le funzionalità binarie sono un tipo di funzionalità categoriale speciale in cui la cardinalità dell'insieme di valori univoci è 2.
+ **Testo**: una colonna di testo contiene molti valori univoci non numerici. In casi estremi, tutti gli elementi della colonna sono unici. In un caso estremo, non esistono due voci uguali.
+ **Datetime**: una colonna datetime contiene informazioni sulla data o l'ora. Può contenere informazioni sia sulla data che sull'ora.

------
#### [ Feature statistics ]

Di seguito sono riportate le definizioni per ciascuna delle statistiche sulle funzionalità:
+ **Potenza di previsione**: la potenza di previsione misura l'utilità della colonna per prevedere l'obiettivo.
+ **Valori anomali** (in colonne numeriche): Data Wrangler rileva i valori anomali utilizzando due statistiche affidabili rispetto ai valori anomali: deviazione standard mediana e deviazione standard robusta (median and robust standard deviation, RSTD). RSTD è derivata ritagliando i valori delle funzionalità nell'intervallo [5 percentile, 95 percentile] e calcolando la deviazione standard del vettore ritagliato. Tutti i valori superiori alla mediana \$1 5 \$1 RSTD o inferiori alla mediana - 5 \$1 RSTD sono considerati valori anomali.
+ **Inclinazione** (in colonne numeriche): l'inclinazione misura la simmetria della distribuzione ed è definita come il terzo momento della distribuzione diviso per la terza potenza della deviazione standard. L'asimmetria della distribuzione normale o di qualsiasi altra distribuzione simmetrica è zero. I valori positivi implicano che la coda destra della distribuzione è più lunga della coda sinistra. I valori negativi implicano che la coda sinistra della distribuzione è più lunga della coda destra. Come regola generale, una distribuzione è considerata distorta quando il valore assoluto dell'inclinazione è maggiore di 3.
+ **Kurtosis** (in colonne numeriche): la kurtosis di Pearson misura la pesantezza della coda della distribuzione. È definita come il quarto momento della distribuzione diviso per il quadrato del secondo momento. La kurtosis della distribuzione normale è 3. Valori di kurtosis inferiori a 3 implicano che la distribuzione sia concentrata attorno alla media e che le code siano più leggere delle code della distribuzione normale. Valori di kurtosis superiori a 3 implicano code o valori anomali più pesanti.
+ **Valori mancanti**: gli oggetti di tipo NULL, le stringhe vuote e le stringhe composte solo da spazi bianchi sono considerati mancanti.
+ **Valori validi per funzionalità numeriche o obiettivi di regressione**: tutti i valori che è possibile convertire in numeri a virgola mobile finiti sono validi. I valori mancanti non sono validi.
+ **Valori validi per funzionalità categoriche, binarie o di testo o per l'obiettivo di classificazione**: tutti i valori che non mancano sono validi.
+ **Funzionalità datetime**: tutti i valori che è possibile trasmettere a un oggetto datetime sono validi. I valori mancanti non sono validi.
+ **Valori non validi**: valori mancanti o che non è possibile trasmettere correttamente. Ad esempio, in una colonna numerica, non è possibile inserire la stringa `"six"` o un valore nullo.

------
#### [ Quick model metrics for regression ]

Di seguito sono riportate le definizioni per le metriche del modello rapido:
+ R2 o coefficiente di determinazione): R2 è la proporzione della variazione dell'obiettivo prevista dal modello. R2 è compreso nell'intervallo [-infty, 1]. 1 è il punteggio del modello che prevede perfettamente l'obiettivo e 0 è il punteggio del modello banale che prevede sempre la media dell'obiettivo.
+ MSE o errore quadratico medio: MSE è compreso nell'intervallo [0, infty]. 0 è il punteggio del modello che prevede perfettamente l'obiettivo.
+ MAE o errore assoluto medio: MAE è compreso nell'intervallo [0, infty] dove 0 è il punteggio del modello che prevede perfettamente l'obiettivo.
+ RMSE o radice dell’errore quadratico medio: RMSE è compreso nell'intervallo [0, infty] dove 0 è il punteggio del modello che prevede perfettamente l'obiettivo.
+ Errore massimo: il valore assoluto massimo dell'errore nel set di dati. L'errore massimo è compreso nell'intervallo [0, infty]. 0 è il punteggio del modello che prevede perfettamente l'obiettivo.
+ Errore assoluto medio: l'errore assoluto medio è compreso nell'intervallo [0, infty]. 0 è il punteggio del modello che prevede perfettamente l'obiettivo.

------
#### [ Quick model metrics for classification ]

Di seguito sono riportate le definizioni per le metriche del modello rapido:
+ **Precisione**: la precisione è il rapporto tra campioni previsti con precisione. La precisione è compresa nell'intervallo [0, 1]. 0 è il punteggio del modello che prevede tutti i campioni in modo errato e 1 è il punteggio del modello perfetto.
+ **Precisione bilanciata**: la precisione bilanciata è il rapporto tra i campioni che viene previsto con precisione quando i pesi delle classi vengono regolati per bilanciare i dati. A tutte le classi viene data la stessa importanza, indipendentemente dalla frequenza. La precisione bilanciata è compresa nell'intervallo [0, 1]. 0 è il punteggio del modello che prevede tutti i campioni errati. 1 è il punteggio del modello perfetto.
+ **AUC (classificazione binaria)**: questa è l'area sotto la curva caratteristica operativa del ricevitore. L'AUC è nell'intervallo [0, 1] in cui un modello casuale restituisce un punteggio di 0,5 e il modello perfetto restituisce un punteggio di 1.
+ **AUC (OVR)**: per la classificazione multiclasse, si tratta dell'area sotto la curva caratteristica operativa del ricevitore calcolata separatamente per ciascuna etichetta utilizzando una contro la resto. Data Wrangler riporta la media delle aree. L'AUC è nell'intervallo [0, 1] in cui un modello casuale restituisce un punteggio di 0,5 e il modello perfetto restituisce un punteggio di 1.
+ **Precisione**: la precisione è definita per una classe specifica. La precisione è la frazione di veri positivi tra tutte le istanze classificate dal modello come tale classe. La precisione è compresa nell'intervallo [0, 1]. 1 è il punteggio del modello che non presenta falsi positivi per la classe. Per la classificazione binaria, Data Wrangler riporta la precisione della classe positiva.
+ **Recupero**: il recupero è definito per una classe specifica. Il recupero è la frazione delle istanze di classe pertinenti che vengono recuperate con successo. Il recupero è compreso nell'intervallo [0, 1]. 1 è il punteggio del modello che classifica correttamente tutte le istanze della classe. Per la classificazione binaria, Data Wrangler riporta il recupero della classe positiva.
+ **F1**: F1 è definito per una classe specifica. È la media armonica tra precisione e recupero. F1 è nell'intervallo [0, 1]. 1 è il punteggio del modello perfetto. Per la classificazione binaria, Data Wrangler riporta F1 per le classi con valori positivi.

------
#### [ Textual patterns ]

I **modelli** descrivono il formato testuale di una stringa utilizzando un formato di facile lettura. Di seguito sono riportati alcuni esempi di modelli testuali:
+ «\$1digits:4-7\$1» descrive una sequenza di cifre con una lunghezza compresa tra 4 e 7.
+ «\$1alnum:5\$1» descrive una stringa alfanumerica con una lunghezza esattamente di 5.

Data Wrangler deduce i modelli esaminando esempi di stringhe non vuote dai dati. Può descrivere molti dei modelli comunemente usati. La **attendibilità** espressa in percentuale indica la quantità di dati stimata in base al modello. Utilizzando lo schema testuale, puoi vedere quali righe dei dati devi correggere o eliminare.

Di seguito vengono descritti i modelli che Data Wrangler è in grado di riconoscere:


| Pattern | Formato testuale | 
| --- | --- | 
|  \$1album\$1  |  Stringhe alfanumeriche  | 
|  \$1any\$1  |  Qualsiasi stringa di caratteri di parole  | 
|  \$1digits\$1  |  Una sequenza di cifre  | 
|  \$1lower\$1  |  Una parola minuscola  | 
|  \$1mixed\$1  |  Una parola composta da maiuscole e minuscole  | 
|  \$1name\$1  |  Una parola che inizia con una lettera maiuscola  | 
|  \$1upper\$1  |  Una parola in maiuscolo  | 
|  \$1whitespace\$1  |  Caratteri di spazio  | 

Un carattere di parole è un carattere di sottolineatura o un carattere che può apparire in una parola in qualsiasi lingua. Ad esempio, le stringhe `'Hello_word'` e `'écoute'` sono entrambe costituite da caratteri di parole. 'H' e 'é' sono entrambi esempi di caratteri di parole.

------

## Report di bias
<a name="canvas-bias-report"></a>

SageMaker Canvas fornisce il rapporto sulle distorsioni in Data Wrangler per aiutarti a scoprire potenziali pregiudizi nei dati. Il report sui bias analizza la relazione tra la colonna di destinazione (etichetta) e una colonna che ritieni possa contenere bias (variabile facet). Ad esempio, se stai cercando di prevedere la conversione dei clienti, la variabile facet potrebbe essere l’età del cliente. Il report sui bias può aiutarti a determinare se i dati sono prevenuti o meno verso una determinata fascia di età.

Per generare un report sui bias in Canvas, procedi come descritto di seguito:

1. Nel flusso di dati in Data Wrangler, scegli l’icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) accanto a un nodo del flusso.

1. Dal menu contestuale, scegli **Ottieni informazioni approfondite sui dati**.

1. Si apre il pannello laterale **Crea analisi**. Nel menu a discesa **Tipo di analisi**, seleziona **Report sui bias**.

1.  Nel campo **Nome dell’analisi**, inserisci un nome per il report sui bias.

1. Nel menu a discesa **Seleziona la colonna prevista dal modello (destinazione)**, seleziona la colonna di destinazione.

1. In **La colonna prevista è un valore o una soglia?**, seleziona **Valore** se la colonna di destinazione contiene valori categorici o **Soglia** se contiene valori numerici.

1. In **Valore previsto** (o **Soglia prevista**, a seconda della selezione effettuata nella fase precedente), inserisci il valore o i valori della colonna di destinazione che corrispondono a un risultato positivo. Ad esempio, se la previsione riguarda la conversione dei clienti, il valore potrebbe essere `yes`, che indica l’acquisizione di un cliente.

1. Nel menu a discesa **Seleziona la colonna da analizzare per i bias**, seleziona la colonna che ritieni possa contenere bias, nota anche come variabile facet.

1. In **La colonna è un valore o una soglia?**, seleziona **Valore** se la variabile facet contiene valori categorici o **Soglia** se contiene valori numerici.

1. Per **Valori della colonna da analizzare per i bias** (o **Soglia della colonna per analizzare per i bias**, a seconda della selezione effettuata nella fase precedente), inserisci il valore o i valori da analizzare alla ricerca di eventuali bias. Ad esempio, se stai cercando bias nei confronti di clienti che hanno superato una certa età, indica come soglia l’età iniziale di questa fascia di età.

1. In **Scegli le metriche sui bias**, seleziona le metriche sui bias da includere nel report sui bias. Passa il mouse sulle icone informative per ulteriori dettagli su ciascuna metrica.

1. (Facoltativo) Quando viene chiesto **Vuoi analizzare metriche aggiuntive?**, seleziona **Sì** per visualizzare e includere altre metriche sui bias.

1. Quando è tutto pronto per creare il report sui bias, scegli **Aggiungi**.

Una volta generato, il report offre una panoramica delle metriche sui bias selezionate. Puoi visualizzare il report sui bias in qualsiasi momento dalla scheda **Analisi** del flusso di dati.

## Istogramma
<a name="canvas-visualize-histogram"></a>

Utilizza gli istogrammi per visualizzare i conteggi dei valori delle funzionalità per una funzionalità specifica. Puoi esaminare le relazioni tra le funzionalità utilizzando l'opzione **Colora per**.

Puoi utilizzare la funzionalità **Facet per** per creare istogrammi di una colonna, per ogni valore in un'altra colonna. 

## Grafico a dispersione
<a name="canvas-visualize-scatter-plot"></a>

Usa la funzionalità **Grafico a dispersione** per esaminare la relazione tra le funzionalità. Per creare un grafico a dispersione, seleziona una funzionalità da tracciare sull'**asse X** e sull'**asse Y**. Entrambe queste colonne devono essere colonne di tipo numerico. 

Puoi colorare i grafici a dispersione in base a una colonna aggiuntiva. 

Inoltre, puoi suddividere i grafici a dispersione in base alle funzionalità.

## Riepilogo della tabella
<a name="canvas-table-summary"></a>

Utilizza l'analisi **Riepilogo della tabella** per riepilogare rapidamente i dati.

Per le colonne con dati numerici, inclusi dati di log e float, una tabella di riepilogo riporta il numero di voci (conteggio), minimo (min), massimo (max), di media e deviazione standard (stddev) per ogni colonna.

Per le colonne con dati non numerici, incluse le colonne con stringhe, valori booleani o date/time dati, un riepilogo della tabella riporta il numero di voci (conteggio), il valore meno frequente (min) e il valore più frequente (max). 

## Modello rapido
<a name="canvas-quick-model"></a>

Usa la visualizzazione **Modello rapido** per valutare rapidamente i tuoi dati e generare punteggi di importanza per ogni funzionalità. Un [punteggio di importanza della funzionalità](http://spark.apache.org/docs/2.1.0/api/python/pyspark.ml.html#pyspark.ml.classification.DecisionTreeClassificationModel.featureImportances) indica quanto sia utile una funzionalità per prevedere un'etichetta di destinazione. Il punteggio di importanza della funzionalità è compreso tra [0, 1] e un numero più alto indica che la funzionalità è più importante per l'intero set di dati. Nella parte superiore del grafico del modello rapido, c'è un punteggio del modello. Un problema di classificazione mostra un punteggio in F1. Un problema di regressione ha un punteggio di errore quadratico medio (MSE).

Quando si crea un grafico di modello rapido, si seleziona un set di dati da valutare e un'etichetta di destinazione rispetto alla quale si desidera confrontare l'importanza delle funzionalità. Data Wrangler esegue le seguenti operazioni:
+ Deduce i tipi di dati per l'etichetta di destinazione e ogni funzionalità nel set di dati selezionato. 
+ Determina il tipo di problema. In base al numero di valori distinti nella colonna dell'etichetta, Data Wrangler determina se si tratta di un tipo di problema di regressione o classificazione. Data Wrangler imposta una soglia categorica su 100. Se ci sono più di 100 valori distinti nella colonna dell'etichetta, Data Wrangler lo classifica come un problema di regressione; in caso contrario, viene classificato come un problema di classificazione. 
+ Preelabora le funzionalità e i dati delle etichette per l’addestramento. L'algoritmo utilizzato richiede funzionalità di codifica in tipo vettoriale e etichette di codifica in doppio tipo. 
+ Addestra un algoritmo forestale casuale con il 70% dei dati. Spark's [RandomForestRegressor](https://spark.apache.org/docs/latest/ml-classification-regression.html#random-forest-regression)viene utilizzato per addestrare un modello per problemi di regressione. [RandomForestClassifier](https://spark.apache.org/docs/latest/ml-classification-regression.html#random-forest-classifier)Viene utilizzato per addestrare un modello per problemi di classificazione.
+ Valuta un modello di foresta casuale con il restante 30% di dati. Data Wrangler valuta i modelli di classificazione utilizzando un punteggio F1 e valuta i modelli di regressione utilizzando un punteggio MSE.
+ Calcola l'importanza delle funzionalità per ogni funzionalità utilizzando il metodo di importanza Gini. 

## Target leakage
<a name="canvas-analysis-target-leakage"></a>

La perdita dei dati di destinazione si verifica quando in un set di dati di addestramento di machine learning sono presenti dati fortemente correlati all'etichetta di destinazione, ma non disponibili nei dati del mondo reale. Ad esempio, è possibile che nel set di dati sia presente una colonna che funge da proxy per la colonna che si desidera prevedere con il modello. 

Quando utilizzi l'analisi **Perdita di dati di destinazione**, devi specificare quanto segue:
+ **Destinazione**: questa è la funzionalità in merito alla quale desideri che il tuo modello ML sia in grado di fare previsioni.
+ **Tipo di problema**: questo è il tipo di problema di machine learning su cui stai lavorando. Il tipo di problema può essere di **classificazione** o **regressione**. 
+  (Facoltativo) **Numero massimo di funzionalità**: si tratta del numero massimo di funzionalità da presentare nella visualizzazione, che mostra le funzionalità classificate in base al rischio di perdita di dati.

Per la classificazione, l'analisi della perdita di dati di destinazione utilizza l'area sotto la funzionalità operativa del ricevitore, o la curva AUC - ROC per ogni colonna, fino alle **funzionalità max.** Per la regressione, utilizza un coefficiente di determinazione, o parametro R2.

La curva AUC - ROC fornisce un parametro predittivo, calcolato individualmente per ogni colonna utilizzando la convalida incrociata, su un campione di un massimo di circa 1000 righe. Un punteggio pari a 1 indica capacità predittive perfette, il che spesso indica una perdita dei dati di destinazione. Un punteggio pari o inferiore a 0,5 indica che le informazioni sulla colonna non sono in grado di fornire, da sole, alcuna informazione utile per prevedere l'obiettivo. Anche se può succedere che una colonna di per sé non sia informativa ma sia utile per prevedere l'obiettivo se utilizzata insieme ad altre funzionalità, un punteggio basso potrebbe indicare che la funzionalità è ridondante.

## Multicollinearità
<a name="canvas-multicollinearity"></a>

La multicollinearità è una circostanza in cui due o più variabili predittive sono correlate tra loro. Le variabili predittive sono le funzionalità del set di dati che utilizzi per prevedere una variabile di destinazione. In presenza di multicollinearità, le variabili predittive non sono solo predittive della variabile di destinazione, ma anche predittive l'una dell'altra.

Puoi utilizzare il **fattore di inflazione della varianza (Variance Inflation Factor, VIF)**, l’**analisi delle componenti principali (Principal Component Analysis, PCA)** o la **selezione delle funzionalità Lasso** come misure per la multicollinearità dei dati. Per ulteriori informazioni, consulta gli argomenti seguenti.

------
#### [ Variance Inflation Factor (VIF) ]

Il fattore di inflazione della varianza (VIF) è una misura della collinearità tra coppie di variabili. Data Wrangler restituisce un punteggio VIF come misura della stretta relazione tra le variabili. Un punteggio VIF rappresenta un numero positivo maggiore o uguale a 1.

Un punteggio pari a 1 significa che la variabile non è correlata con le altre variabili. I punteggi superiori a 1 indicano una correlazione più elevata.

In teoria, puoi avere un punteggio VIF con un valore infinito. Data Wrangler porta i punteggi più alti a 50. Se hai un punteggio VIF superiore a 50, Data Wrangler imposta il punteggio su 50.

Puoi utilizzare le seguenti linee guida per l'interpretazione dei punteggi VIF:
+ Un punteggio VIF inferiore o uguale a 5 indica che le variabili sono moderatamente correlate con le altre variabili.
+ Un punteggio VIF maggiore o uguale a 5 indica che le variabili sono altamente correlate con le altre variabili.

------
#### [ Principle Component Analysis (PCA) ]

L’analisi delle componenti principali (PCA) misura la varianza dei dati lungo diverse direzioni nello spazio delle funzionalità. Lo spazio delle funzionalità è costituito da tutte le variabili predittive utilizzate per prevedere la variabile di destinazione nel set di dati.

Ad esempio, se stai cercando di prevedere chi è sopravvissuto sull'*RMS Titanic* dopo che questo ha colpito un iceberg, lo spazio delle funzionalità può includere l'età, il sesso e la tariffa pagata dai passeggeri.

Dallo spazio delle funzionalità, PCA genera un elenco ordinato di variazioni. Queste variazioni sono definite anche valori singolari. I valori nell'elenco delle varianze sono maggiori o uguali a 0. Possiamo usarli per determinare la quantità di multicollinearità presente nei nostri dati.

Quando i numeri sono più o meno uniformi, i dati presentano pochissime istanze di multicollinearità. Quando esiste molta variabilità tra i valori, abbiamo molti casi di multicollinearità. Prima di eseguire la PCA, Data Wrangler normalizza ogni funzionalità in modo che abbia una media di 0 e una deviazione standard di 1.

**Nota**  
La PCA in questa circostanza può anche essere denominata decomposizione dei singoli valori (Singular Value Decomposition, SVD).

------
#### [ Lasso feature selection ]

La selezione delle funzionalità Lasso utilizza la tecnica di regolarizzazione L1 per includere solo le funzionalità più predittive nel set di dati.

Sia per la classificazione che per la regressione, la tecnica di regolarizzazione genera un coefficiente per ogni funzionalità. Il valore assoluto del coefficiente fornisce un punteggio di importanza per la funzionalità. Un punteggio di importanza più elevato indica che è più predittivo della variabile di destinazione. Un metodo di selezione delle funzionalità comune consiste nell'utilizzare tutte le funzionalità con un coefficiente di lasso diverso da zero.

------

## Rilevamento delle anomalie nei dati di serie temporali
<a name="canvas-time-series-anomaly-detection"></a>

Puoi utilizzare la visualizzazione del rilevamento delle anomalie per individuare i valori anomali nei dati di serie temporali. Per comprendere cosa determina un'anomalia, devi capire che scomponiamo le serie temporali in un termine previsto e un termine di errore. Consideriamo la stagionalità e l'andamento delle serie temporali come termine previsto. Trattiamo i residui come termine di errore.

Per il termine di errore, si specifica una soglia come il numero di deviazioni standard, il residuo può essere lontano dalla media perché venga considerato un'anomalia. Ad esempio, puoi specificare una soglia come 3 deviazioni standard. Qualsiasi residuo superiore a 3 deviazioni standard dalla media è un'anomalia.

È possibile utilizzare la procedura seguente per eseguire un'analisi di **rilevamento delle anomalie**.

1. Apri il flusso di dati Data Wrangler.

1. Nel flusso di dati, in **Tipi di dati**, scegli **\$1** e seleziona **Aggiungi analisi**.

1. Per **Tipo di analisi**, scegli **Serie temporali**.

1. Per **Visualizzazione**, scegli **Rilevamento delle anomalie**.

1. Per **Soglia di anomalia**, scegli la soglia per cui un valore è considerato un'anomalia.

1. Scegli **Anteprima** per generare un'anteprima dell'analisi.

1. Scegli **Aggiungi** per aggiungere la trasformazione al flusso di dati di Data Wrangler.

## Scomposizione delle tendenze stagionali nei dati di serie temporali
<a name="canvas-seasonal-trend-decomposition"></a>

Puoi determinare se esiste una stagionalità nei dati di serie temporali utilizzando la visualizzazione Scomposizione delle tendenze stagionali. Utilizziamo il metodo STL (Seasonal Trend decomposition using LOESS) per eseguire la scomposizione. Scomponiamo le serie temporali nelle sue componenti stagionali, di tendenza e residue. La tendenza riflette la progressione a lungo termine della serie. La componente stagionale è un segnale che ricorre in un determinato periodo di tempo. Dopo aver rimosso la tendenza e le componenti stagionali dalla serie temporale, si ottiene il residuo.

È possibile utilizzare la procedura seguente per eseguire un'analisi della **scomposizione delle tendenze stagionali.**

1. Apri il flusso di dati Data Wrangler.

1. Nel flusso di dati, in **Tipi di dati**, scegli **\$1** e seleziona **Aggiungi analisi**.

1. Per **Tipo di analisi**, scegli **Serie temporali**.

1. Per **Visualizzazione**, scegli **Scomposizione delle tendenze stagionali**.

1. Per **Soglia di anomalia**, scegli la soglia per cui un valore è considerato un'anomalia.

1. Scegli **Anteprima** per generare un'anteprima dell'analisi.

1. Scegli **Aggiungi** per aggiungere la trasformazione al flusso di dati di Data Wrangler.

## Creazione di visualizzazioni personalizzate
<a name="canvas-visualize-custom"></a>

Puoi aggiungere un'analisi al flusso di Data Wrangler per creare una visualizzazione personalizzata. [Il tuo set di dati, con tutte le trasformazioni che hai applicato, è disponibile come Pandas. DataFrame](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html) Data Wrangler utilizza la variabile per memorizzare il dataframe. `df` Puoi accedere al dataframe chiamando la variabile.

Devi fornire la variabile di output, `chart`, per memorizzare un grafico di output [Altair](https://altair-viz.github.io/). Ad esempio, puoi utilizzare il seguente blocco di codice per creare un istogramma personalizzato utilizzando il set di dati del Titanic.

```
import altair as alt
df = df.iloc[:30]
df = df.rename(columns={"Age": "value"})
df = df.assign(count=df.groupby('value').value.transform('count'))
df = df[["value", "count"]]
base = alt.Chart(df)
bar = base.mark_bar().encode(x=alt.X('value', bin=True, axis=None), y=alt.Y('count'))
rule = base.mark_rule(color='red').encode(
    x='mean(value):Q',
    size=alt.value(5))
chart = bar + rule
```

**Per creare una visualizzazione personalizzata:**

1. Accanto al nodo contenente la trasformazione che desideri visualizzare, scegli **\$1**.

1. Scegli **Aggiungi analisi**.

1. Per **Tipo di analisi**, scegli **Visualizzazione personalizzata**.

1. Per **Nome dell'analisi**, specifica un nome.

1. Inserisci il codice nella casella del codice. 

1. Scegli **Anteprima** per visualizzare in anteprima la visualizzazione.

1. Scegli **Salva** per aggiungere la tua visualizzazione.

Se non sai come usare il pacchetto di visualizzazione Altair in Python, puoi usare frammenti di codice personalizzati per iniziare.

Data Wrangler dispone di una raccolta ricercabile di frammenti di visualizzazione. Per utilizzare uno snippet di visualizzazione, scegli **Cerca frammenti di esempio** e specifica una query nella barra di ricerca.

L'esempio seguente utilizza lo snippet di codice **Scatterplot Binned**. Traccia un istogramma per 2 dimensioni.

Gli snippet contengono commenti per aiutarti a comprendere le modifiche da apportare al codice. In genere è necessario specificare i nomi delle colonne del set di dati nel codice.

```
import altair as alt

# Specify the number of top rows for plotting
rows_number = 1000
df = df.head(rows_number)  
# You can also choose bottom rows or randomly sampled rows
# df = df.tail(rows_number)
# df = df.sample(rows_number)


chart = (
    alt.Chart(df)
    .mark_circle()
    .encode(
        # Specify the column names for binning and number of bins for X and Y axis
        x=alt.X("col1:Q", bin=alt.Bin(maxbins=20)),
        y=alt.Y("col2:Q", bin=alt.Bin(maxbins=20)),
        size="count()",
    )
)

# :Q specifies that label column has quantitative type.
# For more details on Altair typing refer to
# https://altair-viz.github.io/user_guide/encoding.html#encoding-data-types
```

# Trasformazione dei dati
<a name="canvas-transform"></a>

Amazon SageMaker Data Wrangler offre numerose trasformazioni di dati ML per semplificare la pulizia e la personalizzazione dei dati. Utilizzando gli strumenti interattivi di preparazione dei dati di Data Wrangler, puoi campionare set di dati di qualsiasi dimensione con diverse tecniche di campionamento e iniziare a esplorare i dati in pochi minuti. Dopo aver finalizzato le trasformazioni sui dati campionati, puoi scalare il flusso di dati per applicare tali trasformazioni all’intero set di dati.

Quando aggiungi una trasformazione, aggiunge una fase al flusso di dati. Ogni trasformazione aggiunta modifica il set di dati e produce un nuovo dataframe. Tutte le trasformazioni successive si applicano al dataframe risultante.

Data Wrangler include trasformazioni integrate, che puoi utilizzare per trasformare le colonne senza alcun codice. Se sai come preparare i dati ma non sai come iniziare o quali trasformazioni utilizzare, puoi ricorrere alla funzionalità di preparazione dei dati della chat per interagire in modo colloquiale con Data Wrangler e applicare le trasformazioni con il linguaggio naturale. Per ulteriori informazioni, consulta [Chat per la preparazione dei dati](canvas-chat-for-data-prep.md). 

Puoi anche aggiungere trasformazioni personalizzate utilizzando PySpark Python (funzione definita dall'utente), panda e SQL. PySpark Alcune trasformazioni funzionano sul posto, mentre altre creano una nuova colonna di output nel set di dati.

È possibile applicare le trasformazioni a più colonne contemporaneamente. Ad esempio, puoi eliminare più colonne in un’unica fase.

Puoi applicare le trasformazioni **Elabora valori numerici** e **Gestisci valori mancanti** solo a una singola colonna.

Utilizza questa pagina per saperne di più sulle trasformazioni integrate e personalizzate offerte da Data Wrangler.

## Unire i set di dati
<a name="canvas-transform-join"></a>

Puoi eseguire il join dei set di dati direttamente nel tuo flusso di dati. Quando unisci due set di dati, il set di dati unito risultante viene visualizzato nel flusso. I seguenti tipi di unione sono supportati da Data Wrangler.
+ **Sinistra esterno**: include tutte le righe della tabella a sinistra. Se il valore della colonna unita in una riga della tabella sinistra non corrisponde a nessun valore della riga della tabella destra, tale riga contiene valori nulli per tutte le colonne della tabella destra nella tabella unita.
+ **Sinistra anteriore**: include le righe della tabella a sinistra che non contengono valori nella tabella a destra per la colonna con join.
+ **Sinistra parziale**: include una sola riga della tabella a sinistra per tutte le righe identiche che soddisfano i criteri dell'istruzione di unione. Ciò esclude le righe duplicate dalla tabella a sinistra che corrispondono ai criteri dell'unione.
+ **Destra esterno**: include tutte le righe della tabella a destra. Se il valore della colonna unita in una riga della tabella destra non corrisponde a nessun valore della riga della tabella sinistra, quella riga contiene valori nulli per tutte le colonne della tabella sinistra nella tabella unita.
+ **Interno**: include le righe delle tabelle sinistra e destra che contengono valori corrispondenti nella colonna unita. 
+ **Completo esterno**: include tutte le righe delle tabelle a sinistra e a destra. Se il valore della riga per la colonna unita in una delle due tabelle non corrisponde, vengono create righe separate nella tabella unita. Se una riga non contiene un valore per una colonna nella tabella unita, viene inserito null per quella colonna.
+ **Croce cartesiana**: include le righe che combinano ogni riga della prima tabella con ogni riga della seconda tabella. Si tratta di un [Prodotto cartesiano](https://en.wikipedia.org/wiki/Cartesian_product) delle righe delle tabelle dell'unione. Il risultato di questo prodotto è la dimensione della tabella sinistra moltiplicata per la dimensione della tabella destra. Pertanto, consigliamo cautela nell'utilizzo di questa unione tra set di dati molto grandi. 

Utilizza la procedura seguente per eseguire il join di due set di dati. Dovresti aver già importato due origini dati nel tuo flusso di dati.

1. Seleziona l’icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) accanto al nodo a sinistra di cui eseguire il join. Il primo nodo selezionato è sempre la tabella a sinistra del join. 

1. Passa il mouse su **Combina dati**, quindi scegli **Esegui join**.

1. Seleziona il nodo a destra. Il secondo nodo selezionato è sempre la tabella a destra del join.

1. Il campo **Tipo di join** è impostato su **Join interno** per impostazione predefinita. Seleziona il menu a discesa per modificare il tipo di join.

1. In **Chiavi di join**, verifica le colonne delle tabelle a sinistra e a destra da utilizzare per eseguire il join dei dati. Puoi aggiungere o rimuovere altre chiavi di join.

1. In **Nome del join**, inserisci un nome per i dati di cui viene eseguito il join o utilizza il nome predefinito.

1. (Facoltativo) Scegli **Anteprima** per visualizzare in anteprima i dati di cui è stato eseguito il join.

1. Scegli **Aggiungi** per completare il join.

**Nota**  
Se ricevi una notifica secondo cui Canvas non ha identificato alcuna riga corrispondente durante il join dei dati, ti consigliamo di verificare di aver selezionato le colonne corrette o di aggiornare il campione per cercare di trovare le righe corrispondenti. Puoi scegliere una strategia di campionamento diversa o modificare la dimensione del campione. Per informazioni su come modificare il campione, consulta [Modifica della configurazione per il campionamento del flusso di dati](canvas-data-flow-edit-sampling.md).

A questo punto, dovresti vedere un nodo di join aggiunto al tuo flusso di dati.

## Concatena i set di dati
<a name="canvas-transform-concatenate"></a>

La concatenazione combina due set di dati aggiungendo le righe da un set di dati all’altro.

Utilizza la procedura seguente per concatenare due set di dati. Dovresti aver già importato due origini dati nel tuo flusso di dati.

**Per concatenare due set di dati:**

1. Seleziona l’icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) accanto al nodo a sinistra da concatenare. Il primo nodo selezionato è sempre la tabella a sinistra dell’operazione di concatenazione. 

1. Passa il mouse su **Combina dati**, quindi scegli **Concatena**.

1. Seleziona il nodo a destra. Il secondo nodo selezionato è sempre la tabella a destra della concatenazione.

1. (Facoltativo) Seleziona la casella di controllo accanto a **Rimuovi duplicati dopo la concatenazione** per rimuovere le colonne duplicate. 

1. (Facoltativo) Seleziona la casella di controllo accanto ad **Aggiungi colonna per indicare il dataframe di origine** per aggiungere una colonna al dataframe risultante che elenca il set di dati di origine per ogni record.

   1. In **Nome della colonna dell’indicatore**, inserisci un nome per la colonna aggiunta.

   1. In **Stringa che indica il primo set di dati**, inserisci il valore da utilizzare per contrassegnare i record del primo set di dati (o nodo a sinistra).

   1. In **Stringa che indica il secondo set di dati**, inserisci il valore da utilizzare per contrassegnare i record del secondo set di dati (o nodo a destra).

1. In **Nome della concatenazione**, inserisci un nome per la concatenazione.

1. (Facoltativo) Scegli **Anteprima** per visualizzare in anteprima i dati concatenati.

1. Scegli **Aggiungi** per aggiungere il nuovo set di dati al flusso di dati. 

A questo punto, dovresti vedere un nodo concatenato aggiunto al tuo flusso di dati.

## Bilanciamento dei dati
<a name="canvas-transform-balance-data"></a>

È possibile bilanciare i dati dei set di dati con una categoria sottorappresentata. Il bilanciamento di un set di dati può aiutarti a creare modelli migliori per la classificazione binaria.

**Nota**  
Non è possibile bilanciare set di dati contenenti vettori di colonna.

È possibile utilizzare l'operazione **Bilancia dati** per bilanciare i dati utilizzando uno dei seguenti operatori:
+ *Sovracampionamento casuale*: duplica in modo casuale i campioni della categoria minoritaria. Ad esempio, se stai cercando di rilevare frodi, potresti avere casi di frode solo nel 10% dei tuoi dati. Per una proporzione uguale di casi fraudolenti e non fraudolenti, questo operatore duplica casualmente i casi di frode all'interno del set di dati per 8 volte.
+ *Sottocampionamento casuale*: all'incirca equivalente al sovracampionamento casuale. Rimuove in modo casuale i campioni dalla categoria sovrarappresentata per ottenere la proporzione di campioni desiderata.
+ *Synthetic Minority Oversampling Technique (SMOTE)*: utilizza campioni della categoria sottorappresentata per interpolare nuovi campioni sintetici minoritari. Per ulteriori informazioni su SMOTE, consulta la descrizione seguente.

È possibile utilizzare tutte le trasformazioni per set di dati contenenti caratteristiche sia numeriche che non numeriche. SMOTE interpola i valori utilizzando campioni adiacenti. Data Wrangler utilizza la distanza R al quadrato per determinare l'area circostante per interpolare i campioni aggiuntivi. Data Wrangler utilizza solo caratteristiche numeriche per calcolare le distanze tra i campioni del gruppo sottorappresentato.

Per due campioni reali nel gruppo sottorappresentato, Data Wrangler interpola le caratteristiche numeriche utilizzando una media ponderata. Assegna in modo casuale dei pesi a quei campioni nell'intervallo di [0, 1]. Per quanto riguarda le caratteristiche numeriche, Data Wrangler interpola i campioni utilizzando una media ponderata dei campioni. Per i campioni A e B, Data Wrangler può assegnare in modo casuale un peso di 0,7 ad A e 0,3 a B. Il campione interpolato ha un valore di 0,7A \$1 0,3B.

Data Wrangler interpola caratteristiche non numeriche copiando da uno dei campioni reali interpolati. Copia i campioni con una probabilità che assegna casualmente a ciascun campione. Per i campioni A e B, può assegnare probabilità 0,8 a A e 0,2 a B. Per le probabilità assegnate, copia A l'80% delle volte.

## Trasformazioni personalizzate
<a name="canvas-transform-custom"></a>

Il gruppo **Custom Transforms** consente di utilizzare Python (User-Defined Function) PySpark, panda PySpark o (SQL) per definire trasformazioni personalizzate. Per tutte e tre le opzioni, utilizza la variabile per accedere al dataframe `df` a cui desideri applicare la trasformazione. Per applicare il codice personalizzato al dataframe, assegna al dataframe le trasformazioni che hai apportato alla variabile `df`. Se non utilizzi Python (funzione definita dall'utente), non devi includere un'istruzione restituita. Scegli **Anteprima** per visualizzare in anteprima il risultato della trasformazione personalizzata. Scegli **Aggiungi** per aggiungere la trasformazione personalizzata all'elenco delle **fasi precedenti**.

Puoi importare le librerie più diffuse con un'istruzione `import` nel blocco di codice di trasformazione personalizzata, come il seguente:
+ NumPy versione 1.19.0
+ scikit-learn versione 0.23.2
+ SciPy versione 1.5.4
+ pandas versione 1.0.3
+ PySpark versione 3.0.0

**Importante**  
La **Trasformazione personalizzata** non supporta colonne con spazi o caratteri speciali nel nome. Ti consigliamo di specificare nomi di colonna che contengano solo caratteri alfanumerici e caratteri di sottolineatura. È possibile utilizzare la trasformazione **Rinomina colonna** nel gruppo di trasformazione **Gestisci colonne** per rimuovere gli spazi dal nome di una colonna. Puoi anche aggiungere una **Trasformazione personalizzata** in **Python (Pandas)** simile alla seguente per rimuovere gli spazi da più colonne in un’unica fase. Questo esempio modifica rispettivamente le colonne denominate `A column` e `B column` in `A_column` e `B_column`   

```
df.rename(columns={"A column": "A_column", "B column": "B_column"})
```

Se includi istruzioni di stampa nel blocco di codice, il risultato viene visualizzato quando selezioni **Anteprima**. È possibile ridimensionare il pannello di trasformatore del codice personalizzato. Il ridimensionamento del pannello offre più spazio per scrivere codici. 

Le sezioni seguenti forniscono contesto ed esempi aggiuntivi per la scrittura del codice di trasformazione personalizzata.

**Python (funzione definita dall'utente)**

La funzione Python ti dà la possibilità di scrivere trasformazioni personalizzate senza dover conoscere Apache Spark o pandas. Data Wrangler è ottimizzato per eseguire rapidamente il codice personalizzato. Ottieni prestazioni simili utilizzando codice Python personalizzato e un plug-in Apache Spark.

Per utilizzare il blocco di codice Python (Funzione definita dall'utente), specifica quanto segue:
+ **Colonna di input**: la colonna di input in cui si applica la trasformazione.
+ **Modalità**: la modalità di scripting, pandas o Python.
+ **Tipo restituito**: il tipo di dati del valore che stai restituendo.

L'uso della modalità pandas offre prestazioni migliori. La modalità Python semplifica la scrittura di trasformazioni utilizzando funzioni Python pure.

**PySpark**

L'esempio seguente estrae data e ora da un timestamp.

```
from pyspark.sql.functions import from_unixtime, to_date, date_format
df = df.withColumn('DATE_TIME', from_unixtime('TIMESTAMP'))
df = df.withColumn( 'EVENT_DATE', to_date('DATE_TIME')).withColumn(
'EVENT_TIME', date_format('DATE_TIME', 'HH:mm:ss'))
```

**pandas**

L'esempio seguente fornisce una panoramica del dataframe a cui si sta aggiungendo le trasformazioni. 

```
df.info()
```

**PySpark (SQL)**

L'esempio seguente crea un nuovo dataframe con quattro colonne: *nome*, *fare*, *pclass*, *survived*.

```
SELECT name, fare, pclass, survived FROM df
```

Se non sai come usare PySpark, puoi usare frammenti di codice personalizzati per aiutarti a iniziare.

Data Wrangler ha una raccolta ricercabile di frammenti di codice. È possibile utilizzare i frammenti di codice per eseguire attività come eliminare colonne, raggruppare per colonne o modellare.

Per utilizzare un frammento di codice, scegli **Cerca frammenti di esempio e specifica una query nella barra di ricerca**. Il testo specificato nella query non deve necessariamente corrispondere esattamente al nome del frammento di codice.

L'esempio seguente mostra un frammento di codice **Elimina le righe duplicate** che può eliminare righe con dati simili nel set di dati. Puoi trovare il frammento di codice cercando uno dei seguenti:
+ Duplicato
+ Identico
+ Rimuovi

Il seguente frammento contiene commenti per aiutarti a comprendere le modifiche da apportare. Per la maggior parte dei frammenti, è necessario specificare i nomi delle colonne del set di dati nel codice.

```
# Specify the subset of columns
# all rows having identical values in these columns will be dropped

subset = ["col1", "col2", "col3"]
df = df.dropDuplicates(subset)  

# to drop the full-duplicate rows run
# df = df.dropDuplicates()
```

Per utilizzare un frammento, copia e incolla il suo contenuto nel campo **Trasformazione personalizzata.** Puoi copiare e incollare più frammenti di codice nel campo Trasformazione personalizzata.

## Formula personalizzata
<a name="canvas-transform-custom-formula"></a>

Usa la **Formula personalizzata** per definire una nuova colonna usando un'espressione SQL Spark per effettuare la query dei dati nel dataframe corrente. La query deve utilizzare le convenzioni delle espressioni SQL di Spark.

**Importante**  
La **Formula personalizzata** non supporta colonne con spazi o caratteri speciali nel nome. Ti consigliamo di specificare nomi di colonna che contengano solo caratteri alfanumerici e caratteri di sottolineatura. È possibile utilizzare la trasformazione **Rinomina colonna** nel gruppo di trasformazione **Gestisci colonne** per rimuovere gli spazi dal nome di una colonna. Puoi anche aggiungere una **Trasformazione personalizzata** in **Python (Pandas)** simile alla seguente per rimuovere gli spazi da più colonne in un’unica fase. Questo esempio modifica rispettivamente le colonne denominate `A column` e `B column` in `A_column` e `B_column`   

```
df.rename(columns={"A column": "A_column", "B column": "B_column"})
```

È possibile utilizzare questa trasformazione per eseguire operazioni sulle colonne, facendo riferimento alle colonne per nome. Ad esempio, supponendo che il dataframe corrente contenga colonne denominate *col\$1a* e *col\$1b*, è possibile utilizzare la seguente operazione per produrre una **colonna di output** che sia il prodotto di queste due colonne con il codice seguente:

```
col_a * col_b
```

Altre operazioni comuni includono le seguenti, supponendo che un dataframe contenga `col_a` e `col_b` colonne:
+ Concatena due colonne: `concat(col_a, col_b)`
+ Aggiungi due colonne: `col_a + col_b`
+ Sottrai due colonne: `col_a - col_b`
+ Dividi due colonne: `col_a / col_b`
+ Prendi il valore assoluto di una colonna: `abs(col_a)`

Per maggiori informazioni, consulta la [documentazione di Spark](http://spark.apache.org/docs/latest/api/python) sulla selezione dei dati. 

## Ridurre la dimensionalità all'interno di un set di dati
<a name="canvas-transform-dimensionality-reduction"></a>

Riduci la dimensionalità dei dati utilizzando Principal Component Analysis (PCA). La dimensionalità del set di dati corrisponde al numero di funzionalità. Quando si utilizza la riduzione della dimensionalità in Data Wrangler, si ottiene un nuovo set di funzionalità chiamate componenti. Ogni componente rappresenta una certa variabilità nei dati.

Il primo componente rappresenta la maggiore quantità di variazioni nei dati. Il secondo componente rappresenta la seconda maggiore quantità di variazioni nei dati e così via.

È possibile utilizzare la riduzione della dimensionalità per ridurre le dimensioni dei set di dati utilizzati per addestrare i modelli. Invece di utilizzare le funzionalità del set di dati, è possibile utilizzare i componenti principali.

Per eseguire la PCA, Data Wrangler crea assi per i dati. Un asse è una combinazione affine di colonne nel set di dati. Il primo componente principale è il valore sull'asse che presenta la maggiore varianza. Il secondo componente principale è il valore sull'asse che presenta la seconda maggiore varianza. L'ennesima componente principale è il valore sull'asse che presenta l'ennesima maggiore varianza.

È possibile configurare il numero di componenti principali restituiti da Data Wrangler. È possibile specificare direttamente il numero di componenti principali oppure specificare la percentuale di soglia di varianza. Ogni componente principale spiega una quantità di varianza nei dati. Ad esempio, si potrebbe disporre di un componente principale con un valore di 0,5. Il componente spiegherebbe il 50% della variazione dei dati. Quando si specifica una percentuale di soglia di varianza, Data Wrangler restituisce il numero minimo di componenti che soddisfano la percentuale specificata.

Di seguito sono riportati alcuni esempi di componenti principali con la quantità di varianza che spiegano nei dati.
+ Componente 1 – 0,5
+ Componente 2 – 0,45
+ Componente 3 – 0,05

Se si specifica una percentuale di soglia di varianza pari a `94` o`95`, Data Wrangler restituisce Component 1 e Component 2. Se si specifica una percentuale di soglia di varianza di `96`, Data Wrangler restituisce tutti e tre i componenti principali.

Si può utilizzare la procedura seguente per eseguire PCA sul set di dati.

Per eseguire PCA sul set di dati, completare le seguenti operazioni.

1. Apri il flusso di dati Data Wrangler.

1. Scegli il **segno \$1** e seleziona **Aggiungi**.

1. Scegli **Aggiungi fase**.

1. Scegli **riduzione della dimensionalità**.

1. Per **Colonne di input**, scegli le funzionalità da ridurre ai componenti principali.

1. (Facoltativo) Per **Numero di componenti principali**, scegli il numero di componenti principali che Data Wrangler restituisce nel tuo set di dati. Se si specifica un valore per il campo, non è possibile specificare un valore per la **Percentuale della soglia di varianza**.

1. (Facoltativo) Per la **Percentuale della soglia di varianza**, specifica la percentuale di variazione dei dati che desideri venga spiegata dai componenti principali. Data Wrangler utilizza il valore predefinito `95` se non specifichi un valore per la soglia di varianza. Non puoi specificare una percentuale di soglia di varianza se hai specificato un valore per il **Numero di componenti principali**.

1. (Facoltativo) Deseleziona **Centro** per non utilizzare la media delle colonne come centro dei dati. Per impostazione predefinita, Data Wrangler centra i dati con la media prima del ridimensionamento.

1. (Facoltativo) Deseleziona **Scala** per non ridimensionare i dati con la deviazione standard unitaria.

1. (Facoltativo) Scegli **Colonne** per esportare i componenti in colonne separate. Scegli **Vettore** per visualizzare i componenti come un unico vettore.

1. (Facoltativo) Per la **Colonna di output**, specificate un nome per una colonna di output. Se stai inviando i componenti in colonne separate, il nome specificato è un prefisso. Se stai inviando i componenti in un vettore, il nome specificato è il nome della colonna vettoriale.

1. (Facoltativo) Seleziona **Mantieni le colonne di input**. Non consigliamo di selezionare questa opzione se prevedi di utilizzare solo i componenti principali per addestrare il tuo modello.

1. Scegli **Anteprima**.

1. Scegli **Aggiungi**.

## Codifica categorica
<a name="canvas-transform-cat-encode"></a>

I dati categoriali sono generalmente composti da un numero finito di categorie, in cui ogni categoria è rappresentata da una stringa. Ad esempio, se disponi di una tabella di dati sui clienti, una colonna che indica il Paese in cui vive una persona è di categoria. Le categorie sarebbero *Afghanistan*, *Albania*, *Algeria* e così via. I dati categoriali possono essere *nominali* o *ordinali.* Le categorie ordinali hanno un ordine intrinseco, mentre le categorie nominali no. Il grado più alto ottenuto (*Scuola superiore*, *Laurea*, *Master* e così via) è un esempio di categorie ordinali. 

La codifica dei dati categoriali è il processo di creazione di una rappresentazione numerica per le categorie. Ad esempio, se le categorie sono *Cane* e *Gatto*, puoi codificare queste informazioni in due vettori: `[1,0]` per rappresentare *Cane* e `[0,1]` per rappresentare *Gatto*.

Quando codifichi le categorie ordinali, potrebbe essere necessario tradurre l'ordine naturale delle categorie nella codifica. Per esempio, puoi rappresentare il grado più alto ottenuto con la seguente mappa: `{"High school": 1, "Bachelors": 2, "Masters":3}`.

Usa la codifica categoriale per codificare i dati categoriali in formato stringa in matrici di numeri interi. 

I codificatori di categoria Data Wrangler creano codifiche per tutte le categorie presenti in una colonna al momento della definizione della fase. Se sono state aggiunte nuove categorie a una colonna quando si avvia un processo di Data Wrangler per elaborare il set di dati al momento *t* e questa colonna è stata l'input per una trasformazione di codifica categoriale di Data Wrangler al momento *t*-1, queste nuove categorie sono considerate *mancanti* nel processo Data Wrangler. L'opzione selezionata per **Strategia di gestione non valida** viene applicata a questi valori mancanti. Esempi di quando ciò può verificarsi sono: 
+ Quando si utilizza un file.flow per creare un processo Data Wrangler per elaborare un set di dati che è stato aggiornato dopo la creazione del flusso di dati. Ad esempio, ogni mese puoi utilizzare un flusso di dati per elaborare regolarmente i dati di vendita. Se tali dati di vendita vengono aggiornati settimanalmente, è possibile inserire nuove categorie nelle colonne per le quali viene definita una fase di codifica categoriale. 
+ Quando selezioni **Campionamento** nell'importare il set di dati, alcune categorie potrebbero essere escluse dall'esempio. 

In queste situazioni, le nuove categorie sono considerate valori mancanti nel processo di Data Wrangler.

È possibile scegliere e configurare una codifica *ordinale* e una *codifica one-hot*. Utilizza le seguenti sezioni per avere ulteriori informazioni su queste opzioni. 

Entrambe le trasformazioni creano una nuova colonna denominata **Nome colonna di output**. Specifica il formato di output di questa colonna con lo **Stile di output**:
+ Seleziona **Vettore** per produrre una singola colonna con un vettore sparso. 
+ Seleziona **Colonne** per creare una colonna per ogni categoria con una variabile indicatore che indica se il testo nella colonna originale contiene un valore uguale a quella categoria.

### Codifica ordinale
<a name="canvas-transform-cat-encode-ordinal"></a>

Seleziona **Codifica ordinale** per codificare le categorie in un numero intero compreso tra 0 e il numero totale di categorie nella **Colonna di input** selezionata.

**Strategia di gestione non valida**: seleziona un metodo per gestire i valori non validi o mancanti. 
+ Scegli **Ignora** se desiderate omettere le righe con valori mancanti.
+ Scegli **Mantieni** per mantenere i valori mancanti come ultima categoria.
+ Scegli **Errore** se desideri che Data Wrangler generi un errore se vengono rilevati valori mancanti nella **Colonna di input**.
+ Scegli **Sostituisci con NaN** per sostituire i valori mancanti con NaN. Questa opzione è consigliata se l'algoritmo di ML è in grado di gestire i valori mancanti. In caso contrario, le prime tre opzioni di questo elenco potrebbero produrre risultati migliori.

### Codifica one-Hot
<a name="canvas-transform-cat-encode-onehot"></a>

Seleziona **Codifica one-hot** per far sì che **Trasformazione** utilizzi la codifica one-hot. Configura questa trasformazione utilizzando quanto segue: 
+ **Elimina l'ultima categoria**: se `True` l'ultima categoria non ha un indice corrispondente nella codifica one-hot. Quando è possibili che manchino dei valori, una categoria mancante è sempre l'ultima e impostarla su `True` significa che un valore mancante si traduce in un vettore tutto zero.
+ **Strategia di gestione non valida**: seleziona un metodo per gestire i valori non validi o mancanti. 
  + Scegli **Ignora** se desiderate omettere le righe con valori mancanti.
  + Scegli **Mantieni** per mantenere i valori mancanti come ultima categoria.
  + Scegli **Errore** se desideri che Data Wrangler generi un errore se vengono rilevati valori mancanti nella **colonna di input**.
+ **L'input ordinale è codificato:**: seleziona questa opzione se il vettore di input contiene dati codificati ordinali. Questa opzione richiede che i dati di input contengano numeri interi non negativi. Se **Vero**, l'input *i* viene codificato come vettore con un valore diverso da zero nella posizione *i*. 

### Codifica di similarità
<a name="canvas-transform-cat-encode-similarity"></a>

Usa la codifica di similarità quando hai quanto segue:
+ Un gran numero di variabili categoriali
+ Dati di disturbo

L'encoder di similarità crea incorporamenti per colonne con dati categoriali. L'incorporamento è una mappatura di oggetti discreti, come le parole, a vettori di numeri reali. Codifica stringhe simili a vettori contenenti valori simili. Ad esempio, crea codifiche molto simili per «California» e «Calfornia».

Data Wrangler converte ogni categoria del set di dati in un set di token utilizzando un tokenizzatore da 3 grammi. Converte i token in un incorporamento utilizzando la codifica min-hash.

Le codifiche di similarità create da Data Wrangler:
+ Hanno una bassa dimensionalità
+ Sono scalabili per un gran numero di categorie
+ Sono robuste e resistenti ai valori di disturbo

Per i motivi precedenti, la codifica di similarità è più versatile della codifica one-hot.

Per aggiungere la trasformazione di codifica di similarità al set di dati, utilizza la procedura seguente.

Per utilizzare la codifica di similarità, completare le seguenti operazioni.

1. Accedi alla [console Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/).

1. Scegli **Apri Studio Classic**.

1. Scegli **Avvia l'applicazione**.

1. Scegli **Studio**

1. Specificate il flusso di dati.

1. Scegli una fase con una trasformazione.

1. Scegli **Aggiungi fase**.

1. Scegli **Codifica categorica**.

1. Specificare le impostazioni seguenti:
   + **Trasformazione**: **Codifica per somiglianza**
   + **Colonna di input**: la colonna contenente i dati categoriali che stai codificando.
   + **Dimensione di destinazione**: (facoltativa) la dimensione del vettore di incorporamento categorico. Il valore predefinito è 30. Ti consigliamo di utilizzare una dimensione target più grande se disponi di un set di dati di grandi dimensioni con molte categorie.
   + **Stile di output**: scegli **Vettore** per un singolo vettore con tutti i valori codificati. Scegli **Colonna** per avere i valori codificati in colonne separate.
   + **Colonna di output**: (facoltativo) il nome della colonna di output per un output con codifica vettoriale. Per un output con codifica a colonne, questo è il prefisso dei nomi delle colonne seguito dal numero elencato.

## Caratterizzazione del testo
<a name="canvas-transform-featurize-text"></a>

Utilizza il gruppo di trasformazione **Caratterizzazione del testo** per ispezionare le colonne di tipo stringa e utilizzate l'incorporamento del testo per caratterizzare queste colonne. 

Questo gruppo di funzionalità contiene due funzionalità, *Statistiche dei caratteri* e *Vettorizza*. Utilizza le seguenti sezioni per avere ulteriori informazioni su queste trasformazioni. Per entrambe le opzioni, la **Colonna di input** deve contenere dati di testo (tipo di stringa).

### Statistiche dei caratteri
<a name="canvas-transform-featurize-text-character-stats"></a>

Utilizza le **Statistiche dei caratteri** per generare statistiche per ogni riga di una colonna contenente dati di testo. 

Questa trasformazione calcola i seguenti rapporti e conteggi per ogni riga e crea una nuova colonna per riportare il risultato. La nuova colonna viene denominata utilizzando il nome della colonna di input come prefisso e un suffisso specifico del rapporto o del conteggio. 
+ **Numero di parole**: il numero totale di parole in quella riga. Il suffisso di questa colonna di output è `-stats_word_count`.
+ **Numero di caratteri**: il numero totale di caratteri in quella riga. Il suffisso di questa colonna di output è `-stats_char_count`.
+ **Rapporto tra maiuscole**: il numero di caratteri maiuscoli, dalla A alla Z, diviso per tutti i caratteri della colonna. Il suffisso di questa colonna di output è `-stats_capital_ratio`.
+ **Rapporto tra minuscole**: il numero di caratteri minuscoli, dalla a alla z, diviso per tutti i caratteri della colonna. Il suffisso di questa colonna di output è `-stats_lower_ratio`.
+ **Rapporto tra cifre**: il rapporto tra le cifre in una singola riga e la somma delle cifre nella colonna di input. Il suffisso di questa colonna di output è `-stats_digit_ratio`.
+ **Rapporto tra caratteri speciali**: il rapporto tra caratteri non alfanumerici (caratteri come \$1\$1&%: @) e la somma di tutti i caratteri nella colonna di input. Il suffisso di questa colonna di output è `-stats_special_ratio`.

### Vettorizza
<a name="canvas-transform-featurize-text-vectorize"></a>

L'incorporamento del testo implica la mappatura di parole o frasi da un vocabolario a vettori di numeri reali. Usa la trasformazione di incorporamento del testo di Data Wrangler per tokenizzare e vettorializzare i dati di testo in vettori TF-IDF (Term Frequency—Inverse Document Frequency). 

Quando TF-IDF viene calcolato per una colonna di dati di testo, ogni parola di ogni frase viene convertita in un numero reale che ne rappresenta l'importanza semantica. I numeri più alti sono associati a parole meno frequenti, che tendono ad essere più significative. 

Quando si definisce una fase di trasformazione **Vettorizza**, Data Wrangler utilizza i dati del set di dati per definire il vettorizzatore di conteggi e i metodi TF-IDF. L'esecuzione di un processo Data Wrangler utilizza gli stessi metodi.

Configura questa trasformazione utilizzando quanto segue: 
+ **Nome della colonna di output**: questa trasformazione crea una nuova colonna con il testo incorporato. Usa questo campo per specificare un nome per questa colonna di output. 
+ **Tokenizer***: un tokenizer converte la frase in un elenco di parole o token.* 

  Scegli **Standard** per utilizzare un tokenizer che divide per spazio bianco e converte ogni parola in minuscolo. Ad esempio, `"Good dog"` è tokenizzato in `["good","dog"]`.

  Scegli **Personalizzato** per utilizzare un tokenizer personalizzato. Se scegli **Personalizzato**, puoi utilizzare i seguenti campi per configurare il tokenizer:
  + **Lunghezza minima del token**: la lunghezza minima, in caratteri, affinché un token sia valido. L’impostazione predefinita è `1`. Ad esempio, se si specifica `3` come lunghezza minima del token, le parole come `a, at, in` vengono eliminate dalla frase tokenizzata. 
  + **L'espressione regolare dovrebbe dividersi sugli spazi vuoti**: se selezionata, **l'espressone regolare** si suddivide sugli spazi vuoti. In caso contrario, corrisponde ai token. L’impostazione predefinita è `True`. 
  + **Modello espressione regolare**: modello espressione regolare che definisce il processo di tokenizzazione. L’impostazione predefinita è `' \\ s+'`.
  + **Converti in minuscolo**: se selezionato, Data Wrangler converte tutti i caratteri in minuscolo prima della tokenizzazione. L’impostazione predefinita è `True`.

  Per ulteriori informazioni, consulta la documentazione di Spark su [Tokenizer](https://spark.apache.org/docs/latest/ml-features#tokenizer).
+ **Vettorizzatore**: il vettorizzatore converte l'elenco dei token in un vettore numerico sparso. Ogni token corrisponde a un indice nel vettore e un valore diverso da zero indica l'esistenza del token nella frase di input. Puoi scegliere tra due opzioni di vettorizzazione, *Conteggio* e *Hashing*.
  + **Conta vettoriale**: consente personalizzazioni che filtrano i token poco frequenti o troppo comuni. I **Parametri di conteggio vettoriale** includono quanto segue: 
    + **Frequenza minima dei termini**: in ogni riga, vengono filtrati i termini (token) con frequenza minore. Se si specifica un numero intero, si tratta di una soglia assoluta (inclusa). Se si specifica una frazione compresa tra 0 (incluso) e 1, la soglia è relativa al conteggio totale dei termini. L’impostazione predefinita è `1`.
    + **Frequenza minima dei documenti**: numero minimo di righe in cui deve apparire un termine (token). Se si specifica un numero intero, si tratta di una soglia assoluta (inclusa). Se si specifica una frazione compresa tra 0 (incluso) e 1, la soglia è relativa al conteggio totale dei termini. L’impostazione predefinita è `1`.
    + **Frequenza massima dei documenti**: numero massimo di documenti (righe) in cui un termine (token) può apparire per essere incluso. Se si specifica un numero intero, si tratta di una soglia assoluta (inclusa). Se si specifica una frazione compresa tra 0 (incluso) e 1, la soglia è relativa al conteggio totale dei termini. L’impostazione predefinita è `0.999`.
    + **Dimensione massima del vocabolario**: dimensione massima del vocabolario. Il vocabolario è composto da tutti i termini (token) presenti in tutte le righe della colonna. L’impostazione predefinita è `262144`.
    + **Output binari**: se selezionato, gli output vettoriali non includono il numero di apparizioni di un termine in un documento, ma sono piuttosto un indicatore binario del suo aspetto. L’impostazione predefinita è `False`.

    Per ulteriori informazioni su questa opzione, consulta la documentazione di Spark su [CountVectorizer](https://spark.apache.org/docs/latest/ml-features#countvectorizer).
  + **L'hashing** è computazionalmente più veloce. I **parametri di vettorizzazione hash** includono quanto segue:
    + **Numero di funzionalità durante l'hashing**: un vettorizzatore di hash mappa i token su un indice vettoriale in base al loro valore di hash. Questa funzione determina il numero di valori hash possibili. Valori elevati comportano un minor numero di collisioni tra i valori hash a fronte di un vettore di output di dimensioni maggiori.

    Per saperne di più su questa opzione, consulta la documentazione di Spark su [FeatureHasher](https://spark.apache.org/docs/latest/ml-features#featurehasher)
+ **Applica IDF**: applica una trasformazione IDF, che moltiplica la frequenza del termine per la frequenza inversa standard del documento utilizzata per l'incorporamento di TF-IDF. I **parametri IDF** includono quanto segue: 
  + **Frequenza minima dei documenti**: numero minimo di documenti (righe) in cui deve apparire un termine (token). Se **count\$1vectorize** è il vettorizzatore scelto, ti consigliamo di mantenere il valore predefinito e di modificare solo il campo **min\$1doc\$1freq** nei **Parametri di conteggio vettoriale**. L’impostazione predefinita è `5`.
+ **Formato di output**: il formato di output di ogni riga. 
  + Seleziona **Vettore** per produrre una singola colonna con un vettore sparso. 
  + Seleziona **Appiattito** per creare una colonna per ogni categoria con una variabile indicatore che indica se il testo nella colonna originale contiene un valore uguale a quella categoria. Puoi scegliere appiattito solo quando **Vectorizer** è impostato come **Vettorizzatore di conteggi.**

## Serie temporale di trasformazione
<a name="canvas-transform-time-series"></a>

In Data Wrangler, puoi trasformare i dati di serie temporali. I valori in un set di dati di serie temporali sono indicizzati in base a un periodo di tempo specifico. Ad esempio, un set di dati che mostra il numero di clienti in un negozio per ogni ora del giorno è un set di dati di serie temporali. La tabella seguente mostra un esempio di set di dati di serie temporali.

Numero orario di clienti in un negozio


| Numero di clienti | Tempo (ora) | 
| --- | --- | 
| 4 | 09:00 | 
| 10 | 10:00 | 
| 14 | 11:00 | 
| 25 | 12:00 | 
| 20 | 13:00 | 
| 18 | 14:00 | 

Per la tabella precedente, la colonna **Numero di clienti** contiene i dati di serie temporali. I dati di serie temporali sono indicizzati in base ai dati orari nella colonna **Tempo (ora)**.

Potrebbe essere necessario eseguire una serie di trasformazioni sui dati per ottenere un formato che possa essere utilizzato per l'analisi. Utilizza il gruppo di trasformazione delle **Serie temporali** per trasformare i dati di serie temporali. Per ulteriori informazioni sulle trasformazioni che è possibile eseguire, consulta le sezioni successive.

**Topics**
+ [Raggruppa per serie temporale](#canvas-group-by-time-series)
+ [Ricampiona i dati di serie temporali](#canvas-resample-time-series)
+ [Gestisci i dati di serie temporali mancanti](#canvas-transform-handle-missing-time-series)
+ [Convalida il timestamp dei dati di serie temporali](#canvas-transform-validate-timestamp)
+ [Standardizzazione della durata delle serie temporali](#canvas-transform-standardize-length)
+ [Estrai funzionalità dai dati delle serie temporali](#canvas-transform-extract-time-series-features)
+ [Usa le funzionalità ritardate dei dati di serie temporali](#canvas-transform-lag-time-series)
+ [Crea un intervallo di date e orari nella tua serie temporale](#canvas-transform-datetime-range)
+ [Usare una finestra mobile nella serie temporale](#canvas-transform-rolling-window)

### Raggruppa per serie temporale
<a name="canvas-group-by-time-series"></a>

È possibile utilizzare l'operazione di raggruppamento per raggruppare i dati delle serie temporali di valori specifici in una colonna.

Ad esempio, è disponibile la tabella seguente che tiene traccia del consumo medio giornaliero di elettricità in una famiglia.

Consumo medio giornaliero di elettricità per uso domestico


| ID della famiglia | Timestamp giornaliero | Consumo di elettricità (kWh) | Numero di occupanti della famiglia | 
| --- | --- | --- | --- | 
| famiglia\$10 | 1/1/2020 | 30 | 2 | 
| famiglia\$10 | 02/1/2020 | 40 | 2 | 
| famiglia\$10 | 4/1/2020 | 35 | 3 | 
| famiglia\$11 | 02/1/2020 | 45 | 3 | 
| famiglia\$11 | 3/1/2020 | 55 | 4 | 

Se scegli di raggruppare per ID, ottieni la seguente tabella.

Consumo di elettricità raggruppato per ID famiglia


| ID della famiglia | Serie di utilizzo dell'elettricità (kWh) | Serie del numero di occupanti della famiglia | 
| --- | --- | --- | 
| famiglia\$10 | [30, 40, 35] | [2, 2, 3] | 
| famiglia\$11 | [45, 55] | [3, 4] | 

Ogni voce nella sequenza delle serie temporali è ordinata in base al timestamp corrispondente. Il primo elemento della sequenza corrisponde al primo timestamp della serie. Per `household_0`, `30` è il primo valore della **serie sull'uso dell'elettricità**. Il valore `30` corrisponde al primo timestamp di `1/1/2020`

È possibile includere il timestamp di inizio e il timestamp di fine. La tabella seguente mostra come vengono visualizzate queste informazioni.

Consumo di elettricità raggruppato per ID famiglia


| ID della famiglia | Serie di utilizzo dell'elettricità (kWh) | Serie del numero di occupanti della famiglia | Start\$1time | End\$1time | 
| --- | --- | --- | --- | --- | 
| famiglia\$10 | [30, 40, 35] | [2, 2, 3] | 1/1/2020 | 4/1/2020 | 
| famiglia\$11 | [45, 55] | [3, 4] | 02/1/2020 | 3/1/2020 | 

Puoi utilizzare la procedura seguente per raggruppare in base a una colonna di serie temporali. 

1. Apri il flusso di dati Data Wrangler.

1. Nel flusso di dati, in **Tipi di dati**, scegli **\$1** e seleziona **Aggiungi trasformazione**.

1. Scegli **Aggiungi fase**.

1. Scegli **Serie temporali**.

1. In **Trasformazione**, scegli **Raggruppa per**.

1. Specifica una colonna in **Raggruppa in base a questa colonna**.

1. Per **Applica alle colonne**, specificare un valore.

1. Scegli **Anteprima** per generare un'anteprima della trasformazione.

1. Scegli **Aggiungi** per aggiungere la trasformazione al flusso di dati di Data Wrangler.

### Ricampiona i dati di serie temporali
<a name="canvas-resample-time-series"></a>

I dati di serie temporali di solito contengono osservazioni che non vengono effettuate a intervalli regolari. Ad esempio, un set di dati potrebbe contenere alcune osservazioni registrate ogni ora e altre osservazioni registrate ogni due ore.

Molte analisi, come gli algoritmi di previsione, richiedono che le osservazioni vengano eseguite a intervalli regolari. Il ricampionamento consente di stabilire intervalli regolari per le osservazioni nel set di dati.

È possibile campionare o sottocampionare una serie temporale. Il sottocampionamento aumenta l'intervallo tra le osservazioni nel set di dati. Ad esempio, se si esegue il sottocampionamento di osservazioni effettuate ogni ora o ogni due ore, ogni osservazione del set di dati viene eseguita ogni due ore. Le osservazioni orarie vengono aggregate in un unico valore utilizzando un metodo di aggregazione come la media o la mediana.

Il sovracampionamento riduce l'intervallo tra le osservazioni nel set di dati. Ad esempio, se si convertono le osservazioni effettuate ogni due ore in osservazioni orarie, è possibile utilizzare un metodo di interpolazione per dedurre le osservazioni orarie da quelle effettuate ogni due ore. [Per informazioni sui metodi di interpolazione, vedere pandas. DataFrame.interpolare.](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.interpolate.html)

È possibile ricampionare dati numerici e non numerici.

Utilizza l'operazione **Ricampiona** per ricampionare i dati di serie temporali. Se nel set di dati sono presenti più serie temporali, Data Wrangler standardizza l'intervallo temporale per ogni serie temporale.

La tabella seguente mostra un esempio di sottocampionamento dei dati delle serie temporali utilizzando la media come metodo di aggregazione. I dati vengono sottoposti a sottocampionamento da ogni due ore a ogni ora.

Letture della temperatura oraria nell'arco di un giorno prima del sottocampionamento


| Timestamp | Temperatura (gradi Celsius) | 
| --- | --- | 
| 12:00 | 30 | 
| 1:00 | 32 | 
| 2:00 | 35 | 
| 3:00 | 32 | 
| 4:00 | 30 | 

Letture della temperatura con un campionamento ridotto a due ore


| Time stamp | Temperatura (gradi Celsius) | 
| --- | --- | 
| 12:00 | 30 | 
| 2:00 | 33,5 | 
| 4:00 | 35 | 

Puoi utilizzare la procedura seguente per ricampionare i dati di serie temporali.

1. Apri il flusso di dati Data Wrangler.

1. Nel flusso di dati, in **Tipi di dati**, scegli **\$1** e seleziona **Aggiungi trasformazione**.

1. Scegli **Aggiungi fase**.

1. Scegli **Ricampiona**.

1. Per **Timestamp**, scegli la colonna Timestamp.

1. Per **Unità di frequenza**, specifica la frequenza da ricampionare.

1. (Facoltativo) Specifica un valore per la **Quantità di frequenza**.

1. Configura la trasformazione specificando i campi rimanenti.

1. Scegli **Anteprima** per generare un'anteprima della trasformazione.

1. Scegli **Aggiungi** per aggiungere la trasformazione al flusso di dati di Data Wrangler.

### Gestisci i dati di serie temporali mancanti
<a name="canvas-transform-handle-missing-time-series"></a>

Se nel set di dati mancano valori, puoi eseguire una delle seguenti operazioni:
+ Per i set di dati con più serie temporali, elimina le serie temporali con valori mancanti superiori alla soglia specificata.
+ Importa i valori mancanti in una serie temporale utilizzando altri valori della serie temporale.

L'imputazione di un valore mancante implica la sostituzione dei dati specificando un valore o utilizzando un metodo inferenziale. Di seguito sono riportati i metodi che è possibile utilizzare per l'imputazione:
+ Valore costante: sostituisci tutti i dati mancanti nel set di dati con un valore specificato dall'utente.
+ Valore più comune: sostituisce tutti i dati mancanti con il valore che possiede la frequenza più alta nel set di dati.
+ Riempimento in avanti: utilizza un riempimento in avanti per sostituire i valori mancanti con il valore non mancante che precede i valori mancanti. Per la sequenza: [2, 4, 7, NaN, NaN, NaN, 8], tutti i valori mancanti vengono sostituiti con 7. La sequenza che risulta dall'utilizzo di un riempimento in avanti è [2, 4, 7, 7, 7, 7, 8].
+ Riempimento all'indietro: utilizza un riempimento all'indietro per sostituire i valori mancanti con il valore non mancante che segue i valori mancanti. Per la sequenza: [2, 4, 7, NaN, NaN, NaN, 8], tutti i valori mancanti vengono sostituiti con 8. La sequenza che risulta dall'utilizzo di un riempimento all'indietro è [2, 4, 7, 8, 8, 8, 8]. 
+ Interpolazione: utilizza una funzione di interpolazione per imputare i valori mancanti. [Per ulteriori informazioni sulle funzioni che puoi usare per l'interpolazione, vedi pandas. DataFrame.interpolare.](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.interpolate.html)

Alcuni metodi di imputazione potrebbero non essere in grado di imputare tutto il valore mancante nel set di dati. Ad esempio, un **Riempimento in avanti** non può imputare un valore mancante che appare all'inizio della serie temporale. È possibile imputare i valori utilizzando un riempimento in avanti o un riempimento all'indietro.

È possibile imputare i valori mancanti all'interno di una cella o all'interno di una colonna.

L'esempio seguente mostra come i valori vengono imputati all'interno di una cella.

Consumo di elettricità con valori mancanti


| ID della famiglia | Serie di utilizzo dell'elettricità (kWh) | 
| --- | --- | 
| famiglia\$10 | [30, 40, 35, NaN, NaN] | 
| famiglia\$11 | [45, NaN, 55] | 

Consumo di elettricità con valori imputati utilizzando un riempimento in avanti


| ID della famiglia | Serie di utilizzo dell'elettricità (kWh) | 
| --- | --- | 
| famiglia\$10 | [30, 40, 35, 35, 35] | 
| famiglia\$11 | [45, 45, 55] | 

L'esempio seguente mostra come i valori vengono imputati all'interno di una colonna.

Consumo medio giornaliero di elettricità per uso domestico con valori mancanti


| ID della famiglia | Consumo di elettricità (kWh) | 
| --- | --- | 
| famiglia\$10 | 30 | 
| famiglia\$10 | 40 | 
| famiglia\$10 | NaN | 
| famiglia\$11 | NaN | 
| famiglia\$11 | NaN | 

Consumo medio giornaliero di elettricità per uso domestico con valori imputati utilizzando un rifornimento a termine


| ID della famiglia | Consumo di elettricità (kWh) | 
| --- | --- | 
| famiglia\$10 | 30 | 
| famiglia\$10 | 40 | 
| famiglia\$10 | 40 | 
| famiglia\$11 | 40 | 
| famiglia\$11 | 40 | 

Per gestire i valori mancanti utilizza la procedura seguente.

1. Apri il flusso di dati Data Wrangler.

1. Nel flusso di dati, in **Tipi di dati**, scegli **\$1** e seleziona **Aggiungi trasformazione**.

1. Scegli **Aggiungi fase**.

1. Scegli **Gestisci mancanti**.

1. Per il **tipo di input delle serie temporali**, scegli se desideri gestire i valori mancanti all'interno di una cella o lungo una colonna.

1. Per **Immetti i valori mancanti per questa colonna**, specifica la colonna con i valori mancanti.

1. Per **Metodo di imputazione dei valori**, seleziona un metodo.

1. Configura la trasformazione specificando i campi rimanenti.

1. Scegli **Anteprima** per generare un'anteprima della trasformazione.

1. Se hai dei valori mancanti, puoi specificare un metodo per imputarli in **Metodo per l'imputazione dei valori**.

1. Scegli **Aggiungi** per aggiungere la trasformazione al flusso di dati di Data Wrangler.

### Convalida il timestamp dei dati di serie temporali
<a name="canvas-transform-validate-timestamp"></a>

È possibile che i dati del timestamp non siano validi. È possibile utilizzare la funzione **Convalida timestamp** per determinare se i timestamp nel set di dati sono validi. Il timestamp potrebbe non essere valido per uno o più dei seguenti motivi:
+ La colonna del timestamp presenta dei valori mancanti.
+ I valori nella colonna del timestamp non sono formattati correttamente.

Se nel set di dati sono presenti timestamp non validi, non è possibile eseguire correttamente l'analisi. Puoi utilizzare Data Wrangler per identificare timestamp non validi e capire dove è necessario ripulire i dati.

La convalida delle serie temporali funziona in due modi:

Puoi configurare Data Wrangler per eseguire una delle seguenti operazioni se rileva valori mancanti nel set di dati:
+ Elimina le righe con i valori mancanti o non validi.
+ Identifica le righe con valori mancanti o non validi.
+ Genera un errore se rileva valori mancanti o non validi nel set di dati.

Puoi convalidare i timestamp sulle colonne che hanno il tipo `timestamp` o `string`. Se la colonna ha il tipo `string`, Data Wrangler converte il tipo di colonna in `timestamp` ed esegue la convalida.

Per convalidare i timestamp nel set di dati puoi utilizzare la procedura seguente.

1. Apri il flusso di dati Data Wrangler.

1. Nel flusso di dati, in **Tipi di dati**, scegli **\$1** e seleziona **Aggiungi trasformazione**.

1. Scegli **Aggiungi fase**.

1. Scegli **Convalida i timestamp**.

1. Per **Colonna timestamp**, scegli la colonna Timestamp.

1. Per **Policy**, scegli se vuoi gestire i timestamp mancanti.

1. (Facoltativo) Per la **colonna di output**, specifica un nome per la colonna di output.

1. Se la colonna della data e dell'ora è formattata per il tipo di stringa, scegli **Trasmetti a datetime**.

1. Scegli **Anteprima** per generare un'anteprima della trasformazione.

1. Scegli **Aggiungi** per aggiungere la trasformazione al flusso di dati di Data Wrangler.

### Standardizzazione della durata delle serie temporali
<a name="canvas-transform-standardize-length"></a>

Se si dispone di dati di serie temporali archiviati come matrici, è possibile standardizzare ogni serie temporale sulla stessa durata. La standardizzazione della durata dell'array delle serie temporali potrebbe semplificare l'esecuzione dell'analisi sui dati.

È possibile standardizzare le serie temporali per le trasformazioni dei dati che richiedono una durata fissa dei dati.

Molti algoritmi di ML richiedono di appiattire i dati di serie temporali prima di utilizzarli. L'appiattimento dei dati di serie temporali consiste nel separare ogni valore di serie temporale in una colonna distinta all'interno di un set di dati. Il numero di colonne in un set di dati non può cambiare, quindi è necessario standardizzare le durate delle serie temporali: ogni array viene suddiviso in un insieme di funzionalità.

Ogni serie temporale è impostata sulla durata specificata come quantile o percentile del set di serie temporali. Ad esempio, è possibile che tu disponga di tre sequenze con le seguenti durate:
+ 3
+ 4
+ 5

Puoi impostare la durata di tutte le sequenze come la durata della sequenza che ha il 50° percentile di durata.

Agli array di serie temporali più brevi della durata specificata vengono aggiunti i valori mancanti. Di seguito è riportato un esempio di formato di standardizzazione delle serie temporali su una durata maggiore: [2, 4, 5, NaN, NaN, NaN].

È possibile utilizzare approcci diversi per gestire i valori mancanti. Per ulteriori informazioni su tali approcci, consultare [Gestisci i dati di serie temporali mancanti](#canvas-transform-handle-missing-time-series).

Gli array di serie temporali più lunghi della durata specificata vengono troncati.

Puoi utilizzare la procedura seguente per standardizzare la durata delle serie temporali.

1. Apri il flusso di dati Data Wrangler.

1. Nel flusso di dati, in **Tipi di dati**, scegli **\$1** e seleziona **Aggiungi trasformazione**.

1. Scegli **Aggiungi fase**.

1. Scegli **Standardizza la durata**.

1. Per **Standardizzare la durata delle serie temporali per la colonna**, scegli una colonna.

1. (Facoltativo) Per la **colonna di output**, specifica un nome per la colonna di output. Se non specifichi un nome, la trasformazione avverrà in loco.

1. Se la colonna datetime è formattata per il tipo di stringa, scegli **Trasmetti a datetime**.

1. Scegli **Taglio quantile** e specificate un quantile per impostare la durata della sequenza.

1. Scegli **Appiattisci l'output** per visualizzare i valori delle serie temporali in colonne separate.

1. Scegli **Anteprima** per generare un'anteprima della trasformazione.

1. Scegli **Aggiungi** per aggiungere la trasformazione al flusso di dati di Data Wrangler.

### Estrai funzionalità dai dati delle serie temporali
<a name="canvas-transform-extract-time-series-features"></a>

Se stai eseguendo un algoritmo di classificazione o regressione sui dati di serie temporali, ti consigliamo di estrarre le funzionalità dalle serie temporali prima di eseguire l'algoritmo. Le funzioni di estrazione potrebbero migliorare le prestazioni dell'algoritmo.

Utilizza le seguenti opzioni per scegliere come estrarre le funzionalità dai dati:
+ Usa **Sottoinsieme minimo** per specificare l'estrazione di 8 funzionalità che sai essere utili nelle analisi a valle. È possibile utilizzare un sottoinsieme minimo quando è necessario eseguire calcoli rapidamente. È inoltre possibile utilizzarlo quando l'algoritmo di ML presenta un elevato rischio di overfitting e si desidera dotarlo di un numero inferiore di funzionalità.
+ Utilizza il **Sottoinsieme efficiente** per specificare l'estrazione del maggior numero possibile di funzionalità senza estrarre funzionalità che richiedono un uso intensivo di calcolo nelle analisi.
+ Utilizza **Tutte le funzionalità** per specificare l'estrazione di tutte le funzionalità dalla serie.
+ Usa il **Sottoinsieme manuale** per scegliere un elenco di funzionalità che ritieni spieghino bene la variazione dei tuoi dati.

Utilizza la procedura seguente per estrarre le funzionalità dai dati di serie temporali.

1. Apri il flusso di dati Data Wrangler.

1. Nel flusso di dati, in **Tipi di dati**, scegli **\$1** e seleziona **Aggiungi trasformazione**.

1. Scegli **Aggiungi fase**.

1. Scegli **Funzionalità di estrazione**.

1. Per **Funzionalità di estrazione per questa colonna**, scegli una colonna.

1. (Facoltativo) Seleziona **Appiattisci** per visualizzare le funzionalità in colonne separate.

1. Per **Strategia**, scegli una strategia per estrarre le funzionalità.

1. Scegli **Anteprima** per generare un'anteprima della trasformazione.

1. Scegli **Aggiungi** per aggiungere la trasformazione al flusso di dati di Data Wrangler.

### Usa le funzionalità ritardate dei dati di serie temporali
<a name="canvas-transform-lag-time-series"></a>

In molti casi d'uso, il modo migliore per prevedere il comportamento futuro delle serie temporali consiste nell'utilizzare il comportamento più recente.

Gli usi più comuni delle funzionalità ritardate sono i seguenti:
+ Raccolta di una manciata di valori passati. Ad esempio, per time, t \$1 1, raccogli t, t - 1, t - 2 e t - 3.
+ Raccolta di valori che corrispondono al comportamento stagionale nei dati. Ad esempio, per prevedere l'occupazione di un ristorante alle 13:00, potresti voler utilizzare le funzionalità a partire dalle 13:00 del giorno precedente. L'utilizzo delle funzionalità a partire dalle 12:00 o dalle 11:00 dello stesso giorno potrebbe non essere così predittivo come l'utilizzo delle funzionalità dei giorni precedenti.

1. Apri il flusso di dati Data Wrangler.

1. Nel flusso di dati, in **Tipi di dati**, scegli **\$1** e seleziona **Aggiungi trasformazione**.

1. Scegli **Aggiungi fase**.

1. Scegli **Funzionalità ritardate**.

1. Per **Genera funzionalità di ritardo per questa colonna**, scegli una colonna.

1. Per **Colonna timestamp**, scegli la colonna che contiene i timestamp.

1. Per **Ritardo**, specificate la durata del ritardo.

1. (Facoltativo) Configura l'output utilizzando una delle seguenti opzioni:
   + **Includi l'intera finestra di ritardo**
   + **Appiattisci l'output**
   + **Elimina le righe senza cronologia**

1. Scegli **Anteprima** per generare un'anteprima della trasformazione.

1. Scegli **Aggiungi** per aggiungere la trasformazione al flusso di dati di Data Wrangler.

### Crea un intervallo di date e orari nella tua serie temporale
<a name="canvas-transform-datetime-range"></a>

Potresti avere dati di serie temporali che non hanno timestamp. Se sai che le osservazioni sono state effettuate a intervalli regolari, puoi generare timestamp per le serie temporali in una colonna separata. Per generare i timestamp, specifica il valore del timestamp di inizio e la frequenza dei timestamp.

Ad esempio, potresti avere le seguenti dati di serie temporali sul numero di clienti in un ristorante.

Dati di serie temporali sul numero di clienti in un ristorante


| Numero di clienti | 
| --- | 
| 10 | 
| 14 | 
| 24 | 
| 40 | 
| 30 | 
| 20 | 

Se sai che il ristorante ha aperto alle 17:00 e che le osservazioni vengono effettuate ogni ora, puoi aggiungere una colonna timestamp che corrisponda ai dati delle serie temporali. Puoi visualizzare la colonna timestamp nella tabella seguente.

Dati di serie temporali sul numero di clienti in un ristorante


| Numero di clienti | Time stamp | 
| --- | --- | 
| 10 | 13:00 | 
| 14 | 14:00 | 
| 24 | 15:00 | 
| 40 | 16:00 | 
| 30 | 17:00 | 
| 20 | 18:00 | 

Utilizza la procedura seguente per aggiungere ai tuoi dati un intervallo di data e ora.

1. Apri il flusso di dati Data Wrangler.

1. Nel flusso di dati, in **Tipi di dati**, scegli **\$1** e seleziona **Aggiungi trasformazione**.

1. Scegli **Aggiungi fase**.

1. Scegli l'**intervallo di data/ora**.

1. Per **Tipo di frequenza**, scegli l'unità utilizzata per misurare la frequenza dei timestamp.

1. Per **Timestamp di inizio**, specifica il timestamp di inizio.

1. Per **Colonna di output**, specificate un nome per la colonna di output.

1. (Facoltativo) Configura l'output utilizzando i campi rimanenti.

1. Scegli **Anteprima** per generare un'anteprima della trasformazione.

1. Scegli **Aggiungi** per aggiungere la trasformazione al flusso di dati di Data Wrangler.

### Usare una finestra mobile nella serie temporale
<a name="canvas-transform-rolling-window"></a>

È possibile estrarre le funzionalità in un periodo di tempo. Ad esempio, per time (ora), *t*, e una finestra temporale della durata di 3 e per la riga che indica il timestamp *t*, aggiungiamo le caratteristiche estratte dalle serie temporali ai tempi *t* - 3, *t* -2 e *t* - 1. Per informazioni sull'estrazione delle funzionalità, consulta [Estrai funzionalità dai dati delle serie temporali](#canvas-transform-extract-time-series-features). 

È possibile utilizzare la procedura seguente per estrarre le funzionalità in un periodo di tempo.

1. Apri il flusso di dati Data Wrangler.

1. Nel flusso di dati, in **Tipi di dati**, scegli **\$1** e seleziona **Aggiungi trasformazione**.

1. Scegli **Aggiungi fase**.

1. Scegli **Funzionalità finestra mobile**.

1. Per **Generare le funzionalità di finestra mobile per questa colonna**, scegli una colonna.

1. Per **Colonna timestamp**, scegli la colonna che contiene i timestamp.

1. (Facoltativo) Per **Colonna di output**, specifica il nome della colonna di output.

1. Per **Dimensioni della finestra**, specificate le dimensioni della finestra.

1. Per **Strategia**, scegli la strategia di estrazione.

1. Scegli **Anteprima** per generare un'anteprima della trasformazione.

1. Scegli **Aggiungi** per aggiungere la trasformazione al flusso di dati di Data Wrangler.

## Personalizza datetime
<a name="canvas-transform-datetime-embed"></a>

Usa **Personalizza data/ora** per creare un incorporamento vettoriale che rappresenta un campo datetime. Per utilizzare questa trasformazione, i dati datetime devono essere in uno dei seguenti formati: 
+ Stringhe che descrivono datetime: Per esempio, `"January 1st, 2020, 12:44pm"`. 
+ Un timestamp Unix: un timestamp Unix descrive il numero di secondi, millisecondi, microsecondi o nanosecondi a partire da 1/1/1970. 

Puoi scegliere **Formato inferisci datetime** e fornire un **Formato datetime**. Se fornisci un formato datetime, devi usare i codici descritti nella [Documentazione di Python](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes). Le opzioni selezionate per queste due configurazioni hanno implicazioni sulla velocità dell'operazione e sui risultati finali.
+ L'opzione più manuale e computazionalmente più veloce consiste nello specificare un **Formato datetime** e selezionare **No** per il **Formato inferisci datetime**.
+ Per ridurre il lavoro manuale, puoi scegliere il **Formato inferisci datetime** e non specificare un formato datetime. È anche un'operazione computazionalmente veloce; tuttavia, si presume che il primo formato datetime rilevato nella colonna di input sia il formato dell'intera colonna. Se nella colonna sono presenti altri formati, questi valori sono NaN nell'output finale. L'inferenza del formato datetime può fornire stringhe non analizzate. 
+ Se non specifichi un formato e selezioni **No** per il **Formato inferisci datetime**, otterrai i risultati più affidabili. Tutte le stringhe datetime valide vengono analizzate. Tuttavia, questa operazione può essere un ordine di grandezza più lento rispetto alle prime due opzioni di questo elenco. 

Quando si utilizza questa trasformazione, si specifica una **Colonna di input** che contiene dati datetime in uno dei formati sopra elencati. La trasformazione crea una colonna di output denominata **Nome colonna di output**. Il formato della colonna di output dipende dalla configurazione utilizzata utilizzando quanto segue:
+ **Vettore**: restituisce una singola colonna come vettore. 
+ **Colonne**: crea una nuova colonna per ogni funzionalità. Ad esempio, se l'output contiene un anno, un mese e un giorno, vengono create tre colonne separate per anno, mese e giorno. 

Inoltre, è necessario scegliere una **Modalità di incorporamento.** Per i modelli lineari e le reti profonde, consigliamo di scegliere la modalità **ciclica**. **Per gli algoritmi ad albero, consigliamo di scegliere il valore ordinale.**

## Formattazione stringa
<a name="canvas-transform-format-string"></a>

Le trasformazioni **Formattazione stringa** contengono operazioni standard di formattazione delle stringhe. Ad esempio, è possibile utilizzare queste operazioni per rimuovere caratteri speciali, normalizzare la lunghezza delle stringhe e aggiornare l'intestazione delle stringhe.

Questo gruppo di funzionalità contiene le seguenti trasformazioni. Tutte le trasformazioni restituiscono copie delle stringhe nella **Colonna di input** e aggiungono il risultato a una nuova colonna di output.


| Name | Funzione | 
| --- | --- | 
| Impagina a sinistra |  Impagina a sinistra la stringa con un determinato **Carattere di riempimento** alla **larghezza** indicata. Se la stringa è più lunga della **larghezza**, il valore restituito viene ridotto a caratteri di **larghezza**.  | 
| Impagina a destra |  Impagina a destra la stringa con un determinato **Carattere di riempimento** alla **larghezza** indicata. Se la stringa è più lunga della **larghezza**, il valore restituito viene ridotto a caratteri di **larghezza**.  | 
| Centro (impagina su entrambi i lati) |  Posiziona la stringa al centro (aggiunge un riempimento su entrambi i lati della stringa) con un determinato **Carattere di riempimento** alla **larghezza** indicata. Se la stringa è più lunga della **larghezza**, il valore restituito viene ridotto a caratteri di **larghezza**.  | 
| Anteponi gli zeri |  Riempie a sinistra una stringa numerica con zeri, fino a una determinata **larghezza**. Se la stringa è più lunga della **larghezza**, il valore restituito viene ridotto a caratteri di **larghezza**.  | 
| Striscia a destra e a sinistra |  Restituisce una copia della stringa con i caratteri iniziali e finali rimossi.  | 
| Elimina i caratteri da sinistra |  Restituisce una copia della stringa con i caratteri iniziali rimossi.  | 
| Elimina i caratteri da destra |  Restituisce una copia della stringa con i caratteri finali rimossi.  | 
| Minuscolo |  Converte tutte le lettere del testo in lettere minuscole.  | 
| Maiuscolo |  Converte tutte le lettere del testo in maiuscolo.  | 
| Scrivi in maiuscolo |  Scrive in maiuscolo la prima lettera di ogni frase.   | 
| Scambio maiuscolo/minuscolo | Converte tutti i caratteri maiuscoli in minuscoli e tutti i caratteri minuscoli in caratteri maiuscoli della stringa data e la restituisce. | 
| Aggiungi prefisso o suffisso |  Aggiunge un prefisso e un suffisso alla colonna della stringa. È necessario specificare almeno un **Prefisso** e un **Suffisso**.   | 
| Rimuovi i simboli |  Rimuove i simboli dati da una stringa. Tutti i caratteri elencati vengono rimossi. Il valore predefinito è lo spazio bianco.   | 

## Gestisci i valori anomali
<a name="canvas-transform-handle-outlier"></a>

I modelli di machine learning sono sensibili alla distribuzione e alla gamma dei valori delle funzionalità. I valori anomali o rari, possono influire negativamente sulla precisione del modello e portare a tempi di addestramento più lunghi. Usa questo gruppo di funzionalità per rilevare e aggiornare i valori anomali nel tuo set di dati. 

Quando si definisce una fase di trasformazione **Gestisci i valori anomali**, le statistiche utilizzate per rilevare i valori anomali vengono generate sui dati disponibili in Data Wrangler durante la definizione di questa fase. Queste stesse statistiche vengono utilizzate durante l'esecuzione di un processo Data Wrangler. 

Utilizza le sezioni seguenti per avere ulteriori informazioni sulle trasformazioni contenute in questo gruppo. Si specifica un **Nome di output** e ciascuna di queste trasformazioni produce una colonna di output con i dati risultanti. 

### Irrobustisci i valori anomali numerici di deviazione standard
<a name="canvas-transform-handle-outlier-rstdev"></a>

Questa trasformazione rileva e corregge i valori anomali nelle funzionalità numeriche utilizzando statistiche affidabili rispetto ai valori anomali.

È necessario definire un **Quantile superiore** e un **Quantile inferiore** per le statistiche utilizzate per calcolare i valori anomali. È inoltre necessario specificare il numero di **Deviazioni standard** rispetto alle quali un valore deve variare dalla media per essere considerato un valore anomalo. Ad esempio, se si specifica 3 per **Deviazioni standard**, un valore deve scendere di più di 3 deviazioni standard dalla media per essere considerato un valore anomalo. 

Il **Metodo di correzione** è il metodo utilizzato per gestire i valori anomali quando vengono rilevati. È possibile scegliere tra le seguenti opzioni:
+ **Taglia**: utilizza questa opzione per ritagliare i valori anomali nel limite di rilevamento dei valori anomali corrispondente.
+ **Rimuovi**: utilizza questa opzione per rimuovere le righe con valori anomali dal dataframe.
+ **Invalida**: utilizzate questa opzione per sostituire valori anomali con quelli non validi.

### Valori anomali numerici con deviazione standard
<a name="canvas-transform-handle-outlier-sstdev"></a>

Questa trasformazione rileva e corregge i valori anomali nelle funzionalità numeriche utilizzando la media e la deviazione standard.

Si specifica il numero di **Deviazioni standard**. Un valore deve variare dalla media per essere considerato un valore anomalo. Ad esempio, se si specifica 3 per **Deviazioni standard**, un valore deve scendere di più di 3 deviazioni standard dalla media per essere considerato un valore anomalo. 

Il **Metodo di correzione** è il metodo utilizzato per gestire i valori anomali quando vengono rilevati. È possibile scegliere tra le seguenti opzioni:
+ **Taglia**: utilizza questa opzione per ritagliare i valori anomali nel limite di rilevamento dei valori anomali corrispondente.
+ **Rimuovi**: utilizza questa opzione per rimuovere le righe con valori anomali dal dataframe.
+ **Invalida**: utilizzate questa opzione per sostituire valori anomali con quelli non validi.

### Valori anomali numerici quantili
<a name="canvas-transform-handle-outlier-quantile-numeric"></a>

Utilizza questa trasformazione per rilevare e correggere i valori anomali nelle funzionalità numeriche utilizzando i quantili. È possibile definire un **Quantile superiore** e un **Quantile inferiore**. Tutti i valori che rientrano al di sopra del quantile superiore o al di sotto del quantile inferiore sono considerati valori anomali. 

Il **Metodo di correzione** è il metodo utilizzato per gestire i valori anomali quando vengono rilevati. È possibile scegliere tra le seguenti opzioni:
+ **Taglia**: utilizza questa opzione per ritagliare i valori anomali nel limite di rilevamento dei valori anomali corrispondente.
+ **Rimuovi**: utilizza questa opzione per rimuovere le righe con valori anomali dal dataframe.
+ **Invalida**: utilizzate questa opzione per sostituire valori anomali con quelli non validi. 

### Valori anomali numerici min-max
<a name="canvas-transform-handle-outlier-minmax-numeric"></a>

Questa trasformazione rileva e corregge i valori anomali nelle funzionalità numeriche utilizzando soglie superiori e inferiori. Utilizza questo metodo se conosci i valori di soglia che contraddistinguono i valori anomali.

Si specifica una **Soglia superiore** e una **Soglia inferiore** e, se i valori sono rispettivamente superiori o inferiori a tali soglie, vengono considerati valori anomali. 

Il **Metodo di correzione** è il metodo utilizzato per gestire i valori anomali quando vengono rilevati. È possibile scegliere tra le seguenti opzioni:
+ **Taglia**: utilizza questa opzione per ritagliare i valori anomali nel limite di rilevamento dei valori anomali corrispondente.
+ **Rimuovi**: utilizza questa opzione per rimuovere le righe con valori anomali dal dataframe.
+ **Invalida**: utilizzate questa opzione per sostituire valori anomali con quelli non validi. 

### Sostituisci raro
<a name="canvas-transform-handle-outlier-replace-rare"></a>

Quando si utilizza la trasformazione **Sostituisci raro**, si specifica una soglia e Data Wrangler trova tutti i valori che soddisfano tale soglia e li sostituisce con una stringa specificata dall'utente. Ad esempio, potresti voler utilizzare questa trasformazione per classificare tutti i valori anomali in una colonna in una categoria «Altri». 
+ **Stringa sostitutiva**: la stringa con cui sostituire i valori anomali.
+ **Soglia assoluta**: una categoria è rara se il numero di istanze è inferiore o uguale a questa soglia assoluta.
+ **Soglia di frazione**: una categoria è rara se il numero di istanze è inferiore o uguale a questa soglia di frazione moltiplicata per il numero di righe.
+ **Numero massimo di categorie comuni**: numero massimo di categorie non rare che rimangono dopo l'operazione. Se la soglia non filtra un numero sufficiente di categorie, quelle con il maggior numero di presenze vengono classificate come non rare. Se impostato su 0 (impostazione predefinita), non esiste un limite rigido al numero di categorie.

## Gestisci valori mancanti
<a name="canvas-transform-handle-missing"></a>

I valori mancanti sono un evento comune nei set di dati di machine learning. In alcune situazioni, è opportuno attribuire ai dati mancanti un valore calcolato, ad esempio un valore medio o categoricamente comune. È possibile elaborare i valori mancanti utilizzando il gruppo di trasformazione **Gestisci valori mancanti**. Questo gruppo contiene le seguenti trasformazioni. 

### Riempi mancante
<a name="canvas-transform-fill-missing"></a>

Utilizza la trasformazione **Riempi mancante** per sostituire i valori mancanti con un **Valore di riempimento** definito da te. 

### Imputa mancanti
<a name="canvas-transform-impute"></a>

Usa la trasformazione **Imputa mancanti** per creare una nuova colonna che contiene valori imputati in cui i valori mancanti sono stati trovati nei dati categorici e numerici di input. La configurazione dipende dal tipo di dati.

Per i dati numerici, scegli una strategia di imputazione, la strategia utilizzata per determinare il nuovo valore da imputare. Puoi scegliere di imputare la media o la mediana sui valori presenti nel tuo set di dati. Data Wrangler utilizza il valore calcolato per imputare i valori mancanti.

Per i dati categoriali, Data Wrangler imputa i valori mancanti utilizzando il valore più frequente nella colonna. Per imputare una stringa personalizzata, usa invece la trasformazione **Riempi mancante**.

### Aggiungi indicatore per mancanti
<a name="canvas-transform-missing-add-indicator"></a>

Utilizza la trasformazione **Aggiungi indicatore per mancanti** per creare una nuova colonna di indicatore, che contiene un valore booleano `"false"` se una riga contiene un valore e `"true"` se una riga contiene un valore mancante. 

### Elimina mancanti
<a name="canvas-transform-drop-missing"></a>

Utilizza l'opzione **Elimina mancanti** per eliminare le righe che contengono valori mancanti dalla **Colonna di input**.

## Gestisci colonne
<a name="canvas-manage-columns"></a>

Puoi utilizzare le seguenti trasformazioni per aggiornare e gestire rapidamente le colonne nel tuo set di dati: 


****  

| Name | Funzione | 
| --- | --- | 
| Escludi colonna | Elimina una colonna  | 
| Duplica colonna | Duplica una colonna | 
| Rinomina colonna | Rinomina una colonna | 
| Sposta colonna |  Sposta la posizione di una colonna nel set di dati. Scegli di spostare la colonna all'inizio o alla fine del set di dati, prima o dopo una colonna di riferimento o in un indice specifico.   | 

## Gestisci righe
<a name="canvas-transform-manage-rows"></a>

Usa questo gruppo di trasformazione per eseguire rapidamente operazioni di ordinamento e rimescolamento delle righe. Questo gruppo contiene quanto segue:
+ **Ordina**: ordina l'intero dataframe in base a una determinata colonna. Seleziona la casella di controllo accanto a **Ordine crescente** per questa opzione; in caso contrario, deseleziona la casella di controllo e per l'ordinamento verrà utilizzato l'ordine decrescente. 
+ **Mescola**: mescola in modo casuale tutte le righe del set di dati. 

## Gestisci i vettori
<a name="canvas-transform-manage-vectors"></a>

Usa questo gruppo di trasformazione per combinare o appiattire le colonne vettoriali. Questo gruppo contiene le seguenti trasformazioni. 
+ **Assembla**: usa questa trasformazione per combinare i vettori Spark e i dati numerici in un'unica colonna. Ad esempio, puoi combinare tre colonne: due contenenti dati numerici e una contenente vettori. Aggiungi tutte le colonne che desideri combinare nelle **Colonne di input** e specifica un **Nome colonna di output** per i dati combinati. 
+ **Appiattisci**: usa questa trasformazione per appiattire una singola colonna contenente dati vettoriali. La colonna di input deve contenere PySpark vettori o oggetti simili a matrici. È possibile controllare il numero di colonne create specificando un **Metodo per rilevare il numero di output**. Ad esempio, se si seleziona **Lunghezza del primo vettore**, il numero di elementi nel primo vettore o matrice valido trovato nella colonna determina il numero di colonne di output che vengono create. Tutti gli altri vettori di input con troppi elementi vengono troncati. Gli input con un numero insufficiente di elementi vengono riempiti con. NaNs

  È inoltre necessario specificare un **Prefisso di output**, che viene utilizzato come prefisso per ogni colonna di output. 

## Elaborazione numerica
<a name="canvas-transform-process-numeric"></a>

Utilizza il gruppo di funzionalità **Elaborazione numerica** per elaborare dati numerici. Ogni scala in questo gruppo è definito utilizzando la libreria Spark. Sono supportate le seguenti scale:
+ **Scala standard**: standardizza la colonna di input sottraendo la media da ogni valore e scalando alla varianza unitaria. Per saperne di più, consulta la documentazione di Spark per. [StandardScaler](https://spark.apache.org/docs/latest/ml-features#standardscaler)
+ **Scala robusta**: ridimensiona la colonna di input utilizzando statistiche affidabili rispetto ai valori anomali. Per saperne di più, consulta la documentazione di Spark per. [RobustScaler](https://spark.apache.org/docs/latest/ml-features#robustscaler)
+ **Scala min-max**: trasforma la colonna di input ridimensionando ogni funzione in un determinato intervallo. Per saperne di più, consulta la documentazione di Spark per. [MinMaxScaler](https://spark.apache.org/docs/latest/ml-features#minmaxscaler)
+ **Scala assoluta max**: ridimensiona la colonna di input dividendo ogni valore per il valore assoluto massimo. Per saperne di più, consulta la documentazione di Spark per. [MaxAbsScaler](https://spark.apache.org/docs/latest/ml-features#maxabsscaler)

## Campionamento
<a name="canvas-transform-sampling"></a>

Dopo aver importato i dati, puoi utilizzare il trasformatore **Campionamento** per prelevarne uno o più campioni. Quando utilizzi il trasformatore di campionamento, Data Wrangler campiona il set di dati originale.

Puoi scegliere uno dei seguenti metodi di campionamento:
+ **Limite**: campiona il set di dati a partire dalla prima riga fino al limite specificato.
+ **Randomizzato**: preleva un campione casuale della dimensione specificata.
+ **Stratificato**: preleva un campione a caso stratificato.

È possibile stratificare un campione randomizzato per assicurarsi che rappresenti la distribuzione originale del set di dati.

Potresti eseguire la preparazione dei dati per diversi casi d'uso. Per ogni caso d'uso, puoi prendere un campione diverso e applicare un diverso set di trasformazioni.

La procedura seguente descrive la creazione di un campione casuale. 

Per prelevare un campione casuale dai dati.

1. Scegli il **segno \$1** a destra del set di dati che hai importato. Il nome del set di dati si trova sotto il **segno \$1**.

1. Scegli **Aggiungi trasformazione**.

1. Scegli **Campionamento**.

1. Per **Metodo di campionamento**, scegli il metodo di campionamento.

1. Per **Dimensione approssimativa del campione**, scegli il numero approssimativo di osservazioni da inserire nel campione.

1. (Facoltativo) Specifica un numero intero per **Seme casuale** per creare un campione riproducibile.

La procedura seguente descrive il processo di creazione di un campione stratificato.

Per prelevare un campione stratificato dai dati.

1. Scegli il **segno \$1** a destra del set di dati che hai importato. Il nome del set di dati si trova sotto il **segno \$1**.

1. Scegli **Aggiungi trasformazione**.

1. Scegli **Campionamento**.

1. Per **Metodo di campionamento**, scegli il metodo di campionamento.

1. Per **Dimensione approssimativa del campione**, scegli il numero approssimativo di osservazioni da inserire nel campione.

1. Per **Stratifica colonna**, specifica il nome della colonna che vuoi stratificare.

1. (Facoltativo) Specifica un numero intero per **Seme casuale** per creare un campione riproducibile.

## Ricerca e modifica
<a name="canvas-transform-search-edit"></a>

Usa questa sezione per cercare e modificare modelli specifici all'interno delle stringhe. Ad esempio, puoi trovare e aggiornare stringhe all'interno di frasi o documenti, dividere le stringhe per delimitatori e trovare le occorrenze di stringhe specifiche. 

In **Cerca e modifica** sono supportate le seguenti trasformazioni. Tutte le trasformazioni restituiscono copie delle stringhe nella **Colonna di input** e aggiungono il risultato a una nuova colonna di output.


****  

| Name | Funzione | 
| --- | --- | 
|  Trova una sottostringa  |  Restituisce l'indice della prima occorrenza della **Sottostringa** che hai cercato. Puoi iniziare e terminare la ricerca rispettivamente da **Inizio** e **Fine**.   | 
|  Trova la sottostringa (da destra)  |  Restituisce l'indice dell'ultima occorrenza della **Sottostringa** che hai cercato. Puoi iniziare e terminare la ricerca rispettivamente con **Inizio** e **Fine**.   | 
|  Abbina il prefisso  |  Restituisce un valore booleano se la stringa contiene un determinato **Pattern**. Un pattern può essere una sequenza di caratteri o un'espressione regolare. Facoltativamente, puoi fare distinzione tra maiuscole e minuscole nel pattern.   | 
|  Trova tutte le occorrenze  |  Restituisce un array con tutte le occorrenze di un determinato pattern. Un pattern può essere una sequenza di caratteri o un'espressione regolare.   | 
|  Estrai usando espressione regolare  |  Restituisce una stringa che corrisponde a un determinato pattern di espressione regolare.  | 
|  Estrai tra i delimitatori  |  Restituisce una stringa con tutti i caratteri trovati tra il **Delimitatore sinistro** e il **Delimitatore destro**.   | 
|  Estrai dalla posizione  |  Restituisce una stringa, a partire dalla **Posizione iniziale** della stringa di input, che contiene tutti i caratteri fino alla posizione iniziale più la **Lunghezza**.   | 
|  Trova e sostituisci la sottostringa  |  Restituisce una stringa con tutte le corrispondenze di un determinato **Pattern** (espressione regolare) sostituite dalla **Stringa sostitutiva**.  | 
|  Sostituisci tra i delimitatori  |  Restituisce una stringa con la sottostringa trovata tra la prima apparizione di un **Delimitatore sinistro** e l'ultima apparizione di un **Delimitatore destro** sostituita dalla **Stringa di sostituzione**. Se non viene trovata alcuna corrispondenza, non verrà sostituito nulla.   | 
|  Sostituzione dalla posizione  |  Restituisce una stringa con la sottostringa compresa tra la **Posizione iniziale** e la **Posizione iniziale** più la **Lunghezza** sostituita dalla **Stringa di sostituzione**. Se la **Posizione iniziale** più la **Lunghezza** è maggiore della lunghezza della stringa sostitutiva, l'output contiene**...**  | 
|  Converti le espressioni regolari in espressioni mancanti  |  Converte una stringa in `None` se non è valida e restituisce il risultato. La validità è definita con un'espressione regolare in **Pattern**.  | 
|  Suddividi la stringa per delimitatore  |  Restituisce un array di stringhe dalla stringa di input, suddiviso per **Delimitatore**, con un **Numero massimo di suddivisioni ** (opzionale). Per impostazione predefinita, il delimitatore è lo spazio bianco.   | 

## Suddividi dati
<a name="canvas-transform-split-data"></a>

Usa la trasformazione **Suddividi dati** per suddividere il tuo set di dati in due o tre set di dati. Ad esempio, puoi suddividere il tuo set di dati in uno utilizzato per addestrare il modello e uno utilizzato per testarlo. È possibile determinare la proporzione del set di dati da inserire in ciascuna suddivisione. Ad esempio, se stai suddividendo un set di dati in due set di dati, il set di dati di addestramento può contenere l'80% dei dati mentre il set di dati di test ne ha il 20%.

La suddivisione dei dati in tre set di dati consente di creare set di dati di addestramento, convalida e test. Puoi vedere le prestazioni del modello sul set di dati di test eliminando la colonna di destinazione.

Il tuo caso d'uso determinerà la quantità di set di dati originali che ciascuno dei tuoi set di dati riceverà e il metodo da utilizzare per suddividere i dati. Ad esempio, potresti voler utilizzare una suddivisione stratificata per assicurarti che la distribuzione delle osservazioni nella colonna di destinazione sia la stessa tra i set di dati. È possibile utilizzare le seguenti trasformazioni di suddivisione:
+ Suddivisione randomizzata: ogni suddivisione è un campione casuale e non sovrapposto del set di dati originale. Per set di dati più grandi, l'utilizzo di una suddivisione randomizzata potrebbe essere costoso dal punto di vista computazionale e richiedere più tempo di una suddivisione ordinata.
+ Suddivisione ordinata: suddivide il set di dati in base all'ordine sequenziale delle osservazioni. Ad esempio, per una suddivisione 80/20 tra addestramento-test, le prime osservazioni che costituiscono l'80% del set di dati vengono inserite nel set di dati di addestramento. L'ultimo 20% delle osservazioni va al set di dati di test. Le suddivisioni ordinate sono efficaci nel mantenere l'ordine esistente dei dati tra le suddivisioni.
+ Suddivisione stratificata: divide il set di dati per garantire che il numero di osservazioni nella colonna di input abbia una rappresentazione proporzionale. Per una colonna di input contenente le osservazioni 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, una suddivisione 80/20 sulla colonna significherebbe circa l'80% degli 1, l'80% dei 2 e l'80% dei 3 vanno al set di addestramento. Circa il 20% di ogni tipo di osservazione va al set di test.
+ Suddividi per chiave: evita che i dati con la stessa chiave si trovino in più di una suddivisione. Ad esempio, se disponi di un set di dati con la colonna «id\$1cliente» e lo utilizzi come chiave, nessun ID cliente è presente in più di una suddivisione.

Dopo aver suddiviso i dati, puoi applicare trasformazioni aggiuntive a ciascun set di dati. Per la maggior parte dei casi d'uso, non sono necessarie.

Data Wrangler calcola le proporzioni delle suddivisioni in termini di prestazioni. È possibile scegliere una soglia di errore per impostare la precisione delle suddivisioni. Le soglie di errore più basse riflettono in modo più accurato le proporzioni specificate per le suddivisioni. Se si imposta una soglia di errore più elevata, si ottengono prestazioni migliori, ma una precisione inferiore.

Per una suddivisione dei dati perfetta, imposta la soglia di errore su 0. Per ottenere prestazioni migliori, puoi specificare una soglia compresa tra 0 e 1. Se specifichi un valore maggiore di 1, Data Wrangler interpreta tale valore come 1.

Se hai 10.000 righe nel tuo set di dati e specifichi una suddivisione 80/20 con un errore di 0,001, otterrai osservazioni che si avvicinano a uno dei seguenti risultati:
+ 8.010 osservazioni nel set di addestramento e 1.990 nel set di test
+ 7.990 osservazioni nel set di addestramento e 2.010 nel set di test

Il numero di osservazioni per il test impostato nell'esempio precedente è compreso nell'intervallo tra 8.010 e 7.990.

Per impostazione predefinita, Data Wrangler utilizza un seme casuale per rendere riproducibili le suddivisioni. È possibile specificare un valore diverso per il seme per creare una suddivisione riproducibile diversa.

------
#### [ Randomized split ]

Utilizza la procedura seguente per eseguire una suddivisione randomizzata del set di dati.

Per la suddivisione casuale del set di dati, procedi nel seguente modo

1. Scegli il **segno \$1** accanto al nodo contenente il set di dati da suddividere.

1. Scegli **Aggiungi trasformazione**.

1. Scegli **Suddividi dati**.

1. (Facoltativo) Per **Suddivisioni**, specifica i nomi e le proporzioni di ciascuna suddivisione. La somma delle proporzioni deve essere 1.

1. (Facoltativo) Scegli il **segno \$1** per creare una suddivisione aggiuntiva.

   1. Specifica i nomi e le proporzioni di tutte le suddivisioni. La somma delle proporzioni deve essere 1.

1. (Facoltativo) Specifica un valore per la **Soglia di errore** diverso dal valore predefinito.

1. (Facoltativo) Specifica un valore per **Seme casuale**.

1. Scegli **Anteprima**.

1. Scegli **Aggiungi**.

------
#### [ Ordered split ]

Utilizza la procedura seguente per eseguire una suddivisione ordinata del set di dati.

Per creare una suddivisione ordinata del set di dati, procedi come segue.

1. Scegli il **segno \$1** accanto al nodo contenente il set di dati da suddividere.

1. Scegli **Aggiungi trasformazione**.

1. Per **Trasformazione**, scegli **Suddivisione ordinata**.

1. Scegli **Suddividi dati**.

1. (Facoltativo) Per **Suddivisioni**, specifica i nomi e le proporzioni di ciascuna suddivisione. La somma delle proporzioni deve essere 1.

1. (Facoltativo) Scegli il **segno \$1** per creare una suddivisione aggiuntiva.

   1. Specifica i nomi e le proporzioni di tutte le suddivisioni. La somma delle proporzioni deve essere 1.

1. (Facoltativo) Specifica un valore per la **Soglia di errore** diverso dal valore predefinito.

1. (Facoltativo) Per la **Colonna di input**, specifica una colonna con valori numerici. Utilizza i valori delle colonne per dedurre quali record sono presenti in ogni suddivisione. I valori più piccoli si trovano in una suddivisione, i valori più grandi nelle altre suddivisioni.

1. (Facoltativo) Seleziona **Gestisci i duplicati** per aggiungere valori di disturbo ai valori duplicati e creare un set di dati di valori completamente unici.

1. (Facoltativo) Specifica un valore per **Seme casuale**.

1. Scegli **Anteprima**.

1. Scegli **Aggiungi**.

------
#### [ Stratified split ]

Utilizza la procedura seguente per eseguire una suddivisione stratificata sul set di dati.

Per creare una suddivisione stratificata nel set di dati, procedi come segue.

1. Scegli il **segno \$1** accanto al nodo contenente il set di dati da suddividere.

1. Scegli **Aggiungi trasformazione**.

1. Scegli **Suddividi dati**.

1. Per **Trasformazione**, scegli **Suddivisione stratificata**.

1. (Facoltativo) Per **Suddivisioni**, specifica i nomi e le proporzioni di ciascuna suddivisione. La somma delle proporzioni deve essere 1.

1. (Facoltativo) Scegli il **segno \$1** per creare una suddivisione aggiuntiva.

   1. Specifica i nomi e le proporzioni di tutte le suddivisioni. La somma delle proporzioni deve essere 1.

1. Per la **Colonna di input**, specifica una colonna con un massimo di 100 valori univoci. Data Wrangler non può stratificare una colonna con più di 100 valori univoci.

1. (Facoltativo) Specifica un valore per la **Soglia di errore** diverso dal valore predefinito.

1. (Facoltativo) Specificate un valore per **Seme casuale** per specificare un'origine diversa.

1. Scegli **Anteprima**.

1. Scegli **Aggiungi**.

------
#### [ Split by column keys ]

Utilizza la procedura seguente per suddividere in base alle chiavi della colonna nel set di dati.

Per suddividere in base alle chiavi della colonna nel set di dati, procedi come segue.

1. Scegli il **segno \$1** accanto al nodo contenente il set di dati da suddividere.

1. Scegli **Aggiungi trasformazione**.

1. Scegli **Suddividi dati**.

1. Per **Trasformazione**, scegli **Suddividi per chiave**.

1. (Facoltativo) Per **Suddivisioni**, specifica i nomi e le proporzioni di ciascuna suddivisione. La somma delle proporzioni deve essere 1.

1. (Facoltativo) Scegli il **segno \$1** per creare una suddivisione aggiuntiva.

   1. Specifica i nomi e le proporzioni di tutte le suddivisioni. La somma delle proporzioni deve essere 1.

1. Per **Colonne chiave**, specifica le colonne con valori che non desideri vengano visualizzati in entrambi i set di dati.

1. (Facoltativo) Specifica un valore per la **Soglia di errore** diverso dal valore predefinito.

1. Scegli **Anteprima**.

1. Scegli **Aggiungi**.

------

## Analizza il valore come tipo
<a name="canvas-transform-cast-type"></a>

Usa questa trasformazione per convertire una colonna in un nuovo tipo. I tipi di dati supportati da Data Wrangler sono:
+ Long
+ Float
+ Booleano
+ Data, nel formato dd-MM-yyyy, che rappresenta rispettivamente giorno, mese e anno. 
+ Stringa

## Convalida stringa
<a name="canvas-transform-validate-string"></a>

Utilizzate le trasformazioni **Convalida stringa** per creare una nuova colonna che indichi che una riga di dati di testo soddisfa una condizione specificata. Ad esempio, puoi utilizzare una trasformazione **Convalida stringa** per verificare che una stringa contenga solo caratteri minuscoli. In **Convalida stringa** sono supportate le seguenti trasformazioni. 

Le seguenti trasformazioni sono incluse in questo gruppo di trasformazioni. Se una trasformazione emette un valore booleano, `True` viene rappresentato con un `1` e `False` viene rappresentata con uno `0`.


****  

| Name | Funzione | 
| --- | --- | 
|  Lunghezza delle stringhe  |  Restituisce `True` se la lunghezza di una stringa è uguale alla lunghezza specificata. In caso contrario, restituisce `False`.   | 
|  Inizia con  |  Restituisce `True` se una stringa inizia con un prefisso specificato. In caso contrario, restituisce `False`.  | 
|  Ends with  |  Restituisce `True` se la lunghezza di una stringa è uguale alla lunghezza specificata. In caso contrario, restituisce `False`.  | 
|  È alfanumerico  |  Restituisce `True` se una stringa contiene solo numeri e lettere. In caso contrario, restituisce `False`.  | 
|  È alfa (lettere)  |  Restituisce `True` se una stringa contiene solo lettere. In caso contrario, restituisce `False`.  | 
|  È una cifra  |  Restituisce `True` se una stringa contiene solo cifre. In caso contrario, restituisce `False`.  | 
|  È spazio  |  Restituisce `True` se una stringa contiene solo numeri e lettere. In caso contrario, restituisce `False`.  | 
|  È titolo  |  Restituisce `True` se una stringa contiene spazi bianchi. In caso contrario, restituisce `False`.  | 
|  È in minuscolo  |  Restituisce `True` se una stringa contiene solo lettere minuscole. In caso contrario, restituisce `False`.  | 
|  È in maiuscolo  |  Restituisce `True` se una stringa contiene solo lettere maiuscole. In caso contrario, restituisce `False`.  | 
|  È numerico  |  Restituisce `True` se una stringa contiene solo numeri. In caso contrario, restituisce `False`.  | 
|  È decimale  |  Restituisce `True` se una stringa contiene solo numeri decimali. In caso contrario, restituisce `False`.  | 

## Unnest dei dati JSON
<a name="canvas-transform-flatten-column"></a>

Se hai un file.csv, potresti avere valori nel tuo set di dati che sono stringhe JSON. Allo stesso modo, potresti avere dati annidati nelle colonne di un file Parquet o di un documento JSON.

Utilizza l'operatore **Strutturato appiattito** per separare le chiavi di primo livello in colonne separate. Una chiave di primo livello è una chiave che non è annidata all'interno di un valore.

Ad esempio, potresti avere un set di dati contenente una colonna relativa alle *persone* con informazioni demografiche su ogni persona archiviate come stringhe JSON. Una stringa JSON potrebbe assomigliare alla seguente.

```
 "{"seq": 1,"name": {"first": "Nathaniel","last": "Ferguson"},"age": 59,"city": "Posbotno","state": "WV"}"
```

L'operatore **Strutturato appiattito** converte le seguenti chiavi di primo livello in colonne aggiuntive del set di dati:
+ seq
+ nome
+ età
+ città
+ stato

Data Wrangler inserisce i valori delle chiavi come valori sotto le colonne. Nell'esempio seguente vengono mostrati i nomi e i valori delle colonne del JSON.

```
seq, name,                                    age, city, state
1, {"first": "Nathaniel","last": "Ferguson"}, 59, Posbotno, WV
```

Per ogni valore del set di dati contenente JSON, l'operatore **Strutturato appiattito** crea colonne per le chiavi di primo livello. Per creare colonne per chiavi annidate, richiama nuovamente l'operatore. Nell'esempio precedente, la chiamata all'operatore crea le colonne:
+ nome
+ cognome

L'esempio seguente mostra il set di dati che risulta richiamando l'operazione.

```
seq, name,                                    age, city, state, name_first, name_last
1, {"first": "Nathaniel","last": "Ferguson"}, 59, Posbotno, WV, Nathaniel, Ferguson
```

Scegli **Chiavi su cui appiattire** per specificare le chiavi di primo livello che desideri estrarre come colonne separate. Se non specifichi alcuna chiave, per impostazione predefinita Data Wrangler estrae tutte le chiavi.

## Esplodi array
<a name="canvas-transform-explode-array"></a>

Usa **Esplodi array** per espandere i valori dell'array in righe di output separate. Ad esempio, l'operazione può prendere ogni valore dell'array, [[1, 2, 3,], [4, 5, 6], [7, 8, 9]] e creare una nuova colonna con le seguenti righe:

```
                [1, 2, 3]
                [4, 5, 6]
                [7, 8, 9]
```

Data Wrangler nomina la nuova colonna, input\$1colonna\$1nome\$1appiattito.

È possibile chiamare l'operazione **Esplodi array** più volte per ottenere i valori annidati dell'array in colonne di output separate. L'esempio seguente mostra il risultato di una chiamata all'operazione più volte su un set di dati con un array annidato.

Inserimento dei valori di una matrice nidificata in colonne separate


| id | array | id | elementi\$1array | id | elementi\$1elemento\$1array | 
| --- | --- | --- | --- | --- | --- | 
| 1 | [[gatto, cane], [pipistrello, rana]] | 1 | [gatto, cane] | 1 | gatto | 
| 2 |  [[rosa, petunia], [giglio, margherita]]  | 1 | [pipistrello, rana] | 1 | cane | 
|  |  | 2 | [rosa, petunia] | 1 | pipistrello | 
|  |  | 2 | [giglio, margherita] | 1 | rana | 
|  |  |  | 2 | 2 | rosa | 
|  |  |  | 2 | 2 | petunia | 
|  |  |  | 2 | 2 | giglio | 
|  |  |  | 2 | 2 | margherita | 

## Trasformazione dei dati di immagine
<a name="canvas-transform-image"></a>

Usa Data Wrangler per importare e trasformare le immagini che utilizzi per le tue pipeline di machine learning (ML). Dopo aver preparato i dati delle immagini, puoi esportarli dal flusso di Data Wrangler alla pipeline di ML.

Puoi utilizzare le informazioni fornite qui per acquisire familiarità con l'importazione e la trasformazione dei dati di immagine in Data Wrangler. Data Wrangler utilizza OpenCV per importare immagini. Per ulteriori informazioni sui formati di immagine supportati, consulta [Lettura e scrittura di file immagine](https://docs.opencv.org/3.4/d4/da8/group__imgcodecs.html#ga288b8b3da0892bd651fce07b3bbd3a56).

Dopo aver acquisito familiarità con i concetti di trasformazione dei dati di immagine, segui il seguente tutorial, [Prepara i dati delle immagini con Amazon SageMaker ](https://aws.amazon.com/blogs/machine-learning/prepare-image-data-with-amazon-sagemaker-data-wrangler/) Data Wrangler.

I seguenti settori e casi d'uso sono esempi in cui l'applicazione della machine learning ai dati delle immagini trasformati può essere utile:
+ Produzione: identificazione dei difetti negli articoli della linea di assemblaggio
+ Cibo: individuazione di alimenti avariati o marci
+ Medicina: individuazione delle lesioni nei tessuti

Quando lavori con dati di immagine in Data Wrangler, segui il seguente processo:

1. Importa: seleziona le immagini scegliendo la directory che le contiene nel bucket Amazon S3.

1. Trasforma: utilizza le trasformazioni integrate per preparare le immagini per la tua pipeline di machine learning.

1. Esporta: esporta le immagini che hai trasformato in una posizione accessibile dalla pipeline.

Utilizza la procedura seguente per importare i dati di immagine.

**Per importare i dati delle immagini**

1. Vai alla pagina **Crea connessione**.

1. Seleziona **Amazon S3**.

1. Specifica il percorso del file Amazon S3 che contiene i dati di immagine.

1. Per **Tipo di file**, scegli **Immagine**.

1. (Facoltativo) Scegli **Importa directory annidate** per importare immagini da più percorsi Amazon S3.

1. Scegli **Importa**.

Per le trasformazioni delle immagini integrate Data Wrangler utilizza la libreria open source [imgaug](https://imgaug.readthedocs.io/en/latest/). È possibile utilizzare le seguenti trasformazioni integrate:
+ **ResizeImage**
+ **EnhanceImage**
+ **CorruptImage**
+ **SplitImage**
+ **DropCorruptedImages**
+ **DropImageDuplicates**
+ **Luminosità**
+ **ColorChannels**
+ **Scala di grigi**
+ **Ruota**

Utilizza la procedura seguente per trasformare le tue immagini senza scrivere il codice.

**Per trasformare i dati dell'immagine senza scrivere il codice**

1. Dal flusso Data Wrangler, scegli il **segno \$1** accanto al nodo che rappresenta le immagini che hai importato.

1. Scegli **Aggiungi trasformazione**.

1. Scegli **Aggiungi fase**.

1. Scegli la trasformazione e configurala.

1. Scegli **Anteprima**.

1. Scegli **Aggiungi**.

Oltre a utilizzare le trasformazioni fornite da Data Wrangler, puoi anche utilizzare frammenti di codice personalizzati. Per ulteriori informazioni sull'utilizzo di frammenti di codice personalizzati, consulta [Trasformazioni personalizzate](#canvas-transform-custom). Puoi importare le librerie OpenCV e imgaug all'interno dei tuoi frammenti di codice e utilizzare le trasformazioni ad esse associate. Il seguente è un esempio di un frammento di codice che rileva i bordi all'interno delle immagini.

```
# A table with your image data is stored in the `df` variable
import cv2
import numpy as np
from pyspark.sql.functions import column

from sagemaker_dataprep.compute.operators.transforms.image.constants import DEFAULT_IMAGE_COLUMN, IMAGE_COLUMN_TYPE
from sagemaker_dataprep.compute.operators.transforms.image.decorators import BasicImageOperationDecorator, PandasUDFOperationDecorator


@BasicImageOperationDecorator
def my_transform(image: np.ndarray) -> np.ndarray:
  # To use the code snippet on your image data, modify the following lines within the function
    HYST_THRLD_1, HYST_THRLD_2 = 100, 200
    edges = cv2.Canny(image,HYST_THRLD_1,HYST_THRLD_2)
    return edges
    

@PandasUDFOperationDecorator(IMAGE_COLUMN_TYPE)
def custom_image_udf(image_row):
    return my_transform(image_row)
    

df = df.withColumn(DEFAULT_IMAGE_COLUMN, custom_image_udf(column(DEFAULT_IMAGE_COLUMN)))
```

Quando applica trasformazioni nel flusso di Data Wrangler, Data Wrangler le applica solo a un campione delle immagini nel set di dati. Per ottimizzare l'esperienza con l'applicazione, Data Wrangler non applica le trasformazioni a tutte le immagini.

## Filtrare i dati
<a name="canvas-transform-filter-data"></a>

Usa Data Wrangler per filtrare i dati nelle tue colonne. Quando si filtrano i dati in una colonna, si specificano i seguenti campi:
+ **Nome colonna**: il nome della colonna che stai utilizzando per filtrare i dati.
+ **Condizione**: il tipo di filtro che applichi ai valori nella colonna.
+ **Valore**: il valore o la categoria nella colonna a cui stai applicando il filtro.

Puoi applicare un filtro alle seguenti condizioni:
+ **=**: restituisce valori che corrispondono al valore o alla categoria specificati.
+ **\$1= **: restituisce valori che non corrispondono al valore o alla categoria specificati.
+ **>= **: per dati **Long** o **Float**, filtra i valori maggiori o uguali al valore specificato.
+ **<=** : per dati **Long** o **Float**, filtra i valori inferiori o uguali al valore specificato.
+ **>** : per dati **Long** o **Float**, filtra i valori che sono maggiori del valore specificato.
+ **<** : per dati **Long** o **Float**, filtra i valori inferiori al valore specificato.

Per una colonna che contiene le categorie `male` e `female`, puoi filtrare tutti i valori `male`. Puoi anche filtrare tutti i valori `female`. Poiché nella colonna sono presenti solo valori `male` e `female`, il filtro restituisce una colonna contenente solo valori `female`.

Puoi inoltre aggiungere più filtri. I filtri possono essere applicati su più colonne o sulla stessa colonna. Ad esempio, se stai creando una colonna con valori solo all'interno di un determinato intervallo, aggiungi due filtri diversi. Un filtro specifica che la colonna deve avere valori maggiori del valore fornito. L'altro filtro specifica che la colonna deve avere valori inferiori al valore fornito.

Utilizza la seguente procedura per aggiungere la trasformazione del filtro ai tuoi dati.

**Per filtrare i dati**

1. Dal flusso Data Wrangler, scegli il **segno \$1** accanto al nodo con i dati che stai filtrando.

1. Scegli **Aggiungi trasformazione**.

1. Scegli **Aggiungi fase**.

1. Scegli **Filtra dati**.

1. Specifica i seguenti campi:
   + **Nome colonna**: la colonna che stai filtrando.
   + **Condizione**: la condizione del filtro.
   + **Valore**: il valore o la categoria nella colonna a cui stai applicando il filtro.

1. (Facoltativo) Scegli **il segno \$1** dopo il filtro che hai creato.

1. Configurare il filtro.

1. Scegli **Anteprima**.

1. Scegli **Aggiungi**.

# Chat per la preparazione dei dati
<a name="canvas-chat-for-data-prep"></a>

**Importante**  
Per gli amministratori:  
La chat per la preparazione dei dati richiede la policy `AmazonSageMakerCanvasAIServicesAccess`. Per ulteriori informazioni, consulta [AWS politica gestita: accesso AmazonSageMakerCanvas AIServices](security-iam-awsmanpol-canvas.md#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess)
La chat per la preparazione dei dati richiede l’accesso ad Amazon Bedrock e al modello **Anthropic Claude** al suo interno. Per ulteriori informazioni, consulta [Aggiungi accesso a modello](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html#add-model-access).
Devi eseguire la preparazione dei dati di SageMaker Canvas nella stessa regione in cui Regione AWS esegui il modello. La chat per la preparazione dei dati è disponibile negli Stati Uniti orientali (Virginia settentrionale), negli Stati Uniti occidentali (Oregon) e in Europa (Francoforte). Regioni AWS

Oltre a utilizzare le trasformazioni e le analisi integrate, puoi utilizzare il linguaggio naturale per esplorare, visualizzare e trasformare i dati in un’interfaccia conversazionale. All’interno dell’interfaccia conversazionale, puoi utilizzare query in linguaggio naturale per comprendere e preparare i dati per creare modelli di ML.

Di seguito sono riportati alcuni prompt di esempio che puoi utilizzare:
+ Riepiloga i miei dati
+ Elimina la colonna `example-column-name`
+ Sostituisci i valori mancanti con la mediana
+ Traccia l’istogramma dei prezzi
+ Qual è l’articolo più costoso venduto?
+ Quanti articoli diversi sono stati venduti?
+ Ordina i dati per Regione

Quando trasformi i dati utilizzando i prompt, puoi visualizzare un’anteprima che mostra come vengono trasformati i dati. Puoi scegliere di aggiungere l’operazione come fase del flusso di Data Wrangler in base a ciò che vedi nell’anteprima.

Le risposte ai prompt generano codice per le tue trasformazioni e analisi. Puoi modificare il codice per aggiornare l’output del prompt. Ad esempio, puoi modificare il codice di un’analisi per modificare i valori degli assi di un grafico.

Utilizza la procedura seguente per iniziare a chattare con i tuoi dati:

**Per chattare con i tuoi dati**

1. Apri il flusso di dati SageMaker Canvas.

1. Scegli l’icona a forma di fumetto.  
![\[La chat per la preparazione dei dati si trova nella parte superiore dello schermo\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/chat-for-data-prep-welcome-step.png)

1. Specifica un prompt.

1. (Facoltativo) Se è stata generata un’analisi dalla query, scegli **Aggiungi alle analisi** per farvi riferimento in un secondo momento.  
![\[La visualizzazione di un blocco di codice modificabile e copiabile.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/encanto-query-for-visualization.png)

1. (Facoltativo) Se hai trasformato i dati utilizzando un prompt, procedi come segue.

   1. Scegli **Anteprima** per visualizzare i risultati.

   1. (Facoltativo) Modifica il codice nella trasformazione e scegli **Aggiorna**.

   1. (Facoltativo) Se i risultati della trasformazione sono soddisfacenti, scegli **Aggiungi alle fasi** per aggiungerla al pannello delle fasi nella barra di navigazione a destra.  
![\[Aggiunta alle fasi conferma che la trasformazione è stata aggiunta al flusso.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/transform-added-to-steps-panel.png)

Dopo aver preparato i dati utilizzando il linguaggio naturale, puoi creare un modello con i dati trasformati. Per ulteriori informazioni sulla creazione di un modello, consulta [Funzionamento dei modelli personalizzati](canvas-build-model.md).

# Come funziona l’elaborazione dei dati in Data Wrangler
<a name="canvas-data-processing"></a>

Mentre lavori con i dati in modo interattivo in un flusso di SageMaker dati Amazon Data Wrangler, Amazon SageMaker Canvas applica le trasformazioni solo a un set di dati di esempio per consentirti di visualizzarne l'anteprima. Dopo aver terminato il flusso di dati in SageMaker Canvas, puoi elaborare tutti i dati e salvarli in una posizione adatta ai flussi di lavoro di machine learning.

Dopo aver terminato la trasformazione dei dati in Data Wrangler, si può procedere in diversi modi:
+ [Crea un modello](canvas-processing-export-model.md). Puoi creare un modello Canvas, iniziando a creare direttamente un modello con i dati preparati. Puoi creare un modello dopo aver elaborato l’intero set di dati o esportando solo i dati di esempio che hai utilizzato in Data Wrangler. Canvas salva i dati elaborati (l’intero set di dati o i dati di esempio) come set di dati Canvas.

  Ti consigliamo di utilizzare i dati di esempio per le iterazioni rapide e tutti i dati per addestrare il modello finale. Quando si creano modelli tabulari, i set di dati di dimensioni superiori a 5 GB vengono automaticamente sottoposti a downsampling a 5 GB, mentre i set di dati per i modelli di previsione delle serie temporali di dimensioni superiori a 30 GB vengono sottoposti a downsampling a 30 GB.

  Per ulteriori informazioni sulla creazione di un modello, consulta [Funzionamento dei modelli personalizzati](canvas-build-model.md).
+ [Esporta i dati](canvas-export-data.md). Puoi esportare i dati per utilizzarli nei flussi di lavoro di machine learning. Quando scegli di esportare i dati, puoi procedere in diversi modi:
  + Puoi salvare i dati nell’applicazione Canvas come set di dati. Per ulteriori informazioni sui tipi di file supportati per i set di dati Canvas e sui requisiti aggiuntivi per l’importazione di dati in Canvas, consulta [Creazione di un set di dati](canvas-import-dataset.md).
  + Puoi salvare i dati in Amazon S3. A seconda della disponibilità di memoria Canvas, i dati vengono elaborati nell’applicazione e quindi esportati in Amazon S3. Se la dimensione del set di dati supera quella gestibile da Canvas, per impostazione predefinita Canvas utilizza un processo EMR Serverless per scalare su più istanze di calcolo, elaborare il set di dati completo ed esportarlo in Amazon S3. Puoi anche configurare manualmente un processo di SageMaker elaborazione per avere un controllo più granulare sulle risorse di calcolo utilizzate per elaborare i dati.
+ [Esporta un flusso di dati](canvas-export-data-flow.md). Potresti voler salvare il codice per il tuo flusso di dati per modificare o eseguire le trasformazioni all’esterno di Canvas. Canvas consente di salvare le trasformazioni del flusso di dati come codice Python in un notebook Jupyter, che puoi quindi esportare in Amazon S3 per utilizzarlo altrove nei tuoi flussi di lavoro di machine learning.

Quando esporti i dati da un flusso di dati e li salvi come set di dati Canvas o su Amazon S3, Canvas crea un nuovo nodo di destinazione nel flusso di dati, ovvero un nodo finale che mostra dove sono archiviati i dati elaborati. Puoi aggiungere altri nodi di destinazione al flusso se intendi eseguire più operazioni di esportazione. Ad esempio, puoi esportare i dati da diversi punti del flusso di dati per applicare solo alcune trasformazioni oppure puoi esportare i dati trasformati in diverse posizioni Amazon S3. Per ulteriori informazioni su come aggiungere o modificare un nodo di destinazione, consulta [Aggiunta di nodi di destinazione](canvas-destination-nodes-add.md) e [Modifica di un nodo di destinazione](canvas-destination-nodes-edit.md).

Per ulteriori informazioni sulla configurazione di una pianificazione con Amazon EventBridge per elaborare ed esportare automaticamente i dati in base a una pianificazione, consulta[Creazione di una pianificazione per elaborare automaticamente i nuovi dati](canvas-data-export-schedule-job.md).

# Esportazione per creare un modello
<a name="canvas-processing-export-model"></a>

Con pochi clic nel flusso di dati, puoi esportare i dati trasformati e iniziare a creare un modello di ML in Canvas. Canvas salva i dati come set di dati Canvas e ti indirizza alla pagina di configurazione per la creazione di un nuovo modello.

Per creare un modello Canvas con i dati trasformati:

1. Accedi al tuo flusso di dati.

1. Scegli l’icona con tre puntini accanto al nodo da esportare.

1. Dal menu contestuale, scegli **Crea modello**.

1. Nel pannello laterale **Esporta per creare un modello**, inserisci il **nome** per il nuovo set di dati.

1. Lascia selezionata l’opzione **Elabora l’intero set di dati** per elaborare ed esportare l’intero set di dati prima di procedere con la creazione di un modello. Disattiva questa opzione per addestrare il modello utilizzando i dati di esempio interattivi con cui stai lavorando nel flusso di dati.

1. Inserisci il **nome del modello** per assegnare un nome al nuovo modello.

1. Seleziona un **tipo di problema** o il tipo di modello che intendi creare. Per ulteriori informazioni sui tipi di modello supportati in SageMaker Canvas, consulta[Funzionamento dei modelli personalizzati](canvas-build-model.md).

1. Seleziona la **colonna di destinazione** o il valore che desideri che il modello preveda.

1. Scegli **Esporta e crea modello**.

Dovrebbe aprirsi la scheda **Crea** per un nuovo modello Canvas, dove puoi completare la configurazione e l’addestramento del modello. Per ulteriori informazioni sulla creazione di un modello, consulta [Crea un modello](canvas-build-model-how-to.md).

# Esporta dati
<a name="canvas-export-data"></a>

Esporta i dati per applicare le trasformazioni dal flusso di dati all’intero set di dati importato. Puoi esportare qualsiasi nodo del flusso di dati nelle seguenti posizioni:
+ SageMaker Set di dati Canvas
+ Simple Storage Service (Amazon S3)

Per addestrare i modelli in Canvas, puoi esportare il tuo set di dati completo e trasformato come set di dati Canvas. Se desideri utilizzare i dati trasformati in flussi di lavoro di machine learning esterni a SageMaker Canvas, puoi esportare il tuo set di dati in Amazon S3.

## Esportazione in un set di dati Canvas
<a name="canvas-export-data-canvas"></a>

Utilizza la seguente procedura per esportare un set di dati SageMaker Canvas da un nodo del flusso di dati.

**Per esportare un nodo nel flusso come set di dati SageMaker Canvas**

1. Accedi al tuo flusso di dati.

1. Scegli l’icona con tre puntini accanto al nodo da esportare.

1. Nel menu contestuale, passa il mouse su **Esporta**, quindi seleziona **Esporta dati nel set di dati Canvas**.

1. Nel pannello laterale **Esporta ne set di dati Canvas**, inserisci un **nome** per il nuovo set di dati.

1. Lascia selezionata l'opzione **Elabora l'intero set** di dati se desideri che SageMaker Canvas elabori e salvi l'intero set di dati. Disattiva questa opzione per applicare le trasformazioni solo ai dati di esempio con cui stai lavorando nel flusso di dati.

1. Scegli **Export** (Esporta).

A questo punto, dovresti poter accedere alla pagina **Set di dati** dell’applicazione Canvas e vedere il tuo nuovo set di dati.

## Esportazione in Amazon S3
<a name="canvas-export-data-s3"></a>

Quando esporti i dati in Amazon S3, puoi scalare per trasformare ed elaborare dati di qualsiasi dimensione. Canvas elabora automaticamente i dati in locale se la memoria dell’applicazione è in grado di gestire le dimensioni del set di dati. Se la dimensione del set di dati supera la capacità della memoria locale di 5 GB, Canvas avvia un processo remoto per conto dell’utente per allocare risorse di calcolo aggiuntive ed elaborare i dati più rapidamente. Per impostazione predefinita, Canvas utilizza Amazon EMR serverless per eseguire questi processi remoti. Tuttavia, puoi configurare manualmente Canvas per utilizzare EMR Serverless o un processo di SageMaker elaborazione con le tue impostazioni.

**Nota**  
Quando esegui un processo EMR Serverless, per impostazione predefinita il processo eredita il ruolo IAM, le impostazioni delle chiavi KMS e i tag dell’applicazione Canvas.

Di seguito viene riportato un riepilogo delle opzioni per i processi remoti in Canvas:
+ **EMR Serverless**: questa è l’opzione predefinita utilizzata da Canvas per i processi remoti. EMR Serverless alloca e scala automaticamente le risorse di calcolo per elaborare i dati, così non devi preoccuparti di scegliere le risorse di calcolo giuste per il tuo carico di lavoro. Per ulteriori informazioni su EMR Serverless, consulta la [Guida per l’utente di EMR Serverless](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/emr-serverless.html).
+ **SageMaker SageMaker Elaborazione**: i lavori di elaborazione offrono opzioni più avanzate e un controllo granulare sulle risorse di calcolo utilizzate per elaborare i dati. Ad esempio, puoi specificare il tipo e il numero di istanze di calcolo, configurare il processo nel tuo VPC e controllare l’accesso alla rete, automatizzare i processi di elaborazione e altro ancora. Per ulteriori informazioni sull’automazione dei processi di elaborazione, consulta [Creazione di una pianificazione per elaborare automaticamente i nuovi dati](canvas-data-export-schedule-job.md). Per informazioni più generali sui SageMaker processi di elaborazione, vedere. [Carichi di lavoro di trasformazione dei dati con Processing SageMaker](processing-job.md)

I tipi di file seguenti sono supportati durante l’esportazione in Amazon S3:
+ CSV
+ Parquet

Per iniziare, esamina i prerequisiti seguenti.

### Prerequisiti per i processi EMR Serverless
<a name="canvas-export-data-emr-prereqs"></a>

Per creare un processo remoto che utilizza risorse EMR Serverless, devi disporre delle autorizzazioni richieste. Puoi concedere le autorizzazioni tramite il dominio Amazon SageMaker AI o le impostazioni del profilo utente oppure puoi configurare manualmente il ruolo AWS IAM dell'utente. Per istruzioni su come concedere agli utenti le autorizzazioni per eseguire l’elaborazione di grandi quantità di dati, consulta [Concessione di autorizzazioni agli utenti per utilizzare grandi quantità di dati nel ciclo di vita di ML](canvas-large-data-permissions.md).

Se non desideri configurare queste politiche ma devi comunque elaborare set di dati di grandi dimensioni tramite Data Wrangler, in alternativa puoi utilizzare un processo di elaborazione. SageMaker 

Utilizza le procedure seguenti per esportare i dati in Amazon S3. Per configurare un processo remoto, segui le fasi avanzate facoltative.

**Per esportare un nodo del flusso in Amazon S3**

1. Accedi al tuo flusso di dati.

1. Scegli l’icona con tre puntini accanto al nodo da esportare.

1. Nel menu contestuale, passa il mouse su **Esporta**, quindi seleziona **Esporta dati su Amazon S3**.

1. Nel pannello laterale **Esporta in Amazon S3**, puoi modificare il **nome** per il nuovo set di dati.

1. In **Posizione S3**, inserisci la posizione Amazon S3 in cui esportare il set di dati. Puoi inserire l’URI S3, l’alias o l’ARN della posizione S3 o del punto di accesso S3. Per ulteriori informazioni sui punti di accesso, consulta [Managing data access with Amazon S3 access points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html) in *Amazon S3 User Guide*.

1. (Facoltativo) In **Impostazioni avanzate**, specifica i valori per i campi seguenti:

   1. **Tipo di file**: il formato file dei dati esportati.

   1. **Delimitatore**: il delimitatore utilizzato per separare i valori nel file.

   1. **Compressione**: il metodo di compressione utilizzato per ridurre le dimensioni del file.

   1. **Numero di partizioni**: il numero di file del set di dati che Canvas scrive come output del processo.

   1. **Scegli colonne**: puoi scegliere un sottoinsieme di colonne dai dati da includere nelle partizioni.

1. Lascia selezionata l’opzione **Elabora l’intero set di dati** se desideri che Canvas applichi le trasformazioni del flusso di dati all’intero set di dati ed esporti il risultato. Se deselezioni questa opzione, Canvas applica le trasformazioni solo al campione del set di dati utilizzato nel flusso di dati interattivo di Data Wrangler.
**Nota**  
Se esporti solo un campione di dati, Canvas elabora i dati nell’applicazione e non crea un processo remoto per conto tuo.

1. Lascia selezionata l’opzione **Configurazione automatica del processo** se desideri che Canvas decida automaticamente se eseguire il processo con la memoria dell’applicazione Canvas o con un processo EMR Serverless. Se si deseleziona questa opzione e si configura manualmente il processo, è possibile scegliere di utilizzare un processo EMR Serverless o SageMaker un processo di elaborazione. Per istruzioni su come configurare un processo EMR Serverless o di SageMaker elaborazione, vedere la sezione successiva a questa procedura prima di esportare i dati.

1. Scegli **Export** (Esporta).

Le seguenti procedure mostrano come configurare manualmente le impostazioni del processo remoto per EMR Serverless o SageMaker Processing durante l'esportazione del set di dati completo in Amazon S3.

------
#### [ EMR Serverless ]

Per configurare un processo EMR Serverless durante l’esportazione in Amazon S3, procedi come descritto di seguito:

1. Nel pannello laterale Esporta in Amazon S3, disattiva l’opzione di **configurazione automatica del processo**.

1. Seleziona **EMR Serverless**.

1. In **Nome processo**, inserisci un nome per il processo EMR Serverless. Il nome può contenere solo lettere, numeri, trattini e caratteri di sottolineatura.

1. In **Ruolo IAM**, inserisci il ruolo di esecuzione IAM dell’utente. Questo ruolo deve disporre delle autorizzazioni necessarie per eseguire applicazioni EMR Serverless. Per ulteriori informazioni, consulta [Concessione di autorizzazioni agli utenti per utilizzare grandi quantità di dati nel ciclo di vita di ML](canvas-large-data-permissions.md).

1. (Facoltativo) Per la **chiave KMS**, specificare l'ID della chiave o l'ARN di AWS KMS key un per crittografare i registri dei lavori. Se non inserisci una chiave, Canvas utilizza una chiave predefinita per EMR Serverless.

1. (Facoltativo) Per la **configurazione del monitoraggio**, inserisci il nome di un gruppo di log di Amazon CloudWatch Logs in cui desideri pubblicare i log.

1. (Facoltativo) In **Tag**, aggiungi i tag dei metadati al processo EMR Serverless costituiti da coppie chiave-valore. Questi tag possono essere utilizzati per classificare e cercare i processi.

1. Scegli **Export** (Esporta) per avviare il processo.

------
#### [ SageMaker Processing ]

Per configurare un SageMaker processo di elaborazione durante l'esportazione in Amazon S3, procedi come segue:

1. Nel pannello laterale **Esporta in Amazon S3**, disattiva l’opzione di **configurazione automatica del processo**.

1. **Seleziona SageMaker Elaborazione.**

1. Per **Job name**, inserisci un nome per il tuo job di SageMaker AI Processing.

1. In **Tipo di istanza**, seleziona il tipo di istanza di calcolo per eseguire il processo di elaborazione.

1. In **Numero di istanze**, specifica il numero di istanze di calcolo da avviare.

1. In **Ruolo IAM**, inserisci il ruolo di esecuzione IAM dell’utente. Questo ruolo deve disporre delle autorizzazioni necessarie affinché l' SageMaker IA possa creare ed eseguire lavori di elaborazione per tuo conto. Queste autorizzazioni vengono concesse se hai la [AmazonSageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html)policy allegata al tuo ruolo IAM.

1. In **Dimensioni volume**, inserisci la dimensione dell’archiviazione in GB per il volume di archiviazione di ML collegato a ciascuna istanza di elaborazione. Scegli questo valore in base alla dimensione prevista dei dati di input e output.

1. (Facoltativo) In **Chiave KMS del volume**, specifica una chiave KMS per crittografare il volume di archiviazione. Se non specifichi una chiave, viene utilizzata la chiave di crittografia predefinita di Amazon EBS.

1. (Facoltativo) In **Chiave KMS**, specifica una chiave KMS per crittografare le origini dati di input e output di Amazon S3 utilizzate dal processo di elaborazione.

1. (Facoltativo) In **Configurazione memoria Spark**, procedi come descritto di seguito:

   1. Inserisci la **memoria del driver in MB** per il nodo driver Spark che gestisce il coordinamento e la pianificazione dei processi.

   1. Inserisci la **memoria dell’esecutore in MB** per i nodi dell’esecutore Spark che eseguono le singole attività nel processo.

1. (Facoltativo) In **Configurazione di rete**, procedi come descritto di seguito:

   1. Per la **configurazione IDs della sottorete**, inserisci le sottoreti VPC per le istanze di elaborazione in cui avviare. Per impostazione predefinita, il processo utilizza le impostazioni del VPC predefinito.

   1. Per la **configurazione del gruppo di sicurezza**, inserisci uno dei gruppi IDs di sicurezza per controllare le regole di connettività in entrata e in uscita.

   1. Attiva l’opzione **Abilita la crittografia del traffico tra container** per crittografare le comunicazioni di rete tra i container di elaborazione durante il processo.

1. (Facoltativo) Per le **pianificazioni di affiliazione**, puoi scegliere di creare una EventBridge pianificazione Amazon per far sì che il processo di elaborazione venga eseguito a intervalli ricorrenti. Scegli **Crea nuova pianificazione** e compila la finestra di dialogo. Per ulteriori informazioni sulla compilazione di questa sezione e sull’esecuzione dei processi di elaborazione in base a una pianificazione, consulta [Creazione di una pianificazione per elaborare automaticamente i nuovi dati](canvas-data-export-schedule-job.md).

1. (Facoltativo) Aggiungi i **tag** come coppie chiave-valore in modo da poter classificare e cercare i processi di elaborazione.

1. Scegli **Esporta** per avviare il processo di elaborazione.

------

Dopo aver esportato i dati, dovresti trovare il set di dati completamente elaborato nella posizione Amazon S3 specificata.

# Esportazione di un flusso di dati
<a name="canvas-export-data-flow"></a>

L’esportazione del flusso di dati traduce le operazioni che hai eseguito in Data Wrangler e le esporta in un notebook Jupyter di codice Python che puoi modificare ed eseguire. Questo può essere utile per integrare il codice per le trasformazioni dei dati nelle pipeline di machine learning.

Puoi scegliere qualsiasi nodo di dati nel flusso di dati ed esportarlo. L'esportazione del nodo di dati esporta la trasformazione che il nodo rappresenta e le trasformazioni che la precedono.

**Per esportare un flusso di dati come notebook Jupyter**

1. Accedi al tuo flusso di dati.

1. Scegli l’icona con tre puntini accanto al nodo da esportare.

1. Nel menu contestuale, passa il mouse su **Esporta**, quindi su **Esporta tramite notebook Jupyter**.

1. Seleziona una delle seguenti opzioni:
   + **SageMaker Pipelines**
   + **Amazon S3**
   + **SageMaker Pipeline di inferenza AI**
   + **SageMaker AI Feature Store**
   + **Codice Python**

1. Viene visualizzata la finestra di dialogo **Esporta flusso di dati come notebook**. Selezionare uno dei seguenti:
   + **Scarica una copia locale**
   + **Esporta in una posizione S3**

1. Se hai selezionato **Esporta in una posizione S3**, inserisci la posizione Amazon S3 in cui esportare il notebook.

1. Scegli **Export** (Esporta).

Il notebook Jupyter deve essere scaricato sul computer locale oppure è possibile trovarlo salvato nella posizione Amazon S3 specificata.

# Aggiunta di nodi di destinazione
<a name="canvas-destination-nodes-add"></a>

Un nodo di destinazione in SageMaker Canvas specifica dove archiviare i dati elaborati e trasformati. Quando scegli di esportare i dati trasformati in Amazon S3, Canvas utilizza la posizione del nodo di destinazione specificata, applicando tutte le trasformazioni che hai configurato nel flusso di dati. Per ulteriori informazioni sui processi di esportazione in Amazon S3, consulta la sezione precedente [Esportazione in Amazon S3](canvas-export-data.md#canvas-export-data-s3).

Per impostazione predefinita, la scelta di esportare i dati in Amazon S3 aggiunge un nodo di destinazione al flusso di dati. Tuttavia, se aggiungi più nodi di destinazione al flusso, puoi esportare contemporaneamente diversi set di trasformazioni o variazioni dei dati in diverse posizioni Amazon S3. Ad esempio, puoi creare un nodo di destinazione che esporta i dati dopo aver applicato tutte le trasformazioni e un altro nodo di destinazione che esporta i dati solo dopo aver applicato specifiche trasformazioni iniziali, ad esempio un’operazione di join. Questa flessibilità consente di esportare e archiviare diverse versioni o sottoinsiemi dei dati trasformati in posizioni S3 separate per vari i casi d’uso.

Utilizza la procedura seguente per aggiungere un nodo di destinazione al flusso di dati.

**Per aggiungere un nuovo nodo di destinazione**

1. Accedi al tuo flusso di dati.

1. Scegli l’icona con tre puntini accanto al nodo in cui posizionare il nodo di destinazione.

1. Nel menu contestuale, passa il mouse su **Esporta**, quindi seleziona **Aggiungi destinazione**.

1. Nel pannello laterale **Destinazione di esportazione**, inserisci un **nome per il set di dati** per assegnare un nome all’output.

1. In **Posizione Amazon S3**, inserisci la posizione Amazon S3 in cui esportare l’output. Puoi inserire l’URI S3, l’alias o l’ARN della posizione S3 o del punto di accesso S3. Per ulteriori informazioni sui punti di accesso, consulta [Managing data access with Amazon S3 access points](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html) in *Amazon S3 User Guide*.

1. In **Impostazioni di esportazione**, specifica i seguenti campi:

   1. **Tipo di file**: il formato file dei dati esportati.

   1. **Delimitatore**: il delimitatore utilizzato per separare i valori nel file.

   1. **Compressione**: il metodo di compressione utilizzato per ridurre le dimensioni del file.

1. In **Partizionamento**, specifica i seguenti campi:

   1. **Numero di partizioni**: il numero di file di set di dati che SageMaker Canvas scrive come output del lavoro.

   1. **Scegli colonne**: puoi scegliere un sottoinsieme di colonne dai dati da includere nelle partizioni.

1. Scegli **Aggiungi** per aggiungere semplicemente un nodo di destinazione al flusso di dati oppure scegli **Aggiungi** ed **Esporta** per aggiungere il nodo e avviare un processo di esportazione.

A questo punto, dovresti vedere un nuovo nodo di destinazione nel tuo flusso.

# Modifica di un nodo di destinazione
<a name="canvas-destination-nodes-edit"></a>

Un *nodo di destinazione* in un flusso di dati Amazon SageMaker Canvas specifica la posizione Amazon S3 in cui vengono archiviati i dati elaborati e trasformati, applicando tutte le trasformazioni configurate nel flusso di dati. Puoi modificare la configurazione di un nodo di destinazione esistente e quindi scegliere di rieseguire il processo per sovrascrivere i dati nella posizione Amazon S3 specificata. Per ulteriori informazioni sull’aggiunta di un nuovo nodo di destinazione, consulta [Aggiunta di nodi di destinazione](canvas-destination-nodes-add.md).

Utilizza la procedura seguente per modificare un nodo di destinazione nel flusso di dati e avviare un processo di esportazione.

**Per modificare un nodo di destinazione**

1. Accedi al tuo flusso di dati.

1. Scegli l’icona con tre puntini accanto al nodo di destinazione da modificare.

1. Nel menu contestuale, scegli **Modifica**.

1. Si apre il pannello laterale **Modifica destinazione**. Da questo pannello, puoi modificare dettagli come il nome del set di dati, la posizione Amazon S3 e le impostazioni di esportazione e partizionamento.

1. (Facoltativo) In **Nodi aggiuntivi da esportare**, puoi selezionare più nodi di destinazione da elaborare quando esegui il processo di esportazione.

1. Lascia selezionata l’opzione **Elabora l’intero set di dati** se desideri che Canvas applichi le trasformazioni del flusso di dati all’intero set di dati ed esporti il risultato. Se deselezioni questa opzione, Canvas applica le trasformazioni solo al campione del set di dati utilizzato nel flusso di dati interattivo di Data Wrangler.

1. Lascia selezionata l’opzione **Configurazione automatica del processo** se desideri che Canvas decida automaticamente se eseguire il processo con la memoria dell’applicazione Canvas o con un processo EMR Serverless. Se si deseleziona questa opzione e si configura manualmente il processo, è possibile scegliere di utilizzare un processo EMR Serverless o SageMaker un processo di elaborazione. Per istruzioni su come configurare un processo EMR Serverless o di SageMaker elaborazione, vedere la sezione precedente. [Esportazione in Amazon S3](canvas-export-data.md#canvas-export-data-s3)

1. Una volta completate le modifiche, scegli **Aggiorna**.

Il salvataggio delle modifiche alla configurazione del nodo di destinazione non riesegue automaticamente un processo né sovrascrive i dati che sono già stati elaborati ed esportati. Esporta nuovamente i dati per eseguire un processo con la nuova configurazione. Se decidi di esportare nuovamente i dati con un processo, Canvas utilizza la configurazione aggiornata del nodo di destinazione per trasformare e inviare i dati nella posizione specificata, sovrascrivendo i dati esistenti.

# Creazione di una pianificazione per elaborare automaticamente i nuovi dati
<a name="canvas-data-export-schedule-job"></a>

**Nota**  
La sezione seguente si applica solo ai lavori di SageMaker elaborazione. Se hai utilizzato le impostazioni predefinite di Canvas o EMR Serverless per creare un processo remoto per applicare le trasformazioni al set di dati completo, puoi ignorare questa sezione.

Se elabori i dati periodicamente, puoi creare una pianificazione per eseguire automaticamente il processo di elaborazione. Ad esempio, è possibile creare una pianificazione che esegue automaticamente un processo di elaborazione quando si ottengono nuovi dati. Per ulteriori informazioni sui processi di elaborazione, consulta [Esportazione in Amazon S3](canvas-export-data.md#canvas-export-data-s3).

Quando crei un processo, devi specificare un ruolo IAM con le autorizzazioni per creare il processo. È possibile utilizzare la [AmazonSageMakerCanvasDataPrepFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasDataPrepFullAccess.html)politica per aggiungere autorizzazioni.

Aggiungi la seguente politica di fiducia al ruolo per EventBridge consentirne l'assunzione.

```
{
    "Effect": "Allow",
    "Principal": {
        "Service": "events.amazonaws.com"
    },
    "Action": "sts:AssumeRole"
}
```

**Importante**  
Quando crei una pianificazione, Data Wrangler crea un `eventRule` ingresso. EventBridge Ti vengono addebitati costi sia per le regole degli eventi che crei sia per le istanze utilizzate per eseguire il processo di elaborazione.  
Per informazioni sui EventBridge prezzi, consulta la pagina [ EventBridge dei prezzi di Amazon](https://aws.amazon.com/eventbridge/pricing/). Per informazioni sui prezzi dei lavori di elaborazione, consulta [Amazon SageMaker Pricing](https://aws.amazon.com/sagemaker/pricing/).

Puoi impostare una pianificazione utilizzando uno dei seguenti metodi:
+ [Espressioni CRON](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)
**Nota**  
Data Wrangler non supporta le seguenti espressioni:  
LW\$1
Abbreviazioni per i giorni
Abbreviazioni per i mesi
+ [Espressioni della FREQUENZA](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html#eb-rate-expressions)
+ Ricorrente: per l'esecuzione del processo Imposta un intervallo orario o giornaliero.
+ Ora specifica: per l'esecuzione del processo imposta giorni e orari specifici.

Le seguenti sezioni forniscono le procedure per la pianificazione dei lavori durante la compilazione delle impostazioni del processo di elaborazione SageMaker AI durante l'[esportazione dei dati in Amazon S3](canvas-export-data.md#canvas-export-data-s3). Tutte le seguenti istruzioni iniziano nella sezione **Pianificazioni degli associati** delle impostazioni del processo di SageMaker elaborazione.

------
#### [ CRON ]

Utilizza la procedura seguente per creare una pianificazione con un'espressione CRON.

1. **Nel pannello laterale **Esporta in Amazon S3**, assicurati di aver disattivato l'interruttore di **configurazione automatica del lavoro** e di aver selezionato l'SageMaker opzione Elaborazione.**

1. Nelle impostazioni del **SageMaker processo di elaborazione**, apri la sezione **Pianificazioni di associazione** e scegli **Crea** nuova pianificazione.

1. Si apre la finestra di dialogo **Crea una nuova pianificazione**. Per **Nome della pianificazione**, specifica il nome della pianificazione.

1. Per **Frequenza di esecuzione**, seleziona **CRON**.

1. Per ciascuno dei campi **Minuti**, **Ore**, **Giorni del mese**, **Mese** e **Giorno della settimana**, inserisci valori di espressione Cron validi.

1. Scegli **Create** (Crea).

1. (Facoltativo) seleziona **Aggiungi un’altra pianificazione** per eseguire il lavoro in base a una pianificazione aggiuntiva.
**Nota**  
È possibile associare un massimo di due pianificazioni. Le pianificazioni sono indipendenti e non si influenzano tra loro a meno che i tempi non si sovrappongano.

1. Seleziona una delle seguenti opzioni:
   + **Pianifica ed esegui ora**: il processo viene eseguito immediatamente, quindi si ripete in base alle pianificazioni.
   + **Solo pianificazione**: il processo viene eseguito solo in base alle pianificazioni specificate.

1. Scegli **Esporta** dopo aver compilato il resto delle impostazioni del processo di esportazione.

------
#### [ RATE ]

Utilizza la procedura seguente per creare una pianificazione con un'espressione della FREQUENZA.

1. **Nel pannello laterale **Esporta in Amazon S3**, assicurati di aver disattivato l'interruttore di **configurazione automatica del lavoro** e di aver selezionato l'SageMaker opzione Elaborazione.**

1. Nelle impostazioni del **SageMaker processo di elaborazione**, apri la sezione **Pianificazioni di associazione** e scegli **Crea** nuova pianificazione.

1. Si apre la finestra di dialogo **Crea una nuova pianificazione**. Per **Nome della pianificazione**, specifica il nome della pianificazione.

1. Per **Frequenza di esecuzione**, seleziona **Frequenza**.

1. Per **Valore**, specifica un numero intero.

1. Per **Unità**, seleziona una delle opzioni seguenti:
   + **Minuti**
   + **Ore**
   + **Giorni**

1. Scegli **Create** (Crea).

1. (Facoltativo) seleziona **Aggiungi un’altra pianificazione** per eseguire il lavoro in base a una pianificazione aggiuntiva.
**Nota**  
È possibile associare un massimo di due pianificazioni. Le pianificazioni sono indipendenti e non si influenzano tra loro a meno che i tempi non si sovrappongano.

1. Seleziona una delle seguenti opzioni:
   + **Pianifica ed esegui ora**: il processo viene eseguito immediatamente, quindi si ripete in base alle pianificazioni.
   + **Solo pianificazione**: il processo viene eseguito solo in base alle pianificazioni specificate.

1. Scegli **Esporta** dopo aver compilato il resto delle impostazioni del processo di esportazione.

------
#### [ Recurring ]

Utilizza la procedura seguente per creare una pianificazione che esegua un processo su base ricorrente.

1. **Nel pannello laterale **Esporta in Amazon S3**, assicurati di aver disattivato l'interruttore di **configurazione automatica del lavoro** e di aver selezionato l'SageMaker opzione Elaborazione.**

1. Nelle impostazioni del **SageMaker processo di elaborazione**, apri la sezione **Pianificazioni di associazione** e scegli **Crea** nuova pianificazione.

1. Si apre la finestra di dialogo **Crea una nuova pianificazione**. Per **Nome della pianificazione**, specifica il nome della pianificazione.

1. In **Frequenza di esecuzione**, scegli **Ricorrente**.

1. Per **Ogni x ore**, specifica la frequenza oraria di esecuzione del processo durante il giorno. I valori validi sono numeri interi compresi nell'intervallo tra **1** e **23**.

1. Per **In giorni**, seleziona una delle seguenti opzioni:
   + **Ogni giorno**
   + **Fine settimana**
   + **Giorni della settimana**
   + **Seleziona giorni**

   1. (Facoltativo) Se hai selezionato **Seleziona giorni**, seleziona i giorni della settimana in cui eseguire il processo.
**Nota**  
La pianificazione viene ripristinata ogni giorno. Se pianifichi l'esecuzione di un processo ogni cinque ore, questo viene eseguito nelle seguenti ore del giorno:  
00:00
05:00
10:00
15:00
20:00

1. Scegli **Create** (Crea).

1. (Facoltativo) seleziona **Aggiungi un’altra pianificazione** per eseguire il lavoro in base a una pianificazione aggiuntiva.
**Nota**  
È possibile associare un massimo di due pianificazioni. Le pianificazioni sono indipendenti e non si influenzano tra loro a meno che i tempi non si sovrappongano.

1. Seleziona una delle seguenti opzioni:
   + **Pianifica ed esegui ora**: il processo viene eseguito immediatamente, quindi si ripete in base alle pianificazioni.
   + **Solo pianificazione**: il processo viene eseguito solo in base alle pianificazioni specificate.

1. Scegli **Esporta** dopo aver compilato il resto delle impostazioni del processo di esportazione.

------
#### [ Specific time ]

Utilizzare la procedura seguente per creare una pianificazione che esegua un processo a orari specifici.

1. **Nel pannello laterale **Esporta in Amazon S3**, assicurati di aver disattivato l'interruttore di **configurazione automatica del lavoro** e di aver selezionato l'SageMaker opzione Elaborazione.**

1. Nelle impostazioni del **SageMaker processo di elaborazione**, apri la sezione **Pianificazioni di associazione** e scegli **Crea** nuova pianificazione.

1. Si apre la finestra di dialogo **Crea una nuova pianificazione**. Per **Nome della pianificazione**, specifica il nome della pianificazione.

1. In **Frequenza di esecuzione**, scegli **Ora di inizio**.

1. In **Ora di inizio**, inserisci un’ora in formato UTC (ad esempio, **09:00**). Per impostazione predefinita, l’ora di inizio si basa sul fuso orario in cui ti trovi.

1. Per **In giorni**, seleziona una delle seguenti opzioni:
   + **Ogni giorno**
   + **Fine settimana**
   + **Giorni della settimana**
   + **Seleziona giorni**

   1. (Facoltativo) Se hai selezionato **Seleziona giorni**, seleziona i giorni della settimana in cui eseguire il processo.

1. Scegli **Create** (Crea).

1. (Facoltativo) seleziona **Aggiungi un’altra pianificazione** per eseguire il lavoro in base a una pianificazione aggiuntiva.
**Nota**  
È possibile associare un massimo di due pianificazioni. Le pianificazioni sono indipendenti e non si influenzano tra loro a meno che i tempi non si sovrappongano.

1. Seleziona una delle seguenti opzioni:
   + **Pianifica ed esegui ora**: il processo viene eseguito immediatamente, quindi si ripete in base alle pianificazioni.
   + **Solo pianificazione**: il processo viene eseguito solo in base alle pianificazioni specificate.

1. Scegli **Esporta** dopo aver compilato il resto delle impostazioni del processo di esportazione.

------

Puoi utilizzare l' SageMaker intelligenza artificiale Console di gestione AWS per visualizzare i lavori la cui esecuzione è pianificata. I processi di elaborazione vengono eseguiti in Pipelines. Ogni processo di elaborazione ha una propria pipeline. Viene eseguito come fase di elaborazione all'interno della pipeline. All'interno di una pipeline puoi visualizzare le pianificazioni che hai creato. Per informazioni sulla visualizzazione di una pipeline, consulta [Visualizzazione dei dettagli di una pipeline](pipelines-studio-list.md).

Per visualizzare i processi pianificati utilizza la procedura seguente.

Per visualizzare i processi che hai programmato, procedi come segue.

1. Apri Amazon SageMaker Studio Classic.

1. Apri Pipelines.

1. Visualizza le pipeline dei lavori che hai creato.

   La pipeline che esegue il processo utilizza il nome del processo come prefisso. Ad esempio, se hai creato un processo denominato `housing-data-feature-enginnering`, il nome della pipeline sarà `canvas-data-prep-housing-data-feature-engineering`

1. Selezionare la pipeline contenente il tuo processo.

1. Visualizza lo stato delle pipeline. Le pipeline con **stato** **Riuscito** hanno eseguito correttamente il processo di elaborazione.

Per interrompere l'esecuzione del processo di elaborazione, effettua le seguenti operazioni:

Per interrompere l'esecuzione di un processo di elaborazione, elimina la regola di evento che specifica la pianificazione. L'eliminazione di una regola di evento interrompe l'esecuzione di tutti i processi associati alla pianificazione. Per informazioni sull'eliminazione di una regola, consulta [Disabilitazione o eliminazione di una regola Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-delete-rule.html). EventBridge 

Puoi anche interrompere ed eliminare le pipeline associate alle pianificazioni. Per informazioni sull'arresto di una pipeline, consulta. [StopPipelineExecution](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopPipelineExecution.html) Per informazioni sull'eliminazione di una pipeline, vedere. [DeletePipeline](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeletePipeline.html#API_DeletePipeline_RequestSyntax)

# Automatizza la preparazione dei dati in Canvas SageMaker
<a name="canvas-data-export"></a>

Dopo aver trasformato i dati in un flusso di dati, puoi esportare le trasformazioni nei flussi di lavoro di machine learning. Quando esporti le tue trasformazioni, SageMaker Canvas crea un notebook Jupyter. È necessario eseguire il notebook all'interno di Amazon SageMaker Studio Classic. Per informazioni su come iniziare con Studio Classic, contatta l’amministratore.

## Automazione della preparazione dei dati con Pipelines
<a name="canvas-data-export-pipelines"></a>

Se desideri creare e distribuire flussi di lavoro di machine learning (ML) su larga scala, puoi utilizzare Pipelines per creare flussi di lavoro che gestiscono e implementano lavori di intelligenza artificiale. SageMaker Con Pipelines, puoi creare flussi di lavoro che gestiscono la preparazione dei dati di SageMaker intelligenza artificiale, la formazione dei modelli e i lavori di implementazione dei modelli. Puoi utilizzare gli algoritmi proprietari offerti dall' SageMaker intelligenza artificiale utilizzando Pipelines. [Per ulteriori informazioni sulle pipeline, consulta Pipelines. SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines.html)

Quando esporti una o più fasi dal flusso di dati a Pipelines, Data Wrangler crea un notebook Jupyter che puoi utilizzare per definire, creare istanze, eseguire e gestire una pipeline.

### Per creare una pipeline usare un notebook Jupyter
<a name="canvas-pipelines-notebook"></a>

Utilizza la procedura seguente per creare un notebook Jupyter per esportare il flusso di Data Wrangler in Pipelines.

Utilizza la procedura seguente per generare un notebook Jupyter ed eseguilo per esportare il flusso di Data Wrangler in Pipelines.

1. Seleziona la **\$1** accanto al nodo che desideri esportare.

1. Seleziona **Esporta flusso di dati**.

1. Seleziona **Pipelines (tramite Notebook Jupyter)**.

1. Scarica il notebook Jupyter o copialo in una posizione Amazon S3. Ti consigliamo di copiarlo in una posizione Amazon S3 a cui puoi accedere da Studio Classic. Contatta l’amministratore se hai bisogno di assistenza per la scelta della posizione ottimale.

1. Esecuzione del notebook Jupyter

Per definire una pipeline è possibile utilizzare il notebook Jupyter prodotto da Data Wrangler. La pipeline include le fasi di elaborazione dati definite dal flusso di Data Wrangler. 

Puoi aggiungere ulteriori fasi alla tua pipeline aggiungendo fasi all'elenco `steps` nel seguente codice del notebook:

```
pipeline = Pipeline(
    name=pipeline_name,
    parameters=[instance_type, instance_count],
    steps=[step_process], #Add more steps to this list to run in your Pipeline
)
```

Per ulteriori informazioni sulla definizione delle pipeline, consulta [ SageMaker Define](https://docs.aws.amazon.com/sagemaker/latest/dg/define-pipeline.html) AI Pipeline.

## Automazione della preparazione dei dati utilizzando un endpoint di inferenza
<a name="canvas-data-export-inference"></a>

Usa il tuo flusso Data Wrangler per elaborare i dati al momento dell'inferenza creando una pipeline di inferenza seriale SageMaker AI dal tuo flusso Data Wrangler. Una pipeline di inferenza è una serie di fasi che si traducono in un modello addestrato che effettua previsioni su nuovi dati. Una pipeline di inferenza seriale all'interno di Data Wrangler trasforma i dati grezzi e li fornisce al modello di machine learning per una previsione. Puoi creare, eseguire e gestire la pipeline di inferenza da un notebook Jupyter all’interno di Studio Classic. Per ulteriori informazioni sull’accesso al notebook, consultare [Utilizzo di un notebook Jupyter per creare un endpoint di inferenza](#canvas-inference-notebook).

All'interno del notebook, puoi addestrare un modello di machine learning o specificarne uno che hai già addestrato. Puoi utilizzare Amazon SageMaker Autopilot o XGBoost addestrare il modello utilizzando i dati che hai trasformato nel flusso di Data Wrangler.

La pipeline offre la possibilità di eseguire inferenze in batch o in tempo reale. Puoi anche aggiungere il flusso Data Wrangler a Model Registry. SageMaker Per ulteriori informazioni sui modelli di hosting, consulta [Endpoint multi-modello](multi-model-endpoints.md).

**Importante**  
Non è possibile esportare il flusso di Data Wrangler su un endpoint di inferenza se presenta le seguenti trasformazioni:  
Join
Concatenazione
Gruppo da
Se per preparare i dati è necessario utilizzare le trasformazioni precedenti, utilizza la procedura seguente.  
Crea un flusso di Data Wrangler.
Applica le trasformazioni precedenti non supportate.
Esporta i dati in un bucket Amazon S3.
Crea un flusso di Data Wrangler separato.
Importa i dati che hai esportato dal flusso precedente.
Applica le trasformazioni rimanenti.
Crea una pipeline di inferenza seriale utilizzando il notebook Jupyter che forniamo.
Per informazioni sull'esportazione dei dati in un bucket Amazon S3 consulta [Esporta dati](canvas-export-data.md). Per informazioni sull'apertura del notebook Jupyter utilizzato per creare la pipeline di inferenza seriale, consulta [Utilizzo di un notebook Jupyter per creare un endpoint di inferenza](#canvas-inference-notebook).

Data Wrangler ignora le trasformazioni che rimuovono i dati al momento dell'inferenza. Ad esempio, Data Wrangler ignora la trasformazione [Gestisci valori mancanti](canvas-transform.md#canvas-transform-handle-missing) se si utilizza la configurazione **Drop mancante**.

Se hai effettuato l'adattamento delle trasformazioni all'intero set di dati, le trasformazioni vengono trasferite alla tua pipeline di inferenza. Ad esempio, se hai utilizzato il valore mediano per imputare i valori mancanti, il valore mediano ottenuto dall'adattamento della trasformazione viene applicato alle tue richieste di inferenza. Puoi scegliere di riadattare le trasformazioni dal flusso di Data Wrangler quando utilizzi il notebook Jupyter o quando esporti i dati in una pipeline di inferenza.

La pipeline di inferenza seriale supporta i seguenti tipi di dati per le stringhe di input e output. Ogni tipo di dati ha una serie di requisiti.

**Tipi di dati supportati**
+ `text/csv` – il tipo di dati per le stringhe CSV
  + La stringa non può avere un'intestazione.
  + Le funzionalità utilizzate per la pipeline di inferenza devono essere nello stesso ordine delle funzionalità nel set di dati di addestramento.
  + Tra le funzionalità deve esserci una virgola come delimitatore.
  + I record devono essere delimitati da un carattere ritorno a capo.

  Di seguito è riportato un esempio di una stringa CSV in formato valido che è possibile fornire in una richiesta di inferenza.

  ```
  abc,0.0,"Doe, John",12345\ndef,1.1,"Doe, Jane",67890                    
  ```
+ `application/json` – il tipo di dati per le stringhe JSON
  + Le funzionalità utilizzate nel set di dati per la pipeline di inferenza devono essere nello stesso ordine delle funzionalità nel set di dati di addestramento.
  + I dati devono avere uno schema specifico. Lo schema viene definito come un singolo oggetto `instances` con un set di `features`. Ogni oggetto `features` rappresenta un'osservazione.

  Di seguito è riportato un esempio di una stringa JSON in formato valido che è possibile fornire in una richiesta di inferenza.

  ```
  {
      "instances": [
          {
              "features": ["abc", 0.0, "Doe, John", 12345]
          },
          {
              "features": ["def", 1.1, "Doe, Jane", 67890]
          }
      ]
  }
  ```

### Utilizzo di un notebook Jupyter per creare un endpoint di inferenza
<a name="canvas-inference-notebook"></a>

Utilizza la seguente procedura per esportare il flusso di Data Wrangler per creare una pipeline di inferenza.

Per creare una pipeline di inferenza utilizzando un notebook Jupyter, procedi come segue.

1. Seleziona la **\$1** accanto al nodo che desideri esportare.

1. Seleziona **Esporta flusso di dati**.

1. Scegli **SageMaker AI Inference Pipeline (tramite** Jupyter Notebook).

1. Scarica il notebook Jupyter o copialo in una posizione Amazon S3. Ti consigliamo di copiarlo in una posizione Amazon S3 a cui puoi accedere da Studio Classic. Contatta l’amministratore se hai bisogno di assistenza per la scelta della posizione ottimale.

1. Esecuzione del notebook Jupyter

Quando si esegue il notebook Jupyter, viene creato un artefatto del flusso di inferenza. Un artefatto del flusso di inferenza è un file di flusso di Data Wrangler con metadati aggiuntivi utilizzati per creare la pipeline di inferenza seriale. Il nodo che stai esportando include tutte le trasformazioni dei nodi precedenti.

**Importante**  
Data Wrangler ha bisogno dell'artefatto del flusso di inferenza per eseguire la pipeline di inferenza. Non puoi usare il tuo file di flusso come artefatto. È necessario crearlo utilizzando la procedura precedente.

## Automazione della preparazione dei dati con il codice Python
<a name="canvas-data-export-python-code"></a>

Per esportare tutte le fasi del flusso di dati in un file Python che puoi integrare manualmente in qualsiasi flusso di lavoro di elaborazione dati, usa la procedura seguente.

Utilizza la procedura seguente per generare un notebook Jupyter ed eseguilo per esportare il flusso di Data Wrangler nel codice Python.

1. Seleziona la **\$1** accanto al nodo che desideri esportare.

1. Seleziona **Esporta flusso di dati**.

1. Seleziona **Python Code** (Codice Python).

1. Scarica il notebook Jupyter o copialo in una posizione Amazon S3. Ti consigliamo di copiarlo in una posizione Amazon S3 a cui puoi accedere da Studio Classic. Contatta l’amministratore se hai bisogno di assistenza per la scelta della posizione ottimale.

1. Esecuzione del notebook Jupyter

Per farlo eseguire nella pipeline potrebbe essere necessario configurare lo script Python. Ad esempio, se utilizzi un ambiente Spark, assicurati di eseguire lo script da un ambiente che dispone dell'autorizzazione per accedere alle risorse. AWS 

# Modelli di base generativi di intelligenza artificiale in Canvas SageMaker
<a name="canvas-fm-chat"></a>

Amazon SageMaker Canvas fornisce modelli di base di intelligenza artificiale generativa che puoi utilizzare per avviare chat conversazionali. Tali modelli di generazione di contenuti vengono addestrati su grandi quantità di dati di testo per apprendere i modelli statistici e le relazioni tra le parole e riescono a produrre testo coerente che è statisticamente simile al testo su cui sono stati addestrati. È possibile utilizzare tale funzionalità per aumentare la produttività eseguendo le seguenti operazioni:
+ Genera contenuti, come schemi di documenti, report e blog
+ Riassumi il testo partendo da grandi corpus di testo, ad esempio guadagni, trascrizioni di chiamate in videoconferenza, report annuali o capitoli di manuali utente
+ Estrai approfondimenti e principali conclusioni da ampi passaggi di testo, come appunti di riunioni o racconti
+ Migliora il testo e trova errori grammaticali o di battitura

I modelli base sono una combinazione di modelli linguistici di grandi dimensioni [Amazon SageMaker JumpStart e Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html) (LLMs). Canvas offre i seguenti modelli:


| Modello | Tipo | Description | 
| --- | --- | --- | 
|  Amazon Titan  | Modello Amazon Bedrock |  Amazon Titan è un potente modello linguistico generico che è possibile utilizzare per attività quali riepilogo, generazione di testo (come la creazione di un post in un blog), classificazione, domande e risposte aperte ed estrazione di informazioni. È preaddestrato su set di dati di grandi dimensioni, il che lo rende adatto per attività e ragionamenti complessi. Per continuare a supportare le best practice sull’utilizzo responsabile dell’IA, i modelli di fondazione Amazon Titan sono progettati per rilevare e rimuovere i contenuti dannosi nei dati, rifiutare i contenuti inappropriati nell’input dell’utente e filtrare gli output dei modelli che includono contenuti inappropriati (come incitamento all’odio, oscenità e violenza).  | 
|  Anthropic Claude Instant  | Modello Amazon Bedrock |  Claude Instant di Anthropic è un modello più rapido ed economico ma pur sempre molto capace. Questo modello è in grado di gestire una serie di attività, tra cui dialoghi informali, analisi del testo, riepilogo e risposta alle domande dei documenti. Proprio come Claude-2, Claude Instant può supportare fino a 100.000 token in ogni prompt, equivalenti a circa 200 pagine di informazioni.  | 
|  Anthropic Claude-2  | Modello Amazon Bedrock |  Claude-2 è il modello più potente di Anthropic, che eccelle in un'ampia gamma di attività, dai dialoghi sofisticati alla generazione di contenuti creativi fino a seguire istruzioni dettagliate. Claude-2 può supportare fino a 100.000 token in ogni prompt, equivalenti a circa 200 pagine di informazioni. Può generare risposte più lunghe rispetto alla versione precedente. Supporta casi d'uso come la risposta a domande, l'estrazione di informazioni, la rimozione delle PII, la generazione di contenuti, la classificazione a scelta multipla, il gioco di ruolo, il confronto di testo, il riepilogo e le domande e risposte di documenti con citazioni.  | 
|  Falcon-7B-Instruct  | JumpStart modello |  Falcon-7B-Instruct ha 7 miliardi di parametri ed è stato ottimizzato su una combinazione di set di dati di chat e istruzioni. È adatto come assistente virtuale e offre le migliori prestazioni quando si seguono le istruzioni o si partecipa a una conversazione. Poiché il modello è stato addestrato su grandi quantità di dati web in lingua inglese, presenta gli stereotipi e i pregiudizi comunemente presenti online e non è adatto per lingue diverse dall'inglese. Rispetto al Falcon-40B-Instruct, Falcon-7B-Instruct è un modello leggermente più piccolo e compatto.  | 
|  Falcon-40B-Instruct  | JumpStart modello |  Falcon-40B-Instruct ha 40 miliardi di parametri ed è stato ottimizzato su una combinazione di set di dati di chat e istruzioni. È adatto come assistente virtuale e offre le migliori prestazioni quando si seguono le istruzioni o si partecipa a una conversazione. Poiché il modello è stato addestrato su grandi quantità di dati web in lingua inglese, presenta gli stereotipi e i pregiudizi comunemente presenti online e non è adatto per lingue diverse dall'inglese. Rispetto al Falcon-40B-Instruct, Falcon-7B-Instruct è un modello leggermente più grande e potente.  | 
|  Jurassic-2 Mid  | Modello Amazon Bedrock |  Jurassic-2 Mid è un modello di generazione del testo ad alte prestazioni addestrato su un enorme corpus di testi (aggiornato fino alla metà del 2022). È altamente versatile, generico e in grado di comporre testi simili a quelli umani e risolvere attività complesse come la risposta a domande, la classificazione del testo e molti altri. Questo modello offre funzionalità di istruzione zero-shot, consentendo che sia diretto solo con il linguaggio naturale e senza l'uso di esempi e funziona fino al 30% più velocemente rispetto al suo predecessore, il modello Jurassic-1. Jurassic-2 Mid è AI21 il modello di medie dimensioni, progettato con cura per trovare il giusto equilibrio tra qualità eccezionale e convenienza.  | 
|  Jurassic-2 Ultra  | Modello Amazon Bedrock |  Jurassic-2 Ultra è un modello di generazione del testo ad alte prestazioni addestrato su un enorme corpus di testi (aggiornato fino alla metà del 2022). È altamente versatile, generico e in grado di comporre testi simili a quelli umani e risolvere attività complesse come la risposta a domande, la classificazione del testo e molti altri. Questo modello offre funzionalità di istruzione zero-shot, consentendo che sia diretto solo con il linguaggio naturale e senza l'uso di esempi e funziona fino al 30% più velocemente rispetto al suo predecessore, il modello Jurassic-1. Rispetto a Jurassic-2 Mid, Jurassic-2 Ultra è un modello leggermente più grande e potente.  | 
|  Llama-2-7b-Chat  | JumpStart modello |  Llama-2-7b-Chat è un modello di fondazione di Meta ideale per condurre conversazioni significative e coerenti, generare nuovi contenuti ed estrarre risposte da note esistenti. Poiché il modello è stato addestrato su grandi quantità di dati Internet in lingua inglese, presenta i bias e le limitazioni generalmente presenti online ed è più adatto per attività in lingua inglesa.  | 
|  Llama-2-13B-Chat  | Modello Amazon Bedrock |  Llama-2-13B-Chat di Meta è stato ottimizzato con fine-tuning sui dati conversazionali dopo un addestramento iniziale sui dati Internet. Le sue capacità ottimizzate per dialoghi naturali e chat coinvolgenti lo rendono un agente conversazionale ottimale. Grazie a un numero di parametri quasi doppio rispetto al modello ridotto Llama-2-7b-Chat, Llama-2-13B-Chat può ricordare più contesto e produrre risposte conversazionali più complesse. Come Llama-2-7b-Chat, Llama-2-13B-Chat è stato addestrato con dati in lingua inglese e funziona meglio per le attività in questa lingua.  | 
|  Llama-2-70B-Chat  | Modello Amazon Bedrock |  Come Llama-2-7b-Chat e Llama-2-13B-Chat, il modello Llama-2-70B-Chat di Meta è ottimizzato per condurre dialoghi naturali e significativi. Con 70 miliardi di parametri, questo modello conversazionale di grandi dimensioni può ricordare un contesto più ampio e produrre risposte altamente coerenti rispetto alle versioni del modello più compatte. Tuttavia, questo si traduce in risposte più lente e in un maggior fabbisogno di risorse. Llama-2-70B-Chat è stato addestrato su grandi quantità di dati Internet in lingua inglese e funziona meglio per le attività in questa lingua.  | 
|  Mistral-7B  | JumpStart modello |  Mistral-7B di Mistral.AI è un eccellente modello linguistico generico adatto per un’ampia gamma di attività in linguaggio naturale (NLP) come la generazione di testo, il riepilogo e la risposta alle domande. Utilizza l’attenzione alle query raggruppate (GQA), che aumenta la velocità di inferenza e rende le prestazioni del modello paragonabili a quelle di modelli con il doppio o il triplo dei parametri. È stato addestrato su una combinazione di dati di testo tra cui libri, siti web e articoli scientifici in lingua inglese, quindi funziona meglio per le attività in questa lingua.  | 
|  Mistral-7B-Chat  | JumpStart modello |  Mistral-7B-Chat è un modello conversazionale di Mistral.AI basato su Mistral-7B. Sebbene Mistral-7B sia ideale per le attività generiche di NLP, Mistral-7B-Chat è stato ulteriormente ottimizzato con fine-tuning sui dati conversazionali per migliorare le sue capacità di creare chat naturali e coinvolgenti. Di conseguenza, Mistral-7B-Chat genera risposte più simili a quelle umane e ricorda il contesto delle risposte precedenti. Come Mistral-7B, questo modello è più adatto per le attività in lingua inglese.  | 
|  MPT-7B-Instruct  | JumpStart modello |  MPT-7B-Instruct è un modello per istruzioni in forma lunga che seguono le attività e può aiutarti nella scrittura di attività, tra cui il riepilogo del testo e le risposte alle domande, per risparmiare tempo e fatica. Questo modello è stato addestrato su grandi quantità di dati ottimizzati e può affrontare input più grandi, come documenti complessi. Utilizzare questo modello quando si desidera elaborare grandi quantità di testo o che il modello generi risposte lunghe.  | 

I modelli di base di Amazon Bedrock sono attualmente disponibili solo nelle Regioni Stati Uniti orientali (Virginia settentrionale) e Stati Uniti occidentali (Oregon). Inoltre, quando si utilizzano modelli di base di Amazon Bedrock, i costi vengono calcolati in base al volume dei token di input e di output, come specificato da ciascun fornitore di modelli. Per ulteriori informazioni, consulta la pagina [Prezzi di Amazon Bedrock](https://aws.amazon.com/bedrock/pricing/). I modelli JumpStart base vengono implementati su istanze di SageMaker AI Hosting e ti viene addebitata la durata dell'utilizzo in base al tipo di istanza utilizzato. Per ulteriori informazioni sul costo dei diversi tipi di istanze, consulta la sezione Amazon SageMaker AI Hosting: Real-Time Inference nella [pagina dei SageMaker prezzi](https://aws.amazon.com/sagemaker/pricing/).

L'interrogazione dei documenti è una funzionalità aggiuntiva che è possibile utilizzare per interrogare e ottenere informazioni dai documenti archiviati negli indici utilizzando Amazon Kendra. Con questa funzionalità, è possibile generare contenuti dal contesto di tali documenti e ricevere risposte specifiche per il caso d'uso aziendale, anziché risposte generiche alle grandi quantità di dati su cui sono stati addestrati i modelli di base. Per ulteriori informazioni sugli indici in Amazon Kendra, consulta [Guida per gli sviluppatori di Amazon Kendra](https://docs.aws.amazon.com/kendra/latest/dg/what-is-kendra.html).

Se desideri ricevere risposte da uno qualsiasi dei modelli di fondazione personalizzati in base ai tuoi dati e al tuo caso d’uso, puoi eseguire il fine-tuning dei modelli di fondazione. Per ulteriori informazioni, consulta [Fine-tuning dei modelli di fondazione](canvas-fm-chat-fine-tune.md).

*Se desideri ottenere previsioni da un modello Amazon SageMaker JumpStart Foundation tramite un'applicazione o un sito Web, puoi implementare il modello su un endpoint di SageMaker intelligenza artificiale.* SageMaker Gli endpoint di intelligenza artificiale ospitano il tuo modello e puoi inviare richieste all'endpoint tramite il codice dell'applicazione per ricevere previsioni dal modello. Per ulteriori informazioni, consulta [Distribuzione di modelli su un endpoint](canvas-deploy-model.md).

# Completa i prerequisiti per i modelli di base in Canvas SageMaker
<a name="canvas-fm-chat-prereqs"></a>

Le sezioni seguenti descrivono i prerequisiti per interagire con i modelli di base e utilizzare la funzionalità di interrogazione dei documenti in Canvas. Il resto del contenuto di questa pagina presuppone che tu abbia soddisfatto i prerequisiti per i modelli di base. La funzionalità di interrogazione dei documenti richiede autorizzazioni aggiuntive.

## Prerequisiti per i modelli di base
<a name="canvas-fm-chat-prereqs-fm"></a>

Le autorizzazioni necessarie per interagire con i modelli sono incluse nelle autorizzazioni dei modelli Canvas. Ready-to-use Per utilizzare i modelli generativi basati sull'intelligenza artificiale in Canvas, devi attivare le autorizzazioni di configurazione dei ** Ready-to-usemodelli Canvas durante la configurazione** del tuo dominio Amazon AI. SageMaker Per ulteriori informazioni, consulta [Prerequisiti per la configurazione di Amazon Canvas SageMaker](canvas-getting-started.md#canvas-prerequisites). La **configurazione dei Ready-to-use modelli Canvas** collega la policy di [AmazonSageMakerCanvasAIServicesaccesso al ruolo](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess) di esecuzione dell'utente Canvas AWS Identity and Access Management (IAM). Se riscontri problemi con la concessione delle autorizzazioni, consulta l’argomento [Risoluzione dei problemi relativi alla concessione delle autorizzazioni tramite la console AI SageMaker](canvas-limits.md#canvas-troubleshoot-trusted-services).

Se hai già configurato il dominio, puoi modificarne le impostazioni e attivare le autorizzazioni. Per istruzioni su come modificare le impostazioni del dominio, consulta [Modifica delle impostazioni del dominio](domain-edit.md). Quando modifichi le impostazioni per il tuo dominio, vai alle **impostazioni di Canvas** e attiva l'opzione **Abilita i Ready-to-use modelli Canvas**.

Alcuni modelli di JumpStart base richiedono inoltre la richiesta di un aumento della quota delle istanze SageMaker AI. Canvas ospita i modelli con cui interagisci attualmente su queste istanze, ma la quota predefinita per il tuo account potrebbe essere insufficiente. Se riscontri un errore durante l'esecuzione di uno dei seguenti modelli, richiedi un aumento della quota per i tipi di istanza associati:
+ Falcon-40B: `ml.g5.12xlarge`, `ml.g5.24xlarge`
+ Falcon-13B: `ml.g5.2xlarge`, `ml.g5.4xlarge`, `ml.g5.8xlarge`
+ MPT-7B-Instruct: `ml.g5.2xlarge`, `ml.g5.4xlarge`, `ml.g5.8xlarge`

Per i tipi di istanze precedenti, richiedi un aumento da 0 a 1 per la quota di utilizzo dell'endpoint. Per ulteriori informazioni su come aumentare la quota delle istanze per il tuo account, consulta [Requesting a quota increase](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) nella *Guida per l'utente di Service Quotas*.

## Prerequisiti per l'interrogazione dei documenti
<a name="canvas-fm-chat-prereqs-kendra"></a>

**Nota**  
L'interrogazione dei documenti è supportata nei seguenti paesi Regioni AWS: Stati Uniti orientali (Virginia settentrionale), Stati Uniti orientali (Ohio), Stati Uniti occidentali (Oregon), Europa (Irlanda), Asia Pacifico (Singapore), Asia Pacifico (Sydney), Asia Pacifico (Tokyo) e Asia Pacifico (Mumbai).

La funzionalità di interrogazione dei documenti richiede che si disponga già di un indice Amazon Kendra che memorizzi i documenti e i metadati dei documenti. Per ulteriori informazioni sugli indici in Amazon Kendra, consulta [Guida per gli sviluppatori di Amazon Kendra](https://docs.aws.amazon.com/kendra/latest/dg/what-is-kendra.html). Per saperne di più sulle quote degli indici di query, consulta [Quotas](https://docs.aws.amazon.com/kendra/latest/dg/quotas.html) nella *Guida per gli sviluppatori di Amazon Kendra*.

Devi anche assicurarti che il tuo profilo utente Canvas disponga delle autorizzazioni necessarie per eseguire la query dei documenti. La [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)policy deve essere associata al ruolo di esecuzione AWS IAM per il dominio SageMaker AI che ospita l'applicazione Canvas (questa policy è allegata per impostazione predefinita a tutti i profili utente Canvas nuovi ed esistenti). È inoltre necessario concedere specificamente le autorizzazioni per l'interrogazione dei documenti e specificare l'accesso a uno o più indici Amazon Kendra.

Se l’amministratore di Canvas sta configurando un nuovo dominio o profilo utente, chiedigli di configurare il dominio seguendo le istruzioni riportate in [Prerequisiti per la configurazione di Amazon Canvas SageMaker](canvas-getting-started.md#canvas-prerequisites). Durante la configurazione del dominio, possono attivare le autorizzazioni di interrogazione del documento tramite la configurazione dei ** Ready-to-usemodelli Canvas**.

L'amministratore di Canvas può gestire le autorizzazioni di interrogazione dei documenti anche a livello di profilo utente. Ad esempio, se l'amministratore desidera concedere le autorizzazioni per l'interrogazione dei documenti ad alcuni profili utente, ma rimuovere le autorizzazioni per altri, può modificare le autorizzazioni per un utente specifico.

Nella procedura di seguito viene illustrato la modalità di attivazione delle autorizzazioni di interrogazione dei documenti per un profilo utente specifico:

1. Apri la console SageMaker AI all'indirizzo. [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**.

1. Dall’elenco di domini, seleziona il dominio del profilo utente.

1. Nella pagina **Dettagli del dominio**, scegli il **Profilo utente** di cui desideri modificare le autorizzazioni.

1. Nella pagina **Dettagli utente** scegli **Modifica**.

1. Nel riquadro di navigazione sinistro, seleziona **Impostazioni Canvas**.

1. Nella sezione di **configurazione Ready-to-use dei modelli Canvas**, attiva l'interruttore **Abilita la query del documento utilizzando Amazon Kendra**.

1. Nel menu a discesa, seleziona uno o più indici Amazon Kendra a cui desideri concedere l'accesso.

1. Scegli **Invia** per salvare le modifiche alle impostazioni del dominio.

Ora dovresti essere in grado di utilizzare i modelli di base Canvas per interrogare i documenti negli indici Amazon Kendra specificati.

# Avvio di una nuova conversazione per generare, estrarre o riepilogare i contenuti
<a name="canvas-fm-chat-new"></a>

Per iniziare con i modelli di base di IA generativa in Canvas, puoi avviare una nuova sessione di chat con uno dei modelli. Per JumpStart quanto riguarda i modelli, l'addebito viene effettuato mentre il modello è attivo, quindi è necessario avviare i modelli quando si desidera utilizzarli e spegnerli quando si termina l'interazione. Se non spegni un JumpStart modello, Canvas lo spegne dopo 2 ore di inattività. Per i modelli Amazon Bedrock (come Amazon Titan), l’addebito viene effettuato in base al prompt. I modelli sono già attivi e non devono essere avviati o chiusi. L'utilizzo di tali modelli ti viene addebitato direttamente da Amazon Bedrock.

Per aprire una chat con un modello, effettua le seguenti operazioni:

1. Aprite l'applicazione SageMaker Canvas.

1. Nel riquadro di navigazione a sinistra, scegli **eady-to-useModelli R.**

1. Scegli **Genera, estrai e riepiloga il contenuto**.

1. Nella pagina di benvenuto, riceverai un consiglio per avviare il modello predefinito. È possibile avviare il modello consigliato oppure è possibile scegliere **Seleziona un altro modello** dal menu a discesa per sceglierne uno diverso.

1. Se hai selezionato un modello di JumpStart base, devi avviarlo prima che sia disponibile per l'uso. Scegli **Avvia il modello**, quindi il modello viene distribuito su un'istanza SageMaker AI. Il completamento dell'operazione potrebbe richiedere qualche minuto. Quando il modello è pronto, è possibile inserire istruzioni e porre domande al modello.

   Se hai selezionato un modello base da Amazon Bedrock, puoi iniziare ad utilizzarlo immediatamente inserendo un prompt e ponendo domande.

A seconda del modello, è possibile eseguire diverse attività. Ad esempio, è possibile inserire un passaggio di testo e chiedere al modello di riepilogarlo. In alternativa, è possibile chiedere al modello di fornire un breve riepilogo delle tendenze di mercato nel tuo dominio.

Le risposte del modello in una chat si basano sul contesto delle tue istruzioni precedenti. Se desideri porre una nuova domanda nella chat che non è correlata all'argomento della conversazione precedente, ti consigliamo di iniziare una nuova chat con il modello.

# Estrazione di informazioni dai documenti con l'interrogazione dei documenti
<a name="canvas-fm-chat-query"></a>

**Nota**  
In questa sezione si presuppone che l'utente abbia completato la sezione precedente [Prerequisiti per l'interrogazione dei documenti](canvas-fm-chat-prereqs.md#canvas-fm-chat-prereqs-kendra).

L'interrogazione dei documenti è una funzionalità che è possibile mentre si interagisce con i modelli di base in Canvas. Con l'interrogazione dei documenti, puoi accedere a un corpus di documenti archiviati in un *indice* Amazon Kendra, che detiene il contenuto dei tuoi documenti ed è strutturato in modo da renderli ricercabili. Puoi porre domande specifiche mirate ai dati del tuo indice Amazon Kendra e il modello di base restituirà le risposte alle tue domande. Ad esempio, è possibile interrogare una knowledge base interna di informazioni IT e porre domande quali “Come posso connettermi alla rete della mia azienda?” Per ulteriori informazioni sulle impostazioni di un indice, consulta la [Guida per gli sviluppatori di Amazon Kendra](https://docs.aws.amazon.com/kendra/latest/dg/what-is-kendra.html).

Quando si utilizza la funzionalità di interrogazione dei documenti, i modelli di base limitano le risposte al contenuto dei documenti dell'indice con una tecnica chiamata Retrieval Augmented Generation (RAG). Questa tecnica raggruppa le informazioni più rilevanti dell'indice insieme al prompt dell'utente e le invia al modello di base per ottenere una risposta. Le risposte sono limitate a ciò che è possibile trovare nell'indice, per evitare che il modello fornisca risposte errate basate su dati esterni. Per ulteriori informazioni su questo processo, consulta il post del blog [Quickly build high-accuracy Generative AI applications on enterprise data](https://aws.amazon.com/blogs/machine-learning/quickly-build-high-accuracy-generative-ai-applications-on-enterprise-data-using-amazon-kendra-langchain-and-large-language-models/).

Per iniziare, in una chat con un modello di base in Canvas, attiva la funzionalità **Interrogazione dei documenti** nella parte superiore della pagina. Dal menu a discesa, seleziona l'indice Amazon Kendra che desideri interrogare. Quindi, puoi iniziare a porre domande relative ai documenti del tuo indice.

**Importante**  
L'interrogazione dei documenti supporta la funzionalità [Confronto degli output del modello](canvas-fm-chat-compare.md). Qualsiasi cronologia chat esistente viene sovrascritta quando si avvia una nuova chat per confrontare i risultati del modello.

# Avvio dei modelli
<a name="canvas-fm-chat-manage"></a>

**Nota**  
La sezione seguente descrive i modelli di avvio, che si applicano solo ai modelli di JumpStart base, come Falcon-40B-Instruct. Puoi accedere ai modelli Amazon Bedrock, come Amazon Titan, all'istante e in qualsiasi momento.

Puoi avviare tutti i modelli che desideri. JumpStart Ogni JumpStart modello attivo comporta addebiti sul tuo account, quindi ti consigliamo di non avviare più modelli di quelli che utilizzi attualmente.

Per avviare un altro modello, effettua le seguenti operazioni:

1. Nella pagina **Genera, estrai e riepiloga i contenuti**, scegli **Nuova chat**.

1. Dal menu a discesa, scegli Elimina. Se desideri scegliere un modello non visualizzato nel menu a discesa, scegli **Avvia un altro modello**, quindi seleziona il modello che desideri avviare.

1. Scegli **Avvia modello**.

Il modello dovrebbe iniziare ad avviarsi e nell'arco di pochi minuti potrai chattare con il modello.

# Chiusura dei modelli
<a name="canvas-fm-chat-shut-down"></a>

Ti consigliamo vivamente di chiudere i modelli che non utilizzi. I modelli si chiudono automaticamente dopo 2 ore di inattività. Tuttavia, per chiudere manualmente un modello, è possibile effettuare le seguenti operazioni:

1. Nella pagina **Genera, estrai e riepiloga i contenuti**, apri la chat relativa al modello che desideri chiudere.

1. Nella pagina della chat, scegli l'icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. Scegli il **Chiudi modello**.

1. Nella casella di conferma **Chiudi modello**, scegli **Chiudi**.

Il modello inizia a chiudersi. Se la chat mette a confronto due o più modelli, puoi chiudere un singolo modello dalla pagina di chat scegliendo l'icona **Altre opzioni** del modello (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) e quindi scegliendo **Chiudi modello**.

# Confronto degli output del modello
<a name="canvas-fm-chat-compare"></a>

Potresti voler confrontare l'output di diversi modelli uno accanto all'altro per vedere quale modello di output preferisci. In questo modo puoi decidere quale modello è più adatto al tuo caso d'uso. È possibile confrontare fino a tre modelli nelle chat.

**Nota**  
Ogni singolo modello comporta addebiti sul tuo account.

È necessario avviare una nuova chat per aggiungere modelli da confrontare. Per confrontare i risultati dei modelli affiancati in una chat, effettua le seguenti operazioni:

1. In una chat, scegli **Nuova chat**.

1. Scegli **Confronta** e utilizza il menu a discesa per selezionare il modello che desideri aggiungere. Per aggiungere un terzo modello, scegli nuovamente **Confronta** per aggiungere un altro modello.
**Nota**  
Se desideri utilizzare un JumpStart modello che non è attualmente attivo, ti viene richiesto di avviare il modello.

Quando i modelli sono attivi, puoi vedere i due modelli uno accanto all'altro nella chat. È possibile inviare la richiesta e ciascun modello risponde nella stessa chat, come mostrato nello screenshot seguente.

![\[Schermata dell'interfaccia Canvas con l'output di due modelli mostrati fianco a fianco.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-chat-compare-outputs.png)


Quando hai finito di interagire, assicurati di spegnere tutti i JumpStart modelli singolarmente per evitare di incorrere in ulteriori addebiti.

# Fine-tuning dei modelli di fondazione
<a name="canvas-fm-chat-fine-tune"></a>

I modelli base a cui puoi accedere tramite Amazon SageMaker Canvas possono aiutarti con una serie di attività generiche. Tuttavia, se hai un caso d’uso specifico e desideri personalizzare le risposte in base ai tuoi dati, puoi *eseguire il fine-tuning* di un modello di fondazione.

Per eseguire il fine-tuning di un modello di fondazione, devi fornire un set di dati composto da prompt di esempio e risposte del modello. Quindi, addestri il modello di fondazione sui dati. A questo punto, il modello di fondazione ottimizzato con fine-tuning è in grado di fornirti risposte più specifiche.

L’elenco seguente contiene i modelli di fondazione di cui puoi eseguire il fine-tuning in Canvas:
+ Titan Express
+ Falcon-7B
+ Falcon-7B-Instruct
+ Falcon-40B-Instruct
+ Falcon-40B
+ Flan-T5-Large
+ Flan-T5-Xl
+ Flan-T5-Xxl
+ MPT-7B
+ MPT-7B-Instruct

È possibile accedere a informazioni più dettagliate su ciascun modello di fondazione nell’applicazione Canvas durante il fine-tuning di un modello. Per ulteriori informazioni, consulta [Fine-tuning del modello](#canvas-fm-chat-fine-tune-procedure-model).

Questo argomento descrive come eseguire il fine-tuning dei modelli di fondazione in Canvas.

## Prima di iniziare
<a name="canvas-fm-chat-fine-tune-prereqs"></a>

Prima di perfezionare un modello di base, assicurati di disporre delle autorizzazioni per i Ready-to-use modelli in Canvas e di disporre di un ruolo di AWS Identity and Access Management esecuzione che abbia un rapporto di fiducia con Amazon Bedrock, che consenta ad Amazon Bedrock di assumere il tuo ruolo durante la messa a punto dei modelli di base.

Durante la configurazione o la modifica del dominio Amazon SageMaker AI, devi 1) attivare le autorizzazioni di configurazione dei Ready-to-use modelli Canvas e 2) creare o specificare un ruolo Amazon Bedrock, che è un ruolo di esecuzione IAM a cui l' SageMaker IA collega una relazione di fiducia con Amazon Bedrock. Per ulteriori informazioni sulla configurazione di queste impostazioni, consulta [Prerequisiti per la configurazione di Amazon Canvas SageMaker](canvas-getting-started.md#canvas-prerequisites).

Puoi configurare il ruolo Amazon Bedrock manualmente se preferisci utilizzare il tuo ruolo di esecuzione IAM (anziché lasciare che l' SageMaker IA ne crei uno per tuo conto). Per ulteriori informazioni sulla configurazione della relazione di attendibilità del tuo ruolo di esecuzione IAM con Amazon Bedrock, consulta [Concessione di autorizzazioni agli utenti per utilizzare le funzionalità di Amazon Bedrock e di IA generativa in Canvas](canvas-fine-tuning-permissions.md).

È inoltre necessario disporre di un set di dati formattato per la messa a punto di modelli linguistici di grandi dimensioni (). LLMs Di seguito è riportato un elenco di requisiti per il set di dati:
+ Il set di dati deve essere tabulare e contenere almeno due colonne di dati di testo: una colonna di input (che contiene esempi di prompt per il modello) e una colonna di output (che contiene esempi di risposte del modello).

  Di seguito è riportato un esempio:     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/canvas-fm-chat-fine-tune.html)
+ Consigliamo di creare set di dati con almeno 100 coppie di testo (righe di elementi di input e output corrispondenti). Questo garantisce che il modello di fondazione abbia dati sufficienti per il fine-tuning e aumenta l’accuratezza delle risposte.
+ Ogni elemento di input e output deve contenere un massimo di 512 caratteri. Gli elementi più lunghi vengono ridotti a 512 caratteri durante il fine-tuning del modello di fondazione.

Quando si esegue il fine-tuning di un modello Amazon Bedrock, è necessario rispettare le quote Amazon Bedrock. Per ulteriori informazioni, consulta [Model customization quotas](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html#model-customization-quotas) in *Amazon Bedrock User Guide*.

Per ulteriori informazioni sui requisiti e le limitazioni generali dei set di dati in Canvas, consulta [Creazione di un set di dati](canvas-import-dataset.md).

## Ottimizzare un modello di fondazione
<a name="canvas-fm-chat-fine-tune-procedure"></a>

È possibile eseguire il fine-tuning di un modello di fondazione utilizzando uno dei metodi seguenti nell’applicazione Canvas:
+ Durante una chat **Genera, estrai e riepiloga i contenuti** con un modello di fondazione, scegli l’icona **Fine-tuning di un modello** (![\[Magnifying glass icon with a plus sign, indicating a search or zoom-in function.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/wrench-icon-small.png)).
+ Durante una chat con un modello di fondazione, se hai rigenerato la risposta due o più volte, Canvas ti offre la possibilità di **eseguire il fine-tuning del modello**. Lo screenshot seguente mostra cosa viene visualizzato.  
![\[Screenshot dell’opzione Ottimizza modello di fondazione visualizzata in una chat.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/fine-tuning-ingress.png)
+ Nella pagina **I miei modelli**, puoi creare un nuovo modello scegliendo **Nuovo modello**, quindi selezionando **Ottimizza modello di fondazione**.
+ **Nella home page dei **Ready-to-use modelli**, puoi scegliere **Crea il tuo modello, quindi nella finestra di dialogo Crea nuovo modello****, scegli Fine-tune Foundation model**.**
+ Mentre sfogli i tuoi set di dati nella scheda **Data Wrangler**, puoi selezionare un set di dati e scegliere **Crea un modello**. Quindi, scegli **Ottimizza modello di fondazione**.

Dopo aver iniziato a eseguire il fine-tuning di un modello, procedi come descritto di seguito:

### Selezione di un set di dati
<a name="canvas-fm-chat-fine-tune-procedure-select"></a>

Nella scheda **Seleziona** della sezione di fine-tuning di un modello, scegli i dati su cui desideri addestrare il modello di fondazione.

Seleziona un set di dati esistente o creane uno nuovo che soddisfi i requisiti elencati nella sezione [Prima di iniziare](#canvas-fm-chat-fine-tune-prereqs). Per informazioni su come creare un set di dati, consulta [Creazione di un set di dati](canvas-import-dataset.md).

Una volta selezionato o creato un set di dati e quando è tutto pronto per continuare, scegli **Seleziona set di dati**.

### Fine-tuning del modello
<a name="canvas-fm-chat-fine-tune-procedure-model"></a>

Ora che i dati sono selezionati, è tutto pronto per iniziare l’addestramento e il fine-tuning del modello.

Nella scheda **Ottimizza**, procedi come descritto di seguito:

1. (Facoltativo) Scegli **Ulteriori informazioni sui nostri modelli di fondazione** per accedere a ulteriori informazioni su ciascun modello che possono aiutarti a decidere quale modello o modelli di fondazione implementare.

1. Per **selezionare fino a 3 modelli base**, apri il menu a discesa e controlla fino a 3 modelli base (fino a 2 JumpStart modelli e 1 modello Amazon Bedrock) che desideri perfezionare durante il processo di formazione. Eseguendo il fine-tuning di più modelli di fondazione, puoi confrontarne le prestazioni e infine scegliere come modello predefinito quello più adatto al tuo caso d’uso. Per ulteriori informazioni sui modelli predefiniti, consulta [Visualizzazione dei modelli candidati nella classifica dei modelli](canvas-evaluate-model-candidates.md).

1. In **Seleziona colonna input**, seleziona la colonna di dati di testo nel set di dati che contiene i prompt del modello di esempio.

1. In **Seleziona colonna output**, seleziona la colonna di dati di testo nel set di dati che contiene le risposte del modello di esempio.

1. (Facoltativo) Per configurare le impostazioni avanzate per il job di addestramento, scegli **Configura modello**. Per ulteriori informazioni sulle impostazioni avanzate per la creazione dei modelli, consulta [Configurazioni avanzate per la creazione dei modelli](canvas-advanced-settings.md).

   Nella finestra pop-up **Configura modello**, procedi come descritto di seguito:

   1. In **Iperparametri**, puoi regolare **Numero Epoch**, **Dimensioni batch**, **Tasso di apprendimento** e **Fasi di riscaldamento del tasso di apprendimento** per ogni modello selezionato. Per ulteriori informazioni su questi parametri, consulta la sezione [Iperparametri nella documentazione](https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-fine-tune.html#jumpstart-hyperparameters). JumpStart 

   1. In **Suddivisione dei dati**, puoi specificare le percentuali in base alle quali dividere i dati tra il **set di addestramento** e il **set di convalida**.

   1. In **Massimo runtime del processo**, puoi impostare il tempo massimo per l’esecuzione del processo di creazione in Canvas. Questa funzionalità è disponibile solo per i modelli di JumpStart base.

   1. Dopo aver configurato le impostazioni, scegli **Salva**.

1. Scegli **Ottimizza** per iniziare ad addestrare i modelli di fondazione selezionati.

Una volta che il processo di fine-tuning viene avviato, puoi abbandonare la pagina. Il modello è pronto per essere utilizzato quando mostra lo stato **Pronto** nella pagina **I miei modelli**. Ora puoi analizzare le prestazioni del modello di fondazione ottimizzato con fine-tuning.

### Analisi del modello di fondazione ottimizzato con fine-tuning
<a name="canvas-fm-chat-fine-tune-procedure-analyze"></a>

Nella scheda **Analizza** del modello di fondazione ottimizzato con fine-tuning, puoi vedere le prestazioni del modello.

La scheda **Panoramica** in questa pagina mostra i punteggi di perplessità e di perdita, insieme alle analisi che visualizzano il miglioramento del modello nel tempo durante l’addestramento. Lo screenshot seguente mostra la scheda **Panoramica**.

![\[La scheda Analizza di un modello di fondazione ottimizzato con fine-tuning in Canvas, che mostra le curve di perplessità e perdita.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-fine-tune-analyze-2.png)


In questa pagina puoi visualizzare:
+ La **curva di perplessità** misura quanto efficacemente il modello prevede la parola successiva in una sequenza o quanto è grammaticalmente corretto l’output del modello. Idealmente, man mano che il modello migliora durante l’addestramento, il punteggio diminuisce e la curva si abbassa e si appiattisce gradualmente.
+ La **curva di perdita** quantifica la differenza tra l’output corretto e l’output previsto del modello. Una curva di perdita che diminuisce e si appiattisce gradualmente indica che il modello sta migliorando la sua capacità di generare previsioni accurate.

La scheda **Metriche avanzate** mostra gli iperparametri e le metriche aggiuntive per il modello. È simile alla scheda mostrata nello screenshot seguente:

![\[Screenshot della scheda Metriche avanzate di un modello di fondazione con fine-tuning in Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-fine-tune-metrics.png)


La scheda **Metriche avanzate** contiene le informazioni seguenti:
+ La sezione **Spiegabilità** contiene gli **Iperparametri**, ovvero valori impostati prima del processo per guidare il fine-tuning del modello. Se non hai specificato iperparametri personalizzati nelle impostazioni avanzate del modello nella sezione [Fine-tuning del modello](#canvas-fm-chat-fine-tune-procedure-model), Canvas seleziona automaticamente gli iperparametri predefiniti.

  Per JumpStart i modelli, puoi anche consultare la metrica avanzata [ROUGE (Recall-Oriented Understudy for Gisting Evaluation)](https://en.wikipedia.org/wiki/ROUGE_(metric)), che valuta la qualità dei riepiloghi generati dal modello. Misura la capacità del modello di riassumere i punti principali di un passaggio.
+ La sezione **Artefatti** fornisce link agli artefatti generati durante il processo di fine-tuning. Puoi accedere ai dati di addestramento e convalida salvati in Amazon S3, nonché al link al report di valutazione del modello (per ulteriori informazioni, consulta il paragrafo seguente).

Per ottenere ulteriori informazioni sulla valutazione del modello, puoi scaricare un rapporto generato utilizzando [SageMaker Clarify](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-configure-processing-jobs.html), una funzionalità che può aiutarti a rilevare distorsioni nel modello e nei dati. Innanzitutto, genera il report selezionando **Genera report di valutazione** nella parte inferiore della pagina. Una volta generato, puoi scaricare il report completo scegliendo **Scarica report** o tornando alla sezione **Artefatti**.

Puoi anche accedere a un notebook Jupyter che ti mostra come replicare il tuo processo di fine-tuning in codice Python. Puoi utilizzarlo per replicare o apportare modifiche programmatiche al processo di fine-tuning oppure per comprendere più a fondo in che modo Canvas esegue il fine-tuning del modello. Per ulteriori informazioni sui notebook del modello e su come accedervi, consulta [Download di un notebook del modello](canvas-notebook.md).

Per ulteriori informazioni su come interpretare le informazioni nella scheda **Analizza** del modello di fondazione ottimizzato con fine-tuning, consulta l’argomento [Valutazione del modello](canvas-evaluate-model.md).

Dopo aver analizzato le schede **Panoramica** e **Metriche avanzate**, puoi anche scegliere di aprire la **Classifica dei modelli**, che mostra l’elenco dei modelli di base addestrati durante la creazione. Il modello con il punteggio di perdita più basso è considerato il modello con le migliori prestazioni e viene selezionato come **modello predefinito**, ovvero il modello la cui analisi viene visualizzata nella scheda **Analizza**. Puoi testare e implementare solo il modello predefinito. Per ulteriori informazioni sulla classifica dei modelli e su come cambiare il modello predefinito, consulta [Visualizzazione dei modelli candidati nella classifica dei modelli](canvas-evaluate-model-candidates.md).

### Test di un modello di fondazione ottimizzato con fine-tuning in una chat
<a name="canvas-fm-chat-fine-tune-procedure-test"></a>

Dopo aver analizzato le prestazioni di un modello di fondazione ottimizzato con fine-tuning, potresti volerlo testare o confrontare le sue risposte con il modello di base. Puoi testare un modello di fondazione ottimizzato con fine-tuning in una chat nella funzionalità **Genera, estrai e riepiloga i contenuti**.

Avvia una chat con un modello ottimizzato con fine-tuning scegliendo uno dei seguenti metodi:
+ **Nella scheda **Analizza** del modello ottimizzato, scegliete Test in modelli di base. Ready-to-use**
+ Nella pagina dei **Ready-to-use modelli** Canvas, scegli **Genera, estrai e** riepiloga il contenuto. Quindi scegli **Nuova chat** e seleziona la versione del modello da testare.

Il modello si avvia in una chat e puoi interagire con esso come con qualsiasi altro modello di fondazione. Puoi aggiungere altri modelli alla chat e confrontarne i risultati. Per ulteriori informazioni sulla funzionalità di chat, consulta [Modelli di base generativi di intelligenza artificiale in Canvas SageMaker](canvas-fm-chat.md).

## Rendere operativi i modelli di fondazione ottimizzati con fine-tuning
<a name="canvas-fm-chat-fine-tune-mlops"></a>

Dopo aver eseguito il fine-tuning del modello in Canvas, puoi fare quanto segue:
+ Registra il modello nel Model SageMaker Registry per l'integrazione nei MLOps processi della tua organizzazione. Per ulteriori informazioni, consulta [Registra una versione del modello nel registro dei modelli AI SageMaker](canvas-register-model.md).
+ *Implementa il modello su un endpoint di SageMaker intelligenza artificiale e invia richieste al modello dalla tua applicazione o dal tuo sito Web per ottenere previsioni (o inferenze).* Per ulteriori informazioni, consulta [Distribuzione di modelli su un endpoint](canvas-deploy-model.md).

**Importante**  
Puoi registrare e distribuire solo modelli di base ottimizzati JumpStart basati su Amazon Bedrock, non modelli basati su Amazon Bedrock.

# Ready-to-use modelli
<a name="canvas-ready-to-use-models"></a>

Con Ready-to-use i modelli Amazon SageMaker Canvas, puoi fare previsioni sui tuoi dati senza scrivere una sola riga di codice o dover creare un modello: tutto ciò che devi portare sono i tuoi dati. I Ready-to-use modelli utilizzano modelli predefiniti per generare previsioni senza dover spendere il tempo, l'esperienza o i costi necessari per creare un modello, e puoi scegliere tra una varietà di casi d'uso che vanno dal rilevamento del linguaggio all'analisi delle spese.

Canvas si integra con AWS servizi esistenti, come [Amazon Textract, Amazon](https://docs.aws.amazon.com/textract/latest/dg/what-is.html) [Rekognition](https://docs.aws.amazon.com/rekognition/latest/dg/what-is.html) e [Amazon Comprehend, per analizzare i dati](https://docs.aws.amazon.com/comprehend/latest/dg/what-is.html) e fare previsioni o estrarre informazioni. Puoi utilizzare la potenza predittiva di questi servizi direttamente dall'applicazione Canvas per ottenere previsioni di alta qualità per i tuoi dati.

Canvas supporta i seguenti tipi di modelli: Ready-to-use


| Ready-to-use modello | Description | Tipo di dati supportati | 
| --- | --- | --- | 
| Analisi delle emozioni | Rileva le emozioni nelle righe di testo, che possono essere positive, negative, neutre o miste. Al momento, puoi eseguire solo l'analisi delle emozioni per testi in lingua inglese. | Testo semplice o tabulare (CSV, Parquet) | 
| Estrazione delle entità | Estrai dal testo le entità, che sono oggetti del mondo reale come persone, luoghi e articoli commerciali, o unità come date e quantità. | Testo semplice o tabulare (CSV, Parquet) | 
| Rilevamento della lingua | Determina la lingua dominante in un testo come l'inglese, il francese o il tedesco. | Testo semplice o tabulare (CSV, Parquet) | 
| Rilevazione delle informazioni personali | Rileva dal testo le informazioni personali che potrebbero essere utilizzate per identificare un individuo, come indirizzi, numeri di conto corrente e numeri di telefono. | Testo semplice o tabulare (CSV, Parquet) | 
| Rilevamento di oggetti nelle immagini | Rileva oggetti, concetti, scene e azioni nelle tue immagini. | Immagine (JPG, PNG) | 
| Rilevamento del testo nelle immagini | Rileva il testo nelle tue immagini. | Immagine (JPG, PNG) | 
| Analisi delle spese | Estrai informazioni da fatture e ricevute, come data, numero, prezzi degli articoli, importo totale e termini di pagamento. | Documento (PDF, JPG, PNG, TIFF) | 
| Analisi dei documenti d'identità | Estrai informazioni da passaporti, patenti di guida e altri documenti di identità rilasciati dal governo statunitense. | Documento (PDF, JPG, PNG, TIFF) | 
| Analisi dei documenti | Analizza documenti e moduli per individuare le relazioni tra il testo rilevato. | Documento (PDF, JPG, PNG, TIFF) | 
| Domande sui documenti | Estrai informazioni da documenti strutturati come buste paga, estratti conto bancari, dichiarazione dei redditi e moduli di richiesta di mutuo ponendo domande utilizzando il linguaggio naturale. | Documento (PDF) | 

## Nozioni di base
<a name="canvas-ready-to-use-get-started"></a>

Per iniziare a usare i Ready-to-use modelli, consulta le seguenti informazioni.

**Prerequisiti**

Per utilizzare Ready-to-use i modelli in Canvas, devi attivare le autorizzazioni di **configurazione Ready-to-use dei modelli Canvas** durante la [configurazione del tuo dominio Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html#canvas-prerequisites). La **configurazione dei Ready-to-use modelli Canvas** collega la politica di [AmazonSageMakerCanvasAIServicesaccesso](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess) al ruolo di esecuzione dell'utente Canvas AWS Identity and Access Management (IAM). Se riscontri problemi con la concessione delle autorizzazioni, consulta l’argomento [Risoluzione dei problemi relativi alla concessione delle autorizzazioni tramite la console AI SageMaker](canvas-limits.md#canvas-troubleshoot-trusted-services).

Se hai già configurato il dominio, puoi modificarne le impostazioni e attivare le autorizzazioni. Per istruzioni su come modificare le impostazioni del dominio, consulta [Modifica delle impostazioni del dominio](https://docs.aws.amazon.com/sagemaker/latest/dg/domain-edit.html). Quando modifichi le impostazioni per il tuo dominio, vai alle **impostazioni di Canvas** e attiva l'opzione **Abilita i Ready-to-use modelli Canvas**.

**(Facoltativo) Non adesione all’archiviazione di dati dei servizi IA**

Alcuni servizi di AWS intelligenza artificiale archiviano e utilizzano i tuoi dati per apportare miglioramenti al servizio. Puoi non aderire all’archiviazione e all’utilizzo dei tuoi dati per migliorare il servizio. Per ulteriori informazioni sulla non adesione, consulta [Policy di non adesione ai servizi di IA](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_ai-opt-out.html) nella *Guida per l’utente di AWS Organizations *.

**Come usare i Ready-to-use modelli**

Per iniziare a usare i Ready-to-use modelli, procedi come segue:

1. **(Facoltativo) Importa i tuoi dati.** Puoi importare un set di dati tabulare, di immagini o di documenti per generare previsioni in batch o un set di dati di previsioni, con modelli. Ready-to-use Per iniziare a importare un set di dati, consulta [Creazione di un flusso di dati](canvas-data-flow.md).

1. **Genera previsioni.** Puoi generare previsioni singole o in batch con il modello scelto. Ready-to-use Per iniziare a generare previsioni, consulta [Fai previsioni per i dati di testo](canvas-ready-to-use-predict-text.md).

# Fai previsioni per i dati di testo
<a name="canvas-ready-to-use-predict-text"></a>

Le procedure seguenti descrivono come eseguire previsioni singole e in batch per set di dati di testo. Ogni Ready-to-use modello supporta sia le **previsioni Single che le previsioni** **Batch** per il tuo set di dati. Una **previsione singola** è quando è sufficiente fare una sola previsione. Ad esempio, hai un'immagine da cui vuoi estrarre il testo o un paragrafo di testo per il quale desideri rilevare la lingua dominante. Una **previsione in batch** è quando desideri generare previsioni per un intero set di dati. Ad esempio, potresti avere un file CSV contenente le recensioni dei clienti per le quali desideri analizzare il sentiment dei clienti, oppure hai una cartella di file di immagine che desideri classificare.

È possibile utilizzare queste procedure per i seguenti tipi di Ready-to-use modelli: analisi del sentiment, estrazione delle entità, rilevamento del linguaggio e rilevamento delle informazioni personali.

**Nota**  
Per l'analisi del sentiment, è possibile utilizzare solo testo in lingua inglese.

## Previsioni singole
<a name="canvas-ready-to-use-predict-text-single"></a>

Per fare una singola previsione per Ready-to-use i modelli che accettano dati di testo, procedi come segue:

1. Nel riquadro di navigazione a sinistra dell'applicazione Canvas, scegli **eady-to-useModelli R.**

1. Nella pagina dei **Ready-to-use modelli**, scegli il Ready-to-use modello per il tuo caso d'uso. Per i dati di testo, dovrebbe essere uno dei seguenti: **Analisi del sentiment**, **Estrazione delle entità**, **Rilevamento della lingua** o **Rilevamento delle informazioni personali**.

1. Nella pagina **Esegui previsioni** per il Ready-to-use modello scelto, scegli **Previsione singola**.

1. Nel campo **Testo**, inserisci il testo per il quale desideri ottenere una previsione.

1. Scegli **Genera risultati di previsione** per ottenere la tua previsione.

Nel riquadro a destra **Risultati delle previsioni**, riceverai un'analisi del testo oltre a un punteggio di **attendibilità** per ogni risultato o etichetta. Ad esempio, se hai scelto il rilevamento della lingua e hai inserito un passaggio di testo in francese, potresti ottenere francese con un punteggio di attendibilità del 95% e tracce di altre lingue, come l'inglese, con un punteggio di attendibilità del 5%.

Il seguente screenshot mostra i risultati di una singola previsione che utilizza il rilevamento della lingua in cui il modello è sicuro al 100% che il passaggio sia in inglese.

![\[Schermata dei risultati di una singola previsione con il modello di rilevamento del linguaggio. Ready-to-use\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-ready-to-use/ai-solutions-text-prediction.png)


## Previsioni in batch
<a name="canvas-ready-to-use-predict-text-batch"></a>

Per fare previsioni in batch per Ready-to-use modelli che accettano dati di testo, procedi come segue:

1. Nel riquadro di navigazione a sinistra dell'applicazione Canvas, scegli **eady-to-useModelli R.**

1. Nella pagina dei **Ready-to-use modelli**, scegli il Ready-to-use modello per il tuo caso d'uso. Per i dati di testo, dovrebbe essere uno dei seguenti: **Analisi del sentiment**, **Estrazione delle entità**, **Rilevamento della lingua** o **Rilevamento delle informazioni personali**.

1. Nella pagina **Esegui previsioni** per il Ready-to-use modello scelto, scegli **Previsione Batch**.

1. Scegli **Seleziona set di dati** se hai già importato il tuo set di dati. In caso contrario, scegli **Importa nuovo set di dati** e verrai indirizzato al flusso di lavoro di importazione dei dati.

1. Dall'elenco dei set di dati disponibili, seleziona il tuo set di dati e scegli **Genera previsioni** per ottenere le tue previsioni.

Al termine dell'esecuzione del processo di previsione, nella pagina **Esegui previsioni** visualizzerai un set di dati di output elencato in **Previsioni**. Questo set di dati contiene i tuoi risultati e, se selezioni l’icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), puoi visualizzare un’**anteprima** dei dati di output. Quindi, puoi scegliere **Scarica** per scaricare i risultati.

# Esecuzione di previsioni per i dati di immagini
<a name="canvas-ready-to-use-predict-image"></a>

Le procedure seguenti descrivono come eseguire previsioni singole e in batch per set di dati di immagini. Ogni Ready-to-use modello supporta sia le **previsioni Single che le previsioni** **Batch** per il tuo set di dati. Una **previsione singola** è quando è sufficiente fare una sola previsione. Ad esempio, hai un'immagine da cui vuoi estrarre il testo o un paragrafo di testo per il quale desideri rilevare la lingua dominante. Una **previsione in batch** è quando desideri generare previsioni per un intero set di dati. Ad esempio, potresti avere un file CSV contenente le recensioni dei clienti per le quali desideri analizzare il sentiment dei clienti, oppure hai una cartella di file di immagine che desideri classificare.

È possibile utilizzare queste procedure per i seguenti tipi di Ready-to-use modello: immagini di rilevamento di oggetti e rilevamento del testo nelle immagini.

## Previsioni singole
<a name="canvas-ready-to-use-predict-image-single"></a>

Per effettuare un'unica previsione per Ready-to-use i modelli che accettano dati di immagine, effettuate le seguenti operazioni:

1. Nel riquadro di navigazione a sinistra dell'applicazione Canvas, scegli **eady-to-useModelli R.**

1. Nella pagina dei **Ready-to-use modelli**, scegli il Ready-to-use modello per il tuo caso d'uso. Per i dati di immagini, dovrebbe essere uno dei seguenti: **Immagini di rilevamento di oggetti** o **Immagini di rilevamento di testo**.

1. Nella pagina **Esegui previsioni** per il Ready-to-use modello scelto, scegli **Previsione singola**.

1. Scegli **Carica nuova**.

1. Ti verrà richiesto di selezionare un'immagine da caricare dal tuo computer locale. Seleziona l'immagine dai file locali, quindi i risultati delle previsioni che verranno generati.

Nel riquadro destro **Risultati delle previsioni**, ricevi un'analisi dell'immagine oltre a un punteggio di **attendibilità** per ogni oggetto o testo rilevato. Ad esempio, se hai scelto il rilevamento di oggetti nelle immagini, riceverai un elenco di oggetti nell'immagine insieme a un punteggio di attendibilità che indica la certezza del modello che ogni oggetto sia stato rilevato con precisione, ad esempio 93%.

Il seguente screenshot mostra i risultati di una singola previsione che utilizza la soluzione di rilevamento di oggetti nelle immagini, in cui il modello prevede oggetti come una torre dell'orologio e un autobus con un'attendibilità del 100%.

![\[I risultati di una singola previsione con la soluzione di rilevamento di oggetti nel modello di immagini. Ready-to-use\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-ready-to-use/ai-solutions-image-prediction.png)


## Previsioni in batch
<a name="canvas-ready-to-use-predict-image-batch"></a>

Per effettuare previsioni in batch per Ready-to-use modelli che accettano dati di immagini, procedi come segue:

1. Nel riquadro di navigazione a sinistra dell'applicazione Canvas, scegli **eady-to-useModelli R.**

1. Nella pagina dei **Ready-to-use modelli**, scegli il Ready-to-use modello per il tuo caso d'uso. Per i dati di immagini, dovrebbe essere uno dei seguenti: **Immagini di rilevamento di oggetti** o **Immagini di rilevamento di testo**.

1. Nella pagina **Esegui previsioni** per il Ready-to-use modello scelto, scegli **Previsione Batch**.

1. Scegli **Seleziona set di dati** se hai già importato il tuo set di dati. In caso contrario, scegli **Importa nuovo set di dati** e verrai indirizzato al flusso di lavoro di importazione dei dati.

1. Dall'elenco dei set di dati disponibili, seleziona il tuo set di dati e scegli **Genera previsioni** per ottenere le tue previsioni.

Al termine dell'esecuzione del processo di previsione, nella pagina **Esegui previsioni** visualizzerai un set di dati di output elencato in **Previsioni**. Questo set di dati contiene i risultati e, se si seleziona l'icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), è possibile scegliere **Visualizza i risultati della previsione per visualizzare** in anteprima i dati di output. Quindi, è possibile scegliere **Scarica previsione** e scaricare i risultati in formato CSV o file zip.

# Esecuzione di previsioni per i dati di documenti
<a name="canvas-ready-to-use-predict-document"></a>

Le procedure seguenti descrivono come eseguire previsioni singole e in batch per set di dati di testo. Ogni Ready-to-use modello supporta sia le **previsioni Single che le previsioni** **Batch** per il tuo set di dati. Una **previsione singola** è quando è sufficiente fare una sola previsione. Ad esempio, hai un'immagine da cui vuoi estrarre il testo o un paragrafo di testo per il quale desideri rilevare la lingua dominante. Una **previsione in batch** è quando desideri generare previsioni per un intero set di dati. Ad esempio, potresti avere un file CSV contenente le recensioni dei clienti per le quali desideri analizzare il sentiment dei clienti, oppure hai una cartella di file di immagine che desideri classificare.

È possibile utilizzare queste procedure per i seguenti tipi di Ready-to-use modello: analisi delle spese, analisi dei documenti di identità e analisi dei documenti.

**Nota**  
Per le query di documenti, attualmente sono supportate solo previsioni singole.

## Previsioni singole
<a name="canvas-ready-to-use-predict-document-single"></a>

Per fare un'unica previsione per Ready-to-use i modelli che accettano i dati dei documenti, procedi come segue:

1. Nel riquadro di navigazione a sinistra dell'applicazione Canvas, scegli **eady-to-useModelli R.**

1. Nella pagina dei **Ready-to-use modelli**, scegli il Ready-to-use modello per il tuo caso d'uso. Per i dati dei documenti, dovrebbe essere uno dei seguenti: **Analisi delle spese**, **Analisi dei documenti di identità** o **Analisi dei documenti**.

1. Nella pagina **Esegui previsioni** per il Ready-to-use modello scelto, scegli **Previsione singola**.

1. Se il tuo Ready-to-use modello è l'analisi dei documenti di identità o l'analisi dei documenti, completa le seguenti azioni. Se stai eseguendo un'analisi delle spese o query di documenti, salta questa fase e vai rispettivamente alla fase 5 o alla fase 6.

   1. Seleziona **Carica documento**.

   1. Ti verrà richiesto di caricare un file PDF, JPG o PNG dal tuo computer locale. Seleziona il documento dai file locali, quindi i risultati delle previsioni che verranno generati.

1. Se il Ready-to-use modello è l'analisi delle spese, procedi come segue:

   1. Seleziona **Carica fattura o ricevuta**.

   1. Ti verrà richiesto di caricare un file PDF, JPG, PNG o TIFF dal tuo computer locale. Seleziona il documento dai file locali, quindi i risultati delle previsioni che verranno generati.

1. Se il Ready-to-use modello è costituito da interrogazioni su documenti, procedi come segue:

   1. Seleziona **Carica documento**.

   1. Ti verrà richiesto di caricare un file PDF dal tuo computer locale. Seleziona il documento dai file locali. Il PDF deve avere una lunghezza compresa tra 1 e 100 pagine.
**Nota**  
Se ti trovi nelle Regioni Asia Pacifico (Seoul), Asia Pacifico (Singapore), Asia Pacifico (Sydney) o Europa (Francoforte), la dimensione massima del PDF per le query di documenti è di 20 pagine.

   1. Nel riquadro laterale destro, inserisci le query per cercare informazioni nel documento. Il numero di caratteri che è possibile inserire in una singola query è compreso tra 1 e 200. È possibile aggiungere fino a 15 query alla volta.

   1. Scegli **Invia query** e i risultati verranno generati con le risposte alle tue query. Per ciascun invio di query che effettui, verrà effettuato un solo addebito.

Nel riquadro a destra **Risultati delle previsioni**, riceverai un'analisi del tuo documento.

Le seguenti informazioni descrivono i risultati per ogni tipo di soluzione:
+ Per l'analisi delle spese, i risultati sono suddivisi in campi ** Riepilogo**, che includono campi come il totale di una ricevuta e campi **Voce**, che includono campi come i singoli articoli di una ricevuta. I campi identificati sono evidenziati sull'immagine del documento nell'output.
+ Per l'analisi dei documenti di identità, l'output mostra i campi identificati dal Ready-to-use modello, come nome e cognome, indirizzo o data di nascita. I campi identificati sono evidenziati sull'immagine del documento nell'output.
+ Per l'analisi dei documenti, i risultati sono suddivisi in **Testo non elaborato**, **Moduli**, **Tabelle** e **Firme**. Il **Testo non elaborato** include tutto il testo estratto, mentre **Moduli**, **Tabelle** e **Firme** includono solo le informazioni sul modulo che rientra in tali categorie. Ad esempio, **Tabelle** include solo le informazioni estratte dalle tabelle nel documento. I campi identificati sono evidenziati sull'immagine del documento nell'output.
+ Per le query di documenti, Canvas risponde a ciascuna delle tue query. È possibile aprire il menu a discesa delle query comprimibili per visualizzare un risultato, insieme a un punteggio di attendibilità per la previsione. Se Canvas trova più risposte nel documento, si potrebbe avere più di un risultato per ogni query.

Il seguente screenshot mostra i risultati di una singola previsione utilizzando la soluzione per l'analisi dei documenti.

![\[Schermata dei risultati di una singola previsione con il modello di analisi Ready-to-use dei documenti.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-ready-to-use/ai-solutions-document-analysis.png)


## Previsioni in batch
<a name="canvas-ready-to-use-predict-document-batch"></a>

Per fare previsioni in batch per Ready-to-use i modelli che accettano i dati dei documenti, procedi come segue:

1. Nel riquadro di navigazione a sinistra dell'applicazione Canvas, scegli **eady-to-useModelli R.**

1. Nella pagina dei **Ready-to-use modelli**, scegli il Ready-to-use modello per il tuo caso d'uso. Per i dati di immagini, dovrebbe essere uno dei seguenti: **Analisi delle spese**, **Analisi dei documenti di identità** o **Analisi dei documenti**.

1. Nella pagina **Esegui previsioni** per il Ready-to-use modello scelto, scegli **Previsione Batch**.

1. Scegli **Seleziona set di dati** se hai già importato il tuo set di dati. In caso contrario, scegli **Importa nuovo set di dati** e verrai indirizzato al flusso di lavoro di importazione dei dati.

1. Dall'elenco dei set di dati disponibili, seleziona il tuo set di dati e scegli **Genera previsioni.** Se il tuo caso d'uso è l'analisi dei documenti, continua con la fase 6.

1. (Facoltativo) Se il tuo caso d'uso è l'analisi dei documenti, viene visualizzata un'altra finestra di dialogo denominata **Seleziona le caratteristiche da includere nella previsione in batch**. È possibile selezionare **Moduli**, **Tabelle** e **Firme** per raggruppare i risultati in base a tali funzionalità. Quindi, scegli **Genera previsioni**.

Al termine dell'esecuzione del processo di previsione, nella pagina **Esegui previsioni** visualizzerai un set di dati di output elencato in **Previsioni**. Questo set di dati contiene i risultati e, se si seleziona l'icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), è possibile scegliere **Visualizza i risultati della previsione per visualizzare** in anteprima l'analisi dei dati del documento.

Le seguenti informazioni descrivono i risultati per ogni tipo di soluzione:
+ Per l'analisi delle spese, i risultati sono suddivisi in campi ** Riepilogo**, che includono campi come il totale di una ricevuta e campi **Voce**, che includono campi come i singoli articoli di una ricevuta. I campi identificati sono evidenziati sull'immagine del documento nell'output.
+ Per l'analisi dei documenti di identità, l'output mostra i campi identificati dal Ready-to-use modello, come nome e cognome, indirizzo o data di nascita. I campi identificati sono evidenziati sull'immagine del documento nell'output.
+ Per l'analisi dei documenti, i risultati sono suddivisi in **Testo non elaborato**, **Moduli**, **Tabelle** e **Firme**. Il **Testo non elaborato** include tutto il testo estratto, mentre **Moduli**, **Tabelle** e **Firme** includono solo le informazioni sul modulo che rientra in tali categorie. Ad esempio, **Tabelle** include solo le informazioni estratte dalle tabelle nel documento. I campi identificati sono evidenziati sull'immagine del documento nell'output.

Dopo aver visualizzato l'anteprima dei risultati, è possibile scegliere **Scarica previsione** e scaricare i risultati come file ZIP.

# Modelli personalizzati
<a name="canvas-custom-models"></a>

In Amazon SageMaker Canvas, puoi addestrare modelli di machine learning personalizzati in base a dati e casi d'uso specifici. Addestrando un modello personalizzato sui tuoi dati, potrai acquisire caratteristiche e tendenze specifiche e più rappresentative dei propri dati. Ad esempio, potresti voler creare un modello di previsione delle serie temporali personalizzato da addestrare sui dati dell’inventario del tuo warehouse per gestire le operazioni logistiche.

Canvas supporta l’addestramento di una vasta gamma di tipi di modelli. Dopo aver addestrato un modello personalizzato, puoi valutare le prestazioni e l’accuratezza del modello. Una volta soddisfatto di un modello, puoi fare previsioni su nuovi dati e hai anche la possibilità di condividere il modello personalizzato con i data scientist per ulteriori analisi o di distribuirlo su un endpoint ospitato dall' SageMaker intelligenza artificiale per inferenze in tempo reale, il tutto direttamente dall'applicazione Canvas.

È possibile addestrare un modello personalizzato Canvas sui seguenti tipi di set di dati:
+ Tabulare (inclusi dati numerici, categorici, di serie temporali e di testo)
+ Immagine

La tabella seguente mostra i tipi di modelli personalizzati che puoi creare in Canvas, insieme ai tipi di dati e alle origini dati supportati.


| Tipo di modello | Esempio di caso d’uso | Tipi di dati supportati | Origini dati supportate | 
| --- | --- | --- | --- | 
| Previsione numerica | Previsione dei prezzi delle case in base a caratteristiche come la metratura | Numerico | Caricamento locale, Amazon S3, connettori SaaS | 
| Previsione a 2 categorie | Previsione dell’eventuale probabilità di abbandono di un cliente | Binario o categorico | Caricamento locale, Amazon S3, connettori SaaS | 
| Previsione con tre o più categorie | Previsione degli esiti dei pazienti dopo la dimissione dall'ospedale | Categoriale | Caricamento locale, Amazon S3, connettori SaaS | 
| Previsione di serie temporali | Previsione dell'inventario per il trimestre successivo | Serie temporali | Caricamento locale, Amazon S3, connettori SaaS | 
| Previsione di immagini con etichetta singola | Previsione dei tipi di difetti di produzione in immagini | Immagine (JPG, PNG) | Caricamento locale, Amazon S3 | 
| Previsione del testo multicategoria | Previsione di categorie di prodotti, come abbigliamento, elettronica o articoli per la casa in base alle descrizioni dei prodotti |  Colonna di origine: testo Colonna di destinazione: binaria o categorica | Caricamento locale, Amazon S3 | 

**Nozioni di base**

Per iniziare a creare e generare previsioni a partire da un modello personalizzato, effettua le seguenti operazioni:
+ Determina il caso d'uso e il tipo di modello che desideri creare. Per ulteriori informazioni sui tipi di modello personalizzato, consulta [Funzionamento dei modelli personalizzati](canvas-build-model.md). Per ulteriori informazioni sui tipi e le origini dati supportati per i modelli personalizzati, consulta [Importazione dei dati](canvas-importing-data.md).
+ [Importa i tuoi dati](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-importing-data.html) in Canvas. È possibile creare un modello personalizzato con qualsiasi set di dati tabulare o di immagini che soddisfi i requisiti di input. Per ulteriori informazioni sui requisiti, consulta [Creazione di un set di dati](canvas-import-dataset.md).

  Per saperne di più sui set di dati di esempio forniti dall' SageMaker intelligenza artificiale con cui sperimentare, consulta. [Set di dati di esempio in Canvas](canvas-sample-datasets.md)
+ [Crea](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html) il tuo modello personalizzato. È possibile eseguire una **Creazione rapida** per ottenere il tuo modello e iniziare a fare previsioni più rapidamente, oppure è possibile creare una **Creazione standard** per una maggiore precisione.

  Per i tipi di modelli di previsione numerici, categorici e delle serie temporali, puoi pulire e preparare i dati con la [funzionalità Data Wrangler](canvas-data-prep.md). In Data Wrangler, puoi creare un flusso di dati e utilizzare varie tecniche di preparazione dei dati, come l’applicazione di trasformazioni avanzate o il join di set di dati. Per i modelli di previsione delle immagini, è possibile [Modifica di un set di dati di immagini](canvas-edit-image.md) per aggiornare le etichette o aggiungere ed eliminare immagini. Ricorda che non è possibile utilizzare queste funzionalità per modelli di previsione del testo multicategoria.
+ [Valuta le prestazioni del tuo modello](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-evaluate-model.html) e determinane le prestazioni su dati reali.
+ [Fai previsioni singole o in batch](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-make-predictions.html) con il tuo modello.

# Funzionamento dei modelli personalizzati
<a name="canvas-build-model"></a>

Usa Amazon SageMaker Canvas per creare un modello personalizzato sul set di dati che hai importato. Usa il modello che hai creato per fare previsioni su nuovi dati. SageMaker Canvas utilizza le informazioni del set di dati per creare fino a 250 modelli e scegliere quello che offre le prestazioni migliori.

Quando si inizia a creare un modello, Canvas consiglia automaticamente uno o più *tipi di modelli*. I tipi di modelli rientrano in una delle seguenti categorie:
+ **Previsione numerica**: nel machine learning si chiama *regressione*. Utilizza il tipo di modello di previsione numerica quando desideri fare previsioni per dati numerici. Ad esempio, potresti voler prevedere il prezzo delle case in base a caratteristiche come la metratura della casa.
+ **Previsione categorica**: nel machine learning si chiama *classificazione*. Quando desideri categorizzare i dati in gruppi, utilizza i tipi di modelli di previsione categorica:
  + **Previsione a 2 categorie**: utilizza il tipo di modello di previsione a 2 categorie (noto anche come *classificazione binaria* nel machine learning) quando hai due categorie da prevedere per i tuoi dati. Ad esempio, potresti determinare se è probabile che un cliente abbandoni.
  + **Previsione a 3 o più categorie**: utilizza il tipo di modello di previsione a 3 o più categorie (noto anche come *classificazione multiclasse* nel machine learning) quando hai tre o più categorie che desideri prevedere per i tuoi dati. Ad esempio, è possibile prevedere lo stato del prestito di un cliente in base a caratteristiche quali i pagamenti precedenti.
+ **Previsione delle serie temporali**: utilizza le previsioni delle serie temporali quando desideri fare previsioni su un periodo di tempo. Ad esempio, potresti dover prevedere il numero di articoli che venderai nel trimestre successivo. Per informazioni sulle previsioni delle serie temporali, consulta [Time Series Forecasts in Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-time-series.html).
+ **Previsione delle immagini**: utilizza il tipo di modello di previsione delle immagini a etichetta singola (noto anche come *classificazione delle immagini a etichetta singola* nel machine learning) quando desideri assegnare etichette alle immagini. Ad esempio, è possibile classificare diversi tipi di difetti di fabbricazione nelle immagini del prodotto.
+ **Previsione del testo**: utilizza il tipo di modello di previsione del testo multicategoria (noto anche come *classificazione del testo multiclasse* nel machine learning) quando desideri assegnare etichette a passaggi di testo. Ad esempio, potresti avere un set di dati di verifiche dei clienti su un prodotto e desideri determinare se i clienti hanno apprezzato o meno il prodotto. Potresti fare in modo che il tuo modello preveda se un determinato passaggio di testo è `Positive`, `Negative` o `Neutral`.

Per una tabella dei tipi di dati di input supportati per ogni tipo di modello, consulta [Modelli personalizzati](canvas-custom-models.md).

Per ogni modello di dati tabulare che crei (che include modelli numerici, categorici, di previsione di serie temporali e modelli di previsione testuale), scegli la **Colonna di destinazione**. La **Colonna di destinazione** è la colonna che contiene le informazioni che desideri prevedere. Ad esempio, se stai creando un modello per prevedere se le persone hanno annullato i loro abbonamenti, la **Colonna di destinazione** contiene punti dati che indicano o `yes` o un `no` circa lo stato di cancellazione di qualcuno.

Per i modelli di previsione delle immagini, crei il modello con un set di dati di immagini a cui sono state assegnate delle etichette. Per le immagini senza etichetta fornite, il modello prevede un'etichetta. Ad esempio, se stai creando un modello per prevedere se un'immagine è un gatto o un cane, fornisci immagini etichettate come cani o gatti durante la creazione del modello. Quindi, il modello può accettare immagini senza etichetta e prevederle come cani o gatti.

**Cosa succede quando crei un modello**

Per creare il tuo modello, puoi scegliere una **Creazione rapida** o una **Creazione standard**. La **Creazione rapida** ha un tempo di creazione più breve, ma la **Creazione standard** ha generalmente una precisione maggiore.

Per i modelli di previsione tabulari e delle serie temporali, Canvas utilizza il *downsampling* per ridurre le dimensioni dei set di dati che superano, rispettivamente, i 5 GB o i 30 GB. Canvas esegue il downsampling con il metodo di campionamento stratificato. Nella tabella seguente sono elencate le dimensioni del downsample per tipo di modello. Per controllare il processo di campionamento, puoi utilizzare Data Wrangler in Canvas per applicare la tua tecnica di campionamento preferita. Per i dati di serie temporali, puoi ripetere il campionamento per aggregare i punti dati. Per ulteriori informazioni sul campionamento, consulta [Campionamento](canvas-transform.md#canvas-transform-sampling). Per ulteriori informazioni sul ricampionamento dei dati di serie temporali, consulta [Ricampiona i dati di serie temporali](canvas-transform.md#canvas-resample-time-series).

Se scegli di eseguire una **build rapida** su un set di dati con più di 50.000 righe, Canvas campiona i dati fino a 50.000 righe per abbreviare il tempo di addestramento dei modelli.

La tabella seguente riassume le caratteristiche chiave del processo di creazione dei modelli, inclusi i tempi medi di creazione per ogni modello e tipo di build, la dimensione del downsample durante la creazione dei modelli con set di dati di grandi dimensioni e il numero minimo e massimo di punti dati necessari per ogni tipo di build.


| Limite | Modelli di previsione numerici e categorici | Previsione di serie temporali | Previsione delle immagini | Previsione del testo | 
| --- | --- | --- | --- | --- | 
| Tempo per la **build rapida** | 2-20 minuti | 2-20 minuti | 15‐30 minuti | 15‐30 minuti | 
| Tempo per la **build standard** | 2-4 ore | 2-4 ore | 2-5 ore | 2-5 ore | 
| Dimensione del downsample (la dimensione ridotta di un set di dati di grandi dimensioni dopo il downsampling di Canvas) | 5 GB | 30 GB | N/D | N/D | 
| Numero minimo di voci (righe) per le **Creazioni rapide** |  A 2 categorie: 500 righe A 3 o più categorie, numeriche, serie temporali: N/D  | N/D | N/D | N/D | 
| Numero minimo di voci (righe, immagini o documenti) per le **Creazioni standard** | 250 | 50 | 50 | N/D | 
| Numero massimo di voci (righe, immagini o documenti) per le **Creazioni rapide** | N/D | N/D | 5000 | 7500 | 
| Numero massimo di voci (righe, immagini o documenti) per le **Creazioni standard** | N/D | 150.000 | 180.000 | N/D | 
| Numero massimo di colonne | 1.000 | 1.000 | N/D | N/D | 

Canvas prevede i valori utilizzando le informazioni nel resto del set di dati, a seconda del tipo di modello:
+ Per la previsione categorica, Canvas inserisce ogni riga in una delle categorie elencate nella **Colonna di destinazione**.
+ Per la previsione numerica, Canvas utilizza le informazioni nel set di dati per prevedere i valori numerici nella **Colonna di destinazione**.
+ Per la previsione delle serie temporali, Canvas utilizza i dati storici per prevedere i valori della **Colonna di destinazione** in futuro.
+ Per la previsione delle immagini, Canvas utilizza immagini a cui sono state assegnate etichette per prevedere etichette per le immagini senza etichetta.
+ Per la previsione del testo, Canvas analizza i dati di testo a cui sono state assegnate etichette per prevedere le etichette per i passaggi di testo senza etichetta.

**Funzionalità aggiuntive per aiutarti a creare il tuo modello**

Prima di creare il modello, puoi utilizzare Data Wrangler in Canvas per preparare i dati con oltre 300 trasformazioni e operatori integrati. Data Wrangler supporta le trasformazioni per set di dati sia tabulari che di immagini. Inoltre, puoi connetterti a origini dati esterne a Canvas, creare processi per applicare le trasformazioni all’intero set di dati ed esportare i dati completamente preparati e puliti per utilizzarli nei flussi di lavoro di ML al di fuori di Canvas. Per ulteriori informazioni, consulta [Preparazione dei dati](canvas-data-prep.md).

Per accedere a visualizzazioni e analisi per esplorare i dati e determinare quali funzionalità includere nel modello, puoi utilizzare le analisi integrate di Data Wrangler. Puoi anche accedere a un report **Qualità e informazioni approfondite sui dati** che evidenzia i potenziali problemi del tuo set di dati e offre suggerimenti su come risolverli. Per ulteriori informazioni, consulta [Esecuzione di un’analisi esplorativa dei dati (EDA)](canvas-analyses.md).

Oltre alle funzionalità più avanzate di preparazione ed esplorazione dei dati fornite da Data Wrangler, Canvas offre anche alcune funzionalità di base:
+ Per filtrare i dati e accedere a una serie di trasformazioni dei dati di base, consulta [Preparazione dei dati per la creazione dei modelli](canvas-prepare-data.md).
+ Per accedere a visualizzazioni e analisi semplici per l’esplorazione delle funzionalità, consulta [Esplorazione e analisi dei dati](canvas-explore-data.md).
+ Per ulteriori informazioni su funzionalità aggiuntive come l'anteprima del modello, la convalida del set di dati e la modifica della dimensione del campione casuale utilizzato per creare il modello, consulta [Visualizzazione dell'anteprima del modello](canvas-preview-model.md).

Per i set di dati tabulari con più colonne (ad esempio set di dati per la creazione di tipi di modelli di previsione categorica, numerica o di serie temporali), potresti avere righe con punti dati mancanti. Mentre Canvas crea il modello, aggiunge automaticamente i valori mancanti. Canvas utilizza i valori del set di dati per eseguire un'approssimazione matematica dei valori mancanti. Per la massima precisione del modello, ti consigliamo di aggiungere i dati mancanti, se riesci a trovarli. Tieni presente che la funzionalità relativa ai dati mancanti non è supportata per i modelli di previsione di testo o delle immagini.

**Nozioni di base**

Per iniziare a creare un modello personalizzato, consulta [Crea un modello](canvas-build-model-how-to.md) e segui la procedura relativa al tipo di modello che desideri creare.

# Visualizzazione dell'anteprima del modello
<a name="canvas-preview-model"></a>

**Nota**  
La funzionalità seguente è disponibile solo per i modelli personalizzati creati con set di dati tabulari. Sono esclusi anche i modelli di previsione del testo multicategoria.

SageMaker Canvas offre uno strumento per visualizzare in anteprima il modello prima di iniziare a costruire. Questo strumento fornisce un punteggio di accuratezza stimato, oltre a un’idea preliminare di come ogni colonna potrebbe influire sul modello. 

Per visualizzare in anteprima il punteggio del modello, nella scheda **Crea** del modello scegli **Anteprima modello**.

L’anteprima del modello genera una previsione con **accuratezza stimata** dell’efficacia dell’analisi dei dati eseguita dal modello. La precisione di una **Creazione rapida** o di una **Creazione standard** rappresenta l’efficacia delle prestazioni del modello su dati reali ed è generalmente superiore alla **precisione stimata**.

L’anteprima del modello fornisce anche i punteggi di **impatto delle colonne**, che possono indicare l’importanza di ogni colonna per le previsioni del modello.

Lo screenshot seguente mostra un’anteprima del modello nell’applicazione Canvas.

![\[Screenshot della scheda Crea per un modello in Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-build/canvas-build-preview-model.png)


Amazon SageMaker Canvas gestisce automaticamente i valori mancanti nel set di dati durante la creazione del modello. Deduce i valori mancanti utilizzando valori adiacenti presenti nel set di dati.

Se ritieni valida l’anteprima del modello e vuoi procedere con la creazione di un modello, consulta [Crea un modello](canvas-build-model-how-to.md).

# Convalida dei dati
<a name="canvas-dataset-validation"></a>

Prima di creare il modello, SageMaker Canvas controlla il set di dati per individuare eventuali problemi che potrebbero causare il fallimento della compilazione. Se SageMaker Canvas rileva dei problemi, ti avvisa nella pagina **Build** prima di tentare di creare un modello.

È possibile scegliere **Convalida dati** per visualizzare un elenco dei problemi con il tuo set di dati. È quindi possibile utilizzare le [funzionalità di preparazione dei dati di SageMaker Canvas Data Wrangler](canvas-data-prep.md) o i propri strumenti per correggere il set di dati prima di iniziare una compilazione. Se non risolvi i problemi con il set di dati, la creazione fallisce.

Se apporti modifiche al set di dati per risolvere i problemi, hai la possibilità di riconvalidarlo prima di tentare una creazione. Si consiglia di riconvalidare il set di dati prima di procedere alla creazione.

La tabella seguente mostra i problemi che SageMaker Canvas verifica nel set di dati e come risolverli.


| Problema | Risoluzione | 
| --- | --- | 
|  Tipo di modello errato per i dati  |  Prova un altro tipo di modello o utilizza un set di dati diverso.  | 
|  Valori mancanti nella colonna di destinazione  |  Sostituisci i valori mancanti, elimina le righe con i valori mancanti o utilizza un set di dati diverso.  | 
|  Troppe etichette univoche nella colonna di destinazione  |  Verifica di aver utilizzato la colonna corretta per la colonna di destinazione o utilizza un set di dati diverso.  | 
|  Troppi valori non numerici nella colonna di destinazione  |  Scegli una colonna di destinazione diversa, seleziona un altro tipo di modello o utilizza un set di dati diverso.  | 
|  I nomi di uno o più nomi di colonne contengono caratteri di sottolineatura doppi  |  Rinomina le colonne per rimuovere i doppi caratteri di sottolineatura e riprova.  | 
|  Nessuna riga del set di dati è completa  |  Sostituisci i valori mancanti o utilizza un set di dati diverso.  | 
|  Troppe etichette univoche per il numero di righe dei dati  |  Verifica di utilizzare la colonna di destinazione giusta, aumenta il numero di righe nel set di dati, consolida etichette simili o utilizza un set di dati diverso.  | 

# Campione casuale
<a name="canvas-random-sample"></a>

SageMaker Canvas utilizza il metodo di campionamento casuale per campionare il set di dati. Il metodo di campionamento casuale significa che ogni riga ha la stessa probabilità di essere selezionata per il campione. È possibile scegliere una colonna nell'anteprima per ottenere statistiche di riepilogo per il campione casuale, come la media e la modalità.

Per impostazione predefinita, SageMaker Canvas utilizza una dimensione del campione casuale di 20.000 righe del set di dati per set di dati con più di 20.000 righe. Per set di dati inferiori a 20.000 righe, la dimensione del campione predefinita è il numero di righe del set di dati. Puoi aumentare o diminuire la dimensione del campione scegliendo Campione **casuale** nella scheda **Build dell'applicazione Canvas**. SageMaker Puoi utilizzare il dispositivo di scorrimento per selezionare la dimensione del campione desiderata, quindi scegliere **Aggiorna** per modificare la dimensione del campione. La dimensione massima del campione che è possibile scegliere per un set di dati è di 40.000 righe e la dimensione minima del campione è di 500 righe. Se scegli una dimensione del campione grande, il caricamento dell'anteprima del set di dati e del riepilogo delle statistiche potrebbe richiedere alcuni istanti.

La pagina **Crea** mostra un'anteprima di 100 righe del set di dati. Se la dimensione del campione è la stessa del set di dati, l'anteprima utilizza le prime 100 righe del set di dati. Altrimenti, l'anteprima utilizza le prime 100 righe del campione casuale.

# Crea un modello
<a name="canvas-build-model-how-to"></a>

Nelle sezioni seguenti viene illustrato come creare un modello per ciascuno dei principali tipi di modelli personalizzati.
+ Per creare modelli di previsione numerica, previsione a 2 categorie o modelli di previsione a 3 o più categorie, consulta [Creazione di un modello di previsione numerico o categorico personalizzato](#canvas-build-model-numeric-categorical).
+ Per creare modelli di previsione con immagini a etichetta singola, consulta [Creazione di un modello di previsione delle immagini personalizzato](#canvas-build-model-image).
+ Per creare modelli di previsione del testo in più categorie, consulta [Creazione di un modello di previsione del testo personalizzato](#canvas-build-model-text).
+ Per creare modelli di previsione delle serie temporali, consulta [Creazione di un modello di previsione delle serie temporali](#canvas-build-model-forecasting).

**Nota**  
Se riscontri un errore durante l'analisi successiva alla creazione che ti dice di aumentare la quota per istanze `ml.m5.2xlarge`, consulta [Request a Quota Increase](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-requesting-quota-increases.html).

## Creazione di un modello di previsione numerico o categorico personalizzato
<a name="canvas-build-model-numeric-categorical"></a>

I modelli di previsione numerici e categorici supportano sia le **Creazione rapide** che le **Creazioni standard**.

Per creare un modello di previsione numerico o categorico, utilizza la procedura seguente:

1. Apri l'applicazione SageMaker Canvas.

1. Nel riquadro di navigazione a sinistra, scegli **I miei modelli**.

1. Scegli **Nuovo modello**.

1. Nella finestra di dialogo **Crea allarme** procedi nel seguente modo:

   1. Inserisci un nome nel campo **Nome modello**.

   1. Seleziona il tipo di problema di **analisi predittiva**.

   1. Scegli **Crea**.

1. Per **Seleziona set di dati**, seleziona il tuo set di dati dall'elenco dei set di dati. Se non hai ancora importato i dati, scegli **Importa** per essere indirizzato al flusso di lavoro di importazione dei dati.

1. Quando sei pronto per iniziare a creare il modello, scegli **Seleziona set di dati**.

1. Nella scheda **Crea**, nell'elenco a discesa della **Colonna di destinazione**, seleziona la destinazione per il modello che desideri prevedere.

1. Per il **tipo di modello**, Canvas rileva automaticamente il tipo di problema. Per modificare il tipo o configurare le impostazioni avanzate del modello, scegli **Configura modello**.

   Quando viene visualizzata la finestra di dialogo **Configura modello**, procedi come descritto di seguito:

   1. In **Tipo di modello**, scegli il tipo di modello da creare.

   1. Dopo aver scelto il tipo di modello, sono disponibili **impostazioni avanzate** aggiuntive. Per ulteriori informazioni sulle singole impostazioni avanzate, consulta [Configurazioni avanzate per la creazione dei modelli](canvas-advanced-settings.md). Per configurare le impostazioni avanzate, procedi come descritto di seguito:

      1. (Facoltativo) Nel menu a discesa **Parametro obiettivo**, seleziona il parametro che vuoi che Canvas ottimizzi durante la creazione del modello. Se non selezioni un parametro, Canvas ne sceglie uno automaticamente per te per impostazione predefinita. Per una descrizione delle metriche disponibili, consulta [Riferimento per le metriche](canvas-metrics.md).

      1. In **Metodo di addestramento**, scegli la modalità **Automatico**, **Ensemble** o **Ottimizzazione degli iperparametri (HPO)**.

      1. In **Algoritmi**, seleziona gli algoritmi da includere per la creazione di modelli candidati.

      1. In **Suddivisione dei dati**, specifica le percentuali in base alle quali suddividere i dati tra il **set di addestramento** e il **set di convalida**. Il set di addestramento viene utilizzato per creare il modello, mentre il set di convalida viene utilizzato per testare l’accuratezza dei modelli candidati.

      1. Per i valori **massimi per candidati e runtime**, procedi come descritto di seguito:

         1. Imposta il valore **Numero massimo di candidati** o il numero massimo di modelli candidati che Canvas può generare. Tieni presente che **Numero massimo di candidati** è disponibile solo in modalità HPO.

         1. Imposta i valori delle ore e dei minuti in **Massimo runtime del processo** o il tempo massimo che Canvas può dedicare alla creazione del modello. Trascorso questo intervallo di tempo, Canvas arresta la creazione e seleziona il miglior modello candidato.

   1. Dopo aver configurato le impostazioni avanzate, scegli **Salva**.

1. Seleziona o deseleziona le colonne nei dati per includerle o eliminarle dalla creazione.
**Nota**  
Se effettui previsioni in batch con il modello dopo la creazione, Canvas aggiunge colonne eliminate ai risultati della previsione. Tuttavia, Canvas non aggiunge le colonne eliminate alle previsioni in batch per i modelli di serie temporali.

1. (Facoltativo) Utilizza gli strumenti di visualizzazione e analisi forniti da Canvas per visualizzare i dati e determinare quali funzionalità potresti voler includere nel tuo modello. Per ulteriori informazioni, consulta [Explore and analyze your data](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-explore-data.html).

1. (Facoltativo) Utilizza le trasformazioni dei dati per pulire, trasformare e preparare i dati per la creazione di modelli. Per ulteriori informazioni, consulta [Prepare your data with advanced transformations](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-prepare-data.html). È possibile visualizzare e rimuovere le trasformazioni scegliendo **Modello di ricetta** per aprire il pannello laterale della **Ricetta del modello**.

1. (Facoltativo) Per funzionalità aggiuntive come l'anteprima dell'accuratezza del modello, la convalida del set di dati e la modifica della dimensione del campione casuale che Canvas preleva dal set di dati, consulta [Visualizzazione dell'anteprima del modello](canvas-preview-model.md).

1. Dopo aver esaminato i dati e aver apportato eventuali modifiche al set di dati, scegli **Creazione rapida** o **Creazione standard** per iniziare la creazione del tuo modello. Lo screenshot seguente mostra la pagina **Crea** e le opzioni **Creazione rapida** e **Creazione standard**.  
![\[La pagina Crea per un modello a 2 categorie che mostra le opzioni Creazione rapida e Creazione standard.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/build-page-tabular-quick-standard-options.png)

Dopo l'inizio della creazione del modello, è possibile abbandonare la pagina. Quando il modello viene visualizzato come **Pronto** nella pagina **I miei modelli**, è pronto per l'analisi e le previsioni.

## Creazione di un modello di previsione delle immagini personalizzato
<a name="canvas-build-model-image"></a>

I modelli di previsione delle immagini a etichetta singola supportano sia le **Creazioni rapide** che le **Creazioni standard**.

Per creare un modello di previsione delle immagini a etichetta singola, utilizza la seguente procedura:

1. Apri l'applicazione SageMaker Canvas.

1. Nel riquadro di navigazione a sinistra, scegli **I miei modelli**.

1. Scegli **Nuovo modello**.

1. Nella finestra di dialogo **Crea allarme** procedi nel seguente modo:

   1. Inserisci un nome nel campo **Nome modello**.

   1. Seleziona il tipo di problema di **Analisi delle immagini**.

   1. Scegli **Crea**.

1. Per **Seleziona set di dati**, seleziona il tuo set di dati dall'elenco dei set di dati. Se non hai ancora importato i dati, scegli **Importa** per essere indirizzato al flusso di lavoro di importazione dei dati.

1. Quando è tutto pronto per iniziare a creare il modello, scegli **Seleziona set di dati**.

1. Nella scheda **Crea**, vedi la **distribuzione delle etichette** per le immagini nel tuo set di dati. Il **tipo di modello** è impostato su **Previsione di immagini con etichetta singola**.

1. In questa pagina, è possibile visualizzare l'anteprima delle immagini e modificare il set di dati. Se hai immagini senza etichetta, scegli **Modifica set di dati** e [Assegnazione di etichette alle immagini senza etichetta](canvas-edit-image.md#canvas-edit-image-assign). Inoltre, puoi eseguire altre attività quando [Modifica di un set di dati di immagini](canvas-edit-image.md), come rinominare le etichette e aggiungere immagini al set di dati.

1. Dopo aver esaminato i dati e aver apportato eventuali modifiche al set di dati, scegli **Creazione rapida** o **Creazione standard** per iniziare la creazione del tuo modello. Lo screenshot seguente mostra la pagina **Crea** di un modello di previsione delle immagini pronto per essere creato.  
![\[La pagina Crea per un modello di previsione delle immagini a etichetta singola.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/build-page-image-model.png)

Dopo l'inizio della creazione del modello, è possibile abbandonare la pagina. Quando il modello viene visualizzato come **Pronto** nella pagina **I miei modelli**, è pronto per l'analisi e le previsioni.

## Creazione di un modello di previsione del testo personalizzato
<a name="canvas-build-model-text"></a>

I modelli di previsione di testo multicategoria supportano sia le **Creazioni rapide** che le **Creazioni standard**.

Per creare un modello di previsione di testo a etichetta singola, utilizza la seguente procedura:

1. Apri l'applicazione SageMaker Canvas.

1. Nel riquadro di navigazione a sinistra, scegli **I miei modelli**.

1. Scegli **Nuovo modello**.

1. Nella finestra di dialogo **Crea allarme** procedi nel seguente modo:

   1. Inserisci un nome nel campo **Nome modello**.

   1. Seleziona il tipo di problema di **Analisi del testo**.

   1. Scegli **Crea**.

1. Per **Seleziona set di dati**, seleziona il tuo set di dati dall'elenco dei set di dati. Se non hai ancora importato i dati, scegli **Importa** per essere indirizzato al flusso di lavoro di importazione dei dati.

1. Quando sei pronto per iniziare a creare il modello, scegli **Seleziona set di dati**.

1. Nella scheda **Crea**, nell'elenco a discesa della **Colonna di destinazione**, seleziona l'obiettivo per il modello che desideri prevedere. La colonna di destinazione deve avere un tipo di dati binario o categorico e devono essere presenti almeno 25 voci (o righe di dati) per ciascun etichetta univoca nella colonna di destinazione.

1. Per **Tipo di modello**, verifica che il tipo di modello sia impostato automaticamente sulla **Previsione di testo multicategoria**.

1. Per la colonna formativa, seleziona la colonna di origine dei dati di testo, Dovrebbe essere la colonna contenente il testo che si desidera analizzare.

1. Scegli **Creazione rapida** o **Creazione standard** per iniziare a creare il tuo modello. Lo screenshot seguente mostra la pagina **Crea** di un modello di previsione delle immagini pronto per essere creato.  
![\[La pagina Crea per un modello di previsione del testo multicategoria.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/build-page-text-model.png)

Dopo l'inizio della creazione del modello, è possibile abbandonare la pagina. Quando il modello viene visualizzato come **Pronto** nella pagina **I miei modelli**, è pronto per l'analisi e le previsioni.

## Creazione di un modello di previsione delle serie temporali
<a name="canvas-build-model-forecasting"></a>

I modelli di previsione delle serie temporali supportano sia le **build rapide** che le **build standard**.

Utilizza la procedura seguente per generare un modello di previsione delle serie temporali.

1. Apri l'applicazione SageMaker Canvas.

1. Nel riquadro di navigazione a sinistra, scegli **I miei modelli**.

1. Scegli **Nuovo modello**.

1. Nella finestra di dialogo **Crea allarme** procedi nel seguente modo:

   1. Inserisci un nome nel campo **Nome modello**.

   1. Seleziona il tipo di problema in **Previsione delle serie temporali**.

   1. Scegli **Create** (Crea).

1. Per **Seleziona set di dati**, seleziona il tuo set di dati dall'elenco dei set di dati. Se non hai ancora importato i dati, scegli **Importa** per essere indirizzato al flusso di lavoro di importazione dei dati.

1. Quando sei pronto per iniziare a creare il modello, scegli **Seleziona set di dati**.

1. Nella scheda **Crea**, nell'elenco a discesa della **Colonna di destinazione**, seleziona l'obiettivo per il modello che desideri prevedere.

1. Nella sezione **Tipo di modello**, scegli **Configura modello**.

1. Viene visualizzata la finestra **Configura modello**. Per la sezione **Configurazione delle serie temporali**, compila i seguenti campi:

   1. In **Colonna ID elemento**, scegli una colonna nel set di dati che identifichi in modo univoco ogni riga. La colonna deve avere un tipo di dati `Text`.

   1. (Facoltativo) In **Colonna gruppo**, scegli una o più colonne categoriche (con un tipo di dati `Text`) da utilizzare per raggruppare i valori di previsione.

   1. In **Colonna timestamp**, seleziona la colonna con i timestamp (in formato data/ora). Per ulteriori informazioni sui formati data/ora accettati, consulta [Previsioni delle serie temporali in Amazon Canvas SageMaker](canvas-time-series.md).

   1. Nel campo **Lunghezza previsione**, inserisci il periodo di tempo per il quale prevedere i valori. Canvas rileva automaticamente le unità di tempo nei dati.

   1. (Facoltativo) Attiva l’opzione **Utilizza la pianificazione delle festività** per selezionare una pianificazione delle festività nei diversi paesi e rendere più accurate le previsioni con i dati sulle festività.

1. Nella finestra **Configura modello** sono disponibili impostazioni aggiuntive nella sezione **Avanzate**. Per ulteriori informazioni sulle singole impostazioni avanzate, consulta [Configurazioni avanzate per la creazione dei modelli](canvas-advanced-settings.md). Per configurare le impostazioni **avanzate**, procedi come descritto di seguito:

   1. Nel menu a discesa **Metrica obiettivo**, seleziona il metrica che Canvas deve ottimizzare durante la creazione del modello. Se non selezioni un parametro, Canvas ne sceglie uno automaticamente per te per impostazione predefinita. Per una descrizione delle metriche disponibili, consulta [Riferimento per le metriche](canvas-metrics.md).

   1. Se stai eseguendo una build standard, viene visualizzata la sezione **Algoritmi**. Questa sezione riguarda la selezione degli algoritmi di previsione delle serie temporali da utilizzare per creare il tuo modello. Puoi selezionare un sottoinsieme degli algoritmi disponibili oppure puoi selezionarli tutti se non sai quali provare.

      Quando esegui la build standard, Canvas crea un modello ensemble che combina tutti gli algoritmi per ottimizzare l’accuratezza delle previsioni.
**Nota**  
Se esegui una build rapida, Canvas utilizza un unico algoritmo di apprendimento basato su un albero per addestrare il modello e non devi selezionare alcun algoritmo.

   1. In **Quantili previsione**, inserisci fino a cinque valori di quantili separati da virgole per specificare i limiti superiore e inferiore della previsione.

   1. Dopo aver configurato le impostazioni **avanzate**, scegli **Salva**.

1. Seleziona o deseleziona le colonne nei dati per includerle o eliminarle dalla creazione.
**Nota**  
Se effettui previsioni in batch con il modello dopo la creazione, Canvas aggiunge colonne eliminate ai risultati della previsione. Tuttavia, Canvas non aggiunge le colonne eliminate alle previsioni in batch per i modelli di serie temporali.

1. (Facoltativo) Utilizza gli strumenti di visualizzazione e analisi forniti da Canvas per visualizzare i dati e determinare quali funzionalità potresti voler includere nel tuo modello. Per ulteriori informazioni, consulta [Explore and analyze your data](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-explore-data.html).

1. (Facoltativo) Utilizza le trasformazioni dei dati per pulire, trasformare e preparare i dati per la creazione di modelli. Per ulteriori informazioni, consulta [Prepare your data with advanced transformations](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-prepare-data.html). È possibile visualizzare e rimuovere le trasformazioni scegliendo **Modello di ricetta** per aprire il pannello laterale della **Ricetta del modello**.

1. (Facoltativo) Per funzionalità aggiuntive come l'anteprima dell'accuratezza del modello, la convalida del set di dati e la modifica della dimensione del campione casuale che Canvas preleva dal set di dati, consulta [Visualizzazione dell'anteprima del modello](canvas-preview-model.md).

1. Dopo aver esaminato i dati e aver apportato eventuali modifiche al set di dati, scegli **Creazione rapida** o **Creazione standard** per iniziare la creazione del tuo modello.

Dopo l'inizio della creazione del modello, è possibile abbandonare la pagina. Quando il modello viene visualizzato come **Pronto** nella pagina **I miei modelli**, è pronto per l'analisi e le previsioni.

# Configurazioni avanzate per la creazione dei modelli
<a name="canvas-advanced-settings"></a>

Amazon SageMaker Canvas supporta diverse impostazioni avanzate che puoi configurare durante la creazione di un modello. La pagina seguente elenca tutte le impostazioni avanzate insieme a informazioni aggiuntive sulle relative opzioni e configurazioni.

**Nota**  
Le impostazioni avanzate seguenti sono attualmente supportate solo per i tipi di modelli di previsione numerici, categorici e delle serie temporali.

## Impostazioni avanzate dei modelli di previsione numerici e categorici
<a name="canvas-advanced-settings-predictive"></a>

Canvas supporta le seguenti impostazioni avanzate per i tipi di modelli di previsione numerici e categorici.

### Parametro obiettivo
<a name="canvas-advanced-settings-predictive-obj-metric"></a>

La metrica obiettivo è la metrica che Canvas deve ottimizzare durante la creazione del modello. Se non selezioni un parametro, Canvas ne sceglie uno automaticamente per te per impostazione predefinita. Per una descrizione delle metriche disponibili, consulta [Riferimento per le metriche](canvas-metrics.md).

### Metodo di addestramento
<a name="canvas-advanced-settings-predictive-method"></a>

Canvas può selezionare automaticamente il metodo di addestramento in base alla dimensione del set di dati oppure puoi selezionarlo manualmente. Puoi scegliere tra i seguenti metodi di addestramento:
+ **Ensembling**: l' SageMaker intelligenza artificiale sfrutta la AutoGluon libreria per addestrare diversi modelli di base. Per trovare la combinazione ottimale per il tuo set di dati, la modalità ensemble esegue 5-10 prove con diverse impostazioni dei modelli e dei metaparametri. Quindi, questi modelli vengono combinati utilizzando un metodo ensemble di sovrapposizione per creare un modello di previsione ottimale. Per un elenco degli algoritmi supportati dalla modalità ensemble per i dati tabulari, consulta la sezione [Algoritmi](#canvas-advanced-settings-predictive-algos) seguente.
+ **Ottimizzazione degli iperparametri (HPO)**: l' SageMaker intelligenza artificiale trova la versione migliore di un modello ottimizzando gli iperparametri utilizzando l'ottimizzazione bayesiana o l'ottimizzazione multifidelity mentre esegue lavori di formazione sul set di dati. La modalità HPO seleziona gli algoritmi più pertinenti al set di dati e seleziona la migliore gamma di iperparametri per ottimizzare i modelli. Per ottimizzare i modelli, la modalità HPO esegue fino a 100 prove (impostazione predefinita) per trovare le impostazioni ottimali degli iperparametri all'interno dell'intervallo selezionato. Se la dimensione del set di dati è inferiore a 100 MB, l'intelligenza artificiale utilizza l'ottimizzazione bayesiana. SageMaker SageMaker L'intelligenza artificiale sceglie l'ottimizzazione a più fedeltà se il set di dati è più grande di 100 MB.

  Per un elenco degli algoritmi supportati dalla modalità HPO per i dati tabulari, consulta la sezione seguente [Algoritmi](#canvas-advanced-settings-predictive-algos).
+ **Automatico**: l' SageMaker IA sceglie automaticamente la modalità ensembling o la modalità HPO in base alle dimensioni del set di dati. Se il set di dati è più grande di 100 MB, SageMaker AI sceglie la modalità HPO. Altrimenti, esso sceglie la modalità raggruppamento.

### Algoritmi
<a name="canvas-advanced-settings-predictive-algos"></a>

In modalità **ensemble**, Canvas supporta i seguenti algoritmi di machine learning:
+ [LightGBM](https://docs.aws.amazon.com/sagemaker/latest/dg/lightgbm.html): un framework ottimizzato che utilizza algoritmi ad albero con aumento del gradiente. Questo algoritmo utilizza alberi che crescono in larghezza anziché in profondità ed è altamente ottimizzato per la velocità.
+ [CatBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/catboost.html)— Un framework che utilizza algoritmi basati su alberi con potenziamento del gradiente. Ottimizzato per la gestione di variabili categoriche.
+ [XGBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html)— Un framework che utilizza algoritmi basati su alberi con potenziamento del gradiente che cresce in profondità anziché in larghezza.
+ [Random Forest](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html): un algoritmo ad albero che utilizza diversi alberi decisionali su sottocampioni casuali di dati con sostituzione. Gli alberi sono suddivisi in nodi ottimali a ciascun livello. Le decisioni di ogni albero vengono calcolate insieme per evitare un sovradimensionamento e migliorare le previsioni.
+ [Extra Trees](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.ExtraTreesClassifier.html#sklearn.ensemble.ExtraTreesClassifier): un algoritmo ad albero che utilizza diversi alberi decisionali sull'intero set di dati. Gli alberi vengono suddivisi casualmente ad ogni livello. Le decisioni di ogni albero vengono calcolate per evitare un sovradimensionamento e per migliorare le previsioni. Gli alberi aggiuntivi aggiungono un grado di randomizzazione rispetto all'algoritmo della foresta casuale.
+ [Linear Models](https://scikit-learn.org/stable/modules/classes.html#module-sklearn.linear_model): un framework che utilizza un'equazione lineare per modellare la relazione tra due variabili nei dati osservati.
+ Neural network torch: un modello di rete neurale implementato utilizzando [Pytorch](https://pytorch.org/).
+ Neural network fast.ai: un modello di rete neurale implementato utilizzando [fast.ai](https://www.fast.ai/).

In modalità **HPO**, Canvas supporta i seguenti algoritmi di machine learning:
+ [XGBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html)— Un algoritmo di apprendimento supervisionato che tenta di prevedere con precisione una variabile target combinando un insieme di stime tratte da una serie di modelli più semplici e più deboli.
+ Deep learning algorithm (Algoritmo deep learning): un perceptron multistrato (MLP) e una rete neurale artificiale feedforward. Questo algoritmo è in grado di gestire dati che non sono separabili linearmente.

### Suddivisione dei dati
<a name="canvas-advanced-settings-predictive-split"></a>

Puoi specificare come dividere il set di dati tra il set di addestramento (la parte del set di dati utilizzata per creare il modello) e il set di convalida (la parte del set di dati utilizzata per verificare l’accuratezza del modello). Ad esempio, un rapporto di suddivisione utilizzato di frequente è 80% addestramento e 20% convalida, che significa che l’80% dei dati viene impiegato per creare il modello e il 20% per misurarne le prestazioni. Se non specifichi un rapporto personalizzato, Canvas suddivide automaticamente il set di dati.

### Numero massimo di candidati
<a name="canvas-advanced-settings-predictive-candidates"></a>

**Nota**  
Questa funzionalità è disponibile solo nella modalità di addestramento HPO.

Puoi specificare il numero massimo di modelli candidati generati da Canvas durante la creazione del modello. Ti consigliamo di mantenere il numero predefinito di candidati, 100, per creare modelli più accurati. Il numero massimo che puoi specificare è 250. La riduzione del numero di modelli candidati può influire sull’accuratezza del modello.

### Massimo runtime del processo
<a name="canvas-advanced-settings-predictive-runtime"></a>

Puoi specificare il massimo runtime del processo o il tempo massimo che Canvas può dedicare alla creazione del modello. Trascorso questo intervallo di tempo, Canvas arresta la creazione e seleziona il miglior modello candidato.

Il tempo massimo che puoi specificare è 720 ore. Consigliamo vivamente di impostare il massimo runtime del processo su un valore superiore a 30 minuti per garantire a Canvas il tempo sufficiente per generare modelli candidati e completare la creazione del modello.

## Impostazioni avanzate del modello di previsione delle serie temporali
<a name="canvas-advanced-settings-time-series"></a>

Per i modelli di previsione delle serie temporali, Canvas supporta la metrica obiettivo, elencata nella sezione precedente.

I modelli di previsione delle serie temporali supportano anche le impostazioni avanzate seguenti:

### Selezione degli algoritmi
<a name="canvas-advanced-settings-time-series-algos"></a>

Quando crei un modello di previsione delle serie temporali, Canvas utilizza un *ensemble* (o una combinazione) di algoritmi statistici e di machine learning per generare previsioni delle serie temporali estremamente accurate. Per impostazione predefinita, Canvas seleziona la combinazione ottimale di tutti gli algoritmi disponibili in base alle serie temporali del set di dati. Tuttavia, hai la possibilità di specificare uno o più algoritmi da utilizzare per il tuo modello di previsione. In questo caso, Canvas determina la combinazione migliore basandosi solo sugli algoritmi selezionati. Se hai dubbi sull’algoritmo da selezionare per addestrare il modello, ti consigliamo di scegliere tutti gli algoritmi disponibili.

**Nota**  
La selezione degli algoritmi è supportata solo per le build standard. Se non selezioni alcun algoritmo nelle impostazioni avanzate, per impostazione predefinita l' SageMaker IA esegue una compilazione rapida e addestra i candidati modello utilizzando un unico algoritmo di apprendimento basato su un albero. Per ulteriori informazioni sulla differenza tra le build rapide e quelle standard, consulta [Funzionamento dei modelli personalizzati](canvas-build-model.md).

Canvas supporta i seguenti algoritmi di previsione delle serie temporali:
+ [Modello autoregressivo integrato a media mobile (ARIMA)](https://en.wikipedia.org/wiki/Autoregressive_integrated_moving_average): un semplice modello stocastico di serie temporali che utilizza l’analisi statistica per interpretare i dati e generare previsioni future. Questo algoritmo è utile per set di dati semplici con meno di 100 serie temporali.
+ [Rete neurale convoluzionale - Regressione quantile (CNN-QR)](https://docs.aws.amazon.com/forecast/latest/dg/aws-forecast-algo-cnnqr.html): un algoritmo di apprendimento proprietario e supervisionato che addestra un modello globale da un’ampia raccolta di serie temporali e utilizza un decodificatore quantile per generare previsioni. CNN-QR funziona al meglio con set di dati di grandi dimensioni che contengono centinaia di serie temporali.
+ [DeePar\$1](https://docs.aws.amazon.com/forecast/latest/dg/aws-forecast-recipe-deeparplus.html) — Un algoritmo di apprendimento proprietario e supervisionato per la previsione di serie temporali scalari utilizzando reti neurali ricorrenti (RNNs) per addestrare un singolo modello congiuntamente su tutte le serie temporali. DeepAR\$1 funziona al meglio con set di dati di grandi dimensioni che contengono centinaia di serie temporali di funzionalità.
+ [Serie temporali non parametriche (NPTS)](https://docs.aws.amazon.com/forecast/latest/dg/aws-forecast-recipe-npts.html): un previsore di base probabilistico e scalabile, che prevede la distribuzione futura dei valori di una determinata serie temporale prelevando campioni da osservazioni passate. NPTS è utile quando si lavora con serie temporali sparse o intermittenti (ad esempio, per la previsione della domanda di singoli articoli, in cui la serie temporale presenta molti 0 o numeri bassi).
+ [Livellamento esponenziale (ETS)](https://en.wikipedia.org/wiki/Exponential_smoothing): un metodo di previsione che produce previsioni che corrispondono alle medie ponderate di osservazioni precedenti, in cui il peso delle osservazioni precedenti diminuisce esponenzialmente. L’algoritmo è particolarmente utile per set di dati semplici con meno di 100 serie temporali e set di dati con modelli di stagionalità.
+ [Prophet](https://facebook.github.io/prophet/): un modello di regressione additivo che funziona al meglio con serie temporali che hanno forti effetti stagionali e diverse stagioni di dati cronologici. L’algoritmo è utile per set di dati con tendenze di crescita non lineare che si avvicinano a un limite.

### Quantili di previsione
<a name="canvas-advanced-settings-time-series-quantiles"></a>

Per la previsione delle serie temporali, l'intelligenza artificiale forma 6 candidati modello con le serie temporali target SageMaker . Quindi, l' SageMaker intelligenza artificiale combina questi modelli utilizzando un metodo di sovrapposizione per creare un modello di previsione ottimale per una determinata metrica oggettiva. Ogni modello di previsione genera una previsione probabilistica producendo previsioni con quantili compresi tra P1 e P99. Questi quantili vengono utilizzati per tenere conto dell'incertezza delle previsioni. Per impostazione predefinita, vengono generate previsioni per 0,1 (`p10`), 0,5 (`p50`) e 0,9 (`p90`). Puoi scegliere di specificare fino a cinque quantili da 0,01 (`p1`) a 0,99 (`p99`), con incrementi di 0,01 o superiori.

# Modifica di un set di dati di immagini
<a name="canvas-edit-image"></a>

In Amazon SageMaker Canvas, puoi modificare i set di dati delle immagini e rivedere le etichette prima di creare un modello. Potresti voler eseguire attività come l'assegnazione di etichette a immagini senza etichetta o l'aggiunta di altre immagini al set di dati. Tutte queste attività possono essere eseguite nell'applicazione Canvas, che offre un unico posto per modificare il set di dati e creare un modello.

**Nota**  
Prima di creare un modello, devi assegnare etichette a tutte le immagini del set di dati. Inoltre, è necessario disporre di almeno 25 immagini per etichetta e almeno due etichette. Per ulteriori informazioni sull'assegnazione di etichette, consulta la sezione di questa pagina chiamata **Assign labels to unlabeled images**. Se non riesci a determinare un'etichetta per un'immagine, dovresti eliminarla dal tuo set di dati. Per ulteriori informazioni sull’eliminazione dei messaggi, consulta la sezione in questa pagina [Aggiunta o eliminazione di immagini dal set di dati](#canvas-edit-image-add-delete).

Per iniziare a modificare il set di dati di immagini, dovresti utilizzare la scheda **Crea** durante la creazione del tuo modello di previsione delle immagini a etichetta singola.

Si apre una nuova pagina che mostra le immagini del set di dati insieme alle relative etichette. Questa pagina classifica il set di dati di immagini in **Immagini totali**, **Immagini etichettate** e **Immagini senza etichetta.** Inoltre, puoi consultare la **guida alla preparazione del set di dati** per le best practice sulla creazione di un modello di previsione delle immagini più accurato.

Lo screenshot seguente mostra la pagina per modificare il set di dati di immagini.

![\[Screenshot della pagina di gestione del set di dati di immagini in Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/dataset-management-page.png)


Da questa pagina è possibile eseguire queste azioni:

## Visualizzare le proprietà di ogni immagine (etichetta, formato, dimensioni)
<a name="canvas-edit-image-view"></a>

Per visualizzare una singola immagine, è possibile cercarla per nome del file nella barra di ricerca. Quindi, scegli l'immagine per aprire la visualizzazione completa. È possibile visualizzare le proprietà dell'immagine e riassegnare l'etichetta dell'immagine. Scegli **Salva** quando stai visualizzando l'immagine.

## Aggiungere, rinominare o eliminare etichette nel set di dati
<a name="canvas-edit-image-labels"></a>

Canvas elenca le etichette per il set di dati nel riquadro di navigazione a sinistra. È possibile aggiungere nuove etichette al set di dati inserendo un'etichetta nel campo di testo **Aggiungi etichetta**.

Per rinominare o eliminare un’etichetta dal tuo set di dati, scegli l’icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) accanto all’etichetta e scegli **Rinomina** o **Elimina**. Se rinomini l’etichetta, è possibile inserire il nuovo nome dell’etichetta e scegliere **Conferma**. Se elimini l'etichetta, l'etichetta viene rimossa da tutte le immagini del set di dati che hanno quell'etichetta. Tutte le immagini con l’etichetta specificata non verranno etichettate.

## Assegnazione di etichette alle immagini senza etichetta
<a name="canvas-edit-image-assign"></a>

Per visualizzare le immagini senza etichetta nel tuo set di dati, scegli **Senza etichetta** nel riquadro di navigazione a sinistra. Per ogni immagine, selezionala e apri l'etichetta intitolata **Senza etichetta** e seleziona un'etichetta da assegnare all'immagine dall'elenco a discesa. Inoltre, puoi selezionare più di un'immagine ed eseguire questa azione e a tutte le immagini selezionate viene assegnata l'etichetta che hai scelto.

## Riassegnazione di etichette alle immagini
<a name="canvas-edit-image-reassign"></a>

È possibile riassegnare le etichette alle immagini selezionando l'immagine (o più immagini alla volta) e aprendo il menu a discesa intitolato all'etichetta corrente. Seleziona l'etichetta desiderata e l'immagine o le immagini vengono aggiornate con la nuova etichetta.

## Ordinamento delle immagini per etichetta
<a name="canvas-edit-image-sort"></a>

È possibile visualizzare tutte le immagini di una determinata etichetta selezionando l'etichetta nel riquadro di navigazione a sinistra.

## Aggiunta o eliminazione di immagini dal set di dati
<a name="canvas-edit-image-add-delete"></a>

È possibile aggiungere altre immagini al tuo set di dati scegliendo **Aggiungi immagini** nel riquadro di navigazione in alto. Verrai guidato attraverso il flusso di lavoro per importare altre immagini. Le immagini importate vengono aggiunte al set di dati esistente.

È possibile eliminare le immagini dal tuo set di dati selezionandole e quindi scegliendo **Elimina** nel riquadro di navigazione in alto.

**Nota**  
Dopo aver apportato modifiche al set di dati, scegli **Salva set di dati** per assicurarti di non perdere le modifiche.

# Esplorazione e analisi dei dati
<a name="canvas-explore-data"></a>

**Nota**  
Puoi utilizzare visualizzazioni e analisi SageMaker Canvas solo per modelli basati su set di dati tabulari. Sono esclusi anche i modelli di previsione del testo multicategoria.

In Amazon SageMaker Canvas, puoi esplorare le variabili nel tuo set di dati utilizzando visualizzazioni e analisi e creare visualizzazioni e analisi all'interno dell'applicazione. È possibile utilizzare queste esplorazioni per scoprire le relazioni tra le variabili prima di creare il modello.

Per ulteriori informazioni sulle tecniche di visualizzazione in Canvas, consulta [Esplorazione dei dati utilizzando tecniche di visualizzazione](canvas-explore-data-visualization.md).

Per ulteriori informazioni sull'analytics in Canvas, consulta [Esplorazione di dati tramite analytics](canvas-explore-data-analytics.md).

# Esplorazione dei dati utilizzando tecniche di visualizzazione
<a name="canvas-explore-data-visualization"></a>

**Nota**  
Puoi utilizzare le visualizzazioni SageMaker Canvas solo per modelli basati su set di dati tabulari. Sono esclusi anche i modelli di previsione del testo multicategoria.

Con Amazon SageMaker Canvas, puoi esplorare e visualizzare i tuoi dati per ottenere informazioni avanzate sui tuoi dati prima di creare i tuoi modelli di machine learning. È possibile visualizzare utilizzando grafici a dispersione, grafici a barre e diagrammi a scatola e baffi, che possono aiutarti a comprendere i dati e scoprire le relazioni tra le caratteristiche che potrebbero influire sulla precisione del modello.

Nella scheda **Build** dell'applicazione SageMaker Canvas, scegli **Data visualizer** per iniziare a creare le tue visualizzazioni.

È possibile modificare la dimensione del campione di visualizzazione per regolare la dimensione del campione casuale prelevato dal set di dati. Una dimensione del campione troppo grande potrebbe influire sulle prestazioni delle visualizzazioni dei dati, per cui ti consigliamo di scegliere una dimensione del campione appropriata. Per modificare la dimensione del campione, procedi come indicato di seguito.

1. Scegli **Esempio di visualizzazione**.

1. Utilizza il dispositivo di scorrimento per selezionare la dimensione del campione desiderata.

1. Scegli **Aggiorna** per confermare la modifica della dimensione del campione.

**Nota**  
Alcune tecniche di visualizzazione richiedono colonne con un tipo di dati specifico. Ad esempio, è possibile utilizzare solo colonne numeriche per gli assi x e y dei grafici a dispersione.

## Grafico a dispersione
<a name="canvas-explore-data-scatterplot"></a>

Per creare un grafico a dispersione con il tuo set di dati, scegli **Grafico a dispersione** nel pannello **Visualizzazione**. Scegli le funzionalità da riportare sugli assi x e y dalla sezione **Colonne**. Puoi trascinare le colonne sugli assi oppure, una volta rilasciato un asse, puoi scegliere una colonna dall’elenco delle colonne supportate.

È possibile utilizzare **Colore da** per colorare i punti dati sul grafico con una terza funzione. Inoltre, puoi utilizzare **Raggruppa per** raggruppare i dati in grafici separati in base a una quarta funzionalità.

L'immagine seguente mostra un grafico a dispersione che utilizza **Colore da** e **Raggruppa per**. In questo esempio, ogni punto dati è colorato in base alla caratteristiche `MaritalStatus` e il raggruppamento in base ai risultati della caratteristica `Department` genera un grafico a dispersione per i punti dati di ogni reparto.

![\[Screenshot di un grafico a dispersione nella visualizzazione Visualizzatore dati dell'applicazione Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-eda-scatter-plot.png)


## Grafico a barre
<a name="canvas-explore-data-barchart"></a>

Per creare un grafico a barre con il tuo set di dati, scegli **Grafico a barre** nel pannello **Visualizzazione**. Scegli le funzionalità da riportare sugli assi x e y dalla sezione **Colonne**. Puoi trascinare le colonne sugli assi oppure, una volta rilasciato un asse, puoi scegliere una colonna dall’elenco delle colonne supportate.

È possibile utilizzare **Raggruppa per** raggruppare il grafico a barre in base a una terza funzionalità. È possibile utilizzare **In pila per** ombreggiare verticalmente ogni barra in base ai valori univoci di una quarta funzionalità.

L'immagine seguente mostra un grafico a barre che utilizza **Raggruppa per** e **Impila per**. In questo esempio, il grafico a barre è raggruppato in base alla caratteristica `MaritalStatus` e impilato in base alla caratteristica `JobLevel`. Per ogni `JobRole` sull'asse x, c'è una barra separata per le categorie univoche della caratteristica `MaritalStatus` e ogni barra è impilata verticalmente dalla caratteristica `JobLevel`.

![\[Screenshot di un grafico a barre nella vista Visualizzatore dati dell'applicazione Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-eda-bar-chart.png)


## Diagramma a scatola
<a name="canvas-explore-data-boxplot"></a>

Per creare un diagramma a scatola con il tuo set di dati, scegli **Diagramma a scatola** nel pannello **Visualizzazione**. Scegli le funzionalità da riportare sugli assi x e y dalla sezione **Colonne**. Puoi trascinare le colonne sugli assi oppure, una volta rilasciato un asse, puoi scegliere una colonna dall’elenco delle colonne supportate.

È possibile utilizzare **Raggruppa per** per raggruppare i diagramma a scatola in base a una terza funzione.

L'immagine seguente mostra un diagramma a scatola che utilizza **Raggruppa per**. In questo esempio, gli assi x e y mostrano `JobLevel` e`JobSatisfaction`, rispettivamente, i diagrammi a scatola colorati sono raggruppati in base alla caratteristica `Department`.

![\[Screenshot di un diagramma a scatola nella vista Visualizzatore dati dell'applicazione Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-eda-box-plot.png)


# Esplorazione di dati tramite analytics
<a name="canvas-explore-data-analytics"></a>

**Nota**  
Puoi utilizzare l'analisi SageMaker Canvas solo per modelli basati su set di dati tabulari. Sono esclusi anche i modelli di previsione del testo multicategoria.

Con l'analisi in Amazon SageMaker Canvas, puoi esplorare il tuo set di dati e ottenere informazioni su tutte le tue variabili prima di creare un modello. È possibile determinare le relazioni tra le caratteristiche del tuo set di dati utilizzando matrici di correlazione. È possibile utilizzare questa tecnica per riepilogare il set di dati in una matrice che mostra le correlazioni tra due o più valori. Ciò consente di identificare e visualizzare i modelli in un determinato set di dati per un'analisi avanzata dei dati.

La matrice mostra la correlazione tra ciascuna caratteristica come positiva, negativa o neutra. Potresti voler includere funzionalità che hanno un'elevata correlazione tra loro quando crei il tuo modello. Le funzionalità che hanno poca o nessuna correlazione potrebbero essere irrilevanti per il modello e puoi eliminarle durante la creazione del modello.

Per iniziare a usare le matrici di correlazione in SageMaker Canvas, consulta la sezione seguente.

## Crea una matrice di correlazione
<a name="canvas-explore-data-analytics-correlation-matrix"></a>

Puoi creare una matrice di correlazione quando ti prepari a creare un modello nella scheda **Build dell'applicazione Canvas**. SageMaker 

Per istruzioni su come iniziare a creare un modello, consulta [Crea un modello](canvas-build-model-how-to.md).

Dopo aver iniziato a preparare un modello nell'applicazione SageMaker Canvas, effettuate le seguenti operazioni:

1. Nella scheda **Crea**, scegli **Visualizzatore dati**.

1. Scegli **Analytics**.

1. Scegli **Matrice di correlazione**.

Dovresti vedere una visualizzazione simile allo screenshot seguente, che mostra fino a 15 colonne del set di dati organizzate in una matrice di correlazione.

![\[Screenshot di una matrice di correlazione nell'applicazione Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-correlation-matrix-2.png)


Dopo aver creato la matrice di correlazione, è possibile personalizzarla effettuando le seguenti operazioni:

### 1. Scegli le tue colonne
<a name="canvas-explore-data-analytics-correlation-matrix-columns"></a>

Per **Colonne**, è possibile selezionare le colonne che si desidera includere nella matrice. È possibile confrontare fino a 15 colonne del tuo set di dati.

**Nota**  
È possibile utilizzare tipi di colonna numerici, categorici o binari per una matrice di correlazione. La matrice di correlazione non supporta i tipi di colonne di dati datetime o di testo.

Per aggiungere o rimuovere colonne dalla matrice di correlazione, seleziona e deseleziona colonne dal pannello **Colonne**. Inoltre, puoi anche trascinare le colonne dal pannello direttamente sulla matrice. Se il set di dati contiene molte colonne, è possibile cercare le colonne desiderate nella barra delle **colonne di ricerca**.

Per filtrare le colonne per tipo di dati, scegli l’elenco a discesa e seleziona **Tutto**, **Numerico** o **Categorico**. Selezionando **Tutto** vengono visualizzate tutte le colonne del set di dati, mentre i filtri **Numerico** e **Categorico** mostrano solo le colonne numeriche o categoriche del set di dati. Tieni presente che i tipi di colonne binarie sono inclusi nei filtri numerici o categorici.

Per ottenere informazioni ottimali sui dati, includi la colonna di destinazione nella matrice di correlazione. Quando includi la colonna di destinazione nella matrice di correlazione, questa appare come l'ultima caratteristica della matrice con un simbolo di destinazione.

### 2. Scegli il tuo tipo di correlazione
<a name="canvas-explore-data-analytics-correlation-matrix-cor-type"></a>

SageMaker Canvas supporta diversi *tipi di correlazione* o metodi per calcolare la correlazione tra le colonne.

Per modificare il tipo di correlazione, utilizza il filtro **Colonne** menzionato nella sezione precedente per filtrare il tipo di colonna e le colonne desiderati. Dovresti vedere il **Tipo di correlazione** nel pannello laterale. Per i confronti numerici, hai la possibilità di selezionare **Pearson** o **Spearman**. Per i confronti categorici, il tipo di correlazione è impostato su **MI**. Per i confronti categorici, il tipo di correlazione è impostato come **Spearman & MI**.

Per le matrici che confrontano solo colonne numeriche, il tipo di correlazione è Pearson o Spearman. La misura di Pearson valuta la relazione lineare tra due variabili continue. La misura Spearman valuta la relazione monotona tra due variabili. Sia per Pearson che per Spearman, la scala di correlazione va da -1 a 1, con entrambe le estremità della scala che indicano una correlazione perfetta (una relazione 1:1 diretta) e 0 che indica nessuna correlazione. Potresti voler selezionare Pearson se i tuoi dati hanno relazioni più lineari (come rivelato da un [grafico a dispersione](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-explore-data.html#canvas-explore-data-scatterplot)). Se i tuoi dati non sono lineari o contengono una combinazione di relazioni lineari e monotone, potresti voler selezionare Spearman.

Per le matrici che confrontano solo colonne categoriche, il tipo di correlazione è impostato su Mutual Information Classification (MI). Il valore MI è una misura della dipendenza reciproca tra due variabili casuali. La misura MI è su una scala da 0 a 1, dove 0 indica nessuna correlazione e 1 indica una correlazione perfetta.

Per le matrici che confrontano una combinazione di colonne numeriche e categoriche, il tipo di correlazione **Spearman & MI** è una combinazione dei tipi di correlazione Spearman e MI. Per le correlazioni tra due colonne numeriche, la matrice mostra il valore di Spearman. Per le correlazioni tra una colonna numerica e categorica o due colonne categoriche, la matrice mostra il valore MI.

Infine, ricorda che la correlazione non indica necessariamente una causalità. Un valore di correlazione forte indica solo che esiste una relazione tra due variabili, ma le variabili potrebbero non avere una relazione causale. Esamina attentamente le colonne di interesse per evitare distorsioni durante la creazione del modello.

### 3. Filtra le correlazioni
<a name="canvas-explore-data-analytics-correlation-matrix-filter"></a>

Nel pannello laterale, è possibile utilizzare la funzionalità **Filtra correlazioni** per filtrare l'intervallo di valori di correlazione che desideri includere nella matrice. Ad esempio, se si desidera filtrare le funzionalità che hanno solo una correlazione positiva o neutra, è possibile impostare il valore **Min** su 0 e il **Max** su 1 (i valori validi sono da -1 a 1).

Per i confronti tra Spearman e Pearson, è possibile impostare l'intervallo di **correlazioni del filtro** da -1 a 1, dove 0 indica che non esiste alcuna correlazione. -1 e 1 indicano che le variabili hanno rispettivamente una forte correlazione negativa o positiva.

Per i confronti MI, l'intervallo di correlazione va solo da 0 a 1, dove 0 indica che non c'è correlazione e 1 indica che le variabili hanno una forte correlazione, positiva o negativa.

Ogni caratteristica ha una correlazione perfetta (1) con se stessa. Pertanto, potresti notare che la riga superiore della matrice di correlazione è sempre 1. Se desideri escludere questi valori, è possibile utilizzare il filtro per impostare il valore **massimo** inferiore a 1.

Tieni presente che se la tua matrice confronta un mix di colonne numeriche e categoriche e utilizza il tipo di correlazione **Spearman & MI**, le correlazioni *categoriche x numeriche* *e categoriche x categoriche* (che utilizzano la misura MI) sono su una scala da 0 a 1, mentre le correlazioni *numeriche x numeriche* (che utilizzano la misura Spearman) sono su una scala da -1 a 1. Esamina attentamente le correlazioni di interesse per assicurarti di conoscere il tipo di correlazione utilizzato per calcolare ogni valore.

### 4. Scegli il metodo Visualizzazione.
<a name="canvas-explore-data-analytics-correlation-matrix-viz-method"></a>

Nel pannello laterale, è possibile utilizzare **Visualizza per** per modificare il metodo di visualizzazione della matrice. Scegli il metodo di visualizzazione **Numerico** per mostrare il valore di correlazione (Pearson, Spearman o MI) oppure scegli il metodo di visualizzazione **Dimensione** per visualizzare la correlazione con punti di dimensioni e colori diversi. Se scegli **Dimensione**, è possibile passare il mouse su un punto specifico sulla matrice per vedere il valore di correlazione effettivo.

### 5. Scegli una tavolozza colori
<a name="canvas-explore-data-analytics-correlation-matrix-color"></a>

Nel pannello laterale, è possibile utilizzare **Selezione del colore** per modificare la tavolozza colori utilizzata per la scala di correlazione da negativa a positiva nella matrice. Seleziona una delle tavolozze colori alternative per modificare i colori utilizzati nella matrice.

# Preparazione dei dati per la creazione dei modelli
<a name="canvas-prepare-data"></a>

**Nota**  
Ora puoi eseguire una preparazione avanzata dei dati in SageMaker Canvas con Data Wrangler, che ti fornisce un'interfaccia in linguaggio naturale e oltre 300 trasformazioni integrate. Per ulteriori informazioni, consulta [Preparazione dei dati](canvas-data-prep.md).

Il set di dati di machine learning potrebbe richiedere la preparazione dei dati prima di creare il modello. Potresti voler pulire i dati a causa di vari problemi, tra cui valori mancanti o valori anomali, ed eseguire l'ingegneria delle caratteristiche per migliorare la precisione del modello. Amazon SageMaker Canvas fornisce trasformazioni di dati ML con cui puoi pulire, trasformare e preparare i dati per la creazione di modelli. Puoi utilizzare queste trasformazioni sui tuoi set di dati senza alcun codice. SageMaker Canvas aggiunge le trasformazioni utilizzate alla **ricetta del modello**, che è una registrazione della preparazione dei dati effettuata sui dati prima di creare il modello. Qualsiasi trasformazione dati utilizzata modifica solo i dati di input per la creazione del modello e non la fonte di dati originale.

L'anteprima del set di dati mostra le prime 100 righe del set di dati. Se il tuo set di dati ha più di 20.000 righe, Canvas prende un campione casuale di 20.000 righe e visualizza in anteprima le prime 100 righe di quel campione. È possibile cercare e specificare solo i valori delle righe visualizzate in anteprima e la funzionalità di filtro filtra solo le righe visualizzate in anteprima e non l'intero set di dati.

Le seguenti trasformazioni sono disponibili in SageMaker Canvas per preparare i dati per la creazione.

**Nota**  
È possibile utilizzare solo trasformazioni avanzate per modelli basati su set di dati tabulari. Sono esclusi anche i modelli di previsione del testo multicategoria.

## Eliminazione di colonne
<a name="canvas-prepare-data-drop"></a>

Puoi escludere una colonna dalla build del modello rilasciandola nella scheda **Build** dell'applicazione SageMaker Canvas. Deseleziona la colonna che desideri eliminare e non verrà inclusa durante la creazione del modello.

**Nota**  
Se elimini le colonne e poi fai [previsioni in batch](canvas-make-predictions.md) con il tuo modello, SageMaker Canvas aggiunge le colonne eliminate al set di dati di output disponibile per il download. Tuttavia, SageMaker Canvas non aggiunge nuovamente le colonne eliminate per i modelli di serie temporali.

## Filtraggio delle righe
<a name="canvas-prepare-data-filter"></a>

La funzionalità di filtro filtra le righe visualizzate in anteprima (le prime 100 righe del set di dati) in base alle condizioni specificate. Il filtraggio delle righe crea un'anteprima temporanea dei dati e non influisce sulla creazione del modello. È possibile filtrare per visualizzare in anteprima le righe con valori mancanti, che contengono valori anomali o soddisfano condizioni personalizzate in una colonna a tua scelta.

### Filtraggio delle righe in base ai valori mancanti
<a name="canvas-prepare-data-filter-missing"></a>

I valori mancanti sono un'occorrenza comune nei set di dati di machine learning. Se hai righe con valori nulli o vuoti in determinate colonne, potresti voler filtrare e visualizzare in anteprima tali righe.

Per filtrare i valori mancanti dai dati visualizzati in anteprima, effettua le seguenti operazioni.

1. Nella scheda **Build** dell'applicazione SageMaker Canvas, scegli **Filtra per righe** (![\[Filter icon in the SageMaker Canvas application.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/filter-icon.png)).

1. Scegli la **colonna** in cui desideri verificare la presenza di valori mancanti.

1. Per **Operazione**, scegli **Mancante**.

SageMaker Canvas filtra le righe che contengono valori mancanti nella **colonna** selezionata e fornisce un'anteprima delle righe filtrate.

![\[Schermata del filtro mediante l'operazione dei valori mancanti nell'applicazione SageMaker Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-filter-missing.png)


### Filtraggio delle righe per valori anomali
<a name="canvas-prepare-data-filter-outliers"></a>

I valori anomali, o valori rari nella distribuzione e nell'intervallo dei dati, possono influire negativamente sulla precisione del modello e portare a tempi di costruzione più lunghi. SageMaker Canvas consente di rilevare e filtrare le righe che contengono valori anomali nelle colonne numeriche. È possibile scegliere di definire valori anomali con deviazioni standard o un intervallo personalizzato.

Per filtrare i valori anomali nei dati, effettua le seguenti operazioni.

1. Nella scheda **Build** dell'applicazione SageMaker Canvas, scegli **Filtra per righe** (). ![\[Filter icon in the SageMaker Canvas application.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/filter-icon.png)

1. Scegli la **colonna** in cui desideri verificare la presenza di valori anomali.

1. Per **Operazione**, scegli **Valore anomalo**.

1. Imposta l'**Intervallo di valore anomalo** su **Deviazione standard** o **Intervallo personalizzato.**

1. Se scegli **Deviazione standard**, specifica un valore **SD** (deviazione standard) compreso tra 1 e 3. Se scegli **Intervallo personalizzato**, seleziona **Percentile** o **Numero**, quindi specifica i valori **Min** e **Max**.

L'opzione **Deviazione standard** rileva e filtra i valori anomali nelle colonne numeriche utilizzando media e deviazione standard. Si specifica il numero di deviazioni standard. Un valore deve variare dalla media per essere considerato un valore anomalo. Ad esempio, se si specifica `3` per **DS**, un valore deve scendere di più di 3 deviazioni standard dalla media per essere considerato un valore anomalo.

L'opzione **Intervallo personalizzato** rileva e filtra i valori anomali nelle colonne numeriche utilizzando valori minimi e massimi. Utilizza questo metodo se conosci i valori di soglia che delimitano i valori anomali. È possibile impostare il **Tipo** dell'intervallo su **Percentile** o **Numero.** Se scegli **Percentile**, i valori **Min** e **Max** devono essere il minimo e il massimo dell'intervallo di percentili (0-100) che si desidera consentire. Se scegli **Numero**, i valori **Min** e **Max** devono essere i valori numerici minimo e massimo che desideri filtrare nei dati.

![\[Schermata dell'operazione di filtro per valori anomali nell'applicazione Canvas. SageMaker\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-filter-outlier.png)


### Filtraggio delle righe in base a valori personalizzati
<a name="canvas-prepare-data-filter-custom"></a>

È possibile filtrare le righe con valori che soddisfano condizioni personalizzate. Ad esempio, potresti voler visualizzare in anteprima le righe con un valore di prezzo superiore a 100 prima di rimuoverle. Con questa funzionalità, è possibile filtrare le righe che superano la soglia impostata e visualizzare in anteprima i dati filtrati.

Per utilizzare la funzionalità di filtro personalizzato, effettua le seguenti operazioni.

1. Nella scheda **Build** dell'applicazione SageMaker Canvas, scegliete **Filtra per righe** (). ![\[Filter icon in the SageMaker Canvas application.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/filter-icon.png)

1. Scegli la **Colonna** che desideri verificare.

1. Seleziona il tipo di **Operazione** che desideri utilizzare, quindi specifica i valori per la condizione selezionata.

Per **Operazione**, è possibile scegliere una delle seguenti opzioni. Nota che le operazioni disponibili dipendono dal tipo di dati della colonna scelta. Ad esempio, non è possibile creare un'operazione `is greater than` per una colonna contenente valori di testo.


| Operation | Tipo di dati supportati | Tipo di caratteristica supportata | Funzione | 
| --- | --- | --- | --- | 
|  È uguale a  |  Numerico, testo  | Binario, categorico |  Filtra le righe in cui il valore in **Colonna** è uguale ai valori specificati.  | 
|  Non è uguale a  |  Numerico, testo  | Binario, categorico |  Filtra le righe in cui il valore in **Colonna** non è uguale ai valori specificati.  | 
|  È minore di  |  Numerico  | N/D |  Filtra le righe in cui il valore in **Colonna** è minore rispetto al valore specificato.  | 
|  È minore di o uguale a  |  Numerico  | N/D |  Filtra le righe in cui il valore in **Colonna** è minore o uguale ai valori specificati.  | 
|  È maggiore di  |  Numerico  | N/D |  Filtra le righe in cui il valore in **Colonna** è maggiore rispetto ai valori specificati.  | 
|  È maggiore di o uguale a  |  Numerico  | N/D |  Filtra le righe in cui il valore in **Colonna** è maggiore di o uguale al valore specificato.  | 
|  È compreso tra  |  Numerico  | N/D |  Filtra le righe in cui il valore in **Colonna** è compreso tra o uguale ai valori specificati.  | 
|  Contiene  |  Testo  | Categoriale |  Filtra le righe in cui il valore in **Colonna** contiene i valori specificati dall'utente.  | 
|  Inizia con  |  Testo  | Categoriale |  Filtra le righe in cui il valore in **Colonna** inizia con un valore specificato dall'utente.  | 
|  Ends with  |  Categoriale  | Categoriale |  Filtra le righe in cui il valore in **Colonna** termina con un valore specificato dall'utente.  | 

Dopo aver impostato l'operazione di filtro, SageMaker Canvas aggiorna l'anteprima del set di dati per mostrarvi i dati filtrati.

![\[Schermata dell'operazione di filtro mediante valori personalizzati nell'applicazione Canvas. SageMaker\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-filter-custom.png)


## Funzioni e operatori
<a name="canvas-prepare-data-custom-formula"></a>

È possibile utilizzare funzioni e operatori matematici per l'esplorazione e la distribuzione dei dati. È possibile utilizzare le funzioni supportate da SageMaker Canvas o creare una formula personalizzata con i dati esistenti e creare una nuova colonna con il risultato della formula. Ad esempio, è possibile aggiungere i valori corrispondenti di due colonne e salvare il risultato in una nuova colonna.

È possibile nidificare le istruzioni per creare funzioni più complesse. Di seguito sono riportati alcuni esempi di funzioni nidificate che è possibile utilizzare.
+ Per calcolare l'IMC, è possibile utilizzare la funzione `weight / (height ^ 2)`.
+ Per classificare le età, puoi utilizzare la funzione `Case(age < 18, 'child', age < 65, 'adult', 'senior')`.

È possibile specificare le funzioni nella fase di preparazione dei dati prima di creare il modello. Per importare una funzione, procedi nel modo seguente:
+ Nella scheda **Crea** dell'applicazione SageMaker Canvas, scegli **Visualizza tutto**, quindi scegli **Formula personalizzata** per aprire il pannello **Formula personalizzata**.
+ Nel pannello **Formula personalizzata**, è possibile scegliere una **formula** da aggiungere alla tua **Ricetta del modello**. Ogni formula viene applicata a tutti i valori nelle colonne specificate. Per le formule che accettano due o più colonne come argomenti, utilizza colonne con tipi di dati corrispondenti. Se non lo fai, riceverai un errore o verranno visualizzati valori `null` nella nuova colonna. 
+ Dopo aver specificato una **formula**, aggiungi un nome di colonna nel campo **Nome nuova colonna**. SageMaker Canvas usa questo nome per la nuova colonna che viene creata.
+ (Facoltativo) Scegli **Anteprima** per visualizzare l'anteprima della trasformazione.
+ Per aggiungere la funzione alla tua **Ricetta del modello**, scegli **Aggiungi**.

SageMaker Canvas salva il risultato della funzione in una nuova colonna utilizzando il nome specificato in **New Column Name**. È possibile visualizzare o rimuovere le funzioni dal pannello **Ricetta del modello**.

SageMaker Canvas supporta i seguenti operatori per le funzioni. È possibile utilizzare il formato testo o il formato in linea per specificare la funzione.


| Operatore | Description | Tipi di dati supportati | Formato testo | Formato in linea | 
| --- | --- | --- | --- | --- | 
|  Add (Aggiungi)  |  Restituisce la somma dei valori  |  Numerico  | Aggiungi (vendite1, vendite2) | vendite1 \$1 vendite2 | 
|  Subtract (Sottrai)  |  Restituisce la differenza tra i valori  |  Numerico  | Sottrai (vendite1, vendite2) | vendite1 \$1 vendite2 | 
|  Multiply (Moltiplica)  |  Restituisce la somma dei valori  |  Numerico  | Moltiplica (vendite1, vendite2) | vendite1 \$1 vendite2 | 
|  Divide (Dividi)  |  Restituisce il quoziente dei valori  |  Numerico  | Divide (vendite1, vendite2) | vendite1 / vendite2 | 
|  Mod  |  Restituisce il risultato dell'operatore modulo (il resto dopo la divisione dei due valori)  |  Numerico  | Mod(vendite1, vendite2) | vendite1 % vendite2 | 
|  Abs  | Restituisce il valore assoluto del valore |  Numerico  | Abs (vendite1) | N/D | 
|  Nega  | Restituisce il negativo del valore |  Numerico  | Nega (c1) | ‐c1 | 
|  Exp  |  Restituisce e (numero di Eulero) elevato alla potenza del valore  |  Numerico  | Exp(vendite1) | N/D | 
|  Log  |  Restituisce il logaritmo (in base 10) del valore  |  Numerico  | Log(vendite1) | N/D | 
|  Ln  |  Restituisce il logaritmo naturale (in base e) del valore  |  Numerico  | Ln(vendite1) | N/D | 
|  Pow  |  Restituisce il valore elevato a una potenza  |  Numerico  | Pow(vendite 1, 2) | vendite 1 ^ 2 | 
|  Se  |  Restituisce un'etichetta vera o falsa in base a una condizione specificata  |  Booleano, numerico, testo  | Se(sales1>7000, 'truelabel, 'falselabel') | N/D | 
|  Or  |  Restituisce un valore booleano che indica se uno dei valori/condizioni specificati è vero o meno  |  Booleano  | Oppure(prezzopieno, sconto) | prezzopieno, \$1\$1 sconto | 
|  And  |  Restituisce un valore booleano che indica se due dei valori specificati sono veri o meno  |  Booleano  | E(vendite1, vendite2) | vendite1 && vendite2 | 
|  Not  |  Restituisce un valore booleano che è l’opposto del valore o delle condizioni specificati  |  Booleano  | Not(vendite1) | \$1vendite1 | 
|  Caso  |  Restituisce un valore booleano basato su istruzioni condizionali (restituisce c1 se cond1 è vero, restituisce c2 se cond2 è vero, altrimenti restituisce c3)  |  Booleano, numerico, testo  | Caso(cond1, c1, cond2, c2, c3) | N/D | 
|  Uguale  |  Restituisce un valore booleano che indica se due valori sono uguali  |  Booleano, numerico, testo  | N/D | c1 = c2c1 == c2 | 
|  Non uguale  |  Restituisce un valore booleano che indica se due valori sono diversi  |  Booleano, numerico, testo  | N/D | c1\$1= c2 | 
|  Less than  |  Restituisce un valore booleano che indica se c1 è minore di c2  |  Booleano, numerico, testo  | N/D | c1 < c2 | 
|  Greater than  |  Restituisce un valore booleano che indica se c1 è maggiore di c2  |  Booleano, numerico, testo  | N/D | c1 > c2 | 
|  Minore di o uguale a  |  Restituisce un valore booleano che indica se c1 è minore di o uguale a c2  |  Booleano, numerico, testo  | N/D | c1 < c2 | 
|  Maggiore di o uguale a  |  Restituisce un valore booleano che indica se c1 è maggiore di o uguale a c2  |  Booleano, numerico, testo  | N/D | c1 >= c2 | 

SageMaker Canvas supporta anche operatori aggregati, che possono eseguire operazioni come il calcolo della somma di tutti i valori o la ricerca del valore minimo in una colonna. È possibile utilizzare operatori di aggregazione in combinazione con operatori standard nelle funzioni. Ad esempio, per calcolare la differenza tra i valori e la media, è possibile utilizzare la funzione. `Abs(height – avg(height))` SageMaker Canvas supporta i seguenti operatori di aggregazione.


| Operatore di aggregazione | Description | Formato | Esempio | 
| --- | --- | --- | --- | 
|  sum  |  Restituisce la somma di tutti i valori in una colonna  | sum | sum(c1) | 
|  minimum  |  Restituisce il valore minimo di una colonna  | min | min(c2) | 
|  maximum  |  Restituisce il valore massimo di una colonna  | max | max(c3) | 
|  average  |  Restituisce il valore medio di una colonna  | avg | avg(c4) | 
|  std  | Restituisce la deviazione standard di esempio di una colonna | std | std(c1) | 
|  stddev  | Restituisce la deviazione standard dei valori in una colonna | stddev | stddev(c1) | 
|  variance  | Restituisce lo scostamento imparziale dei valori di una colonna | variance | variance(c1) | 
|  approx\$1count\$1distinct  | Restituisce il numero approssimativo di elementi distinti in una colonna | approx\$1count\$1distinct | approx\$1count\$1distinct(c1) | 
|  count  | Restituisce il numero di elementi in una colonna | count | count(c1) | 
|  first  |  Restituisce il valore medio di una colonna  | first | first(c1) | 
|  last  |  Restituisce l'ultimo valore di una colonna  | last | last(c1) | 
|  stddev\$1pop  | Restituisce la deviazione standard della popolazione di una colonna | stddev\$1pop | stddev\$1pop(c1) | 
|  variance\$1pop  |  Restituisce lo scostamento della popolazione dei valori in una colonna  | variance\$1pop | variance\$1pop(c1) | 

## Gestisci righe
<a name="canvas-prepare-data-manage"></a>

Con la trasformazione Gestisci righe, è possibile ordinare, mischiare in modo casuale e rimuovere righe di dati dal set di dati.

### Ordinare le righe
<a name="canvas-prepare-data-manage-sort"></a>

Per ordinare le righe di un set di dati in base a una determinata colonna, effettua le seguenti operazioni.

1. Nella scheda **Build** dell'applicazione SageMaker Canvas, scegli **Gestisci righe**, quindi scegli **Ordina righe**.

1. Per **Ordina colonna**, scegli la colonna che desideri ordinare.

1. Per **Criterio di ordinamento**, seleziona **Crescente** o **Decrescente**.

1. Scegli **Aggiungi** per aggiungere la trasformazione alla **Ricetta del modello**.

### Mischiare le righe
<a name="canvas-prepare-data-manage-shuffle"></a>

Per mischiare casualmente le righe in un set di dati, effettua le seguenti operazioni.

1. Nella scheda **Build** dell'applicazione SageMaker Canvas, scegli **Gestisci righe**, quindi scegli **Shuffle** rows.

1. Scegli **Aggiungi** per aggiungere la trasformazione alla **Ricetta del modello**.

### Eliminare le righe duplicate
<a name="canvas-prepare-data-manage-drop-duplicate"></a>

Per rimuovere le righe duplicate in un set di dati, effettua le seguenti operazioni.

1. Nella scheda **Build** dell'applicazione SageMaker Canvas, scegli **Gestisci righe**, quindi scegli **Elimina righe duplicate**.

1. Scegli **Aggiungi** per aggiungere la trasformazione alla **Ricetta del modello**.

### Rimuovere le righe per valori mancanti
<a name="canvas-prepare-data-remove-missing"></a>

I valori mancanti sono un'occorrenza comune nei set di dati di machine learning e possono avere un impatto sulla precisione del modello. Utilizza questa trasformazione se desideri eliminare righe con valori nulli o vuoti in determinate colonne.

Per rimuovere le righe che contengono valori mancanti in una colonna specificata, effettua le seguenti operazioni.

1. Nella scheda **Build** dell'applicazione SageMaker Canvas, scegli **Gestisci righe**.

1. Scegli **Elimina righe per valori mancanti**.

1. Scegli **Aggiungi** per aggiungere la trasformazione alla **Ricetta del modello**.

SageMaker Canvas rilascia le righe che contengono valori mancanti nella **colonna** selezionata. Dopo aver rimosso le righe dal set di dati, SageMaker Canvas aggiunge la trasformazione nella sezione **Model recipe**. Se rimuovi la trasformazione dalla sezione **Ricetta del modello**, le righe ritornano al tuo set di dati.

![\[Schermata dell'operazione di rimozione delle righe mediante valori mancanti nell'applicazione SageMaker Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-remove-missing.png)


### Rimuovere le righe per valori anomali
<a name="canvas-prepare-data-remove-outliers"></a>

I valori anomali, ovvero valori rari nella distribuzione e nell'intervallo dei dati, possono influire negativamente sulla precisione del modello e portare a tempi di creazione più lunghi. Con SageMaker Canvas, puoi rilevare e rimuovere le righe che contengono valori anomali nelle colonne numeriche. È possibile scegliere di definire valori anomali con deviazioni standard o un intervallo personalizzato.

Per rimuovere valori anomali dai dati, effettua le seguenti operazioni.

1. **Nella scheda **Build** dell'applicazione SageMaker Canvas, scegli Gestisci righe.**

1. Scegli **Elimina righe per valori anomali**.

1. Scegli la **Colonna** in cui desideri verificare la presenza di valori anomali.

1. Imposta l’**Operatore** su **Deviazione standard**, **Intervallo numerico personalizzato** o **Intervallo quantile personalizzato**.

1. Se scegli **Deviazione standard**, specifica un valore **Deviazioni standard** compreso tra 1 e 3. Se scegli **Intervallo numerico personalizzato** o **Intervallo quantile personalizzato**, specifica i valori **minimo** e **massimo** (numeri per gli intervalli numerici o percentili compresi tra 0 e 100% per gli intervalli quantili).

1. Scegli **Aggiungi** per aggiungere la trasformazione alla **Ricetta del modello**.

L'opzione **Deviazione standard** rileva e rimuove i valori anomali nelle colonne numeriche utilizzando la media e la deviazione standard. Si specifica il numero di deviazioni standard. Un valore deve variare dalla media per essere considerato un valore anomalo. Ad esempio, se si specifica `3` per **Deviazioni standard**, un valore deve scendere di più di 3 deviazioni standard dalla media per essere considerato un valore anomalo.

Le opzioni **Intervallo numerico personalizzato** e **Intervallo quantile personalizzato** rilevano e rimuovono i valori anomali nelle colonne numeriche utilizzando valori minimi e massimi. Utilizzare questo metodo se si conoscono i valori di soglia che delimitano i valori anomali. Se si sceglie un intervallo numerico, i valori **Min** e **Max** devono essere i valori numerici minimo e massimo che si desidera consentire nei dati. Se si sceglie un intervallo quantile, i valori **Min** e **Max** devono essere il minimo e il massimo dell'intervallo di percentili (0-100) che si desidera consentire.

Dopo aver rimosso le righe dal set di dati, SageMaker Canvas aggiunge la trasformazione nella sezione **Model recipe**. Se rimuovi la trasformazione dalla sezione **Ricetta del modello**, le righe ritornano al tuo set di dati.

![\[Schermata dell'operazione di rimozione delle righe tramite outliers nell'applicazione Canvas. SageMaker\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-remove-outlier.png)


### Rimuovere le righe iper valori personalizzati
<a name="canvas-prepare-data-remove-custom"></a>

È possibile filtrare le righe con valori che soddisfano condizioni personalizzate. Ad esempio, potresti voler escludere tutte le righe con un valore di prezzo superiore a 100 durante la creazione del modello. Con questa trasformazione, è possibile creare una regola che rimuove tutte le righe che superano la soglia impostata.

Per utilizzare la trasformazione di rimozione personalizzata, effettua le seguenti operazioni.

1. **Nella scheda **Build** dell'applicazione SageMaker Canvas, scegli Gestisci righe.**

1. Scegli **Elimina righe per formula**.

1. Scegli la **Colonna** che desideri verificare.

1. Seleziona il tipo di **Operazione** che desideri utilizzare, quindi specifica i valori per la condizione selezionata.

1. Scegli **Aggiungi** per aggiungere la trasformazione alla **Ricetta del modello**.

Per l'**Operazione**, è possibile scegliere una delle seguenti opzioni. Nota che le operazioni disponibili dipendono dal tipo di dati della colonna scelta. Ad esempio, non è possibile creare un'operazione `is greater than` per una colonna contenente valori di testo.


| Operation | Tipo di dati supportati | Tipo di caratteristica supportata | Funzione | 
| --- | --- | --- | --- | 
|  È uguale a  |  Numerico, testo  |  Binario, categorico  |  Rimuove le righe in cui il valore in **Colonna** è uguale ai valori specificati.  | 
|  Non è uguale a  |  Numerico, testo  |  Binario, categorico  |  Rimuove le righe in cui il valore in **Colonna** non è uguale ai valori specificati.  | 
|  È minore di  |  Numerico  | N/D |  Rimuove le righe in cui il valore in **Colonna** è minore rispetto al valore specificato.  | 
|  È minore di o uguale a  |  Numerico  | N/D |  Rimuove le righe in cui il valore in **Colonna** è minore di o uguale ai valori specificati.  | 
|  È maggiore di  |  Numerico  | N/D |  Rimuove le righe in cui il valore in **Colonna** è maggiore rispetto al valore specificato.  | 
|  È maggiore di o uguale a  | Numerico | N/D |  Rimuove le righe in cui il valore in **Colonna** è maggiore di o uguale al valore specificato.  | 
|  È compreso tra  | Numerico | N/D |  Rimuove le righe in cui il valore in **Colonna** è compreso tra o uguale ai valori specificati.  | 
|  Contiene  |  Testo  | Categoriale |  Rimuove le righe in cui il valore in **Colonna** contiene i valori specificati dall'utente.  | 
|  Inizia con  |  Testo  | Categoriale |  Filtra le righe in cui il valore in **Colonna** inizia con un valore specificato dall'utente.  | 
|  Ends with  |  Testo  | Categoriale |  Rimuove le righe in cui il valore in **Colonna** termina con un valore specificato dall'utente.  | 

Dopo aver rimosso le righe dal set di dati, SageMaker Canvas aggiunge la trasformazione nella sezione **Model recipe**. Se rimuovi la trasformazione dalla sezione **Ricetta del modello**, le righe ritornano al tuo set di dati.

![\[Schermata dell'operazione di rimozione delle righe mediante valori personalizzati nell'applicazione SageMaker Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-remove-custom.png)


## Rinominare le colonne
<a name="canvas-prepare-data-rename"></a>

Con la trasformazione di ridenominazione delle colonne, è possibile rinominare le colonne nei tuoi dati. Quando si rinomina una colonna, SageMaker Canvas modifica il nome della colonna nell'input del modello.

È possibile rinominare una colonna nel set di dati facendo doppio clic sul nome della colonna nella scheda **Build** dell'applicazione SageMaker Canvas e inserendo un nuovo nome. Premendo il tasto **Invio** si invia la modifica e facendo clic in un punto qualsiasi al di fuori dell'input si annulla la modifica. Inoltre, puoi rinominare una colonna facendo clic sull'icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), situata alla fine della riga nella visualizzazione elenco o alla fine della cella di intestazione nella visualizzazione a griglia e scegliendo **Rinomina**.

Il nome della colonna non può contenere più di 32 caratteri o avere caratteri di sottolineatura doppi (\$1\$1) e non puoi rinominare una colonna con lo stesso nome di un'altra colonna. Inoltre, non puoi rinominare una colonna eliminata.

Lo screenshot seguente mostra come rinominare una colonna facendo doppio clic sul nome della colonna.

![\[Schermata della ridenominazione di una colonna con il metodo del doppio clic nell'applicazione Canvas. SageMaker\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-rename-column.png)


**Quando rinomini una colonna, SageMaker Canvas aggiunge la trasformazione nella sezione Model recipe.** Se si rimuove la trasformazione dalla sezione **Ricetta del modello**, la colonna torna al suo nome originale.

## Gestione delle colonne
<a name="canvas-prepare-data-manage-cols"></a>

Con le seguenti trasformazioni, puoi modificare il tipo di dati delle colonne e sostituire i valori o gli outlier mancanti per colonne specifiche. SageMaker Canvas utilizza i tipi o i valori di dati aggiornati durante la creazione del modello, ma non modifica il set di dati originale. Nota che se hai eliminato una colonna dal tuo set di dati utilizzando la [Eliminazione di colonne](#canvas-prepare-data-drop) trasformazione, non puoi sostituire i valori in quella colonna.

### Sostituzione dei valori mancanti
<a name="canvas-prepare-data-replace-missing"></a>

I valori mancanti sono un'occorrenza comune nei set di dati di machine learning e possono avere un impatto sulla precisione del modello. È possibile scegliere di eliminare le righe con valori mancanti, ma il tuo modello è più preciso se scegli invece di sostituire i valori mancanti. Con questa trasformazione, è possibile sostituire i valori mancanti nelle colonne numeriche con la media o la mediana dei dati in una colonna oppure è possibile anche specificare un valore personalizzato con cui sostituire i valori mancanti. Per le colonne non numeriche, è possibile sostituire i valori mancanti con la modalità (valore più comune) della colonna o con un valore personalizzato.

Utilizza questa trasformazione se desideri eliminare righe con valori nulli o vuoti in determinate colonne. Per sostituire i valori mancanti in una colonna specificata, effettua le seguenti operazioni. 

1. Nella scheda **Build** dell'applicazione SageMaker Canvas, scegli **Gestisci colonne**.

1. Scegli **Sostituisci i valori mancanti**.

1. Scegli la **Colonna** in cui desideri sostituire i valori mancanti.

1. Imposta **Modalità** su **Manuale** per sostituire i valori mancanti con valori specificati dall'utente. Con l'impostazione **Automatico (predefinita)**, SageMaker Canvas sostituisce i valori mancanti con valori imputati che meglio si adattano ai dati. Questo metodo di attribuzione viene eseguito automaticamente per ogni creazione del modello, a meno che non si specifichi la modalità **Manuale**.

1. Imposta il valore **Sostituisci con**:
   + Se la colonna è numerica, seleziona **Media**, **Mediana** o **Personalizzata**. **Media** sostituisce i valori mancanti con la media della colonna e **Mediana** sostituisce i valori mancanti con la mediana della colonna. Se scegli **Personalizzato**, devi specificare un valore personalizzato che desideri utilizzare per sostituire i valori mancanti.
   + Se la colonna è non numerica, seleziona **Modalità** o **Personalizzato**. La **Modalità** sostituisce i valori mancanti con la modalità, o il valore più comune, per la colonna. Per **Personalizzato**, devi specificare un valore personalizzato che desideri utilizzare per sostituire i valori mancanti.

1. Scegli **Aggiungi** per aggiungere la trasformazione alla **Ricetta del modello**.

Dopo aver sostituito i valori mancanti nel set di dati, SageMaker Canvas aggiunge la trasformazione nella sezione **Model** recipe. Se rimuovi la trasformazione dalla sezione **Ricetta del modello**, i valori mancanti ritornano al tuo set di dati.

![\[Schermata dell'operazione di sostituzione dei valori mancanti nell'applicazione SageMaker Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-replace-missing.png)


### Sostituzione dei valori anomali
<a name="canvas-prepare-data-replace-outliers"></a>

I valori anomali, o valori rari nella distribuzione e nell'intervallo dei dati, possono influire negativamente sulla precisione del modello e portare a tempi di costruzione più lunghi. SageMaker Canvas consente di rilevare i valori anomali nelle colonne numeriche e di sostituirli con valori che rientrano in un intervallo accettato nei dati. È possibile scegliere di definire valori anomali con deviazioni standard o un intervallo personalizzato e sostituire i valori anomali con i valori minimi e massimi nell'intervallo accettato.

Per sostituire i valori anomali nei dati, effettua le seguenti operazioni.

1. **Nella scheda **Build** dell'applicazione SageMaker Canvas, scegli Gestisci colonne.**

1. Scegli **Sostituisci valori anomali**.

1. Scegli la **Colonna** in cui desideri sostituire i valori mancanti.

1. Per **Definisci valori anomali**, scegli **Deviazione standard**, **Intervallo numerico personalizzato** o **Intervallo quantile personalizzato**.

1. Se scegli **Deviazione standard**, specifica un valore **Deviazioni standard** compreso tra 1 e 3. Se scegli **Intervallo numerico personalizzato** o **Intervallo quantile personalizzato**, specifica i valori **minimo** e **massimo** (numeri per gli intervalli numerici o percentili compresi tra 0 e 100% per gli intervalli quantili).

1. Per **Sostituisci con**, seleziona **Intervallo min/max**.

1. Scegli **Aggiungi** per aggiungere la trasformazione alla **Ricetta del modello**.

L'opzione **Deviazione standard** rileva i valori anomali nelle colonne numeriche utilizzando la media e la deviazione standard. Si specifica il numero di deviazioni standard. Un valore deve variare dalla media per essere considerato un valore anomalo. Ad esempio, se specificate 3 per **le deviazioni standard**, un valore deve essere inferiore a più di 3 deviazioni standard dalla media per essere considerato un valore anomalo. SageMaker Canvas sostituisce i valori anomali con il valore minimo o il valore massimo nell'intervallo accettato. Ad esempio, se configuri le deviazioni standard per includere solo valori compresi tra 200 e 300, SageMaker Canvas modifica un valore da 198 a 200 (il minimo).

Le opzioni **Intervallo numerico personalizzato** e **Intervallo quantile personalizzato** rilevano i valori anomali nelle colonne numeriche utilizzando valori minimi e massimi. Utilizzare questo metodo se si conoscono i valori di soglia che delimitano i valori anomali. Se scegli un intervallo numerico, i valori **Min** e **Max** devono essere i valori numerici minimo e massimo che desideri consentire. SageMaker Canvas sostituisce tutti i valori che non rientrano nei valori minimo e massimo con i valori minimo e massimo. Ad esempio, se l'intervallo consente solo valori compresi tra 1 e 100, SageMaker Canvas modifica un valore da 102 a 100 (il massimo). Se si sceglie un intervallo di quantili, i valori **Min** e **Max** devono essere il minimo e il massimo dell'intervallo di percentili (0—100) che si desidera consentire.

Dopo aver sostituito i valori nel set di dati, SageMaker Canvas aggiunge la trasformazione nella sezione **Model** recipe. Se rimuovi la trasformazione dalla sezione **Ricetta del modello**, i valori originali ritornano al tuo set di dati.

![\[Schermata dell'operazione di sostituzione degli outliers nell'applicazione Canvas. SageMaker\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-replace-outlier.png)


### Modifica del tipo di dati
<a name="canvas-prepare-data-change-type"></a>

SageMaker Canvas offre la possibilità di modificare il *tipo di dati* delle colonne tra numerico, testo e datetime, visualizzando anche il tipo di *funzionalità associato a quel tipo di* dati. Un *tipo di dati* si riferisce al formato dei dati e al modo in cui vengono archiviati, mentre il *tipo di caratteristica* si riferisce alla caratteristica dei dati utilizzati negli algoritmi di machine learning, ad esempio binari o categorici. Ciò offre la flessibilità necessaria per modificare manualmente il tipo di dati nelle colonne in base alle funzionalità. La possibilità di scegliere il tipo di dati giusto garantisce l'integrità e la precisione dei dati prima di creare modelli. Questi tipi di dati vengono utilizzati per la creazione di modelli.

**Nota**  
Attualmente, la modifica del tipo di funzionalità (ad esempio, da binario a categorico) non è supportata.

Le tabelle seguenti riportano tutti i tipi di dati supportati in Canvas.


| Tipo di dati | Description | Esempio | 
| --- | --- | --- | 
| Numerico | I dati numerici rappresentano valori numerici | 1, 2, 31,1, 1,2. 1.3 | 
| Testo | I dati di testo rappresentano sequenze di caratteri, come nomi o descrizioni | A, B, C, Dmela, banana, arancia1A\$1 , 2A\$1 , 3A\$1 | 
| Datetime | I dati Datetime rappresentano date e ore in formato timestamp | 01-07-2019 01:00:00, 01-07-2019 02:00:00, 01-07-2019 03:00:00 | 

La tabella seguente riporta tutti i tipi di caratteristiche supportati in Canvas.


| Tipo Caratteristica | Description | Esempio | 
| --- | --- | --- | 
| Binario | Le caratteristiche binarie rappresentano due valori possibili | 0, 1, 0, 1, 0 (due valori distinti)vero, falso, vero (due valori distinti) | 
| Categoriale | Le caratteristiche categoriali rappresentano categorie o gruppi distinti | mela, banana, arancia, mela (tre valori distinti)A, B, C, D, E, A, D, C (cinque valori distinti) | 

Per modificare il tipo di dati di una colonna in un set di dati, procedi come segue.

1. Nella scheda **Crea** dell'applicazione SageMaker Canvas, vai alla vista a **colonne o alla vista** **Griglia** e seleziona il menu a discesa **Tipo di dati** per la colonna specifica.

1. Nel menu a discesa **Tipo di dati**, scegli il tipo di dati in cui eseguire la conversione. Lo screenshot seguente mostra il menu a discesa.  
![\[Il menu a discesa per la conversione dei tipi di dati per una colonna, mostrato nella scheda Crea.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-prepare-data-change.png)

1. In **Colonna**, scegli o verifica la colonna per cui desideri modificare il tipo di dati.

1. In **Nuovo tipo di dati**, scegli o verifica il nuovo tipo di dati in cui desideri eseguire la conversione.

1. Se il **Nuovo tipo di dati** è `Datetime` o`Numeric`, scegli una delle seguenti opzioni in **Gestisci valori non validi**:

   1. **Sostituisci con un valore vuoto**: i valori non validi vengono sostituiti con un valore vuoto

   1. **Elimina righe**: le righe con un valore non valido vengono rimosse dal set di dati

   1. **Sostituisci con un valore personalizzato**: i valori non validi vengono sostituiti con il **valore personalizzato** specificato.

1. Scegli **Aggiungi** per aggiungere la trasformazione alla **ricetta del modello.**

Il tipo di dati della tua colonna dovrebbe ora essere aggiornato.

## Preparazione dei dati di serie temporali
<a name="canvas-prepare-data-timeseries"></a>

Utilizza le seguenti funzionalità per preparare i dati di serie temporali per creare modelli di previsione di serie temporali.

### Ricampiona i dati di serie temporali
<a name="canvas-prepare-data-resample"></a>

Ricampionando i dati di serie temporali, puoi stabilire intervalli regolari per le osservazioni nel set di dati di serie temporali. Ciò è particolarmente utile quando lavori con dati di serie temporali contenenti osservazioni con spaziatura irregolare. Ad esempio, puoi utilizzare il ricampionamento per trasformare un set di dati con osservazioni registrate a intervalli di un'ora, due ore e tre ore in un intervallo regolare di un'ora tra le osservazioni. Gli algoritmi di previsione richiedono che le osservazioni vengano eseguite a intervalli regolari.

Per ricampionare i dati di serie temporali, procedi come segue.

1. Nella scheda **Build** dell'applicazione SageMaker Canvas, scegli **Serie temporali**.

1. Scegli **Ricampiona**.

1. Nella **Colonna di timestamp**, scegli la colonna a cui vuoi applicare la trasformazione. Puoi selezionare solo colonne di tipo **Datetime**.

1. Nella sezione **Impostazione di frequenza**, scegli una **Frequenza** e un **Tasso**. La **frequenza** è l'unità di frequenza e il **tasso** è l'intervallo dell'unità di frequenza da applicare alla colonna. Ad esempio, scegliendo `Calendar Day` come **Valore di frequenza** e `1` come **Tasso** si imposta l'intervallo in modo che aumenti ogni 1 giorno di calendario, ad esempio `2023-03-26 00:00:00`, `2023-03-27 00:00:00`, `2023-03-28 00:00:00`. Consulta la tabella riportata dopo questa procedura per un elenco completo dei **valori di frequenza**. 

1. Scegli **Aggiungi** per aggiungere la trasformazione alla **ricetta del modello**.

La tabella seguente elenca tutti i tipi di **frequenza** che puoi selezionare durante il ricampionamento dei dati di serie temporali.


| Frequenza | Description | Valori di esempio (supponendo che il tasso sia 1) | 
| --- | --- | --- | 
|  Giorno lavorativo  |  Ricampiona le osservazioni nella colonna datetime su cinque giorni lavorativi della settimana (lunedì, martedì, mercoledì, giovedì, venerdì)  |  2023-03-24 00:00:00 2023-03-27 00:00:00 2023-03-28 00:00:00 2023-03-29 00:00:00 2023-03-30 00:00:00 2023-03-31 00:00:00 2023-04-03 00:00:00  | 
|  Giorno del calendario  |  Ricampiona le osservazioni nella colonna datetime su tutti e sette i giorni della settimana (lunedì, martedì, mercoledì, giovedì, venerdì, sabato, domenica)  |  2023-03-26 00:00:00 2023-03-27 00:00:00 2023-03-28 00:00:00 2023-03-29 00:00:00 2023-03-30 00:00:00 2023-03-31 00:00:00 2023-04-01 00:00:00  | 
|  Settimana  |  Ricampiona le osservazioni nella colonna datetime sul primo giorno di ogni settimana  |  -13 00:00:00 2023-03-20 00:00:00 2023-03-27 00:00:00 2023-04-03 00:00:00  | 
|  Mese  |  Ricampiona le osservazioni nella colonna datetime sul primo giorno di ogni mese  |  -01 00:00:00 2023-04-01 00:00:00 2023-05-01 00:00:00 2023-06-01 00:00:00  | 
|  Trimestre  |  Ricampiona le osservazioni nella colonna datetime sull’ultimo giorno di ogni trimestre  |  2023-03-31 00:00:00 2023-06-30 00:00:00 2023-09-30 00:00:00 2023-12-31 00:00:00  | 
|  Anno  |  Ricampiona le osservazioni nella colonna datetime sull’ultimo giorno di ogni anno  |  2022-12-31 0:00:00 2023-12-31 00:00:00 2024-12-31 00:00:00  | 
|  Ora  |  Ricampiona le osservazioni nella colonna datetime su ogni ora di ogni giorno  |  2023-03-24 00:00:00 2023-03-24 01:00:00 2023-03-24 02:00:00 2023-03-24 03:00:00  | 
|  Minuto  |  Ricampiona le osservazioni nella colonna datetime su ogni minuto di ogni ora  |  2023-03-24 00:00:00 2023-03-24 00:01:00 2023-03-24 00:02:00 2023-03-24 00:03:00  | 
|  Secondo  |  Ricampiona le osservazioni nella colonna datetime su ogni secondo di ogni minuto  |  2023-03-24 00:00:00 2023-03-24 00:00:01 2023-03-24 00:00:02 2023-03-24 00:00:03  | 

Quando applichi la trasformazione di ricampionamento, puoi utilizzare le opzioni **Avanzate** per specificare in che modo vengono modificati i valori risultanti delle altre colonne (diverse dalla colonna di timestamp) nel tuo set di dati. Puoi farlo specificando la metodologia di ricampionamento, che può essere un sottocampionamento o un sovracampionamento, sia per colonne numeriche che non numeriche.

Il *sottocampionamento* aumenta l'intervallo tra le osservazioni nel set di dati. Ad esempio, se si esegue il sottocampionamento di osservazioni effettuate ogni ora o ogni due ore, ogni osservazione nel set di dati viene eseguita ogni due ore. I valori delle altre colonne delle osservazioni orarie vengono aggregati in un unico valore, utilizzando un metodo combinato. La tabella seguente mostra un esempio di sottocampionamento dei dati di serie temporali utilizzando la media come metodo di combinazione. I dati vengono sottoposti a sottocampionamento da ogni due ore a ogni ora.

La tabella seguente mostra le letture della temperatura eseguita ogni ora nell'arco di un giorno prima del sottocampionamento.


| Timestamp | Temperatura (gradi Celsius) | 
| --- | --- | 
| 12:00 | 30 | 
| 1:00 | 32 | 
| 2:00 | 35 | 
| 3:00 | 32 | 
| 4:00 | 30 | 

La tabella seguente mostra le letture della temperatura eseguita ogni due ore dopo il sottocampionamento.


| Timestamp | Temperatura (gradi Celsius) | 
| --- | --- | 
| 12:00 | 30 | 
| 2:00 | 33,5 | 
| 2:00 | 35 | 
| 4:00 | 32,5 | 

Per eseguire il sottocampionamento dei dati di serie temporali, procedi come segue:

1. Espandi la sezione **Avanzate ** sotto la trasformazione **Ricampiona**.

1. Scegli **Combinazione non numerica** per specificare il metodo di combinazione per le colonne non numeriche. Consulta la tabella seguente per l'elenco completo dei metodi di combinazione.

1. Scegli **Combinazione numerica** per specificare il metodo di combinazione per le colonne numeriche. Consulta la tabella seguente per l'elenco completo dei metodi di combinazione.

Se non specifichi i metodi di combinazione, i valori predefiniti sono `Most Common` per la **combinazione non numerica** e `Mean` per la **combinazione numerica**. Nella tabella seguente sono elencati i metodi per la combinazione numerica e non numerica.


| Metodologia di sottocampionamento | Metodo di combinazione | Description | 
| --- | --- | --- | 
| Combinazione non numerica | Più comune | Aggrega i valori nella colonna non numerica in base al valore più comunemente ricorrente | 
| Combinazione non numerica | Ultimo | Aggrega i valori nella colonna non numerica in base all’ultimo valore nella colonna | 
| Combinazione non numerica | Primo | Aggrega i valori nella colonna non numerica in base al primo valore nella colonna | 
| Combinazione numerica | Media | Aggrega i valori nella colonna numerica facendo una media di tutti i valori nella colonna | 
| Combinazione numerica | Mediana | Aggrega i valori nella colonna numerica facendo una mediana di tutti i valori nella colonna | 
| Combinazione numerica | Min | Aggrega i valori nella colonna numerica prendendo il valore minimo tra tutti i valori nella colonna | 
| Combinazione numerica | Max | Aggrega i valori nella colonna numerica prendendo il valore massimo tra tutti i valori nella colonna | 
| Combinazione numerica | Somma | Aggrega i valori nella colonna numerica sommando tutti i valori alla colonna | 
| Combinazione numerica | Quantile | Aggrega i valori nella colonna numerica prendendo il quantile di tutti i valori nella colonna | 

Il *sovracampionamento* riduce l'intervallo tra le osservazioni nel set di dati. Ad esempio, se esegui il sovracampionamento delle osservazioni effettuate ogni due ore in osservazioni orarie, i valori delle altre colonne delle osservazioni orarie vengono interpolate da quelle effettuate ogni due ore.

Per eseguire il sovracampionamento di dati di serie temporali, procedi come segue:

1. Espandi la sezione **Avanzate** sotto la trasformazione **Ricampiona**.

1. Scegli **Stima non numerica** per specificare il metodo di stima per le colonne non numeriche. Consulta la tabella riportata dopo questa procedura per un elenco completo dei metodi.

1. Scegli **Stima numerica** per specificare il metodo di stima per le colonne numeriche. Consulta la tabella seguente per un elenco completo dei metodi.

1. (Facoltativo) Scegliete **ID** Column per specificare la IDs colonna che contiene le osservazioni delle serie temporali. Specifica questa opzione se il set di dati ha due serie temporali. Se hai una colonna che rappresenta una sola serie temporale, non specificare alcun valore per questo campo. Ad esempio, puoi avere un set di dati con le colonne `id` e `purchase`. La colonna `id` ha i seguenti valori: `[1, 2, 2, 1]`. La colonna `purchase` ha i seguenti valori `[$2, $3, $4, $1]`. Pertanto, il set di dati ha due serie temporali. Una serie temporale è `1: [$2, $1]` e l'altra serie temporale è `2: [$3, $4]`.

Se non specifichi i metodi di stima, i valori predefiniti sono `Forward Fill` per la **stima non numerica** e `Linear` per la **stima numerica**. Nella tabella seguente sono elencati i metodi di stima.


| Metodologia di sovracampionamento | Metodo di stima | Description | 
| --- | --- | --- | 
| Stima non numerica | Riempimento in avanti | Interpola i valori nella colonna non numerica prendendo i valori consecutivi dopo tutti i valori nella colonna | 
| Stima non numerica | Riempimento all'indietro | Interpola i valori nella colonna non numerica prendendo i valori consecutivi prima di tutti i valori nella colonna | 
| Stima non numerica | Ancora mancante | Interpola i valori nella colonna non numerica mostrando valori vuoti | 
| Stima numerica | Lineare, tempo, indice, zero, S-lineare, più vicina, quadratica, cubica, baricentrica, polinomiale, di Krogh, polinomiale a tratti, spline, polinomiale interpolante cubica a tratti di Hermite (P-chip), Akima, spline cubica, da derivate | Interpola i valori nella colonna numerica utilizzando l'interpolatore specificato. [Per informazioni sui metodi di interpolazione, vedete pandas. DataFrame.interpolate](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.interpolate.html) nella documentazione di pandas. | 

Il seguente screenshot mostra le impostazioni **avanzate** con i campi per il sottocampionamento e il sovracampionamento già compilati.

![\[L’applicazione Canvas, con il pannello laterale per il ricampionamento delle serie temporali che mostra le opzioni avanzate.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-prepare-data-resampling.png)


### Uso dell'estrazione datetime
<a name="canvas-prepare-data-datetime"></a>

Con la trasformazione dell’estrazione datetime, puoi estrarre valori da una colonna datetime in una colonna separata. Ad esempio, se hai una colonna contenente le date degli acquisti, puoi estrarre il valore del mese in una colonna separata e utilizzare la nuova colonna per creare il tuo modello. Puoi anche estrarre più valori in colonne separate con un'unica trasformazione.

La colonna datetime deve utilizzare un formato timestamp supportato. Per un elenco dei formati supportati da Canvas, consulta. SageMaker [Previsioni delle serie temporali in Amazon Canvas SageMaker](canvas-time-series.md) Se il set di dati non utilizza uno dei formati supportati, aggiorna il set di dati in modo da utilizzare un formato di timestamp supportato e reimportalo in SageMaker Amazon Canvas prima di creare il modello.

Per eseguire un'estrazione datetime, procedi come segue.

1. **Nella scheda **Build** dell'applicazione SageMaker Canvas, nella barra delle trasformazioni, scegli Visualizza tutto.**

1. Scegli **Funzionalità di estrazione**.

1. Scegli la **Colonna di timestamp** da cui desideri estrarre i valori.

1. In **Valori**, seleziona uno o più valori da estrarre dalla colonna. I valori che puoi estrarre da una colonna di timestamp sono **Anno**, **Mese**, **Giorno**, **Ora**, **Settimana dell'anno**, **Giorno dell'anno** e **Trimestre**.

1. (Facoltativo) Scegli **Anteprima** per visualizzare in anteprima i risultati della trasformazione.

1. Scegli **Aggiungi** per aggiungere la trasformazione alla **ricetta del modello**.

SageMaker Canvas crea una nuova colonna nel set di dati per ciascuno dei valori estratti. Ad eccezione dei valori **Year**, SageMaker Canvas utilizza una codifica basata su 0 per i valori estratti. Ad esempio, se estrai il valore **Mese**, gennaio viene estratto come 0 e febbraio viene estratto come 1.

![\[Schermata della casella di estrazione della data e dell'ora nell'applicazione Canvas. SageMaker\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-datetime-extract.png)


Puoi visualizzare la trasformazione elencata nella sezione **Ricetta del modello**. Se rimuovi la trasformazione dalla sezione **Ricetta del modello**, le nuove colonne vengono rimosse dal set di dati.

# Valutazione del modello
<a name="canvas-evaluate-model"></a>

Dopo aver creato il modello, puoi valutare le prestazioni del modello sui tuoi dati, prima di utilizzarlo per generare previsioni. Puoi utilizzare informazioni come la precisione del modello quando esegui la previsione di etichette e parametri avanzati, per determinare se il modello è in grado di effettuare previsioni sufficientemente precise per i tuoi dati.

La sezione [Valutazione delle prestazioni del modello](canvas-scoring.md) descrive come visualizzare e interpretare le informazioni nella pagina **Analizza** del modello. La sezione [Uso dei parametri avanzati nelle analisi](canvas-advanced-metrics.md) contiene informazioni più dettagliate sulle **metriche avanzate** utilizzate per quantificare l’accuratezza del modello.

Puoi anche visualizzare informazioni più avanzate per specifici *modelli candidati*, ovvero tutte le iterazioni del modello eseguite da Canvas durante la creazione del modello. In base alle metriche avanzate per un determinato modello candidato, puoi selezionare un candidato predefinito diverso o un’altra versione da utilizzare per le previsioni e l’implementazione. Per ogni modello candidato, puoi visualizzare le informazioni sulle **metriche avanzate** per un supporto nella scelta del modello candidato da selezionare come predefinito. Puoi visualizzare queste informazioni selezionando il modello candidato dalla **Classifica dei modelli**. Per ulteriori informazioni, consulta [Visualizzazione dei modelli candidati nella classifica dei modelli](canvas-evaluate-model-candidates.md).

Canvas offre anche la possibilità di scaricare un notebook Jupyter per visualizzare ed eseguire il codice utilizzato per creare il modello. Questa opzione è utile per apportare modifiche al codice o saperne di più su come è stato costruito il tuo modello. Per ulteriori informazioni, consulta [Download di un notebook del modello](canvas-notebook.md).

# Valutazione delle prestazioni del modello
<a name="canvas-scoring"></a>

Amazon SageMaker Canvas fornisce informazioni generali e di punteggio per i diversi tipi di modello. Il punteggio del modello può aiutarti a determinare quanto il tuo modello sia preciso quando esegue le previsioni. Le informazioni aggiuntive sul punteggio possono aiutarti a quantificare le differenze tra i valori effettivi e quelli previsti.

Per visualizzare l'analisi del modello, procedi come indicato di seguito:

1. Apri l'applicazione SageMaker Canvas.

1. Nel riquadro di navigazione a sinistra scegli **Modelli**.

1. Scegli il modello che hai creato.

1. Nel riquadro di navigazione in alto, scegli la scheda **Analizza**.

1. Nella scheda **Analizza**, puoi visualizzare la panoramica e le informazioni sul punteggio del tuo modello.

Le sezioni seguenti spiegano come interpretare il punteggio per ogni tipo di modello.

## Valuta i modelli di previsione categoriale
<a name="canvas-scoring-categorical"></a>

La scheda **Panoramica** mostra l'impatto della colonna per ogni colonna. **L'impatto della colonna** è un punteggio percentuale che indica il peso di una colonna nel formulare previsioni rispetto alle altre colonne. Con un impatto della colonna del 25%, Canvas valuta la previsione come 25% per quella colonna e 75% per le altre colonne.

Lo screenshot seguente mostra il punteggio di **precisione** per il modello, insieme al **parametro di ottimizzazione**, cioè il parametro che scegli di ottimizzare durante la creazione del modello. In questo caso, la **metrica di ottimizzazione** è **Accuratezza**. Puoi specificare un parametro di ottimizzazione diverso se crei una nuova versione del tuo modello.

![\[Screenshot del punteggio di precisione e del parametro di ottimizzazione nella scheda Analizza in Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/analyze-tab-2-category.png)


La scheda **Punteggio** per un modello di previsione categoriale ti offre la possibilità di visualizzare tutte le previsioni. I segmenti di linea si estendono dalla parte sinistra della pagina e indicano tutte le previsioni generate dal modello. Al centro della pagina, i segmenti di linea convergono su un segmento perpendicolare per indicare la proporzione di ogni previsione rispetto a una singola categoria. Dalla categoria “previsto”, i segmenti si estendono fino alla categoria “effettivo”. Puoi avere un'idea visiva dell'accuratezza delle previsioni seguendo ogni segmento di linea dalla categoria “previsto” alla categoria “effettivo”.

L'immagine seguente mostra un esempio della sezione **punteggio** per un modello **di previsione a più di tre categorie**.

![\[Screenshot della scheda Punteggio per un modello di previsione a più di tre categorie.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-analyze/canvas-multiclass-classification.png)


Puoi anche visualizzare la scheda **Metriche avanzate** per informazioni più dettagliate sulle prestazioni del modello, come le metriche avanzate, i grafici sulla densità degli errori o le matrici di confusione. Per ulteriori informazioni sulla scheda **Metriche avanzate**, consulta [Uso dei parametri avanzati nelle analisi](canvas-advanced-metrics.md).

## Valutazione dei modelli di previsione numerica
<a name="canvas-scoring-numeric"></a>

La scheda **Panoramica** mostra l'impatto della colonna per ogni colonna. **L'impatto della colonna** è un punteggio percentuale che indica il peso di una colonna nel formulare previsioni rispetto alle altre colonne. Con un impatto della colonna del 25%, Canvas valuta la previsione come 25% per quella colonna e 75% per le altre colonne.

Lo screenshot seguente mostra il punteggio **RMSE** per il modello nella scheda **Panoramica**, che in questo caso è il **parametro di ottimizzazione**. Il **parametro di ottimizzazione** è il parametro che scegli di ottimizzare durante la creazione del modello. Puoi specificare un parametro di ottimizzazione diverso se crei una nuova versione del tuo modello.

![\[Screenshot del parametro di ottimizzazione RMSE nella scheda Analizza in Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/analyze-tab-2-numeric.png)


La scheda **Punteggio** per la previsione numerica mostra una riga per indicare il valore previsto del modello in relazione ai dati utilizzati per generare previsioni. I valori della previsione numerica sono spesso \$1/- il valore RMSE (radice dell’errore quadratico medio). Il valore previsto dal modello rientra spesso nell'intervallo dell'RMSE. La larghezza della banda viola attorno alla riga indica l'intervallo RMSE. I valori previsti spesso rientrano nell'intervallo.

L'immagine seguente mostra la sezione **Punteggio** per la previsione numerica.

![\[Screenshot della scheda Punteggio per un modello di previsione numerica.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-analyze/canvas-analyze-regression-scoring.png)


Puoi anche visualizzare la scheda **Metriche avanzate** per informazioni più dettagliate sulle prestazioni del modello, come le metriche avanzate, i grafici sulla densità degli errori o le matrici di confusione. Per ulteriori informazioni sulla scheda **Metriche avanzate**, consulta [Uso dei parametri avanzati nelle analisi](canvas-advanced-metrics.md).

## Valutazione dei modelli di previsione di serie temporali
<a name="canvas-scoring-time-series"></a>

Nella pagina **Analizza** per i modelli di previsione di serie temporali, puoi visualizzare una panoramica dei parametri del modello. Per ulteriori informazioni puoi passare il mouse su ciascuna metrica oppure puoi consultare [Uso dei parametri avanzati nelle analisi](canvas-advanced-metrics.md).

Nella sezione **Impatto della colonna**, puoi vedere il punteggio per ogni colonna. L’**impatto della colonna** è un punteggio percentuale che indica il peso di una colonna nel formulare previsioni rispetto alle altre colonne. Con un impatto della colonna del 25%, Canvas valuta la previsione come 25% per quella colonna e 75% per le altre colonne.

Lo screenshot seguente mostra i punteggi dei parametri di serie temporali per il modello, insieme al **parametro di ottimizzazione**, cioè il parametro che scegli di ottimizzare durante la creazione del modello. In questo caso, il **parametro di ottimizzazione** è **RMSE**. Puoi specificare un parametro di ottimizzazione diverso se crei una nuova versione del tuo modello. Questi punteggi delle metriche sono tratti dai risultati di test precedenti, disponibili per il download nella scheda **Artefatti**.

![\[Screenshot del parametro di ottimizzazione RMSE nella scheda Analizza in Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/analyze-tab-2-time-series.png)


La scheda **Artefatti** fornisce l’accesso a diverse risorse chiave che puoi utilizzare per approfondire le prestazioni del tuo modello e continuare a perfezionarlo:
+ **Suddivisioni casuali di addestramento e convalida**: questa sezione include link agli artefatti generati quando il set di dati è stato suddiviso in set di addestramento e convalida, che consentono di esaminare la distribuzione dei dati e i potenziali bias.
+ **Risultati dei backtest**: questa sezione include un link ai valori previsti per il set di dati di convalida, che viene utilizzato per generare metriche di accuratezza e dati di valutazione per il modello.
+ **Metriche di accuratezza**: questa sezione elenca le metriche avanzate per valutare le prestazioni del modello, come la radice dell’errore quadratico medio (RMSE). Per ulteriori informazioni su ciascuna metrica, consulta [Parametri per le previsioni di serie temporali](canvas-metrics.md#canvas-time-series-forecast-metrics).
+ **Report di spiegabilità**: questa sezione fornisce un link per scaricare il report di spiegabilità, che offre informazioni approfondite sul processo decisionale del modello e sull’importanza relativa delle colonne di input. Questo report può aiutarti a identificare le potenziali aree di miglioramento.

Nella pagina **Analizza**, puoi anche scegliere il pulsante **Download** per scaricare direttamente i risultati dei backtest, le metriche di accuratezza e gli artefatti del report di spiegabilità sul tuo computer locale.

## Valutazione dei modelli di previsione delle immagini
<a name="canvas-scoring-image"></a>

La scheda **Panoramica** mostra le **prestazioni per etichetta**, che forniscono un punteggio di precisione generale per le immagini previste per ciascuna etichetta. Puoi scegliere un'etichetta per visualizzare dettagli più specifici, come le immagini **previste in modo corretto** e quelle **previste in modo errato** per quell'etichetta.

Puoi attivare il tasto **Mappa termica** per visualizzare una mappa termica per ogni immagine. La mappa termica mostra le aree di interesse che hanno il maggiore impatto quando il modello genera previsioni. Per ulteriori informazioni sulle mappe termiche e su come utilizzarle per migliorare il modello, scegli l'icona **Ulteriori informazioni** accanto al tasto **Mappa termica**.

La scheda **Punteggio** per modelli di previsione di immagini con etichetta singola mostra un confronto tra ciò che il modello aveva previsto come etichetta e l'etichetta effettiva. Puoi selezionare fino a 10 etichette alla volta. Puoi modificare le etichette nella visualizzazione scegliendo il menu a discesa delle etichette e selezionando o deselezionando le etichette.

Puoi anche visualizzare informazioni su etichette singole o gruppi di etichette, ad esempio le tre etichette con la precisione più alta o più bassa, selezionando il menu a discesa **Visualizza punteggi** nella sezione **Informazioni sulla precisione del modello**.

Il seguente screenshot mostra le informazioni sul **Punteggio** per un modello di previsione di immagini a etichetta singola.

![\[Confronto tra le etichette effettive e quelle previste nella pagina Punteggio per un modello di previsione di testo con più categorie.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/analyze-image-scoring.png)


## Valutazione dei modelli di previsione di testo
<a name="canvas-scoring-text"></a>

La scheda **Panoramica** mostra le **prestazioni per etichetta**, che forniscono un punteggio di precisione generale per i passaggi di testo previsti per ciascuna etichetta. Puoi scegliere un'etichetta per visualizzare dettagli più specifici, come i passaggi **previsti in modo corretto** e quelli **previsti in modo errato** per quell'etichetta.

La scheda **Punteggio** per modelli di previsione di immagini multicategoria mostra un confronto tra ciò che il modello aveva previsto come etichetta e l'etichetta effettiva.

Nella sezione **Informazioni sulla precisione del modello**, puoi visualizzare la **categoria più frequente**, cioè la categoria prevista più frequentemente dal modello e il livello di precisione di tali previsioni. Se il modello prevede correttamente l’etichetta **Positivo** il 99% delle volte, puoi essere abbastanza sicuro che il tuo modello sia in grado di prevedere il sentiment positivo nel testo.

Il seguente screenshot mostra le informazioni sul **punteggio** per un modello di previsione di testo multicategoria.

![\[Confronto tra le etichette effettive rispetto a quelle previste nella pagina Punteggio per un modello di previsione di immagini a etichetta singola.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/analyze-text-scoring.png)


# Uso dei parametri avanzati nelle analisi
<a name="canvas-advanced-metrics"></a>

La sezione seguente descrive come trovare e interpretare le metriche avanzate per il tuo modello in Amazon SageMaker Canvas.

**Nota**  
Le metriche avanzate sono attualmente disponibili solo per modelli di previsione numerici e categorici.

Per trovare la scheda **Metriche avanzate**, procedi come descritto di seguito:

1. Apri l'applicazione SageMaker Canvas.

1. Nel riquadro di navigazione a sinistra scegli **Modelli**.

1. Scegli il modello che hai creato.

1. Nel riquadro di navigazione in alto, scegli la scheda **Analizza**.

1. Nella scheda **Analizza**, scegli la scheda **Metriche avanzate**.

Nella scheda **Metriche avanzate**, puoi trovare la scheda **Prestazioni**. La pagina dovrebbe essere simile allo screenshot seguente.

![\[Screenshot della scheda Metriche avanzate per un modello di previsione categorico.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-analyze-performance.png)


Nella parte superiore, puoi vedere una panoramica dei punteggi delle metriche, inclusa la **metrica di ottimizzazione**, ovvero la metrica che hai selezionato (o che Canvas seleziona per impostazione predefinita) per l’ottimizzazione durante la creazione del modello.

Le sezioni seguenti forniscono informazioni più dettagliate per la scheda **Prestazioni** in **Metriche avanzate**.

## Performance
<a name="canvas-advanced-metrics-performance"></a>

Nella scheda **Prestazioni**, vedrai una **tabella Metriche**, insieme alle visualizzazioni create da Canvas in base al tipo di modello. Per i modelli di previsione categorici, Canvas fornisce una *matrice di confusione*, mentre per i modelli di previsione numerici, Canvas fornisce *residui* e *istogrammi di densità degli errori*.

Nella **tabella Metriche**, viene fornito un elenco completo dei punteggi del modello per ogni metrica avanzata, più completo della panoramica dei punteggi nella parte superiore della pagina. Le metriche mostrate qui dipendono dal tipo di modello. Per un riferimento che ti aiuti a comprendere e interpretare ciascuna metrica, consulta [Riferimento per le metriche](canvas-metrics.md).

Per comprendere le visualizzazioni che potrebbero apparire in base al tuo tipo di modello, vedi le opzioni seguenti:
+ **Matrice di confusione**: Canvas utilizza le matrici di confusione per mostrare più facilmente quando un modello fa previsioni corrette. In una matrice di confusione, i risultati sono disposti in modo da confrontare i valori previsti con i valori effettivi. L'esempio seguente spiega come funziona una matrice di confusione per un modello di previsione a due categorie che prevede etichette positive e negative:
  + Vero positivo: il modello ha correttamente previsto “positivo” quando l'etichetta vera era positiva.
  + Vero negativo: il modello ha correttamente previsto “negativo” quando l'etichetta vera era negativa.
  + Falso positivo: il modello ha previsto erroneamente “positivo” quando l'etichetta vera era negativa.
  + Falso negativo: il modello ha previsto erroneamente “negativo” quando l'etichetta vera era positiva.
+ **Curva di richiamo di precisione**: la curva di richiamo di precisione è una visualizzazione del punteggio di precisione del modello tracciato rispetto al punteggio di richiamo del modello. In teoria, un modello in grado di fare previsioni perfette avrebbe punteggi di precisione e di richiamo entrambi pari a 1. La curva di richiamo di precisione per un modello sufficientemente accurato è piuttosto elevata sia in termini di precisione che di richiamo.
+ **Residui**: i residui sono la differenza tra i valori effettivi e i valori previsti dal modello. Un grafico dei residui mostra i residui rispetto ai valori corrispondenti per visualizzarne la distribuzione ed eventuali modelli o valori anomali. Una distribuzione normale dei residui, intorno allo zero, indica che il modello è adatto ai dati. Tuttavia, se i residui sono notevolmente disallineati o presentano valori anomali, potrebbe trattarsi di overfitting dei dati del modello o di altri problemi che devono essere risolti.
+ **Densità degli errori**: un grafico di densità degli errori è una rappresentazione della distribuzione degli errori commessi da un modello. Mostra la densità della probabilità degli errori in ogni punto, aiutandoti a identificare le aree di overfitting del modello o soggette a errori sistematici.

# Visualizzazione dei modelli candidati nella classifica dei modelli
<a name="canvas-evaluate-model-candidates"></a>

Quando esegui una [build Standard](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html) per modelli di previsione tabulari e di serie temporali in Amazon SageMaker Canvas, l' SageMaker intelligenza artificiale addestra più modelli *candidati* (diverse iterazioni del modello) e per impostazione predefinita seleziona quello con il valore più alto per la metrica di ottimizzazione. Per i modelli tabulari, Canvas crea fino a 250 modelli candidati diversi utilizzando vari algoritmi e impostazioni di iperparametri. Per i modelli di previsione delle serie temporali, Canvas crea sette modelli diversi, uno per ciascuno degli [algoritmi di previsione supportati](canvas-advanced-settings.md#canvas-advanced-settings-time-series) più un modello ensemble che calcola la media delle previsioni degli altri modelli per cercare di ottimizzare l’accuratezza.

Il modello candidato predefinito è l’unica versione che puoi utilizzare in Canvas per azioni come la creazione di previsioni, la registrazione nel registro dei modelli o l’implementazione su un endpoint. Tuttavia, potresti voler esaminare tutti i modelli candidati e selezionare un candidato diverso come modello predefinito. Puoi visualizzare tutti i modelli candidati e ottenere maggiori dettagli su ciascun candidato nella **Classifica dei modelli** in Canvas.

Per visualizzare la **Classifica dei modelli**, procedi come descritto di seguito:

1. Apri l'applicazione Canvas. SageMaker 

1. Nel riquadro di navigazione a sinistra scegli **Modelli**.

1. Scegli il modello che hai creato.

1. Nel riquadro di navigazione in alto, scegli la scheda **Analizza**.

1. Nella scheda **Analizza**, scegli **Classifica dei modelli**.

Si apre la pagina **Classifica dei modelli**, che ha l’aspetto mostrato nello screenshot seguente per i modelli tabulari.

![\[La classifica dei modelli, che elenca tutti i modelli candidati addestrati da Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-model-leaderboard.png)


Per i modelli di previsione delle serie temporali, vengono visualizzati sette modelli, uno per ciascuno degli algoritmi di previsione delle serie temporali supportati da Canvas più un modello ensemble. Per ulteriori informazioni sugli algoritmi, consulta [Impostazioni avanzate del modello di previsione delle serie temporali](canvas-advanced-settings.md#canvas-advanced-settings-time-series).

Nello screenshot precedente, puoi vedere che il primo modello candidato elencato è contrassegnato come **modello predefinito**. Questo è il modello candidato con cui è possibile generare previsioni o eseguire l’implementazione sugli endpoint.

Per visualizzare informazioni più dettagliate sulle metriche per i modelli candidati per eseguirne il confronto, puoi scegliere l’icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) e **Visualizza dettagli modello**.

**Importante**  
 Il caricamento dei dettagli del modello per i modelli candidati non predefiniti può richiedere alcuni minuti (in genere meno di 10 minuti) e vengono applicate le tariffe di SageMaker AI Hosting. Per ulteriori informazioni, consulta [SageMaker AI Pricing](https://aws.amazon.com/sagemaker/pricing/).

Il modello candidato si apre nella scheda **Analizza** e le metriche visualizzate sono specifiche per il modello candidato selezionato. Quando hai finito di esaminare le metriche del modello candidato, puoi tornare indietro o uscire dalla visualizzazione per tornare alla **Classifica dei modelli**.

Per impostare il **modello predefinito** su un candidato diverso, puoi scegliere l’icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) e selezionare **Cambia in modello predefinito**. Per cambiare il modello predefinito in un modello addestrato utilizzando la modalità HPO, potrebbero essere necessari alcuni minuti.

**Nota**  
Se il modello è già implementato in produzione, [registrato nel registro dei modelli](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-register-model.html) o [configurato già con automazioni](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-manage-automations.html), devi eliminare l’implementazione, la registrazione del modello o le automazioni prima di modificare il modello predefinito.

# Riferimento per le metriche
<a name="canvas-metrics"></a>

Le seguenti sezioni descrivono le metriche disponibili in Amazon SageMaker Canvas per ogni tipo di modello.

## Parametri per la previsione numerica
<a name="canvas-numeric-metrics"></a>

L'elenco seguente definisce le metriche per la previsione numerica in SageMaker Canvas e fornisce informazioni su come utilizzarle.
+ InferenceLatency — Il periodo di tempo approssimativo che intercorre tra l'invio di una richiesta di previsione del modello e la sua ricezione da un endpoint in tempo reale su cui viene distribuito il modello. Questa metrica viene misurata in secondi ed è disponibile solo per i modelli creati con la modalità **Ensemble**.
+ MAE: Errore assoluto medio. In media, la previsione per la colonna di destinazione è pari a \$1/- \$1MAE\$1 rispetto al valore effettivo.

  Misura la differenza tra i valori previsti e quelli effettivi, quando viene calcolata la media di tutti i valori. MAE è utilizzato spesso nella previsione numerica per comprendere l’errore della previsione tramite modello. Se le previsioni sono lineari, MAE rappresenta la distanza media tra una riga prevista e il valore effettivo. La MAE è definita come la somma degli errori assoluti divisa per il numero di osservazioni. I valori sono compresi tra 0 e infinito, con numeri più piccoli che indicano una migliore adattabilità del modello ai dati.
+ MAPE: Errore assoluto medio percentuale. In media, la previsione per la colonna di destinazione è pari a \$1/- \$1MAPE\$1% del valore effettivo.

  MAPE è la media delle differenze assolute tra i valori effettivi e i valori previsti o stimati, divisa per i valori effettivi ed espressa in percentuale. Un valore MAPE più basso indica prestazioni migliori, perché significa che i valori previsti o stimati sono più vicini ai valori effettivi.
+ MSE: errore quadratico medio o discrepanza quadratica media tra i valori previsti e quelli effettivi.

  I valori MSE sono sempre positivi. Quanto più un modello è in grado di prevedere i valori effettivi, tanto più piccolo è il valore MSE.
+ R2: Percentuale della differenza nella colonna di destinazione che può essere spiegata dalla colonna di input.

  Quantifica in che misura un modello può spiegare la varianza di una variabile dipendente. I valori sono compresi tra uno (1) e meno uno (-1). I numeri più alti indicano una frazione più alta della variabilità spiegata. I valori vicini allo zero (0) indicano che il modello può spiegare una minima parte della variabile dipendente. I valori negativi indicano un adattamento inadeguato e che le prestazioni del modello sono superate da una funzione costante (o da una riga orizzontale).
+ RMSE: radice dell’errore quadratico medio o deviazione standard degli errori.

  Misura la radice quadrata della differenza quadratica tra i valori previsti e quelli effettivi e calcola la media di tutti i valori. Si usa per comprendere l’errore della previsione tramite modello ed è una metrica importante per rilevare la presenza di errori e valori anomali in un modello di grandi dimensioni. I valori sono compresi tra zero (0) e infinito, con numeri più piccoli che indicano una migliore adattabilità del modello ai dati. RMSE dipende dalla scala e non deve essere utilizzato per confrontare set di dati di tipi diversi.

## Metriche per la previsione categorica
<a name="canvas-categorical-metrics"></a>

Questa sezione definisce le metriche per la previsione categorica in SageMaker Canvas e fornisce informazioni su come utilizzarle.

Di seguito è riportato un elenco delle metriche disponibili per la previsione con due categorie.
+ Accuratezza: la percentuale di previsioni corrette.

  Oppure, il rapporto tra il numero di previsioni corrette e il numero totale di previsioni. La precisione misura quanto i valori delle classi previsti si avvicinano ai valori effettivi. I valori per i parametri di precisione variano tra zero (0) e uno (1). Un valore pari a 1 indica un’assoluta accuratezza, mentre 0 indica un’assoluta imprecisione.
+ AUC: un valore compreso tra 0 e 1 che indica quanto il modello sia in grado di separare le categorie nel set di dati. Un valore di 1 indica che è stato in grado di separare perfettamente le categorie.
+ BalancedAccuracy — Misura il rapporto tra previsioni accurate e tutte le previsioni.

  Questo rapporto viene calcolato dopo aver normalizzato i veri positivi (TP) e i veri negativi (TN) in base al numero totale di valori positivi (P) e negativi (N). È definito come descritto di seguito: `0.5*((TP/P)+(TN/N))`, con valori compresi tra 0 e 1. La metrica di accuratezza bilanciata offre una misurazione migliore dell’accuratezza quando il numero di positivi o negativi differisce notevolmente in un set di dati squilibrato, ad esempio quando solo l’1% delle e-mail è spam.
+ F1: una misura di accuratezza bilanciata che tiene conto dell'equilibrio della classe.

  È la media armonica dei punteggi di precisione e richiamo, definita come descritto di seguito: `F1 = 2 * (precision * recall) / (precision + recall)`. I punteggi di F1 variano tra 0 e 1. Un punteggio pari a 1 indica la migliore prestazione possibile, mentre 0 indica la peggiore.
+ InferenceLatency — Il periodo di tempo approssimativo che intercorre tra l'invio di una richiesta di previsione del modello e la sua ricezione da un endpoint in tempo reale su cui viene distribuito il modello. Questa metrica viene misurata in secondi ed è disponibile solo per i modelli creati con la modalità **Ensemble**.
+ LogLoss — La perdita di log, nota anche come perdita di entropia incrociata, è una metrica utilizzata per valutare la qualità degli output di probabilità, anziché gli output stessi. La perdita di log è un parametro importante per indicare quando un modello effettua previsioni errate con probabilità elevate. I valori tipici sono compresi tra 0 e infinito. Il valore 0 rappresenta un modello che prevede perfettamente i dati.
+ Precisione: rispetto a tutte le previsioni di \$1category x\$1, la previsione è risultata corretta il \$1precision\$1% delle volte.

  La precisione misura la capacità di un algoritmo di prevedere i veri positivi (TP) tra tutti i positivi che identifica. È definita come descritto di seguito: `Precision = TP/(TP+FP)`, con valori compresi tra zero (0) e uno (1). La precisione è un parametro importante quando il costo di un falso positivo è elevato. Ad esempio, il costo di un falso positivo è molto elevato se un sistema di sicurezza aereo viene erroneamente considerato sicuro da pilotare. Un falso positivo (FP) riflette una previsione positiva che in realtà è negativa nei dati.
+ Richiamo: il modello ha previsto correttamente che il \$1recall\$1% dei casi fosse di \$1category x\$1 quando \$1target\$1column\$1 era effettivamente \$1category x\$1.

  Il recupero misura la capacità di un algoritmo di prevedere correttamente tutti i veri positivi (TP) in un set di dati. Un vero positivo è una previsione positiva che è anche un valore positivo effettivo dei dati. Il richiamo è definito come descritto di seguito: `Recall = TP/(TP+FN)`, con valori compresi tra 0 e 1. I punteggi più alti riflettono una migliore capacità del modello di prevedere i veri positivi (TP) nei dati. Spesso non è sufficiente misurare solo il richiamo, perché la previsione di ogni output come vero positivo si traduce in un punteggio di richiamo perfetto.

Di seguito è riportato un elenco delle metriche disponibili per la previsione con tre o più categorie.
+ Accuratezza: la percentuale di previsioni corrette.

  Oppure, il rapporto tra il numero di previsioni corrette e il numero totale di previsioni. La precisione misura quanto i valori delle classi previsti si avvicinano ai valori effettivi. I valori per i parametri di precisione variano tra zero (0) e uno (1). Un valore pari a 1 indica un’assoluta accuratezza, mentre 0 indica un’assoluta imprecisione.
+ BalancedAccuracy — Misura il rapporto tra previsioni accurate e tutte le previsioni.

  Questo rapporto viene calcolato dopo aver normalizzato i veri positivi (TP) e i veri negativi (TN) in base al numero totale di valori positivi (P) e negativi (N). È definito come descritto di seguito: `0.5*((TP/P)+(TN/N))`, con valori compresi tra 0 e 1. La metrica di accuratezza bilanciata offre una misurazione migliore dell’accuratezza quando il numero di positivi o negativi differisce notevolmente in un set di dati squilibrato, ad esempio quando solo l’1% delle e-mail è spam.
+ F1macro: il punteggio F1macro applica il punteggio F1 calcolando la precisione e il richiamo, quindi utilizza la media armonica per calcolare il punteggio F1 per ogni classe. Quindi, F1macro calcola la media dei punteggi individuali per ottenere il punteggio F1macro. I punteggi di F1macro variano tra 0 e 1. Un punteggio pari a 1 indica la migliore prestazione possibile, mentre 0 indica la peggiore.
+ InferenceLatency — Il periodo di tempo approssimativo che intercorre tra l'invio di una richiesta di previsione del modello e la sua ricezione da un endpoint in tempo reale su cui viene distribuito il modello. Questa metrica viene misurata in secondi ed è disponibile solo per i modelli creati con la modalità **Ensemble**.
+ LogLoss — La perdita di log, nota anche come perdita di entropia incrociata, è una metrica utilizzata per valutare la qualità degli output di probabilità, anziché gli output stessi. La perdita di log è un parametro importante per indicare quando un modello effettua previsioni errate con probabilità elevate. I valori tipici sono compresi tra 0 e infinito. Il valore 0 rappresenta un modello che prevede perfettamente i dati.
+ PrecisionMacro — Misura la precisione calcolando la precisione per ogni classe e calcolando la media dei punteggi per ottenere la precisione per diverse classi. I punteggi vanno da zero (0) a uno (1). I punteggi più alti riflettono la capacità del modello di prevedere i veri positivi (TP) tra tutti i positivi che identifica, calcolando la media tra più classi.
+ RecallMacro — Misura il richiamo calcolando il richiamo per ogni classe e calcolando la media dei punteggi per ottenere il richiamo per diverse classi. I punteggi sono compresi tra 0 e 1. I punteggi più alti riflettono la capacità del modello di prevedere i veri positivi (TP) in un set di dati, mentre un vero positivo riflette una previsione positiva che è anche un valore positivo effettivo nei dati. Spesso non è sufficiente misurare solo il recupero, perché prevedendo ogni output come un vero positivo si otterrà un punteggio di recupero perfetto.

Tieni presente che, per la previsione con tre o più categorie, ricevi anche le metriche medie F1, Accuratezza, Precisione e Richiamo. I punteggi di queste metriche sono semplicemente la media calcolata sui punteggi delle metriche per tutte le categorie.

## Metriche per la previsione di immagini e testo
<a name="canvas-cv-nlp-metrics"></a>

L’elenco seguente riporta le metriche disponibili per la previsione di immagini e testo.
+ Accuratezza: la percentuale di previsioni corrette.

  Oppure, il rapporto tra il numero di previsioni corrette e il numero totale di previsioni. La precisione misura quanto i valori delle classi previsti si avvicinano ai valori effettivi. I valori per i parametri di precisione variano tra zero (0) e uno (1). Un valore pari a 1 indica un’assoluta accuratezza, mentre 0 indica un’assoluta imprecisione.
+ F1: una misura di accuratezza bilanciata che tiene conto dell'equilibrio della classe.

  È la media armonica dei punteggi di precisione e richiamo, definita come descritto di seguito: `F1 = 2 * (precision * recall) / (precision + recall)`. I punteggi di F1 variano tra 0 e 1. Un punteggio pari a 1 indica la migliore prestazione possibile, mentre 0 indica la peggiore.
+ Precisione: rispetto a tutte le previsioni di \$1category x\$1, la previsione è risultata corretta il \$1precision\$1% delle volte.

  La precisione misura la capacità di un algoritmo di prevedere i veri positivi (TP) tra tutti i positivi che identifica. È definita come descritto di seguito: `Precision = TP/(TP+FP)`, con valori compresi tra zero (0) e uno (1). La precisione è un parametro importante quando il costo di un falso positivo è elevato. Ad esempio, il costo di un falso positivo è molto elevato se un sistema di sicurezza aereo viene erroneamente considerato sicuro da pilotare. Un falso positivo (FP) riflette una previsione positiva che in realtà è negativa nei dati.
+ Richiamo: il modello ha previsto correttamente che il \$1recall\$1% dei casi fosse di \$1category x\$1 quando \$1target\$1column\$1 era effettivamente \$1category x\$1.

  Il recupero misura la capacità di un algoritmo di prevedere correttamente tutti i veri positivi (TP) in un set di dati. Un vero positivo è una previsione positiva che è anche un valore positivo effettivo dei dati. Il richiamo è definito come descritto di seguito: `Recall = TP/(TP+FN)`, con valori compresi tra 0 e 1. I punteggi più alti riflettono una migliore capacità del modello di prevedere i veri positivi (TP) nei dati. Spesso non è sufficiente misurare solo il richiamo, perché la previsione di ogni output come vero positivo si traduce in un punteggio di richiamo perfetto.

Tieni presente che, per i modelli di previsione di immagini e testo con previsione di tre o più categorie, ricevi anche le metriche *medie* F1, Accuratezza, Precisione e Richiamo. I punteggi di queste metriche sono solo la media dei punteggi delle metriche per tutte le categorie.

## Parametri per le previsioni di serie temporali
<a name="canvas-time-series-forecast-metrics"></a>

Di seguito vengono definite le metriche avanzate per le previsioni delle serie temporali in Amazon SageMaker Canvas e vengono fornite informazioni su come utilizzarle.
+ Perdita quantile ponderata media (wQL): valuta la previsione calcolando la media dell’accuratezza sui quantili P10, P50 e P90. Un valore più basso indica un modello più accurato.
+ Errore assoluto percentuale ponderato (WAPE): la somma dell’errore assoluto normalizzata per la somma della destinazione assoluta, che misura la deviazione generale dei valori previsti dai valori osservati. Un valore più basso indica un modello più accurato, dove WAPE = 0 è un modello senza nessun errore.
+ Radice dell’errore quadratico medio (RMSE): la radice quadrata degli errori quadratici medi. Un valore RMSE più basso indica un modello più accurato, dove RMSE = 0 è un modello senza nessun errore.
+ Errore assoluto medio percentuale (MAPE): l'errore percentuale (differenza percentuale tra il valore medio previsto e il valore effettivo) calcolato in media su tutti i punti temporali. Un valore più basso indica un modello più accurato, dove MAPE = 0 è un modello senza nessun errore.
+ Errore assoluto medio scalato (MASE): l'errore assoluto medio della previsione normalizzato rispetto all'errore assoluto medio di un semplice metodo di previsione di base. Un valore più basso indica un modello più accurato, in cui MASE < 1 è considerato migliore della linea di base e MASE > 1 è considerato peggiore della linea di base.

# Previsioni con modelli personalizzati
<a name="canvas-make-predictions"></a>

Usa il modello personalizzato che hai creato in SageMaker Canvas per fare previsioni per i tuoi dati. Le sezioni seguenti mostrano come generare previsioni per modelli di previsione numerici e categorici, previsioni delle serie temporali e modelli di previsione di immagini e testo.

I modelli personalizzati di previsione numerica e categoriale, di previsione di immagini e di previsione di testo supportano la creazione dei seguenti tipi di previsioni per i tuoi dati:
+ **Previsioni singole**: si utilizza una **previsione singola** quando è sufficiente generare una sola previsione. Ad esempio, se hai un'immagine o un passaggio di testo che desideri classificare.
+ **Previsioni in batch**: si utilizza una **previsione in batch** quando si desidera generare previsioni per un intero set di dati. Puoi fare previsioni in batch per set di dati superiori a 1 TB. Ad esempio, hai un file CSV contenente le recensioni dei clienti per le quali desideri prevedere l'opinione dei clienti, oppure hai una cartella di file immagini che desideri classificare. Dovresti fare previsioni con un set di dati che corrisponda al set di dati di input. Canvas offre la possibilità di eseguire previsioni in batch manuali oppure di configurare previsioni in batch automatiche avviate ogni volta che aggiorni un set di dati.

Per ogni previsione o insieme di previsioni, SageMaker Canvas restituisce quanto segue:
+ I valori previsti
+ La probabilità che il valore previsto sia corretto

**Nozioni di base**

Scegli uno dei seguenti flussi di lavoro per generare previsioni con il tuo modello personalizzato:
+ [Previsioni in batch in Canvas SageMaker](canvas-make-predictions-batch.md)
+ [Formulazione di previsioni singole](canvas-make-predictions-single.md)

Dopo aver generato le previsioni con il modello, puoi anche eseguire le operazioni seguenti:
+ [Aggiorna il modello aggiungendo versioni.](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-update-model.html) Se vuoi provare a migliorare l’accuratezza della previsione del tuo modello, puoi creare nuove versioni del modello. Puoi scegliere di clonare la configurazione e il set di dati originali per la creazione dei modelli oppure puoi modificare la configurazione e selezionare un set di dati diverso. Dopo aver aggiunto una nuova versione, puoi rivedere e confrontare le versioni per scegliere quella ottimale.
+ [Registra una versione del modello nel registro dei modelli AI SageMaker](canvas-register-model.md). È possibile registrare le versioni del modello nel Model SageMaker Registry, una funzionalità per tracciare e gestire lo stato delle versioni del modello e delle pipeline di apprendimento automatico. Un data scientist o un utente del MLOps team con accesso al SageMaker Model Registry può esaminare le versioni del modello e approvarle o rifiutarle prima di distribuirle in produzione.
+ [Invia le tue previsioni in batch a Quick.](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-send-predictions.html) In Quick, puoi creare e pubblicare dashboard con i tuoi set di dati di previsione in batch. Ciò può aiutarti ad analizzare e condividere i risultati generati dal tuo modello personalizzato.

# Formulazione di previsioni singole
<a name="canvas-make-predictions-single"></a>

**Nota**  
Questa sezione descrive come generare previsioni singole dal modello all'interno dell'applicazione Canvas. Per informazioni su come effettuare invocazioni in tempo reale in un ambiente di produzione distribuendo il modello su un endpoint, consulta [Distribuzione di modelli su un endpoint](canvas-deploy-model.md).

Creazione di previsioni singole per ottenere una previsione per un singolo punto dati. Puoi utilizzare questa funzionalità per ottenere previsioni in tempo reale o per testare la modifica di singoli valori e vederne l’impatto sul risultato della previsione. Tieni presente che le previsioni singole si basano su un endpoint di inferenza asincrona, che si chiude dopo essere rimasto inattivo (o non aver ricevuto alcuna richiesta di previsione) per due ore.

Scegli una delle procedure seguenti in base al tipo di modello.

## Creazione di previsioni singole con modelli di previsione numerici e categoriali
<a name="canvas-make-predictions-numeric-categorical"></a>

Per generare una previsione singola per un modello di previsione numerico o categoriale, procedi come segue:

1. Nel pannello di navigazione dell'applicazione Canvas, seleziona **I miei modelli**.

1. Nella pagina **I miei modelli**, scegli il tuo modello.

1. Dopo aver aperto il modello, scegli la scheda **Prevedi**.

1. Nella pagina **Esegui previsioni**, scegli **Previsione singola**.

1. Per ogni campo **Colonna** che rappresenta le colonne dei dati di input, puoi modificare il **Valore**. Seleziona il menu a discesa per il **valore** che intendi modificare. Per i campi numerici, puoi inserire un nuovo numero. Per i campi con etichette, puoi selezionare un'etichetta diversa.

1. Quando è tutto pronto per generare la previsione, nel riquadro **Previsione** a destra, scegli **Aggiorna**.

Nel riquadro **Previsione** a destra, vedrai il risultato della previsione. Puoi selezionare **Copia** per copiare il grafico dei risultati della previsione oppure puoi scegliere **Scarica** per scaricare il grafico dei risultati della previsione come immagine o per scaricare i valori e la previsione come file CSV.

## Generazione di previsioni singole con modelli di previsione delle serie temporali
<a name="canvas-make-predictions-forecast"></a>

Per generare una previsione singola per un modello di previsione delle serie temporali, procedi come descritto di seguito:

1. Nel pannello di navigazione dell'applicazione Canvas, seleziona **I miei modelli**.

1. Nella pagina **I miei modelli**, scegli il tuo modello.

1. Dopo aver aperto il modello, scegli la scheda **Prevedi**.

1. Scegli **Previsione singola**.

1. In **Elemento**, seleziona l’elemento per il quale desideri prevedere i valori.

1. Se hai utilizzato un gruppo per colonna per addestrare il modello, seleziona il gruppo per categoria per l’elemento.

Il risultato della previsione viene caricato nel riquadro sottostante, che mostra un grafico con la previsione per ogni quantile. Scegli la **visualizzazione Schema** per vedere i valori numerici previsti. Puoi anche scegliere **Scarica** per scaricare i risultati della previsione come immagine o file CSV.

## Formulazione di previsioni singole con modelli di previsione di immagini
<a name="canvas-make-predictions-image"></a>

Per formulare una previsione singola per un modello di previsione di immagini a etichetta singola, procedi come segue:

1. Nel pannello di navigazione dell'applicazione Canvas, seleziona **I miei modelli**.

1. Nella pagina **I miei modelli**, scegli il tuo modello.

1. Dopo aver aperto il modello, scegli la scheda **Prevedi**.

1. Nella pagina **Esegui previsioni**, scegli **Previsione singola**.

1. Scegli **Importa immagine**.

1. Ti verrà richiesto di caricare un'immagine. Puoi caricare un'immagine dal computer locale o da un bucket Amazon S3.

1. Scegli **Importa** per importare l'immagine e generare la previsione.

Nel riquadro **Risultati della previsione** a destra, il modello elenca le possibili etichette per l'immagine insieme a un punteggio di **attendibilità** per ciascuna etichetta. Ad esempio, il modello potrebbe prevedere l'etichetta **mare** per un'immagine, con un punteggio di attendibilità del 96%. Il modello potrebbe aver previsto l'immagine come un **ghiacciaio** con un punteggio di attendibilità solo del 4%. Pertanto, puoi stabilire che il modello è abbastanza sicuro nella previsione di immagini del mare.

## Formulazione di previsioni singole con modelli di previsione di testo
<a name="canvas-make-predictions-text"></a>

Per formulare una previsione singola per un modello di previsione di testo multicategoria, procedi come segue:

1. Nel pannello di navigazione dell'applicazione Canvas, seleziona **I miei modelli**.

1. Nella pagina **I miei modelli**, scegli il tuo modello.

1. Dopo aver aperto il modello, scegli la scheda **Prevedi**.

1. Nella pagina **Esegui previsioni**, scegli **Previsione singola**.

1. Nel campo **Testo**, inserisci il testo per il quale desideri generare una previsione.

1. Scegli **Genera risultati di previsione** per ottenere la tua previsione.

Nel riquadro **Risultati della previsione** a destra, visualizzerai un'analisi del testo oltre a un punteggio di **attendibilità** per ogni possibile etichetta. Ad esempio, se hai inserito una recensione positiva per un prodotto, potresti ottenere un punteggio di attendibilità **Positivo** dell'85%, mentre un punteggio di attendibilità **Neutro** potrebbe essere del 10% e un punteggio di attendibilità **Negativo** solo del 5%.

# Previsioni in batch in Canvas SageMaker
<a name="canvas-make-predictions-batch"></a>

Formula previsioni in batch quando disponi di un intero set di dati per il quale desideri formulare previsioni. Amazon SageMaker Canvas supporta previsioni in batch per set di dati di dimensioni massime. PBs 

Puoi generare due tipi di previsioni in batch:
+ Le previsioni in batch [manuali](canvas-make-predictions-batch-manual.md) vengono generate quando si dispone di un set di dati per il quale si desidera effettuare previsioni una tantum.
+ Le [previsioni in batch automatiche](canvas-make-predictions-batch-auto.md) vengono generate quando si imposta una configurazione eseguita ogni volta che viene aggiornato un set di dati specifico. Ad esempio, se hai configurato aggiornamenti settimanali a un set di dati di inventario SageMaker Canvas, puoi impostare previsioni automatiche in batch che vengono eseguite ogni volta che aggiorni il set di dati. Dopo aver impostato un flusso di lavoro automatizzato per le previsioni in batch, consulta [Come gestire le automazioni](canvas-manage-automations.md) per ulteriori informazioni su come visualizzare e modificare i dettagli della configurazione. Per ulteriori informazioni sulla configurazione degli aggiornamenti automatici per i set di dati, consulta [Configurazione degli aggiornamenti automatici per un set di dati](canvas-update-dataset-auto.md).

**Nota**  
I modelli di previsione delle serie temporali non supportano le previsioni in batch automatiche.  
Puoi impostare previsioni in batch automatiche solo per set di dati importati tramite caricamento locale o Amazon S3. Inoltre, puoi eseguire le previsioni in batch automatiche solo mentre sei connesso all'applicazione Canvas. Se esci da Canvas, i processi di previsione in batch automatici riprendono solo quando effettui nuovamente l’accesso.

Per iniziare, consulta la sezione [Requisiti dei set di dati per la previsione in batch](canvas-make-predictions-batch-preqreqs.md), quindi scegli uno dei seguenti flussi di lavoro di previsione in batch manuali o automatici.

**Topics**
+ [Requisiti dei set di dati per la previsione in batch](canvas-make-predictions-batch-preqreqs.md)
+ [Formulazione di previsioni in batch manuali](canvas-make-predictions-batch-manual.md)
+ [Formulazione di previsioni in batch automatiche](canvas-make-predictions-batch-auto.md)
+ [Modifica della configurazione della previsione in batch automatica](canvas-make-predictions-batch-auto-edit.md)
+ [Eliminazione della configurazione della previsione in batch automatica](canvas-make-predictions-batch-auto-delete.md)
+ [Visualizzazione dei processi di previsione in batch](canvas-make-predictions-batch-auto-view.md)

# Requisiti dei set di dati per la previsione in batch
<a name="canvas-make-predictions-batch-preqreqs"></a>

Per generare previsioni in batch, assicurati che i set di dati soddisfino i requisiti descritti in [Creazione di un set di dati](canvas-import-dataset.md). Se il set di dati è più grande di 5 GB, Canvas utilizza Amazon EMR serverless per elaborare i dati e dividerli in batch più piccoli. Dopo che i dati sono stati suddivisi, Canvas utilizza SageMaker AI Batch Transform per fare previsioni. Potresti vedere gli addebiti di entrambi i servizi dopo aver eseguito le previsioni in batch. Per ulteriori informazioni, consulta [Prezzi di Canvas](https://aws.amazon.com/sagemaker/canvas/pricing/).

Potresti non riuscire a generare previsioni su alcuni set di dati perché hanno *schemi* incompatibili. Uno *schema* è una struttura organizzativa. Per un set di dati tabellare, lo schema è costituito dai nomi delle colonne e dal tipo di dati nelle colonne. Uno schema potrebbe essere considerato incompatibile per uno dei seguenti motivi:
+ Il set di dati che stai usando per fare previsioni ha meno colonne rispetto al set di dati che stai usando per creare il modello.
+ I tipi di dati nelle colonne che hai usato per creare il set di dati potrebbero essere diversi dai tipi di dati del set di dati che stai usando per generare previsioni.
+ I nomi delle colonne del set di dati che stai usando per generare previsioni e i nomi delle colonne del set di dati che hai usato per creare il modello non corrispondono. I nomi delle colonne fanno distinzione tra maiuscole e minuscole. `Column1` non è uguale a `column1`.

Per assicurarti di poter generare le previsioni in batch correttamente, abbina lo schema del set di dati delle previsioni in batch al set di dati utilizzato per addestrare il modello.

**Nota**  
Per le previsioni in batch, se hai eliminato delle colonne durante la creazione del modello, Canvas le aggiunge nuovamente ai risultati della previsione. Tuttavia, Canvas non aggiunge le colonne eliminate alle previsioni in batch per i modelli di serie temporali.

# Formulazione di previsioni in batch manuali
<a name="canvas-make-predictions-batch-manual"></a>

Per formulare previsioni in batch manuali basate sul tipo di modello, scegli una delle procedure seguenti.

## Generazione di previsioni in batch manuali con modelli di previsione numerici, categorici e delle serie temporali
<a name="canvas-make-predictions-batch-numeric-categorical"></a>

Per generare previsioni in batch manuali per i tipi di modelli di previsione numerici, categorici e delle serie temporali, procedi come descritto di seguito:

1. Nel pannello di navigazione dell'applicazione Canvas, seleziona **I miei modelli**.

1. Nella pagina **I miei modelli**, scegli il tuo modello.

1. Dopo aver aperto il modello, scegli la scheda **Prevedi**.

1. Nella pagina **Esegui previsioni**, scegli **Previsione in batch**.

1. Scegli **Seleziona set di dati** per scegliere un set di dati per generare previsioni.

1. Dall’elenco dei set di dati disponibili, seleziona il tuo set di dati e scegli **Avvia previsioni** per generare le previsioni.

Al termine dell’esecuzione del processo di previsione, nella sezione **Previsioni** della stessa pagina viene visualizzato un set di dati di output. Questo set di dati contiene i tuoi risultati e, se selezioni l'icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), puoi scegliere **Anteprima** per visualizzare in anteprima i dati di output. Puoi visualizzare i dati di input corrispondenti alla previsione e la probabilità che la previsione sia corretta. Quindi, puoi scegliere **Scarica previsione** per scaricare i risultati come file.

## Formulazione di previsioni in batch manuali con modelli di previsione di immagini
<a name="canvas-make-predictions-batch-image"></a>

Per generare una previsione in batch manuale per un modello di previsione di immagini a etichetta singola, procedi come segue:

1. Nel pannello di navigazione dell'applicazione Canvas, seleziona **I miei modelli**.

1. Nella pagina **I miei modelli**, scegli il tuo modello.

1. Dopo aver aperto il modello, scegli la scheda **Prevedi**.

1. Nella pagina **Esegui previsioni**, scegli **Previsione in batch**.

1. Scegli **Seleziona set di dati** se hai già importato il tuo set di dati. In caso contrario, scegli **Importa nuovo set di dati** e verrai indirizzato al flusso di lavoro di importazione dei dati.

1. Dall'elenco dei set di dati disponibili, seleziona il tuo set di dati e scegli **Genera previsioni** per ottenere le tue previsioni.

Al termine dell'esecuzione del processo di previsione, nella pagina **Esegui previsioni** viene visualizzato un set di dati di output elencato in **Previsioni**. Questo set di dati contiene i tuoi risultati e, se selezioni l'icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), puoi scegliere **Visualizza risultati di previsione** per visualizzare i dati di output. Puoi visualizzare le immagini insieme alle etichette previste e ai punteggi di attendibilità. Quindi, puoi scegliere **Scarica previsione** per scaricare i risultati in formato CSV o file zip.

## Formulazione di previsioni in batch manuali con modelli di previsione di testo
<a name="canvas-make-predictions-batch-text"></a>

Per formulare una previsione in batch manuale per un modello di previsione di testo multicategoria, procedi come segue:

1. Nel pannello di navigazione dell'applicazione Canvas, seleziona **I miei modelli**.

1. Nella pagina **I miei modelli**, scegli il tuo modello.

1. Dopo aver aperto il modello, scegli la scheda **Prevedi**.

1. Nella pagina **Esegui previsioni**, scegli **Previsione in batch**.

1. Scegli **Seleziona set di dati** se hai già importato il tuo set di dati. In caso contrario, scegli **Importa nuovo set di dati** e verrai indirizzato al flusso di lavoro di importazione dei dati. Il set di dati che scegli deve avere la stessa colonna di origine del set di dati con cui hai creato il modello.

1. Dall'elenco dei set di dati disponibili, seleziona il tuo set di dati e scegli **Genera previsioni** per ottenere le tue previsioni.

Al termine dell'esecuzione del processo di previsione, nella pagina **Esegui previsioni** viene visualizzato un set di dati di output elencato in **Previsioni**. Questo set di dati contiene i tuoi risultati e, se selezioni l'icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), puoi scegliere **Anteprima** per visualizzare i dati di output. Puoi visualizzare le immagini insieme alle etichette previste e ai punteggi di attendibilità. Quindi, puoi scegliere **Scarica previsione** per scaricare i risultati.

# Formulazione di previsioni in batch automatiche
<a name="canvas-make-predictions-batch-auto"></a>

**Nota**  
I modelli di previsione delle serie temporali non supportano le previsioni in batch automatiche.

Per impostare una pianificazione per le previsioni in batch automatiche, procedi come segue:

1. Nel riquadro di navigazione a sinistra in Canvas scegli **I miei modelli**.

1. Scegli il tuo modello.

1. Seleziona la scheda **Prevedi**.

1. Scegli **Previsioni in batch**.

1. In **Genera previsioni**, scegli **Automatico**.

1. Viene visualizzata la finestra di dialogo **Automatizza le previsioni in batch**. Scegli **Seleziona set di dati** e scegli il set di dati per il quale desideri automatizzare le previsioni. Tieni presente che puoi selezionare solo un set di dati importato tramite caricamento locale o Amazon S3.

1. Dopo aver selezionato un set di dati, scegli **Configura**.

Canvas esegue un processo di previsione in batch per il set di dati dopo aver impostato la configurazione. Quindi, ogni volta che [Aggiornamento di un set di dati](canvas-update-dataset.md), manualmente o automaticamente, viene eseguito un altro processo di previsione in batch.

Al termine dell'esecuzione del processo di previsione, nella pagina **Esegui previsioni** viene visualizzato un set di dati di output elencato in **Previsioni**. Questo set di dati contiene i tuoi risultati e, se selezioni l'icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), puoi scegliere **Anteprima** per visualizzare in anteprima i dati di output. Puoi visualizzare i dati di input corrispondenti alla previsione e la probabilità che la previsione sia corretta. Quindi, puoi scegliere **Scarica** per scaricare i risultati.

Le sezioni seguenti descrivono come visualizzare, aggiornare ed eliminare la configurazione di previsione in batch automatica tramite la pagina **Set di dati** dell'applicazione Canvas. Puoi impostare un massimo di 20 configurazioni automatiche in Canvas. Per ulteriori informazioni sulla visualizzazione della cronologia dei processi di previsione in batch automatica o alla modifica della configurazione automatica tramite la pagina **Automazioni** consulta [Come gestire le automazioni](canvas-manage-automations.md).

# Modifica della configurazione della previsione in batch automatica
<a name="canvas-make-predictions-batch-auto-edit"></a>

Potresti voler apportare modifiche alla configurazione dell'aggiornamento automatico per un set di dati, ad esempio cambiando la frequenza degli aggiornamenti. Potresti anche voler disattivare la configurazione di aggiornamento automatico per sospendere gli aggiornamenti del tuo set di dati.

Quando modifichi una configurazione della previsione in batch, puoi modificare il set di dati di destinazione ma non la frequenza (poiché le previsioni in batch automatiche vengono eseguite ogni volta che il set di dati viene aggiornato).

Per modificare la configurazione degli aggiornamenti automatici, effettua le seguenti operazioni:

1. Vai alla scheda **Prevedi** del tuo modello.

1. In **Previsioni**, scegli la scheda **Configurazione**.

1. Trova la tua configurazione e scegli l'icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. Dal menu a discesa, scegli **Aggiorna configurazione**.

1. Si apre la finestra di dialogo **Automatizza previsioni in batch**. Puoi selezionare un altro set di dati e scegliere **Configura** per salvare le modifiche.

La configurazione delle previsioni in batch automatiche è ora aggiornata.

Per mettere in pausa le previsioni in batch automatiche, disattiva la configurazione automatica effettuando le seguenti operazioni:

1. Vai alla scheda **Prevedi** del tuo modello.

1. In **Previsioni**, scegli la scheda **Configurazione**.

1. Trova la tua configurazione dall'elenco e disattiva l'opzione **Aggiornamento automatico**.

Le previsioni in batch automatiche sono ora in pausa. Per riprendere la pianificazione degli aggiornamenti puoi riattivare l’opzione in qualsiasi momento.

# Eliminazione della configurazione della previsione in batch automatica
<a name="canvas-make-predictions-batch-auto-delete"></a>

Per informazioni su come eliminare la configurazione della previsione in batch automatica, consulta [Eliminazione di una configurazione automatica](canvas-manage-automations-delete.md).

Puoi eliminare la configurazione anche eseguendo le seguenti operazioni:

1. Vai alla scheda **Prevedi** del tuo modello.

1. In **Previsioni**, scegli la scheda **Configurazione**.

1. Trova la tua configurazione sulla lista e scegli l'icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. Dal menu a discesa, scegli **Elimina configurazione**.

La tua configurazione ora risulta eliminata.

# Visualizzazione dei processi di previsione in batch
<a name="canvas-make-predictions-batch-auto-view"></a>

Per visualizzare lo stato e la cronologia dei processi di previsione in batch, vai alla scheda **Prevedi** del tuo modello.

Ogni processo di previsione in batch viene visualizzato nella scheda **Prevedi** del tuo modello. In **Previsioni**, consulta le schede **Tutti i processi** e **Configurazione**:
+ **Tutti i processi**: in questa scheda puoi visualizzare tutti i processi di previsione in batch manuali e automatici per questo modello. Puoi filtrare i processi in base al nome della configurazione. Per ogni processo, vedrai i campi seguenti:
  + **Stato**: lo stato attuale del processo di previsione in batch. Se lo stato è **Non riuscito** o **Parzialmente non riuscito**, puoi passare il mouse sullo stato per visualizzare un messaggio di errore più dettagliato per facilitare la risoluzione dei problemi.
  + **Set di dati di input**: il nome del set di dati di input di Canvas, inclusa la versione.
  + **Tipo di previsione**: se il processo di previsione è automatico o manuale.
  + **Righe**: il numero di righe previsto.
  + **Nome della configurazione**: il nome della configurazione del processo di previsione in batch.
  + **QuickSight**— Descrive se hai inviato le previsioni in batch a Quick.
  + **Creato**: l’ora di creazione del processo di previsione in batch.

  Se scegli l'icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), puoi scegliere **Visualizza dettagli**, **Anteprima della previsione**, **Scarica la previsione** o **Invia** a Quick. Se scegli **Visualizza dettagli**, si apre una pagina che mostra tutti i dettagli del processo di previsione in batch, tra cui lo stato, le configurazioni dei dati di input e output, le informazioni sulle istanze utilizzate per completare il processo e l'accesso ai log di Amazon. CloudWatch La pagina dovrebbe essere simile allo screenshot seguente.  
![\[Pagina dei dettagli del processo di previsione in batch che mostra tutti i dettagli aggiuntivi su un processo.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-view-batch-prediction-job-details.png)
+ **Configurazione**: in questa scheda puoi vedere tutte le configurazioni delle previsioni in batch automatiche che hai creato per questo modello. Per ogni configurazione, puoi visualizzare diversi campi, ad esempio il timestamp di quando è stata **creata**, il **set di dati di input** monitorato per gli aggiornamenti e il **processo successivo pianificato**, che indica l’ora di avvio del prossimo processo di previsione automatico pianificato. Se scegli l'icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), puoi scegliere **Visualizza tutti i processi** per visualizzare la cronologia dei processi e i processi in corso per quella configurazione.



# Invia previsioni a Quick
<a name="canvas-send-predictions"></a>

**Nota**  
Puoi inviare previsioni in batch a Quick per modelli di previsione numerica e categoriale e di serie temporali. Sono esclusi i modelli di previsione di immagini con etichetta singola e i modelli di previsione di testo multicategoria.

Dopo aver generato previsioni in batch con modelli tabulari personalizzati in SageMaker Canvas, puoi inviarle come file CSV a Quick, un servizio di business intelligence (BI) per creare e pubblicare dashboard predittivi.

Ad esempio, se hai creato un modello di previsione a due categorie per determinare se un cliente aumenterà il tasso di abbandono, puoi creare una dashboard visiva e predittiva in Quick per mostrare la percentuale di clienti che si prevede che abbandoni. [Per ulteriori informazioni su Quick, consulta la Guida rapida per l'utente.](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html)

Le seguenti sezioni mostrano come inviare le previsioni in batch a Quick per l'analisi.

## Prima di iniziare
<a name="canvas-send-predictions-prereqs"></a>

L'utente deve disporre delle autorizzazioni necessarie AWS Identity and Access Management (IAM) per inviare le previsioni a Quick. L'amministratore può configurare le autorizzazioni IAM per l'utente. Per ulteriori informazioni, consulta [Concedi ai tuoi utenti le autorizzazioni per inviare previsioni a Quick](canvas-quicksight-permissions.md).

Il tuo account Quick deve contenere lo spazio dei `default` nomi, che viene impostato quando crei il tuo account Quick per la prima volta. Contatta il tuo amministratore per aiutarti ad accedere a Quick. Per ulteriori informazioni, consulta [Configurazione di Quick nella Guida rapida per](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html) *l'utente*.

L'account Quick deve essere creato nella stessa regione dell'applicazione Canvas. Se la regione di residenza dell'account Quick è diversa dalla regione dell'applicazione Canvas, è necessario [chiudere](https://docs.aws.amazon.com/quicksight/latest/user/closing-account.html) e ricreare l'account Quick oppure [configurare un'applicazione Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html#canvas-prerequisites) nella stessa regione dell'account Quick. Puoi controllare la tua regione di origine rapida effettuando le seguenti operazioni (supponendo che tu abbia già un account Quick):

1. Apri la tua [console Quick](https://quicksight.aws.amazon.com/).

1. Quando la pagina viene caricata, la tua Quick home Region viene aggiunta all'URL nel seguente formato:`https://<your-home-region>.quicksight.aws.amazon.com/`.

Devi conoscere i nomi utente degli utenti Quick a cui desideri inviare le tue previsioni. Puoi inviare previsioni a te stesso o ad altri utenti che dispongono delle autorizzazioni richieste. Tutti gli utenti a cui invii i pronostici devono trovarsi nello `default` [spazio dei nomi](https://docs.aws.amazon.com/quicksight/latest/user/namespaces.html) del tuo account Quick e avere il `Author` ruolo or in Quick. `Admin`

Inoltre, Quick deve avere accesso al bucket SageMaker AI predefinito di Amazon S3 per il tuo dominio, denominato con il seguente formato:. `sagemaker-{REGION}-{ACCOUNT_ID}` La regione deve essere la stessa della regione principale del tuo account Quick e della regione dell'applicazione Canvas. *Per informazioni su come fornire un accesso rapido alle previsioni in batch archiviate nel tuo bucket Amazon S3, consulta l'[argomento Non riesco a connettermi ad Amazon S3](https://docs.aws.amazon.com/quicksight/latest/user/troubleshoot-connect-S3.html) nella Guida rapida per l'utente.*

## Formati di dati supportati
<a name="canvas-send-predictions-formatting"></a>

Prima di inviare le previsioni, verifica che il formato dei dati delle previsioni in batch sia compatibile con Quick.
+ *Per ulteriori informazioni sui formati di dati accettati per i dati delle serie temporali, consulta [Formati di data supportati](https://docs.aws.amazon.com/quicksight/latest/user/supported-date-formats.html) nella Guida rapida per l'utente.*
+ Per ulteriori informazioni sui valori dei dati che potrebbero impedirne l'invio a Quick, consulta [Valori non supportati nei dati nella](https://docs.aws.amazon.com/quicksight/latest/user/unsupported-data-values.html) *Guida rapida* per l'utente.

Tieni inoltre presente che Quick utilizza il carattere `"` come qualificatore di testo, quindi se i tuoi dati Canvas contengono `"` caratteri, assicurati di chiudere tutte le virgolette corrispondenti. Qualsiasi citazione non corrispondente può causare problemi con l'invio del set di dati a Quick.

## Invia le tue previsioni in batch a Quick
<a name="canvas-send-predictions-send"></a>

Utilizza la seguente procedura per inviare i tuoi pronostici a Quick:

1. Apri l'applicazione SageMaker Canvas.

1. Nel riquadro di navigazione a sinistra scegli **I miei modelli**.

1. Nella pagina **I miei modelli**, scegli il tuo modello.

1. Seleziona la scheda **Prevedi**.

1. In **Previsioni**, seleziona il set di dati (o i set di dati) di previsioni in batch che desideri condividere. Puoi condividere fino a 5 set di dati di previsioni in batch alla volta.

1. Dopo aver selezionato il set di dati, scegli **Invia a Quick**.
**Nota**  
Il pulsante **Invia a Quick** non si attiva a meno che non selezioni uno o più set di dati.

   In alternativa, puoi visualizzare in anteprima le previsioni scegliendo l'icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) e quindi **Visualizza i risultati delle previsioni**. Dall'anteprima del set di dati, puoi scegliere **Invia a** Quick. La schermata seguente mostra il pulsante **Invia a Quick** in un'anteprima del set di dati.  
![\[Schermata di un'anteprima del set di dati con il pulsante Invia a Quick in basso.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/send-to-quicksight-preview.png)

1. Nella finestra di dialogo **Invia a Quick**, effettuate le seguenti operazioni:

   1. Per **QuickSight gli utenti**, inserisci il nome degli utenti Quick a cui desideri inviare le previsioni. Se vuoi inviarle a te stesso, inserisci il tuo nome utente. Puoi inviare previsioni solo agli utenti nello `default` spazio dei nomi dell'account Quick e l'utente deve avere il ruolo `Author` o `Admin` in Quick.

   1. Scegli **Invia**.

   La schermata seguente mostra la finestra di dialogo **Invia a Quick**:  
![\[La finestra di dialogo Invia a Quick.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/send-to-quicksight.png)

Dopo aver inviato le previsioni in batch, il **QuickSight**campo per i set di dati inviati viene visualizzato come. `Sent` Nella casella di conferma che conferma l'invio dei pronostici, puoi scegliere **Apri rapido per aprire** l'applicazione Quick. Se hai finito di usare Canvas, devi [disconnetterti](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-log-out.html) dall'applicazione Canvas.

Gli utenti Quick a cui hai inviato i set di dati possono aprire la loro applicazione Quick e visualizzare i set di dati Canvas che sono stati condivisi con loro. Quindi, possono creare dashboard predittive con quei dati. Per ulteriori informazioni, consulta [Guida introduttiva all'analisi rapida dei dati](https://docs.aws.amazon.com/quicksight/latest/user/getting-started.html) nella *Guida rapida per l'utente*.

Per impostazione predefinita, tutti gli utenti a cui invii le previsioni dispongono delle autorizzazioni di proprietario per il set di dati in Quick. I proprietari possono creare analisi, aggiornare, modificare, eliminare e condividere nuovamente i set di dati. Le modifiche apportate dai proprietari a un set di dati modificano il set di dati per tutti gli utenti che possono accedervi. Per modificare le autorizzazioni, vai al set di dati in Quick e gestiscine le autorizzazioni. *Per ulteriori informazioni, consulta [Visualizzazione e modifica delle autorizzazioni degli utenti con cui viene condiviso un set](https://docs.aws.amazon.com/quicksight/latest/user/sharing-data-sets.html#view-users-data-set) di dati nella Guida rapida per l'utente.*

# Download di un notebook del modello
<a name="canvas-notebook"></a>

**Nota**  
La funzionalità del notebook del modello è disponibile per i modelli tabulari con build rapida e standard e per i modelli di fondazione ottimizzati con fine-tuning. I notebook del modello non sono supportati per i modelli di previsione delle immagini, previsione del testo o previsione delle serie temporali.  
Per generare un notebook del modello per un modello tabulare creato prima del lancio di questa funzionalità, devi ricostruire il modello per generare un notebook.

Per i modelli idonei creati con successo in Amazon SageMaker Canvas, viene generato un notebook Jupyter contenente un report di tutte le fasi di creazione del modello. Questo notebook Jupyter contiene codice Python che puoi eseguire localmente o in un ambiente come Amazon SageMaker Studio Classic per replicare i passaggi necessari per creare il tuo modello. Il notebook può essere utile per condurre esperimenti con il codice o vedere i dettagli di backend su come Canvas crea i modelli.

Per accedere al notebook del modello, procedi come descritto di seguito:

1. Apri l'applicazione Canvas. SageMaker 

1. Nel riquadro di navigazione a sinistra scegli **I miei modelli**.

1. Scegli il modello e la versione creati.

1. Nella pagina della versione del modello, scegli l’icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) nell’intestazione.

1. Dal menu a discesa, scegli **Visualizza notebook**.

1. Viene visualizzata una finestra pop-up con il contenuto del notebook. Puoi scegliere **Scarica** e quindi eseguire una di queste operazioni:

   1. Scegli **Scarica** per salvare il contenuto del notebook sul tuo dispositivo locale.

   1. Scegli **Copia URI S3** per copiare la posizione Amazon S3 in cui è archiviato il notebook. Il notebook è archiviato nel bucket Amazon S3 specificato in **Configurazione di archiviazione Canvas**, nella sezione [Prerequisiti per la configurazione di Amazon Canvas SageMaker](canvas-getting-started.md#canvas-prerequisites).

A questo punto, dovresti visualizzare il notebook in locale o come oggetto in Amazon S3. Puoi caricare il notebook su un IDE per modificare ed eseguire il codice oppure puoi condividerlo con altre persone dell’organizzazione per esaminarlo.

# Invia il tuo modello a Quick
<a name="canvas-send-model-to-quicksight"></a>

Se usi Quick e desideri sfruttare SageMaker Canvas nelle tue visualizzazioni Quick, puoi creare un modello Amazon SageMaker Canvas e utilizzarlo come *campo predittivo* nel tuo set di dati Quick. Un *campo predittivo è un campo* del set di dati Quick che può fare previsioni per una determinata colonna del set di dati, in modo simile a come gli utenti Canvas effettuano previsioni singole o in batch con un modello. [Per ulteriori informazioni su come integrare le capacità predittive di Canvas nei set di dati Quick, consulta l'integrazione di [SageMaker Canvas](https://docs.aws.amazon.com/quicksight/latest/user/sagemaker-canvas-integration.html) nella Guida rapida per l'utente.](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html)

I passaggi seguenti spiegano come aggiungere un campo predittivo al set di dati Quick utilizzando un modello Canvas:

1. Apri l'applicazione Canvas e crea un modello con il tuo set di dati.

1. Dopo aver creato il modello in Canvas, invia il modello a Quick. Un file di schema viene scaricato automaticamente sul computer locale quando inviate il modello a Quick. Caricherai questo file di schema su Quick nel passaggio successivo.

1. Apri Quick e scegli un set di dati con lo stesso schema del set di dati che hai usato per creare il tuo modello. Aggiungi un campo predittivo al set di dati ed effettua le seguenti operazioni:

   1. Specifica il modello inviato da Canvas.

   1. Carica il file di schema scaricato nella fase 2.

1. Salva e pubblica le modifiche, quindi genera previsioni per il nuovo set di dati. Quick utilizza il modello per compilare la colonna di destinazione con le previsioni.

Per inviare un modello da Canvas a Quick, devi soddisfare i seguenti prerequisiti:
+ È necessario disporre sia di Canvas che di Quick configurati. Il tuo account Quick deve essere creato nella Regione AWS stessa applicazione Canvas. Se la regione di residenza dell'account Quick è diversa dalla regione dell'applicazione Canvas, è necessario [chiudere](https://docs.aws.amazon.com/quicksight/latest/user/closing-account.html) e ricreare l'account Quick oppure [configurare un'applicazione Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html#canvas-prerequisites) nella stessa regione dell'account Quick. L'account Quick deve contenere anche lo spazio dei nomi predefinito, che hai impostato quando crei il tuo account Quick per la prima volta. Contatta il tuo amministratore per aiutarti ad accedere a Quick. Per ulteriori informazioni, consulta [Configurazione di Quick nella Guida rapida per](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html) *l'utente*.
+ L'utente deve disporre delle autorizzazioni necessarie AWS Identity and Access Management (IAM) per inviare le previsioni a Quick. L'amministratore può configurare le autorizzazioni IAM per l'utente. Per ulteriori informazioni, consulta [Concedere agli utenti le autorizzazioni per inviare previsioni a](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-quicksight-permissions.html) Quick.
+ Quick deve avere accesso al bucket Amazon S3 che hai specificato per lo storage delle applicazioni Canvas. Per ulteriori informazioni, consulta [Configurazione dello storage Amazon S3](canvas-storage-configuration.md).

# Previsioni delle serie temporali in Amazon Canvas SageMaker
<a name="canvas-time-series"></a>

**Nota**  
I modelli di previsione di serie temporali sono supportati solo per set di dati tabellari.

Amazon SageMaker Canvas ti offre la possibilità di utilizzare previsioni di serie temporali basate sull'apprendimento automatico. Le previsioni di serie temporali offrono la possibilità di generare previsioni che possono variare nel tempo.

Puoi fare una previsione di serie temporale per i seguenti esempi:
+ Previsione del tuo inventario nei prossimi mesi.
+ Numero di articoli venduti nei prossimi quattro mesi.
+ Effetto della riduzione del prezzo sulle vendite durante le festività natalizie.
+ Inventario degli articoli nei 12 mesi successivi.
+ Numero di clienti che entrano in un negozio nelle prossime ore.
+ Previsione di come una riduzione del 10% del prezzo di un prodotto influenzi le vendite in un dato periodo di tempo.

Per fare una previsione di serie temporali, il set di dati deve avere quanto segue:
+ Una colonna di timestamp in cui tutti i valori sono di tipo `datetime`.
+ Una colonna di destinazione che contiene i valori che usi per prevedere i valori futuri.
+ Una colonna ID elemento che contiene identificatori univoci per ogni elemento del tuo set di dati, come i numeri SKU.

I valori `datetime` nella colonna di timestamp devono utilizzare uno dei seguenti formati:
+ `YYYY-MM-DD HH:MM:SS`
+ `YYYY-MM-DDTHH:MM:SSZ`
+ `YYYY-MM-DD`
+ `MM/DD/YY`
+ `MM/DD/YY HH:MM`
+ `MM/DD/YYYY`
+ `YYYY/MM/DD HH:MM:SS`
+ `YYYY/MM/DD`
+ `DD/MM/YYYY`
+ `DD/MM/YY`
+ `DD-MM-YY`
+ `DD-MM-YYYY`

Puoi fare previsioni per i seguenti intervalli:
+ 1 minuto
+ 5 minuti
+ 15 minuti
+ 30 minuti
+ 1 ora
+ 1 giorno
+ 1 settimana
+ 1 mese
+ 1 anno

## Valori futuri nel tuo set di dati di input
<a name="canvas-time-series-future"></a>

Canvas rileva automaticamente le colonne nel set di dati che potrebbero potenzialmente contenere valori futuri. Se presenti, questi valori possono migliorare l'accuratezza delle previsioni. Canvas contrassegna queste colonne specifiche con un'etichetta `Future values`. Canvas inferisce la relazione tra i dati in queste colonne e la colonna di destinazione che stai cercando di prevedere e utilizza tale relazione per generare previsioni più accurate.

Ad esempio, puoi prevedere la quantità di gelati venduti da un negozio di alimentari. Per fare una previsione, è necessario disporre di una colonna di timestamp e di una colonna che indichi la quantità di gelato venduta dal negozio di alimentari. Per una previsione più accurata, il set di dati può includere anche il prezzo, la temperatura ambiente, il gusto del gelato o un identificatore univoco per il gelato.

Le vendite di gelati potrebbero aumentare quando il clima è più caldo. Una diminuzione del prezzo del gelato potrebbe comportare un aumento delle unità vendute. Avere una colonna con i dati sulla temperatura ambiente e una colonna con i dati sui prezzi può migliorare la capacità di prevedere il numero di unità di gelato vendute dal negozio di alimentari.

Sebbene fornire valori futuri sia facoltativo, aiuta a eseguire analisi condizionali direttamente nell'applicazione Canvas, mostrandoti come le modifiche ai valori futuri potrebbero alterare le tue previsioni.

## Gestione dei valori mancanti
<a name="canvas-time-series-missing"></a>

Potresti avere dei dati mancanti per diversi motivi. Il motivo dei dati mancanti potrebbe indicare il modo in cui desideri che Canvas li attribuisca. Ad esempio, la tua organizzazione potrebbe utilizzare un sistema automatico che tiene traccia solo di quando avviene una vendita. Se utilizzi un set di dati proveniente da questo tipo di sistema automatico, nella colonna di destinazione mancheranno dei valori.

**Importante**  
Se nella colonna di destinazione mancano dei valori, ti consigliamo di utilizzare un set di dati che non li contiene. SageMaker Canvas utilizza la colonna di destinazione per prevedere i valori futuri. I valori mancanti nella colonna di destinazione possono ridurre notevolmente l'accuratezza della previsione.

Per i valori mancanti nel set di dati, Canvas attribuisce automaticamente i valori mancanti, riempiendo la colonna di destinazione con `0` e le altre colonne numeriche con il valore mediano della colonna.

Tuttavia, puoi selezionare la tua logica di riempimento per la colonna di destinazione e altre colonne numeriche nei tuoi set di dati. Le colonne di destinazione hanno linee guida e restrizioni di riempimento diverse rispetto al resto delle colonne numeriche. Le colonne di destinazione vengono riempite fino alla fine del periodo storico, mentre le colonne numeriche vengono riempite sia nei periodi storici che in quelli futuri, fino alla fine dell'orizzonte di previsione. Canvas inserisce i valori futuri in una colonna numerica solo se i dati hanno almeno una voce con un timestamp futuro e un valore per quella colonna specifica.

Puoi scegliere una delle seguenti opzioni della logica di riempimento per attribuire i valori mancanti nei tuoi dati:
+ `zero`: riempi con `0`.
+ `NaN`: riempi con NaN o non con un numero. Questo è supportato solo per la colonna di destinazione.
+ `mean`: riempi con il valore medio dalla serie di dati.
+ `median`: riempi con il valore mediano dalla serie di dati.
+ `min`: riempi con il valore minimo dalla serie di dati.
+ `max`: riempi con il valore massimo dalla serie di dati.

Quando scegli una logica di riempimento, devi considerare come la logica verrà interpretata dal modello. Ad esempio, in uno scenario di vendita al dettaglio, registrare zero vendite per un articolo disponibile è diverso rispetto a registrare zero vendite di un articolo non disponibile, in quanto quest'ultima condizione non implica una mancanza di interesse del cliente per l'articolo. In questo caso, il riempimento con `0` nella colonna di destinazione del set di dati potrebbe far sì che il modello sia meno preciso nelle sue previsioni e inferisca uno scarso interesse da parte dei clienti per gli articoli non disponibili. Al contrario, il riempimento con `NaN` potrebbe far sì che il modello ignori le occorrenze reali di zero articoli venduti tra gli articoli disponibili.

## Tipi di previsioni
<a name="canvas-time-series-types"></a>

Puoi creare uno dei seguenti tipi di previsioni:
+ **Elemento singolo**
+ **Tutti gli elementi**

Per una previsione su tutti gli elementi del set di dati, SageMaker Canvas restituisce una previsione per i valori futuri per ogni elemento del set di dati.

Per una previsione a singolo articolo, si specifica l'articolo e SageMaker Canvas restituisce una previsione per i valori futuri. La previsione include un grafico a linee che riporta i valori previsti nel tempo.

**Topics**
+ [Valori futuri nel tuo set di dati di input](#canvas-time-series-future)
+ [Gestione dei valori mancanti](#canvas-time-series-missing)
+ [Tipi di previsioni](#canvas-time-series-types)
+ [Opzioni aggiuntive per le informazioni approfondite di previsione](canvas-additional-insights.md)

# Opzioni aggiuntive per le informazioni approfondite di previsione
<a name="canvas-additional-insights"></a>

In Amazon SageMaker Canvas, puoi utilizzare i seguenti metodi opzionali per ottenere maggiori informazioni dalle tue previsioni:
+ Colonna gruppo
+ Pianificazione festività
+ Scenario condizionale

Puoi specificare una colonna nel tuo set di dati come **colonna gruppo**. Amazon SageMaker Canvas raggruppa la previsione in base a ciascun valore nella colonna. Ad esempio, puoi raggruppare la previsione in colonne contenenti dati su prezzi o identificatori univoci degli articoli. Raggruppare una previsione per colonna ti consente di fare previsioni più specifiche. Ad esempio, se raggruppi una previsione in una colonna contenente gli identificatori degli articoli, puoi visualizzare la previsione per ogni articolo.

Le vendite complessive degli articoli potrebbero essere condizionate dalla presenza di festività. Ad esempio, negli Stati Uniti, il numero di articoli venduti a novembre e dicembre potrebbe differire notevolmente dal numero di articoli venduti a gennaio. Se utilizzi i dati di novembre e dicembre per prevedere le vendite di gennaio, i risultati potrebbero essere imprecisi. Avvalersi di una pianificazione delle festività evita la formulazione di risultati imprecisi. Puoi utilizzare una pianificazione delle festività per 251 paesi.

Per una previsione su un singolo elemento del set di dati, puoi utilizzare scenari condizionali. Uno scenario condizionale offre la possibilità di modificare i valori nei tuoi dati e modificare la previsione. Ad esempio, puoi rispondere alle seguenti domande utilizzando uno scenario condizionale:  “E se abbassassi i prezzi? In che modo ciò influirebbe sul numero di articoli venduti?”

# Aggiungere versioni del modello in Amazon SageMaker Canvas
<a name="canvas-update-model"></a>

In Amazon SageMaker Canvas, puoi aggiornare i modelli che hai creato aggiungendo *versioni*. Ogni modello che crei ha un numero di versione. Il primo modello è la versione 1 oppure `V1`. Puoi utilizzare le versioni del modello per visualizzare le modifiche nella precisione delle previsioni quando aggiorni i dati o utilizzi [trasformazioni avanzate](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-prepare-data.html).

Durante la visualizzazione del modello, SageMaker Canvas mostra la cronologia del modello in modo da poter confrontare tutte le versioni del modello che hai creato. Puoi anche eliminare le versioni che non ti sono più utili. Creando più versioni del modello e valutandone l’accuratezza, puoi migliorare le prestazioni del modello in modo iterativo.

**Nota**  
I modelli di previsione di testo e immagini supportano solo una versione del modello.

Per aggiungere una versione del modello, puoi clonare una versione esistente o crearne una nuova. 

La clonazione di una versione esistente copia la configurazione del modello corrente, inclusa la ricetta del modello e il set di dati di input. In alternativa, puoi creare una nuova versione se intendi configurare una nuova ricetta del modello o scegliere un set di dati diverso. 

Se crei una nuova versione e selezioni un set di dati diverso, devi scegliere un set di dati con la stessa colonna di destinazione e lo stesso schema del set di dati della versione 1.

Prima di aggiungere una nuova versione, devi creare correttamente almeno una versione del modello. Quindi, è possibile [registrare una versione del modello nel Registro dei SageMaker modelli](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-register-model.html). Utilizza il registro per tenere traccia delle versioni del modello e collaborare con gli utenti di Studio Classic sulle approvazioni dei modelli di produzione.

Se hai eseguito una build rapida per la tua prima versione del modello, hai la possibilità di eseguire una build standard quando aggiungi una versione. Le build standard generalmente sono più precise. Quindi, se ritieni che la configurazione con la build rapida sia valida, puoi eseguire una build standard per creare una versione finale del modello. Per ulteriori informazioni sulle differenze tra build rapide e build standard, consulta [Funzionamento dei modelli personalizzati](canvas-build-model.md).

Le procedure seguenti mostrano come aggiungere versioni del modello. La procedura cambia a seconda che la versione aggiunta sia abbia lo stesso tipo di build o un tipo di build diverso (rapida o standard). Utilizza la procedura **Per aggiungere una nuova versione del modello** per aggiungere versioni con lo stesso tipo di build. Per aggiungere una versione del modello con la build standard dopo aver eseguito una build rapida, segui la procedura **Per eseguire una build standard**.

**Per aggiungere una nuova versione del modello**

1. Apri l'applicazione SageMaker Canvas. Per ulteriori informazioni, consulta [Guida introduttiva all'utilizzo di Amazon SageMaker Canvas](canvas-getting-started.md).

1. Nel riquadro di navigazione a sinistra scegli **I miei modelli**.

1. Nella pagina **I miei modelli**, scegli il tuo modello. Scegli **Filtra per tipo di problema** per trovare il tuo modello.

1. Dopo l’apertura del modello, scegli il pulsante **Aggiungi versione** nel pannello superiore.

1. Utilizza il menu a discesa per selezionare una delle seguenti opzioni:

   1. **Aggiungi una nuova versione da zero**: quando selezioni questa opzione, la scheda **Crea** si apre con la bozza per una nuova versione del modello. Puoi selezionare un set di dati diverso (purché lo schema corrisponda allo schema del set di dati della prima versione del modello) e configurare una nuova ricetta del modello. Per ulteriori informazioni sulla creazione di una versione del modello, consulta [Crea un modello](canvas-build-model-how-to.md).

   1. **Clona una versione esistente con configurazioni**: una finestra di dialogo richiede di selezionare la versione da clonare. Dopo aver selezionato la versione desiderata, scegli **Clona**. La scheda **Crea** si apre con la bozza per una nuova versione del modello. Tutte le configurazioni della ricetta del modello vengono copiate dalla versione clonata. Per ulteriori informazioni sulla creazione di una versione del modello, consulta [Crea un modello](canvas-build-model-how-to.md).

**Per eseguire una build standard**

1. Apri la tua applicazione SageMaker Canvas. Per ulteriori informazioni, consulta [Guida introduttiva all'utilizzo di Amazon SageMaker Canvas](canvas-getting-started.md).

1. Nel riquadro di navigazione a sinistra scegli **I miei modelli**.

1. Nella pagina **I miei modelli**, scegli il tuo modello. Scegli **Filtra per tipo di problema** per trovare facilmente il tuo modello.

1. Dopo l’apertura del modello, scegli la scheda **Analizza**.

1. Scegli **Build standard**.  
![\[La scheda Analizza di un modello Canvas che mostra il pulsante della build standard.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-add-version-quick-to-standard.png)

   Nella pagina con la bozza del modello visualizzata nella scheda **Crea**, puoi modificare la configurazione del modello e avviare una build. Per ulteriori informazioni sulla creazione di una versione del modello, consulta [Crea un modello](canvas-build-model-how-to.md).

A questo punto, la creazione di una nuova versione del modello dovrebbe essere in corso. Per ulteriori informazioni sulla creazione di un modello, consulta [Funzionamento dei modelli personalizzati](canvas-build-model.md).

Dopo aver creato una versione del modello, puoi tornare alla pagina dei dettagli del modello in qualsiasi momento per visualizzare tutte le versioni o aggiungerne altre. L’immagine seguente mostra la pagina **Versioni** per un modello.

![\[Pagina delle versioni del modello per un modello in Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/model-versions.png)


Nella pagina **Versioni**, puoi visualizzare le seguenti informazioni per ciascuna delle versioni del tuo modello:
+ **Stato**: questo campo indica se il modello è attualmente in fase di creazione (`In building`), se è stato creato (`Ready`), se la creazione non è riuscita (`Failed`) o se è ancora in fase di modifica (`In draft`).
+ **Punteggio del modello**, **F1**, **Precisione**, **Richiamo** e **AUC**: se premi il tasto **Mostra parametri avanzati** in questa pagina, puoi visualizzare questi parametri del modello. Questi parametri indicano l'accuratezza e le prestazioni del tuo modello. Per ulteriori informazioni, consulta [Evaluate your Model](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-evaluate-model.html).
+ **Condiviso**: questo campo indica se hai condiviso la versione del modello con gli utenti di SageMaker Studio Classic.
+ **Registro dei modelli**: questo campo indica se la versione è stata registrata o meno in un registro dei modelli. Per ulteriori informazioni, consulta [Registra una versione del modello nel registro dei modelli AI SageMaker](canvas-register-model.md).

# MLOps
<a name="canvas-mlops"></a>

Dopo aver creato un modello in SageMaker Canvas di cui ti senti sicuro, potresti voler integrare il tuo modello con i processi di machine learning operations (MLOps) della tua organizzazione. MLOps include attività comuni come l'implementazione di un modello da utilizzare in produzione o la configurazione di pipeline di integrazione continua e distribuzione continua (CI/CD).

I seguenti contenuti descrivono come utilizzare le funzionalità di Canvas per utilizzare in produzione un modello creato in Canvas.

**Topics**
+ [Registra una versione del modello nel registro dei modelli AI SageMaker](canvas-register-model.md)
+ [Distribuzione di modelli su un endpoint](canvas-deploy-model.md)
+ [Visualizzazione delle distribuzioni](canvas-deploy-model-view.md)
+ [Aggiornamento di una configurazione della distribuzione](canvas-deploy-model-update.md)
+ [Test della distribuzione](canvas-deploy-model-test.md)
+ [Invocazione del tuo endpoint](canvas-deploy-model-invoke.md)
+ [Eliminazione della distribuzione di un modello](canvas-deploy-model-delete.md)

# Registra una versione del modello nel registro dei modelli AI SageMaker
<a name="canvas-register-model"></a>

Con SageMaker Canvas, puoi creare più iterazioni, o versioni, del tuo modello per migliorarlo nel tempo. Potresti voler creare una nuova versione del tuo modello se acquisisci dati di addestramento migliori o se vuoi provare a migliorare la precisione del modello. Per ulteriori informazioni sull'aggiunta di versioni al modello, consulta [Update a model](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-update-model.html).

Dopo aver [creato un modello](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html) di cui ti senti sicuro, potresti volerne valutare le prestazioni e farlo esaminare da un data scientist o da un MLOps ingegnere della tua organizzazione prima di utilizzarlo in produzione. A tale scopo, è possibile registrare le versioni del modello [nel SageMaker Model Registry](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry.html). Il SageMaker Model Registry è un repository che i data scientist o gli ingegneri possono utilizzare per catalogare i modelli di machine learning (ML) e gestire le versioni dei modelli e i relativi metadati associati, come le metriche di formazione. Possono anche gestire e registrare lo stato di approvazione di un modello.

Dopo aver registrato le versioni del modello nel SageMaker Model Registry, un data scientist o il tuo MLOps team possono accedere al SageMaker Model Registry tramite [SageMaker Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html), un ambiente di sviluppo integrato (IDE) basato sul Web per lavorare con modelli di apprendimento automatico. Nell'interfaccia SageMaker Model Registry di Studio Classic, il data scientist o il MLOps team possono valutare il modello e aggiornarne lo stato di approvazione. Se il modello non soddisfa i requisiti, il data scientist o il MLOps team possono aggiornare lo stato a`Rejected`. Se il modello soddisfa i requisiti richiesti, il data scientist o il MLOps team possono aggiornare lo stato a`Approved`. Quindi, possono [distribuire il modello su un endpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/deploy-model.html#deploy-model-prereqs) o [automatizzare l'implementazione del modello](https://aws.amazon.com/blogs/machine-learning/building-automating-managing-and-scaling-ml-workflows-using-amazon-sagemaker-pipelines/) con pipeline. CI/CD Puoi utilizzare la funzionalità di registro dei modelli SageMaker AI per integrare senza problemi i modelli integrati in Canvas con i processi della MLOps tua organizzazione.

Il diagramma seguente riassume un esempio di registrazione di una versione del modello integrata in Canvas nel Model Registry per l' SageMaker integrazione in un flusso di lavoro. MLOps 

![\[I passaggi per la registrazione di una versione del modello integrata in Canvas per l'integrazione in un flusso di lavoro. MLOps\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-model-registration-diagram.jpg)


È possibile registrare versioni di modelli tabulari, di immagini e di testo nel SageMaker Model Registry. Ciò include modelli di previsione delle serie temporali e modelli di JumpStart base [ottimizzati](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-fm-chat-fine-tune.html) sulla base.

**Nota**  
Al momento, non è possibile registrare modelli di base ottimizzati basati su Amazon Bedrock e integrati in Canvas nel Model Registry. SageMaker 

Le seguenti sezioni mostrano come registrare una versione del modello nel Model Registry da Canvas SageMaker .

## Gestione delle autorizzazioni
<a name="canvas-register-model-prereqs"></a>

Per impostazione predefinita, disponete delle autorizzazioni per registrare le versioni del modello nel SageMaker Model Registry. SageMaker L'intelligenza artificiale concede queste autorizzazioni per tutti i profili utente Canvas nuovi ed esistenti tramite la [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)policy, che è allegata al ruolo di esecuzione AWS IAM per il dominio SageMaker AI che ospita l'applicazione Canvas.

Se l'amministratore di Canvas sta configurando un nuovo dominio o profilo utente, mentre configura il dominio e segue le istruzioni sui prerequisiti nella [guida introduttiva](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html#canvas-prerequisites), SageMaker AI attiva le autorizzazioni di registrazione del modello tramite l'opzione di **configurazione delle autorizzazioni ML Ops**, che è abilitata per impostazione predefinita.

L’amministratore di Canvas può gestire le autorizzazioni di registrazione del modello anche a livello di profilo utente. Ad esempio, se l’amministratore desidera concedere le autorizzazioni di registrazione del modello ad alcuni profili utente, ma rimuovere le autorizzazioni ad altri, può modificare le autorizzazioni per un utente specifico. La procedura seguente spiega come fare per non concedere le autorizzazioni di registrazione del modello a un profilo utente specifico:

1. Apri la console SageMaker AI all'indirizzo. [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1. Dall’elenco di domini, seleziona il dominio del profilo utente.

1. Nella pagina **Dettagli del dominio**, scegli il **Profilo utente** di cui desideri modificare le autorizzazioni.

1. Nella pagina **Dettagli utente** scegli **Modifica**.

1. Nel riquadro di navigazione sinistro, seleziona **Impostazioni Canvas**.

1. Nella sezione **Configurazione delle autorizzazioni MLOps**, disattiva l'interruttore **Abilita le autorizzazioni di registrazione nel registro dei modelli**.

1. Scegli **Invia** per salvare le modifiche alle impostazioni del dominio.

Quel profilo utente non dovrebbe più disporre delle autorizzazioni di registrazione del modello.

## Registra una versione del modello nel registro dei modelli SageMaker AI
<a name="canvas-register-model-register"></a>

SageMaker Model Registry tiene traccia di tutte le versioni del modello create per risolvere un particolare problema in un *gruppo di modelli*. Quando si crea un modello SageMaker Canvas e lo si registra nel SageMaker Model Registry, questo viene aggiunto a un gruppo di modelli come nuova versione del modello. Ad esempio, se create e registrate quattro versioni del modello, un data scientist o un MLOps team che lavora nell'interfaccia del SageMaker Model Registry può visualizzare il gruppo di modelli e rivedere tutte e quattro le versioni del modello in un unico posto.

Quando si registra un modello Canvas nel Model SageMaker Registry, viene creato automaticamente un gruppo di modelli che prende il nome dal modello Canvas. Facoltativamente, potete rinominarlo con un nome a vostra scelta o utilizzare un gruppo di modelli esistente nel Model SageMaker Registry. Per ulteriori informazioni sulla creazione di un modello, consulta [Create a Model Group](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry-model-group.html).

**Nota**  
Attualmente, è possibile registrare solo i modelli integrati in Canvas nel SageMaker Model Registry con lo stesso account.

Per registrare una versione del modello nel SageMaker Model Registry dall'applicazione Canvas, utilizzate la seguente procedura:

1. Aprite l'applicazione SageMaker Canvas.

1. Nel riquadro di navigazione a sinistra scegli **I miei modelli**.

1. Nella pagina **I miei modelli**, scegli il tuo modello. Puoi usare la funzionalità **Filtra per tipo di problema** per trovare il tuo modello più facilmente.

1. Dopo aver scelto il modello, si apre la pagina **Versioni**, che elenca tutte le versioni del tuo modello. Puoi attivare l'opzione **Mostra parametri avanzati** per visualizzare parametri avanzati come **Richiamo** e **Precisione**, per confrontare le versioni del modello e scegliere quale vuoi registrare.

1. Dall'elenco delle versioni del modello, per la versione che desideri registrare, scegli l'icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)). In alternativa, puoi fare doppio clic sulla versione da registrare, quindi nella pagina dei dettagli della versione scegli l'icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. Nell'elenco a discesa, scegli **Aggiungi al registro dei modelli**. Viene visualizzata la finestra di dialogo **Aggiungi al registro dei modelli**.

1. Nella finestra di dialogo **Aggiungi al registro dei modelli**, esegui una delle azioni indicate di seguito:

   1. (Facoltativo) Nella sezione **Gruppo di modelli SageMaker Studio Classic**, nel campo **Nome gruppo di modelli**, inserite il nome del gruppo di modelli in cui desiderate registrare la versione. Puoi specificare il nome per un nuovo gruppo di modelli che SageMaker AI crea per te oppure puoi specificare un gruppo di modelli esistente. Se non specifichi questo campo, Canvas registra la versione in un gruppo di modelli predefinito con lo stesso nome del modello.

   1. Scegli **Aggiungi**.

La versione del modello dovrebbe ora essere registrata nel gruppo di modelli nel SageMaker Model Registry. Quando registrate una versione del modello in un gruppo di modelli nel registro dei SageMaker modelli, tutte le versioni successive del modello Canvas vengono registrate nello stesso gruppo di modelli (se scegliete di registrarle). Se registrate le vostre versioni in un gruppo di modelli diverso, dovete andare al SageMaker Model Registry ed [eliminare il gruppo di modelli](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry-delete-model-group.html). Quindi, puoi registrare nuovamente le versioni del tuo modello nel nuovo gruppo di modelli.

Per visualizzare lo stato dei tuoi modelli, puoi tornare alla pagina **Versioni** del tuo modello nell'applicazione Canvas. Questa pagina mostra lo stato di ciascuna versione nel **registro dei modelli**. Se lo stato è `Registered`, il modello è stato registrato con successo.

Se desideri visualizzare i dettagli della versione registrata del modello relativi allo stato nel **registro dei modelli**, puoi passare il mouse sul campo **Registrati** per visualizzare la finestra pop-up **Dettagli del registro dei modelli**. Questi dettagli contengono informazioni aggiuntive, come ad esempio:
+ Il **nome del gruppo di pacchetti Model** è il gruppo di modelli in cui è registrata la versione nel SageMaker Model Registry.
+ Lo **stato dell’approvazione**, che può essere `Pending Approval`, `Approved`, o `Rejected`. Se un utente di Studio Classic approva o rifiuta la versione nel SageMaker Model Registry, questo stato viene aggiornato nella pagina delle versioni del modello quando si aggiorna la pagina.

Lo screenshot seguente mostra la casella **Dettagli del registro dei modelli**, insieme a **Stato dell’approvazione** di `Approved` per questa particolare versione del modello.

![\[Schermata della casella dei dettagli del SageMaker Model Registry nell'applicazione Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/approved-mr.png)


# Distribuzione di modelli su un endpoint
<a name="canvas-deploy-model"></a>

In Amazon SageMaker Canvas, puoi distribuire i tuoi modelli su un endpoint per fare previsioni. SageMaker L'intelligenza artificiale ti fornisce l'infrastruttura ML per ospitare il tuo modello su un endpoint con le istanze di calcolo che preferisci. Quindi, puoi *invocare* l'endpoint (inviare una richiesta di previsione) e ottenere una previsione in tempo reale dal tuo modello. Con questa funzionalità, puoi utilizzare il modello in produzione per rispondere alle richieste in arrivo e puoi integrarlo con applicazioni e flussi di lavoro esistenti.

Per iniziare, devi disporre di un modello pronto per l’implementazione. Puoi distribuire versioni di modelli personalizzate che hai creato, modelli Amazon SageMaker JumpStart Foundation e modelli di base ottimizzati JumpStart . Per ulteriori informazioni sulla creazione di un modello in Canvas, consulta [Funzionamento dei modelli personalizzati](canvas-build-model.md). Per ulteriori informazioni sui modelli di JumpStart base in Canvas, consulta. [Modelli di base generativi di intelligenza artificiale in Canvas SageMaker](canvas-fm-chat.md)

Consulta la sezione **Permissions management**, quindi inizia a creare nuove distribuzioni nella sezione **Deploy a model**.

## Gestione delle autorizzazioni
<a name="canvas-deploy-model-prereqs"></a>

Per impostazione predefinita, disponi delle autorizzazioni per distribuire modelli sugli endpoint di SageMaker AI Hosting. SageMaker L'intelligenza artificiale concede queste autorizzazioni per tutti i profili utente Canvas nuovi ed esistenti tramite la [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)policy, che è allegata al ruolo di esecuzione AWS IAM per il dominio SageMaker AI che ospita l'applicazione Canvas.

Se l'amministratore di Canvas sta configurando un nuovo dominio o profilo utente, quando configura il dominio e segue le istruzioni preliminari contenute in[Prerequisiti per la configurazione di Amazon Canvas SageMaker](canvas-getting-started.md#canvas-prerequisites), SageMaker AI attiva le autorizzazioni di distribuzione del modello tramite l'opzione **Abilita la distribuzione diretta dei modelli Canvas**, che è abilitata per impostazione predefinita.

L’amministratore di Canvas può gestire le autorizzazioni per distribuire il modello anche a livello di profilo utente. Ad esempio, se l’amministratore non intende concedere le autorizzazioni di implementazione dei modelli a tutti i profili utente durante la configurazione di un dominio, può concederle a utenti specifici dopo aver creato il dominio.

La procedura seguente spiega come modificare le autorizzazioni di implementazione dei modelli per un profilo utente specifico:

1. Apri la console SageMaker AI all'indirizzo. [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni admin**, scegli **Domini**.

1. Dall’elenco di domini, seleziona il dominio del profilo utente.

1. Nella pagina **Dettagli del dominio**, seleziona la scheda **Profili utente**.

1. Scegli il tuo **Profilo utente**.

1. Nella pagina del profilo utente, seleziona la scheda **Configurazioni app**.

1. Nella sezione **Canvas**, scegli **Modifica**.

1. Nella sezione **Configurazione di MLOps**, disattiva l’interruttore **Abilita l’implementazione diretta dei modelli Canvas** per abilitare le autorizzazioni di implementazione.

1. Scegli **Invia** per salvare le modifiche alle impostazioni del dominio.

Il profilo utente ora dispone delle autorizzazioni di implementazione dei modelli.

Dopo aver concesso le autorizzazioni al dominio o al profilo utente, assicurati che l’utente si disconnetta dall’applicazione Canvas e acceda nuovamente per applicare le modifiche alle autorizzazioni.

## Distribuzione di un modello
<a name="canvas-deploy-model-deploy"></a>

Per iniziare a distribuire il modello, crea una nuova distribuzione in Canvas e specifica la versione del modello che desideri distribuire, oltre all'infrastruttura ML, ad esempio il tipo e il numero di istanze di calcolo che desideri utilizzare per ospitare il modello.

Canvas suggerisce un tipo e un numero di istanze predefiniti in base al tipo di modello, oppure puoi saperne di più sui vari tipi di istanze SageMaker AI nella [pagina SageMaker dei prezzi di Amazon](https://aws.amazon.com/sagemaker/pricing/). L'addebito si basa sul prezzo dell'istanza SageMaker AI mentre l'endpoint è attivo.

Quando implementate i modelli di JumpStart base, avete anche la possibilità di specificare la durata del tempo di implementazione. Puoi implementare il modello su un endpoint a tempo indeterminato (il che significa che l’endpoint resta attivo fino a quando non elimini l’implementazione). Oppure, se hai bisogno dell'endpoint solo per un breve periodo di tempo e desideri ridurre i costi, puoi implementare il modello su un endpoint per un determinato periodo di tempo, dopodiché l' SageMaker IA spegne l'endpoint per te.

**Nota**  
Se implementi un modello per un periodo di tempo specificato, resta connesso all’applicazione Canvas per tutta la durata dell’endpoint. Se ti disconnetti o elimini l’applicazione, Canvas non può chiudere l’endpoint all’ora specificata.

*Dopo aver distribuito il modello su un endpoint di [inferenza in tempo reale di SageMaker AI Hosting, puoi iniziare a fare previsioni richiamando l'endpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints.html).*

Esistono diversi modi per implementare un modello dall’applicazione Canvas. Puoi accedere all'opzione di distribuzione del modello tramite uno dei seguenti metodi:
+ Nella pagina **I miei modelli** dell’applicazione Canvas, puoi scegliere il modello da implementare. Quindi, dalla pagina **Versioni** del modello, scegli l’icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) accanto a una versione del modello e seleziona **Implementa**.
+ Nella pagina dei dettagli di una versione del modello, nella scheda **Analizza**, scegli l’opzione **Implementa**.
+ Nella pagina dei dettagli di una versione del modello, nella scheda **Prevedi**, scegli l’icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) nella parte superiore della pagina e seleziona **Implementa**.
+ Nella pagina **MLOps** dell’applicazione Canvas, scegli la scheda **Implementazioni** e seleziona **Crea implementazione**.
+ **Per i modelli di JumpStart base e i modelli di base ottimizzati, vai alla pagina dei modelli dell'applicazione Canvas. Ready-to-use ** Scegli **Genera, estrai e riepiloga il contenuto**. Quindi, trova il modello di JumpStart base o il modello di base ottimizzato che desideri implementare. Scegli il modello e, nella pagina della chat del modello, scegli il pulsante **Implementa**.

Tutti questi metodi aprono il pannello laterale **Distribuisci modello**, in cui puoi specificare la configurazione di distribuzione per il tuo modello. Per distribuire il modello da questo pannello, procedi come segue:

1. (Facoltativo) Se crei un’implementazione dalla pagina **MLOps**, puoi scegliere l’opzione **Seleziona modello e versione**. Utilizza i menu a discesa per selezionare il modello e la versione del modello che desideri distribuire.

1. Immetti un nome nel campo **Nome distribuzione**.

1. **(Solo per i modelli di JumpStart base e i modelli di base ottimizzati) Scegli una durata di implementazione.** Seleziona **Indefinito** per lasciare l’endpoint attivo finché non lo chiudi oppure seleziona **Specifica durata** e indica per quanto tempo desideri che l’endpoint rimanga attivo.

1. Per quanto riguarda il **tipo di istanza**, l' SageMaker intelligenza artificiale rileva un tipo e un numero di istanza predefiniti adatti al tuo modello. Tuttavia, puoi modificare il tipo di istanza che desideri utilizzare per ospitare il modello.
**Nota**  
Se esaurisci la quota di istanze per il tipo di istanza scelto sul tuo AWS account, puoi richiedere un aumento della quota. Per ulteriori informazioni sulle quote predefinite e su come richiedere un aumento, consulta gli [endpoint e le quote di Amazon SageMaker AI nella guida](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html) di riferimento *AWS generale*.

1. Per quanto riguarda il **numero di istanze**, puoi impostare il numero di istanze attive utilizzate per il tuo endpoint. SageMaker L'intelligenza artificiale rileva un numero predefinito adatto al tuo modello, ma puoi modificare questo numero.

1. Quando sei pronto per distribuire il modello, scegli **Distribuisci**.

Il modello dovrebbe ora essere distribuito su un endpoint.

# Visualizzazione delle distribuzioni
<a name="canvas-deploy-model-view"></a>

Potresti voler controllare lo stato o i dettagli della distribuzione di un modello in Amazon SageMaker Canvas. Ad esempio, se la distribuzione non è riuscita, potresti volerne controllare i dettagli per la risoluzione dei problemi.

Puoi visualizzare le distribuzioni del modello Canvas dall'applicazione Canvas o dalla console Amazon SageMaker AI.

Per visualizzare i dettagli della distribuzione da Canvas, scegli una delle procedure seguenti:

Per visualizzare i dettagli dell’implementazione nella pagina **MLOps**, procedi come descritto di seguito:

1. Apri l'applicazione SageMaker Canvas.

1. Nel riquadro di navigazione a sinistra, scegli **MLOps**.

1. Seleziona la scheda **Distribuzioni**.

1. Scegli il nome della tua distribuzione dall’elenco.

Per visualizzare i dettagli della distribuzione dalla pagina delle versioni di un modello, procedi come segue:

1. Nell'applicazione SageMaker Canvas, vai alla pagina dei dettagli della versione del tuo modello.

1. Scegli la scheda **Distribuisci**.

1. Trova la tua distribuzione nella sezione **Distribuzioni ** che elenca tutte le configurazioni di distribuzione associate a quella versione del modello.

1. Scegli l'icona **Altre opzioni** (![\[More options icon for the output CSV file.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), quindi seleziona **Visualizza dettagli** per aprire la pagina dei dettagli.

Si aprirà la pagina dei dettagli della distribuzione e potrai visualizzare informazioni come l'ora della previsione più recente, lo stato e la configurazione dell'endpoint e la versione del modello attualmente distribuita sull'endpoint.

[Puoi anche visualizzare le istanze e gli endpoint attivi dell'area di lavoro Canvas attualmente attivi dalla **dashboard SageMaker AI nella SageMaker console AI**.](https://console.aws.amazon.com/sagemaker/) I tuoi endpoint Canvas sono elencati insieme a tutti gli altri endpoint di SageMaker AI Hosting che hai creato e puoi filtrarli cercando gli endpoint con il tag Canvas.

La schermata seguente mostra la dashboard AI. SageMaker Nella sezione **Canvas**, puoi vedere che un'istanza del workspace è in servizio e quattro endpoint sono attivi.

![\[Schermata della dashboard SageMaker AI che mostra le istanze e gli endpoint attivi del workspace Canvas.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-sagemaker-dashboard.png)


# Aggiornamento di una configurazione della distribuzione
<a name="canvas-deploy-model-update"></a>

Puoi aggiornare la configurazione di distribuzione per i modelli che hai distribuito sugli endpoint in Amazon SageMaker Canvas. Ad esempio, puoi distribuire una versione aggiornata del modello sull'endpoint oppure aggiornare il tipo o il numero di istanze alla base dell'endpoint in base alle tue esigenze di capacità.

Esistono diversi modi per aggiornare la tua distribuzione dall'applicazione Canvas. Puoi utilizzare uno dei seguenti metodi:
+ Nella pagina **MLOps** dell’applicazione Canvas, puoi scegliere la scheda **Implementazioni** e quindi selezionare l’implementazione da aggiornare. Quindi, seleziona **Aggiorna configurazione**.
+ Nella pagina dei dettagli di una versione del modello, nella scheda **Distribuisci**, puoi visualizzare le distribuzioni per quella versione. Accanto a distribuzione, scegli l'icona **Altre opzioni** (![\[More options icon for the output CSV file.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), quindi scegli **Aggiorna configurazione**.

I due metodi precedentemente indicati aprono il pannello laterale **Aggiorna configurazione**, in cui puoi apportare modifiche alla configurazione della distribuzione. Per aggiornare la configurazione, procedi in uno dei seguenti modi:

1. Nel menu a discesa **Seleziona versione**, puoi selezionare una diversa versione del modello da distribuire sull'endpoint.
**Nota**  
Quando aggiorni una configurazione della distribuzione, puoi scegliere solo una diversa versione del modello da distribuire. Per distribuire un modello diverso, crea una nuova distribuzione.

1. In **Tipo di istanza**, puoi selezionare un altro tipo di istanza per ospitare il tuo modello.

1. In **Conteggio istanze**, puoi impostare il numero di istanze attive utilizzate per il tuo endpoint.

1. Scegli **Save** (Salva).

La configurazione della distribuzione dovrebbe essere ora aggiornata.

# Test della distribuzione
<a name="canvas-deploy-model-test"></a>

Puoi testare l'implementazione di un modello richiamando l'endpoint o effettuando singole richieste di previsione tramite l'applicazione Amazon SageMaker Canvas. Puoi utilizzare questa funzionalità per confermare che l'endpoint risponda alle richieste prima di invocarlo in modo programmatico in un ambiente di produzione.

## Test di un’implementazione di un modello personalizzato
<a name="canvas-deploy-model-test-custom"></a>

Puoi testare l’implementazione di un modello personalizzato accedendovi tramite la pagina **MLOps** ed effettuando una singola invocazione, che restituisce una previsione insieme alla probabilità che la previsione sia corretta.

**Nota**  
La durata dell'esecuzione è una stima del tempo impiegato per invocare un endpoint e ottenere una risposta in Canvas. [Per metriche dettagliate sulla latenza, consulta SageMaker AI Endpoint Invocation Metrics.](https://docs.aws.amazon.com/sagemaker/latest/dg/monitoring-cloudwatch.html#cloudwatch-metrics-endpoint-invocation)

Per testare l'endpoint tramite l'applicazione Canvas, procedi come segue:

1.  SageMaker Apri l'applicazione Canvas.

1. Nel riquadro di navigazione a sinistra, scegli **MLOps**.

1. Seleziona la scheda **Distribuzioni**.

1. Nell'elenco delle distribuzioni, scegli quella con l'endpoint che desideri invocare.

1. Nella pagina dei dettagli della distribuzione, scegli la scheda **Testa distribuzione**.

1. Nella pagina per testare la distribuzione, puoi modificare i campi **Valore** per specificare un nuovo punto dati. Per i modelli di previsione delle serie temporali, devi specificare l’**ID elemento** per il quale generare una previsione.

1. Dopo aver modificato i valori, scegli **Aggiorna** per ottenere il risultato della previsione.

La previsione viene caricata insieme ai campi **Risultati dell'invocazione**, che indicano se l’invocazione ha avuto esito positivo o meno e il tempo impiegato per l'elaborazione della richiesta.

Lo screenshot seguente mostra una previsione generata nell'applicazione Canvas nella scheda **Testa distribuzione**.

![\[L’applicazione Canvas che mostra una previsione di test per un modello implementato.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/canvas-test-deployments.png)


Per tutti i tipi di modello, tranne che per i tipi numerico e delle serie temporali, la previsione restituisce i seguenti campi:
+  **etichetta\$1prevista**: l'output previsto
+  **probabilità**: la probabilità che l'etichetta prevista sia corretta
+  **etichette**: l'elenco di tutte le etichette possibili
+  **possibilità**: le possibilità corrispondenti a ciascuna etichetta (l'ordine di questo elenco corrisponde all'ordine delle etichette)

Per i modelli di previsione numerica, la previsione contiene solo il campo **punteggio**, che è l'output previsto del modello, ad esempio il prezzo previsto di una casa.

Per i modelli di previsione delle serie temporali, la previsione è un grafo che mostra le previsioni per quantile. Puoi scegliere la **visualizzazione Schema** per vedere i valori numerici previsti per ogni quantile.

Puoi continuare a generare previsioni singole tramite la pagina di test della distribuzione oppure puoi consultare la sezione seguente [Invocazione del tuo endpoint](canvas-deploy-model-invoke.md) per scoprire come invocare l'endpoint in modo programmatico dalle applicazioni.

## Prova l'implementazione di un modello JumpStart base
<a name="canvas-deploy-model-test-js"></a>

Puoi chattare con un modello di JumpStart base distribuito tramite l'applicazione Canvas per testarne la funzionalità prima di richiamarlo tramite codice.

Per chattare con un modello di JumpStart base distribuito, procedi come segue:

1. Apri l'applicazione SageMaker Canvas.

1. Nel riquadro di navigazione a sinistra, scegli **MLOps**.

1. Seleziona la scheda **Distribuzioni**.

1. Nell’elenco delle implementazioni, individua quella che desideri invocare e scegli la relativa icona **Altre opzioni** (![\[More options icon for a model deployment.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. Dal menu contestuale, scegli **Testa implementazione**.

1. Si apre una nuova chat **Genera, estrai e riassumi i contenuti** con il modello JumpStart base e puoi iniziare a digitare le istruzioni. Tieni presente che i prompt di questa chat vengono inviati come richieste al tuo endpoint di AI Hosting. SageMaker 

# Invocazione del tuo endpoint
<a name="canvas-deploy-model-invoke"></a>

**Nota**  
Ti consigliamo di [testare la distribuzione del modello in Amazon SageMaker Canvas](canvas-deploy-model-test.md) prima di richiamare un endpoint SageMaker AI a livello di programmazione.

Puoi utilizzare i modelli Amazon SageMaker Canvas che hai distribuito su un endpoint di SageMaker intelligenza artificiale in produzione con le tue applicazioni. [Invoca l'endpoint a livello di codice nello stesso modo in cui richiami qualsiasi altro endpoint AI in tempo reale. SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints.html) L’invocazione di un endpoint in modo programmatico restituisce un oggetto di risposta che contiene gli stessi campi descritti in [Test della distribuzione](canvas-deploy-model-test.md).

Per informazioni più dettagliate su come invocare gli endpoint in modo programmatico, consulta [Invocare modelli per l’inferenza in tempo reale](realtime-endpoints-test-endpoints.md).

I seguenti esempi in Python mostrano come invocare l'endpoint in base al tipo di modello.

## JumpStart modelli di base
<a name="canvas-invoke-js-example"></a>

L'esempio seguente mostra come richiamare un modello di JumpStart base che hai distribuito su un endpoint.

```
import boto3
import pandas as pd

client = boto3.client("runtime.sagemaker")
body = pd.DataFrame(
    [['feature_column1', 'feature_column2'], 
    ['feature_column1', 'feature_column2']]
).to_csv(header=False, index=False).encode("utf-8")
    
response = client.invoke_endpoint(
    EndpointName="endpoint_name",
    ContentType="text/csv",
    Body=body,
    Accept="application/json"
)
```

## Modelli di previsione numerici e categoriali
<a name="canvas-invoke-tabular-example"></a>

L'esempio seguente mostra come invocare modelli di previsione numerici o categoriali.

```
import boto3
import pandas as pd

client = boto3.client("runtime.sagemaker")
body = pd.DataFrame(['feature_column1', 'feature_column2'], ['feature_column1', 'feature_column2']).to_csv(header=False, index=False).encode("utf-8")
    
response = client.invoke_endpoint(
    EndpointName="endpoint_name",
    ContentType="text/csv",
    Body=body,
    Accept="application/json"
)
```

## Modelli di previsione delle serie temporali
<a name="canvas-invoke-forecast-example"></a>

L’esempio seguente mostra come invocare i modelli di previsione delle serie temporali. Per un esempio completo di come testare e richiamare un modello di previsione di serie temporali, consulta [Time-Series Forecasting with Amazon Autopilot](https://github.com/aws/amazon-sagemaker-examples/blob/eef13dae197a6e588a8bc111aba3244f99ee0fbb/autopilot/autopilot_time_series.ipynb). SageMaker 

```
import boto3
import pandas as pd

csv_path = './real-time-payload.csv'
data = pd.read_csv(csv_path)

client = boto3.client("runtime.sagemaker")

body = data.to_csv(index=False).encode("utf-8")
    
response = client.invoke_endpoint(
    EndpointName="endpoint_name",
    ContentType="text/csv",
    Body=body,
    Accept="application/json"
)
```

## Modelli di previsione di immagini
<a name="canvas-invoke-cv-example"></a>

L'esempio seguente mostra come invocare modelli di previsione di immagini.

```
import boto3
client = boto3.client("runtime.sagemaker")
with open("example_image.jpg", "rb") as file:
    body = file.read()
    response = client.invoke_endpoint(
        EndpointName="endpoint_name",
        ContentType="application/x-image",
        Body=body,
        Accept="application/json"
    )
```

## Modelli di previsione di testo
<a name="canvas-invoke-nlp-example"></a>

L'esempio seguente mostra come invocare modelli di previsione di testo.

```
import boto3
import pandas as pd

client = boto3.client("runtime.sagemaker")
body = pd.DataFrame([["Example text 1"], ["Example text 2"]]).to_csv(header=False, index=False).encode("utf-8")
    
response = client.invoke_endpoint(
    EndpointName="endpoint_name",
    ContentType="text/csv",
    Body=body,
    Accept="application/json"
)
```

# Eliminazione della distribuzione di un modello
<a name="canvas-deploy-model-delete"></a>

Puoi eliminare le distribuzioni dei modelli dall'applicazione Amazon SageMaker Canvas. Questa azione elimina anche l'endpoint dalla console SageMaker AI e chiude tutte le risorse relative all'endpoint.

**Nota**  
[Facoltativamente, puoi eliminare l'endpoint tramite la console AI o utilizzando l'SageMaker API AI.](https://console.aws.amazon.com/sagemaker/) SageMaker `DeleteEndpoint` Per ulteriori informazioni, consulta [Elimina endpoint e risorse](realtime-endpoints-delete-resources.md). Tuttavia, quando elimini l'endpoint tramite la console SageMaker AI o APIs anziché l'applicazione Canvas, l'elenco delle distribuzioni in Canvas non viene aggiornato automaticamente. Devi eliminare la distribuzione anche dall'applicazione Canvas per rimuoverla dall'elenco.

Per eliminare una distribuzione in Canvas, procedi come segue:

1. Apri l'applicazione Canvas. SageMaker 

1. Nel riquadro di navigazione a sinistra, scegli **MLOps**.

1. Seleziona la scheda **Distribuzioni**.

1. Dall'elenco delle distribuzioni, scegli quella che desideri eliminare.

1. Nella parte superiore della pagina dei dettagli della distribuzione, scegli l'icona **Altre opzioni** (![\[More options icon for the output CSV file.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. Scegli **Elimina distribuzione**.

1. Nella finestra di dialogo ** Elimina distribuzione**, scegli **Elimina**.

L'endpoint di implementazione e di hosting SageMaker AI dovrebbero ora essere eliminati sia da Canvas che dalla console SageMaker AI.

# Come gestire le automazioni
<a name="canvas-manage-automations"></a>

In SageMaker Canvas, puoi creare automazioni che aggiornano il tuo set di dati o generano previsioni dal tuo modello in base a una pianificazione. Ad esempio, potresti ricevere nuovi dati di spedizione su base giornaliera. Puoi impostare un aggiornamento automatico per il tuo set di dati e previsioni in batch automatiche che vengono generate ogni volta che il set di dati viene aggiornato. Utilizzando queste funzionalità, puoi configurare un flusso di lavoro automatizzato e ridurre il tempo impiegato per aggiornare manualmente i set di dati e generare previsioni.

**Nota**  
Puoi impostare un massimo di 20 configurazioni automatiche nell’applicazione Canvas. Le automazioni sono attive solo quando viene effettuato l'accesso all'applicazione Canvas. Se esci da Canvas, i tuoi processi automatici vengono messi in pausa fino a quando non effettui nuovamente l'accesso.

Le sezioni seguenti spiegano come visualizzare, modificare ed eliminare le configurazioni per le automazioni esistenti. Per informazioni su come configurare le automazioni, consulta i seguenti contenuti:
+ Per configurare gli aggiornamenti automatici dei set di dati, consulta [Aggiornamento di un set di dati](canvas-update-dataset.md).
+ Per configurare previsioni in batch automatiche, consulta [Previsioni in batch in Canvas SageMaker](canvas-make-predictions-batch.md).

**Topics**
+ [Visualizzazione delle automazioni](canvas-manage-automations-view.md)
+ [Modifica delle configurazioni automatiche](canvas-manage-automations-edit.md)
+ [Eliminazione di una configurazione automatica](canvas-manage-automations-delete.md)

# Visualizzazione delle automazioni
<a name="canvas-manage-automations-view"></a>

Puoi anche visualizzare tutti i processi di aggiornamento automatico accedendo al riquadro di navigazione a sinistra di Canvas e scegliendo **MLOps**. La pagina **Automazioni** combina le automazioni sia per gli aggiornamenti automatici dei set di dati che per le previsioni in batch automatiche. Nella pagina **Automazioni**, puoi visualizzare le seguenti schede secondarie:
+ **Tutti i processi**: puoi visualizzare ogni istanza di un processo di **Aggiornamento del set di dati** o di **Previsione in batch** eseguito da Canvas. Per ogni processo, puoi visualizzare campi come il **set di dati di input** associato, il **nome di configurazione** della configurazione di aggiornamento automatico associata e **lo stato** che mostra se il processo ha avuto successo o meno. Puoi filtrare i processi in base al nome della configurazione:
  + Per i processi di aggiornamento del set di dati, puoi scegliere la versione più recente del set di dati o il processo più recente per visualizzare l'anteprima del set di dati.
  + Per i processi di previsione in batch, puoi scegliere l’icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) per visualizzare o scaricare le previsioni per il processo selezionato. Puoi anche scegliere **Visualizza dettagli** per visualizzare ulteriori dettagli sul processo di previsione. Per ulteriori informazioni sul processo di previsione in batch, consulta [Visualizzazione dei processi di previsione in batch](canvas-make-predictions-batch-auto-view.md).
+ **Configurazione**: puoi visualizzare tutte le configurazioni di **aggiornamento del set di dati** e di **previsione in batch** che hai creato. Per ogni configurazione, puoi visualizzare campi come il **set di dati di input** associato e la **frequenza** dei processi. Puoi anche disattivare o attivare l'interruttore **Aggiornamento automatico** per mettere in pausa o riprendere gli aggiornamenti automatici. Se scegli l'icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) per una configurazione specifica, puoi scegliere tra **Visualizza tutti i processi** per la configurazione, **Aggiorna configurazione** o **Elimina configurazione**.

# Modifica delle configurazioni automatiche
<a name="canvas-manage-automations-edit"></a>

Dopo aver impostato una configurazione, potresti voler apportare delle modifiche. Per gli aggiornamenti automatici dei set di dati, puoi aggiornare la posizione Amazon S3 per Canvas per importare dati, frequenza degli aggiornamenti e ora di inizio. Per le previsioni in batch automatiche, puoi modificare il set di dati di cui la configurazione tiene traccia per gli aggiornamenti. Puoi anche disattivare l'automazione per sospendere temporaneamente gli aggiornamenti fino a quando non decidi di riattivarli.

Le sezioni seguenti spiegano come aggiornare ogni tipo di configurazione.

**Nota**  
Non puoi modificare la frequenza delle previsioni in batch automatiche perché queste vengono eseguite ogni volta che il set di dati di destinazione viene aggiornato.

**Topics**
+ [Modifica della configurazione di aggiornamento automatico del set di dati](canvas-manage-automations-edit-dataset.md)
+ [Modifica della configurazione della previsione in batch automatica](canvas-manage-automations-edit-batch.md)

# Modifica della configurazione di aggiornamento automatico del set di dati
<a name="canvas-manage-automations-edit-dataset"></a>

Potresti voler apportare modifiche alla configurazione dell'aggiornamento automatico per un set di dati, ad esempio cambiando la frequenza degli aggiornamenti. Potresti anche voler disattivare la configurazione di aggiornamento automatico per sospendere gli aggiornamenti del tuo set di dati.

Per modificare la configurazione degli aggiornamenti automatici per un set di dati, procedi come segue:

1. Nel riquadro di navigazione a sinistra in Canvas scegli **MLOps**.

1. Scegli la scheda **Automazioni**.

1. Scegli la scheda **Configurazione**.

1. Per la configurazione dell’aggiornamento automatico, scegli l'icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. Dal menu a discesa, scegli **Aggiorna configurazione**. Verrai reindirizzato alla scheda **Aggiornamenti automatici** del set di dati.

1. Apporta le modifiche alla configurazione. Una volta completate le modifiche, scegli **Salva**.

Per sospendere gli aggiornamenti dei set di dati, disattiva la configurazione automatica. Uno dei modi per disattivare gli aggiornamenti automatici è il seguente:

1. Nel riquadro di navigazione a sinistra in Canvas scegli **MLOps**.

1. Scegli la scheda **Automazioni**.

1. Scegli la scheda ** Configurazione**.

1. Trova la tua configurazione dall'elenco e disattiva l'opzione **Aggiornamento automatico**.

Gli aggiornamenti automatici per il tuo set di dati sono ora in pausa. Per riprendere la pianificazione degli aggiornamenti puoi riattivare l’opzione in qualsiasi momento.

# Modifica della configurazione della previsione in batch automatica
<a name="canvas-manage-automations-edit-batch"></a>

Quando modifichi una configurazione della previsione in batch, puoi modificare il set di dati di destinazione ma non la frequenza (poiché le previsioni in batch automatiche vengono eseguite ogni volta che il set di dati viene aggiornato).

Per modificare la configurazione delle previsioni in batch automatiche per un set di dati, procedi come segue:

1. Nel riquadro di navigazione a sinistra in Canvas scegli **MLOps**.

1. Scegli la scheda **Automazioni**.

1. Scegli la scheda **Configurazione**.

1. Per la configurazione dell’aggiornamento automatico, scegli l'icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. Dal menu a discesa, scegli **Aggiorna configurazione**. Verrai reindirizzato alla scheda **Aggiornamenti automatici** del set di dati.

1. Si apre la finestra di dialogo **Automatizza previsioni in batch**. Puoi selezionare un altro set di dati e scegliere **Configura** per salvare le modifiche.

La configurazione delle previsioni in batch automatiche è ora aggiornata.

Per mettere in pausa le previsioni in batch automatiche, disattiva la configurazione automatica. Per disattivare la tua configurazione, procedi come segue:

1. Nel riquadro di navigazione a sinistra in Canvas scegli **MLOps**.

1. Scegli la scheda **Automazioni**.

1. Scegli la scheda ** Configurazione**.

1. Trova la tua configurazione dall'elenco e disattiva l'opzione **Aggiornamento automatico**.

Le previsioni in batch automatiche sono ora in pausa. Per riprendere la pianificazione degli aggiornamenti, puoi riattivare l’opzione in qualsiasi momento.

# Eliminazione di una configurazione automatica
<a name="canvas-manage-automations-delete"></a>

Potresti voler eliminare una configurazione per interrompere il flusso di lavoro automatizzato in SageMaker Canvas.

Per eliminare una configurazione per gli aggiornamenti automatici dei set di dati o per le previsioni in batch automatiche, procedi come segue:

1. Nel riquadro di navigazione a sinistra in Canvas scegli **MLOps**.

1. Scegli la scheda **Automazioni**.

1. Scegli la scheda **Configurazione**.

1. Trova la tua configurazione dell’aggiornamento automatico e scegli l'icona **Altre opzioni** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. Scegli **Elimina configurazione**.

1. Nella finestra di dialogo che viene visualizzata, scegli **Elimina**.

La tua configurazione dell’aggiornamento automatico è ora eliminata.

# Disconnettersi da Amazon Canvas SageMaker
<a name="canvas-log-out"></a>

Dopo aver completato il lavoro in Amazon SageMaker Canvas, puoi disconnetterti o configurare l'applicazione per terminare automaticamente l'istanza del *workspace*. Ogni volta che avvii un’applicazione Canvas, ti viene assegnata in modo esclusivo un’istanza dello spazio di lavoro e ti viene addebitato il costo per l’intera durata dell’esecuzione dell’istanza. La disconnessione o la chiusura dell’istanza dello spazio di lavoro ne arresta la fatturazione. Per ulteriori informazioni, consultare [SageMaker Prezzi](https://aws.amazon.com/sagemaker/pricing/).

Le sezioni seguenti descrivono come disconnettersi dall’applicazione Canvas e come configurare l’applicazione in modo che si chiuda automaticamente in base a una pianificazione.

## Disconnessione da Canvas
<a name="canvas-log-out-how-to"></a>

Quando esci da Canvas, i modelli e i set di dati non si interrompono. Tutte le build di modelli rapide o standard o i [processi di elaborazione grandi quantità di dati](canvas-export-data.md#canvas-export-data-s3) continuano a funzionare anche dopo la disconnessione.

Per disconnetterti, scegli il pulsante **Esci** (![\[Filter icon in the SageMaker Canvas app.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/canvas/logout-icon.png)) nel pannello sinistro dell'applicazione SageMaker Canvas.

Puoi anche disconnetterti dall'applicazione SageMaker Canvas chiudendo la scheda del browser e quindi [eliminando l'applicazione](canvas-manage-apps-delete.md) nella console.

Dopo la disconnessione, SageMaker Canvas ti dice di riavviarlo in una scheda diversa. L’accesso richiede circa 1 minuto. Se hai un amministratore che ha configurato SageMaker Canvas per te, usa le istruzioni che ti hanno fornito per accedere nuovamente. Se non hai un amministratore, consulta la procedura per accedere a SageMaker Canvas in[Prerequisiti per la configurazione di Amazon Canvas SageMaker](canvas-getting-started.md#canvas-prerequisites).

## Chiusura automatica di Canvas
<a name="canvas-auto-shutdown"></a>

Gli amministratori di Canvas potrebbero voler chiudere regolarmente le applicazioni per ridurre i costi. Puoi creare una pianificazione per chiudere le applicazioni Canvas attive oppure un’automazione per chiudere le applicazioni Canvas non appena diventano *inattive* (ovvero quando l’utente non è attivo da due ore).

Puoi creare queste soluzioni utilizzando AWS Lambda funzioni che richiamano l'`DeleteApp`API ed eliminano le applicazioni Canvas a determinate condizioni. Per ulteriori informazioni su queste soluzioni e sull'accesso ai CloudFormation modelli che puoi utilizzare, consulta il blog [Ottimizzazione dei costi per Amazon SageMaker Canvas con lo spegnimento automatico delle](https://aws.amazon.com/blogs/machine-learning/optimizing-costs-for-amazon-sagemaker-canvas-with-automatic-shutdown-of-idle-apps/) app inattive.

**Nota**  
Potresti riscontrare la mancanza dei CloudWatch parametri di [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) se si è verificato un errore durante l'impostazione del programma di spegnimento delle attività o un CloudWatch errore. Ti consigliamo di aggiungere un CloudWatch allarme che monitora le metriche mancanti. Se riscontri questo problema, Supporto chiedi aiuto.

# Limitazioni e risoluzione dei problemi
<a name="canvas-limits"></a>

La sezione seguente descrive la guida alla risoluzione dei problemi e le limitazioni che si applicano all'utilizzo di Amazon SageMaker Canvas. Puoi utilizzare questi argomenti per risolvere eventuali problemi riscontrati.

## Risoluzione dei problemi relativi alla concessione delle autorizzazioni tramite la console AI SageMaker
<a name="canvas-troubleshoot-trusted-services"></a>

Se hai problemi a concedere le autorizzazioni di base o le autorizzazioni per Ready-to-use i modelli Canvas al tuo utente, l'utente potrebbe avere un ruolo di esecuzione AWS IAM con più di una relazione di fiducia con altri servizi. AWS Una relazione di attendibilità è una policy collegata al tuo ruolo che definisce quali principali (utenti, ruoli, account o servizi) possono assumere il ruolo. Ad esempio, potresti riscontrare un problema nel concedere autorizzazioni Canvas aggiuntive al tuo utente se il suo ruolo di esecuzione ha una relazione di fiducia sia con Amazon SageMaker AI che con Amazon Forecast.

Puoi risolvere questo problema scegliendo una delle seguenti opzioni.

### 1. Rimuovi tutti i servizi attendibili, tranne uno, dal ruolo.
<a name="canvas-troubleshoot-trusted-services-remove"></a>

Questa soluzione richiede la modifica della relazione di fiducia per il ruolo IAM del tuo profilo utente e la rimozione di tutti i AWS servizi tranne SageMaker l'IA.

Per modificare la relazione di attendibilità per il ruolo di esecuzione IAM, procedi come segue:

1. Vai alla console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel pannello di navigazione della console IAM seleziona **Ruoli**. La console visualizza i ruoli del tuo account.

1. Seleziona il nome del ruolo che intendi modificare, quindi seleziona la scheda **Relazioni di attendibilità** nella pagina dei dettagli.

1. Seleziona **Modifica policy di attendibilità**.

1. Nell’editor **Modifica policy di attendibilità**, incolla quanto indicato di seguito, quindi seleziona **Aggiorna policy**.

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

****  

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

------

Inoltre puoi aggiornare questo documento di policy utilizzando l'interfaccia a riga di comando IAM. Per ulteriori informazioni, consulta [update-trust](https://docs.aws.amazon.com/cli/latest/reference/ds/update-trust.html) in *IAM command line reference*.

Ora puoi riprovare a concedere le autorizzazioni di base di Canvas o le autorizzazioni dei Ready-to-use modelli al tuo utente.

### 2. Usa un ruolo diverso con uno o meno servizi attendibili.
<a name="canvas-troubleshoot-trusted-services-alternate"></a>

Questa soluzione richiede di specificare un ruolo IAM diverso per il tuo profilo utente. Utilizza questa opzione se disponi già di un ruolo IAM da poter sostituire.

Per specificare un ruolo di esecuzione diverso per l'utente, procedi come segue:

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1. Dall’elenco di domini, seleziona il dominio per il quale desideri visualizzare un elenco di profili utente.

1. Nella pagina **Dettagli del dominio**, seleziona la scheda **Profili utente**.

1. Scegli l'utente per cui desideri modificare le autorizzazioni. Nella pagina **Dettagli utente**, scegli **Modifica**.

1. Nella pagina **Impostazioni generali**, scegli l'elenco a discesa **Ruolo di esecuzione** e seleziona il ruolo che desideri utilizzare.

1. Scegli **Invia** per salvare le modifiche al profilo utente.

Il tuo utente dovrebbe ora utilizzare un ruolo di esecuzione con un solo servizio affidabile (SageMaker AI).

Puoi riprovare a concedere le autorizzazioni di base di Canvas o le autorizzazioni dei Ready-to-use modelli al tuo utente.

### 3. Associa manualmente la policy AWS gestita al ruolo di esecuzione invece di utilizzare l'interruttore nelle impostazioni del dominio AI. SageMaker
<a name="canvas-troubleshoot-trusted-services-manual"></a>

Invece di utilizzare l’opzione attiva/disattiva nelle impostazioni del dominio o del profilo utente, puoi collegare manualmente le policy gestite da AWS che concedono a un utente le autorizzazioni corrette.

Per concedere a un utente le autorizzazioni di base Canvas, allega la policy. [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess) Per concedere le autorizzazioni a un Ready-to-use modello utente, allega la politica di [AmazonSageMakerCanvasAIServicesaccesso](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess).

Utilizza la seguente procedura per allegare una politica AWS gestita al tuo ruolo:

1. Vai alla console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Scegli **Ruoli**.

1. Nella casella di ricerca, cerca il ruolo IAM dell'utente per nome, quindi selezionalo.

1. Nella pagina del ruolo dell'utente, in **Autorizzazioni**, scegli **Aggiungi autorizzazioni**.

1. Dal menu a discesa scegli **Collega policy**.

1. Cerca e seleziona la policy o le policy che desideri collegare al ruolo di esecuzione dell'utente:

   1. Per concedere le autorizzazioni di base a Canvas, cerca e seleziona la [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess)policy.

   1. Per concedere le autorizzazioni ai Ready-to-use modelli, cerca e seleziona la politica di [AmazonSageMakerCanvasAIServicesaccesso](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess).

1. Scegli **Aggiungi autorizzazioni** per collegare la policy al ruolo.

Dopo aver associato una policy AWS gestita al ruolo dell'utente tramite la console IAM, l'utente dovrebbe ora disporre delle autorizzazioni di base di Canvas o Ready-to-use delle autorizzazioni dei modelli.

## Risoluzione dei problemi relativi alla creazione di un’applicazione Canvas dovuti a errori associati allo spazio
<a name="canvas-troubleshoot-spaces"></a>

Quando si crea una nuova applicazione Canvas, se si verifica un errore che indica che la creazione dello spazio Amazon SageMaker Studio sottostante non è riuscita. `Unable to create app <app-arn> because space <space-arn> is not in InService state` Uno *spazio* Studio è l’archiviazione sottostante che ospita i dati dell’applicazione Canvas. Per informazioni generali sugli spazi Studio, consulta [Spazi Amazon SageMaker Studio](studio-updated-spaces.md). Per ulteriori informazioni sulla configurazione degli spazi in Canvas, consulta [Archivia i dati delle applicazioni SageMaker Canvas nel tuo spazio AI SageMaker](canvas-spaces-setup.md).

Per determinare la causa principale del motivo per cui la creazione dello spazio non è riuscita, puoi utilizzare l'[DescribeSpace](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeSpace.html)API per controllare il `FailureReason` campo. Per ulteriori informazioni sui possibili stati degli spazi e sul loro significato, consulta [Entità e stati del dominio Amazon SageMaker AI](sm-domain.md).

Per risolvere questo problema, trova il tuo dominio nella console SageMaker AI ed elimina lo spazio di errore elencato nel messaggio di errore che hai ricevuto. Per la procedura dettagliata su come trovare ed eliminare uno spazio, consulta la pagina [Arresto ed eliminazione delle applicazioni e degli spazi in esecuzione in Studio](studio-updated-running-stop.md) e segui le istruzioni per **eliminare uno spazio Studio**. L’eliminazione dello spazio elimina anche tutte le applicazioni ad esso associate. Dopo aver eliminato lo spazio, puoi provare a creare nuovamente l’applicazione Canvas. Ora lo spazio dovrebbe essere allocato correttamente e dovrebbe permettere l’avvio di Canvas.

# Fatturazione e costi in Canvas SageMaker
<a name="canvas-manage-cost"></a>

Per tenere traccia dei costi associati alla tua applicazione SageMaker Canvas, puoi utilizzare il Gestione dei costi e fatturazione AWS servizio. Billing and Cost Management offre strumenti utili per raccogliere informazioni relative a costi e utilizzo, analizzare i driver di costo e le tendenze di utilizzo e intraprendere azioni per tenere sotto controllo le spese. Per ulteriori informazioni, consulta [What is Gestione dei costi e fatturazione AWS?](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-what-is.html)

La fatturazione in SageMaker Canvas è composta dai seguenti componenti:
+ Addebiti per le istanze Workspace: ti viene addebitato il numero di ore in cui accedi o utilizzi Canvas. SageMaker Per ridurre i costi, ti consigliamo di disconnetterti o di creare una pianificazione per chiudere tutte le applicazioni Canvas che non utilizzi attivamente. Per ulteriori informazioni, consulta [Disconnettersi da Amazon Canvas SageMaker](canvas-log-out.md).
+ AWS costi di servizio: ti vengono addebitati i costi per la creazione e l'elaborazione di previsioni con modelli personalizzati o per l'elaborazione di previsioni con modelli: Ready-to-use
  + Costi di addestramento: per tutti i tipi di modelli, i costi vengono addebitati in base all’uso delle risorse durante la creazione del modello. Queste risorse includono tutte le istanze di calcolo avviate da Canvas. Potresti visualizzare questi addebiti sul tuo account come processi di hosting, addestramento, elaborazione o trasformazione di batch.
  + Costi di previsione: ti vengono addebitati i costi per le risorse utilizzate per generare previsioni, a seconda del tipo di modello personalizzato creato o del tipo di Ready-to-use modello utilizzato.

I [Ready-to-use modelli](canvas-ready-to-use-models.md) di Canvas sfruttano altri AWS servizi per generare previsioni. Quando utilizzi un Ready-to-use modello, ti viene addebitato il relativo servizio e si applicano le relative condizioni di prezzo:
+ Per l'analisi del sentiment, l'estrazione di entità, il rilevamento della lingua e il rilevamento delle informazioni personali, ti verranno addebitati i costi indicati in [Prezzi di Amazon Comprehend](https://aws.amazon.com/comprehend/pricing/).
+ Per il rilevamento di oggetti e testo nelle immagini, ti verranno addebitati i costi indicati in [Prezzi di Amazon Rekognition](https://aws.amazon.com/rekognition/pricing/).
+ Per l'analisi delle spese, l'analisi dei documenti di identità e l'analisi di documenti, ti verranno addebitati i costi indicati in [Prezzi di Amazon Textract](https://aws.amazon.com/textract/pricing/).

Per ulteriori informazioni, consulta [SageMaker Prezzi di Canvas](https://aws.amazon.com/sagemaker/canvas/pricing/).

Per aiutarti a tenere traccia dei costi in Billing and Cost Management, puoi assegnare tag personalizzati all' SageMaker app Canvas e agli utenti. Puoi tenere traccia dei costi sostenuti dalle app e, taggando i singoli profili utente, puoi tenere traccia anche dei costi in base al profilo utente. Per ulteriori informazioni sui tag, consulta [Using Cost Allocation Tags](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html).

Puoi aggiungere tag all'app SageMaker Canvas e agli utenti procedendo come segue:
+ Se stai configurando il tuo dominio Amazon SageMaker AI e SageMaker Canvas per la prima volta, segui le istruzioni [Getting Started](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html) e aggiungi tag quando crei il dominio o gli utenti. Puoi aggiungere tag tramite le **Impostazioni generali** nella configurazione della console di dominio o tramite APIs ([CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html)o [CreateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html)). SageMaker AI aggiunge i tag specificati nel tuo dominio o UserProfile a qualsiasi app o utente SageMaker Canvas che crei dopo aver creato il dominio.
+ Se desideri aggiungere tag alle app in un dominio esistente, devi aggiungere tag al dominio o al UserProfile. Puoi aggiungere tag tramite la console o l'[AddTags](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html)API. Se aggiungi tag tramite la console, devi eliminare e riavviare l'app SageMaker Canvas per propagare i tag all'app. Se utilizzi l'API, i tag vengono aggiunti all'app direttamente. [Per ulteriori informazioni sull'eliminazione e il riavvio di un'app Canvas, consulta Gestire le app. SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-manage-apps.html)

Dopo aver aggiunto i tag al dominio, potrebbero essere necessarie fino a 24 ore prima che i tag vengano visualizzati nella console per l' Gestione dei costi e fatturazione AWS attivazione. Una volta visualizzati nella console, occorrono altre 24 ore prima che i tag risultino attivati.

Nella pagina **Cost Explorer**, puoi raggruppare e filtrare i costi in base a tag e tipi di utilizzo per separare i costi delle istanze del spazio di lavoro da quelli per l’addestramento. I costi per ciascun elemento sono elencati come descritto di seguito:
+ Costi delle istanze dello spazio di lavoro: gli addebiti vengono visualizzati sotto il tipo di utilizzo `REGION-Canvas:Session-Hrs (Hrs)`.
+ Costi di formazione: i costi vengono visualizzati nei tipi di utilizzo per i lavori di SageMaker AI Hosting, Training, Processing o Batch Transform.

# Funzionalità SageMaker geospaziali di Amazon
<a name="geospatial"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata Amazon SageMaker Studio Classic. Se prima del 30 novembre 2023 hai creato un dominio Amazon SageMaker AI, Studio Classic rimane l'esperienza predefinita. I domini creati dopo il 30 novembre 2023 utilizzano di default la nuova esperienza Studio.  
Le funzionalità e le risorse SageMaker geospaziali di Amazon sono disponibili *solo* in Studio Classic. Per ulteriori informazioni sulla configurazione di un dominio e su come iniziare a utilizzare Studio, consulta [Guida introduttiva ad Amazon SageMaker geospatial](geospatial-getting-started.md).

Le funzionalità SageMaker geospaziali di Amazon consentono ai data scientist e agli ingegneri di machine learning (ML) di creare, addestrare e distribuire modelli ML più velocemente utilizzando dati geospaziali. Puoi accedere a dati e a strumenti di elaborazione e visualizzazione open source e di terze parti, per rendere più efficiente la preparazione dei dati geospaziali per il ML. Puoi aumentare la produttività utilizzando algoritmi appositamente progettati e modelli ML preaddestrati per velocizzare la creazione e l’addestramento dei modelli e utilizzare gli strumenti di visualizzazione integrati per esplorare gli output delle previsioni su una mappa interattiva, quindi collaborare con i team su approfondimenti e risultati.

**Nota**  
Attualmente, le funzionalità SageMaker geospaziali sono supportate solo nella regione degli Stati Uniti occidentali (Oregon).  
Se non vedi l'interfaccia utente SageMaker geospaziale disponibile nella tua attuale istanza di Studio Classic, assicurati di trovarti attualmente nella regione Stati Uniti occidentali (Oregon).
<a name="why-use-geo"></a>
**Perché utilizzare le funzionalità geospaziali? SageMaker**  
Puoi utilizzare le funzionalità SageMaker geospaziali per fare previsioni sui dati geospaziali più velocemente delle soluzioni. do-it-yourself SageMaker le funzionalità geospaziali semplificano l'accesso ai dati geospaziali dai data lake dei clienti esistenti, dai set di dati open source e da altri fornitori di dati geospaziali. SageMaker SageMaker le funzionalità geospaziali riducono al minimo la necessità di creare infrastrutture personalizzate e funzioni di preelaborazione dei dati offrendo algoritmi appositamente progettati per una preparazione efficiente dei dati, l'addestramento dei modelli e l'inferenza. Puoi anche creare e condividere visualizzazioni e dati personalizzati con la tua azienda da Amazon SageMaker Studio Classic. SageMaker le funzionalità geospaziali offrono modelli pre-addestrati per usi comuni in agricoltura, immobili, assicurazioni e servizi finanziari.

## Come posso utilizzare le funzionalità geospaziali? SageMaker
<a name="how-use-geo"></a>

È possibile utilizzare le funzionalità SageMaker geospaziali in due modi.
+ Tramite l'interfaccia utente SageMaker geospaziale, come parte dell'interfaccia utente classica di Amazon SageMaker Studio.
+ Tramite un’istanza del notebook di Studio Classic che utilizza l’immagine **Geospatial 1.0**.

**SageMaker L'intelligenza artificiale ha le seguenti funzionalità geospaziali**
+ Utilizza un'immagine SageMaker geospaziale creata appositamente che supporti istanze di notebook basate su CPU e GPU e includa anche le librerie open source di uso comune presenti nei flussi di lavoro di machine learning geospaziale.
+ Usa Amazon SageMaker Processing e il contenitore SageMaker geospaziale per eseguire carichi di lavoro su larga scala con i tuoi set di dati, tra cui suolo, meteo, clima, LiDAR e immagini aeree e satellitari commerciali.
+ Esegui un [processo di osservazione della terra](https://docs.aws.amazon.com/sagemaker/latest/dg/geospatial-eoj.html) per l'elaborazione di dati raster.
+ Esegui un [processo di arricchimento vettoriale](https://docs.aws.amazon.com/sagemaker/latest/dg/geospatial-vej.html) per convertire latitudine e longitudine in indirizzi leggibili dall'uomo e associare tracce GPS rumorose a strade specifiche.
+ Utilizza gli [strumenti di visualizzazione integrati direttamente in Studio Classic, per visualizzare in modo interattivo i dati geospaziali o le previsioni tramite modello su una mappa](https://docs.aws.amazon.com/sagemaker/latest/dg/geospatial-visualize.html).

Puoi anche utilizzare i dati da una raccolta di fornitori di dati geospaziali. Attualmente, le raccolte dei dati disponibili includono:
+ [https://www.usgs.gov/centers/eros/data-citation?qt-science_support_page_related_con=0#qt-science_support_page_related_con](https://www.usgs.gov/centers/eros/data-citation?qt-science_support_page_related_con=0#qt-science_support_page_related_con)
+ [https://sentinels.copernicus.eu/documents/247904/690755/Sentinel_Data_Legal_Notice](https://sentinels.copernicus.eu/documents/247904/690755/Sentinel_Data_Legal_Notice)
+ [https://sentinel.esa.int/web/sentinel/missions/sentinel-2](https://sentinel.esa.int/web/sentinel/missions/sentinel-2)
+ [https://registry.opendata.aws/copernicus-dem/](https://registry.opendata.aws/copernicus-dem/)
+ [https://registry.opendata.aws/naip/](https://registry.opendata.aws/naip/)

## Sei un utente alle prime armi di SageMaker Geospatial?
<a name="first-time-geospatial-data"></a>

A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata Amazon SageMaker Studio Classic. I nuovi domini creati dopo il 30 novembre 2023 utilizzano come impostazione predefinita l’esperienza Studio. L'accesso ai SageMaker dati geospaziali è limitato a Studio Classic, per ulteriori informazioni consulta. [SageMaker Accedere a geospatial](access-studio-classic-geospatial.md)

Se sei un utente principiante AWS di Amazon SageMaker AI, ti consigliamo di fare quanto segue:

1. **Crea un Account AWS.**

   Per ulteriori informazioni sulla configurazione di un AWS account e su come iniziare a utilizzare l' SageMaker IA, consulta[Prerequisiti completi per Amazon SageMaker AI](gs-set-up.md).

1. **Crea un ruolo utente e un ruolo di esecuzione compatibili con SageMaker geospatial**.

   In quanto servizio gestito, Amazon SageMaker geospatial Capabilities esegue operazioni per tuo conto sull' AWS hardware gestito dall'intelligenza artificiale. SageMaker Un ruolo di esecuzione dell' SageMaker IA può eseguire solo le operazioni concesse dagli utenti. Per utilizzare le funzionalità SageMaker geospaziali, è necessario impostare un ruolo utente e un ruolo di esecuzione. Per ulteriori informazioni, consulta [SageMaker funzionalità geospaziali, ruoli](sagemaker-geospatial-roles.md).

1. **Aggiorna la tua politica di fiducia per** includere le informazioni geospaziali. SageMaker 

   SageMaker geospatial definisce un servizio principale aggiuntivo. Per informazioni su come creare o aggiornare la politica di fiducia del ruolo di esecuzione dell' SageMaker IA, consulta. [Aggiungere  il responsabile del servizio SageMaker geospaziale a un ruolo di esecuzione dell'IA esistente SageMaker](sagemaker-geospatial-roles-pass-role.md)

1. **Configura un dominio Amazon SageMaker AI per accedere ad Amazon SageMaker Studio Classic.**

   Per utilizzare SageMaker geospatial, è necessario un dominio. Per i domini creati prima del 30 novembre 2023, l’esperienza predefinita è Studio Classic. I domini creati dopo il 30 novembre 2023 utilizzano l’esperienza Studio per impostazione predefinita. Per ulteriori informazioni sull’accesso a Studio Classic da Studio, consulta [SageMaker Accedere a geospatial](access-studio-classic-geospatial.md).

1. **Ricorda di chiudere le risorse.**

   Quando hai finito di utilizzare le funzionalità SageMaker geospaziali, chiudi l'istanza su cui è in esecuzione per evitare costi aggiuntivi. Per ulteriori informazioni, consulta [Chiudi le risorse di Amazon SageMaker Studio Classic](notebooks-run-and-manage-shut-down.md). 

**Topics**
+ [Come posso utilizzare le funzionalità geospaziali? SageMaker](#how-use-geo)
+ [Sei un utente alle prime armi di SageMaker Geospatial?](#first-time-geospatial-data)
+ [Guida introduttiva ad Amazon SageMaker geospatial](geospatial-getting-started.md)
+ [Utilizzo di un processo di elaborazione per carichi di lavoro geospaziali personalizzati](geospatial-custom-operations.md)
+ [Processi di osservazione della terra](geospatial-eoj.md)
+ [Processi di arricchimento del vettore](geospatial-vej.md)
+ [Visualizzazione tramite SageMaker funzionalità geospaziali](geospatial-visualize.md)
+ [SDK per SageMaker mappe geospaziali Amazon](geospatial-notebook-sdk.md)
+ [SageMaker Domande frequenti sulle funzionalità geospaziali](geospatial-faq.md)
+ [SageMaker Sicurezza e autorizzazioni geospaziali](geospatial-security-general.md)
+ [Tipi di istanze di calcolo](geospatial-instances.md)
+ [Raccolte dati](geospatial-data-collections.md)

# Guida introduttiva ad Amazon SageMaker geospatial
<a name="geospatial-getting-started"></a>

 SageMaker geospatial fornisce un tipo di **immagine** e **istanza appositamente progettato per i notebook** Amazon SageMaker Studio Classic. **Puoi utilizzare notebook compatibili con CPU o GPU con l'immagine geospaziale. SageMaker ** Puoi visualizzare i dati geospaziali anche utilizzando un visualizzatore appositamente progettato. Inoltre, SageMaker geospatial consente APIs anche di interrogare raccolte di dati raster. È inoltre possibile utilizzare modelli pre-addestrati per analizzare dati geospaziali, geocodifica inversa e corrispondenza delle mappe.

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata Amazon SageMaker Studio Classic. Se prima del 30 novembre 2023 hai creato un dominio Amazon SageMaker AI, Studio Classic rimane l'esperienza predefinita. I domini creati dopo il 30 novembre 2023 utilizzano di default la nuova esperienza Studio.

Per accedere e iniziare a usare Amazon SageMaker geospatial, procedi come segue:

**Topics**
+ [SageMaker Accedere a geospatial](access-studio-classic-geospatial.md)
+ [Crea un notebook Amazon SageMaker Studio Classic utilizzando l'immagine geospaziale](geospatial-launch-notebook.md)
+ [Accesso alla raccolta dei dati raster di Sentinel-2 e creazione di un processo di osservazione della terra per eseguire la segmentazione del suolo](geospatial-demo.md)

# SageMaker Accedere a geospatial
<a name="access-studio-classic-geospatial"></a>

**Nota**  
Attualmente, le funzionalità SageMaker geospaziali sono supportate solo nella regione Stati Uniti occidentali (Oregon) e in Studio Classic.  
Se non vedi l'interfaccia utente SageMaker geospaziale disponibile nella tua attuale istanza di Studio Classic, assicurati di trovarti attualmente nella regione Stati Uniti occidentali (Oregon).

Per accedere a Geospatial è necessario un dominio. SageMaker Se hai creato un dominio prima del 30 novembre 2023, l’esperienza predefinita è Studio Classic.

Se hai creato un dominio dopo il 30 novembre 2023 o se hai effettuato la migrazione a Studio, puoi utilizzare la seguente procedura per attivare Studio Classic dall'interno di Studio per utilizzare le funzionalità geospaziali. SageMaker 

Per ulteriori informazioni sulla creazione di un dominio, consulta [Onboard to Amazon SageMaker AI domain](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-onboard.html).

**Per accedere a Studio Classic da Studio**

1. Avvia Amazon SageMaker Studio.

1. In **Applicazioni**, scegli **Studio Classic**.

1. Quindi, scegli **Crea spazio Studio Classic**.

1. Nella pagina **Crea spazio Studio Classic** inserisci un **nome**.

1. Disattiva l'opzione **Condividi con il mio dominio**. SageMaker geospatial non è disponibile nei domini condivisi.

1. Quindi, scegli **Crea spazio**.

Se l’operazione riesce, lo **stato** passa a **Aggiornamento in corso**. Quando l’applicazione Studio Classic è pronta per essere utilizzata, lo stato cambia in **Arrestato**.

Per avviare l’applicazione Studio Classic, scegli **Esegui**.

# Crea un notebook Amazon SageMaker Studio Classic utilizzando l'immagine geospaziale
<a name="geospatial-launch-notebook"></a>

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata 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](studio-updated.md).  
Studio Classic viene ancora mantenuto per i carichi di lavoro esistenti, ma non è più disponibile per l'onboarding. È possibile solo interrompere o eliminare le applicazioni Studio Classic esistenti e non è possibile crearne di nuove. Ti consigliamo di [migrare il tuo carico di lavoro alla nuova esperienza Studio](studio-updated-migrate.md).

**Nota**  
Attualmente, la tecnologia SageMaker geospaziale è supportata solo nella regione degli Stati Uniti occidentali (Oregon).  
Se non vedi i dati SageMaker geospaziali disponibili nel tuo dominio o nell'istanza di notebook corrente, assicurati di trovarti attualmente nella regione Stati Uniti occidentali (Oregon).

Utilizza la procedura seguente per creare un notebook Studio Classic con l'immagine geospaziale. SageMaker Se la tua esperienza predefinita è Studio, consulta la sezione [SageMaker Accedere a geospatial](access-studio-classic-geospatial.md) per ulteriori informazioni sull’avvio di un’applicazione Studio Classic.

**Per creare un notebook Studio Classic con l'immagine geospaziale SageMaker**

1. Avvio di Studio Classic

1. Scegli **Home** nella barra del menu.

1. In **Operazioni rapide**, scegli **Apri utilità di avvio**.

1. Quando si apre la finestra di dialogo **Utilità di avvio**. Scegli **Modifica ambiente** in **Notebook e risorse di calcolo**.

1. Quindi, viene visualizzata la finestra di dialogo **Modifica ambiente**. Scegli il menu a discesa **Immagine** e seleziona o digita **Geospatial 1.0**.  
![\[Una finestra di dialogo che mostra l'immagine geospaziale corretta e il tipo di istanza selezionato.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/geospatial-environment-dialogue.png)

1. Quindi, scegli un **tipo di istanza** dal menu a discesa.

   SageMaker geospatial supporta due tipi di istanze di notebook: CPU e GPU. L'istanza CPU supportata è denominata **ml.geospatial.interactive**. Qualsiasi istanza GPU della famiglia G5 può essere utilizzata con l'immagine Geospatial 1.0.
**Nota**  
Se ricevi un ResourceLimitExceedederrore durante il tentativo di avviare un'istanza basata su GPU, devi richiedere un aumento della quota. Per richiedere un aumento della quota in Service Quotas, consulta [Requesting a quota increase](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) in *Guida per l'utente di Service Quotas* 

1. Scegli **Seleziona**.

1. Seleziona **Crea notebook**.

[Dopo aver creato un notebook, per saperne di più su SageMaker geospatial, prova il tutorial geospaziale. SageMaker ](geospatial-demo.md) Questo tutorial spiega come elaborare i dati dell’immagine Sentinel-2 e come eseguire la segmentazione del suolo utilizzando l’API dei processi di osservazione della terra. 

# Accesso alla raccolta dei dati raster di Sentinel-2 e creazione di un processo di osservazione della terra per eseguire la segmentazione del suolo
<a name="geospatial-demo"></a>

Questo tutorial basato su Python utilizza l'SDK per Python (Boto3) e un notebook Amazon Studio Classic. SageMaker Per completare correttamente questa demo, assicurati di disporre delle autorizzazioni AWS Identity and Access Management (IAM) necessarie per utilizzare geospatial e Studio Classic. SageMaker SageMaker geospatial richiede la presenza di un utente, gruppo o ruolo che possa accedere a Studio Classic. È inoltre necessario disporre di un ruolo di esecuzione dell' SageMaker IA che specifichi il responsabile del servizio SageMaker geospaziale nella sua politica di fiducia. `sagemaker-geospatial.amazonaws.com` 

[Per ulteriori informazioni su questi requisiti, consulta SageMaker i ruoli IAM geospaziali.](sagemaker-geospatial-roles.md)

Questo tutorial mostra come utilizzare l'API SageMaker geospaziale per completare le seguenti attività:
+ Trovare le raccolte dei dati raster disponibili con `list_raster_data_collections`.
+ Cercare una raccolta dei dati raster specificata utilizzando `search_raster_data_collection`.
+ Creare un processo di osservazione della terra (EOJ) utilizzando `start_earth_observation_job`.

## Utilizzare `list_raster_data_collections` per trovare le raccolte dei dati disponibili
<a name="demo-use-list-rdc"></a>

SageMaker geospatial supporta più raccolte di dati raster. Per ulteriori informazioni sulle raccolte dei dati disponibili, consulta [Raccolte dati](geospatial-data-collections.md).

Questa demo utilizza i dati satellitari raccolti dai satelliti [Sentinel-2 GeoTIFF ottimizzati per il cloud](https://registry.opendata.aws/sentinel-2-l2a-cogs/). Questi satelliti forniscono una copertura globale della superficie terrestre ogni cinque giorni. Oltre a raccogliere immagini della superficie terrestre, i satelliti Sentinel-2 raccolgono anche dati su diverse bande spettrali.

Per cercare un'area di interesse (AOI), hai bisogno dell'ARN associato ai dati satellitari Sentinel-2. Per trovare le raccolte di dati disponibili e quelle associate ARNs nella tua Regione AWS, utilizza l'operazione API. `list_raster_data_collections`

Poiché la risposta può essere impaginata, devi utilizzare l'operazione `get_paginator` affinché restituisca tutti i dati pertinenti:

```
import boto3
import sagemaker
import sagemaker_geospatial_map
import json 

## SageMaker Geospatial  is currently only avaialable in US-WEST-2  
session = boto3.Session(region_name='us-west-2')
execution_role = sagemaker.get_execution_role()

## Creates a SageMaker Geospatial client instance 
geospatial_client = session.client(service_name="sagemaker-geospatial")

# Creates a resusable Paginator for the list_raster_data_collections API operation 
paginator = geospatial_client.get_paginator("list_raster_data_collections")

# Create a PageIterator from the paginator class
page_iterator = paginator.paginate()

# Use the iterator to iterate throught the results of list_raster_data_collections
results = []
for page in page_iterator:
    results.append(page['RasterDataCollectionSummaries'])

print(results)
```

Questo è un esempio di risposta JSON dall'operazione API `list_raster_data_collections`. La risposta è troncata per includere solo la raccolta dei dati (Sentinel-2) utilizzata in questo esempio di codice . Per ulteriori dettagli su una specifica raccolta dei dati raster, usa `get_raster_data_collection`:

```
{
    "Arn": "arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8",
    "Description": "Sentinel-2a and Sentinel-2b imagery, processed to Level 2A (Surface Reflectance) and converted to Cloud-Optimized GeoTIFFs",
    "DescriptionPageUrl": "https://registry.opendata.aws/sentinel-2-l2a-cogs",
    "Name": "Sentinel 2 L2A COGs",
    "SupportedFilters": [
        {
            "Maximum": 100,
            "Minimum": 0,
            "Name": "EoCloudCover",
            "Type": "number"
        },
        {
            "Maximum": 90,
            "Minimum": 0,
            "Name": "ViewOffNadir",
            "Type": "number"
        },
        {
            "Name": "Platform",
            "Type": "string"
        }
    ],
    "Tags": {},
    "Type": "PUBLIC"
}
```

Dopo aver eseguito l'esempio di codice precedente, otterrai l'ARN della raccolta dei dati raster Sentinel-2, `arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8`. Nella [sezione successiva](#demo-search-raster-data), puoi eseguire query sulla raccolta dei dati Sentinel-2 utilizzando l'API `search_raster_data_collection`.

## Ricerca nella raccolta dei dati raster di Sentinel-2 utilizzando `search_raster_data_collection`
<a name="demo-search-raster-data"></a>

Nella sezione precedente, hai utilizzato `list_raster_data_collections` per ottenere l'ARN per la raccolta dei dati di Sentinel-2. Ora puoi usare quell'ARN per cercare la raccolta dei dati su una determinata area di interesse (AOI), intervallo temporale, proprietà e bande UV disponibili.

Per chiamare l'API `search_raster_data_collection` devi inoltrare un Python dizionario al parametro `RasterDataCollectionQuery`. Questo esempio utilizza `AreaOfInterest`, `TimeRangeFilter`, `PropertyFilters` e `BandFilter`. Per semplicità, puoi specificare il dizionario Python usando la variabile **search\$1rdc\$1query** per contenere i parametri di query della ricerca:

```
search_rdc_query = {
    "AreaOfInterest": {
        "AreaOfInterestGeometry": {
            "PolygonGeometry": {
                "Coordinates": [
                    [
                        # coordinates are input as longitute followed by latitude 
                        [-114.529, 36.142],
                        [-114.373, 36.142],
                        [-114.373, 36.411],
                        [-114.529, 36.411],
                        [-114.529, 36.142],
                    ]
                ]
            }
        }
    },
    "TimeRangeFilter": {
        "StartTime": "2022-01-01T00:00:00Z",
        "EndTime": "2022-07-10T23:59:59Z"
    },
    "PropertyFilters": {
        "Properties": [
            {
                "Property": {
                    "EoCloudCover": {
                        "LowerBound": 0,
                        "UpperBound": 1
                    }
                }
            }
        ],
        "LogicalOperator": "AND"
    },
    "BandFilter": [
        "visual"
    ]
}
```

In questo esempio, esegui una query su un oggetto `AreaOfInterest` che include [Lago Mead](https://en.wikipedia.org/wiki/Lake_Mead) nello Utah. Inoltre, Sentinel-2 supporta diversi tipi di bande di immagini. Per misurare la variazione della superficie dell'acqua, è sufficiente la banda `visual`.

Dopo aver creato i parametri di query, puoi utilizzare l'API `search_raster_data_collection` per effettuare la richiesta. 

Il seguente esempio di codice implementa una richiesta API `search_raster_data_collection`. Questa API non supporta l'impaginazione tramite l'API `get_paginator`. Per assicurarsi che sia stata restituita la risposta API completa, l'esempio di codice utilizza un ciclo `while` per verificarne l'`NextToken`esistenza. L'esempio di codice viene quindi utilizzato `.extend()` per aggiungere l'immagine satellitare URLs e altri metadati di risposta a. `items_list` 

Per ulteriori informazioni`search_raster_data_collection`, consulta [SearchRasterDataCollection](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_SearchRasterDataCollection.html)*Amazon SageMaker AI API Reference*.

```
search_rdc_response = sm_geo_client.search_raster_data_collection(
    Arn='arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8',
    RasterDataCollectionQuery=search_rdc_query
)


## items_list is the response from the API request. 
items_list = []

## Use the python .get() method to check that the 'NextToken' exists, if null returns None breaking the while loop 
while search_rdc_response.get('NextToken'):
    items_list.extend(search_rdc_response['Items'])
    search_rdc_response = sm_geo_client.search_raster_data_collection(
        Arn='arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8',
        RasterDataCollectionQuery=search_rdc_query, NextToken=search_rdc_response['NextToken']
    )

## Print the number of observation return based on the query
print (len(items_list))
```

Di seguito è riportato un esempio di risposta JSON alla tua query. La risposta è stata troncata per maggiore chiarezza. Nella coppia chiave-valore `Assets` viene restituito solo il **"BandFilter": ["visual"]** specificato nella richiesta:

```
{
    'Assets': {
        'visual': {
            'Href': 'https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/15/T/UH/2022/6/S2A_15TUH_20220623_0_L2A/TCI.tif'
        }
    },
    'DateTime': datetime.datetime(2022, 6, 23, 17, 22, 5, 926000, tzinfo = tzlocal()),
    'Geometry': {
        'Coordinates': [
            [
                [-114.529, 36.142],
                [-114.373, 36.142],
                [-114.373, 36.411],
                [-114.529, 36.411],
                [-114.529, 36.142],
            ]
        ],
        'Type': 'Polygon'
    },
    'Id': 'S2A_15TUH_20220623_0_L2A',
    'Properties': {
        'EoCloudCover': 0.046519,
        'Platform': 'sentinel-2a'
    }
}
```

Ora che hai i risultati della tua query, puoi visualizzarli nella sezione successiva utilizzando `matplotlib`. Questo serve a verificare che i risultati provengano dalla regione geografica corretta. 

## Visualizzazione di `search_raster_data_collection` utilizzando `matplotlib`
<a name="demo-geospatial-visualize"></a>

Prima di iniziare il processo di osservazione della terra (EOJ), puoi visualizzare un risultato della query con`matplotlib`. Il seguente esempio di codice prende il primo elemento, `items_list[0]["Assets"]["visual"]["Href"]`, dalla variabile `items_list` creata nell'esempio di codice precedente e stampa un'immagine utilizzando `matplotlib`.

```
# Visualize an example image.
import os
from urllib import request
import tifffile
import matplotlib.pyplot as plt

image_dir = "./images/lake_mead"
os.makedirs(image_dir, exist_ok=True)

image_dir = "./images/lake_mead"
os.makedirs(image_dir, exist_ok=True)

image_url = items_list[0]["Assets"]["visual"]["Href"]
img_id = image_url.split("/")[-2]
path_to_image = image_dir + "/" + img_id + "_TCI.tif"
response = request.urlretrieve(image_url, path_to_image)
print("Downloaded image: " + img_id)

tci = tifffile.imread(path_to_image)
plt.figure(figsize=(6, 6))
plt.imshow(tci)
plt.show()
```

Dopo aver verificato che i risultati siano nella regione geografica corretta, puoi avviare il processo di osservazione della terra (EOJ) nella fase successiva. Si utilizza il processo EOJ per identificare i corpi idrici dalle immagini satellitari utilizzando un processo chiamato segmentazione del suolo.

## Avvio di un processo di osservazione della terra (EOJ) che esegue la segmentazione del suolo su una serie di immagini satellitari
<a name="demo-start-eoj"></a>

SageMaker geospatial fornisce diversi modelli pre-addestrati che puoi utilizzare per elaborare dati geospaziali da raccolte di dati raster. Per ulteriori informazioni sui modelli preaddestrati disponibili e sulle operazioni personalizzate, consulta [Tipi di operazioni](geospatial-eoj-models.md).

Per calcolare la variazione della superficie dell'acqua, devi identificare quali pixel delle immagini corrispondono all'acqua. La segmentazione della copertura del suolo è un modello di segmentazione semantica supportato dall'API `start_earth_observation_job`. I modelli di segmentazione semantica associano un'etichetta a ogni pixel di ogni immagine. Nei risultati, a ogni pixel viene assegnata un'etichetta basata sulla mappatura delle classi del modello. Di seguito è riportata la mappatura delle classi per il modello di segmentazione del suolo:

```
{
    0: "No_data",
    1: "Saturated_or_defective",
    2: "Dark_area_pixels",
    3: "Cloud_shadows",
    4: "Vegetation",
    5: "Not_vegetated",
    6: "Water",
    7: "Unclassified",
    8: "Cloud_medium_probability",
    9: "Cloud_high_probability",
    10: "Thin_cirrus",
    11: "Snow_ice"
}
```

Per avviare un processo di osservazione della terra, usa l'API `start_earth_observation_job`. Quando invii la richiesta, devi specificare quanto segue:
+ `InputConfig`(*dict*): utilizzato per specificare le coordinate dell'area in cui desideri cercare e altri metadati associati alla tua ricerca.
+ `JobConfig`(*dict*): utilizzato per specificare il tipo di operazione EOJ eseguita sui dati. Questo esempio usa **LandCoverSegmentationConfig**.
+ `ExecutionRoleArn`(*stringa*) — L'ARN del ruolo di esecuzione SageMaker AI con le autorizzazioni necessarie per eseguire il processo.
+ `Name`(*string*): un nome per il processo di osservazione della terra.

Il `InputConfig` è un Python dizionario. Utilizza la seguente variabile **eoj\$1input\$1config** per contenere i parametri di query della ricerca. Usa questa variabile quando effettui la richiesta API `start_earth_observation_job`.

```
# Perform land cover segmentation on images returned from the Sentinel-2 dataset.
eoj_input_config = {
    "RasterDataCollectionQuery": {
        "RasterDataCollectionArn": "arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8",
        "AreaOfInterest": {
            "AreaOfInterestGeometry": {
                "PolygonGeometry": {
                    "Coordinates":[
                        [
                            [-114.529, 36.142],
                            [-114.373, 36.142],
                            [-114.373, 36.411],
                            [-114.529, 36.411],
                            [-114.529, 36.142],
                        ]
                    ]
                }
            }
        },
        "TimeRangeFilter": {
            "StartTime": "2021-01-01T00:00:00Z",
            "EndTime": "2022-07-10T23:59:59Z",
        },
        "PropertyFilters": {
            "Properties": [{"Property": {"EoCloudCover": {"LowerBound": 0, "UpperBound": 1}}}],
            "LogicalOperator": "AND",
        },
    }
}
```

Il `JobConfig` è un Python dizionario che viene utilizzato per specificare l'operazione EOJ che desideri eseguire sui tuoi dati:

```
eoj_config = {"LandCoverSegmentationConfig": {}}
```

Con gli elementi del dizionario ora specificati, puoi inviare la tua richiesta API `start_earth_observation_job` utilizzando il seguente esempio di codice:

```
# Gets the execution role arn associated with current notebook instance 
execution_role_arn = sagemaker.get_execution_role()

# Starts an earth observation job
response = sm_geo_client.start_earth_observation_job(
    Name="lake-mead-landcover",
    InputConfig=eoj_input_config,
    JobConfig=eoj_config,
    ExecutionRoleArn=execution_role_arn,
)
            
print(response)
```

L'avvio di un processo di osservazione della terra restituisce un ARN insieme ad altri metadati.

Per ottenere un elenco di tutti i processi di osservazione della terra in corso e correnti, utilizza l'API `list_earth_observation_jobs`. Per monitorare lo stato di un singolo processo di osservazione della Terra, utilizza l'API `get_earth_observation_job`. Per effettuare questa richiesta, utilizza l'ARN creato dopo aver inviato la richiesta EOJ. Per ulteriori informazioni, [GetEarthObservationJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_GetEarthObservationJob.html)consulta *Amazon SageMaker AI API Reference*.

Per trovare i dati ARNs associati alla tua, EOJs usa l'operazione `list_earth_observation_jobs` API. Per ulteriori informazioni, [ListEarthObservationJobs](https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_geospatial_ListEarthObservationJobs.html)consulta *Amazon SageMaker AI API Reference*.

```
# List all jobs in the account
sg_client.list_earth_observation_jobs()["EarthObservationJobSummaries"]
```

Di seguito è riportato un esempio di risposta JSON:

```
{
    'Arn': 'arn:aws:sagemaker-geospatial:us-west-2:111122223333:earth-observation-job/futg3vuq935t',
    'CreationTime': datetime.datetime(2023, 10, 19, 4, 33, 54, 21481, tzinfo = tzlocal()),
    'DurationInSeconds': 3493,
    'Name': 'lake-mead-landcover',
    'OperationType': 'LAND_COVER_SEGMENTATION',
    'Status': 'COMPLETED',
    'Tags': {}
}, {
    'Arn': 'arn:aws:sagemaker-geospatial:us-west-2:111122223333:earth-observation-job/wu8j9x42zw3d',
    'CreationTime': datetime.datetime(2023, 10, 20, 0, 3, 27, 270920, tzinfo = tzlocal()),
    'DurationInSeconds': 1,
    'Name': 'mt-shasta-landcover',
    'OperationType': 'LAND_COVER_SEGMENTATION',
    'Status': 'INITIALIZING',
    'Tags': {}
}
```

Dopo che lo stato del tuo processo EOJ cambia in `COMPLETED`, passa alla sezione successiva per calcolare la variazione della superficie del lago Mead's .

## Calcolo della variazione della superficie nel lago Mead
<a name="demo-geospatial-calc"></a>

Per calcolare la variazione della superficie del lago Mead, esporta innanzitutto i risultati del processo EOJ su Amazon S3 utilizzando `export_earth_observation_job`:

```
sagemaker_session = sagemaker.Session()
s3_bucket_name = sagemaker_session.default_bucket()  # Replace with your own bucket if needed
s3_bucket = session.resource("s3").Bucket(s3_bucket_name)
prefix = "export-lake-mead-eoj"  # Replace with the S3 prefix desired
export_bucket_and_key = f"s3://{s3_bucket_name}/{prefix}/"

eoj_output_config = {"S3Data": {"S3Uri": export_bucket_and_key}}
export_response = sm_geo_client.export_earth_observation_job(
    Arn="arn:aws:sagemaker-geospatial:us-west-2:111122223333:earth-observation-job/7xgwzijebynp",
    ExecutionRoleArn=execution_role_arn,
    OutputConfig=eoj_output_config,
    ExportSourceImages=False,
)
```

Per visualizzare lo stato del tuo processo di esportazione, utilizza `get_earth_observation_job`:

```
export_job_details = sm_geo_client.get_earth_observation_job(Arn=export_response["Arn"])
```

Per calcolare le variazioni del livello dell'acqua del Lago Mead, scarica le maschere di copertura del terreno sull'istanza del SageMaker notebook locale e scarica le immagini di origine dalla nostra query precedente. Nella mappatura delle classi per il modello di segmentazione del suolo, l'indice di classe dell'acqua è 6.

Per estrarre da un'immagine Sentinel-2 il file maschera relativo all’acqua, segui questa procedura. Innanzitutto, conta nell'immagine il numero di pixel contrassegnati come acqua (indice di classe 6). In secondo luogo, moltiplica il conteggio per l'area coperta da ciascun pixel. Le bande possono differire in termini di risoluzione spaziale. Per il modello di segmentazione della copertura del suolo, tutte le bande vengono sottocampionate con una risoluzione spaziale pari a 60 metri.

```
import os
from glob import glob
import cv2
import numpy as np
import tifffile
import matplotlib.pyplot as plt
from urllib.parse import urlparse
from botocore import UNSIGNED
from botocore.config import Config

# Download land cover masks
mask_dir = "./masks/lake_mead"
os.makedirs(mask_dir, exist_ok=True)
image_paths = []
for s3_object in s3_bucket.objects.filter(Prefix=prefix).all():
    path, filename = os.path.split(s3_object.key)
    if "output" in path:
        mask_name = mask_dir + "/" + filename
        s3_bucket.download_file(s3_object.key, mask_name)
        print("Downloaded mask: " + mask_name)

# Download source images for visualization
for tci_url in tci_urls:
    url_parts = urlparse(tci_url)
    img_id = url_parts.path.split("/")[-2]
    tci_download_path = image_dir + "/" + img_id + "_TCI.tif"
    cogs_bucket = session.resource(
        "s3", config=Config(signature_version=UNSIGNED, region_name="us-west-2")
    ).Bucket(url_parts.hostname.split(".")[0])
    cogs_bucket.download_file(url_parts.path[1:], tci_download_path)
    print("Downloaded image: " + img_id)

print("Downloads complete.")

image_files = glob("images/lake_mead/*.tif")
mask_files = glob("masks/lake_mead/*.tif")
image_files.sort(key=lambda x: x.split("SQA_")[1])
mask_files.sort(key=lambda x: x.split("SQA_")[1])
overlay_dir = "./masks/lake_mead_overlay"
os.makedirs(overlay_dir, exist_ok=True)
lake_areas = []
mask_dates = []

for image_file, mask_file in zip(image_files, mask_files):
    image_id = image_file.split("/")[-1].split("_TCI")[0]
    mask_id = mask_file.split("/")[-1].split(".tif")[0]
    mask_date = mask_id.split("_")[2]
    mask_dates.append(mask_date)
    assert image_id == mask_id
    image = tifffile.imread(image_file)
    image_ds = cv2.resize(image, (1830, 1830), interpolation=cv2.INTER_LINEAR)
    mask = tifffile.imread(mask_file)
    water_mask = np.isin(mask, [6]).astype(np.uint8)  # water has a class index 6
    lake_mask = water_mask[1000:, :1100]
    lake_area = lake_mask.sum() * 60 * 60 / (1000 * 1000)  # calculate the surface area
    lake_areas.append(lake_area)
    contour, _ = cv2.findContours(water_mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    combined = cv2.drawContours(image_ds, contour, -1, (255, 0, 0), 4)
    lake_crop = combined[1000:, :1100]
    cv2.putText(lake_crop, f"{mask_date}", (10,50), cv2.FONT_HERSHEY_SIMPLEX, 1.5, (0, 0, 0), 3, cv2.LINE_AA)
    cv2.putText(lake_crop, f"{lake_area} [sq km]", (10,100), cv2.FONT_HERSHEY_SIMPLEX, 1.5, (0, 0, 0), 3, cv2.LINE_AA)
    overlay_file = overlay_dir + '/' + mask_date + '.png'
    cv2.imwrite(overlay_file, cv2.cvtColor(lake_crop, cv2.COLOR_RGB2BGR))

# Plot water surface area vs. time.
plt.figure(figsize=(20,10))
plt.title('Lake Mead surface area for the 2021.02 - 2022.07 period.', fontsize=20)
plt.xticks(rotation=45)
plt.ylabel('Water surface area [sq km]', fontsize=14)
plt.plot(mask_dates, lake_areas, marker='o')
plt.grid('on')
plt.ylim(240, 320)
for i, v in enumerate(lake_areas):
    plt.text(i, v+2, "%d" %v, ha='center')
plt.show()
```

Utilizzando `matplotlib`, puoi visualizzare i risultati su un grafico. Il grafico mostra che la superficie del lago Mead è diminuita da gennaio 2021 a luglio 2022.

![\[Un istogramma che mostra che la superficie del lago Mead è diminuita da gennaio 2021 a luglio 2022\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/lake-mead-decrease.png)


# Utilizzo di un processo di elaborazione per carichi di lavoro geospaziali personalizzati
<a name="geospatial-custom-operations"></a>

Con [Amazon SageMaker Processing](processing-job.md), puoi utilizzare un'esperienza di SageMaker intelligenza artificiale semplificata e gestita per eseguire i carichi di lavoro di elaborazione dei dati con il contenitore geospaziale appositamente progettato.

 L'infrastruttura sottostante per un processo di Amazon SageMaker Processing è completamente gestita dall' SageMaker intelligenza artificiale. Durante un processo di elaborazione, le risorse del cluster sono sottoposte a provisioning per tutta la durata del processo e pulite al completamento dello stesso.

![\[Esecuzione di un processo di elaborazione.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/Processing-1.png)


Il diagramma precedente mostra come l' SageMaker intelligenza artificiale accelera un processo di elaborazione geospaziale. SageMaker L'intelligenza artificiale prende lo script del carico di lavoro geospaziale, copia i dati geospaziali da Amazon Simple Storage Service (Amazon S3) e quindi estrae il contenitore geospaziale specificato. L'infrastruttura sottostante per il processo di elaborazione è completamente gestita dall'IA. SageMaker Le risorse del cluster sono sottoposte a provisioning per tutta la durata del processo e pulite al completamento dello stesso. L'output del processo di elaborazione viene archiviato nel bucket che hai specificato. 

**Vincoli per la denominazione del percorso**  
I percorsi locali all'interno di un container di processi di elaborazione devono iniziare con **/opt/ml/processing/**.

SageMaker geospatial fornisce un contenitore appositamente costruito, `081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest` che può essere specificato durante l'esecuzione di un processo di elaborazione.

**Topics**
+ [Panoramica: esegui i processi di elaborazione utilizzando un contenitore geospaziale `ScriptProcessor` SageMaker](geospatial-custom-operations-overview.md)
+ [Utilizzo di `ScriptProcessor` per calcolare l’indice di vegetazione della differenza normalizzata (NDVI) con i dati satellitari Sentinel-2](geospatial-custom-operations-procedure.md)

# Panoramica: esegui i processi di elaborazione utilizzando un contenitore geospaziale `ScriptProcessor` SageMaker
<a name="geospatial-custom-operations-overview"></a>

SageMaker geospatial fornisce un contenitore di elaborazione appositamente progettato,. `081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest` Puoi utilizzare questo contenitore durante l'esecuzione di un processo con Amazon SageMaker Processing. Quando crei un'istanza della [https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ScriptProcessor](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ScriptProcessor)classe disponibile tramite *Amazon SageMaker Python SDK for Processing*, specificalo. `image_uri`

**Nota**  
Se ricevi un ResourceLimitExceedederrore durante il tentativo di avviare un processo di elaborazione, devi richiedere un aumento della quota. Per richiedere un aumento della quota in Service Quotas, consulta [Requesting a quota increase](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) in *Guida per l'utente di Service Quotas* 

**Prerequisiti per l'utilizzo di `ScriptProcessor`**

1. Aver creato uno script Python che specifica il tuo carico di lavoro ML geospaziale.

1. Hai concesso al ruolo di esecuzione SageMaker AI l'accesso a tutti i bucket Amazon S3 necessari.

1. Preparazione dei dati per l'importazione nel container. I SageMaker processi di elaborazione di Amazon supportano l'impostazione di `s3_data_type` uguale `"ManifestFile"` o uguale a`"S3Prefix"`.

La procedura seguente mostra come creare un'istanza `ScriptProcessor` e inviare un processo di Amazon SageMaker Processing utilizzando il contenitore SageMaker geospaziale.

**Per creare un'`ScriptProcessor`istanza e inviare un processo di Amazon SageMaker Processing utilizzando un contenitore SageMaker geospaziale**

1. Crea un'istanza della `ScriptProcessor` classe utilizzando l'immagine geospaziale: SageMaker 

   ```
   from sagemaker.processing import ScriptProcessor, ProcessingInput, ProcessingOutput
   	
   sm_session = sagemaker.session.Session()
   execution_role_arn = sagemaker.get_execution_role()
   
   # purpose-built geospatial container
   image_uri = '081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest'
   
   script_processor = ScriptProcessor(
   	command=['python3'],
   	image_uri=image_uri,
   	role=execution_role_arn,
   	instance_count=4,
   	instance_type='ml.m5.4xlarge',
   	sagemaker_session=sm_session
   )
   ```

   Sostituisci *execution\$1role\$1arn* con l'ARN del ruolo di esecuzione dell'IA che ha accesso SageMaker ai dati di input archiviati in Amazon S3 e a qualsiasi AWS altro servizio che desideri chiamare nel tuo processo di elaborazione. Puoi aggiornare `instance_count` e `instance_type` in modo che soddisfino i requisiti del tuo processo di elaborazione.

1. Per avviare un processo di elaborazione, utilizza il metodo `.run()`:

   ```
   # Can be replaced with any S3 compliant string for the name of the folder.
   s3_folder = geospatial-data-analysis
   
   # Use .default_bucket() to get the name of the S3 bucket associated with your current SageMaker session
   s3_bucket = sm_session.default_bucket()
   					
   s3_manifest_uri = f's3://{s3_bucket}/{s3_folder}/manifest.json'
   s3_prefix_uri =  f's3://{s3_bucket}/{s3_folder}/image-prefix
   
   script_processor.run(
   	code='preprocessing.py',
   	inputs=[
   		ProcessingInput(
   			source=s3_manifest_uri | s3_prefix_uri ,
   			destination='/opt/ml/processing/input_data/',
   			s3_data_type= "ManifestFile" | "S3Prefix",
   			s3_data_distribution_type= "ShardedByS3Key" | "FullyReplicated"
   		)
   	],
   	outputs=[
           ProcessingOutput(
               source='/opt/ml/processing/output_data/',
               destination=s3_output_prefix_url
           )
       ]
   )
   ```
   + Sostituisci *preprocessing.py* con il nome del tuo script di elaborazione dati in Python.
   + Un processo di elaborazione supporta due metodi per formattare i tuoi dati di input. Puoi creare un file manifest che rimandi a tutti i dati di input per il tuo processo di elaborazione oppure utilizzare un prefisso comune su ogni singolo input di dati. Se hai creato un file manifest, imposta `s3_manifest_uri` uguale a `"ManifestFile"`. Se hai utilizzato un prefisso del file, imposta `s3_manifest_uri` uguale a `"S3Prefix"`. Specifica il percorso dei tuoi dati utilizzando `source`.
   + Puoi distribuire i dati del tuo processo di elaborazione in due modi:
     + Distribuisci i tuoi dati su tutte le istanze di elaborazione impostando `s3_data_distribution_type` uguale a `FullyReplicated`.
     + Distribuisci i tuoi dati in shard basati sulla chiave Amazon S3 impostando `s3_data_distribution_type` uguale a `ShardedByS3Key`. Quando utilizzi `ShardedByS3Key` , a ogni istanza di elaborazione viene inviato uno shard di dati.

    È possibile utilizzare uno script per elaborare dati SageMaker geospaziali. Lo script è disponibile nella [Fase 3: scrittura di uno script in grado di calcolare l'NDVI](geospatial-custom-operations-procedure.md#geospatial-custom-operations-script-mode). Per ulteriori informazioni sul funzionamento dell'`.run()`API, consulta [https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ScriptProcessor.run](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ScriptProcessor.run)*Amazon SageMaker Python SDK* for Processing.

Per monitorare l'avanzamento del tuo processo di elaborazione, la classe `ProcessingJobs` supporta un metodo [https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ProcessingJob.describe](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ProcessingJob.describe). Questo metodo restituisce una risposta dalla chiamata API `DescribeProcessingJob`. Per ulteriori informazioni, [`DescribeProcessingJob`consulta *Amazon SageMaker AI API Reference*](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeProcessingJob.html).

L'argomento successivo mostra come creare un'istanza della `ScriptProcessor` classe utilizzando il contenitore SageMaker geospaziale e quindi come utilizzarlo per calcolare l'indice di vegetazione delle differenze normalizzate (NDVI) con le immagini. Sentinel-2



# Utilizzo di `ScriptProcessor` per calcolare l’indice di vegetazione della differenza normalizzata (NDVI) con i dati satellitari Sentinel-2
<a name="geospatial-custom-operations-procedure"></a>

I seguenti esempi di codice mostrano come calcolare l'indice di differenza di vegetazione normalizzato di un'area geografica specifica utilizzando l'immagine geospaziale appositamente creata all'interno di un notebook Studio Classic ed eseguire un carico di lavoro su larga scala con Amazon Processing utilizzando l'SDK AI Python. SageMaker [https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ScriptProcessor](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ScriptProcessor) SageMaker 

Questa demo utilizza anche un'istanza di notebook Amazon SageMaker Studio Classic che utilizza il kernel geospaziale e il tipo di istanza. Per informazioni su come creare un’istanza del notebook con dati geospaziali in Studio Classic, consulta [Crea un notebook Amazon SageMaker Studio Classic utilizzando l'immagine geospaziale](geospatial-launch-notebook.md).

Puoi seguire questa demo nella tua istanza del notebook copiando e incollando i seguenti frammenti di codice:

1. [Esegui una query con `search_raster_data_collection` su una specifica area di interesse (AOI), in un determinato intervallo temporale, utilizzando una raccolta dei dati raster specifica, Sentinel-2.](#geospatial-custom-operations-procedure-search)

1. [Crea un file manifest che specifichi quali dati verranno elaborati durante il processo di elaborazione.](#geospatial-custom-operations-procedure-manifest)

1. [Scrivi uno script Python per l'elaborazione di dati che calcoli l'NDVI.](#geospatial-custom-operations-script-mode)

1. [Crea un'`ScriptProcessor`istanza e avvia il processo di Amazon SageMaker Processing](#geospatial-custom-operations-create).

1. [Visualizzazione dei risultati del tuo processo di elaborazione.](#geospatial-custom-operations-visual)

## Fai una query alla raccolta dei dati raster di Sentinel-2 utilizzando `SearchRasterDataCollection`
<a name="geospatial-custom-operations-procedure-search"></a>

Con `search_raster_data_collection` puoi fare query a raccolte dei dati raster supportate. Questo esempio utilizza dati estratti da satelliti Sentinel-2. L'area di interesse (`AreaOfInterest`) specificata è l'area rurale dell'Iowa settentrionale e l'intervallo temporale (`TimeRangeFilter`) è compreso tra il 1° gennaio 2022 e il 30 dicembre 2022. Per trovare l'elenco delle raccolte dei dati raster disponibili nella tua Regione AWS usa `list_raster_data_collections`. Per vedere un esempio di codice che utilizza questa API, consulta [`ListRasterDataCollections`](geospatial-data-collections.md)la *Amazon SageMaker AI Developer Guide*.

Negli esempi di codice seguenti viene utilizzato l’ARN associato alla raccolta dei dati raster di Sentinel-2, `arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8`.

Una richiesta API `search_raster_data_collection` richiede due parametri:
+ Devi specificare un parametro `Arn` che corrisponda alla raccolta dei dati raster a cui desideri fare una query.
+ Inoltre, devi specificare un parametro `RasterDataCollectionQuery` che includa un dizionario Python.

Il seguente esempio di codice contiene le coppie chiave-valore necessarie per il parametro `RasterDataCollectionQuery` salvato nella variabile `search_rdc_query`.

```
search_rdc_query = {
    "AreaOfInterest": {
        "AreaOfInterestGeometry": {
            "PolygonGeometry": {
                "Coordinates": [[
                    [
              -94.50938680498298,
              43.22487436936203
            ],
            [
              -94.50938680498298,
              42.843474642037194
            ],
            [
              -93.86520004156142,
              42.843474642037194
            ],
            [
              -93.86520004156142,
              43.22487436936203
            ],
            [
              -94.50938680498298,
              43.22487436936203
            ]
               ]]
            }
        }
    },
    "TimeRangeFilter": {"StartTime": "2022-01-01T00:00:00Z", "EndTime": "2022-12-30T23:59:59Z"}
}
```

Per effettuare la richiesta `search_raster_data_collection`, devi specificare l’ARN della raccolta dei dati raster Sentinel-2: `arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8`. Inoltre, devi inoltrare il dizionario Python definito in precedenza, che specifica i parametri di query. 

```
## Creates a SageMaker Geospatial client instance 
sm_geo_client= session.create_client(service_name="sagemaker-geospatial")

search_rdc_response1 = sm_geo_client.search_raster_data_collection(
    Arn='arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8',
    RasterDataCollectionQuery=search_rdc_query
)
```

I risultati di questa API non possono essere impaginati. Per raccogliere tutte le immagini satellitari restituite dall'operazione `search_raster_data_collection`, puoi implementare un ciclo `while`. Ciò verifica `NextToken` nella risposta API:

```
## Holds the list of API responses from search_raster_data_collection
items_list = []
while search_rdc_response1.get('NextToken') and search_rdc_response1['NextToken'] != None:
    items_list.extend(search_rdc_response1['Items'])
    
    search_rdc_response1 = sm_geo_client.search_raster_data_collection(
    	Arn='arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8',
        RasterDataCollectionQuery=search_rdc_query, 
        NextToken=search_rdc_response1['NextToken']
    )
```

La risposta dell'API restituisce un elenco di URLs sotto la `Assets` chiave corrispondenti a bande di immagini specifiche. Di seguito è riportata una versione troncata della risposta API. Alcune bande dell'immagine sono state rimosse per motivi di chiarezza.

```
{
	'Assets': {
        'aot': {
            'Href': 'https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/15/T/UH/2022/12/S2A_15TUH_20221230_0_L2A/AOT.tif'
        },
        'blue': {
            'Href': 'https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/15/T/UH/2022/12/S2A_15TUH_20221230_0_L2A/B02.tif'
        },
        'swir22-jp2': {
            'Href': 's3://sentinel-s2-l2a/tiles/15/T/UH/2022/12/30/0/B12.jp2'
        },
        'visual-jp2': {
            'Href': 's3://sentinel-s2-l2a/tiles/15/T/UH/2022/12/30/0/TCI.jp2'
        },
        'wvp-jp2': {
            'Href': 's3://sentinel-s2-l2a/tiles/15/T/UH/2022/12/30/0/WVP.jp2'
        }
    },
    'DateTime': datetime.datetime(2022, 12, 30, 17, 21, 52, 469000, tzinfo = tzlocal()),
    'Geometry': {
        'Coordinates': [
            [
                [-95.46676936182894, 43.32623760511659],
                [-94.11293433656887, 43.347431265475954],
                [-94.09532154452742, 42.35884880571144],
                [-95.42776890002203, 42.3383710796791],
                [-95.46676936182894, 43.32623760511659]
            ]
        ],
        'Type': 'Polygon'
    },
    'Id': 'S2A_15TUH_20221230_0_L2A',
    'Properties': {
        'EoCloudCover': 62.384969,
        'Platform': 'sentinel-2a'
    }
}
```

Nella [sezione successiva](#geospatial-custom-operations-procedure-manifest), crea un file manifest utilizzando la chiave `'Id'` della risposta API.

## Crea un file manifest di input utilizzando la chiave `Id` della risposta API `search_raster_data_collection`
<a name="geospatial-custom-operations-procedure-manifest"></a>

Quando esegui un processo di elaborazione, devi specificare un input di dati da Amazon S3. Il tipo di dati di input può essere un file manifest che rimanda ai singoli file di dati. Inoltre puoi aggiungere un prefisso a ogni file che desideri sia elaborato. Il seguente esempio di codice definisce la cartella in cui verranno generati i file manifest.

Utilizza l’SDK per Python (Boto3) per ottenere il bucket predefinito e l’ARN del ruolo di esecuzione associato alla tua istanza del notebook Studio Classic:

```
sm_session = sagemaker.session.Session()
s3 = boto3.resource('s3')
# Gets the default excution role associated with the notebook
execution_role_arn = sagemaker.get_execution_role() 

# Gets the default bucket associated with the notebook
s3_bucket = sm_session.default_bucket() 

# Can be replaced with any name
s3_folder = "script-processor-input-manifest"
```

Successivamente, crea un file manifest. Conterrà le URLs immagini satellitari che desideri elaborare quando eseguirai il processo di elaborazione più avanti nel passaggio 4.

```
# Format of a manifest file
manifest_prefix = {}
manifest_prefix['prefix'] = 's3://' + s3_bucket + '/' + s3_folder + '/'
manifest = [manifest_prefix]

print(manifest)
```

Il seguente esempio di codice restituisce l'URI S3 in cui verranno creati i file manifest.

```
[{'prefix': 's3://sagemaker-us-west-2-111122223333/script-processor-input-manifest/'}]
```

Non sono necessari tutti gli elementi di risposta della risposta search\$1raster\$1data\$1collection per eseguire il processo di elaborazione. 

Il seguente frammento di codice rimuove gli elementi non necessari `'Properties'`, `'Geometry'` e `'DateTime'`. La coppia chiave-valore`'Id'`, `'Id': 'S2A_15TUH_20221230_0_L2A'`, contiene l'anno e il mese. Il seguente esempio di codice analizza tali dati per creare nuove chiavi nel dizionario Python **dict\$1month\$1items**. I valori sono gli asset restituiti dalla query `SearchRasterDataCollection`. 

```
# For each response get the month and year, and then remove the metadata not related to the satelite images.
dict_month_items = {}
for item in items_list:
    # Example ID being split: 'S2A_15TUH_20221230_0_L2A' 
    yyyymm = item['Id'].split("_")[2][:6]
    if yyyymm not in dict_month_items:
        dict_month_items[yyyymm] = []
    
    # Removes uneeded metadata elements for this demo 
    item.pop('Properties', None)
    item.pop('Geometry', None)
    item.pop('DateTime', None)

    # Appends the response from search_raster_data_collection to newly created key above
    dict_month_items[yyyymm].append(item)
```

Questo esempio di codice  carica `dict_month_items` su Amazon S3 come oggetto JSON utilizzando l'operazione API [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3/client/upload_file.html](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3/client/upload_file.html):

```
## key_ is the yyyymm timestamp formatted above
## value_ is the reference to all the satellite images collected via our searchRDC query 
for key_, value_ in dict_month_items.items():
    filename = f'manifest_{key_}.json'
    with open(filename, 'w') as fp:
        json.dump(value_, fp)
    s3.meta.client.upload_file(filename, s3_bucket, s3_folder + '/' + filename)
    manifest.append(filename)
    os.remove(filename)
```

Questo esempio di codice carica un file parent `manifest.json` che rimanda a tutti gli altri manifest caricati su Amazon S3. Salva anche il percorso di una variabile locale: **s3\$1manifest\$1uri**. Utilizzerai nuovamente quella variabile per specificare l’origine dei dati di input quando eseguirai il processo di elaborazione nella fase 4.

```
with open('manifest.json', 'w') as fp:
    json.dump(manifest, fp)
s3.meta.client.upload_file('manifest.json', s3_bucket, s3_folder + '/' + 'manifest.json')
os.remove('manifest.json')

s3_manifest_uri = f's3://{s3_bucket}/{s3_folder}/manifest.json'
```

Ora che hai creato e caricato i file manifest di input, puoi scrivere uno script che elabori i tuoi dati durante il processo di elaborazione. Questo script elabora i dati dalle immagini satellitari, calcola l'NDVI e quindi restituisce i risultati in una diversa posizione di Amazon S3.

## Scrittura di uno script che calcoli l'NDVI
<a name="geospatial-custom-operations-script-mode"></a>

Amazon SageMaker Studio Classic supporta l'uso del comando `%%writefile` cell magic. Dopo aver eseguito una cella con questo comando, il suo contenuto verrà salvato nella tua directory locale di Studio Classic. Si tratta di un codice specifico per il calcolo dell'NDVI. Tuttavia, quanto segue può essere utile quando scrivi uno script personalizzato per un processo di elaborazione:
+ I percorsi locali all'interno di un container di processi di elaborazione devono iniziare con `/opt/ml/processing/`. In questo esempio, **input\$1data\$1path = '/opt/ml/processing/input\$1data/' ** e **processed\$1data\$1path = '/opt/ml/processing/output\$1data/'** sono specificati in questo modo.
+ Con Amazon SageMaker Processing, uno  script eseguito da un processo di elaborazione può caricare i dati elaborati direttamente su Amazon S3. A tal fine, assicurati che il ruolo di esecuzione associato alla tua istanza `ScriptProcessor` abbia i requisiti necessari per accedere al bucket S3. Puoi anche specificare un parametro di output quando esegui il processo di elaborazione. Per ulteriori informazioni, consulta il [funzionamento dell'`.run()`API](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ScriptProcessor.run) nell'*SDK Amazon SageMaker Python*. In questo esempio di codice, i risultati dell'elaborazione di dati vengono caricati direttamente in Amazon S3.
+ Per gestire le dimensioni dell'Amazon EBScontainer collegato al processo di elaborazione, utilizza il `volume_size_in_gb` parametro. La dimensione predefinita dei container è 30 GB. Facoltativamente, puoi anche utilizzare la libreria Python [Garbage Collector](https://docs.python.org/3/library/gc.html) per gestire lo storage nel tuo container Amazon EBS.

  Il seguente esempio di codice carica gli array nel container del processo di elaborazione. Quando gli array si accumulano e riempiono la memoria, il processo di elaborazione si arresta in modo anomalo. Per evitare questo arresto anomalo, l'esempio seguente contiene comandi che rimuovono gli array dal container del processo di elaborazione.

```
%%writefile compute_ndvi.py

import os
import pickle
import sys
import subprocess
import json
import rioxarray

if __name__ == "__main__":
    print("Starting processing")
    
    input_data_path = '/opt/ml/processing/input_data/'
    input_files = []
    
    for current_path, sub_dirs, files in os.walk(input_data_path):
        for file in files:
            if file.endswith(".json"):
                input_files.append(os.path.join(current_path, file))
    
    print("Received {} input_files: {}".format(len(input_files), input_files))

    items = []
    for input_file in input_files:
        full_file_path = os.path.join(input_data_path, input_file)
        print(full_file_path)
        with open(full_file_path, 'r') as f:
            items.append(json.load(f))
            
    items = [item for sub_items in items for item in sub_items]

    for item in items:
        red_uri = item["Assets"]["red"]["Href"]
        nir_uri = item["Assets"]["nir"]["Href"]

        red = rioxarray.open_rasterio(red_uri, masked=True)
        nir = rioxarray.open_rasterio(nir_uri, masked=True)

        ndvi = (nir - red)/ (nir + red)
        
        file_name = 'ndvi_' + item["Id"] + '.tif'
        output_path = '/opt/ml/processing/output_data'
        output_file_path = f"{output_path}/{file_name}"
        
        ndvi.rio.to_raster(output_file_path)
        print("Written output:", output_file_path)
```

Ora hai uno script in grado di calcolare l'NDVI. Successivamente, puoi creare un'istanza del processo di elaborazione ScriptProcessor ed eseguire il processo di elaborazione.

## Creazione di un'istanza della classe `ScriptProcessor`
<a name="geospatial-custom-operations-create"></a>

Questa demo utilizza la [ScriptProcessor](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ScriptProcessor)classe disponibile tramite Amazon SageMaker Python SDK. Innanzitutto, devi creare un'istanza della classe, quindi puoi avviare il processo di elaborazione utilizzando il metodo `.run()`.

```
from sagemaker.processing import ScriptProcessor, ProcessingInput, ProcessingOutput

image_uri = '081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest'

processor = ScriptProcessor(
	command=['python3'],
	image_uri=image_uri,
	role=execution_role_arn,
	instance_count=4,
	instance_type='ml.m5.4xlarge',
	sagemaker_session=sm_session
)

print('Starting processing job.')
```

Quando avvii il processo di elaborazione, devi specificare un oggetto [https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ProcessingInput](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ProcessingInput). In quell'oggetto, specifica le seguenti informazioni:
+ Il percorso del file manifest creato nella fase 2, **s3\$1manifest\$1uri**. Questa è l’origine dei dati di input per il container.
+ Il percorso in cui desideri che i dati di input vengano salvati nel container. Deve corrispondere al percorso specificato nello script.
+ Utilizza il parametro `s3_data_type` per specificare l’input come `"ManifestFile"`.

```
s3_output_prefix_url = f"s3://{s3_bucket}/{s3_folder}/output"

processor.run(
    code='compute_ndvi.py',
    inputs=[
        ProcessingInput(
            source=s3_manifest_uri,
            destination='/opt/ml/processing/input_data/',
            s3_data_type="ManifestFile",
            s3_data_distribution_type="ShardedByS3Key"
        ),
    ],
    outputs=[
        ProcessingOutput(
            source='/opt/ml/processing/output_data/',
            destination=s3_output_prefix_url,
            s3_upload_mode="Continuous"
        )
    ]
)
```

Il seguente esempio di codice utilizza il [metodo `.describe()`](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ProcessingJob.describe) per ottenere i dettagli del processo di elaborazione.

```
preprocessing_job_descriptor = processor.jobs[-1].describe()
s3_output_uri = preprocessing_job_descriptor["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"]
print(s3_output_uri)
```

## Visualizzazione dei risultati utilizzando `matplotlib`
<a name="geospatial-custom-operations-visual"></a>

La libreria [Matplotlib](https://matplotlib.org/stable/index.html) di Python, ti permette di rappresentare dati raster. Prima di rappresentare i dati, devi calcolare l’indice NDVI utilizzando immagini di esempio dai satelliti Sentinel-2. L’esempio di codice seguente apre gli array di immagini con l’operazione API `.open_rasterio()`, quindi calcola l’indice NDVI con le bande di immagini `nir` e `red` dai dati satellitari di Sentinel-2. 

```
# Opens the python arrays 
import rioxarray

red_uri = items[25]["Assets"]["red"]["Href"]
nir_uri = items[25]["Assets"]["nir"]["Href"]

red = rioxarray.open_rasterio(red_uri, masked=True)
nir = rioxarray.open_rasterio(nir_uri, masked=True)

# Calculates the NDVI
ndvi = (nir - red)/ (nir + red)

# Common plotting library in Python 
import matplotlib.pyplot as plt

f, ax = plt.subplots(figsize=(18, 18))
ndvi.plot(cmap='viridis', ax=ax)
ax.set_title("NDVI for {}".format(items[25]["Id"]))
ax.set_axis_off()
plt.show()
```

L'output dell'esempio di codice precedente è un'immagine satellitare con i valori NDVI sovrapposti. Un valore NDVI vicino a 1 indica che è presente molta vegetazione, mentre valori vicini a 0 indicano che non è presente vegetazione.

![\[Un'immagine satellitare dell'Iowa settentrionale con l'NDVI sovrapposto\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/ndvi-iowa.png)


Questo completa la demo sull’utilizzo di `ScriptProcessor`.

# Processi di osservazione della terra
<a name="geospatial-eoj"></a>

Utilizzando un processo di osservazione della terra (EOJ), puoi acquisire, trasformare e visualizzare dati geospaziali per generare previsioni. Puoi scegliere un'operazione in base al tuo caso d'uso tra un'ampia gamma di operazioni e modelli. Avrai la flessibilità di scegliere l'area di interesse, selezionare i fornitori di dati e impostare filtri e basati su intervalli di tempo. cloud-cover-percentage-based Dopo che l' SageMaker IA ha creato un EOJ per te, puoi visualizzare gli input e gli output del lavoro utilizzando la funzionalità di visualizzazione. Un processo EOJ ha diversi casi d'uso, tra cui il confronto della deforestazione nel tempo e la diagnosi dello stato di salute delle piante. Puoi creare un EOJ utilizzando un notebook con un' SageMaker immagine geospaziale. SageMaker Puoi anche accedere all'interfaccia utente SageMaker geospaziale come parte dell'interfaccia utente di Amazon SageMaker Studio Classic per visualizzare l'elenco di tutti i tuoi lavori. Puoi anche usare l'interfaccia utente per mettere in pausa o arrestare un processo in corso. Puoi scegliere un processo dall'elenco dei processi EOJ disponibili per visualizzare il **riepilogo del processo**, i **dettagli del processo** e l'**output del processo**.

**Topics**
+ [Crea un Job di osservazione della Terra utilizzando un notebook Amazon SageMaker Studio Classic con un'immagine SageMaker geospaziale](geospatial-eoj-ntb.md)
+ [Tipi di operazioni](geospatial-eoj-models.md)

# Crea un Job di osservazione della Terra utilizzando un notebook Amazon SageMaker Studio Classic con un'immagine SageMaker geospaziale
<a name="geospatial-eoj-ntb"></a>

**Per utilizzare un notebook SageMaker Studio Classic con un'immagine geospaziale SageMaker :**

1. Dall’**utilità di avvio**, scegli **Modifica ambiente** in **Notebook e risorse di calcolo**.

1. Viene quindi visualizzata la finestra di dialogo **Modifica ambiente**.

1. Scegli il menu a discesa **Immagine** e seleziona **Geospatial 1.0**. Il **tipo di istanza** deve essere **ml.geospatial.interactive**. Non modificare i valori predefiniti delle altre impostazioni.

1. Scegli **Seleziona**.

1. Seleziona **Crea notebook**.

Puoi avviare un EOJ utilizzando un notebook Amazon SageMaker Studio Classic con un'immagine SageMaker geospaziale utilizzando il codice fornito di seguito.

```
import boto3
import sagemaker
import sagemaker_geospatial_map

session = boto3.Session()
execution_role = sagemaker.get_execution_role()
sg_client = session.client(service_name="sagemaker-geospatial")
```

Nell'esempio seguente viene illustrato come creare un processo EOJ nella Regione Stati Uniti occidentali (Oregon).

```
#Query and Access Data
search_rdc_args = {
    "Arn": "arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8",  # sentinel-2 L2A COG
    "RasterDataCollectionQuery": {
        "AreaOfInterest": {
            "AreaOfInterestGeometry": {
                "PolygonGeometry": {
                    "Coordinates": [
                        [
                            [-114.529, 36.142],
                            [-114.373, 36.142],
                            [-114.373, 36.411],
                            [-114.529, 36.411],
                            [-114.529, 36.142],
                        ]
                    ]
                }
            }
        },
        "TimeRangeFilter": {
            "StartTime": "2021-01-01T00:00:00Z",
            "EndTime": "2022-07-10T23:59:59Z",
        },
        "PropertyFilters": {
            "Properties": [{"Property": {"EoCloudCover": {"LowerBound": 0, "UpperBound": 1}}}],
            "LogicalOperator": "AND",
        },
        "BandFilter": ["visual"],
    },
}

tci_urls = []
data_manifests = []
while search_rdc_args.get("NextToken", True):
    search_result = sg_client.search_raster_data_collection(**search_rdc_args)
    if search_result.get("NextToken"):
        data_manifests.append(search_result)
    for item in search_result["Items"]:
        tci_url = item["Assets"]["visual"]["Href"]
        print(tci_url)
        tci_urls.append(tci_url)

    search_rdc_args["NextToken"] = search_result.get("NextToken")
        
# Perform land cover segmentation on images returned from the sentinel dataset.
eoj_input_config = {
    "RasterDataCollectionQuery": {
        "RasterDataCollectionArn": "arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8",
        "AreaOfInterest": {
            "AreaOfInterestGeometry": {
                "PolygonGeometry": {
                    "Coordinates": [
                        [
                            [-114.529, 36.142],
                            [-114.373, 36.142],
                            [-114.373, 36.411],
                            [-114.529, 36.411],
                            [-114.529, 36.142],
                        ]
                    ]
                }
            }
        },
        "TimeRangeFilter": {
            "StartTime": "2021-01-01T00:00:00Z",
            "EndTime": "2022-07-10T23:59:59Z",
        },
        "PropertyFilters": {
            "Properties": [{"Property": {"EoCloudCover": {"LowerBound": 0, "UpperBound": 1}}}],
            "LogicalOperator": "AND",
        },
    }
}
eoj_config = {"LandCoverSegmentationConfig": {}}

response = sg_client.start_earth_observation_job(
    Name="lake-mead-landcover",
    InputConfig=eoj_input_config,
    JobConfig=eoj_config,
    ExecutionRoleArn=execution_role,
)
```

Una volta creato il processo EOJ, viene restituito l’`Arn`. Puoi utilizzare l’`Arn` per identificare un processo ed eseguire ulteriori operazioni. Per conoscere lo stato di un processo, puoi eseguire `sg_client.get_earth_observation_job(Arn = response['Arn'])`.

L'esempio seguente mostra come eseguire query allo stato di un processo EOJ fino al suo completamento.

```
eoj_arn = response["Arn"]
job_details = sg_client.get_earth_observation_job(Arn=eoj_arn)
{k: v for k, v in job_details.items() if k in ["Arn", "Status", "DurationInSeconds"]}
# List all jobs in the account
sg_client.list_earth_observation_jobs()["EarthObservationJobSummaries"]
```

Una volta completato il processo EOJ, puoi visualizzare gli output EOJ direttamente nel notebook. L'esempio seguente mostra come eseguire il rendering di una mappa interattiva.

```
map = sagemaker_geospatial_map.create_map({
'is_raster': True
})
map.set_sagemaker_geospatial_client(sg_client)
# render the map
map.render()
```

L'esempio seguente mostra come la mappa può essere centrata su un'area di interesse e come l'input e l'output del processo EOJ possono essere renderizzati come livelli separati all'interno della mappa.

```
# visualize the area of interest
config = {"label": "Lake Mead AOI"}
aoi_layer = map.visualize_eoj_aoi(Arn=eoj_arn, config=config)

# Visualize input.
time_range_filter = {
    "start_date": "2022-07-01T00:00:00Z",
    "end_date": "2022-07-10T23:59:59Z",
}
config = {"label": "Input"}

input_layer = map.visualize_eoj_input(
    Arn=eoj_arn, config=config, time_range_filter=time_range_filter
)
# Visualize output, EOJ needs to be in completed status.
time_range_filter = {
    "start_date": "2022-07-01T00:00:00Z",
    "end_date": "2022-07-10T23:59:59Z",
}
config = {"preset": "singleBand", "band_name": "mask"}
output_layer = map.visualize_eoj_output(
    Arn=eoj_arn, config=config, time_range_filter=time_range_filter
)
```

Puoi utilizzare la funzione `export_earth_observation_job` per esportare i risultati del processo EOJ nel tuo bucket Amazon S3. La funzione di esportazione semplifica la condivisione dei risultati tra i team. SageMaker L'intelligenza artificiale semplifica anche la gestione dei set di dati. Puoi condividere facilmente i risultati del processo EOJ utilizzando l’ARN del processo, anziché eseguire il crawling di migliaia di file nel bucket S3. Ogni processo EOJ diventa un asset nel catalogo di dati, poiché i risultati possono essere raggruppati in base all’ARN del processo. Nell'esempio seguente viene mostrato come esportare i risultati di un processo EOJ.

```
sagemaker_session = sagemaker.Session()
s3_bucket_name = sagemaker_session.default_bucket()  # Replace with your own bucket if needed
s3_bucket = session.resource("s3").Bucket(s3_bucket_name)
prefix = "eoj_lakemead"  # Replace with the S3 prefix desired
export_bucket_and_key = f"s3://{s3_bucket_name}/{prefix}/"

eoj_output_config = {"S3Data": {"S3Uri": export_bucket_and_key}}
export_response = sg_client.export_earth_observation_job(
    Arn=eoj_arn,
    ExecutionRoleArn=execution_role,
    OutputConfig=eoj_output_config,
    ExportSourceImages=False,
)
```

Puoi monitorare lo stato del processo di esportazione utilizzando il seguente snippet.

```
# Monitor the export job status
export_job_details = sg_client.get_earth_observation_job(Arn=export_response["Arn"])
{k: v for k, v in export_job_details.items() if k in ["Arn", "Status", "DurationInSeconds"]}
```

Non ti vengono addebitati costi di archiviazione dopo aver eliminato il processo EOJ.

Per un esempio che mostra come eseguire un processo EOJ, consulta questo [post del blog](https://aws.amazon.com/blogs/machine-learning/monitoring-lake-mead-drought-using-the-new-amazon-sagemaker-geospatial-capabilities/).

[Per altri esempi di notebook sulle funzionalità SageMaker geospaziali, consulta questo repository. GitHub ](https://github.com/aws/amazon-sagemaker-examples/tree/main/sagemaker-geospatial)

# Tipi di operazioni
<a name="geospatial-eoj-models"></a>

Quando crei un processo EOJ, seleziona un'operazione in base al tuo caso d'uso. Le funzionalità SageMaker geospaziali di Amazon offrono una combinazione di operazioni mirate e modelli pre-addestrati. Puoi utilizzare queste operazioni per comprendere l'impatto dei cambiamenti ambientali e delle attività umane nel tempo o per identificare pixel con nuvole e senza nuvole.

**Mascheramento delle nuvole**

L'identificazione delle nuvole nelle immagini satellitari è una fase di pre-elaborazione essenziale per la produzione di dati geospaziali di qualità elevata. Ignorare i pixel delle nuvole può portare a errori di analisi, mentre un rilevamento eccessivo dei pixel delle nuvole può ridurre il numero di osservazioni valide. Il mascheramento delle nuvole ha la capacità di identificare i pixel con nuvole e senza nuvole nelle immagini satellitari. Una maschera delle nuvole accurata aiuta a ottenere immagini satellitari per l'elaborazione e migliora la generazione di dati. Di seguito è riportata la mappa delle classi per il mascheramento delle nuvole.

```
{
0: "No_cloud",
1: "cloud"
}
```

**Rimozione delle nuvole**

La rimozione delle nuvole per i dati di Sentinel-2 utilizza un modello di segmentazione semantica basato su ML per identificare le nuvole nell'immagine. I pixel con le nuvole possono essere sostituiti con pixel di altri timestamp. I dati USGS Landsat contengono metadati landsat utilizzati per la rimozione delle nuvole.

**Statistiche temporali**

Le statistiche temporali calcolano le statistiche per i dati geospaziali nel tempo. Le statistiche temporali attualmente supportate includono la media, la mediana e la deviazione standard. Puoi calcolare queste statistiche utilizzando `GROUPBY` e impostarle su `all` o `yearly`. Puoi anche menzionare `TargetBands`.

**Statistiche zonali**

Le statistiche zonali eseguono operazioni statistiche su un'area specifica dell'immagine. 

**Ricampionamento**

Il ricampionamento viene utilizzato per aumentare e ridurre la risoluzione di un'immagine geospaziale. L'attributo `value` nel ricampionamento rappresenta la lunghezza di un lato del pixel.

**Geomosaico**

Il geomosaico consente di unire immagini più piccole a un'immagine più grande.

**Impilamento di bande**

L’impilamento di bande utilizza più di una banda di immagini come input e le impila in un GeoTIFF singolo. L'attributo `OutputResolution` determina la risoluzione dell'immagine di output. In base alla risoluzione delle immagini di input, puoi impostarlo su `lowest`, `highest` o`average`.

**Band Math**

Lo strumento Band Math, noto anche come indice spettrale, è un processo di trasformazione delle osservazioni da più bande spettrali a una singola banda e indica l’abbondanza relativa di caratteristiche di interesse. Ad esempio, l’indice di vegetazione della differenza normalizzata (NDVI) e l'indice di vegetazione potenziato (EVI) sono utili per osservare la presenza di vegetazione.

**Segmentazione della copertura del suolo**

La segmentazione della copertura del suolo è un modello di segmentazione semantica che ha la capacità di identificare il materiale fisico, come vegetazione, acqua e terreno nudo, sulla superficie terrestre. Disporre di un metodo preciso per mappare i modelli di copertura del suolo aiuta a comprendere l'impatto dei cambiamenti ambientali e delle attività umane nel tempo. La segmentazione della copertura del suolo viene spesso utilizzata per la pianificazione regionale, la risposta alle catastrofi, la gestione ecologica e la valutazione dell'impatto ambientale. Di seguito è riportata la mappatura per la segmentazione della copertura del suolo.

```
{
0: "No_data",
1: "Saturated_or_defective",
2: "Dark_area_pixels",
3: "Cloud_shadows",
4: "Vegetation",
5: "Not_vegetated",
6: "Water",
7: "Unclassified",
8: "Cloud_medium_probability",
9: "Cloud_high_probability",
10: "Thin_cirrus",
11: "Snow_ice"
}
```

## Disponibilità di operazioni per processi EOJ
<a name="geospatial-eoj-models-avail"></a>

La disponibilità delle operazioni dipende dal fatto che tu stia utilizzando l'interfaccia utente SageMaker geospaziale o i notebook Amazon SageMaker Studio Classic con un'immagine geospaziale. SageMaker Attualmente, i notebook supportano tutte le funzionalità. Per riassumere, le seguenti operazioni geospaziali sono supportate dall'intelligenza artificiale: SageMaker 


| Operazioni |  Description  |  Disponibilità  | 
| --- | --- | --- | 
| Mascheramento delle nuvole | Identifica i pixel con nuvole e senza nuvole per ottenere immagini satellitari migliorate e accurate. | Interfaccia utente, notebook | 
| Rimozione delle nuvole | Rimuove i pixel contenenti parti di nuvole dalle immagini satellitari. | Notebook | 
| Statistiche temporali | Calcola le statistiche nel tempo per un determinato GeoTIFF. | Notebook | 
| Statistiche zonali | Calcola le statistiche sulle regioni definite dall'utente. | Notebook | 
| Ricampionamento | Ridimensiona le immagini a diverse risoluzioni. | Notebook | 
| Geomosaico | Combina più immagini, per una maggiore fedeltà. | Notebook | 
| Impilamento di bande | Combina più bande spettrali per creare un'unica immagine. | Notebook | 
| Band Math/Indice spettrale | Genera una combinazione di bande spettrali che indicano l'abbondanza di caratteristiche di interesse. | Interfaccia utente, notebook | 
| Segmentazione della copertura del suolo | Identifica i tipi di copertura del suolo, come vegetazione e acqua, nelle immagini satellitari. | Interfaccia utente, notebook | 

# Processi di arricchimento del vettore
<a name="geospatial-vej"></a>

Un processo di arricchimento del vettore (VEJ) esegue operazioni sui tuoi dati vettoriali. Attualmente, è possibile utilizzare un processo VEJ per eseguire la geocodifica inversa o la corrispondenza delle mappe.
<a name="geospatial-vej-rev-geo"></a>
**Geocodifica inversa**  
Con un processo VEJ con geocodifica inversa puoi convertire le coordinate geografiche (latitudine, longitudine) in indirizzi leggibili dall'uomo forniti da Amazon Location Service. Quando carichi un file CSV contenente le coordinate di longitudine e latitudine, vengono restituiti il numero civico, il paese, l’etichetta, il comune, il quartiere, il codice postale e la regione di quella località. Il file di output è composto dai dati di input e dalle colonne contenenti questi valori aggiunti alla fine. Questi processi sono ottimizzati per accettare decine di migliaia di tracce GPS. 
<a name="geospatial-vej-map-match"></a>
**Corrispondenza delle mappe**  
La corrispondenza delle mappe consente di associare le coordinate GPS ai segmenti stradali. L'input deve essere un file CSV contenente l'ID traccia (percorso), la longitudine, la latitudine e gli attributi timestamp. Possono esserci più coordinate GPS per percorso. Anche l'input può contenere più percorsi. L'output è un file GeoJSON che contiene i collegamenti del percorso previsto. Ha anche punti di snap forniti nell'input. Questi processi sono ottimizzati per accettare decine di migliaia di drive in un’unica richiesta. La corrispondenza delle mappe è supportata da. [OpenStreetMap](https://www.openstreetmap.org/) La corrispondenza delle mappe non funziona se i nomi nel campo origine input non corrispondono a quelli in `MapMatchingConfig`. Riceverai un messaggio di errore che contiene i nomi campo presenti nel file di input e il nome campo previsto non trovato in `MapMatchingConfig`. 

Il file CSV di input per un processo VEJ deve contenere quanto segue:
+ Una riga di intestazione
+ Latitudine e longitudine in colonne separate
+ Le colonne ID e timestamp possono essere in formato numerico o stringa. Tutti gli altri dati delle colonne possono essere solo in formato numerico
+ Nessuna citazione di mancata corrispondenza

Per la colonna timestamp, SageMaker geospatial capabilities supporta l'ora dell'epoca in secondi e millisecondi (numero intero lungo). I formati di stringhe supportati sono i seguenti:
+ "gg.MM.aaaa HH:mm:ss z"
+ "aaaa-MM-gg'T'HH:mm:ss.SSS'Z'"
+ "aaaa-MM-gg'T'HH:mm:ss"
+ yyyy-MM-dd «hh: mm: ss a»
+ «yyyy-MM-dd Hh:mm:ss»
+ «yyyy» MMdd HHmmss

Sebbene sia necessario utilizzare un notebook Amazon SageMaker Studio Classic per eseguire un VEJ, puoi visualizzare tutti i lavori che crei utilizzando l'interfaccia utente. Per utilizzare la visualizzazione nel notebook, bisogna prima esportare l'output nel proprio bucket S3. Le azioni VEJ che è possibile eseguire sono le seguenti.
+ [StartVectorEnrichmentJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_StartVectorEnrichmentJob.html)
+ [GetVectorEnrichmentJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_GetVectorEnrichmentJob.html)
+ [ListVectorEnrichmentJobs](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_ListVectorEnrichmentJobs.html)
+ [StopVectorEnrichmentJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_StopVectorEnrichmentJob.html)
+ [DeleteVectorEnrichmentJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_DeleteVectorEnrichmentJob.html)

# Visualizzazione tramite SageMaker funzionalità geospaziali
<a name="geospatial-visualize"></a>

Utilizzando le funzionalità di visualizzazione fornite da Amazon SageMaker geospatial, puoi visualizzare i dati geospaziali, gli input per i tuoi lavori EOJ o VEJ e gli output esportati dal tuo bucket Amazon S3. [Lo strumento di visualizzazione è fornito da Foursquare Studio](https://studio.foursquare.com/home). L'immagine seguente mostra SageMaker lo strumento di visualizzazione supportato dalle funzionalità geospaziali. 

![\[Lo strumento di visualizzazione che utilizza funzionalità SageMaker geospaziali mostra una mappa della costa della California.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/geospatial_vis.png)


Puoi utilizzare il pannello di navigazione a sinistra per aggiungere dati, livelli, filtri e colonne. È inoltre possibile modificare il modo in cui si interagisce con la mappa.

**Set di dati**

La fonte di dati utilizzata per la visualizzazione è denominata **Set di dati**. Per aggiungere dati per la visualizzazione, scegli **Aggiungi dati** nel pannello di navigazione a sinistra. Puoi caricare i dati dal tuo bucket Amazon S3 o dal tuo computer locale. I formati di dati supportati sono CSV, JSON e GeoJSON. È possibile aggiungere più set di dati alla mappa. Dopo aver caricato il set di dati, è possibile vederlo caricato sulla schermata della mappa. 

**Livelli**

Nel pannello dei livelli, un livello viene creato e popolato automaticamente quando si aggiunge un set di dati. Se la mappa è composta da più di un set di dati, è possibile selezionare quale set di dati appartiene a un livello. È possibile creare nuovi livelli e raggrupparli. SageMaker SageMaker le funzionalità geospaziali supportano vari tipi di livelli, tra cui punti, archi, icone e poligoni. 

È possibile scegliere un qualsiasi punto dati in un livello per ottenere un **Contorno**. È inoltre possibile personalizzare ulteriormente i punti dati. Ad esempio, è possibile scegliere il tipo di livello come **Punto**, quindi **Colore di riempimento** in base a una colonna del set di dati. Inoltre, puoi modificare il raggio dei punti. 

L'immagine seguente mostra il pannello dei livelli supportato dalle funzionalità geospaziali. SageMaker 

![\[Il pannello dei livelli con punti dati su una mappa degli Stati Uniti, supportato da SageMaker funzionalità geospaziali.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/geospatial_vis_layer.png)


**Colonne**

È possibile visualizzare le colonne presenti nel set di dati utilizzando la scheda **Colonne** nel pannello di navigazione a sinistra.

**Filtri**

Puoi utilizzare i filtri per limitare i punti dati visualizzati sulla mappa.

**Interazioni**

Nel pannello **Interazioni**, puoi personalizzare il modo in cui interagisci con la mappa. Ad esempio, è possibile scegliere quali metriche visualizzare quando si passa il mouse su un punto di dati.

**Mappa base**

Attualmente, l' SageMaker intelligenza artificiale supporta solo la mappa base Amazon Dark.

**Modalità dividi mappe**

Puoi avere una **Mappa singola**, una **Mappa doppia** o una **Mappa a scorrimento**. Con **Dual Maps**, puoi confrontare la stessa mappa side-by-side utilizzando livelli diversi. Usa **Mappa a scorrimento** per sovrapporre due mappe l'una sull'altra e usa il separatore a scorrimento per confrontarle. Puoi scegliere la modalità di divisione della mappa selezionando il pulsante **Modalità dividi** nell'angolo in alto a destra della mappa.

## Legends for EOJ nell'interfaccia utente SageMaker geospaziale
<a name="geo-legends-eoj"></a>

La visualizzazione dell'output di una EOJ dipende dall'operazione scelta per crearla. La legenda si basa sulla scala cromatica predefinita. Puoi visualizzare la legenda scegliendo il pulsante **Mostra legenda** nell'angolo in alto a destra della mappa.

**Indice spettrale**

Quando si visualizza l'output di un EOJ che utilizza l'operazione dell'indice spettrale, è possibile mappare la categoria in base al colore della legenda, come mostrato.

![\[Legenda per la mappatura degli indici spettrali.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/geo_spectral_index.png)


**Mascheramento delle nuvole**

Quando si visualizza l'output di un EOJ che utilizza l'operazione di mascheramento delle nuvole, è possibile mappare la categoria in base al colore della legenda, come mostrato.

![\[Legenda per la mappatura del mascheramento delle nuvole.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/geo_cloud_masking.png)


**Segmentazione della copertura del suolo**

Quando si visualizza l'output di un EOJ che utilizza l'operazione di segmentazione della copertura del suolo, è possibile mappare la categoria in base al colore della legenda, come mostrato.

![\[Legenda per la mappatura della segmentazione della copertura del suolo.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/geo_landcover_ss.png)


# SDK per SageMaker mappe geospaziali Amazon
<a name="geospatial-notebook-sdk"></a>

Puoi utilizzare le funzionalità SageMaker geospaziali di Amazon per visualizzare mappe all'interno dell'interfaccia utente SageMaker geospaziale e notebook con un'immagine geospaziale. SageMaker Queste visualizzazioni sono supportate dalla libreria di visualizzazione delle mappe [Foursquare Studio](https://studio.foursquare.com/home)

Puoi utilizzare l'SDK per mappe geospaziali APIs fornito dalla mappa geospaziale per visualizzare i tuoi dati SageMaker geospaziali, inclusi input, output e AoI per EOJ.

**Topics**
+ [API add\$1dataset](#geo-add-dataset)
+ [API update\$1dataset](#geo-update-dataset)
+ [API add\$1layer](#geo-add-layer)
+ [API update\$1layer](#geo-update-layer)
+ [API visualize\$1eoj\$1aoi](#geo-visualize-eoj-aoi)
+ [API visualize\$1eoj\$1input](#geo-visualize-eoj-input)
+ [API visualize\$1eoj\$1output](#geo-visualize-eoj-output)

## API add\$1dataset
<a name="geo-add-dataset"></a>

Aggiunge un oggetto del set di dati raster o vettoriale alla mappa.

**Sintassi della richiesta**

```
Request = 
    add_dataset(
      self,
      dataset: Union[Dataset, Dict, None] = None,
      *,
      auto_create_layers: bool = True,
      center_map: bool = True,
      **kwargs: Any,
    ) -> Optional[Dataset]
```

**Parametri della richiesta**

La richiesta include i seguenti parametri.

Argomenti posizionali


| Argomento |  Tipo  |  Description  | 
| --- | --- | --- | 
| `dataset` | Union [Set di dati, Dict, Nessuno] | Dati utilizzati per creare un set di dati, in formato CSV, JSON o GeoJSON (per set di dati locali) o una stringa UUID. | 

Argomenti chiave


| Argomento |  Tipo  |  Descrizione  | 
| --- | --- | --- | 
| `auto_create_layers` | Booleano | Se tentare di creare nuovi livelli quando si aggiunge un set di dati. Il valore predefinito è `False`. | 
| `center_map` | Booleano | Se centrare la mappa sul set di dati creato. Il valore predefinito è `True`. | 
| `id` | Stringa | Identificatore univoco del set di dati. Se non lo fornisci, viene generato un ID casuale. | 
| `label` | Stringa | Etichetta del set di dati che viene visualizzata. | 
| `color` | Tupla [float, float, float] | Etichetta a colori del set di dati. | 
| `metadata` | Dizionario | Oggetto contenente metadati tileset (per set di dati affiancati). | 

**Risposta**

Questa API restituisce l'oggetto [Set di dati](https://location.foursquare.com/developer/docs/studio-map-sdk-types#dataset) che è stato aggiunto alla mappa.

## API update\$1dataset
<a name="geo-update-dataset"></a>

Aggiorna le impostazioni di un set di dati esistente.

**Sintassi della richiesta**

```
Request = 
    update_dataset(
    self,
    dataset_id: str,
    values: Union[_DatasetUpdateProps, dict, None] = None,
    **kwargs: Any,
) -> Dataset
```

**Parametri della richiesta**

La richiesta include i seguenti parametri.

Argomenti posizionali


| Argomento |  Tipo  |  Description  | 
| --- | --- | --- | 
| `dataset_id` | Stringa | Identificatore del set di dati da aggiornare. | 
| `values` | [DatasetUpdatePropsUnione [\$1, dict, Nessuno]](https://location.foursquare.com/developer/docs/studio-map-sdk-types#datasetupdateprops) | Valori da aggiornare. | 

Argomenti chiave


| Argomento |  Tipo  |  Description  | 
| --- | --- | --- | 
| `label` | Stringa | Etichetta del set di dati che viene visualizzata. | 
| `color` | [RGBColor](https://location.foursquare.com/developer/docs/studio-map-sdk-types#rgbcolor) | Etichetta a colori del set di dati. | 

**Risposta**

Questa API restituisce l'oggetto del set di dati aggiornato per mappe interattive, o `None` per ambienti HTML non interattivi. 

## API add\$1layer
<a name="geo-add-layer"></a>

Aggiunge un nuovo livello alla mappa. Questa funzione richiede almeno una configurazione di livello valida.

**Sintassi della richiesta**

```
Request = 
    add_layer(
    self,
    layer: Union[LayerCreationProps, dict, None] = None,
    **kwargs: Any
) -> Layer
```

**Parametri della richiesta**

La richiesta include i seguenti parametri.

Arguments (Argomenti)


| Argomento |  Tipo  |  Description  | 
| --- | --- | --- | 
| `layer` | Unione [[LayerCreationProps](https://location.foursquare.com/developer/docs/studio-map-sdk-types#layercreationprops), dict, Nessuno] | Insieme di proprietà utilizzate per creare un livello. | 

**Risposta**

Oggetto livello aggiunto alla mappa.

## API update\$1layer
<a name="geo-update-layer"></a>

Aggiorna un livello esistente con determinati valori.

**Sintassi della richiesta**

```
Request = 
    update_layer(
  self,
  layer_id: str,
  values: Union[LayerUpdateProps, dict, None],
  **kwargs: Any
) -> Layer
```

**Parametri della richiesta**

La richiesta include i seguenti parametri.

Arguments (Argomenti)


| Argomento posizionale |  Tipo  |  Description  | 
| --- | --- | --- | 
| `layer_id` | Stringa | ID del livello da aggiornare. | 
| `values` | Unione [[LayerUpdateProps](https://location.foursquare.com/developer/docs/studio-map-sdk-types#layerupdateprops), dict, Nessuno] | Valori da aggiornare. | 

Argomenti chiave


| Argomento |  Tipo  |  Description  | 
| --- | --- | --- | 
| `type` | [LayerType](https://location.foursquare.com/developer/docs/studio-map-sdk-types#layertype) | Tipo di errore. | 
| `data_id` | Stringa | Identificatore univoco del set di dati visualizzato da questo livello. | 
| `fields` | Dict [stringa, Opzionale [stringa]] | Dizionario che mappa i campi richiesti dal livello per la visualizzazione su campi del set di dati appropriati. | 
| `label` | Stringa | Etichetta canonica di questo livello. | 
| `is_visible` | Booleano | Se il livello è visibile o meno. | 
| `config` | [LayerConfig](https://location.foursquare.com/developer/docs/studio-map-sdk-types#layerconfig) | Configurazione del livello specifica per il tipo.  | 

**Risposta**

Restituisce l'oggetto del livello aggiornato.

## API visualize\$1eoj\$1aoi
<a name="geo-visualize-eoj-aoi"></a>

Visualizza l'AoI di un determinato lavoro ARN.

**Parametri della richiesta**

La richiesta include i seguenti parametri.

Arguments (Argomenti)


| Argomento |  Tipo  |  Description  | 
| --- | --- | --- | 
|  `Arn`  |  Stringa  |  ARN del processo.  | 
|  `config`  |  Dizionario config = \$1label: <string>etichetta personalizzata del livello AoI aggiunto, AoI predefinita\$1  |  Opzione per passare le proprietà del livello.  | 

**Risposta**

Riferimento dell'oggetto del livello di input aggiunto.

## API visualize\$1eoj\$1input
<a name="geo-visualize-eoj-input"></a>

Visualizza l’input di un determinato EOJ ARN.

**Parametri della richiesta**

La richiesta include i seguenti parametri.

Arguments (Argomenti)


| Argomento |  Tipo  |  Description  | 
| --- | --- | --- | 
| `Arn` | Stringa | ARN del processo. | 
| `time_range_filter` |  Dizionario time\$1range\$1filter = \$1 <string>start\$1date: data in formato ISO end\$1date: <string> data in formato ISO \$1  | Opzione per fornire l'ora di inizio e di fine. L'impostazione predefinita è la data di inizio e fine della ricerca della raccolta di dati raster. | 
| `config` |  Dizionario config = \$1label: <string> etichetta personalizzata del livello output aggiunto, Input predefinito\$1  | Opzione per passare le proprietà del livello. | 

**Risposta**

Riferimento dell'oggetto del livello di input aggiunto.

## API visualize\$1eoj\$1output
<a name="geo-visualize-eoj-output"></a>

Visualizza l’output di un determinato EOJ ARN.

**Parametri della richiesta**

La richiesta include i seguenti parametri.

Arguments (Argomenti)


| Argomento |  Tipo  |  Description  | 
| --- | --- | --- | 
|  `Arn`  |  Stringa  |  ARN del processo.  | 
|  `time_range_filter`  |  Dizionario time\$1range\$1filter = \$1 <string>start\$1date: data in formato ISO end\$1date: <string> data in formato ISO \$1  | Opzione per fornire l'ora di inizio e di fine. L'impostazione predefinita è la data di inizio e fine della ricerca della raccolta di dati raster. | 
| `config` |  Dizionario config = \$1 etichetta: <string> etichetta personalizzata del livello output aggiunto, Output predefinito preimpostazione: <string> SingleBand o TrueColor, band\$1name:<string>, richiesto solo per la preimpostazione 'singleBand'. Bande consentite per un EOJ \$1  | Opzione per passare le proprietà del livello. | 

**Risposta**

Riferimento dell'oggetto del livello di output aggiunto.

[Per ulteriori informazioni sulla visualizzazione dei dati geospaziali, consulta Visualizzazione con Amazon geospatial. SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/geospatial-visualize.html)

# SageMaker Domande frequenti sulle funzionalità geospaziali
<a name="geospatial-faq"></a>

Utilizza le seguenti domande frequenti per trovare le risposte alle domande più frequenti sulle SageMaker funzionalità geospaziali.

1. **In quali regioni sono disponibili le funzionalità SageMaker geospaziali di Amazon?**

   Attualmente, le funzionalità SageMaker geospaziali sono supportate solo nella regione degli Stati Uniti occidentali (Oregon). Per visualizzare dati SageMaker geospaziali, scegli il nome della regione attualmente visualizzata nella barra di navigazione della console. Scegli la Regione Stati Uniti occidentali (Oregon).

1. **Quali AWS Identity and Access Management autorizzazioni e politiche sono necessarie per utilizzare la tecnologia geospaziale? SageMaker **

   Per utilizzare SageMaker geospatial è necessario un utente, un gruppo o un ruolo in grado di accedere all'intelligenza artificiale. SageMaker È inoltre necessario creare un ruolo di esecuzione dell' SageMaker IA in modo che SageMaker geospatial possa eseguire operazioni per conto dell'utente. Per ulteriori informazioni, consulta i ruoli relativi alle capacità [SageMaker geospaziali](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-geospatial-roles.html).

1. **Ho già un ruolo di esecuzione dell' SageMaker IA. È necessario aggiornarlo?**

   Sì. Per utilizzare SageMaker geospatial è necessario specificare un servizio principale aggiuntivo nella politica di fiducia IAM:. `sagemaker-geospatial.amazonaws.com` Per ulteriori informazioni su come specificare l'entità del servizio in una relazione di trust, consulta [Aggiungere  il responsabile del servizio SageMaker geospaziale a un ruolo di esecuzione dell'IA esistente SageMaker](sagemaker-geospatial-roles-pass-role.md) la *Amazon SageMaker AI Developer Guide*.

1. **Posso utilizzare le funzionalità SageMaker geospaziali tramite il mio ambiente VPC?**

   Sì, puoi usare SageMaker geospatial tramite una VPN. Per ulteriori informazioni, consulta [Usa le funzionalità SageMaker geospaziali di Amazon nel tuo Amazon Virtual Private Cloud](geospatial-notebooks-and-internet-access-vpc-requirements.md).

1. **Perché non riesco a vedere il visualizzatore di mappe SageMaker geospaziali, l'immagine o il tipo di istanza quando accedo ad Amazon Studio Classic? SageMaker **

   Verifica di avviare Amazon SageMaker Studio Classic nella regione Stati Uniti occidentali (Oregon) e di non utilizzare uno spazio condiviso.

1. **Perché non riesco a vedere l'immagine SageMaker geospaziale o il tipo di istanza quando cerco di creare un'istanza notebook in Studio Classic?**

   Verifica di avviare Amazon SageMaker Studio Classic nella regione Stati Uniti occidentali (Oregon) e di non utilizzare uno spazio condiviso. Per ulteriori informazioni, consulta [Crea un notebook Amazon SageMaker Studio Classic utilizzando l'immagine geospaziale](geospatial-launch-notebook.md).

1. **Quali bande sono supportate per varie raccolte di dati raster?**

   Utilizza la risposta dell'API `GetRasterDataCollection` e consulta il campo `ImageSourceBands` per trovare le bande supportate per quella particolare raccolta di dati.

# SageMaker Sicurezza e autorizzazioni geospaziali
<a name="geospatial-security-general"></a>

Utilizza gli argomenti di questa pagina per conoscere le funzionalità SageMaker geospaziali e le funzionalità di sicurezza. Inoltre, scopri come utilizzare le funzionalità SageMaker geospaziali in un Amazon Virtual Private Cloud e come proteggere i tuoi dati inattivi utilizzando la crittografia.

Per ulteriori informazioni sugli utenti IAM e i ruoli, consulta [Identities (users, user groups, and roles)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) nella Guida per l'utente IAM. 

Per ulteriori informazioni sull'utilizzo di IAM con l' SageMaker intelligenza artificiale, consulta. [AWS Identity and Access Management per Amazon SageMaker AI](security-iam.md)

**Topics**
+ [Analisi della configurazione e delle vulnerabilità in SageMaker ambito geospaziale](geospatial-config-vulnerability.md)
+ [Best practice di sicurezza per le funzionalità SageMaker geospaziali](geospatial-sec-best-practices.md)
+ [Usa le funzionalità SageMaker geospaziali di Amazon nel tuo Amazon Virtual Private Cloud](geospatial-notebooks-and-internet-access-vpc-requirements.md)
+ [Usa AWS KMS le autorizzazioni per le funzionalità SageMaker geospaziali di Amazon](geospatial-kms.md)

# Analisi della configurazione e delle vulnerabilità in SageMaker ambito geospaziale
<a name="geospatial-config-vulnerability"></a>

La configurazione e i controlli IT sono una responsabilità condivisa tra voi AWS e voi, i nostri clienti. AWS gestisce le attività di sicurezza di base come l'applicazione di patch al sistema operativo guest (OS) e al database, la configurazione del firewall e il disaster recovery. Queste procedure sono state riviste e certificate dalle terze parti appropriate. Per ulteriori dettagli, consulta le seguenti risorse : 
+ [Modello di responsabilità condivisa](https://aws.amazon.com/compliance/shared-responsibility-model/).
+ [Amazon Web Services: panoramica dei processi di sicurezza](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf).

# Best practice di sicurezza per le funzionalità SageMaker geospaziali
<a name="geospatial-sec-best-practices"></a>

Le funzionalità SageMaker geospaziali di Amazon forniscono una serie di funzionalità di sicurezza da prendere in considerazione durante lo sviluppo e l'implementazione delle proprie politiche di sicurezza. Le seguenti best practice sono linee guida generali e non rappresentano una soluzione di sicurezza completa. Poiché queste best practice potrebbero non essere appropriate o sufficienti per l’ambiente, sono da considerare come considerazioni utili anziché prescrizioni.
<a name="geospatial-least-privilege"></a>
**Applicazione del principio del privilegio minimo**  
Le funzionalità SageMaker geospaziali di Amazon forniscono policy di accesso granulari per le applicazioni che utilizzano ruoli IAM. Si consiglia di concedere ai ruoli solo il set minimo di privilegi richiesti dal processo. Si consiglia inoltre di verificare i processi per le autorizzazioni su base regolare e in caso di modifiche all'applicazione.
<a name="geospatial-role-access"></a>
**Autorizzazioni per il controllo degli accessi basato su ruoli (RBAC)**  
Gli amministratori devono controllare rigorosamente le autorizzazioni RBAC (Role-based access control) per le funzionalità geospaziali di Amazon. SageMaker 
<a name="geospatial-temp-creditentials"></a>
**Utilizza credenziali temporanee quando possibile**  
Utilizza credenziali temporanee al posto di credenziali a lungo termine, come chiavi di accesso, se possibile. Per gli scenari in cui sono necessari utenti IAM con accesso programmatico e credenziali a lungo termine, si consiglia di ruotare le chiavi di accesso. La rotazione regolare delle credenziali a lungo termine ti aiuta a familiarizzare con il processo. Ciò è utile nel caso in cui ti trovi in una situazione in cui devi ruotare le credenziali, ad esempio quando un dipendente lascia la tua azienda. Ti consigliamo di utilizzare informazioni utilizzate per l'ultimo accesso IAM per ruotare e rimuovere le chiavi di accesso in modo sicuro. Per ulteriori informazioni, consulta [Rotating access keys](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey) e [Security best practices in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html).
<a name="geospatial-cloudtrail-log"></a>
**AWS CloudTrail Utilizzalo per visualizzare e registrare le chiamate API**  
AWS CloudTrail tiene traccia di chiunque effettui chiamate API nel tuo AWS account. Le chiamate API vengono registrate ogni volta che qualcuno utilizza l'API Amazon SageMaker geospatial capabilities, la Amazon geospatial capabilities console o i comandi CLI di Amazon SageMaker geospatial capabilities. SageMaker AWS Attivare la registrazione e specificare un bucket Amazon S3 in cui archiviare i log.

La tua fiducia, la tua privacy e la sicurezza dei tuoi contenuti sono le nostre maggiori priorità. Implementiamo controlli tecnici e fisici responsabili e sofisticati progettati per impedire l'accesso non autorizzato o la divulgazione dei tuoi contenuti e garantire che il nostro utilizzo rispetti i nostri impegni nei tuoi confronti. Per ulteriori informazioni, consulta le [Domande frequenti sulla privacy dei dati in AWS](https://aws.amazon.com/compliance/data-privacy-faq/).

# Usa le funzionalità SageMaker geospaziali di Amazon nel tuo Amazon Virtual Private Cloud
<a name="geospatial-notebooks-and-internet-access-vpc-requirements"></a>

Il seguente argomento fornisce informazioni su come utilizzare SageMaker notebook con un'immagine SageMaker geospaziale in un dominio Amazon SageMaker AI con modalità solo VPC. Per ulteriori informazioni su VPCs Amazon SageMaker Studio Classic, consulta [Scegli un Amazon VPC](https://docs.aws.amazon.com/sagemaker/latest/dg/onboard-vpc.html).

## Comunicazione `VPC only` con Internet
<a name="studio-notebooks-and-internet-access-vpc-geospatial"></a>

Per impostazione predefinita, il dominio SageMaker AI utilizza due Amazon VPC. Uno dei VPC di Amazon è gestito da Amazon SageMaker AI e fornisce l'accesso diretto a Internet. Specifica l’altro Amazon VPC, che fornisce traffico crittografato tra il dominio e il volume Amazon Elastic File System (Amazon EFS).

Puoi modificare questo comportamento in modo che l' SageMaker IA invii tutto il traffico sul tuo Amazon VPC specificato. Se `VPC only` è stata scelta come modalità di accesso alla rete durante la creazione del dominio SageMaker AI, è necessario considerare i seguenti requisiti per consentire comunque l'utilizzo dei notebook SageMaker Studio Classic all'interno del dominio AI creato. SageMaker 

## Requisiti per l'utilizzo della modalità `VPC only`
<a name="studio-notebooks-and-internet-access-vpc-geospatial-requirements"></a>

**Nota**  
Per utilizzare i componenti di visualizzazione delle funzionalità SageMaker geospaziali, il browser utilizzato per accedere all'interfaccia utente di SageMaker Studio Classic deve essere connesso a Internet.

Quando scegli `VpcOnly`, segui queste fasi:

1. Puoi utilizzare solo sottoreti private. Non puoi utilizzare sottoreti pubbliche nella modalità `VpcOnly`.

1. Assicurati che le tue sottoreti abbiano il numero richiesto di indirizzi IP necessari. Il numero previsto di indirizzi IP necessari per utente può variare in base al caso d'uso. Consigliamo tra 2 e 4 indirizzi IP per utente. La capacità totale degli indirizzi IP per un dominio Studio Classic è la somma degli indirizzi IP disponibili per ogni sottorete fornita al momento della creazione del dominio. Assicurati che l'utilizzo stimato dell'indirizzo IP non superi la capacità supportata dal numero di sottoreti che fornisci. Inoltre, l'utilizzo di sottoreti distribuite su molte zone di disponibilità può favorire la disponibilità degli indirizzi IP. Per ulteriori informazioni, consulta il dimensionamento di [VPC e sottorete](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#vpc-sizing-ipv4) per. IPv4
**Nota**  
È possibile configurare solo le sottoreti con un VPC con tenancy predefinita in cui l'istanza viene eseguita su hardware condiviso. [Per ulteriori informazioni sull'attributo tenancy per VPCs, consulta Dedicated Instances.](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html)

1. Configura uno o più gruppi di sicurezza con regole in entrata e in uscita che insieme consentano il seguente traffico:
   + [Traffico NFS su TCP sulla porta 2049](https://docs.aws.amazon.com/efs/latest/ug/network-access.html) tra il dominio e il volume Amazon EFS.
   + [Traffico TCP all'interno del gruppo di sicurezza](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-other-instances). Questo è necessario per la connettività tra l' JupyterServer app e le KernelGateway app. È necessario consentire l'accesso ad almeno le porte dell'intervallo `8192-65535`.

1. Se desideri consentire l'accesso a Internet, è necessario utilizzare un [gateway NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-working-with) con accesso a Internet, ad esempio tramite un [gateway Internet](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html).

1. Se non desideri consentire l'accesso a Internet, [crea endpoint VPC di interfaccia](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html) (AWS PrivateLink) per consentire a Studio Classic di accedere ai seguenti servizi con i nomi di servizio corrispondenti. Devi inoltre associare i gruppi di sicurezza per il tuo VPC a questi endpoint.
**Nota**  
Attualmente, le funzionalità SageMaker geospaziali sono supportate solo nella regione degli Stati Uniti occidentali (Oregon).
   + SageMaker API: `com.amazonaws.us-west-2.sagemaker.api` 
   + SageMaker Runtime AI:`com.amazonaws.us-west-2.sagemaker.runtime`. È necessario per eseguire notebook Studio Classic con un' SageMaker immagine geospaziale.
   + Amazon S3: `com.amazonaws.us-west-2.s3`.
   +  SageMaker Per `com.amazonaws.us-west-2.servicecatalog` utilizzare Projects:.
   + SageMaker capacità geospaziali: `com.amazonaws.us-west-2.sagemaker-geospatial`

    Se utilizzi [SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable/) per eseguire lavori di formazione remoti, devi anche creare i seguenti endpoint Amazon VPC.
   + AWS Security Token Service: `com.amazonaws.region.sts`
   + Amazon CloudWatch:. `com.amazonaws.region.logs` Ciò è necessario per consentire a SageMaker Python SDK di ottenere lo stato del lavoro di formazione remota da. Amazon CloudWatch

**Nota**  
Per un cliente che lavora in modalità VPC, i firewall aziendali possono causare problemi di connessione con SageMaker Studio Classic o tra e JupyterServer KernelGateway Effettua i seguenti controlli se riscontri uno di questi problemi quando usi SageMaker Studio Classic da un firewall.  
Verifica che l’URL di Studio Classic sia nell’elenco di elementi consentiti.
Verifica che le connessioni websocket non siano bloccate. Jupyter utilizza websocket dietro le quinte. Se l' KernelGateway applicazione lo è InService, JupyterServer potrebbe non essere possibile connettersi a KernelGateway. Il problema dovrebbe presentarsi anche all'apertura del Terminale di sistema. 

# Usa AWS KMS le autorizzazioni per le funzionalità SageMaker geospaziali di Amazon
<a name="geospatial-kms"></a>

Puoi proteggere i tuoi dati inattivi utilizzando la crittografia per le funzionalità geospaziali. SageMaker Per impostazione predefinita, utilizza la crittografia lato server con una chiave SageMaker geospaziale di proprietà di Amazon. SageMaker le funzionalità geospaziali supportano anche un'opzione per la crittografia lato server con una chiave KMS gestita dal cliente.

## Crittografia lato server con chiave gestita SageMaker geospaziale Amazon (impostazione predefinita)
<a name="geospatial-managed-key"></a>

SageMaker le funzionalità geospaziali crittografano tutti i tuoi dati, compresi i risultati computazionali dei lavori di osservazione della Terra (EOJ) e dei lavori di arricchimento vettoriale (VEJ) insieme a tutti i metadati dei tuoi servizi. Non ci sono dati archiviati all'interno delle funzionalità geospaziali non crittografati. SageMaker Utilizza una chiave di AWS proprietà predefinita per crittografare tutti i dati.

## Crittografia lato server (SSE) con una chiave gestita dal cliente.
<a name="geospatial-customer-managed-key"></a>

SageMaker le funzionalità geospaziali supportano l'uso di una chiave simmetrica gestita dal cliente che puoi creare, possedere e gestire per aggiungere un secondo livello di crittografia alla crittografia di proprietà esistente. AWS Avendo il pieno controllo di questo livello di crittografia, è possibile eseguire operazioni quali:
+ Stabilire e mantenere le policy delle chiavi
+ Stabilire e mantenere le policy e le sovvenzioni IAM
+ Abilitare e disabilitare le policy delle chiavi
+ Ruotare i materiali crittografici delle chiavi
+ Aggiungere tag
+ Creare alias delle chiavi
+ Pianificare l’eliminazione delle chiavi

Per ulteriori informazioni, consulta [Customer managed keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) nella *Guida per sviluppatori AWS Key Management Service *.

## In che modo le funzionalità geospaziali utilizzano le sovvenzioni SageMaker AWS KMS
<a name="geospatial-grants-cmk"></a>

 SageMaker le funzionalità geospaziali richiedono una concessione per l'utilizzo della chiave gestita dal cliente. Quando crei un EOJ o un VEJ crittografato con una chiave gestita dal cliente, SageMaker geospatial capabilities crea una concessione per tuo conto inviando una richiesta a. `CreateGrant` AWS KMS Le sovvenzioni AWS KMS vengono utilizzate per consentire alle funzionalità SageMaker geospaziali di accedere a una chiave KMS in un account cliente. Puoi revocare l'accesso alla concessione o rimuovere l'accesso del servizio alla chiave gestita dal cliente in qualsiasi momento. In tal caso, le funzionalità SageMaker geospaziali non saranno in grado di accedere a nessuno dei dati crittografati dalla chiave gestita dal cliente, il che influirà sulle operazioni che dipendono da tali dati. 

## Creazione di una chiave gestita dal cliente
<a name="geospatial-create-cmk"></a>

È possibile creare una chiave simmetrica gestita dal cliente utilizzando la console di AWS gestione o il. AWS KMS APIs

**Per creare una chiave simmetrica gestita dal cliente**

Segui i passaggi per la [creazione di chiavi KMS di crittografia simmetrica](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) nella Guida per gli sviluppatori. AWS Key Management Service 

**Policy della chiave**

Le policy della chiave controllano l’accesso alla chiave gestita dal cliente. Ogni chiave gestita dal cliente deve avere esattamente una policy della chiave, che contiene istruzioni che determinano chi può usare la chiave e come la possono usare. Quando crei la chiave gestita dal cliente, è possibile specificare una policy della chiave. *Per ulteriori informazioni, consulta [Determinazione dell'accesso alle AWS KMS chiavi nella Guida per](https://docs.aws.amazon.com/kms/latest/developerguide/determining-access.html) gli AWS Key Management Service sviluppatori.*

Per utilizzare la chiave gestita dal cliente con le risorse relative alle funzionalità SageMaker geospaziali, nella policy chiave devono essere consentite le seguenti operazioni API. Il principale per queste operazioni dovrebbe essere il ruolo di esecuzione fornito nella richiesta di funzionalità SageMaker geospaziali. SageMaker le capacità geospaziali presuppongono il ruolo di esecuzione fornito nella richiesta di eseguire queste operazioni KMS.
+ `[kms:CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)`
+ `kms:GenerateDataKey`
+ `kms:Decrypt`
+ `kms:GenerateDataKeyWithoutPlaintext`

Di seguito sono riportati alcuni esempi di dichiarazioni politiche che è possibile aggiungere per le funzionalità geospaziali: SageMaker 

**CreateGrant**

```
"Statement" : [ 
    {
      "Sid" : "Allow access to Amazon SageMaker geospatial capabilities",
      "Effect" : "Allow",
      "Principal" : {
        "AWS" : "<Customer provided Execution Role ARN>"
      },
      "Action" : [ 
          "kms:CreateGrant",
           "kms:Decrypt",
           "kms:GenerateDataKey",
           "kms:GenerateDataKeyWithoutPlaintext"
      ],
      "Resource" : "*",
    },
 ]
```

Per ulteriori informazioni su come specificare le autorizzazioni in una policy, consulta [AWS KMS Autorizzazioni](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) nella *AWS Key Management Service Guida per gli sviluppatori*. Per informazioni sulla risoluzione dei problemi, consulta [Troubleshooting key access](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html) nella *AWS Key Management Service Guida per gli sviluppatori*. 

Se la policy della chiave non prevede l'account root come amministratore delle chiavi, è necessario aggiungere le stesse autorizzazioni KMS al ruolo di esecuzione ARN. Ecco un esempio di policy che puoi aggiungere al ruolo di esecuzione:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "kms:CreateGrant",
                "kms:Decrypt",
                "kms:GenerateDataKey",
                "kms:GenerateDataKeyWithoutPlaintext"
            ],
            "Resource": [
              "arn:aws:kms:us-east-1:111122223333:key/key-id"
            ],
            "Effect": "Allow"
        }
    ]
}
```

------

## Monitoraggio delle chiavi di crittografia per verificare le funzionalità geospaziali SageMaker
<a name="geospatial-monitor-cmk"></a>

Quando utilizzi una chiave gestita AWS KMS dal cliente con le tue risorse relative alle funzionalità SageMaker geospaziali, puoi utilizzare AWS CloudTrail Amazon CloudWatch Logs per tenere traccia delle richieste a cui SageMaker vengono inviate le informazioni geospaziali. AWS KMS

Seleziona una scheda nella tabella seguente per visualizzare esempi di AWS CloudTrail eventi per monitorare le operazioni KMS richiamate dalle funzionalità SageMaker geospaziali per accedere ai dati crittografati dalla chiave gestita dal cliente.

------
#### [ CreateGrant ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAIGDTESTANDEXAMPLE:SageMaker-Geospatial-StartEOJ-KMSAccess",
        "arn": "arn:aws:sts::111122223333:assumed-role/SageMakerGeospatialCustomerRole/SageMaker-Geospatial-StartEOJ-KMSAccess",
        "accountId": "111122223333",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE3",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AKIAIOSFODNN7EXAMPLE3",
                "arn": "arn:aws:sts::111122223333:assumed-role/SageMakerGeospatialCustomerRole",
                "accountId": "111122223333",
                "userName": "SageMakerGeospatialCustomerRole"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2023-03-17T18:02:06Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "arn:aws:iam::111122223333:root"
    },
    "eventTime": "2023-03-17T18:02:06Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "CreateGrant",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "172.12.34.56",
    "userAgent": "ExampleDesktop/1.0 (V1; OS)",
    "requestParameters": {
        "retiringPrincipal": "sagemaker-geospatial.us-west-2.amazonaws.com",
        "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
        "operations": [
            "Decrypt"
        ],
        "granteePrincipal": "sagemaker-geospatial.us-west-2.amazonaws.com"
    },
    "responseElements": {
        "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE",
        "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
    },
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": false,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

------
#### [ GenerateDataKey ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "sagemaker-geospatial.amazonaws.com"
    },
    "eventTime": "2023-03-24T00:29:45Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "GenerateDataKey",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "sagemaker-geospatial.amazonaws.com",
    "userAgent": "sagemaker-geospatial.amazonaws.com",
    "requestParameters": {
        "encryptionContext": {
            "aws:s3:arn": "arn:aws:s3:::axis-earth-observation-job-378778860802/111122223333/napy9eintp64/output/consolidated/32PPR/2022-01-04T09:58:03Z/S2B_32PPR_20220104_0_L2A_msavi.tif"
        },
        "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE",
        "keySpec": "AES_256"
    },
    "responseElements": null,
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": true,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

------
#### [ Decrypt ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AWSService",
        "invokedBy": "sagemaker-geospatial.amazonaws.com"
    },
    "eventTime": "2023-03-28T22:04:24Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "Decrypt",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "sagemaker-geospatial.amazonaws.com",
    "userAgent": "sagemaker-geospatial.amazonaws.com",
    "requestParameters": {
        "encryptionAlgorithm": "SYMMETRIC_DEFAULT",
        "encryptionContext": {
            "aws:s3:arn": "arn:aws:s3:::axis-earth-observation-job-378778860802/111122223333/napy9eintp64/output/consolidated/32PPR/2022-01-04T09:58:03Z/S2B_32PPR_20220104_0_L2A_msavi.tif"
        },
    },
    "responseElements": null,
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": true,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

------
#### [ GenerateDataKeyWithoutPlainText ]

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAIGDTESTANDEXAMPLE:SageMaker-Geospatial-StartEOJ-KMSAccess",
        "arn": "arn:aws:sts::111122223333:assumed-role/SageMakerGeospatialCustomerRole/SageMaker-Geospatial-StartEOJ-KMSAccess",
        "accountId": "111122223333",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE3",
        "sessionContext": {
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AKIAIOSFODNN7EXAMPLE3",
                "arn": "arn:aws:sts::111122223333:assumed-role/SageMakerGeospatialCustomerRole",
                "accountId": "111122223333",
                "userName": "SageMakerGeospatialCustomerRole"
            },
            "webIdFederationData": {},
            "attributes": {
                "creationDate": "2023-03-17T18:02:06Z",
                "mfaAuthenticated": "false"
            }
        },
        "invokedBy": "arn:aws:iam::111122223333:root"
    },
    "eventTime": "2023-03-28T22:09:16Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "GenerateDataKeyWithoutPlaintext",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "172.12.34.56",
    "userAgent": "ExampleDesktop/1.0 (V1; OS)",
    "requestParameters": {
        "keySpec": "AES_256",
        "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
    },
    "responseElements": null,
    "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE",
    "readOnly": true,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE"
        }
    ],
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "111122223333",
    "eventCategory": "Management"
}
```

------

# Tipi di istanze di calcolo
<a name="geospatial-instances"></a>

SageMaker le funzionalità geospaziali offrono tre tipi di istanze di calcolo.
+ SageMaker istanze **geospaziali per notebook Studio Classic: Geospatial supporta istanze di notebook** basate su CPU e SageMaker GPU in Studio Classic. Le istanze del notebook vengono utilizzate per creare, addestrare e distribuire modelli di machine learning. Per un elenco dei tipi di istanze di notebook disponibili che funzionano con l'immagine geospaziale, consulta [Supported notebook instance types](#supported-geospatial-instances). 
+ SageMaker istanze di **lavori geospaziali**: esegui processi di elaborazione per trasformare i dati delle immagini satellitari.
+ **SageMaker tipi di inferenza dei modelli geospaziali**: effettua previsioni utilizzando modelli ML preaddestrati su immagini satellitari.

Il tipo di istanza è determinato dalle operazioni eseguite.

La tabella seguente mostra le operazioni SageMaker geospaziali specifiche e i tipi di istanza disponibili che è possibile utilizzare. 


|  Operazioni  |  Istanza  | 
| --- | --- | 
| Statistiche temporali | ml.geospatial.jobs | 
| Statistiche zonali | ml.geospatial.jobs | 
| Ricampionamento | ml.geospatial.jobs | 
| Geomosaico | ml.geospatial.jobs | 
| Impilamento di bande | ml.geospatial.jobs | 
| Matematica di banda | ml.geospatial.jobs | 
| Rimozione del cloud con Landsat8 | ml.geospatial.jobs | 
| Rimozione del cloud con Sentinel-2 | ml.geospatial.models | 
| Mascheramento delle nuvole | ml.geospatial.models | 
| Segmentazione della copertura del suolo | ml.geospatial.models | 

## SageMaker tipi di istanze di notebook supportati dal sistema geospaziale
<a name="notebook-instances"></a>

SageMaker geospatial supporta istanze di notebook basate su CPU e GPU in Studio Classic. Se all'avvio di un'istanza di notebook compatibile con GPU si riceve un ResourceLimitExceedederrore, è necessario richiedere un aumento della quota. Per richiedere un aumento delle quote, consultare [Requesting a quota increase](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) nella *Guida per l'utente di Service Quotas*.

Tipi di istanze del notebook Studio Classic supportati


|  Name  |  Tipo di istanza  | 
| --- | --- | 
| ml.geospatial.interactive | CPU | 
| ml.g5.xlarge | GPU | 
| ml.g5.2xlarge | GPU | 
| ml.g5.4xlarge | GPU | 
| ml.g5.8xlarge | GPU | 
| ml.g5.16xlarge | GPU | 
| ml.g5.12xlarge | GPU | 
| ml.g5.24xlarge | GPU | 
| ml.g5.48xlarge | GPU | 

Ti vengono addebitate tariffe diverse per ogni tipo di istanza di calcolo che utilizzi. Per ulteriori informazioni sui prezzi, consulta [Geospatial ML with Amazon](https://aws.amazon.com/sagemaker/geospatial) AI. SageMaker 

## SageMaker librerie geospaziali
<a name="geospatial-notebook-libraries"></a>

Il **tipo di istanza SageMaker ** geospaziale, specifico, **ml.geospatial.interactive** contiene le seguenti librerie Python.

Librerie geospaziali disponibili nel tipo di istanza geospaziale


|  Nome della libreria  |  Versione disponibile  | 
| --- | --- | 
| numpy | 1.23.4 | 
| scipy | 1.11.2 | 
| pandas | 1.4.4 | 
| gdal | 3.2.2 | 
| fiona | 1,8,22 | 
| geopandas | 0.11.1 | 
| shapley | 1.8.4 | 
| seaborn | 0,11,2 | 
| notebook | 1,8,22 | 
| scikit-image | 0,11,2 | 
| rasterio | 6,4,12 | 
| scikit-learn | 0,19,2 | 
| ipyleaflet | 1.0.1 | 
| rtree | 0,17,2 | 
| opencv | 4,6,0,66 | 
| supy | 2022,47 | 
| SNAP toolbox | 9,0 | 
| cdsapi | 0.6.1 | 
| arosics | 1.8.1 | 
| rasterstats | 0,18,0 | 
| rioxarray | 0,14,1 | 
| pyroSAR | 0,20,0 | 
| eo-learn | 1.4.1 | 
| deepforest | 1.2.7 | 
| scrapy | 2.8.0 | 
| netto CDF4 | 1.6.3 | 
| xarray [completo] | 0.20.1 | 
| Orfeotoolbox | OTB-8.1.1 | 
| PyTorch | 2.0.1 | 
| pytorch-cuda | 11.8 | 
| torchvision | 0,15,2 | 
| torcia audio | 2.0.2 | 
| pytorch-lightning | 2.0.6 | 
| tensorflow | 2.13.0 | 

# Raccolte dati
<a name="geospatial-data-collections"></a>

Amazon SageMaker geospatial supporta le seguenti raccolte di dati raster. Delle seguenti raccolte di dati, puoi utilizzare USGS Landsat e Sentinel-2 Cloud-Optimized GeoTIFF quando avvii un processo di osservazione della terra (EOJ). Per ulteriori informazioni su, consulta. EOJs [Processi di osservazione della terra](geospatial-eoj.md)
+ [Copernicus Digital Elevation Model (DEM) – GLO-30](https://registry.opendata.aws/copernicus-dem/)
+ [Copernicus Digital Elevation Model (DEM) – GLO-90](https://registry.opendata.aws/copernicus-dem/)
+ [https://registry.opendata.aws/sentinel-2-l2a-cogs/](https://registry.opendata.aws/sentinel-2-l2a-cogs/)
+ [https://registry.opendata.aws/sentinel-1/](https://registry.opendata.aws/sentinel-1/)
+ [National Agriculture Imagery Program (NAIP)su AWS](https://registry.opendata.aws/naip/)
+ [https://registry.opendata.aws/usgs-landsat/](https://registry.opendata.aws/usgs-landsat/)

Per trovare l'elenco delle raccolte di dati raster disponibili nel tuo computer Regioni AWS, usa`ListRasterDataCollections`. Nella [risposta `ListRasterDataCollections`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_ListRasterDataCollections.html#API_geospatial_ListRasterDataCollections_ResponseSyntax), ottieni un [oggetto `RasterDataCollectionMetadata`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_ListRasterDataCollections.html#API_geospatial_ListRasterDataCollections_ResponseSyntax) che contiene dettagli sulle raccolte di dati raster disponibili.

**Example Esempio: chiamata all'`ListRasterDataCollections`API utilizzando il AWS SDK per Python (Boto3)**  <a name="list-raster-data-collections"></a>
Quando si utilizza l'SDK per Python ( SageMaker Boto3) e geospatial, è necessario creare un client geospaziale,. `geospatial_client` Utilizza il seguente frammento Python per effettuare una chiamata all'API `list_raster_data_collections`:  

```
import boto3
import sagemaker
import sagemaker_geospatial_map
import json 

## SageMaker Geospatial Capabilities is currently only avaialable in US-WEST-2  
session = boto3.Session(region_name='us-west-2')
execution_role = sagemaker.get_execution_role()

## Creates a SageMaker Geospatial client instance 
geospatial_client = session.client(service_name="sagemaker-geospatial")

# Creates a resusable Paginator for the list_raster_data_collections API operation 
paginator = geospatial_client.get_paginator("list_raster_data_collections")

# Create a PageIterator from the Paginator
page_iterator = paginator.paginate()

# Use the iterator to iterate throught the results of list_raster_data_collections
results = []
for page in page_iterator:
	results.append(page['RasterDataCollectionSummaries'])

print (results)
```
Nella risposta JSON, riceverai quanto segue, tagliato per chiarezza:  

```
{
    "Arn": "arn:aws:sagemaker-geospatial:us-west-2:555555555555:raster-data-collection/public/dxxbpqwvu9041ny8",
    "Description": "Copernicus DEM is a Digital Surface Model which represents the surface of the Earth including buildings, infrastructure, and vegetation. GLO-30 is instance of Copernicus DEM that provides limited worldwide coverage at 30 meters.",
    "DescriptionPageUrl": "https://registry.opendata.aws/copernicus-dem/",
    "Name": "Copernicus DEM GLO-30",
    "Tags": {},
    "Type": "PUBLIC"
}
```

## Informazioni sulla banda di immagini dalle raccolte di dati USGS Landsat e Sentinel-2
<a name="image-band-information"></a>

Informazioni sulle bande di immagini dalle raccolte di dati USGS Landsat 8 e Sentinel-2 sono fornite di seguito.

USGS Landsat


| Nome banda | Intervallo di lunghezza d'onda (nm) | Unità | Intervallo valido | Valore di riempimento | Risoluzione spaziale | 
| --- | --- | --- | --- | --- | --- | 
| coastal | 435-451 | Senza unità | 1-65455 | 0 (Nessun dato) | 30 m | 
| blu | 452-512 | Senza unità | 1-65455 | 0 (Nessun dato) | 30 m | 
| verde | 533-590 | Senza unità | 1-65455 | 0 (Nessun dato) | 30 m | 
| rosso | 636-673 | Senza unità | 1-65455 | 0 (Nessun dato) | 30 m | 
| nir | 851-879 | Senza unità | 1-65455 | 0 (Nessun dato) | 30 m | 
| swir16 | 1566-1651 | Senza unità | 1-65455 | 0 (Nessun dato) | 30 m | 
| swir22 | 2107-2294 | Senza unità | 1-65455 | 0 (Nessun dato) | 30 m | 
| qa\$1aerosol | N/A | Indice dei bit | 0-255 | 1 | 30 m | 
| qa\$1pixel | N/A | Indice dei bit | 1-65455 | 1 (bit 0) | 30 m | 
| qa\$1radsat | N/A | Indice dei bit | 1-65455 | N/A | 30 m | 
| t | 10600-11190 | Dimensionamento Kelvin | 1-65455 | 0 (Nessun dato) | 30 m (in scala da 100 m) | 
| atran | N/A | Senza unità | 0-10000 | -9999 (Nessun dato) | 30 m | 
| cdist | N/A | Chilometri | 0-24000 | -9999 (Nessun dato) | 30 m | 
| morto | N/A | W/ (m^2 sr µm) /DN | 0-28000 | -9999 (Nessun dato) | 30 m | 
| urad | N/A | W/ (m^2 sr µm) /DN | 0-28000 | -9999 (Nessun dato) | 30 m | 
| commercio | N/A | W/ (m^2 sr µm) /DN | 0-28000 | -9999 (Nessun dato) | 30 m | 
| emis | N/A | Coefficiente di emissività | 1-10000 | -9999 (Nessun dato) | 30 m | 
| emsd | N/A | Coefficiente di emissività | 1-10000 | -9999 (Nessun dato) | 30 m | 

Sentinel-2


| Nome banda | Intervallo di lunghezza d'onda (nm) | Dimensionare | Intervallo valido | Valore di riempimento | Risoluzione spaziale | 
| --- | --- | --- | --- | --- | --- | 
| coastal | 443 | 0,0001 | N/A | 0 (Nessun dato) | 60 metri | 
| blu | 490 | 0,0001 | N/A | 0 (Nessun dato) | 10 metri | 
| verde | 560 | 0,0001 | N/A | 0 (Nessun dato) | 10 metri | 
| rosso | 665 | 0,0001 | N/A | 0 (Nessun dato) | 10 metri | 
| bordo rosso 1 | 705 | 0,0001 | N/A | 0 (Nessun dato) | 20 metri | 
| bordo rosso 2 | 740 | 0,0001 | N/A | 0 (Nessun dato) | 20 metri | 
| bordo rosso 3 | 783 | 0,0001 | N/A | 0 (Nessun dato) | 20 metri | 
| nir | 842 | 0,0001 | N/A | 0 (Nessun dato) | 10 metri | 
| nir08 | 865 | 0,0001 | N/A | 0 (Nessun dato) | 20 metri | 
| nir08 | 865 | 0,0001 | N/A | 0 (Nessun dato) | 20 metri | 
| nir09 | 940 | 0,0001 | N/A | 0 (Nessun dato) | 60 metri | 
| swir16 | 1610 | 0,0001 | N/A | 0 (Nessun dato) | 20 metri | 
| swir22 | 2190 | 0,0001 | N/A | 0 (Nessun dato) | 20 metri | 
| aot | Spessore ottico dell'aerosol | 0.001 | N/A | 0 (Nessun dato) | 10 m | 
| wvp | Vapore acqueo medio della scena | 0.001 | N/A | 0 (Nessun dato) | 10 m | 
| scl | Dati di classificazione delle scene | N/A | 1-11 | 0 (Nessun dato) | 20 m | 

# RStudio su Amazon SageMaker AI
<a name="rstudio"></a>

RStudio è un ambiente di sviluppo integrato per R, con una console, un editor di evidenziazione della sintassi che supporta l'esecuzione diretta del codice e strumenti per il plottaggio, la cronologia, il debug e la gestione dello spazio di lavoro. Amazon SageMaker AI è supportato RStudio come ambiente di sviluppo integrato (IDE) completamente gestito e integrato con il dominio Amazon SageMaker AI tramite Posit Workbench. RStudio consente ai clienti di creare approfondimenti sulla scienza dei dati utilizzando un ambiente R. Con RStudio l'integrazione, puoi avviare un RStudio ambiente nel dominio per eseguire i RStudio flussi di lavoro su risorse di SageMaker intelligenza artificiale. Per ulteriori informazioni su Posit Workbench, consulta il [sito Web Posit.](https://posit.co/products/enterprise/workbench/) Questa pagina fornisce informazioni su RStudio concetti importanti.

SageMaker L'intelligenza artificiale si integra RStudio attraverso la creazione di un' RStudioServerPro app.

 Quanto segue è supportato da RStudio on SageMaker AI. 
+ Gli sviluppatori R utilizzano l'interfaccia RStudio IDE con i più diffusi strumenti di sviluppo dell'ecosistema R. Gli utenti possono avviare nuove RStudio sessioni, scrivere codice R, installare dipendenze da RStudio Package Manager e pubblicare app Shiny utilizzando Connect RStudio . 
+ Gli sviluppatori R possono scalare rapidamente le risorse di calcolo sottostanti per eseguire l'elaborazione di dati e l'analisi statistica su larga scala.  
+ Gli amministratori della piattaforma possono configurare identità utente, autorizzazione, rete, archiviazione e sicurezza per i propri team di data science tramite l'integrazione. AWS IAM Identity Center AWS Identity and Access Management Ciò include la connessione a risorse private Amazon Virtual Private Cloud (Amazon VPC) e la modalità senza Internet con. AWS PrivateLink
+ Integrazione con. AWS License Manager

 Per informazioni sulle fasi di onboarding per creare un dominio con RStudio abilitato, consulta. [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md)

## Disponibilità nelle regioni
<a name="rstudio-region"></a>

La tabella seguente fornisce informazioni RStudio su Regioni AWS ciò che l' SageMaker IA è supportata in.


|  Nome Regione  |  Regione  | 
| --- | --- | 
|  US East (Ohio)  |  us-east-2  | 
|  US East (N. Virginia)  |  us-east-1  | 
|  US West (N. California)  |  us-west-1  | 
|  US West (Oregon)  |  us-west-2  | 
|  Asia Pacific (Mumbai)  |  ap-south-1  | 
|  Asia Pacific (Seoul)  |  ap-northeast-2  | 
|  Asia Pacific (Singapore)  |  ap-southeast-1  | 
|  Asia Pacific (Sydney)  |  ap-southeast-2  | 
|  Asia Pacific (Tokyo)  |  ap-northeast-1  | 
|  Canada (Central)  |  ca-central-1  | 
|  Europa (Francoforte)  |  eu-central-1  | 
|  Europe (Ireland)  |  eu-west-1  | 
|  Europe (London)  |  eu-west-2  | 
|  Europe (Paris)  |  eu-west-3  | 
|  Europe (Stockholm)  |  eu-north-1  | 
|  South America (São Paulo)  |  sa-east-1  | 

## RStudio componenti
<a name="rstudio-components"></a>
+ *RStudioServerPro*: L' RStudioServerPro app è un'app multiutente che è una risorsa condivisa tra tutti i profili utente del dominio. Una volta creata un'RStudio app in un dominio, l'amministratore può concedere le autorizzazioni agli utenti del dominio.  
+ *RStudio utente*: RStudio gli utenti sono utenti all'interno del dominio autorizzati a utilizzare la RStudio licenza.
+ *RStudio admin*: Un amministratore RStudio su Amazon SageMaker AI può accedere alla dashboard RStudio amministrativa. RStudio su Amazon SageMaker AI gli amministratori differiscono dagli amministratori «stock» di Posit Workbench perché non hanno accesso root all'istanza che esegue l' RStudioServerPro app e non possono modificare il file di configurazione. RStudio 
+ *RStudio Server*: l'istanza RStudio Server è responsabile della fornitura dell' RStudio interfaccia utente a tutti gli utenti autorizzati. Questa istanza viene lanciata su un'istanza Amazon SageMaker AI.
+ *RSession*: An RSession è un'interfaccia basata su browser per l' RStudioIDE in esecuzione su un'istanza Amazon SageMaker AI. Gli utenti possono creare e interagire con i propri RStudio progetti tramite. RSession
+ *RSessionGateway*: L'app RSession Gateway viene utilizzata per supportare un RSession. 
+ *RStudio dashboard amministrativo*: questa dashboard fornisce informazioni sugli RStudio utenti del dominio Amazon SageMaker AI e sulle relative sessioni. Questa dashboard è accessibile solo agli utenti che dispongono dell'autorizzazione di RStudio amministratore.

## Differenze rispetto a Posit Workbench
<a name="rstudio-differences"></a>

RStudio su Amazon SageMaker AI presenta alcune differenze significative rispetto a [Posit Workbench](https://posit.co/products/enterprise/workbench/).
+ Quando lo utilizzano RStudio su SageMaker AI, gli utenti non hanno accesso ai file di RStudio configurazione. Amazon SageMaker AI gestisce il file di configurazione e imposta i valori predefiniti. Puoi modificare RStudio Connect and RStudio Package Manager URLs durante la creazione del tuo dominio Amazon SageMaker AI RStudio abilitato.
+ La condivisione di progetti, la collaborazione in tempo reale e Job Launcher non sono attualmente supportati quando si utilizza RStudio su Amazon SageMaker AI.
+ Quando viene utilizzato RStudio su SageMaker AI, l' RStudio IDE viene eseguito su istanze Amazon SageMaker AI per risorse di elaborazione containerizzate on-demand. 
+ RStudio on SageMaker AI supporta solo l' RStudio IDE e non ne supporta altri IDEs supportati da un'installazione di Posit Workbench.
+ RStudio on SageMaker AI supporta solo la RStudio versione specificata in[RStudio Controllo delle versioni](rstudio-version.md).

# RStudio sulla gestione dell' SageMaker IA di Amazon
<a name="rstudio-manage"></a>

 I seguenti argomenti forniscono informazioni sulla gestione RStudio su Amazon SageMaker AI. Ciò include informazioni sulla configurazione RStudio dell'ambiente, sulle sessioni utente e sulle risorse necessarie. Per informazioni su come utilizzare RStudio sull' SageMaker intelligenza artificiale, consulta[RStudio sulla guida per l'utente di Amazon SageMaker AI](rstudio-use.md). 

 Per informazioni sulla creazione di un dominio Amazon SageMaker AI con RStudio enabled, consulta[Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md).  

 Per informazioni sulle AWS regioni in cui RStudio è supportata l' SageMaker intelligenza artificiale, consulta[Regioni e quote supportate](regions-quotas.md).  

**Topics**
+ [Ottieni una RStudio licenza](rstudio-license.md)
+ [RStudio Controllo delle versioni](rstudio-version.md)
+ [Rete e storage](rstudio-network.md)
+ [RStudioServerPro tipo di istanza](rstudio-select-instance.md)
+ [Aggiungi un URL RStudio Connect](rstudio-configure-connect.md)
+ [Aggiornare l'URL RStudio del Package Manager](rstudio-configure-pm.md)
+ [Crea un dominio Amazon SageMaker AI con RStudio l'utilizzo di AWS CLI](rstudio-create-cli.md)
+ [Aggiungi RStudio supporto a un dominio esistente](rstudio-add-existing.md)
+ [Immagini personalizzate con un' RStudio SageMaker intelligenza artificiale](rstudio-byoi.md)
+ [Crea un utente da utilizzare RStudio](rstudio-create-user.md)
+ [Accedi RStudio come altro utente](rstudio-login-another.md)
+ [Termina le sessioni per un altro utente](rstudio-terminate-another.md)
+ [Usa la dashboard amministrativa RStudio](rstudio-admin.md)
+ [Spegnere RStudio](rstudio-shutdown.md)
+ [Fatturazione e costi](rstudio-billing.md)
+ [Diagnostica i problemi e ottieni supporto](rstudio-troubleshooting.md)

# Ottieni una RStudio licenza
<a name="rstudio-license"></a>

RStudio su Amazon SageMaker AI è un prodotto a pagamento e richiede che ogni utente disponga di una licenza appropriata. Le licenze per RStudio Amazon SageMaker AI possono essere ottenute direttamente da RStudio PBC o acquistando un abbonamento a Posit Workbench on Marketplace. AWS Per i clienti esistenti di Posit Workbench Enterprise, le licenze vengono rilasciate senza costi aggiuntivi. Per utilizzare una RStudio licenza con Amazon SageMaker AI, devi prima avere una RStudio licenza valida registrata con AWS License Manager. Per le licenze acquistate direttamente tramite Rstudio PBC, è necessario creare una concessione di licenze per il tuo AWS Account. Contatta RStudio per l'acquisto diretto delle licenze o per abilitare le licenze esistenti in. AWS License Manager Per ulteriori informazioni sulla registrazione di una licenza con AWS License Manager, consulta [Licenze emesse dal venditore in AWS License Manager](https://docs.aws.amazon.com/license-manager/latest/userguide/seller-issued-licenses.html). 

I seguenti argomenti mostrano come acquisire e convalidare una licenza concessa da RStudio PBC.

 **Ottieni una licenza RStudio ** 

1. Se non disponi di una RStudio licenza, puoi acquistarne una dal AWS Marketplace o direttamente da RStudio PBC.
   + Per acquistare un abbonamento dal AWS Marketplace, completa i passaggi per [sottoscrivere un contratto SaaS](https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-saas-products.html) cercando **Posit Platform (RStudio on SageMaker)**. Per soddisfare la licenza, verrai reindirizzato a un modulo esterno al AWS Marketplace. Devi fornire informazioni aggiuntive, tra cui il nome e l’indirizzo e-mail della tua azienda. Se non riesci ad accedere al modulo per fornire il nome dell'azienda e un'email di contatto, crea un ticket con Posit Support all'[indirizzo https://support.posit. co/hc/en-us/requests/new](https://support.posit.co/hc/en-us/requests/new)con i dettagli sull'acquisto.
   + Per acquistare direttamente da RStudio PBC, vai su [RStudio Prezzi](https://www.rstudio.com/pricing/) o contatta [sales@rstudio.com](mailto:sales@rstudio.com). Quando acquisti o aggiorni una RStudio licenza, devi fornire l' AWS account che ospiterà il tuo dominio Amazon SageMaker AI. 

   Se disponi di una RStudio licenza esistente, contatta il tuo rappresentante di RStudio vendita o [sales@rstudio.com](mailto:sales@rstudio.com) per aggiungere RStudio Amazon SageMaker AI alla tua licenza Posit Workbench Enterprise esistente o per convertire la tua licenza Posit Workbench Standard. Il rappresentante RStudio di vendita ti invierà il modulo d'ordine elettronico appropriato.

1. RStudio concede una licenza Posit Workbench al tuo AWS Account tramite la AWS License Manager regione Stati Uniti orientali (Virginia settentrionale). Sebbene la RStudio licenza sia concessa nella regione Stati Uniti orientali (Virginia settentrionale), la licenza può essere utilizzata in qualsiasi AWS regione RStudio in cui è supportata l' SageMaker IA di Amazon. Puoi aspettarti che il processo di concessione della licenza venga completato entro tre giorni lavorativi dalla condivisione AWS dell'ID del tuo account con RStudio.

1. Quando questa licenza viene concessa, riceverai un'email dal tuo rappresentante di RStudio vendita con le istruzioni per accettare la concessione della licenza.

 **Convalida la RStudio licenza da utilizzare con Amazon SageMaker AI** 

1. Accedi alla AWS License Manager console nella stessa regione del tuo dominio Amazon SageMaker AI. Se lo utilizzi AWS License Manager per la prima volta, AWS License Manager ti chiede di concedere l'autorizzazione all'uso. AWS License Manager

1.  Seleziona **Inizia a usare AWS License Manager**. 

1.  Seleziona `I grant AWS License Manager the required permissions` e seleziona **Concedi autorizzazioni**. 

1. Vai a **Licenze concesse** nel pannello di sinistra. 

1. Seleziona la concessione della licenza con `RSW-SageMaker` come `Product name` e seleziona **Visualizza**.

1. Dalla pagina dei dettagli della licenza, seleziona **Accetta e attiva la licenza**. 

 **RStudio dashboard amministrativa** 

È possibile utilizzare la dashboard RStudio amministrativa per visualizzare il numero di utenti associati alla licenza seguendo la procedura descritta di seguito[Usa la dashboard amministrativa RStudio](rstudio-admin.md).

# RStudio Controllo delle versioni
<a name="rstudio-version"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Questa guida fornisce informazioni sull'aggiornamento della `2025.05.1+513.pro3` versione per RStudio on SageMaker AI. A partire dal 31 ottobre 2025, verranno creati nuovi domini con RStudio supporto alla versione. Posit Workbench `2025.05.1+513.pro3` Questo vale per le applicazioni `RStudioServerPro` e le applicazioni predefinite `RSessionGateway`.

Le seguenti sezioni forniscono informazioni sulla versione. `2025.05.1+513.pro3`

## Aggiornamenti della versione più recente
<a name="rstudio-version-latest"></a>

La RStudio versione più recente è`2025.05.1+513.pro3`. 
+ Versioni R supportate:
  + 4.5.1
  + 44.3
  + 4.4.0
  + 43.3
  + 4.2.3
  + 42,1
  + 4.1.3
  + 40,2

Per ulteriori informazioni sulle modifiche in questa versione, consulta [https://docs.posit.co/ide/news/](https://docs.posit.co/ide/news/). 

**Nota**  
Per garantire la compatibilità, si consiglia di utilizzare RSessions un prefisso che corrisponda alla versione correntePosit Workbench.  
Se vedi il seguente avviso, c'è una mancata corrispondenza tra la versione `RSession` e la Posit Workbench versione utilizzata RStudio in SageMaker AI. Per risolvere questo problema, aggiorna la RStudio versione del dominio. Per informazioni sull'aggiornamento della RStudio versione, consulta[Effettua l'aggiornamento alla nuova versione](rstudio-version-upgrade.md).  

```
Session version 2024.04.2+764.pro1 does not match server version 2025.05.1+513.pro3 - this is an unsupported configuration, and you may experience unexpected issues as a result.
```

## Controllo delle versioni
<a name="rstudio-version-new"></a>

Attualmente esistono due versioni Posit Workbench supportate dall' SageMaker IA. 
+ Ultima versione: `2025.05.1+513.pro3`

  Data di deprecazione: 5 dicembre 2026
+ Versione precedente: `2024.04.2+764.pro1`

  Data di deprecazione: 30 aprile 2026

**Nota**  
Sebbene sia possibile continuare a creare nuovi domini con la versione precedente `2024.04.2+764.pro1` fino al 30/04/2026 aggiungendo esplicitamente la versione quando si crea il dominio tramite CLI, consigliamo vivamente ai clienti di iniziare a utilizzare la versione in tutti i domini. `2025.05` POSIT ha smesso di fornire correzioni di vulnerabilità per. `2024.04.2+764.pro1`  
Le versioni `2023.03.2-547.pro5` e `2022.02.2-485.pro2` sono obsolete e non sono più supportate. Consigliamo di eseguire l’aggiornamento alla versione più recente.

La Posit Workbench versione predefinita selezionata da SageMaker AI dipende dalla data di creazione del dominio. 
+ Per i domini creati dopo il 31 ottobre 2025, la versione `2025.05.1+513.pro3` è la versione selezionata di default. 
+ Per i domini creati dopo il 4 settembre 2024 e prima del 31 ottobre 2025, la versione `2024.04.2+764.pro1` è la versione selezionata di default. Puoi aggiornare i tuoi domini alla versione più recente (`2025.05.1+513.pro3`) impostandola come versione predefinita per il dominio. Per ulteriori informazioni, consulta [Effettua l'aggiornamento alla nuova versione](rstudio-version-upgrade.md).

**Nota**  
La versione predefinita `RSessionGateway` dell'applicazione corrisponde alla versione corrente dell'applicazione `RStudioServerPro`.

La tabella seguente elenca l'immagine ARNs per entrambe le versioni. Regione AWS Questi ARNs vengono passati come parte di un `update-domain` comando per impostare la versione desiderata.


|  Region | `2024.04.2+764.pro1` Immagine ARN  | `2025.05.1+513.pro3` Immagine ARN  | 
| --- | --- | --- | 
| us-east-1 |  arn:aws:sagemaker:us-east-1:081325390199:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:us-east-1:081325390199:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| us-east-2 |  arn:aws:sagemaker:us-east-2:429704687514:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:us-east-2:429704687514:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| us-west-1 |  arn:aws:sagemaker:us-west-1:742091327244:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:us-west-1:742091327244:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| us-west-2 |  arn:aws:sagemaker:us-west-2:236514542706:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:us-west-2:236514542706:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| af-south-1 |  arn:aws:sagemaker:af-south-1:559312083959:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:af-south-1:559312083959:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| ap-east-1 |  arn:aws:sagemaker:ap-east-1:493642496378:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:ap-east-1:493642496378:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| ap-south-1 |  arn:aws:sagemaker:ap-south-1:394103062818:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:ap-south-1:394103062818:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| ap-northeast-2 |  arn:aws:sagemaker:ap-northeast-2:806072073708:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:ap-northeast-2:806072073708:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| ap-southeast-1 |  arn:aws:sagemaker:ap-southeast-1:492261229750:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:ap-southeast-1:492261229750:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| ap-southeast-2 |  arn:aws:sagemaker:ap-southeast-2:452832661640:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:ap-southeast-2:452832661640:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| ap-northeast-1 |  arn:aws:sagemaker:ap-northeast-1:102112518831:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:ap-northeast-1:102112518831:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| ca-central-1 |  arn:aws:sagemaker:ca-central-1:310906938811:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:ca-central-1:310906938811:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| eu-central-1 |  arn:aws:sagemaker:eu-central-1:936697816551:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:eu-central-1:936697816551:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| eu-west-1 |  arn:aws:sagemaker:eu-west-1:470317259841:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:eu-west-1:470317259841:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| eu-west-2 |  arn:aws:sagemaker:eu-west-2:712779665605:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:eu-west-2:712779665605:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| eu-west-3 |  arn:aws:sagemaker:eu-west-3:615547856133:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:eu-west-3:615547856133:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| eu-north-1 |  arn:aws:sagemaker:eu-north-1:243637512696:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:eu-north-1:243637512696:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| eu-south-1 |  arn:aws:sagemaker:eu-south-1:592751261982:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:eu-south-1:592751261982:image/rstudio-workbench-2025.05-sagemaker-1.0  | 
| sa-east-1 |  arn:aws:sagemaker:sa-east-1:782484402741:image/rstudio-workbench-2024.04-sagemaker-1.1  |  arn:aws:sagemaker:sa-east-1:782484402741:image/rstudio-workbench-2025.05-sagemaker-1.0  | 

### Modifiche alle immagini BYOI
<a name="rstudio-version-byoi"></a>

Se si utilizza un'immagine BYOI con RStudio e si aggiorna la `RStudioServerPro` versione in uso`2025.05.1+513.pro3`, è necessario aggiornare le immagini personalizzate per utilizzare la `2025.05.1+513.pro3` versione e ridistribuire quella esistente. RSessions Se si tenta di caricare un'immagine non compatibile in un RSession dominio che utilizza la `2025.05.1+513.pro3` versione, l' RSession operazione non riesce perché non è in grado di analizzare i parametri ricevuti. Per evitare errori, aggiorna tutte le immagini personalizzate distribuite nell'applicazione `RStudioServerPro` esistente. 

L'`RSW_VERSION`in the Dockerfile deve essere coerente con la Posit Workbench versione utilizzata RStudio in SageMaker AI. È possibile convalidare la versione corrente in Posit Workbench. A tale scopo, usa il nome della versione che si trova nell'angolo inferiore sinistro della pagina di dell’utilità di avvio Posit Workbench.

```
ARG RSW_VERSION=2025.05.1+513.pro3
ENV RSTUDIO_FORCE_NON_ZERO_EXIT_CODE="1"
ARG RSW_NAME=rstudio-workbench
ARG OS_CODE_NAME=jammy
ARG RSW_DOWNLOAD_URL=https://s3.amazonaws.com/rstudio-ide-build/server/${OS_CODE_NAME}/amd64
RUN RSW_VERSION_URL=`echo -n "${RSW_VERSION}" | sed 's/+/-/g'` \
    && curl -o rstudio-workbench.deb ${RSW_DOWNLOAD_URL}/${RSW_NAME}-${RSW_VERSION_URL}-amd64.deb \
    && gdebi -n ./rstudio-workbench.deb
```

# Effettua l'aggiornamento alla nuova versione
<a name="rstudio-version-upgrade"></a>

I domini esistenti che utilizzano la versione `2024.04.2+764.pro1` possono essere aggiornati alla versione `2025.05.1+513.pro3` in due modi:
+ Crea un nuovo dominio da AWS CLI con RStudio enabled.
+ Aggiorna un dominio esistente per utilizzare la versione `2025.05.1+513.pro3`.

La procedura seguente mostra come eliminare l' RStudio applicazione per un dominio esistente, impostare la versione predefinita su `2025.05.1+513.pro3` e quindi creare un' RStudio applicazione.

1. Eliminare l'applicazione `RStudioServerPro` e tutte le applicazioni `RSessionGateway` associate al dominio esistente. Per informazioni su come trovare il tuo ID dominio, consulta [Visualizzazione dei domini](domain-view.md). Per ulteriori informazioni sull'eliminazione delle applicazioni, consulta [Spegnere RStudio](rstudio-shutdown.md).

   ```
   aws sagemaker delete-app \
       --region region \
       --domain-id domainId \
       --user-profile-name domain-shared \
       --app-type RStudioServerPro \
       --app-name default
   ```

1. Se il dominio utilizza una RStudio versione`2024.04.2+764.pro1`, aggiorna il dominio per impostarlo `2025.05.1+513.pro3` come Posit Workbench versione predefinita. Il `SageMakerImageArn` valore nel `update-domain` comando seguente specifica la RStudio `2025.05.1+513.pro3` versione come predefinita. Questo ARN deve corrispondere alla Region in cui si trova il tuo dominio. Per un elenco di tutte le opzioni disponibili ARNs, vedere[Controllo delle versioni](rstudio-version.md#rstudio-version-new).

   Passa un ruolo di esecuzione ARN per il dominio che fornisce le autorizzazioni per aggiornare il dominio. 

   ```
   aws sagemaker update-domain \
       --region region \
       --domain-id domainId \
       --domain-settings-for-update "{\"RStudioServerProDomainSettingsForUpdate\":{\"DefaultResourceSpec\": {\"SageMakerImageArn\": \"arn-for-2025.05.1+513.pro3-version\", \"InstanceType\": \"system\"}, \"DomainExecutionRoleArn\": \"execution-role-arn\"}}"
   ```

1. Crea una nuova applicazione `RStudioServerPro` nel dominio esistente.

   ```
   aws sagemaker create-app \
       --region region
       --domain-id domainId \
       --user-profile-name domain-shared \
       --app-type RStudioServerPro \
       --app-name default
   ```

L’applicazione `RStudioServerPro` è ora aggiornata alla versione `2025.05.1+513.pro3`. Ora puoi riavviare le tue applicazioni `RSessionGateway`.

# Effettua il downgrade a una versione precedente
<a name="rstudio-version-downgrade"></a>

È possibile eseguire manualmente il downgrade della versione dell' RStudio applicazione esistente alla `2024.04.2+764.pro1` versione corrente. 

**Per eseguire il downgrade a una versione precedente**

1. Eliminare l'applicazione `RStudioServerPro` associata al dominio esistente. Per informazioni su come trovare il tuo ID dominio, consulta [Visualizzazione dei domini](domain-view.md).

   ```
   aws sagemaker delete-app \
       --domain-id domainId \
       --user-profile-name domain-shared \
       --app-type RStudioServerPro \
       --app-name default
   ```

1. Passa l'ARN `2024.04.2+764.pro1` corrispondente per la tua Region come parte del comando `update-domain`. Per un elenco di tutte le opzioni disponibili ARNs, consulta[Controllo delle versioni](rstudio-version.md#rstudio-version-new). Devi inoltre passare un ruolo di esecuzione ARN per il dominio che fornisce le autorizzazioni per aggiornare il dominio. 

   ```
   aws sagemaker update-domain \
       --region region \
       --domain-id domainId \
       --domain-settings-for-update "{\"RStudioServerProDomainSettingsForUpdate\":{\"DefaultResourceSpec\": {\"SageMakerImageArn\": \"arn-for-2024.04.2+764.pro1-version\", \"InstanceType\": \"system\"}, \"DomainExecutionRoleArn\": \"execution-role-arn\"}}"
   ```

1. Crea una nuova applicazione `RStudioServerPro` nel dominio esistente. La RStudio versione predefinita è. `2024.04.2+764.pro1`

   ```
   aws sagemaker create-app \
       --domain-id domainId \
       --user-profile-name domain-shared \
       --app-type RStudioServerPro \
       --app-name default
   ```

Per l’applicazione `RStudioServerPro` è ora stato eseguito il downgrade alla versione `2024.04.2+764.pro1`. 

# Rete e storage
<a name="rstudio-network"></a>

L'argomento seguente descrive le considerazioni relative all'accesso alla rete e all'archiviazione dei dati RStudio per l'istanza. Per informazioni generali sull'accesso alla rete e sull'archiviazione dei dati quando si utilizza Amazon SageMaker AI, consulta[Protezione dei dati in Amazon SageMaker AI](data-protection.md).

 **Volumi Amazon EFS**

RStudio su Amazon SageMaker AI condivide un volume Amazon EFS con l'applicazione Amazon SageMaker Studio Classic nel dominio. Quando l' RStudio applicazione viene aggiunta a un dominio, SageMaker AI crea una cartella denominata `shared` nella directory Amazon EFS. Se questa `shared` cartella viene eliminata o modificata manualmente, l' RStudio applicazione potrebbe non funzionare più. Per ulteriori informazioni sul volume Amazon EFS, consulta [Gestisci il tuo volume di storage Amazon EFS in Amazon SageMaker Studio Classic](studio-tasks-manage-storage.md).

 **Pacchetti e script installati**

I pacchetti che si RStudio installano dall'interno rientrano nell'ambito del profilo utente. Ciò significa che il pacchetto installato persiste anche dopo l' RSession arresto, il riavvio e continua RSessions per ogni profilo utente in cui è installato. Gli script R salvati in si RSessions comportano allo stesso modo. Entrambi i pacchetti e gli script R vengono salvati nel volume Amazon EFS dell'utente.

 **Encryption** (Crittografia)

 RStudio su Amazon SageMaker AI supporta la crittografia a riposo.

 **Utilizzo RStudio in modalità solo VPC**

RStudio su Amazon SageMaker AI supporta [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-overview.html)l'integrazione. Con questa integrazione, puoi utilizzare l' SageMaker intelligenza artificiale RStudio in modalità solo VPC senza accesso diretto a Internet. Quando si utilizza RStudio in modalità solo VPC, i gruppi di sicurezza vengono gestiti automaticamente dal servizio. Ciò include la connettività tra il tuo e il tuo RServer . RSessions

Per l'utilizzo RStudio in modalità solo VPC è necessario quanto segue. Per ulteriori informazioni su come selezionare un VPC, consulta [Scelta di un Amazon VPC](onboard-vpc.md).
+ Una sottorete privata con accesso a Internet per effettuare una chiamata ad Amazon SageMaker AI & License Manager o agli endpoint Amazon Virtual Private Cloud (Amazon VPC) per SageMaker Amazon AI e License Manager.
+ Il dominio non può avere più di due gruppi di sicurezza associati.
+ Un ID del gruppo di sicurezza da utilizzare con il dominio nelle impostazioni del dominio. Questo deve consentire tutti gli accessi in uscita.
+ Un ID del gruppo di sicurezza da utilizzare con l'endpoint Amazon VPC. Questo gruppo di sicurezza deve consentire il traffico in entrata dall’ID del gruppo di sicurezza del dominio.
+ Endpoint Amazon VPC per e. `sagemaker.api` AWS License Manager Deve trovarsi nello stesso Amazon VPC della sottorete privata. 

# RStudioServerPro tipo di istanza
<a name="rstudio-select-instance"></a>

Quando si decide quale tipo di istanza Amazon EC2 utilizzare per l'app, RStudio ServerPro il fattore principale da considerare è la larghezza di banda. La larghezza di banda è importante perché l' RStudioServerPro istanza è responsabile della fornitura dell' RStudio interfaccia utente a tutti gli utenti. Ciò include flussi di lavoro complessi relativi all'interfaccia utente, come la generazione di figure, animazioni e la visualizzazione di molte righe di dati. Pertanto, potrebbe verificarsi un peggioramento delle prestazioni dell'interfaccia utente a seconda del carico di lavoro di tutti gli utenti. Di seguito sono riportati i tipi di istanza disponibili da utilizzare per RStudioServerPro. Per informazioni sui prezzi di queste istanze, consulta la pagina [ SageMakerdei prezzi di Amazon](https://aws.amazon.com/sagemaker/pricing/).
+ `system`: questo tipo di istanza è consigliato per i domini con un utilizzo ridotto dell’interfaccia utente.
**Nota**  
Il valore `system` viene tradotto in `ml.t3.medium`.
+ `ml.c5.4xlarge`: questo tipo di istanza è consigliato per i domini con un uso moderato dell'interfaccia utente.
+ `ml.c5.9xlarge`: questo tipo di istanza è consigliato per i domini con un uso intensivo dell'interfaccia utente.

 **Modifica del tipo di RStudio istanza** 

Per modificare il tipo di istanza della tua RStudioServerPro, passa il nuovo tipo di istanza come parte di una chiamata al comando `update-domain` CLI. È quindi necessario eliminare l'RStudioServerProapp esistente utilizzando il comando `delete-app` CLI e creare una nuova RStudio ServerPro app utilizzando il comando CLI`create-app`. 

# Aggiungi un URL RStudio Connect
<a name="rstudio-configure-connect"></a>

RStudio Connect è una piattaforma di pubblicazione per applicazioni Shiny, report R Markdown, dashboard, grafici e altro ancora. RStudio Connect semplifica l'analisi dell'apprendimento automatico e della scienza dei dati rendendo i contenuti di hosting semplici e scalabili. Se disponi di un server RStudio Connect, puoi impostare il server come luogo predefinito in cui vengono pubblicate le app. Per ulteriori informazioni su RStudio Connect, consulta [RStudio Connect](https://www.rstudio.com/products/connect/).

Quando effettui l'onboarding su RStudio sul dominio Amazon SageMaker AI, non viene creato un server RStudio Connect. Puoi creare un server RStudio Connect su un'istanza Amazon EC2 per utilizzare il dominio Connect with SageMaker Amazon AI. Per informazioni su come configurare il server RStudio Connect, consulta [Host RStudio Connect e Package Manager per lo sviluppo di machine RStudio learning su Amazon SageMaker AI](https://aws.amazon.com/blogs/machine-learning/host-rstudio-connect-and-package-manager-for-ml-development-in-rstudio-on-amazon-sagemaker/). 

 **Aggiungi un URL RStudio Connect** 

Se disponi di un URL RStudio Connect, puoi aggiornare l'URL predefinito in modo che gli RStudio utenti possano pubblicare su di esso. 

1. Vai alla pagina **Domini**. 

1. Seleziona il dominio desiderato.

1. Scegli **Impostazioni del dominio**.

1. In **Impostazioni generali**, seleziona **Modifica**.

1.  Nella nuova pagina, seleziona **RStudio Impostazioni** sul lato sinistro.  

1.  In **RStudio Connect URL**, inserisci l'URL di RStudio connessione da aggiungere. 

1.  Selezionare **Invia**. 

 **CLI** 

 Puoi impostare un URL RStudio Connect predefinito quando crei il tuo dominio. L'unico modo per aggiornare l'URL di RStudio Connect da AWS CLI è eliminare il dominio e crearne uno nuovo con l'URL RStudio Connect aggiornato. 

# Aggiornare l'URL RStudio del Package Manager
<a name="rstudio-configure-pm"></a>

RStudio Package Manager è un server di gestione degli archivi utilizzato per organizzare e centralizzare i pacchetti all'interno dell'organizzazione. Per ulteriori informazioni su RStudio Package Manager, vedere [RStudio Package Manager](https://www.rstudio.com/products/package-manager/). Se non fornisci il tuo URL Package Manager, il dominio Amazon SageMaker AI utilizza il repository predefinito di Package Manager quando effettui l'onboarding RStudio seguendo i passaggi indicati. [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md) Per ulteriori informazioni, consulta [Host RStudio Connect e Package Manager per lo sviluppo di machine RStudio learning su Amazon SageMaker AI](https://aws.amazon.com/blogs/machine-learning/host-rstudio-connect-and-package-manager-for-ml-development-in-rstudio-on-amazon-sagemaker/). La procedura seguente descrive come aggiornare l’URL di Gestore dei pacchetti.

 **Aggiorna l'URL Gestore pacchetti** 

Puoi aggiornare l'URL del Package Manager usato per il tuo dominio RStudio -enabled come segue.

1. Vai alla pagina **Domini**. 

1. Seleziona il dominio desiderato.

1. Scegli **Impostazioni del dominio**.

1. In **Impostazioni generali**, seleziona **Modifica**.

1.  Nella nuova pagina, seleziona **RStudio Impostazioni** sul lato sinistro.  

1.  In **RStudio Package Manager**, inserisci l'URL RStudio del tuo Package Manager. 

1.  Selezionare **Invia**. 

 **CLI** 

L'unico modo per aggiornare l'URL del Package Manager da AWS CLI è eliminare il dominio e crearne uno nuovo con l'URL aggiornato del Package Manager. 

# Crea un dominio Amazon SageMaker AI con RStudio l'utilizzo di AWS CLI
<a name="rstudio-create-cli"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

L'argomento seguente mostra come effettuare l'onboarding nel dominio Amazon SageMaker AI con RStudio abilitato utilizzando. AWS CLI Per effettuare l'onboarding utilizzando il Console di gestione AWS, vedi. [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md) 

## Prerequisiti
<a name="rstudio-create-cli-prerequisites"></a>
+  Installazione e configurazione [AWS CLI versione 2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) 
+  Configurazione di [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) con credenziali IAM 

## Creazione di un ruolo `DomainExecution`
<a name="rstudio-create-cli-domainexecution"></a>

Per avviare l' RStudio app, devi fornire un `DomainExecution` ruolo. Questo ruolo viene utilizzato per determinare se RStudio deve essere avviato come parte della creazione di domini Amazon SageMaker AI. Questo ruolo viene utilizzato anche da Amazon SageMaker AI per accedere alla RStudio licenza e ai RStudio log push.  

**Nota**  
Il `DomainExecution` ruolo deve avere almeno AWS License Manager le autorizzazioni per accedere alla RStudio licenza e le CloudWatch autorizzazioni per inviare i log nel tuo account.

La procedura seguente mostra come creare il ruolo `DomainExecution` con AWS CLI. 

1.  Crea un archivio denominato `assume-role-policy.json` con i seguenti contenuti. 

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

****  

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

------

1.  Crea il ruolo `DomainExecution`. `<REGION>` dovrebbe essere la Regione AWS in cui avviare il dominio. 

   ```
   aws iam create-role --region <REGION> --role-name DomainExecution --assume-role-policy-document file://assume-role-policy.json
   ```

1. Crea un archivio denominato `domain-setting-policy.json` con i seguenti contenuti. Questa politica consente all' RStudioServerPro app di accedere alle risorse necessarie e consente ad Amazon SageMaker AI di avviare automaticamente un' RStudioServerPro app quando l' RStudioServerPro app esistente è in `Failed` stato `Deleted` or.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": [
                   "license-manager:ExtendLicenseConsumption",
                   "license-manager:ListReceivedLicenses",
                   "license-manager:GetLicense",
                   "license-manager:CheckoutLicense",
                   "license-manager:CheckInLicense",
                   "logs:CreateLogDelivery",
                   "logs:CreateLogGroup",
                   "logs:CreateLogStream",
                   "logs:DeleteLogDelivery",
                   "logs:Describe*",
                   "logs:GetLogDelivery",
                   "logs:GetLogEvents",
                   "logs:ListLogDeliveries",
                   "logs:PutLogEvents",
                   "logs:PutResourcePolicy",
                   "logs:UpdateLogDelivery",
                   "sagemaker:CreateApp"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1.  Crea la policy di impostazione del dominio collegata al ruolo `DomainExecution`. Tieni presente il `PolicyArn` indicato nella risposta, dovrai inserire quell'ARN nelle fasi seguenti. 

   ```
   aws iam create-policy --region <REGION> --policy-name domain-setting-policy --policy-document file://domain-setting-policy.json
   ```

1.  Collega `domain-setting-policy` al ruolo `DomainExecution`. Usa il `PolicyArn` restituito nella fase precedente.

   ```
   aws iam attach-role-policy --role-name DomainExecution --policy-arn <POLICY_ARN>
   ```

## Crea un dominio Amazon SageMaker AI con RStudio l'app
<a name="rstudio-create-cli-domain"></a>

L' RStudioServerPro app viene avviata automaticamente quando crei un dominio Amazon SageMaker AI utilizzando il comando `create-domain` CLI con il `RStudioServerProDomainSettings` parametro specificato. All'avvio dell' RStudioServerPro App, Amazon SageMaker AI verifica la presenza di una RStudio licenza valida nell'account e non riesce a creare il dominio se la licenza non viene trovata. 

La creazione di un dominio Amazon SageMaker AI varia in base al metodo di autenticazione e al tipo di rete. Queste opzioni devono essere utilizzate insieme, selezionando un metodo di autenticazione e un tipo di connessione di rete. Per ulteriori informazioni sui requisiti per creare un nuovo dominio, consulta [CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html). 

Sono supportati i seguenti metodi di autenticazione.
+  `IAM Auth` 
+  `SSO Auth` 

Sono supportati i seguenti tipi di connessione di rete:
+  `PublicInternet` 
+  `VPCOnly` 

### Metodi di autenticazione
<a name="rstudio-create-cli-domain-auth"></a>

 **Modalità di autenticazione IAM** 

Di seguito viene illustrato come creare un dominio Amazon SageMaker AI con RStudio abilitato e un tipo di `IAM Auth` rete. Per ulteriori informazioni su AWS Identity and Access Management, consulta [Cos'è IAM?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) .
+ `DomainExecutionRoleArn` dovrebbe essere l'ARN per il ruolo creato nella fase precedente.
+ `ExecutionRole`è l'ARN del ruolo assegnato agli utenti nel dominio Amazon SageMaker AI.
+ `vpc-id`dovrebbe essere l'ID del tuo Amazon Virtual Private Cloud. `subnet-ids`dovrebbe essere un elenco di sottoreti separato da spazi. IDs [Per informazioni su `vpc-id` and`subnet-ids`, consulta VPCs and subnet.](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)
+ `RStudioPackageManagerUrl`e `RStudioConnectUrl` sono opzionali e devono essere impostati rispettivamente sul server RStudio Package Manager e RStudio Connect. URLs 
+ `app-network-access-type` deve essere `PublicInternetOnly` o `VPCOnly`.

```
aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \
    --auth-mode IAM \
    --default-user-settings ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \
    --domain-settings RStudioServerProDomainSettings={RStudioPackageManagerUrl=<<PACKAGE_MANAGER_URL>,RStudioConnectUrl=<<CONNECT_URL>,DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \
    --vpc-id <VPC_ID> \
    --subnet-ids <SUBNET_IDS> \
    --app-network-access-type <NETWORK_ACCESS_TYPE>
```

 **Autenticazione tramite il Centro identità IAM** 

Di seguito viene illustrato come creare un dominio Amazon SageMaker AI con RStudio abilitato e un tipo di `SSO Auth` rete. AWS IAM Identity Center deve essere abilitato per la regione in cui viene lanciato il dominio. Per ulteriori informazioni su IAM Identity Center, consulta [What is AWS IAM Identity Center?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) .
+ `DomainExecutionRoleArn` dovrebbe essere l'ARN per il ruolo creato nella fase precedente.
+ `ExecutionRole`è l'ARN del ruolo assegnato agli utenti nel dominio Amazon SageMaker AI.
+ `vpc-id`dovrebbe essere l'ID del tuo Amazon Virtual Private Cloud. `subnet-ids`dovrebbe essere un elenco di sottoreti separato da spazi. IDs [Per informazioni su `vpc-id` and`subnet-ids`, consulta VPCs and subnet.](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)
+ `RStudioPackageManagerUrl`e `RStudioConnectUrl` sono opzionali e devono essere impostati rispettivamente sul server RStudio Package Manager e RStudio Connect. URLs 
+ `app-network-access-type` deve essere `PublicInternetOnly` o `VPCOnly`.

```
aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \
    --auth-mode SSO \
    --default-user-settings ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \
    --domain-settings RStudioServerProDomainSettings={RStudioPackageManagerUrl=<<PACKAGE_MANAGER_URL>,RStudioConnectUrl=<<CONNECT_URL>,DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \
    --vpc-id <VPC_ID> \
    --subnet-ids <SUBNET_IDS> \
    --app-network-access-type <NETWORK_ACCESS_TYPE>
```

### Tipi di connessione
<a name="rstudio-create-cli-domain-connection"></a>

 **PublicInternet/Tipo di rete Internet diretta** 

Di seguito viene illustrato come creare un dominio Amazon SageMaker AI con RStudio abilitato e un tipo di `PublicInternet` rete.
+ `DomainExecutionRoleArn` dovrebbe essere l'ARN per il ruolo creato nella fase precedente.
+ `ExecutionRole`è l'ARN del ruolo assegnato agli utenti nel dominio Amazon SageMaker AI.
+ `vpc-id`dovrebbe essere l'ID del tuo Amazon Virtual Private Cloud. `subnet-ids`dovrebbe essere un elenco di sottoreti separato da spazi. IDs [Per informazioni su `vpc-id` and`subnet-ids`, consulta VPCs and subnet.](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html)
+ `RStudioPackageManagerUrl`e `RStudioConnectUrl` sono opzionali e devono essere impostati rispettivamente sul server RStudio Package Manager e RStudio Connect. URLs 
+ `auth-mode` deve essere `SSO` o `IAM`.

```
aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \
    --auth-mode <AUTH_MODE> \
    --default-user-settings ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \
    --domain-settings RStudioServerProDomainSettings={RStudioPackageManagerUrl=<<PACKAGE_MANAGER_URL>,RStudioConnectUrl=<<CONNECT_URL>,DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \
    --vpc-id <VPC_ID> \
    --subnet-ids <SUBNET_IDS> \
    --app-network-access-type PublicInternetOnly
```

 **VPCOnly mode** 

Di seguito viene illustrato come avviare un dominio Amazon SageMaker AI con RStudio abilitato e un tipo di `VPCOnly` rete. Per ulteriori informazioni sull'utilizzo del tipo di accesso di rete `VPCOnly`, consulta [Connessione dei notebook Studio in un VPC a risorse esterne](studio-notebooks-and-internet-access.md).
+ `DomainExecutionRoleArn` dovrebbe essere l'ARN per il ruolo creato nella fase precedente.
+ `ExecutionRole`è l'ARN del ruolo assegnato agli utenti nel dominio Amazon SageMaker AI.
+ `vpc-id`dovrebbe essere l'ID del tuo Amazon Virtual Private Cloud. `subnet-ids`dovrebbe essere un elenco di sottoreti separato da spazi. IDs La tua sottorete privata deve essere in grado di accedere a Internet per effettuare una chiamata ad Amazon SageMaker AI AWS License Manager e/o disporre di endpoint Amazon VPC per Amazon SageMaker AI e. AWS License Manager[Per informazioni sugli endpoint Amazon VPC, consulta Interface [Amazon VPC endpoints](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html) Per informazioni su `vpc-id` and, see and subnet. `subnet-ids` VPCs ](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html) 
+ `SecurityGroups`deve consentire l'accesso in uscita all' SageMaker intelligenza artificiale e agli AWS License Manager endpoint di Amazon.
+ `auth-mode` deve essere `SSO` o `IAM`.

**Nota**  
Quando utilizzi gli endpoint del cloud provato virtuale Amazon, il gruppo di sicurezza collegato agli endpoint del cloud provato virtuale Amazon deve consentire il traffico in entrata dal gruppo di sicurezza che passi come parte del parametro `domain-setting` della chiamata CLI `create-domain`.

Con RStudio Amazon SageMaker AI gestisce i gruppi di sicurezza per te. Ciò significa che Amazon SageMaker AI gestisce le regole dei gruppi di sicurezza per garantire RSessions l'accesso alle RStudio ServerPro app. Amazon SageMaker AI crea una regola del gruppo di sicurezza per profilo utente.

```
aws sagemaker create-domain --region <REGION> --domain-name <DOMAIN_NAME> \
    --auth-mode <AUTH_MODE> \
    --default-user-settings SecurityGroups=<USER_SECURITY_GROUP>,ExecutionRole=<DEFAULT_USER_EXECUTIONROLE> \
    --domain-settings SecurityGroupIds=<DOMAIN_SECURITY_GROUP>,RStudioServerProDomainSettings={DomainExecutionRoleArn=<DOMAINEXECUTION_ROLE_ARN>} \
    --vpc-id <VPC_ID> \
    --subnet-ids "<SUBNET_IDS>" \
    --app-network-access-type VPCOnly --app-security-group-management Service
```

Nota: l' RStudioServerPro app viene avviata da un profilo utente speciale denominato`domain-shared`. Di conseguenza, questa app non viene restituita come parte delle chiamate API `list-app` da nessun altro profilo utente. 

Potrebbe essere necessario aumentare la quota di Amazon VPC nel tuo account per aumentare il numero di utenti. Per ulteriori informazioni, consulta la pagina relativa alle [quote di Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-security-groups). 

## Verifica della creazione del dominio
<a name="rstudio-create-cli-domain-verify"></a>

Utilizza il comando seguente per verificare che il tuo dominio sia stato creato con `Status` `InService`. `domain-id` viene aggiunto all’ARN dei domini. Ad esempio, `arn:aws:sagemaker:<REGION>:<ACCOUNT_ID>:domain/<DOMAIN_ID>`.

```
aws sagemaker describe-domain --domain-id <DOMAIN_ID> --region <REGION>
```

# Aggiungi RStudio supporto a un dominio esistente
<a name="rstudio-add-existing"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

 Se hai aggiunto una RStudio licenza tramite AWS License Manager, puoi creare un nuovo dominio Amazon SageMaker AI con supporto per RStudio on SageMaker AI. Se disponi di un dominio esistente che non supporta RStudio, puoi aggiungere il RStudio supporto a quel dominio senza dover eliminare e ricreare il dominio.  

 L'argomento seguente descrive come aggiungere questo supporto. 

## Prerequisiti
<a name="rstudio-add-existing-prerequisites"></a>

 È necessario completare i seguenti passaggi prima di aggiornare il dominio corrente per aggiungere il supporto per RStudio on SageMaker AI.  
+  Installazione e configurazione [AWS CLI versione 2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) 
+  Configurazione di [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) con credenziali IAM 
+  Crea un ruolo di esecuzione del dominio seguendo i passaggi descritti in [Creare un dominio SageMaker AI RStudio utilizzando AWS CLI](https://docs.aws.amazon.com/sagemaker/latest/dg/rstudio-create-cli.html#rstudio-create-cli-domainexecution). Questo ruolo IAM a livello di dominio è richiesto dall'app. RStudio ServerPro Il ruolo richiede l'accesso AWS License Manager per la verifica di una licenza Posit Workbench valida e Amazon CloudWatch Logs per la pubblicazione dei log del server.  
+  [Implementa la tua RStudio licenza AWS License Manager seguendo i passaggi indicati nella licenza. RStudio](https://docs.aws.amazon.com/sagemaker/latest/dg/rstudio-license.html) 
+  (Facoltativo) Se desideri utilizzare RStudio in `VPCOnly` modalità, completa i passaggi [RStudio in Solo VPC](https://docs.aws.amazon.com/sagemaker/latest/dg/rstudio-network.html). 
+  Assicurati che i gruppi di sicurezza che hai configurato per ciascuno del tuo dominio soddisfino le quote [UserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html)a livello di account. Quando configuri il profilo utente predefinito durante la creazione del dominio, puoi utilizzare il `DefaultUserSettings` parametro dell'[CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html)API per aggiungere i profili utente `SecurityGroups` ereditati da tutti i profili utente creati nel dominio. Puoi anche fornire gruppi di sicurezza aggiuntivi per un utente specifico come parte del `UserSettings` parametro dell'[CreateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html)API. Se hai aggiunto gruppi di sicurezza in questo modo, devi assicurarti che il numero totale di gruppi di sicurezza per profilo utente non superi la quota massima di 2 in modalità `VPCOnly` e 4 in modalità `PublicInternetOnly`. Se il numero totale di gruppi di sicurezza risultante per ogni profilo utente supera la quota, puoi combinare le regole di più gruppi di sicurezza in un unico gruppo di sicurezza.  

## Aggiungi RStudio supporto a un dominio esistente
<a name="rstudio-add-existing-enable"></a>

Dopo aver completato i prerequisiti, puoi aggiungere il RStudio supporto al tuo dominio esistente. I passaggi seguenti descrivono come aggiornare il dominio esistente per cui aggiungere il supporto. RStudio 

### Fase 1. Elimina tutte le app nel dominio
<a name="rstudio-add-existing-enable-step1"></a>

Per aggiungere il supporto per RStudio il tuo dominio, SageMaker AI deve aggiornare i gruppi di sicurezza sottostanti per tutti i profili utente esistenti. Per completare questa operazione, devi eliminare tutte le app esistenti nel dominio e crearle di nuovo. Di seguito viene mostrato come eliminare tutte le app. 

1.  Elenca tutte le app del dominio. 

   ```
   aws sagemaker \
      list-apps \
      --domain-id-equals <DOMAIN_ID>
   ```

1.  Elimina tutte le app per ogni profilo utente nel dominio. 

   ```
   // JupyterServer apps 
   aws sagemaker \
       delete-app \
       --domain-id <DOMAIN_ID> \
       --user-profile-name <USER_PROFILE> \
       --app-type JupyterServer \
       --app-name <APP_NAME>
   
   // KernelGateway apps
   aws sagemaker \
       delete-app \
       --domain-id <DOMAIN_ID> \
       --user-profile-name <USER_PROFILE> \
       --app-type KernelGateway \
       --app-name <APP_NAME>
   ```

### Fase 2: aggiornare tutti i profili utente con il nuovo elenco di gruppi di sicurezza
<a name="rstudio-add-existing-enable-step2"></a>

 Questa è un’azione una tantum che devi completare per tutti i profili utente esistenti nel tuo dominio dopo aver rifattorizzato i gruppi di sicurezza esistenti. Ciò impedisce di raggiungere la quota per il numero massimo di gruppi di sicurezza. La chiamata `UpdateUserProfile` API fallisce se l'utente ha delle app con [InService](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeApp.html#sagemaker-DescribeApp-response-Status)stato impostato. Elimina tutte le app, quindi chiama l'API `UpdateUserProfile` per aggiornare i gruppi di sicurezza. 

**Nota**  
Il seguente requisito per la `VPCOnly` modalità delineato in [Connect Amazon SageMaker Studio Classic Notebooks in un VPC a risorse esterne](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-and-internet-access.html#studio-notebooks-and-internet-access-vpc-only) non è più necessario quando si aggiunge il RStudio supporto perché `AppSecurityGroupManagement` è gestito dal servizio AI: SageMaker   
“[Traffico TCP all'interno del gruppo di sicurezza](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-other-instances). È necessario per la connettività tra l'app e le JupyterServer app. KernelGateway È necessario consentire l'accesso ad almeno le porte dell'intervallo `8192-65535`.” 

```
aws sagemaker \
    update-user-profile \
    --domain-id <DOMAIN_ID>\
    --user-profile-name <USER_PROFILE> \
    --user-settings "{\"SecurityGroups\": [\"<SECURITY_GROUP>\", \"<SECURITY_GROUP>\"]}"
```

### Fase 3 - Attivazione RStudio chiamando l' UpdateDomain API
<a name="rstudio-add-existing-enable-step3"></a>

1.  Chiama l'[UpdateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateDomain.html)API per aggiungere il supporto per RStudio on SageMaker AI. Il parametro `defaultusersettings` è necessario solo se hai rifattorizzato i gruppi di sicurezza predefiniti per i tuoi profili utente. 
   +  Per la modalità `VPCOnly`: 

     ```
     aws sagemaker \
         update-domain \
         --domain-id <DOMAIN_ID> \
         --app-security-group-management Service \
         --domain-settings-for-update RStudioServerProDomainSettingsForUpdate={DomainExecutionRoleArn=<DOMAIN_EXECUTION_ROLE_ARN>} \
         --default-user-settings "{\"SecurityGroups\": [\"<SECURITY_GROUP>\", \"<SECURITY_GROUP>\"]}"
     ```
   +  Per la modalità `PublicInternetOnly`: 

     ```
     aws sagemaker \
         update-domain \
         --domain-id <DOMAIN_ID> \
         --domain-settings-for-update RStudioServerProDomainSettingsForUpdate={DomainExecutionRoleArn=<DOMAIN_EXECUTION_ROLE_ARN>} \
         --default-user-settings "{\"SecurityGroups\": [\"<SECURITY_GROUP>\", \"<SECURITY_GROUP>\"]}"
     ```

1. Verifica che lo stato del dominio sia `InService`. Dopo lo stato del dominio`InService`, viene aggiunto il supporto per RStudio on SageMaker AI.

   ```
   aws sagemaker \
       describe-domain \
       --domain-id <DOMAIN_ID>
   ```

1. Verifica che lo stato dell' RStudioServerPro app `InService` utilizzi il seguente comando.

   ```
   aws sagemaker list-apps --user-profile-name domain-shared
   ```

### Passaggio 4: aggiungere RStudio l'accesso per gli utenti esistenti
<a name="rstudio-add-existing-enable-step4"></a>

 Come parte dell'aggiornamento nella Fase 3, SageMaker AI contrassegna come impostazione `DISABLED` predefinita tutti i profili utente esistenti nel dominio. RStudio [AccessStatus](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RStudioServerProAppSettings.html#sagemaker-Type-RStudioServerProAppSettings-AccessStatus) Ciò impedisce il superamento del numero di utenti consentito dalla licenza corrente. Per aggiungere l'accesso per gli utenti esistenti, è disponibile una sola fase di attivazione. Esegui l'opt-in chiamando l'[UpdateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateUserProfile.html)API con quanto segue: [RStudioServerProAppSettings](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UserSettings.html#sagemaker-Type-UserSettings-RStudioServerProAppSettings) 
+  `AccessStatus` = `ENABLED` 
+  *Facoltativo* - `UserGroup` = `R_STUDIO_USER` o `R_STUDIO_ADMIN` 

```
aws sagemaker \
    update-user-profile \
    --domain-id <DOMAIN_ID>\
    --user-profile-name <USER_PROFILE> \
    --user-settings "{\"RStudioServerProAppSettings\": {\"AccessStatus\": \"ENABLED\"}}"
```

**Nota**  
Per impostazione predefinita, il numero di utenti a cui è possibile accedere RStudio è 60.

### Passaggio 5: disattiva RStudio l'accesso per i nuovi utenti
<a name="rstudio-add-existing-enable-step5"></a>

 Se non diversamente specificato durante la chiamata`UpdateDomain`, RStudio il supporto viene aggiunto per impostazione predefinita per tutti i nuovi profili utente creati dopo aver aggiunto il supporto per RStudio on SageMaker AI. Per disattivare l'accesso per un nuovo profilo utente, è necessario impostare esplicitamente il parametro `AccessStatus` su `DISABLED` come parte della chiamata API `CreateUserProfile`. Se il parametro `AccessStatus` non è specificato come parte dell'API `CreateUserProfile`, lo stato di accesso predefinito è `ENABLED`. 

```
aws sagemaker \
    create-user-profile \
    --domain-id <DOMAIN_ID>\
    --user-profile-name <USER_PROFILE> \
    --user-settings "{\"RStudioServerProAppSettings\": {\"AccessStatus\": \"DISABLED\"}}"
```

# Immagini personalizzate con un' RStudio SageMaker intelligenza artificiale
<a name="rstudio-byoi"></a>

Un' SageMaker immagine è un file che identifica i pacchetti linguistici e altre dipendenze necessari per l'esecuzione RStudio su Amazon SageMaker AI. SageMaker L'intelligenza artificiale utilizza queste immagini per creare un ambiente in cui correre. RStudio Amazon SageMaker AI fornisce un' RStudio immagine integrata da utilizzare. Se hai bisogno di funzionalità diverse, puoi portare le tue immagini personalizzate. Questa pagina fornisce informazioni sui concetti chiave per l'utilizzo di immagini personalizzate con RStudio on SageMaker AI. Il processo per utilizzare la propria immagine RStudio sull' SageMaker IA prevede tre passaggi:

1. Creazione di un'immagine personalizzata da un Dockerfile e inviala a un repository in Amazon Elastic Container Registry (Amazon ECR).

1. Crea un' SageMaker immagine che punti a un'immagine del contenitore in Amazon ECR e collegala al tuo dominio Amazon SageMaker AI.

1. Avvia una nuova sessione RStudio con la tua immagine personalizzata.

Puoi creare immagini e versioni di immagini e allegare versioni di immagini al tuo dominio, utilizzando il pannello di controllo SageMaker AI [AWS SDK per Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html), e il [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/). Puoi anche creare immagini e versioni di immagini utilizzando la console SageMaker AI, anche se non hai effettuato l'onboarding a un dominio.

I seguenti argomenti mostrano come trasferire la propria immagine RStudio su SageMaker AI creando, allegando e avviando un'immagine personalizzata.

## Terminologia chiave
<a name="rstudio-byoi-basics"></a>

La sezione seguente definisce i termini chiave per utilizzare la propria immagine RStudio sull' SageMaker IA.
+ **File Docker:** un file Docker è un file che identifica pacchetti linguistici e altre dipendenze della tua immagine Docker.
+ **Immagine Docker:** l'immagine Docker è un file Docker integrato. Questa immagine viene archiviata in Amazon ECR e funge da base per l'immagine SageMaker AI.
+ **SageMaker immagine:** Un' SageMaker immagine contiene un set di versioni di SageMaker immagini basate su immagini Docker. 
+ **Versione immagine:** una versione immagine di un' SageMaker immagine rappresenta un'immagine Docker compatibile RStudio e archiviata in un repository Amazon ECR. Le singole versioni dell’immagine non sono modificabili. Queste versioni di immagini possono essere allegate a un dominio e utilizzate con RStudio un'intelligenza artificiale. SageMaker 

# Completamento dei prerequisiti
<a name="rstudio-byoi-prerequisites"></a>

È necessario completare i seguenti prerequisiti prima di utilizzare la propria immagine RStudio su Amazon SageMaker AI. 
+ Se disponi di un dominio esistente creato prima del 7 aprile 2022, devi eliminare l' RStudioServerPro applicazione e ricrearla. RStudio Per informazioni sull'eliminazione di un’applicazione, consulta [Chiudi e aggiorna Amazon SageMaker Studio Classic](studio-tasks-update-studio.md).
+ Installa l'applicazione Docker. Per informazioni sulla configurazione di Docker, consulta [Orientation and setup](https://docs.docker.com/get-started/).
+ Crea una copia locale di un Dockerfile RStudio compatibile che funzioni con l'intelligenza artificiale. SageMaker Per informazioni sulla creazione di un RStudio dockerfile di esempio, consulta [Utilizzare un'immagine personalizzata per portare il proprio ambiente di sviluppo RStudio su Amazon SageMaker AI](https://aws.amazon.com/blogs/machine-learning/use-a-custom-image-to-bring-your-own-development-environment-to-rstudio-on-amazon-sagemaker/).
+ Utilizza un ruolo di AWS Identity and Access Management esecuzione a cui è allegata la [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)policy. Se hai effettuato l'onboarding al dominio, puoi ottenere il ruolo dalla sezione **Riepilogo del dominio** del pannello di controllo SageMaker AI.

  Aggiungi le seguenti autorizzazioni per accedere al servizio Amazon Elastic Container Registry (Amazon ECR) al tuo ruolo di esecuzione.

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

****  

  ```
  { 
      "Version":"2012-10-17",		 	 	  
      "Statement":[ 
          {
              "Sid": "VisualEditor0",
              "Effect":"Allow", 
              "Action":[ 
                  "ecr:CreateRepository", 
                  "ecr:BatchGetImage", 
                  "ecr:CompleteLayerUpload", 
                  "ecr:DescribeImages", 
                  "ecr:DescribeRepositories", 
                  "ecr:UploadLayerPart", 
                  "ecr:ListImages", 
                  "ecr:InitiateLayerUpload", 
                  "ecr:BatchCheckLayerAvailability", 
                  "ecr:PutImage" 
              ], 
              "Resource": "*" 
          }
      ]
  }
  ```

------
+ Installa e configura AWS CLI con la versione seguente (o superiore). Per informazioni sull'installazione di AWS CLI, vedere [Installazione o aggiornamento della versione più recente di AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

  ```
  AWS CLI v1 >= 1.23.6
  AWS CLI v2 >= 2.6.2
  ```

# Specifiche personalizzate RStudio dell'immagine
<a name="rstudio-byoi-specs"></a>

In questa guida, imparerai le specifiche personalizzate RStudio delle immagini da utilizzare quando porti la tua immagine. Esistono due set di requisiti che devi soddisfare con la tua RStudio immagine personalizzata per utilizzarla con Amazon SageMaker AI. Questi requisiti sono imposti da RStudio PBC e dalla piattaforma Amazon SageMaker Studio Classic. Se uno di questi set di requisiti non è soddisfatto, l'immagine personalizzata non funzionerà correttamente.

## RStudio Requisiti PBC
<a name="rstudio-byoi-specs-rstudio"></a>

RStudio I requisiti PBC sono descritti nell'articolo [Utilizzo delle immagini Docker con RStudio RStudio Workbench/Server Pro, Launcher](https://support.rstudio.com/hc/en-us/articles/360019253393-Using-Docker-images-with-RStudio-Server-Pro-Launcher-and-Kubernetes) e Kubernetes. Segui le istruzioni contenute in questo articolo per creare la base dell'immagine personalizzata. RStudio 

Per istruzioni su come installare più versioni R nella tua immagine personalizzata, vedi [Installazione di più versioni R in Linux](https://support.rstudio.com/hc/en-us/articles/215488098).

## Requisiti di Amazon SageMaker Studio Classic
<a name="rstudio-byoi-specs-studio"></a>

Amazon SageMaker Studio Classic impone il seguente set di requisiti di installazione per l' RStudioimmagine.
+ È necessario utilizzare un'immagine di RStudio base di almeno`2025.05.1+513.pro3`. Per ulteriori informazioni, consulta [RStudio Controllo delle versioni](rstudio-version.md).
+ Devi istallare i seguenti pacchetti:

  ```
  yum install -y sudo \
  openjdk-11-jdk \
  libpng-dev \
  && yum clean all \
  && /opt/R/${R_VERSION}/bin/R -e "install.packages('reticulate', repos='https://packagemanager.rstudio.com/cran/__linux__/centos7/latest')" \
  && /opt/python/${PYTHON_VERSION}/bin/pip install --upgrade \
      'boto3>1.0<2.0' \
      'awscli>1.0<2.0' \
      'sagemaker[local]<3'
  ```
+ Devi fornire valori predefiniti per i valori dell’ambiente `RSTUDIO_CONNECT_URL` e `RSTUDIO_PACKAGE_MANAGER_URL` .

  ```
  ENV RSTUDIO_CONNECT_URL "YOUR_CONNECT_URL"
  ENV RSTUDIO_PACKAGE_MANAGER_URL "YOUR_PACKAGE_MANAGER_URL"
  ENV RSTUDIO_FORCE_NON_ZERO_EXIT_CODE 1
  ```

Le seguenti specifiche generali si applicano all'immagine rappresentata da una versione RStudio dell'immagine.

**Esecuzione dell'immagine**  
`ENTRYPOINT`e `CMD` le istruzioni vengono sovrascritte in modo che l'immagine venga eseguita come RSession applicazione.

**Arresto dell'immagine**  
L’API `DeleteApp` invia l’equivalente di un comando `docker stop`. Gli altri processi nel contenitore non riceveranno i SIGKILL/SIGTERM segnali.

**File system**  
Le directory `/opt/.sagemakerinternal` e `/opt/ml` sono riservate. I dati presenti in queste directory potrebbero non essere visibili durante il runtime.

**Dati utente**  
Ogni utente in un dominio SageMaker AI ottiene una directory utente su un volume Amazon Elastic File System condiviso nell'immagine. La posizione della directory dell'utente corrente sul volume Amazon Elastic File System è `/home/sagemaker-user`.

**Metadati**  
Un file di metadati si trova in `/opt/ml/metadata/resource-metadata.json`. Alle variabili definite nell'immagine non viene aggiunta alcuna variabile di ambiente. Per ulteriori informazioni, consulta [Ottenere i metadati dell’app](notebooks-run-and-manage-metadata.md#notebooks-run-and-manage-metadata-app).

**GPU**  
In un'istanza GPU, l'immagine viene eseguita con l'opzione `--gpus`. Nell'immagine deve essere incluso solo il toolkit CUDA, non i driver NVIDIA. Per ulteriori informazioni, consulta [Guida per l'utente di NVIDIA](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/user-guide.html).

**Parametri e logging**  
I log del RSession processo vengono inviati ad Amazon CloudWatch nell'account del cliente. Il nome del gruppo di log è `/aws/sagemaker/studio`. Il nome del flusso di log è `$domainID/$userProfileName/RSession/$appName`.

**Dimensione dell’immagine**  
La dimensione dell'immagine è limitata a 25 GB. Per visualizzare le dimensioni della tua immagine, esegui `docker image ls`.

# Crea un'immagine personalizzata RStudio
<a name="rstudio-byoi-create"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Questo argomento descrive come creare un' RStudio immagine personalizzata utilizzando la console SageMaker AI e il. AWS CLI Se si utilizza il AWS CLI, è necessario eseguire la procedura dal computer locale. I seguenti passaggi non funzionano in Amazon SageMaker Studio Classic.

Quando crei un'immagine, l' SageMaker intelligenza artificiale crea anche una versione iniziale dell'immagine. Ogni versione dell’immagine rappresenta un'immagine del container presente in [Amazon Elastic Container Registry (ECR)](https://console.aws.amazon.com/ecr/). L'immagine del contenitore deve soddisfare i requisiti per essere utilizzata in RStudio. Per ulteriori informazioni, consulta [Specifiche personalizzate RStudio dell'immagine](rstudio-byoi-specs.md).

Per informazioni su come testare l'immagine localmente e risolvere i problemi più comuni, consultate il repository [SageMaker Studio Custom Image Samples](https://github.com/aws-samples/sagemaker-studio-custom-image-samples/blob/main/DEVELOPMENT.md).

**Topics**
+ [Aggiungi un'immagine di SageMaker contenitore RStudio Docker compatibile con l'intelligenza artificiale ad Amazon ECR](#rstudio-byoi-sdk-add-container-image)
+ [Creare un' SageMaker immagine dalla console](#rstudio-byoi-create-console)
+ [Crea un'immagine da AWS CLI](#rstudio-byoi-create-cli)

## Aggiungi un'immagine di SageMaker contenitore RStudio Docker compatibile con l'intelligenza artificiale ad Amazon ECR
<a name="rstudio-byoi-sdk-add-container-image"></a>

Esegui le fasi seguenti per aggiungere un'immagine del container Docker ad Amazon ECR:
+ Crea un repository Amazon ECR.
+ Effettua l'autenticazione su Amazon ECR.
+ Crea un'immagine Docker compatibile con l'intelligenza SageMaker artificiale. RStudio 
+ Inserisci l'immagine nel repository Amazon ECR.

**Nota**  
L'archivio Amazon ECR deve trovarsi nello Regione AWS stesso dominio.

**Per creare e aggiungere un'immagine Docker da un container ad Amazon ECR**

1. Crea un repository in Amazon ECR tramite la AWS CLI. Per creare il repository utilizzando la console Amazon ECR, consulta la sezione [Creating a repository](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-create.html).

   ```
   aws ecr create-repository \
       --repository-name rstudio-custom \
       --image-scanning-configuration scanOnPush=true
   ```

   Risposta:

   ```
   {
       "repository": {
           "repositoryArn": "arn:aws:ecr:us-east-2:acct-id:repository/rstudio-custom",
           "registryId": "acct-id",
           "repositoryName": "rstudio-custom",
           "repositoryUri": "acct-id.dkr.ecr.us-east-2.amazonaws.com/rstudio-custom",
           ...
       }
   }
   ```

1. Effettua l'autenticazione su Amazon ECR utilizzando l'URI del repository restituito come risposta dal comando `create-repository`. Assicurarsi che l'applicazione Docker sia in esecuzione. Per ulteriori informazioni, consultare [Autenticazione dei registri](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Registries.html#registry_auth).

   ```
   aws ecr get-login-password | \
       docker login --username AWS --password-stdin <repository-uri>
   ```

   Risposta:

   ```
   Login Succeeded
   ```

1. Creazione dell'immagine Docker. Esegui il comando seguente dalla directory che include il tuo Dockerfile.

   ```
   docker build .
   ```

1. Etichetta l'immagine creata con un tag unico.

   ```
   docker tag <image-id> "<repository-uri>:<tag>"
   ```

1. Inserisci l'immagine del container nel repository Amazon ECR. Per ulteriori informazioni, consulta la sezione [ImagePush](https://docs.docker.com/engine/api/v1.40/#operation/ImagePush)[Pushing an image.](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html)

   ```
   docker push <repository-uri>:<tag>
   ```

   Risposta:

   ```
   The push refers to repository [<account-id>.dkr.ecr.us-east-2.amazonaws.com/rstudio-custom]
   r: digest: <digest> size: 3066
   ```

## Creare un' SageMaker immagine dalla console
<a name="rstudio-byoi-create-console"></a>

**Come creare un’immagine**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel pannello di navigazione sinistro scegli **Configurazioni admin**.

1. In **Configurazioni admin**, scegli **Immagini**. 

1. Nella pagina **Immagini personalizzate**, scegli **Crea immagine**.

1. 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] `

1. Seleziona **Successivo**.

1. 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 dell'immagine – il nome visualizzato nell'interfaccia utente di dominio. Se non fornito, viene visualizzato `Image name`.
   + (Facoltativo) Descrizione: descrizione dell’immagine.
   + Ruolo IAM: al ruolo deve essere associata la [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)policy. 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 i tuoi notebook abbiano accesso. Se preferisci non consentire l'accesso ad altri bucket, scegli **Nessuno**.

       SageMaker L'intelligenza artificiale associa la `AmazonSageMakerFullAccess` policy al ruolo. Il ruolo consente agli utenti dei notebook di accedere ai bucket Amazon 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. I tag sono ricercabili utilizzando la console SageMaker AI o l'`Search`API SageMaker AI.

1. In **Tipo di immagine**, seleziona RStudio immagine.

1. Seleziona **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.

1. In **Origine immagine**, inserisci il percorso di registrazione dell'immagine Amazon ECR. L'immagine non deve essere la stessa utilizzata in una versione precedente dell'immagine SageMaker AI.

Per utilizzare l'immagine personalizzata in RStudio, devi allegarla al tuo dominio. Per ulteriori informazioni, consulta [Allega un' SageMaker immagine personalizzata](rstudio-byoi-attach.md).

## Crea un'immagine da AWS CLI
<a name="rstudio-byoi-create-cli"></a>

Questa sezione mostra come creare un' SageMaker immagine Amazon personalizzata utilizzando AWS CLI.

Utilizza i seguenti passaggi per creare un' SageMaker immagine:
+ Creazione di `Image`.
+ Creazione di `ImageVersion`.
+ Creazione di un file di configurazione.
+ Creazione di `AppImageConfig`.

**Per creare le entità SageMaker dell'immagine**

1. Crea un' SageMaker immagine. Il ruolo ARN deve avere almeno la policy collegata `AmazonSageMakerFullAccessPolicy`.

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

   Risposta:

   ```
   {
       "ImageArn": "arn:aws:sagemaker:us-east-2:acct-id:image/rstudio-custom-image"
   }
   ```

1. Crea una versione SageMaker dell'immagine dall'immagine. Passa il valore di tag univoco che hai scelto quando hai inviato l'immagine ad Amazon ECR.

   ```
   aws sagemaker create-image-version \
       --image-name rstudio-custom-image \
       --base-image <repository-uri>:<tag>
   ```

   Risposta:

   ```
   {
       "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/rstudio-image/1"
   }
   ```

1. Verifica che la versione dell'immagine sia stata creata correttamente.

   ```
   aws sagemaker describe-image-version \
       --image-name rstudio-custom-image \
       --version 1
   ```

   Risposta:

   ```
   {
       "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/rstudio-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 i tuoi Amazon CloudWatch Logs. Il nome del gruppo di log è `/aws/sagemaker/studio`. Il nome del flusso di log è `$domainID/$userProfileName/KernelGateway/$appName`.

1. Creazione di un file di configurazione denominato `app-image-config-input.json`. L'app image config viene utilizzata per la configurazione dell'esecuzione di un' SageMaker immagine come applicazione Kernel Gateway.

   ```
   {
       "AppImageConfigName": "rstudio-custom-config"
   }
   ```

1. Crea il file AppImageConfig utilizzando il file creato nel passaggio precedente.

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

   Risposta:

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

# Allega un' SageMaker immagine personalizzata
<a name="rstudio-byoi-attach"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Questa guida mostra come allegare un' RStudio immagine personalizzata al tuo dominio Amazon SageMaker AI utilizzando la console SageMaker AI o il AWS Command Line Interface (AWS CLI). 

Per utilizzare un' SageMaker immagine personalizzata, devi allegare un' RStudio immagine personalizzata al tuo dominio. Quando alleghi una versione dell'immagine, questa appare nel RStudio Launcher ed è disponibile nell'elenco a discesa **Seleziona immagine**. È possibile utilizzare il menu a discesa per modificare l'immagine utilizzata da. RStudio

Esiste un limite al numero di versioni immagine che possono essere collegate. Una volta raggiunto il limite, devi prima scollegare una versione in modo da poter collegare una versione diversa dell'immagine.

**Topics**
+ [Collegamento di una versione dell’immagine al tuo dominio utilizzando la console](#rstudio-byoi-attach-console)
+ [Allega una versione dell'immagine esistente al tuo dominio utilizzando il AWS CLI](#rstudio-byoi-attach-cli)

## Collegamento di una versione dell’immagine al tuo dominio utilizzando la console
<a name="rstudio-byoi-attach-console"></a>

Puoi allegare una versione SageMaker dell'immagine personalizzata al tuo dominio utilizzando il pannello di controllo della console SageMaker AI. Puoi anche creare un' SageMaker immagine personalizzata e una versione dell'immagine e quindi allegare quella versione al tuo dominio.

**Per collegare un'immagine esistente**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1. Seleziona il dominio desiderato.

1. Scegliere **Environment** (Ambiente).

1. In **Immagini Custom SageMaker Studio Classic allegate al dominio**, scegli **Allega immagine**.

1. Per **Origine immagine**, scegliere **Immagine esistente** o **Nuova immagine**.

   Se selezioni **Immagine esistente**, scegli un'immagine dall'Amazon SageMaker image store.

   Se selezioni **Nuova immagine**, fornisci il percorso del registro Amazon ECR per la tua immagine Docker. Il percorso deve essere nella stessa Regione AWS del dominio. Il repository Amazon ECR deve trovarsi nello stesso account del tuo dominio oppure devono essere abilitate le autorizzazioni multiaccount per l' SageMaker IA.

1. Seleziona un’immagine esistente dall'elenco.

1. Seleziona una versione dell'immagine dall'elenco.

1. Scegli **Next (Successivo)**.

1. Inserisci i valori per **Nome immagine**, **Nome immagine visualizzato** e **Descrizione**.

1. Seleziona il ruolo IAM. Per ulteriori informazioni, consulta [Crea un'immagine personalizzata RStudio](rstudio-byoi-create.md).

1. (Facoltativo) Aggiunta di tag all'immagine.

1. (Facoltativo) Scegli **Aggiungi nuovo tag**, quindi aggiungi un tag di configurazione.

1. **Per **Tipo di immagine**, seleziona Immagine. RStudio**

1. Seleziona **Invia**.

Attendi che la versione dell'immagine venga collegata al dominio. Una volta collegata, la versione viene visualizzata nella lista **Immagini personalizzate** ed evidenziata per qualche secondo.

## Allega una versione dell'immagine esistente al tuo dominio utilizzando il AWS CLI
<a name="rstudio-byoi-attach-cli"></a>

Vengono presentati due metodi per collegare la versione dell’immagine al dominio utilizzando la AWS CLI. Con il primo metodo, crei un nuovo dominio con la versione collegata. Questo metodo è più semplice, ma è necessario specificare le informazioni e il ruolo di esecuzione di Amazon Virtual Private Cloud (Amazon VPC) necessari per creare il dominio.

Se hai già effettuato l’onboarding nel dominio, puoi utilizzare il secondo metodo per collegare la versione dell’immagine al dominio corrente. In questo caso, non devi specificare le informazioni e il ruolo di esecuzione di Amazon VPC. Dopo aver collegato la versione, elimina tutte le applicazioni del dominio e riavvia RStudio.

### Allega l' SageMaker immagine a un nuovo dominio
<a name="rstudio-byoi-cli-attach-new-domain"></a>

Per utilizzare questo metodo, è necessario specificare un ruolo di esecuzione a cui è associata la [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)policy.

Utilizza i seguenti passaggi per creare il dominio e allegare l'immagine SageMaker AI personalizzata:
+ Ottieni l'ID VPC e la sottorete predefiniti. IDs
+ Crea il file di configurazione per il dominio, il quale specifica l'immagine.
+ Crea il dominio con il file di configurazione.

**Per aggiungere l' SageMaker immagine personalizzata al tuo dominio**

1. Ottieni l’ID del tuo VPC predefinito.

   ```
   aws ec2 describe-vpcs \
       --filters Name=isDefault,Values=true \
       --query "Vpcs[0].VpcId" --output text
   ```

   Risposta:

   ```
   vpc-xxxxxxxx
   ```

1. Ottieni la tua sottorete predefinita IDs utilizzando l'ID VPC del passaggio precedente.

   ```
   aws ec2 describe-subnets \
       --filters Name=vpc-id,Values=<vpc-id> \
       --query "Subnets[*].SubnetId" --output json
   ```

   Risposta:

   ```
   [
       "subnet-b55171dd",
       "subnet-8a5f99c6",
       "subnet-e88d1392"
   ]
   ```

1. Crea un file di configurazione denominato `create-domain-input.json`. Inserisci l'ID VPC, la sottorete IDs e `AppImageConfigName` dai passaggi precedenti. `ImageName` Poiché `ImageVersionNumber` non è specificato, si usa la versione più recente dell'immagine, che, in questo caso, è anche l'unica. Il ruolo di esecuzione deve soddisfare i requisiti di [Completamento dei prerequisiti](rstudio-byoi-prerequisites.md).

   ```
   {
     "DomainName": "domain-with-custom-r-image",
     "VpcId": "<vpc-id>",
     "SubnetIds": [
       "<subnet-ids>"
     ],
     "DomainSettings": {
       "RStudioServerProDomainSettings": {
         "DomainExecutionRoleArn": "<execution-role>"
       }
     },
     "DefaultUserSettings": {
       "ExecutionRole": "<execution-role>",
       "RSessionAppSettings": {
         "CustomImages": [
           {
            "AppImageConfigName": "rstudio-custom-config",
            "ImageName": "rstudio-custom-image"
           }
         ]
        }
     },
     "AuthMode": "IAM"
   }
   ```

1. Crea il dominio con l'immagine personalizzata SageMaker allegata.

   ```
   aws sagemaker create-domain \
       --cli-input-json file://create-domain-input.json
   ```

   Risposta:

   ```
   {
       "DomainArn": "arn:aws:sagemaker:region:acct-id:domain/domain-id",
       "Url": "https://domain-id.studio.region.sagemaker.aws/..."
   }
   ```

### Allega l' SageMaker immagine a un dominio esistente
<a name="rstudio-byoi-cli-attach-current-domain"></a>

Questo metodo si basa sul presupposto che sia già stato effettuato l’onboarding in un dominio. Per ulteriori informazioni, consulta [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md).

**Nota**  
Devi eliminare tutte le applicazioni nel tuo dominio per aggiornarlo con la nuova versione dell’immagine. Per informazioni sull'eliminazione di queste applicazioni, consulta [Eliminare un dominio Amazon SageMaker AI](gs-studio-delete-domain.md).

Segui i passaggi seguenti per aggiungere l' SageMaker immagine al tuo dominio corrente.
+ Scarica il tuo `DomainID` dalla console SageMaker AI.
+ Usa il `DomainID` per ottenere `DefaultUserSettings` per il dominio.
+ Aggiungi `ImageName` e `AppImageConfig` come `CustomImage` a `DefaultUserSettings`.
+ Aggiornamento del tuo dominio per includere l'immagine personalizzata.

**Per aggiungere l' SageMaker immagine personalizzata al tuo dominio**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1. Seleziona il dominio desiderato.

1. Scegli **Impostazioni del dominio**.

1. In **Impostazioni generali**, trova l’**ID dominio**. L'ID è nel formato seguente: `d-xxxxxxxxxxxx`.

1. Utilizza l'ID del dominio per generare la descrizione del dominio.

   ```
   aws sagemaker describe-domain \
       --domain-id <d-xxxxxxxxxxxx>
   ```

   Risposta:

   ```
   {
       "DomainId": "d-xxxxxxxxxxxx",
       "DefaultUserSettings": {
         "KernelGatewayAppSettings": {
           "CustomImages": [
           ],
           ...
         }
       }
   }
   ```

1. Salva la sezione `DefaultUserSettings` della risposta in un file denominato `update-domain-input.json`.

1. Inserisci `ImageName` e `AppImageConfigName` delle fasi precedenti come immagine personalizzata. Poiché `ImageVersionNumber` non è specificato, si usa la versione più recente dell'immagine, che, in questo caso, è anche l'unica.

   ```
   {
       "DefaultUserSettings": {
           "RSessionAppSettings": { 
              "CustomImages": [ 
                 { 
                    "ImageName": "rstudio-custom-image",
                    "AppImageConfigName": "rstudio-custom-config"
                 }
              ]
           }
       }
   }
   ```

1. Utilizza l'ID del dominio e il file delle impostazioni utente predefinite per aggiornare il dominio.

   ```
   aws sagemaker update-domain \
       --domain-id <d-xxxxxxxxxxxx> \
       --cli-input-json file://update-domain-input.json
   ```

   Risposta:

   ```
   {
       "DomainArn": "arn:aws:sagemaker:region:acct-id:domain/domain-id"
   }
   ```

1. Elimina l'applicazione `RStudioServerPro`. È necessario riavviare l'applicazione `RStudioServerPro` condivisa dal dominio per consentire all'interfaccia utente di RStudio Launcher di rilevare le ultime modifiche.

   ```
   aws sagemaker delete-app \
       --domain-id <d-xxxxxxxxxxxx> --user-profile-name domain-shared \
       --app-type RStudioServerPro --app-name default
   ```

1. Crea una nuova applicazione `RStudioServerPro`. È necessario creare questa applicazione utilizzando AWS CLI.

   ```
   aws sagemaker create-app \
       --domain-id <d-xxxxxxxxxxxx> --user-profile-name domain-shared \
       --app-type RStudioServerPro --app-name default
   ```

# Avvia un'immagine personalizzata in SageMaker RStudio
<a name="rstudio-byoi-launch"></a>

Puoi usare l'immagine personalizzata quando avvii un' RStudio applicazione dalla console. Dopo aver creato l' SageMaker immagine personalizzata e averla associata al dominio, l'immagine viene visualizzata nella finestra di dialogo di selezione delle immagini del Launcher. RStudio Per avviare una nuova RStudio app, segui i passaggi indicati [Avvia RSessions dal RStudio Launcher](rstudio-launcher.md) e seleziona l'immagine personalizzata come mostrato nell'immagine seguente.

![\[Schermata del RStudio programma di avvio con menu a discesa delle immagini.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/rstudio-launcher-custom.png)


# Pulizia delle risorse di immagini
<a name="rstudio-byoi-sdk-cleanup"></a>

Questa guida mostra come ripulire le risorse di RStudio immagini create nelle sezioni precedenti. Per eliminare un'immagine, completa i seguenti passaggi utilizzando la console SageMaker AI o il AWS CLI, come mostrato in questa guida.
+ Scollega l'immagine e le relative versioni dal tuo dominio Amazon SageMaker AI.
+ Elimina l'immagine, la versione dell'immagine e la configurazione dell'immagine nell'app.

Dopo aver completato queste fasi, puoi eliminare l'immagine e il repository del container da Amazon ECR. Per ulteriori informazioni su come eliminare l'immagine e il repository del container , consulta la sezione [Eliminazione di un repository](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-delete.html).

## Pulisci le risorse dalla console SageMaker AI
<a name="rstudio-byoi-sdk-cleanup-console"></a>

Quando si scollega un'immagine da un dominio, vengono scollegate anche tutte le versioni dell'immagine. Quando un'immagine viene scollegata, tutti gli utenti del dominio perdono l'accesso alle versioni dell'immagine.

**Per scollegare un'immagine**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1. Seleziona il dominio desiderato.

1. Scegliere **Environment** (Ambiente).

1. In **Immagini personalizzate collegate al dominio**, seleziona l'immagine, quindi scegli **Scollega**.

1. (Facoltativo) Per eliminare l'immagine e tutte le versioni dall' SageMaker IA, seleziona **Elimina anche le immagini selezionate...** . Questa azione non elimina le immagini associate da Amazon ECR.

1. Seleziona **Scollega**.

## Ripulisci le risorse di AWS CLI
<a name="rstudio-byoi-sdk-cleanup-cli"></a>

**Per eliminare le risorse**

1. Scollega l'immagine e le versioni delle immagini dal tuo dominio inoltrando al dominio un elenco di immagini personalizzate vuoto. Apri il file `update-domain-input.json` creato in [Allega l' SageMaker immagine al tuo dominio attuale](studio-byoi-attach.md#studio-byoi-sdk-attach-current-domain).

1. Elimina le immagini personalizzate `RSessionAppSettings` e quindi salva il file. Non modificare le immagini personalizzate `KernelGatewayAppSettings`.

   ```
   {
       "DomainId": "d-xxxxxxxxxxxx",
       "DefaultUserSettings": {
         "KernelGatewayAppSettings": {
            "CustomImages": [
            ],
            ...
         },
         "RSessionAppSettings": { 
           "CustomImages": [ 
           ],
           "DefaultResourceSpec": { 
           }
           ...
         }
       }
   }
   ```

1. Utilizza l'ID del dominio e il file delle impostazioni utente predefinite per aggiornare il dominio.

   ```
   aws sagemaker update-domain \
       --domain-id <d-xxxxxxxxxxxx> \
       --cli-input-json file://update-domain-input.json
   ```

   Risposta:

   ```
   {
       "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx"
   }
   ```

1. Elimina la configurazione dell'immagine dell'app.

   ```
   aws sagemaker delete-app-image-config \
       --app-image-config-name rstudio-image-config
   ```

1. Eliminare l' SageMaker immagine, eliminando anche tutte le versioni dell'immagine. Le immagini dei container in Amazon ECR rappresentate dalle versioni delle immagini non vengono eliminate.

   ```
   aws sagemaker delete-image \
       --image-name rstudio-image
   ```

# Crea un utente da utilizzare RStudio
<a name="rstudio-create-user"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Dopo l'esecuzione del dominio Amazon SageMaker AI RStudio abilitato, puoi aggiungere profili utente (UserProfiles) al dominio. I seguenti argomenti mostrano come creare profili utente autorizzati all'uso RStudio e aggiornare un profilo utente esistente. Per informazioni su come eliminare un' RStudio app o un dominio, segui i passaggi in [Eliminare un dominio Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-delete-domain.html). UserProfile 

**Nota**  
Il limite per il numero totale di UserProfiles in un dominio Amazon SageMaker AI è 60.

 Sono previsti due tipi di utenti: 
+ Non autorizzato: questo utente non può accedere all' RStudio app.
+ Autorizzato: questo utente può accedere all' RStudio app e utilizzare una delle postazioni di RStudio licenza. Per impostazione predefinita, un nuovo utente è `Authorized` se il dominio è abilitato per RStudio.

La modifica dello stato di autorizzazione di un utente è valida solo da `Unauthorized` a `Authorized`. Se un utente è autorizzato, può ricevere uno dei seguenti livelli di accesso a RStudio. 
+  RStudio Utente: Si tratta di un RStudio utente standard a cui può accedere RStudio. 
+  RStudio Amministratore: l'amministratore del tuo dominio Amazon SageMaker AI ha la possibilità di creare utenti, aggiungere utenti esistenti e aggiornare le autorizzazioni degli utenti esistenti. Gli amministratori possono anche accedere alla dashboard amministrativa. RStudio Tuttavia, questo amministratore non è in grado di aggiornare i parametri gestiti da Amazon SageMaker AI.

## Metodi per creare un utente
<a name="rstudio-create-user-methods"></a>

I seguenti argomenti mostrano come creare un utente nel tuo dominio Amazon SageMaker AI RStudio abilitato.

 **Crea una console utente** 

Per creare un utente nel tuo dominio Amazon SageMaker AI RStudio abilitato dalla console, completa i passaggi indicati di seguito. [Aggiunta di profili utente](domain-user-profile-add.md)

 **Crea CLI utente** 

 Il comando seguente mostra come aggiungere utenti a un dominio Amazon SageMaker AI con l'autenticazione IAM. Un utente può appartenere al gruppo utenti `R_STUDIO_USER` o `R_STUDIO_ADMIN`. 

```
aws sagemaker create-user-profile --region <REGION> \
    --domain-id <DOMAIN-ID> \
    --user-profile-name <USER_PROFILE_NAME-ID> \
    --user-settings RStudioServerProAppSettings={UserGroup=<USER-GROUP>}
```

Il comando seguente mostra come aggiungere utenti a un dominio Amazon SageMaker AI con autenticazione utilizzando IAM Identity Center. Un utente può appartenere al gruppo utenti `R_STUDIO_USER` o `R_STUDIO_ADMIN`. 

```
aws sagemaker create-user-profile --region <REGION> \
    --domain-id <DOMAIN-ID> \
    --user-profile-name <USER_PROFILE_NAME-ID> \
    --user-settings RStudioServerProAppSettings={UserGroup=<USER-GROUP>} \
    --single-sign-on-user-identifier UserName \
    --single-sign-on-user-value <USER-NAME>
```

# Accedi RStudio come altro utente
<a name="rstudio-login-another"></a>

L'argomento seguente mostra come accedere ad RStudio Amazon SageMaker AI come altro utente.

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, scegli **Configurazioni admin**.

1. In **Configurazioni di amministrazione**, scegli **Domini**. 

1. Seleziona il dominio contenente il profilo utente.

1.  Seleziona un nome utente dall'elenco degli utenti. Si apre una nuova pagina con dettagli sul profilo utente e sulle app in esecuzione. 

1.  Seleziona **Avvia**. 

1.  Dal menu a discesa, seleziona **RStudio**di avviare un' RStudio istanza. 

# Termina le sessioni per un altro utente
<a name="rstudio-terminate-another"></a>

L'argomento seguente mostra come terminare le sessioni di un altro utente RStudio su Amazon SageMaker AI.

1.  Nell'elenco delle app in esecuzione, scegli quella che intendi copiare. 

1.  Fai clic sul rispettivo pulsante **Elimina app** per l'app che stai eliminando. 

# Usa la dashboard amministrativa RStudio
<a name="rstudio-admin"></a>

 Questo argomento mostra come accedere e utilizzare il pannello di controllo RStudio amministrativo. Con la dashboard RStudio amministrativa, gli amministratori possono gestire gli utenti e RSessions visualizzare informazioni sull'utilizzo delle istanze RStudio del server e Amazon Logs. CloudWatch 

 

## Avvia la dashboard amministrativa RStudio
<a name="rstudio-admin-launch"></a>

L'`R_STUDIO_ADMIN`autorizzazione consente all'utente di accedere alla dashboard RStudio amministrativa. Un `R_STUDIO_ADMIN` utente può accedere alla dashboard RStudio amministrativa sostituendola manualmente `workspaces` con `admin` nel proprio RStudio URL. Di seguito viene illustrato come modificare l'URL per accedere al pannello di controllo RStudio amministrativo.

Ad esempio, il seguente RStudio URL: 

```
https://<DOMAIN-ID>.studio.us-east-2.sagemaker.aws/rstudio/default/s/<SESSION-ID>/workspaces
```

Può essere convertito in: 

```
https://<DOMAIN-ID>.studio.us-east-2.sagemaker.aws/rstudio/default/s/<SESSION-ID>/admin
```

## Scheda Pannello di controllo
<a name="rstudio-admin-dashboard"></a>

Questa scheda offre una panoramica dell'utilizzo delle istanze del RStudio server, oltre a informazioni sul numero di istanze attive RSessions.

## Scheda Sessioni)
<a name="rstudio-admin-sessions"></a>

Questa scheda fornisce informazioni sulle unità attive RSessions, ad esempio l'utente che le ha avviate RSessions, l'ora in cui sono RSessions state eseguite e l'utilizzo delle risorse.

## Scheda Utenti
<a name="rstudio-admin-users"></a>

Questa scheda fornisce informazioni sugli utenti RStudio autorizzati nel dominio, ad esempio l'ora in cui RSession è stato avviato l'ultimo e l'utilizzo delle risorse.

## Scheda Statistiche
<a name="rstudio-admin-stats"></a>

Questa scheda fornisce informazioni sull'utilizzo dell'istanza del RStudio server.

## Scheda Log
<a name="rstudio-admin-logs"></a>

Questa scheda mostra Amazon CloudWatch Logs per l'istanza RStudio Server. Per ulteriori informazioni sulla registrazione degli eventi con Amazon CloudWatch Logs, consulta [Cos'è Amazon CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) Logs? .

# Spegnere RStudio
<a name="rstudio-shutdown"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Per chiudere e riavviare Posit Workbench e l' RStudioServerPro app associata, devi prima chiudere tutte le app esistenti. RSessions Puoi chiudere le app RSession Gateway dall'interno RStudio. È quindi possibile chiudere l' RStudioServerPro app utilizzando il AWS CLI. Dopo aver chiuso l' RStudioServerPro app, devi riaprirla RStudio tramite la console SageMaker AI.

Qualsiasi informazione non salvata sul notebook viene persa nel processo. I dati utente nel volume Amazon EFS non subiscono alcun impatto.

**Nota**  
Se utilizzi un'immagine personalizzata con RStudio, assicurati che l'immagine docker utilizzi una RStudio versione compatibile con la versione di Posit Workbench utilizzata dall' SageMaker IA dopo il riavvio dell'app. RStudio ServerPro 

Negli argomenti seguenti viene illustrato come chiudere il RSession Gateway e RStudio ServerPro le app e riavviarli.

## Sospendere il RSessions
<a name="rstudio-suspend"></a>

Completa la seguente procedura per sospendere tutti i tuoi. RSessions

1. Dal RStudio Launcher, identifica RSession quello che desideri sospendere. 

1. Seleziona **Sospendi** per la sessione. 

1. Ripeti l'operazione per tutti. RSessions

## Elimina il tuo RSessions
<a name="rstudio-delete"></a>

Completa la seguente procedura per spegnere tutti i tuoi RSessions.

1. Dal RStudio Launcher, identifica RSession quello che desideri eliminare. 

1. Seleziona **Esci** per la sessione. Si apre una nuova finestra **Esci dalla sessione**. 

1. Dalla finestra **Esci dalla sessione**, seleziona **Uscita forzata** per terminare tutti i processi secondari della sessione.

1. Seleziona **Esci dalla sessione** per confermare l'eliminazione della sessione.

1. Ripeti l'operazione per tutti RSessions.

## Elimina la tua RStudio ServerPro app
<a name="rstudio-delete-restart"></a>

Esegui i seguenti comandi da AWS CLI per eliminare e riavviare l' RStudioServerProapp.

1. Elimina l' RStudioServerPro applicazione utilizzando l'ID di dominio corrente. 

   ```
   aws sagemaker delete-app \
       --domain-id <domainId> \
       --user-profile-name domain-shared \
       --app-type RStudioServerPro \
       --app-name default
   ```

1. Ricrea l' RStudioServerPro applicazione. 

   ```
   aws sagemaker create-app \
       --domain-id <domainId> \
       --user-profile-name domain-shared \
       --app-type RStudioServerPro \
       --app-name default
   ```

# Fatturazione e costi
<a name="rstudio-billing"></a>

 Per tenere traccia dei costi associati al proprio RStudio ambiente, è possibile utilizzare il Gestione dei costi e fatturazione AWS servizio.Gestione dei costi e fatturazione AWS fornisce strumenti utili per aiutarvi a raccogliere informazioni relative ai costi e all'utilizzo, analizzare i fattori di costo e le tendenze di utilizzo e adottare misure per pianificare le spese. Per ulteriori informazioni, consulta [Cos’è Gestione di fatturazione e costi di AWS ?](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-what-is.html) . Di seguito vengono descritti i componenti necessari per l'esecuzione RStudio su Amazon SageMaker AI e il modo in cui ogni componente influisce sulla fatturazione dell' RStudio istanza. 
+  RStudio Licenza: è necessario acquistare una RStudio licenza. Non sono previsti costi aggiuntivi per l'utilizzo RStudio della licenza con Amazon SageMaker AI. Per ulteriori informazioni sulla tua RStudio licenza, consulta[Ottieni una RStudio licenza](rstudio-license.md).
+  RSession - Si tratta di sessioni RStudio di lavoro lanciate dagli utenti finali. L'addebito viene effettuato mentre RSession è in funzione.
+  RStudio Server: un server multi-tenant gestisce tutti i. RSessions È possibile scegliere il tipo di istanza su cui eseguire il RStudio server e pagare i relativi costi. L'istanza predefinita, “system”, è gratuita, ma puoi scegliere di pagare per livelli superiori. Per ulteriori informazioni sui tipi di istanza disponibili per il tuo RStudio Server, consulta[RStudioServerPro tipo di istanza](rstudio-select-instance.md). 

 **Monitoraggio della fatturazione a livello di utente** 

 Per monitorare la fatturazione a livello di utente utilizzando i tag di allocazione dei costi, consulta [Utilizzo dei tag di allocazione dei costi](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html).

# Diagnostica i problemi e ottieni supporto
<a name="rstudio-troubleshooting"></a>

 Le seguenti sezioni descrivono come diagnosticare i problemi con RStudio Amazon SageMaker AI. Per ricevere assistenza RStudio su Amazon SageMaker AI, contatta l'assistenza Amazon SageMaker AI. Per assistenza sull'acquisto di una RStudio licenza o sulla modifica del numero di postazioni di licenza, contatta [sales@rstudio.com](mailto:sales@rstudio.com).

## Aggiorna la versione
<a name="rstudio-troubleshooting-upgrade"></a>

Se ricevi un avviso relativo a una mancata corrispondenza tra la versione della tua RStudio ServerPro app RSession e quella delle app, devi aggiornare la versione dell'app. RStudio ServerPro Per ulteriori informazioni, consulta [RStudio Controllo delle versioni](rstudio-version.md).

## Visualizza parametri e log
<a name="rstudio-troubleshooting-view"></a>

Puoi monitorare le prestazioni del tuo flusso di lavoro durante l'utilizzo RStudio su Amazon SageMaker AI. Visualizza i log di dati e le informazioni sulle metriche con la dashboard RStudio amministrativa o Amazon. CloudWatch 

### Visualizza i RStudio log dalla dashboard amministrativa RStudio
<a name="rstudio-troubleshooting-logs"></a>

 Puoi visualizzare le metriche e i log direttamente dalla dashboard amministrativa. RStudio 

1.  Accedi al tuo **dominio Amazon SageMaker AI**. 

1.  Accedi alla dashboard RStudio amministrativa seguendo la procedura riportata di seguito[Usa la dashboard amministrativa RStudio](rstudio-admin.md). 

1.  Seleziona la scheda **Log**. 

### Visualizza i tuoi RStudio log da Amazon CloudWatch Logs
<a name="rstudio-troubleshooting-logs-cw"></a>

 Amazon CloudWatch monitora AWS le tue risorse e le applicazioni su cui esegui AWS in tempo reale. Puoi usare Amazon CloudWatch per raccogliere e monitorare i parametri, che sono variabili che puoi misurare per le tue risorse e applicazioni. Per assicurarti che RStudio le tue app dispongano delle autorizzazioni per Amazon CloudWatch, devi includere le autorizzazioni descritte in. [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md) Non è necessario eseguire alcuna configurazione per raccogliere Amazon CloudWatch Logs. 

 I passaggi seguenti mostrano come visualizzare Amazon CloudWatch Logs per il tuo RSession. 

Questi log sono disponibili nel flusso di `/aws/sagemaker/studio` log proveniente dalla AWS CloudWatch console.

1. Apri la CloudWatch console all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Seleziona `Logs` dal lato sinistro. Dal menu a discesa, seleziona `Log groups`.

1. Sulla schermata `Log groups`, cerca `aws/sagemaker/studio`. Seleziona il gruppo di log

1. Sulla schermata `aws/sagemaker/studio``Log group`, vai alla scheda `Log streams`.

1. Per trovare i log per il tuo dominio, cerca `Log streams` utilizzando il seguente formato:

   ```
   <DomainId>/domain-shared/rstudioserverpro/default
   ```

# RStudio sulla guida per l'utente di Amazon SageMaker AI
<a name="rstudio-use"></a>

Con RStudio il supporto di Amazon SageMaker AI, puoi mettere in atto i tuoi flussi di lavoro di produzione e sfruttare le funzionalità di SageMaker intelligenza artificiale. I seguenti argomenti mostrano come avviare una RStudio sessione e completare i flussi di lavoro chiave. Per informazioni sulla gestione RStudio sull' SageMaker intelligenza artificiale, consulta[RStudio sulla gestione dell' SageMaker IA di Amazon](rstudio-manage.md). 

Per informazioni sulle fasi di onboarding per creare un dominio Amazon SageMaker AI con RStudio abilitato, consulta. [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md)  

Per informazioni sulle AWS regioni in cui RStudio è supportata l' SageMaker intelligenza artificiale, consulta. [Regioni e quote supportate](regions-quotas.md)  

**Topics**
+ [Collabora in RStudio](#rstudio-collaborate)
+ [Immagine Base R](#rstudio-base-image)
+ [RSession colocazione delle applicazioni](#rstudio-colocation)
+ [Avvia RSessions dal RStudio Launcher](rstudio-launcher.md)
+ [Sospendere il RSessions](rstudio-launcher-suspend.md)
+ [Elimina il tuo RSessions](rstudio-launcher-delete.md)
+ [RStudio Connect](rstudio-connect.md)
+ [Integrazione delle funzionalità di Amazon RStudio AI con Amazon SageMaker AI SageMaker](rstudio-sm-features.md)

## Collabora in RStudio
<a name="rstudio-collaborate"></a>

 Per condividere il tuo RStudio progetto, puoi connetterti RStudio al tuo repository Git. Per informazioni su come configurarlo, consulta [Controllo della versione con Git e SVN](https://support.rstudio.com/hc/en-us/articles/200532077-Version-Control-with-Git-and-SVN). 

 Nota: la condivisione di progetti e la collaborazione in tempo reale non sono attualmente supportate quando si utilizza RStudio su Amazon SageMaker AI.  

## Immagine Base R
<a name="rstudio-base-image"></a>

 All'avvio dell' RStudio istanza, l'immagine Base R funge da base dell'istanza. Questa immagine estende l'immagine [r-session-complete](https://hub.docker.com/r/rstudio/r-session-complete)Docker.  

 Questa immagine Base R include quanto segue: 
+  R v4.0 o versione successiva
+  Pacchetti Python `awscli`, `sagemaker` e `boto3` 
+  Pacchetto [reticolare](https://rstudio.github.io/reticulate/) per l'integrazione con R SDK 

## RSession colocazione delle applicazioni
<a name="rstudio-colocation"></a>

Gli utenti possono creare più RSession applicazioni sulla stessa istanza. Ogni tipo di istanza supporta fino a quattro applicazioni collocate. RSession Questo vale per ogni utente in modo indipendente. Ad esempio, se due utenti creano applicazioni, l' SageMaker IA assegna istanze sottostanti diverse a ciascun utente. Ciascuna di queste istanze supporterebbe 4 applicazioni. RSession 

I clienti pagano solo per il tipo di istanza utilizzato, indipendentemente dal numero di applicazioni Rsession in esecuzione sull'istanza. Se un utente ne crea una RSession con un tipo di istanza associato diverso, viene creata una nuova istanza sottostante.

# Avvia RSessions dal RStudio Launcher
<a name="rstudio-launcher"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

 Le seguenti sezioni mostrano come utilizzare il RStudio Launcher per l'avvio. RSessions Includono anche informazioni su come aprire il RStudio Launcher quando si utilizza RStudio su Amazon SageMaker AI.

## Apri Launcher RStudio
<a name="rstudio-launcher-open"></a>

Apri il RStudio programma di avvio utilizzando il seguente set di procedure che corrispondono al tuo ambiente.

### Apri RStudio Launcher dalla console Amazon SageMaker AI
<a name="rstudio-launcher-console"></a>

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1.  Dalla barra di navigazione a sinistra, seleziona **RStudio**.

1.  In **Inizia**, seleziona il dominio e il profilo utente da avviare.

1.  Scegli **Avvia RStudio**.

### Apri RStudio Launcher da Amazon Studio SageMaker
<a name="rstudio-launcher-studio"></a>

1. Passa a Studio seguendo la procedura indicata in [Avvia Amazon SageMaker Studio](studio-updated-launch.md).

1. In **Applicazioni**, seleziona **RStudio**.

1. Dalla pagina di RStudio destinazione, scegli **Avvia applicazione**.

### Apri RStudio Launcher dal AWS CLI
<a name="rstudio-launcher-cli"></a>

La procedura per aprire il RStudio Launcher utilizzando il AWS CLI varia a seconda del metodo utilizzato per gestire gli utenti. 

 **Centro identità IAM** 

1.  Usa il portale di AWS accesso per aprire il tuo dominio Amazon SageMaker AI. 

1.  Modifica il percorso dell'URL in “/rstudio/default” come segue. 

   ```
   #Studio URL
   https://<domain-id>.studio.<region>.sagemaker.aws/jupyter/default/lab
   
   #modified URL
   https://<domain-id>.studio.<region>.sagemaker.aws/rstudio/default
   ```

 **IAM** 

 Per aprire il RStudio Launcher dalla AWS CLI modalità IAM, completa la seguente procedura. 

1.  Crea un URL prefirmato utilizzando il comando seguente. 

   ```
   aws sagemaker create-presigned-domain-url --region <REGION> \
       --domain-id <DOMAIN-ID> \
       --user-profile-name <USER-PROFILE-NAME>
   ```

1.  Aggiungi *&redirect= RStudio ServerPro* all'URL generato. 

1.  Passa all'URL aggiornato. 

## Avvia RSessions
<a name="rstudio-launcher-launch"></a>

 Dopo aver avviato il RStudio Launcher, puoi crearne uno nuovo RSession. 

1.  Seleziona **Nuova sessione**. 

1.  Inserisci un **Nome sessione**. 

1.  Seleziona un tipo di istanza su cui RSession eseguire. L'impostazione predefinita di questa opzione è `ml.t3.medium`.

1.  Seleziona un'immagine da RSession utilizzare come kernel. 

1.  Seleziona Avvia sessione. 

1.  Dopo aver creato la sessione, puoi avviarla selezionando il nome.  
**Nota**  
Se ricevi un avviso che indica che c'è una mancata corrispondenza tra la tua versione RSession e quella RStudio ServerPro delle app, devi aggiornare la versione dell'app. RStudio ServerPro Per ulteriori informazioni, consulta [RStudio Controllo delle versioni](rstudio-version.md).

# Sospendere il RSessions
<a name="rstudio-launcher-suspend"></a>

La procedura seguente mostra come sospendere un messaggio RSession dal RStudio Launcher quando viene utilizzato su RStudio Amazon AI. SageMaker Per informazioni sull'accesso al RStudio Launcher, consulta. [Avvia RSessions dal RStudio Launcher](rstudio-launcher.md)

1. Dal RStudio Launcher, identifica RSession quello che desideri sospendere. 

1. Seleziona **Sospendi** per la sessione. 

# Elimina il tuo RSessions
<a name="rstudio-launcher-delete"></a>

La procedura seguente mostra come eliminare un file RSession dal RStudio Launcher quando lo si utilizza RStudio su Amazon SageMaker AI. Per informazioni sull'accesso al RStudio Launcher, consulta. [Avvia RSessions dal RStudio Launcher](rstudio-launcher.md)

1. Dal RStudio Launcher, identifica quello RSession che desideri eliminare. 

1. Seleziona **Esci** per la sessione. Si apre una nuova finestra **Esci dalla sessione**. 

1. Dalla finestra **Esci dalla sessione**, seleziona **Uscita forzata** per terminare tutti i processi secondari della sessione.

1. Seleziona **Esci dalla sessione** per confermare l'eliminazione della sessione.

# RStudio Connect
<a name="rstudio-connect"></a>

 RStudio Connect consente ai data scientist di pubblicare approfondimenti, dashboard e applicazioni Web da RStudio Amazon SageMaker AI. Per ulteriori informazioni, consulta [Host RStudio Connect e Package Manager per lo sviluppo di machine RStudio learning su Amazon SageMaker AI](https://aws.amazon.com/blogs/machine-learning/host-rstudio-connect-and-package-manager-for-ml-development-in-rstudio-on-amazon-sagemaker/).

 Per ulteriori informazioni su RStudio Connect, consulta la [RStudio Connect User Guide](https://docs.rstudio.com/connect/user/). 

# Integrazione delle funzionalità di Amazon RStudio AI con Amazon SageMaker AI SageMaker
<a name="rstudio-sm-features"></a>

 Uno dei vantaggi dell'utilizzo RStudio su Amazon SageMaker AI è l'integrazione delle funzionalità di Amazon SageMaker AI. Ciò include l'integrazione con Amazon SageMaker Studio Classic e Reticulate. Di seguito vengono fornite informazioni su queste integrazioni ed esempi per utilizzarle.

 **Usa Amazon SageMaker Studio Classic e RStudio Amazon SageMaker AI** 

 Amazon SageMaker Studio Classic e le tue RStudio istanze condividono lo stesso file system Amazon EFS. Ciò significa che è possibile accedere ai file importati e creati utilizzando Studio Classic utilizzando RStudio e viceversa. Ciò consente di lavorare sugli stessi file utilizzando Studio Classic e RStudio senza dover spostare i file tra i due. Per ulteriori informazioni su questo flusso di lavoro, consulta il blog [Announcing Fully Managed RStudio on Amazon SageMaker AI for Data Scientists](https://aws.amazon.com/blogs/aws/announcing-fully-managed-rstudio-on-amazon-sagemaker-for-data-scientists).

 **Usa Amazon SageMaker SDK con reticulate** 

Il pacchetto [reticulate](https://rstudio.github.io/reticulate) viene utilizzato come interfaccia R per Amazon [ SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable/) per effettuare chiamate API verso Amazon. SageMaker Il pacchetto reticulate traduce tra oggetti R e Python e Amazon SageMaker AI fornisce un ambiente di data science senza server per addestrare e distribuire modelli di Machine Learning (ML) su larga scala. Per informazioni generali sul pacchetto reticolare, consulta [ Interfaccia R per Python](https://rstudio.github.io/reticulate/).

Per un blog che descrive come utilizzare il pacchetto reticolato con Amazon SageMaker AI, consulta Using [R with Amazon](https://aws.amazon.com/blogs/machine-learning/using-r-with-amazon-sagemaker/) AI. SageMaker 

Negli esempi seguenti viene illustrato come utilizzare il pacchetto reticolare per casi d’uso specifici.
+ Per un taccuino che descrive come utilizzare reticulate per eseguire la trasformazione in batch per fare previsioni, consulta Batch Transform [Using R with Amazon](https://sagemaker-examples.readthedocs.io/en/latest/r_examples/r_batch_transform/r_xgboost_batch_transform.html) AI. SageMaker 
+ Per un notebook che descrive come utilizzare reticulate per eseguire l'ottimizzazione degli iperparametri e generare previsioni, consulta Ottimizzazione degli iperparametri [con R con](https://sagemaker-examples.readthedocs.io/en/latest/r_examples/r_xgboost_hpo_batch_transform/r_xgboost_hpo_batch_transform.html) Amazon AI. SageMaker 

# Editor di codice in Amazon SageMaker Studio
<a name="code-editor"></a>

L’Editor di codice, basato su [Code-OSS, Visual Studio Code - Open Source](https://github.com/microsoft/vscode#visual-studio-code---open-source-code---oss), ti aiuta a scrivere, testare, eseguire il debug ed eseguire il codice di analisi e machine learning. Code Editor si estende ed è completamente integrato con Amazon SageMaker Studio. Supporta anche le estensioni dell’ambiente di sviluppo integrato (IDE) disponibili in [Open VSX Registry](https://open-vsx.org/). La pagina seguente fornisce informazioni sull’Editor di codice e dettagli importanti per utilizzarlo.

Code Editor ha l'estensione [AWS Toolkit for VS](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html) Code preinstallata, che consente connessioni Servizi AWS a un generatore di codice generico basato sull'apprendimento automatico che fornisce consigli sul codice in tempo reale. [Amazon CodeWhisperer](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/codewhisperer.html) Per ulteriori informazioni sulle estensioni consulta [Connessioni ed estensioni dell’Editor di codice](code-editor-use-connections-and-extensions.md).

**Importante**  
A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio è ora denominata Amazon SageMaker Studio Classic. La sezione seguente è specifica per l’utilizzo dell’esperienza Studio aggiornata. Per informazioni sull’utilizzo dell’applicazione Studio Classic, consulta [Amazon SageMaker Studio Classic](studio.md).

Per avviare l’Editor di codice, crea uno spazio privato per l’Editor di codice. Lo spazio dell’Editor di codice utilizza una singola istanza Amazon Elastic Compute Cloud (Amazon EC2) per il calcolo e un singolo volume Amazon Elastic Block Store (Amazon EBS) per l’archiviazione. Tutti gli elementi presenti nel tuo spazio, ad esempio il codice, il profilo Git e le variabili di ambiente, vengono archiviati nello stesso volume Amazon EBS. Il volume ha 3000 IOPS e un throughput di 125. MBps L’amministratore configura le impostazioni predefinite di archiviazione Amazon EBS per il tuo spazio.

La dimensione dell’archiviazione predefinita è di 5 GB, ma l’amministratore può aumentare la quantità di spazio disponibile. Per ulteriori informazioni, consulta [Modifica della dimensione dell’archiviazione predefinita](code-editor-admin-storage-size.md).

La directory di lavoro degli utenti all’interno del volume di archiviazione è `/home/sagemaker-user`. Se si specifica la propria AWS KMS chiave per crittografare il volume, tutto ciò che si trova nella directory di lavoro viene crittografato utilizzando la chiave gestita dal cliente. Se non si specifica alcuna AWS KMS chiave, i dati all'interno `/home/sagemaker-user` vengono crittografati con una chiave AWS gestita. Indipendentemente dal fatto che venga specificata una AWS KMS chiave, tutti i dati al di fuori della directory di lavoro vengono crittografati con una chiave AWS gestita.

Puoi aumentare o ridurre verticalmente il calcolo modificando il tipo di istanza Amazon EC2 che esegue l’applicazione Editor di codice. Prima di modificare il tipo di istanza associato, è necessario arrestare lo spazio dell’Editor di codice. Per ulteriori informazioni, consulta [Istanze e immagini dell’applicazione Editor di codice](code-editor-use-instances.md).

L’amministratore potrebbe fornire una configurazione del ciclo di vita per personalizzare l’ambiente. Puoi specificare la configurazione del ciclo di vita quando crei lo spazio. Per ulteriori informazioni, consulta [Configurazioni del ciclo di vita dell’Editor di codice](code-editor-use-lifecycle-configurations.md).

Puoi anche portare il tuo sistema di archiviazione dei file se hai un volume Amazon EFS.

![\[La pagina di benvenuto dell’interfaccia utente dell’applicazione Editor di codice.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/code-editor/code-editor-home.png)


**Topics**
+ [Utilizzo dell’Editor di codice](code-editor-use.md)
+ [Guida per l’amministratore dell’Editor di codice](code-editor-admin.md)

# Utilizzo dell’Editor di codice
<a name="code-editor-use"></a>

Gli argomenti di questa sezione forniscono guide per l'uso di Code Editor, tra cui come avviare, aggiungere connessioni Servizi AWS, chiudere le risorse e altro ancora. Dopo aver creato uno spazio dell’Editor di codice, puoi accedere alla sessione dell’Editor di codice direttamente tramite il browser.

Nell’ambiente dell’Editor di codice, puoi: 
+ Accedere a tutti gli artefatti presenti nella tua home directory
+ Clona i tuoi GitHub repository e conferma le modifiche
+ Accedi all'SDK SageMaker Python

Puoi tornare a Studio per esaminare tutte gli asset creati nell’ambiente dell’Editor di codice, ad esempio esperimenti, pipeline o job di addestramento. 

**Topics**
+ [Controllo della versione dell’Editor di codice](code-editor-use-version.md)
+ [Istanze e immagini dell’applicazione Editor di codice](code-editor-use-instances.md)
+ [Avvio di un’applicazione Editor di codice in Studio](code-editor-use-studio.md)
+ [Avvia un'applicazione Code Editor utilizzando il AWS CLI](code-editor-launch-cli.md)
+ [Clonazione di un repository nell’Editor di codice](code-editor-use-clone-a-repository.md)
+ [Connessioni ed estensioni dell’Editor di codice](code-editor-use-connections-and-extensions.md)
+ [Chiusura delle risorse dell’Editor di codice](code-editor-use-log-out.md)

# Controllo della versione dell’Editor di codice
<a name="code-editor-use-version"></a>

Nella procedura seguente viene illustrato come controllare la versione della tua applicazione Editor di codice.

**Per controllare la versione dell’applicazione Editor di codice**

1. Avvia ed esegui uno spazio dell’Editor di codice e accedi all’interfaccia utente dell’applicazione Editor di codice. Per ulteriori informazioni, consulta [Avvio di un’applicazione Editor di codice in Studio](code-editor-use-studio.md).

1. Nell’angolo in alto a sinistra dell’interfaccia utente dell’Editor di codice, scegli il pulsante menu (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/code-editor/code-editor-menu-icon.png)). Quindi, scegli **Aiuto** e **Informazioni**.

# Istanze e immagini dell’applicazione Editor di codice
<a name="code-editor-use-instances"></a>

Solo alcune istanze sono compatibili con le applicazioni Editor di codice. Puoi scegliere il tipo di istanza compatibile con il tuo caso d’uso dal menu a discesa **Istanza**. 

Le istanze con la funzionalità di **avvio rapido** si avviano più velocemente delle altre istanze. Per ulteriori informazioni sui tipi di istanze con avvio rapido in Studio, consulta [Tipi di istanze disponibili per l'uso con i notebook Amazon SageMaker Studio Classic](notebooks-available-instance-types.md).

**Nota**  
Se utilizzi un tipo di istanza GPU per configurare l’applicazione Editor di codice, devi utilizzare anche un’immagine basata su GPU. L’interfaccia utente dello spazio dell’Editor di codice seleziona automaticamente un’immagine compatibile quando selezioni il tipo di istanza.

All’interno di uno spazio, i dati vengono archiviati in un volume Amazon EBS che persiste indipendentemente dalla durata dell’istanza. Non perderai i tuoi dati quando cambi istanza. Se lo spazio dell’Editor di codice è in stato `Running`, è necessario arrestarlo prima di modificare i tipi di istanze.

La tabella seguente elenca le immagini CPU e GPU ARNs di Code Editor disponibili per ogni regione.


|  Region  |  CPU  |  GPU  | 
| --- | --- | --- | 
|  us-east-1  | arn:aws:sagemaker:us-east-1:885854791233:image/sagemaker-distribution-cpu |  arn:aws:sagemaker:us-east-1:885854791233:image/sagemaker-distribution-gpu | 
|  us-east-2  | arn:aws:sagemaker:us-east-2:37914896644:image/sagemaker-distribution-cpu | arn:aws:sagemaker:us-east-2:37914896644:image/sagemaker-distribution-gpu | 
|  us-west-1  | arn:aws:sagemaker:us-west-1:053634841547:image/sagemaker-distribution-cpu | arn:aws:sagemaker:us-west-1:053634841547:image/sagemaker-distribution-gpu | 
|  us-west-2  | arn:aws:sagemaker:us-west-2:542918446943:image/sagemaker-distribution-cpu |  arn:aws:sagemaker:us-west-2:542918446943:image/sagemaker-distribution-gpu | 
|  af-south-1  | arn:aws:sagemaker:af-south-1:238384257742:image/sagemaker-distribution-cpu | arn:aws:sagemaker:af-south-1:238384257742:image/sagemaker-distribution-gpu | 
|  ap-east-1  | arn:aws:sagemaker:ap-east-1:523751269255:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-east-1:523751269255:image/sagemaker-distribution-gpu | 
|  ap-south-1  | arn:aws:sagemaker:ap-south-1:245090515133:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-south-1:245090515133:image/sagemaker-distribution-gpu | 
|  ap-northeast-2  | arn:aws:sagemaker:ap-northeast-2:064688005998:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-northeast-2:064688005998:image/sagemaker-distribution-gpu | 
|  ap-southeast-1  | arn:aws:sagemaker:ap-southeast-1:022667117163:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-southeast-1:022667117163:image/sagemaker-distribution-gpu | 
|  ap-southeast-2  | arn:aws:sagemaker:ap-southeast-2:648430277019:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-southeast-2:648430277019:image/sagemaker-distribution-gpu | 
|  ap-northeast-1  | arn:aws:sagemaker:ap-northeast-1:010972774902:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-northeast-1:010972774902:image/sagemaker-distribution-gpu | 
|  ca-central-1  | arn:aws:sagemaker:ca-central-1:481561238223:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ca-central-1:481561238223:image/sagemaker-distribution-gpu | 
|  eu-central-1  | arn:aws:sagemaker:eu-central-1:545423591354:image/sagemaker-distribution-cpu | arn:aws:sagemaker:eu-central-1:545423591354:image/sagemaker-distribution-gpu | 
|  eu-west-1  | arn:aws:sagemaker:eu-west-1:819792524951:image/sagemaker-distribution-cpu | arn:aws:sagemaker:eu-west-1:819792524951:image/sagemaker-distribution-gpu | 
|  eu-west-2  | arn:aws:sagemaker:eu-west-2:021081402939:image/sagemaker-distribution-cpu | arn:aws:sagemaker:eu-west-2:021081402939:image/sagemaker-distribution-gpu | 
|  eu-west-3  | arn:aws:sagemaker:eu-west-3:856416204555:image/sagemaker-distribution-cpu | arn:aws:sagemaker:eu-west-3:856416204555:image/sagemaker-distribution-gpu | 
|  eu-north-1  | arn:aws:sagemaker:eu-north-1:175620155138:image/sagemaker-distribution-cpu | arn:aws:sagemaker:eu-north-1:175620155138:image/sagemaker-distribution-gpu | 
|  eu-south-1  | arn:aws:sagemaker:eu-south-1:810671768855:image/sagemaker-distribution-cpu | arn:aws:sagemaker:eu-south-1:810671768855:image/sagemaker-distribution-gpu | 
|  sa-east-1  | arn:aws:sagemaker:sa-east-1:567556641782:image/sagemaker-distribution-cpu | arn:aws:sagemaker:sa-east-1:567556641782:image/sagemaker-distribution-gpu | 
|  ap-northeast-3  | arn:aws:sagemaker:ap-northeast-3:564864627153:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-northeast-3:564864627153:image/sagemaker-distribution-gpu | 
|  ap-southeast-3  | arn:aws:sagemaker:ap-southeast-3:370607712162:image/sagemaker-distribution-cpu | arn:aws:sagemaker:ap-southeast-3:370607712162:image/sagemaker-distribution-gpu | 
|  me-south-1  | arn:aws:sagemaker:me-south-1:523774347010:image/sagemaker-distribution-cpu | arn:aws:sagemaker:me-south-1:523774347010:image/sagemaker-distribution-gpu | 
|  me-central-1  | arn:aws:sagemaker:me-central-1:358593528301:image/sagemaker-distribution-cpu | arn:aws:sagemaker:me-central-1:358593528301:image/sagemaker-distribution-gpu | 
|  il-central-1  | arn:aws:sagemaker:il-central-1:080319125002:image/sagemaker-distribution-cpu | arn:aws:sagemaker:il-central-1:080319125002:image/sagemaker-distribution-gpu | 
|  cn-north-1  | arn:aws:sagemaker:cn-north-1:674439102856:image/sagemaker-distribution-cpu |  arn:aws:sagemaker:cn-north-1:674439102856:image/sagemaker-distribution-gpu  | 
|  cn-northwest-1  | arn:aws:sagemaker:cn-northwest-1:651871951035:image/sagemaker-distribution-cpu |  arn:aws:sagemaker:cn-northwest-1:651871951035:image/sagemaker-distribution-gpu  | 
|  us-gov-west-1  | arn:aws:sagemaker:us-gov-west-1:300992924816:image/sagemaker-distribution-cpu | arn:aws:sagemaker:us-gov-west-1:300992924816:image/sagemaker-distribution-gpu | 
|  us-gov-east-1  | arn:aws:sagemaker:us-gov-east-1:300993876623:image/sagemaker-distribution-cpu | arn:aws:sagemaker:us-gov-east-1:300993876623:image/sagemaker-distribution-gpu | 

Se si verificano limitazioni dell’istanza, contatta l’amministratore. Per ottenere più spazio di archiviazione e calcolo per un utente, gli amministratori possono richiedere un aumento delle quote di AWS un utente. Per ulteriori informazioni sulla richiesta di un aumento delle quote, consulta [Endpoint e quote Amazon SageMaker AI](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html).

# Avvio di un’applicazione Editor di codice in Studio
<a name="code-editor-use-studio"></a>

Per configurare e accedere all’ambiente di sviluppo integrato dell’Editor di codice tramite Studio, è necessario creare uno spazio dell’Editor di codice. Per ulteriori informazioni sugli spazi in Studio, consulta [Spazi Amazon SageMaker Studio](studio-updated-spaces.md).

![\[Il pulsante dell’applicazione Editor di codice e il riquadro della panoramica nell’interfaccia utente di Studio.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/code-editor/code-editor-studio-home.png)


La procedura seguente descrive come creare ed eseguire uno spazio dell’Editor di codice.

**Per creare ed eseguire uno spazio dell’Editor di codice**

1. Avvia l’esperienza Studio aggiornata. Per ulteriori informazioni, consulta [Launch Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html).

1. Esegui una delle seguenti operazioni:
   + All'interno dell'interfaccia utente di Amazon SageMaker Studio aggiornata, seleziona **Code Editor** dal menu **Applicazioni**.
   + All'interno dell'interfaccia utente aggiornata di Amazon SageMaker Studio, scegli **Visualizza gli spazi di Code Editor** nella sezione **Panoramica** della home page di Studio.

1. Nell’angolo in alto a destra della pagina di destinazione dell’Editor di codice, scegli **Crea spazio dell’Editor di codice**.

1. Immetti un nome per lo spazio dell’Editor di codice. Il nome deve contenere da 1 a 62 caratteri e deve includere solo lettere, numeri e trattini.

1. Scegli **Crea spazio**.

1. Dopo aver creato lo spazio, puoi impostare alcune opzioni prima utilizzarlo:
   + Puoi modificare le impostazioni **Archiviazione (GB)**, **Configurazione del ciclo di vita** o **Collega file system EFS personalizzato**. Le opzioni per queste impostazioni sono disponibili in base alle specifiche dell’amministratore.
   + Dal menu a discesa **Istanza**, puoi scegliere il tipo di istanza più compatibile con il tuo caso d’uso. Dal menu a discesa **Immagine**, puoi scegliere un'immagine di SageMaker distribuzione o un'immagine personalizzata fornita dal tuo amministratore.
**Nota**  
Il passaggio da un’immagine di distribuzione di SageMaker all’altra modifica la versione sottostante dell’Editor di codice che viene utilizzata, il che può causare incompatibilità dovute al caching del browser. È necessario cancellare la cache del browser quando si passa da un’immagine all’altra.

     Se utilizzi un tipo di istanza GPU per configurare l’applicazione Editor di codice, devi utilizzare anche un’immagine basata su GPU. All’interno di uno spazio, i dati vengono archiviati in un volume Amazon EBS che persiste indipendentemente dalla durata dell’istanza. Non perderai i tuoi dati quando cambi istanza.
**Importante**  
Le policy IAM personalizzate che consentono agli utenti di Studio di creare spazi devono concedere anche le autorizzazioni per elencare le immagini (`sagemaker: ListImage`) per poter visualizzare le immagini personalizzate. Per aggiungere l’autorizzazione, consulta [Add or remove identity permissions](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) in *AWS Identity and Access Management* User Guide.   
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che concedono le autorizzazioni per creare risorse SageMaker AI includono già le autorizzazioni per elencare le immagini durante la creazione di tali risorse.
**Nota**  
Per aggiornare le impostazioni dello spazio, devi prima arrestarlo. Se il Code Editor utilizza un'istanza con archivi di NVMe istanze, tutti i dati archiviati nell' NVMe archivio vengono eliminati quando lo spazio viene interrotto.

1. Dopo aver aggiornato le impostazioni, scegli **Esegui spazio** nella pagina dei dettagli dello spazio.

1. Quando lo stato dello spazio è `Running`, scegli **Apri Editor di codice** per accedere alla sessione dell’Editor di codice. 

![\[La pagina dei dettagli dello spazio per un’applicazione Editor di codice nell’interfaccia utente di Studio.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/code-editor/code-editor-open.png)


# Avvia un'applicazione Code Editor utilizzando il AWS CLI
<a name="code-editor-launch-cli"></a>

Per configurare e accedere all’ambiente di sviluppo integrato dell’Editor di codice tramite la AWS Command Line Interface (AWS CLI), è necessario creare uno spazio dell’Editor di codice. Assicurati di seguire le istruzioni in [Completamento dei prerequisiti](code-editor-admin-prerequisites.md) prima di procedere. Utilizza la procedura seguente per creare ed eseguire uno spazio dell’Editor di codice.

**Per creare ed eseguire uno spazio dell’Editor di codice**

1. Accedi a uno spazio utilizzando AWS Identity and Access Management (IAM) o AWS IAM Identity Center l'autenticazione. Per ulteriori informazioni sull'accesso agli spazi utilizzando il AWS CLI, consulta *Accedere agli spazi utilizzando l' AWS Command Line Interface*in[Spazi Amazon SageMaker Studio](studio-updated-spaces.md). 

1. Crea un’applicazione e specifica `CodeEditor` come `app-type` utilizzando il comando seguente.

   Se utilizzi un tipo di istanza GPU per creare l’applicazione Editor di codice, devi utilizzare anche un’immagine basata su GPU.

   ```
   aws sagemaker create-app \
   --domain-id domain-id \
   --space-name space-name \
   --app-type CodeEditor \
   --app-name default \
   --resource-spec "SageMakerImageArn=arn:aws:sagemaker:region:account-id:image/sagemaker-distribution-cpu"
   ```

   Per ulteriori informazioni sull'immagine disponibile nell'editor di codice ARNs, vedere[Istanze e immagini dell’applicazione Editor di codice](code-editor-use-instances.md).

1. Una volta che l’applicazione Editor di codice è in servizio, avvia l’applicazione con un URL prefirmato. Puoi utilizzare l’API `describe-app` per verificare se l’applicazione è in servizio. Utilizza l’API `create-presigned-domain-url` per creare un URL prefirmato:

   ```
   aws sagemaker create-presigned-domain-url \
   --domain-id domain-id \
   --space-name space-name \
   --user-profile-name user-profile-name \
   --session-expiration-duration-in-seconds 43200 \
   --landing-uri app:CodeEditor:
   ```

1. Apri l’URL generato per iniziare a lavorare nella tua applicazione Editor di codice.

# Clonazione di un repository nell’Editor di codice
<a name="code-editor-use-clone-a-repository"></a>

Puoi navigare tra le cartelle e clonare un repository nella finestra **Esploratore** dell’interfaccia utente dell’applicazione Editor di codice. 

Per clonare un repository, procedi come descritto di seguito:

**Per clonare un repository**

1. Apri l’applicazione Editor di codice nel browser e scegli il pulsante **Esplorazione** (![\[Icon representing multiple documents or pages stacked on top of each other.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/code-editor/code-editor-exploration-icon.png)) nel riquadro di navigazione a sinistra.

1. Scegli **Clona repository** nella finestra **Esploratore**. Quindi, fornisci un URL del repository o scegli un’origine del repository nel prompt.

1. Scegli una cartella in cui clonare il repository. La cartella predefinita dell’Editor di codice è `/home/sagemaker-user/`. La clonazione del repository potrebbe richiedere del tempo.

1. Per aprire il repository clonato, scegli **Apri in una nuova finestra** o **Apri**.

1.  Per tornare alla home page dell’interfaccia utente dell’applicazione Editor di codice, scegli **Annulla**.

1. All’interno del repository viene visualizzato un messaggio che chiede se ritenere attendibili gli autori dei file nel nuovo repository. Sono disponibili due opzioni:

   1. Per considerare attendibile la cartella e abilitare tutte le funzionalità, scegli **Sì, mi fido degli autori**.

   1. Per sfogliare il contenuto del repository in *modalità limitata*, scegli **No, non mi fido degli autori**.

      In modalità limitata, le attività non possono essere eseguite, il debug è disabilitato, le impostazioni dello spazio di lavoro non vengono applicate e le estensioni hanno funzionalità limitate.

      Per uscire dalla modalità con limitazioni, imposta come attendibili gli autori di tutti i file nella cartella corrente o nella cartella principale e abilita tutte le funzionalità, scegli **Gestisci** nel banner della **modalità con limitazioni**.

# Connessioni ed estensioni dell’Editor di codice
<a name="code-editor-use-connections-and-extensions"></a>

Code Editor supporta connessioni IDE e Servizi AWS le estensioni disponibili nel registro [Open VSX](https://open-vsx.org/). 

## Connessioni a AWS
<a name="code-editor-use-connections"></a>

Gli ambienti dell’Editor di codice sono integrati con il [Kit di strumenti AWS per VS Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html) per aggiungere connessioni ai Servizi AWS. Per iniziare con le connessioni a Servizi AWS, devi disporre di credenziali AWS Identity and Access Management (IAM) valide. Per altre informazioni, vedi [Autenticazione e accesso per il AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/establish-credentials.html).

All’interno dell’ambiente dell’Editor di codice, puoi aggiungere connessioni a: 
+  [AWS Explorer](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/aws-explorer.html): visualizza, modifica e distribuisci AWS risorse in Amazon S3 e altro CloudWatch ancora.

  L'accesso a determinate funzionalità all'interno di AWS Explorer richiede determinate AWS autorizzazioni. Per altre informazioni, vedi [Autenticazione e accesso per il AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/establish-credentials.html).
+ [Amazon CodeWhisperer](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/codewhisperer.html): crea applicazioni più velocemente con i suggerimenti di codice basati sull’IA. 

  Per utilizzarlo Amazon CodeWhisperer con Code Editor, devi aggiungere le seguenti autorizzazioni al tuo ruolo di esecuzione SageMaker AI.

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

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Sid": "CodeWhispererPermissions",
        "Effect": "Allow",
        "Action": ["codewhisperer:GenerateRecommendations"],
        "Resource": "*"
      }
    ]
  }
  ```

------

  Per ulteriori informazioni, consulta [Creating IAM policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) e [Adding and removing IAM identity permissions](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) nella *Guida per l’utente di IAM*.

## Estensioni
<a name="code-editor-use-extensions"></a>

Editor di codice supporta le estensioni IDE disponibili in [Open VSX Registry](https://open-vsx.org/). 

Per iniziare a utilizzare le estensioni nel tuo ambiente dell’Editor di codice, scegli l’icona **Estensioni** (![\[Icon showing two overlapping squares representing multiple windows or instances.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/code-editor/code-editor-extensions-icon.png)) nel riquadro di navigazione a sinistra. Qui puoi configurare le connessioni ad AWS installando Kit di strumenti AWS. Per ulteriori informazioni, consultare [Installing the AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setup-toolkit.html).

Nella barra di ricerca, puoi cercare direttamente estensioni aggiuntive tramite [Open VSX Registry](https://open-vsx.org/), come Kit di strumenti AWS, Jupyter, Python e altre.

# Chiusura delle risorse dell’Editor di codice
<a name="code-editor-use-log-out"></a>

Quando hai finito di utilizzare uno spazio dell’Editor di codice, puoi arrestarlo con Studio. In questo modo, interrompi gli addebiti per lo spazio. 

In alternativa, puoi eliminare le risorse inutilizzate dell’Editor di codice con la AWS CLI.

## Arresto dello spazio dell’Editor di codice con Studio
<a name="code-editor-use-log-out-stop-space"></a>

Per arrestare lo spazio dell’Editor di codice in Studio, procedi come descritto di seguito:

**Per arrestare lo spazio dell’Editor di codice in Studio**

1. Torna alla pagina di destinazione dell’Editor di codice con uno dei metodi seguenti: 

   1. Nella barra di navigazione nell’angolo in alto a sinistra, scegli **Editor di codice**.

   1. In alternativa, nel riquadro di navigazione a sinistra, scegli **Editor di codice** nel menu **Applicazioni**.

1. Trova il nome dello spazio dell’Editor di codice che hai creato. Se lo stato del tuo spazio è **In esecuzione**, scegli **Arresta** nella colonna **Azione**. Puoi anche arrestare lo spazio direttamente nella pagina dei dettagli dello spazio scegliendo **Interrompi spazio**. L’arresto dello spazio potrebbe richiedere del tempo.

![\[Una pagina dei dettagli dello spazio nell’interfaccia utente dell’applicazione Editor di codice.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/code-editor/code-editor-stop-space.png)


Le risorse aggiuntive come endpoint SageMaker AI, cluster Amazon EMR (Amazon EMR) e Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) creati da Studio non vengono eliminate automaticamente alla chiusura dell'istanza spaziale. Per evitare che vengano addebitati costi relativi alle risorse, elimina le eventuali risorse aggiuntive. Per ulteriori informazioni, consulta [Eliminazione delle risorse inutilizzate](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-jl-admin-guide-clean-up.html).

## Elimina le risorse di Code Editor utilizzando AWS CLI
<a name="code-editor-use-log-out-shut-down-resources"></a>

È possibile eliminare l'applicazione e lo spazio di Code Editor utilizzando AWS Command Line Interface (AWS CLI).
+ [DeleteApp](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteApp.html)
+ [DeleteSpace](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteSpace.html)

# Guida per l’amministratore dell’Editor di codice
<a name="code-editor-admin"></a>

Puoi utilizzare l’Editor di codice con un’istanza on demand per tempi di avvio più rapidi e un’archiviazione configurabile. Puoi avviare un'applicazione Code Editor tramite Amazon SageMaker Studio o tramite AWS CLI. Puoi anche modificare le impostazioni predefinite dell’Editor di codice all’interno della console del dominio. Per ulteriori informazioni, consulta [Modifica delle impostazioni del dominio](domain-edit.md). Gli argomenti seguenti illustrano in che modo gli amministratori possono configurare l’Editor di codice, basato su Code-OSS, Visual Studio Code - Open Source, modificando le opzioni di archiviazione, personalizzando gli ambienti e gestendo l’accesso degli utenti. Inoltre, forniscono informazioni sui prerequisiti necessari per utilizzare l’Editor di codice.

**Topics**
+ [Completamento dei prerequisiti](code-editor-admin-prerequisites.md)
+ [Concessione dell’accesso a spazi privati per i tuoi utenti](code-editor-admin-user-access.md)
+ [Modifica della dimensione dell’archiviazione predefinita](code-editor-admin-storage-size.md)
+ [Configurazioni del ciclo di vita dell’Editor di codice](code-editor-use-lifecycle-configurations.md)
+ [Immagini personalizzate](code-editor-custom-images.md)

# Completamento dei prerequisiti
<a name="code-editor-admin-prerequisites"></a>

Per utilizzare l’Editor di codice, basato su Code-OSS, Visual Studio Code - Open Source, è necessario completare i prerequisiti seguenti.

1. Devi prima effettuare l'onboarding nel dominio Amazon SageMaker AI e creare un profilo utente. Per ulteriori informazioni, consulta [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md).

1. Se interagisci con la tua applicazione Code Editor utilizzando il AWS CLI, devi inoltre completare i seguenti prerequisiti.

   1.  AWS CLI Aggiornate il file seguendo la procedura descritta in [Installazione della versione corrente AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled). 

   1.  Dal computer locale, esegui `aws configure` e inserisci le tue credenziali AWS . Per informazioni sulle AWS credenziali, consulta [Comprendere e ottenere le AWS credenziali](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 

1. (Facoltativo) Per ottenere più spazio di archiviazione ed elaborazione per la tua applicazione, puoi richiedere un aumento delle quote. AWS Per ulteriori informazioni sulla richiesta di un aumento delle quote, consulta [Endpoint e quote Amazon SageMaker AI](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html).

# Concessione dell’accesso a spazi privati per i tuoi utenti
<a name="code-editor-admin-user-access"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Questa sezione fornisce una policy che concede agli utenti l’accesso a spazi privati. È anche possibile utilizzare la policy per limitare gli spazi privati e le relative applicazioni per il proprietario associato al profilo utente. 

Devi fornire ai tuoi utenti le autorizzazioni per quanto segue:
+ Spazi privati
+ Il profilo utente richiesto per l’accesso agli spazi privati

Per fornire le autorizzazioni, collega la policy seguente ai ruoli IAM dei tuoi utenti.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {

      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateApp",
        "sagemaker:DeleteApp"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:app/*",
      "Condition": {
        "Null": {
          "sagemaker:OwnerUserProfileArn": "true"
        }
      }
    },
    {
      "Sid": "SMStudioCreatePresignedDomainUrlForUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreatePresignedDomainUrl"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:user-profile/domain-id/user-profile-name"
    },
    {
      "Sid": "SMStudioAppPermissionsListAndDescribe",
      "Effect": "Allow",
      "Action": [
        "sagemaker:ListApps",
        "sagemaker:ListDomains",
        "sagemaker:ListUserProfiles",
        "sagemaker:ListSpaces",
        "sagemaker:DescribeApp",
        "sagemaker:DescribeDomain",
        "sagemaker:DescribeUserProfile",
        "sagemaker:DescribeSpace"
      ],
      "Resource": "*"
    },
    {
      "Sid": "SMStudioAppPermissionsTagOnCreate",
      "Effect": "Allow",
      "Action": [
        "sagemaker:AddTags"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:*/*",
      "Condition": {
        "Null": {
          "sagemaker:TaggingAction": "false"
        }
      }
    },
    {
      "Sid": "SMStudioRestrictSharedSpacesWithoutOwners",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateSpace",
        "sagemaker:UpdateSpace",
        "sagemaker:DeleteSpace"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/*",
      "Condition": {
        "Null": {
          "sagemaker:OwnerUserProfileArn": "true"
        }
      }
    },
    {
      "Sid": "SMStudioRestrictSpacesToOwnerUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateSpace",
        "sagemaker:UpdateSpace",
        "sagemaker:DeleteSpace"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/*",
      "Condition": {
        "ArnLike": {
        "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:us-east-1:111122223333:user-profile/domain-id/user-profile-name"
        },
        "StringEquals": {
          "sagemaker:SpaceSharingType": [
            "Private",
            "Shared"
          ]
        }
      }
    },
    {
      "Sid": "SMStudioRestrictCreatePrivateSpaceAppsToOwnerUserProfile",
      "Effect": "Allow",
      "Action": [
        "sagemaker:CreateApp",
        "sagemaker:DeleteApp"
      ],
      "Resource": "arn:aws:sagemaker:us-east-1:111122223333:app/domain-id/*",
      "Condition": {
        "ArnLike": {
        "sagemaker:OwnerUserProfileArn": "arn:aws:sagemaker:us-east-1:111122223333:user-profile/domain-id/user-profile-name"
        },
        "StringEquals": {
          "sagemaker:SpaceSharingType": [
            "Private"
          ]
        }
      }
    }
  ]
}
```

------

# Modifica della dimensione dell’archiviazione predefinita
<a name="code-editor-admin-storage-size"></a>

Puoi modificare le impostazioni di archiviazione predefinite dei tuoi utenti. Puoi anche modificare le impostazioni di archiviazione predefinite in base ai requisiti organizzativi e alle esigenze degli utenti.

Per modificare la dimensione dell’archiviazione per gli utenti, procedi come descritto di seguito:

1. Aggiorna le impostazioni di archiviazione di Amazon EBS nel dominio. 

1. Creare un profilo utente e specificare le impostazioni di archiviazione al suo interno.

Utilizzate il seguente comando AWS Command Line Interface (AWS CLI) per aggiornare il dominio.

```
aws --region $REGION sagemaker update-domain \
--domain-id $DOMAIN_ID \
--default-user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":5,
            "MaximumEbsVolumeSizeInGb":100
        }
    }
}'
```

Utilizzate il AWS CLI comando seguente per creare il profilo utente e specificare le impostazioni di archiviazione predefinite.

```
aws --region $REGION sagemaker create-user-profile \
--domain-id $DOMAIN_ID \
--user-profile-name $USER_PROFILE_NAME \
--user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":5,
            "MaximumEbsVolumeSizeInGb":100
        }
    }
}'
```

Utilizzare i seguenti AWS CLI comandi per aggiornare le impostazioni di archiviazione predefinite nel profilo utente.

```
aws --region $REGION sagemaker update-user-profile \
--domain-id $DOMAIN_ID \
--user-profile-name $USER_PROFILE_NAME \
--user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":25,
            "MaximumEbsVolumeSizeInGb":200
        }
    }
}'
```

# Configurazioni del ciclo di vita dell’Editor di codice
<a name="code-editor-use-lifecycle-configurations"></a>

Puoi utilizzare le configurazioni del ciclo di vita dell’Editor di codice per automatizzare la personalizzazione del tuo ambiente Studio. Questa personalizzazione include l’installazione di pacchetti personalizzati, la configurazione delle estensioni, il precaricamento di set di dati e la configurazione di repository di codice sorgente.

Le seguenti istruzioni utilizzano il AWS Command Line Interface (AWS CLI) per creare, collegare, eseguire il debug e scollegare configurazioni del ciclo di vita per il tipo di applicazione: `CodeEditor`
+ [Creazione e collegamento delle configurazioni del ciclo di vita in Studio](code-editor-use-lifecycle-configurations-studio-create.md)
+ [Esecuzione del debug delle configurazioni del ciclo di vita in Studio](code-editor-use-lifecycle-configurations-studio-debug.md)
+ [Scollegamento delle configurazioni del ciclo di vita in Studio](code-editor-use-lifecycle-configurations-studio-detach.md)

# Creazione e collegamento delle configurazioni del ciclo di vita in Studio
<a name="code-editor-use-lifecycle-configurations-studio-create"></a>

La sezione seguente fornisce AWS CLI i comandi per creare una configurazione del ciclo di vita, allegare una configurazione del ciclo di vita quando si crea un nuovo profilo utente e allegare una configurazione del ciclo di vita durante l'aggiornamento di un profilo utente. Per i prerequisiti e le fasi generali sulla creazione e il collegamento di configurazioni del ciclo di vita in Studio, consulta [Errore di configurazione del ciclo di vita](jl-lcc-create.md). 

Quando crei la configurazione del ciclo di vita di Studio con il comando `create-studio-lifecycle-config`, assicurati di specificare che `studio-lifecycle-config-app-type` è `CodeEditor`. L’esempio seguente mostra come creare una nuova configurazione del ciclo di vita di Studio per la tua applicazione Editor di codice.

```
aws sagemaker create-studio-lifecycle-config \
--studio-lifecycle-config-name my-code-editor-lcc \
--studio-lifecycle-config-content $LCC_CONTENT \
--studio-lifecycle-config-app-type CodeEditor
```

Prendi nota dell’ARN (nome della risorsa Amazon) della configurazione del ciclo di vita appena creata che viene restitutio. Quando colleghi una configurazione del ciclo di vita, inserisci questo ARN nell’elenco di `LifecycleConfigArns` di `CodeEditorAppSettings`. 

Puoi collegare una configurazione del ciclo di vita quando crei un profilo utente o un dominio. Nell'esempio seguente viene illustrato come creare un nuovo profilo utente con la configurazione del ciclo di vita collegata. Puoi anche creare un nuovo dominio con una configurazione del ciclo di vita collegata utilizzando il comando [create-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/opensearch/create-domain.html).

```
# Create a new UserProfile
aws sagemaker create-user-profile \
--domain-id domain-id \
--user-profile-name user-profile-name \
--user-settings '{
"CodeEditorAppSettings": {
  "LifecycleConfigArns":
    [lifecycle-configuration-arn-list]
  }
}'
```

In alternativa, puoi collegare una configurazione del ciclo di vita quando aggiorni un profilo utente o un dominio. Nell’esempio seguente viene illustrato come aggiornare un profilo utente con la configurazione del ciclo di vita collegata. Puoi anche aggiornare un nuovo dominio con una configurazione del ciclo di vita collegata utilizzando il comando [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html).

```
# Update a UserProfile
aws sagemaker update-user-profile \
--domain-id domain-id \
--user-profile-name user-profile-name \
--user-settings '{
"CodeEditorAppSettings": {
  "LifecycleConfigArns":
    [lifecycle-configuration-arn-list]
  }
}'
```

# Esecuzione del debug delle configurazioni del ciclo di vita in Studio
<a name="code-editor-use-lifecycle-configurations-studio-debug"></a>

Per eseguire il debug degli script di configurazione del ciclo di vita per l’Editor di codice, è necessario utilizzare Studio. Per istruzioni sul debug delle configurazioni del ciclo di vita in Studio, consulta [Esecuzione del debug delle configurazioni del ciclo di vita](jl-lcc-debug.md). Per trovare i log di un’applicazione specifica, cerca nei flussi di log utilizzando il seguente formato:

```
domain-id/space-name/CodeEditor/default/LifecycleConfigOnStart
```

# Scollegamento delle configurazioni del ciclo di vita in Studio
<a name="code-editor-use-lifecycle-configurations-studio-detach"></a>

Per scollegare le configurazioni del ciclo di vita per l’Editor di codice, puoi utilizzare la console o la AWS CLI. Per le fasi su come scollegare le configurazioni del ciclo di vita dalla console Studio, consulta [Scollegamento delle configurazioni del ciclo di vita](jl-lcc-delete.md).

Per scollegare una configurazione del ciclo di vita utilizzando il AWS CLI, rimuovi la configurazione del ciclo di vita desiderata dall'elenco delle configurazioni del ciclo di vita collegate alla risorsa. Quindi, passa l’elenco come parte del comando:
+ [update-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-user-profile.html)
+ [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html)

Ad esempio, il comando seguente rimuove tutte le configurazioni del ciclo di vita per l’applicazione Editor di codice collegate al dominio.

```
aws sagemaker update-domain --domain-id domain-id \
--default-user-settings '{
"CodeEditorAppSettings": {
  "LifecycleConfigArns":
    []
  }
}'
```

# Creazione di una configurazione del ciclo di vita per clonare i repository in un’applicazione Editor di codice
<a name="code-editor-use-lifecycle-configurations-repositories"></a>

Questa sezione mostra come clonare un repository e creare un’applicazione Editor di codice con la configurazione del ciclo di vita collegata.

1. Dal computer locale, crea un file denominato `my-script.sh` con il contenuto seguente:

   ```
   #!/bin/bash
   set -eux
   ```

1. Clona il repository desiderato nello script di configurazione del ciclo di vita. 

   ```
   export REPOSITORY_URL="https://github.com/aws-samples/sagemaker-studio-lifecycle-config-examples.git"
   git -C /home/sagemaker-user clone $REPOSITORY_URL
   ```

1. Dopo aver finalizzato lo script, crea e collega la configurazione del ciclo di vita. Per ulteriori informazioni, consulta [Creazione e collegamento delle configurazioni del ciclo di vita in Studio](code-editor-use-lifecycle-configurations-studio-create.md).

1. Crea la tua applicazione Editor di codice con la configurazione del ciclo di vita collegata.

   ```
   aws sagemaker create-app \
   --domain-id domain-id \
   --space-name space-name \
   --app-type CodeEditor \
   --app-name default \
   --resource-spec "SageMakerImageArn=arn:aws:sagemaker:region:image-account-id:image/sagemaker-distribution-cpu,LifecycleConfigArn=arn:aws:sagemaker:region:user-account-id:studio-lifecycle-config/my-code-editor-lcc,InstanceType=ml.t3.large"
   ```

   Per ulteriori informazioni sull'immagine disponibile del Code Editor, vedere. ARNs [Istanze e immagini dell’applicazione Editor di codice](code-editor-use-instances.md)

# Creazione di una configurazione del ciclo di vita per installare le estensioni dell’Editor di codice
<a name="code-editor-use-lifecycle-configurations-extensions"></a>

Questa sezione mostra come creare una configurazione del ciclo di vita per installare le estensioni da [Open VSX Registry](https://open-vsx.org/) nell’ambiente dell’Editor di codice.

1. Dal computer locale, crea un file denominato `my-script.sh` con il contenuto seguente:

   ```
   #!/bin/bash
   set -eux
   ```

1. All’interno dello script, installa l’estensione [Open VSX Registry](https://open-vsx.org/) di tua scelta:

   ```
   sagemaker-code-editor --install-extension AmazonEMR.emr-tools --extensions-dir /opt/amazon/sagemaker/sagemaker-code-editor-server-data/extensions
   ```

   Puoi recuperare il nome dell’estensione dall’URL dell’estensione in [Open VSX Registry](https://open-vsx.org/). Il nome dell’estensione da utilizzare nel comando `sagemaker-code-editor` deve contenere tutto il testo che segue `https://open-vsx.org/extension/` nell’URL. Sostituisci tutte le istanze di una barra (`/`) con un punto (`.`). Ad esempio, `AmazonEMR/emr-tools` dovrebbe essere `AmazonEMR.emr-tools`.  
![\[La pagina delle estensioni di Amazon EMR in Open VSX Registry.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/code-editor/code-editor-emr-extension.png)

1. Dopo aver finalizzato lo script, crea e collega la configurazione del ciclo di vita. Per ulteriori informazioni, consulta [Creazione e collegamento delle configurazioni del ciclo di vita in Studio](code-editor-use-lifecycle-configurations-studio-create.md).

1. Crea la tua applicazione Editor di codice con la configurazione del ciclo di vita collegata:

   ```
   aws sagemaker create-app \
   --domain-id domain-id \
   --space-name space-name \
   --app-type CodeEditor \
   --app-name default \
   --resource-spec "SageMakerImageArn=arn:aws:sagemaker:region:image-account-id:image/sagemaker-distribution-cpu,LifecycleConfigArn=arn:aws:sagemaker:region:user-account-id:studio-lifecycle-config/my-code-editor-lcc,InstanceType=ml.t3.large"
   ```

   Per ulteriori informazioni sull'immagine disponibile nell'editor di codice ARNs, vedere[Istanze e immagini dell’applicazione Editor di codice](code-editor-use-instances.md). Per ulteriori informazioni su connessioni ed estensioni, consulta [Connessioni ed estensioni dell’Editor di codice](code-editor-use-connections-and-extensions.md).

# Immagini personalizzate
<a name="code-editor-custom-images"></a>

Se hai bisogno di funzionalità diverse da quelle fornite dalla SageMaker distribuzione, puoi aggiungere la tua immagine con le estensioni e i pacchetti personalizzati. Puoi anche utilizzarla per personalizzare l’interfaccia utente dell’Editor di codice in base alle tue esigenze di branding o conformità.

La pagina seguente fornirà informazioni e modelli specifici di Code Editor per creare immagini SageMaker AI personalizzate. Questo ha lo scopo di integrare le informazioni e le istruzioni di Amazon SageMaker Studio su come creare la propria immagine SageMaker AI e portare la propria immagine in Studio. Per informazioni sulle immagini Amazon SageMaker AI personalizzate e su come portare la tua immagine in Studio, consulta[Bring Your Own Image (BYOI)](studio-updated-byoi.md). 

**Topics**
+ [Controllo dell’integrità e URL per le applicazioni](#code-editor-custom-images-app-healthcheck)
+ [Esempi di Dockerfile](#code-editor-custom-images-dockerfile-templates)

## Controllo dell’integrità e URL per le applicazioni
<a name="code-editor-custom-images-app-healthcheck"></a>
+ `Base URL`: l’URL di base per l’applicazione BYOI deve essere `CodeEditor/default`. È possibile avere una sola applicazione e deve avere sempre il nome `default`.
+ Endpoint Health check: è necessario ospitare il server Code Editor sulla porta 0.0.0.0 8888 affinché SageMaker AI lo rilevi.
+  Autenticazione: è necessario eseguire l'autenticazione `sagemaker-code-editor` all'`--without-connection-token`apertura per consentire all' SageMaker IA di autenticare gli utenti.

**Nota**  
Se utilizzi Amazon SageMaker Distribution come immagine di base, questi requisiti sono già soddisfatti come parte dello `entrypoint-code-editor` script incluso.

## Esempi di Dockerfile
<a name="code-editor-custom-images-dockerfile-templates"></a>

Gli esempi seguenti sono `Dockerfile` che soddisfano le informazioni descritte sopra e quelle in [Specifiche dell’immagine personalizzata](studio-updated-byoi-specs.md).

**Nota**  
Se stai trasferendo la tua immagine in SageMaker Unified Studio, dovrai seguire le [specifiche di Dockerfile nella Guida](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html) per l'utente di *Amazon SageMaker Unified* Studio.  
`Dockerfile`alcuni esempi di SageMaker Unified Studio sono disponibili nell'[esempio di Dockerfile](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example) nella *Amazon SageMaker Unified* Studio User Guide.

------
#### [ Example micromamba Dockerfile ]

Di seguito è riportato un esempio di Dockerfile per creare un’immagine da zero utilizzando un ambiente di base [https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html](https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html): 

```
FROM mambaorg/micromamba:latest
ARG NB_USER="sagemaker-user"
ARG NB_UID=1000
ARG NB_GID=100

USER root

RUN micromamba install -y --name base -c conda-forge sagemaker-code-editor

USER $NB_UID

CMD eval "$(micromamba shell hook --shell=bash)"; \
    micromamba activate base; \
    sagemaker-code-editor --host 0.0.0.0 --port 8888 \
        --without-connection-token \
        --base-path "/CodeEditor/default"
```

------
#### [ Example SageMaker AI Distribution Dockerfile ]

Di seguito è riportato un esempio di Dockerfile per creare un'immagine basata su [Amazon SageMaker AI](https://github.com/aws/sagemaker-distribution/tree/main) Distribution:

```
FROM public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu
ARG NB_USER="sagemaker-user"
ARG NB_UID=1000
ARG NB_GID=100
ENV MAMBA_USER=$NB_USER

USER root

 # install scrapy in the base environment
RUN micromamba install -y --name base -c conda-forge scrapy

 # download VSCodeVim
RUN \
  wget https://github.com/VSCodeVim/Vim/releases/download/v1.27.2/vim-1.27.2.vsix \
  -P /tmp/exts/ --no-check-certificate

 # Install the extension
RUN \
  extensionloc=/opt/amazon/sagemaker/sagemaker-code-editor-server-data/extensions \
  && sagemaker-code-editor \
    --install-extension "/tmp/exts/vim-1.27.2.vsix" \
    --extensions-dir "${extensionloc}"

USER $MAMBA_USER
ENTRYPOINT ["entrypoint-code-editor"]
```

------

# Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod"></a>

SageMaker HyperPod ti aiuta a fornire cluster resilienti per l'esecuzione di carichi di lavoro di machine learning (ML) e lo sviluppo di state-of-the-art modelli come modelli di linguaggio di grandi dimensioni (LLMs), modelli di diffusione e modelli di base (). FMs Accelera lo sviluppo FMs eliminando gli oneri indifferenziati legati alla creazione e alla manutenzione di cluster di elaborazione su larga scala alimentati da migliaia di acceleratori come Trainium e NVIDIA A100 e H100 Graphical Processing Unit (). AWS GPUs In caso di guasto degli acceleratori, le funzionalità di resilienza delle istanze di SageMaker HyperPod Monitor the Cluster rilevano e sostituiscono automaticamente l'hardware difettoso in modo che tu possa concentrarti sull'esecuzione di carichi di lavoro ML.

Per iniziare, controlla[Prerequisiti per l'utilizzo SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md), configura [AWS Identity and Access Management per SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md) e scegli una delle seguenti opzioni di orchestrazione supportate da. SageMaker HyperPod

**Supporto Slurm in SageMaker HyperPod**

SageMaker HyperPod fornisce supporto per l'esecuzione di carichi di lavoro di machine learning su cluster resilienti mediante l'integrazione con Slurm, un gestore di carichi di lavoro open source. Il supporto di Slurm SageMaker HyperPod consente una perfetta orchestrazione del cluster tramite la configurazione del cluster Slurm, consentendo di configurare nodi head, login e worker sui SageMaker HyperPod cluster. Questa integrazione facilita anche la pianificazione dei processi basata su Slurm per l'esecuzione di carichi di lavoro ML sul cluster, nonché l'accesso diretto ai nodi del cluster per la pianificazione dei processi. Con il supporto per la configurazione HyperPod del ciclo di vita, puoi personalizzare l'ambiente di elaborazione dei cluster per soddisfare i tuoi requisiti specifici. Inoltre, sfruttando le librerie di formazione distribuite di Amazon SageMaker AI, puoi ottimizzare le prestazioni dei cluster sulle AWS risorse di elaborazione e di rete. Per ulteriori informazioni, consulta [Orchestrazione SageMaker HyperPod dei cluster con Slurm](sagemaker-hyperpod-slurm.md). 

**Supporto Amazon EKS in SageMaker HyperPod**

SageMaker HyperPod si integra inoltre con Amazon EKS per consentire la formazione su larga scala di modelli di base su cluster di elaborazione resilienti e di lunga durata. Ciò consente agli utenti amministratori del cluster di effettuare il provisioning dei HyperPod cluster e collegarli a un piano di controllo EKS, abilitando la gestione dinamica della capacità, l'accesso diretto alle istanze del cluster e le funzionalità di resilienza. Per i data scientist, il supporto di Amazon EKS HyperPod consente di eseguire carichi di lavoro containerizzati per la formazione dei modelli di base, l'inferenza sul cluster EKS e lo sfruttamento della funzionalità di ripristino automatico del lavoro per la formazione Kubeflow. PyTorch L'architettura prevede una mappatura 1 a 1 tra un cluster EKS (piano di controllo) e un HyperPod cluster (nodi di lavoro) all'interno di un VPC, fornendo una soluzione strettamente integrata per l'esecuzione di carichi di lavoro ML su larga scala. Per ulteriori informazioni, consulta [Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md).

**UltraServers con HyperPod**

HyperPod UltraServers offre potenza di calcolo AI integrando i superchip NVIDIA in un'infrastruttura coesa e ad alte prestazioni. Ciascuna NVL72 UltraServer combina 18 istanze con 72 istanze NVIDIA Blackwell GPUs interconnesse NVLink, consentendo inferenze più rapide e prestazioni di formazione più rapide rispetto alle istanze della generazione precedente. Questa architettura è particolarmente utile per le organizzazioni che lavorano con modelli di base composti da trilioni di parametri, poiché la memoria GPU unificata consente a interi modelli di rimanere all'interno di un unico dominio, eliminando i colli di bottiglia della rete tra nodi. NVLink HyperPod migliora questo vantaggio hardware con una pianificazione intelligente basata sulla topologia che ottimizza il posizionamento dei carichi di lavoro, la sostituzione automatica delle istanze per ridurre al minimo le interruzioni e opzioni di implementazione flessibili che supportano configurazioni di risorse dedicate e condivise. Per i team che si spingono oltre i limiti delle dimensioni e delle prestazioni dei modelli, questa integrazione fornisce la base computazionale necessaria per addestrare e implementare i modelli di IA più avanzati con un’efficienza senza precedenti.

SageMaker HyperPod ottimizza automaticamente il posizionamento delle istanze su. UltraServers Per impostazione predefinita, HyperPod assegna la priorità a tutte le istanze in una UltraServer prima di utilizzarne un'altra. Ad esempio, se desideri 14 istanze e ne hai 2 UltraServers nel tuo piano, l' SageMaker IA utilizza tutte le istanze della prima. UltraServer Se desideri 20 istanze, l' SageMaker IA utilizza tutte le 18 istanze nella prima UltraServer e poi ne utilizza altre 2 nella seconda.

## Regioni AWS supportato da SageMaker HyperPod
<a name="sagemaker-hyperpod-available-regions"></a>

SageMaker HyperPod è disponibile nelle seguenti versioni Regioni AWS. 
+ us-east-1
+ us-east-2
+ us-west-1
+ us-west-2
+ eu-central-1
+ eu-north-1
+ eu-west-1
+ eu-west-2
+ eu-south-2
+ ap-south-1
+ ap-southeast-1
+ ap-southeast-2
+ ap-southeast-3
+ ap-southeast-4
+ ap-northeast-1
+ sa-east-1

**Topics**
+ [Regioni AWS supportato da SageMaker HyperPod](#sagemaker-hyperpod-available-regions)
+ [SageMaker HyperPod Guida introduttiva di Amazon](sagemaker-hyperpod-quickstart.md)
+ [Prerequisiti per l'utilizzo SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md)
+ [AWS Identity and Access Management per SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md)
+ [AWS KMS key Crittografia gestita dal cliente per SageMaker HyperPod](smcluster-cmk.md)
+ [SageMaker HyperPod ricette](sagemaker-hyperpod-recipes.md)
+ [Orchestrazione SageMaker HyperPod dei cluster con Slurm](sagemaker-hyperpod-slurm.md)
+ [Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md)
+ [Utilizzo della pianificazione basata sulla topologia in Amazon SageMaker HyperPod](sagemaker-hyperpod-topology.md)
+ [Implementazione di modelli su Amazon SageMaker HyperPod](sagemaker-hyperpod-model-deployment.md)
+ [HyperPod in Studio](sagemaker-hyperpod-studio.md)
+ [SageMaker HyperPod riferimenti](sagemaker-hyperpod-ref.md)
+ [Note di SageMaker HyperPod rilascio di Amazon](sagemaker-hyperpod-release-notes.md)
+ [SageMaker HyperPod AMI Amazon](sagemaker-hyperpod-release-ami.md)

# SageMaker HyperPod Guida introduttiva di Amazon
<a name="sagemaker-hyperpod-quickstart"></a>

Questa guida rapida ti guida nella creazione del tuo primo HyperPod cluster con orchestrazioni Slurm e Amazon EKS (EKS). Scegli l'orchestrazione più adatta alle esigenze della tua infrastruttura per iniziare. SageMaker HyperPod

**Topics**
+ [Crea un cluster orchestrato da SLURM SageMaker HyperPod](#sagemaker-hyperpod-quickstart-slurm)
+ [Crea un cluster orchestrato da EKS SageMaker HyperPod](#sagemaker-hyperpod-quickstart-eks)
+ [Invio di carichi di lavoro](#sagemaker-hyperpod-quickstart-workload)

## Crea un cluster orchestrato da SLURM SageMaker HyperPod
<a name="sagemaker-hyperpod-quickstart-slurm"></a>

Segui questi passaggi per creare il tuo primo SageMaker HyperPod cluster con l'orchestrazione Slurm.

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Scegli **HyperPod Clusters** nel riquadro di navigazione a sinistra, quindi **Cluster Management**.

1. Nella pagina **SageMaker HyperPod Cluster, scegli **Crea HyperPod ** cluster**. 

1. Nel menu a discesa **Crea HyperPod cluster**, scegli **Orchestrated** by Slurm.

1. Nella pagina di creazione del cluster, scegli **Configurazione rapida**. Con questa opzione, puoi iniziare immediatamente con le impostazioni predefinite. SageMaker L'intelligenza artificiale creerà nuove risorse come VPC, sottoreti, gruppi di sicurezza, bucket Amazon S3, ruolo IAM e FSx for Lustre nel processo di creazione del cluster.

1. In **Impostazioni generali**, specifica un nome per il nuovo cluster. Dopo la creazione del cluster, non è più possibile modificarne il nome.

1. In **Gruppi di istanze**, scegli **Aggiungi gruppo**. Ogni gruppo di istanze può essere configurato in modo diverso ed è possibile creare un cluster eterogeneo composto da più gruppi di istanze con vari tipi di istanze. Per implementare un cluster, devi aggiungere almeno un gruppo di istanze. Puoi aggiungere un gruppo di istanze alla volta. Per creare più gruppi di istanze, ripeti il processo per ogni gruppo.

   Segui questa procedura per aggiungere un gruppo di istanze.

   1. In **Tipo di gruppo di istanze**, scegli un tipo per il tuo gruppo di istanze. Per questo avvio rapido, scegli **Controller (head)** per `my-controller-group`, **Login** per `my-login-group` e **Calcolo (worker)** per `worker-group-1`. 

   1. In **Nome**, specifica un nome per il gruppo di istanze. Per questo avvio rapido, crea tre gruppi di istanze denominati `my-controller-group`, `my-login-group` e `worker-group-1`.

   1.  In **Capacità dell’istanza**, scegli la capacità on demand o un piano di addestramento per riservare le tue risorse di calcolo.

   1. Per **Tipo di istanza**, scegli l’istanza per il gruppo di istanze. Per questo avvio rapido, seleziona `ml.c5.xlarge` per `my-controller-group`, `ml.m5.4xlarge` per `my-login-group` e `ml.trn1.32xlarge` per `worker-group-1`. 

      Assicurati di scegliere il tipo di istanza con quote sufficienti nel tuo account oppure richiedi quote aggiuntive seguendo le istruzioni riportate in [SageMaker HyperPod quote](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

   1. In **Quantità istanze**. specifica un numero intero che non sia maggiore della quota dell’istanza per l’utilizzo del cluster. Per questo avvio rapido, inserisci **1** in tutti e tre i gruppi.

   1. In **Zona di disponibilità di destinazione**, scegli la zona di disponibilità in cui allocare le istanze. La zona di disponibilità deve corrispondere alla posizione della capacità di calcolo accelerata.

   1. Per **Volume di archiviazione aggiuntivo per istanza (GB) (facoltativo)**, specifica un numero intero compreso tra 1 e 16.384 per impostare la dimensione di un volume Elastic Block Store (EBS) aggiuntivo in gigabyte (GB). Il volume EBS è collegato a ciascuna istanza del gruppo di istanze. Il percorso di montaggio predefinito per il volume EBS aggiuntivo è `/opt/sagemaker`. Dopo aver creato correttamente il cluster, è possibile accedere tramite SSH alle istanze del cluster (nodi) e verificare che il volume EBS sia montato correttamente eseguendo il comando `df -h`. Il collegamento di un volume EBS aggiuntivo fornisce un’archiviazione stabile, fuori istanza e con persistenza indipendente, come descritto nella sezione [Amazon EBS volumes](https://docs.aws.amazon.com//ebs/latest/userguide/ebs-volumes.html) in *Amazon Elastic Block Store User Guide*.

   1. Scegli **Aggiungi gruppo di istanze**.

1.  In **Impostazioni predefinite di configurazione rapida**, rivedi le impostazioni predefinite. Questa sezione elenca tutte le impostazioni predefinite per la creazione del cluster, incluse tutte le nuove AWS risorse che verranno create durante il processo di creazione del cluster.

1. Seleziona **Invia**.

Per ulteriori informazioni, consulta [Guida introduttiva all' SageMaker HyperPod utilizzo della console SageMaker AI](smcluster-getting-started-slurm-console.md).

## Crea un cluster orchestrato da EKS SageMaker HyperPod
<a name="sagemaker-hyperpod-quickstart-eks"></a>

Segui questi passaggi per creare il tuo primo SageMaker HyperPod cluster con l'orchestrazione di Amazon EKS.

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Scegli **HyperPod Clusters** nel riquadro di navigazione a sinistra, quindi **Cluster Management**.

1. Nella pagina **SageMaker HyperPod Cluster, scegli **Crea HyperPod ** cluster**. 

1. Nel menu a discesa **Crea HyperPod cluster**, scegli **Orchestrated by** Amazon EKS.

1. Nella pagina di creazione del cluster, scegli **Configurazione rapida**. Con questa opzione, puoi iniziare immediatamente con le impostazioni predefinite. SageMaker L'intelligenza artificiale creerà nuove risorse come VPC, sottoreti, gruppi di sicurezza, bucket Amazon S3, ruolo IAM e FSx for Lustre nel processo di creazione del cluster.

1. In **Impostazioni generali**, specifica un nome per il nuovo cluster. Dopo la creazione del cluster, non è più possibile modificarne il nome. 

1. In **Gruppi di istanze**, scegli **Aggiungi gruppo**. Ogni gruppo di istanze può essere configurato in modo diverso ed è possibile creare un cluster eterogeneo composto da più gruppi di istanze con vari tipi di istanze. Per implementare un cluster, devi aggiungere almeno un gruppo di istanze. Puoi aggiungere un gruppo di istanze alla volta. Per creare più gruppi di istanze, ripeti il processo per ogni gruppo.

   Segui questa procedura per aggiungere un gruppo di istanze.

   1. In **Tipo di gruppo di istanze**, scegli **Standard** o **Gruppo di istanze limitato (RIG)**. Di solito si sceglie **Standard** perché fornisce un ambiente di calcolo generico senza limitazioni di sicurezza aggiuntive. **Gruppo di istanze limitato (RIG)** è un ambiente specializzato per la personalizzazione di modelli di fondazione come Amazon Nova. Per ulteriori informazioni sulla configurazione di RIG per la personalizzazione del modello Amazon Nova, consulta la personalizzazione di Amazon Nova nella guida per SageMaker HyperPod l'utente di [Amazon Nova 1.0 o nella guida per l'utente](https://docs.aws.amazon.com//nova/latest/userguide/nova-hp.html) di [Amazon Nova 2.0](https://docs.aws.amazon.com//nova/latest/nova2-userguide/nova-hp.html).

   1. In **Nome**, specifica un nome per il gruppo di istanze.

   1.  In **Capacità dell’istanza**, scegli la capacità on demand o un piano di addestramento per riservare le tue risorse di calcolo.

   1. Per **Tipo di istanza**, scegli l’istanza per il gruppo di istanze. Assicurati di scegliere il tipo di istanza con quote sufficienti nel tuo account oppure richiedi quote aggiuntive seguendo le istruzioni riportate in [SageMaker HyperPod quote](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

   1. In **Quantità istanze**. specifica un numero intero che non sia maggiore della quota dell’istanza per l’utilizzo del cluster. Per questo avvio rapido, inserisci **1** in tutti e tre i gruppi.

   1. In **Zona di disponibilità di destinazione**, scegli la zona di disponibilità in cui allocare le istanze. La zona di disponibilità deve corrispondere alla posizione della capacità di calcolo accelerata.

   1. Per **Volume di archiviazione aggiuntivo per istanza (GB) (facoltativo)**, specifica un numero intero compreso tra 1 e 16.384 per impostare la dimensione di un volume Elastic Block Store (EBS) aggiuntivo in gigabyte (GB). Il volume EBS è collegato a ciascuna istanza del gruppo di istanze. Il percorso di montaggio predefinito per il volume EBS aggiuntivo è `/opt/sagemaker`. Dopo aver creato correttamente il cluster, è possibile accedere tramite SSH alle istanze del cluster (nodi) e verificare che il volume EBS sia montato correttamente eseguendo il comando `df -h`. Il collegamento di un volume EBS aggiuntivo fornisce un’archiviazione stabile, fuori istanza e con persistenza indipendente, come descritto nella sezione [Amazon EBS volumes](https://docs.aws.amazon.com//ebs/latest/userguide/ebs-volumes.html) in *Amazon Elastic Block Store User Guide*.

   1. Per **Controlli approfonditi dell’integrità delle istanze**, scegli un’opzione. I controlli dell’integrità approfonditi monitorano l’integrità dell’istanza durante la creazione e dopo gli aggiornamenti software, ripristinando automaticamente le istanze difettose con riavvii o sostituzioni, se abilitati.

   1. Scegli **Aggiungi gruppo di istanze**.

1.  In **Impostazioni predefinite di configurazione rapida**, rivedi le impostazioni predefinite. Questa sezione elenca tutte le impostazioni predefinite per la creazione del cluster, incluse tutte le nuove AWS risorse che verranno create durante il processo di creazione del cluster.

1. Seleziona **Invia**.

Per ulteriori informazioni, consulta [Creazione di un SageMaker HyperPod cluster con l'orchestrazione di Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md).

## Invio di carichi di lavoro
<a name="sagemaker-hyperpod-quickstart-workload"></a>

Segui questi tutorial del workshop per inviare carichi di lavoro di esempio.
+ [Amazon SageMaker HyperPod per Slurm](https://catalog.workshops.aws/sagemaker-hyperpod/en-US)
+ [Amazon SageMaker HyperPod per Amazon EKS](https://catalog.workshops.aws/sagemaker-hyperpod-eks/en-US)

# Prerequisiti per l'utilizzo SageMaker HyperPod
<a name="sagemaker-hyperpod-prerequisites"></a>

Le seguenti sezioni illustrano i prerequisiti prima di iniziare. SageMaker HyperPod

**Topics**
+ [SageMaker HyperPod quote](#sagemaker-hyperpod-prerequisites-quotas)
+ [Configurazione SageMaker HyperPod con un Amazon VPC personalizzato](#sagemaker-hyperpod-prerequisites-optional-vpc)
+ [Configurazione di cluster su più cluster SageMaker HyperPod AZs](#sagemaker-hyperpod-prerequisites-multiple-availability-zones)
+ [Configurazione AWS Systems Manager ed esecuzione come per il controllo degli accessi degli utenti del cluster](#sagemaker-hyperpod-prerequisites-ssm)
+ [(Facoltativo) Configurazione SageMaker HyperPod con Amazon FSx for Lustre](#sagemaker-hyperpod-prerequisites-optional-fsx)

## SageMaker HyperPod quote
<a name="sagemaker-hyperpod-prerequisites-quotas"></a>

Puoi creare SageMaker HyperPod cluster in base alle quote di *utilizzo dei cluster* nel tuo account. AWS 

**Importante**  
Per ulteriori informazioni sui SageMaker HyperPod prezzi, consulta la pagina [SageMaker HyperPod prezzi](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-pricing) e [ SageMaker i prezzi di Amazon](https://aws.amazon.com/sagemaker/pricing/).

### Visualizza le SageMaker HyperPod quote Amazon utilizzando il Console di gestione AWS
<a name="sagemaker-hyperpod-prerequisites-quotas-view"></a>

Cerca i valori predefiniti e applicati di una *quota*, nota anche come *limite*, per *l'utilizzo del cluster*, utilizzata per SageMaker HyperPod.

1. Apri la [Quote di servizio console](https://console.aws.amazon.com/servicequotas/).

1. Nel pannello di navigazione a sinistra, scegli **Servizi AWS **.

1. Dall'elenco dei **AWS servizi**, cerca e seleziona **Amazon SageMaker AI**.

1. Nell'elenco delle **quote di servizio**, puoi vedere il nome della quota di servizio, il valore applicato (se disponibile), la quota AWS predefinita e se il valore della quota è regolabile. 

1. Nella barra di ricerca, digita **utilizzo del cluster**. Vengono mostrate le quote per l’utilizzo del cluster, le quote applicate e le quote predefinite.

**Elenco delle quote di servizio comuni per creare un HyperPod cluster e dei relativi prerequisiti**

Potresti voler verificare se hai richiesto aumenti del limite delle quote di servizio per le seguenti quote per creare un nuovo HyperPod cluster insieme ai prerequisiti nella console AI. SageMaker Vai alla console **Service Quota** e cerca i seguenti termini.


****  

| No | Nome della quota | Termine di ricerca | Description | 
| --- | --- | --- | --- | 
| 1 | Numero massimo di istanze consentite per cluster SageMaker HyperPod | In SageMaker AI cerca «Numero massimo di istanze consentite per SageMaker HyperPod cluster» | Il valore della quota a livello di account deve essere superiore al numero di istanze che desideri aggiungere al cluster | 
| 2 | Dimensione massima del volume EBS in GB per un'istanza di cluster SageMaker HyperPod  |  In SageMaker AI cerca «Dimensione massima del volume EBS in GB per un'istanza HyperPod cluster»   |  Il valore della quota a livello di account deve essere superiore al volume EBS che desideri aggiungere al cluster  | 
| 3 | Numero totale di istanze consentite tra i cluster SageMaker HyperPod |  In SageMaker AI cerca «Numero totale di istanze consentite tra i cluster» SageMaker HyperPod    | Il valore della quota a livello di account deve essere superiore al totale delle istanze che desideri aggiungere in tutti i cluster del tuo account in forma aggregata | 
| 4 |  Quote di istanze   |  In SageMaker AI, cerca «ml». «<instance\$1type>per l'utilizzo del cluster», ad esempio: ml.p5.48xlarge per l'utilizzo del cluster  | Il valore della quota a livello di account per il particolare tipo di istanza (ad esempio: ml.p5.48xlarge) deve essere maggiore del numero di istanze da aggiungere a tutti i cluster dell'account in forma aggregata. | 
| 5 |  VPCs per regione  | In Amazon Virtual Private Cloud (Amazon VPC) cerca «VPCsper regione» | Il valore della quota a livello di account deve essere sufficiente per creare un nuovo VPC nell'account durante la configurazione del cluster. HyperPod Verifica se hai già esaurito questo limite di quota controllando la console VPC. Questo aumento della quota è necessario solo se intendi creare un nuovo VPC tramite l'opzione di configurazione del cluster rapida o personalizzata nella SageMaker HyperPod console. | 
| 6 |  Gateway Internet per regione  |  In Amazon Virtual Private Cloud (Amazon VPC) cerca «Gateway Internet per regione»  | Il valore della quota a livello di account deve essere sufficiente per creare un gateway Internet aggiuntivo nell'account durante la configurazione del cluster. SageMaker HyperPod Questo aumento della quota è necessario solo se intendi creare un nuovo VPC tramite l'opzione di configurazione del cluster rapida o personalizzata nella SageMaker HyperPod console.  | 
| 7 | Interfacce di rete per regione | In Amazon Virtual Private Cloud (Amazon VPC) cerca «Interfacce di rete per regione» |  Il valore della quota a livello di account deve contenere un numero sufficiente di interfacce di rete nell'account al momento della configurazione del cluster. HyperPod   | 
| 8 | Elastico EC2-VPC IPs | In Amazon Elastic Compute Cloud (Amazon EC2), cerca «EC2-VPC Elastic» IPs | Il valore della quota a livello di account deve essere sufficiente per creare un nuovo VPC nell'account durante la configurazione del cluster. HyperPod Verifica se hai già esaurito questo limite di quota controllando la console VPC. Questo aumento della quota è necessario solo se intendi creare un nuovo VPC tramite l'opzione di configurazione del cluster rapida o personalizzata nella SageMaker HyperPod console. | 

### Richiedi un aumento della SageMaker HyperPod quota Amazon utilizzando il Console di gestione AWS
<a name="sagemaker-hyperpod-prerequisites-quotas-increase"></a>

Aumenta le quote a livello di account o di risorsa.

1. Per aumentare la quota delle istanze per *l’utilizzo del cluster*, seleziona la quota da aumentare.

1. Se la quota è regolabile, puoi richiedere un aumento della quota a livello di account o di risorsa in base al valore elencato nella colonna **Regolabilità**.

1. In **Aumenta il valore della quota**, inserisci il nuovo valore. Questo valore deve essere maggiore di quello corrente.

1. Scegli **Richiedi**.

1. Per visualizzare eventuali richieste in sospeso o risolte di recente nella console, vai alla scheda **Cronologia richieste** dalla pagina dei dettagli del servizio o scegli **Dashboard** dal riquadro di navigazione. Per le richieste in sospeso, scegliere lo stato della richiesta per aprire la ricevuta della richiesta. Lo stato iniziale di una richiesta è **Pending** (In attesa). Dopo la modifica dello stato in **Quota richiesta**, vedrai il numero del caso con Supporto AWS. Scegli il numero del caso per aprire il ticket della tua richiesta.

Per ulteriori informazioni generali su come richiedere un aumento della quota, consulta [Requesting a Quota Increase](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) in *AWS Service Quotas User Guide*.

## Configurazione SageMaker HyperPod con un Amazon VPC personalizzato
<a name="sagemaker-hyperpod-prerequisites-optional-vpc"></a>

Per configurare un SageMaker HyperPod cluster con un Amazon VPC personalizzato, esamina i seguenti prerequisiti.

**Nota**  
La configurazione VPC è obbligatoria per l’orchestrazione Amazon EKS. Per l’orchestrazione Slurm, la configurazione VPC è facoltativa.
+  Convalida la capacità dell'[Elastic Network Interface](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) (ENI) Account AWS prima di creare un SageMaker HyperPod cluster con un VPC personalizzato. Il limite ENI è controllato da Amazon EC2 e varia a seconda. Regione AWS SageMaker HyperPod non può richiedere automaticamente aumenti delle quote. 

**Per verificare la tua attuale quota ENI:**

  1. Apri la [Quote di servizio console](https://console.aws.amazon.com/servicequotas/).

  1. **Nella sezione **Gestisci quote**, utilizza l'elenco a discesa ** AWS Servizi** per cercare VPC.** 

  1. Scegli di visualizzare le quote di **Amazon Virtual Private Cloud (Amazon VPC)**. 

  1. Cerca la Service Quota **Interfacce di rete per Regione** o il **Codice di quota** `L-DF5E4CA3`.

  Se l'attuale limite ENI non è sufficiente per le esigenze del SageMaker HyperPod cluster, richiedi un aumento della quota. Assicurarsi preventivamente una capacità ENI adeguata aiuta a prevenire gli errori di implementazione dei cluster.
+ Quando utilizzi un VPC personalizzato per connettere un SageMaker HyperPod cluster con AWS risorse, fornisci il nome, l'ID Regione AWS, la sottorete e il gruppo di sicurezza VPC durante la IDs creazione del cluster. IDs 
**Nota**  
Quando Amazon VPC e sottoreti sono supportati IPv6 nel cluster o a livello di gruppo [https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_CreateCluster.html#sagemaker-CreateCluster-request-VpcConfig](https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_CreateCluster.html#sagemaker-CreateCluster-request-VpcConfig)di istanze utilizzando l'`OverrideVPCConfig`attributo of [https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html](https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html), le comunicazioni di rete differiscono in base alla piattaforma di orchestrazione del cluster:  
I cluster orchestrati da SLURM configurano automaticamente i nodi con due indirizzi e, permettendo comunicazioni di rete immediate. IPv6 IPv4 IPv6 Non è richiesta alcuna configurazione aggiuntiva oltre alle impostazioni. `VPCConfig` IPv6 
Nei cluster orchestrati da EKS, i nodi ricevono l'indirizzamento dual-stack, ma i pod possono essere utilizzati solo quando IPv6 il cluster Amazon EKS è abilitato in modo esplicito. IPv6 È necessario creare un nuovo cluster IPv6 Amazon EKS: i cluster IPv4 Amazon EKS esistenti non possono essere convertiti in IPv6. Per informazioni sulla distribuzione di un cluster IPv6 Amazon EKS, consulta [Amazon EKS IPv6 Cluster Deployment](https://docs.aws.amazon.com/eks/latest/userguide/deploy-ipv6-cluster.html#_deploy_an_ipv6_cluster_with_eksctl).
Risorse aggiuntive per la IPv6 configurazione:  
Per informazioni sull'aggiunta del IPv6 supporto al tuo VPC, consulta [IPv6 Support for VPC](https://docs.aws.amazon.com//vpc/latest/userguide/vpc-migrate-ipv6.html).
Per informazioni sulla creazione di un nuovo VPC IPv6 compatibile, [Amazon VPC consulta](https://docs.aws.amazon.com//vpc/latest/userguide/create-vpc.html) la Guida alla creazione.
Per configurare SageMaker HyperPod con un Amazon VPC personalizzato, consulta Configurazione [Amazon VPC](https://docs.aws.amazon.com//sagemaker/latest/dg/sagemaker-hyperpod-prerequisites.html#sagemaker-hyperpod-prerequisites-optional-vpc) personalizzata per. SageMaker HyperPod
+ Assicurati che tutte le risorse siano distribuite nello stesso ambiente del cluster Regione AWS . SageMaker HyperPod Configura le regole dei gruppi di sicurezza per consentire la comunicazione tra le risorse all’interno del VPC. Ad esempio, quando crei un VPC in `us-west-2`, alloca le sottoreti su una o più zone di disponibilità (ad esempio `us-west-2a` o `us-west-2b`) e crea un gruppo di sicurezza che consenta il traffico tra i gruppi.
**Nota**  
SageMaker HyperPod supporta l'implementazione di zone di disponibilità multiple. Per ulteriori informazioni, consulta [Configurazione di cluster su più cluster SageMaker HyperPod AZs](#sagemaker-hyperpod-prerequisites-multiple-availability-zones).
+ Stabilisci la connettività Amazon Simple Storage Service (Amazon S3) per i SageMaker HyperPod gruppi di istanze distribuiti tramite VPC creando un endpoint VPC. Senza accesso a Internet, i gruppi di istanze non possono archiviare o recuperare gli script del ciclo di vita, i dati di addestramento o gli artefatti del modello. Ti consigliamo di creare una policy IAM personalizzata che limiti l’accesso dei bucket Amazon S3 al VPC privato. Per ulteriori informazioni, consulta [Endpoints for Amazon S3](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints-s3.html) in *AWS PrivateLink Guide*.
+ Per HyperPod i cluster che utilizzano istanze abilitate per Elastic Fabric Adapter (EFA), configura il gruppo di sicurezza per consentire tutto il traffico in entrata e in uscita da e verso il gruppo di sicurezza stesso. In particolare, evita di utilizzare `0.0.0.0/0` per le regole in uscita, perché potrebbe causare errori nei controlli dell’integrità EFA. Per ulteriori informazioni sulle linee guida per la preparazione dei gruppi di sicurezza EFA, consulta [Step 1: Prepare an EFA-enabled security group](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa-start.html#efa-start-security) in *Amazon EC2 User Guide*.
+ Valuta attentamente la dimensione del blocco CIDR (Classless Inter-Domain Routing) della sottorete prima di creare cluster. HyperPod 
  + La dimensione dell’intervallo CIDR della sottorete non può essere modificata dopo la creazione. Questo aspetto è particolarmente importante quando utilizzi istanze accelerate di grandi dimensioni come P5. Senza una dimensione del blocco sufficiente, in caso di aumento verticale dovrai ricreare i cluster.
  + Quando scegli la dimensione dell’intervallo CIDR della sottorete appropriata, considera questi fattori: i tipi di istanze, il numero previsto di istanze e il numero di indirizzi IP utilizzati da ciascuna istanza.
  + Per i cluster orchestrati da Slurm, ogni istanza P5 può creare 32 indirizzi IP (uno per ogni scheda di rete). Per i cluster orchestrati da EKS, ogni istanza P5 può creare 81 indirizzi IP (50 dalla scheda primaria più uno da ciascuna delle restanti 31 schede). Per specifiche dettagliate, consulta [Network specifications ](https://docs.aws.amazon.com/ec2/latest/instancetypes/ac.html#ac_network) in *Amazon EC2 Instance Types Developer Guide*.
  + [Per esempi di CloudFormation modelli che specificano la dimensione del blocco CIDR della sottorete, consulta il modello [HyperPod Slurm e il modello HyperPod ](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/sagemaker-hyperpod.yaml)[Amazon EKS](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/7.sagemaker-hyperpod-eks/cfn-templates/nested-stacks/private-subnet-stack.yaml) nel repository. awsome-distributed-training ](https://github.com/aws-samples/awsome-distributed-training/tree/main)

## Configurazione di cluster su più cluster SageMaker HyperPod AZs
<a name="sagemaker-hyperpod-prerequisites-multiple-availability-zones"></a>

È possibile configurare SageMaker HyperPod i cluster su più zone di disponibilità (AZs) per migliorare l'affidabilità e la disponibilità.

**Nota**  
Il traffico Elastic Fabric Adapter (EFA) non può attraversare o. AZs VPCs Questo non si applica al normale traffico IP dal dispositivo ENA di un'interfaccia EFA. Per ulteriori informazioni, consulta [EFA limitations](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html).
+ **Comportamento predefinito**

  HyperPod distribuisce tutte le istanze del cluster in un'unica zona di disponibilità. La configurazione VPC determina l’AZ di implementazione:
  + Per i cluster orchestrati da Slurm, la configurazione VPC è facoltativa. Quando non viene fornita alcuna configurazione VPC, l' HyperPod impostazione predefinita è una sottorete dal VPC della piattaforma. 
  + Per i cluster orchestrati da EKS, la configurazione VPC è obbligatoria.
  + Sia per gli orchestratori Slurm che EKS, quando [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html)viene fornita, seleziona una sottorete dall'elenco delle sottoreti del fornitore. HyperPod `VpcConfig` Tutti i gruppi di istanze ereditano la AZ della sottorete. 
**Nota**  
Una volta creato un cluster, non è possibile modificarne le impostazioni `VpcConfig`.

  Per ulteriori informazioni sulla configurazione VPCs per i cluster, vedere la sezione precedente,. HyperPod [Configurazione SageMaker HyperPod con un Amazon VPC personalizzato](#sagemaker-hyperpod-prerequisites-optional-vpc)
+ **Configurazione Multi-AZ**

  È possibile configurare il HyperPod cluster su più gruppi AZs durante la creazione di un cluster o l'aggiunta di un nuovo gruppo di istanze a un cluster esistente. Per configurare le implementazioni Multi-AZ, puoi sostituire le impostazioni VPC predefinite del cluster specificando sottoreti e gruppi di sicurezza diversi, possibilmente in diverse zone di disponibilità, per singoli gruppi di istanze all’interno del cluster. 

  SageMaker HyperPod Gli utenti dell'API possono utilizzare la `OverrideVpcConfig` proprietà all'interno di [ClusterInstanceGroupSpecification](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html)quando lavorano con [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)o [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html) APIs.

  Il campo `OverrideVpcConfig`:
  + Non può essere modificato dopo la creazione del gruppo di istanze.
  + È facoltativo. Se non è specificato, viene utilizzato il livello del cluster [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html) come impostazione predefinita.
  + Per i cluster orchestrati da Slurm, può essere specificato solo quando viene fornito il livello del cluster `VpcConfig`. Se non è specificato alcun valore `VpcConfig` a livello del cluster, `OverrideVpcConfig` non può essere utilizzato per alcun gruppo di istanze.
  + Contiene due campi obbligatori:
    + `Subnets`- accetta tra 1 e 16 sottoreti IDs
    + `SecurityGroupIds`- accetta tra 1 e 5 gruppi di sicurezza IDs

  Per ulteriori informazioni sulla creazione o l'aggiornamento di un SageMaker HyperPod cluster utilizzando l'interfaccia utente della SageMaker HyperPod console o il AWS CLI:
  + [Orchestrazione Slurm: vedere Operazione dei cluster orchestrati da Slurm. HyperPod](sagemaker-hyperpod-operate-slurm.md)
  + Orchestrazione EKS. [ HyperPodVedi Cluster operativi orchestrati](sagemaker-hyperpod-eks-operate.md) da EKS.

**Nota**  
Quando esegui carichi di lavoro su più carichi di lavoro AZs, tieni presente che la comunicazione di rete tra di loro introduce una latenza aggiuntiva. AZs Considera questo fattore quando progetti applicazioni sensibili alla latenza.

## Configurazione AWS Systems Manager ed esecuzione come per il controllo degli accessi degli utenti del cluster
<a name="sagemaker-hyperpod-prerequisites-ssm"></a>

[SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami)viene fornito con [AWS Systems Manager](https://aws.amazon.com/systems-manager/)(SSM) pronto all'uso per aiutarti a gestire l'accesso ai gruppi di istanze SageMaker HyperPod del cluster. Questa sezione descrive come creare utenti del sistema operativo (OS) nei SageMaker HyperPod cluster e associarli a utenti e ruoli IAM. Questa opzione è utile per autenticare le sessioni SSM utilizzando le credenziali dell’account utente del sistema operativo.

**Nota**  
La concessione agli utenti dell'accesso ai nodi HyperPod del cluster consente loro di installare e utilizzare software gestito dagli utenti sui nodi. Assicurati di rispettare il principio delle autorizzazioni con privilegio minimo per gli utenti.

### Attivazione di RunAs nel tuo account AWS
<a name="sagemaker-hyperpod-prerequisites-ssm-enable-runas"></a>

In qualità di amministratore AWS dell'account o amministratore del cloud, puoi gestire l'accesso ai SageMaker HyperPod cluster a livello di ruolo o utente IAM utilizzando la [funzionalità Run As di SSM](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-preferences-run-as.html). Con questa funzionalità puoi avviare ogni sessione SSM utilizzando l’utente del sistema operativo associato al ruolo o all’utente IAM.

Per abilitare RunAs nel tuo AWS account, segui la procedura descritta in [Attivare il supporto RunAs per i nodi gestiti Linux e macOS](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-preferences-run-as.html). Se hai già creato utenti del sistema operativo nel tuo cluster, assicurati di associarli a ruoli o utenti IAM taggandoli come indicato nell’**Opzione 2** della Fase 5 in **To turn on Run As support for Linux and macOS managed nodes**.

## (Facoltativo) Configurazione SageMaker HyperPod con Amazon FSx for Lustre
<a name="sagemaker-hyperpod-prerequisites-optional-fsx"></a>

Per iniziare a utilizzare SageMaker HyperPod e mappare i percorsi di dati tra il cluster e il tuo ﬁle system FSx for Lustre, seleziona uno dei formati supportati da. Regioni AWS SageMaker HyperPod Dopo aver scelto quella Regione AWS che preferite, dovreste anche determinare quale zona di disponibilità (AZ) utilizzare. 

Se si utilizzano nodi di SageMaker HyperPod elaborazione AZs diversi da quelli in AZs cui è configurato il sistema ﬁle FSx for Lustre all'interno dello stesso Regione AWS, è possibile che si verifichino problemi di comunicazione e di rete. Ti consigliamo di utilizzare la stessa AZ fisica utilizzata per l'account di SageMaker HyperPod servizio per evitare qualsiasi traffico inter-AZ tra SageMaker HyperPod i cluster e il tuo sistema ﬁle for Lustre. FSx Inoltre, assicurati che sia configurato il tuo VPC. Se desideri utilizzare Amazon FSx come file system principale per lo storage, devi configurare SageMaker HyperPod i cluster con il tuo VPC.

# AWS Identity and Access Management per SageMaker HyperPod
<a name="sagemaker-hyperpod-prerequisites-iam"></a>

AWS Identity and Access Management (IAM) è un AWS servizio che aiuta un amministratore a controllare in modo sicuro l'accesso alle AWS risorse. Gli amministratori IAM controllano chi è *autenticato* (accesso effettuato) e *autorizzato* (dispone di autorizzazioni) a utilizzare risorse Amazon EKS. IAM è un AWS servizio che puoi utilizzare senza costi aggiuntivi.

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Supponiamo che vi siano due livelli principali di SageMaker HyperPod utenti: utenti *amministratori del cluster e utenti* di *data scientist*.
+ **Utenti amministratori del cluster**: sono responsabili della creazione e della gestione dei SageMaker HyperPod cluster. Ciò include la configurazione dei HyperPod cluster e la gestione dell'accesso degli utenti ad essi.
  + Crea e configura SageMaker HyperPod cluster con Slurm o Amazon EKS.
  + Crea e configura ruoli IAM per gli utenti dei data scientist e HyperPod le risorse del cluster.
  + Per l' SageMaker HyperPod orchestrazione con Amazon EKS, crea e configura [voci di accesso EKS](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html), [controllo degli accessi basato sui ruoli (RBAC)](sagemaker-hyperpod-eks-setup-rbac.md) e Pod Identity per soddisfare i casi d'uso della scienza dei dati.
+ **Utenti Data Scientist**: si occupano dell’addestramento dei modelli di ML. Usano l'orchestrator open source o la CLI per inviare e gestire SageMaker HyperPod i lavori di formazione.
  + Assumi e utilizza il ruolo IAM fornito dagli utenti amministratori del cluster.
  + Interagisci con l'orchestrator open source CLIs supportato da SageMaker HyperPod (Slurm o Kubernetes) o la SageMaker HyperPod CLI per verificare la capacità dei cluster, connetterti al cluster e inviare carichi di lavoro.

Configura i ruoli IAM per gli amministratori dei cluster associando le autorizzazioni o le politiche corrette per gestire i cluster. SageMaker HyperPod Gli amministratori dei cluster devono inoltre creare ruoli IAM per fornire SageMaker HyperPod le risorse necessarie all'esecuzione e alla comunicazione con AWS le risorse necessarie, come Amazon S3 AWS Systems Manager , CloudWatch Amazon e (SSM). Infine, l'amministratore dell' AWS account o gli amministratori del cluster devono concedere agli scienziati le autorizzazioni per accedere ai cluster ed eseguire carichi di lavoro ML. SageMaker HyperPod 

A seconda dell’orchestratore scelto, le autorizzazioni necessarie per l’amministratore del cluster e i Data Scientist possono variare. Puoi anche controllare l’ambito delle autorizzazioni per varie azioni nei ruoli utilizzando le chiavi di condizione per ogni servizio. Utilizza i seguenti riferimenti di autorizzazione ai servizi per aggiungere un ambito dettagliato per i servizi correlati a. SageMaker HyperPod
+ [Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html)
+ [Amazon Elastic Container Registry](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelasticcontainerregistry.html) (per l'orchestrazione dei SageMaker HyperPod cluster con Amazon EKS)
+ [Amazon Elastic Kubernetes](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelastickubernetesservice.html) Service (per l'orchestrazione dei SageMaker HyperPod cluster con Amazon EKS)
+ [Amazon FSx](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonfsx.html)
+ [AWS IAM Identity Center (successore di Single Sign-On) AWS](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiamidentitycentersuccessortoawssinglesign-on.html)
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html)
+ [Amazon Simple Storage Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html)
+ [Amazon SageMaker AI](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsagemaker.html)
+ [AWS Systems Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awssystemsmanager.html)

**Topics**
+ [Autorizzazioni IAM per la creazione di cluster](#sagemaker-hyperpod-prerequisites-iam-cluster-creation)
+ [Utenti IAM per l’amministratore del cluster](#sagemaker-hyperpod-prerequisites-iam-cluster-admin)
+ [Utenti IAM per Data Scientist](#sagemaker-hyperpod-prerequisites-iam-cluster-user)
+ [Ruolo IAM per SageMaker HyperPod](#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod)

## Autorizzazioni IAM per la creazione di cluster
<a name="sagemaker-hyperpod-prerequisites-iam-cluster-creation"></a>

La creazione di HyperPod cluster richiede le autorizzazioni IAM descritte nel seguente esempio di policy. Se Account AWS disponi [https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AdministratorAccess.html](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AdministratorAccess.html)delle autorizzazioni, queste vengono concesse per impostazione predefinita.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreateCluster",
                "sagemaker:DeleteCluster",
                "sagemaker:UpdateCluster"
            ],
            "Resource": "arn:aws:sagemaker:*:*:cluster/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:AddTags"
            ],
            "Resource": "arn:aws:sagemaker:*:*:cluster/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:ListTags",
                "sagemaker:ListClusters",
                "sagemaker:ListClusterNodes",
                "sagemaker:ListComputeQuotas",
                "sagemaker:ListTrainingPlans",
                "sagemaker:DescribeCluster",
                "sagemaker:DescribeClusterNode"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateStack",
                "cloudformation:UpdateStack",
                "cloudformation:DeleteStack",
                "cloudformation:ContinueUpdateRollback",
                "cloudformation:SetStackPolicy",
                "cloudformation:ValidateTemplate",
                "cloudformation:DescribeStacks",
                "cloudformation:DescribeStackEvents",
                "cloudformation:Get*",
                "cloudformation:List*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/sagemaker-*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "sagemaker.amazonaws.com",
                        "eks.amazonaws.com",
                        "lambda.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole",
                "iam:GetRole"
            ],
            "Resource": "arn:aws:iam::*:role/*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": [
                        "sagemaker.amazonaws.com",
                        "eks.amazonaws.com",
                        "lambda.amazonaws.com",
                        "cloudformation.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Sid": "AmazonVPCFullAccess",
            "Effect": "Allow",
            "Action": [
                "ec2:AcceptVpcPeeringConnection",
                "ec2:AcceptVpcEndpointConnections",
                "ec2:AllocateAddress",
                "ec2:AssignIpv6Addresses",
                "ec2:AssignPrivateIpAddresses",
                "ec2:AssociateAddress",
                "ec2:AssociateDhcpOptions",
                "ec2:AssociateRouteTable",
                "ec2:AssociateSecurityGroupVpc",
                "ec2:AssociateSubnetCidrBlock",
                "ec2:AssociateVpcCidrBlock",
                "ec2:AttachClassicLinkVpc",
                "ec2:AttachInternetGateway",
                "ec2:AttachNetworkInterface",
                "ec2:AttachVpnGateway",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:CreateCarrierGateway",
                "ec2:CreateCustomerGateway",
                "ec2:CreateDefaultSubnet",
                "ec2:CreateDefaultVpc",
                "ec2:CreateDhcpOptions",
                "ec2:CreateEgressOnlyInternetGateway",
                "ec2:CreateFlowLogs",
                "ec2:CreateInternetGateway",
                "ec2:CreateLocalGatewayRouteTableVpcAssociation",
                "ec2:CreateNatGateway",
                "ec2:CreateNetworkAcl",
                "ec2:CreateNetworkAclEntry",
                "ec2:CreateNetworkInterface",
                "ec2:CreateNetworkInterfacePermission",
                "ec2:CreateRoute",
                "ec2:CreateRouteTable",
                "ec2:CreateSecurityGroup",
                "ec2:CreateSubnet",
                "ec2:CreateTags",
                "ec2:CreateVpc",
                "ec2:CreateVpcEndpoint",
                "ec2:CreateVpcEndpointConnectionNotification",
                "ec2:CreateVpcEndpointServiceConfiguration",
                "ec2:CreateVpcPeeringConnection",
                "ec2:CreateVpnConnection",
                "ec2:CreateVpnConnectionRoute",
                "ec2:CreateVpnGateway",
                "ec2:DeleteCarrierGateway",
                "ec2:DeleteCustomerGateway",
                "ec2:DeleteDhcpOptions",
                "ec2:DeleteEgressOnlyInternetGateway",
                "ec2:DeleteFlowLogs",
                "ec2:DeleteInternetGateway",
                "ec2:DeleteLocalGatewayRouteTableVpcAssociation",
                "ec2:DeleteNatGateway",
                "ec2:DeleteNetworkAcl",
                "ec2:DeleteNetworkAclEntry",
                "ec2:DeleteNetworkInterface",
                "ec2:DeleteNetworkInterfacePermission",
                "ec2:DeleteRoute",
                "ec2:DeleteRouteTable",
                "ec2:DeleteSecurityGroup",
                "ec2:DeleteSubnet",
                "ec2:DeleteTags",
                "ec2:DeleteVpc",
                "ec2:DeleteVpcEndpoints",
                "ec2:DeleteVpcEndpointConnectionNotifications",
                "ec2:DeleteVpcEndpointServiceConfigurations",
                "ec2:DeleteVpcPeeringConnection",
                "ec2:DeleteVpnConnection",
                "ec2:DeleteVpnConnectionRoute",
                "ec2:DeleteVpnGateway",
                "ec2:DescribeAccountAttributes",
                "ec2:DescribeAddresses",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeCarrierGateways",
                "ec2:DescribeClassicLinkInstances",
                "ec2:DescribeCustomerGateways",
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeEgressOnlyInternetGateways",
                "ec2:DescribeFlowLogs",
                "ec2:DescribeInstances",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeIpv6Pools",
                "ec2:DescribeLocalGatewayRouteTables",
                "ec2:DescribeLocalGatewayRouteTableVpcAssociations",
                "ec2:DescribeKeyPairs",
                "ec2:DescribeMovingAddresses",
                "ec2:DescribeNatGateways",
                "ec2:DescribeNetworkAcls",
                "ec2:DescribeNetworkInterfaceAttribute",
                "ec2:DescribeNetworkInterfacePermissions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribePrefixLists",
                "ec2:DescribeRouteTables",
                "ec2:DescribeSecurityGroupReferences",
                "ec2:DescribeSecurityGroupRules",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSecurityGroupVpcAssociations",
                "ec2:DescribeStaleSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeTags",
                "ec2:DescribeVpcAttribute",
                "ec2:DescribeVpcClassicLink",
                "ec2:DescribeVpcClassicLinkDnsSupport",
                "ec2:DescribeVpcEndpointConnectionNotifications",
                "ec2:DescribeVpcEndpointConnections",
                "ec2:DescribeVpcEndpoints",
                "ec2:DescribeVpcEndpointServiceConfigurations",
                "ec2:DescribeVpcEndpointServicePermissions",
                "ec2:DescribeVpcEndpointServices",
                "ec2:DescribeVpcPeeringConnections",
                "ec2:DescribeVpcs",
                "ec2:DescribeVpnConnections",
                "ec2:DescribeVpnGateways",
                "ec2:DetachClassicLinkVpc",
                "ec2:DetachInternetGateway",
                "ec2:DetachNetworkInterface",
                "ec2:DetachVpnGateway",
                "ec2:DisableVgwRoutePropagation",
                "ec2:DisableVpcClassicLink",
                "ec2:DisableVpcClassicLinkDnsSupport",
                "ec2:DisassociateAddress",
                "ec2:DisassociateRouteTable",
                "ec2:DisassociateSecurityGroupVpc",
                "ec2:DisassociateSubnetCidrBlock",
                "ec2:DisassociateVpcCidrBlock",
                "ec2:EnableVgwRoutePropagation",
                "ec2:EnableVpcClassicLink",
                "ec2:EnableVpcClassicLinkDnsSupport",
                "ec2:GetSecurityGroupsForVpc",
                "ec2:ModifyNetworkInterfaceAttribute",
                "ec2:ModifySecurityGroupRules",
                "ec2:ModifySubnetAttribute",
                "ec2:ModifyVpcAttribute",
                "ec2:ModifyVpcEndpoint",
                "ec2:ModifyVpcEndpointConnectionNotification",
                "ec2:ModifyVpcEndpointServiceConfiguration",
                "ec2:ModifyVpcEndpointServicePermissions",
                "ec2:ModifyVpcPeeringConnectionOptions",
                "ec2:ModifyVpcTenancy",
                "ec2:MoveAddressToVpc",
                "ec2:RejectVpcEndpointConnections",
                "ec2:RejectVpcPeeringConnection",
                "ec2:ReleaseAddress",
                "ec2:ReplaceNetworkAclAssociation",
                "ec2:ReplaceNetworkAclEntry",
                "ec2:ReplaceRoute",
                "ec2:ReplaceRouteTableAssociation",
                "ec2:ResetNetworkInterfaceAttribute",
                "ec2:RestoreAddressToClassic",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupIngress",
                "ec2:UnassignIpv6Addresses",
                "ec2:UnassignPrivateIpAddresses",
                "ec2:UpdateSecurityGroupRuleDescriptionsEgress",
                "ec2:UpdateSecurityGroupRuleDescriptionsIngress"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CloudWatchPermissions",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:*",
                "logs:*",
                "sns:CreateTopic",
                "sns:ListSubscriptions",
                "sns:ListSubscriptionsByTopic",
                "sns:ListTopics",
                "sns:Subscribe",
                "iam:GetPolicy",
                "iam:GetPolicyVersion",
                "iam:GetRole",
                "oam:ListSinks",
                "rum:*",
                "synthetics:*",
                "xray:*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:DeleteBucket",
                "s3:PutBucketPolicy",
                "s3:PutBucketTagging",
                "s3:PutBucketPublicAccessBlock",
                "s3:PutBucketLogging",
                "s3:DeleteBucketPolicy",
                "s3:PutObject",
                "s3:DeleteObject",
                "s3:PutEncryptionConfiguration",
                "s3:AbortMultipartUpload",
                "s3:Get*",
                "s3:List*"
            ],
            "Resource": [
                "arn:aws:s3:::*",
                "arn:aws:s3:::*/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "eks:CreateCluster",
                "eks:DeleteCluster",
                "eks:CreateNodegroup",
                "eks:DeleteNodegroup",
                "eks:UpdateNodegroupConfig",
                "eks:UpdateNodegroupVersion",
                "eks:UpdateClusterConfig",
                "eks:UpdateClusterVersion",
                "eks:CreateFargateProfile",
                "eks:DeleteFargateProfile",
                "eks:CreateAddon",
                "eks:DeleteAddon",
                "eks:UpdateAddon",
                "eks:CreateAccessEntry",
                "eks:DeleteAccessEntry",
                "eks:UpdateAccessEntry",
                "eks:AssociateAccessPolicy",
                "eks:AssociateIdentityProviderConfig",
                "eks:DisassociateIdentityProviderConfig",
                "eks:TagResource",
                "eks:UntagResource",
                "eks:AccessKubernetesApi",
                "eks:Describe*",
                "eks:List*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetParameter",
                "ssm:PutParameter",
                "ssm:DeleteParameter",
                "ssm:DescribeParameters"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "kms:ViaService": [
                        "sagemaker.*.amazonaws.com",
                        "ec2.*.amazonaws.com",
                        "s3.*.amazonaws.com",
                        "eks.*.amazonaws.com"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "lambda:CreateFunction",
                "lambda:DeleteFunction",
                "lambda:GetFunction",
                "lambda:UpdateFunctionCode",
                "lambda:UpdateFunctionConfiguration",
                "lambda:AddPermission",
                "lambda:RemovePermission",
                "lambda:PublishLayerVersion",
                "lambda:DeleteLayerVersion",
                "lambda:InvokeFunction",
                "lambda:Get*",
                "lambda:List*",
                "lambda:TagResource"
            ],
            "Resource": [
                "arn:aws:lambda:*:*:function:*",
                "arn:aws:lambda:*:*:layer:*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:DeleteRole",
                "iam:DeleteRolePolicy"
            ],
            "Resource": [
                "arn:aws:iam::*:role/*sagemaker*",
                "arn:aws:iam::*:role/*eks*",
                "arn:aws:iam::*:role/*hyperpod*",
                "arn:aws:iam::*:policy/*sagemaker*",
                "arn:aws:iam::*:policy/*hyperpod*",
                "arn:aws:iam::*:role/*LifeCycleScriptStack*",
                "arn:aws:iam::*:role/*LifeCycleScript*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:CreateRole",
                "iam:TagRole",
                "iam:PutRolePolicy",
                "iam:Get*",
                "iam:List*",
                "iam:AttachRolePolicy",
                "iam:DetachRolePolicy"
            ],
            "Resource": [
                "arn:aws:iam::*:role/*",
                "arn:aws:iam::*:policy/*"
            ]
        },
        {
            "Sid": "FullAccessToFSx",
            "Effect": "Allow",
            "Action": [
                "fsx:AssociateFileGateway",
                "fsx:AssociateFileSystemAliases",
                "fsx:CancelDataRepositoryTask",
                "fsx:CopyBackup",
                "fsx:CopySnapshotAndUpdateVolume",
                "fsx:CreateAndAttachS3AccessPoint",
                "fsx:CreateBackup",
                "fsx:CreateDataRepositoryAssociation",
                "fsx:CreateDataRepositoryTask",
                "fsx:CreateFileCache",
                "fsx:CreateFileSystem",
                "fsx:CreateFileSystemFromBackup",
                "fsx:CreateSnapshot",
                "fsx:CreateStorageVirtualMachine",
                "fsx:CreateVolume",
                "fsx:CreateVolumeFromBackup",
                "fsx:DetachAndDeleteS3AccessPoint",
                "fsx:DeleteBackup",
                "fsx:DeleteDataRepositoryAssociation",
                "fsx:DeleteFileCache",
                "fsx:DeleteFileSystem",
                "fsx:DeleteSnapshot",
                "fsx:DeleteStorageVirtualMachine",
                "fsx:DeleteVolume",
                "fsx:DescribeAssociatedFileGateways",
                "fsx:DescribeBackups",
                "fsx:DescribeDataRepositoryAssociations",
                "fsx:DescribeDataRepositoryTasks",
                "fsx:DescribeFileCaches",
                "fsx:DescribeFileSystemAliases",
                "fsx:DescribeFileSystems",
                "fsx:DescribeS3AccessPointAttachments",
                "fsx:DescribeSharedVpcConfiguration",
                "fsx:DescribeSnapshots",
                "fsx:DescribeStorageVirtualMachines",
                "fsx:DescribeVolumes",
                "fsx:DisassociateFileGateway",
                "fsx:DisassociateFileSystemAliases",
                "fsx:ListTagsForResource",
                "fsx:ManageBackupPrincipalAssociations",
                "fsx:ReleaseFileSystemNfsV3Locks",
                "fsx:RestoreVolumeFromSnapshot",
                "fsx:TagResource",
                "fsx:UntagResource",
                "fsx:UpdateDataRepositoryAssociation",
                "fsx:UpdateFileCache",
                "fsx:UpdateFileSystem",
                "fsx:UpdateSharedVpcConfiguration",
                "fsx:UpdateSnapshot",
                "fsx:UpdateStorageVirtualMachine",
                "fsx:UpdateVolume"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Utenti IAM per l’amministratore del cluster
<a name="sagemaker-hyperpod-prerequisites-iam-cluster-admin"></a>

Gli amministratori dei cluster (amministratori) gestiscono e configurano i SageMaker HyperPod cluster, eseguendo le attività in essi contenute. [SageMaker HyperPod Operazioni del cluster Slurm](sagemaker-hyperpod-operate-slurm.md) Il seguente esempio di policy include il set minimo di autorizzazioni per gli amministratori del cluster per eseguire il SageMaker HyperPod core APIs e gestire i cluster all'interno dell'account. SageMaker HyperPod AWS 

**Nota**  
Gli utenti IAM con ruoli di amministratore del cluster possono utilizzare le chiavi di condizione per fornire un controllo granulare degli accessi durante la gestione delle risorse SageMaker HyperPod del cluster specificamente per le azioni e. `CreateCluster` `UpdateCluster` Per trovare le chiavi di condizione supportate per queste azioni, cerca `CreateCluster` o `UpdateCluster` nelle [Azioni definite dall' SageMaker IA](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsagemaker.html#amazonsagemaker-actions-as-permissions).

------
#### [ Slurm ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreateCluster",
                "sagemaker:ListClusters"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:DeleteCluster",
                "sagemaker:DescribeCluster",
                "sagemaker:DescribeClusterNode",
                "sagemaker:ListClusterNodes",
                "sagemaker:UpdateCluster",
                "sagemaker:UpdateClusterSoftware",
                "sagemaker:BatchDeleteClusterNodes"
            ],
            "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/*"
        }
    ]
}
```

------
#### [ Amazon EKS ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/execution-role-name"
        },
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreateCluster",
                "sagemaker:DeleteCluster",
                "sagemaker:DescribeCluster",
                "sagemaker:DescribeClusterNode",
                "sagemaker:ListClusterNodes",
                "sagemaker:ListClusters",
                "sagemaker:UpdateCluster",
                "sagemaker:UpdateClusterSoftware",
                "sagemaker:BatchAddClusterNodes",
                "sagemaker:BatchDeleteClusterNodes",
                "sagemaker:ListComputeQuotas",
                "sagemaker:ListClusterSchedulerConfigs",
                "sagemaker:DeleteClusterSchedulerConfig",
                "sagemaker:DeleteComputeQuota",
                "eks:DescribeCluster",
                "eks:CreateAccessEntry",
                "eks:DescribeAccessEntry",
                "eks:DeleteAccessEntry",
                "eks:AssociateAccessPolicy",
                "iam:CreateServiceLinkedRole"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Per concedere le autorizzazioni di accesso alla console di SageMaker intelligenza artificiale, utilizza la policy di esempio fornita in [Autorizzazioni necessarie per utilizzare la console Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/security_iam_id-based-policy-examples.html#console-permissions).

*Per concedere le autorizzazioni di accesso alla console Amazon EC2 Systems Manager, utilizza la policy di esempio fornita [in Uso AWS Systems Manager della console nella AWS Systems Manager Guida per l'](https://docs.aws.amazon.com/systems-manager/latest/userguide/security_iam_id-based-policy-examples.html#security_iam_id-based-policy-examples-console)utente.*

Potresti anche considerare di associare la [`AmazonSageMakerFullAccess`](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSageMakerFullAccess)policy al ruolo; tuttavia, tieni presente che la `AmazonSageMakerFullAccess` policy concede le autorizzazioni per tutte le chiamate, le funzionalità e le SageMaker risorse dell'API.

Per indicazioni generali sugli utenti IAM, consulta [IAM users](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) in *AWS Identity and Access Management User Guide*.

## Utenti IAM per Data Scientist
<a name="sagemaker-hyperpod-prerequisites-iam-cluster-user"></a>

Gli scienziati accedono ed eseguono carichi di lavoro ML su nodi del cluster forniti dagli SageMaker HyperPod amministratori del cluster. Agli scienziati del tuo AWS account, devi concedere l'autorizzazione `"ssm:StartSession"` a eseguire il comando SSM. `start-session` Di seguito è riportata una policy di esempio per gli utenti IAM.

------
#### [ Slurm ]

Aggiungi la policy seguente per concedere a un utente IAM le autorizzazioni di sessione SSM per connettersi a una destinazione SSM. Ciò consente di accedere ai HyperPod cluster.

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

****  

```
{
    "Version":"2012-10-17",		 	 	             
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession",
                "ssm:TerminateSession"
            ],
            "Resource": "*"    
        }
    ]
}
```

------

------
#### [ Amazon EKS ]

Concedi le seguenti autorizzazioni di ruolo IAM ai data scientist per l'esecuzione `hyperpod list-clusters` e `hyperpod connect-cluster` i comandi tra i comandi HyperPod CLI. Per ulteriori informazioni sulla HyperPod CLI, consulta. [Esecuzione di processi su SageMaker HyperPod cluster orchestrati da Amazon EKS](sagemaker-hyperpod-eks-run-jobs.md) Include anche le autorizzazioni di sessione SSM per la connessione a una destinazione SSM per tutte le risorse. Ciò consente di accedere ai HyperPod cluster.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DescribeHyerpodClusterPermissions",
            "Effect": "Allow",
            "Action": [
                "sagemaker:DescribeCluster"
            ],
            "Resource": "arn:aws:sagemaker:us-east-2:111122223333:cluster/hyperpod-cluster-name"
        },
        {
            "Sid": "UseEksClusterPermissions",
            "Effect": "Allow",
            "Action": [
                "eks:DescribeCluster"
            ],
            "Resource": "arn:aws:sagemaker:us-east-2:111122223333:cluster/eks-cluster-name"
        },
        {
            "Sid": "ListClustersPermission",
            "Effect": "Allow",
            "Action": [
                "sagemaker:ListClusters"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession",
                "ssm:TerminateSession"
            ],
            "Resource": "*"    
        }
    ]
}
```

------

*Per concedere ai data scientist l'accesso a utenti o ruoli IAM a Kubernetes APIs nel cluster, consulta anche [Concedere a utenti e ruoli IAM l'accesso a Kubernetes APIs](https://docs.aws.amazon.com/eks/latest/userguide/grant-k8s-access.html) nella Amazon EKS User Guide.*

------

## Ruolo IAM per SageMaker HyperPod
<a name="sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod"></a>

 SageMaker HyperPod Affinché i cluster possano funzionare e comunicare con AWS le risorse necessarie, è necessario creare un ruolo IAM da far assumere al HyperPod cluster. 

Inizia collegando la [AWS politica gestita: AmazonSageMakerHyperPodServiceRolePolicy](security-iam-awsmanpol-AmazonSageMakerHyperPodServiceRolePolicy.md) del ruolo gestito. In base AWS a questa politica gestita, i gruppi di istanze del SageMaker HyperPod cluster assumono il ruolo di comunicare con Amazon CloudWatch, Amazon S3 e AWS Systems Manager Agent (agente SSM). Questa policy gestita è il requisito minimo per il corretto funzionamento SageMaker HyperPod delle risorse, quindi è necessario fornire un ruolo IAM con questa policy a tutti i gruppi di istanze. 

**Suggerimento**  
A seconda delle preferenze in merito alla progettazione del livello di autorizzazioni per più gruppi di istanze, puoi anche configurare più ruoli IAM e collegarli a diversi gruppi di istanze. Quando configuri l'accesso utente del cluster a nodi specifici del SageMaker HyperPod cluster, i nodi assumono il ruolo con le autorizzazioni selettive assegnate manualmente.  
Quando configuri l’accesso per i Data Scientist a nodi specifici del cluster con [AWS Systems Manager](https://aws.amazon.com/systems-manager/) (vedi anche [Configurazione AWS Systems Manager ed esecuzione come per il controllo degli accessi degli utenti del cluster](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-ssm)), i nodi del cluster assumono il ruolo con le autorizzazioni selettive assegnate manualmente.

Dopo aver creato i ruoli IAM, prendi nota dei loro nomi e. ARNs I ruoli vengono utilizzati durante la creazione di un SageMaker HyperPod cluster, concedendo le autorizzazioni corrette richieste a ciascun gruppo di istanze per comunicare con le risorse necessarie AWS .

------
#### [ Slurm ]

In caso di HyperPod orchestrazione con Slurm, è necessario allegare la seguente policy gestita al ruolo IAM. SageMaker HyperPod 
+ [AmazonSageMakerClusterInstanceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerClusterInstanceRolePolicy.html)

**(Facoltativo) Autorizzazioni aggiuntive per l'utilizzo SageMaker HyperPod con Amazon Virtual Private Cloud**

Se desideri utilizzare il tuo Amazon Virtual Private Cloud (VPC) al posto del tuo SageMaker VPC AI predefinito, devi aggiungere le seguenti autorizzazioni aggiuntive al ruolo IAM per. SageMaker HyperPod

```
{
    "Effect": "Allow",
    "Action": [
        "ec2:CreateNetworkInterface",
        "ec2:CreateNetworkInterfacePermission",
        "ec2:DeleteNetworkInterface",
        "ec2:DeleteNetworkInterfacePermission",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DescribeVpcs",
        "ec2:DescribeDhcpOptions",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups",
        "ec2:DetachNetworkInterface"
    ],
    "Resource": "*"
}
{
    "Effect": "Allow",
    "Action": "ec2:CreateTags",
    "Resource": [
        "arn:aws:ec2:*:*:network-interface/*"
    ]
}
```

L'elenco seguente riporta le autorizzazioni necessarie per abilitare le funzionalità SageMaker HyperPod del cluster quando configuri il cluster con il tuo Amazon VPC personale.
+ Le seguenti `ec2` autorizzazioni sono necessarie per abilitare la configurazione di un SageMaker HyperPod cluster con il tuo VPC.

  ```
  {
      "Effect": "Allow",
      "Action": [
          "ec2:CreateNetworkInterface",
          "ec2:CreateNetworkInterfacePermission",
          "ec2:DeleteNetworkInterface",
          "ec2:DeleteNetworkInterfacePermission",
          "ec2:DescribeNetworkInterfaces",
          "ec2:DescribeVpcs",
          "ec2:DescribeDhcpOptions",
          "ec2:DescribeSubnets",
          "ec2:DescribeSecurityGroups"
      ],
      "Resource": "*"
  }
  ```
+ È necessaria la seguente `ec2` autorizzazione per abilitare la [SageMaker HyperPod funzionalità di ripristino automatico](sagemaker-hyperpod-resiliency-slurm-auto-resume.md).

  ```
  {
      "Effect": "Allow",
      "Action": [
          "ec2:DetachNetworkInterface"
      ],
      "Resource": "*"
  }
  ```
+ La seguente `ec2` autorizzazione consente di SageMaker HyperPod creare tag sulle interfacce di rete all'interno del tuo account.

  ```
  {
      "Effect": "Allow",
      "Action": "ec2:CreateTags",
      "Resource": [
          "arn:aws:ec2:*:*:network-interface/*"
      ]
  }
  ```

------
#### [ Amazon EKS ]

Per l' HyperPod orchestrazione con Amazon EKS, è necessario collegare le seguenti politiche gestite al ruolo SageMaker HyperPod IAM.
+ [AmazonSageMakerClusterInstanceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerClusterInstanceRolePolicy.html)

Oltre alle policy gestite, collega la policy di autorizzazione seguente al ruolo.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:AssignPrivateIpAddresses",
        "ec2:AttachNetworkInterface",
        "ec2:CreateNetworkInterface",
        "ec2:CreateNetworkInterfacePermission",
        "ec2:DeleteNetworkInterface",
        "ec2:DeleteNetworkInterfacePermission",
        "ec2:DescribeInstances",
        "ec2:DescribeInstanceTypes",
        "ec2:DescribeNetworkInterfaces",
        "ec2:DescribeTags",
        "ec2:DescribeVpcs",
        "ec2:DescribeDhcpOptions",
        "ec2:DescribeSubnets",
        "ec2:DescribeSecurityGroups",
        "ec2:DetachNetworkInterface",
        "ec2:ModifyNetworkInterfaceAttribute",
        "ec2:UnassignPrivateIpAddresses",
        "ecr:BatchCheckLayerAvailability",
        "ecr:BatchGetImage",
        "ecr:GetAuthorizationToken",
        "ecr:GetDownloadUrlForLayer",
        "eks-auth:AssumeRoleForPodIdentity"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2:CreateTags"
      ],
      "Resource": [
        "arn:aws:ec2:*:*:network-interface/*"
      ]
    }
  ]
}
```

------

**Nota**  
L’autorizzazione `"eks-auth:AssumeRoleForPodIdentity"` è facoltativa. È necessaria se prevedi di utilizzare EKS Pod Identity.

**SageMaker HyperPod ruolo collegato al servizio**

Per il supporto di Amazon EKS in SageMaker HyperPod, HyperPod crea un ruolo collegato ai servizi [AWS politica gestita: AmazonSageMakerHyperPodServiceRolePolicy](security-iam-awsmanpol-AmazonSageMakerHyperPodServiceRolePolicy.md) per monitorare e supportare la resilienza sul cluster EKS, ad esempio la sostituzione dei nodi e il riavvio dei lavori.

**Policy IAM aggiuntive per i cluster Amazon EKS con Gruppo di istanze limitato (RIG)**

I carichi di lavoro eseguiti in gruppi di istanze limitati si basano sul ruolo di esecuzione per caricare i dati da Amazon S3. Devi aggiungere le altre autorizzazioni Amazon S3 al ruolo di esecuzione in modo che i processi di personalizzazione in esecuzione nei gruppi di istanze limitati possano recuperare correttamente i dati di input.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket"      
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject"
      ],
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket/*"
      ]
    }
  ]
}
```

------

------

# AWS KMS key Crittografia gestita dal cliente per SageMaker HyperPod
<a name="smcluster-cmk"></a>

Per impostazione predefinita, il volume root Amazon EBS collegato al SageMaker HyperPod cluster viene crittografato utilizzando un file AWS KMS key di proprietà di AWS. Ora hai la possibilità di crittografare sia il volume root Amazon EBS che il volume secondario con le chiavi KMS gestite dal cliente. L'argomento seguente descrive come funzionano le chiavi gestite dai clienti (CMKs) con i volumi nei HyperPod cluster.

**Nota**  
Le seguenti esclusioni si applicano all'utilizzo di chiavi gestite dal cliente per i SageMaker HyperPod cluster:  
La crittografia con chiave gestita dal cliente è supportata solo per i cluster che utilizzano la modalità di provisioning continuo dei nodi. I gruppi di istanze limitati non supportano le chiavi gestite dal cliente.
HyperPod i cluster attualmente non supportano il passaggio del contesto di crittografia nelle richieste di AWS KMS crittografia a chiave gestite dal cliente. Pertanto, assicurati che la policy della chiave KMS non sia limitata da condizioni basate sul contesto di crittografia, perché ciò impedirebbe al cluster di utilizzare la chiave.
La transizione delle chiavi KMS non è attualmente supportata, quindi non puoi modificare la chiave KMS specificata nella tua configurazione. Per utilizzare una chiave diversa, crea un nuovo gruppo di istanze con la chiave desiderata ed elimina quello precedente.
La specificazione delle chiavi gestite dal cliente per HyperPod i cluster tramite la console non è attualmente supportata.

## Permissions
<a name="smcluster-cmk-permissions"></a>

Prima di poter utilizzare la chiave gestita dal cliente con HyperPod, è necessario completare i seguenti prerequisiti:
+ Assicurati che al ruolo di esecuzione AWS IAM che stai utilizzando per l' SageMaker IA siano aggiunte le seguenti autorizzazioni. AWS KMS L'`[ kms:CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)`autorizzazione consente di HyperPod eseguire le seguenti azioni utilizzando le autorizzazioni per la tua chiave KMS:
  + Ridimensionamento del numero di istanze (operazioni) UpdateCluster 
  + Aggiungere nodi del cluster (BatchAddClusterNodes operazioni)
  + Software di applicazione di patch (UpdateClusterSoftware operazioni)

  Per ulteriori informazioni sull’aggiornamento delle autorizzazioni per il ruolo IAM, consulta [Adding and removing IAM identity permissions](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) nella *Guida per l’utente di IAM*.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "kms:CreateGrant",
                  "kms:DescribeKey"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------
+ Aggiungi le autorizzazioni seguenti alla tua policy della chiave KMS. Per ulteriori informazioni, consulta [Change a key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html) in *AWS KMS Developer Guide*.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Id": "hyperpod-key-policy",
      "Statement": [
          {
              "Sid": "Enable IAM User Permissions",
              "Effect": "Allow",
              "Principal": {
                  "AWS": "arn:aws:iam::111122223333:root"
              },
              "Action": "kms:*",
              "Resource": "*"
          },
          {
              "Effect": "Allow",
              "Principal": {
                  "AWS": "arn:aws:iam::111122223333:role/<iam-role>"
              },
              "Action": "kms:CreateGrant",
              "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id",
              "Condition": {
                  "StringEquals": {
                      "kms:ViaService": "sagemaker.us-east-1.amazonaws.com"
                  },
                  "Bool": {
                      "kms:GrantIsForAWSResource": "true"
                  }
              }
          },
          {
              "Effect": "Allow",
              "Principal": {
                  "AWS": "arn:aws:iam::111122223333:role/<iam-role>"
              },
              "Action": "kms:DescribeKey",
              "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id",
              "Condition": {
                  "StringEquals": {
                      "kms:ViaService": "sagemaker.us-east-1.amazonaws.com"
                  }
              }
          }
      ]
  }
  ```

------

## Come utilizzare la chiave KMS
<a name="smcluster-cmk-usage"></a>

È possibile specificare le chiavi gestite dal cliente durante la creazione o l'aggiornamento di un cluster utilizzando le operazioni [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)e le [UpdateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)API. La struttura `InstanceStorageConfigs` consente fino a due configurazioni `EbsVolumeConfig`, in cui è possibile configurare il volume root Amazon EBS e, facoltativamente, un volume secondario. Puoi utilizzare la stessa chiave KMS o una chiave KMS diversa per ogni volume, a seconda delle esigenze.

Puoi scegliere di specificare una chiave gestita dal cliente per nessuno, entrambi o uno solo dei volumi. Tuttavia, non puoi specificare due volumi root o due volumi secondari.

Durante la configurazione del volume root, si applicano i seguenti requisiti:
+ `RootVolume` deve essere impostato su `True`. Il valore predefinito è `False`, che configura il volume secondario.
+ Il campo `VolumeKmsKeyId` è obbligatorio ed è necessario specificare la chiave gestita dal cliente. Questo perché il volume root deve essere sempre crittografato con una chiave AWS proprietaria o una chiave gestita dal cliente (se non si specifica la propria, viene utilizzata una chiave AWS proprietaria).
+ Non è possibile specificare il `VolumeSizeInGB` campo per i volumi root poiché HyperPod determina automaticamente la dimensione del volume principale.

Durante la configurazione del volume secondario, si applicano i seguenti requisiti:
+ `RootVolume` deve essere `False` (il valore predefinito di questo campo è `False`).
+ Il campo `VolumeKmsKeyId` è facoltativo. Puoi utilizzare la stessa chiave gestita dal cliente specificata per il volume root oppure una chiave diversa.
+ Il campo `VolumeSizeInGB` è obbligatorio perché è necessario specificare la dimensione desiderata per il volume secondario.

**Importante**  
Quando utilizzi le chiavi gestite dal cliente, ti consigliamo vivamente di utilizzare chiavi KMS diverse per ogni gruppo di istanze del cluster. L’utilizzo della stessa chiave gestita dal cliente in più gruppi di istanze potrebbe concedere autorizzazioni continuative involontarie anche se provi a revocare una concessione. Ad esempio, se revocate una AWS KMS concessione per i volumi di un gruppo di istanze, quel gruppo di istanze potrebbe comunque consentire operazioni di ridimensionamento e applicazione di patch a causa delle concessioni esistenti su altri gruppi di istanze che utilizzano la stessa chiave. Per evitare questo problema, assicurati di assegnare chiavi KMS univoche a ciascun gruppo di istanze del cluster. Se devi limitare le autorizzazioni sui gruppi di istanze, prova una delle seguenti opzioni:  
Disabilita la chiave KMS.
Applica le policy di rifiuto alla policy della chiave KMS.
Revoca tutte le concessioni del gruppo di istanze per la chiave (invece di revocare una sola concessione).
Elimina il gruppo di istanze.
Elimina il cluster.

Gli esempi seguenti mostrano come specificare le chiavi gestite dal cliente per i volumi root e secondari utilizzando and. CreateCluster UpdateCluster APIs Questi esempi mostrano solo i campi obbligatori per l’integrazione delle chiavi gestite dal cliente. Per configurare una chiave gestita dal cliente per un solo volume, specifica solo una `EbsVolumeConfig`.

Per ulteriori informazioni sulla configurazione delle richieste di creazione e aggiornamento dei cluster, consulta [Creazione di un cluster SageMaker HyperPod](sagemaker-hyperpod-eks-operate-cli-command-create-cluster.md) e [Aggiornamento SageMaker HyperPod della configurazione del cluster](sagemaker-hyperpod-eks-operate-cli-command-update-cluster.md).

------
#### [ CreateCluster ]

L'esempio seguente mostra una AWS CLI richiesta di [creazione di cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-cluster.html) con crittografia a chiave gestita dal cliente.

```
aws sagemaker create-cluster \
  --cluster-name <your-hyperpod-cluster> \
  --instance-groups '[{
    "ExecutionRole": "arn:aws:iam::111122223333:role/<your-SageMaker-Execution-Role>",
    "InstanceCount": 2,
    "InstanceGroupName": "<your-ig-name>",
    "InstanceStorageConfigs": [
            {
                "EbsVolumeConfig": {
                    "RootVolume": True,
                    "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/root-volume-key-id"
                }
            },
            {
                "EbsVolumeConfig": {
                    "VolumeSizeInGB": 100,
                    "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/secondary-volume-key-id"
                }
            }
    ],
    "InstanceType": "<desired-instance-type>"
  }]' \
  --vpc-config '{
    "SecurityGroupIds": ["<sg-id>"],
    "Subnets": ["<subnet-id>"]
  }'
```

------
#### [ UpdateCluster ]

L'esempio seguente mostra una AWS CLI richiesta di [aggiornamento del cluster con crittografia a chiave](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) gestita dal cliente.

```
aws sagemaker update-cluster \
  --cluster-name <your-hyperpod-cluster> \
  --instance-groups '[{
    "InstanceGroupName": "<your-ig-name>",
    "InstanceStorageConfigs": [
            {
                "EbsVolumeConfig": {
                    "RootVolume": true,
                    "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/root-volume-key-id"
                }
            },
            {
                "EbsVolumeConfig": {
                    "VolumeSizeInGB": 100,
                    "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/secondary-volume-key-id"
                }
            }
    ]
  }]'
```

------

# SageMaker HyperPod ricette
<a name="sagemaker-hyperpod-recipes"></a>

 SageMaker HyperPod Le ricette Amazon sono stack di formazione preconfigurati forniti da AWS per aiutarti a iniziare rapidamente ad addestrare e perfezionare i modelli di base disponibili al pubblico (FMs) di varie famiglie di modelli come Llama, Mistral, Mixtral o. DeepSeek Le ricette automatizzano il ciclo di end-to-end formazione, incluso il caricamento di set di dati, l'applicazione di tecniche di addestramento distribuite e la gestione dei checkpoint per un recupero più rapido dai guasti. 

SageMaker HyperPod le ricette sono particolarmente utili per gli utenti che potrebbero non avere competenze approfondite nell'apprendimento automatico, in quanto riducono gran parte della complessità associata all'addestramento di modelli di grandi dimensioni.

È possibile eseguire le ricette all'interno SageMaker HyperPod o come SageMaker attività di formazione.

Le tabelle seguenti sono conservate nel SageMaker HyperPod GitHub repository e forniscono la maggior parte delle up-to-date informazioni sui modelli supportati per il pre-addestramento e la messa a punto, le rispettive ricette e script di avvio, i tipi di istanze supportati e altro ancora.
+ Per l’elenco più aggiornato dei modelli, delle ricette e degli script di avvio supportati per il preaddestramento, consulta la [tabella di preaddestramento](https://github.com/aws/sagemaker-hyperpod-recipes?tab=readme-ov-file#pre-training).
+ Per l’elenco più aggiornato dei modelli, delle ricette e degli script di avvio supportati per il fine-tuning, consulta la [tabella di fine-tuning](https://github.com/aws/sagemaker-hyperpod-recipes?tab=readme-ov-file#fine-tuning).

Per SageMaker HyperPod gli utenti, l'automazione dei flussi di lavoro di end-to-end formazione deriva dall'integrazione dell'adattatore di formazione con le ricette. SageMaker HyperPod L'adattatore di formazione è basato sul [ NeMo framework NVIDIA](https://docs.nvidia.com/nemo-framework/user-guide/latest/overview.html) e sul pacchetto [Neuronx](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/libraries/neuronx-distributed/index.html) Distributed Training. Se hai familiarità con l'utilizzo NeMo, il processo di utilizzo del training adapter è lo stesso. L’adattatore di addestramento esegue la ricetta sul cluster.

![\[Diagramma che mostra il flusso di lavoro delle SageMaker HyperPod ricette. L'icona «Ricetta» in alto si inserisce nella casella «lanciatore di HyperPod ricette». Questa casella si collega a una sezione più ampia denominata “Cluster: slurm, K8s,...” che contiene tre icone GPU con i file delle ricette associati. La parte inferiore della sezione del cluster è denominata «Train with HyperPod Training Adapter».\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/sagemaker-hyperpod-recipes-overview.png)


Puoi anche addestrare un tuo modello definendo una ricetta personalizzata.

Per iniziare con un tutorial, consulta [Esercitazioni](sagemaker-hyperpod-recipes-tutorials.md).

**Topics**
+ [Esercitazioni](sagemaker-hyperpod-recipes-tutorials.md)
+ [Configurazioni predefinite](default-configurations.md)
+ [Configurazioni specifiche dei cluster](cluster-specific-configurations.md)
+ [Considerazioni](cluster-specific-configurations-special-considerations.md)
+ [Impostazioni avanzate](cluster-specific-configurations-advanced-settings.md)
+ [Appendice](appendix.md)

# Esercitazioni
<a name="sagemaker-hyperpod-recipes-tutorials"></a>

I tutorial rapidi seguenti ti aiutano a iniziare a utilizzare le ricette per l’addestramento:
+ SageMaker HyperPod con Slurm Orchestration
  + Preaddestramento
    + [HyperPod tutorial di pre-formazione sul cluster Slurm (GPU)](hyperpod-gpu-slurm-pretrain-tutorial.md)
    + [Tutorial di preaddestramento sul cluster Trainium Slurm](hyperpod-trainium-slurm-cluster-pretrain-tutorial.md)
  + Fine-tuning
    + [HyperPod Tutorial Slurm Cluster Left-LoRa (GPU)](hyperpod-gpu-slurm-peft-lora-tutorial.md)
    + [HyperPod Tutorial Slurm Cluster DPO (GPU)](hyperpod-gpu-slurm-dpo-tutorial.md)
+ SageMaker HyperPod con K8s Orchestration
  + Preaddestramento
    + [Tutorial di preaddestramento sul cluster Kubernetes (GPU)](sagemaker-hyperpod-gpu-kubernetes-cluster-pretrain-tutorial.md)
    + [Tutorial di pre-formazione sui lavori SageMaker di formazione Trainium](sagemaker-hyperpod-trainium-sagemaker-training-jobs-pretrain-tutorial.md)
+ SageMaker lavori di formazione
  + Preaddestramento
    + [SageMaker lavori di formazione tutorial di pre-formazione (GPU)](sagemaker-hyperpod-gpu-sagemaker-training-jobs-pretrain-tutorial.md)
    + [Tutorial di pre-formazione sui lavori SageMaker di formazione Trainium](sagemaker-hyperpod-trainium-sagemaker-training-jobs-pretrain-tutorial.md)

# HyperPod tutorial di pre-formazione sul cluster Slurm (GPU)
<a name="hyperpod-gpu-slurm-pretrain-tutorial"></a>

Il tutorial seguente configura l’ambiente Slurm e avvia un job di addestramento su un modello Llama da 8 miliardi di parametri.

**Prerequisiti**  
Prima di iniziare a configurare l’ambiente per eseguire la ricetta, assicurati di avere:  
Configura un cluster GPU Slurm HyperPod .  
Il tuo cluster HyperPod Slurm deve avere Nvidia Enroot e Pyxis abilitati (questi sono abilitati di default).
Una posizione di archiviazione condivisa. Può essere un FSx file system Amazon o un sistema NFS accessibile dai nodi del cluster.
I dati in uno dei seguenti formati:  
JSON
JSONGZ (JSON compresso)
ARROW
(Facoltativo) È necessario ottenere un HuggingFace token se si utilizzano i pesi del modello HuggingFace per il pre-allenamento o la messa a punto. Per ulteriori informazioni su come ottenere il token, consulta [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## HyperPod Configurazione dell'ambiente GPU Slurm
<a name="hyperpod-gpu-slurm-environment-setup"></a>

Per avviare un processo di formazione su un cluster HyperPod GPU Slurm, procedi come segue:

1. SSH nel nodo head del cluster Slurm.

1. Dopo aver effettuato l’accesso, configura l’ambiente virtuale. Assicurati di utilizzare Python 3.9 o versioni successive.

   ```
   #set up a virtual environment
   python3 -m venv ${PWD}/venv
   source venv/bin/activate
   ```

1. Clona le SageMaker HyperPod ricette e gli archivi degli SageMaker HyperPod adattatori in una posizione di archiviazione condivisa.

   ```
   git clone https://github.com/aws/sagemaker-hyperpod-training-adapter-for-nemo.git
   git clone --recursive https://github.com/aws/sagemaker-hyperpod-recipes.git
   cd sagemaker-hyperpod-recipes
   pip3 install -r requirements.txt
   ```

1. Crea un file squash utilizzando Enroot. Per trovare il rilascio più recente del container SMP, consulta [Note di rilascio per la libreria di parallelismo dei SageMaker modelli](model-parallel-release-notes.md). Per una comprensione più approfondita di come utilizzare il file Enroot, consulta l'immagine [AWS Nemo-Launcher ottimizzata per Build](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/2.nemo-launcher#2-build-aws-optimized-nemo-launcher-image).

   ```
   REGION="<region>"
   IMAGE="658645717510.dkr.ecr.${REGION}.amazonaws.com/smdistributed-modelparallel:2.4.1-gpu-py311-cu121"
   aws ecr get-login-password --region ${REGION} | docker login --username AWS --password-stdin 658645717510.dkr.ecr.${REGION}.amazonaws.com
   enroot import -o $PWD/smdistributed-modelparallel.sqsh dockerd://${IMAGE}
   mv $PWD/smdistributed-modelparallel.sqsh "/fsx/<any-path-in-the-shared-filesystem>"
   ```

1. Per utilizzare il file squash Enroot per iniziare l’addestramento, consulta l’esempio seguente per modificare il file `recipes_collection/config.yaml`.

   ```
   container: /fsx/path/to/your/smdistributed-modelparallel.sqsh
   ```

## Avvio del job di addestramento
<a name="hyperpod-gpu-slurm-launch-training-job"></a>

Dopo aver installato le dipendenze, avvia un job di addestramento dalla directory `sagemaker-hyperpod-recipes/launcher_scripts`. [Ottieni le dipendenze clonando l'archivio delle ricette: SageMaker HyperPod ](https://github.com/aws/sagemaker-hyperpod-recipes)

Prima di tutto, scegli la tua ricetta di addestramento da GitHub. Il nome del modello viene specificato come parte della ricetta. Nell’esempio seguente utilizziamo lo script `launcher_scripts/llama/run_hf_llama3_8b_seq16k_gpu_p5x16_pretrain.sh` per avviare `llama/hf_llama3_8b_seq16k_gpu_p5x16_pretrain`, una ricetta di preaddestramento Llama 8b con lunghezza della sequenza 8192.
+ `IMAGE`: il container della sezione di configurazione dell’ambiente.
+ (Facoltativo) Se hai bisogno di pesi già addestrati, puoi fornire il HuggingFace token HuggingFace impostando la seguente coppia chiave-valore:

  ```
  recipes.model.hf_access_token=<your_hf_token>
  ```

```
#!/bin/bash
IMAGE="${YOUR_IMAGE}"
SAGEMAKER_TRAINING_LAUNCHER_DIR="${SAGEMAKER_TRAINING_LAUNCHER_DIR:-${PWD}}"

TRAIN_DIR="${YOUR_TRAIN_DIR}" # Location of training dataset
VAL_DIR="${YOUR_VAL_DIR}" # Location of validation dataset

# experiment ouput directory
EXP_DIR="${YOUR_EXP_DIR}"

HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \
  recipes=training/llama/hf_llama3_8b_seq16k_gpu_p5x16_pretrain \
  base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \
  recipes.run.name="hf_llama3_8b" \
  recipes.exp_manager.exp_dir="$EXP_DIR" \
  recipes.model.data.train_dir="$TRAIN_DIR" \
  recipes.model.data.val_dir="$VAL_DIR" \
  container="${IMAGE}" \
  +cluster.container_mounts.0="/fsx:/fsx"
```

Dopo aver configurato tutti i parametri richiesti nello script di avvio, puoi eseguire lo script con questo comando.

```
bash launcher_scripts/llama/run_hf_llama3_8b_seq16k_gpu_p5x16_pretrain.sh
```

Per ulteriori informazioni sulla configurazione del cluster Slurm, consulta [Esecuzione di un lavoro di formazione su HyperPod Slurm](cluster-specific-configurations-run-training-job-hyperpod-slurm.md).

# Tutorial di preaddestramento sul cluster Trainium Slurm
<a name="hyperpod-trainium-slurm-cluster-pretrain-tutorial"></a>

Il tutorial seguente configura un ambiente Trainium su un cluster Slurm e avvia un job di addestramento su un modello Llama da 8 miliardi di parametri.

**Prerequisiti**  
Prima di iniziare a configurare l’ambiente, assicurati di avere:  
Configura un cluster Trainium Slurm SageMaker HyperPod .
Una posizione di archiviazione condivisa. Può essere un FSx file system Amazon o un sistema NFS accessibile dai nodi del cluster.
I dati in uno dei seguenti formati:  
JSON
JSONGZ (JSON compresso)
ARROW
(Facoltativo) È necessario ottenere un HuggingFace token se si utilizzano i pesi del modello HuggingFace per il pre-allenamento o la messa a punto. Per ulteriori informazioni su come ottenere il token, consulta [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## Configurazione dell’ambiente Trainium sul cluster Slurm
<a name="hyperpod-trainium-slurm-cluster-pretrain-setup-trainium-environment"></a>

Per avviare un job di addestramento su un cluster Slurm, procedi come descritto di seguito:
+ SSH nel nodo head del cluster Slurm.
+ Dopo aver effettuato l’accesso, configura l’ambiente Neuron. Per informazioni sulla configurazione di Neuron, consulta [Neuron setup steps](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/libraries/nxd-training/tutorials/hf_llama3_8B_SFT.html#setting-up-the-environment). Ti consigliamo di fare affidamento sulle AMI di deep learning preinstallate con i driver di Neuron, come [Ubuntu 20 con DLAMI PyTorch](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/general/setup/neuron-setup/pytorch/neuronx/ubuntu/torch-neuronx-ubuntu20-pytorch-dlami.html#setup-torch-neuronx-ubuntu20-dlami-pytorch).
+ Clona l'archivio delle SageMaker HyperPod ricette in una posizione di archiviazione condivisa nel cluster. La posizione di archiviazione condivisa può essere un FSx file system Amazon o un sistema NFS accessibile dai nodi del cluster.

  ```
  git clone --recursive https://github.com/aws/sagemaker-hyperpod-recipes.git
  cd sagemaker-hyperpod-recipes
  pip3 install -r requirements.txt
  ```
+ Segui il seguente tutorial: [HuggingFace Llama3-8B](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/libraries/nxd-training/tutorials/hf_llama3_8B_pretraining.html#) Pretraining
+ Prepara una configurazione del modello. Le configurazioni del modello disponibili nel repository Neuron. Per la configurazione del modello utilizzata in questo tutorial, consulta la [configurazione del modello llama3 8b](https://github.com/aws-neuron/neuronx-distributed/blob/main/examples/training/llama/tp_zero1_llama_hf_pretrain/8B_config_llama3/config.json).

## Avvio del job di addestramento in Trainium
<a name="hyperpod-trainium-slurm-cluster-pretrain-launch-training-job-trainium"></a>

Per avviare un job di addestramento in Trainium, specifica una configurazione del cluster e una ricetta Neuron. Ad esempio, per avviare un job di preaddestramento di llama3 8b in Trainium, imposta lo script di avvio `launcher_scripts/llama/run_hf_llama3_8b_seq8k_trn1x4_pretrain.sh` su quanto segue:
+ `MODEL_CONFIG`: la configurazione del modello dalla sezione di configurazione dell’ambiente
+ (Facoltativo) Se hai bisogno di pesi già addestrati, puoi fornire il HuggingFace token impostando la seguente coppia chiave-valore: HuggingFace 

  ```
  recipes.model.hf_access_token=<your_hf_token>
  ```

```
#!/bin/bash

#Users should set up their cluster type in /recipes_collection/config.yaml

SAGEMAKER_TRAINING_LAUNCHER_DIR=${SAGEMAKER_TRAINING_LAUNCHER_DIR:-"$(pwd)"}

COMPILE=0
TRAIN_DIR="${TRAIN_DIR}" # Location of training dataset
MODEL_CONFIG="${MODEL_CONFIG}" # Location of config.json for the model

HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \
    base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \
    instance_type="trn1.32xlarge" \
    recipes.run.compile="$COMPILE" \
    recipes.run.name="hf-llama3-8b" \
    recipes.trainer.num_nodes=4 \
    recipes=training/llama/hf_llama3_8b_seq8k_trn1x4_pretrain \
    recipes.data.train_dir="$TRAIN_DIR" \
    recipes.model.model_config="$MODEL_CONFIG"
```

Per avviare il job di addestramento, utilizza il comando seguente:

```
bash launcher_scripts/llama/run_hf_llama3_8b_seq8k_trn1x4_pretrain.sh
```

Per ulteriori informazioni sulla configurazione del cluster Slurm, consulta [Esecuzione di un lavoro di formazione su HyperPod Slurm](cluster-specific-configurations-run-training-job-hyperpod-slurm.md).

# HyperPod Tutorial Slurm Cluster DPO (GPU)
<a name="hyperpod-gpu-slurm-dpo-tutorial"></a>

Il tutorial seguente configura un ambiente Slurm e avvia un processo di ottimizzazione diretta delle preferenze (DPO) su un modello Llama da otto miliardi di parametri.

**Prerequisiti**  
Prima di iniziare a configurare l’ambiente, assicurati di avere:  
Configura il cluster GPU Slurm HyperPod   
Il tuo cluster HyperPod Slurm deve avere Nvidia Enroot e Pyxis abilitati (questi sono abilitati di default).
Una posizione di archiviazione condivisa. Può essere un FSx file system Amazon o un sistema NFS accessibile dai nodi del cluster.
Un set di dati di preferenze binarie tokenizzato in uno dei formati seguenti:  
JSON
JSONGZ (JSON compresso)
ARROW
(Facoltativo) Se ti servono i pesi preallenati di HuggingFace o se stai allenando un modello Llama 3.2, devi procurarti il HuggingFace token prima di iniziare l'allenamento. Per ulteriori informazioni su come ottenere il token, consulta [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## Configura l'ambiente GPU Slurm HyperPod
<a name="hyperpod-gpu-slurm-dpo-hyperpod-gpu-slurm-environment"></a>

Per avviare un job di addestramento su un cluster Slurm, procedi come descritto di seguito:
+ SSH nel nodo head del cluster Slurm.
+ Dopo aver effettuato l’accesso, configura l’ambiente virtuale. Assicurati di utilizzare Python 3.9 o versioni successive.

  ```
  #set up a virtual environment
  python3 -m venv ${PWD}/venv
  source venv/bin/activate
  ```
+ Clona le SageMaker HyperPod ricette e gli archivi degli SageMaker HyperPod adattatori in una posizione di archiviazione condivisa. La posizione di archiviazione condivisa può essere un FSx file system Amazon o un sistema NFS accessibile dai nodi del cluster.

  ```
  git clone https://github.com/aws/sagemaker-hyperpod-training-adapter-for-nemo.git
  git clone --recursive https://github.com/aws/sagemaker-hyperpod-recipes.git
  cd sagemaker-hyperpod-recipes
  pip3 install -r requirements.txt
  ```
+ Crea un file squash utilizzando Enroot. Per trovare il rilascio più recente del container SMP, consulta [Note di rilascio per la libreria di parallelismo dei SageMaker modelli](model-parallel-release-notes.md). Per ulteriori informazioni sull'utilizzo del file Enroot, consulta l'immagine [AWS Nemo-Launcher ottimizzata per Build](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/2.nemo-launcher#2-build-aws-optimized-nemo-launcher-image).

  ```
  REGION="<region>"
  IMAGE="658645717510.dkr.ecr.${REGION}.amazonaws.com/smdistributed-modelparallel:2.4.1-gpu-py311-cu121"
  aws ecr get-login-password --region ${REGION} | docker login --username AWS --password-stdin 658645717510.dkr.ecr.${REGION}.amazonaws.com
  enroot import -o $PWD/smdistributed-modelparallel.sqsh dockerd://${IMAGE}
  mv $PWD/smdistributed-modelparallel.sqsh "/fsx/<any-path-in-the-shared-filesystem>"
  ```
+ Per utilizzare il file squash Enroot per iniziare l’addestramento, consulta l’esempio seguente per modificare il file `recipes_collection/config.yaml`.

  ```
  container: /fsx/path/to/your/smdistributed-modelparallel.sqsh
  ```

## Avvio del job di addestramento
<a name="hyperpod-gpu-slurm-dpo-launch-training-job"></a>

Per avviare un processo DPO per il modello Llama da 8 miliardi di parametri con una lunghezza di sequenza di 8192 su un singolo nodo di calcolo Slurm, imposta lo script di avvio `launcher_scripts/llama/run_hf_llama3_8b_seq8k_gpu_dpo.sh` su quanto segue:
+ `IMAGE`: il container della sezione di configurazione dell’ambiente.
+ `HF_MODEL_NAME_OR_PATH`: definisci il nome o il percorso dei pesi preaddestrati nel parametro hf\$1model\$1name\$1or\$1path della ricetta.
+ (Facoltativo) Se hai bisogno di pesi già addestrati, puoi fornire il HuggingFace token impostando la seguente coppia chiave-valore: HuggingFace 

  ```
  recipes.model.hf_access_token=${HF_ACCESS_TOKEN}
  ```

**Nota**  
Il modello di riferimento utilizzato per il DPO in questa configurazione deriva automaticamente dal modello di base in fase di addestramento (non viene definito in modo esplicito alcun modello di riferimento separato). Gli iperparametri specifici del DPO sono preconfigurati con i valori predefiniti seguenti:  
`beta`: 0.1 (controlla l’intensità della regolarizzazione della divergenza KL)
`label_smoothing`: 0.0 (nessun livellamento applicato alle etichette delle preferenze)

```
recipes.dpo.beta=${BETA}
recipes.dpo.label_smoothing=${LABEL_SMOOTHING}
```

```
#!/bin/bash
IMAGE="${YOUR_IMAGE}"
SAGEMAKER_TRAINING_LAUNCHER_DIR="${SAGEMAKER_TRAINING_LAUNCHER_DIR:-${PWD}}"

TRAIN_DIR="${YOUR_TRAIN_DIR}" # Location of training dataset
VAL_DIR="${YOUR_VAL_DIR}" # Location of validation dataset
# experiment output directory
EXP_DIR="${YOUR_EXP_DIR}"
HF_ACCESS_TOKEN="${YOUR_HF_TOKEN}"
HF_MODEL_NAME_OR_PATH="${HF_MODEL_NAME_OR_PATH}"
BETA="${BETA}"
LABEL_SMOOTHING="${LABEL_SMOOTHING}"

# Add hf_model_name_or_path and turn off synthetic_data
HYDRA_FULL_ERROR=1 python3 ${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py \
recipes=fine-tuning/llama/hf_llama3_8b_seq8k_gpu_dpo \
base_results_dir=${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results \
recipes.run.name="hf_llama3_dpo" \
recipes.exp_manager.exp_dir="$EXP_DIR" \
recipes.model.data.train_dir="$TRAIN_DIR" \
recipes.model.data.val_dir="$VAL_DIR" \
recipes.model.hf_model_name_or_path="$HF_MODEL_NAME_OR_PATH" \
container="${IMAGE}" \
+cluster.container_mounts.0="/fsx:/fsx" \
recipes.model.hf_access_token="${HF_ACCESS_TOKEN}" \
recipes.dpo.enabled=true \
recipes.dpo.beta="${BETA}" \
recipes.dpo.label_smoothing="${LABEL_SMOOTHING}$" \
```

Dopo aver configurato tutti i parametri richiesti nello script precedente, puoi eseguire il job di addestramento.

```
bash launcher_scripts/llama/run_hf_llama3_8b_seq8k_gpu_dpo.sh
```

Per ulteriori informazioni sulla configurazione del cluster Slurm, consulta [Esecuzione di un lavoro di formazione su HyperPod Slurm](cluster-specific-configurations-run-training-job-hyperpod-slurm.md).

# HyperPod Tutorial Slurm Cluster Left-LoRa (GPU)
<a name="hyperpod-gpu-slurm-peft-lora-tutorial"></a>

Il tutorial seguente configura l’ambiente Slurm e avvia un processo di fine-tuning efficiente in termini di parametri (PEFT) su un modello Llama da 8 miliardi di parametri.

**Prerequisiti**  
Prima di iniziare a configurare l’ambiente, assicurati di avere:  
Configura il HyperPod cluster GPU Slurm  
Il tuo cluster HyperPod Slurm deve avere Nvidia Enroot e Pyxis abilitati (questi sono abilitati di default).
Una posizione di archiviazione condivisa. Può essere un FSx file system Amazon o un sistema NFS accessibile dai nodi del cluster.
I dati in uno dei seguenti formati:  
JSON
JSONGZ (JSON compresso)
ARROW
(Facoltativo) Se ti servono i pesi preallenati di HuggingFace o se stai allenando un modello Llama 3.2, devi procurarti il HuggingFace token prima di iniziare l'allenamento. Per ulteriori informazioni su come ottenere il token, consulta [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## Configura l'ambiente GPU Slurm HyperPod
<a name="hyperpod-gpu-slurm-peft-lora-setup-hyperpod-gpu-slurm-environment"></a>

Per avviare un job di addestramento su un cluster Slurm, procedi come descritto di seguito:
+ SSH nel nodo head del cluster Slurm.
+ Dopo aver effettuato l’accesso, configura l’ambiente virtuale. Assicurati di utilizzare Python 3.9 o versioni successive.

  ```
  #set up a virtual environment
  python3 -m venv ${PWD}/venv
  source venv/bin/activate
  ```
+ Clona le SageMaker HyperPod ricette e gli archivi degli SageMaker HyperPod adattatori in una posizione di archiviazione condivisa. La posizione di archiviazione condivisa può essere un FSx file system Amazon o un sistema NFS accessibile dai nodi del cluster.

  ```
  git clone https://github.com/aws/sagemaker-hyperpod-training-adapter-for-nemo.git
  git clone --recursive https://github.com/aws/sagemaker-hyperpod-recipes.git
  cd sagemaker-hyperpod-recipes
  pip3 install -r requirements.txt
  ```
+ Crea un file squash utilizzando Enroot. Per trovare il rilascio più recente del container SMP, consulta [Note di rilascio per la libreria di parallelismo dei SageMaker modelli](model-parallel-release-notes.md). Per ulteriori informazioni sull'utilizzo del file Enroot, consulta l'immagine [AWS Nemo-Launcher ottimizzata per Build](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/2.nemo-launcher#2-build-aws-optimized-nemo-launcher-image).

  ```
  REGION="<region>"
  IMAGE="658645717510.dkr.ecr.${REGION}.amazonaws.com/smdistributed-modelparallel:2.4.1-gpu-py311-cu121"
  aws ecr get-login-password --region ${REGION} | docker login --username AWS --password-stdin 658645717510.dkr.ecr.${REGION}.amazonaws.com
  enroot import -o $PWD/smdistributed-modelparallel.sqsh dockerd://${IMAGE}
  mv $PWD/smdistributed-modelparallel.sqsh "/fsx/<any-path-in-the-shared-filesystem>"
  ```
+ Per utilizzare il file squash Enroot per iniziare l’addestramento, consulta l’esempio seguente per modificare il file `recipes_collection/config.yaml`.

  ```
  container: /fsx/path/to/your/smdistributed-modelparallel.sqsh
  ```

## Avvio del job di addestramento
<a name="hyperpod-gpu-slurm-peft-lora-launch-training-job"></a>

Per avviare un processo PEFT per il modello Llama da 8 miliardi di parametri con una lunghezza di sequenza di 8192 su un singolo nodo di calcolo Slurm, imposta lo script di avvio `launcher_scripts/llama/run_hf_llama3_8b_seq8k_gpu_lora.sh` su quanto segue:
+ `IMAGE`: il container della sezione di configurazione dell’ambiente.
+ `HF_MODEL_NAME_OR_PATH`: definisci il nome o il percorso dei pesi preaddestrati nel parametro hf\$1model\$1name\$1or\$1path della ricetta.
+ (Facoltativo) Se hai bisogno di pesi già addestrati, puoi fornire il HuggingFace token impostando la seguente coppia chiave-valore: HuggingFace 

  ```
  recipes.model.hf_access_token=${HF_ACCESS_TOKEN}
  ```

```
#!/bin/bash
IMAGE="${YOUR_IMAGE}"
SAGEMAKER_TRAINING_LAUNCHER_DIR="${SAGEMAKER_TRAINING_LAUNCHER_DIR:-${PWD}}"

TRAIN_DIR="${YOUR_TRAIN_DIR}" # Location of training dataset
VAL_DIR="${YOUR_VAL_DIR}" # Location of validation dataset

# experiment output directory
EXP_DIR="${YOUR_EXP_DIR}"
HF_ACCESS_TOKEN="${YOUR_HF_TOKEN}"
HF_MODEL_NAME_OR_PATH="${YOUR_HF_MODEL_NAME_OR_PATH}"

# Add hf_model_name_or_path and turn off synthetic_data
HYDRA_FULL_ERROR=1 python3 ${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py \
    recipes=fine-tuning/llama/hf_llama3_8b_seq8k_gpu_lora \
    base_results_dir=${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results \
    recipes.run.name="hf_llama3_lora" \
    recipes.exp_manager.exp_dir="$EXP_DIR" \
    recipes.model.data.train_dir="$TRAIN_DIR" \
    recipes.model.data.val_dir="$VAL_DIR" \
    recipes.model.hf_model_name_or_path="$HF_MODEL_NAME_OR_PATH" \
    container="${IMAGE}" \
    +cluster.container_mounts.0="/fsx:/fsx" \
    recipes.model.hf_access_token="${HF_ACCESS_TOKEN}"
```

Dopo aver configurato tutti i parametri richiesti nello script precedente, puoi eseguire il job di addestramento.

```
bash launcher_scripts/llama/run_hf_llama3_8b_seq8k_gpu_lora.sh
```

Per ulteriori informazioni sulla configurazione del cluster Slurm, consulta [Esecuzione di un lavoro di formazione su HyperPod Slurm](cluster-specific-configurations-run-training-job-hyperpod-slurm.md).

# Tutorial di preaddestramento sul cluster Kubernetes (GPU)
<a name="sagemaker-hyperpod-gpu-kubernetes-cluster-pretrain-tutorial"></a>

Esistono due modi per avviare un job di addestramento in un cluster GPU Kubernetes:
+ [Strumento da riga di comando (consigliato) HyperPod ](https://github.com/aws/sagemaker-hyperpod-cli)
+ Il programma di avvio degli stili NeMo 

**Prerequisiti**  
Prima di iniziare a configurare l’ambiente, assicurati di avere:  
Un cluster HyperPod GPU Kubernetes è configurato correttamente.
Una posizione di archiviazione condivisa. Può essere un FSx file system Amazon o un sistema NFS accessibile dai nodi del cluster.
I dati in uno dei seguenti formati:  
JSON
JSONGZ (JSON compresso)
ARROW
(Facoltativo) È necessario ottenere un HuggingFace token se si utilizzano i pesi del modello HuggingFace per il pre-allenamento o la messa a punto. Per ulteriori informazioni su come ottenere il token, consulta [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## Configurazione dell’ambiente GPU Kubernetes
<a name="sagemaker-hyperpod-gpu-kubernetes-environment-setup"></a>

Per configurare un ambiente GPU Kubernetes, procedi come descritto di seguito:
+ Configura l’ambiente virtuale. Assicurati di utilizzare Python 3.9 o versioni successive.

  ```
  python3 -m venv ${PWD}/venv
  source venv/bin/activate
  ```
+ Installa le dipendenze utilizzando uno dei metodi seguenti:
  + [(Consigliato): metodo dello strumento a riga di comando: HyperPod ](https://github.com/aws/sagemaker-hyperpod-cli)

    ```
    # install HyperPod command line tools
    git clone https://github.com/aws/sagemaker-hyperpod-cli
    cd sagemaker-hyperpod-cli
    pip3 install .
    ```
  + SageMaker HyperPod metodo delle ricette:

    ```
    # install SageMaker HyperPod Recipes.
    git clone --recursive git@github.com:aws/sagemaker-hyperpod-recipes.git
    cd sagemaker-hyperpod-recipes
    pip3 install -r requirements.txt
    ```
+ [Configura kubectl ed eksctl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html).
+ [Installa Helm](https://helm.sh/docs/intro/install/).
+ Connettiti al cluster Kubernetes.

  ```
  aws eks update-kubeconfig --region "CLUSTER_REGION" --name "CLUSTER_NAME"
  hyperpod connect-cluster --cluster-name "CLUSTER_NAME" [--region "CLUSTER_REGION"] [--namespace <namespace>]
  ```

## Avvia il processo di formazione con la SageMaker HyperPod CLI
<a name="sagemaker-hyperpod-gpu-kubernetes-launch-training-job-cli"></a>

Ti consigliamo di utilizzare lo strumento dell'interfaccia SageMaker HyperPod a riga di comando (CLI) per inviare il tuo lavoro di formazione con le tue configurazioni. L’esempio seguente invia un job di addestramento per il modello `hf_llama3_8b_seq16k_gpu_p5x16_pretrain`.
+ `your_training_container`: un container per il Deep Learning. Per trovare il rilascio più recente del container SMP, consulta [Note di rilascio per la libreria di parallelismo dei SageMaker modelli](model-parallel-release-notes.md).
+ (Facoltativo) Se hai bisogno di pesi già addestrati, puoi fornire il HuggingFace token HuggingFace impostando la seguente coppia chiave-valore:

  ```
  "recipes.model.hf_access_token": "<your_hf_token>"
  ```

```
hyperpod start-job --recipe training/llama/hf_llama3_8b_seq16k_gpu_p5x16_pretrain \
--persistent-volume-claims fsx-claim:data \
--override-parameters \
'{
"recipes.run.name": "hf-llama3-8b",
"recipes.exp_manager.exp_dir": "/data/<your_exp_dir>",
"container": "658645717510.dkr.ecr.<region>.amazonaws.com/smdistributed-modelparallel:2.4.1-gpu-py311-cu121",
"recipes.model.data.train_dir": "<your_train_data_dir>",
"recipes.model.data.val_dir": "<your_val_data_dir>",
"cluster": "k8s",
"cluster_type": "k8s"
}'
```

Dopo aver inviato un job di addestramento, puoi utilizzare il comando seguente per verificare se l’invio è riuscito.

```
kubectl get pods
NAME                             READY   STATUS             RESTARTS        AGE
hf-llama3-<your-alias>-worker-0   0/1     running         0               36s
```

Se `STATUS` è `PENDING` o `ContainerCreating`, utilizza il comando seguente per ottenere maggiori dettagli.

```
kubectl describe pod name_of_pod
```

Quando lo `STATUS` del processo diventa `Running`, puoi esaminare il log utilizzando il comando seguente.

```
kubectl logs name_of_pod
```

`STATUS` diventa `Completed` quando esegui `kubectl get pods`.

## Avvio del job di addestramento con l’utilità di avvio delle ricette
<a name="sagemaker-hyperpod-gpu-kubernetes-launch-training-job-recipes"></a>

In alternativa, puoi utilizzare le SageMaker HyperPod ricette per inviare il tuo lavoro di formazione. Per utilizzare le ricette, devi aggiornare `k8s.yaml` e `config.yaml` ed eseguire lo script di avvio.
+ In `k8s.yaml`, aggiorna `persistent_volume_claims`. Monta il FSx claim Amazon `/data` nella directory di ogni pod di elaborazione

  ```
  persistent_volume_claims:
    - claimName: fsx-claim
      mountPath: data
  ```
+ In `config.yaml`, aggiorna `repo_url_or_path` sotto `git`.

  ```
  git:
    repo_url_or_path: <training_adapter_repo>
    branch: null
    commit: null
    entry_script: null
    token: null
  ```
+ Aggiornamento di `launcher_scripts/llama/run_hf_llama3_8b_seq16k_gpu_p5x16_pretrain.sh`
  + `your_contrainer`: un container per il Deep Learning. Per trovare il rilascio più recente del container SMP, consulta [Note di rilascio per la libreria di parallelismo dei SageMaker modelli](model-parallel-release-notes.md).
  + (Facoltativo) Se hai bisogno di pesi già addestrati, puoi fornire il HuggingFace token HuggingFace impostando la seguente coppia chiave-valore:

    ```
    recipes.model.hf_access_token=<your_hf_token>
    ```

  ```
  #!/bin/bash
  #Users should setup their cluster type in /recipes_collection/config.yaml
  REGION="<region>"
  IMAGE="658645717510.dkr.ecr.${REGION}.amazonaws.com/smdistributed-modelparallel:2.4.1-gpu-py311-cu121"
  SAGEMAKER_TRAINING_LAUNCHER_DIR=${SAGEMAKER_TRAINING_LAUNCHER_DIR:-"$(pwd)"}
  EXP_DIR="<your_exp_dir>" # Location to save experiment info including logging, checkpoints, ect
  TRAIN_DIR="<your_training_data_dir>" # Location of training dataset
  VAL_DIR="<your_val_data_dir>" # Location of talidation dataset
  
  HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \
      recipes=training/llama/hf_llama3_8b_seq8k_gpu_p5x16_pretrain \
      base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \
      recipes.run.name="hf-llama3" \
      recipes.exp_manager.exp_dir="$EXP_DIR" \
      cluster=k8s \
      cluster_type=k8s \
      container="${IMAGE}" \
      recipes.model.data.train_dir=$TRAIN_DIR \
      recipes.model.data.val_dir=$VAL_DIR
  ```
+ Avvio del job di addestramento

  ```
  bash launcher_scripts/llama/run_hf_llama3_8b_seq16k_gpu_p5x16_pretrain.sh
  ```

Dopo aver inviato il job di addestramento, puoi utilizzare il comando seguente per verificare se l’invio è riuscito.

```
kubectl get pods
```

```
NAME READY   STATUS             RESTARTS        AGE
hf-llama3-<your-alias>-worker-0   0/1     running         0               36s
```

Se `STATUS` è `PENDING` o `ContainerCreating`, utilizza il comando seguente per ottenere maggiori dettagli.

```
kubectl describe pod <name-of-pod>
```

Quando lo `STATUS` del processo diventa `Running`, puoi esaminare il log utilizzando il comando seguente.

```
kubectl logs name_of_pod
```

`STATUS` diventa `Completed` quando esegui `kubectl get pods`.

Per ulteriori informazioni sulla connessione al cluster k8s, consulta [Esecuzione di un processo di formazione su k8s HyperPod](cluster-specific-configurations-run-training-job-hyperpod-k8s.md).

# Tutorial di preaddestramento sul cluster Trainium Kubernetes
<a name="sagemaker-hyperpod-trainium-kubernetes-cluster-pretrain-tutorial"></a>

Puoi utilizzare uno dei metodi seguenti per avviare un job di addestramento in un cluster Trainium Kubernetes.
+ [Strumento da riga di comando (consigliato) HyperPod ](https://github.com/aws/sagemaker-hyperpod-cli)
+ Il programma di avvio degli stili NeMo 

**Prerequisiti**  
Prima di iniziare a configurare l’ambiente, assicurati di avere:  
Configura un cluster HyperPod Trainium Kubernetes
Una posizione di archiviazione condivisa che può essere un FSx file system Amazon o un sistema NFS accessibile dai nodi del cluster.
I dati in uno dei seguenti formati:  
JSON
JSONGZ (JSON compresso)
ARROW
(Facoltativo) È necessario ottenere un HuggingFace token se si utilizzano i pesi del modello HuggingFace per il pre-allenamento o la messa a punto. Per ulteriori informazioni su come ottenere il token, consulta [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## Configurazione dell’ambiente Trainium Kubernetes
<a name="sagemaker-hyperpod-trainium-setup-trainium-kubernetes-environment"></a>

Per configurare l’ambiente Trainium Kubernetes, procedi come descritto di seguito:

1. **Completa i passaggi del seguente tutorial: [HuggingFace Llama3-8B](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/libraries/nxd-training/tutorials/hf_llama3_8B_pretraining.html#download-the-dataset) Pretraining a partire da Scarica il set di dati.** 

1. Prepara una configurazione del modello. Sono disponibili nel repository Neuron. Per questo tutorial, puoi utilizzare la configurazione del modello llama3 8b.

1. Configura l’ambiente virtuale. Assicurati di utilizzare Python 3.9 o versioni successive.

   ```
   python3 -m venv ${PWD}/venv
   source venv/bin/activate
   ```

1. Installazione delle dipendenze
   + (Consigliato) Utilizza il seguente strumento da riga di comando HyperPod 

     ```
     # install HyperPod command line tools
     git clone https://github.com/aws/sagemaker-hyperpod-cli
     cd sagemaker-hyperpod-cli
     pip3 install .
     ```
   + Se utilizzi SageMaker HyperPod ricette, specifica quanto segue

     ```
     # install SageMaker HyperPod Recipes.
     git clone --recursive git@github.com:aws/sagemaker-hyperpod-recipes.git
     cd sagemaker-hyperpod-recipes
     pip3 install -r requirements.txt
     ```

1. [Configura kubectl ed eksctl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html).

1. [Installa Helm](https://helm.sh/docs/intro/install/).

1. Connettiti al cluster Kubernetes.

   ```
   aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}"
   hyperpod connect-cluster --cluster-name "${CLUSTER_NAME}" [--region "${CLUSTER_REGION}"] [--namespace <namespace>]
   ```

1. Container: il [container Neuron](https://github.com/aws-neuron/deep-learning-containers?tab=readme-ov-file#pytorch-training-neuronx)

## Avvia il processo di formazione con la SageMaker HyperPod CLI
<a name="sagemaker-hyperpod-trainium-launch-training-job-cli"></a>

Ti consigliamo di utilizzare lo strumento dell'interfaccia SageMaker HyperPod a riga di comando (CLI) per inviare il tuo lavoro di formazione con le tue configurazioni. L’esempio seguente invia un job di addestramento per il modello Trainium `hf_llama3_8b_seq8k_trn1x4_pretrain`.
+ `your_neuron_container`: il [container Neuron](https://github.com/aws-neuron/deep-learning-containers?tab=readme-ov-file#pytorch-training-neuronx).
+ `your_model_config`: la configurazione del modello dalla sezione di configurazione dell’ambiente.
+ (Facoltativo) Se hai bisogno di pesi già addestrati, puoi fornire il HuggingFace token HuggingFace impostando la seguente coppia chiave-valore:

  ```
  "recipes.model.hf_access_token": "<your_hf_token>"
  ```

```
hyperpod start-job --recipe training/llama/hf_llama3_8b_seq8k_trn1x4_pretrain \
--persistent-volume-claims fsx-claim:data \
--override-parameters \
'{
 "cluster": "k8s",
 "cluster_type": "k8s",
 "container": "<your_neuron_contrainer>",
 "recipes.run.name": "hf-llama3",
 "recipes.run.compile": 0,
 "recipes.model.model_config": "<your_model_config>",
 "instance_type": "trn1.32xlarge",
 "recipes.data.train_dir": "<your_train_data_dir>"
}'
```

Dopo aver inviato un job di addestramento, puoi utilizzare il comando seguente per verificare se l’invio è riuscito.

```
kubectl get pods
NAME                              READY   STATUS             RESTARTS        AGE
hf-llama3-<your-alias>-worker-0   0/1     running         0               36s
```

Se `STATUS` è `PENDING` o `ContainerCreating`, utilizza il comando seguente per ottenere maggiori dettagli.

```
kubectl describe pod name_of_pod
```

Quando lo `STATUS` del processo diventa `Running`, puoi esaminare il log utilizzando il comando seguente.

```
kubectl logs name_of_pod
```

`STATUS` diventa `Completed` quando esegui `kubectl get pods`.

## Avvio del job di addestramento con l’utilità di avvio delle ricette
<a name="sagemaker-hyperpod-trainium-launch-training-job-recipes"></a>

In alternativa, utilizza le SageMaker HyperPod ricette per inviare il tuo lavoro di formazione. Per inviare il job di addestramento utilizzando una ricetta, aggiorna `k8s.yaml` e `config.yaml`. Esegui lo script bash per il modello per avviarlo.
+ In`k8s.yaml`, aggiorna persistent\$1volume\$1claims per montare il claim FSx Amazon nella directory /data nei nodi di calcolo

  ```
  persistent_volume_claims:
    - claimName: fsx-claim
      mountPath: data
  ```
+ scripts/llama/runAggiorna launcher\$1 \$1hf\$1llama3\$18b\$1seq8k\$1trn1x4\$1pretrain.sh
  + `your_neuron_contrainer`: il container della sezione di configurazione dell’ambiente
  + `your_model_config`: la configurazione del modello dalla sezione di configurazione dell’ambiente

  (Facoltativo) Se hai bisogno di pesi già addestrati, puoi fornire il HuggingFace token HuggingFace impostando la seguente coppia chiave-valore:

  ```
  recipes.model.hf_access_token=<your_hf_token>
  ```

  ```
   #!/bin/bash
  #Users should set up their cluster type in /recipes_collection/config.yaml
  IMAGE="<your_neuron_contrainer>"
  MODEL_CONFIG="<your_model_config>"
  SAGEMAKER_TRAINING_LAUNCHER_DIR=${SAGEMAKER_TRAINING_LAUNCHER_DIR:-"$(pwd)"}
  TRAIN_DIR="<your_training_data_dir>" # Location of training dataset
  VAL_DIR="<your_val_data_dir>" # Location of talidation dataset
  
  HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \
    recipes=training/llama/hf_llama3_8b_seq8k_trn1x4_pretrain \
    base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \
    recipes.run.name="hf-llama3-8b" \
    instance_type=trn1.32xlarge \
    recipes.model.model_config="$MODEL_CONFIG" \
    cluster=k8s \
    cluster_type=k8s \
    container="${IMAGE}" \
    recipes.data.train_dir=$TRAIN_DIR \
    recipes.data.val_dir=$VAL_DIR
  ```
+ Avvia il processo.

  ```
  bash launcher_scripts/llama/run_hf_llama3_8b_seq8k_trn1x4_pretrain.sh
  ```

Dopo aver inviato un job di addestramento, puoi utilizzare il comando seguente per verificare se l’invio è riuscito.

```
kubectl get pods
NAME                             READY   STATUS             RESTARTS        AGE
hf-llama3-<your-alias>-worker-0   0/1     running         0               36s
```

Se lo `STATUS` è `PENDING` o`ContainerCreating`, utilizza il comando seguente per ottenere maggiori dettagli.

```
kubectl describe pod name_of_pod
```

Quando lo STATUS del processo diventa Running, puoi esaminare il log utilizzando il comando seguente.

```
kubectl logs name_of_pod
```

`STATUS` diventa `Completed` quando esegui `kubectl get pods`.

Per ulteriori informazioni sulla connessione al cluster k8s, consulta [Tutorial di preaddestramento sul cluster Trainium Kubernetes](#sagemaker-hyperpod-trainium-kubernetes-cluster-pretrain-tutorial).

# SageMaker lavori di formazione tutorial di pre-formazione (GPU)
<a name="sagemaker-hyperpod-gpu-sagemaker-training-jobs-pretrain-tutorial"></a>

Questo tutorial ti guida attraverso il processo di configurazione ed esecuzione di un processo di pre-formazione utilizzando processi di formazione con SageMaker istanze GPU.
+ Configurare l'ambiente
+ Avvia un processo di formazione utilizzando le ricette SageMaker HyperPod 

Prima di cominciare, assicurati che i requisiti seguenti siano soddisfatti.

**Prerequisiti**  
Prima di iniziare a configurare l’ambiente, assicurati di avere:  
 FSx File system Amazon o un bucket Amazon S3 in cui caricare i dati e generare gli artefatti di addestramento.
È stata richiesta una quota di servizio per 1x ml.p4d.24xlarge e 1x ml.p5.48xlarge su Amazon AI. SageMaker Per richiedere un aumento delle Service Quotas, procedi come descritto di seguito:  
Nella console AWS Service Quotas, accedi ai AWS servizi,
Scegli **Amazon SageMaker AI**.
Scegli un’istanza ml.p4d.24xlarge e un’istanza ml.p5.48xlarge.
Crea un ruolo AWS Identity and Access Management(IAM) con le seguenti politiche gestite per concedere all' SageMaker IA le autorizzazioni per eseguire gli esempi.  
AmazonSageMakerFullAccess
Amazon EC2 FullAccess
I dati in uno dei seguenti formati:  
JSON
JSONGZ (JSON compresso)
ARROW
(Facoltativo) Se utilizzi i pesi modello di cui disponi HuggingFace per il pre-allenamento o la messa a punto, devi ricevere un HuggingFace token. Per ulteriori informazioni su come ottenere il token, consulta [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## Configurazione dell'ambiente di lavoro di formazione su GPU SageMaker
<a name="sagemaker-hyperpod-gpu-sagemaker-training-jobs-environment-setup"></a>

Prima di eseguire un processo di SageMaker formazione, configura le AWS credenziali e la regione preferita eseguendo il `aws configure` comando. In alternativa al comando configure, puoi fornire le tue credenziali tramite variabili di ambiente come`AWS_ACCESS_KEY_ID`, e `AWS_SESSION_TOKEN.` Per ulteriori informazioni`AWS_SECRET_ACCESS_KEY`, consulta [SageMaker AI Python SDK](https://github.com/aws/sagemaker-python-sdk).

Consigliamo vivamente di utilizzare un notebook SageMaker AI Jupyter in SageMaker AI JupyterLab per avviare un processo di formazione. SageMaker Per ulteriori informazioni, consulta [SageMaker JupyterLab](studio-updated-jl.md).
+ (Facoltativo) Configura l’ambiente virtuale e le dipendenze. Se utilizzi un notebook Jupyter in Amazon SageMaker Studio, puoi saltare questo passaggio. Assicurati di utilizzare Python 3.9 o versioni successive.

  ```
  # set up a virtual environment
  python3 -m venv ${PWD}/venv
  source venv/bin/activate
  # install dependencies after git clone.
  
  git clone --recursive git@github.com:aws/sagemaker-hyperpod-recipes.git
  cd sagemaker-hyperpod-recipes
  pip3 install -r requirements.txt
  # Set the aws region.
  
  aws configure set <your_region>
  ```
+ Installa SageMaker AI Python SDK

  ```
  pip3 install --upgrade sagemaker
  ```
+ `Container`: Il contenitore GPU viene impostato automaticamente dall'SDK SageMaker AI Python. Puoi anche fornire un tuo container.
**Nota**  
Se stai eseguendo un job di addestramento multimodale Llama 3.2, la versione di `transformers` deve essere `4.45.2 `o superiore.

  Aggiungi `transformers==4.45.2` `requirements.txt` a `source_dir` solo quando usi SageMaker AI Python SDK. Ad esempio, aggiungilo se lo usi in un notebook in AI. SageMaker JupyterLab

  Se utilizzi HyperPod ricette per l'avvio utilizzando il tipo di cluster`sm_jobs`, ciò verrà eseguito automaticamente.

## Avvio del job di addestramento con un notebook Jupyter
<a name="sagemaker-hyperpod-gpu-sagemaker-training-jobs-launch-training-job-notebook"></a>

Puoi usare il seguente codice Python per eseguire un processo di SageMaker formazione con la tua ricetta. Sfrutta lo PyTorch stimatore dell'[SDK AI SageMaker Python](https://sagemaker.readthedocs.io/en/stable/) per inviare la ricetta. L'esempio seguente avvia la ricetta llama3-8b sulla piattaforma AI Training. SageMaker 

```
import os
import sagemaker,boto3
from sagemaker.debugger import TensorBoardOutputConfig

from sagemaker.pytorch import PyTorch

sagemaker_session = sagemaker.Session()
role = sagemaker.get_execution_role()

bucket = sagemaker_session.default_bucket() 
output = os.path.join(f"s3://{bucket}", "output")
output_path = "<s3-URI>"

overrides = {
    "run": {
        "results_dir": "/opt/ml/model",
    },
    "exp_manager": {
        "exp_dir": "",
        "explicit_log_dir": "/opt/ml/output/tensorboard",
        "checkpoint_dir": "/opt/ml/checkpoints",
    },   
    "model": {
        "data": {
            "train_dir": "/opt/ml/input/data/train",
            "val_dir": "/opt/ml/input/data/val",
        },
    },
}

tensorboard_output_config = TensorBoardOutputConfig(
    s3_output_path=os.path.join(output, 'tensorboard'),
    container_local_output_path=overrides["exp_manager"]["explicit_log_dir"]
)

estimator = PyTorch(
    output_path=output_path,
    base_job_name=f"llama-recipe",
    role=role,
    instance_type="ml.p5.48xlarge",
    training_recipe="training/llama/hf_llama3_8b_seq8k_gpu_p5x16_pretrain",
    recipe_overrides=recipe_overrides,
    sagemaker_session=sagemaker_session,
    tensorboard_output_config=tensorboard_output_config,
)

estimator.fit(inputs={"train": "s3 or fsx input", "val": "s3 or fsx input"}, wait=True)
```

Il codice precedente crea un oggetto PyTorch estimatore con la ricetta di addestramento e quindi adatta il modello utilizzando il metodo. `fit()` Utilizza il parametro training\$1recipe per specificare la ricetta da utilizzare per l’addestramento.

**Nota**  
Se stai eseguendo un job di addestramento multimodale Llama 3.2, la versione di transformers deve essere 4.45.2 o superiore.

Aggiungi `transformers==4.45.2` `requirements.txt` a `source_dir` solo quando utilizzi direttamente SageMaker AI Python SDK. Ad esempio, devi aggiungere la versione al file di testo quando utilizzi un notebook Jupyter.

Quando distribuisci l'endpoint per un lavoro di SageMaker formazione, devi specificare l'URI dell'immagine che stai utilizzando. Se non lo fornisci, lo strumento di stima utilizza l’immagine di addestramento per l’implementazione. Le immagini di formazione SageMaker HyperPod fornite non contengono le dipendenze necessarie per l'inferenza e la distribuzione. Di seguito è riportato un esempio di come utilizzare un’immagine di inferenza per l’implementazione:

```
from sagemaker import image_uris
container=image_uris.retrieve(framework='pytorch',region='us-west-2',version='2.0',py_version='py310',image_scope='inference', instance_type='ml.p4d.24xlarge')
predictor = estimator.deploy(initial_instance_count=1,instance_type='ml.p4d.24xlarge',image_uri=container)
```

**Nota**  
L'esecuzione del codice precedente sull'istanza del notebook Sagemaker potrebbe richiedere più dei 5 GB di spazio di archiviazione predefiniti forniti dall'intelligenza artificiale. SageMaker JupyterLab Se riscontri problemi relativi allo spazio non disponibile, crea una nuova istanza del notebook di tipo diverso e aumenta lo spazio di archiviazione del notebook.

## Avvio del job di addestramento con l’utilità di avvio delle ricette
<a name="sagemaker-hyperpod-gpu-sagemaker-training-jobs-launch-training-job-recipes"></a>

Aggiorna il file `./recipes_collection/cluster/sm_jobs.yaml` in modo che abbia il seguente aspetto:

```
sm_jobs_config:
  output_path: <s3_output_path>
  tensorboard_config:
    output_path: <s3_output_path>
    container_logs_path: /opt/ml/output/tensorboard  # Path to logs on the container
  wait: True  # Whether to wait for training job to finish
  inputs:  # Inputs to call fit with. Set either s3 or file_system, not both.
    s3:  # Dictionary of channel names and s3 URIs. For GPUs, use channels for train and validation.
      train: <s3_train_data_path>
      val: null
  additional_estimator_kwargs:  # All other additional args to pass to estimator. Must be int, float or string.
    max_run: 180000
    enable_remote_debug: True
  recipe_overrides:
    exp_manager:
      explicit_log_dir: /opt/ml/output/tensorboard
    data:
      train_dir: /opt/ml/input/data/train
    model:
      model_config: /opt/ml/input/data/train/config.json
    compiler_cache_url: "<compiler_cache_url>"
```

Aggiorna `./recipes_collection/config.yaml` per specificare `sm_jobs` in `cluster` e `cluster_type`.

```
defaults:
  - _self_
  - cluster: sm_jobs  # set to `slurm`, `k8s` or `sm_jobs`, depending on the desired cluster
  - recipes: training/llama/hf_llama3_8b_seq8k_trn1x4_pretrain
cluster_type: sm_jobs  # bcm, bcp, k8s or sm_jobs. If bcm, k8s or sm_jobs, it must match - cluster above.
```

Avvia il processo con il comando seguente.

```
python3 main.py --config-path recipes_collection --config-name config
```

Per ulteriori informazioni sulla configurazione dei lavori di SageMaker formazione, consulta Esegui un lavoro di formazione sui lavori di formazione. SageMaker 

# Tutorial di pre-formazione sui lavori SageMaker di formazione Trainium
<a name="sagemaker-hyperpod-trainium-sagemaker-training-jobs-pretrain-tutorial"></a>

Questo tutorial ti guida attraverso il processo di configurazione ed esecuzione di un lavoro di pre-formazione utilizzando lavori di formazione con SageMaker AWS istanze Trainium.
+ Configurare l'ambiente
+ Avvio di un job di addestramento

Prima di cominciare, assicurati che i requisiti seguenti siano soddisfatti.

**Prerequisiti**  
Prima di iniziare a configurare l’ambiente, assicurati di avere:  
 FSx File system Amazon o bucket S3 in cui è possibile caricare i dati e generare gli artefatti di addestramento.
Richiedi una quota di servizio per l'`ml.trn1.32xlarge`istanza su Amazon SageMaker AI. Per richiedere un aumento delle Service Quotas, procedi come descritto di seguito:  
Vai alla console AWS Service Quotas.
Scegli i AWS servizi.
Seleziona JupyterLab.
Specifica un’istanza per `ml.trn1.32xlarge`.
Crea un ruolo AWS Identity and Access Management (IAM) con `AmazonSageMakerFullAccess` le policy `AmazonEC2FullAccess` gestite. Queste politiche forniscono ad Amazon SageMaker AI le autorizzazioni per eseguire gli esempi.
I dati in uno dei seguenti formati:  
JSON
JSONGZ (JSON compresso)
ARROW
(Facoltativo) Se ti servono i pesi preallenati di HuggingFace o se stai allenando un modello Llama 3.2, devi ottenere il HuggingFace token prima di iniziare l'allenamento. Per ulteriori informazioni su come ottenere il token, consulta [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## Configura il tuo ambiente per i lavori di formazione Trainium SageMaker
<a name="sagemaker-hyperpod-trainium-sagemaker-training-jobs-environment-setup"></a>

Prima di eseguire un processo di SageMaker formazione, utilizza il `aws configure` comando per configurare AWS le credenziali e la regione preferita. In alternativa, puoi fornire le tue credenziali anche tramite variabili di ambiente come `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` e `AWS_SESSION_TOKEN`. Per ulteriori informazioni, consulta [SageMaker AI Python SDK](https://github.com/aws/sagemaker-python-sdk).

Consigliamo vivamente di utilizzare un notebook SageMaker AI Jupyter in SageMaker AI JupyterLab per avviare un processo di formazione. SageMaker Per ulteriori informazioni, consulta [SageMaker JupyterLab](studio-updated-jl.md).
+ (Facoltativo) Se utilizzi il notebook Jupyter in Amazon SageMaker Studio, puoi saltare l'esecuzione del comando seguente. Assicurati di utilizzare una versione uguale o superiore a Python 3.9.

  ```
  # set up a virtual environment
  python3 -m venv ${PWD}/venv
  source venv/bin/activate
  # install dependencies after git clone.
  
  git clone --recursive git@github.com:aws/sagemaker-hyperpod-recipes.git
  cd sagemaker-hyperpod-recipes
  pip3 install -r requirements.txt
  ```
+ Installa SageMaker AI Python SDK

  ```
  pip3 install --upgrade sagemaker
  ```
+ 
  + Se stai eseguendo un job di addestramento multimodale Llama 3.2, la versione di `transformers` deve essere `4.45.2` o superiore.
    + Aggiungi `transformers==4.45.2` a `requirements.txt` in source\$1dir solo quando utilizzi l'SDK AI Python. SageMaker 
    + Se si utilizzano HyperPod ricette da avviare utilizzandole `sm_jobs` come tipo di cluster, non è necessario specificare la versione dei transformers.
  + `Container`: Il contenitore Neuron viene impostato automaticamente da SageMaker AI Python SDK.

## Avvio del job di addestramento con un notebook Jupyter
<a name="sagemaker-hyperpod-trainium-sagemaker-training-jobs-launch-training-job-notebook"></a>

Puoi usare il seguente codice Python per eseguire un processo di SageMaker formazione utilizzando la tua ricetta. Sfrutta lo PyTorch stimatore dell'[SDK AI SageMaker Python](https://sagemaker.readthedocs.io/en/stable/) per inviare la ricetta. L'esempio seguente avvia la ricetta llama3-8b come AI Training Job. SageMaker 
+ `compiler_cache_url`: cache da utilizzare per salvare gli artefatti compilati, ad esempio un artefatto Amazon S3.

```
import os
import sagemaker,boto3
from sagemaker.debugger import TensorBoardOutputConfig

from sagemaker.pytorch import PyTorch

sagemaker_session = sagemaker.Session()
role = sagemaker.get_execution_role()

recipe_overrides = {
    "run": {
        "results_dir": "/opt/ml/model",
    },
    "exp_manager": {
        "explicit_log_dir": "/opt/ml/output/tensorboard",
    },
    "data": {
        "train_dir": "/opt/ml/input/data/train",
    },
    "model": {
        "model_config": "/opt/ml/input/data/train/config.json",
    },
    "compiler_cache_url": "<compiler_cache_url>"
} 

tensorboard_output_config = TensorBoardOutputConfig(
    s3_output_path=os.path.join(output, 'tensorboard'),
    container_local_output_path=overrides["exp_manager"]["explicit_log_dir"]
)

estimator = PyTorch(
    output_path=output_path,
    base_job_name=f"llama-trn",
    role=role,
    instance_type="ml.trn1.32xlarge",
    sagemaker_session=sagemaker_session,
    training_recipe="training/llama/hf_llama3_70b_seq8k_trn1x16_pretrain",
    recipe_overrides=recipe_overrides,
)

estimator.fit(inputs={"train": "your-inputs"}, wait=True)
```

Il codice precedente crea un oggetto PyTorch estimatore con la ricetta di addestramento e quindi adatta il modello utilizzando il metodo. `fit()` Utilizza il parametro `training_recipe` per specificare la ricetta da utilizzare per l’addestramento.

## Avvio del job di addestramento con l’utilità di avvio delle ricette
<a name="sagemaker-hyperpod-trainium-sagemaker-training-jobs-launch-training-job-recipes"></a>
+ Aggiornamento di `./recipes_collection/cluster/sm_jobs.yaml`
  + compiler\$1cache\$1url: l’URL utilizzato per salvare gli artefatti. Può essere un URL di Amazon S3.

  ```
  sm_jobs_config:
    output_path: <s3_output_path>
    wait: True
    tensorboard_config:
      output_path: <s3_output_path>
      container_logs_path: /opt/ml/output/tensorboard  # Path to logs on the container
    wait: True  # Whether to wait for training job to finish
    inputs:  # Inputs to call fit with. Set either s3 or file_system, not both.
      s3:  # Dictionary of channel names and s3 URIs. For GPUs, use channels for train and validation.
        train: <s3_train_data_path>
        val: null
    additional_estimator_kwargs:  # All other additional args to pass to estimator. Must be int, float or string.
      max_run: 180000
      image_uri: <your_image_uri>
      enable_remote_debug: True
      py_version: py39
    recipe_overrides:
      model:
        exp_manager:
          exp_dir: <exp_dir>
        data:
          train_dir: /opt/ml/input/data/train
          val_dir: /opt/ml/input/data/val
  ```
+ Aggiornamento di `./recipes_collection/config.yaml`

  ```
  defaults:
    - _self_
    - cluster: sm_jobs
    - recipes: training/llama/hf_llama3_8b_seq8k_trn1x4_pretrain
  cluster_type: sm_jobs # bcm, bcp, k8s or sm_jobs. If bcm, k8s or sm_jobs, it must match - cluster above.
  
  instance_type: ml.trn1.32xlarge
  base_results_dir: ~/sm_job/hf_llama3_8B # Location to store the results, checkpoints and logs.
  ```
+ Avvia il processo con `main.py`.

  ```
  python3 main.py --config-path recipes_collection --config-name config
  ```

Per ulteriori informazioni sulla configurazione dei lavori di SageMaker formazione, vedere. [SageMaker lavori di formazione tutorial di pre-formazione (GPU)](sagemaker-hyperpod-gpu-sagemaker-training-jobs-pretrain-tutorial.md)

# Configurazioni predefinite
<a name="default-configurations"></a>

Questa sezione descrive i componenti e le impostazioni essenziali necessari per avviare e personalizzare i processi di formazione utilizzando il Large Language Model (LLM). SageMaker HyperPod Questa sezione descrive i repository chiave, i file di configurazione e le strutture delle ricette che costituiscono la base dei job di addestramento. La comprensione di queste configurazioni predefinite è fondamentale per impostare e gestire in modo efficace i flussi di lavoro di addestramento LLM, sia quando utilizzi le ricette predefinite sia quando le personalizzi in base alle tue esigenze.

**Topics**
+ [GitHub archivi](github-repositories.md)
+ [Configurazione generale](sagemaker-hyperpod-recipes-general-configuration.md)

# GitHub archivi
<a name="github-repositories"></a>

Per avviare un processo di formazione, si utilizzano file provenienti da due archivi distinti GitHub:
+ [SageMaker HyperPod ricette](https://github.com/aws/sagemaker-hyperpod-recipes)
+ [SageMaker HyperPod adattatore da allenamento per NeMo](https://github.com/aws/sagemaker-hyperpod-training-adapter-for-nemo)

Questi repository contengono componenti essenziali per l’avvio, la gestione e la personalizzazione dei job di addestramento dei modelli linguistici di grandi dimensioni (LLM). Utilizzate gli script dei repository per configurare ed eseguire i lavori di formazione per i vostri. LLMs

## HyperPod archivio di ricette
<a name="sagemaker-hyperpod-recipe-repository"></a>

Usa l'archivio delle [SageMaker HyperPod ricette](https://github.com/aws/sagemaker-hyperpod-recipes) per ottenere una ricetta.

1. `main.py`: Questo file funge da punto di ingresso principale per l'avvio del processo di invio di un lavoro di formazione a un cluster o a un processo di formazione. SageMaker 

1. `launcher_scripts`: Questa directory contiene una raccolta di script di uso comune progettati per facilitare il processo di formazione per vari Large Language Models (). LLMs

1. `recipes_collection`: questa cartella contiene una raccolta di ricette LLM predefinite fornite dagli sviluppatori. Gli utenti possono sfruttare queste ricette insieme ai propri dati personalizzati per addestrare modelli LLM personalizzati in base alle loro esigenze specifiche.

Le SageMaker HyperPod ricette vengono utilizzate per avviare attività di formazione o perfezionamento. Indipendentemente dal cluster che stai utilizzando, il processo di invio del processo è lo stesso. Ad esempio, puoi utilizzare lo stesso script per inviare un processo a un cluster Slurm o Kubernetes. L’utilità di avvio invia un job di addestramento in base a tre file di configurazione:

1. Configurazione generale (`config.yaml`): include impostazioni comuni come i parametri predefiniti o le variabili di ambiente utilizzate nel job di addestramento.

1. Configurazione del cluster (cluster): per i job di addestramento che utilizzano solo i cluster. Se stai inviando un job di addestramento a un cluster Kubernetes, potresti dover specificare informazioni come volume, etichetta o policy di riavvio. Per i cluster Slurm, potrebbe essere necessario specificare il nome del processo Slurm. Tutti i parametri sono correlati al cluster specifico che stai utilizzando.

1. Ricetta (ricette): le ricette contengono le impostazioni per il job di addestramento, come i tipi di modello, il grado di sharding o i percorsi dei set di dati. Ad esempio, puoi specificare Llama come modello di addestramento e addestrarlo utilizzando tecniche di parallelizzazione del modello o dei dati come Fully Sharded Distributed Parallel (FSDP) su otto computer. Puoi anche specificare frequenze o percorsi di checkpoint diversi per il tuo job di addestramento.

Dopo aver specificato una ricetta, esegui lo script di avvio per specificare un processo di end-to-end formazione su un cluster in base alle configurazioni tramite il punto di ingresso. `main.py` Per ogni ricetta che utilizzi, sono disponibili script shell di accompagnamento nella cartella launch\$1scripts. Questi esempi ti guidano nelle procedure di invio e avvio dei job di addestramento. La figura seguente illustra come un lanciatore di SageMaker HyperPod ricette invia un processo di formazione a un cluster in base a quanto sopra. Attualmente, il lanciatore di SageMaker HyperPod ricette è basato su Nvidia Framework Launcher. NeMo [Per ulteriori informazioni, consulta NeMo Launcher Guide.](https://docs.nvidia.com/nemo-framework/user-guide/latest/overview.html)

![\[Diagramma che illustra il flusso di lavoro del programma di avvio delle HyperPod ricette. Sulla sinistra, all’interno di una casella tratteggiata, ci sono tre icone di file denominate “Ricetta”, “config.yaml” e “slurm.yaml o k8s.yaml o sm_job.yaml (configurazione cluster)”. Una freccia punta da questo riquadro verso una casella centrale denominata "Recipe Launcher»HyperPod . Da questa casella centrale, un’altra freccia punta a destra verso “Job di addestramento”, con “main.py” scritto sopra la freccia.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/sagemaker-hyperpod-recipe-launcher.png)


## HyperPod archivio di adattatori per ricette
<a name="hyperpod-recipe-adapter"></a>

L'adattatore SageMaker HyperPod di formazione è un framework di formazione. Puoi utilizzarlo per gestire l’intero ciclo di vita dei tuoi job di addestramento. Utilizza l’adattatore per implementare il preaddestramento o il fine-tuning dei modelli in più computer. L’adattatore utilizza diverse tecniche di parallelizzazione per distribuire l’addestramento. Gestisce anche l’implementazione e la gestione del salvataggio dei checkpoint. Per ulteriori dettagli, consultare [Impostazioni avanzate](cluster-specific-configurations-advanced-settings.md).

Usa il [repository degli adattatori per SageMaker HyperPod ricette](https://github.com/aws/sagemaker-hyperpod-training-adapter-for-nemo) per utilizzare l'adattatore per ricette.

1. `src`: questa directory contiene l’implementazione dell’addestramento dei modelli linguistici di grandi dimensioni (LLM), che comprende varie funzionalità come la parallelizzazione del modello, l’addestramento di precisione misto e la gestione dei checkpoint.

1. `examples`: questa cartella fornisce una raccolta di esempi che mostrano come creare un punto di ingresso per l’addestramento di un modello LLM e funge da guida pratica per gli utenti.

# Configurazione generale
<a name="sagemaker-hyperpod-recipes-general-configuration"></a>

Il file config.yaml specifica la ricetta di addestramento e il cluster. Include anche configurazioni di runtime come le variabili di ambiente per il job di addestramento.

```
defaults:
  - _self_
  - cluster: slurm 
  - recipes: training/llama/hf_llama3_8b_seq8192_gpu
instance_type: p5.48xlarge
git:
  repo_url_or_path: null
  branch: null
  commit: null
  entry_script: null
  token: null
env_vars:
  NCCL_DEBUG: WARN
```

Puoi modificare i parametri seguenti in `config.yaml`:

1. `defaults`: specifica le impostazioni predefinite, ad esempio il cluster predefinito o le ricette predefinite.

1. `instance_type`: modifica il tipo di istanza Amazon EC2 in modo che corrisponda al tipo di istanza che stai utilizzando.

1. `git`: Specificate la posizione dell'archivio degli adattatori di SageMaker HyperPod ricette per il processo di formazione.

1. `env_vars`: puoi specificare le variabili di ambiente da passare al job di addestramento al runtime. Ad esempio, puoi regolare il livello di registrazione di log di NCCL specificando la variabile di ambiente NCCL\$1DEBUG.

La ricetta è la configurazione principale che definisce l’architettura del job di addestramento. Questo file include molte informazioni importanti per il tuo job di addestramento, come le seguenti:
+ Se utilizzare la parallelizzazione del modello
+ L’origine dei tuoi set di dati
+ Addestramento di precisione misto
+ Configurazioni relative ai checkpoint

Puoi utilizzare le ricette così come sono. Oppure, puoi utilizzare le informazioni seguenti per modificarle.

## run
<a name="run"></a>

Di seguito sono riportate le informazioni di base per l’esecuzione del job di addestramento.

```
run:
  name: llama-8b
  results_dir: ${base_results_dir}/${.name}
  time_limit: "6-00:00:00"
  model_type: hf
```

1. `name`: specifica il nome del job di addestramento nel file di configurazione.

1. `results_dir`: puoi specificare la directory in cui vengono archiviati i risultati del job di addestramento.

1. `time_limit`: puoi impostare un tempo massimo di addestramento per il job di addestramento per evitare che occupi troppo a lungo le risorse hardware.

1. `model_type`: puoi specificare il tipo di modello che stai utilizzando. Ad esempio, è possibile specificare `hf` se il modello proviene da HuggingFace.

## exp\$1manager
<a name="exp-manager"></a>

exp\$1manager configura l’esperimento. Con exp\$1manager, puoi specificare campi come la directory di output o le impostazioni del checkpoint. Di seguito è riportato un esempio su come configurare exp\$1manager.

```
exp_manager:
  exp_dir: null
  name: experiment
  create_tensorboard_logger: True
```

1. `exp_dir`: la directory degli esperimenti include l’output standard e i file di errore standard per il job di addestramento. Per impostazione predefinita, utilizza la directory corrente.

1. `name`: il nome dell’esperimento utilizzato per identificare l’esperimento in exp\$1dir.

1. `create_tensorboard_logger`: `False` Specificare `True` o abilitare o disabilitare il TensorBoard logger.

## Checkpoint
<a name="checkpointing"></a>

Ecco i tre tipi di checkpoint supportati:
+ Checkpoint automatici
+ Checkpoint manuali
+ Checkpoint completo

### Checkpoint automatici
<a name="auto-checkpointing"></a>

Se stai salvando o caricando checkpoint gestiti automaticamente dall'adattatore per SageMaker HyperPod ricette, puoi abilitarli. `auto_checkpoint` Per abilitare `auto_checkpoint`, imposta `enabled` su `True`. Puoi utilizzare i checkpoint automatici sia per l’addestramento che per il fine-tuning. Puoi utilizzare i checkpoint automatici sia per i file system condivisi che per Amazon S3.

```
exp_manager
  checkpoint_dir: ${recipes.exp_manager.exp_dir}/checkpoints/
  auto_checkpoint:
    enabled: True
```

Il checkpoint automatico sta salvando local\$1state\$1dict in modo asincrono con un intervallo di salvataggio ottimale calcolato automaticamente.

**Nota**  
Con questa modalità, i checkpoint salvati automaticamente non supportano il re-sharding tra le esecuzioni di addestramento. Per riprendere dall’ultimo checkpoint salvato automaticamente, è necessario mantenere gli stessi gradi di sharding. Non è necessario specificare informazioni aggiuntive per la ripresa automatica.

### Checkpoint manuali
<a name="manual-checkpointing"></a>

Puoi modificare `checkpoint_callback_params` per salvare in modo asincrono un checkpoint intermedio in shared\$1state\$1dict. Ad esempio, puoi specificare la configurazione seguente per abilitare i checkpoint con shard dopo ogni dieci fasi e mantenere gli ultimi tre checkpoint.

I checkpoint con shard consentono di modificare i gradi di sharding tra le esecuzioni di addestramento e di caricare il checkpoint impostando `resume_from_checkpoint`.

**Nota**  
Se si tratta di un fine-tuning PEFT, i checkpoint con shard non supportano Amazon S3.
I checkpoint automatici e manuali si escludono a vicenda.
Sono consentite solo modifiche ai gradi di sharding e di replica FSDP.

```
exp_manager:
  checkpoint_callback_params:
    # Set save_top_k = 0 to disable sharded checkpointing
    save_top_k: 3
    every_n_train_steps: 10
    monitor: "step"
    mode: "max"
    save_last: False
  resume_from_checkpoint: ${recipes.exp_manager.exp_dir}/checkpoints/
```

Per ulteriori informazioni sui checkpoint, consulta [Checkpointing con SMP](model-parallel-core-features-v2-checkpoints.md).

### Checkpoint completo
<a name="full-checkpointing"></a>

Il checkpoint full\$1state\$1dict esportato può essere utilizzato per l’inferenza o il fine-tuning. Puoi caricare un checkpoint completo con hf\$1model\$1name\$1or\$1path. In questa modalità, vengono salvati solo i pesi del modello.

Per esportare il modello full\$1state\$1dict, puoi impostare i parametri seguenti.

**Nota**  
Attualmente, i checkpoint completi non sono supportati per Amazon S3. Non puoi impostare il percorso S3 per `exp_manager.checkpoint_dir` se stai abilitando i checkpoint completi. Tuttavia, puoi impostare `exp_manager.export_full_model.final_export_dir` su una directory specifica nel tuo file system locale e `exp_manager.checkpoint_dir` su un percorso Amazon S3.

```
exp_manager:
  export_full_model:
    # Set every_n_train_steps = 0 to disable full checkpointing
    every_n_train_steps: 0
    save_last: True
    final_export_dir : null
```

## modello
<a name="model"></a>

Definisci i vari aspetti dell’architettura del modello e del job di addestramento. Sono incluse le impostazioni per la parallelizzazione del modello, la precisione e la gestione dei dati. Di seguito sono riportati i componenti chiave che puoi configurare nella sezione del modello:

### parallelizzazione del modello
<a name="model-parallelism"></a>

Dopo aver specificato la ricetta, definisci il modello che stai addestrando. Puoi anche definire la parallelizzazione del modello. Ad esempio, puoi definire tensor\$1model\$1parallel\$1degree. Puoi abilitare altre funzionalità come l'allenamento con FP8 precisione. Ad esempio, puoi addestrare un modello con la parallelizzazione tensoriale e la parallelizzazione contestuale:

```
model:
  model_type: llama_v3
  # Base configs
  train_batch_size: 4
  val_batch_size: 1
  seed: 12345
  grad_clip: 1.0

  # Model parallelism
  tensor_model_parallel_degree: 4
  expert_model_parallel_degree: 1
  context_parallel_degree: 2
```

Per comprendere meglio le diverse tecniche di parallelizzazione del modello, puoi fare riferimento ai seguenti approcci:

1. [Parallelizzazione tensoriale](model-parallel-core-features-v2-tensor-parallelism.md)

1. [Parallelizzazione degli esperti](model-parallel-core-features-v2-expert-parallelism.md)

1. [Parallelizzazione del contesto](model-parallel-core-features-v2-context-parallelism.md)

1. [Parallelizzazione dei dati sottoposti a sharding](model-parallel-core-features-v2-sharded-data-parallelism.md)

### FP8
<a name="fp8"></a>

Per abilitare FP8 (precisione a virgola mobile a 8 bit), puoi specificare la configurazione FP8 relativa nell'esempio seguente:

```
model:
  # FP8 config
  fp8: True
  fp8_amax_history_len: 1024
  fp8_amax_compute_algo: max
```

È importante notare che il formato FP8 dei dati è attualmente supportato solo sul tipo di istanza P5. Se utilizzi un tipo di istanza precedente, come P4, disabilita la FP8 funzionalità per il processo di addestramento del modello. Per ulteriori informazioni su FP8, consulta[Addestramento di precisione misto](model-parallel-core-features-v2-mixed-precision.md).

### data
<a name="data"></a>

Puoi specificare i set di dati personalizzati per il job di addestramento aggiungendo i percorsi dei dati nei dati. Il modulo dati del nostro sistema supporta i seguenti formati dei dati:

1. JSON

1. JSONGZ (JSON compresso)

1. ARROW

Tuttavia, la preparazione del set di dati pretokenizzato è una tua responsabilità. Se sei un utente esperto e hai requisiti specifici, puoi anche implementare e integrare un modulo dati personalizzato. Per ulteriori informazioni sui HuggingFace set di dati, vedere [Datasets](https://huggingface.co/docs/datasets/v3.1.0/en/index).

```
model:
  data:
    train_dir: /path/to/your/train/data
    val_dir: /path/to/your/val/data
    dataset_type: hf
    use_synthetic_data: False
```

Puoi specificare come stai addestrando il modello. Per impostazione predefinita, la ricetta utilizza il preaddestramento anziché il fine-tuning. L’esempio seguente configura la ricetta per eseguire un processo di fine-tuning con LoRA (Low-Rank Adaptation).

```
model:
  # Fine tuning config
  do_finetune: True
  # The path to resume from, needs to be HF compatible
  hf_model_name_or_path: null
  hf_access_token: null
  # PEFT config
  peft:
    peft_type: lora
    rank: 32
    alpha: 16
    dropout: 0.1
```

[Per informazioni sulle ricette, vedi SageMaker HyperPod ricette.](https://github.com/aws/sagemaker-hyperpod-recipes)

# Configurazioni specifiche dei cluster
<a name="cluster-specific-configurations"></a>

SageMaker HyperPod offre flessibilità nell'esecuzione di lavori di formazione in diversi ambienti di cluster. Ogni ambiente ha requisiti e processi di configurazione specifici. Questa sezione descrive i passaggi e le configurazioni necessarie per eseguire i lavori di formazione in SageMaker HyperPod Slurm, SageMaker HyperPod k8s e i lavori di formazione. SageMaker La comprensione di queste configurazioni è fondamentale per sfruttare efficacemente la potenza dell’addestramento distribuito nell’ambiente prescelto.

Puoi utilizzare una ricetta negli ambienti cluster seguenti:
+ SageMaker HyperPod Orchestrazione Slurm
+ SageMaker HyperPod Orchestrazione di servizi Amazon Elastic Kubernetes
+ SageMaker lavori di formazione

Per avviare un job di addestramento in un cluster, imposta e installa la configurazione e l’ambiente del cluster corrispondenti.

**Topics**
+ [Esecuzione di un lavoro di formazione su HyperPod Slurm](cluster-specific-configurations-run-training-job-hyperpod-slurm.md)
+ [Esecuzione di un processo di formazione su k8s HyperPod](cluster-specific-configurations-run-training-job-hyperpod-k8s.md)
+ [SageMaker Esecuzione di un processo di formazione](cluster-specific-configurations-run-sagemaker-training-job.md)

# Esecuzione di un lavoro di formazione su HyperPod Slurm
<a name="cluster-specific-configurations-run-training-job-hyperpod-slurm"></a>

SageMaker HyperPod Recipes supporta l'invio di un lavoro di formazione a un GPU/Trainium cluster slurm. Prima di inviare il job di addestramento, aggiorna la configurazione del cluster. Utilizza uno dei metodi seguenti per aggiornare la configurazione del cluster:
+ Modificare le `slurm.yaml`
+ Sovrascrivila tramite la riga di comando

Dopo aver aggiornato la configurazione del cluster, installa l’ambiente.

## Configurazione del cluster
<a name="cluster-specific-configurations-configure-cluster-slurm-yaml"></a>

Per inviare un job di addestramento a un cluster Slurm, imposta la configurazione specifica per Slurm. Modifica `slurm.yaml` per configurare il cluster Slurm. Di seguito è riportato un esempio di configurazione del cluster Slurm. Puoi modificare questo file in base alle tue esigenze di addestramento:

```
job_name_prefix: 'sagemaker-'
slurm_create_submission_file_only: False 
stderr_to_stdout: True
srun_args:
  # - "--no-container-mount-home"
slurm_docker_cfg:
  docker_args:
    # - "--runtime=nvidia" 
  post_launch_commands: 
container_mounts: 
  - "/fsx:/fsx"
```

1. `job_name_prefix`: specifica un prefisso per il nome del processo per identificare facilmente i tue invii al cluster Slurm.

1. `slurm_create_submission_file_only`: imposta questa configurazione su True per un’esecuzione di prova che faciliti il debug.

1. `stderr_to_stdout`: specifica se stai reindirizzando l’errore standard (stderr) all’output standard (stdout).

1. `srun_args`: personalizza le configurazioni srun aggiuntive, ad esempio escludendo nodi di calcolo specifici. Per ulteriori informazioni, consulta la documentazione relativa a srun.

1. `slurm_docker_cfg`: Il programma di avvio delle SageMaker HyperPod ricette avvia un contenitore Docker per eseguire il processo di formazione. Puoi specificare argomenti Docker aggiuntivi all’interno di questo parametro.

1. `container_mounts`: specifica i volumi che stai montando nel container nell’utilità di avvio delle ricette per consentire ai job di addestramento di accedere ai file in quei volumi.

# Esecuzione di un processo di formazione su k8s HyperPod
<a name="cluster-specific-configurations-run-training-job-hyperpod-k8s"></a>

SageMaker HyperPod Recipes supporta l'invio di un lavoro di formazione a un cluster GPU/Trainium Kubernetes. Prima di inviare il job di addestramento, completa una delle operazioni seguenti:
+ Modifica il file di configurazione del cluster `k8s.yaml`
+ Sovrascrivi la configurazione del cluster tramite la riga di comando

Dopo aver eseguito una delle fasi precedenti, installa l’ambiente corrispondente.

## Configurazione del cluster con `k8s.yaml`
<a name="cluster-specific-configurations-configure-cluster-k8s-yaml"></a>

Per inviare un job di addestramento a un cluster Kubernetes, devi impostare le configurazioni specifiche per Kubernetes. Le configurazioni includono il namespace del cluster o la posizione del volume persistente.

```
pullPolicy: Always
restartPolicy: Never
namespace: default
persistent_volume_claims:
  - null
```

1. `pullPolicy`: puoi specificare la policy pull quando invii un job di addestramento. Se specifichi “Sempre”, il cluster Kubernetes estrae sempre l’immagine dal repository. Per ulteriori informazioni, consulta [Image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy).

1. `restartPolicy`: specifica se riavviare il job di addestramento se non riesce.

1. `namespace`: puoi specificare il namespace Kubernetes a cui viene inviato il job di addestramento.

1. `persistent_volume_claims`: puoi specificare un volume condiviso per il tuo job di addestramento per consentire a tutti i processi di addestramento di accedere ai file nel volume.

# SageMaker Esecuzione di un processo di formazione
<a name="cluster-specific-configurations-run-sagemaker-training-job"></a>

SageMaker HyperPod Recipes supporta l'invio di un lavoro SageMaker di formazione. Prima di inviare il job di addestramento, devi aggiornare la configurazione del cluster, `sm_job.yaml`, e installare l’ambiente corrispondente.

## Usa la tua ricetta come lavoro SageMaker formativo
<a name="cluster-specific-configurations-cluster-config-sm-job-yaml"></a>

Puoi usare la tua ricetta come lavoro di SageMaker formazione se non gestisci un cluster. È necessario modificare il file di configurazione del processo di SageMaker formazione per eseguire la ricetta. `sm_job.yaml`

```
sm_jobs_config:
  output_path: null 
  tensorboard_config:
    output_path: null 
    container_logs_path: null
  wait: True 
  inputs: 
    s3: 
      train: null
      val: null
    file_system:  
      directory_path: null
  additional_estimator_kwargs: 
    max_run: 1800
```

1. `output_path`: puoi specificare dove salvare il modello in un URL Amazon S3.

1. `tensorboard_config`: È possibile specificare una configurazione TensorBoard correlata, ad esempio il percorso di output o il percorso TensorBoard dei registri.

1. `wait`: puoi specificare se stai aspettando il completamento del processo quando invii il tuo job di addestramento.

1. `inputs`: puoi specificare i percorsi per i dati di addestramento e convalida. L'origine dati può provenire da un file system condiviso come Amazon FSx o un URL Amazon S3.

1. `additional_estimator_kwargs`: Argomenti di valutazione aggiuntivi per l'invio di un lavoro di formazione alla piattaforma Training Job. SageMaker Per ulteriori informazioni, consulta [Algorithm Estimator](https://sagemaker.readthedocs.io/en/stable/api/training/algorithm.html).

# Considerazioni
<a name="cluster-specific-configurations-special-considerations"></a>

Quando utilizzi una SageMaker HyperPod ricetta Amazon, ci sono alcuni fattori che possono influire sul processo di formazione dei modelli.
+ La versione di `transformers` deve essere uguale o superiore a `4.45.2` per Llama 3.2. Se utilizzi un flusso di lavoro Slurm o K8s, la versione viene aggiornata automaticamente.
+ Mixtral non supporta la precisione in virgola mobile a 8 bit () FP8
+ L'istanza Amazon EC2 p4 non supporta FP8

# Impostazioni avanzate
<a name="cluster-specific-configurations-advanced-settings"></a>

L'adattatore per SageMaker HyperPod ricette è basato sui framework Nvidia Nemo e PyTorch-Lightning. Se hai già utilizzato questi framework, l'integrazione di modelli o funzionalità personalizzati nell'adattatore per ricette è un processo simile. SageMaker HyperPod Oltre a modificare l’adattatore delle ricette, puoi modificare il tuo script di preaddestramento o di fine-tuning. Per indicazioni su come scrivere uno script di addestramento personalizzato, consulta gli [esempi](https://github.com/aws/sagemaker-hyperpod-training-adapter-for-nemo/tree/main/examples).

## Usa l' SageMaker HyperPod adattatore per creare il tuo modello
<a name="cluster-specific-configurations-use-hyperpod-adapter-create-model"></a>

All’interno dell’adattatore delle ricette, puoi personalizzare i file seguenti nelle posizioni specificate:

1. `collections/data`: contiene un modulo responsabile del caricamento dei set di dati. Attualmente supporta solo set di dati provenienti da HuggingFace. Se hai requisiti più avanzati, la struttura del codice ti consente di aggiungere moduli dati personalizzati all’interno della stessa cartella.

1. `collections/model`: include le definizioni di vari modelli linguistici. Al momento, supporta i modelli linguistici di grandi dimensioni più diffusi, come Llama, Mixtral e Mistral. Questa opzione ti offre la flessibilità di introdurre le tue definizioni del modello all’interno di questa cartella.

1. `collections/parts`: questa cartella contiene strategie per addestrare i modelli in modo distribuito. Un esempio è la strategia Fully Sharded Data Parallel (FSDP), che consente lo sharding di un modello linguistico di grandi dimensioni su più acceleratori. Inoltre, le strategie supportano varie forme di parallelizzazione del modello. Puoi anche introdurre strategie di addestramento personalizzate per l’addestramento dei modelli.

1. `utils`: contiene varie utilità volte a facilitare la gestione di un job di addestramento. Funge da repository dove conservare i propri strumenti. Puoi utilizzare i tuoi strumenti per attività come la risoluzione dei problemi o il benchmarking. Puoi anche aggiungere i tuoi callback PyTorch Lightning personalizzati all'interno di questa cartella. Puoi utilizzare i callback PyTorch Lightning per integrare senza problemi funzionalità o operazioni specifiche nel ciclo di vita della formazione.

1. `conf`: contiene le definizioni dello schema di configurazione utilizzate per convalidare parametri specifici in un job di addestramento. Se introduci nuovi parametri o configurazioni, puoi aggiungere lo schema personalizzato a questa cartella. Puoi utilizzare lo schema personalizzato per definire le regole di convalida. Puoi convalidare tipi di dati, intervalli o qualsiasi altro vincolo di parametro. Puoi anche definire uno schema personalizzato per convalidare i parametri.

# Appendice
<a name="appendix"></a>

Consulta la sezione seguente per ottenere informazioni sul monitoraggio e l’analisi dei risultati dell’addestramento.

## Monitoraggio dei risultati dell’addestramento
<a name="monitor-training-results"></a>

Il monitoraggio e l'analisi dei risultati della formazione sono essenziali per gli sviluppatori per valutare la convergenza e risolvere i problemi. SageMaker HyperPod le ricette offrono l'integrazione con Tensorboard per analizzare il comportamento di allenamento. Per affrontare le sfide legate alla profilazione di lavori di formazione distribuiti su larga scala, queste ricette includono anche. VizTracer VizTracerè uno strumento a basso costo per tracciare e visualizzare l'esecuzione del codice Python. Per ulteriori informazioni su, vedere. VizTracer [VizTracer](https://viztracer.readthedocs.io/en/latest/installation.html)

Le seguenti sezioni ti guidano nel processo di implementazione di queste funzionalità nelle tue SageMaker HyperPod ricette.

### TensorBoard
<a name="tensorboard"></a>

TensorBoard è un potente strumento per visualizzare e analizzare il processo di addestramento. Per abilitare TensorBoard, modifica la ricetta impostando il parametro seguente:

```
exp_manager:
  exp_dir: null
  name: experiment
  create_tensorboard_logger: True
```

Dopo aver abilitato il logger TensorBoard, i log di addestramento vengono generati e archiviati nella directory degli esperimenti. L’esperimento è definito in exp\$1manager.exp\$1dir. Per accedere ai log e analizzarli in locale, procedi come indicato di seguito:

**Per accedere ai log e analizzarli**

1. Scarica la cartella degli esperimenti TensorBoard dal tuo ambiente di addestramento al computer locale.

1. Apri un prompt del terminale o di comando sul tuo computer locale.

1. Passa alla directory che contiene la cartella degli esperimenti scaricata.

1. Avvia TensorBoard con il comando seguente.

   ```
   tensorboard --port=<port> --bind_all --logdir experiment.
   ```

1. Apri il browser web e vai a http://localhost:8008.

Ora puoi vedere lo stato e le visualizzazioni dei tuoi job di addestramento all’interno dell’interfaccia TensorBoard. L’accesso allo stato e alle visualizzazioni consente di monitorare e analizzare il processo di addestramento. Il monitoraggio e l’analisi del processo di addestramento consentono di ottenere informazioni approfondite sul comportamento e sulle prestazioni dei modelli. Per ulteriori informazioni su come monitorare e analizzare la formazione con Tensorboard, consulta la Guida per l'utente di [NVIDIA Framework NeMo ](https://docs.nvidia.com/nemo-framework/user-guide/latest/llms/index.html).

### VizTracer
<a name="viztracer"></a>

Per abilitarlo VizTracer, puoi modificare la tua ricetta impostando il parametro model.viztracer.enabled su true. Ad esempio, puoi aggiornare la ricetta del lama per VizTracer abilitarla aggiungendo la seguente configurazione:

```
model:
  viztracer:
    enabled: true
```

Una volta completata la formazione, il tuo VizTracer profilo si trova nella cartella degli esperimenti exp\$1dir/result.json. Per analizzare il tuo profilo, puoi scaricarlo e aprirlo utilizzando lo strumento vizviewer:

```
vizviewer --port <port> result.json
```

Questo comando avvia vizviewer sulla porta 9001. <port>Puoi visualizzarlo VizTracer specificando http://localhost: nel tuo browser. Dopo l'apertura VizTracer, iniziate ad analizzare l'allenamento. Per ulteriori informazioni sull'utilizzo VizTracer, consultate VizTracer la documentazione.

## SageMaker JumpStart contro SageMaker HyperPod
<a name="sagemaker-jumpstart-vs-hyperpod"></a>

Sebbene SageMaker JumpStart forniscano funzionalità di ottimizzazione, le SageMaker HyperPod ricette forniscono quanto segue:
+ Controllo granulare aggiuntivo sul ciclo di addestramento
+ Personalizzazione delle ricette per i tuoi modelli e dati
+ Supporto per la parallelizzazione del modello

Utilizza le SageMaker HyperPod ricette quando hai bisogno di accedere agli iperparametri del modello, all'addestramento multinodo e alle opzioni di personalizzazione per il ciclo di allenamento.

Per ulteriori informazioni sulla messa a punto dei modelli, consulta SageMaker JumpStart [Fine-tuning dei modelli di fondazione disponibili al pubblico con la classe `JumpStartEstimator`](jumpstart-foundation-models-use-python-sdk-estimator-class.md)

# Orchestrazione SageMaker HyperPod dei cluster con Slurm
<a name="sagemaker-hyperpod-slurm"></a>

Il supporto di Slurm SageMaker HyperPod consente di fornire cluster resilienti per l'esecuzione di carichi di lavoro di machine learning (ML) e lo sviluppo di state-of-the-art modelli come modelli di linguaggio di grandi dimensioni (), modelli di diffusione e modelli di base (LLMs). FMs Accelera lo sviluppo FMs eliminando gli oneri indifferenziati legati alla creazione e alla manutenzione di cluster di elaborazione su larga scala alimentati da migliaia di acceleratori come Trainium e NVIDIA A100 e H100 Graphical Processing Units (). AWS GPUs In caso di guasto degli acceleratori, le funzionalità di resilienza dei SageMaker HyperPod monitor e delle istanze cluster rilevano e sostituiscono automaticamente l'hardware difettoso in modo che tu possa concentrarti sull'esecuzione di carichi di lavoro ML. Inoltre, con il supporto per la configurazione del ciclo di vita SageMaker HyperPod, puoi personalizzare il tuo ambiente di elaborazione per adattarlo al meglio alle tue esigenze e configurarlo con le librerie di formazione distribuite di Amazon SageMaker AI per ottenere prestazioni ottimali su. AWS

**Gestione dei cluster**

È possibile creare, configurare e gestire SageMaker HyperPod i cluster graficamente tramite l'interfaccia utente della console (UI) e programmaticamente tramite l'interfaccia a AWS riga di comando (CLI) oppure. AWS SDK per Python (Boto3) Con Amazon VPC, puoi proteggere la rete del cluster e anche trarre vantaggio dalla configurazione del cluster con risorse nel tuo VPC, come Amazon FSx for Lustre, che offre il throughput più veloce. Puoi anche assegnare diversi ruoli IAM ai gruppi di istanze del cluster e limitare le azioni che le risorse e gli utenti del cluster possono eseguire. Per ulteriori informazioni, consulta [SageMaker HyperPod Operazioni del cluster Slurm](sagemaker-hyperpod-operate-slurm.md).

**Configurazione dell’ambiente di ML**

SageMaker HyperPod viene eseguito[SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami), che configura un ambiente ML sui cluster. HyperPod Puoi configurare personalizzazioni aggiuntive per DLAMI fornendo script del ciclo di vita per supportare il tuo caso d’uso. Per ulteriori informazioni su come configurare gli script del ciclo di vita, consulta [Iniziare con SageMaker HyperPod](smcluster-getting-started-slurm.md) e [Personalizzazione dei SageMaker HyperPod cluster utilizzando script del ciclo di vita](sagemaker-hyperpod-lifecycle-best-practices-slurm.md).

**Pianificazione dei processi**

Dopo aver creato correttamente un HyperPod cluster, gli utenti del cluster possono accedere ai nodi del cluster (come il nodo principale o controller, il nodo di accesso e il nodo di lavoro) e pianificare i lavori per l'esecuzione di carichi di lavoro di machine learning. Per ulteriori informazioni, consulta [Lavori su cluster SageMaker HyperPod](sagemaker-hyperpod-run-jobs-slurm.md).

**Resilienza contro i guasti hardware**

SageMaker HyperPod esegue controlli di integrità sui nodi del cluster e fornisce una funzionalità di ripristino automatico del carico di lavoro. Con le funzionalità di resilienza del cluster di HyperPod, puoi riprendere il carico di lavoro dall'ultimo checkpoint salvato, dopo che i nodi difettosi sono stati sostituiti con nodi integri in cluster con più di 16 nodi. Per ulteriori informazioni, consulta [SageMaker HyperPod resilienza del cluster](sagemaker-hyperpod-resiliency-slurm.md).

**Registrazione di log e gestione dei cluster**

Puoi trovare i parametri di utilizzo SageMaker HyperPod delle risorse e i log del ciclo di vita in Amazon e gestire le SageMaker HyperPod risorse CloudWatch taggandole. Ogni esecuzione dell’API `CreateCluster` crea un flusso di log distinto, denominato in base al formato `<cluster-name>-<timestamp>`. Nel flusso di log, puoi controllare i nomi degli host, il nome degli script del ciclo di vita non riusciti e gli output degli script non riusciti, ad esempio `stdout` e `stderr`. Per ulteriori informazioni, consulta [SageMaker HyperPod gestione dei cluster](sagemaker-hyperpod-cluster-management-slurm.md).

** SageMaker Compatibile con gli strumenti di intelligenza artificiale**

Utilizzando SageMaker HyperPod, puoi configurare i cluster con librerie di comunicazioni collettive AWS ottimizzate offerte dall' SageMaker IA, come la libreria [SageMaker AI Distributed Data Parallelism (SMDDP](data-parallel.md)). La libreria SMDDP implementa il `AllGather` funzionamento ottimizzato per l'infrastruttura di AWS calcolo e di rete per le istanze di machine learning AI più performanti SageMaker basate su NVIDIA A100. GPUs Per ulteriori informazioni, consulta [Esecuzione di carichi di lavoro di formazione distribuiti con Slurm on HyperPod](sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload.md).

**Posizionamento delle istanze con UltraServers**

SageMaker L'intelligenza artificiale alloca automaticamente i lavori alle istanze interne all'azienda sulla UltraServer base di una strategia che prevede al massimo l'utilizzo di tutte le istanze di una UltraServer prima di utilizzarne un'altra. Ad esempio, se richiedi 14 istanze e ne hai 2 UltraServers nel tuo piano di allenamento, l' SageMaker IA utilizza tutte le istanze della prima. UltraServer Se hai richiesto 20 istanze e ne hai 2 UltraServers nel tuo piano di allenamento, l' SageMaker IA utilizzerà tutte le 17 istanze nella prima UltraServer e poi ne utilizzerà 3 nella seconda. UltraServer

**Topics**
+ [Iniziare con SageMaker HyperPod](smcluster-getting-started-slurm.md)
+ [SageMaker HyperPod Operazioni del cluster Slurm](sagemaker-hyperpod-operate-slurm.md)
+ [Personalizzazione dei SageMaker HyperPod cluster utilizzando script del ciclo di vita](sagemaker-hyperpod-lifecycle-best-practices-slurm.md)
+ [SageMaker HyperPod supporto per nodi multitesta](sagemaker-hyperpod-multihead-slurm.md)
+ [Lavori su cluster SageMaker HyperPod](sagemaker-hyperpod-run-jobs-slurm.md)
+ [SageMaker HyperPod monitoraggio delle risorse del cluster](sagemaker-hyperpod-cluster-observability-slurm.md)
+ [SageMaker HyperPod resilienza del cluster](sagemaker-hyperpod-resiliency-slurm.md)
+ [Provisioning continuo per operazioni avanzate del cluster con Slurm](sagemaker-hyperpod-scaling-slurm.md)
+ [SageMaker HyperPod gestione dei cluster](sagemaker-hyperpod-cluster-management-slurm.md)
+ [SageMaker HyperPod FAQs](sagemaker-hyperpod-faq-slurm.md)

# Iniziare con SageMaker HyperPod
<a name="smcluster-getting-started-slurm"></a>

Inizia a creare il tuo primo SageMaker HyperPod cluster e scopri le funzionalità operative del cluster di. SageMaker HyperPod Puoi creare un SageMaker HyperPod cluster tramite l'interfaccia utente della console SageMaker AI o i AWS CLI comandi. Questo tutorial mostra come creare un nuovo SageMaker HyperPod cluster con Slurm, un popolare software di pianificazione del carico di lavoro. Dopo aver seguito questo tutorial, saprai come accedere ai nodi del cluster usando i AWS Systems Manager comandi (). `aws ssm` Dopo aver completato questo tutorial, consulta anche [SageMaker HyperPod Operazioni del cluster Slurm](sagemaker-hyperpod-operate-slurm.md) per saperne di più sulle operazioni SageMaker HyperPod di base e [Lavori su cluster SageMaker HyperPod](sagemaker-hyperpod-run-jobs-slurm.md) per imparare a pianificare i lavori sul cluster predisposto.

**Suggerimento**  
[Per trovare esempi e soluzioni pratiche, vedi anche il SageMaker HyperPod workshop.](https://catalog.workshops.aws/sagemaker-hyperpod)

**Topics**
+ [Guida introduttiva all' SageMaker HyperPod utilizzo della console SageMaker AI](smcluster-getting-started-slurm-console.md)
+ [Creazione di cluster utilizzando modelli SageMaker HyperPod CloudFormation](smcluster-getting-started-slurm-console-create-cluster-cfn.md)
+ [Guida introduttiva all'utilizzo di SageMaker HyperPod AWS CLI](smcluster-getting-started-slurm-cli.md)

# Guida introduttiva all' SageMaker HyperPod utilizzo della console SageMaker AI
<a name="smcluster-getting-started-slurm-console"></a>

Il seguente tutorial mostra come creare un nuovo SageMaker HyperPod cluster e configurarlo con Slurm tramite l'interfaccia utente della console SageMaker AI. Seguendo il tutorial, creerai un HyperPod cluster con tre nodi Slurm,, e. `my-controller-group` `my-login-group` `worker-group-1`

**Topics**
+ [Crea un cluster](#smcluster-getting-started-slurm-console-create-cluster-page)
+ [Distribuire le risorse](#smcluster-getting-started-slurm-console-create-cluster-deploy)
+ [Eliminazione del cluster e pulizia delle risorse](#smcluster-getting-started-slurm-console-delete-cluster-and-clean)

## Crea un cluster
<a name="smcluster-getting-started-slurm-console-create-cluster-page"></a>

Per accedere alla pagina **SageMaker HyperPod Clusters** e scegliere **Slurm** orchestration, segui questi passaggi.

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Scegli **HyperPod Clusters** nel riquadro di navigazione a sinistra, quindi **Cluster Management**.

1. Nella pagina **SageMaker HyperPod Cluster, scegli **Crea HyperPod ** cluster**. 

1. Nel menu a discesa **Crea HyperPod cluster**, scegli **Orchestrated** by Slurm.

1. Nella pagina di creazione del cluster Slurm sono disponibili due opzioni. Scegli quella più adatta alle tue esigenze.

   1. **Configurazione rapida**: per iniziare subito con le impostazioni predefinite, scegli **Configurazione rapida**. Con questa opzione, l' SageMaker intelligenza artificiale creerà nuove risorse come VPC, sottoreti, gruppi di sicurezza, bucket Amazon S3, ruolo IAM e FSx for Lustre nel processo di creazione del cluster.

   1. **Configurazione personalizzata**: per l’integrazione con le risorse AWS esistenti o per soddisfare requisiti di rete, sicurezza o archiviazione specifici, scegli **Configurazione personalizzata**. Con questa opzione, puoi scegliere di utilizzare le risorse esistenti o crearne di nuove e puoi personalizzare la configurazione in base alle tue esigenze.

## Configurazione rapida
<a name="smcluster-getting-started-slurm-console-create-cluster-default"></a>

Nella sezione **Configurazione rapida**, segui questi passaggi per creare il tuo cluster con l'orchestrazione Slurm. HyperPod 

### Impostazioni generali
<a name="smcluster-getting-started-slurm-console-create-cluster-default-general"></a>

Specifica un nome per il nuovo cluster. Dopo la creazione del cluster, non è più possibile modificarne il nome.

### Gruppi di istanze
<a name="smcluster-getting-started-slurm-console-create-cluster-default-instance-groups"></a>

Per aggiungere un gruppo di istanze, scegli **Aggiungi gruppo**. Ogni gruppo di istanze può essere configurato in modo diverso ed è possibile creare un cluster eterogeneo composto da più gruppi di istanze con vari tipi di istanze. Per implementare un cluster, devi aggiungere almeno un gruppo di istanze per i tipi di gruppo Controller e Calcolo.

**Importante**  
Puoi aggiungere un gruppo di istanze alla volta. Per creare più gruppi di istanze, ripeti il processo per ogni gruppo.

Segui questa procedura per aggiungere un gruppo di istanze.

1. In **Tipo di gruppo di istanze**, scegli un tipo per il tuo gruppo di istanze. Per questo tutorial, scegli **Controller (head)** per `my-controller-group`, **Login** per `my-login-group` e **Calcolo (worker)** per `worker-group-1`.

1. In **Nome**, specifica un nome per il gruppo di istanze. Per questo tutorial, crea tre gruppi di istanze denominati `my-controller-group`, `my-login-group` e `worker-group-1`.

1.  In **Capacità dell’istanza**, scegli la capacità on demand o un piano di addestramento per riservare le tue risorse di calcolo.

1. Per **Tipo di istanza**, scegli l’istanza per il gruppo di istanze. Per questo tutorial, seleziona `ml.c5.xlarge` per `my-controller-group`, `ml.m5.4xlarge` per `my-login-group` e `ml.trn1.32xlarge` per `worker-group-1`. 
**Importante**  
Assicurati di selezionare un tipo di istanza con quote sufficienti e un numero adeguato di indirizzi IP non assegnati per il tuo account. Per visualizzare o richiedere quote aggiuntive, consulta [SageMaker HyperPod quote](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

1. In **Quantità istanze**. specifica un numero intero che non sia maggiore della quota dell’istanza per l’utilizzo del cluster. Per questo tutorial, inserisci **1** per tutti e tre i gruppi.

1. In **Zona di disponibilità di destinazione**, scegli la zona di disponibilità in cui allocare le istanze. La zona di disponibilità deve corrispondere alla posizione della capacità di calcolo accelerata.

1. Per **Volume di archiviazione aggiuntivo per istanza (GB) (facoltativo)**, specifica un numero intero compreso tra 1 e 16.384 per impostare la dimensione di un volume Elastic Block Store (EBS) aggiuntivo in gigabyte (GB). Il volume EBS è collegato a ciascuna istanza del gruppo di istanze. Il percorso di montaggio predefinito per il volume EBS aggiuntivo è `/opt/sagemaker`. Dopo aver creato correttamente il cluster, è possibile accedere tramite SSH alle istanze del cluster (nodi) e verificare che il volume EBS sia montato correttamente eseguendo il comando `df -h`. Il collegamento di un volume EBS aggiuntivo fornisce un’archiviazione stabile, fuori istanza e con persistenza indipendente, come descritto nella sezione [Amazon EBS volumes](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes.html) in *Amazon Elastic Block Store User Guide*.

1. Scegli **Aggiungi gruppo di istanze**.

### Impostazioni predefinite della configurazione rapida
<a name="smcluster-getting-started-slurm-console-create-cluster-default-settings"></a>

Questa sezione elenca tutte le impostazioni predefinite per la creazione del cluster, incluse tutte le nuove AWS risorse che verranno create durante il processo di creazione del cluster. Verificare le impostazioni predefinite.

## Configurazione personalizzata
<a name="smcluster-getting-started-slurm-console-create-cluster-custom"></a>

Nella sezione **Configurazione personalizzata**, segui questi passaggi per creare il tuo HyperPod cluster con l'orchestrazione Slurm.

### Impostazioni generali
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-general"></a>

Specifica un nome per il nuovo cluster. Dopo la creazione del cluster, non è più possibile modificarne il nome.

In **Ripristino dell’istanza**, scegli **Automatico *(consigliato)*** o **Nessuno**.

### Rete
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-network"></a>

Configura le impostazioni di rete per la creazione del cluster. Queste impostazioni non possono essere modificate dopo la creazione del cluster.

1. Per quanto riguarda il **VPC**, scegli il tuo VPC se ne hai già uno che consente all' SageMaker IA di accedere al tuo VPC. Per creare un nuovo VPC, segui le istruzioni in [Create a VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) in *Amazon Virtual Private Cloud User Guide*. Puoi lasciarlo su **Nessuno** per utilizzare il VPC SageMaker AI predefinito.

1. Per il **blocco VPC IPv4 CIDR**, inserisci l'IP iniziale del tuo VPC.

1. Per le **zone di disponibilità**, scegli le zone di disponibilità (AZ) in cui HyperPod verranno create le sottoreti per il tuo cluster. Scegli AZs quella che corrisponde alla posizione della tua capacità di elaborazione accelerata.

1. In **Gruppi di sicurezza**, crea un gruppo di sicurezza o scegli fino a cinque gruppi di sicurezza configurati con regole per consentire la comunicazione tra risorse all’interno del VPC.

### Gruppi di istanze
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-instance-groups"></a>

Per aggiungere un gruppo di istanze, scegli **Aggiungi gruppo**. Ogni gruppo di istanze può essere configurato in modo diverso ed è possibile creare un cluster eterogeneo composto da più gruppi di istanze con vari tipi di istanze. Per implementare un cluster, devi aggiungere almeno un gruppo di istanze.

**Importante**  
Puoi aggiungere un gruppo di istanze alla volta. Per creare più gruppi di istanze, ripeti il processo per ogni gruppo.

Segui questa procedura per aggiungere un gruppo di istanze.

1. In **Tipo di gruppo di istanze**, scegli un tipo per il tuo gruppo di istanze. Per questo tutorial, scegli **Controller (head)** per `my-controller-group`, **Login** per `my-login-group` e **Calcolo (worker)** per `worker-group-1`.

1. In **Nome**, specifica un nome per il gruppo di istanze. Per questo tutorial, crea tre gruppi di istanze denominati `my-controller-group`, `my-login-group` e `worker-group-1`.

1.  In **Capacità dell’istanza**, scegli la capacità on demand o un piano di addestramento per riservare le tue risorse di calcolo.

1. Per **Tipo di istanza**, scegli l’istanza per il gruppo di istanze. Per questo tutorial, seleziona `ml.c5.xlarge` per `my-controller-group`, `ml.m5.4xlarge` per `my-login-group` e `ml.trn1.32xlarge` per `worker-group-1`. 
**Importante**  
Assicurati di selezionare un tipo di istanza con quote sufficienti e un numero adeguato di indirizzi IP non assegnati per il tuo account. Per visualizzare o richiedere quote aggiuntive, consulta [SageMaker HyperPod quote](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

1. In **Quantità istanze**. specifica un numero intero che non sia maggiore della quota dell’istanza per l’utilizzo del cluster. Per questo tutorial, inserisci **1** per tutti e tre i gruppi.

1. In **Zona di disponibilità di destinazione**, scegli la zona di disponibilità in cui allocare le istanze. La zona di disponibilità deve corrispondere alla posizione della capacità di calcolo accelerata.

1. Per **Volume di archiviazione aggiuntivo per istanza (GB) (facoltativo)**, specifica un numero intero compreso tra 1 e 16.384 per impostare la dimensione di un volume Elastic Block Store (EBS) aggiuntivo in gigabyte (GB). Il volume EBS è collegato a ciascuna istanza del gruppo di istanze. Il percorso di montaggio predefinito per il volume EBS aggiuntivo è `/opt/sagemaker`. Dopo aver creato correttamente il cluster, è possibile accedere tramite SSH alle istanze del cluster (nodi) e verificare che il volume EBS sia montato correttamente eseguendo il comando `df -h`. Il collegamento di un volume EBS aggiuntivo fornisce un’archiviazione stabile, fuori istanza e con persistenza indipendente, come descritto nella sezione [Amazon EBS volumes](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes.html) in *Amazon Elastic Block Store User Guide*.

1. Scegli **Aggiungi gruppo di istanze**.

### Script del ciclo di vita
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-lifecycle"></a>

Puoi scegliere di utilizzare gli script del ciclo di vita predefiniti o quelli personalizzati, che verranno archiviati nel tuo bucket Amazon S3. [Puoi visualizzare gli script del ciclo di vita predefiniti nell'archivio Awesome Distributed Training. GitHub ](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/7.sagemaker-hyperpod-eks/LifecycleScripts) Per ulteriori informazioni sugli script del ciclo di vita, consulta [Personalizzazione dei SageMaker HyperPod cluster utilizzando script del ciclo di vita](sagemaker-hyperpod-lifecycle-best-practices-slurm.md).

1. In **Script del ciclo di vita**, scegli tra script del ciclo di vita predefiniti o personalizzati.

1. In **Bucket S3 per gli script del ciclo di vita**, scegli se creare un nuovo bucket o utilizzare un bucket esistente per archiviare gli script del ciclo di vita.

### Permissions
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-permissions"></a>

Scegli o crea un ruolo IAM che HyperPod consenta di eseguire e accedere alle AWS risorse necessarie per tuo conto.

### Archiviazione
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-storage"></a>

Configura il file system FSx for Lustre da fornire sul HyperPod cluster.

1. Per **File system**, scegliete un file system FSx for Lustre esistente, FSx per crearne uno nuovo, oppure non installatene uno FSx per Lustre.

1. In **Throughput per unità di archiviazione**, scegli il throughput che sarà disponibile per ogni TiB di archiviazione allocata.

1. In **Capacità di archiviazione**, inserisci un valore di capacità in TB.

1. Per **Tipo di compressione dei dati**, scegliete di **LZ4**abilitare la compressione dei dati.

1. In **Versione Lustre**, visualizza il valore consigliato per i nuovi file system.

### Tag (facoltativo)
<a name="smcluster-getting-started-slurm-console-create-cluster-tags"></a>

Per i **tag: *facoltativo***, aggiungi coppie di chiavi e valori al nuovo cluster e gestisci il cluster come AWS risorsa. Per ulteriori informazioni, consulta [Tagging delle risorse AWS](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html).

## Distribuire le risorse
<a name="smcluster-getting-started-slurm-console-create-cluster-deploy"></a>

Dopo aver completato le configurazioni del cluster utilizzando **Configurazione rapida** o **Configurazione personalizzata**, scegli l’opzione seguente per avviare il provisioning delle risorse e la creazione del cluster.
+  **Invia**: l' SageMaker IA inizierà a fornire le risorse di configurazione predefinite e a creare il cluster. 
+ **Scarica i parametri del CloudFormation modello**: scaricherai il file JSON dei parametri di configurazione ed eseguirai il AWS CLI comando per distribuire lo CloudFormation stack per fornire le risorse di configurazione e creare il cluster. Se necessario, puoi modificare il file JSON dei parametri scaricato. Se scegli questa opzione, consulta [Creazione di cluster utilizzando modelli SageMaker HyperPod CloudFormation](smcluster-getting-started-slurm-console-create-cluster-cfn.md) per ulteriori informazioni.

## Eliminazione del cluster e pulizia delle risorse
<a name="smcluster-getting-started-slurm-console-delete-cluster-and-clean"></a>

Dopo aver testato con successo la creazione di un SageMaker HyperPod cluster, questo continua a funzionare nello `InService` stato fino a quando non lo elimini. Ti consigliamo di eliminare tutti i cluster creati utilizzando istanze SageMaker AI su richiesta quando non sono in uso per evitare di incorrere in costi di servizio continui in base ai prezzi su richiesta. In questo tutorial hai creato un cluster costituito da due gruppi di istanze. Uno di essi utilizza un’istanza C5, quindi assicurati di eliminare il cluster seguendo le istruzioni riportate in [Eliminare un SageMaker HyperPod cluster](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-delete-cluster).

Tuttavia, se hai creato un cluster con capacità di calcolo riservata, lo stato dei cluster non influisce sulla fatturazione del servizio.

Per pulire gli script del ciclo di vita dal bucket S3 utilizzato per questo tutorial, vai al bucket S3 che hai utilizzato durante la creazione del cluster e rimuovi completamente i file.

Se hai testato l'esecuzione di carichi di lavoro sul cluster, assicurati di aver caricato dati o di aver salvato artefatti in diversi bucket S3 o servizi di file system come Amazon FSx for Lustre e Amazon Elastic File System. Per evitare addebiti, elimina tutti gli artefatti e i dati dall’archiviazione o dal file system.

# Creazione di cluster utilizzando modelli SageMaker HyperPod CloudFormation
<a name="smcluster-getting-started-slurm-console-create-cluster-cfn"></a>

È possibile creare SageMaker HyperPod cluster utilizzando i CloudFormation modelli per. HyperPod È necessario eseguire l'installazione AWS CLI per procedere.

**Topics**
+ [Configura le risorse nella console e distribuiscile utilizzando CloudFormation](#smcluster-getting-started-slurm-console-create-cluster-deploy-console)
+ [Configura le risorse e distribuiscile utilizzando CloudFormation](#smcluster-getting-started-slurm-console-create-cluster-deploy-cfn)

## Configura le risorse nella console e distribuiscile utilizzando CloudFormation
<a name="smcluster-getting-started-slurm-console-create-cluster-deploy-console"></a>

È possibile configurare le risorse utilizzando Console di gestione AWS e distribuire utilizzando i CloudFormation modelli. 

Segui questa procedura.

1. *Invece di scegliere **Invia***, scegli **Scarica i parametri del CloudFormation modello** alla fine del tutorial in[Guida introduttiva all' SageMaker HyperPod utilizzo della console SageMaker AI](smcluster-getting-started-slurm-console.md). Il tutorial contiene importanti informazioni di configurazione, necessarie per creare correttamente il cluster.
**Importante**  
Se scegli **Invia**, non sarai in grado di implementare un cluster con lo stesso nome finché non elimini il cluster.

   Dopo aver scelto **Scarica i parametri del CloudFormation modello**, **la finestra Utilizzo del file di configurazione per creare il cluster tramite** la AWS CLI finestra apparirà sul lato destro della pagina.

1. Nella finestra **Utilizzo del file di configurazione per creare il cluster con la AWS CLI**, scegli **Scarica il file dei parametri di configurazione**. Il file verrà scaricato sul tuo computer. Puoi modificare il file JSON di configurazione in base alle tue esigenze o lasciarlo così com’è, se non sono necessarie modifiche.

1. In un terminale, vai alla posizione del file dei parametri `file://params.json`.

1. Esegui il AWS CLI comando [create-stack](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/create-stack.html) per distribuire lo CloudFormation stack che fornirà le risorse configurate e creerà il cluster. HyperPod

   ```
   aws cloudformation create-stack 
       --stack-name my-stack
       --template-url https://aws-sagemaker-hyperpod-cluster-setup.amazonaws.com/templates-slurm/main-stack-slurm-based-template.yaml
       --parameters file://params.json
       --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM
   ```

1. [Per visualizzare lo stato del provisioning delle risorse, accedi alla console. CloudFormation ](https://console.aws.amazon.com/cloudformation)

   **Una volta completata la creazione del cluster, visualizza il nuovo cluster in Cluster nel riquadro principale della console.** SageMaker HyperPod Puoi anche controllarne lo stato nella colonna **Stato**.

1. Quando lo stato del cluster diventa `InService`, puoi iniziare ad accedere ai nodi del cluster. Per accedere ai nodi del cluster e iniziare a eseguire carichi di lavoro di ML, consulta [Lavori su cluster SageMaker HyperPod](sagemaker-hyperpod-run-jobs-slurm.md).

## Configura le risorse e distribuiscile utilizzando CloudFormation
<a name="smcluster-getting-started-slurm-console-create-cluster-deploy-cfn"></a>

È possibile configurare le risorse e distribuirle utilizzando i CloudFormation modelli per. SageMaker HyperPod

Segui questa procedura.

1. Scarica un CloudFormation modello per SageMaker HyperPod dal [sagemaker-hyperpod-cluster-setup](https://github.com/aws/sagemaker-hyperpod-cluster-setup) GitHub repository.

1. Esegui il AWS CLI comando [create-stack](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/create-stack.html) per distribuire lo CloudFormation stack che fornirà le risorse configurate e creerà il cluster. HyperPod

   ```
   aws cloudformation create-stack 
       --stack-name my-stack
       --template-url URL_of_the_file_that_contains_the_template_body
       --parameters file://params.json
       --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM
   ```

1. Per visualizzare lo stato del provisioning delle risorse, accedere alla console CloudFormation .

   Una volta completata la creazione del cluster, visualizza il nuovo cluster in **Clusters nel riquadro principale** della console. SageMaker HyperPod Puoi anche controllarne lo stato nella colonna **Stato**.

1. Quando lo stato del cluster diventa `InService`, puoi iniziare ad accedere ai nodi del cluster. Per accedere ai nodi del cluster e iniziare a eseguire carichi di lavoro di ML, consulta [Lavori su cluster SageMaker HyperPod](sagemaker-hyperpod-run-jobs-slurm.md).

# Guida introduttiva all'utilizzo di SageMaker HyperPod AWS CLI
<a name="smcluster-getting-started-slurm-cli"></a>

Crea il tuo primo SageMaker HyperPod cluster utilizzando i AWS CLI comandi per HyperPod.

## Crea il tuo primo SageMaker HyperPod cluster con Slurm
<a name="smcluster-getting-started-slurm-cli-create-cluster"></a>

[Il seguente tutorial mostra come creare un nuovo SageMaker HyperPod cluster e configurarlo con Slurm tramite i comandi per.AWS CLI SageMaker HyperPod](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-cli) Seguendo il tutorial, creerai un HyperPod cluster con tre nodi Slurm:,, e. `my-controller-group` `my-login-group` `worker-group-1`

Con l'approccio di configurazione basato sull'API, definisci i tipi di nodi Slurm e le assegnazioni delle partizioni direttamente nella richiesta API utilizzando. CreateCluster `SlurmConfig` Ciò elimina la necessità di un `provisioning_parameters.json` file separato e fornisce funzionalità integrate di convalida, rilevamento delle deviazioni e configurazione. per-instance-group FSx 

1. Prima di tutto, prepara e carica gli script del ciclo di vita su un bucket Amazon S3. Durante la creazione del cluster, li HyperPod esegue in ogni gruppo di istanze. Carica gli script del ciclo di vita su Amazon S3 utilizzando il comando seguente.

   ```
   aws s3 sync \
       ~/local-dir-to-lifecycle-scripts/* \
       s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
   ```
**Nota**  
Il percorso del bucket S3 deve iniziare con un prefisso`sagemaker-`, poiché il [ruolo IAM for SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod) with consente l'accesso `AmazonSageMakerClusterInstanceRolePolicy` solo ai bucket Amazon S3 che iniziano con il prefisso specifico.

   [Se parti da zero, usa gli script del ciclo di vita di esempio forniti nell'archivio Awsome Distributed Training. GitHub ](https://github.com/aws-samples/awsome-distributed-training/) I seguenti passaggi secondari mostrano come scaricare e caricare gli script del ciclo di vita di esempio in un bucket Amazon S3.

   1. Scarica una copia degli script del ciclo di vita di esempio in una directory sul computer locale.

      ```
      git clone https://github.com/aws-samples/awsome-distributed-training/
      ```

   1. Accedi alla directory [https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config), dove puoi trovare un set di script del ciclo di vita.

      ```
      cd awsome-distributed-training/1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config
      ```

      Per ulteriori informazioni sugli esempi di script del ciclo di vita, consulta [Personalizzazione dei SageMaker HyperPod cluster utilizzando script del ciclo di vita](sagemaker-hyperpod-lifecycle-best-practices-slurm.md).

   1. Carica gli script su `s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src`. Puoi eseguire questa operazione con la console di Amazon S3 o con il comando della AWS CLI Amazon S3 seguente.

      ```
      aws s3 sync \
          ~/local-dir-to-lifecycle-scripts/* \
          s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
      ```
**Nota**  
Con la configurazione basata su API, non è necessario creare o caricare un file. `provisioning_parameters.json` La configurazione Slurm viene definita direttamente nella richiesta CreateCluster API nel passaggio successivo.

1. Prepara un file di [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)richiesta in formato JSON e salvalo con nome. `create_cluster.json`

   Con la configurazione basata su API, è possibile specificare il tipo di nodo Slurm e l'assegnazione della partizione per ciascun gruppo di istanze utilizzando il campo. `SlurmConfig` È inoltre possibile configurare le impostazioni Slurm a livello di cluster utilizzando. `Orchestrator.Slurm`

   Per `ExecutionRole`, fornisci l’ARN del ruolo IAM che hai creato con la policy gestita `AmazonSageMakerClusterInstanceRolePolicy` in [Prerequisiti per l'utilizzo SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md).

   ```
   {
       "ClusterName": "my-hyperpod-cluster",
       "InstanceGroups": [
           {
               "InstanceGroupName": "my-controller-group",
               "InstanceType": "ml.c5.xlarge",
               "InstanceCount": 1,
               "SlurmConfig": {
                   "NodeType": "Controller"
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::<account-id>:role/HyperPodExecutionRole",
               "InstanceStorageConfigs": [
                   {
                       "EbsVolumeConfig": {
                           "VolumeSizeInGB": 500
                       }
                   }
               ]
           },
           {
               "InstanceGroupName": "my-login-group",
               "InstanceType": "ml.m5.4xlarge",
               "InstanceCount": 1,
               "SlurmConfig": {
                   "NodeType": "Login"
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::<account-id>:role/HyperPodExecutionRole"
           },
           {
               "InstanceGroupName": "worker-group-1",
               "InstanceType": "ml.trn1.32xlarge",
               "InstanceCount": 1,
               "SlurmConfig": {
                   "NodeType": "Compute",
                   "PartitionNames": ["partition-1"]
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::<account-id>:role/HyperPodExecutionRole"
           }
       ],
       "Orchestrator": {
           "Slurm": {
               "SlurmConfigStrategy": "Managed"
           }
       }
   }
   ```

   **SlurmConfig campi**:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/smcluster-getting-started-slurm-cli.html)

   **Campi Orchestrator.Slurm:**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/smcluster-getting-started-slurm-cli.html)

   **SlurmConfigStrategy opzioni:**
   + `Managed`(consigliato): gestisce `slurm.conf` e rileva HyperPod completamente le modifiche non autorizzate (rilevamento della deriva). Gli aggiornamenti falliscono se viene rilevata una deriva.
   + `Overwrite`: HyperPod `slurm.conf` sovrascrive gli aggiornamenti, ignorando eventuali modifiche manuali.
   + `Merge`: HyperPod conserva le modifiche manuali e le unisce alla configurazione dell'API.

   **Aggiunta FSx per Lustre (opzionale):**

   Per montare un filesystem FSx for Lustre sui tuoi nodi di calcolo, aggiungilo `FsxLustreConfig` al gruppo for the instance. `InstanceStorageConfigs` Ciò richiede una configurazione VPC personalizzata.

   ```
   {
       "InstanceGroupName": "worker-group-1",
       "InstanceType": "ml.trn1.32xlarge",
       "InstanceCount": 1,
       "SlurmConfig": {
           "NodeType": "Compute",
           "PartitionNames": ["partition-1"]
       },
       "InstanceStorageConfigs": [
           {
               "FsxLustreConfig": {
                   "DnsName": "fs-0abc123def456789.fsx.us-west-2.amazonaws.com",
                   "MountPath": "/fsx",
                   "MountName": "abcdefgh"
               }
           }
       ],
       "LifeCycleConfig": {
           "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src",
           "OnCreate": "on_create.sh"
       },
       "ExecutionRole": "arn:aws:iam::<account-id>:role/HyperPodExecutionRole"
   }
   ```

   **Aggiunta FSx per OpenZFS (opzionale):**

   Puoi anche montarlo FSx per i filesystem OpenZFS:

   ```
   "InstanceStorageConfigs": [
       {
           "FsxOpenZfsConfig": {
               "DnsName": "fs-0xyz789abc123456.fsx.us-west-2.amazonaws.com",
               "MountPath": "/shared"
           }
       }
   ]
   ```
**Nota**  
Ogni gruppo di istanze può avere al massimo uno FSx per la configurazione di Lustre e uno per OpenZFS. FSx Gruppi di istanze diversi possono montare diversi filesystem.

   **Aggiungere la configurazione VPC (richiesta per FSx):**

   Se si utilizza FSx, è necessario specificare una configurazione VPC personalizzata:

   ```
   {
       "ClusterName": "my-hyperpod-cluster",
       "InstanceGroups": [
           {
               "InstanceGroupName": "my-controller-group",
               "InstanceType": "ml.c5.xlarge",
               "InstanceCount": 1,
               "SlurmConfig": {
                   "NodeType": "Controller"
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::<account-id>:role/HyperPodExecutionRole"
           },
       ],
       "Orchestrator": {
           "Slurm": {
               "SlurmConfigStrategy": "Managed"
           }
       },
       "VpcConfig": {
           "SecurityGroupIds": ["sg-0abc123def456789a"],
           "Subnets": ["subnet-0abc123def456789a"]
       }
   }
   ```

1. Utilizza il comando seguente per creare il cluster.

   ```
   aws sagemaker create-cluster --cli-input-json file://complete/path/to/create_cluster.json
   ```

   Questo dovrebbe restituire l’ARN del cluster creato.

   ```
   {
       "ClusterArn": "arn:aws:sagemaker:us-west-2:111122223333:cluster/my-hyperpod-cluster"
   }
   ```

   Se ricevi un errore dovuto ai limiti delle risorse, assicurati di sostituire il tipo di istanza con uno che disponga di quote sufficienti nel tuo account oppure richiedi quote aggiuntive seguendo la procedura in [SageMaker HyperPod quote](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

   **Errori di convalida comuni:**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/smcluster-getting-started-slurm-cli.html)

1. Esegui `describe-cluster` per verificare lo stato del cluster.

   ```
   aws sagemaker describe-cluster --cluster-name my-hyperpod-cluster
   ```

   Risposta di esempio:

   ```
   {
       "ClusterArn": "arn:aws:sagemaker:us-west-2:111122223333:cluster/my-hyperpod-cluster",
       "ClusterName": "my-hyperpod-cluster",
       "ClusterStatus": "Creating",
       "InstanceGroups": [
           {
               "InstanceGroupName": "my-controller-group",
               "InstanceType": "ml.c5.xlarge",
               "InstanceCount": 1,
               "CurrentCount": 0,
               "TargetCount": 1,
               "SlurmConfig": {
                   "NodeType": "Controller"
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<bucket>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodExecutionRole"
           },
           {
               "InstanceGroupName": "my-login-group",
               "InstanceType": "ml.m5.4xlarge",
               "InstanceCount": 1,
               "CurrentCount": 0,
               "TargetCount": 1,
               "SlurmConfig": {
                   "NodeType": "Login"
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<bucket>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodExecutionRole"
           },
           {
               "InstanceGroupName": "worker-group-1",
               "InstanceType": "ml.trn1.32xlarge",
               "InstanceCount": 1,
               "CurrentCount": 0,
               "TargetCount": 1,
               "SlurmConfig": {
                   "NodeType": "Compute",
                   "PartitionNames": ["partition-1"]
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<bucket>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodExecutionRole"
           }
       ],
       "Orchestrator": {
           "Slurm": {
               "SlurmConfigStrategy": "Managed"
           }
       },
       "CreationTime": "2024-01-15T10:30:00Z"
   }
   ```

   Quando lo stato del cluster diventa **InService**, procedi con la fase successiva. La creazione del cluster richiede in genere 10-15 minuti.

1. Esegui `list-cluster-nodes` per controllare i dettagli dei nodi del cluster.

   ```
   aws sagemaker list-cluster-nodes --cluster-name my-hyperpod-cluster
   ```

   Risposta di esempio:

   ```
   {
       "ClusterNodeSummaries": [
           {
               "InstanceGroupName": "my-controller-group",
               "InstanceId": "i-0abc123def456789a",
               "InstanceType": "ml.c5.xlarge",
               "InstanceStatus": {
                   "Status": "Running",
                   "Message": ""
               },
               "LaunchTime": "2024-01-15T10:35:00Z"
           },
           {
               "InstanceGroupName": "my-login-group",
               "InstanceId": "i-0abc123def456789b",
               "InstanceType": "ml.m5.4xlarge",
               "InstanceStatus": {
                   "Status": "Running",
                   "Message": ""
               },
               "LaunchTime": "2024-01-15T10:35:00Z"
           },
           {
               "InstanceGroupName": "worker-group-1",
               "InstanceId": "i-0abc123def456789c",
               "InstanceType": "ml.trn1.32xlarge",
               "InstanceStatus": {
                   "Status": "Running",
                   "Message": ""
               },
               "LaunchTime": "2024-01-15T10:36:00Z"
           }
       ]
   }
   ```

   `InstanceId`Questo è ciò di cui gli utenti del cluster hanno bisogno per accedere (`aws ssm`) al loro interno. Per ulteriori informazioni sull’accesso ai nodi del cluster e sull’esecuzione di carichi di lavoro di ML, consulta [Lavori su cluster SageMaker HyperPod](sagemaker-hyperpod-run-jobs-slurm.md).

1. Connect al cluster utilizzando AWS Systems Manager Session Manager.

   ```
   aws ssm start-session \
       --target sagemaker-cluster:my-hyperpod-cluster_my-login-group-i-0abc123def456789b \
       --region us-west-2
   ```

   Una volta connesso, verifica che Slurm sia configurato correttamente:

   ```
   # Check Slurm nodes
   sinfo
   
   # Check Slurm partitions
   sinfo -p partition-1
   
   # Submit a test job
   srun -p partition-1 --nodes=1 hostname
   ```

## Eliminazione del cluster e pulizia delle risorse
<a name="smcluster-getting-started-slurm-cli-delete-cluster-and-clean"></a>

Dopo aver testato con successo la creazione di un SageMaker HyperPod cluster, questo continua a funzionare nello `InService` stato fino a quando non lo elimini. Ti consigliamo di eliminare tutti i cluster creati utilizzando la capacità di SageMaker intelligenza artificiale su richiesta quando non sono in uso per evitare di incorrere in costi di servizio continui in base ai prezzi su richiesta. In questo tutorial, hai creato un cluster composto da tre gruppi di istanze. Assicurati di eliminare il cluster eseguendo il comando seguente.

```
aws sagemaker delete-cluster --cluster-name my-hyperpod-cluster
```

Per pulire gli script del ciclo di vita dal bucket Amazon S3 utilizzato per questo tutorial, vai al bucket Amazon S3 che hai utilizzato durante la creazione del cluster e rimuovi completamente i file.

```
aws s3 rm s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src --recursive
```

Se hai testato l'esecuzione di carichi di lavoro di training su modelli sul cluster, controlla anche se hai caricato dati o se il tuo processo ha salvato artefatti in diversi bucket Amazon S3 o servizi di file system come Amazon FSx for Lustre e Amazon Elastic File System. Per evitare addebiti, elimina tutti gli artefatti e i dati dall’archiviazione o dal file system.

## Argomenti correlati
<a name="smcluster-getting-started-slurm-cli-related-topics"></a>
+ [SageMaker HyperPod Configurazione Slurm](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-slurm-configuration)
+ [Personalizzazione dei SageMaker HyperPod cluster utilizzando script del ciclo di vita](sagemaker-hyperpod-lifecycle-best-practices-slurm.md)
+ [FSx configurazione tramite InstanceStorageConfigs](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-slurm-fsx-config)
+ [SageMaker HyperPod Operazioni del cluster Slurm](sagemaker-hyperpod-operate-slurm.md)

# SageMaker HyperPod Operazioni del cluster Slurm
<a name="sagemaker-hyperpod-operate-slurm"></a>

Questa sezione fornisce indicazioni sulla gestione SageMaker HyperPod tramite l'interfaccia utente della console SageMaker AI o AWS Command Line Interface (CLI). Imparerai come eseguire varie attività correlate a SageMaker HyperPod, sia che tu preferisca un'interfaccia visiva o l'utilizzo dei comandi.

**Topics**
+ [Gestione dei cluster SageMaker HyperPod Slurm tramite la console SageMaker](sagemaker-hyperpod-operate-slurm-console-ui.md)
+ [Gestione dei cluster SageMaker HyperPod Slurm utilizzando il AWS CLI](sagemaker-hyperpod-operate-slurm-cli-command.md)

# Gestione dei cluster SageMaker HyperPod Slurm tramite la console SageMaker
<a name="sagemaker-hyperpod-operate-slurm-console-ui"></a>

I seguenti argomenti forniscono indicazioni su come gestire SageMaker HyperPod tramite l'interfaccia utente della console.

**Topics**
+ [Crea un SageMaker HyperPod cluster](#sagemaker-hyperpod-operate-slurm-console-ui-create-cluster)
+ [Esplora i tuoi SageMaker HyperPod cluster](#sagemaker-hyperpod-operate-slurm-console-ui-browse-clusters)
+ [Visualizza i dettagli di ogni cluster SageMaker HyperPod](#sagemaker-hyperpod-operate-slurm-console-ui-view-details-of-clusters)
+ [Modifica un SageMaker HyperPod cluster](#sagemaker-hyperpod-operate-slurm-console-ui-edit-clusters)
+ [Eliminare un SageMaker HyperPod cluster](#sagemaker-hyperpod-operate-slurm-console-ui-delete-cluster)

## Crea un SageMaker HyperPod cluster
<a name="sagemaker-hyperpod-operate-slurm-console-ui-create-cluster"></a>

Consulta le istruzioni [Guida introduttiva all' SageMaker HyperPod utilizzo della console SageMaker AI](smcluster-getting-started-slurm-console.md) per creare un nuovo SageMaker HyperPod cluster tramite l'interfaccia utente della SageMaker HyperPod console.

## Esplora i tuoi SageMaker HyperPod cluster
<a name="sagemaker-hyperpod-operate-slurm-console-ui-browse-clusters"></a>

In **Cluster** nel riquadro principale della SageMaker HyperPod console nella pagina principale della SageMaker HyperPod console, tutti i cluster creati dovrebbero apparire elencati nella sezione **Cluster**, che fornisce una visualizzazione riepilogativa dei cluster, del loro ARNs stato e dell'ora di creazione.

## Visualizza i dettagli di ogni cluster SageMaker HyperPod
<a name="sagemaker-hyperpod-operate-slurm-console-ui-view-details-of-clusters"></a>

In **Cluster** nella pagina principale della console, i **nomi** dei cluster sono attivati come link. Scegli il link del nome del cluster per visualizzare i dettagli di ogni cluster.

## Modifica un SageMaker HyperPod cluster
<a name="sagemaker-hyperpod-operate-slurm-console-ui-edit-clusters"></a>

1. In **Cluster** nel riquadro principale della SageMaker HyperPod console, scegli il cluster che desideri aggiornare.

1. Seleziona il cluster e scegli **Modifica**.

1. Nella pagina **Modifica <your-cluster>**, puoi modificare le configurazioni dei gruppi di istanze esistenti, aggiungere altri gruppi di istanze, eliminare i gruppi di istanze e modificare i tag per il cluster. Dopo aver apportato le modifiche, scegli **Invia**. 

   1. Nella sezione **Configura gruppi di istanze**, puoi aggiungere altri gruppi di istanze scegliendo **Crea gruppo di istanze**.

   1. Nella sezione **Configura gruppi di istanze**, puoi scegliere **Modifica** per modificarne la configurazione o **Elimina** per rimuovere definitivamente il gruppo di istanze.
**Importante**  
Durante l’eliminazione di un gruppo di istanze, considera i seguenti punti:  
Il SageMaker HyperPod cluster deve sempre mantenere almeno un gruppo di istanze.
Assicurati che venga eseguito il backup di tutti i dati critici prima della rimozione.
Il processo di rimozione non può essere annullato.
**Nota**  
L’eliminazione di un gruppo di istanze comporterà la terminazione di tutte le risorse di calcolo associate a quel gruppo.

   1. Nella sezione **Tag**, puoi aggiornare i tag per il cluster.

## Eliminare un SageMaker HyperPod cluster
<a name="sagemaker-hyperpod-operate-slurm-console-ui-delete-cluster"></a>

1. In **Cluster** nel riquadro principale della SageMaker HyperPod console, scegli il cluster che desideri eliminare.

1. Seleziona il cluster e scegli **Elimina**.

1. Nella finestra pop-up per l’eliminazione del cluster, esamina attentamente le informazioni sul cluster per verificare che il cluster sia quello desiderato.

1. Dopo aver esaminato le informazioni sul cluster, scegli **Sì, elimina il cluster**.

1. Digita **delete** nel campo di testo per confermare l’eliminazione.

1. Scegli **Elimina** nell’angolo in basso a destra della finestra pop-up per completare l’invio della richiesta di eliminazione del cluster.

# Gestione dei cluster SageMaker HyperPod Slurm utilizzando il AWS CLI
<a name="sagemaker-hyperpod-operate-slurm-cli-command"></a>

I seguenti argomenti forniscono indicazioni sulla scrittura di file di richiesta SageMaker HyperPod API in formato JSON e sulla loro esecuzione utilizzando i AWS CLI comandi.

**Topics**
+ [Creazione di un nuovo cluster](#sagemaker-hyperpod-operate-slurm-cli-command-create-cluster)
+ [Descrizione di un cluster](#sagemaker-hyperpod-operate-slurm-cli-command-describe-cluster)
+ [Elenco dei dettagli dei nodi del cluster](#sagemaker-hyperpod-operate-slurm-cli-command-list-cluster-nodes)
+ [Descrizione dei dettagli di un nodo del cluster](#sagemaker-hyperpod-operate-slurm-cli-command-describe-cluster-node)
+ [Elenco dei cluster](#sagemaker-hyperpod-operate-slurm-cli-command-list-clusters)
+ [Aggiornamento della configurazione del cluster](#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster)
+ [Aggiorna il software della SageMaker HyperPod piattaforma di un cluster](#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software)
+ [Riduzione verticale di un cluster](#sagemaker-hyperpod-operate-slurm-cli-command-scale-down)
+ [Eliminazione di un cluster](#sagemaker-hyperpod-operate-slurm-cli-command-delete-cluster)

## Creazione di un nuovo cluster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-create-cluster"></a>

1. Prepara gli script di configurazione del ciclo di vita e caricali in un bucket S3, ad esempio `s3://sagemaker-amzn-s3-demo-bucket/lifecycle-script-directory/src/`. La fase 2 seguente presuppone che esista uno script del punto di ingresso denominato `on_create.sh` nel bucket S3 specificato.
**Importante**  
Assicurati di impostare il percorso S3 in modo che inizi con `s3://sagemaker-`. Al [Ruolo IAM per SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod) è collegata la policy gestita [https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-cluster.html](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-cluster.html), che consente l’accesso ai bucket S3 con il prefisso specifico `sagemaker-`.

1. Preparare un file di richiesta [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)API in formato JSON. Devi configurare i gruppi di istanze in modo che corrispondano al cluster Slurm progettato nel file `provisioning_parameters.json` che verrà utilizzato durante la creazione del cluster nell’ambito dell’esecuzione di un set di script del ciclo di vita. Per ulteriori informazioni, consulta [Personalizzazione dei SageMaker HyperPod cluster utilizzando script del ciclo di vita](sagemaker-hyperpod-lifecycle-best-practices-slurm.md). Il modello seguente ha due gruppi di istanze per soddisfare i requisiti minimi per un cluster Slurm: un nodo controller (head) e un nodo di calcolo (worker). Per `ExecutionRole`, fornisci l’ARN del ruolo IAM che hai creato con la policy gestita `AmazonSageMakerClusterInstanceRolePolicy` nella sezione [Ruolo IAM per SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod).

   ```
   // create_cluster.json
   {
       "ClusterName": "your-hyperpod-cluster",
       "InstanceGroups": [
           {
               "InstanceGroupName": "controller-group",
               "InstanceType": "ml.m5.xlarge",
               "InstanceCount": 1,
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://amzn-s3-demo-bucket-sagemaker/lifecycle-script-directory/src/",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster",
               // Optional: Configure an additional storage per instance group.
               "InstanceStorageConfigs": [
                   {
                      // Attach an additional EBS volume to each instance within the instance group.
                      // The default mount path for the additional EBS volume is /opt/sagemaker.
                      "EbsVolumeConfig":{
                         // Specify an integer between 1 and 16384 in gigabytes (GB).
                         "VolumeSizeInGB": integer,
                      }
                   }
               ]
           }, 
           {
               "InstanceGroupName": "worker-group-1",
               "InstanceType": "ml.p4d.xlarge",
               "InstanceCount": 1,
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://amzn-s3-demo-bucket-sagemaker/lifecycle-script-directory/src/",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster"
           }
       ],
       // Optional
       "Tags": [ 
           { 
              "Key": "string",
              "Value": "string"
           }
       ],
       // Optional
       "VpcConfig": { 
           "SecurityGroupIds": [ "string" ],
           "Subnets": [ "string" ]
       }
   }
   ```

   A seconda di come progetti la struttura del cluster con gli script del ciclo di vita, puoi configurare fino a 20 gruppi di istanze nel parametro `InstanceGroups`.

   Per il parametro di `Tags` richiesta, puoi aggiungere tag personalizzati per la gestione del SageMaker HyperPod cluster come AWS risorsa. Puoi aggiungere tag al tuo cluster nello stesso modo in cui li aggiungi in altri AWS servizi che supportano i tag. Per ulteriori informazioni sull'etichettatura AWS delle risorse in generale, consulta la Guida per l'utente di [Tagging AWS Resources](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html).

   Per il parametro di richiesta `VpcConfig`, specifica le informazioni del VPC da utilizzare. Per ulteriori informazioni, consulta [Configurazione SageMaker HyperPod con un Amazon VPC personalizzato](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-optional-vpc).

1. Utilizza il comando [create-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-cluster.html) come segue.

   ```
   aws sagemaker create-cluster \
       --cli-input-json file://complete/path/to/create_cluster.json
   ```

   Questo dovrebbe restituire l’ARN del nuovo cluster.

## Descrizione di un cluster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-describe-cluster"></a>

Esegui [describe-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/describe-cluster.html) per verificare lo stato del cluster. Puoi specificare il nome o l’ARN del cluster.

```
aws sagemaker describe-cluster --cluster-name your-hyperpod-cluster
```

Quando lo stato del cluster diventa **InService**, procedi con la fase successiva. Utilizzando questa API, puoi anche recuperare i messaggi di errore dall'esecuzione di altre HyperPod operazioni API.

## Elenco dei dettagli dei nodi del cluster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-list-cluster-nodes"></a>

Esegui [list-cluster-nodes](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-cluster-nodes.html)per controllare le informazioni chiave dei nodi del cluster.

```
aws sagemaker list-cluster-nodes --cluster-name your-hyperpod-cluster
```

Questo restituisce una risposta e `InstanceId` è ciò che ti serve per l’accesso (con `aws ssm`).

## Descrizione dei dettagli di un nodo del cluster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-describe-cluster-node"></a>

Esegui [describe-cluster-node](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/describe-cluster-node.html)per recuperare i dettagli di un nodo del cluster. È possibile ottenere l'ID del nodo del cluster dall' list-cluster-nodesoutput. Puoi specificare il nome o l’ARN del cluster.

```
aws sagemaker describe-cluster-node \
    --cluster-name your-hyperpod-cluster \
    --node-id i-111222333444555aa
```

## Elenco dei cluster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-list-clusters"></a>

Esegui [list-clusters](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-clusters.html) per elencare tutti i cluster del tuo account.

```
aws sagemaker list-clusters
```

Puoi anche aggiungere ulteriori flag per filtrare l’elenco dei cluster. Per ulteriori informazioni su cosa viene eseguito questo comando a basso livello e sui flag aggiuntivi per il filtraggio, consulta il riferimento all'[ListClusters](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListClusters.html)API.

## Aggiornamento della configurazione del cluster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-update-cluster"></a>

Esegui [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) per aggiornare la configurazione di un cluster.

**Nota**  
Puoi utilizzare l'`UpdateCluster`API per ridimensionare o rimuovere interi gruppi di istanze dal cluster SageMaker HyperPod . Per ulteriori istruzioni su come ridurre verticalmente o eliminare i gruppi di istanze, consulta [Riduzione verticale di un cluster](#sagemaker-hyperpod-operate-slurm-cli-command-scale-down).

1. Crea un file di richiesta `UpdateCluster` in formato JSON. Assicurati di specificare correttamente il nome del cluster e il nome del gruppo di istanze da aggiornare. Puoi modificare il tipo di istanza, il numero di istanze, lo script del punto di ingresso della configurazione del ciclo di vita e il percorso dello script.

   1. Per `ClusterName`, specifica il nome del cluster da aggiornare.

   1. Per `InstanceGroupName`

      1. Per aggiornare un gruppo di istanze esistente, specifica il nome del gruppo di istanze da aggiornare.

      1. Per aggiungere un nuovo gruppo di istanze, specifica un nuovo nome non presente nel cluster.

   1. Per `InstanceType`

      1. Per aggiornare un gruppo di istanze esistente, è necessario che il tipo di istanza specificato all’inizio corrisponda al gruppo.

      1. Per aggiungere un nuovo gruppo di istanze, specifica il tipo di istanza con cui configurare il gruppo.

   1. Per `InstanceCount`

      1. Per aggiornare un gruppo di istanze esistente, specifica un numero intero corrispondente al numero di istanze desiderato. Puoi fornire un valore più alto o più basso (fino a 0) per aumentare o ridurre verticalmente il gruppo di istanze.

      1. Per aggiungere un nuovo gruppo di istanze, specifica un numero intero maggiore o uguale a 1. 

   1. Per `LifeCycleConfig`, puoi modificare entrambi i valori `SourceS3Uri` e `OnCreate` per aggiornare il gruppo di istanze.

   1. Per `ExecutionRole`

      1. Per aggiornare un gruppo di istanze esistente, continua a utilizzare lo stesso ruolo IAM collegato durante la creazione del cluster.

      1. Per aggiungere un nuovo gruppo di istanze, specifica un ruolo IAM da collegare.

   1. Per `ThreadsPerCore`

      1. Per aggiornare un gruppo di istanze esistente, continua a utilizzare lo stesso valore specificato durante la creazione del cluster.

      1. Per aggiungere un nuovo gruppo di istanze, puoi scegliere qualsiasi valore tra le opzioni consentite dal tipo di istanza. Per ulteriori informazioni, cerca il tipo di istanza e consulta la colonna **Thread validi per core** nella tabella di riferimento in [CPU cores and threads per CPU core per instance type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cpu-options-supported-instances-values.html) in *Amazon EC2 User Guide*.

   Puoi utilizzare il frammento di codice seguente, che corrisponde a un modello di file di richiesta JSON. Per ulteriori informazioni sulla sintassi della richiesta e sui parametri di questa API, consulta il riferimento all'[UpdateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)API.

   ```
   // update_cluster.json
   {
       // Required
       "ClusterName": "name-of-cluster-to-update",
       // Required
       "InstanceGroups": [
           {
               "InstanceGroupName": "name-of-instance-group-to-update",
               "InstanceType": "ml.m5.xlarge",
               "InstanceCount": 1,
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://amzn-s3-demo-bucket-sagemaker/lifecycle-script-directory/src/",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster",
               // Optional: Configure an additional storage per instance group.
               "InstanceStorageConfigs": [
                   {
                      // Attach an additional EBS volume to each instance within the instance group.
                      // The default mount path for the additional EBS volume is /opt/sagemaker.
                      "EbsVolumeConfig":{
                         // Specify an integer between 1 and 16384 in gigabytes (GB).
                         "VolumeSizeInGB": integer,
                      }
                   }
               ]
           },
           // add more blocks of instance groups as needed
           { ... }
       ]
   }
   ```

1. Esegui il comando `update-cluster` per inviare la richiesta. 

   ```
   aws sagemaker update-cluster \
       --cli-input-json file://complete/path/to/update_cluster.json
   ```

## Aggiorna il software della SageMaker HyperPod piattaforma di un cluster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software"></a>

Esegui [update-cluster-software](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster-software.html)per aggiornare i cluster esistenti con software e patch di sicurezza fornite dal SageMaker HyperPod servizio. Per `--cluster-name`, specifica il nome o l’ARN del cluster da aggiornare.

**Importante**  
Ricorda di eseguire il backup del tuo lavoro prima di applicare questa API. Il processo di applicazione delle patch sostituisce il volume root con l’AMI aggiornata, il che significa che i dati precedenti archiviati nel volume root dell’istanza andranno persi. Assicurati di eseguire il backup dei dati dal volume root dell'istanza su Amazon S3 o Amazon FSx for Lustre. Per ulteriori informazioni, consulta [Utilizza lo script di backup fornito da SageMaker HyperPod](#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software-backup).

```
aws sagemaker update-cluster-software --cluster-name your-hyperpod-cluster
```

Questo comando richiama l'API. [UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html) Dopo la chiamata all'API, SageMaker HyperPod verifica se è disponibile un DLAMI più recente per le istanze del cluster. Se è necessario un aggiornamento DLAMI, SageMaker HyperPod aggiornerà le istanze del cluster per utilizzare le più recenti [SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami) ed eseguirà gli script del ciclo di vita nel bucket Amazon S3 specificato durante la creazione o l'aggiornamento del cluster. Se il cluster utilizza già il DLAMI più recente, non SageMaker HyperPod apporterà alcuna modifica al cluster né eseguirà nuovamente gli script del ciclo di vita. Il team SageMaker HyperPod di assistenza lancia regolarmente nuovi strumenti per migliorare la sicurezza e migliorare l'esperienza [SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami) degli utenti. Ti consigliamo di continuare ad aggiornare sempre alla versione più recente di SageMaker HyperPod DLAMI. Per i futuri aggiornamenti SageMaker HyperPod DLAMI per le patch di sicurezza, segui con. [Note di SageMaker HyperPod rilascio di Amazon](sagemaker-hyperpod-release-notes.md)

**Suggerimento**  
Se la patch di sicurezza non riesce, è possibile recuperare i messaggi di errore eseguendo l’API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html) come indicato in [Descrizione di un cluster](#sagemaker-hyperpod-operate-slurm-cli-command-describe-cluster).

**Nota**  
Puoi eseguire questa API solo in modo programmatico. La funzionalità di patching non è implementata nell'interfaccia utente della SageMaker HyperPod console.

### Utilizza lo script di backup fornito da SageMaker HyperPod
<a name="sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software-backup"></a>

SageMaker HyperPod fornisce uno script per il backup e il ripristino dei dati [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/patching-backup.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/patching-backup.sh)nel * GitHub repository Awsome Distributed Training*. Lo script fornisce le funzioni seguenti.

**Per eseguire il backup dei dati su un bucket S3 prima dell’applicazione delle patch**

```
sudo bash patching-backup.sh --create <s3-buckup-bucket-path>
```

Dopo aver eseguito il comando, lo script verifica `squeue` per rilevare se ci sono processi in coda, arresta Slurm se non c’è alcun processo in coda, esegue il backup di `mariadb` e copia gli elementi locali sul disco definito in `LOCAL_ITEMS`. Puoi aggiungere altri file e directory a `LOCAL_ITEMS`.

```
# Define files and directories to back up.
LOCAL_ITEMS=(
    "/var/spool/slurmd"
    "/var/spool/slurmctld"
    "/etc/systemd/system/slurmctld.service"
    "/home/ubuntu/backup_slurm_acct_db.sql"
    # ... Add more items as needed
)
```

Inoltre, puoi aggiungere codice personalizzato allo script fornito per eseguire il backup di qualsiasi applicazione collegata al tuo caso d’uso.

**Per ripristinare i dati da un bucket S3 dopo l’applicazione delle patch**

```
sudo bash patching-backup.sh --restore <s3-buckup-bucket-path>
```

## Riduzione verticale di un cluster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-scale-down"></a>

È possibile ridurre il numero di istanze o eliminare i gruppi di istanze nel SageMaker HyperPod cluster per ottimizzare l'allocazione delle risorse o ridurre i costi.

Puoi ridurre verticalmente le istanze con l’operazione API `UpdateCluster` per terminare in modo casuale le istanze dal gruppo di istanze fino a un numero specificato oppure puoi terminare istanze specifiche utilizzando l’operazione API `BatchDeleteClusterNodes`. Puoi anche rimuovere completamente interi gruppi di istanze utilizzando l’API `UpdateCluster`. Per ulteriori informazioni su come ridurre verticalmente le istanze con questi metodi, consulta [Ridimensionamento di un cluster SageMaker HyperPod](smcluster-scale-down.md).

**Nota**  
Non è possibile rimuovere le istanze configurate come nodi controller Slurm. Il tentativo di eliminare un nodo controller Slurm genera un errore di convalida con il codice di errore `NODE_ID_IN_USE`.

## Eliminazione di un cluster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-delete-cluster"></a>

Esegui [delete-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/delete-cluster.html) per eliminare un cluster. Puoi specificare il nome o l’ARN del cluster.

```
aws sagemaker delete-cluster --cluster-name your-hyperpod-cluster
```

# Personalizzazione dei SageMaker HyperPod cluster utilizzando script del ciclo di vita
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm"></a>

SageMaker HyperPod offre sempre cluster di up-and-running calcolo, che sono altamente personalizzabili in quanto è possibile scrivere script del ciclo di vita per indicare come configurare le risorse del cluster. SageMaker HyperPod Gli argomenti seguenti sono le best practice per preparare gli script del ciclo di vita per configurare SageMaker HyperPod i cluster con strumenti open source per la gestione del carico di lavoro.

Negli argomenti seguenti vengono illustrate le best practice approfondite per la preparazione degli script del ciclo di vita su cui configurare le configurazioni Slurm. SageMaker HyperPod

## Panoramica generale
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-highlevel-overview"></a>

La procedura seguente è il flusso principale per il provisioning di un HyperPod cluster e la sua configurazione con Slurm. Le fasi sono in ordine, in base a un approccio dal ***basso verso l’alto***.

1. Pianifica come vuoi creare i nodi Slurm su un cluster. HyperPod Ad esempio, se desideri configurare due nodi Slurm, dovrai configurare due gruppi di istanze in un cluster. HyperPod 

1. Prepara la configurazione di Slurm. Scegliete uno dei seguenti approcci:
   + **Opzione A: configurazione basata su API (consigliata)**: definisci i tipi di nodi e le partizioni Slurm direttamente nel payload dell'`CreateCluster`API utilizzando all'interno di ciascun gruppo di istanze. `SlurmConfig` Con questo approccio:
     + Non è necessario alcun `provisioning_parameters.json` file
     + La topologia Slurm è definita nel payload dell'API insieme alle definizioni dei gruppi di istanze
     + FSx i filesystem sono configurati tramite per-instance-group `InstanceStorageConfigs`
     + La strategia di configurazione è controllata tramite `Orchestrator.Slurm.SlurmConfigStrategy`

     Esempio `SlurmConfig` in un gruppo di istanze:

     ```
     {
         "InstanceGroupName": "gpu-compute",
         "InstanceType": "ml.p4d.24xlarge",
         "InstanceCount": 8,
         "SlurmConfig": {
             "NodeType": "Compute",
             "PartitionNames": ["gpu-training"]
         }
     }
     ```
   + **Opzione B: configurazione precedente:** prepara un `provisioning_parameters.json` file, che è un[Modulo di configurazione per provisioning\$1parameters.json](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-provisioning-forms-slurm). `provisioning_parameters.json`deve contenere informazioni sulla configurazione del nodo Slurm da fornire sul cluster. HyperPod Questo file dovrebbe riflettere la progettazione dei nodi Slurm della Fase 1.

1. Prepara un set di script del ciclo di vita su cui configurare Slurm per installare pacchetti software e configurare un ambiente nel cluster adatto HyperPod al tuo caso d'uso. È necessario strutturare gli script del ciclo di vita in modo che vengano eseguiti collettivamente in ordine in uno script Python centrale (`lifecycle_script.py`), oltre a scrivere uno script shell del punto di ingresso (`on_create.sh`) per eseguire lo script Python. Lo script di shell entrypoint è ciò che devi fornire a una richiesta di creazione di HyperPod cluster più avanti nel Passaggio 5. 

   Inoltre, si noti che è necessario scrivere gli script in modo da aspettarsi `resource_config.json` che vengano generati HyperPod durante la creazione del cluster. `resource_config.json`contiene informazioni sulle risorse del HyperPod cluster come indirizzi IP, tipi di istanze e ARNs, ed è ciò che è necessario utilizzare per configurare Slurm.

1. Raccogli tutti i file delle fasi precedenti in una cartella. La struttura delle cartelle dipende dall'approccio di configurazione selezionato nel passaggio 2.

   Se hai selezionato l'opzione A (configurazione basata su API):

   La cartella necessita solo di script del ciclo di vita per attività di configurazione personalizzate. La configurazione e il FSx montaggio di Slurm vengono gestiti HyperPod automaticamente in base al payload dell'API.

   ```
   └── lifecycle_files // your local folder
   
       ├── on_create.sh
       ├── lifecycle_script.py
       └── ... // more setup scripts to be fed into lifecycle_script.py
   ```
**Nota**  
Il `provisioning_parameters.json` file non è necessario quando si utilizza la configurazione basata su API.

   Se hai selezionato l'opzione B (configurazione precedente):

   La cartella deve includere `provisioning_parameters.json` e il set completo di script del ciclo di vita.

   ```
   └── lifecycle_files // your local folder
   
       ├── provisioning_parameters.json
       ├── on_create.sh
       ├── lifecycle_script.py
       └── ... // more setup scrips to be fed into lifecycle_script.py
   ```

1. Carica tutti i file in un bucket S3. Copia e annota il percorso del bucket S3. Ricorda di creare un percorso del bucket S3 che inizi con `sagemaker-`, perché dovrai scegliere un percorso del [Ruolo IAM per SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod) collegato a [`AmazonSageMakerClusterInstanceRolePolicy`](security-iam-awsmanpol-AmazonSageMakerClusterInstanceRolePolicy.md), che consente solo i percorsi dei bucket S3 che iniziano con il prefisso `sagemaker-`. Di seguito è riportato un comando di esempio per caricare tutti i file in un bucket S3.

   ```
   aws s3 cp --recursive ./lifecycle_files s3://sagemaker-hyperpod-lifecycle/src
   ```

1. Prepara una richiesta di creazione HyperPod del cluster. 
   + Opzione 1: se utilizzi il AWS CLI, scrivi una richiesta di creazione del cluster in formato JSON (`create_cluster.json`) seguendo le istruzioni all'indirizzo[Creazione di un nuovo cluster](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-create-cluster).
   + Opzione 2: se utilizzi l'interfaccia utente della console SageMaker AI, compila il modulo di richiesta **Crea un cluster** nell'interfaccia utente della HyperPod console seguendo le istruzioni riportate all'indirizzo[Crea un SageMaker HyperPod cluster](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-create-cluster).

   In questa fase, assicurati di creare gruppi di istanze nella stessa struttura pianificata nelle Fasi 1 e 2. Inoltre, assicurati di specificare il bucket S3 della Fase 5 nei moduli di richiesta.

1. Invia la richiesta di creazione del cluster. HyperPod esegue il provisioning di un cluster in base alla richiesta, quindi crea un `resource_config.json` file nelle istanze del HyperPod cluster e configura Slurm sul cluster che esegue gli script del ciclo di vita.

I seguenti argomenti illustrano e approfondiscono i dettagli su come organizzare i file di configurazione e gli script del ciclo di vita in modo che funzionino correttamente durante la creazione del cluster. HyperPod

**Topics**
+ [Panoramica generale](#sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-highlevel-overview)
+ [Script del ciclo di vita di base forniti da HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md)
+ [Quali configurazioni particolari gestisce nei file di configurazione Slurm HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-what-hyperpod-overrides-in-slurm-conf.md)
+ [Slurm registra le rotazioni](sagemaker-hyperpod-slurm-log-rotation.md)
+ [Montaggio di Amazon FSx for Lustre e Amazon FSx for OpenZFS su un cluster HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-setup-with-fsx.md)
+ [Convalida dei file di configurazione JSON prima di creare un cluster Slurm su HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-validate-json-files.md)
+ [Convalida del runtime prima di eseguire carichi di lavoro di produzione su un cluster Slurm HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-validate-runtime.md)
+ [Sviluppo interattivo di script del ciclo di vita su un nodo del cluster HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-develop-lifecycle-scripts.md)

# Script del ciclo di vita di base forniti da HyperPod
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config"></a>

Questa sezione illustra ogni componente del flusso di base di configurazione di Slurm on HyperPod con un approccio ***dall'alto*** verso il basso. Inizia dalla preparazione di una richiesta di creazione HyperPod del cluster per eseguire l'`CreateCluster`API e approfondisce la struttura gerarchica fino agli script del ciclo di vita. [Utilizza gli script di esempio relativi al ciclo di vita forniti nell'archivio Awsome Distributed Training. GitHub ](https://github.com/aws-samples/awsome-distributed-training/) Clona il repository con il comando seguente.

```
git clone https://github.com/aws-samples/awsome-distributed-training/
```

Gli script del ciclo di vita di base per la configurazione di un cluster Slurm sono disponibili all'indirizzo. SageMaker HyperPod [https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config)

```
cd awsome-distributed-training/1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config
```

Il diagramma di flusso seguente mostra una panoramica dettagliata di come progettare gli script del ciclo di vita di base. Le descrizioni sotto il diagramma e la guida procedurale spiegano come funzionano durante la chiamata API. HyperPod `CreateCluster`

![\[Un diagramma di flusso dettagliato della creazione dei HyperPod cluster e della struttura degli script del ciclo di vita.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod-lifecycle-structure.png)


***Figura:** Un diagramma di flusso dettagliato della creazione dei HyperPod cluster e della struttura degli script del ciclo di vita. (1) Le frecce tratteggiate indicano il punto in cui vengono “richiamate” le caselle e mostrano il flusso dei file di configurazione e la preparazione degli script del ciclo di vita. Il processo inizia dalla preparazione del file `provisioning_parameters.json` e degli script del ciclo di vita. Questi vengono quindi codificati in `lifecycle_script.py` per essere eseguiti in ordine collettivamente. E l'esecuzione dello `lifecycle_script.py` script viene eseguita dallo script di `on_create.sh` shell, che deve essere eseguito nel terminale dell' HyperPodistanza. (2) Le frecce piene mostrano il flusso principale di creazione del HyperPod cluster e il modo in cui le caselle vengono «richiamate» o «inviate a». `on_create.sh`è necessario per la richiesta di creazione del cluster, nel modulo Crea una richiesta di cluster `create_cluster.json` o nel modulo **Crea una richiesta di cluster** nell'interfaccia utente della console. Dopo aver inviato la richiesta, HyperPod esegue l'`CreateCluster`API in base alle informazioni di configurazione fornite dalla richiesta e dagli script del ciclo di vita. (3) La freccia punteggiata indica che la HyperPod piattaforma crea istanze `resource_config.json` nel cluster durante il provisioning delle risorse del cluster. `resource_config.json`contiene informazioni sulle risorse del HyperPod cluster come l'ARN del cluster, i tipi di istanza e gli indirizzi IP. È importante notare che gli script del ciclo di vita vanno preparati in modo che prevedano il file `resource_config.json` durante la creazione del cluster. Per ulteriori informazioni, consulta la guida con le procedure di seguito.*

La seguente guida procedurale spiega cosa succede durante la creazione del HyperPod cluster e come sono progettati gli script del ciclo di vita di base.

1. `create_cluster.json`— Per inviare una richiesta di creazione di un HyperPod cluster, si prepara un file di `CreateCluster` richiesta in formato JSON. In questo esempio di best practice, supponiamo che il file di richiesta si chiami `create_cluster.json`. Scrivi `create_cluster.json` per fornire gruppi di istanze a un HyperPod cluster. La best practice consiste nell'aggiungere lo stesso numero di gruppi di istanze del numero di nodi Slurm che intendi configurare sul HyperPod cluster. Assicurati di assegnare nomi distintivi ai gruppi di istanze che assegnerai ai nodi Slurm che intendi configurare.

   Inoltre, devi specificare un percorso al bucket S3 per archiviare l’intero set di file di configurazione e script del ciclo di vita nel campo `InstanceGroups.LifeCycleConfig.SourceS3Uri` del modulo di richiesta `CreateCluster`. Inoltre, devi specificare il nome del file di uno script shell del punto di ingresso (chiamato, supponiamo, `on_create.sh`) in `InstanceGroups.LifeCycleConfig.OnCreate`.
**Nota**  
Se utilizzi il modulo di invio **Crea un cluster** nell'interfaccia utente della console, la HyperPod console gestisce la compilazione e l'invio della `CreateCluster` richiesta per tuo conto ed esegue l'`CreateCluster`API nel backend. In questo caso, non è necessario creare`create_cluster.json`, ma assicurati di specificare le informazioni corrette sulla configurazione del cluster nel modulo di invio **Crea un cluster**.

1. `on_create.sh`— Per ogni gruppo di istanze, è necessario fornire uno script di shell entrypoint per eseguire comandi`on_create.sh`, eseguire script per installare pacchetti software e configurare l'ambiente cluster con Slurm. HyperPod Le due cose da preparare sono una `provisioning_parameters.json` necessaria per configurare Slurm e un set di script del ciclo di vita HyperPod per l'installazione dei pacchetti software. Questo script deve essere scritto per trovare ed eseguire i file seguenti, come mostrato nello script di esempio in [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/on_create.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/on_create.sh).
**Nota**  
Assicurati di caricare l’intero set di script del ciclo di vita nella posizione S3 specificata in `create_cluster.json`. Anche il file `provisioning_parameters.json` deve trovarsi nella stessa posizione.

   1. `provisioning_parameters.json`: questo è un [Modulo di configurazione per provisioning\$1parameters.json](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-provisioning-forms-slurm). Lo script `on_create.sh` trova questo file JSON e definisce la variabile di ambiente per identificarne il percorso. Tramite questo file JSON, puoi configurare nodi Slurm e opzioni di storage come Amazon FSx for Lustre for Slurm con cui comunicare. Inoltre`provisioning_parameters.json`, assicurati di assegnare i gruppi di istanze del HyperPod cluster utilizzando i nomi specificati ai nodi Slurm in modo appropriato in base `create_cluster.json` a come intendi configurarli.

      Il diagramma seguente mostra un esempio di come i due file di configurazione JSON `provisioning_parameters.json` devono essere scritti per HyperPod assegnare i gruppi di `create_cluster.json` istanze ai nodi Slurm. In questo esempio, supponiamo di dover configurare tre nodi Slurm: il nodo controller (gestione), il nodo login (facoltativo) e il nodo di calcolo (worker).
**Suggerimento**  
Per aiutarti a convalidare questi due file JSON, il team di HyperPod assistenza fornisce uno script di convalida,. [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/validate-config.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/validate-config.py) Per ulteriori informazioni, consulta [Convalida dei file di configurazione JSON prima di creare un cluster Slurm su HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-validate-json-files.md).  
![\[Confronto diretto tra file .json.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod-lifecycle-slurm-config.png)

      ***Figura:** Confronto diretto tra la configurazione per la creazione di HyperPod cluster e quella `create_cluster.json` per `provisiong_params.json` Slurm. Il numero di gruppi di istanze in `create_cluster.json` deve corrispondere al numero di nodi che intendi configurare come nodi Slurm. Nel caso dell'esempio in figura, tre nodi Slurm verranno configurati su un HyperPod cluster di tre gruppi di istanze. È necessario assegnare i gruppi di istanze del HyperPod cluster ai nodi Slurm specificando di conseguenza i nomi dei gruppi di istanze.*

   1. `resource_config.json`— Durante la creazione del cluster, lo `lifecycle_script.py` script viene scritto in modo da aspettarsi un file da. `resource_config.json` HyperPod Questo file contiene informazioni sul cluster, ad esempio i tipi di istanze e gli indirizzi IP.

      Quando esegui l'`CreateCluster`API, HyperPod crea un file di configurazione delle risorse in `/opt/ml/config/resource_config.json` base al `create_cluster.json` file. Il percorso del file viene salvato nella variabile di ambiente denominata `SAGEMAKER_RESOURCE_CONFIG_PATH`. 
**Importante**  
Il `resource_config.json` file viene generato automaticamente dalla HyperPod piattaforma e NON è necessario crearlo. Il codice seguente, che mostra un esempio del file `resource_config.json` generato dalla creazione del cluster in base al file `create_cluster.json` della fase precedente, ti aiuta a capire cosa succede nel backend e come è fatto un file `resource_config.json` generato automaticamente.

      ```
      {
      
          "ClusterConfig": {
              "ClusterArn": "arn:aws:sagemaker:us-west-2:111122223333:cluster/abcde01234yz",
              "ClusterName": "your-hyperpod-cluster"
          },
          "InstanceGroups": [
              {
                  "Name": "controller-machine",
                  "InstanceType": "ml.c5.xlarge",
                  "Instances": [
                      {
                          "InstanceName": "controller-machine-1",
                          "AgentIpAddress": "111.222.333.444",
                          "CustomerIpAddress": "111.222.333.444",
                          "InstanceId": "i-12345abcedfg67890"
                      }
                  ]
              },
              {
                  "Name": "login-group",
                  "InstanceType": "ml.m5.xlarge",
                  "Instances": [
                      {
                          "InstanceName": "login-group-1",
                          "AgentIpAddress": "111.222.333.444",
                          "CustomerIpAddress": "111.222.333.444",
                          "InstanceId": "i-12345abcedfg67890"
                      }
                  ]
              },
              {
                  "Name": "compute-nodes",
                  "InstanceType": "ml.trn1.32xlarge",
                  "Instances": [
                      {
                          "InstanceName": "compute-nodes-1",
                          "AgentIpAddress": "111.222.333.444",
                          "CustomerIpAddress": "111.222.333.444",
                          "InstanceId": "i-12345abcedfg67890"
                      },
                      {
                          "InstanceName": "compute-nodes-2",
                          "AgentIpAddress": "111.222.333.444",
                          "CustomerIpAddress": "111.222.333.444",
                          "InstanceId": "i-12345abcedfg67890"
                      },
                      {
                          "InstanceName": "compute-nodes-3",
                          "AgentIpAddress": "111.222.333.444",
                          "CustomerIpAddress": "111.222.333.444",
                          "InstanceId": "i-12345abcedfg67890"
                      },
                      {
                          "InstanceName": "compute-nodes-4",
                          "AgentIpAddress": "111.222.333.444",
                          "CustomerIpAddress": "111.222.333.444",
                          "InstanceId": "i-12345abcedfg67890"
                      }
                  ]
              }
          ]
      }
      ```

   1. `lifecycle_script.py`— Questo è lo script Python principale che esegue collettivamente gli script del ciclo di vita configurando Slurm sul cluster durante il provisioning. HyperPod Questo script legge `provisioning_parameters.json` e `resource_config.json` nei percorsi specificati o identificati in `on_create.sh`, passa le informazioni pertinenti a ogni script del ciclo di vita e quindi esegue in ordine gli script del ciclo di vita.

      Gli script del ciclo di vita sono un set di script che offre la massima flessibilità di personalizzazione e consente di installare pacchetti software e impostare le configurazioni necessarie o personalizzate durante la creazione di cluster, ad esempio la configurazione di Slurm, la creazione di utenti e l’installazione di Conda o Docker. [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/lifecycle_script.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/lifecycle_script.py)Lo script di esempio è pronto per eseguire altri script del ciclo di vita di base nel repository, come l'avvio di Slurm deamons () [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/start_slurm.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/start_slurm.sh), il montaggio di Amazon FSx for Lustre () e la configurazione di MariaDB accounting () [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/mount_fsx.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/mount_fsx.sh)e RDS accounting (). [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/setup_mariadb_accounting.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/setup_mariadb_accounting.sh) Puoi anche aggiungere altri script, impacchettarli nella stessa directory e aggiungere righe di codice per consentire l'esecuzione degli script. `lifecycle_script.py` HyperPod *Per ulteriori informazioni sugli script del ciclo di vita di base, consulta anche gli script del ciclo di [vita 3.1 nell'archivio Awsome Distributed Training](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod#31-lifecycle-scripts). GitHub *
**Nota**  
HyperPod viene eseguito [SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami) su ogni istanza di un cluster e l'AMI dispone di pacchetti software preinstallati che rispettano le compatibilità tra essi e le funzionalità. HyperPod Tieni presente che se reinstalli uno qualsiasi dei pacchetti preinstallati, sei responsabile dell'installazione dei pacchetti compatibili e tieni presente che alcune HyperPod funzionalità potrebbero non funzionare come previsto.

      Oltre alle configurazioni predefinite, nella cartella [https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/utils](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/utils) sono disponibili altri script per l’installazione dei software seguenti. Il file `lifecycle_script.py` è già pronto per includere righe di codice per l’esecuzione degli script di installazione, quindi consulta le indicazioni seguenti per cercare tali righe e rimuovi i commenti per attivarle.

      1. Le righe di codice seguenti servono per l’installazione di [Docker](https://www.docker.com/), [Enroot](https://github.com/NVIDIA/enroot) e [Pyxis](https://github.com/NVIDIA/pyxis). Questi pacchetti sono necessari per eseguire i container Docker su un cluster Slurm. 

         Per abilitare questa fase di installazione, imposta il parametro `enable_docker_enroot_pyxis` su `True` nel file [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py).

         ```
         # Install Docker/Enroot/Pyxis
         if Config.enable_docker_enroot_pyxis:
             ExecuteBashScript("./utils/install_docker.sh").run()
             ExecuteBashScript("./utils/install_enroot_pyxis.sh").run(node_type)
         ```

      1. Puoi integrare il tuo HyperPod cluster con [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html) e [Amazon Managed](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html) Grafana per esportare i parametri relativi al cluster e ai nodi HyperPod del cluster nelle dashboard di Amazon Managed Grafana. Per esportare le metriche e utilizzare la [dashboard Slurm](https://grafana.com/grafana/dashboards/4323-slurm-dashboard/), la [dashboard NVIDIA DCGM Exporter](https://grafana.com/grafana/dashboards/12239-nvidia-dcgm-exporter-dashboard/) e la [dashboard delle metriche EFA](https://grafana.com/grafana/dashboards/20579-efa-metrics-dev/) su Grafana gestito da Amazon, devi installare lo [strumento di esportazione Slurm per Prometheus](https://github.com/vpenso/prometheus-slurm-exporter), lo [strumento di esportazione NVIDIA DCGM](https://github.com/NVIDIA/dcgm-exporter) e lo [strumento di esportazione di nodi EFA](https://github.com/aws-samples/awsome-distributed-training/blob/main/4.validation_and_observability/3.efa-node-exporter/README.md). Per ulteriori informazioni sull’installazione dei pacchetti di esportazione e sull’utilizzo delle dashboard Grafana in uno spazio di lavoro Grafana gestito da Amazon, consulta [SageMaker HyperPod monitoraggio delle risorse del cluster](sagemaker-hyperpod-cluster-observability-slurm.md). 

         Per abilitare questa fase di installazione, imposta il parametro `enable_observability` su `True` nel file [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py).

         ```
         # Install metric exporting software and Prometheus for observability
         
         if Config.enable_observability:
             if node_type == SlurmNodeType.COMPUTE_NODE:
                 ExecuteBashScript("./utils/install_docker.sh").run()
                 ExecuteBashScript("./utils/install_dcgm_exporter.sh").run()
                 ExecuteBashScript("./utils/install_efa_node_exporter.sh").run()
             
             if node_type == SlurmNodeType.HEAD_NODE:
                 wait_for_scontrol()
                 ExecuteBashScript("./utils/install_docker.sh").run()
                 ExecuteBashScript("./utils/install_slurm_exporter.sh").run()
                 ExecuteBashScript("./utils/install_prometheus.sh").run()
         ```

1. Assicurati di caricare tutti i file e gli script di configurazione della **Fase 2** nel bucket S3 fornito nella richiesta `CreateCluster` della **Fase 1**. Ad esempio, presupponi che `create_cluster.json` contenga quanto segue:

   ```
   "LifeCycleConfig": { 
   
       "SourceS3URI": "s3://sagemaker-hyperpod-lifecycle/src",
       "OnCreate": "on_create.sh"
   }
   ```

   Di conseguenza, `"s3://sagemaker-hyperpod-lifecycle/src"` dovrebbe contenere `on_create.sh`, `lifecycle_script.py`, `provisioning_parameters.json` e tutti gli altri script di configurazione. Supponi di aver preparato i file in una cartella locale come segue.

   ```
   └── lifecycle_files // your local folder
       ├── provisioning_parameters.json
       ├── on_create.sh
       ├── lifecycle_script.py
       └── ... // more setup scrips to be fed into lifecycle_script.py
   ```

   Per caricare i file, utilizza il comando S3 come segue.

   ```
   aws s3 cp --recursive ./lifecycle_scripts s3://sagemaker-hyperpod-lifecycle/src
   ```

# Quali configurazioni particolari gestisce nei file di configurazione Slurm HyperPod
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm-what-hyperpod-overrides-in-slurm-conf"></a>

Quando crei un cluster Slurm su HyperPod, l' HyperPod agente configura [https://slurm.schedmd.com/gres.conf.html](https://slurm.schedmd.com/gres.conf.html)i file [https://slurm.schedmd.com/slurm.conf.html](https://slurm.schedmd.com/slurm.conf.html)and `/opt/slurm/etc/` per gestire il cluster Slurm in base alla richiesta di creazione del cluster e agli script HyperPod del ciclo di vita. L'elenco seguente mostra quali parametri specifici l'agente gestisce e sovrascrive. HyperPod 

**Importante**  
Si consiglia vivamente di **non** modificare questi parametri gestiti da HyperPod.
+ In [https://slurm.schedmd.com/slurm.conf.html](https://slurm.schedmd.com/slurm.conf.html), HyperPod imposta i seguenti parametri di base: `ClusterName``SlurmctldHost`,`PartitionName`, e`NodeName`.

  Inoltre, per abilitare la [Ripristino automatico dei nodi e ripristino automatico](sagemaker-hyperpod-resiliency-slurm-auto-resume.md) funzionalità, HyperPod richiede i `SchedulerParameters` parametri `TaskPlugin` e impostati come segue. Per impostazione predefinita, l' HyperPod agente imposta questi due parametri con i valori richiesti.

  ```
  TaskPlugin=task/none
  SchedulerParameters=permit_job_expansion
  ```
+ In [https://slurm.schedmd.com/gres.conf.html](https://slurm.schedmd.com/gres.conf.html), HyperPod gestisce `NodeName` i nodi GPU.

# Slurm registra le rotazioni
<a name="sagemaker-hyperpod-slurm-log-rotation"></a>

SageMaker HyperPod fornisce la rotazione automatica dei log dei daemon Slurm per aiutare a gestire l'utilizzo dello spazio su disco e mantenere le prestazioni del sistema. La rotazione dei log è fondamentale per evitare che i log consumino uno spazio eccessivo su disco e garantire un funzionamento ottimale del sistema archiviando e rimuovendo automaticamente i vecchi file di registro mantenendo al contempo le informazioni di registrazione recenti. Le rotazioni dei log di Slurm sono abilitate per impostazione predefinita quando si crea un cluster.

## Come funziona la rotazione dei log
<a name="sagemaker-hyperpod-slurm-log-rotation-how-it-works"></a>

Se abilitata, la configurazione di rotazione dei log:
+ Monitora tutti i file di registro Slurm con l'estensione `.log` situata nella `/var/log/slurm/` cartella sui nodi controller, login e calcolo.
+ Ruota i log quando raggiungono una dimensione di 50 MB.
+ Mantiene fino a due file di registro ruotati prima di eliminarli.
+ Invia SIGUSR2 il segnale ai demoni Slurm (`slurmctld`, `slurmd` e) dopo la rotazione. `slurmdbd`

## Elenco dei file di registro ruotati
<a name="sagemaker-hyperpod-slurm-log-rotation-log-files-list"></a>

I log di Slurm si trovano nella directory. `/var/log/slurm/` La rotazione dei log è abilitata per tutti i file corrispondenti. `/var/log/slurm/*.log` Quando si verifica una rotazione, i file ruotati hanno suffissi numerici (ad esempio). `slurmd.log.1` L'elenco seguente non è esaustivo ma mostra alcuni dei file di registro critici che ruotano automaticamente:
+ `/var/log/slurm/slurmctld.log`
+ `/var/log/slurm/slurmd.log`
+ `/var/log/slurm/slurmdb.log`
+ `/var/log/slurm/slurmrestd.log`

## Abilita o disabilita la rotazione dei log
<a name="sagemaker-hyperpod-slurm-log-rotation-enable-disable"></a>

È possibile controllare la funzionalità di rotazione dei log utilizzando il `enable_slurm_log_rotation` parametro nello `config.py` script degli script del ciclo di vita del cluster, come illustrato nell'esempio seguente:

```
class Config:
    # Set false if you want to disable log rotation of Slurm daemon logs
    enable_slurm_log_rotation = True  # Default value
```

Per disabilitare la rotazione dei log, imposta il parametro su`False`, come mostrato nell'esempio seguente:

```
enable_slurm_log_rotation = False
```

**Nota**  
Gli script del ciclo di vita vengono eseguiti su tutti i nodi Slurm (controller, login e nodi di calcolo) durante la creazione del cluster. Vengono eseguiti anche su nuovi nodi quando vengono aggiunti al cluster. L'aggiornamento delle configurazioni di rotazione dei log deve essere eseguito manualmente dopo la creazione del cluster. La configurazione della rotazione dei log è memorizzata in`/etc/logrotate.d/sagemaker-hyperpod-slurm`. Si consiglia di mantenere abilitata la rotazione dei log per evitare che i file di registro consumino troppo spazio su disco. Per disabilitare la rotazione dei log, elimina il `sagemaker-hyperpod-slurm` file o commentane il contenuto aggiungendolo `#` all'inizio di ogni riga del `sagemaker-hyperpod-slurm` file.

## Impostazioni predefinite di rotazione dei registri
<a name="sagemaker-hyperpod-slurm-log-rotation-default-settings"></a>

Le seguenti impostazioni vengono configurate automaticamente per ogni file di registro ruotato:


| Impostazione | Valore | Description | 
| --- | --- | --- | 
| rotate | 2 | Numero di file di registro ruotati da conservare | 
| size | 50 MB | Dimensione massima prima della rotazione | 
| copytruncate | abilitato | Copia e tronca il file di registro originale | 
| compress | disabled | I log ruotati non vengono compressi | 
| missingok | abilitato | Nessun errore se manca il file di registro | 
| notifempty | abilitato | Non ruota i file vuoti | 
| noolddir | abilitato | I file ruotati rimangono nella stessa directory | 

# Montaggio di Amazon FSx for Lustre e Amazon FSx for OpenZFS su un cluster HyperPod
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-setup-with-fsx"></a>

Per montare un file system condiviso Amazon FSx for Lustre sul tuo HyperPod cluster, configura quanto segue.

1. Utilizza il tuo Amazon VPC. 

   1. Affinché le istanze del HyperPod cluster comunichino all'interno del tuo VPC, assicurati di associarle [Configurazione SageMaker HyperPod con un Amazon VPC personalizzato](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-optional-vpc) al ruolo IAM per. SageMaker HyperPod 

   1. In `create_cluster.json`, includi le informazioni sul VPC seguenti.

      ```
      "VpcConfig": { 
          "SecurityGroupIds": [ "string" ],
          "Subnets": [ "string" ]
      }
      ```

      Per ulteriori suggerimenti sulla configurazione di Amazon VPC, consulta [Prerequisiti per l'utilizzo SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md).

1. Per completare la configurazione di Slurm con Amazon FSx for Lustre, puoi utilizzare uno dei seguenti approcci. Puoi trovare le FSx informazioni di Amazon dalla console Amazon FSx for Lustre nel tuo account o eseguendo il seguente AWS CLI comando,`aws fsx describe-file-systems`.

   **Opzione A: configurazione basata su API (consigliata)**

   Specificate la FSx configurazione Amazon direttamente nel payload dell' CreateCluster API utilizzando `InstanceStorageConfigs` all'interno di ogni gruppo di istanze. Questo approccio supporta sia FSx Lustre che OpenZFS e consente FSx la configurazione. per-instance-group FSx 

   ```
   "InstanceStorageConfigs": [
       {
           "FsxLustreConfig": {
               "DnsName": "fs-12345678a90b01cde.fsx.us-west-2.amazonaws.com",
               "MountPath": "/fsx",
               "MountName": "1abcdefg"
           }
       }
   ]
   ```

    FSx Per OpenZFS, usa invece: `FsxOpenZfsConfig`

   ```
   "InstanceStorageConfigs": [
       {
           "FsxOpenZfsConfig": {
               "DnsName": "fs-12345678a90b01cde.fsx.us-west-2.amazonaws.com",
               "MountPath": "/fsx-openzfs"
           }
       }
   ]
   ```

   Per ulteriori dettagli, consulta [Guida introduttiva all' SageMaker HyperPod uso della AWS CLI](sagemaker-hyperpod-quickstart.md).

   **Opzione B: configurazione precedente**

   Specificare il nome Amazon FSx DNS e il nome di FSx montaggio Amazon `provisioning_parameters.json` come mostrato nella figura nella [Script del ciclo di vita di base forniti da HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md) sezione.

   ```
   "fsx_dns_name": "fs-12345678a90b01cde.fsx.us-west-2.amazonaws.com",
   "fsx_mountname": "1abcdefg"
   ```

# Convalida dei file di configurazione JSON prima di creare un cluster Slurm su HyperPod
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-validate-json-files"></a>

Per convalidare i file di configurazione JSON prima di inviare una richiesta di creazione del cluster, utilizza lo script di convalida della configurazione [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/validate-config.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/validate-config.py). Questo script analizza e confronta il file JSON di configurazione del HyperPod cluster e il file JSON di configurazione Slurm e identifica eventuali errori di configurazione delle risorse tra i due file e anche tra le risorse Amazon EC2, Amazon VPC e Amazon. FSx Ad esempio, per convalidare i file `create_cluster.json` e `provisioning_parameters.json` della sezione [Script del ciclo di vita di base forniti da HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md), esegui lo script di convalida come segue.

```
python3 validate-config.py --cluster-config create_cluster.json --provisioning-parameters provisioning_parameters.json
```

Di seguito è riportato un esempio di output di una convalida eseguita correttamente.

```
✔️  Validated instance group name worker-group-1 is correct ...

✔️  Validated subnet subnet-012345abcdef67890 ...
✔️  Validated security group sg-012345abcdef67890 ingress rules ...
✔️  Validated security group sg-012345abcdef67890 egress rules ...
✔️  Validated FSx Lustre DNS name fs-012345abcdef67890.fsx.us-east-1.amazonaws.com
✔️  Validated FSx Lustre mount name abcdefgh
✅ Cluster Validation succeeded
```

# Convalida del runtime prima di eseguire carichi di lavoro di produzione su un cluster Slurm HyperPod
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-validate-runtime"></a>

Per controllare il runtime prima di eseguire qualsiasi carico di lavoro di produzione su un cluster Slurm HyperPod, usa lo script di convalida del runtime. [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/hyperpod-precheck.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/hyperpod-precheck.py) Questo script verifica se il cluster Slurm ha tutti i pacchetti installati per l'esecuzione di Docker, se il cluster ha un file system montato correttamente FSx per Lustre e una directory utente che condivide il file system e se il demone Slurm è in esecuzione su tutti i nodi di calcolo.

Per eseguire lo script su più nodi contemporaneamente, utilizza `srun` come mostrato nel comando di esempio seguente per eseguire lo script su un cluster Slurm di 8 nodi.

```
# The following command runs on 8 nodes
srun -N 8 python3 hyperpod-precheck.py
```

**Nota**  
Per ulteriori informazioni sullo script di convalida, ad esempio sulle funzioni di convalida del runtime fornite dallo script e sulle linee guida per risolvere i problemi che non superano le convalide, consulta [Convalida del runtime prima di eseguire carichi](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod#35-runtime-validation-before-running-workloads) di lavoro nell'* GitHub archivio Awsome Distributed Training*.

# Sviluppo interattivo di script del ciclo di vita su un nodo del cluster HyperPod
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-develop-lifecycle-scripts"></a>

Questa sezione spiega come sviluppare in modo interattivo script del ciclo di vita senza creare ed eliminare ripetutamente un cluster. HyperPod 

1. Crea un HyperPod cluster con gli script del ciclo di vita di base.

1. Accedi a un nodo del cluster.

1. Sviluppa uno script (`configure_xyz.sh`) modificandolo ed eseguendolo ripetutamente sul nodo.

   1. HyperPod esegue gli script del ciclo di vita come utente root, quindi si consiglia di eseguirli `configure_xyz.sh` come utente root durante lo sviluppo per assicurarsi che lo script venga testato nelle stesse condizioni durante l'esecuzione da. HyperPod

1. Integra lo script in `lifecycle_script.py` aggiungendo una riga di codice simile alla seguente.

   ```
   ExecuteBashScript("./utils/configure_xyz.sh").run()
   ```

1. Carica gli script del ciclo di vita aggiornati nel bucket S3 utilizzato all’inizio per caricare gli script del ciclo di vita di base.

1. Prova la versione integrata di `lifecycle_script.py` creando un nuovo cluster. HyperPod Puoi anche utilizzare la sostituzione manuale delle istanze per testare gli script del ciclo di vita aggiornati creando nuove istanze. Per istruzioni dettagliate, consulta Sostituire [manualmente](https://docs.aws.amazon.com//sagemaker/latest/dg/sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance.html#sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-replace) un nodo. Nota che solo i nodi di lavoro sono sostituibili.

# SageMaker HyperPod supporto per nodi multitesta
<a name="sagemaker-hyperpod-multihead-slurm"></a>

È possibile creare più nodi controller (head) in un singolo cluster SageMaker HyperPod Slurm, uno dei quali funge da nodo di controller principale e gli altri da nodi di controller di backup. Il nodo controller primario è responsabile del controllo dei nodi di calcolo (worker) e della gestione delle operazioni Slurm. I nodi controller di backup monitorano costantemente il nodo controller primario. Se il nodo controller primario non riesce o non risponde, uno dei nodi controller di backup lo sostituisce automaticamente diventando il nuovo nodo controller primario.

La configurazione di più nodi controller nei cluster SageMaker HyperPod Slurm offre diversi vantaggi chiave. Elimina il rischio legato al malfunzionamento di un singolo nodo controller fornendo nodi head del controller, consente il failover automatico sui nodi controller di backup con un ripristino più rapido e consente di gestire l’accounting dei database e la configurazione Slurm in modo indipendente.

## Concetti chiave
<a name="sagemaker-hyperpod-multihead-slurm-concepts"></a>

Di seguito vengono forniti dettagli sui concetti relativi al supporto di SageMaker HyperPod più nodi controller (principali) per i cluster Slurm.

**Nodi controller**

Un nodo controller è un’istanza Amazon EC2 all’interno di un cluster che esegue servizi Slurm critici per la gestione e il coordinamento delle operazioni del cluster. In particolare, ospita il [daemon del controller Slurm (slurmctld)](https://slurm.schedmd.com/slurmctld.html) e il [daemon del database Slurm (slurmdbd)](https://slurm.schedmd.com/slurmdbd.html). Un nodo controller è anche noto come nodo head.

**Nodo controller primario**

Un nodo controller primario è il nodo controller attivo e attualmente responsabile del controllo in un cluster Slurm. Viene considerato da Slurm come il nodo controller primario responsabile della gestione del cluster. Il nodo controller primario riceve i comandi dagli utenti e li esegue per controllare e allocare risorse sui nodi di calcolo per l’esecuzione dei processi.

**Nodo controller di backup**

Un nodo controller di backup è un nodo controller inattivo e in standby in un cluster Slurm. Viene considerato da Slurm come un nodo controller di backup che attualmente non gestisce il cluster. Il nodo controller di backup esegue il [daemon del controller Slurm (slurmctld)](https://slurm.schedmd.com/slurmctld.html) in modalità standby. Tutti i comandi del controller eseguiti sui nodi controller di backup verranno propagati al nodo controller primario per l’esecuzione. Il suo scopo principale è monitorare continuamente il nodo controller primario e assumersene le responsabilità in caso di errore o di mancata risposta.

**Nodo di calcolo**

Un nodo di calcolo è un’istanza Amazon EC2 all’interno di un cluster che ospita [il daemon worker Slurm (slurmd)](https://slurm.schedmd.com/slurmd.html). La funzione primaria del nodo di calcolo consiste nell’eseguire i processi assegnati dal [daemon del controller Slurm (slurmctld)](https://slurm.schedmd.com/slurmctld.html) in esecuzione sul nodo controller primario. Quando viene pianificato un processo, il nodo di calcolo riceve istruzioni dal [daemon del controller Slurm (slurmctld)](https://slurm.schedmd.com/slurmctld.html) per eseguire le attività e i calcoli necessari per tale processo all’interno del nodo stesso. Un calcolo è anche noto come nodo worker.

## Come funziona
<a name="sagemaker-hyperpod-multihead-slurm-how"></a>

Il diagramma seguente illustra come diversi AWS servizi interagiscono per supportare l'architettura dei nodi a più controller (principali) per i cluster Slurm. SageMaker HyperPod 

![\[SageMaker HyperPod diagramma di architettura dei nodi a più teste\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod/hyperpod-multihead-architecture.png)


I AWS servizi che interagiscono per supportare l'architettura dei nodi con controller SageMaker HyperPod multipli (principali) includono quanto segue.


**AWS servizi che interagiscono per supportare l'architettura con SageMaker HyperPod più nodi di controller**  

| Servizio | Description | 
| --- | --- | 
| IAM (AWS Identity and Access Management) | Definisce due ruoli IAM per controllare le autorizzazioni di accesso: un ruolo per il gruppo di istanze del nodo di calcolo e l’altro per il gruppo di istanze del nodo controller. | 
| Amazon RDS per MariaDB | Archivia i dati di accounting per Slurm, che contengono i record dei processi e i dati di misurazione. | 
| Gestione dei segreti AWS | Archivia e gestisce le credenziali a cui può accedere Amazon FSx for Lustre. | 
| Amazon FSx per Lustre  | Archivia le configurazioni e lo stato di runtime di Slurm. | 
| Amazon VPC | Fornisce un ambiente di rete isolato in cui vengono distribuiti il HyperPod cluster e le relative risorse. | 
| Amazon SNS  | Invia notifiche agli amministratori in caso di modifiche dello stato (il controller Slurm è ON o OFF) relative al nodo controller primario (head). | 

Il HyperPod cluster stesso è costituito da nodi di controller (primari e di backup) e nodi di elaborazione. I nodi controller eseguono i componenti Slurm controller (SlurmCtld) e database (SlurmDBd), che gestiscono e monitorano il carico di lavoro tra i nodi di elaborazione.

I nodi del controller accedono alle configurazioni Slurm e allo stato di runtime archiviati nel file system Amazon FSx for Lustre. I dati di contabilità Slurm sono archiviati nel database Amazon RDS for MariaDB. Gestione dei segreti AWS fornisce un accesso sicuro alle credenziali del database per i nodi del controller.

In caso di modifica dello stato (il controller Slurm è `ON` o `OFF`) nei nodi controller Slurm, Amazon SNS invia notifiche all’amministratore per ulteriori azioni.

Questa architettura con più nodi controller elimina il singolo punto di errore di un singolo nodo controller (head), consente un ripristino rapido e automatico del failover e offre il controllo sulle configurazioni e il database di accounting di Slurm.

# Configurazione di più nodi controller per un cluster SageMaker HyperPod Slurm
<a name="sagemaker-hyperpod-multihead-slurm-setup"></a>

Questo argomento spiega come configurare più nodi controller (head) in un cluster SageMaker HyperPod Slurm utilizzando script del ciclo di vita. Prima di iniziare, esamina i prerequisiti elencati in [Prerequisiti per l'utilizzo SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md) e impara a conoscere gli script del ciclo di vita in [Personalizzazione dei SageMaker HyperPod cluster utilizzando script del ciclo di vita](sagemaker-hyperpod-lifecycle-best-practices-slurm.md). Le istruzioni in questo argomento utilizzano AWS CLI i comandi in ambiente Amazon Linux. Tieni presente che le variabili di ambiente utilizzate in questi comandi sono disponibili nella sessione corrente a meno che non vengano esplicitamente mantenute.

**Topics**
+ [Fornitura di risorse tramite stack CloudFormation](sagemaker-hyperpod-multihead-slurm-cfn.md)
+ [Creazione e collegamento di una policy IAM](sagemaker-hyperpod-multihead-slurm-iam.md)
+ [Preparazione e caricamento degli script del ciclo di vita](sagemaker-hyperpod-multihead-slurm-scripts.md)
+ [Creazione di un cluster SageMaker HyperPod](sagemaker-hyperpod-multihead-slurm-create.md)
+ [Note importanti](sagemaker-hyperpod-multihead-slurm-notes.md)
+ [Revisione dei riferimenti alle variabili di ambiente](sagemaker-hyperpod-multihead-slurm-variables-reference.md)

# Fornitura di risorse tramite stack CloudFormation
<a name="sagemaker-hyperpod-multihead-slurm-cfn"></a>

Per configurare più nodi controller in un cluster HyperPod Slurm, fornisci AWS le risorse tramite due CloudFormation stack: e. [Allocazione di risorse di base](#sagemaker-hyperpod-multihead-slurm-cfn-basic) [Allocazione di risorse aggiuntive per supportare più nodi controller](#sagemaker-hyperpod-multihead-slurm-cfn-multihead)

## Allocazione di risorse di base
<a name="sagemaker-hyperpod-multihead-slurm-cfn-basic"></a>

Segui questi passaggi per fornire risorse di base per il tuo cluster Amazon SageMaker HyperPod Slurm.

1. Scarica il file del modello [sagemaker-hyperpod.yaml](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/sagemaker-hyperpod.yaml) sul tuo computer. Questo file YAML è un CloudFormation modello che definisce le seguenti risorse da creare per il tuo cluster Slurm.
   + Un ruolo IAM di esecuzione per il gruppo di istanze del nodo di calcolo
   + Un bucket Amazon S3 per archiviare gli script del ciclo di vita
   + Sottoreti pubbliche e private (le sottoreti private hanno accesso a Internet tramite gateway NAT)
   +  Gateway/NAT Gateway Internet
   + Due gruppi di sicurezza Amazon EC2
   + Un FSx volume Amazon per archiviare i file di configurazione

1. Esegui il seguente comando CLI per creare uno CloudFormation stack denominato. `sagemaker-hyperpod` Definisci la zona di disponibilità (AZ) IDs per il tuo cluster in `PrimarySubnetAZ` and. `BackupSubnetAZ` Ad esempio, *use1-az4* è un ID AZ per una zona di disponibilità nella `us-east-1` regione. Per ulteriori informazioni, vedere [Zona di disponibilità IDs](https://docs.aws.amazon.com//ram/latest/userguide/working-with-az-ids.html) e[Configurazione di cluster su più cluster SageMaker HyperPod AZs](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-multiple-availability-zones).

   ```
   aws cloudformation deploy \
   --template-file /path_to_template/sagemaker-hyperpod.yaml \
   --stack-name sagemaker-hyperpod \
   --parameter-overrides PrimarySubnetAZ=use1-az4 BackupSubnetAZ=use1-az1 \
   --capabilities CAPABILITY_IAM
   ```

   Per ulteriori informazioni, consulta [deploy](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/deploy/) from the AWS Command Line Interface Reference. La creazione dello stack può richiedere alcuni minuti. Al termine, vedrai quanto segue nell’interfaccia a riga di comando.

   ```
   Waiting for changeset to be created..
   Waiting for stack create/update to complete
   Successfully created/updated stack - sagemaker-hyperpod
   ```

1. (Facoltativo) Verifica lo stack nella [console CloudFormation](https://console.aws.amazon.com/cloudformation/home).
   + Seleziona **Stack** dalla barra di navigazione a sinistra.
   + Nella pagina **Stack**, trova e scegli **sagemaker-hyperpod**.
   + Scegli le schede **Risorse** e **Output** per esaminare le risorse e gli output.

1. Crea variabili di ambiente dagli output dello stack (`sagemaker-hyperpod`). Utilizzerai i valori di queste variabili per [Allocazione di risorse aggiuntive per supportare più nodi controller](#sagemaker-hyperpod-multihead-slurm-cfn-multihead).

   ```
   source .env
   PRIMARY_SUBNET=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`PrimaryPrivateSubnet`].OutputValue' --output text)
   BACKUP_SUBNET=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`BackupPrivateSubnet`].OutputValue' --output text)
   EMAIL=$(bash -c 'read -p "INPUT YOUR SNSSubEmailAddress HERE: " && echo $REPLY')
   DB_USER_NAME=$(bash -c 'read -p "INPUT YOUR DB_USER_NAME HERE: " && echo $REPLY')
   SECURITY_GROUP=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`SecurityGroup`].OutputValue' --output text)
   ROOT_BUCKET_NAME=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`AmazonS3BucketName`].OutputValue' --output text)
   SLURM_FSX_DNS_NAME=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`FSxLustreFilesystemDNSname`].OutputValue' --output text)
   SLURM_FSX_MOUNT_NAME=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`FSxLustreFilesystemMountname`].OutputValue' --output text)
   COMPUTE_NODE_ROLE=$(aws --region $REGION cloudformation describe-stacks --stack-name $SAGEMAKER_STACK_NAME --query 'Stacks[0].Outputs[?OutputKey==`AmazonSagemakerClusterExecutionRoleArn`].OutputValue' --output text)
   ```

   Quando vedi prompt che richiedono il tuo indirizzo e-mail e il nome utente del database, inserisci valori come i seguenti.

   ```
   INPUT YOUR SNSSubEmailAddress HERE: Email_address_to_receive_SNS_notifications
   INPUT YOUR DB_USER_NAME HERE: Database_user_name_you_define
   ```

   Per verificare i valori delle variabili, utilizza il comando `print $variable`.

   ```
   print $REGION
   us-east-1
   ```

## Allocazione di risorse aggiuntive per supportare più nodi controller
<a name="sagemaker-hyperpod-multihead-slurm-cfn-multihead"></a>

Segui questi passaggi per fornire risorse aggiuntive per il tuo cluster Amazon SageMaker HyperPod Slurm con più nodi controller.

1. Scarica il file modello [sagemaker-hyperpod-slurm-multi-headnode.yaml](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/sagemaker-hyperpod-slurm-multi-headnode.yaml) sul tuo computer. Questo secondo file YAML è un CloudFormation modello che definisce le risorse aggiuntive da creare per il supporto di più nodi di controller nel cluster Slurm.
   + Un ruolo IAM di esecuzione per il gruppo di istanze del nodo controller
   + Un’istanza Amazon RDS per MariaDB
   + Un argomento e l’abbonamento Amazon SNS
   + Gestione dei segreti AWS credenziali per Amazon RDS for MariaDB

1. Esegui il seguente comando CLI per creare uno CloudFormation stack denominato. `sagemaker-hyperpod-mh` Questo secondo stack utilizza il CloudFormation modello per creare AWS risorse aggiuntive per supportare l'architettura a più nodi di controller.

   ```
   aws cloudformation deploy \
   --template-file /path_to_template/slurm-multi-headnode.yaml \
   --stack-name sagemaker-hyperpod-mh \
   --parameter-overrides \
   SlurmDBSecurityGroupId=$SECURITY_GROUP \
   SlurmDBSubnetGroupId1=$PRIMARY_SUBNET \
   SlurmDBSubnetGroupId2=$BACKUP_SUBNET \
   SNSSubEmailAddress=$EMAIL \
   SlurmDBUsername=$DB_USER_NAME \
   --capabilities CAPABILITY_NAMED_IAM
   ```

   Per ulteriori informazioni, consulta [deploy](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/deploy/) from the AWS Command Line Interface Reference. La creazione dello stack può richiedere alcuni minuti. Al termine, vedrai quanto segue nell’interfaccia a riga di comando.

   ```
   Waiting for changeset to be created..
   Waiting for stack create/update to complete
   Successfully created/updated stack - sagemaker-hyperpod-mh
   ```

1. (Facoltativo) Verifica lo stack nella [console AWS Cloud Formation](https://console.aws.amazon.com/cloudformation/home).
   + Seleziona **Stack** dalla barra di navigazione a sinistra.
   + Nella pagina **Stack**, trova e scegli. **sagemaker-hyperpod-mh**
   + Scegli le schede **Risorse** e **Output** per esaminare le risorse e gli output.

1. Crea variabili di ambiente dagli output dello stack (`sagemaker-hyperpod-mh`). Utilizzerai i valori di queste variabili per aggiornare il file di configurazione (`provisioning_parameters.json`) in [Preparazione e caricamento degli script del ciclo di vita](sagemaker-hyperpod-multihead-slurm-scripts.md).

   ```
   source .env
   SLURM_DB_ENDPOINT_ADDRESS=$(aws --region us-east-1 cloudformation describe-stacks --stack-name $MULTI_HEAD_SLURM_STACK --query 'Stacks[0].Outputs[?OutputKey==`SlurmDBEndpointAddress`].OutputValue' --output text)
   SLURM_DB_SECRET_ARN=$(aws --region us-east-1 cloudformation describe-stacks --stack-name $MULTI_HEAD_SLURM_STACK --query 'Stacks[0].Outputs[?OutputKey==`SlurmDBSecretArn`].OutputValue' --output text)
   SLURM_EXECUTION_ROLE_ARN=$(aws --region us-east-1 cloudformation describe-stacks --stack-name $MULTI_HEAD_SLURM_STACK --query 'Stacks[0].Outputs[?OutputKey==`SlurmExecutionRoleArn`].OutputValue' --output text)
   SLURM_SNS_FAILOVER_TOPIC_ARN=$(aws --region us-east-1 cloudformation describe-stacks --stack-name $MULTI_HEAD_SLURM_STACK --query 'Stacks[0].Outputs[?OutputKey==`SlurmFailOverSNSTopicArn`].OutputValue' --output text)
   ```

# Creazione e collegamento di una policy IAM
<a name="sagemaker-hyperpod-multihead-slurm-iam"></a>

Questa sezione spiega come creare una policy IAM e collegarla al ruolo di esecuzione creato in [Allocazione di risorse aggiuntive per supportare più nodi controller](sagemaker-hyperpod-multihead-slurm-cfn.md#sagemaker-hyperpod-multihead-slurm-cfn-multihead).

1. Scarica l'[esempio di policy IAM sulla](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/1.AmazonSageMakerClustersExecutionRolePolicy.json) tua macchina dal GitHub repository.

1. Crea una policy IAM con l’esempio scaricato utilizzando il comando della CLI [create-policy](https://docs.aws.amazon.com//cli/latest/reference/iam/create-policy.html).

   ```
   aws --region us-east-1 iam create-policy \
       --policy-name AmazonSagemakerExecutionPolicy \
       --policy-document file://1.AmazonSageMakerClustersExecutionRolePolicy.json
   ```

   Esempio di output del comando.

   ```
   {
       "Policy": {
           "PolicyName": "AmazonSagemakerExecutionPolicy",
           "PolicyId": "ANPAXISIWY5UYZM7WJR4W",
           "Arn": "arn:aws:iam::111122223333:policy/AmazonSagemakerExecutionPolicy",
           "Path": "/",
           "DefaultVersionId": "v1",
           "AttachmentCount": 0,
           "PermissionsBoundaryUsageCount": 0,
           "IsAttachable": true,
           "CreateDate": "2025-01-22T20:01:21+00:00",
           "UpdateDate": "2025-01-22T20:01:21+00:00"
       }
   }
   ```

1. Allega la policy `AmazonSagemakerExecutionPolicy` al ruolo di esecuzione Slurm in cui hai creato[Allocazione di risorse aggiuntive per supportare più nodi controller](sagemaker-hyperpod-multihead-slurm-cfn.md#sagemaker-hyperpod-multihead-slurm-cfn-multihead), utilizzando il comando CLI [attach-role-policy](https://docs.aws.amazon.com//cli/latest/reference/iam/attach-role-policy.html).

   ```
   aws --region us-east-1 iam attach-role-policy \
       --role-name AmazonSagemakerExecutionRole \
       --policy-arn arn:aws:iam::111122223333:policy/AmazonSagemakerExecutionPolicy
   ```

   Il comando non produce output.

   (Facoltativo) Se utilizzi le variabili di ambiente, ecco i comandi di esempio.
   + Per ottenere il nome del ruolo e il nome della policy 

     ```
     POLICY=$(aws --region $REGION iam list-policies --query 'Policies[?PolicyName==AmazonSagemakerExecutionPolicy].Arn' --output text)
     ROLENAME=$(aws --region $REGION iam list-roles --query "Roles[?Arn=='${SLURM_EXECUTION_ROLE_ARN}'].RoleName" —output text)
     ```
   + Per collegare la policy

     ```
     aws  --region us-east-1 iam attach-role-policy \
          --role-name $ROLENAME --policy-arn $POLICY
     ```

Per ulteriori informazioni, consulta [Ruolo IAM per SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod).

# Preparazione e caricamento degli script del ciclo di vita
<a name="sagemaker-hyperpod-multihead-slurm-scripts"></a>

Dopo aver creato tutte le risorse richieste, dovrai configurare gli script del [ciclo](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts) di vita per il tuo cluster. SageMaker HyperPod Questi [script del ciclo](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts) di vita forniscono una [configurazione di base che puoi utilizzare per creare](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config) un cluster Slurm di base. HyperPod

## Preparazione degli script del ciclo di vita
<a name="sagemaker-hyperpod-multihead-slurm-prepare-scripts"></a>

Segui questa procedura per ottenere gli script del ciclo di vita.

1. Scarica gli [script del ciclo di vita](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts) dal repository sul tuo computer. GitHub 

1. Carica gli [script del ciclo di vita](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts) nel bucket Amazon S3 creato in [Allocazione di risorse di base](sagemaker-hyperpod-multihead-slurm-cfn.md#sagemaker-hyperpod-multihead-slurm-cfn-basic) utilizzando il comando della CLI [cp](https://docs.aws.amazon.com//cli/latest/reference/s3/cp.html).

   ```
   aws s3 cp --recursive LifeCycleScripts/base-config s3://${ROOT_BUCKET_NAME}/LifeCycleScripts/base-config
   ```

## Creazione di un file di configurazione
<a name="sagemaker-hyperpod-multihead-slurm-update-config-file"></a>

Segui questa procedura per creare il file di configurazione e caricarlo nello stesso bucket Amazon S3 in cui archivi gli script del ciclo di vita.

1. Crea un file di configurazione denominato `provisioning_parameters.json` con la configurazione seguente. Ricorda che `slurm_sns_arn` è opzionale. Se non fornito, non HyperPod configurerà le notifiche di Amazon SNS.

   ```
   cat <<EOF > /tmp/provisioning_parameters.json
   {
     "version": "1.0.0",
     "workload_manager": "slurm",
     "controller_group": "$CONTOLLER_IG_NAME",
     "login_group": "my-login-group",
     "worker_groups": [
       {
         "instance_group_name": "$COMPUTE_IG_NAME",
         "partition_name": "dev"
       }
     ],
     "fsx_dns_name": "$SLURM_FSX_DNS_NAME",
     "fsx_mountname": "$SLURM_FSX_MOUNT_NAME",
     "slurm_configurations": {
       "slurm_database_secret_arn": "$SLURM_DB_SECRET_ARN",
       "slurm_database_endpoint": "$SLURM_DB_ENDPOINT_ADDRESS",
       "slurm_shared_directory": "/fsx",
       "slurm_database_user": "$DB_USER_NAME",
       "slurm_sns_arn": "$SLURM_SNS_FAILOVER_TOPIC_ARN"
     }
   }
   EOF
   ```

1. Carica il file `provisioning_parameters.json` nello stesso bucket Amazon S3 in cui archivi gli script del ciclo di vita.

   ```
   aws s3 cp /tmp/provisioning_parameters.json s3://${ROOT_BUCKET_NAME}/LifeCycleScripts/base-config/provisioning_parameters.json
   ```
**Nota**  
Se utilizzi una configurazione basata su API, il `provisioning_parameters.json` file non è necessario. Con la configurazione basata su API, puoi definire i tipi di nodi Slurm, le partizioni e FSx il montaggio direttamente nel payload dell'API. CreateCluster [Per i dettagli, consulta Guida introduttiva all'utilizzo di. SageMaker HyperPod AWS CLI](smcluster-getting-started-slurm-cli.md)

## Verifica dei file nel bucket Amazon S3
<a name="sagemaker-hyperpod-multihead-slurm-verify-s3"></a>

Dopo aver caricato tutti gli script del ciclo di vita e il file `provisioning_parameters.json`, il bucket Amazon S3 dovrebbe avere il seguente aspetto.

![\[Immagine che mostra tutti gli script del ciclo di vita caricati nel bucket Amazon S3 nella console di Amazon Simple Storage Service.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod/hyperpod-lifecycle-scripts-s3.png)


Per ulteriori informazioni, consulta [Inizia con gli script del ciclo di vita di base](https://docs.aws.amazon.com//sagemaker/latest/dg/sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.html) forniti da. HyperPod

# Creazione di un cluster SageMaker HyperPod
<a name="sagemaker-hyperpod-multihead-slurm-create"></a>

Dopo aver configurato tutte le risorse richieste e caricato gli script nel bucket Amazon S3, puoi creare un cluster.

1. Per creare un cluster, esegui il [https://docs.aws.amazon.com//cli/latest/reference/sagemaker/create-cluster.html](https://docs.aws.amazon.com//cli/latest/reference/sagemaker/create-cluster.html) AWS CLI comando. Il completamento del processo può richiedere fino a 15 minuti.

   ```
   aws --region $REGION sagemaker create-cluster \
       --cluster-name $HP_CLUSTER_NAME \
       --vpc-config '{
           "SecurityGroupIds":["'$SECURITY_GROUP'"],
           "Subnets":["'$PRIMARY_SUBNET'", "'$BACKUP_SUBNET'"]
       }' \
       --instance-groups '[{                  
       "InstanceGroupName": "'$CONTOLLER_IG_NAME'",
       "InstanceType": "ml.t3.medium",
       "InstanceCount": 2,
       "LifeCycleConfig": {
           "SourceS3Uri": "s3://'$BUCKET_NAME'",
           "OnCreate": "on_create.sh"
       },
       "ExecutionRole": "'$SLURM_EXECUTION_ROLE_ARN'",
       "ThreadsPerCore": 1
   },
   {
       "InstanceGroupName": "'$COMPUTE_IG_NAME'",          
       "InstanceType": "ml.c5.xlarge",
       "InstanceCount": 2,
       "LifeCycleConfig": {
           "SourceS3Uri": "s3://'$BUCKET_NAME'",
           "OnCreate": "on_create.sh"
       },
       "ExecutionRole": "'$COMPUTE_NODE_ROLE'",
       "ThreadsPerCore": 1
   }]'
   ```

   Al termine, il comando restituisce l’ARN del cluster come mostrato di seguito.

   ```
   {
       "ClusterArn": "arn:aws:sagemaker:us-east-1:111122223333:cluster/cluster_id"
   }
   ```

1. (Facoltativo) Per verificare lo stato del cluster, puoi utilizzare la console SageMaker AI ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)). Dalla barra di navigazione a sinistra, scegli **HyperPod Cluster**, quindi scegli **Gestione cluster**. Scegli il nome del cluster per aprire la relativa pagina dei dettagli. Se il cluster è stato creato correttamente, vedrai che lo stato del cluster è **InService**.  
![\[Immagine che mostra un cluster HyperPod Slurm con più nodi controller nella console Amazon SageMaker AI.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod/hyperpod-lifecycle-multihead-cluster.png)

# Note importanti
<a name="sagemaker-hyperpod-multihead-slurm-notes"></a>

Questa sezione fornisce diverse note importanti che potrebbero esserti utili. 

1. Per eseguire la migrazione a un cluster Slurm multi-controller, completa queste fasi.

   1. Segui le istruzioni in [Fornitura di risorse tramite stack CloudFormation](sagemaker-hyperpod-multihead-slurm-cfn.md) per allocare tutte le risorse richieste.

   1. Segui le istruzioni in [Preparazione e caricamento degli script del ciclo di vita](sagemaker-hyperpod-multihead-slurm-scripts.md) per caricare gli script del ciclo di vita aggiornati. Quando aggiorni il file `provisioning_parameters.json`, sposta il gruppo di controller esistente nella sezione `worker_groups` e aggiungi un nuovo nome per il gruppo di controller nella sezione `controller_group`.

   1. Esegui la chiamata API [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) per creare un nuovo gruppo di controller e mantenere i gruppi di istanze di calcolo e il gruppo di controller originali.

1. Per ridurre verticalmente il numero di nodi controller, utilizza il comando della CLI [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html). Per ogni gruppo di istanze del controller, il numero minimo di nodi controller che possono essere ridotti verticalmente è 1. Ciò significa che non è possibile ridurre verticalmente a 0 il numero di nodi controller.
**Importante**  
Per i cluster creati prima del 24 gennaio 2025, è necessario aggiornare il software del cluster utilizzando l'[UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API prima di eseguire il comando CLI [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html).

   Di seguito è riportato un comando della CLI di esempio per ridurre verticalmente il numero di nodi controller.

   ```
   aws sagemaker update-cluster \
       --cluster-name my_cluster \
       --instance-groups '[{                  
       "InstanceGroupName": "controller_ig_name",
       "InstanceType": "ml.t3.medium",
       "InstanceCount": 3,
       "LifeCycleConfig": {
           "SourceS3Uri": "s3://amzn-s3-demo-bucket1",
           "OnCreate": "on_create.sh"
       },
       "ExecutionRole": "slurm_execution_role_arn",
       "ThreadsPerCore": 1
   },
   {
       "InstanceGroupName": "compute-ig_name",       
       "InstanceType": "ml.c5.xlarge",
       "InstanceCount": 2,
       "LifeCycleConfig": {
           "SourceS3Uri": "s3://amzn-s3-demo-bucket1",
           "OnCreate": "on_create.sh"
       },
       "ExecutionRole": "compute_node_role_arn",
       "ThreadsPerCore": 1
   }]'
   ```

1. Per eliminare in batch i nodi del controller, usa il comando [batch-delete-cluster-nodes](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/batch-delete-cluster-nodes.html)CLI. Per ogni gruppo di istanze del controller, è necessario mantenere almeno un nodo controller. Per eliminare in batch tutti i nodi controller non può essere utilizzata l’operazione API.
**Importante**  
Per i cluster creati prima del 24 gennaio 2025, è necessario aggiornare il software del cluster utilizzando l'[UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API prima di eseguire il comando CLI [batch-delete-cluster-nodes](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/batch-delete-cluster-nodes.html).

   Di seguito è riportato un comando della CLI di esempio per eliminare in batch i nodi controller.

   ```
   aws sagemaker batch-delete-cluster-nodes --cluster-name my_cluster --node-ids instance_ids_to_delete
   ```

1. Per risolvere i problemi di creazione del cluster, controlla il messaggio di errore nella pagina dei dettagli del cluster nella tua console AI. SageMaker Puoi anche utilizzare CloudWatch i log per risolvere i problemi di creazione dei cluster. **Dalla CloudWatch console, scegli Gruppi di log.** Quindi, cerca `clusters` per visualizzare l’elenco dei gruppi di log relativi alla creazione del cluster.  
![\[Immagine che mostra i gruppi di log del SageMaker HyperPod cluster Amazon nella CloudWatch console.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod/hyperpod-lifecycle-multihead-logs.png)

# Revisione dei riferimenti alle variabili di ambiente
<a name="sagemaker-hyperpod-multihead-slurm-variables-reference"></a>

Le seguenti variabili di ambiente sono definite e utilizzate nel tutorial di [Configurazione di più nodi controller per un cluster SageMaker HyperPod Slurm](sagemaker-hyperpod-multihead-slurm-setup.md). Queste variabili di ambiente sono disponibili solo nella sessione corrente a meno che non vengano esplicitamente mantenute. Sono definite utilizzando la sintassi `$variable_name`. Le variabili con key/value coppie rappresentano risorse AWS create, mentre le variabili senza chiavi sono definite dall'utente.


**Riferimenti alle variabili di ambiente**  

| Variabile | Description | 
| --- | --- | 
| \$1BACKUP\$1SUBNET |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1COMPUTE\$1IG\$1NAME |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1COMPUTE\$1NODE\$1ROLE |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1CONTOLLER\$1IG\$1NAME |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1DB\$1USER\$1NAME |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1EMAIL |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1PRIMARY\$1SUBNET |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1POLICY |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1REGION |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1ROOT\$1BUCKET\$1NAME |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1SECURITY\$1GROUP |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1SLURM\$1DB\$1ENDPOINT\$1ADDRESS |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1SLURM\$1DB\$1SECRET\$1ARN |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1SLURM\$1EXECUTION\$1ROLE\$1ARN |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1SLURM\$1FSX\$1DNS\$1NAME |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1SLURM\$1FSX\$1MOUNT\$1NAME |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1SLURM\$1SNS\$1FAILOVER\$1TOPIC\$1ARN |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 

# Lavori su cluster SageMaker HyperPod
<a name="sagemaker-hyperpod-run-jobs-slurm"></a>

I seguenti argomenti forniscono procedure ed esempi di accesso ai nodi di calcolo e di esecuzione di carichi di lavoro ML su cluster assegnati. SageMaker HyperPod A seconda di come è stato configurato l'ambiente sul HyperPod cluster, esistono molti modi per eseguire carichi di lavoro ML sui cluster. HyperPod Esempi di esecuzione di carichi di lavoro ML su HyperPod cluster sono disponibili anche nell'archivio Awsome [Distributed](https://github.com/aws-samples/awsome-distributed-training/) Training. GitHub I seguenti argomenti illustrano come accedere ai HyperPod cluster predisposti e come iniziare a eseguire esempi di carichi di lavoro ML.

**Suggerimento**  
[Per trovare esempi e soluzioni pratiche, consulta anche il workshop. SageMaker HyperPod](https://catalog.workshops.aws/sagemaker-hyperpod)

**Topics**
+ [Accesso ai nodi SageMaker HyperPod del cluster](sagemaker-hyperpod-run-jobs-slurm-access-nodes.md)
+ [Pianificazione di un job Slurm su un cluster SageMaker HyperPod](sagemaker-hyperpod-run-jobs-slurm-schedule-slurm-job.md)
+ [Esecuzione di contenitori Docker su un nodo di calcolo Slurm su HyperPod](sagemaker-hyperpod-run-jobs-slurm-docker.md)
+ [Esecuzione di carichi di lavoro di formazione distribuiti con Slurm on HyperPod](sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload.md)

# Accesso ai nodi SageMaker HyperPod del cluster
<a name="sagemaker-hyperpod-run-jobs-slurm-access-nodes"></a>

È possibile accedere al **InService**cluster tramite AWS Systems Manager (SSM) eseguendo il AWS CLI comando `aws ssm start-session` con il nome host del SageMaker HyperPod cluster nel formato di`sagemaker-cluster:[cluster-id]_[instance-group-name]-[instance-id]`. È possibile recuperare l'ID del cluster, l'ID dell'istanza e il nome del gruppo di istanze dalla [SageMaker HyperPod console](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-view-details-of-clusters) o eseguendo `describe-cluster` e `list-cluster-nodes` dai [AWS CLI comandi](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-list-cluster-nodes) di. SageMaker HyperPod Ad esempio, se l’ID del cluster è `aa11bbbbb222`, il nome del nodo del cluster è `controller-group` e l’ID del nodo del cluster è `i-111222333444555aa`, il comando `start-session` di SSM dovrebbe essere il seguente.

**Nota**  
La concessione agli utenti dell'accesso ai nodi HyperPod del cluster consente loro di installare e utilizzare software gestito dagli utenti sui nodi. Assicurati di rispettare il principio delle autorizzazioni con privilegio minimo per gli utenti.  
Se non l'hai ancora configurato AWS Systems Manager, segui le istruzioni fornite all'indirizzo. [Configurazione AWS Systems Manager ed esecuzione come per il controllo degli accessi degli utenti del cluster](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-ssm)

```
$ aws ssm start-session \
    --target sagemaker-cluster:aa11bbbbb222_controller-group-i-111222333444555aa \
    --region us-west-2
Starting session with SessionId: s0011223344aabbccdd
root@ip-111-22-333-444:/usr/bin#
```

Tieni presente che questa operazione esegue una connessione iniziale come utente root. Prima di eseguire i processi, passa all’utente `ubuntu` con il comando seguente.

```
root@ip-111-22-333-444:/usr/bin# sudo su - ubuntu
ubuntu@ip-111-22-333-444:/usr/bin#
```

Per le impostazioni avanzate per l'uso pratico dei HyperPod cluster, consulta i seguenti argomenti.

**Topics**
+ [Suggerimenti aggiuntivi per accedere ai SageMaker HyperPod nodi del cluster](#sagemaker-hyperpod-run-jobs-slurm-access-nodes-tips)
+ [Configura un ambiente multiutente tramite lo spazio FSx condiviso di Amazon](#sagemaker-hyperpod-run-jobs-slurm-access-nodes-multi-user-with-fxs-shared-space)
+ [Configura un ambiente multiutente integrando HyperPod i cluster con Active Directory](#sagemaker-hyperpod-run-jobs-slurm-access-nodes-multi-user-with-active-directory)

## Suggerimenti aggiuntivi per accedere ai SageMaker HyperPod nodi del cluster
<a name="sagemaker-hyperpod-run-jobs-slurm-access-nodes-tips"></a>

**Utilizza lo `easy-ssh.sh` script fornito da HyperPod per semplificare il processo di connessione**

Per trasformare il processo precedente in un comando a riga singola, il HyperPod team fornisce [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/easy-ssh.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/easy-ssh.sh)lo script che recupera le informazioni sul cluster, le aggrega nel comando SSM e si connette al nodo di calcolo. Non è necessario cercare manualmente le informazioni richieste sul HyperPod cluster poiché questo script viene eseguito, `list-cluster-nodes` comanda `describe-cluster` e analizza le informazioni necessarie per completare il comando SSM. I comandi di esempio seguenti mostrano come eseguire lo script [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/easy-ssh.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/easy-ssh.sh). Se lo script viene eseguito correttamente, viene stabilita una connessione al cluster come utente root. Stampa anche un frammento di codice per configurare SSH aggiungendo il HyperPod cluster come host remoto tramite un proxy SSM. Configurando SSH, puoi connettere il tuo ambiente di sviluppo locale, ad esempio Visual Studio Code, con il cluster. HyperPod 

```
$ chmod +x easy-ssh.sh
$ ./easy-ssh.sh -c <node-group> <cluster-name>
Cluster id: <cluster_id>
Instance id: <instance_id>
Node Group: <node-group>
Add the following to your ~/.ssh/config to easily connect:

$ cat <<EOF >> ~/.ssh/config
Host <cluster-name>
  User ubuntu
  ProxyCommand sh -c "aws ssm start-session  --target sagemaker-cluster:<cluster_id>_<node-group>-<instance_id> --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
EOF

Add your ssh keypair and then you can do:

$ ssh <cluster-name>

aws ssm start-session --target sagemaker-cluster:<cluster_id>_<node-group>-<instance_id>

Starting session with SessionId: s0011223344aabbccdd
root@ip-111-22-333-444:/usr/bin#
```

Tieni presente che questa operazione esegue una connessione iniziale come utente root. Prima di eseguire i processi, passa all’utente `ubuntu` con il comando seguente.

```
root@ip-111-22-333-444:/usr/bin# sudo su - ubuntu
ubuntu@ip-111-22-333-444:/usr/bin#
```

**Configura per un facile accesso con SSH utilizzando il nodo di HyperPod calcolo come host remoto**

Per semplificare ulteriormente l'accesso al nodo di calcolo tramite SSH da un computer locale, lo `easy-ssh.sh` script genera un frammento di codice relativo alla configurazione del HyperPod cluster come host remoto, come mostrato nella sezione precedente. Lo snippet di codice viene generato automaticamente per aiutarti ad aggiungere direttamente lo script al file `~/.ssh/config` sul tuo dispositivo locale. La procedura seguente mostra come configurare un accesso semplificato tramite SSH tramite il proxy SSM, in modo che tu o gli utenti del cluster possiate `ssh <cluster-name>` collegarvi direttamente al nodo del cluster. HyperPod 

1. Sul dispositivo locale, aggiungi al file il nodo di HyperPod elaborazione con un nome utente come host remoto. `~/.ssh/config` Il comando seguente mostra come aggiungere il frammento di codice generato automaticamente dallo script `easy-ssh.sh` al file `~/.ssh/config`. Assicurati di copiarlo dall’output generato automaticamente dello script `easy-ssh.sh` che contiene le informazioni corrette sul cluster.

   ```
   $ cat <<EOF >> ~/.ssh/config
   Host <cluster-name>
     User ubuntu
     ProxyCommand sh -c "aws ssm start-session  --target sagemaker-cluster:<cluster_id>_<node-group>-<instance_id> --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
   EOF
   ```

1. Sul nodo del HyperPod cluster, aggiungi la chiave pubblica sul dispositivo locale al `~/.ssh/authorized_keys` file sul nodo del HyperPod cluster.

   1. Stampa il file della chiave pubblica sul computer locale.

      ```
      $ cat ~/.ssh/id_rsa.pub
      ```

      Questa operazione dovrebbe restituire la tua chiave. Copia l’output di questo comando. 

      (Facoltativo) Se non disponi di una chiave pubblica, creane una con il comando seguente.

      ```
      $ ssh-keygen -t rsa -q -f "$HOME/.ssh/id_rsa" -N ""
      ```

   1. Connettiti al nodo del cluster e passa all’utente per aggiungere la chiave. Il comando seguente è un esempio di accesso come utente `ubuntu`. Sostituisci `ubuntu` con il nome utente per il quale impostare l’accesso semplificato con SSH.

      ```
      $ ./easy-ssh.sh -c <node-group> <cluster-name>
      $ sudo su - ubuntu
      ubuntu@ip-111-22-333-444:/usr/bin#
      ```

   1. Apri il file `~/.ssh/authorized_keys` e aggiungi la chiave pubblica alla fine del file.

      ```
      ubuntu@ip-111-22-333-444:/usr/bin# vim ~/.ssh/authorized_keys
      ```

Al termine della configurazione, puoi connetterti al nodo del HyperPod cluster come utente eseguendo un comando SSH semplificato come segue.

```
$ ssh <cluster-name>
ubuntu@ip-111-22-333-444:/usr/bin#
```

Inoltre, puoi utilizzare l’host per lo sviluppo remoto da un IDE sul tuo dispositivo locale, ad esempio [Visual Studio Code Remote - SSH](https://code.visualstudio.com/docs/remote/ssh).

## Configura un ambiente multiutente tramite lo spazio FSx condiviso di Amazon
<a name="sagemaker-hyperpod-run-jobs-slurm-access-nodes-multi-user-with-fxs-shared-space"></a>

Puoi utilizzare lo spazio FSx condiviso di Amazon per gestire un ambiente multiutente in un cluster Slurm su. SageMaker HyperPod Se hai configurato il tuo cluster Slurm con Amazon FSx durante la creazione del HyperPod cluster, questa è una buona opzione per configurare lo spazio di lavoro per gli utenti del cluster. Crea un nuovo utente e configura la directory home per l'utente sul file system FSx condiviso di Amazon.

**Suggerimento**  
Per consentire agli utenti di accedere al cluster con il proprio nome utente e le directory dedicate, devi anche associarli a ruoli o utenti IAM taggandoli come indicato nell’**opzione 2** della fase 5 della procedura **To turn on Run As support for Linux and macOS managed nodes** disponibile in [Turn on Run As support for Linux and macOS managed nodes](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-preferences-run-as.html) in AWS Systems Manager User Guide. Consulta anche [Configurazione AWS Systems Manager ed esecuzione come per il controllo degli accessi degli utenti del cluster](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-ssm).

**Per configurare un ambiente multiutente durante la creazione di un cluster Slurm su SageMaker HyperPod**

Il team SageMaker HyperPod di assistenza fornisce uno script [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/add_users.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/add_users.sh)come parte degli esempi di script del ciclo di vita di base. 

1. Prepara un file di testo denominato `shared_users.txt` che abbia il seguente formato. La prima colonna è per i nomi utente, la seconda per gli utenti IDs unici e la terza per le directory degli utenti nello spazio FSx condiviso di Amazon.

   ```
   username1,uid1,/fsx/username1
   username2,uid2,/fsx/username2
   ...
   ```

1. Assicurati di caricare [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/add_users.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/add_users.sh)i file `shared_users.txt` and nel bucket S3 per gli script del ciclo di vita. HyperPod Durante la creazione del cluster oppure l’aggiornamento del cluster o del software del cluster, [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/add_users.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/add_users.sh) legge `shared_users.txt` e configura correttamente le directory degli utenti.

**Per creare nuovi utenti e aggiungerli a un cluster Slurm esistente in esecuzione su SageMaker HyperPod **

1. Sul nodo head, utilizza il comando seguente per salvare uno script che consente di creare un utente. Assicurati di eseguirlo con le autorizzazioni sudo.

   ```
   $ cat > create-user.sh << EOL
   #!/bin/bash
   
   set -x
   
   # Prompt user to get the new user name.
   read -p "Enter the new user name, i.e. 'sean': 
   " USER
   
   # create home directory as /fsx/<user>
   # Create the new user on the head node
   sudo useradd \$USER -m -d /fsx/\$USER --shell /bin/bash;
   user_id=\$(id -u \$USER)
   
   # add user to docker group
   sudo usermod -aG docker \${USER}
   
   # setup SSH Keypair
   sudo -u \$USER ssh-keygen -t rsa -q -f "/fsx/\$USER/.ssh/id_rsa" -N ""
   sudo -u \$USER cat /fsx/\$USER/.ssh/id_rsa.pub | sudo -u \$USER tee /fsx/\$USER/.ssh/authorized_keys
   
   # add user to compute nodes
   read -p "Number of compute nodes in your cluster, i.e. 8: 
   " NUM_NODES
   srun -N \$NUM_NODES sudo useradd -u \$user_id \$USER -d /fsx/\$USER --shell /bin/bash;
   
   # add them as a sudoer
   read -p "Do you want this user to be a sudoer? (y/N):
   " SUDO
   if [ "\$SUDO" = "y" ]; then
           sudo usermod -aG sudo \$USER
           sudo srun -N \$NUM_NODES sudo usermod -aG sudo \$USER
           echo -e "If you haven't already you'll need to run:\n\nsudo visudo /etc/sudoers\n\nChange the line:\n\n%sudo   ALL=(ALL:ALL) ALL\n\nTo\n\n%sudo   ALL=(ALL:ALL) NOPASSWD: ALL\n\nOn each node."
   fi
   EOL
   ```

1. Esegui lo script con il comando seguente. Ti verrà richiesto di aggiungere il nome di un utente e il numero di nodi di calcolo a cui desideri che l’utente abbia accesso.

   ```
   $ bash create-user.sh
   ```

1. Testa l’utente utilizzando i comandi seguenti. 

   ```
   $ sudo su - <user> && ssh $(srun hostname)
   ```

1. Aggiungi le informazioni sull’utente al file `shared_users.txt`, in modo che l’utente venga creato su qualsiasi nuovo nodo di calcolo o nuovo cluster.

## Configura un ambiente multiutente integrando HyperPod i cluster con Active Directory
<a name="sagemaker-hyperpod-run-jobs-slurm-access-nodes-multi-user-with-active-directory"></a>

Nei casi d'uso pratici, HyperPod i cluster vengono in genere utilizzati da più utenti: ricercatori di machine learning (ML), ingegneri del software, data scientist e amministratori di cluster. Questi utenti modificano i propri file ed eseguono i processi senza influire sul lavoro degli altri. Per configurare un ambiente multiutente, utilizza il meccanismo di utenti e gruppi Linux per creare staticamente più utenti su ogni istanza con gli script del ciclo di vita. Lo svantaggio di questo approccio, tuttavia, è che è necessario duplicare le impostazioni di utenti e gruppi su più istanze del cluster per mantenere una configurazione coerente in tutte le istanze quando si apportano aggiornamenti come l’aggiunta, la modifica e la rimozione di utenti.

Per risolvere questo problema, è possibile utilizzare [Lightweight Directory Access Protocol (LDAP)](https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol) e [LDAP over TLS/SSL (LDAPS)](https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol) per l'integrazione con un servizio di directory come Directory Service [for Microsoft AWS Active](https://aws.amazon.com/directoryservice/) Directory. Per ulteriori informazioni sulla configurazione di Active Directory e di un ambiente multiutente in un HyperPod cluster, consulta il post sul blog [Integrare HyperPod i cluster con Active Directory](https://aws.amazon.com/blogs/machine-learning/integrate-hyperpod-clusters-with-active-directory-for-seamless-multi-user-login/) per un accesso multiutente senza interruzioni.

# Pianificazione di un job Slurm su un cluster SageMaker HyperPod
<a name="sagemaker-hyperpod-run-jobs-slurm-schedule-slurm-job"></a>

Puoi avviare job di addestramento utilizzando i comandi standard `sbatch` o `srun` di Slurm. Ad esempio, per avviare un processo di formazione a 8 nodi, è possibile eseguire la formazione dei `srun -N 8 --exclusive train.sh` SageMaker HyperPod supporti in una serie di ambienti, tra cui`conda`, `venv``docker`, e`enroot`. È possibile configurare un ambiente ML eseguendo script del ciclo di vita sui cluster. SageMaker HyperPod Hai anche la possibilità di allegare un file system condiviso come Amazon FSx, che può essere utilizzato anche come ambiente virtuale.

L'esempio seguente mostra come eseguire un job per addestrare Llama-2 con la tecnica Fully Sharded Data Parallelism (FSDP) su un cluster SageMaker HyperPod con un file system condiviso Amazon. FSx [Puoi anche trovare altri esempi dal repository Awsome Distributed Training. GitHub ](https://github.com/aws-samples/awsome-distributed-training/)

**Suggerimento**  
Tutti gli SageMaker HyperPod esempi sono disponibili nella `3.test_cases` cartella del repository [Awsome Distributed Training](https://github.com/aws-samples/awsome-distributed-training/). GitHub 

1. Clona l'[ GitHub archivio Awsome Distributed Training](https://github.com/aws-samples/awsome-distributed-training/) e copia gli esempi di lavori di formazione sul tuo file system Amazon FSx . 

   ```
   $ TRAINING_DIR=/fsx/users/my-user/fsdp
   $ git clone https://github.com/aws-samples/awsome-distributed-training/
   ```

1. Eseguire lo script [https://github.com/aws-samples/awsome-distributed-training/blob/main/3.test_cases/10.FSDP/0.create_conda_env.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/3.test_cases/10.FSDP/0.create_conda_env.sh). Questo crea un `conda` ambiente sul tuo FSx file system Amazon. Verifica che il file system sia accessibile a tutti i nodi del cluster.

1. Crea l’ambiente virtuale Conda avviando un processo Slurm a nodo singolo come descritto di seguito.

   ```
   $ srun -N 1 /path_to/create_conda_env.sh
   ```

1. Dopo aver creato l’ambiente, puoi avviare un job di addestramento indicando il percorso dell’ambiente sul volume condiviso. Puoi avviare job di addestramento sia a nodo singolo che multinodo con la stessa configurazione. Per avviare un processo, crea uno script di avvio dei processi (chiamato anche script del punto di ingresso) come segue.

   ```
   #!/usr/bin/env bash
   set -ex
   
   ENV_PATH=/fsx/users/my_user/pytorch_env
   TORCHRUN=$ENV_PATH/bin/torchrun
   TRAINING_SCRIPT=/fsx/users/my_user/pt_train.py
   
   WORLD_SIZE_JOB=$SLURM_NTASKS
   RANK_NODE=$SLURM_NODEID
   PROC_PER_NODE=8
   MASTER_ADDR=(`scontrol show hostnames \$SLURM_JOB_NODELIST | head -n 1`)
   MASTER_PORT=$(expr 10000 + $(echo -n $SLURM_JOBID | tail -c 4))
   
   DIST_ARGS="--nproc_per_node=$PROC_PER_NODE \
              --nnodes=$WORLD_SIZE_JOB \
              --node_rank=$RANK_NODE \
              --master_addr=$MASTER_ADDR \
              --master_port=$MASTER_PORT \
             "
             
   $TORCHRUN $DIST_ARGS $TRAINING_SCRIPT
   ```
**Suggerimento**  
Se si desidera rendere il processo di formazione più resistente ai guasti hardware utilizzando la funzionalità di ripristino automatico di SageMaker HyperPod, è necessario impostare correttamente la variabile di ambiente `MASTER_ADDR` nello script entrypoint. Per ulteriori informazioni, consulta [Ripristino automatico dei nodi e ripristino automatico](sagemaker-hyperpod-resiliency-slurm-auto-resume.md).

   Questo tutorial presuppone che questo script sia salvato come `/fsx/users/my_user/train.sh`.

1. Con questo script nel volume condiviso in `/fsx/users/my_user/train.sh`, esegui il comando `srun` seguente per pianificare il processo Slurm.

   ```
   $ cd /fsx/users/my_user/
   $ srun -N 8 train.sh
   ```

# Esecuzione di contenitori Docker su un nodo di calcolo Slurm su HyperPod
<a name="sagemaker-hyperpod-run-jobs-slurm-docker"></a>

[https://github.com/NVIDIA/enroot](https://github.com/NVIDIA/enroot) Il pacchetto Enroot aiuta a convertire le immagini Docker in un runtime comprensibile da Slurm, mentre Pyxis consente di pianificare il runtime come processo Slurm tramite un comando `srun`, `srun --container-image=docker/image:tag`. 

**Suggerimento**  
I pacchetti Docker, Enroot e Pyxis devono essere installati durante la creazione del cluster come parte dell’esecuzione degli script del ciclo di vita come indicato in [Script del ciclo di vita di base forniti da HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md). Utilizza gli [script del ciclo di vita di base](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config) forniti dal team di assistenza durante la creazione di un cluster. HyperPod HyperPod Questi script di base sono configurati per installare i pacchetti per impostazione predefinita. Nello script [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py) è presente la classe `Config` con il parametro di tipo booleano per l’installazione dei pacchetti impostato su `True` (`enable_docker_enroot_pyxis=True`). Questo viene richiamato e analizzato nello script [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/lifecycle_script.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/lifecycle_script.py), che chiama gli script `install_docker.sh` e `install_enroot_pyxis.sh` dalla cartella [https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/utils](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/utils). Le installazioni effettive dei pacchetti avvengono negli script di installazione. Inoltre, gli script di installazione identificano se sono in grado di rilevare i percorsi di NVMe archiviazione dalle istanze su cui vengono eseguiti e configurano i percorsi root per Docker ed Enroot. `/opt/dlami/nvme` Il volume root predefinito di ogni nuova istanza viene montato `/tmp` solo su un volume EBS da 100 GB, che si esaurisce se il carico di lavoro che intendi eseguire prevede l'addestramento di contenitori Docker di LLMs grandi dimensioni. Se utilizzi famiglie di istanze come P e G con NVMe archiviazione locale, devi assicurarti di utilizzare lo NVMe storage allegato a `/opt/dlami/nvme` e che gli script di installazione si occupino dei processi di configurazione.

**Per verificare se i percorsi root sono configurati correttamente**

Su un nodo di calcolo del tuo cluster Slurm SageMaker HyperPod, esegui i seguenti comandi per assicurarti che lo script del ciclo di vita funzioni correttamente e che il volume principale di ogni nodo sia impostato su. `/opt/dlami/nvme/*` I comandi seguenti mostrano esempi di come controllare il percorso di runtime di Enroot e del percorso root dei dati per 8 nodi di calcolo di un cluster Slurm.

```
$ srun -N 8 cat /etc/enroot/enroot.conf | grep "ENROOT_RUNTIME_PATH"
ENROOT_RUNTIME_PATH        /opt/dlami/nvme/tmp/enroot/user-$(id -u)
... // The same or similar lines repeat 7 times
```

```
$ srun -N 8 cat /etc/docker/daemon.json
{
    "data-root": "/opt/dlami/nvme/docker/data-root"
}
... // The same or similar lines repeat 7 times
```

Dopo aver verificato che i percorsi di runtime sono impostati correttamente su `/opt/dlami/nvme/*`, puoi iniziare a creare ed eseguire i container Docker con Enroot e Pyxis.

**Per testare Docker con Slurm**

1. Sul tuo nodo di calcolo, prova i comandi seguenti per verificare se Docker ed Enroot sono installati correttamente.

   ```
   $ docker --help
   $ enroot --help
   ```

1. Verifica se Pyxis ed Enroot sono installati correttamente eseguendo una delle immagini [NVIDIA CUDA Ubuntu](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/cuda).

   ```
   $ srun --container-image=nvidia/cuda:XX.Y.Z-base-ubuntuXX.YY nvidia-smi
   pyxis: importing docker image: nvidia/cuda:XX.Y.Z-base-ubuntuXX.YY
   pyxis: imported docker image: nvidia/cuda:XX.Y.Z-base-ubuntuXX.YY
   DAY MMM DD HH:MM:SS YYYY
   +-----------------------------------------------------------------------------+
   | NVIDIA-SMI 470.141.03   Driver Version: 470.141.03   CUDA Version: XX.YY    |
   |-------------------------------+----------------------+----------------------+
   | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
   | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
   |                               |                      |               MIG M. |
   |===============================+======================+======================|
   |   0  Tesla T4            Off  | 00000000:00:1E.0 Off |                    0 |
   | N/A   40C    P0    27W /  70W |      0MiB / 15109MiB |      0%      Default |
   |                               |                      |                  N/A |
   +-------------------------------+----------------------+----------------------+
   
   +-----------------------------------------------------------------------------+
   | Processes:                                                                  |
   |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
   |        ID   ID                                                   Usage      |
   |=============================================================================|
   |  No running processes found                                                 |
   +-----------------------------------------------------------------------------+
   ```

   Puoi verificarlo anche creando uno script ed eseguendo un comando `sbatch`, come descritto di seguito.

   ```
   $ cat <<EOF >> container-test.sh
   #!/bin/bash
   #SBATCH --container-image=nvidia/cuda:XX.Y.Z-base-ubuntuXX.YY
   nvidia-smi
   EOF
   
   $ sbatch container-test.sh
   pyxis: importing docker image: nvidia/cuda:XX.Y.Z-base-ubuntuXX.YY
   pyxis: imported docker image: nvidia/cuda:XX.Y.Z-base-ubuntuXX.YY
   DAY MMM DD HH:MM:SS YYYY
   +-----------------------------------------------------------------------------+
   | NVIDIA-SMI 470.141.03   Driver Version: 470.141.03   CUDA Version: XX.YY    |
   |-------------------------------+----------------------+----------------------+
   | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
   | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
   |                               |                      |               MIG M. |
   |===============================+======================+======================|
   |   0  Tesla T4            Off  | 00000000:00:1E.0 Off |                    0 |
   | N/A   40C    P0    27W /  70W |      0MiB / 15109MiB |      0%      Default |
   |                               |                      |                  N/A |
   +-------------------------------+----------------------+----------------------+
   
   +-----------------------------------------------------------------------------+
   | Processes:                                                                  |
   |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
   |        ID   ID                                                   Usage      |
   |=============================================================================|
   |  No running processes found                                                 |
   +-----------------------------------------------------------------------------+
   ```

**Per eseguire un processo Slurm di prova con Docker**

Dopo aver completato la configurazione di Slurm con Docker, puoi portare qualsiasi immagine Docker preconfigurata ed eseguirla utilizzando Slurm on. SageMaker HyperPod Di seguito è riportato un esempio di caso d'uso che illustra come eseguire un processo di formazione utilizzando Docker e Slurm on. SageMaker HyperPod Mostra un esempio di lavoro di addestramento parallelo al modello Llama 2 con la libreria SageMaker AI model parallelism (SMP).

1. Se desideri utilizzare una delle immagini ECR predefinite distribuite da SageMaker AI o DLC, assicurati di concedere al HyperPod cluster le autorizzazioni per estrarre le immagini ECR da. [Ruolo IAM per SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod) Se utilizzi un’immagine Docker personalizzata o open source, puoi saltare questa fase. Aggiungi le autorizzazioni seguenti al [Ruolo IAM per SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod). In questo tutorial, utilizziamo l’[immagine Docker SMP](distributed-model-parallel-support-v2.md#distributed-model-parallel-supported-frameworks-v2) preconfezionata con la libreria SMP.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ecr:BatchCheckLayerAvailability",
                   "ecr:BatchGetImage",
                   "ecr-public:*",
                   "ecr:GetDownloadUrlForLayer",
                   "ecr:GetAuthorizationToken",
                   "sts:*"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Sul nodo di calcolo, clona il repository e vai alla cartella che fornisce gli script di esempio per l’addestramento con SMP.

   ```
   $ git clone https://github.com/aws-samples/awsome-distributed-training/
   $ cd awsome-distributed-training/3.test_cases/17.SM-modelparallelv2
   ```

1. In questo tutorial, esegui lo script di esempio [https://github.com/aws-samples/awsome-distributed-training/blob/main/3.test_cases/17.SM-modelparallelv2/docker_build.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/3.test_cases/17.SM-modelparallelv2/docker_build.sh) che estrae l’immagine Docker SMP, crea il container Docker e lo esegue come runtime Enroot. Puoi modificare lo script in base alle tue esigenze.

   ```
   $ cat docker_build.sh
   #!/usr/bin/env bash
   
   region=us-west-2
   dlc_account_id=658645717510
   aws ecr get-login-password --region $region | docker login --username AWS --password-stdin $dlc_account_id.dkr.ecr.$region.amazonaws.com
   
   docker build -t smpv2 .
   enroot import -o smpv2.sqsh  dockerd://smpv2:latest
   ```

   ```
   $ bash docker_build.sh
   ```

1. Crea uno script batch per avviare un job di addestramento utilizzando`sbatch`. In questo tutorial, lo script di esempio fornito [https://github.com/aws-samples/awsome-distributed-training/blob/main/3.test_cases/17.SM-modelparallelv2/launch_training_enroot.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/3.test_cases/17.SM-modelparallelv2/launch_training_enroot.sh) avvia un job di addestramento con parallelizzazione del modello Llama 2 da 70 miliardi di parametri con un set di dati sintetico su 8 nodi di calcolo. Un set di script di addestramento viene fornito a [https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/17.SM-modelparallelv2/scripts](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/17.SM-modelparallelv2/scripts) e `launch_training_enroot.sh` utilizza `train_external.py` come script del punto di ingresso.
**Importante**  
Per utilizzare un contenitore Docker SageMaker HyperPod, devi montare la `/var/log` directory dalla macchina host, che in questo caso è il nodo di HyperPod elaborazione, sulla directory del contenitore. `/var/log` Puoi configurarlo aggiungendo la seguente variabile per Enroot.  

   ```
   "${HYPERPOD_PATH:="/var/log/aws/clusters":"/var/log/aws/clusters"}"
   ```

   ```
   $ cat launch_training_enroot.sh
   #!/bin/bash
   
   # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   # SPDX-License-Identifier: MIT-0
   
   #SBATCH --nodes=8 # number of nodes to use, 2 p4d(e) = 16 A100 GPUs
   #SBATCH --job-name=smpv2_llama # name of your job
   #SBATCH --exclusive # job has exclusive use of the resource, no sharing
   #SBATCH --wait-all-nodes=1
   
   set -ex;
   
   ###########################
   ###### User Variables #####
   ###########################
   
   #########################
   model_type=llama_v2
   model_size=70b
   
   # Toggle this to use synthetic data
   use_synthetic_data=1
   
   
   # To run training on your own data  set Training/Test Data path  -> Change this to the tokenized dataset path in Fsx. Acceptable formats are huggingface (arrow) and Jsonlines.
   # Also change the use_synthetic_data to 0
   
   export TRAINING_DIR=/fsx/path_to_data
   export TEST_DIR=/fsx/path_to_data
   export CHECKPOINT_DIR=$(pwd)/checkpoints
   
   # Variables for Enroot
   : "${IMAGE:=$(pwd)/smpv2.sqsh}"
   : "${HYPERPOD_PATH:="/var/log/aws/clusters":"/var/log/aws/clusters"}" # This is needed for validating its hyperpod cluster
   : "${TRAIN_DATA_PATH:=$TRAINING_DIR:$TRAINING_DIR}"
   : "${TEST_DATA_PATH:=$TEST_DIR:$TEST_DIR}"
   : "${CHECKPOINT_PATH:=$CHECKPOINT_DIR:$CHECKPOINT_DIR}"   
   
   
   ###########################
   ## Environment Variables ##
   ###########################
   
   #export NCCL_SOCKET_IFNAME=en
   export NCCL_ASYNC_ERROR_HANDLING=1
   
   export NCCL_PROTO="simple"
   export NCCL_SOCKET_IFNAME="^lo,docker"
   export RDMAV_FORK_SAFE=1
   export FI_EFA_USE_DEVICE_RDMA=1
   export NCCL_DEBUG_SUBSYS=off
   export NCCL_DEBUG="INFO"
   export SM_NUM_GPUS=8
   export GPU_NUM_DEVICES=8
   export FI_EFA_SET_CUDA_SYNC_MEMOPS=0
   
   # async runtime error ...
   export CUDA_DEVICE_MAX_CONNECTIONS=1
   
   
   #########################
   ## Command and Options ##
   #########################
   
   if [ "$model_size" == "7b" ]; then
       HIDDEN_WIDTH=4096
       NUM_LAYERS=32
       NUM_HEADS=32
       LLAMA_INTERMEDIATE_SIZE=11008
       DEFAULT_SHARD_DEGREE=8
   # More Llama model size options
   elif [ "$model_size" == "70b" ]; then
       HIDDEN_WIDTH=8192
       NUM_LAYERS=80
       NUM_HEADS=64
       LLAMA_INTERMEDIATE_SIZE=28672
       # Reduce for better perf on p4de
       DEFAULT_SHARD_DEGREE=64
   fi
   
   
   if [ -z "$shard_degree" ]; then
       SHARD_DEGREE=$DEFAULT_SHARD_DEGREE
   else
       SHARD_DEGREE=$shard_degree
   fi
   
   if [ -z "$LLAMA_INTERMEDIATE_SIZE" ]; then
       LLAMA_ARGS=""
   else
       LLAMA_ARGS="--llama_intermediate_size $LLAMA_INTERMEDIATE_SIZE "
   fi
   
   
   if [ $use_synthetic_data == 1 ]; then
       echo "using synthetic data"
       declare -a ARGS=(
       --container-image $IMAGE
       --container-mounts $HYPERPOD_PATH,$CHECKPOINT_PATH
       )
   else
       echo "using real data...."
       declare -a ARGS=(
       --container-image $IMAGE
       --container-mounts $HYPERPOD_PATH,$TRAIN_DATA_PATH,$TEST_DATA_PATH,$CHECKPOINT_PATH
       )
   fi
   
   
   declare -a TORCHRUN_ARGS=(
       # change this to match the number of gpus per node:
       --nproc_per_node=8 \
       --nnodes=$SLURM_JOB_NUM_NODES \
       --rdzv_id=$SLURM_JOB_ID \
       --rdzv_backend=c10d \
       --rdzv_endpoint=$(hostname) \
   )
   
   srun -l "${ARGS[@]}" torchrun "${TORCHRUN_ARGS[@]}" /path_to/train_external.py \
               --train_batch_size 4 \
               --max_steps 100 \
               --hidden_width $HIDDEN_WIDTH \
               --num_layers $NUM_LAYERS \
               --num_heads $NUM_HEADS \
               ${LLAMA_ARGS} \
               --shard_degree $SHARD_DEGREE \
               --model_type $model_type \
               --profile_nsys 1 \
               --use_smp_implementation 1 \
               --max_context_width 4096 \
               --tensor_parallel_degree 1 \
               --use_synthetic_data $use_synthetic_data \
               --training_dir $TRAINING_DIR \
               --test_dir $TEST_DIR \
               --dataset_type hf \
               --checkpoint_dir $CHECKPOINT_DIR \
               --checkpoint_freq 100 \
   
   $ sbatch launch_training_enroot.sh
   ```

*Per trovare gli esempi di codice scaricabili, consulta [Esegui un processo di formazione parallelo ai modelli utilizzando la libreria di parallelismo dei modelli SageMaker AI, Docker ed Enroot con](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/17.SM-modelparallelv2#option-2----run-training-using-docker-and-enroot) Slurm nell'archivio Awsome Distributed Training. GitHub * Per ulteriori informazioni sulla formazione distribuita con un cluster Slurm su, passa all'argomento successivo all'indirizzo. SageMaker HyperPod [Esecuzione di carichi di lavoro di formazione distribuiti con Slurm on HyperPod](sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload.md)

# Esecuzione di carichi di lavoro di formazione distribuiti con Slurm on HyperPod
<a name="sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload"></a>

SageMaker HyperPod è specializzato per carichi di lavoro di formazione di modelli linguistici di grandi dimensioni (LLMs) e modelli di base (). FMs Questi carichi di lavoro richiedono spesso l’utilizzo di più tecniche di parallelizzazione e operazioni ottimizzate per l’infrastruttura e le risorse di ML. Utilizzando SageMaker HyperPod, puoi utilizzare i seguenti framework di formazione distribuiti SageMaker basati sull'intelligenza artificiale:
+ La [libreria SageMaker AI Distributed Data Parallelism (SMDDP)](data-parallel.md) che offre operazioni di comunicazione collettiva ottimizzate per. AWS
+ La [libreria di parallelismo dei modelli SageMaker AI (SMP)](model-parallel-v2.md) che implementa varie tecniche di parallelismo dei modelli.

**Topics**
+ [Utilizzo di SMDDP su un SageMaker HyperPod](#sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload-smddp)
+ [Utilizzo SageMaker HyperPod di SMP su un cluster](#sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload-smp)

## Utilizzo di SMDDP su un SageMaker HyperPod
<a name="sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload-smddp"></a>

La [libreria SMDDP](data-parallel.md) è una libreria di comunicazione collettiva che migliora le prestazioni di calcolo dell’addestramento parallelo di dati distribuiti. La libreria SMDDP funziona con i seguenti framework di addestramento distribuito open source:
+ [PyTorchdati distribuiti in parallelo (DDP)](https://pytorch.org/docs/stable/notes/ddp.html)
+ [PyTorch parallelismo dei dati completamente condiviso (FSDP)](https://pytorch.org/docs/stable/fsdp.html)
+ [DeepSpeed](https://github.com/microsoft/DeepSpeed)
+ [Megatron- DeepSpeed](https://github.com/microsoft/Megatron-DeepSpeed)

La libreria SMDDP affronta il sovraccarico di comunicazione delle principali operazioni di comunicazione collettiva offrendo quanto segue per. SageMaker HyperPod
+ La libreria offre offerte `AllGather` ottimizzate per. AWS`AllGather`è un'operazione chiave utilizzata nell'addestramento parallelo dei dati condivisi, una tecnica di parallelismo dei dati efficiente in termini di memoria offerta dalle librerie più diffuse. Queste includono la libreria SageMaker AI Model Parallelism (SMP), DeepSpeed Zero Redundancy Optimizer (Zero) e Fully Sharded Data Parallelism (FSDP). PyTorch 
+ La libreria esegue node-to-node comunicazioni ottimizzate utilizzando appieno l'infrastruttura di rete e la topologia dell'istanza AI ML. AWS SageMaker 

**Per eseguire job di addestramento di esempio con parallelizzazione dei dati**

Esplora gli esempi seguenti di addestramento distribuito che implementano tecniche di parallelizzazione dei dati utilizzando la libreria SMDDP.
+ [https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/12.SM-dataparallel-FSDP](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/12.SM-dataparallel-FSDP)
+ [https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/13.SM-dataparallel-deepspeed](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/13.SM-dataparallel-deepspeed)

**Per configurare un ambiente per l'utilizzo della libreria SMDDP su SageMaker HyperPod**

Di seguito sono riportati i requisiti dell'ambiente di formazione per l'utilizzo della libreria SMDDP su. SageMaker HyperPod
+ PyTorch v2.0.1 e versioni successive
+ CUDA v11.8 e versioni successive
+ `libstdc++` versione di runtime superiore a 3
+ Python v3.10.x e versioni successive
+ `ml.p4d.24xlarge` e `ml.p4de.24xlarge`, ovvero i tipi di istanze supportati dalla libreria SMDDP
+ `imdsv2` abilitato sull’host di addestramento

A seconda di come si desidera eseguire il job di addestramento distribuito, sono disponibili due opzioni per installare la libreria SMDDP:
+ Un’installazione diretta che utilizza il file binario SMDDP.
+ Utilizzo dell' SageMaker AI Deep Learning Containers (DLCs) preinstallato con la libreria SMDDP.

[Le immagini Docker preinstallate con la libreria SMDDP o i file binari SMDDP sono elencate URLs in Supported Frameworks nella documentazione della libreria SMDDP.](https://docs.aws.amazon.com/sagemaker/latest/dg/distributed-data-parallel-support.html#distributed-data-parallel-supported-frameworks)

**Per installare la libreria SMDDP su DLAMI SageMaker HyperPod**
+ `pip install --no-cache-dir https://smdataparallel.s3.amazonaws.com/binary/pytorch/<pytorch-version>/cuXYZ/YYYY-MM-DD/smdistributed_dataparallel-X.Y.Z-cp310-cp310-linux_x86_64.whl`
**Nota**  
Se lavori in un ambiente Conda, assicurati di installare PyTorch using instead of. `conda install` `pip`  

  ```
  conda install pytorch==X.Y.Z  torchvision==X.Y.Z torchaudio==X.Y.Z pytorch-cuda=X.Y.Z -c pytorch -c nvidia
  ```

**Per utilizzare la libreria SMDDP su un container Docker**
+ La libreria SMDDP è preinstallata su SageMaker AI Deep Learning Containers (). DLCs Per trovare l'elenco dei framework SageMaker DLCs AI compatibili PyTorch con la libreria SMDDP, consulta [Supported Frameworks](https://docs.aws.amazon.com/sagemaker/latest/dg/distributed-data-parallel-support.html#distributed-data-parallel-supported-frameworks) nella documentazione della libreria SMDDP. Puoi anche utilizzare il tuo container Docker su cui sono installate le dipendenze richieste per la libreria SMDDP. Per ulteriori informazioni sulla configurazione di un container Docker personalizzato per l’utilizzo della libreria SMDDP, consulta anche [Crea il tuo contenitore Docker con la libreria parallela di dati distribuiti SageMaker AI](data-parallel-bring-your-own-container.md).
**Importante**  
Per utilizzare la libreria SMDDP in un container Docker, monta la directory `/var/log` dal computer host a `/var/log` nel container. Per farlo, aggiungi l’opzione seguente durante l’esecuzione del container.  

  ```
  docker run <OTHER_OPTIONS> -v /var/log:/var/log ...
  ```

Per informazioni generali su come eseguire job di addestramento con parallelizzazione dei dati con SMDDP, consulta [Formazione distribuita con la libreria di parallelismo dei dati distribuiti SageMaker AI](data-parallel-modify-sdp.md).

## Utilizzo SageMaker HyperPod di SMP su un cluster
<a name="sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload-smp"></a>

La [libreria SageMaker AI model parallelism (SMP)](model-parallel-v2.md) offre varie tecniche di [parallelismo dei state-of-the-art modelli](model-parallel-core-features-v2.md), tra cui:
+ fully sharded data parallelism
+ parallelizzazione degli esperti
+ addestramento di precisione misto con/e tipi di dati FP16 BF16 FP8 
+ parallelizzazione tensoriale

La libreria SMP è anche compatibile con framework open source come PyTorch FSDP, NVIDIA Megatron e NVIDIA Transformer Engine.

**Per eseguire un esempio di carico di lavoro di addestramento con parallelizzazione del modello**

I team di assistenza SageMaker AI forniscono esempi di lavori di formazione che implementano il parallelismo dei modelli con la libreria SMP all'indirizzo. [https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/17.SM-modelparallelv2](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/17.SM-modelparallelv2)

# SageMaker HyperPod monitoraggio delle risorse del cluster
<a name="sagemaker-hyperpod-cluster-observability-slurm"></a>

[Per ottenere un'osservabilità completa nelle risorse del SageMaker HyperPod cluster e nei componenti software, integra il cluster con [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html) e Amazon Managed Grafana.](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html) L'integrazione con Amazon Managed Service for Prometheus consente l'esportazione di metriche relative alle HyperPod risorse del cluster, fornendo informazioni sulle loro prestazioni, utilizzo e integrità. L’integrazione con Grafana gestito da Amazon consente la visualizzazione di queste metriche attraverso varie dashboard Grafana che offrono un’interfaccia intuitiva per il monitoraggio e l’analisi del comportamento del cluster. Sfruttando questi servizi, ottieni una visione centralizzata e unificata del HyperPod cluster, facilitando il monitoraggio proattivo, la risoluzione dei problemi e l'ottimizzazione dei carichi di lavoro di formazione distribuiti.

**Suggerimento**  
[Per trovare esempi e soluzioni pratiche, consulta anche il workshop. SageMaker HyperPod](https://catalog.workshops.aws/sagemaker-hyperpod)

![\[Una panoramica della configurazione SageMaker HyperPod con Amazon Managed Service for Prometheus e Amazon Managed Grafana.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod-observability-architecture.png)


Figura: questo diagramma di architettura mostra una panoramica della configurazione con SageMaker HyperPod Amazon Managed Service for Prometheus e Amazon Managed Grafana.

Passa ai seguenti argomenti per configurare l'osservabilità del cluster. SageMaker HyperPod 

**Topics**
+ [Prerequisiti per SageMaker HyperPod l'osservabilità dei cluster](sagemaker-hyperpod-cluster-observability-slurm-prerequisites.md)
+ [Installazione HyperPod dei pacchetti Metrics Exporter sul tuo cluster](sagemaker-hyperpod-cluster-observability-slurm-install-exporters.md)
+ [Convalida della configurazione di Prometheus sul nodo principale di un cluster HyperPod](sagemaker-hyperpod-cluster-observability-slurm-validate-prometheus-setup.md)
+ [Configurazione di uno spazio di lavoro Grafana gestito da Amazon](sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws.md)
+ [Riferimento delle metriche esportate](sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference.md)
+ [Metriche di Amazon SageMaker HyperPod Slurm](smcluster-slurm-metrics.md)

# Prerequisiti per SageMaker HyperPod l'osservabilità dei cluster
<a name="sagemaker-hyperpod-cluster-observability-slurm-prerequisites"></a>

Prima di procedere con la procedura descritta in [Installazione HyperPod dei pacchetti Metrics Exporter sul tuo cluster](sagemaker-hyperpod-cluster-observability-slurm-install-exporters.md), verifica che siano soddisfatti i seguenti prerequisiti.

## Abilita IAM Identity Center
<a name="sagemaker-hyperpod-cluster-observability-slurm-prerequisites-iam-id-center"></a>

Per abilitare l'osservabilità per il SageMaker HyperPod cluster, devi prima abilitare IAM Identity Center. Questo è un prerequisito per la distribuzione di uno CloudFormation stack che configuri l'area di lavoro Amazon Managed Grafana e Amazon Managed Service for Prometheus. Entrambi i servizi richiedono il Centro identità IAM anche per l’autenticazione e le autorizzazioni, per garantire un accesso sicuro agli utenti e la gestione dell’infrastruttura di monitoraggio.

Per una guida dettagliata sull’abilitazione del Centro identità IAM, consulta la sezione [Enabling IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-set-up-for-idc.html) nella guida *AWS IAM Identity Center User Guide*. 

Dopo aver abilitato correttamente il Centro identità IAM, configura un account utente che fungerà da utente amministratore nelle procedure di configurazione seguenti.

## Crea e CloudFormation distribuisci SageMaker HyperPod uno stack per l'osservabilità
<a name="sagemaker-hyperpod-cluster-observability-slurm-prerequisites-cloudformation-stack"></a>

Crea e distribuisci uno CloudFormation stack per l' SageMaker HyperPod osservabilità per monitorare i parametri del HyperPod cluster in tempo reale utilizzando Amazon Managed Service for Prometheus e Amazon Managed Grafana. Per implementare lo stack, tieni presente che devi abilitare prima il [Centro identità IAM](https://console.aws.amazon.com/singlesignon).

Usa lo CloudFormation script di esempio [https://github.com/aws-samples/awsome-distributed-training/blob/main/4.validation_and_observability/4.prometheus-grafana/cluster-observability.yaml](https://github.com/aws-samples/awsome-distributed-training/blob/main/4.validation_and_observability/4.prometheus-grafana/cluster-observability.yaml)che ti aiuta a configurare le sottoreti Amazon VPC, i file system FSx Amazon for Lustre, i bucket Amazon S3 e i ruoli IAM necessari per creare uno stack di osservabilità del cluster. HyperPod 

# Installazione HyperPod dei pacchetti Metrics Exporter sul tuo cluster
<a name="sagemaker-hyperpod-cluster-observability-slurm-install-exporters"></a>

Nella [configurazione di base, gli script del ciclo](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md) di vita forniti dal SageMaker HyperPod team includono anche l'installazione di vari pacchetti Metric Exporter. Per attivare la fase di installazione, devi semplicemente impostare il parametro `enable_observability=True` nel file [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py). Gli script del ciclo di vita sono progettati per il bootstrap del cluster con i seguenti pacchetti di esportazione di metriche open source.


|  |  |  | 
| --- |--- |--- |
| Nome | Nodo di destinazione per l’implementazione degli script | Descrizione dello strumento di esportazione | 
| [Strumento di esportazione Slurm per Prometheus](https://github.com/vpenso/prometheus-slurm-exporter) | Nodo head (controller) |  Esporta le metriche di accounting Slurm.  | 
|  [Esportazione di nodi Elastic Fabric Adapter (EFA)](https://github.com/aws-samples/awsome-distributed-training/tree/main/4.validation_and_observability/3.efa-node-exporter)  |  Nodo di calcolo  |  Esporta le metriche dai nodi del cluster e da EFA. Il pacchetto è un fork dello [strumento di esportazione di nodi Prometheus](https://github.com/prometheus/node_exporter).  | 
|  [Strumento di esportazione di NVIDIA Data Center GPU Management (DCGM)](https://github.com/NVIDIA/dcgm-exporter)  | Nodo di calcolo |  Esporta i parametri NVIDIA DCGM sullo stato e le prestazioni di NVIDIA. GPUs  | 

Con `enable_observability=True` nel file [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/config.py), nello script viene attivata la fase di installazione seguente [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/lifecycle_script.py](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/lifecycle_script.py). 

```
# Install metric exporting software and Prometheus for observability
if Config.enable_observability:
    if node_type == SlurmNodeType.COMPUTE_NODE:
        ExecuteBashScript("./utils/install_docker.sh").run()
        ExecuteBashScript("./utils/install_dcgm_exporter.sh").run()
        ExecuteBashScript("./utils/install_efa_node_exporter.sh").run()

    if node_type == SlurmNodeType.HEAD_NODE:
        wait_for_scontrol()
        ExecuteBashScript("./utils/install_docker.sh").run()
        ExecuteBashScript("./utils/install_slurm_exporter.sh").run()
        ExecuteBashScript("./utils/install_prometheus.sh").run()
```

Sui nodi di calcolo, lo script installa lo strumento di esportazione di nodi NVIDIA Data Center GPU Management (DCGM) e lo strumento di esportazione di nodi Elastic Fabric Adapter (EFA). L'esportatore DCGM è un esportatore per Prometheus che raccoglie metriche da GPUs NVIDIA, abilitando il monitoraggio dell'utilizzo, delle prestazioni e dello stato della GPU. Lo strumento di esportazione di nodi EFA, invece, raccoglie metriche relative all’interfaccia di rete EFA, essenziale per comunicazioni a bassa latenza e larghezza di banda elevata nei cluster HPC.

Sul nodo head, lo script installa lo strumento di esportazione Slurm per Prometheus e il [software open source Prometheus](https://prometheus.io/docs/introduction/overview/). Lo strumento di esportazione Slurm fornisce a Prometheus le metriche relative ai processi, alle partizioni e agli stati dei nodi Slurm.

Nota che gli script del ciclo di vita sono progettati per installare tutti i pacchetti di esportazione come container Docker, quindi il pacchetto Docker deve essere installato anche sui nodi head e di calcolo. *Gli script per questi componenti sono comodamente disponibili nella cartella del repository Awsome Distributed Training. [https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/utils](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/utils) GitHub *

Dopo aver configurato correttamente il HyperPod cluster installato con i pacchetti di esportazione, passa all'argomento successivo per completare la configurazione di Amazon Managed Service for Prometheus e Amazon Managed Grafana.

# Convalida della configurazione di Prometheus sul nodo principale di un cluster HyperPod
<a name="sagemaker-hyperpod-cluster-observability-slurm-validate-prometheus-setup"></a>

Dopo aver configurato correttamente il HyperPod cluster installato con i pacchetti exporter, controlla se Prometheus è configurato correttamente sul nodo principale del cluster. HyperPod 

1. Connettiti al nodo head del cluster. Per istruzioni su come accedere a un nodo, consulta [Accesso ai nodi SageMaker HyperPod del cluster](sagemaker-hyperpod-run-jobs-slurm-access-nodes.md).

1. Utilizza il comando seguente per verificare che il file di configurazione e servizio di Prometheus creato dallo script del ciclo di vita `install_prometheus.sh` sia in esecuzione sul nodo controller. L’output dovrebbe mostrare lo stato Attivo **active (running)**.

   ```
   $ sudo systemctl status prometheus
   • prometheus service - Prometheus Exporter
   Loaded: loaded (/etc/systemd/system/prometheus.service; enabled; preset:disabled)
   Active: active (running) since DAY YYYY-MM-DD HH:MM:SS UTC; Ss ago
   Main PID: 12345 (prometheus)
   Tasks: 7 (limit: 9281)
   Memory: 35M
   CPU: 234ms
   CGroup: /system.slice/prometheus.service
           -12345 /usr/bin/prometheus--config.file=/etc/prometheus/prometheus.yml
   ```

1. Convalida il file di configurazione di Prometheus come segue. L’output deve essere simile al seguente, con tre strumenti di esportazione configurati con gli indirizzi IP dei nodi di calcolo corretti.

   ```
   $ cat /etc/prometheus/prometheus.yml
   global:
     scrape_interval: 15s
     evaluation_interval: 15s
     scrape_timeout: 15s
   
   scrape_configs:
     - job_name: 'slurm_exporter'
       static_configs:
         - targets:
             - 'localhost:8080'
     - job_name: 'dcgm_exporter'
       static_configs:
         - targets:
             - '<ComputeNodeIP>:9400'
             - '<ComputeNodeIP>:9400'
     - job_name: 'efa_node_exporter'
       static_configs:
         - targets:
             - '<ComputeNodeIP>:9100'
             - '<ComputeNodeIP>:9100'
   
   remote_write:
     - url: <AMPReoteWriteURL>
       queue_config:
         max_samples_per_send: 1000
         max_shards: 200
         capacity: 2500
       sigv4:
         region: <Region>
   ```

1. Per verificare se Prometheus sta esportando correttamente le metriche Slurm, DCGM ed EFA, esegui questo comando `curl` per Prometheus sulla porta `:9090` sul nodo head.

   ```
   $ curl -s http://localhost:9090/metrics | grep -E 'slurm|dcgm|efa'
   ```

   Con le metriche esportate nello spazio di lavoro Servizio gestito da Amazon per Prometheus tramite la configurazione della scrittura remota di Prometheus dal nodo controller, puoi passare all’argomento successivo per configurare le dashboard di Grafana gestito da Amazon per visualizzare le metriche.

# Configurazione di uno spazio di lavoro Grafana gestito da Amazon
<a name="sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws"></a>

Crea un nuovo spazio di lavoro Grafana gestito da Amazon o aggiornane uno esistente con Servizio gestito da Amazon per Prometheus come origine dati.

**Topics**
+ [Creazione di uno spazio di lavoro Grafana e impostazione del Servizio gestito da Amazon per Prometheus come origine dati](#sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-create)
+ [Apertura dello spazio di lavoro Grafana e completamento della configurazione dell’origine dati](#sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-connect-data-source)
+ [Importazione di dashboard Grafana open source](#sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-import-dashboards)

## Creazione di uno spazio di lavoro Grafana e impostazione del Servizio gestito da Amazon per Prometheus come origine dati
<a name="sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-create"></a>

Per visualizzare le metriche di Servizio gestito da Amazon per Prometheus, crea uno spazio di lavoro Grafana gestito da Amazon e configuralo per utilizzare il Servizio gestito da Amazon per Prometheus come origine dati.

1. Per creare uno spazio di lavoro Grafana, segui le istruzioni in [Creating a workspace](https://docs.aws.amazon.com/grafana/latest/userguide/AMG-create-workspace.html#creating-workspace) in *Amazon Managed Service for Prometheus User Guide*.

   1. Nella Fase 13, seleziona Servizio gestito da Amazon per Prometheus come origine dati.

   1. Nella Fase 17, puoi aggiungere l’utente amministratore e anche altri utenti nel tuo Centro identità IAM.

Per ulteriori informazioni, consulta le risorse seguenti.
+ [Set up Amazon Managed Grafana for use with Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-amg.html) in *Amazon Managed Service for Prometheus User Guide*
+ [Usa la configurazione dell'origine AWS dati per aggiungere Amazon Managed Service for Prometheus come origine dati](https://docs.aws.amazon.com/grafana/latest/userguide/AMP-adding-AWS-config.html) *nella Amazon Managed Grafana User Guide*

## Apertura dello spazio di lavoro Grafana e completamento della configurazione dell’origine dati
<a name="sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-connect-data-source"></a>

Dopo aver creato o aggiornato correttamente uno spazio di lavoro Grafana gestito da Amazon, apri lo spazio di lavoro selezionando il relativo URL. Questo richiede di inserire un nome utente e la password dell’utente che hai configurato nel Centro identità IAM. Devi accedere con l’utente amministratore per completare la configurazione dello spazio di lavoro.

1. Nella **home page** dello spazio di lavoro, scegli **App**, **Origini dati AWS ** e **Origini dati**.

1. Nella pagina **Origini dati**, scegli la scheda **Origini dati**.

1. In **Servizio**, scegli Servizio gestito da Amazon per Prometheus.

1. Nella sezione **Sfoglia e fornisci fonti di dati**, scegli la AWS regione in cui hai effettuato il provisioning di uno spazio di lavoro Amazon Managed Service for Prometheus.

1. Dall’elenco delle origini dati nella Regione selezionata, scegli quella per Servizio gestito da Amazon per Prometheus. Assicurati di controllare l'ID della risorsa e l'alias della risorsa dell'area di lavoro Amazon Managed Service for Prometheus che hai configurato per lo stack di osservabilità. HyperPod 

## Importazione di dashboard Grafana open source
<a name="sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-import-dashboards"></a>

Dopo aver configurato correttamente il tuo spazio di lavoro Grafana gestito da Amazon con Servizio gestito da Amazon per Prometheus come origine dati, inizi a raccogliere metriche per Prometheus, quindi dovresti vedere le varie dashboard che mostrano grafici, informazioni e altro ancora. Il software open source Grafana offre diverse dashboard che puoi importare in Grafana gestito da Amazon.

**Per importare dashboard Grafana open source in Grafana gestito da Amazon**

1. Nella **home** page del tuo spazio di lavoro Grafana gestito da Amazon, scegli **Dashboard**.

1. Scegli il pulsante del menu a discesa con il testo dell’interfaccia utente **Nuovo** e seleziona **Importa**.

1. Incolla l’URL nella [dashboard di Slurm](https://grafana.com/grafana/dashboards/4323-slurm-dashboard/).

   ```
   https://grafana.com/grafana/dashboards/4323-slurm-dashboard/
   ```

1. Seleziona **Carica**.

1. Ripeti le fasi precedenti per importare le dashboard seguenti.

   1. [Dashboard completa per l’esportazione di nodi](https://grafana.com/grafana/dashboards/1860-node-exporter-full/)

      ```
      https://grafana.com/grafana/dashboards/1860-node-exporter-full/
      ```

   1. [Dashboard di esportazione NVIDIA DCGM](https://grafana.com/grafana/dashboards/12239-nvidia-dcgm-exporter-dashboard/)

      ```
      https://grafana.com/grafana/dashboards/12239-nvidia-dcgm-exporter-dashboard/
      ```

   1. [Dashboard delle metriche EFA](https://grafana.com/grafana/dashboards/20579-efa-metrics-dev/)

      ```
      https://grafana.com/grafana/dashboards/20579-efa-metrics-dev/
      ```

   1. [FSx per Lustre Metrics Dashboard](https://grafana.com/grafana/dashboards/20906-fsx-lustre/)

      ```
      https://grafana.com/grafana/dashboards/20906-fsx-lustre/
      ```

# Riferimento delle metriche esportate
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference"></a>

Le seguenti sezioni presentano elenchi completi di metriche esportate da SageMaker HyperPod Amazon Managed Service for Prometheus dopo la corretta configurazione dello stack per l'osservabilità. CloudFormation SageMaker HyperPod Puoi iniziare a monitorare le metriche visualizzate nelle dashboard di Grafana gestito da Amazon.

## Dashboard di esportazione Slurm
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-slurm-exporter"></a>

Fornisce informazioni visualizzate sui cluster Slurm su. SageMaker HyperPod

**Tipi di metriche**
+ **Panoramica del cluster:** visualizzazione del numero totale di nodi, processi e relativi stati.
+ **Metriche dei processi:** visualizzazione del numero e dello stato dei processi nel tempo.
+ **Metriche dei nodi:** visualizzazione degli stati, dell’allocazione e delle risorse disponibili dei nodi.
+ **Metriche delle partizioni:** monitoraggio di metriche specifiche della partizione come l’utilizzo di CPU, memoria e GPU.
+ **Efficienza dei processi:** calcolo dell’efficienza dei processi in base alle risorse utilizzate.

**Elenco delle metriche**


| Nome parametro | Description | 
| --- | --- | 
| slurm\$1job\$1count | Numero totale di processi nel cluster Slurm | 
| slurm\$1job\$1state\$1count | Numero di processi in ogni stato (ad esempio, in esecuzione, in sospeso, completati) | 
| slurm\$1node\$1count  | Numero totale di nodi nel cluster Slurm | 
| slurm\$1node\$1state\$1count  | Numero di nodi in ogni stato (ad esempio, inattivo, allocato, misto) | 
| slurm\$1partition\$1node\$1count  | Numero di nodi in ogni partizione | 
| slurm\$1partition\$1job\$1count  | Numero di processi in ogni partizione | 
| slurm\$1partition\$1alloc\$1cpus  | Numero totale di elementi allocati in ogni partizione CPUs  | 
| slurm\$1partition\$1free\$1cpus  | Numero totale di elementi disponibili CPUs in ogni partizione | 
| slurm\$1partition\$1alloc\$1memory  | Memoria totale allocata in ogni partizione | 
| slurm\$1partition\$1free\$1memory  | Memoria totale disponibile in ogni partizione | 
| slurm\$1partition\$1alloc\$1gpus  | Totale allocato GPUs in ogni partizione | 
| slurm\$1partition\$1free\$1gpus  | Totale disponibile GPUs in ogni partizione | 

## Dashboard di esportazione di nodi
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-node-exporter"></a>

Fornisce informazioni visualizzate sulle metriche di sistema raccolte dall'esportatore di nodi Prometheus dai [nodi del cluster](https://github.com/prometheus/node_exporter). HyperPod 

**Tipi di metriche**
+ **Panoramica del sistema:** visualizzazione delle medie di carico della CPU e dell’utilizzo della memoria.
+ **Metriche della memoria:** visualizzazione dell’utilizzo della memoria, tra cui memoria totale, memoria libera e spazio di swap.
+ **Utilizzo del disco:** monitoraggio dell’utilizzo e della disponibilità dello spazio su disco.
+ **Traffico di rete:** visualizzazione dei byte di rete ricevuti e trasmessi nel tempo.
+ **Metriche del file system:** analisi dell’utilizzo e della disponibilità del file system.
+ ** I/O Metriche del disco:** visualizzazione dell'attività di lettura e scrittura su disco.

**Elenco delle metriche**

[Per un elenco completo delle metriche esportate, consultate i repository [Node](https://github.com/prometheus/node_exporter?tab=readme-ov-file#enabled-by-default) exporter e procfs.](https://github.com/prometheus/procfs?tab=readme-ov-file) GitHub La tabella seguente mostra un sottoinsieme di metriche che fornisce informazioni approfondite sull’utilizzo delle risorse di sistema, come il carico della CPU, l’utilizzo della memoria, lo spazio su disco e l’attività di rete.


| Nome parametro | Description | 
| --- | --- | 
|  node\$1load1  | Carico medio ogni minuto | 
|  node\$1load5  | Carico medio ogni 5 minuti | 
|  node\$1load15  | Carico medio ogni 15 minuti | 
|  node\$1memory\$1MemTotal  | Memoria totale di sistema | 
|  node\$1memory\$1MemFree  | Memoria di sistema libera | 
|  node\$1memory\$1MemAvailable  | Memoria disponibile per l’allocazione dei processi | 
|  node\$1memory\$1Buffers  | Memoria utilizzata dal kernel per il buffering | 
|  node\$1memory\$1Cached  | Memoria utilizzata dal kernel per il caching dei dati del file system | 
|  node\$1memory\$1SwapTotal  | Spazio di swap totale disponibile | 
|  node\$1memory\$1SwapFree  | Spazio di swap libero | 
|  node\$1memory\$1SwapCached  | Memoria precedentemente sottoposta a swap, che viene reinserita ma resta in modalità swap | 
|  node\$1filesystem\$1avail\$1bytes  | Spazio disponibile su disco in byte | 
|  node\$1filesystem\$1size\$1bytes  | Spazio totale su disco in byte | 
|  node\$1filesystem\$1free\$1bytes  | Spazio libero su disco in byte | 
|  node\$1network\$1receive\$1bytes  | Byte di rete ricevuti | 
|  node\$1network\$1transmit\$1bytes  | Byte di rete trasmessi | 
|  node\$1disk\$1read\$1bytes  | Byte del disco letti | 
|  node\$1disk\$1written\$1bytes  | Byte del disco scritti | 

## Dashboard di esportazione NVIDIA DCGM
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-nvidia-dcgm-exporter"></a>

Fornisce informazioni visive sulle metriche delle GPU NVIDIA raccolte dallo [strumento di esportazione NVIDIA DCGM](https://github.com/NVIDIA/dcgm-exporter).

**Tipi di metriche**
+ **Panoramica della GPU:** visualizzazione dell’utilizzo della GPU, delle temperature, del consumo energetico e della memoria. 
+ **Metriche di temperatura:** visualizzazione delle temperature della GPU nel tempo. 
+ **Consumo energetico:** monitoraggio dell’assorbimento energetico della GPU e delle tendenze del consumo energetico. 
+ **Utilizzo della memoria:** analisi dell’utilizzo della memoria della GPU, che include la memoria utilizzata, quella libera e quella totale. 
+ **Velocità della ventola:** visualizzazione delle velocità e delle variazioni delle ventole della GPU. 
+ **Errori ECC:** tracciamento degli errori ECC della memoria GPU e degli errori in sospeso.

**Elenco delle metriche**

La tabella seguente mostra un elenco di metriche che fornisce informazioni approfondite sull’integrità e sulle prestazioni della GPU NVIDIA, tra cui frequenze di clock, temperature, consumo energetico, utilizzo della memoria, velocità delle ventole e metriche di errore.


| Nome parametro | Description | 
| --- | --- | 
|  DCGM\$1FI\$1DEV\$1SM\$1CLOCK  | Frequenza di clock SM (in) MHz | 
|  DCGM\$1FI\$1DEV\$1MEM\$1CLOCK  | Frequenza di clock della memoria (in MHz) | 
|  DCGM\$1FI\$1DEV\$1MEMORY\$1TEMP  | Temperatura della memoria (in °C) | 
|  DCGM\$1FI\$1DEV\$1GPU\$1TEMP  | Temperatura della GPU (in °C) | 
|  DCGM\$1FI\$1DEV\$1POWER\$1USAGE  | Potenza assorbita (in W) | 
|  DCGM\$1FI\$1DEV\$1TOTAL\$1ENERGY\$1CONSUMPTION  | Consumo energetico totale dall’avvio (in mJ) | 
|  DCGM\$1FI\$1DEV\$1PCIE\$1REPLAY\$1COUNTER  | Numero totale di PCIe tentativi | 
|  DCGM\$1FI\$1DEV\$1MEM\$1COPY\$1UTIL  | Utilizzo della memoria (in %) | 
|  DCGM\$1FI\$1DEV\$1ENC\$1UTIL  | Utilizzo dell’encoder (in %) | 
|  DCGM\$1FI\$1DEV\$1DEC\$1UTIL  | Utilizzo del decoder (in %) | 
|  DCGM\$1FI\$1DEV\$1XID\$1ERRORS  | Valore dell’ultimo errore XID rilevato | 
|  DCGM\$1FI\$1DEV\$1FB\$1FREE  | Memoria libera del frame buffer (in MiB) | 
|  DCGM\$1FI\$1DEV\$1FB\$1USED  | Memoria utilizzata del frame buffer (in MiB) | 
|  DCGM\$1FI\$1DEV\$1NVLINK\$1BANDWIDTH\$1TOTAL  | Numero totale di contatori della NVLink larghezza di banda per tutte le corsie | 
|  DCGM\$1FI\$1DEV\$1VGPU\$1LICENSE\$1STATUS  | Stato della licenza vGPU | 
|  DCGM\$1FI\$1DEV\$1UNCORRECTABLE\$1REMAPPED\$1ROWS  | Numero di righe rimappate per errori non correggibili | 
|  DCGM\$1FI\$1DEV\$1CORRECTABLE\$1REMAPPED\$1ROWS  | Numero di righe rimappate per errori correggibili | 
|  DCGM\$1FI\$1DEV\$1ROW\$1REMAP\$1FAILURE  | Esito negativo della rimappatura delle righe | 

## Dashboard delle metriche EFA
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-efa-exporter"></a>

Fornisce informazioni visive sulle metriche raccolte tramite lo [strumento di esportazione di nodi EFA](https://github.com/aws-samples/awsome-distributed-training/blob/main/4.validation_and_observability/3.efa-node-exporter/README.md) con [Amazon Elastic Fabric Adapter (EFA)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) installato nelle istanze P.

**Tipi di metriche**
+ **Metriche di errore EFA:** visualizzazione di errori quali quelli di allocazione, dei comandi e della mappa di memoria.
+ **Traffico di rete EFA:** monitoraggio di byte, pacchetti e richieste di processi ricevuti e trasmessi.
+ **Prestazioni RDMA EFA:** analisi delle operazioni di lettura e scrittura RDMA, inclusi i byte trasferiti e i tassi di errore.
+ **Durata delle porte EFA:** visualizzazione della durata delle porte EFA nel tempo.
+ **Pacchetti keep-alive EFA:** tracciamento del numero di pacchetti keep-alive ricevuti.

**Elenco delle metriche**

La tabella seguente mostra un elenco di metriche che fornisce informazioni approfondite su vari aspetti del funzionamento di EFA, tra cui errori, comandi completati, traffico di rete e utilizzo delle risorse.


| Nome parametro | Description | 
| --- | --- | 
|  node\$1amazonefa\$1info  | Dati non numerici provenienti da/sys/class/infiniband/, il valore è sempre 1. | 
|  node\$1amazonefa\$1lifespan  | Durata della porta | 
|  node\$1amazonefa\$1rdma\$1read\$1bytes  | Numero di byte letti con RDMA | 
|  node\$1amazonefa\$1rdma\$1read\$1resp\$1bytes  | Numero di byte di risposta letti con RDMA | 
|  node\$1amazonefa\$1rdma\$1read\$1wr\$1err  | Numero di errori di scrittura letti con RDMA | 
|  node\$1amazonefa\$1rdma\$1read\$1wrs  | Numero di scritture lette con RDMA | 
|  node\$1amazonefa\$1rdma\$1write\$1bytes  | Numero di byte scritti con RDMA | 
|  node\$1amazonefa\$1rdma\$1write\$1recv\$1bytes  | Numero di byte scritti e ricevuti con RDMA | 
|  node\$1amazonefa\$1rdma\$1write\$1wr\$1err  | Numero di byte scritti con errore RDMA | 
|  node\$1amazonefa\$1rdma\$1write\$1wrs  | Numero di byte di scritture scritti con RDMA | 
|  node\$1amazonefa\$1recv\$1bytes  | Numero di byte ricevuti | 
|  node\$1amazonefa\$1recv\$1wrs  | Numero di byte di scritture ricevuti | 
|  node\$1amazonefa\$1rx\$1bytes  | Numero di byte ricevuti | 
|  node\$1amazonefa\$1rx\$1drops  | Numero di pacchetti annullati | 
|  node\$1amazonefa\$1rx\$1pkts  | Numero di pacchetti ricevuti | 
|  node\$1amazonefa\$1send\$1bytes  | Numero di byte inviati | 
|  node\$1amazonefa\$1send\$1wrs  | Numero di scritture inviate | 
|  node\$1amazonefa\$1tx\$1bytes  | Numero di byte trasmessi | 
|  node\$1amazonefa\$1tx\$1pkts  | Numero di pacchetti trasmessi | 

## FSx per la dashboard delle metriche di Lustre
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-fsx-exporter"></a>

[Fornisce informazioni visualizzate sulle [metriche del file system Amazon FSx for Lustre](https://docs.aws.amazon.com/fsx/latest/LustreGuide/monitoring-cloudwatch.html) raccolte da Amazon. CloudWatch](https://docs.aws.amazon.com/fsx/latest/LustreGuide/monitoring-cloudwatch.html)

**Nota**  
La dashboard Grafana FSx for Lustre utilizza Amazon CloudWatch come fonte di dati, che si differenzia dalle altre dashboard configurate per utilizzare Amazon Managed Service for Prometheus. Per garantire un monitoraggio e una visualizzazione accurati delle metriche relative al file system FSx for Lustre, configura la dashboard FSx for Lustre per utilizzare Amazon CloudWatch come fonte di dati, specificando lo stesso Regione AWS luogo in cui viene distribuito il file system FSx for Lustre.

**Tipi di metriche**
+ **DataReadBytes:** Il numero di byte per le operazioni di lettura del file system.
+ **DataWriteBytes:** il numero di byte per le operazioni di scrittura del file system.
+ **DataReadOperations:** Il numero di operazioni di lettura.
+ **DataWriteOperations:** Il numero di operazioni di scrittura.
+ **MetadataOperations:** Il numero di operazioni sui metadati.
+ **FreeDataStorageCapacity:** La quantità di capacità di archiviazione disponibile.

# Metriche di Amazon SageMaker HyperPod Slurm
<a name="smcluster-slurm-metrics"></a>

Amazon SageMaker HyperPod fornisce una serie di CloudWatch parametri Amazon che puoi utilizzare per monitorare lo stato e le prestazioni dei tuoi HyperPod cluster. Queste metriche vengono raccolte dal gestore del carico di lavoro Slurm in esecuzione sui tuoi HyperPod cluster e sono disponibili nel namespace. `/aws/sagemaker/Clusters` CloudWatch 

## Metriche a livello di cluster
<a name="smcluster-slurm-metrics-cluster"></a>

Le seguenti metriche a livello di cluster sono disponibili per. HyperPod Queste metriche utilizzano la `ClusterId` dimensione per identificare il cluster specifico. HyperPod 


| CloudWatch nome della metrica | Note | Nome della metrica di Amazon ECS Container Insights | 
| --- | --- | --- | 
| cluster\$1node\$1count | Numero totale di nodi nel cluster | cluster\$1node\$1count | 
| cluster\$1idle\$1node\$1count | Numero di nodi inattivi nel cluster | N/D | 
| cluster\$1failed\$1node\$1count | Numero di nodi non riusciti nel cluster | cluster\$1failed\$1node\$1count | 
| cluster\$1cpu\$1count | Numero totale di core CPU nel cluster | node\$1cpu\$1limit | 
| cluster\$1idle\$1cpu\$1count | Numero di core CPU inattivi nel cluster | N/D | 
| cluster\$1gpu\$1count | Totale GPUs nel cluster | node\$1gpu\$1limit | 
| cluster\$1idle\$1gpu\$1count | Numero di inattività GPUs nel cluster | N/D | 
| cluster\$1running\$1task\$1count | Numero di processi Slurm in esecuzione nel cluster | N/D | 
| cluster\$1pending\$1task\$1count | Numero di processi Slurm in sospeso nel cluster | N/D | 
| cluster\$1preempted\$1task\$1count | Numero di processi Slurm prerilasciati nel cluster | N/D | 
| cluster\$1avg\$1task\$1wait\$1time | Tempo di attesa medio per i processi Slurm nel cluster | N/D | 
| cluster\$1max\$1task\$1wait\$1time | Tempo di attesa massimo per i processi Slurm nel cluster | N/D | 

## Metriche a livello di istanza
<a name="smcluster-slurm-metrics-instance"></a>

Le seguenti metriche a livello di istanza sono disponibili per. HyperPod Queste metriche utilizzano la `ClusterId` dimensione anche per identificare il cluster specifico. HyperPod 


| CloudWatch nome della metrica | Note | Nome della metrica di Amazon ECS Container Insights | 
| --- | --- | --- | 
| node\$1gpu\$1utilization | Utilizzo medio della GPU in tutte le istanze | node\$1gpu\$1utilization | 
| node\$1gpu\$1memory\$1utilization | Utilizzo medio della memoria GPU in tutte le istanze | node\$1gpu\$1memory\$1utilization | 
| node\$1cpu\$1utilization | Utilizzo medio della CPU in tutte le istanze | node\$1cpu\$1utilization | 
| node\$1memory\$1utilization | Utilizzo medio della memoria in tutte le istanze | node\$1memory\$1utilization | 

# SageMaker HyperPod resilienza del cluster
<a name="sagemaker-hyperpod-resiliency-slurm"></a>

SageMaker HyperPod tramite l'orchestrazione Slurm fornisce le seguenti funzionalità di resilienza del cluster.

**Topics**
+ [Agente di monitoraggio della salute](sagemaker-hyperpod-resiliency-slurm-cluster-health-check.md)
+ [Ripristino automatico dei nodi e ripristino automatico](sagemaker-hyperpod-resiliency-slurm-auto-resume.md)
+ [Sostituisci o riavvia manualmente un nodo usando Slurm](sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance.md)

# Agente di monitoraggio della salute
<a name="sagemaker-hyperpod-resiliency-slurm-cluster-health-check"></a>

Questa sezione descrive l'insieme di controlli di integrità SageMaker HyperPod utilizzati per monitorare regolarmente lo stato delle istanze del cluster per individuare problemi relativi a dispositivi come acceleratori (core GPU e Trainium) e rete (EFA). SageMaker HyperPod Health-Monitoring Agent (HMA) monitora continuamente lo stato di salute di ogni istanza basata su GPU o Trainium. Quando rileva un errore dell’istanza o della GPU, l’agente contrassegna l’istanza come non integra.

SageMaker HyperPod HMA esegue gli stessi controlli di integrità per gli orchestratori EKS e Slurm. Per ulteriori informazioni su HMA, vedere. [Sistema di monitoraggio della salute](sagemaker-hyperpod-eks-resiliency-health-monitoring-agent.md)

# Ripristino automatico dei nodi e ripristino automatico
<a name="sagemaker-hyperpod-resiliency-slurm-auto-resume"></a>

**Nota**  
A partire dall'11 settembre 2025, HyperPod con Slurm orchestration ora supporta gli agenti di monitoraggio dello stato di salute. Esegui [UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)e aggiorna l'AMI alla versione più recente per utilizzare questa funzionalità.

Questa sezione parla delle due funzionalità SageMaker HyperPod di resilienza complementari di Amazon: il ripristino automatico dei nodi che sostituisce l'infrastruttura difettosa senza l'intervento manuale e la funzionalità di ripristino automatico che riavvia i lavori di formazione dall'ultimo checkpoint dopo i guasti hardware.

## Come funziona il ripristino automatico dei nodi
<a name="sagemaker-hyperpod-resiliency-slurm-auto-resume-how"></a>

Durante la creazione o l’aggiornamento del cluster, gli utenti amministratori del cluster possono selezionare l’opzione di ripristino del nodo (istanza) scegliendo tra `Automatic` (consigliato) e `None` a livello di cluster. Se impostato su`Automatic`, SageMaker HyperPod riavvia o sostituisce automaticamente i nodi difettosi. 

**Importante**  
Consigliamo di impostare l’opzione `Automatic`. Per impostazione predefinita, i cluster sono configurati con il ripristino automatico dei nodi.

Il ripristino automatico dei nodi viene eseguito quando vengono rilevati problemi dall’agente di monitoraggio dell’integrità, dai controlli dell’integrità di base e dai controlli dell’integrità approfonditi. Se è impostato `None`, l’agente di monitoraggio dell’integrità etichetta le istanze in cui viene rilevato un guasto, ma non avvia automaticamente alcuna azione di correzione o ripristino sui nodi interessati. Questa opzione non è consigliata.

## Esecuzione di un processo di formazione con la funzionalità di SageMaker HyperPod ripristino automatico di Amazon
<a name="sagemaker-hyperpod-resiliency-slurm-auto-resume-job"></a>

Questa sezione descrive come eseguire un processo di formazione con la funzionalità di SageMaker HyperPod ripristino automatico, che fornisce un'infrastruttura di resilienza zero-touch per ripristinare automaticamente un processo di formazione dall'ultimo checkpoint salvato in caso di guasto hardware.

Con la funzionalità di ripristino automatico, se un processo fallisce a causa di un guasto hardware o di problemi transitori tra un training e l'altro, la ripresa SageMaker HyperPod automatica avvia il flusso di lavoro di sostituzione dei nodi e riavvia il lavoro dopo la sostituzione dei nodi difettosi. I seguenti controlli hardware vengono eseguiti ogni volta che un processo fallisce durante l'utilizzo della ripresa automatica:


| Categoria | Nome dell’utilità | Compatibilità del tipo di istanza | Description | 
| --- | --- | --- | --- | 
| Accelerator | NVIDIA SMI | GPU | [L'utilità nvidia-smi](https://developer.nvidia.com/nvidia-system-management-interface) è una nota CLI per la gestione e il monitoraggio. GPUs Lo strumento integrato di controllo dell’integrità analizza l’output da nvidia-smi per determinare l’integrità dell’istanza. | 
| Accelerator | Neuron Sysfs | Trainium | Per le istanze basate su Trainium, l’integrità dei dispositivi Neuron viene determinato dalla lettura dei contatori di [Neuron Sysfs](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/tools/neuron-sys-tools/neuron-sysfs-user-guide.html) propagati direttamente dal driver Neuron. | 
| Rete | EFA | GPU e Trainium | Per facilitare la diagnostica dei dispositivi Elastic Fabric Adaptor (EFA), lo strumento di controllo dell’integrità di EFA esegue una serie di test di connettività utilizzando tutte le schede EFA disponibili all’interno dell’istanza. | 

**Nota**  
Quando le [Generic RESources (GRES)](https://slurm.schedmd.com/gres.html) sono collegate a un nodo Slurm, Slurm in genere non consente modifiche all’allocazione dei nodi, ad esempio la sostituzione dei nodi, e quindi non consente di riprendere un processo non riuscito. A meno che non sia esplicitamente vietato, la funzionalità di ripristino HyperPod automatico rimette automaticamente in coda qualsiasi lavoro difettoso associato ai nodi abilitati per GRES. Questa procedura prevede l’arresto del processo, il suo reinserimento nella coda dei processi e il suo riavvio dall’inizio.

**Utilizzo della funzionalità di SageMaker HyperPod ripristino automatico con Slurm**

Quando si utilizza il SageMaker HyperPod ripristino automatico con Slurm, è necessario eseguire il lavoro all'interno di un'allocazione esclusiva acquisita utilizzando o. `salloc` `sbatch` In ogni caso, devi modificare lo script del punto di ingresso per assicurarti che tutte le fasi della configurazione vengano eseguite in un unico comando `srun` quando riprendi il processo. Utilizzando lo script del punto di ingresso, è importante configurare l’ambiente sul nodo sostituito in modo che sia coerente con l’ambiente in cui era in esecuzione la fase del processo prima che venisse interrotta. La procedura seguente mostra come preparare uno script entrypoint per mantenere l'ambiente coerente ed eseguirlo come un singolo comando. `srun`

**Suggerimento**  
Se utilizzi `sbatch`, puoi semplificare lo script batch creando uno script separato per la configurazione dell’ambiente e l’uso di un singolo comando `srun`.

1. Crea uno script utilizzando l’esempio di codice seguente e salvalo come `train_auto_resume.sh`. Questo script implementa le configurazioni dell’ambiente di addestramento presupponendo che non sia stata precedentemente effettuata alcuna configurazione manuale sul nodo sostituito. Questo garantisce che l’ambiente sia indipendente dal nodo in modo che, quando un nodo viene sostituito, lo stesso ambiente venga allocato sul nodo prima di riprendere il processo.
**Nota**  
L’esempio di codice seguente mostra come rilevare l’elenco dei nodi Slurm associati al processo. Non utilizzare la variabile di `$SLURM_JOB_NODELIST` ambiente fornita da Slurm, poiché il suo valore potrebbe essere obsoleto dopo la ripresa SageMaker HyperPod automatica del lavoro. L’esempio di codice seguente mostra come definire una nuova variabile `NODE_LIST` per sostituire `SLURM_JOB_NODELIST` e quindi impostare le variabili `MASTER_NODE` e `MASTER_ADDR` al di fuori della variabile `NODE_LIST`.

   ```
   #!/bin/bash
   
   # Filename: train_auto_resume.sh
   # Sample containerized script to launch a training job with a single srun which can be auto-resumed.
   
   # Place your training environment setup here. 
   # Example: Install conda, docker, activate virtual env, etc.
   
   # Get the list of nodes for a given job
   NODE_LIST=$(scontrol show jobid=$SLURM_JOBID | \ # Show details of the SLURM job
               awk -F= '/NodeList=/{print $2}' | \  # Extract NodeList field
               grep -v Exc)                         # Exclude nodes marked as excluded
   
   # Determine the master node from the node list
   MASTER_NODE=$(scontrol show hostname $NODE_LIST | \ # Convert node list to hostnames
                 head -n 1)                            # Select the first hostname as master node
   
   # Get the master node address
   MASTER_ADDR=$(scontrol show node=$MASTER_NODE | \ # Show node information
                 awk -F= '/NodeAddr=/{print $2}' | \ # Extract NodeAddr
                 awk '{print $1}')                   # Print the first part of NodeAddr
   
   
   # Torchrun command to launch the training job
   torchrun_cmd="torchrun --nnodes=$SLURM_NNODES \
                          --nproc_per_node=1 \
                          --node_rank=$SLURM_NODE \
                          --master-addr=$MASTER_ADDR \
                          --master_port=1234 \
                          <your_training_script.py>"
   
   # Execute the torchrun command in the 'pytorch' Conda environment, 
   # streaming output live
   /opt/conda/bin/conda run --live-stream -n pytorch $torchrun_cmd
   ```
**Suggerimento**  
Puoi utilizzare lo script precedente per aggiungere altri comandi per l’installazione di eventuali dipendenze aggiuntive per il processo. Tuttavia, consigliamo di mantenere gli script di installazione delle dipendenze nel [set di script del ciclo di vita](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md) utilizzati durante la creazione del cluster. Se utilizzi un ambiente virtuale ospitato in una directory condivisa, puoi utilizzare questo script anche per attivare l’ambiente virtuale.

1. Avvia il processo con la SageMaker HyperPod ripresa automatica abilitata aggiungendo il flag `--auto-resume=1` per indicare che il `srun` comando deve essere riprovato automaticamente in caso di guasto hardware. 
**Nota**  
Se è stata impostata un’allocazione di risorse con `sbatch` o `salloc`, puoi eseguire più comandi `srun` all’interno dell’allocazione. In caso di errore, la funzionalità di SageMaker HyperPod ripristino automatico funziona solo nella [fase di lavoro](https://slurm.schedmd.com/job_launch.html#step_allocation) corrente del `srun` comando con il flag. `--auto-resume=1` In altre parole, l’attivazione della ripresa automatica in un comando `srun` non si applica agli altri comandi `srun` avviati all’interno di una sessione di allocazione delle risorse.

   Di seguito sono riportati esempi del comando `srun` con `auto-resume` abilitato.

   **Utilizzo di sbatch**

   Poiché la maggior parte della logica per la configurazione dell’ambiente è già presente in `train_auto_resume.sh`, lo script batch dovrebbe essere semplice e simile al codice di esempio seguente. Supponiamo che il seguente script batch venga salvato come `batch.sh`.

   ```
   #!/bin/bash
   #SBATCH --nodes 2
   #SBATCH --exclusive
   srun --auto-resume=1 train_auto_resume.sh
   ```

   Esegui lo script batch utilizzando il comando seguente.

   ```
   sbatch batch.sh
   ```

   **Utilizzo di salloc**

   Inizia acquisendo un’allocazione esclusiva ed esegui il comando `srun` con il flag `--auto-resume` e lo script del punto di ingresso.

   ```
   salloc -N 2 --exclusive
   srun --auto-resume=1 train_auto_resume.sh
   ```

## Come interagiscono il ripristino automatico dei nodi e il ripristino automatico
<a name="sagemaker-hyperpod-resiliency-slurm-auto-resume-node-recovery"></a>

Quando i sistemi di ripristino automatico dei nodi e di ripristino automatico sono attivi, seguono un approccio coordinato alla gestione dei guasti. Se l'HMA rileva un guasto hardware, il nodo viene contrassegnato per il drenaggio indipendentemente dallo stato a livello di processo. Con il ripristino automatico dei nodi abilitato, i nodi vengono sostituiti automaticamente una volta terminati tutti i processi in esecuzione nei nodi. In questo scenario, per i lavori con ripristino automatico abilitato, se nella fase è presente uno stato di uscita diverso da zero, viene attivata la ripresa automatica (i lavori riprendono una volta sostituiti i nodi). I lavori senza il ripristino automatico verranno semplicemente chiusi e richiederanno un nuovo invio manuale da parte degli amministratori o degli utenti.

**Nota**  
Se si utilizza la ripresa automatica, i nodi vengono sempre sostituiti (nessun riavvio) quando vengono rilevati guasti hardware.

# Sostituisci o riavvia manualmente un nodo usando Slurm
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance"></a>

Questa sezione spiega quando è necessario riavviare o sostituire manualmente un nodo, con istruzioni su come eseguire entrambe le operazioni.

## Quando riavviare o sostituire manualmente un nodo
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-when"></a>

La funzionalità di HyperPod ripristino automatico monitora se lo stato dei nodi Slurm diventa o. `fail` `down` Puoi controllare lo stato dei nodi Slurm eseguendo `sinfo`.

Se un nodo rimane bloccato o non risponde e il processo di ripristino automatico non lo ripristina, puoi avviare il ripristino manualmente. La scelta tra il riavvio e la sostituzione di un nodo dipende dalla natura del problema. Prendi in considerazione la possibilità di riavviare il sistema in caso di problemi temporanei o legati al software, come blocchi del sistema, perdite di memoria, problemi relativi ai driver della GPU, aggiornamenti del kernel o blocchi dei processi. Tuttavia, se si verificano problemi persistenti o legati all'hardware come guasti, errori di memoria o di rete GPUs, ripetuti errori nei controlli di integrità o nodi che non rispondono dopo più tentativi di riavvio, la sostituzione dei nodi è la soluzione più appropriata.

## Metodi per riavviare o sostituire manualmente i nodi
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-ways"></a>

SageMaker HyperPod offre due metodi per il ripristino manuale dei nodi. L'approccio preferito consiste nell'utilizzare SageMaker HyperPod Reboot and Replace APIs, che fornisce un processo di ripristino più rapido e trasparente che funziona con tutti gli orchestratori. In alternativa, è possibile utilizzare i comandi Slurm tradizionali come`scontrol update`, sebbene questo metodo legacy richieda l'accesso diretto al nodo controller di Slurm. Entrambi i metodi attivano gli stessi processi di ripristino. SageMaker HyperPod 

## Riavvia manualmente un nodo utilizzando l'API di riavvio
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-reboot-api"></a>

 È possibile utilizzare il **BatchRebootClusterNodes**per riavviare manualmente un nodo difettoso nel cluster. SageMaker HyperPod 

 Ecco un esempio di esecuzione dell'operazione di riavvio su due istanze di un cluster utilizzando: AWS Command Line Interface

```
 aws sagemaker batch-reboot-cluster-nodes \
                --cluster-name arn:aws:sagemaker:ap-northeast-1:123456789:cluster/test-cluster \
                --node-ids i-0123456789abcdef0 i-0fedcba9876543210
```

## Sostituisci manualmente un nodo utilizzando l'API di sostituzione
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-replace-api"></a>

 È possibile utilizzare il **BatchReplaceClusterNodes**per sostituire manualmente un nodo difettoso nel SageMaker HyperPod cluster.

 Ecco un esempio di esecuzione dell'operazione di sostituzione su due istanze di un cluster utilizzando: AWS Command Line Interface

```
 aws sagemaker batch-replace-cluster-nodes \
                --cluster-name arn:aws:sagemaker:ap-northeast-1:123456789:cluster/test-cluster \
                --node-ids i-0123456789abcdef0 i-0fedcba9876543210
```

## Riavviare manualmente un nodo utilizzando Slurm
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-reboot"></a>

Puoi anche usare i comandi scontrol Slurm per attivare il ripristino del nodo. Questi comandi interagiscono direttamente con il piano di controllo Slurm e richiamano gli stessi meccanismi di ripristino sottostanti. SageMaker HyperPod 

Nel comando seguente, sostituite <ip-ipv4>con il nome del nodo Slurm (nome host) dell'istanza difettosa che desiderate riavviare.

```
scontrol update node=<ip-ipv4> state=fail reason="Action:Reboot"
```

Questo contrassegna il nodo come FAIL per il motivo specificato. SageMaker HyperPod lo rileva e riavvia l'istanza. Evita di modificare lo stato del nodo o di riavviare il controller Slurm durante l'operazione.

## Sostituisci manualmente un nodo usando Slurm
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-replace"></a>

È possibile utilizzare il comando scontrol update come segue per sostituire un nodo.

Nel comando seguente, sostituisci `<ip-ipv4>` con il nome del nodo Slurm (nome host) dell'istanza difettosa che desideri sostituire.

```
scontrol update node=<ip-ipv4> state=fail reason="Action:Replace"
```

Dopo aver eseguito questo comando, il nodo entrerà `fail` nello stato, attenderà il completamento dei processi attualmente in esecuzione, verrà sostituito con un'istanza integra e verrà ripristinato con lo stesso nome host. Questo processo richiede tempo e dipende dalle istanze disponibili nella zona di disponibilità e dal tempo necessario per eseguire gli script del ciclo di vita. Durante i processi di aggiornamento e sostituzione, evita nuove modifiche manuali allo stato del nodo o il riavvio del controller Slurm, perché queste operazioni potrebbero comportare errori di sostituzione. Se il nodo non viene ripristinato o non torna allo stato `idle` dopo molto tempo, contatta il [Supporto AWS](https://console.aws.amazon.com/support/).

## Forza la modifica manuale di un nodo
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-force"></a>

Se il nodo difettoso resta sempre bloccato in stato `fail`, l’ultima soluzione che potresti provare è forzare manualmente la modifica dello stato del nodo su `down`. Questa operazione richiede privilegi di amministratore (autorizzazioni sudo).

**avvertimento**  
Procedi con cautela prima di utilizzare il comando seguente, perché impone l’interruzione di tutti i processi che potrebbe comportare la perdita di tutto il lavoro non salvato.

```
scontrol update node=<ip-ipv4> state=down reason="Action:Replace"
```

# Provisioning continuo per operazioni avanzate del cluster con Slurm
<a name="sagemaker-hyperpod-scaling-slurm"></a>

 SageMaker HyperPod I cluster Amazon creati con l'orchestrazione Slurm ora supportano il provisioning continuo, una funzionalità che consente maggiore flessibilità ed efficienza durante l'esecuzione di carichi di lavoro su larga scala. AI/ML Il provisioning continuo consente di iniziare rapidamente l’addestramento, scalare senza problemi, eseguire la manutenzione senza interrompere le operazioni e avere una visibilità granulare sulle operazioni del cluster.

**Nota**  
Il provisioning continuo è disponibile come configurazione opzionale per i nuovi cluster creati con l'orchestrazione Slurm. HyperPod Al momento, i cluster esistenti che utilizzano il modello di scalabilità precedente non possono essere migrati al provisioning continuo.

## Come funziona
<a name="sagemaker-hyperpod-scaling-slurm-how"></a>

Il sistema di provisioning continuo introduce un'architettura dello stato desiderato che sostituisce il modello di scalabilità tradizionale. all-or-nothing Nel modello precedente, se non era possibile effettuare il provisioning completo di un gruppo di istanze, l'intera operazione di creazione o aggiornamento del cluster non funzionava e veniva ripristinata. Con il provisioning continuo, il sistema accetta una capacità parziale e continua a fornire le istanze rimanenti in modo asincrono.

Il sistema di provisioning continuo:
+ **Accetta la richiesta**: registra il numero di istanze di destinazione per ogni gruppo di istanze.
+ **Avvia il provisioning**: inizia a lanciare le istanze per tutti i gruppi di istanze in parallelo.
+ Effettua **innanzitutto il provisioning dei nodi prioritari**: il cluster passa a `InService` dopo che almeno un nodo controller (e un nodo di accesso, se viene specificato un gruppo di istanze di login) è stato eseguito correttamente.
+ Monitora l'**avanzamento**: monitora ogni tentativo di avvio dell'istanza e ne registra lo stato.
+ **Gestisce gli errori**: riprova automaticamente gli avvii non riusciti per i nodi di lavoro in modo asincrono.

Il provisioning continuo è disabilitato per impostazione predefinita. Per utilizzare questa funzionalità, impostala nella richiesta. `NodeProvisioningMode` `Continuous` `CreateCluster`

Con il provisioning continuo abilitato, puoi avviare più operazioni di dimensionamento contemporaneamente senza attendere il completamento delle operazioni precedenti. Ciò consente di scalare contemporaneamente diversi gruppi di istanze nello stesso cluster e di inviare più richieste di dimensionamento allo stesso gruppo di istanze.

## Provisioning basato sulla priorità
<a name="sagemaker-hyperpod-scaling-slurm-priority"></a>

I cluster Slurm richiedono che un nodo controller sia operativo prima che i nodi di lavoro possano registrare e accettare lavori. Il provisioning continuo gestisce questo problema automaticamente tramite il provisioning basato sulle priorità:

1. Il gruppo di istanze del controller viene fornito per primo.

1. Una volta che un nodo controller è integro, i nodi di accesso e i nodi di lavoro iniziano il provisioning in parallelo.

1. Il cluster passa alla fase in `InService` cui un nodo di controller è attivo e un nodo di accesso è attivo (se viene specificato un gruppo di istanze di login). Se non viene specificato alcun gruppo di istanze di login, la transizione del cluster avviene non `InService` appena viene effettuato il provisioning del nodo di controller.

1. I nodi di lavoro che non possono essere immediatamente forniti a causa di vincoli di capacità entrano in un ciclo di tentativi asincrono e vengono aggiunti automaticamente al cluster Slurm non appena diventano disponibili.

## Gestione degli errori del controller
<a name="sagemaker-hyperpod-scaling-slurm-controller-failure"></a>

Durante la creazione del cluster, se il nodo controller non riesce a eseguire il provisioning, il comportamento dipende dal fatto che l'errore sia riprovabile o meno.

**Errori rieseguibili (ad esempio, istanze non integre o errori** temporanei):
+ HyperPod sostituisce continuamente l'istanza e riprova il provisioning fino all'attivazione del controller.
+ I nodi di lavoro e di accesso che sono già stati forniti rimangono disponibili, ma il cluster non effettua la transizione `InService` finché il controller non è integro.

**Errori non ripetibili** (ad esempio, nessuna capacità disponibile per il tipo di istanza del controller o l'errore dello script del ciclo di vita):
+ Il cluster è contrassegnato come. `Failed`
+ Il motivo dell'errore viene notificato all'utente e deve intraprendere azioni correttive, ad esempio scegliere un tipo di istanza diverso, correggere gli script del ciclo di vita o riprovare in un'altra zona di disponibilità.

## Prerequisiti
<a name="sagemaker-hyperpod-scaling-slurm-prerequisites"></a>

Il provisioning continuo richiede che i parametri di provisioning di Slurm (tipi di nodi, nomi delle partizioni) siano forniti tramite il payload dell'API nel campo di ciascun gruppo di istanze. `SlurmConfig` I cluster che si basano sul `provisioning_parameters.json` file legacy in Amazon S3 non sono compatibili con il provisioning continuo.

**Nota**  
Le seguenti funzionalità non sono attualmente supportate con il provisioning continuo sui cluster Slurm: migrazione di cluster esistenti, configurazione a nodi multipli tramite topologia Slurm basata su API e. `SlurmConfigStrategy` Il provisioning `slurm.conf` continuo funziona esclusivamente in modalità di fusione per la gestione.

## Misurazione dell’utilizzo
<a name="sagemaker-hyperpod-scaling-slurm-metering"></a>

HyperPod i cluster con provisioning continuo utilizzano la misurazione a livello di istanza per fornire una fatturazione accurata che rifletta l'utilizzo effettivo delle risorse. Questo approccio di misurazione si differenzia dalla tradizionale fatturazione a livello di cluster in quanto tiene traccia di ogni istanza in modo indipendente.

**Fatturazione a livello di istanza**

Con il provisioning continuo, la fatturazione inizia e si arresta a livello della singola istanza anziché attendere le modifiche dello stato a livello di cluster. Questa funzionalità fornisce i seguenti vantaggi:
+ **Accuratezza di fatturazione**: la fatturazione inizia quando inizia l’esecuzione dello script del ciclo di vita. Se lo script del ciclo di vita fallisce, la fornitura dell'istanza verrà ritentata e all'utente verrà addebitata la durata del runtime dello script del ciclo di vita.
+ **Misurazione indipendente: il** ciclo di vita di fatturazione di ogni istanza viene gestito separatamente, evitando errori di fatturazione a cascata.
+ **Aggiornamenti di fatturazione in tempo reale**: la fatturazione inizia quando un'istanza inizia a eseguire lo script di configurazione del ciclo di vita e si interrompe quando l'istanza entra in uno stato di terminazione.

**Ciclo di vita della fatturazione**

Ogni istanza del HyperPod cluster segue questo ciclo di vita di fatturazione:
+ La **fatturazione ha inizio**: quando l'istanza viene avviata correttamente e inizia a eseguire lo script di configurazione del ciclo di vita.
+ **La fatturazione continua**: per tutta la durata operativa dell'istanza.
+ La **fatturazione si interrompe**: quando l'istanza entra in uno stato di terminazione, indipendentemente dal motivo della chiusura.

**Nota**  
La fatturazione non inizia in caso di errori di avvio delle istanze. Se l’avvio di un’istanza non riesce a causa di una capacità insufficiente o di altri problemi, non verrà addebitato alcun costo per il tentativo non riuscito. La fatturazione viene calcolata a livello di istanza e i costi sono aggregati e riportati nel nome della risorsa Amazon (ARN) del cluster.

## Creazione di un cluster con provisioning continuo abilitato
<a name="sagemaker-hyperpod-scaling-slurm-create"></a>

**Nota**  
Prepara uno script di configurazione del ciclo di vita e caricalo in un bucket Amazon S3 a cui può accedere il tuo ruolo di esecuzione. Per ulteriori informazioni, consulta [SageMaker HyperPod Operazioni del cluster Slurm](sagemaker-hyperpod-operate-slurm.md).

Prepara un file di richiesta `CreateCluster` API in formato JSON. Imposta `NodeProvisioningMode` `Continuous` e fornisci informazioni sulla topologia Slurm nel campo di ogni gruppo di istanze. `SlurmConfig`

```
// create_cluster.json
{
    "ClusterName": "my-training-cluster",
    "NodeProvisioningMode": "Continuous",
    "Orchestrator": {
        "Slurm": {}
    },
    "InstanceGroups": [
        {
            "InstanceGroupName": "controller-group",
            "InstanceType": "ml.m5.xlarge",
            "InstanceCount": 1,
            "LifeCycleConfig": {
                "SourceS3Uri": "s3://amzn-s3-demo-bucket/lifecycle-scripts/src/",
                "OnCreate": "on_create.sh"
            },
            "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster",
            "SlurmConfig": {
                "NodeType": "Controller"
            }
        },
        {
            "InstanceGroupName": "login-group",
            "InstanceType": "ml.m5.xlarge",
            "InstanceCount": 1,
            "LifeCycleConfig": {
                "SourceS3Uri": "s3://amzn-s3-demo-bucket/lifecycle-scripts/src/",
                "OnCreate": "on_create.sh"
            },
            "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster",
            "SlurmConfig": {
                "NodeType": "Login"
            }
        },
        {
            "InstanceGroupName": "worker-gpu-a",
            "InstanceType": "ml.p5.48xlarge",
            "InstanceCount": 16,
            "LifeCycleConfig": {
                "SourceS3Uri": "s3://amzn-s3-demo-bucket/lifecycle-scripts/src/",
                "OnCreate": "on_create.sh"
            },
            "ExecutionRole": "arn:aws:iam::111122223333:role/iam-role-for-cluster",
            "SlurmConfig": {
                "NodeType": "Compute",
                "PartitionNames": ["gpu-training"]
            }
        }
    ],
    "VpcConfig": {
        "SecurityGroupIds": ["sg-12345678"],
        "Subnets": ["subnet-12345678"]
    }
}
```

Esegui il `create-cluster` comando per inviare la richiesta.

```
aws sagemaker create-cluster \
    --cli-input-json file://complete/path/to/create_cluster.json
```

Questo restituisce l'ARN del nuovo cluster.

```
{
    "ClusterArn": "arn:aws:sagemaker:us-west-2:111122223333:cluster/abcde12345"
}
```

## Gestione della configurazione Slurm
<a name="sagemaker-hyperpod-scaling-slurm-config"></a>

Il provisioning continuo funziona esclusivamente in modalità di fusione per la gestione delle partizioni. `slurm.conf` In modalità merge, HyperPod applica le modifiche alla configurazione delle partizioni in modo additivo alle modifiche apportate. `slurm.conf` HyperPod aggiorna solo le sezioni relative alla partizione di `slurm.conf` (come le voci relative al nome della partizione e al nome del nodo); gli altri parametri di configurazione di Slurm non vengono modificati. Ciò significa che:
+ Le modifiche manuali di vengono mantenute. `slurm.conf`
+ Non è previsto il rilevamento automatico delle deviazioni o la risoluzione dei conflitti tra le modifiche apportate e HyperPod lo stato previsto.

Il `SlurmConfigStrategy` parametro (`Managed`,`Merge`,`Overwrite`) non è supportato con il provisioning continuo. Il passaggio di qualsiasi `SlurmConfigStrategy` valore genera un errore API.

# SageMaker HyperPod gestione dei cluster
<a name="sagemaker-hyperpod-cluster-management-slurm"></a>

Negli argomenti seguenti vengono illustrate la registrazione e la gestione dei cluster. SageMaker HyperPod 

## Registrazione degli eventi SageMaker HyperPod
<a name="sagemaker-hyperpod-cluster-management-slurm-logging-hyperpod-events"></a>

Tutti gli eventi e i log di SageMaker HyperPod vengono salvati su Amazon CloudWatch con il nome `/aws/sagemaker/Clusters/[ClusterName]/[ClusterID]` del gruppo di log. Ogni chiamata all’API `CreateCluster` crea un nuovo gruppo di log. L’elenco seguente contiene tutti i flussi di log disponibili raccolti in ogni gruppo di log.


|  |  | 
| --- |--- |
| Nome del gruppo di log | Nome del flusso di log | 
| /aws/sagemaker/Clusters/[ClusterName]/[ClusterID] | LifecycleConfig/[instance-group-name]/[instance-id] | 

## Registrazione a SageMaker HyperPod livello di istanza
<a name="sagemaker-hyperpod-cluster-management-slurm-logging-at-instance-level"></a>

È possibile accedere ai LifecycleScript log pubblicati CloudWatch durante la configurazione dell'istanza del cluster. Ogni istanza all’interno del cluster creato genera un flusso di log separato, distinguibile in base al formato `LifecycleConfig/[instance-group-name]/[instance-id]`. 

Tutti i log in cui vengono scritti `/var/log/provision/provisioning.log` vengono caricati nel flusso precedente CloudWatch . Sample LifecycleScripts at [https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config)reindirizza il loro terreno `stderr` verso `stdout` questa posizione. Se utilizzi script personalizzati, scrivi i log nella `/var/log/provision/provisioning.log` posizione in cui saranno disponibili. CloudWatch

**Marcatori di log degli script del ciclo di vita**

CloudWatch i log per gli script del ciclo di vita includono marcatori specifici che consentono di tenere traccia dell'avanzamento dell'esecuzione e identificare i problemi:


|  |  | 
| --- |--- |
| Marker | Descrizione | 
| START | Indicates the beginning of lifecycle script logs for the instance | 
| [SageMaker] Lifecycle scripts were provided, with S3 uri: [s3://bucket-name/] and entrypoint script: [script-name.sh] | Indicates the S3 location and entrypoint script that will be used | 
| [SageMaker] Downloading lifecycle scripts | Indicates scripts are being downloaded from the specified S3 location | 
| [SageMaker] Lifecycle scripts have been downloaded | Indicates scripts have been successfully downloaded from S3 | 
| [SageMaker] The lifecycle scripts succeeded | Indicates successful completion of all lifecycle scripts | 
| [SageMaker] The lifecycle scripts failed | Indicates failed execution of lifecycle scripts | 

Questi marcatori consentono di identificare rapidamente in quale fase del processo di esecuzione degli script del ciclo di vita si è verificato un problema. Durante la risoluzione dei problemi, esaminate le voci di registro per identificare dove il processo si è interrotto o non è riuscito.

**Messaggi di errore dello script del ciclo di vita**

Se lo script del ciclo di vita esiste ma fallisce durante l'esecuzione, riceverai un messaggio di errore che include il nome del gruppo di log e il nome del flusso di CloudWatch log. Nel caso in cui si verifichino errori dello script del ciclo di vita su più istanze, il messaggio di errore indicherà solo un'istanza fallita, ma il gruppo di log deve contenere flussi per tutte le istanze.

È possibile visualizzare il messaggio di errore eseguendo l'[DescribeCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html)API o visualizzando la pagina dei dettagli del cluster nella console. SageMaker Nella console, è disponibile il pulsante **Visualizza i registri degli script del ciclo** di vita che accede direttamente al flusso di log. CloudWatch Il messaggio di errore ha il seguente formato:

```
Instance [instance-id] failed to provision with the following error: "Lifecycle scripts did not run successfully. To view lifecycle script logs,
visit log group ‘/aws/sagemaker/Clusters/[cluster-name]/[cluster-id]' and log stream ‘LifecycleConfig/[instance-group-name]/[instance-id]’.
If you cannot find corresponding lifecycle script logs in CloudWatch, please make sure you follow one of the options here:
https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-faq-slurm.html#hyperpod-faqs-q1.” Note that multiple instances may be impacted.
```

## Applicazione di tag alle risorse
<a name="sagemaker-hyperpod-cluster-management-slurm-tagging"></a>

AWS Il sistema di etichettatura aiuta a gestire, identificare, organizzare, cercare e filtrare le risorse. SageMaker HyperPod supporta l'etichettatura, in modo da poter gestire i cluster come risorsa. AWS Durante la creazione o la modifica di un cluster esistente, puoi aggiungere o modificare i tag per il cluster. Per ulteriori informazioni generali sul tagging, consulta [Tagging delle risorse AWS](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html).

### Utilizzo dell'interfaccia utente della console SageMaker HyperPod
<a name="sagemaker-hyperpod-cluster-management-slurm-tagging-in-console"></a>

Quando [crei un nuovo cluster](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-create-cluster) o [modifichi un cluster](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-edit-clusters), puoi aggiungere, modificare o rimuovere tag.

### Usando il SageMaker HyperPod APIs
<a name="sagemaker-hyperpod-cluster-management-slurm-tagging-in-api-request"></a>

Quando scrivi un file di richiesta [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)o [UpdateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)API in formato JSON, modifica la `Tags` sezione.

### Utilizzo dei comandi di AWS CLI tagging per l'IA SageMaker
<a name="sagemaker-hyperpod-cluster-management-slurm-tagging-using-cli"></a>

**Per taggare un cluster**

Utilizza [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/add-tags.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/add-tags.html) come segue.

```
aws sagemaker add-tags --resource-arn cluster_ARN --tags Key=string,Value=string
```

**Per rimuovere un tag da un cluster**

Utilizza [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/delete-tags.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/delete-tags.html) come segue.

```
aws sagemaker delete-tags --resource-arn cluster_ARN --tag-keys "tag_key"
```

**Per elencare i tag per una risorsa**

Utilizza [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-tags.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-tags.html) come segue.

```
aws sagemaker list-tags --resource-arn cluster_ARN
```

# SageMaker HyperPod FAQs
<a name="sagemaker-hyperpod-faq-slurm"></a>

Utilizza le seguenti domande frequenti per risolvere i problemi relativi all'utilizzo. SageMaker HyperPod

**Topics**
+ [Perché non riesco a trovare i gruppi di log del mio SageMaker HyperPod cluster in Amazon CloudWatch?](#hyperpod-faqs-q1)
+ [Quali configurazioni particolari HyperPod gestisce nei file di configurazione di Slurm come e? `slurm.conf` `gres.conf`](#hyperpod-faqs-q2)
+ [Come posso eseguire Docker sui nodi Slurm? HyperPod](#hyperpod-faqs-q3)
+ [Perché il mio lavoro di training parallelo fallisce quando utilizzo NVIDIA Collective Communications Library (NCCL) con Slurm on platform? SageMaker HyperPod](#hyperpod-faqs-q4)
+ [Come posso utilizzare l' NVMe archivio locale di istanze P per avviare contenitori Docker o Enroot con Slurm?](#hyperpod-faqs-q5)
+ [Come si configurano i gruppi di sicurezza EFA?](#hyperpod-faqs-q6)
+ [Come posso monitorare i nodi del mio cluster? HyperPod Sono state esportate CloudWatch delle metriche da? HyperPod](#hyperpod-faqs-q7)
+ [Posso aggiungere uno storage aggiuntivo ai HyperPod nodi del cluster? Le istanze del cluster hanno un archivio dell’istanza locale limitato.](#hyperpod-faqs-q8)
+ [Perché i miei nodi di calcolo mostrano lo stato “DOWN” o “DRAINED” dopo un riavvio?](#hyperpod-faqs-q9)
+ [Perché i miei nodi vengono continuamente svuotati a causa di problemi di memoria insufficiente (OOM)?](#hyperpod-faqs-q10)
+ [Come posso avere la certezza che le risorse siano pulite correttamente dopo il completamento dei processi?](#hyperpod-faqs-q11)

## Perché non riesco a trovare i gruppi di log del mio SageMaker HyperPod cluster in Amazon CloudWatch?
<a name="hyperpod-faqs-q1"></a>

Per impostazione predefinita, i log degli agenti e i registri di avvio delle istanze vengono inviati all'account della HyperPod piattaforma. CloudWatch Nel caso degli script del ciclo di vita degli utenti, i log di configurazione del ciclo di vita vengono inviati all'account dell'utente. CloudWatch

Se utilizzi gli [script del ciclo di vita di esempio](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md) forniti dal team di HyperPod assistenza, puoi aspettarti di trovare i log di configurazione del ciclo di vita scritti su e non incontrerai questo problema. `/var/log/provision/provisioning.log`

Tuttavia, se utilizzi percorsi personalizzati per raccogliere i log dal provisioning del ciclo di vita e non riesci a trovare i gruppi di log che appaiono nel tuo account CloudWatch, ciò potrebbe essere dovuto a una mancata corrispondenza tra i percorsi dei file di registro specificati negli script del ciclo di vita e ciò che cerca l' CloudWatch agente in esecuzione sulle istanze del HyperPod cluster. In questo caso, significa che è necessario configurare correttamente gli script del ciclo di vita per inviare i log all' CloudWatch agente e configurare di conseguenza la configurazione dell' CloudWatch agente. Per risolvere il problema, scegli una delle seguenti opzioni.
+ **Opzione 1:** aggiorna gli script del ciclo di vita per scrivere i log su `/var/log/provision/provisioning.log`.
+ **Opzione 2:** aggiorna l' CloudWatch agente per cercare percorsi personalizzati per la registrazione del provisioning del ciclo di vita.

  1. Ogni istanza HyperPod del cluster contiene un file di configurazione CloudWatch dell'agente in formato JSON all'indirizzo. `/opt/aws/amazon-cloudwatch-agent/sagemaker_cwagent_config.json` Nel file di configurazione, trova il nome del campo `logs.logs_collected.files.collect_list.file_path`. Con l'impostazione predefinita di HyperPod, la coppia chiave-valore dovrebbe essere `"file_path": "/var/log/provision/provisioning.log"` quella documentata in. [Registrazione a SageMaker HyperPod livello di istanza](sagemaker-hyperpod-cluster-management-slurm.md#sagemaker-hyperpod-cluster-management-slurm-logging-at-instance-level) Il seguente frammento di codice mostra l'aspetto del file JSON con la configurazione predefinita. HyperPod 

     ```
     "logs": {
         "logs_collected": {
             "files": {
                 "collect_list": [
                     {
                         "file_path": "/var/log/provision/provisioning.log",
                         "log_group_name": "/aws/sagemaker/Clusters/[ClusterName]/[ClusterID]",
                         "log_stream_name": "LifecycleConfig/[InstanceGroupName]/{instance_id}",
                         "retention_in_days": -1
                     }
                 ]
             }
         },
         "force_flush_interval": 3
     }
     ```

  1. Sostituisci il valore del nome del campo `"file_path"` con il percorso personalizzato che utilizzi negli script del ciclo di vita. Ad esempio, se hai configurato gli script del ciclo di vita per la scrittura su `/var/log/custom-provision/custom-provisioning.log`, aggiorna il valore in modo che abbia la seguente corrispondenza.

     ```
     "file_path": "/var/log/custom-provision/custom-provisioning.log"
     ```

  1. Riavviare l' CloudWatch agente con il file di configurazione per completare l'applicazione del percorso personalizzato. Ad esempio, il CloudWatch comando seguente mostra come riavviare l' CloudWatch agente con il file di configurazione dell' CloudWatch agente del passaggio 1. Per ulteriori informazioni, vedere anche [Risoluzione dei problemi dell' CloudWatch agente](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/troubleshooting-CloudWatch-Agent.html).

     ```
     sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl \
         -a fetch-config -m ec2 -s -c \
         file:/opt/aws/amazon-cloudwatch-agent/sagemaker_cwagent_config.json
     ```

## Quali configurazioni particolari HyperPod gestisce nei file di configurazione di Slurm come e? `slurm.conf` `gres.conf`
<a name="hyperpod-faqs-q2"></a>

Quando si crea un cluster Slurm su HyperPod, l' HyperPod agente configura [https://slurm.schedmd.com/gres.conf.html](https://slurm.schedmd.com/gres.conf.html)i file [https://slurm.schedmd.com/slurm.conf.html](https://slurm.schedmd.com/slurm.conf.html)and `/opt/slurm/etc/` per gestire il cluster Slurm in base alla richiesta di creazione del cluster e agli script del ciclo di vita HyperPod . L'elenco seguente mostra quali parametri specifici l'agente gestisce e sovrascrive. HyperPod 

**Importante**  
Ti consigliamo vivamente di NON modificare questi parametri gestiti da HyperPod.
+ In [https://slurm.schedmd.com/slurm.conf.html](https://slurm.schedmd.com/slurm.conf.html), HyperPod imposta i seguenti parametri di base: `ClusterName``SlurmctldHost`,`PartitionName`, e`NodeName`.

  Inoltre, per abilitare la [Ripristino automatico dei nodi e ripristino automatico](sagemaker-hyperpod-resiliency-slurm-auto-resume.md) funzionalità, HyperPod richiede i `SchedulerParameters` parametri `TaskPlugin` e impostati come segue. Per impostazione predefinita, l' HyperPod agente imposta questi due parametri con i valori richiesti.

  ```
  TaskPlugin=task/none
  SchedulerParameters=permit_job_expansion
  ```
+ In [https://slurm.schedmd.com/gres.conf.html](https://slurm.schedmd.com/gres.conf.html), HyperPod gestisce `NodeName` i nodi GPU.

## Come posso eseguire Docker sui nodi Slurm? HyperPod
<a name="hyperpod-faqs-q3"></a>

Per aiutarti a eseguire Docker sui nodi Slurm in esecuzione HyperPod, il team di HyperPod assistenza fornisce script di configurazione che puoi includere come parte della configurazione del ciclo di vita per la creazione di cluster. Per ulteriori informazioni, consultare [Script del ciclo di vita di base forniti da HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md) e [Esecuzione di contenitori Docker su un nodo di calcolo Slurm su HyperPod](sagemaker-hyperpod-run-jobs-slurm-docker.md).

## Perché il mio lavoro di training parallelo fallisce quando utilizzo NVIDIA Collective Communications Library (NCCL) con Slurm on platform? SageMaker HyperPod
<a name="hyperpod-faqs-q4"></a>

Per impostazione predefinita, il sistema operativo Linux imposta il flag `#RemoveIPC=yes`. I processi Slurm e mpirun che utilizzano NCCL generano risorse di comunicazione tra processi (IPC) nelle sessioni utente non root. Queste sessioni utente potrebbero disconnettersi durante il processo.

 Quando esegui processi con Slurm o mpirun, se `systemd` rileva che l’utente non è connesso, pulisce le risorse IPC. I processi Slurm e mpirun possono essere eseguiti senza che l’utente sia connesso, ma è necessario disabilitare la pulizia a livello di systemd e riconfigurarla a livello Slurm. Per ulteriori informazioni, consulta [Systemd nella documentazione NCCL](https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/troubleshooting.html#systemd). 

Completa la procedura seguente per disabilitare la pulizia a livello di systemd.

1. Imposta il flag `#RemoveIPC=no` nel file `/etc/systemd/logind.conf` se stai eseguendo job di addestramento che utilizzano Slurm e NCCL.

1.  Per impostazione predefinita, Slurm non pulisce le risorse condivise. Consigliamo di configurare uno script Epilog di Slurm per pulire le risorse condivise. Questa pulizia è utile se hai molte risorse condivise che vuoi eliminare dopo i job di addestramento. Di seguito è riportato un esempio di script.

   ```
   #!/bin/bash
   : <<'SUMMARY'
   Script: epilog.sh
   
   Use this script with caution, as it can potentially delete unnecessary resources and cause issues if you don't use it correctly.
   
   Note: You must save this script in a shared in a shared location that is accessible to all nodes in the cluster, such as /fsx volume.
   Workers must be able to access the script to run the script after jobs.
   
   SUMMARY
   
   # Define the log directory and create it if it doesn't exist
   LOG_DIR="/<PLACEHOLDER>/epilogue" #NOTE: Update PLACEHOLDER to be a shared value path, such as /fsx/epilogue.
   mkdir -p "$LOG_DIR"
   
   # Name the log file using the Slurm job name and job ID
   log_file="$LOG_DIR/epilogue-${SLURM_JOB_NAME}_${SLURM_JOB_ID}.log"
   
   logging() {
       echo "[$(date)] $1" | tee -a "$log_file"
   }
   
   # Slurm epilogue script to clean up IPC resources
   logging "Starting IPC cleanup for Job $SLURM_JOB_ID"
   
   # Clean up shared memory segments by username
   for seg in $(ipcs -m | awk -v owner="$SLURM_JOB_USER" '$3 == owner {print $2}'); do
       if ipcrm -m "$seg"; then
           logging "Removed shared memory segment $seg"
       else
           logging "Failed to remove shared memory segment $seg"
       fi
   done
   
   # Clean up semaphores by username
   for sem in $(ipcs -s | awk -v user="$SLURM_JOB_USER" '$3 == user {print $2}'); do
       if ipcrm -s "$sem"; then
           logging "Removed semaphore $sem"
       else
           logging "Failed to remove semaphore $sem"
       fi
   done
   
   # Clean up NCCL IPC
   NCCL_IPC_PATH="/dev/shm/nccl-*"
   for file in $NCCL_IPC_PATH; do
       if [ -e "$file" ]; then
           if rm "$file"; then
               logging "Removed NCCL IPC file $file"
           else
               logging "Failed to remove NCCL IPC file $file"
           fi
       fi
   done
   logging "IPC cleanup completed for Job $SLURM_JOB_ID"
   exit 0
   ```

   Per ulteriori informazioni sul parametro Epilog, consulta la [documentazione di Slurm](https://slurm.schedmd.com/slurm.conf.html#OPT_Epilog).

1. Nel file `slurm.conf` del nodo controller, aggiungi una riga che punti allo script Epilog che hai creato.

   ```
   Epilog="/path/to/epilog.sh"  #For example: /fsx/epilogue/epilog.sh
   ```

1. Utilizza i comandi seguenti per modificare le autorizzazioni dello script e renderlo eseguibile.

   ```
   chown slurm:slurm /path/to/epilog.sh
   chmod +x  /path/to/epilog.sh
   ```

1. Per applicare tutte le modifiche, esegui `scontrol reconfigure`.

## Come posso utilizzare l' NVMe archivio locale di istanze P per avviare contenitori Docker o Enroot con Slurm?
<a name="hyperpod-faqs-q5"></a>

Poiché il volume root predefinito del nodo principale di solito è limitato a un volume EBS da 100 GB, è necessario configurare Docker ed Enroot per utilizzare l'instance store locale. NVMe Per informazioni su come configurare NVMe store e utilizzarlo per l'avvio di contenitori Docker, consulta. [Esecuzione di contenitori Docker su un nodo di calcolo Slurm su HyperPod](sagemaker-hyperpod-run-jobs-slurm-docker.md)

## Come si configurano i gruppi di sicurezza EFA?
<a name="hyperpod-faqs-q6"></a>

Se desideri creare un HyperPod cluster con istanze abilitate per EFA, assicurati di configurare un gruppo di sicurezza per consentire tutto il traffico in entrata e in uscita da e verso il gruppo di sicurezza stesso. Per ulteriori informazioni, consulta [Step 1: Prepare an EFA-enabled security group](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa-start.html#efa-start-security) in *Amazon EC2 User Guide*.

## Come posso monitorare i nodi del mio cluster? HyperPod Sono state esportate CloudWatch delle metriche da? HyperPod
<a name="hyperpod-faqs-q7"></a>

Per ottenere una maggiore visibilità sull'utilizzo delle risorse del HyperPod cluster, consigliamo di integrare il HyperPod cluster con Amazon Managed Grafana e Amazon Managed Service for Prometheus. Con varie dashboard Grafana open source e pacchetti di esportazione, puoi esportare e visualizzare le metriche relative alle risorse del cluster. HyperPod Per ulteriori informazioni sulla configurazione SageMaker HyperPod con Amazon Managed Grafana e Amazon Managed Service for Prometheus, consulta. [SageMaker HyperPod monitoraggio delle risorse del cluster](sagemaker-hyperpod-cluster-observability-slurm.md) Tieni presente che SageMaker HyperPod attualmente non supporta l'esportazione di metriche di sistema su Amazon. CloudWatch

## Posso aggiungere uno storage aggiuntivo ai HyperPod nodi del cluster? Le istanze del cluster hanno un archivio dell’istanza locale limitato.
<a name="hyperpod-faqs-q8"></a>

Se l’archiviazione delle istanze predefinita è insufficiente per il tuo carico di lavoro, puoi configurare spazio aggiuntivo per ogni istanza. A partire dal [rilascio del 20 giugno 2024,](sagemaker-hyperpod-release-notes.md#sagemaker-hyperpod-release-notes-20240620) puoi aggiungere un volume Amazon Elastic Block Store (EBS) aggiuntivo a ciascuna istanza del cluster. SageMaker HyperPod Tieni presente che questa funzionalità non può essere applicata a gruppi di istanze di SageMaker HyperPod cluster esistenti creati prima del 20 giugno 2024. Puoi utilizzare questa funzionalità applicando patch SageMaker HyperPod ai cluster esistenti creati prima del 20 giugno 2024 e aggiungendovi nuovi gruppi di istanze. Questa funzionalità è pienamente efficace per tutti i SageMaker HyperPod cluster creati dopo il 20 giugno 2024.

## Perché i miei nodi di calcolo mostrano lo stato “DOWN” o “DRAINED” dopo un riavvio?
<a name="hyperpod-faqs-q9"></a>

Questo caso si verifica in genere quando i nodi vengono riavviati con `sudo reboot` invece che con l’interfaccia di controllo di Slurm. Per riavviare correttamente i nodi, utilizza il comando Slurm `scontrol reboot nextstate=resume <list_of_nodes>`. Questo garantisce che Slurm mantenga un controllo adeguato sullo stato del nodo e riprenda il normale funzionamento dopo il riavvio.

Per le istanze GPU (come NVIDIA P5), questo può accadere anche se il nodo non riesce a completare il processo di avvio entro il limite di tempo predefinito di Slurm (60 secondi). Per risolvere questo problema, aumenta il parametro `TimeToResume` in `slurm.conf` fino a 300 secondi. In questo modo, le istanze GPU hanno abbastanza tempo per avviare e inizializzare i driver.

## Perché i miei nodi vengono continuamente svuotati a causa di problemi di memoria insufficiente (OOM)?
<a name="hyperpod-faqs-q10"></a>

I problemi di OOM si verificano quando i processi superano la capacità di memoria del nodo. Per evitare il problema, implementa `cgroups` per imporre limiti di memoria per ogni processo. Così facendo, eviti che un singolo processo influisca sull’intero nodo e migliori l’isolamento e la stabilità.

Configurazione di esempio in `slurm.conf`: 

```
TaskPlugin=task/cgroup
```

Configurazione di esempio in `cgroup.conf`:

```
CgroupAutomount=yes
ConstrainCores=yes
CgroupPlugin=autodetect
ConstrainDevices=yes
ConstrainRAMSpace=yes
ConstrainSwapSpace=yes
SignalChildrenProcesses=yes
MaxRAMPercent=99
MaxSwapPercent=80
MinRAMSpace=100
```

Per ulteriori informazioni, consulta [Control Group in Slurm](https://slurm.schedmd.com/cgroups.html), [Cgroup and PAM-based login control for Slurm compute nodes](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/utils/pam_adopt_cgroup_wheel.sh#L197) e [Configure Cgroups for Slurm](https://catalog.workshops.aws/sagemaker-hyperpod/en-US/07-tips-and-tricks/16-enable-cgroups).

## Come posso avere la certezza che le risorse siano pulite correttamente dopo il completamento dei processi?
<a name="hyperpod-faqs-q11"></a>

Implementa script Epilog per pulire automaticamente le risorse al completamento dei processi. Le risorse potrebbero non essere cancellate correttamente quando i processi si bloccano inaspettatamente, quando contengono bug che impediscono la normale pulizia o quando i buffer di memoria condivisa (inclusi quelli condivisi tra processi e driver GPU) rimangono allocati.

Gli script Epilog possono eseguire attività, ad esempio la cancellazione della memoria della GPU, la rimozione dei file temporanei e lo smontaggio dei file system. Questi script presentano delle limitazioni quando le risorse non sono allocate esclusivamente a un singolo processo. Per istruzioni dettagliate e script di esempio, consulta il secondo punto della domanda [Perché il mio lavoro di training parallelo fallisce quando utilizzo NVIDIA Collective Communications Library (NCCL) con Slurm on platform? SageMaker HyperPod](#hyperpod-faqs-q4). Per ulteriori informazioni, consulta [Enable Slurm epilog script](https://catalog.workshops.aws/sagemaker-hyperpod/en-US/07-tips-and-tricks/18-slurm-epilogue).

# Orchestrazione di SageMaker HyperPod cluster con Amazon EKS
<a name="sagemaker-hyperpod-eks"></a>

SageMaker HyperPod è un servizio SageMaker gestito dall'intelligenza artificiale che consente l'addestramento su larga scala di modelli di base su cluster di elaborazione resilienti e di lunga durata, che si integra con Amazon EKS per orchestrare le risorse di calcolo. HyperPod Puoi eseguire lavori di formazione ininterrotti per settimane o mesi su larga scala utilizzando i cluster Amazon EKS con funzionalità di HyperPod resilienza che verificano la presenza di vari guasti hardware e ripristinano automaticamente i nodi difettosi. 

Le funzionalità principali per gli utenti amministratori del cluster includono quanto segue.
+ Fornire cluster resilienti e collegarli a un piano di controllo HyperPod EKS
+ Abilitazione della gestione dinamica della capacità, come l’aggiunta di altri nodi, l’aggiornamento del software e l’eliminazione dei cluster
+ Abilitazione dell’accesso alle istanze del cluster direttamente tramite `kubectl` o SSM/SSH
+ Offre [funzionalità di resilienza](sagemaker-hyperpod-eks-resiliency.md), tra cui controlli sanitari di base, controlli sanitari approfonditi, un agente di monitoraggio dello stato di salute e supporto per la ripresa automatica del lavoro PyTorch 
+ [Integrazione con strumenti di osservabilità come Amazon [ CloudWatchContainer Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html), [Amazon Managed Service for Prometheus e Amazon Managed Grafana](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html)](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html)

Per gli utenti di data scientist, il supporto EKS abilita quanto segue. HyperPod 
+ Esecuzione di carichi di lavoro containerizzati per la formazione dei modelli di base sul cluster HyperPod 
+ Esecuzione dell'inferenza sul cluster EKS, sfruttando l'integrazione tra ed EKS HyperPod 
+ Sfruttamento della funzionalità di ripresa automatica del lavoro per la formazione [ PyTorch Kubeflow](https://www.kubeflow.org/docs/components/training/user-guides/pytorch/) () PyTorchJob

**Nota**  
Amazon EKS consente l'orchestrazione gestita dall'utente di attività e infrastrutture tramite Amazon EKS SageMaker HyperPod Control Plane. Assicurati che l'accesso degli utenti al cluster tramite l'endpoint Kubernetes API Server segua il principio del privilegio minimo e che l'uscita di rete dal cluster sia protetta. HyperPod   
Per ulteriori informazioni sulla protezione dell’accesso al server API Amazon EKS, consulta [Control network access to cluster API server endpoint](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html).  
Per ulteriori informazioni sulla protezione dell'accesso alla rete su, consulta. HyperPod [Configurazione SageMaker HyperPod con un Amazon VPC personalizzato](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-optional-vpc)

L'architettura di alto livello del supporto di Amazon EKS HyperPod prevede una mappatura 1 a 1 tra un cluster EKS (piano di controllo) e un HyperPod cluster (nodi di lavoro) all'interno di un VPC, come mostrato nel diagramma seguente.

![\[EKS and HyperPod VPC architecture with control plane, cluster nodes, and Servizi AWS.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod-eks-diagram.png)


# Gestione dei SageMaker HyperPod cluster orchestrati da Amazon EKS
<a name="sagemaker-hyperpod-eks-operate"></a>

Questa sezione fornisce indicazioni sulla gestione SageMaker HyperPod tramite l'interfaccia utente della console SageMaker AI o AWS Command Line Interface (CLI). Spiega come eseguire varie attività correlate a SageMaker HyperPod, sia che preferiate un'interfaccia visiva o l'utilizzo dei comandi.

**Topics**
+ [Inizia a usare il supporto di Amazon EKS in SageMaker HyperPod](sagemaker-hyperpod-eks-prerequisites.md)
+ [Installazione di pacchetti sul cluster Amazon EKS con Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md)
+ [Configurazione del controllo degli accessi basato su ruoli Kubernetes](sagemaker-hyperpod-eks-setup-rbac.md)
+ [Amazon Machine Images personalizzate (AMIs) per SageMaker HyperPod cluster](hyperpod-custom-ami-support.md)
+ [Gestione dei cluster SageMaker HyperPod EKS tramite la console SageMaker](sagemaker-hyperpod-eks-operate-console-ui.md)
+ [Creazione di SageMaker HyperPod cluster utilizzando modelli CloudFormation](smcluster-getting-started-eks-console-create-cluster-cfn.md)
+ [Gestione dei cluster SageMaker HyperPod EKS utilizzando il AWS CLI](sagemaker-hyperpod-eks-operate-cli-command.md)
+ [HyperPod checkpoint gestito a più livelli](managed-tier-checkpointing.md)
+ [SageMaker HyperPod governance delle attività](sagemaker-hyperpod-eks-operate-console-ui-governance.md)
+ [Report sull'utilizzo per l'attribuzione dei costi in SageMaker HyperPod](sagemaker-hyperpod-usage-reporting.md)
+ [Configurazione dello storage per i SageMaker HyperPod cluster orchestrati da Amazon EKS](sagemaker-hyperpod-eks-setup-storage.md)
+ [Utilizzo del driver CSI Amazon EBS su SageMaker HyperPod cluster EKS](sagemaker-hyperpod-eks-ebs.md)
+ [Configurazione di etichette e colori Kubernetes personalizzati in Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-custom-labels-and-taints.md)

# Inizia a usare il supporto di Amazon EKS in SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-prerequisites"></a>

Oltre al modulo generale [Prerequisiti per l'utilizzo SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md) SageMaker HyperPod, consulta i seguenti requisiti e considerazioni per l'orchestrazione SageMaker HyperPod dei cluster con Amazon EKS.

**Importante**  
Puoi configurare la configurazione delle risorse per la creazione di SageMaker HyperPod cluster utilizzando and. Console di gestione AWS CloudFormation Per ulteriori informazioni, consultare [Creazione di un SageMaker HyperPod cluster con l'orchestrazione di Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md) e [Creazione di SageMaker HyperPod cluster utilizzando modelli CloudFormation](smcluster-getting-started-eks-console-create-cluster-cfn.md).

**Requisiti**

**Nota**  
Prima di creare un HyperPod cluster, è necessario un cluster Amazon EKS in esecuzione configurato con VPC e installato tramite Helm.
+ Se utilizzi la console SageMaker AI, puoi creare un cluster Amazon EKS all'interno della pagina della console del HyperPod cluster. Per ulteriori informazioni, consulta [Creazione di un SageMaker HyperPod cluster con l'orchestrazione di Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md).
+ Se si utilizza la AWS CLI, è necessario creare un cluster Amazon EKS prima di creare un HyperPod cluster a cui associarsi. Per ulteriori informazioni, consulta [Create an Amazon EKS cluster](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html) in Amazon EKS User Guide.

Durante il provisioning del cluster Amazon EKS, considera quanto segue:

1. **Versioni di Kubernetes supportate**
   + SageMaker HyperPod supporta le versioni 1.28, 1.29, 1.30, 1.31, 1.32, 1.33 e 1.34 di Kubernetes.

1. **Modalità di autenticazione del cluster Amazon EKS**
   + La modalità di autenticazione di un cluster Amazon EKS supportata da SageMaker HyperPod sono `API` e`API_AND_CONFIG_MAP`.

1. **Reti**
   + SageMaker HyperPod richiede il plug-in Amazon VPC Container Network Interface (CNI) versione 1.18.3 o successiva.
**Nota**  
AWS Il [plug-in VPC CNI per Kubernetes](https://github.com/aws/amazon-vpc-cni-k8s) è l'unico CNI supportato da. SageMaker HyperPod
   + Il [tipo di sottorete](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html#subnet-types) nel VPC deve essere privato HyperPod per i cluster.

1. **Ruoli IAM**
   + Assicurati che i ruoli IAM necessari per HyperPod siano configurati come indicato nella sezione. [AWS Identity and Access Management per SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md)

1. **Componenti aggiuntivi del cluster Amazon EKS**
   + Puoi continuare a utilizzare i vari componenti aggiuntivi forniti da Amazon EKS come [Kube-proxy](https://docs.aws.amazon.com/eks/latest/userguide/add-ons-kube-proxy.html), [CoredNS](https://docs.aws.amazon.com/eks/latest/userguide/add-ons-coredns.html), il plug-in [Amazon VPC Container Network Interface (CNI), l'identità GuardDuty del pod Amazon](https://docs.aws.amazon.com/eks/latest/userguide/add-ons-vpc-cni.html) EKS, l'agente, il driver Amazon Container Storage Interface (CSI), FSx il driver CSI Mountpoint per Amazon S3, l'agente Distro for e l'agente Observability. AWS OpenTelemetry CloudWatch

**Considerazioni sulla configurazione dei SageMaker HyperPod cluster con Amazon EKS**
+ Devi utilizzare ruoli IAM distinti a seconda del tipo di nodi. Per HyperPod i nodi, usa un ruolo basato su. [Ruolo IAM per SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod) Per i nodi Amazon EKS, consulta il [ruolo IAM del nodo Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html).
+ Puoi effettuare il provisioning e montare volumi Amazon EBS aggiuntivi sui SageMaker HyperPod nodi utilizzando due approcci: utilizzare [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html#sagemaker-Type-ClusterInstanceGroupSpecification-InstanceStorageConfigs](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html#sagemaker-Type-ClusterInstanceGroupSpecification-InstanceStorageConfigs)per il provisioning di volumi a livello di cluster (disponibile durante la creazione o l'aggiornamento di gruppi di istanze) o utilizzare il driver Amazon Elastic Block Store (Amazon EBS) Container Storage Interface (CSI) per la gestione dinamica dei volumi a livello di pod. Con [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html#sagemaker-Type-ClusterInstanceGroupSpecification-InstanceStorageConfigs](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html#sagemaker-Type-ClusterInstanceGroupSpecification-InstanceStorageConfigs), imposta il [percorso locale](https://kubernetes.io/docs/concepts/storage/volumes/#local) `/opt/sagemaker` per montare correttamente i volumi sui tuoi pod Amazon EKS. Per informazioni su come distribuire il controller [Amazon EBS CSI](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html) sui HyperPod nodi, consulta. [Utilizzo del driver CSI Amazon EBS su SageMaker HyperPod cluster EKS](sagemaker-hyperpod-eks-ebs.md)
+ Se utilizzi etichette di tipo di istanza per definire i vincoli di pianificazione, assicurati di utilizzare i tipi di istanza AI ML con il prefisso. SageMaker `ml.` Ad esempio, per le istanze P5, utilizza `ml.p5.48xlarge` invece di `p5.48xlarge`.

**Considerazioni sulla configurazione della rete per i SageMaker HyperPod cluster con Amazon EKS**
+ Ogni istanza HyperPod del cluster supporta un'interfaccia di rete elastica (ENI). Per il numero massimo di pod per tipo di istanza, consulta la tabella seguente.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ Per impostazione predefinita, solo i pod con `hostNetwork = true` hanno accesso al servizio di metadati di istanza (IMDS) di Amazon EC2. Utilizza l'identità Amazon EKS Pod o i [ruoli IAM per gli account di servizio (IRSA)](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) per gestire l'accesso alle AWS credenziali per i pod.
+  HyperPod I cluster orchestrati da EKS supportano due modalità di indirizzamento IP, che consentono la configurazione con o IPv4 per i cluster IPv6 IPv6 Amazon EKS in ambienti VPC e sottorete IPv6 abilitati. Per ulteriori informazioni, consulta [Configurazione SageMaker HyperPod con un Amazon VPC personalizzato](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-optional-vpc).

**Considerazioni sull' HyperPod utilizzo delle funzionalità di resilienza del cluster**
+ La sostituzione automatica dei nodi non è supportata per le istanze CPU.
+ L'agente di HyperPod monitoraggio dello stato deve essere installato affinché il ripristino automatico del nodo funzioni. L’agente può essere installato con Helm. Per ulteriori informazioni, consulta [Installazione di pacchetti sul cluster Amazon EKS con Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md).
+ L'agente di controllo HyperPod approfondito e monitoraggio dello stato supporta istanze GPU e Trn.
+ SageMaker L'intelligenza artificiale applica la seguente macchia ai nodi quando sono sottoposti a controlli di integrità approfonditi:

  ```
  effect: NoSchedule
  key: sagemaker.amazonaws.com/node-health-status
  value: Unschedulable
  ```
**Nota**  
Non puoi aggiungere taint personalizzati ai nodi nei gruppi di istanze con `DeepHealthChecks` attivato.

 Una volta che il cluster Amazon EKS è in esecuzione, configura il cluster utilizzando il gestore di pacchetti Helm come indicato [Installazione di pacchetti sul cluster Amazon EKS con Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md) prima di creare il HyperPod cluster.

# Installazione di pacchetti sul cluster Amazon EKS con Helm
<a name="sagemaker-hyperpod-eks-install-packages-using-helm-chart"></a>

Prima di creare un SageMaker HyperPod cluster e collegarlo a un cluster Amazon EKS, è necessario installare i pacchetti utilizzando [Helm](https://helm.sh/), un gestore di pacchetti per Kubernetes. Helm è uno strumento open source che consente di configurare un processo di installazione per i cluster Kubernetes. Consente l'automazione e la semplificazione delle installazioni delle dipendenze e semplifica varie configurazioni necessarie per preparare il cluster Amazon EKS come orchestratore (piano di controllo) per un cluster. SageMaker HyperPod 

[Il team SageMaker HyperPod di assistenza fornisce un pacchetto Helm chart, che raggruppa dipendenze chiave come device/EFA plug-in, plug-in, Kubeflow Training Operator e configurazioni di autorizzazione associate.](https://www.kubeflow.org/docs/components/training/)

**Importante**  
Questa fase di installazione di Helm è obbligatoria. Se configuri il cluster Amazon EKS utilizzando [Console di gestione AWS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md) o [CloudFormation](smcluster-getting-started-eks-console-create-cluster-cfn.md), puoi saltare questa fase perché l’installazione viene gestita automaticamente durante il processo di configurazione. Se configuri il cluster direttamente utilizzando APIs, utilizza il grafico Helm fornito per configurare il cluster Amazon EKS. La mancata configurazione del cluster Amazon EKS utilizzando il grafico Helm fornito potrebbe comportare il malfunzionamento del SageMaker HyperPod cluster o il completo fallimento del processo di creazione. Il nome del namespace `aws-hyperpod` non può essere modificato.

1. [Installa Helm](https://helm.sh/docs/intro/install/) sul computer locale.

1. Scarica i grafici Helm forniti da che SageMaker HyperPod si trovano `helm_chart/HyperPodHelmChart` nel repository [SageMaker HyperPod CLI](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart).

   ```
   git clone https://github.com/aws/sagemaker-hyperpod-cli.git
   cd sagemaker-hyperpod-cli/helm_chart
   ```

1. Aggiorna le dipendenze del grafico Helm, visualizza in anteprima le modifiche che verranno apportate al cluster Kubernetes e installa il grafico Helm.

   ```
   helm dependencies update HyperPodHelmChart
   ```

   ```
   helm install hyperpod-dependencies HyperPodHelmChart --namespace kube-system --dry-run
   ```

   ```
   helm install hyperpod-dependencies HyperPodHelmChart --namespace kube-system
   ```

In sintesi, l'installazione Helm configura vari componenti per il cluster Amazon EKS, tra cui la pianificazione e la coda dei processi (Kueue), la gestione dello storage, l'integrazione e Kubeflow. MLflow Inoltre, i grafici installano i seguenti componenti per l'integrazione con le funzionalità di resilienza del cluster, che sono componenti obbligatori. SageMaker HyperPod 
+ **Health monitoring agent**: installa l'agente di monitoraggio dello stato di salute fornito da. SageMaker HyperPod Questo è necessario se si desidera monitorare il HyperPod cluster. Gli agenti di monitoraggio dell’integrità sono forniti come immagini Docker secondo quanto descritto di seguito. Nei grafici Helm, l’immagine è preimpostata nel file `values.yaml` fornito. L'agente supporta istanze e Trainium-accelerator-based istanze basate su GPU (`trn1`,,). `trn1n` `inf2` Viene installato nel namespace `aws-hyperpod`. Per trovare l'URI supportato, consulta la sezione [Regioni supportate e il relativo ECR URIs ](https://github.com/aws/sagemaker-hyperpod-cli/blob/main/helm_chart/readme.md#6-notes) nell'archivio su. sagemaker-hyperpod-cli GitHub
+ **Controllo approfondito** dello stato: imposta a`ClusterRole`, a ServiceAccount (`deep-health-check-service-account`) nel `aws-hyperpod` namespace e `ClusterRoleBinding` a per abilitare la funzionalità di controllo SageMaker HyperPod approfondito dello stato. Per ulteriori informazioni sul file RBAC di Kubernetes per il controllo approfondito dello stato, consulta il file di configurazione nell'[https://github.com/aws/sagemaker-hyperpod-cli/blob/main/helm_chart/HyperPodHelmChart/charts/deep-health-check/templates/deep-health-check-rbac.yaml](https://github.com/aws/sagemaker-hyperpod-cli/blob/main/helm_chart/HyperPodHelmChart/charts/deep-health-check/templates/deep-health-check-rbac.yaml)archivio CLI. SageMaker HyperPod GitHub 
+ **`job-auto-restart`**- Questo imposta a`ClusterRole`, a ServiceAccount (`job-auto-restart`) nel `aws-hyperpod` namespace e a`ClusterRoleBinding`, per abilitare la funzionalità di riavvio automatico per i lavori di PyTorch formazione in. SageMaker HyperPod Per ulteriori informazioni sul file RBAC di Kubernetes`job-auto-restart`, consulta il file di configurazione nell'[https://github.com/aws/sagemaker-hyperpod-cli/blob/main/helm_chart/HyperPodHelmChart/charts/job-auto-restart/templates/job-auto-restart-rbac.yaml](https://github.com/aws/sagemaker-hyperpod-cli/blob/main/helm_chart/HyperPodHelmChart/charts/job-auto-restart/templates/job-auto-restart-rbac.yaml)archivio CLI. SageMaker HyperPod GitHub 
+ **Operatore MPI Kubeflow**: l’[operatore MPI](https://github.com/kubeflow/mpi-operator) è un operatore Kubernetes che utilizza l’interfaccia per il passaggio dei messaggi (MPI) sui cluster Kubernetes per semplificare l’esecuzione di carichi di lavoro distribuiti di machine learning (ML) e di calcolo ad alte prestazioni (HPC). Installa l’operatore MPI v0.5. Viene installato nel namespace `mpi-operator`.
+ **`nvidia-device-plugin`**— Si tratta di un plug-in per dispositivi Kubernetes che consente di esporre automaticamente NVIDIA GPUs per l'utilizzo da parte dei container del cluster Amazon EKS. Consente a Kubernetes di allocare e fornire l'accesso a quanto richiesto per quel contenitore. GPUs Richiesto quando si utilizza un tipo di istanza con GPU.
+ **`neuron-device-plugin`**: plugin per dispositivi Kubernetes che consente di esporre automaticamente i chip AWS Inferentia da utilizzare con i container del cluster Amazon EKS. Consente a Kubernetes di accedere e utilizzare i chip Inferentia sui nodi del cluster. AWS Richiesto quando si utilizza un tipo di istanza Neuron.
+ **`aws-efa-k8s-device-plugin`**— Si tratta di un plug-in per dispositivi Kubernetes che consente l'uso di AWS Elastic Fabric Adapter (EFA) sui cluster Amazon EKS. EFA è un dispositivo di rete che fornisce comunicazioni a bassa latenza e ad alto throughput tra le istanze di un cluster. Richiesto quando si utilizza un tipo di istanza supportato da EFA.

Per ulteriori informazioni sulla procedura di installazione utilizzando i grafici Helm forniti, consultate il [file README nell'archivio CLI SageMaker HyperPod ](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart).

# Configurazione del controllo degli accessi basato su ruoli Kubernetes
<a name="sagemaker-hyperpod-eks-setup-rbac"></a>

Gli utenti amministratori del cluster devono inoltre configurare il [controllo degli accessi basato sul ruolo (RBAC) di Kubernetes](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) per consentire agli utenti di data scientist di utilizzare la [SageMaker HyperPod CLI per eseguire carichi di lavoro su cluster orchestrati con Amazon EKS](https://github.com/aws/sagemaker-hyperpod-cli). HyperPod 

## Opzione 1: configurazione di RBAC con un grafico Helm
<a name="sagemaker-hyperpod-eks-setup-rbac-helm"></a>

Il team di assistenza fornisce una sottocartella Helm per la configurazione di RBAC. SageMaker HyperPod Per ulteriori informazioni, consulta [Installazione di pacchetti sul cluster Amazon EKS con Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md).

## Opzione 2: configurazione manuale di RBAC
<a name="sagemaker-hyperpod-eks-setup-rbac-manual"></a>

Crea `ClusterRole` e `ClusterRoleBinding` con privilegi minimi e `Role` e `RoleBinding` con autorizzazioni di mutazione.

**Per creare `ClusterRole` e `ClusterRoleBinding` per il ruolo IAM di Data Scientist**

Crea un file di configurazione a livello di cluster `cluster_level_config.yaml` come segue.

```
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: hyperpod-scientist-user-cluster-role
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["list"]
- apiGroups: [""]
  resources: ["nodes"]
  verbs: ["list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: hyperpod-scientist-user-cluster-role-binding
subjects:
- kind: Group
  name: hyperpod-scientist-user-cluster-level
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: hyperpod-scientist-user-cluster-role # this must match the name of the Role or ClusterRole you wish to bind to
  apiGroup: rbac.authorization.k8s.io
```

Applica la configurazione al cluster EKS.

```
kubectl apply -f cluster_level_config.yaml
```

**Per creare un ruolo e nello spazio dei nomi RoleBinding **

Questo è l’operatore di addestramento del namespace monitorato per impostazione predefinita dai job di addestramento eseguiti e da Resiliency. La funzionalità di ripresa automatica del processo è supportata solo nel namespace `kubeflow` o nel namespace con prefisso `aws-hyperpod`. 

Crea un file di configurazione del ruolo `namespace_level_role.yaml` come segue. Questo esempio crea un ruolo nel namespace `kubeflow`.

```
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: kubeflow
  name: hyperpod-scientist-user-namespace-level-role
###
#  1) add/list/describe/delete pods
#  2) get/list/watch/create/patch/update/delete/describe kubeflow pytroch job
#  3) get pod log
###
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["create", "get"]
- apiGroups: [""]
  resources: ["nodes"]
  verbs: ["get", "list"]
- apiGroups: [""]
  resources: ["pods/log"]
  verbs: ["get", "list"]
- apiGroups: [""]
  resources: ["pods/exec"]
  verbs: ["get", "create"]
- apiGroups: ["kubeflow.org"]
  resources: ["pytorchjobs", "pytorchjobs/status"]
  verbs: ["get", "list", "create", "delete", "update", "describe"]
- apiGroups: [""]
  resources: ["configmaps"]
  verbs: ["create", "update", "get", "list", "delete"]
- apiGroups: [""]
  resources: ["secrets"]
  verbs: ["create", "get", "list", "delete"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  namespace: kubeflow
  name: hyperpod-scientist-user-namespace-level-role-binding
subjects:
- kind: Group
  name: hyperpod-scientist-user-namespace-level
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: hyperpod-scientist-user-namespace-level-role # this must match the name of the Role or ClusterRole you wish to bind to
  apiGroup: rbac.authorization.k8s.io
```

Applica la configurazione al cluster EKS.

```
kubectl apply -f namespace_level_role.yaml
```

## Creazione di una voce di accesso per i gruppi Kubernetes
<a name="sagemaker-hyperpod-eks-setup-rbac-access-entry"></a>

Dopo aver configurato RBAC con una delle due opzioni precedenti, utilizza il comando di esempio seguente sostituendo le informazioni necessarie.

```
aws eks create-access-entry \
    --cluster-name <eks-cluster-name> \
    --principal-arn arn:aws:iam::<AWS_ACCOUNT_ID_SCIENTIST_USER>:role/ScientistUserRole \
    --kubernetes-groups '["hyperpod-scientist-user-namespace-level","hyperpod-scientist-user-cluster-level"]'
```

Per il parametro `principal-arn` è necessario utilizzare [Utenti IAM per Data Scientist](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-user).

# Amazon Machine Images personalizzate (AMIs) per SageMaker HyperPod cluster
<a name="hyperpod-custom-ami-support"></a>

Utilizzando Amazon Machine Images (AMIs) di base fornite e rese pubbliche da Amazon SageMaker HyperPod, puoi creare progetti personalizzati AMIs. Con un’AMI personalizzata, puoi creare ambienti specializzati per carichi di lavoro IA con stack software preconfigurati, personalizzazioni dei driver, dipendenze proprietarie e agenti di sicurezza. Questa funzionalità elimina la necessità di un complesso bootstrap post-avvio con script di configurazione del ciclo di vita.

Con custom AMIs, puoi standardizzare gli ambienti in diverse fasi, accelerare i tempi di avvio e avere il pieno controllo del tuo ambiente di runtime, sfruttando al contempo le funzionalità SageMaker HyperPod dell'infrastruttura e i vantaggi di scalabilità. Questo ti aiuta a mantenere il controllo sulla tua infrastruttura di intelligenza artificiale, pur continuando a beneficiare SageMaker HyperPod del runtime di base ottimizzato.

Puoi sfruttare le immagini di base SageMaker HyperPod ottimizzate per le prestazioni aggiungendo agenti di sicurezza, strumenti di conformità e librerie specializzate, preservando al contempo tutti i vantaggi della formazione distribuita. Grazie a questa funzionalità, non devi più scegliere come in passato tra l’ottimizzazione dell’infrastruttura e le policy di sicurezza organizzative.

L’esperienza AMI personalizzata si integra perfettamente con i flussi di lavoro di sicurezza aziendali consolidati. I team di sicurezza creano immagini rinforzate utilizzando le immagini pubbliche AMIs come base e i team SageMaker HyperPod della piattaforma di intelligenza artificiale possono specificarle personalizzate AMIs durante la creazione o l'aggiornamento dei cluster tramite. SageMaker HyperPod APIs APIs Convalidano la compatibilità delle immagini, gestiscono le autorizzazioni necessarie e mantengono la compatibilità con le versioni precedenti in modo che i flussi di lavoro esistenti continuino a funzionare. Le organizzazioni con protocolli di sicurezza rigorosi non devono più ricorrere all’alternativa più soggetta a errori che prevede l’installazione di agenti di sicurezza al runtime tramite script del ciclo di vita. Allineandosi alle pratiche di sicurezza aziendali anziché costringere le organizzazioni ad adattare i propri protocolli alle limitazioni, la soluzione personalizzata AMIs rimuove una barriera comune all' SageMaker HyperPodadozione per le organizzazioni attente alla sicurezza che eseguono carichi di lavoro di intelligenza artificiale critici.

Per le note di rilascio sugli aggiornamenti pubblici, vedere. AMIs [Rilasci di AMI pubbliche](sagemaker-hyperpod-release-public-ami.md) Per informazioni su come iniziare a creare un'AMI personalizzata e a utilizzarla nei HyperPod cluster, consulta i seguenti argomenti.

**Topics**
+ [Creazione di un’AMI personalizzata](hyperpod-custom-ami-how-to.md)
+ [Gestione dei cluster con funzionalità personalizzate AMIs](hyperpod-custom-ami-cluster-management.md)

# Creazione di un’AMI personalizzata
<a name="hyperpod-custom-ami-how-to"></a>

La pagina seguente spiega come creare un'Amazon Machine Image (AMI) personalizzata utilizzando Amazon SageMaker HyperPod base AMIs. Inizia selezionando un’AMI di base, quindi crea un’AMI personalizzata utilizzando uno dei diversi metodi disponibili per la creazione di nuove immagini, ad esempio la AWS CLI.

## Seleziona un AMI SageMaker HyperPod di base
<a name="hyperpod-custom-ami-select-base"></a>

È possibile selezionare un'AMI di SageMaker HyperPod base tramite uno dei seguenti metodi.

### AWS selezione della console
<a name="hyperpod-custom-ami-console-selection"></a>

È possibile selezionare public SageMaker HyperPod AMIs tramite la AWS console o utilizzando la chiamata `DescribeImages` API. SageMaker HyperPod AMIs sono pubblici e visibili in ogni Account AWS. Puoi trovarli nel catalogo AMI Amazon EC2 applicando un filtro per cercare quelli di AMIs proprietà pubblica di Amazon.

Per trovarli SageMaker HyperPod AMIs nella console:

1. Accedi alla console Amazon EC2.

1. Nel riquadro di navigazione a sinistra, scegliere **AMIs**.

1. Nell’elenco a discesa **Tipo di immagine**, seleziona **Immagini pubbliche**.

1. Nei filtri della barra di ricerca, imposta il filtro **Alias proprietario** su **amazon**.

1. Cerca il AMIs prefisso **HyperPodEKS** e seleziona l'AMI (preferibilmente più recente) adatto al tuo caso d'uso. Ad esempio, puoi scegliere un’AMI Kubernetes 1.31 o Kubernetes 1.30.

### Recupera l'ultimo ID AMI pubblico tramite il AWS CLI
<a name="hyperpod-custom-ami-cli-fetch"></a>

Se desideri utilizzare sempre l'AMI pubblica dell'ultima versione, è più efficiente utilizzare il parametro SageMaker HyperPod SSM pubblico che contiene il valore dell'ID AMI più recente rilasciato da SageMaker HyperPod.

L’esempio seguente spiega come recuperare l’ID dell’AMI più recente con la AWS CLI:

```
aws ssm get-parameter \
  --name "/aws/service/sagemaker-hyperpod/ami/x86_64/eks-1.31-amazon-linux-2/latest/ami-id" \
  --region us-east-1 \
  --query "Parameter.Value" \
  --output text
```

**Nota**  
Sostituisci il nome del parametro con la versione di Kubernetes desiderata. Ad esempio, per utilizzare Kubernetes 1.30, utilizza il parametro seguente: `/aws/service/hyperpod/ami/x86_64/eks-1.30-amazon-linux-2/latest/ami-id`.

## Creazione di un’AMI personalizzata
<a name="hyperpod-custom-ami-build"></a>

Dopo aver selezionato un'AMI SageMaker HyperPod pubblica, usala come AMI di base per creare la tua AMI personalizzata con uno dei seguenti metodi. Nota che questo non è un elenco esaustivo per la creazione AMIs. Puoi usare qualsiasi metodo di tua scelta per costruire AMIs. SageMaker HyperPod non ha alcuna raccomandazione specifica.
+ **AWS Console di gestione**: puoi avviare un'istanza Amazon EC2 utilizzando l' SageMaker HyperPod AMI, effettuare le personalizzazioni desiderate e quindi creare un'AMI da quell'istanza.
+ **AWS CLI**: puoi anche utilizzare il comando `aws ec2 create-image` per creare un’AMI da un’istanza Amazon EC2 esistente dopo aver eseguito la personalizzazione.
+ **HashiCorp Packer**: Packer è uno strumento open source HashiCorp che consente di creare immagini di macchine identiche per più piattaforme da un'unica configurazione di origine. Supporta AMIs la creazione e l' AWS elaborazione di immagini per altri provider di cloud e piattaforme di virtualizzazione.
+ **Image Builder**: EC2 Image Builder è un servizio AWS completamente gestito che semplifica l’automazione delle operazioni di creazione, manutenzione, convalida, condivisione e implementazione di immagini Linux o Windows Server. Per ulteriori informazioni, consulta la [Guida per l'utente di EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html).

### Crea un'AMI personalizzata con AWS KMS crittografia gestita dal cliente
<a name="hyperpod-custom-ami-build-kms"></a>

Le sezioni seguenti descrivono come creare un'AMI personalizzata con una AWS KMS chiave gestita dal cliente per crittografare i volumi HyperPod del cluster. Per ulteriori informazioni sulle chiavi gestite dai clienti HyperPod e sulla concessione delle autorizzazioni necessarie per le policy relative alle chiavi IAM e KMS, consulta. [AWS KMS key Crittografia gestita dal cliente per SageMaker HyperPod](smcluster-cmk.md) Se prevedi di utilizzare un'AMI personalizzata crittografata con una chiave gestita dal cliente, assicurati di crittografare anche il volume root Amazon EBS del HyperPod cluster con la stessa chiave.

#### AWS CLI esempio: creare una nuova AMI utilizzando EC2 Image Builder HyperPod e un'immagine di base
<a name="hyperpod-custom-ami-cli-example"></a>

L’esempio seguente illustra come creare un’AMI utilizzando Image Builder con crittografia AWS KMS :

```
aws imagebuilder create-image-recipe \
    name "hyperpod-custom-recipe" \
    version "1.0.0" \
    parent-image "<hyperpod-base-image-id>" \
    block-device-mappings DeviceName="/dev/xvda",Ebs={VolumeSize=100,VolumeType=gp3,Encrypted=true,KmsKeyId=arn:aws:kms:us-east-1:111122223333:key/key-id,DeleteOnTermination=true}
```

#### Console Amazon EC2: creazione di una nuova AMI da Amazon EC2
<a name="hyperpod-custom-ami-console-example"></a>

Per creare un’AMI da un’istanza Amazon EC2 con la console di Amazon EC2:

1. Fai clic con il pulsante destro del mouse sull’istanza Amazon EC2 personalizzata e scegli **Crea immagine**.

1. Nella sezione **Crittografia**, seleziona **Crittografa snapshot**.

1. Seleziona la chiave KMS dall’elenco a discesa. Ad esempio: `arn:aws:kms:us-east-2:111122223333:key/<your-kms-key-id>` oppure utilizza l’alias della chiave: `alias/<your-hyperpod-key>`.

#### AWS CLI esempio: creare una nuova AMI da un'istanza Amazon EC2
<a name="hyperpod-custom-ami-cli-create-image"></a>

Utilizza il comando `aws ec2 create-image` con la crittografia AWS KMS :

```
aws ec2 create-image \
    instance-id "<instance-id>" \
    name "MyCustomHyperPodAMI" \
    description "Custom HyperPod AMI" \
    block-device-mappings '[
        {
            "DeviceName": "/dev/xvda",
            "Ebs": {
                "Encrypted": true,
                "KmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/key-id",
                "VolumeType": "gp2" 
            }
        }
    ]'
```

# Gestione dei cluster con funzionalità personalizzate AMIs
<a name="hyperpod-custom-ami-cluster-management"></a>

Dopo aver creato l'AMI personalizzata, puoi utilizzarla per creare o aggiornare un SageMaker HyperPod cluster Amazon. Puoi anche aumentare verticalmente o aggiungere gruppi di istanze che utilizzano la nuova AMI.

## Autorizzazioni necessarie per le operazioni del cluster
<a name="hyperpod-custom-ami-permissions"></a>

Aggiungi le seguenti autorizzazioni all'utente amministratore del cluster che gestisce e configura i SageMaker HyperPod cluster. Il seguente esempio di policy include il set minimo di autorizzazioni per gli amministratori dei cluster per eseguire il SageMaker HyperPod core APIs e gestire SageMaker HyperPod i cluster con AMI personalizzate.

Tieni presente che le autorizzazioni di condivisione degli snapshot con AMI e AMI EBS sono incluse tramite le autorizzazioni API `ModifyImageAttribute` e `ModifySnapshotAttribute` nell’ambito della policy seguente. Per definire l’ambito delle autorizzazioni di condivisione, procedi nel seguente modo:
+ Aggiungi tag per controllare le autorizzazioni di condivisione delle AMI nelle AMI e negli snapshot AMI. Ad esempio, puoi taggare l’AMI impostando `AllowSharing` come `true`.
+ Aggiungi la chiave di contesto nella policy per consentire la condivisione AMI solo per i AMIs tag con determinati tag.

La seguente politica è una politica ristretta per garantire che `true` siano consentiti solo i AMIs tag con `AllowSharing` as.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/your-execution-role-name"
        },
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:CreateCluster",
                "sagemaker:DeleteCluster",
                "sagemaker:DescribeCluster",
                "sagemaker:DescribeClusterNode",
                "sagemaker:ListClusterNodes",
                "sagemaker:ListClusters",
                "sagemaker:UpdateCluster",
                "sagemaker:UpdateClusterSoftware",
                "sagemaker:BatchDeleteClusterNodes",
                "eks:DescribeCluster",
                "eks:CreateAccessEntry",
                "eks:DescribeAccessEntry",
                "eks:DeleteAccessEntry",
                "eks:AssociateAccessPolicy",
                "iam:CreateServiceLinkedRole",
                "ec2:DescribeImages",
                "ec2:DescribeSnapshots"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:ModifyImageAttribute",
                "ec2:ModifySnapshotAttribute"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/AllowSharing": "true"
                }
            }
        }
    ]
}
```

------

**Importante**  
Se prevedi di utilizzare un’AMI personalizzata crittografata, assicurati che la tua chiave KMS soddisfi le autorizzazioni descritte in [AWS KMS key Crittografia gestita dal cliente per SageMaker HyperPod](smcluster-cmk.md). Inoltre, assicurati che la chiave KMS dell’AMI personalizzata venga utilizzata anche per crittografare il volume root Amazon EBS del cluster.

## Creazione di un cluster
<a name="hyperpod-custom-ami-api-create"></a>

Puoi specificare l’AMI personalizzata nel campo `ImageId` relativo all’operazione `CreateCluster`.

Gli esempi seguenti mostrano come creare un cluster con un'AMI personalizzata, con e senza una chiave gestita AWS KMS dal cliente per la crittografia dei volumi del cluster.

------
#### [ Standard example ]

L’esempio seguente mostra come creare un cluster con un’AMI personalizzata.

```
aws sagemaker create-cluster \
   --cluster-name <exampleClusterName> \
   --orchestrator 'Eks={ClusterArn='<eks_cluster_arn>'}' \
   --node-provisioning-mode Continuous \
   --instance-groups '{
   "InstanceGroupName": "<exampleGroupName>",
   "InstanceType": "ml.c5.2xlarge",
   "InstanceCount": 2,
   "LifeCycleConfig": {
      "SourceS3Uri": "<s3://amzn-s3-demo-bucket>",
      "OnCreate": "on_create_noop.sh"
   },
   "ImageId": "<your_custom_ami>",
   "ExecutionRole": "<arn:aws:iam::444455556666:role/Admin>",
   "ThreadsPerCore": 1,
   "InstanceStorageConfigs": [
   
        {
            "EbsVolumeConfig": {
                "VolumeSizeInGB": 200
            }
        }
   ]
}' --vpc-config '{
   "SecurityGroupIds": ["<security_group>"],
   "Subnets": ["<subnet>"]
}'
```

------
#### [ Customer managed key example ]

L'esempio seguente mostra come creare un cluster con un'AMI personalizzata specificando la propria chiave gestita AWS KMS dal cliente per crittografare i volumi Amazon EBS del cluster. È possibile specificare diverse chiavi gestite dal cliente per il volume root e il volume di archiviazione dell'istanza. Se non si utilizzano chiavi gestite dal cliente sul `InstanceStorageConfigs` campo, viene utilizzata una chiave KMS di AWS proprietà per crittografare i volumi. Se utilizzi chiavi diverse per il volume principale e per i volumi di storage delle istanze secondarie, imposta le policy delle chiavi KMS richieste su entrambe le chiavi.

```
aws sagemaker create-cluster \
   --cluster-name <exampleClusterName> \
   --orchestrator 'Eks={ClusterArn='<eks_cluster_arn>'}' \
   --node-provisioning-mode Continuous \
   --instance-groups '{
   "InstanceGroupName": "<exampleGroupName>",
   "InstanceType": "ml.c5.2xlarge",
   "InstanceCount": 2,
   "LifeCycleConfig": {
      "SourceS3Uri": "<s3://amzn-s3-demo-bucket>",
      "OnCreate": "on_create_noop.sh"
   },
   "ImageId": "<your_custom_ami>",
   "ExecutionRole": "<arn:aws:iam:us-east-1:444455556666:role/Admin>",
   "ThreadsPerCore": 1,
   "InstanceStorageConfigs": [
             # Root volume configuration
            {
                "EbsVolumeConfig": {
                    "RootVolume": True,
                    "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/key-id"
                }
            },
            # Instance storage volume configuration
            {
                "EbsVolumeConfig": {
                    "VolumeSizeInGB": 100,
                    "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/key-id"
                }
            }
   ]
}' --vpc-config '{
   "SecurityGroupIds": ["<security_group>"],
   "Subnets": ["<subnet>"]
}'
```

------

## Aggiornamento del software del cluster
<a name="hyperpod-custom-ami-api-update"></a>

Per aggiornare un gruppo di istanze esistente sul cluster con la tua AMI personalizzata, puoi utilizzare l’operazione `UpdateClusterSoftware` e specificare l’AMI personalizzata nel campo `ImageId`. Tieni presente che, a meno che non indichi il nome di un gruppo di istanze specifico nella richiesta, la nuova immagine viene applicata a tutti i gruppi di istanze del cluster.

L’esempio seguente mostra come aggiornare il software della piattaforma di un cluster con un’AMI personalizzata:

```
aws sagemaker update-cluster-software \
   --cluster-name <exampleClusterName> \
   --instance-groups <instanceGroupToUpdate> \
   --image-id <customAmiId>
```

## Aumento verticale di un gruppo di istanze
<a name="hyperpod-custom-ami-scale-up"></a>

Gli esempi seguenti mostrano come scalare un gruppo di istanze per un cluster utilizzando un'AMI personalizzata, con e senza l'utilizzo di una chiave gestita AWS KMS dal cliente per la crittografia.

------
#### [ Standard example ]

L’esempio seguente spiega come aumentare verticalmente un gruppo di istanze con un’AMI personalizzata.

```
aws sagemaker update-cluster \
    --cluster-name <exampleClusterName> --instance-groups '[{                  
    "InstanceGroupName": "<exampleGroupName>",
   "InstanceType": "ml.c5.2xlarge",
   "InstanceCount": 2,
   "LifeCycleConfig": {
      "SourceS3Uri": "<s3://amzn-s3-demo-bucket>",
      "OnCreate": "on_create_noop.sh"
   },
   "ExecutionRole": "<arn:aws:iam::444455556666:role/Admin>",
   "ThreadsPerCore": 1,
   "ImageId": "<your_custom_ami>"
}]'
```

------
#### [ Customer managed key example ]

L'esempio seguente mostra come aggiornare e scalare il cluster con un'AMI personalizzata specificando al contempo la propria chiave gestita AWS KMS dal cliente per crittografare i volumi Amazon EBS del cluster. È possibile specificare diverse chiavi gestite dal cliente per il volume root e il volume di storage dell'istanza. Se non si utilizzano chiavi gestite dal cliente sul `InstanceStorageConfigs` campo, viene utilizzata una chiave KMS di AWS proprietà per crittografare i volumi. Se utilizzi chiavi diverse per il volume principale e per i volumi di storage delle istanze secondarie, imposta le policy delle chiavi KMS richieste su entrambe le chiavi.

```
aws sagemaker update-cluster \
    --cluster-name <exampleClusterName> --instance-groups '[{                  
    "InstanceGroupName": "<exampleGroupName>",
   "InstanceType": "ml.c5.2xlarge",
   "InstanceCount": 2,
   "LifeCycleConfig": {
      "SourceS3Uri": "<s3://amzn-s3-demo-bucket>",
      "OnCreate": "on_create_noop.sh"
   },
   "ExecutionRole": "<arn:aws:iam::444455556666:role/Admin>",
   "ThreadsPerCore": 1,
   "ImageId": "<your_custom_ami>",
   "InstanceStorageConfigs": [
             # Root volume configuration
            {
                "EbsVolumeConfig": {
                    "RootVolume": True,
                    "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/key-id"
                }
            },
            # Instance storage volume configuration
            {
                "EbsVolumeConfig": {
                    "VolumeSizeInGB": 100,
                    "VolumeKmsKeyId": "arn:aws:kms:us-east-1:111122223333:key/key-id"
                }
            }
   ]
}]'
```

------

## Aggiunta di un gruppo di istanze
<a name="hyperpod-custom-ami-add-instance-group"></a>

L’esempio seguente mostra come aggiungere un gruppo di istanze a un cluster utilizzando un’AMI personalizzata:

```
aws sagemaker update-cluster \
   --cluster-name "<exampleClusterName>" \
   --instance-groups '{
   "InstanceGroupName": "<exampleGroupName>",
   "InstanceType": "ml.c5.2xlarge",
   "InstanceCount": 2,
   "LifeCycleConfig": {
      "SourceS3Uri": "<s3://amzn-s3-demo-bucket>",
      "OnCreate": "on_create_noop.sh"
   },
   "ExecutionRole": "<arn:aws:iam::444455556666:role/Admin>",
   "ThreadsPerCore": 1,
   "ImageId": "<your_custom_ami>"
}' '{
   "InstanceGroupName": "<exampleGroupName2>",
   "InstanceType": "ml.c5.2xlarge",
   "InstanceCount": 1,
   "LifeCycleConfig": {
      "SourceS3Uri": "<s3://amzn-s3-demo-bucket>",
      "OnCreate": "on_create_noop.sh"
   },
   "ExecutionRole": "<arn:aws:iam::444455556666:role/Admin>",
   "ThreadsPerCore": 1,
   "ImageId": "<your_custom_ami>"
}'
```

# Gestione dei cluster SageMaker HyperPod EKS tramite la console SageMaker
<a name="sagemaker-hyperpod-eks-operate-console-ui"></a>

I seguenti argomenti forniscono indicazioni su come gestire SageMaker HyperPod nella console AI. SageMaker 

**Topics**
+ [Creazione di un SageMaker HyperPod cluster con l'orchestrazione di Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md)
+ [Navigazione, visualizzazione e modifica dei cluster SageMaker HyperPod](sagemaker-hyperpod-eks-operate-console-ui-browse-view-edit.md)
+ [Eliminazione di un cluster SageMaker HyperPod](sagemaker-hyperpod-eks-operate-console-ui-delete-cluster.md)

# Creazione di un SageMaker HyperPod cluster con l'orchestrazione di Amazon EKS
<a name="sagemaker-hyperpod-eks-operate-console-ui-create-cluster"></a>

Il seguente tutorial dimostra come creare un nuovo SageMaker HyperPod cluster e configurarlo con l'orchestrazione di Amazon EKS tramite l'interfaccia utente della console SageMaker AI.

**Topics**
+ [Crea un cluster](#smcluster-getting-started-eks-console-create-cluster-page)
+ [Distribuire le risorse](#smcluster-getting-started-eks-console-create-cluster-deploy)

## Crea un cluster
<a name="smcluster-getting-started-eks-console-create-cluster-page"></a>

Per accedere alla pagina **SageMaker HyperPod Clusters** e scegliere l'orchestrazione di Amazon EKS, segui questi passaggi.

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Scegli **HyperPod Clusters** nel riquadro di navigazione a sinistra, quindi **Cluster Management**.

1. Nella pagina **SageMaker HyperPod Cluster, scegli **Crea HyperPod ** cluster**. 

1. Nel menu a discesa **Crea HyperPod cluster**, scegli **Orchestrated by** Amazon EKS.

1. Nella pagina di creazione del cluster EKS, scegli l’opzione più adatta alle tue esigenze scegliendo tra le due disponibili.

   1. **Configurazione rapida**: per iniziare subito con le impostazioni predefinite, scegli **Configurazione rapida**. Con questa opzione, l' SageMaker intelligenza artificiale creerà nuove risorse come VPC, sottoreti, gruppi di sicurezza, bucket Amazon S3, ruolo IAM e FSx for Lustre nel processo di creazione del cluster.

   1. **Configurazione personalizzata**: per l’integrazione con le risorse AWS esistenti o per soddisfare requisiti di rete, sicurezza o archiviazione specifici, scegli **Configurazione personalizzata**. Con questa opzione, puoi scegliere di utilizzare le risorse esistenti o crearne di nuove e puoi personalizzare la configurazione in base alle tue esigenze.

## Configurazione rapida
<a name="smcluster-getting-started-eks-console-create-cluster-default"></a>

Nella sezione **Configurazione rapida**, segui questi passaggi per creare il tuo HyperPod cluster con l'orchestrazione di Amazon EKS.

### Impostazioni generali
<a name="smcluster-getting-started-eks-console-create-cluster-default-general"></a>

Specifica un nome per il nuovo cluster. Dopo la creazione del cluster, non è più possibile modificarne il nome.

### Gruppi di istanze
<a name="smcluster-getting-started-eks-console-create-cluster-default-instance-groups"></a>

Per aggiungere un gruppo di istanze, scegli **Aggiungi gruppo**. Ogni gruppo di istanze può essere configurato in modo diverso ed è possibile creare un cluster eterogeneo composto da più gruppi di istanze con vari tipi di istanze. Per implementare un cluster, devi aggiungere almeno un gruppo di istanze. Segui questa procedura per aggiungere un gruppo di istanze.

1. In **Tipo di gruppo di istanze**, scegli **Standard** o **Gruppo di istanze limitato (RIG)**. Di solito si sceglie **Standard** perché fornisce un ambiente di calcolo generico senza limitazioni di sicurezza aggiuntive. **Gruppo di istanze limitato (RIG)** è un ambiente specializzato per la personalizzazione di modelli di fondazione come Amazon Nova. Per ulteriori informazioni sulla configurazione di RIG per la personalizzazione del modello Amazon Nova, consulta la personalizzazione di Amazon Nova nella guida per SageMaker HyperPod l'utente di [Amazon Nova 1.0 o nella guida per l'utente](https://docs.aws.amazon.com//nova/latest/userguide/nova-hp.html) di [Amazon Nova 2.0](https://docs.aws.amazon.com//nova/latest/nova2-userguide/nova-hp.html).

1. In **Nome**, specifica un nome per il gruppo di istanze.

1.  In **Capacità dell’istanza**, scegli la capacità on demand o un piano di addestramento per riservare le tue risorse di calcolo.

1. Per **Tipo di istanza**, scegli l’istanza per il gruppo di istanze.
**Importante**  
Assicurati di selezionare un tipo di istanza con quote sufficienti e un numero adeguato di indirizzi IP non assegnati per il tuo account. Per visualizzare o richiedere quote aggiuntive, consulta [SageMaker HyperPod quote](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

1. In **Quantità istanze**. specifica un numero intero che non sia maggiore della quota dell’istanza per l’utilizzo del cluster. Per questo tutorial, inserisci **1** per tutti e tre i gruppi.

1. In **Zona di disponibilità di destinazione**, scegli la zona di disponibilità in cui allocare le istanze. La zona di disponibilità deve corrispondere alla posizione della capacità di calcolo accelerata.

1. Per **Volume di archiviazione aggiuntivo per istanza (GB) (facoltativo)**, specifica un numero intero compreso tra 1 e 16.384 per impostare la dimensione di un volume Elastic Block Store (EBS) aggiuntivo in gigabyte (GB). Il volume EBS è collegato a ciascuna istanza del gruppo di istanze. Il percorso di montaggio predefinito per il volume EBS aggiuntivo è `/opt/sagemaker`. Dopo aver creato correttamente il cluster, è possibile accedere tramite SSH alle istanze del cluster (nodi) e verificare che il volume EBS sia montato correttamente eseguendo il comando `df -h`. Il collegamento di un volume EBS aggiuntivo fornisce un’archiviazione stabile, fuori istanza e con persistenza indipendente, come descritto nella sezione [Amazon EBS volumes](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes.html) in *Amazon Elastic Block Store User Guide*.

1. Per **Controlli approfonditi dell’integrità delle istanze**, scegli un’opzione. I controlli dell’integrità approfonditi monitorano l’integrità dell’istanza durante la creazione e dopo gli aggiornamenti software, ripristinando automaticamente le istanze difettose con riavvii o sostituzioni, se abilitati.

1. Se il tuo tipo di istanza supporta il partizionamento GPU con Multi-Instance GPU (MIG), puoi abilitare la configurazione delle partizioni GPU per il gruppo di istanze. Il partizionamento GPU consente di suddividerlo in partizioni più piccole e isolate per un migliore utilizzo delle risorse. GPUs Per ulteriori informazioni, consulta [Utilizzo delle partizioni GPU in Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md).

   1. Attiva **Usa la partizione GPU per abilitare il partizionamento GPU** per questo gruppo di istanze.

   1. Seleziona un **profilo di partizione GPU** tra le opzioni disponibili per il tipo di istanza. Ogni profilo definisce la configurazione delle slice GPU e l'allocazione della memoria.

1. Scegli **Aggiungi gruppo di istanze**.

### Impostazioni predefinite della configurazione rapida
<a name="smcluster-getting-started-eks-console-create-cluster-default-settings"></a>

Questa sezione elenca tutte le impostazioni predefinite per la creazione del cluster, incluse tutte le nuove AWS risorse che verranno create durante il processo di creazione del cluster. Verificare le impostazioni predefinite.

## Configurazione personalizzata
<a name="smcluster-getting-started-eks-console-create-cluster-custom"></a>

Nella sezione **Configurazione personalizzata**, segui questi passaggi per creare il tuo primo HyperPod cluster con l'orchestrazione di Amazon EKS.

### Impostazioni generali
<a name="smcluster-getting-started-eks-console-create-cluster-custom-general"></a>

Specifica un nome per il nuovo cluster. Dopo la creazione del cluster, non è più possibile modificarne il nome.

In **Ripristino dell’istanza**, scegli **Automatico *(consigliato)*** o **Nessuno**. 

### Rete
<a name="smcluster-getting-started-eks-console-create-cluster-custom-network"></a>

Configura le impostazioni di rete all'interno del cluster e in-and-out del cluster. Per l'orchestrazione del SageMaker HyperPod cluster con Amazon EKS, il VPC viene impostato automaticamente su quello configurato con il cluster EKS selezionato.

1. Per quanto riguarda il **VPC**, scegli il tuo VPC se ne hai già uno che consente all' SageMaker IA di accedere al tuo VPC. Per creare un nuovo VPC, segui le istruzioni in [Create a VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) in *Amazon Virtual Private Cloud User Guide*. Puoi lasciarlo su **Nessuno** per utilizzare il VPC SageMaker AI predefinito.

1. Per il **blocco VPC IPv4 CIDR**, inserisci l'IP iniziale del tuo VPC.

1. Per le **zone di disponibilità**, scegli le zone di disponibilità (AZ) in cui HyperPod verranno create le sottoreti per il tuo cluster. Scegli AZs quella che corrisponde alla posizione della tua capacità di elaborazione accelerata.

1. In **Gruppi di sicurezza**, scegli gruppi di sicurezza collegati al cluster Amazon EKS o il cui traffico in entrata è consentito dal gruppo di sicurezza associato al cluster Amazon EKS. Per creare nuovi gruppi di sicurezza, vai alla console di Amazon VPC.

### Orchestrazione
<a name="smcluster-getting-started-eks-console-create-cluster-custom-orchestration"></a>

Segui questa procedura per creare o selezionare un cluster Amazon EKS da utilizzare come orchestratore. 

1. In **Cluster EKS**, scegli di creare un nuovo cluster Amazon EKS o di utilizzarne uno esistente. 

   Se devi creare un nuovo cluster EKS, puoi farlo dalla sezione del cluster EKS senza dover aprire la console di Amazon EKS.
**Nota**  
La sottorete VPC scelta HyperPod deve essere privata.   
Dopo aver inviato una nuova richiesta di creazione di un cluster EKS, attendi che il cluster EKS diventi `Active`.

1. In **Versione Kubernetes**, scegli una versione dal menu a discesa. Per ulteriori informazioni sulle versioni di Kubernetes, consulta [Understand the Kubernetes version lifecycle on EKS](https://docs.aws.amazon.com//eks/latest/userguide/kubernetes-versions.html) in *Amazon EKS User Guide*.

1. In **Operatori**, scegli **Usa grafici e componenti aggiuntivi Helm predefiniti** o **Non installare operatori**. L’opzione predefinita è **Usa grafici e componenti aggiuntivi Helm predefiniti**, che verrà utilizzata per installare gli operatori sul cluster EKS. Per ulteriori informazioni sui grafici e sui componenti aggiuntivi di Helm predefiniti, consulta [https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart/HyperPodHelmChart](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart/HyperPodHelmChart)dal repository. GitHub Per ulteriori informazioni, consulta [Installazione di pacchetti sul cluster Amazon EKS con Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md).

1. In **Operatori abilitati**, visualizza l’elenco degli operatori abilitati. Per modificare gli operatori, deseleziona la casella in alto e scegli gli operatori da abilitare per il cluster EKS. 
**Nota**  
Per utilizzarlo HyperPod con EKS, è necessario installare i grafici Helm e i componenti aggiuntivi che abilitano gli operatori sul cluster EKS. Questi componenti configurano EKS come piano di controllo HyperPod e forniscono la configurazione necessaria per la gestione e l'orchestrazione del carico di lavoro.

### Gruppi di istanze
<a name="smcluster-getting-started-eks-console-create-cluster-custom-instance-groups"></a>

Per aggiungere un gruppo di istanze, scegli **Aggiungi gruppo**. Ogni gruppo di istanze può essere configurato in modo diverso ed è possibile creare un cluster eterogeneo composto da più gruppi di istanze con vari tipi di istanze. Per implementare un cluster, devi aggiungere almeno un gruppo di istanze. Segui questa procedura per aggiungere un gruppo di istanze.

1. In **Tipo di gruppo di istanze**, scegli **Standard** o **Gruppo di istanze limitato (RIG)**. Di solito si sceglie **Standard** perché fornisce un ambiente di calcolo generico senza limitazioni di sicurezza aggiuntive. **Gruppo di istanze limitato (RIG)** è un ambiente specializzato per la personalizzazione di modelli di fondazione come Amazon Nova. Per ulteriori informazioni sulla configurazione di RIG per la personalizzazione del modello Amazon Nova, consulta la personalizzazione di Amazon Nova nella guida per SageMaker HyperPod l'utente di [Amazon Nova 1.0 o nella guida per l'utente](https://docs.aws.amazon.com//nova/latest/userguide/nova-hp.html) di [Amazon Nova 2.0](https://docs.aws.amazon.com//nova/latest/nova2-userguide/nova-hp.html).

1. In **Nome**, specifica un nome per il gruppo di istanze.

1.  In **Capacità dell’istanza**, scegli la capacità on demand o un piano di addestramento per riservare le tue risorse di calcolo.

1. Per **Tipo di istanza**, scegli l’istanza per il gruppo di istanze.
**Importante**  
Assicurati di selezionare un tipo di istanza con quote sufficienti e un numero adeguato di indirizzi IP non assegnati per il tuo account. Per visualizzare o richiedere quote aggiuntive, consulta [SageMaker HyperPod quote](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

1. In **Quantità istanze**. specifica un numero intero che non sia maggiore della quota dell’istanza per l’utilizzo del cluster. Per questo tutorial, inserisci **1** per tutti e tre i gruppi.

1. In **Zona di disponibilità di destinazione**, scegli la zona di disponibilità in cui allocare le istanze. La zona di disponibilità deve corrispondere alla posizione della capacità di calcolo accelerata.

1. Per **Volume di archiviazione aggiuntivo per istanza (GB) (facoltativo)**, specifica un numero intero compreso tra 1 e 16.384 per impostare la dimensione di un volume Elastic Block Store (EBS) aggiuntivo in gigabyte (GB). Il volume EBS è collegato a ciascuna istanza del gruppo di istanze. Il percorso di montaggio predefinito per il volume EBS aggiuntivo è `/opt/sagemaker`. Dopo aver creato correttamente il cluster, è possibile accedere tramite SSH alle istanze del cluster (nodi) e verificare che il volume EBS sia montato correttamente eseguendo il comando `df -h`. Il collegamento di un volume EBS aggiuntivo fornisce un’archiviazione stabile, fuori istanza e con persistenza indipendente, come descritto nella sezione [Amazon EBS volumes](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes.html) in *Amazon Elastic Block Store User Guide*.

1. Per **Controlli approfonditi dell’integrità delle istanze**, scegli un’opzione. I controlli dell’integrità approfonditi monitorano l’integrità dell’istanza durante la creazione e dopo gli aggiornamenti software, ripristinando automaticamente le istanze difettose con riavvii o sostituzioni, se abilitati. Per ulteriori informazioni, consulta [Controlli dell’integrità approfonditi](sagemaker-hyperpod-eks-resiliency-deep-health-checks.md)

1. Per **Usa la partizione GPU: facoltativo**, se il tipo di istanza supporta il partizionamento GPU con Multi-Instance GPU (MIG), puoi abilitare questa opzione per configurare il profilo di partizione GPU per il gruppo di istanze. Il partizionamento GPU consente di suddividerlo in partizioni più piccole e isolate per un migliore utilizzo delle risorse. GPUs Per ulteriori informazioni, consulta [Utilizzo delle partizioni GPU in Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md).

   1. Attiva **Usa la partizione GPU per abilitare il partizionamento GPU** per questo gruppo di istanze.

   1. Seleziona un **profilo di partizione GPU** tra le opzioni disponibili per il tipo di istanza. Ogni profilo definisce la configurazione delle slice GPU e l'allocazione della memoria.

1. Scegli **Aggiungi gruppo di istanze**.

### Script del ciclo di vita
<a name="smcluster-getting-started-eks-console-create-cluster-custom-lifecycle"></a>

Puoi scegliere di utilizzare gli script del ciclo di vita predefiniti o quelli personalizzati, che verranno archiviati nel tuo bucket Amazon S3. [Puoi visualizzare gli script del ciclo di vita predefiniti nell'archivio Awesome Distributed Training. GitHub ](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/7.sagemaker-hyperpod-eks/LifecycleScripts) Per ulteriori informazioni sugli script del ciclo di vita, consulta [Personalizzazione dei SageMaker HyperPod cluster utilizzando script del ciclo di vita](sagemaker-hyperpod-lifecycle-best-practices-slurm.md).

1. In **Script del ciclo di vita**, scegli tra script del ciclo di vita predefiniti o personalizzati.

1. In **Bucket S3 per gli script del ciclo di vita**, scegli se creare un nuovo bucket o utilizzare un bucket esistente per archiviare gli script del ciclo di vita.

### Permissions
<a name="smcluster-getting-started-eks-console-create-cluster-custom-permissions"></a>

Scegli o crea un ruolo IAM che HyperPod consenta di eseguire e accedere alle AWS risorse necessarie per tuo conto. Per ulteriori informazioni, consulta [Ruolo IAM per SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod).

### Archiviazione
<a name="smcluster-getting-started-eks-console-create-cluster-custom-storage"></a>

Configura il file system FSx for Lustre da fornire sul HyperPod cluster.

1. Per **File system**, scegliete un file system FSx for Lustre esistente, FSx per crearne uno nuovo, oppure non installatene uno FSx per Lustre.

1. In **Throughput per unità di archiviazione**, scegli il throughput che sarà disponibile per ogni TiB di archiviazione allocata.

1. In **Capacità di archiviazione**, inserisci un valore di capacità in TB.

1. Per **Tipo di compressione dei dati**, scegliete di **LZ4**abilitare la compressione dei dati.

1. In **Versione Lustre**, visualizza il valore consigliato per i nuovi file system.

### Tag (facoltativo)
<a name="smcluster-getting-started-eks-console-create-cluster-tags"></a>

Per i **tag: *facoltativo***, aggiungi coppie di chiavi e valori al nuovo cluster e gestisci il cluster come AWS risorsa. Per ulteriori informazioni, consulta [Tagging delle risorse AWS](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html).

## Distribuire le risorse
<a name="smcluster-getting-started-eks-console-create-cluster-deploy"></a>

Dopo aver completato le configurazioni del cluster utilizzando **Configurazione rapida** o **Configurazione personalizzata**, scegli l’opzione seguente per avviare il provisioning delle risorse e la creazione del cluster.
+  **Invia**: l' SageMaker IA inizierà a fornire le risorse di configurazione predefinite e a creare il cluster. 
+ **Scarica i parametri del CloudFormation modello**: scaricherai il file JSON dei parametri di configurazione ed eseguirai il AWS CLI comando per distribuire lo CloudFormation stack per fornire le risorse di configurazione e creare il cluster. Se necessario, puoi modificare il file JSON dei parametri scaricato. Se scegli questa opzione, consulta [Creazione di SageMaker HyperPod cluster utilizzando modelli CloudFormation](smcluster-getting-started-eks-console-create-cluster-cfn.md) per ulteriori informazioni.

# Navigazione, visualizzazione e modifica dei cluster SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-console-ui-browse-view-edit"></a>

Utilizza le seguenti istruzioni per sfogliare, visualizzare e modificare SageMaker HyperPod i cluster orchestrati da Amazon EKS nella SageMaker console AI.

**Topics**
+ [Per sfogliare i tuoi cluster SageMaker HyperPod](#sagemaker-hyperpod-eks-operate-console-ui-browse-clusters)
+ [Per visualizzare i dettagli di ogni cluster SageMaker HyperPod](#sagemaker-hyperpod-eks-operate-console-ui-view-details-of-clusters)
+ [Per modificare un cluster SageMaker HyperPod](#sagemaker-hyperpod-eks-operate-console-ui-edit-clusters)

## Per sfogliare i tuoi cluster SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-console-ui-browse-clusters"></a>

In **Cluster** nella SageMaker HyperPod pagina della console SageMaker AI, tutti i cluster creati devono essere elencati nella sezione **Cluster**, che fornisce una visualizzazione riepilogativa dei cluster, del loro ARNs stato e dell'ora di creazione.

## Per visualizzare i dettagli di ogni cluster SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-console-ui-view-details-of-clusters"></a>

In **Clusters** nella SageMaker HyperPod pagina della console SageMaker AI, i nomi dei cluster vengono attivati come collegamenti. Scegli il link del nome del cluster per visualizzare i dettagli di ogni cluster.

## Per modificare un cluster SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-console-ui-edit-clusters"></a>

1. In **Cluster** nel riquadro principale della SageMaker HyperPod console, scegli il cluster che desideri aggiornare.

1. Seleziona il cluster e scegli **Modifica**.

1. Nella pagina **Modifica <your-cluster>**, puoi modificare le configurazioni dei gruppi di istanze esistenti, aggiungere altri gruppi di istanze, eliminare i gruppi di istanze e modificare i tag per il cluster. Dopo aver apportato le modifiche, scegli **Invia**. 

   1. Nella sezione **Configura gruppi di istanze**, puoi aggiungere altri gruppi di istanze scegliendo **Crea gruppo di istanze**.

   1. Nella sezione **Configura gruppi di istanze**, puoi scegliere **Modifica** per modificarne la configurazione o **Elimina** per rimuovere definitivamente il gruppo di istanze.
**Importante**  
Durante l’eliminazione di un gruppo di istanze, considera i seguenti punti:  
Il SageMaker HyperPod cluster deve sempre mantenere almeno un gruppo di istanze.
Assicurati che venga eseguito il backup di tutti i dati critici prima della rimozione.
Il processo di rimozione non può essere annullato.
**Nota**  
L’eliminazione di un gruppo di istanze comporterà la terminazione di tutte le risorse di calcolo associate a quel gruppo.

   1. Nella sezione **Tag**, puoi aggiornare i tag per il cluster.

# Eliminazione di un cluster SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-console-ui-delete-cluster"></a>

Utilizza le seguenti istruzioni per eliminare SageMaker HyperPod i cluster orchestrati da Amazon EKS nella SageMaker console AI.

1. In **Clusters** nel riquadro principale della SageMaker HyperPod console, scegli il cluster che desideri eliminare.

1. Seleziona il cluster e scegli **Elimina**.

1. Nella finestra pop-up per l’eliminazione del cluster, esamina attentamente le informazioni sul cluster per verificare che il cluster sia quello desiderato.

1. Dopo aver esaminato le informazioni sul cluster, scegli **Sì, elimina il cluster**.

1. Digita **delete** nel campo di testo per confermare l’eliminazione.

1. Scegli **Elimina** nell’angolo in basso a destra della finestra pop-up per completare l’invio della richiesta di eliminazione del cluster.

**Nota**  
Se l'eliminazione del cluster fallisce a causa delle politiche di governance delle SageMaker HyperPod attività allegate, dovrai farlo[Eliminazione delle policy](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete.md).

# Creazione di SageMaker HyperPod cluster utilizzando modelli CloudFormation
<a name="smcluster-getting-started-eks-console-create-cluster-cfn"></a>

È possibile creare SageMaker HyperPod cluster utilizzando i CloudFormation modelli per HyperPod. È necessario eseguire l'installazione AWS CLI per procedere.

**Topics**
+ [Configura le risorse nella console e distribuiscile utilizzando CloudFormation](#smcluster-getting-started-eks-console-create-cluster-deploy-console)
+ [Configura e distribuisci le risorse utilizzando CloudFormation](#smcluster-getting-started-eks-console-create-cluster-deploy-cfn)

## Configura le risorse nella console e distribuiscile utilizzando CloudFormation
<a name="smcluster-getting-started-eks-console-create-cluster-deploy-console"></a>

È possibile configurare le risorse utilizzando Console di gestione AWS e distribuire utilizzando i CloudFormation modelli.

Segui questa procedura.

1. *Invece di scegliere **Invia***, scegli **Scarica i parametri del CloudFormation modello** alla fine del tutorial in[Guida introduttiva all' SageMaker HyperPod utilizzo della console SageMaker AI](smcluster-getting-started-slurm-console.md). Il tutorial contiene importanti informazioni di configurazione, necessarie per creare correttamente il cluster.
**Importante**  
Se scegli **Invia**, non sarai in grado di implementare un cluster con lo stesso nome finché non elimini il cluster.

   Dopo aver scelto **Scarica i parametri del CloudFormation modello**, **la finestra Utilizzo del file di configurazione per creare il cluster tramite** la AWS CLI finestra apparirà sul lato destro della pagina.

1. Nella finestra **Utilizzo del file di configurazione per creare il cluster con la AWS CLI**, scegli **Scarica il file dei parametri di configurazione**. Il file verrà scaricato sul tuo computer. Puoi modificare il file JSON di configurazione in base alle tue esigenze o lasciarlo così com’è, se non sono necessarie modifiche.

1. In un terminale, vai alla posizione del file dei parametri `file://params.json`.

1. Esegui il AWS CLI comando [create-stack](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/create-stack.html) per distribuire lo CloudFormation stack che fornirà le risorse configurate e creerà il cluster. HyperPod

   ```
   aws cloudformation create-stack 
       --stack-name my-stack
       --template-url https://aws-sagemaker-hyperpod-cluster-setup.amazonaws.com/templates-slurm/main-stack-slurm-based-template.yaml
       --parameters file://params.json
       --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM
   ```

1. [Per visualizzare lo stato del provisioning delle risorse, accedi alla console. CloudFormation ](https://console.aws.amazon.com/cloudformation)

   **Una volta completata la creazione del cluster, visualizza il nuovo cluster in Cluster nel riquadro principale della console.** SageMaker HyperPod Puoi anche controllarne lo stato nella colonna **Stato**.

1. Quando lo stato del cluster diventa `InService`, puoi iniziare ad accedere ai nodi del cluster. Per accedere ai nodi del cluster e iniziare a eseguire carichi di lavoro di ML, consulta [Lavori su cluster SageMaker HyperPod](sagemaker-hyperpod-run-jobs-slurm.md).

## Configura e distribuisci le risorse utilizzando CloudFormation
<a name="smcluster-getting-started-eks-console-create-cluster-deploy-cfn"></a>

È possibile configurare e distribuire risorse utilizzando i CloudFormation modelli per. SageMaker HyperPod

Segui questa procedura.

1. Scarica un CloudFormation modello per SageMaker HyperPod dal [sagemaker-hyperpod-cluster-setup](https://github.com/aws/sagemaker-hyperpod-cluster-setup) GitHub repository.

1. Esegui il AWS CLI comando [create-stack](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/create-stack.html) per distribuire lo CloudFormation stack che fornirà le risorse configurate e creerà il cluster. HyperPod

   ```
   aws cloudformation create-stack 
       --stack-name my-stack
       --template-url URL_of_the_file_that_contains_the_template_body
       --parameters file://params.json
       --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM
   ```

1. Per visualizzare lo stato del provisioning delle risorse, accedere alla console CloudFormation .

   Una volta completata la creazione del cluster, visualizza il nuovo cluster in **Clusters nel riquadro principale** della console. SageMaker HyperPod Puoi anche controllarne lo stato nella colonna **Stato**.

1. Quando lo stato del cluster diventa `InService`, puoi iniziare ad accedere ai nodi del cluster.

# Gestione dei cluster SageMaker HyperPod EKS utilizzando il AWS CLI
<a name="sagemaker-hyperpod-eks-operate-cli-command"></a>

I seguenti argomenti forniscono indicazioni sulla scrittura di file di richiesta SageMaker HyperPod API in formato JSON e sulla loro esecuzione utilizzando i comandi. AWS CLI 

**Topics**
+ [Creazione di un cluster SageMaker HyperPod](sagemaker-hyperpod-eks-operate-cli-command-create-cluster.md)
+ [Recupero dei dettagli del cluster SageMaker HyperPod](sagemaker-hyperpod-eks-operate-cli-command-cluster-details.md)
+ [Aggiornamento SageMaker HyperPod della configurazione del cluster](sagemaker-hyperpod-eks-operate-cli-command-update-cluster.md)
+ [Aggiornamento del software della SageMaker HyperPod piattaforma](sagemaker-hyperpod-eks-operate-cli-command-update-cluster-software.md)
+ [Accesso ai SageMaker HyperPod nodi del cluster](sagemaker-hyperpod-eks-operate-access-through-terminal.md)
+ [Ridimensionamento di un cluster SageMaker HyperPod](smcluster-scale-down.md)
+ [Eliminazione di un cluster SageMaker HyperPod](sagemaker-hyperpod-eks-operate-cli-command-delete-cluster.md)

# Creazione di un cluster SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-cli-command-create-cluster"></a>

Scopri come creare SageMaker HyperPod cluster orchestrati da Amazon EKS utilizzando. AWS CLI

1. Prima di creare un cluster: SageMaker HyperPod 

   1. Assicurati di disporre di un cluster Amazon EKS funzionante. Per istruzioni dettagliate su come configurare un cluster Amazon EKS, consulta [Create an Amazon EKS cluster](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html) in *Amazon EKS User Guide*.

   1. Installa il grafico Helm come indicato in [Installazione di pacchetti sul cluster Amazon EKS con Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md). Se crei un [ SageMaker HyperPod cluster Amazon Nova](https://docs.aws.amazon.com//nova/latest/nova2-userguide/nova-hp-cluster.html), avrai bisogno di un grafico Helm separato.

1. Prepara uno script di configurazione del ciclo di vita e caricalo in un bucket Amazon S3, ad esempio `s3://amzn-s3-demo-bucket/Lifecycle-scripts/base-config/`.

   Per iniziare rapidamente, scarica lo script di esempio [https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/7.sagemaker-hyperpod-eks/LifecycleScripts/base-config/on_create.sh](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/7.sagemaker-hyperpod-eks/LifecycleScripts/base-config/on_create.sh)dal GitHub repository AWS Home Distributed Training e caricalo nel bucket S3. Puoi anche includere istruzioni di configurazione aggiuntive, una serie di script di configurazione o comandi da eseguire durante la fase di provisioning del HyperPod cluster.
**Importante**  
Se crei un [Ruolo IAM per SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod) collegando solo la [https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-cluster.html](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-cluster.html) gestita, il tuo cluster ha accesso ai bucket Amazon S3 con il prefisso `sagemaker-` specifico.

   Se crei un gruppo di istanze limitato, non devi scaricare ed eseguire lo script del ciclo di vita. Devi eseguire `install_rig_dependencies.sh`, invece. 

   I prerequisiti per eseguire lo script `install_rig_dependencies.sh` includono:
   + AWS Node (CNI) e CoredNS devono essere entrambi abilitati. Si tratta di componenti aggiuntivi EKS standard che non sono gestiti dall' SageMaker HyperPod Helm standard, ma possono essere facilmente abilitati nella console EKS alla voce Componenti aggiuntivi.
   +  Il grafico SageMaker HyperPod Helm standard deve essere installato prima di eseguire questo script.

   Lo script `install_rig_dependencies.sh` esegue queste operazioni. 
   + `aws-node` (CNI): nuovo DaemonSet `rig-aws-node` creato; applicate patch al `aws-node` esistente per evitare nodi RIG.
   + `coredns`: Convertito in Daemonset per supportare l'uso di Multi-Rig e RIGs prevenire il sovraccarico.
   + training-operators: aggiornato con le tolleranze di taint dei worker RIG e con nodeAffinity che favorisce le istanze non RIG.
   + Elastic Fabric Adapter (EFA): aggiornato per tollerare il taint dei worker RIG e utilizzare immagini dei container corrette per ogni Regione.

1. Prepara un file di richiesta [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)API in formato JSON. Per `ExecutionRole`, fornisci l’ARN del ruolo IAM che hai creato con la policy gestita `AmazonSageMakerClusterInstanceRolePolicy` nella sezione [Ruolo IAM per SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod).
**Nota**  
Assicurati che il SageMaker HyperPod cluster sia distribuito all'interno dello stesso Virtual Private Cloud (VPC) del cluster Amazon EKS. Le sottoreti e i gruppi di sicurezza specificati nella configurazione del SageMaker HyperPod cluster devono consentire la connettività di rete e la comunicazione con l'endpoint del server API del cluster Amazon EKS.

   ```
   // create_cluster.json
   {
       "ClusterName": "string",
       "InstanceGroups": [{
           "InstanceGroupName": "string",
           "InstanceType": "string",
           "InstanceCount": number,
           "LifeCycleConfig": {
               "SourceS3Uri": "s3://amzn-s3-demo-bucket-sagemaker/lifecycle-script-directory/src/",
               "OnCreate": "on_create.sh"
           },
           "ExecutionRole": "string",
           "ThreadsPerCore": number,
           "OnStartDeepHealthChecks": [
               "InstanceStress", "InstanceConnectivity"
           ]
       }],
       "RestrictedInstanceGroups": [ 
         { 
            "EnvironmentConfig": { 
               "FSxLustreConfig": { 
                  "PerUnitStorageThroughput": number,
                  "SizeInGiB": number
               }
            },
            "ExecutionRole": "string",
            "InstanceCount": number,
            "InstanceGroupName": "string",
            "InstanceStorageConfigs": [ 
               { ... }
            ],
            "InstanceType": "string",
            "OnStartDeepHealthChecks": [ "string" ],
            "OverrideVpcConfig": { 
               "SecurityGroupIds": [ "string" ],
               "Subnets": [ "string" ]
            },
            "ScheduledUpdateConfig": { 
               "DeploymentConfig": { 
                  "AutoRollbackConfiguration": [ 
                     { 
                        "AlarmName": "string"
                     }
                  ],
                  "RollingUpdatePolicy": { 
                     "MaximumBatchSize": { 
                        "Type": "string",
                        "Value": number
                     },
                     "RollbackMaximumBatchSize": { 
                        "Type": "string",
                        "Value": number
                     }
                  },
                  "WaitIntervalInSeconds": number
               },
               "ScheduleExpression": "string"
            },
            "ThreadsPerCore": number,
            "TrainingPlanArn": "string"
         }
      ],
       "VpcConfig": {
           "SecurityGroupIds": ["string"],
           "Subnets": ["string"]
       },
       "Tags": [{
           "Key": "string",
           "Value": "string"
       }],
       "Orchestrator": {
           "Eks": {
               "ClusterArn": "string",
               "KubernetesConfig": {
                   "Labels": {
                       "nvidia.com/mig.config": "all-3g.40gb"
                   }
               }
           }
       },
       "NodeRecovery": "Automatic"
   }
   ```

   Tieni presente quanto segue durante la configurazione per creare un nuovo SageMaker HyperPod cluster associato a un cluster EKS.
   + Puoi configurare fino a 20 gruppi di istanze nel parametro `InstanceGroups`.
   + Per `Orchestator.Eks.ClusterArn`, specifica l’ARN del cluster EKS da utilizzare come orchestratore.
   + Per `OnStartDeepHealthChecks`, aggiungi `InstanceStress` e `InstanceConnectivity` per abilitare [Controlli dell’integrità approfonditi](sagemaker-hyperpod-eks-resiliency-deep-health-checks.md).
   + Per`NodeRecovery`, specificare di `Automatic` abilitare il ripristino automatico dei nodi. SageMaker HyperPod sostituisce o riavvia le istanze (nodi) quando l'agente di monitoraggio dello stato rileva problemi.
   + Per il `Tags` parametro, è possibile aggiungere tag personalizzati per la gestione del SageMaker HyperPod cluster come risorsa. AWS Puoi aggiungere tag al cluster con la stessa procedura utilizzata per altri servizi AWS che supportano il tagging. Per ulteriori informazioni generali sul tagging delle risorse AWS , consulta [Tagging AWS Resources User Guide](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html).
   + Per il parametro `VpcConfig`, specifica le informazioni del VPC utilizzato nel cluster EKS. Le sottoreti devono essere private.
   + In alternativa`Orchestrator.Eks.KubernetesConfig.Labels`, puoi specificare le etichette Kubernetes da applicare ai nodi. Per abilitare il partizionamento della GPU con Multi-Instance GPU (MIG), aggiungi l'etichetta con il profilo MIG desiderato. `nvidia.com/mig.config` Ad esempio, `"nvidia.com/mig.config": "all-3g.40gb"` configura tutto con il profilo di partizione 3g.40gb. GPUs Per ulteriori informazioni sul partizionamento della GPU e sui profili disponibili, vedere. [Utilizzo delle partizioni GPU in Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md)

1. Utilizza il comando [create-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-cluster.html) come segue.
**Importante**  
Quando esegui il comando `create-cluster` con il parametro `--cli-input-json`, devi includere il prefisso `file://` prima del percorso completo del file JSON. Questo prefisso è necessario per garantire che AWS CLI riconosca l'input come percorso di file. L’omissione del prefisso `file://` genera un errore di analisi del parametro.

   ```
   aws sagemaker create-cluster \
       --cli-input-json file://complete/path/to/create_cluster.json
   ```

   Questo dovrebbe restituire l’ARN del nuovo cluster.
**Importante**  
Per rimuovere un gruppo di istanze limitato (RIG), puoi utilizzare l’operazione [update-cluster](https://docs.aws.amazon.com//cli/latest/reference/ecs/update-cluster.html). Quando un RIG viene ridimensionato a 0, il file system FSx for Lustre non verrà eliminato. Per rimuovere completamente il file system FSx for Lustre, è necessario rimuovere completamente il RIG.   
La rimozione di un RIG non eliminerà gli artefatti archiviati nel bucket Amazon S3 gestito dal servizio. Tuttavia, è necessario assicurarsi che tutti gli artefatti nel file system FSx for Lustre siano completamente sincronizzati con Amazon S3 prima della rimozione. Ti consigliamo di attendere almeno 30 minuti dopo il completamento del processo per garantire la sincronizzazione completa di tutti gli artefatti dal file system FSx for Lustre al bucket Amazon S3 gestito dal servizio.
**Importante**  
Quando si utilizza una On-Demand Capacity Reservation (ODCR) onboarding, è necessario mappare il gruppo di istanze allo stesso ID della zona di disponibilità (ID AZ) dell'ODCR impostando una sottorete nell'ID AZ corrispondente. `OverrideVpcConfig`  
CRITICO: verifica la `OverrideVpcConfig` configurazione prima dell'implementazione per evitare di incorrere in addebiti duplicati sia per ODCR che per On-Demand Capacity.

# Recupero dei dettagli del cluster SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-cli-command-cluster-details"></a>

Scopri come recuperare i dettagli SageMaker HyperPod del cluster utilizzando. AWS CLI

## Descrizione di un cluster
<a name="sagemaker-hyperpod-eks-operate-cli-command-describe-cluster"></a>

Esegui [describe-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/describe-cluster.html) per verificare lo stato del cluster. Puoi specificare il nome o l’ARN del cluster.

```
aws sagemaker describe-cluster --cluster-name your-hyperpod-cluster
```

Quando lo stato del cluster diventa **InService**, procedi con la fase successiva. Utilizzando questa API, puoi anche recuperare i messaggi di errore dall'esecuzione di altre operazioni HyperPod API.

## Elenco dei dettagli dei nodi del cluster
<a name="sagemaker-hyperpod-eks-operate-cli-command-list-cluster-nodes"></a>

Esegui [list-cluster-nodes](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-cluster-nodes.html)per controllare le informazioni chiave dei nodi del cluster.

```
aws sagemaker list-cluster-nodes --cluster-name your-hyperpod-cluster
```

Questo restituisce una risposta e `InstanceId` è ciò che ti serve per l’accesso (con `aws ssm`).

## Descrizione dei dettagli di un nodo del cluster
<a name="sagemaker-hyperpod-eks-operate-cli-command-describe-cluster-node"></a>

Esegui [describe-cluster-node](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/describe-cluster-node.html)per recuperare i dettagli di un nodo del cluster. È possibile ottenere l'ID del nodo del cluster dall' list-cluster-nodesoutput. Puoi specificare il nome o l’ARN del cluster.

```
aws sagemaker describe-cluster-node \
    --cluster-name your-hyperpod-cluster \
    --node-id i-111222333444555aa
```

## Elenco dei cluster
<a name="sagemaker-hyperpod-eks-operate-cli-command-list-clusters"></a>

Esegui [list-clusters](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-clusters.html) per elencare tutti i cluster del tuo account.

```
aws sagemaker list-clusters
```

Puoi anche aggiungere ulteriori flag per filtrare l’elenco dei cluster. Per ulteriori informazioni su cosa viene eseguito questo comando a basso livello e sui flag aggiuntivi per il filtraggio, consulta il riferimento all'[ListClusters](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListClusters.html)API.

# Aggiornamento SageMaker HyperPod della configurazione del cluster
<a name="sagemaker-hyperpod-eks-operate-cli-command-update-cluster"></a>

Esegui [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) per aggiornare la configurazione di un cluster.

**Nota**  
Considerazioni importanti:  
Non è possibile modificare le informazioni sul cluster EKS a cui il HyperPod cluster è associato dopo la creazione del cluster. 
Se sul cluster sono in esecuzione controlli dell’integrità approfonditi, questa API non funzionerà come previsto. Potrebbe essere visualizzato un messaggio di errore che indica che sono in corso controlli dell’integrità approfonditi. Per aggiornare il cluster, è necessario attendere il completamento dei controlli dell’integrità approfonditi.

1. Crea un file di richiesta API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html) in formato JSON. Assicurati di specificare correttamente il nome del cluster e il nome del gruppo di istanze da aggiornare. Per ogni gruppo di istanze, puoi modificare il tipo di istanza, il numero di istanze, lo script del punto di ingresso della configurazione del ciclo di vita e il percorso dello script.
**Nota**  
È possibile utilizzarle `UpdateCluster` per ridimensionare o rimuovere interi gruppi di istanze dal SageMaker HyperPod cluster. Per ulteriori istruzioni su come ridurre verticalmente o eliminare i gruppi di istanze, consulta [Ridimensionamento di un cluster SageMaker HyperPod](smcluster-scale-down.md).

   1. Per `ClusterName`, specifica il nome del cluster da aggiornare.

   1. Per `InstanceGroupName`

      1. Per aggiornare un gruppo di istanze esistente, specifica il nome del gruppo di istanze da aggiornare.

      1. Per aggiungere un nuovo gruppo di istanze, specifica un nuovo nome non presente nel cluster.

   1. Per `InstanceType`

      1. Per aggiornare un gruppo di istanze esistente, è necessario che il tipo di istanza specificato all’inizio corrisponda al gruppo.

      1. Per aggiungere un nuovo gruppo di istanze, specifica il tipo di istanza con cui configurare il gruppo.

   1. Per `InstanceCount`

      1. Per aggiornare un gruppo di istanze esistente, specifica un numero intero corrispondente al numero di istanze desiderato. Puoi fornire un valore più alto o più basso (fino a 0) per aumentare o ridurre verticalmente il gruppo di istanze.

      1. Per aggiungere un nuovo gruppo di istanze, specifica un numero intero maggiore o uguale a 1. 

   1. In `LifeCycleConfig`, puoi modificare entrambi i valori `SourceS3Uri` e `OnCreate` secondo le tue preferenze per aggiornare il gruppo di istanze.

   1. Per `ExecutionRole`

      1. Per aggiornare un gruppo di istanze esistente, continua a utilizzare lo stesso ruolo IAM collegato durante la creazione del cluster.

      1. Per aggiungere un nuovo gruppo di istanze, specifica un ruolo IAM da collegare.

   1. Per `ThreadsPerCore`

      1. Per aggiornare un gruppo di istanze esistente, continua a utilizzare lo stesso valore specificato durante la creazione del cluster.

      1. Per aggiungere un nuovo gruppo di istanze, puoi scegliere qualsiasi valore tra le opzioni consentite dal tipo di istanza. Per ulteriori informazioni, cerca il tipo di istanza e consulta la colonna **Thread validi per core** nella tabella di riferimento in [CPU cores and threads per CPU core per instance type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cpu-options-supported-instances-values.html) in *Amazon EC2 User Guide*.

   1. Per `OnStartDeepHealthChecks`, aggiungi `InstanceStress` e `InstanceConnectivity` per abilitare [Controlli dell’integrità approfonditi](sagemaker-hyperpod-eks-resiliency-deep-health-checks.md).

   1. Per`NodeRecovery`, specifica `Automatic` di abilitare il ripristino automatico dei nodi. SageMaker HyperPod sostituisce o riavvia le istanze (nodi) quando l'agente di monitoraggio dello stato rileva problemi.

   Puoi utilizzare il frammento di codice seguente, che corrisponde a un modello di file di richiesta JSON. Per ulteriori informazioni sulla sintassi della richiesta e sui parametri di questa API, consulta il riferimento all'API. [UpdateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)

   ```
   // update_cluster.json
   {
       // Required
       "ClusterName": "name-of-cluster-to-update",
       // Required
       "InstanceGroups": [{
           "InstanceGroupName": "string",
           "InstanceType": "string",
           "InstanceCount": number,
           "LifeCycleConfig": {
               "SourceS3Uri": "string",
               "OnCreate": "string"
           },
           "ExecutionRole": "string",
           "ThreadsPerCore": number,
           "OnStartDeepHealthChecks": [
               "InstanceStress", "InstanceConnectivity"
           ]
       }],
       "NodeRecovery": "Automatic"
   }
   ```

1. Esegui il comando `update-cluster` per inviare la richiesta. 

   ```
   aws sagemaker update-cluster \
       --cli-input-json file://complete/path/to/update_cluster.json
   ```

# Aggiornamento del software della SageMaker HyperPod piattaforma
<a name="sagemaker-hyperpod-eks-operate-cli-command-update-cluster-software"></a>

Quando crei il SageMaker HyperPod cluster, SageMaker HyperPod seleziona un'Amazon Machine Image (AMI) corrispondente alla versione Kubernetes del cluster Amazon EKS.

Esegui [update-cluster-software](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster-software.html)per aggiornare i cluster esistenti con software e patch di sicurezza fornite dal servizio. SageMaker HyperPod Per `--cluster-name`, specifica il nome o l’ARN del cluster da aggiornare.

**Importante**  
Quando questa API viene chiamata, SageMaker HyperPod non scarica o ridistribuisce i job (Pod) in esecuzione sui nodi. Controlla la presenza di processi in esecuzione sui nodi prima di chiamare questa API.
Il processo di applicazione delle patch sostituisce il volume root con l’AMI aggiornata, il che significa che i dati precedenti archiviati nel volume root dell’istanza andranno persi. Assicurati di eseguire il backup dei dati dal volume root dell'istanza su Amazon S3 o Amazon FSx for Lustre.
Tutti i nodi del cluster sono soggetti a tempi di inattività (i nodi appaiono come `<NotReady>` nell’output di`kubectl get node`) durante l’applicazione delle patch. Ti consigliamo di terminare tutti i carichi di lavoro prima di applicare le patch e di riprenderli al termine dell’applicazione delle patch.   
Se la patch di sicurezza non riesce, è possibile recuperare i messaggi di errore eseguendo l’API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html) come indicato in [Descrizione di un cluster](sagemaker-hyperpod-eks-operate-cli-command-cluster-details.md#sagemaker-hyperpod-eks-operate-cli-command-describe-cluster).

```
aws sagemaker update-cluster-software --cluster-name your-hyperpod-cluster
```

 Quando chiami l'`UpdateClusterSoftware`API, SageMaker HyperPod aggiorna la versione Kubernetes dei nodi selezionando la più recente in [SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami) base alla versione Kubernetes del tuo cluster Amazon EKS. Quindi, esegue gli script del ciclo di vita nel bucket Amazon S3 che hai specificato durante la creazione o l’aggiornamento del cluster. 

Puoi verificare la versione kubelet di un nodo con il comando `kubectl describe node`.

La versione Kubernetes dei nodi del SageMaker HyperPod cluster non si aggiorna automaticamente quando aggiorni la versione del cluster Amazon EKS. Dopo aver aggiornato la versione Kubernetes per il tuo cluster Amazon EKS, devi utilizzare l'`UpdateClusterSoftware`API per aggiornare i nodi del SageMaker HyperPod cluster alla stessa versione di Kubernetes.

 Si consiglia di aggiornare il SageMaker HyperPod cluster dopo aver aggiornato i nodi Amazon EKS ed evitare di avere più di una differenza di versione tra la versione del cluster Amazon EKS e la versione dei nodi del SageMaker HyperPod cluster.

Il team SageMaker HyperPod di assistenza lancia regolarmente nuovi strumenti [SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami) per migliorare la sicurezza e l'esperienza degli utenti. Ti consigliamo di continuare ad aggiornare sempre alla versione più recente di SageMaker HyperPod DLAMI. Per i futuri aggiornamenti SageMaker HyperPod DLAMI per le patch di sicurezza, segui con. [Note di SageMaker HyperPod rilascio di Amazon](sagemaker-hyperpod-release-notes.md)

**Nota**  
Puoi eseguire questa API solo in modo programmatico. La funzionalità di patching non è implementata nell'interfaccia utente della SageMaker HyperPod console.

# Accesso ai SageMaker HyperPod nodi del cluster
<a name="sagemaker-hyperpod-eks-operate-access-through-terminal"></a>

È possibile accedere direttamente ai nodi di un SageMaker HyperPod cluster in servizio utilizzando i AWS CLI comandi for AWS Systems Manager (SSM). Esegui `aws ssm start-session` con il nome host del nodo in formato `sagemaker-cluster:[cluster-id]_[instance-group-name]-[instance-id]`. È possibile recuperare l'ID del cluster, l'ID dell'istanza e il nome del gruppo di istanze dalla [SageMaker HyperPod console](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-view-details-of-clusters) o eseguendo `describe-cluster` e `list-cluster-nodes` dai [AWS CLI comandi](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-list-cluster-nodes) di. SageMaker HyperPod Ad esempio, se l’ID del cluster è `aa11bbbbb222`, il nome del nodo del cluster è `controller-group` e l’ID del nodo del cluster è `i-111222333444555aa`, il comando `start-session` di SSM dovrebbe essere il seguente.

**Nota**  
Se non hai ancora effettuato la configurazione AWS Systems Manager, segui le istruzioni fornite all'indirizzo[Configurazione AWS Systems Manager ed esecuzione come per il controllo degli accessi degli utenti del cluster](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-ssm).

```
$ aws ssm start-session \
    --target sagemaker-cluster:aa11bbbbb222_controller-group-i-111222333444555aa \
    --region us-west-2
Starting session with SessionId: s0011223344aabbccdd
root@ip-111-22-333-444:/usr/bin#
```

# Ridimensionamento di un cluster SageMaker HyperPod
<a name="smcluster-scale-down"></a>

Puoi ridurre il numero di istanze in esecuzione sul tuo SageMaker HyperPod cluster Amazon. Potresti voler ridurre verticalmente un cluster per vari motivi, ad esempio per limitare l’utilizzo delle risorse o ottimizzare i costi.

La pagina seguente descrive i due approcci principali per la riduzione verticale:
+ **Riduzione verticale a livello di gruppo di istanze:** questo approccio utilizza l’API `UpdateCluster`, che consente di:
  + Ridurre verticalmente il numero di istanze per gruppi di istanze specifici in modo indipendente. SageMaker L'intelligenza artificiale gestisce la terminazione dei nodi in modo da raggiungere i nuovi conteggi di istanze target che hai impostato per ciascun gruppo. Per informazioni, consulta [Riduzione verticale di un gruppo di istanze](#smcluster-scale-down-updatecluster).
  + Elimina completamente i gruppi di istanze dal cluster. Per informazioni, consulta [Eliminazione di gruppi di istanze](#smcluster-remove-instancegroup).
+ **Riduzione verticale a livello di istanza:** questo approccio utilizza l’API `BatchDeleteClusterNodes`, che consente di specificare i singoli nodi da terminare. Per informazioni, consulta [Riduzione verticale a livello di istanza](#smcluster-scale-down-batchdelete).

**Nota**  
Quando si esegue la riduzione verticale a livello di istanza con `BatchDeleteCusterNodes`, puoi terminare solo un massimo di 99 istanze alla volta. `UpdateCluster` supporta la terminazione di qualsiasi numero di istanze.

## Considerazioni importanti
<a name="smcluster-scale-down-considerations"></a>
+ Quando si riduce verticalmente un cluster, è necessario assicurarsi che le risorse rimanenti siano sufficienti per gestire il carico di lavoro e che qualsiasi operazione necessaria di migrazione o ribilanciamento dei dati sia gestita correttamente per evitare interruzioni. 
+ Assicurati di eseguire il backup dei dati su Amazon S3 o su un file system FSx for Lustre prima di richiamare l'API su un gruppo di nodi di lavoro. Questo aiuta a prevenire qualsiasi potenziale perdita di dati dal volume root dell’istanza. Per ulteriori informazioni sui backup, consulta [Utilizza lo script di backup fornito da SageMaker HyperPod](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software-backup).
+ Per richiamare questa API su un cluster esistente, devi prima applicare una patch al cluster eseguendo l'API. [ UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html) Per ulteriori informazioni sull’applicazione delle patch in un cluster, consulta [Aggiorna il software della SageMaker HyperPod piattaforma di un cluster](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software).
+ La misurazione/fatturazione per le istanze on demand verrà interrotta automaticamente dopo la riduzione verticale. Per interrompere la misurazione delle istanze riservate ridotte, contatta il team del tuo AWS account per ricevere assistenza.
+ Puoi utilizzare la capacità rilasciata dalle istanze riservate ridimensionate per scalare un altro cluster. SageMaker HyperPod 

## Riduzione verticale a livello di gruppo di istanze
<a name="smcluster-scale-down-or-delete"></a>

L'[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)operazione consente di apportare modifiche alla configurazione del SageMaker HyperPod cluster, ad esempio ridurre il numero di istanze di un gruppo di istanze o rimuovere interi gruppi di istanze. Questa opzione può essere utile per adattare le risorse allocate al cluster in base alle variazioni del carico di lavoro, ottimizzare i costi o modificare il tipo di istanza di un gruppo di istanze.

### Riduzione verticale di un gruppo di istanze
<a name="smcluster-scale-down-updatecluster"></a>

Utilizza questo approccio quando hai un gruppo di istanze inattivo, che può quindi essere ridotto verticalmente in modo sicuro terminando una qualsiasi delle sue istanze. Quando invii una `UpdateCluster` richiesta di ridimensionamento, sceglie HyperPod casualmente le istanze da terminare e le ridimensiona fino al numero di nodi specificato per il gruppo di istanze.

**Nota**  
Quando riduci verticalmente a 0 il numero di istanze in un gruppo di istanze, tutte le istanze all’interno del gruppo verranno terminate. Tuttavia, il gruppo di istanze stesso continuerà a esistere come parte del cluster. SageMaker HyperPod Puoi aumentare di nuovo verticalmente il gruppo di istanze in un secondo momento, utilizzando la stessa configurazione del gruppo di istanze.   
In alternativa, puoi scegliere di rimuovere un gruppo di istanze in modo permanente. Per ulteriori informazioni, consulta [Eliminazione di gruppi di istanze](#smcluster-remove-instancegroup).

**Per ridurre verticalmente con `UpdateCluster`**

1. Segui la procedura descritta in [Aggiornamento SageMaker HyperPod della configurazione del cluster](sagemaker-hyperpod-eks-operate-cli-command-update-cluster.md). Quando raggiungi il passaggio **1.d** in cui specifichi il **InstanceCount**campo, inserisci un numero inferiore al numero corrente di istanze per ridimensionare il cluster.

1. Esegui il AWS CLI comando [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) per inviare la richiesta.

Di seguito è riportato un esempio di un oggetto JSON `UpdateCluster`: Supponiamo che il gruppo di istanze abbia attualmente due istanze in esecuzione. Se imposti il **InstanceCount**campo su 1, come mostrato nell'esempio, seleziona HyperPod casualmente una delle istanze e la termina.

```
{
  "ClusterName": "name-of-cluster-to-update",
  "InstanceGroups": [
    {
      "InstanceGroupName": "training-instances",
      "InstanceType": "instance-type",
      "InstanceCount": 1,
      "LifeCycleConfig": {
        "SourceS3Uri": "s3://amzn-s3-demo-bucket/training-script.py",
        "OnCreate": "s3://amzn-s3-demo-bucket/setup-script.sh"
      },
      "ExecutionRole": "arn:aws:iam::123456789012:role/SageMakerRole",
      "ThreadsPerCore": number-of-threads,
      "OnStartDeepHealthChecks": [
        "InstanceStress",
        "InstanceConnectivity"
      ]
    }
  ],
  "NodeRecovery": "Automatic"
}
```

### Eliminazione di gruppi di istanze
<a name="smcluster-remove-instancegroup"></a>

È possibile utilizzare l'[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)operazione per rimuovere interi gruppi di istanze dal SageMaker HyperPod cluster quando non sono più necessari. Questa operazione va oltre la semplice riduzione verticale, poiché consente di eliminare completamente gruppi di istanze specifici dalla configurazione del cluster. 

**Nota**  
Quando rimuovi un gruppo di istanze:  
Tutte le istanze all’interno del gruppo di destinazione vengono terminate.
L’intera configurazione del gruppo viene eliminata dal cluster.
Tutti i carichi di lavoro in esecuzione sul gruppo di istanze vengono arrestati.

**Per eliminare gruppi di istanze con `UpdateCluster`**

1. Quando segui la procedura descritta in [Aggiornamento SageMaker HyperPod della configurazione del cluster](sagemaker-hyperpod-eks-operate-cli-command-update-cluster.md):

   1. Imposta il parametro `InstanceGroupsToDelete` facoltativo nel JSON `UpdateCluster` e passa l’elenco separato da virgole dei nomi dei gruppi di istanze da eliminare.

   1.  Quando indichi l’elenco `InstanceGroups`, assicurati che le specifiche dei gruppi di istanze che stai rimuovendo non siano più elencate in `InstanceGroups`.

1. Esegui il AWS CLI comando [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) per inviare la richiesta.

**Importante**  
Il SageMaker HyperPod cluster deve sempre mantenere almeno un gruppo di istanze.
Assicurati che venga eseguito il backup di tutti i dati critici prima della rimozione.
Il processo di rimozione non può essere annullato.

Di seguito è riportato un esempio di un oggetto JSON `UpdateCluster`: Consideriamo il caso di un cluster con tre gruppi di istanze: *training*, *prototype-training* e *inference-serving*. Vuoi eliminare il gruppo *prototype-training*.

```
{
  "ClusterName": "name-of-cluster-to-update",
  "InstanceGroups": [
    {
      "InstanceGroupName": "training",
      "InstanceType": "instance-type",
      "InstanceCount": ,
      "LifeCycleConfig": {
        "SourceS3Uri": "s3://amzn-s3-demo-bucket/training-script.py",
        "OnCreate": "s3://amzn-s3-demo-bucket/setup-script.sh"
      },
      "ExecutionRole": "arn:aws:iam::123456789012:role/SageMakerRole",
      "ThreadsPerCore": number-of-threads,
      "OnStartDeepHealthChecks": [
        "InstanceStress",
        "InstanceConnectivity"
      ]
    },
    {
      "InstanceGroupName": "inference-serving",
      "InstanceType": "instance-type",
      "InstanceCount": 2,
      [...]
    },
  ],
  "InstanceGroupsToDelete": [ "prototype-training" ],
  "NodeRecovery": "Automatic"
}
```

## Riduzione verticale a livello di istanza
<a name="smcluster-scale-down-batchdelete"></a>

L'`BatchDeleteClusterNodes`operazione consente di ridimensionare un SageMaker HyperPod cluster specificando i singoli nodi che si desidera terminare. `BatchDeleteClusterNodes`fornisce un controllo più granulare per la rimozione mirata dei nodi e l'ottimizzazione del cluster. Ad esempio, è possibile utilizzare `BatchDeleteClusterNodes` per eliminare nodi mirati per la manutenzione, gli aggiornamenti in sequenza o il ribilanciamento geografico delle risorse.

**Richiesta e risposta API**

Quando invii una `BatchDeleteClusterNodes` richiesta, SageMaker HyperPod elimina i nodi in base alla loro istanza. IDs L'API accetta una richiesta con il nome del cluster e un elenco di nodi IDs da eliminare. 

La risposta include due sezioni: 
+  `Failed`: un elenco di errori di tipo `[ BatchDeleteClusterNodesError ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_BatchDeleteClusterNodesError.html)`, uno per ogni ID di istanza.
+  `Successful`: L'elenco delle istanze è IDs stato terminato con successo. 

**Convalida e gestione degli errori**

L’API esegue varie convalide, ad esempio:
+ Verifica del formato dell’ID del nodo (prefisso `i-` e struttura dell’ID dell’istanza Amazon EC2). 
+ Verifica della lunghezza dell'elenco dei nodi, con un limite di 99 o meno nodi IDs in una singola `BatchDeleteClusterNodes` richiesta.
+ Garantire che sia presente un SageMaker HyperPod cluster valido con il nome del cluster di input e che non siano in corso operazioni a livello di cluster (aggiornamento, aggiornamento del sistema, applicazione di patch o eliminazione).
+ Gestione dei casi in cui le istanze non vengono trovate, hanno uno stato non valido o sono in uso.

**Codici di risposta API**
+  L’API restituisce un codice di stato `200` per le richieste riuscite (ad esempio, la convalida di tutti i nodi di input è riuscita) o parzialmente riuscite (ad esempio, la convalida di alcuni nodi di input non è riuscita). 
+  Se tutte queste convalide non riescono (ad esempio, la convalida di tutti i nodi di input non riesce), l’API restituirà una risposta Richiesta non valida `400` con i messaggi e i codici di errore appropriati. 

**Esempio**

Di seguito è riportato un esempio di **riduzione verticale di un cluster a livello di istanza** con la AWS CLI:

```
aws sagemaker batch-delete-cluster-nodes --cluster-name "cluster-name" --node-ids '["i-111112222233333", "i-111112222233333"]'
```

# Eliminazione di un cluster SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-cli-command-delete-cluster"></a>

Esegui [delete-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/delete-cluster.html) per eliminare un cluster. Puoi specificare il nome o l’ARN del cluster.

```
aws sagemaker delete-cluster --cluster-name your-hyperpod-cluster
```

Questa API pulisce solo le SageMaker HyperPod risorse e non elimina alcuna risorsa del cluster EKS associato. Ciò include il cluster Amazon EKS, le identità EKS Pod, FSx i volumi Amazon e i componenti aggiuntivi EKS. Comprende anche la configurazione iniziale aggiunta al cluster EKS. Per pulire tutte le risorse, ricorda di pulire separatamente anche le risorse EKS. 

Assicurati di eliminare prima le SageMaker HyperPod risorse, seguite dalle risorse EKS. Eseguire l’eliminazione in ordine inverso può comportare la persistenza delle risorse.

**Importante**  
Quando questa API viene chiamata, SageMaker HyperPod non scarica o ridistribuisce i job (Pods) in esecuzione sui nodi. Controlla la presenza di processi in esecuzione sui nodi prima di chiamare questa API.

# HyperPod checkpoint gestito a più livelli
<a name="managed-tier-checkpointing"></a>

Questa sezione spiega come funziona il checkpoint gestito su più livelli e i vantaggi che offre per la formazione su modelli su larga scala.

Il checkpointing SageMaker HyperPod gestito su più livelli di Amazon ti aiuta ad addestrare modelli di intelligenza artificiale generativa su larga scala in modo più efficiente. Utilizzano più livelli di archiviazione, inclusa la memoria CPU del cluster. Questo approccio riduce i tempi di recupero e minimizza le perdite durante l’avanzamento dell’addestramento. Inoltre, sfrutta le risorse di memoria sottoutilizzate nell’infrastruttura di addestramento.

Il checkpoint gestito su più livelli consente di salvare i checkpoint con una frequenza più elevata nella memoria. Vengono archiviati periodicamente in uno spazio di archiviazione durevole. In questo modo si mantengono sia le prestazioni che l’affidabilità durante il processo di addestramento.

Questa guida spiega come impostare, configurare e utilizzare il checkpoint gestito su più livelli con PyTorch framework sui cluster Amazon EKS. HyperPod 

## Come funziona il checkpoint gestito su più livelli
<a name="managed-tier-checkpointing-works"></a>

Il checkpoint gestito su più livelli utilizza un approccio di storage a più livelli. La memoria CPU funge da livello primario per archiviare i checkpoint del modello. I livelli secondari includono opzioni di archiviazione persistente come Amazon S3.

Quando salvi un checkpoint, il sistema lo archivia in uno spazio della memoria allocato nei nodi del cluster. I dati vengono replicati automaticamente su nodi di calcolo adiacenti per una maggiore affidabilità. Questa strategia di replica garantisce la protezione in caso di guasto di uno o più nodi, fornendo al contempo un accesso rapido per le operazioni di ripristino.

Il sistema inoltre salva periodicamente i checkpoint nell’archiviazione persistente in base alla configurazione dell’utente. Questa operazione garantisce una durata a lungo termine dei progressi dell’addestramento.

I componenti principali includono:
+ **Sistema di gestione della memoria**: un daemon di gestione della memoria che fornisce memoria disaggregata come servizio per l’archiviazione dei checkpoint
+ **HyperPod Libreria Python**: si interfaccia con lo storage disaggregato APIs e fornisce utilità per il salvataggio, il caricamento e la gestione dei checkpoint su più livelli
+ **Replica dei checkpoint**: replica automaticamente i checkpoint in più nodi per garantire la tolleranza ai guasti

Il sistema si integra perfettamente con i cicli di formazione tramite semplici chiamate API. PyTorch Richiede modifiche minime al codice esistente.

## Vantaggi
<a name="managed-tier-checkpointing-benefits"></a>

Il checkpoint gestito su più livelli offre diversi vantaggi per la formazione su modelli su larga scala:
+ **Migliore usabilità**: gestisce il salvataggio, la replica, la persistenza e il ripristino dei checkpoint
+ **Operazioni di checkpoint più rapide**: l’archiviazione basata sulla memoria offre tempi di salvataggio e caricamento più rapidi rispetto ai checkpoint basati su disco, con una conseguente accelerazione del ripristino
+ **Tolleranza ai guasti**: la replica automatica dei checkpoint tra i nodi protegge dai guasti dei nodi hardware
+ **Modifiche minime al codice**: l’integrazione semplice delle API richiede solo piccole modifiche agli script di addestramento esistenti
+ **Miglior throughput di addestramento**: un sovraccarico ridotto sui checkpoint significa più tempo dedicato all’addestramento vero e proprio

**Topics**
+ [Come funziona il checkpoint gestito su più livelli](#managed-tier-checkpointing-works)
+ [Vantaggi](#managed-tier-checkpointing-benefits)
+ [Imposta un checkpoint gestito su più livelli](managed-tier-checkpointing-setup.md)
+ [Rimozione del checkpoint gestito a più livelli](managed-tier-checkpointing-remove.md)
+ [Considerazioni sulla sicurezza per il checkpoint gestito su più livelli](managed-tier-security-considerations.md)

# Imposta un checkpoint gestito su più livelli
<a name="managed-tier-checkpointing-setup"></a>

Questa sezione contiene il processo di configurazione per il checkpoint gestito a più livelli per Amazon. SageMaker HyperPod Scoprirai come abilitare la funzionalità nel cluster e implementare i checkpoint nel codice di addestramento.

**Topics**
+ [Prerequisiti](#managed-tier-checkpointing-setup-prerequisites)
+ [Passaggio 1: abilita il checkpoint gestito su più livelli per il tuo cluster](#managed-tier-checkpointing-setup-step-enable-for-cluster)
+ [Fase 2. Installa la libreria Python nell’immagine di addestramento](#managed-tier-checkpointing-setup-step-install-library)
+ [Fase 3: salva i checkpoint nel ciclo di allenamento](#managed-tier-checkpointing-setup-step-save-checkpoint-in-loop)
+ [Fase 4: Caricare i checkpoint per il ripristino](#managed-tier-checkpointing-setup-step-load-checkpoint)
+ [Convalida le tue operazioni di checkpoint gestite su più livelli](#managed-tier-checkpointing-setup-validation)

## Prerequisiti
<a name="managed-tier-checkpointing-setup-prerequisites"></a>

Prima di configurare il checkpoint gestito a più livelli, assicurati di avere:
+ Un HyperPod cluster Amazon EKS con sufficiente memoria CPU disponibile per l'allocazione dei checkpoint
+ PyTorch carichi di lavoro di formazione e lavori DCP (entrambi supportati)
+ Autorizzazioni IAM appropriate per la gestione dei cluster, tra cui:
  + Autorizzazioni di scrittura di Amazon CloudWatch e Amazon S3 per il pod di formazione per leggere/scrivere checkpoint e inviare metriche
  + Queste autorizzazioni possono essere configurate dalla [configurazione EKS OIDC](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html)

## Passaggio 1: abilita il checkpoint gestito su più livelli per il tuo cluster
<a name="managed-tier-checkpointing-setup-step-enable-for-cluster"></a>

**Importante**  
È necessario attivare l'utilizzo del checkpoint gestito su più livelli.

Abilita il checkpoint gestito su più livelli tramite HyperPod APIs durante la creazione o l'aggiornamento del cluster. Il servizio installa automaticamente il sistema di gestione della memoria quando specifichi il parametro `TieredStorageConfig`.

Per i nuovi cluster, puoi usare. [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-cluster.html) AWS CLI

```
aws sagemaker create-cluster \
    --cluster-name cluster-name \
    --orchestrator "Eks={ClusterArn=eks-cluster-arn}" \
    --instance-groups '{
        "InstanceGroupName": "instance-group-name",
        "InstanceType": "instance-type",
        "InstanceCount": instance-count,
        "LifeCycleConfig": {
            "SourceS3Uri": "s3-path-to-lifecycle-scripts",
            "OnCreate": "lifecycle-script-name"
        },
        "ExecutionRole": "instance-group-iam-role",
        "ThreadsPerCore": threads-per-core,
        "InstanceStorageConfigs": [
            { "EbsVolumeConfig": {"VolumeSizeInGB": volume-size} }
        ]
    }' \
    --vpc-config '{
        "SecurityGroupIds": ["security-group-ids"],
        "Subnets": ["subnets"]
    }' \
    --tiered-storage-config '{
        "Mode": "Enable"
    }'
```

Il parametro `InstanceMemoryAllocationPercentage` specifica il valore `percentage` (int) della memoria del cluster da allocare per i checkpoint. L’intervallo è compreso tra 20 e 100.

## Fase 2. Installa la libreria Python nell’immagine di addestramento
<a name="managed-tier-checkpointing-setup-step-install-library"></a>

Installa la [libreria Amazon SageMaker checkpointing](https://pypi.org/project/amzn-sagemaker-checkpointing/) e le sue dipendenze nella tua immagine di formazione aggiungendola al tuo Dockerfile:

```
# Add this line to your training image Dockerfile
RUN pip install amzn-sagemaker-checkpointing s3torchconnector tenacity torch boto3 s3torchconnector
```

## Fase 3: salva i checkpoint nel ciclo di allenamento
<a name="managed-tier-checkpointing-setup-step-save-checkpoint-in-loop"></a>

Nel ciclo di allenamento, puoi salvare i checkpoint in modo asincrono utilizzando DCP. PyTorch Di seguito è riportato un esempio su come eseguire questa operazione.

```
import torch
import torch.distributed as dist
from torch.distributed.checkpoint import async_save, load
from amzn_sagemaker_checkpointing.checkpointing.filesystem.filesystem import (
    SageMakerTieredStorageWriter,
    SageMakerTieredStorageReader
)

# Initialize distributed training
dist.init_process_group(backend="nccl")

# Configure checkpointing
checkpoint_config = SageMakerCheckpointConfig(
    # Unique ID for your training job 
    # Allowed characters in ID include: alphanumeric, hyphens, and underscores
    namespace=os.environ.get('TRAINING_JOB_NAME', f'job-{int(time.time())}'),

    # Number of distributed processes/available GPUs
    world_size=dist.get_world_size(),

    # S3 storage location, required for SageMakerTieredStorageReader for read fallbacks
    # Required for SageMakerTieredStorageWriter when save_to_s3 is True
    s3_tier_base_path="s3://my-bucket/checkpoints"
)

# Your model and optimizer
model = MyModel()
optimizer = torch.optim.AdamW(model.parameters())

# Training loop
future = None
in_memory_ckpt_freq = 10
s3_ckpt_freq = 50

for training_step in range(1000):
    # ... training code ...
    
    # Save checkpoint
    if (training_step % in_memory_ckpt_freq == 0 or 
        training_step % s3_ckpt_freq == 0):
        # Create state dictionary
        state_dict = {
            "model": model.state_dict(),
            "optimizer": optimizer.state_dict(),
            "step": training_step,
            "epoch": epoch
        }
        
        # Create storage writer for current step
        checkpoint_config.save_to_s3 = training_step % s3_ckpt_freq == 0
        storage_writer = SageMakerTieredStorageWriter(
            checkpoint_config=checkpoint_config,
            step=training_step
        )

        # wait for previous checkpoint to get completed
        if future is not None:
            exc = future.exception()
            if exc:
                print(f"Failure in saving previous checkpoint:{str(exc)}")
                # Handle failures as required
            else:
                result = future.result()
                # Process results from save, if required
        
        # Async save checkpoint using PyTorch DCP
        future = async_save(state_dict=state_dict, storage_writer=storage_writer)
        
        # Continue training while checkpoint saves in background
```

## Fase 4: Caricare i checkpoint per il ripristino
<a name="managed-tier-checkpointing-setup-step-load-checkpoint"></a>

Di seguito è riportato un esempio sul caricamento di un checkpoint.

```
# Create state dictionary template
state_dict = {
    "model": model.state_dict(),
    "optimizer": optimizer.state_dict(),
    "step": 0,
    "epoch": 0
}

# Load latest checkpoint
storage_reader = SageMakerTieredStorageReader(checkpoint_config=checkpoint_config)
load(state_dict, storage_reader=storage_reader)

# Load specific checkpoint step
storage_reader = SageMakerTieredStorageReader(
    checkpoint_config=checkpoint_config, 
    step=500 # Or don't pass step if you have to load the latest available step.
)
try:
    load(state_dict, storage_reader=storage_reader)
except BaseException as e:
    print(f"Checkpoint load failed: {str(e)}")
    # Add additional exception handling
```

## Convalida le tue operazioni di checkpoint gestite su più livelli
<a name="managed-tier-checkpointing-setup-validation"></a>

È possibile convalidare le operazioni di checkpoint gestite su più livelli con i log.

**Registrazione di log personalizzata (facoltativo)**

Puoi integrare i log dei checkpoint con altri log passando un logger personalizzato alla libreria. Ad esempio, puoi aggiungere un logger personalizzato al codice di addestramento in modo che tutti i log della libreria vengano raccolti anche nel logger di addestramento.

**Registrazione avanzata di log dei servizi (facoltativo)**

Per migliorare il debug e la visibilità del servizio, puoi montare il percorso del log dei checkpoint `/var/log/sagemaker_checkpointing` dall’interno del pod a un percorso `/var/logs/sagemaker_checkpointing` sull’host. Questa operazione garantisce che solo i log specifici della libreria vengano raccolti separatamente. Il team di assistenza può quindi avere una maggiore visibilità per il debug e il supporto.

# Rimozione del checkpoint gestito a più livelli
<a name="managed-tier-checkpointing-remove"></a>

Questa sezione spiega come disabilitare il checkpoint gestito su più livelli quando non è più necessario.

Per disabilitare il checkpoint gestito su più livelli, utilizza per aggiornare la configurazione del [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) AWS CLI cluster:

```
aws sagemaker update-cluster \
    --cluster-name cluster-name \
    --tiered-storage-config '{ "Mode": "Disable" }'
```

Questo rimuove il daemon di gestione della memoria dal cluster. Il daemon è implementato come Kubernetes standard e segue la gestione standard del ciclo di vita di Kubernetes DaemonSet .

# Considerazioni sulla sicurezza per il checkpoint gestito su più livelli
<a name="managed-tier-security-considerations"></a>

Questa sezione tratta importanti considerazioni sulla sicurezza quando si utilizza il checkpoint gestito su più livelli. Include l’utilizzo del modulo pickle di Python, la crittografia Amazon S3 e la sicurezza degli endpoint di rete.

**Utilizzo del modulo pickle di Python**

Il checkpoint gestito a più livelli utilizza il modulo pickle di Python per deserializzare i dati dei checkpoint archiviati in Amazon S3. Questa implementazione ha importanti implicazioni in termini di sicurezza:
+ **Limite di fiducia esteso: quando si utilizza il checkpoint gestito su più livelli con Amazon S3, il bucket Amazon S3 entra a far parte del limite** di fiducia del cluster.
+ **Rischio di esecuzione del codice**: il modulo pickle di Python può eseguire codice arbitrario durante la deserializzazione. Se un utente non autorizzato ottiene l'accesso in scrittura al tuo bucket Amazon S3 di checkpoint, potrebbe creare dati di pickle dannosi che vengono eseguiti quando caricati tramite un checkpoint gestito a più livelli.

**Best practice per l’archiviazione Amazon S3**

Quando si utilizza il checkpoint gestito su più livelli con lo storage Amazon S3:
+ **Limita l’accesso ai bucket Amazon S3**: assicurati che solo gli utenti e i ruoli autorizzati associati al tuo cluster di addestramento abbiano accesso al bucket Amazon S3 utilizzato per i checkpoint.
+ **Implementa le policy di bucket**: configura le policy di bucket appropriate per impedire accessi o modifiche non autorizzati.
+ **Convalida dei modelli di accesso**: implementa la registrazione per convalidare i modelli di accesso ai bucket Amazon S3 del checkpoint.
+ **Convalida i nomi dei bucket**: presta attenzione quando scegli i nomi dei bucket per evitare potenziali manomissioni.

**Endpoint di rete**

Il checkpoint gestito su più livelli abilita gli endpoint di rete su ciascuno dei nodi di elaborazione sulle seguenti porte: 9200/TCP, 9209/UDP, 9210/UDP, 9219/UDP, 9220/UDP, 9229/UDP, 9230/UDP, 9239/UDP, 9240/UDP. Queste porte sono necessarie per il funzionamento del servizio di checkpoint e il mantenimento della sincronizzazione dei dati.

Per impostazione SageMaker predefinita, la configurazione di rete limita l'accesso a questi endpoint per motivi di sicurezza. Consigliamo di mantenere queste limitazioni predefinite.

Quando configuri le impostazioni di rete per i nodi e il VPC, AWS segui le best practice VPCs per i gruppi di sicurezza e. ACLs Per ulteriori informazioni, consulta gli argomenti seguenti:
+ [ SageMaker HyperPod Prerequisiti Amazon](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-prerequisites.html#sagemaker-hyperpod-prerequisites-optional-vpcCluster)
+ [Best practice sulla sicurezza del VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-best-practices.html)

# SageMaker HyperPod governance delle attività
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance"></a>

SageMaker HyperPod la governance delle attività è un robusto sistema di gestione progettato per semplificare l'allocazione delle risorse e garantire un utilizzo efficiente delle risorse di elaborazione tra team e progetti per i cluster Amazon EKS. Questa funzionalità offre agli amministratori la possibilità di impostare:
+ Livelli di priorità per varie attività
+ Allocazione delle risorse di calcolo per ogni team
+ In che modo ogni team presta e prende in prestito risorse di calcolo inattive
+ Se un team rende prerilasciabili le proprie attività

HyperPod la governance delle attività fornisce anche l'osservabilità del cluster Amazon EKS, offrendo visibilità in tempo reale sulla capacità del cluster. Questo include la disponibilità e l’utilizzo delle risorse di calcolo, l’allocazione e l’utilizzo del team e le informazioni sull’esecuzione delle attività e sui tempi di attesa, per consentirti di prendere decisioni informate e gestire in modo proattivo le risorse. 

Le seguenti sezioni spiegano come configurare, comprendere i concetti chiave e utilizzare la governance delle HyperPod attività per i cluster Amazon EKS.

**Topics**
+ [Configurazione per la governance SageMaker HyperPod delle attività](sagemaker-hyperpod-eks-operate-console-ui-governance-setup.md)
+ [Pannello di controllo](sagemaker-hyperpod-eks-operate-console-ui-governance-metrics.md)
+ [Processi](sagemaker-hyperpod-eks-operate-console-ui-governance-tasks.md)
+ [Policy](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md)
+ [Esempi di comandi di governance delle HyperPod AWS CLI attività](sagemaker-hyperpod-eks-operate-console-ui-governance-cli.md)
+ [Risoluzione dei problemi](sagemaker-hyperpod-eks-operate-console-ui-governance-troubleshoot.md)
+ [Documento di attribuzione per la governance delle SageMaker HyperPod attività di Amazon](sagemaker-hyperpod-eks-operate-console-ui-governance-attributions.md)

# Configurazione per la governance SageMaker HyperPod delle attività
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-setup"></a>

La sezione seguente fornisce informazioni su come configurare Amazon CloudWatch Observability EKS e i componenti aggiuntivi per la governance delle SageMaker HyperPod attività.

Assicurati di disporre della politica di autorizzazione minima per gli amministratori dei HyperPod cluster con Amazon EKS, in[Utenti IAM per l’amministratore del cluster](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin). Ciò include le autorizzazioni per eseguire il SageMaker HyperPod core APIs e gestire i SageMaker HyperPod cluster all'interno di te Account AWS, eseguendo le attività in cui ti trovi. [Gestione dei SageMaker HyperPod cluster orchestrati da Amazon EKS](sagemaker-hyperpod-eks-operate.md) 

**Topics**
+ [Configurazione della dashboard](sagemaker-hyperpod-eks-operate-console-ui-governance-setup-dashboard.md)
+ [Configurazione della governance delle attività](sagemaker-hyperpod-eks-operate-console-ui-governance-setup-task-governance.md)

# Configurazione della dashboard
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-setup-dashboard"></a>

Utilizza le seguenti informazioni per configurare il componente aggiuntivo Amazon SageMaker HyperPod Amazon CloudWatch Observability EKS. Questo ti offre una dashboard visiva dettagliata che fornisce una panoramica delle metriche relative all’hardware del cluster EKS, all’allocazione dei team e alle attività.

In caso di problemi di configurazione, consulta [Risoluzione dei problemi](sagemaker-hyperpod-eks-operate-console-ui-governance-troubleshoot.md) per la risoluzione dei problemi noti.

**Topics**
+ [HyperPod Prerequisiti del componente aggiuntivo Amazon CloudWatch Observability EKS](#hp-eks-dashboard-prerequisites)
+ [HyperPod Configurazione del componente aggiuntivo Amazon CloudWatch Observability EKS](#hp-eks-dashboard-setup)

## HyperPod Prerequisiti del componente aggiuntivo Amazon CloudWatch Observability EKS
<a name="hp-eks-dashboard-prerequisites"></a>

La sezione seguente include i prerequisiti necessari per installare il componente aggiuntivo Amazon EKS Observability.
+ Assicurati di disporre della politica di autorizzazione minima per gli amministratori del HyperPod cluster, in. [Utenti IAM per l’amministratore del cluster](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin)
+ Collega una policy `CloudWatchAgentServerPolicy` IAM ai nodi worker. A questo scopo, immetti il comando seguente. Sostituisci `my-worker-node-role` con il ruolo IAM utilizzato dai nodi worker Kubernetes.

  ```
  aws iam attach-role-policy \
  --role-name my-worker-node-role \
  --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
  ```

## HyperPod Configurazione del componente aggiuntivo Amazon CloudWatch Observability EKS
<a name="hp-eks-dashboard-setup"></a>

Utilizza le seguenti opzioni per configurare il componente aggiuntivo Amazon SageMaker HyperPod Amazon CloudWatch Observability EKS.

------
#### [ Setup using the SageMaker AI console ]

Le seguenti autorizzazioni sono necessarie per configurare e visualizzare la dashboard di governance delle attività. HyperPod Questa sezione espande le autorizzazioni elencate in [Utenti IAM per l’amministratore del cluster](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin). 

Per gestire la governance delle attività, utilizza la policy di esempio:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sagemaker:ListClusters",
                "sagemaker:DescribeCluster",
                "sagemaker:ListComputeQuotas",
                "sagemaker:CreateComputeQuota",
                "sagemaker:UpdateComputeQuota",
                "sagemaker:DescribeComputeQuota",
                "sagemaker:DeleteComputeQuota",
                "sagemaker:ListClusterSchedulerConfigs",
                "sagemaker:DescribeClusterSchedulerConfig",
                "sagemaker:CreateClusterSchedulerConfig",
                "sagemaker:UpdateClusterSchedulerConfig",
                "sagemaker:DeleteClusterSchedulerConfig",
                "eks:ListAddons",
                "eks:CreateAddon",
                "eks:DescribeAddon",
                "eks:DescribeCluster",
                "eks:DescribeAccessEntry",
                "eks:ListAssociatedAccessPolicies",
                "eks:AssociateAccessPolicy",
                "eks:DisassociateAccessPolicy"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Per concedere le autorizzazioni per gestire Amazon CloudWatch Observability Amazon EKS e visualizzare la dashboard del HyperPod cluster tramite la console SageMaker AI, utilizza la politica di esempio seguente:

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "eks:ListAddons",
                "eks:CreateAddon",
                "eks:UpdateAddon",
                "eks:DescribeAddon",
                "eks:DescribeAddonVersions",
                "sagemaker:DescribeCluster",
                "sagemaker:DescribeClusterNode",
                "sagemaker:ListClusterNodes",
                "sagemaker:ListClusters",
                "sagemaker:ListComputeQuotas",
                "sagemaker:DescribeComputeQuota",
                "sagemaker:ListClusterSchedulerConfigs",
                "sagemaker:DescribeClusterSchedulerConfig",
                "eks:DescribeCluster",
                "cloudwatch:GetMetricData",
                "eks:AccessKubernetesApi"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Passa alla scheda **Dashboard** nella SageMaker HyperPod console per installare Amazon CloudWatch Observability EKS. Per garantire che le metriche relative alla governance delle attività siano incluse nella **Dashboard**, abilita la casella di controllo delle metriche Kueue. L'abilitazione delle metriche Kueue abilita i costi di Metrics, una volta CloudWatch **raggiunto** il limite del livello gratuito. Per ulteriori informazioni, consulta **Metrics** in [Amazon CloudWatch Pricing](https://aws.amazon.com/cloudwatch/pricing/).

------
#### [ Setup using the EKS AWS CLI ]

Utilizza il seguente AWS CLI comando EKS per installare il componente aggiuntivo:

```
aws eks create-addon --cluster-name cluster-name 
--addon-name amazon-cloudwatch-observability 
--configuration-values "configuration json"
```

Di seguito è riportato un JSON di esempio con i valori di configurazione:

```
{
    "agent": {
        "config": {
            "logs": {
                "metrics_collected": {
                    "kubernetes": {
                        "kueue_container_insights": true,
                        "enhanced_container_insights": true
                    },
                    "application_signals": { }
                }
            },
            "traces": {
                "traces_collected": {
                    "application_signals": { }
                }
            }
        },
    },
}
```

------
#### [ Setup using the EKS Console UI ]

1. Passa alla [console EKS](https://console.aws.amazon.com/eks/home#/clusters).

1. Scegli il cluster.

1. Scegli **Componenti aggiuntivi**.

1. Trova il componente aggiuntivo **Amazon CloudWatch Observability** e installalo. Installa la versione 2.4.0 o superiore per il componente aggiuntivo. 

1. Includi i valori di configurazione JSON seguenti:

   ```
   {
       "agent": {
           "config": {
               "logs": {
                   "metrics_collected": {
                       "kubernetes": {
                           "kueue_container_insights": true,
                           "enhanced_container_insights": true
                       },
                       "application_signals": { }
                   },
               },
               "traces": {
                   "traces_collected": {
                       "application_signals": { }
                   }
               }
           },
       },
   }
   ```

------

**Una volta installato correttamente il componente aggiuntivo EKS Observability, puoi visualizzare le metriche del cluster EKS nella scheda Dashboard della console. HyperPod **

# Configurazione della governance delle attività
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-setup-task-governance"></a>

Questa sezione include informazioni su come configurare il componente aggiuntivo Amazon SageMaker HyperPod task governance EKS. Questo include la concessione di autorizzazioni che consentono di impostare l’assegnazione di priorità alle attività, l’allocazione di risorse di calcolo per i team, le modalità di condivisione delle risorse di calcolo inattive e la prelazione delle attività per i team.

In caso di problemi di configurazione, consulta [Risoluzione dei problemi](sagemaker-hyperpod-eks-operate-console-ui-governance-troubleshoot.md) per la risoluzione dei problemi noti.

**Topics**
+ [Impostazioni Kueue](#hp-eks-task-governance-kueue-settings)
+ [HyperPod Prerequisiti per la governance delle attività](#hp-eks-task-governance-prerequisites)
+ [HyperPod configurazione della governance delle attività](#hp-eks-task-governance-setup)

## Impostazioni Kueue
<a name="hp-eks-task-governance-kueue-settings"></a>

HyperPod Il componente aggiuntivo Task Governance EKS installa [Kueue](https://github.com/kubernetes-sigs/kueue/tree/main/apis/kueue) per i tuoi cluster EKS. HyperPod Kueue è un sistema nativo di Kubernetes che gestisce le quote e il loro consumo da parte dei processi. 


| Versione aggiuntiva EKS Task Governance HyperPod  | Versione di Kueue installata nell’ambito di questo componente aggiuntivo | 
| --- | --- | 
|  v1.1.3  |  v0.12.0  | 

**Nota**  
Kueue v.012.0 e versioni successive non sono inclusi nell' kueue-rbac-proxyinstallazione. Potrebbero essere state installate versioni precedenti. kueue-rbac-proxy Ad esempio, se utilizzi Kueue v0.8.1, potresti avere la v0.18.1. kueue-rbac-proxy

HyperPod la governance delle attività sfrutta la gestione delle code, della pianificazione e delle quote di lavoro native di Kueue per Kubernetes e viene installata con il componente aggiuntivo Task Governance EKS. HyperPod Una volta installato, HyperPod crea e modifica risorse Kubernetes gestite SageMaker dall'intelligenza artificiale come,,, e. `KueueManagerConfig` `ClusterQueues` `LocalQueues` `WorkloadPriorityClasses` `ResourceFlavors` `ValidatingAdmissionPolicies` Sebbene gli amministratori di Kubernetes abbiano la flessibilità necessaria per modificare lo stato di queste risorse, è possibile che qualsiasi modifica apportata a una risorsa gestita dall' SageMaker IA possa essere aggiornata e sovrascritta dal servizio.

Le seguenti informazioni descrivono le impostazioni di configurazione utilizzate dal componente aggiuntivo Task Governance per configurare Kueue. HyperPod 

```
  apiVersion: config.kueue.x-k8s.io/v1beta1
    kind: Configuration
    health:
      healthProbeBindAddress: :8081
    metrics:
      bindAddress: :8443
      enableClusterQueueResources: true
    webhook:
      port: 9443
    manageJobsWithoutQueueName: false
    leaderElection:
      leaderElect: true
      resourceName: c1f6bfd2.kueue.x-k8s.io
    controller:
      groupKindConcurrency:
        Job.batch: 5
        Pod: 5
        Workload.kueue.x-k8s.io: 5
        LocalQueue.kueue.x-k8s.io: 1
        ClusterQueue.kueue.x-k8s.io: 1
        ResourceFlavor.kueue.x-k8s.io: 1
    clientConnection:
      qps: 50
      burst: 100
    integrations:
      frameworks:
      - "batch/job"
      - "kubeflow.org/mpijob"
      - "ray.io/rayjob"
      - "ray.io/raycluster"
      - "jobset.x-k8s.io/jobset"
      - "kubeflow.org/mxjob"
      - "kubeflow.org/paddlejob"
      - "kubeflow.org/pytorchjob"
      - "kubeflow.org/tfjob"
      - "kubeflow.org/xgboostjob"
      - "pod"
      - "deployment"
      - "statefulset"
      - "leaderworkerset.x-k8s.io/leaderworkerset"
      podOptions:
        namespaceSelector:
          matchExpressions:
            - key: kubernetes.io/metadata.name
              operator: NotIn
              values: [ kube-system, kueue-system ]
    fairSharing:
      enable: true
      preemptionStrategies: [LessThanOrEqualToFinalShare, LessThanInitialShare]
    resources:
      excludeResourcePrefixes: []
```

Per ulteriori informazioni su ogni voce di configurazione, consulta [Configurazione](https://kueue.sigs.k8s.io/docs/reference/kueue-config.v1beta1/#Configuration) nella documentazione di Kueue.

## HyperPod Prerequisiti per la governance delle attività
<a name="hp-eks-task-governance-prerequisites"></a>
+ Assicurati di disporre della politica di autorizzazione minima per gli amministratori HyperPod del cluster, in. [Utenti IAM per l’amministratore del cluster](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin) Ciò include le autorizzazioni per eseguire il SageMaker HyperPod core APIs, gestire SageMaker HyperPod i cluster al suo interno ed eseguire Account AWS le attività in. [Gestione dei SageMaker HyperPod cluster orchestrati da Amazon EKS](sagemaker-hyperpod-eks-operate.md) 
+ La versione di Kubernetes dovrà essere >= 1.30. Per istruzioni, consulta [Update existing clusters to the new Kubernetes version](https://docs.aws.amazon.com/eks/latest/userguide/update-cluster.html).
+ Se hai già installato Kueue nei cluster, disinstalla Kueue prima di installare il componente aggiuntivo EKS.
+ Un HyperPod nodo deve già esistere nel cluster EKS prima di installare il componente aggiuntivo per la governance delle HyperPod attività. 

## HyperPod configurazione della governance delle attività
<a name="hp-eks-task-governance-setup"></a>

Di seguito vengono fornite informazioni su come impostare la governance delle HyperPod attività.

------
#### [ Setup using the SageMaker AI console ]

Di seguito vengono fornite informazioni su come configurare la governance delle HyperPod attività utilizzando la SageMaker HyperPod console.

Hai già tutte le seguenti autorizzazioni allegate se hai già concesso le autorizzazioni per gestire Amazon CloudWatch Observability EKS e visualizzare il dashboard del HyperPod cluster tramite la console SageMaker AI in. [HyperPod Configurazione del componente aggiuntivo Amazon CloudWatch Observability EKS](sagemaker-hyperpod-eks-operate-console-ui-governance-setup-dashboard.md#hp-eks-dashboard-setup) Se non l'hai configurata, utilizza la politica di esempio riportata di seguito per concedere le autorizzazioni per gestire il componente aggiuntivo HyperPod Task Governance e visualizzare la dashboard del HyperPod cluster tramite la console AI. SageMaker 

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "eks:ListAddons",
                "eks:CreateAddon",
                "eks:UpdateAddon",
                "eks:DescribeAddon",
                "eks:DescribeAddonVersions",
                "sagemaker:DescribeCluster",
                "sagemaker:DescribeClusterNode",
                "sagemaker:ListClusterNodes",
                "sagemaker:ListClusters",
                "eks:DescribeCluster",
                "eks:AccessKubernetesApi"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Vai alla scheda **Dashboard** nella SageMaker HyperPod console per installare il componente aggiuntivo Amazon SageMaker HyperPod Task Governance. 

------
#### [ Setup using the Amazon EKS AWS CLI ]

Utilizza il AWS CLI comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/eks/create-addon.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/eks/create-addon.html)EKS di esempio per configurare l'API Amazon EKS di HyperPod task governance e l'interfaccia utente della console utilizzando AWS CLI:

```
aws eks create-addon --region region --cluster-name cluster-name --addon-name amazon-sagemaker-hyperpod-taskgovernance
```

------

Puoi visualizzare la scheda **Policies** nella console HyperPod SageMaker AI se l'installazione è andata a buon fine. È inoltre possibile utilizzare il seguente AWS CLI comando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/eks/describe-addon.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/eks/describe-addon.html)EKS di esempio per verificare lo stato. 

```
aws eks describe-addon --region region --cluster-name cluster-name --addon-name amazon-sagemaker-hyperpod-taskgovernance
```

# Pannello di controllo
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-metrics"></a>

Amazon SageMaker HyperPod Task Governance offre una panoramica completa dei parametri di utilizzo dei cluster Amazon EKS, inclusi i parametri relativi all'hardware, al team e alle attività. Di seguito vengono fornite informazioni sulla dashboard del cluster HyperPod EKS.

La dashboard offre una visione completa delle metriche di utilizzo del cluster, incluse le metriche relative all’hardware, al team e alle attività. È necessario installare il componente aggiuntivo EKS per visualizzare la dashboard. Per ulteriori informazioni, consulta [Configurazione della dashboard](sagemaker-hyperpod-eks-operate-console-ui-governance-setup-dashboard.md).

Nella [console Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/), in **HyperPod Clusters**, puoi accedere alla HyperPod console e visualizzare l'elenco dei HyperPod cluster nella tua regione. Scegli il cluster e vai alla scheda **Dashboard**. La dashboard contiene le seguenti metriche. Puoi scaricare i dati per una sezione scegliendo la voce **Esporta** corrispondente.

**Utilizzo**

Fornisce lo stato del cluster EKS point-in-time e metriche basate sulle tendenze per le risorse di elaborazione critiche. Per impostazione predefinita, vengono visualizzati **tutti i gruppi di istanze**. Utilizza il menu a discesa per filtrare i gruppi di istanze. Le metriche incluse in questa sezione sono:
+ Numero di istanze totali, in esecuzione e con ripristino in sospeso. Il numero di istanze con ripristino in sospeso si riferisce al numero di istanze attendono di essere sottoposte a ripristino.
+ GPUs, memoria GPU, memoria v e v. CPUs CPUs 
+ Utilizzo della GPU, utilizzo della memoria GPU, utilizzo della vCPU e utilizzo della memoria vCPU.
+ Un grafico interattivo dell’utilizzo di GPU e vCPU. 

**Team**

Fornisce informazioni sulla gestione delle risorse specifica del team. Questo include:
+ Allocazione di istanze e GPU.
+ Tassi di utilizzo della GPU.
+ Statistiche sulla GPU prese in prestito.
+ Stato dell’attività (in esecuzione o in sospeso).
+ Un grafico a barre che confronta l’utilizzo della GPU e l’allocazione delle risorse di calcolo tra i team.
+ Informazioni dettagliate su GPU e vCPU del team. Per impostazione predefinita, le informazioni visualizzate includono **Tutti i team**. Puoi filtrare per team e istanza scegliendo i menu a discesa. Nel grafico interattivo puoi filtrare per ora.

**Attività**

**Nota**  
Per visualizzare le attività del cluster HyperPod EKS nella dashboard:  
Configura Kubernetes Role-Based Access Control (RBAC) per gli utenti di data scientist nello spazio dei HyperPod nomi designato per autorizzare l'esecuzione delle attività su cluster orchestrati da Amazon EKS. I namespace adottano il formato `hyperpod-ns-team-name`. Per stabilire le autorizzazioni RBAC, consulta le [istruzioni per la creazione dei ruoli del team](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#5-create-team-role).
Verifica che il tuo processo sia venga inviato con il namespace e le etichette delle classi di priorità appropriati. Per un esempio completo, consulta [Invia un lavoro alla coda e allo SageMaker spazio dei nomi gestiti dall'intelligenza artificiale](sagemaker-hyperpod-eks-operate-console-ui-governance-cli.md#hp-eks-cli-start-job).

Fornisce informazioni sulle metriche relative alle attività. Questo include il numero di attività in esecuzione, in sospeso e prerilasciate, oltre alle statistiche sui tempi di esecuzione e attesa. Per impostazione predefinita, le informazioni visualizzate includono **Tutti i team**. Puoi filtrare per team selezionando il menu a discesa. Nel grafico interattivo puoi filtrare per ora.

# Processi
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-tasks"></a>

Di seguito vengono fornite informazioni sulle attività del cluster Amazon SageMaker HyperPod EKS. Le attività sono operazioni o processi che vengono inviati al cluster. Queste possono essere operazioni di machine learning, come addestramento, esecuzione di esperimenti o inferenza. L’elenco dei dettagli delle attività visualizzabili include lo stato, la durata di esecuzione e la quantità di calcolo utilizzata per ogni attività. 

Nella [console Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/), in **HyperPod Clusters**, puoi accedere alla HyperPod console e visualizzare l'elenco dei HyperPod cluster nella tua regione. Scegli il tuo cluster e vai alla scheda **Attività**.

Per rendere visibile a tutti la scheda **Attività**, e non solo all’amministratore, l’amministratore deve [aggiungere una voce di accesso al cluster EKS per il ruolo IAM](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html). 

**Nota**  
Per visualizzare le attività del cluster HyperPod EKS nella dashboard:  
Configura Kubernetes Role-Based Access Control (RBAC) per gli utenti di data scientist nello spazio dei HyperPod nomi designato per autorizzare l'esecuzione delle attività su cluster orchestrati da Amazon EKS. I namespace adottano il formato `hyperpod-ns-team-name`. Per stabilire le autorizzazioni RBAC, consulta le [istruzioni per la creazione dei ruoli del team](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#5-create-team-role).
Verifica che il tuo processo sia venga inviato con il namespace e le etichette delle classi di priorità appropriati. Per un esempio completo, consulta [Invia un lavoro alla coda e allo SageMaker spazio dei nomi gestiti dall'intelligenza artificiale](sagemaker-hyperpod-eks-operate-console-ui-governance-cli.md#hp-eks-cli-start-job).

Per i cluster EKS, TensorFlow vengono mostrate le attività kubeflow (PyTorch, MPI,). Per impostazione predefinita, PyTorch vengono visualizzate le attività. Puoi filtrare per PyTorch TensorFlow attività MPI scegliendo il menu a discesa o utilizzando il campo di ricerca. Le informazioni mostrate per ogni attività includono il nome dell’attività, lo stato, il namespace, la classe di priorità e l’ora di creazione. 

# Utilizzo della pianificazione basata sulla topologia nella governance delle attività di Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-tasks-scheduling"></a>

La pianificazione basata sulla topologia in SageMaker HyperPod Amazon Task Governance ottimizza l'efficienza di formazione dei carichi di lavoro di machine learning distribuiti posizionando pod basati sulla topologia di rete fisica delle istanze Amazon EC2. Considerando la struttura gerarchica dell' AWS infrastruttura, tra cui zone di disponibilità, blocchi di rete e rack fisici, la pianificazione basata sulla topologia garantisce che i pod che richiedono comunicazioni frequenti siano pianificati in prossimità per ridurre al minimo la latenza di rete. Questo posizionamento intelligente è particolarmente utile per i lavori di formazione sull'apprendimento automatico su larga scala che implicano una pod-to-pod comunicazione intensiva, con conseguente riduzione dei tempi di formazione e un utilizzo più efficiente delle risorse in tutto il cluster.

**Nota**  
Per utilizzare la pianificazione basata sulla topologia, assicurati che la tua versione di HyperPod task governance sia la v1.2.2-eksbuild.1 o successiva.

La pianificazione basata sulla topologia supporta i tipi di istanze seguenti:
+ ml.p3dn.24xlarge
+ ml.p4d.24xlarge
+ ml.p4de.24xlarge
+ ml.p5.48xlarge
+ ml.p5e.48xlarge
+ ml.p5en.48xlarge
+ ml.p6e-gb200.36xlarge
+ ml.trn1.2xlarge
+ ml.trn1.32xlarge
+ ml.trn1n.32xlarge
+ ml.trn2.48xlarge
+ ml.trn2u.48xlarge

La pianificazione basata sulla topologia si integra con i HyperPod flussi di lavoro esistenti fornendo al contempo preferenze di topologia flessibili tramite i file Kubectl YAML e la CLI. HyperPod HyperPod la governance delle attività configura automaticamente i nodi del cluster con etichette di topologia e funziona con le politiche di governance delle HyperPod attività e i meccanismi di prestito delle risorse, garantendo che la pianificazione basata sulla topologia non interrompa i processi operativi correnti. Grazie al supporto integrato per le specifiche di topologia preferite e richieste, puoi eseguire il fine-tuning del posizionamento dei carichi di lavoro in base a specifici requisiti delle prestazioni, mantenendo al contempo la flessibilità necessaria per tornare alla pianificazione standard se i vincoli della topologia non possono essere soddisfatti.

Sfruttando le etichette con riconoscimento della topologia HyperPod, è possibile potenziare i carichi di lavoro di machine learning di tali dispositivi mediante un posizionamento intelligente dei pod che tiene conto dell'infrastruttura fisica di rete. HyperPod la governance delle attività ottimizza automaticamente la pianificazione dei pod in base alla topologia gerarchica del data center, il che si traduce direttamente in una riduzione della latenza di rete e in migliori prestazioni di formazione per le attività di machine learning distribuite. La consapevolezza della topologia è particolarmente utile per carichi di lavoro di machine learning su larga scala, perché riduce al minimo il sovraccarico di comunicazione avvicinando strategicamente i pod correlati all’interno della gerarchia di rete. Il risultato è una latenza della rete di comunicazione ottimizzata tra i pod, un utilizzo più efficiente delle risorse e migliori prestazioni complessive per le AI/ML applicazioni a elaborazione intensiva, il tutto senza la necessità di gestire manualmente configurazioni di topologia di rete complesse.

Di seguito sono riportate le etichette per i livelli di rete topologici disponibili in cui Task Governance può pianificare i pod: HyperPod 
+ topology.k8s.aws/ -1 network-node-layer
+ network-node-layertopologia.k8s.aws/ -2
+ network-node-layertopologia.k8s.aws/ -3
+ topology.k8s.aws/ultraserver-id

Per utilizzare la pianificazione basata sulla topologia, includi le etichette seguenti nel tuo file YAML:
+ kueue.x-k8s.io/ podset-required-topology - indica che questo lavoro deve avere i pod richiesti e che tutti i pod nei nodi devono essere programmati all'interno dello stesso livello di topologia.
+ kueue.x-k8s.io/ podset-preferred-topology - indica che questo job deve avere i pod, ma che la pianificazione dei pod all'interno dello stesso livello di topologia è preferibile ma non obbligatoria. HyperPod task governance proverà a pianificare i pod all'interno di un livello prima di provare il livello di topologia successivo.

Se le risorse non condividono la stessa etichetta di topologia, il processo viene sospeso. Il processo viene inserito in lista d’attesa. Quando Kueue rileva una quantità di risorse sufficiente, accetta ed esegue processo.

L’esempio seguente illustra come utilizzare le etichette nei file YAML:

```
apiVersion: batch/v1
kind: Job
metadata:
  name: test-tas-job
  namespace: hyperpod-ns-team-name
  labels:
    kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue
    kueue.x-k8s.io/priority-class: PRIORITY_CLASS-priority
spec:
  parallelism: 10
  completions: 10
  suspend: true
  template:
    metadata:
      labels:
        kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue
      annotations:
        kueue.x-k8s.io/podset-required-topology: "topology.k8s.aws/network-node-layer-3"
        or
        kueue.x-k8s.io/podset-preferred-topology: "topology.k8s.aws/network-node-layer-3"
    spec:
      nodeSelector:
        topology.k8s.aws/network-node-layer-3: TOPOLOGY_LABEL_VALUE
      containers:
        - name: dummy-job
          image: gcr.io/k8s-staging-perf-tests/sleep:v0.1.0
          args: ["3600s"]
          resources:
            requests:
              cpu: "100"
      restartPolicy: Never
```

La tabella seguente spiega i nuovi parametri che puoi utilizzare nel file YAML kubectl.


| Parametro | Description | 
| --- | --- | 
| kueue.x-k8s.io/queue-name | Il nome della coda da utilizzare per eseguire il processo. Il formato di queue-name deve essere hyperpod-ns-team-name-localqueue. | 
| kueue.x-k8s.io/priority-class | Consente di specificare una priorità per la pianificazione dei pod. Questa specifica è facoltativa. | 
| annotations | Contiene l’annotazione della topologia collegata al processo. Le topologie disponibili sono kueue.x-k8s.io/ e podset-required-topologykueue.x-k8s.io/. podset-preferred-topology Puoi utilizzare un’annotazione o nodeSelector, ma non entrambi contemporaneamente. | 
| nodeSelector | Specifica il livello di rete che rappresenta il livello di posizionamento delle istanze Amazon EC2. Utilizza questo campo o un’annotazione, ma non entrambi contemporaneamente. Nel file YAML, puoi anche utilizzare il parametro nodeSelector per scegliere il livello esatto per i tuoi pod. Per ottenere il valore della tua etichetta, usa l'operazione API. [ DescribeInstanceTopology](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstanceTopology.html) | 

Puoi anche utilizzare la HyperPod CLI per eseguire il tuo lavoro e utilizzare la pianificazione basata sulla topologia. Per ulteriori informazioni sulla HyperPod CLI, vedere. [SageMaker HyperPod Comandi CLI](sagemaker-hyperpod-eks-hyperpod-cli-reference.md)

```
hyp create hyp-pytorch-job \                                            
  --version 1.1 \
  --job-name sample-pytorch-job \
  --image 123456789012.dkr.ecr.us-west-2.amazonaws.com/ptjob:latest \
  --pull-policy "Always" \
  --tasks-per-node 1 \
  --max-retry 1 \
  --priority high-priority \
  --namespace hyperpod-ns-team-name \
  --queue-name hyperpod-ns-team-name-localqueue \
  --preferred-topology-label topology.k8s.aws/network-node-layer-1
```

Di seguito è riportato un esempio di file di configurazione che è possibile utilizzare per eseguire un file PytorchJob con etichette di topologia. Se desideri eseguire processi MPI e TensorFlow, il file è sostanzialmente uguale. Se invece desiderate eseguire questi lavori, ricordatevi di modificare il file di configurazione di conseguenza, ad esempio utilizzando l'immagine corretta anziché PyTorchJob. Se stai eseguendo un PyTorchJob, puoi assegnare topologie diverse ai nodi master e worker. PyTorchJob ha sempre un nodo master, quindi ti consigliamo di utilizzare invece la topologia per supportare i worker pod.

```
apiVersion: kubeflow.org/v1
kind: PyTorchJob
metadata:
  annotations: {}
  labels:
    kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue
  name: tas-test-pytorch-job
  namespace: hyperpod-ns-team-name
spec:
  pytorchReplicaSpecs:
    Master:
      replicas: 1
      restartPolicy: OnFailure
      template:
        metadata:
          labels:
            kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue
        spec:
          containers:
          - command:
            - python3
            - /opt/pytorch-mnist/mnist.py
            - --epochs=1
            image: docker.io/kubeflowkatib/pytorch-mnist:v1beta1-45c5727
            imagePullPolicy: Always
            name: pytorch
    Worker:
      replicas: 10
      restartPolicy: OnFailure
      template:
        metadata:
          # annotations:
            # kueue.x-k8s.io/podset-required-topology: "topology.k8s.aws/network-node-layer-3"
          labels:
            kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue
        spec:
          containers:
          - command:
            - python3
            - /opt/pytorch-mnist/mnist.py
            - --epochs=1
            image: docker.io/kubeflowkatib/pytorch-mnist:v1beta1-45c5727
            imagePullPolicy: Always
            name: pytorch
            resources:
              limits:
                cpu: 1
              requests:
                memory: 200Mi
                cpu: 1
          #nodeSelector:
          #  topology.k8s.aws/network-node-layer-3: xxxxxxxxxxx
```

Per visualizzare le topologie per il tuo cluster, utilizza l'[ DescribeInstanceTopology](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstanceTopology.html)operazione API. Per impostazione predefinita, le topologie sono nascoste in Console di gestione AWS e Amazon SageMaker Studio. Segui questa procedura per visualizzarle nell’interfaccia che stai utilizzando.

**SageMaker Studio**

1. In SageMaker Studio, accedi al tuo cluster.

1. Nella visualizzazione Attività, scegli il menu delle opzioni nella colonna Nome, quindi scegli **Gestisci colonne**.

1. Seleziona **Topologia richiesta** e **Vincolo di topologia** per aggiungere le colonne per visualizzare le informazioni sulla topologia nell’elenco dei pod Kubernetes.

**Console di gestione AWS**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. In **HyperPod Cluster**, scegli **Cluster management**.

1. Scegli la scheda **Attività**, quindi scegli l’icona a forma di ingranaggio.

1. Negli attributi dell’istanza, attiva **Topologia richiesta** e **Vincolo di topologia**.

1. Scegli **Conferma** per visualizzare le informazioni sulla topologia nella tabella.

# Policy
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies"></a>

La governance delle SageMaker HyperPod attività di Amazon semplifica l'allocazione delle risorse del cluster Amazon EKS e l'assegnazione delle priorità alle attività. Di seguito vengono fornite informazioni sulle HyperPod politiche dei cluster EKS. Per informazioni su come configurare la governance delle attività, consulta [Configurazione della governance delle attività](sagemaker-hyperpod-eks-operate-console-ui-governance-setup-task-governance.md).

Le policy sono suddivise in **Priorità delle risorse di calcolo** e **Allocazione delle risorse di calcolo** I concetti delle policy seguenti vengono organizzati nel contesto di tali policy.

La **priorità delle risorse di calcolo**, o policy del cluster, determina in che modo le risorse di calcolo inattive vengono presa in prestito e in che modo i team assegnano priorità alle attività.
+ **Allocazione delle risorse di calcolo inattive** definisce in che modo le risorse di calcolo inattive vengono allocate tra i team. In altre parole, definisce in che modo le risorse di calcolo inutilizzate possono essere prese in prestito dai team. Quando selezioni **Allocazione delle risorse di calcolo inattive**, puoi scegliere tra:
  + **Primo arrivato, primo servito**: se applicata, questa opzione non assegna priorità ai team e ogni attività in arrivo ha la stessa probabilità di ottenere risorse oltre la quota stabilita. Alle attività viene assegnata una priorità in base all’ordine di invio. Ciò significa che un utente potrebbe utilizzare il 100% delle risorse di calcolo inattive se le richiede per primo.
  + **Condivisione equa**: quando viene applicata, i team prendono in prestito risorse di calcolo inattive in base al **Peso di condivisione equa** loro assegnato. Questi pesi sono definiti in **Allocazione delle risorse di calcolo**. Per ulteriori informazioni su come utilizzare questa opzione, consulta [Esempi di condivisione di risorse di calcolo inattive](#hp-eks-task-governance-policies-examples).
+ La **prioritizzazione delle attività** definisce il modo in cui le attività vengono messe in coda non appena il calcolo diventa disponibile. Quando scegli una **prioritizzazione delle attività**, puoi scegliere tra:
  + **Primo arrivato, primo servito**: se viene applicata questa opzione, le attività vengono messe in coda nell’ordine in cui sono state richieste.
  + **Classificazione delle attività**: se viene applicata questa opzione, le attività vengono messe in coda nell’ordine definito dalla loro priorità. Se scegli questa opzione, devi aggiungere le classi di priorità e i pesi in base ai quali viene assegnata la priorità. Le attività della stessa classe di priorità vengono eseguite in base al principio “primo arrivato, primo servito”. Se l’opzione è abilitata in Allocazione delle risorse di calcolo, le attività con priorità più bassa vengono sostituite dalle attività con priorità più alta all’interno del team.

    Quando i Data Scientist inviano i processi al cluster, utilizzano il nome della classe di priorità nel file YAML. La classe di priorità è nel formato `priority-class-name-priority`. Per vedere un esempio, consulta [Invia un lavoro alla coda e allo SageMaker spazio dei nomi gestiti dall'intelligenza artificiale](sagemaker-hyperpod-eks-operate-console-ui-governance-cli.md#hp-eks-cli-start-job).
  + **Classi di priorità**: queste classi stabiliscono una priorità relativa per le attività quando prendono in prestito quote di capacità. Quando un’attività viene eseguita utilizzando una quota presa in prestito, può essere interrotta da un’altra attività con priorità più elevata, se la capacità disponibile per l’attività in entrata è terminata. Se **Prelazione** è abilitato in **Allocazione delle risorse di calcolo**, un’attività con priorità più elevata può anche interrompere altre attività all’interno del proprio team.
+ La **condivisione delle risorse non allocate** consente ai team di prendere in prestito risorse di elaborazione che non sono assegnate a nessun team tramite la quota di elaborazione. Se abilitata, la capacità del cluster non allocata diventa disponibile per i team che possono prenderla in prestito automaticamente. Per ulteriori informazioni, consulta [Come funziona la condivisione delle risorse non allocate](#sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-how-it-works).

L’**Allocazione delle risorse di calcolo**, o quota di calcolo, definisce l’allocazione delle risorse di calcolo di un team e il peso (o il livello di priorità) assegnato a un team per un’allocazione equa delle risorse di calcolo inattive. 
+ **Nome del team**: il nome del team. Viene creato un **Namespace** corrispondente, di tipo `hyperpod-ns-team-name`. 
+ **Membri**: i membri del namespace del team. Dovrai configurare un controllo degli accessi basato sui ruoli (RBAC) Kubernetes per gli utenti di data scientist che desideri far parte di questo team, per eseguire attività su cluster orchestrati con Amazon EKS. HyperPod Per configurare un RBAC Kubernetes, utilizza le istruzioni in [create team role](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#5-create-team-role).
+ **Peso di condivisione equa**: si tratta del livello di priorità assegnato al team quando viene applicata la **Condivisione equa** per l’opzione **Allocazione delle risorse di calcolo inattive**. La priorità più alta ha un peso di 100, mentre quella più bassa è 0. Un peso maggiore consente a un team di accedere più rapidamente alle risorse inutilizzate all’interno della capacità condivisa. Un peso zero indica la priorità più bassa, che significa che il team sarà sempre in svantaggio rispetto agli altri team. 

  Il peso di condivisione equa offre un margine di vantaggio al team quando compete con altri team per le risorse disponibili. L’ammissione dà priorità alla pianificazione delle attività svolte dai team con i pesi più alti e il minor numero di risorse prese in prestito. Ad esempio, se il Team A ha un peso di 10 e il Team B ha un peso di 5, il Team A avrebbe un accesso prioritario alle risorse inutilizzate, perché ha processi pianificati prima del Team B.
+ **Prelazione delle attività**: le risorse di calcolo vengono prese da un’attività in base alla priorità. Per impostazione predefinita, il team che presta le risorse di calcolo inattive avrà la prelazione rispetto alle attività degli altri team. 
+ **Prestare e prendere in prestito**: definisce in che modo il team presta le risorse di calcolo inattive e specifica se il team può prendere in prestito risorse da altri team.
  + Limite di **prestito basato sulla percentuale: il limite** di elaborazione inattiva che un team può prendere in prestito, espresso come percentuale della quota garantita. Un team può prendere in prestito fino al 10.000% delle risorse di calcolo allocate. Il valore fornito qui viene interpretato come percentuale. Ad esempio, un valore pari a 500 verrà interpretato come 500%. Questa percentuale si applica in modo uniforme a tutti i tipi di risorse (CPU, GPU, memoria) e ai tipi di istanze inclusi nella quota del team.
  + **Limite assoluto di prestito**: il limite di elaborazione inattiva che un team può prendere in prestito, definito come valori assoluti delle risorse per tipo di istanza. Ciò fornisce un controllo granulare sul comportamento di prestito per tipi di istanze specifici. È necessario specificare i limiti assoluti utilizzando lo stesso schema di **Compute Quota, incluso il conteggio** delle istanze, gli acceleratori, la vCPU, la memoria o le partizioni di accelerazione. Puoi specificare limiti assoluti per uno o più tipi di istanze nella quota del tuo team.

Per informazioni su come vengono utilizzati i concetti come le classi di priorità e i namespace, consulta [Esempi di comandi di governance delle HyperPod AWS CLI attività](sagemaker-hyperpod-eks-operate-console-ui-governance-cli.md).

## Esempi di condivisione di risorse di calcolo inattive
<a name="hp-eks-task-governance-policies-examples"></a>

La quota totale riservata non deve superare la capacità disponibile del cluster per quella risorsa, al fine di garantire una corretta gestione delle quote. Ad esempio, se un cluster comprende 20 istanze `ml.c5.2xlarge`, la quota cumulativa assegnata ai team dovrebbe rimanere inferiore a 20. 

Se le policy **Allocazione delle risorse di calcolo** per i team consentono **Presta e prendi in prestito** o **Presta**, la capacità inattiva viene condivisa tra questi team. Ad esempio, il Team A e il Team B hanno abilitato **Presta e prendi in prestito**. Il Team A ha una quota pari a 6, ma utilizza solo 2 risorse per i processi, mentre il Team B ha una quota pari a 5 e utilizza 4 risorse. Un processo inviato al Team B richiede 4 risorse, quindi il Team B prenderà in prestito 3 risorse dal Team A. 

Se la policy **Allocazione delle risorse di calcolo** di un team è impostata su **Non prestare**, il team non potrà prendere in prestito alcuna capacità aggiuntiva oltre alle proprie allocazioni.

## Come funziona la condivisione delle risorse non allocate
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-how-it-works"></a>

La condivisione delle risorse non allocate gestisce automaticamente il pool di risorse che non sono allocate a nessuna quota di elaborazione nel cluster. Ciò significa che monitora HyperPod continuamente lo stato del cluster e si aggiorna automaticamente alla configurazione corretta nel tempo.

**Configurazione iniziale**
+ Quando l'impostazione è impostata su `Enabled` in your ClusterSchedulerConfig (`IdleResourceSharing`per impostazione predefinita`Disabled`), la governance delle HyperPod attività inizia a monitorare il cluster e calcola le risorse inattive disponibili sottraendo le quote del team dalla capacità totale dei nodi.
+ La condivisione non allocata delle risorse viene creata per rappresentare il pool di risorse che ClusterQueues possono essere prese in prestito.
+ Quando si abilita per la prima volta la condivisione di risorse non allocate, la configurazione dell'infrastruttura richiede diversi minuti. È possibile monitorare i progressi tramite policy `Status` e in. `DetailedStatus` ClusterSchedulerConfig

**Riconciliazione in corso**
+ HyperPod la governance delle attività monitora continuamente le modifiche, come l'aggiunta o la rimozione di nodi e gli aggiornamenti delle quote delle code dei cluster.
+  Quando si verificano modifiche, la condivisione delle risorse non allocate ricalcola la quota e gli aggiornamenti. ClusterQueues La riconciliazione viene in genere completata in pochi secondi. 

**Monitoraggio**

 Puoi verificare che la condivisione delle risorse non allocate sia completamente configurata controllando la condivisione delle risorse non allocate: ClusterQueues 

```
kubectl get clusterqueue | grep hyperpod-ns-idle-resource-sharing
```

Quando vedi ClusterQueues con nomi come`hyperpod-ns-idle-resource-sharing-cq-1`, la condivisione delle risorse non allocate è attiva. Tieni presente che ClusterQueues possono esistere più condivisioni di risorse non allocate a seconda del numero di tipi di risorse presenti nel cluster. 

## Idoneità dei nodi per la condivisione di risorse non allocate
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-node-eligibility"></a>

La condivisione delle risorse non allocate include solo i nodi che soddisfano i seguenti requisiti:

1. **Stato Node Ready**
   + I nodi devono essere in `Ready` stato per poter contribuire al pool di risorse non allocate.
   + I nodi in stato non pronto `NotReady` o in altri stati non pronti sono esclusi dai calcoli della capacità.
   + Quando un nodo diventa`Ready`, viene automaticamente incluso nel ciclo di riconciliazione successivo.

1. **Stato programmabile del nodo**
   + I nodi con `spec.unschedulable: true` sono esclusi dalla condivisione di risorse non allocate.
   + Quando un nodo torna a essere programmabile, viene automaticamente incluso nel ciclo di riconciliazione successivo.

1. **Configurazione MIG (solo nodi GPU)**
   + Per i nodi GPU con partizionamento MIG (Multi-Instance GPU), l'`nvidia.com/mig.config.state`etichetta deve indicare che il nodo contribuisce con i profili MIG alla condivisione `success` di risorse non allocate.
   + Questi nodi verranno riprovati automaticamente una volta completata correttamente la configurazione MIG.

1. **Tipi di istanze supportati**
   + L'istanza deve essere un tipo di SageMaker HyperPod istanza supportato.
   + Vedi l'elenco dei tipi di istanza supportati nel SageMaker HyperPod cluster.

**Topics**
+ [Esempi di condivisione di risorse di calcolo inattive](#hp-eks-task-governance-policies-examples)
+ [Come funziona la condivisione delle risorse non allocate](#sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-how-it-works)
+ [Idoneità dei nodi per la condivisione di risorse non allocate](#sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-node-eligibility)
+ [Creazione di policy](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-create.md)
+ [Modifica delle policy](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-edit.md)
+ [Eliminazione delle policy](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete.md)
+ [Allocazione della quota di elaborazione nella governance delle attività di Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation.md)

# Creazione di policy
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-create"></a>

Puoi creare le configurazioni **Policy del cluster** e **Allocazione delle risorse di calcolo** nella scheda **Policy**. Di seguito vengono fornite istruzioni su come creare le configurazioni seguenti.
+ Crea la tua **Policy del cluster** per aggiornare il modo in cui viene assegnata la priorità alle attività e vengono allocate le risorse di calcolo inattive.
+ Crea un’**Allocazione delle risorse di calcolo** per creare una nuova policy di allocazione delle risorse di calcolo per un team.
**Nota**  
Quando crei un'**allocazione Compute**, dovrai configurare un controllo degli accessi basato sui ruoli (RBAC) Kubernetes per gli utenti di data scientist nel namespace corrispondente per eseguire attività su cluster orchestrati con Amazon EKS. HyperPod I namespace adottano il formato `hyperpod-ns-team-name`. Per configurare un RBAC Kubernetes, utilizza le istruzioni in [create team role](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#5-create-team-role).

Per informazioni sui concetti della [Policy](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md) politica dei cluster EKS per la governance dei task, consulta. HyperPod 

**Creare politiche di governance delle HyperPod attività**

Questa procedura presuppone che tu abbia già creato un cluster Amazon EKS configurato con HyperPod. Se non l’hai ancora fatto, consulta [Creazione di un SageMaker HyperPod cluster con l'orchestrazione di Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md).

1. Passa alla [console Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, in **HyperPodClusters**, scegli **Cluster Management**.

1. Scegli il tuo cluster Amazon EKS elencato tra **SageMaker HyperPodi cluster.**

1. Scegliere la scheda **Policy**.

1. Per creare la **Policy del cluster**:

   1. Scegli **Modifica** per aggiornare il modo in cui viene assegnata la priorità alle attività e vengono allocate le risorse di calcolo inattive.

   1. Dopo avere apportato le modifiche, scegli **Invia**.

1. Per creare un’**Allocazione delle risorse di calcolo**:

1. 

   1. Scegli l’opzione **Crea** corrispondente. Viene visualizzata la pagina per creare un’allocazione delle risorse di calcolo.

   1. Dopo avere apportato le modifiche, scegli **Invia**.

# Modifica delle policy
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-edit"></a>

Puoi modificare le configurazioni **Policy del cluster** e **Allocazione delle risorse di calcolo** nella scheda **Policy**. Di seguito vengono fornite istruzioni su come modificare le configurazioni seguenti.
+ Modifica **Policy del cluster** per aggiornare il modo in cui viene assegnata la priorità alle attività e vengono allocate le risorse di calcolo inattive.
+ Modifica **Allocazione delle risorse di calcolo** per creare una nuova policy di allocazione delle risorse di calcolo per un team.
**Nota**  
Quando crei un'**allocazione Compute**, dovrai configurare un controllo degli accessi basato sui ruoli (RBAC) Kubernetes per gli utenti di data scientist nel namespace corrispondente per eseguire attività su cluster orchestrati con Amazon EKS. HyperPod I namespace adottano il formato `hyperpod-ns-team-name`. Per configurare un RBAC Kubernetes, utilizza le istruzioni in [create team role](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#5-create-team-role).

Per ulteriori informazioni sui concetti della politica dei cluster EKS per la governance dei task, consulta. HyperPod [Policy](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md)

**Modifica le politiche di governance delle HyperPod attività**

Questa procedura presuppone che tu abbia già creato un cluster Amazon EKS configurato con HyperPod. Se non l’hai ancora fatto, consulta [Creazione di un SageMaker HyperPod cluster con l'orchestrazione di Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md).

1. Passa alla [console Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, in **HyperPodClusters**, scegli **Cluster Management**.

1. Scegli il tuo cluster Amazon EKS elencato tra **SageMaker HyperPodi cluster.**

1. Scegliere la scheda **Policy**.

1. Per modificare la **Policy del cluster**:

   1. Scegli **Modifica** per aggiornare il modo in cui viene assegnata la priorità alle attività e vengono allocate le risorse di calcolo inattive.

   1. Dopo avere apportato le modifiche, scegli **Invia**.

1. Per modificare **Allocazione delle risorse di calcolo**:

1. 

   1. Scegli la configurazione da modificare in **Allocazione delle risorse di calcolo**. Si apre la pagina dei dettagli di configurazione.

   1. Se desideri modificare queste configurazioni, scegli **Modifica**.

   1. Dopo avere apportato le modifiche, scegli **Invia**.

# Eliminazione delle policy
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete"></a>

Puoi eliminare le configurazioni **della policy del cluster** e **dell'allocazione di Compute** utilizzando la console SageMaker AI o. AWS CLI La pagina seguente fornisce istruzioni su come eliminare le politiche e le configurazioni di governance delle SageMaker HyperPod attività.

Per ulteriori informazioni sui concetti della politica del cluster EKS sulla governance delle HyperPod attività, vedere[Policy](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md).

**Nota**  
In caso di problemi con la visualizzazione o l’eliminazione delle policy di governance delle attività, potrebbe essere necessario aggiornare il set minimo di autorizzazioni dell’amministratore del cluster. Consulta la scheda **Amazon EKS** nella sezione [Utenti IAM per l’amministratore del cluster](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin). Per ulteriori informazioni, consulta [Eliminazione dei cluster](sagemaker-hyperpod-eks-operate-console-ui-governance-troubleshoot.md#hp-eks-troubleshoot-delete-policies).

## Eliminare le politiche di governance delle HyperPod attività (console)
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete-console"></a>

Quanto segue utilizza la console SageMaker AI per eliminare le politiche di governance delle HyperPod attività.

**Nota**  
Non è possibile eliminare la **politica del cluster** (`ClusterSchedulerConfig`) utilizzando la console SageMaker AI. Per informazioni su come eseguire questa operazione utilizzando il AWS CLI, consulta[Elimina le politiche di governance delle HyperPod attività ()AWS CLI](#sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete-cli).

**Per eliminare le policy di governance delle attività (console)**

1. Passa alla [console Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/).

1. Nel riquadro di navigazione a sinistra, in **HyperPodClusters**, scegli **Cluster Management**.

1. Scegli il tuo cluster Amazon EKS elencato tra **SageMaker HyperPodi cluster.**

1. Scegliere la scheda **Policy**.

1. Per eliminare l’**allocazione delle risorse di calcolo** (`ComputeQuota`):

   1. Nella sezione **Allocazione delle risorse di calcolo**, seleziona la configurazione da eliminare.

   1. Dal menu a discesa **Azioni**, seleziona **Elimina**.

   1. Segui le istruzioni nell’interfaccia utente per completare l’attività.

## Elimina le politiche di governance delle HyperPod attività ()AWS CLI
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete-cli"></a>

Quanto segue utilizza AWS CLI per eliminare le politiche di governance delle HyperPod attività.

**Nota**  
In caso di problemi con l'utilizzo dei seguenti comandi, potrebbe essere necessario aggiornare il file AWS CLI. Per ulteriori informazioni, consulta [Installazione o aggiornamento alla versione più recente della AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

**Per eliminare le policy di governance delle attività (AWS CLI)**

Imposta innanzitutto le variabili per i AWS CLI comandi seguenti.

```
REGION=aws-region
```

1. Ottieni le *cluster-arn* informazioni associate alle politiche che desideri eliminare. Puoi usare il seguente AWS CLI comando per elencare i cluster presenti nel tuo Regione AWS.

   ```
   aws sagemaker list-clusters \
       --region ${REGION}
   ```

1. Per eliminare le allocazioni delle risorse di calcolo (`ComputeQuota`):

   1. Elenca tutte le quote di calcolo associate al cluster. HyperPod 

      ```
      aws sagemaker list-compute-quotas \
          --cluster-arn cluster-arn \
          --region ${REGION}
      ```

   1. Per ogni `compute-quota-id` che desideri eliminare, utilizza il comando seguente per eliminare la quota di calcolo.

      ```
      aws sagemaker delete-compute-quota \
          --compute-quota-id compute-quota-id \
          --region ${REGION}
      ```

1. Per eliminare le policy del cluster (`ClusterSchedulerConfig`):

   1. Elenca tutte le politiche del cluster associate al HyperPod cluster.

      ```
      aws sagemaker list-cluster-scheduler-configs \
          --cluster-arn cluster-arn \
          --region ${REGION}
      ```

   1. Per ogni `cluster-scheduler-config-id` che desideri eliminare, utilizza il comando seguente per eliminare la quota di calcolo.

      ```
      aws sagemaker delete-cluster-scheduler-config 
          --cluster-scheduler-config-id scheduler-config-id \
          --region ${REGION}
      ```

# Allocazione della quota di elaborazione nella governance delle attività di Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation"></a>

Gli amministratori del cluster possono decidere le modalità di utilizzo delle risorse di calcolo acquistate dall’organizzazione. In questo modo si riducono gli sprechi e le risorse inattive. Puoi allocare una quota di calcolo in modo tale che i team possano prendere in prestito le risorse inutilizzate gli uni dagli altri. L'allocazione delle quote di calcolo nella governance delle HyperPod attività consente agli amministratori di allocare le risorse a livello di istanza e a un livello di risorse più granulare. Questa funzionalità offre una gestione flessibile ed efficiente delle risorse per i team, consentendo un controllo granulare sulle singole risorse di calcolo, invece di richiedere l’allocazione di intere istanze. L’allocazione a livello granulare elimina le inefficienze della tradizionale allocazione a livello di istanza. Grazie a questo approccio, puoi ottimizzare l’utilizzo delle risorse e ridurre le risorse di calcolo inattive.

L’allocazione delle quote di calcolo supporta tre tipi di allocazione delle risorse: acceleratori, vCPU e memoria. Gli acceleratori sono componenti delle istanze a calcolo accelerato che eseguono funzioni, ad esempio calcoli di numeri in virgola mobile, elaborazione grafica o corrispondenza di modelli di dati. Gli acceleratori includono acceleratori Trainium e nuclei GPUs neuronali. Per la condivisione di GPU tra più team, team diversi possono ricevere allocazioni della GPU specifiche dallo stesso tipo di istanza, massimizzando l’utilizzo dell’hardware dell’acceleratore. Per i carichi di lavoro a uso intensivo di memoria che richiedono RAM aggiuntiva per la preelaborazione dei dati o gli scenari di memorizzazione nella cache dei modelli, è possibile allocare una quota di memoria superiore al rapporto predefinito. GPU-to-memory Per le attività di pre-elaborazione che richiedono ingenti risorse di CPU, oltre all’addestramento della GPU, puoi allocare risorse della CPU indipendenti.

Una volta fornito un valore, la governance delle HyperPod attività calcola il rapporto utilizzando la formula «**risorsa allocata» divisa per la quantità totale di risorse disponibili nell'istanza**. HyperPod la governance delle attività utilizza quindi questo rapporto per applicare le allocazioni predefinite ad altre risorse, ma è possibile sovrascrivere queste impostazioni predefinite e personalizzarle in base al caso d'uso. Di seguito sono riportati alcuni scenari di esempio di come la governance delle HyperPod attività alloca le risorse in base ai valori dell'utente:
+ **Specificato solo l'acceleratore**: la governance delle HyperPod attività applica il rapporto predefinito a vCPU e memoria in base ai valori dell'acceleratore.
+ È stata **specificata solo la vCPU**: la governance delle HyperPod attività calcola il rapporto e lo applica alla memoria. Gli acceleratori sono impostati su 0.
+ **Specificata solo la memoria**: la HyperPod task governance calcola il rapporto e lo applica alla vCPU perché l'elaborazione è necessaria per eseguire carichi di lavoro specificati dalla memoria. Gli acceleratori sono impostati su 0.

Per controllare a livello di codice l'allocazione delle quote, è possibile utilizzare l'oggetto e specificare le allocazioni in numeri interi. [ ComputeQuotaResourceConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ComputeQuotaResourceConfig.html)

```
{
    "ComputeQuotaConfig": {
        "ComputeQuotaResources": [{
            "InstanceType": "ml.g5.24xlarge",
            "Accelerators": "16",
            "vCpu": "200.0",
            "MemoryInGiB": "2.0"
        }]
    }
}
```

Per visualizzare tutte le allocazioni allocate, incluse quelle predefinite, utilizza l'operazione. [ DescribeComputeQuota](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeComputeQuota.html) Per aggiornare le allocazioni, utilizzare l'operazione. [ UpdateComputeQuota](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateComputeQuota.html)

Puoi anche utilizzare la HyperPod CLI per allocare quote di calcolo. Per ulteriori informazioni sulla HyperPod CLI, vedere. [Esecuzione di processi su SageMaker HyperPod cluster orchestrati da Amazon EKS](sagemaker-hyperpod-eks-run-jobs.md) L'esempio seguente dimostra come impostare le quote di calcolo utilizzando la CLI. HyperPod 

```
hyp create hyp-pytorch-job --version 1.1 --job-name sample-job \
--image 123456789012.dkr.ecr.us-west-2.amazonaws.com/ptjob:latest \
--pull-policy "Always" \
--tasks-per-node 1 \
--max-retry 1 \
--priority high-priority \
--namespace hyperpod-ns-team-name \
--queue-name hyperpod-ns-team-name-localqueue \
--instance-type sample-instance-type \
--accelerators 1 \
--vcpu 3 \
--memory 1 \
--accelerators-limit 1 \
--vcpu-limit 4 \
--memory-limit 2
```

Per allocare le quote utilizzando la console, segui questi passaggi. AWS 

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. In HyperPod Cluster, scegli **Cluster management**.

1. In **Allocazioni delle risorse di calcolo**, scegli **Crea**.

1. Se non sono ancora presenti istanze, scegli **Aggiungi allocazione** per aggiungere un’istanza.

1. In **Allocazioni**, scegli di allocare in base alle istanze o alle singole risorse. Se allochi per singole risorse, l' SageMaker IA assegna automaticamente le allocazioni ad altre risorse in base al rapporto che hai scelto. Per sostituire questa allocazione delle risorse di calcolo basata sul rapporto, utilizza l’interruttore corrispondente.

1. Ripeti le fasi 4 e 5 per configurare istanze aggiuntive.

Dopo aver assegnato la quota di elaborazione, puoi inviare lavori tramite la CLI o HyperPod . `kubectl` HyperPodpianifica in modo efficiente i carichi di lavoro in base alla quota disponibile. 

# Allocazione della quota di partizione GPU
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation-gpu-partitions"></a>

È possibile estendere l'allocazione delle quote di elaborazione per supportare il partizionamento della GPU, abilitando una condivisione dettagliata delle risorse a livello di partizione GPU. Quando il partizionamento GPU è abilitato su Support nel cluster, ogni GPU fisica può essere partizionata GPUs in più unità isolate con allocazioni multiprocessore definite di elaborazione, memoria e streaming. GPUs Per ulteriori informazioni sul partizionamento della GPU, vedere. [Utilizzo delle partizioni GPU in Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md) Puoi assegnare partizioni GPU specifiche ai team, consentendo a più team di condividere una singola GPU mantenendo l'isolamento a livello di hardware e prestazioni prevedibili.

Ad esempio, un'istanza ml.p5.48xlarge con 8 H100 GPUs può essere partizionata in partizioni GPU ed è possibile allocare singole partizioni a team diversi in base ai requisiti delle rispettive attività. Quando si specificano le allocazioni delle partizioni GPU, la HyperPod task governance calcola le quote proporzionali di vCPU e memoria in base alla partizione GPU, in modo simile all'allocazione a livello di GPU. Questo approccio massimizza l'utilizzo della GPU eliminando la capacità inattiva e abilitando la condivisione delle risorse a costi contenuti tra più attività simultanee sulla stessa GPU fisica.

## Creazione di quote di calcolo
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation-gpu-partitions-creating"></a>

```
aws sagemaker create-compute-quota \
  --name "fractional-gpu-quota" \
  --compute-quota-config '{
    "ComputeQuotaResources": [
      {
        "InstanceType": "ml.p4d.24xlarge",
        "AcceleratorPartition": {
            "Count": 4,
            "Type": "mig-1g.5gb"
        }
      }
    ],
    "ResourceSharingConfig": { 
      "Strategy": "LendAndBorrow", 
      "BorrowLimit": 100 
    }
  }'
```

## Verifica delle risorse relative alle quote
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation-gpu-partitions-verifying"></a>

```
# Check ClusterQueue
kubectl get clusterqueues
kubectl describe clusterqueue QUEUE_NAME

# Check ResourceFlavors
kubectl get resourceflavor
kubectl describe resourceflavor FLAVOR_NAME
```

# Esempi di comandi di governance delle HyperPod AWS CLI attività
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-cli"></a>

È possibile utilizzare HyperPod con EKS tramite Kubectl o tramite CLI personalizzata HyperPod. È possibile utilizzare questi comandi tramite Studio o. AWS CLI Di seguito vengono forniti esempi di governance delle SageMaker HyperPod attività su come visualizzare i dettagli del cluster utilizzando i HyperPod AWS CLI comandi. Per ulteriori informazioni, incluse le modalità di installazione, consulta il repository [HyperPod Github della CLI](https://github.com/aws/sagemaker-hyperpod-cli).

**Topics**
+ [Informazioni sulla quota del dispositivo dell’acceleratore del cluster](#hp-eks-cli-get-clusters)
+ [Invia un lavoro alla coda e allo SageMaker spazio dei nomi gestiti dall'intelligenza artificiale](#hp-eks-cli-start-job)
+ [Elenco dei processi](#hp-eks-cli-list-jobs)
+ [Informazioni dettagliate su un processo](#hp-eks-cli-get-job)
+ [Sospensione e ripresa dei processi](#hp-eks-cli-patch-job)
+ [Debug dei processi](#hp-eks-cli-other)

## Informazioni sulla quota del dispositivo dell’acceleratore del cluster
<a name="hp-eks-cli-get-clusters"></a>

Il comando di esempio seguente recupera le informazioni sulla quota del dispositivo dell’acceleratore del cluster.

```
hyperpod get-clusters -n hyperpod-ns-test-team
```

Il namespace in questo esempio, `hyperpod-ns-test-team`, viene creato in Kubernetes in base al nome del team, `test-team`, fornito durante l’allocazione delle risorse di calcolo Per ulteriori informazioni, consulta [Modifica delle policy](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-edit.md).

Risposta di esempio:

```
[
    {
        "Cluster": "hyperpod-eks-test-cluster-id",
        "InstanceType": "ml.g5.xlarge",
        "TotalNodes": 2,
        "AcceleratorDevicesAvailable": 1,
        "NodeHealthStatus=Schedulable": 2,
        "DeepHealthCheckStatus=Passed": "N/A",
        "Namespaces": {
            "hyperpod-ns-test-team": {
                "TotalAcceleratorDevices": 1,
                "AvailableAcceleratorDevices": 1
            }
        }
    }
]
```

## Invia un lavoro alla coda e allo SageMaker spazio dei nomi gestiti dall'intelligenza artificiale
<a name="hp-eks-cli-start-job"></a>

Il comando di esempio seguente invia un lavoro al cluster. HyperPod Se hai accesso a un solo team, in questo caso ti HyperPod AWS CLI assegnerà automaticamente la coda. Se invece vengono rilevate più code, verranno visualizzate tutte le possibili opzioni selezionabili.

```
hyperpod start-job --job-name hyperpod-cli-test --job-kind kubeflow/PyTorchJob --image docker.io/kubeflowkatib/pytorch-mnist-cpu:v1beta1-bc09cfd --entry-script /opt/pytorch-mnist/mnist.py --pull-policy IfNotPresent --instance-type ml.g5.xlarge --node-count 1 --tasks-per-node 1 --results-dir ./result --priority training-priority
```

Le classi di priorità sono definite in **Policy del cluster**, che specifica il modo in cui viene assegnata la priorità alle attività e vengono allocate le risorse di calcolo inattive. Quando un Data Scientist invia un processo, utilizza uno dei nomi delle classi di priorità con il formato `priority-class-name-priority`. In questo esempio, `training-priority` si riferisce alla classe di priorità denominata “addestramento”. Per ulteriori informazioni sui concetti della policy, consulta [Policy](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md).

Se non viene specificata una classe di priorità, il processo viene considerato a bassa priorità, con un valore di classificazione delle attività pari a 0. 

Se viene specificata una classe di priorità, che però non corrisponde a una delle classi di priorità definite in **Policy del cluster**, l’invio non riesce e viene visualizzato un messaggio di errore che riporta il set definito di classi di priorità.

Puoi inviare il processo anche tramite un file di configurazione YAML con il comando seguente: 

```
hyperpod start-job --config-file ./yaml-configuration-file-name.yaml
```

Di seguito è riportato un esempio di file di configurazione YAML che equivale all’operazione di invio di un processo, come discusso in precedenza.

```
defaults:
  - override hydra/job_logging: stdout
hydra:
  run:
    dir: .
  output_subdir: null
training_cfg:
  entry_script: /opt/pytorch-mnist/mnist.py
  script_args: []
  run:
    name: hyperpod-cli-test
    nodes: 1
    ntasks_per_node: 1
cluster:
  cluster_type: k8s
  instance_type: ml.g5.xlarge
  custom_labels:
    kueue.x-k8s.io/priority-class: training-priority
  cluster_config:
    label_selector:
      required:
        sagemaker.amazonaws.com/node-health-status:
          - Schedulable
      preferred:
        sagemaker.amazonaws.com/deep-health-check-status:
          - Passed
      weights:
        - 100
    pullPolicy: IfNotPresent
base_results_dir: ./result
container: docker.io/kubeflowkatib/pytorch-mnist-cpu:v1beta1-bc09cfd
env_vars:
  NCCL_DEBUG: INFO
```

In alternativa, puoi inviare un processo con `kubectl` per garantire che l’attività venga visualizzata nella scheda **Dashboard**. Il seguente è un comando kubectl di esempio.

```
kubectl apply -f ./yaml-configuration-file-name.yaml
```

Quando invii il processo, includi il nome della coda e le etichette della classe di priorità. Ad esempio, con il nome della coda `hyperpod-ns-team-name-localqueue` e la classe di priorità `priority-class-name-priority`, devi includere le seguenti etichette:
+ `kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue` 
+ `kueue.x-k8s.io/priority-class: priority-class-name-priority`

Il frammento di configurazione YAML seguente mostra come aggiungere etichette al file di configurazione originale per garantire che l’attività venga visualizzata nella scheda **Dashboard**:

```
metadata:
    name: job-name
    namespace: hyperpod-ns-team-name
    labels:
        kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue
        kueue.x-k8s.io/priority-class: priority-class-name-priority
```

## Elenco dei processi
<a name="hp-eks-cli-list-jobs"></a>

Il comando seguente elenca i processi e i relativi dettagli.

```
hyperpod list-jobs
```

Risposta di esempio:

```
{
    "jobs": [
        {
            "Name": "hyperpod-cli-test",
            "Namespace": "hyperpod-ns-test-team",
            "CreationTime": "2024-11-18T21:21:15Z",
            "Priority": "training",
            "State": "Succeeded"
        }
    ]
}
```

## Informazioni dettagliate su un processo
<a name="hp-eks-cli-get-job"></a>

Il comando seguente fornisce i dettagli di un processo. Se non viene specificato alcun namespace, HyperPod AWS CLI recupererà uno spazio dei nomi gestito dall' SageMaker IA a cui hai accesso.

```
hyperpod get-job --job-name hyperpod-cli-test
```

Risposta di esempio:

```
{
    "Name": "hyperpod-cli-test",
    "Namespace": "hyperpod-ns-test-team",
    "Label": {
        "app": "hyperpod-cli-test",
        "app.kubernetes.io/managed-by": "Helm",
        "kueue.x-k8s.io/priority-class": "training"
    },
    "CreationTimestamp": "2024-11-18T21:21:15Z",
    "Status": {
        "completionTime": "2024-11-18T21:25:24Z",
        "conditions": [
            {
                "lastTransitionTime": "2024-11-18T21:21:15Z",
                "lastUpdateTime": "2024-11-18T21:21:15Z",
                "message": "PyTorchJob hyperpod-cli-test is created.",
                "reason": "PyTorchJobCreated",
                "status": "True",
                "type": "Created"
            },
            {
                "lastTransitionTime": "2024-11-18T21:21:17Z",
                "lastUpdateTime": "2024-11-18T21:21:17Z",
                "message": "PyTorchJob hyperpod-ns-test-team/hyperpod-cli-test is running.",
                "reason": "PyTorchJobRunning",
                "status": "False",
                "type": "Running"
            },
            {
                "lastTransitionTime": "2024-11-18T21:25:24Z",
                "lastUpdateTime": "2024-11-18T21:25:24Z",
                "message": "PyTorchJob hyperpod-ns-test-team/hyperpod-cli-test successfully completed.",
                "reason": "PyTorchJobSucceeded",
                "status": "True",
                "type": "Succeeded"
            }
        ],
            "replicaStatuses": {
                "Worker": {
                    "selector": "training.kubeflow.org/job-name=hyperpod-cli-test,training.kubeflow.org/operator-name=pytorchjob-controller,training.kubeflow.org/replica-type=worker",
                    "succeeded": 1
                }
            },
        "startTime": "2024-11-18T21:21:15Z"
    },
    "ConsoleURL": "https://us-west-2.console.aws.amazon.com/sagemaker/home?region=us-west-2#/cluster-management/hyperpod-eks-test-cluster-id“
}
```

## Sospensione e ripresa dei processi
<a name="hp-eks-cli-patch-job"></a>

Se si desidera rimuovere alcuni lavori inviati dallo scheduler, HyperPod AWS CLI fornisce il `suspend` comando per rimuovere temporaneamente il lavoro dall'orchestrazione. Il processo sospeso non sarà più pianificato a meno che non venga ripreso manualmente con il comando `unsuspend`.

Per sospendere temporaneamente un processo:

```
hyperpod patch-job suspend --job-name hyperpod-cli-test
```

Per aggiungere nuovamente un processo alla coda:

```
hyperpod patch-job unsuspend --job-name hyperpod-cli-test
```

## Debug dei processi
<a name="hp-eks-cli-other"></a>

Fornisce HyperPod AWS CLI anche altri comandi per il debug dei problemi di invio dei lavori. Ad esempio `list-pods` e `get-logs` nel repository HyperPod AWS CLI Github.

# Risoluzione dei problemi
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-troubleshoot"></a>

La pagina seguente contiene soluzioni note per la risoluzione dei problemi dei cluster EKS. HyperPod

**Topics**
+ [Scheda Pannello di controllo](#hp-eks-troubleshoot-dashboard)
+ [Scheda Attività](#hp-eks-troubleshoot-tasks)
+ [Policy](#hp-eks-troubleshoot-policies)
+ [Eliminazione dei cluster](#hp-eks-troubleshoot-delete-policies)
+ [Condivisione di risorse non allocate](#hp-eks-troubleshoot-unallocated-resource-sharing)

## Scheda Pannello di controllo
<a name="hp-eks-troubleshoot-dashboard"></a>

**Installazione non riuscita del componente aggiuntivo EKS**

Per installare correttamente il componente aggiuntivo EKS, è necessaria una versione di Kubernets >= 1.30. Per l’aggiornamento, consulta [Update Kubernetes version](https://docs.aws.amazon.com/eks/latest/userguide/update-cluster.html).

Per installare correttamente il componente aggiuntivo EKS, tutti i nodi devono essere in stato **Pronto** e tutti i pod devono essere in stato **In esecuzione**. 

Per verificare lo stato dei nodi, utilizza il [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-cluster-nodes.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-cluster-nodes.html) AWS CLI comando o accedi al cluster EKS nella [console EKS](https://console.aws.amazon.com/eks/home#/clusters) e visualizza lo stato dei nodi. Risolvi il problema per ogni nodo o contatta il tuo amministratore. Se lo stato del nodo è **Sconosciuto**, elimina il nodo. Una volta che tutti gli stati dei nodi sono **pronti**, riprova a installare il componente aggiuntivo EKS HyperPod dalla console [Amazon SageMaker ](https://console.aws.amazon.com/sagemaker/) AI.

Per controllare lo stato dei pod, utilizza il comando della [CLI di Kubernetes](https://kubernetes.io/docs/reference/kubectl/) `kubectl get pods -n cloudwatch-agent` o accedi al cluster EKS nella [console EKS](https://console.aws.amazon.com/eks/home#/clusters) e visualizza lo stato dei pod con il namespace `cloudwatch-agent`. Risolvi il problema dei pod o contatta il tuo amministratore. Una volta che tutti gli stati del pod sono **in esecuzione**, riprova a installare il componente aggiuntivo EKS HyperPod dalla console [Amazon SageMaker ](https://console.aws.amazon.com/sagemaker/) AI.

Per ulteriori informazioni sulla risoluzione dei problemi, consulta [Risoluzione dei problemi del componente aggiuntivo Amazon CloudWatch Observability EKS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Observability-EKS-addon.html#Container-Insights-setup-EKS-addon-troubleshoot).

## Scheda Attività
<a name="hp-eks-troubleshoot-tasks"></a>

Se viene visualizzato il messaggio di errore relativo alla **mancata configurazione della Definizione di risorse personalizzate (CRD) nel cluster**, assegna le policy `EKSAdminViewPolicy` e `ClusterAccessRole` al ruolo di esecuzione del dominio. 
+ Per informazioni su come ottenere il ruolo di esecuzione, consulta [Acquisizione del ruolo di esecuzione](sagemaker-roles.md#sagemaker-roles-get-execution-role).
+ Per informazioni su come collegare le policy a un utente o a un gruppo IAM, consulta [Adding and removing IAM identity permissions](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).

## Policy
<a name="hp-eks-troubleshoot-policies"></a>

Di seguito sono elencate le soluzioni agli errori relativi alle politiche che utilizzano la console HyperPod APIs or.
+ Se la policy è in stato `CreateFailed` o `CreateRollbackFailed`, devi eliminare la policy non riuscita e crearne una nuova.
+ Se la policy è in stato `UpdateFailed`, prova a eseguire di nuovo l’aggiornamento con lo stesso ARN della policy.
+ Se la policy è in stato `UpdateRollbackFailed`, devi eliminare la policy non riuscita e crearne una nuova.
+ Se la policy è in stato `DeleteFailed` o `DeleteRollbackFailed`, prova a eliminarla di nuovo con lo stesso ARN della policy.
  + Se hai riscontrato un errore durante il tentativo di eliminare la **prioritizzazione di Compute**, o la policy del cluster, utilizzando la HyperPod console, prova a eliminarlo `cluster-scheduler-config` utilizzando l'API. Per verificare lo stato della risorsa, vai alla pagina dei dettagli di un’allocazione delle risorse di calcolo.

Per visualizzare maggiori dettagli sull’errore, utilizza l’API describe.

## Eliminazione dei cluster
<a name="hp-eks-troubleshoot-delete-policies"></a>

Di seguito sono elencate le soluzioni note per gli errori relativi all’eliminazione dei cluster.
+ Se l'eliminazione del cluster fallisce a causa delle politiche di governance delle SageMaker HyperPod attività allegate, dovrai farlo. [Eliminazione delle policy](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete.md)
+ Se l’eliminazione del cluster non riesce perché mancano le autorizzazioni seguenti, devi aggiornare il set minimo di autorizzazioni dell’amministratore del cluster. Consulta la scheda **Amazon EKS** nella sezione [Utenti IAM per l’amministratore del cluster](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin).
  + `sagemaker:ListComputeQuotas`
  + `sagemaker:ListClusterSchedulerConfig`
  + `sagemaker:DeleteComputeQuota`
  + `sagemaker:DeleteClusterSchedulerConfig`

## Condivisione di risorse non allocate
<a name="hp-eks-troubleshoot-unallocated-resource-sharing"></a>

Se la capacità del pool di risorse non allocate è inferiore al previsto:

1. **Verifica lo stato di disponibilità del nodo**

   ```
   kubectl get nodes
   ```

   Verifica che tutti i nodi mostrino `Ready` lo stato nella colonna STATUS.

1. **Controlla lo stato di pianificazione del nodo**

   ```
   kubectl get nodes -o custom-columns=NAME:.metadata.name,UNSCHEDULABLE:.spec.unschedulable
   ```

   Verifica che i nodi mostrino `<none>` o `false` (no`true`).

1. **Elenca la condivisione di risorse non allocate: ClusterQueues**

   ```
   kubectl get clusterqueue | grep hyperpod-ns-idle-resource-sharing
   ```

   Questo mostra tutte le condivisioni di risorse non allocate. ClusterQueues Se non ClusterQueues vengono visualizzati, controlla la ClusterSchedulerConfig politica `FailureReason` sottostante per vedere se ci sono messaggi di errore per continuare il debug.

1. **Verifica la quota di condivisione delle risorse non allocate:**

   ```
   kubectl describe clusterqueue hyperpod-ns-idle-resource-sharing-<index>
   ```

   Controlla la `spec.resourceGroups[].flavors[].resources` sezione per vedere la quota assegnata per ogni tipo di risorsa.

    ClusterQueues Può esistere una condivisione multipla di risorse non allocate a seconda del numero di tipologie di risorse presenti nel cluster. 

1. **Verifica lo stato della configurazione MIG (nodi GPU):**

   ```
   kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.nvidia\.com/mig\.config\.state}{"\n"}{end}'
   ```

   Verifica che i nodi abilitati a MIG mostrino lo stato. `success`

# Documento di attribuzione per la governance delle SageMaker HyperPod attività di Amazon
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-attributions"></a>

Di seguito puoi scoprire le attribuzioni e le licenze di terze parti per il materiale utilizzato nella SageMaker HyperPod task governance di Amazon.

**Topics**
+ [[base-files](https://packages.debian.org/bookworm/base-files)](#hp-eks-task-governance-attributions-base-files)
+ [[netbase](https://packages.debian.org/source/stable/netbase)](#hp-eks-task-governance-attributions-netbase)
+ [[golang-lru](https://github.com/hashicorp/golang-lru)](#hp-eks-task-governance-attributions-golang-lru)

## [base-files](https://packages.debian.org/bookworm/base-files)
<a name="hp-eks-task-governance-attributions-base-files"></a>

```
This is the Debian prepackaged version of the Debian Base System
Miscellaneous files. These files were written by Ian Murdock
<imurdock@debian.org> and Bruce Perens <bruce@pixar.com>.

This package was first put together by Bruce Perens <Bruce@Pixar.com>,
from his own sources.

The GNU Public Licenses in /usr/share/common-licenses were taken from
ftp.gnu.org and are copyrighted by the Free Software Foundation, Inc.

The Artistic License in /usr/share/common-licenses is the one coming
from Perl and its SPDX name is "Artistic License 1.0 (Perl)".


Copyright © 1995-2011 Software in the Public Interest.

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

On Debian systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL'.
```

## [netbase](https://packages.debian.org/source/stable/netbase)
<a name="hp-eks-task-governance-attributions-netbase"></a>

```
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Comment:
 This package was created by Peter Tobias tobias@et-inf.fho-emden.de on
 Wed, 24 Aug 1994 21:33:28 +0200 and maintained by Anthony Towns
 <ajt@debian.org> until 2001.
 It is currently maintained by Marco d'Itri <md@linux.it>.

Files: *
Copyright:
 Copyright © 1994-1998 Peter Tobias
 Copyright © 1998-2001 Anthony Towns
 Copyright © 2002-2022 Marco d'Itri
License: GPL-2
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License, version 2, as
 published by the Free Software Foundation.
 .
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 .
 You should have received a copy of the GNU General Public License along
 with this program; if not, write to the Free Software Foundation,
 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 .
 On Debian systems, the complete text of the GNU General Public License
 version 2 can be found in '/usr/share/common-licenses/GPL-2'.
```

## [golang-lru](https://github.com/hashicorp/golang-lru)
<a name="hp-eks-task-governance-attributions-golang-lru"></a>

```
Copyright © 2014 HashiCorp, Inc.

Mozilla Public License, version 2.0

1. Definitions

1.1. "Contributor"

     means each individual or legal entity that creates, contributes to the
     creation of, or owns Covered Software.

1.2. "Contributor Version"

     means the combination of the Contributions of others (if any) used by a
     Contributor and that particular Contributor's Contribution.

1.3. "Contribution"

     means Covered Software of a particular Contributor.

1.4. "Covered Software"

     means Source Code Form to which the initial Contributor has attached the
     notice in Exhibit A, the Executable Form of such Source Code Form, and
     Modifications of such Source Code Form, in each case including portions
     thereof.

1.5. "Incompatible With Secondary Licenses"
     means

     a. that the initial Contributor has attached the notice described in
        Exhibit B to the Covered Software; or

     b. that the Covered Software was made available under the terms of
        version 1.1 or earlier of the License, but not also under the terms of
        a Secondary License.

1.6. "Executable Form"

     means any form of the work other than Source Code Form.

1.7. "Larger Work"

     means a work that combines Covered Software with other material, in a
     separate file or files, that is not Covered Software.

1.8. "License"

     means this document.

1.9. "Licensable"

     means having the right to grant, to the maximum extent possible, whether
     at the time of the initial grant or subsequently, any and all of the
     rights conveyed by this License.

1.10. "Modifications"

     means any of the following:

     a. any file in Source Code Form that results from an addition to,
        deletion from, or modification of the contents of Covered Software; or

     b. any new file in Source Code Form that contains any Covered Software.

1.11. "Patent Claims" of a Contributor

      means any patent claim(s), including without limitation, method,
      process, and apparatus claims, in any patent Licensable by such
      Contributor that would be infringed, but for the grant of the License,
      by the making, using, selling, offering for sale, having made, import,
      or transfer of either its Contributions or its Contributor Version.

1.12. "Secondary License"

      means either the GNU General Public License, Version 2.0, the GNU Lesser
      General Public License, Version 2.1, the GNU Affero General Public
      License, Version 3.0, or any later versions of those licenses.

1.13. "Source Code Form"

      means the form of the work preferred for making modifications.

1.14. "You" (or "Your")

      means an individual or a legal entity exercising rights under this
      License. For legal entities, "You" includes any entity that controls, is
      controlled by, or is under common control with You. For purposes of this
      definition, "control" means (a) the power, direct or indirect, to cause
      the direction or management of such entity, whether by contract or
      otherwise, or (b) ownership of more than fifty percent (50%) of the
      outstanding shares or beneficial ownership of such entity.


2. License Grants and Conditions

2.1. Grants

     Each Contributor hereby grants You a world-wide, royalty-free,
     non-exclusive license:

     a. under intellectual property rights (other than patent or trademark)
        Licensable by such Contributor to use, reproduce, make available,
        modify, display, perform, distribute, and otherwise exploit its
        Contributions, either on an unmodified basis, with Modifications, or
        as part of a Larger Work; and

     b. under Patent Claims of such Contributor to make, use, sell, offer for
        sale, have made, import, and otherwise transfer either its
        Contributions or its Contributor Version.

2.2. Effective Date

     The licenses granted in Section 2.1 with respect to any Contribution
     become effective for each Contribution on the date the Contributor first
     distributes such Contribution.

2.3. Limitations on Grant Scope

     The licenses granted in this Section 2 are the only rights granted under
     this License. No additional rights or licenses will be implied from the
     distribution or licensing of Covered Software under this License.
     Notwithstanding Section 2.1(b) above, no patent license is granted by a
     Contributor:

     a. for any code that a Contributor has removed from Covered Software; or

     b. for infringements caused by: (i) Your and any other third party's
        modifications of Covered Software, or (ii) the combination of its
        Contributions with other software (except as part of its Contributor
        Version); or

     c. under Patent Claims infringed by Covered Software in the absence of
        its Contributions.

     This License does not grant any rights in the trademarks, service marks,
     or logos of any Contributor (except as may be necessary to comply with
     the notice requirements in Section 3.4).

2.4. Subsequent Licenses

     No Contributor makes additional grants as a result of Your choice to
     distribute the Covered Software under a subsequent version of this
     License (see Section 10.2) or under the terms of a Secondary License (if
     permitted under the terms of Section 3.3).

2.5. Representation

     Each Contributor represents that the Contributor believes its
     Contributions are its original creation(s) or it has sufficient rights to
     grant the rights to its Contributions conveyed by this License.

2.6. Fair Use

     This License is not intended to limit any rights You have under
     applicable copyright doctrines of fair use, fair dealing, or other
     equivalents.

2.7. Conditions

     Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in
     Section 2.1.


3. Responsibilities

3.1. Distribution of Source Form

     All distribution of Covered Software in Source Code Form, including any
     Modifications that You create or to which You contribute, must be under
     the terms of this License. You must inform recipients that the Source
     Code Form of the Covered Software is governed by the terms of this
     License, and how they can obtain a copy of this License. You may not
     attempt to alter or restrict the recipients' rights in the Source Code
     Form.

3.2. Distribution of Executable Form

     If You distribute Covered Software in Executable Form then:

     a. such Covered Software must also be made available in Source Code Form,
        as described in Section 3.1, and You must inform recipients of the
        Executable Form how they can obtain a copy of such Source Code Form by
        reasonable means in a timely manner, at a charge no more than the cost
        of distribution to the recipient; and

     b. You may distribute such Executable Form under the terms of this
        License, or sublicense it under different terms, provided that the
        license for the Executable Form does not attempt to limit or alter the
        recipients' rights in the Source Code Form under this License.

3.3. Distribution of a Larger Work

     You may create and distribute a Larger Work under terms of Your choice,
     provided that You also comply with the requirements of this License for
     the Covered Software. If the Larger Work is a combination of Covered
     Software with a work governed by one or more Secondary Licenses, and the
     Covered Software is not Incompatible With Secondary Licenses, this
     License permits You to additionally distribute such Covered Software
     under the terms of such Secondary License(s), so that the recipient of
     the Larger Work may, at their option, further distribute the Covered
     Software under the terms of either this License or such Secondary
     License(s).

3.4. Notices

     You may not remove or alter the substance of any license notices
     (including copyright notices, patent notices, disclaimers of warranty, or
     limitations of liability) contained within the Source Code Form of the
     Covered Software, except that You may alter any license notices to the
     extent required to remedy known factual inaccuracies.

3.5. Application of Additional Terms

     You may choose to offer, and to charge a fee for, warranty, support,
     indemnity or liability obligations to one or more recipients of Covered
     Software. However, You may do so only on Your own behalf, and not on
     behalf of any Contributor. You must make it absolutely clear that any
     such warranty, support, indemnity, or liability obligation is offered by
     You alone, and You hereby agree to indemnify every Contributor for any
     liability incurred by such Contributor as a result of warranty, support,
     indemnity or liability terms You offer. You may include additional
     disclaimers of warranty and limitations of liability specific to any
     jurisdiction.

4. Inability to Comply Due to Statute or Regulation

   If it is impossible for You to comply with any of the terms of this License
   with respect to some or all of the Covered Software due to statute,
   judicial order, or regulation then You must: (a) comply with the terms of
   this License to the maximum extent possible; and (b) describe the
   limitations and the code they affect. Such description must be placed in a
   text file included with all distributions of the Covered Software under
   this License. Except to the extent prohibited by statute or regulation,
   such description must be sufficiently detailed for a recipient of ordinary
   skill to be able to understand it.

5. Termination

5.1. The rights granted under this License will terminate automatically if You
     fail to comply with any of its terms. However, if You become compliant,
     then the rights granted under this License from a particular Contributor
     are reinstated (a) provisionally, unless and until such Contributor
     explicitly and finally terminates Your grants, and (b) on an ongoing
     basis, if such Contributor fails to notify You of the non-compliance by
     some reasonable means prior to 60 days after You have come back into
     compliance. Moreover, Your grants from a particular Contributor are
     reinstated on an ongoing basis if such Contributor notifies You of the
     non-compliance by some reasonable means, this is the first time You have
     received notice of non-compliance with this License from such
     Contributor, and You become compliant prior to 30 days after Your receipt
     of the notice.

5.2. If You initiate litigation against any entity by asserting a patent
     infringement claim (excluding declaratory judgment actions,
     counter-claims, and cross-claims) alleging that a Contributor Version
     directly or indirectly infringes any patent, then the rights granted to
     You by any and all Contributors for the Covered Software under Section
     2.1 of this License shall terminate.

5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user
     license agreements (excluding distributors and resellers) which have been
     validly granted by You or Your distributors under this License prior to
     termination shall survive termination.

6. Disclaimer of Warranty

   Covered Software is provided under this License on an "as is" basis,
   without warranty of any kind, either expressed, implied, or statutory,
   including, without limitation, warranties that the Covered Software is free
   of defects, merchantable, fit for a particular purpose or non-infringing.
   The entire risk as to the quality and performance of the Covered Software
   is with You. Should any Covered Software prove defective in any respect,
   You (not any Contributor) assume the cost of any necessary servicing,
   repair, or correction. This disclaimer of warranty constitutes an essential
   part of this License. No use of  any Covered Software is authorized under
   this License except under this disclaimer.

7. Limitation of Liability

   Under no circumstances and under no legal theory, whether tort (including
   negligence), contract, or otherwise, shall any Contributor, or anyone who
   distributes Covered Software as permitted above, be liable to You for any
   direct, indirect, special, incidental, or consequential damages of any
   character including, without limitation, damages for lost profits, loss of
   goodwill, work stoppage, computer failure or malfunction, or any and all
   other commercial damages or losses, even if such party shall have been
   informed of the possibility of such damages. This limitation of liability
   shall not apply to liability for death or personal injury resulting from
   such party's negligence to the extent applicable law prohibits such
   limitation. Some jurisdictions do not allow the exclusion or limitation of
   incidental or consequential damages, so this exclusion and limitation may
   not apply to You.

8. Litigation

   Any litigation relating to this License may be brought only in the courts
   of a jurisdiction where the defendant maintains its principal place of
   business and such litigation shall be governed by laws of that
   jurisdiction, without reference to its conflict-of-law provisions. Nothing
   in this Section shall prevent a party's ability to bring cross-claims or
   counter-claims.

9. Miscellaneous

   This License represents the complete agreement concerning the subject
   matter hereof. If any provision of this License is held to be
   unenforceable, such provision shall be reformed only to the extent
   necessary to make it enforceable. Any law or regulation which provides that
   the language of a contract shall be construed against the drafter shall not
   be used to construe this License against a Contributor.


10. Versions of the License

10.1. New Versions

      Mozilla Foundation is the license steward. Except as provided in Section
      10.3, no one other than the license steward has the right to modify or
      publish new versions of this License. Each version will be given a
      distinguishing version number.

10.2. Effect of New Versions

      You may distribute the Covered Software under the terms of the version
      of the License under which You originally received the Covered Software,
      or under the terms of any subsequent version published by the license
      steward.

10.3. Modified Versions

      If you create software not governed by this License, and you want to
      create a new license for such software, you may create and use a
      modified version of this License if you rename the license and remove
      any references to the name of the license steward (except to note that
      such modified license differs from this License).

10.4. Distributing Source Code Form that is Incompatible With Secondary
      Licenses If You choose to distribute Source Code Form that is
      Incompatible With Secondary Licenses under the terms of this version of
      the License, the notice described in Exhibit B of this License must be
      attached.

Exhibit A - Source Code Form License Notice

      This Source Code Form is subject to the
      terms of the Mozilla Public License, v.
      2.0. If a copy of the MPL was not
      distributed with this file, You can
      obtain one at
      http://mozilla.org/MPL/2.0/.

If it is not possible or desirable to put the notice in a particular file,
then You may include the notice in a location (such as a LICENSE file in a
relevant directory) where a recipient would be likely to look for such a
notice.

You may add additional accurate notices of copyright ownership.

Exhibit B - "Incompatible With Secondary Licenses" Notice

      This Source Code Form is "Incompatible
      With Secondary Licenses", as defined by
      the Mozilla Public License, v. 2.0.
```

# Report sull'utilizzo per l'attribuzione dei costi in SageMaker HyperPod
<a name="sagemaker-hyperpod-usage-reporting"></a>

Il reporting sull'utilizzo nei cluster SageMaker HyperPod orchestrati da EKS offre una visibilità granulare sul consumo delle risorse di elaborazione. Questa funzionalità consente alle organizzazioni di implementare un’attribuzione trasparente dei costi, allocando i costi dei cluster a team, progetti o reparti in base al loro utilizzo effettivo. [Grazie al monitoraggio di parametri come le GPU/CPU ore e l'utilizzo di Neuron Core, rilevati *sia negli aggregati a livello di team che nelle suddivisioni specifiche delle attività, la reportistica sull'utilizzo integra la funzionalità Task Governance di Task Governance, garantendo un'equa distribuzione dei* costi in cluster multi-tenant condivisi mediante: HyperPod](sagemaker-hyperpod-eks-operate-console-ui-governance.md)
+ Eliminazione delle ipotesi nell’allocazione dei costi
+ Collegamento diretto delle spese al consumo misurabile delle risorse
+ Applicazione della responsabilità basata sull’utilizzo in ambienti di infrastruttura condivisi

## Prerequisiti
<a name="sagemaker-hyperpod-usage-reporting-prerequisites"></a>

Per visualizzare questa funzionalità:
+ Hai bisogno di:
  + Un **SageMaker HyperPod ambiente** attivo con un cluster orchestrato da EKS in esecuzione.
  + (Consigliato vivamente) **Governance delle attività configurata** con quote di calcolo e regole di priorità. Per istruzioni sulla configurazione, consulta [Configurazione della governance delle attività](sagemaker-hyperpod-eks-operate-console-ui-governance-setup.md).
+ Acquisire familiarità con questi concetti fondamentali:
  + **Quota di calcolo allocata**: risorse riservate a un team in base a quote predefinite nelle sue policy di governance delle attività. Si tratta della *capacità garantita* per i carichi di lavoro del team.
  + **Risorse di calcolo prese in prestito:** risorse inattive nel pool del cluster condiviso che i team possono utilizzare temporaneamente *in aggiunta alla loro quota assegnata*. Le risorse di calcolo prese in prestito vengono assegnate dinamicamente in base alle regole di priorità definite nelle policy di governance delle attività e alla disponibilità delle risorse inutilizzate.
  + **Utilizzo del calcolo:** la misurazione delle risorse (GPU, CPU, ore di core Neuron) consumate da un team, definite come:
    + **Utilizzo allocato**: utilizzo compreso nella quota del team.
    + **Utilizzo preso in prestito**: utilizzo eccedente la quota, preso dal pool condiviso.
  + **Attribuzione dei costi:** il processo di allocazione dei costi del cluster ai team in base all’*utilizzo effettivo delle risorse di calcolo*, che include sia le risorse comprese nella quota predefinita che le risorse prese temporaneamente dal pool del cluster condiviso in aggiunta alla quota allocata.

## Tipi di report
<a name="sagemaker-hyperpod-usage-reporting-report-types"></a>

HyperPodi report sull'utilizzo forniscono una granularità operativa variabile:
+ **I report di riepilogo** *forniscono una visibilità a livello aziendale sull'utilizzo delle risorse di calcolo, aggregando le ore GPU/CPU/Neuron Core totali per team (namespace) e distinguendo tra *utilizzo regolare* (risorse provenienti dalla quota allocata del team) ed elaborazione presa in prestito (capacità di sovraccarico da pool condivisi).*
+ I **report dettagliati** offrono suddivisioni a livello di attività per ogni team, tenendo traccia delle ore di calcolo esatte dedicate all’esecuzione di attività specifiche, tra cui attività prerilasciate, modelli di utilizzo orari e allocazioni specifiche per il namespace.

**Importante**  
HyperPod i report sull'utilizzo tengono traccia dell'utilizzo dell'elaborazione in *tutti i namespace Kubernetes* in un cluster, inclusi quelli gestiti da Task Governance, i namespace predefiniti e i namespace creati **al di fuori di Task Governance** (ad esempio, tramite chiamate API Kubernetes dirette o strumenti esterni). Questo monitoraggio a livello di infrastruttura garantisce una responsabilità completa basata sull’utilizzo e previene le incoerenze nell’attribuzione dei costi per i cluster condivisi, indipendentemente dal modo in cui vengono gestiti i namespace.

## Formati e intervallo di tempo dei report
<a name="sagemaker-hyperpod-usage-reporting-formats"></a>

Utilizzando lo script Python fornito in [Generazione di report](sagemaker-hyperpod-usage-reporting-generate.md), gli amministratori possono generare report di utilizzo on demand in formato CSV o PDF, selezionando intervalli di tempo che vanno da snapshot giornalieri a finestre cronologiche di 180 giorni (6 mesi).

**Nota**  
Quando configuri l’infrastruttura per la creazione di report, puoi configurare la finestra cronologica in modo che vada oltre il valore massimo predefinito di 180 giorni. Per ulteriori informazioni sulla configurazione del periodo di [conservazione dei CloudFormation dati](https://github.com/awslabs/sagemaker-hyperpod-usage-report/blob/main/README.md#install-usage-report-infrastructure-using-cloudformation), consulta Installare l'infrastruttura dei report di utilizzo utilizzando. 

## Casi d’uso illustrativi
<a name="sagemaker-hyperpod-usage-reporting-use-cases"></a>

Questa funzionalità affronta scenari critici in AI/ML ambienti multi-tenant come:

1. **Allocazione dei costi per i cluster condivisi**: un amministratore gestisce un HyperPod cluster condiviso da 20 team che addestrano modelli di intelligenza artificiale generativa. Utilizzando un *report di riepilogo sull’utilizzo*, analizza l’utilizzo giornaliero della GPU per 180 giorni e rileva che il Team A ha consumato 200 ore di GPU per un tipo di istanza specifico, 170 dalla sua quota allocata e 30 dalle risorse di calcolo prese in prestito. L’amministratore fattura il Team A in base all’utilizzo rilevato.

1. **Audit e risoluzione delle controversie**: un team finanziario mette in dubbio l’accuratezza dell’attribuzione dei costi, menzionando la presenza di incongruenze. L’amministratore può esportare un *report dettagliato a livello di attività* per verificare le discrepanze. Incrociando i timestamp, i tipi di istanze e i processi prerilasciati all’interno del namespace del team, il report riconcilia in modo trasparente i dati di utilizzo contestati.

# Dettagli dei report e suddivisione dei dati
<a name="sagemaker-hyperpod-usage-reporting-content"></a>

SageMaker HyperPodi report sull'utilizzo forniscono due obiettivi distinti per l'analisi del consumo di risorse di calcolo: report di **riepilogo per l'allocazione dei costi e report** **dettagliati** per il controllo granulare. I report di riepilogo aggregano l’utilizzo a livello di cluster per team o namespace, evidenziando le tendenze nel confronto tra risorse di calcolo allocate e risorse di calcolo prese in prestito in tutte le risorse GPU, CPU e core Neuron. I report dettagliati analizzano le singole attività, esponendo metriche come le finestre di esecuzione, lo stato delle attività e l’utilizzo delle classi di priorità. In questa sezione, analizziamo la struttura di questi report, ne comprendiamo le metriche chiave e mostriamo come amministratori e team finanziari possono incrociare le tendenze nei riepiloghi con i dati a livello di attività per convalidare l’accuratezza dell’attribuzione dei costi, risolvere le discrepanze e ottimizzare l’infrastruttura condivisa.

## Intestazioni di report comuni
<a name="sagemaker-hyperpod-usage-reporting-content-headers"></a>

Sia i report di riepilogo che quelli dettagliati includono i metadati seguenti per contestualizzare i dati di utilizzo:
+ **ClusterName: il nome del cluster** Hyperpod orchestrato da EKS in cui sono state consumate le risorse.
+ **Tipo:** la categoria del report (`Summary Utilization Report` o `Detailed Utilization Report`).
+ **Data di generazione:** la data di creazione del report, ad esempio `2025-04-18`.
+ **Intervallo di date (UTC):** il periodo di tempo coperto, ad esempio `2025-04-16 to 2025-04-18`.
+ **Periodi di dati mancanti:** interruzioni nella raccolta dei dati dovute a tempi di inattività del cluster o a problemi di monitoraggio, ad esempio `2025-04-16 00:00:00 to 2025-04-19 00:00:00`.

## Report di riepilogo
<a name="sagemaker-hyperpod-usage-reporting-content-summary"></a>

I report di riepilogo forniscono una panoramica generale quotidiana del consumo di risorse di calcolo tra team/namespace e tra tipi di istanze, distinguendo tra l’utilizzo di risorse allocate (quota riservata) e quello di risorse prese in prestito (in prestito dal pool). Questi report sono ideali per la generazione di fatture, le dichiarazioni di attribuzione dei costi o la previsione della capacità.

*Esempio: un report di riepilogo può mostrare che il Team A ha utilizzato 200 ore di GPU, di cui 170 provengono dalla sua quota allocata e 30 sono prese in prestito.*

Ecco una suddivisione strutturata delle colonne chiave di un report di riepilogo:
+ **Data:** la data dell’utilizzo riportato (ad esempio `2025-04-18`).
+ **Namespace:** il namespace Kubernetes associato al team (ad esempio `hyperpod-ns-ml-team`).
+ **Squadra:** The team/department Owning (ad es.). `ml-team`
+ **Tipo di istanza:** l’istanza di calcolo utilizzata (ad esempio ml.g5.4xlarge).
+ **Total/Allocated/BorrowedUtilizzo (ore):** suddivisione dell'utilizzo di GPU, CPU o Neuron Core per categoria.

  Dove:
  + **Utilizzo totale = utilizzo allocato \$1 utilizzo preso in prestito**
  + L’**utilizzo allocato** è il numero di ore effettive di GPU, CPU o core Neuron utilizzate da un team, con un limite massimo del 100% della quota allocata.
  + L’**utilizzo preso in prestito** è il numero di ore effettive di GPU, CPU o core Neuron utilizzate da un team *oltre la quota allocata*, prese dal pool del cluster condiviso in base alle regole di priorità della governance delle attività e alla disponibilità delle risorse.

Esempio: 72 ore di GPU totali (48 allocate, 24 prese in prestito).

**Nota**  
Viene visualizzato solo l’utilizzo totale per i namespace non gestiti dalla governance delle attività.

## Report dettagliati
<a name="sagemaker-hyperpod-usage-reporting-content-detailed"></a>

I report dettagliati forniscono una visibilità a livello forense sull’utilizzo del calcolo, suddividendo il consumo delle risorse per attività ed esponendo metriche granulari come le finestre di esecuzione delle attività, lo stato (ad esempio, l’esito positivo o negativo) e l’utilizzo delle classi di priorità. Questi report sono ideali per la convalida delle discrepanze di fatturazione o per garantire la conformità alle policy di governance.

Ecco una suddivisione strutturata delle colonne chiave di un report dettagliato:
+ **Data:** la data dell’utilizzo riportato (ad esempio `2025-04-18`).
+ **Inizio/fine del periodo:** la finestra di esecuzione esatta (UTC) dell’attività (ad esempio `19:54:34`).
+ **Namespace:** il namespace Kubernetes associato al team (ad esempio `hyperpod-ns-ml-team`).
+ **Squadra:** The Owning (ad team/department es.). `ml-team`
+ **Attività:** l’identificatore del processo/pod (ad esempio `pytorchjob-ml-pytorch-job-2p5zt-db686`).
+ **Istanza:** l’istanza di calcolo utilizzata (ad esempio `ml.g5.4xlarge`).
+ **Stato:** risultato dell’attività (riuscita, non riuscita, prerilasciata).
+ **Utilizzo totale:** consumo totale (ore e numero di istanze) di risorse di GPU, CPU o core Neuron.
+ **Classe di priorità:** il livello di priorità assegnato (ad esempio, training-priority).

# Generazione di report
<a name="sagemaker-hyperpod-usage-reporting-generate"></a>

Questa guida fornisce step-by-step istruzioni per configurare e gestire i report sull'utilizzo per i SageMaker HyperPod cluster. Segui queste procedure per implementare l’infrastruttura, generare report personalizzati e rimuovere le risorse non più necessarie.

## Configurazione dei report di utilizzo
<a name="sagemaker-hyperpod-usage-reporting-install"></a>

**Nota**  
Prima di configurare l'infrastruttura dei report SageMaker HyperPod sull'utilizzo nel SageMaker HyperPod cluster, assicurati di aver soddisfatto tutti i prerequisiti descritti in questo documento. [https://github.com/awslabs/sagemaker-hyperpod-usage-report/blob/main/README.md#prerequisites](https://github.com/awslabs/sagemaker-hyperpod-usage-report/blob/main/README.md#prerequisites)

La reportistica sull'utilizzo richiede HyperPod :
+ Distribuzione delle AWS risorse SageMaker HyperPod dei report sull'utilizzo utilizzando uno CloudFormation stack
+ Installazione del rapporto di SageMaker HyperPod utilizzo dell'operatore Kubernetes tramite un grafico Helm

[Puoi trovare istruzioni di installazione complete nell'archivio dei report di utilizzo. SageMaker HyperPod GitHub ](https://github.com/awslabs/sagemaker-hyperpod-usage-report/blob/main/README.md) In particolare, segui la procedura nella sezione di [configurazione](https://github.com/awslabs/sagemaker-hyperpod-usage-report/blob/main/README.md#set-up-usage-reporting).

## Generazione di report di utilizzo on demand
<a name="sagemaker-hyperpod-usage-reporting-use"></a>

Una volta installati l'infrastruttura di reporting sull'utilizzo e l'operatore Kubernetes, i dati di lavoro per il SageMaker HyperPod cluster vengono automaticamente raccolti e archiviati nel bucket S3 configurato durante la configurazione. L’operatore acquisisce continuamente metriche di utilizzo dettagliate in background, creando file di dati non elaborati nella directory `raw` del bucket S3 indicato.

Per generare un rapporto sull'utilizzo su richiesta, puoi utilizzare `run.py` lo script fornito nell'[ GitHub archivio dei report di utilizzo per estrarre ed esportare le SageMaker HyperPod metriche di utilizzo](https://github.com/awslabs/sagemaker-hyperpod-usage-report/blob/main/README.md). In particolare, puoi trovare lo script e le istruzioni complete per la generazione di un report nella sezione sulla [generazione di report](https://github.com/awslabs/sagemaker-hyperpod-usage-report/blob/main/README.md#generate-reports).

Lo script consente di:
+ Specificare intervalli di date personalizzati per la generazione dei report
+ Scegliere tra i tipi di report dettagliati e di riepilogo
+ Esportare i report in formato CSV o PDF
+ Indirizzare i report a una specifica posizione S3

## Pulizia delle risorse per la creazione di report di utilizzo
<a name="sagemaker-hyperpod-usage-reporting-cleanup"></a>

Quando non ti serve più l'infrastruttura di reporting SageMaker HyperPod sull'utilizzo, segui i passaggi descritti in [Clean Up Resources](https://github.com/awslabs/sagemaker-hyperpod-usage-report/blob/main/README.md#clean-up-resources) per ripulire l'operatore e le risorse di Kubernetes (in AWS quest'ordine). La corretta eliminazione delle risorse aiuta a evitare costi inutili.

# Configurazione dello storage per i SageMaker HyperPod cluster orchestrati da Amazon EKS
<a name="sagemaker-hyperpod-eks-setup-storage"></a>

L'amministratore del cluster deve configurare lo storage per consentire agli utenti di data scientist di gestire i dati di input e output e archiviare i checkpoint durante la formazione sui cluster. SageMaker HyperPod 

**Gestione di set di dati di grandi dimensioni (dati di input/output)**
+ **Accesso e gestione dei dati**: i Data Scientist spesso lavorano con set di dati di grandi dimensioni necessari per addestrare i modelli di machine learning. La specificazione dei parametri di archiviazione nell’invio del lavoro consente loro di definire dove si trovano questi set di dati (ad esempio, i bucket Amazon S3 o i volumi persistenti in Kubernetes) e come accedervi durante l’esecuzione del processo.
+ **Ottimizzazione delle prestazioni**: l’efficienza dell’accesso ai dati di input può influire in modo significativo sulle prestazioni del job di addestramento. Ottimizzando i parametri di archiviazione, i data scientist possono garantire che i dati vengano letti e scritti in modo efficiente, riducendo i colli di bottiglia. I/O 

**Archiviazione dei checkpoint**
+ **Checkpoint durante l’addestramento**: durante i job di addestramento di lunga durata, è prassi comune salvare dei checkpoint, ovvero degli stati intermedi del modello. Questo consente ai Data Scientist di riprendere l’addestramento da un punto specifico in caso di guasto, anziché ricominciare da zero.
+ **Recupero e sperimentazione dei dati**: specificando la posizione di archiviazione per i checkpoint, i Data Scientist possono garantire che questi checkpoint siano archiviati in modo sicuro, possibilmente in un sistema di archiviazione distribuito che offre ridondanza e alta disponibilità. Questo è fondamentale per il ripristino dopo le interruzioni e per condurre esperimenti sulle diverse strategie di addestramento.

**Suggerimento**  
Per un'esperienza pratica e linee guida su come configurare lo storage per SageMaker HyperPod cluster orchestrato con Amazon EKS, consulta le seguenti sezioni del workshop [Amazon EKS Support](https://catalog.us-east-1.prod.workshops.aws/workshops/2433d39e-ccfe-4c00-9d3d-9917b729258e) in corso. SageMaker HyperPod   
[Configura Amazon FSx for Lustre su SageMaker HyperPod](https://catalog.us-east-1.prod.workshops.aws/workshops/2433d39e-ccfe-4c00-9d3d-9917b729258e/en-US/01-cluster/06-fsx-for-lustre)
[Configurare un punto di montaggio per Amazon S3 [utilizzando Mountpoint](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mountpoint.html) per Amazon](https://catalog.us-east-1.prod.workshops.aws/workshops/2433d39e-ccfe-4c00-9d3d-9917b729258e/en-US/01-cluster/09-s3-mountpoint) S3

# Utilizzo del driver CSI Amazon EBS su SageMaker HyperPod cluster EKS
<a name="sagemaker-hyperpod-eks-ebs"></a>

SageMaker HyperPod supporta il driver Amazon Elastic Block Store (Amazon EBS) Container Storage Interface (CSI), che gestisce il ciclo di vita dei volumi Amazon EBS come storage per i volumi Kubernetes che crei. Con il driver Amazon EBS CSI, puoi creare, collegare e gestire i volumi Amazon EBS per i carichi di lavoro di machine learning in esecuzione su cluster SageMaker HyperPod con orchestrazione Amazon EKS.

**Topics**
+ [Funzionalità chiave di archiviazione](#sagemaker-hyperpod-eks-ebs-features)
+ [Casi d’uso](#sagemaker-hyperpod-eks-ebs-use)
+ [Configurazione del driver CSI Amazon EBS sui SageMaker HyperPod cluster EKS](#sagemaker-hyperpod-eks-ebs-setup)
+ [Usando il APIs](#sagemaker-hyperpod-eks-ebs-setup-apis)

## Funzionalità chiave di archiviazione
<a name="sagemaker-hyperpod-eks-ebs-features"></a>

Il driver CSI di Amazon EBS SageMaker HyperPod supporta le seguenti funzionalità di storage.
+ Provisioning statico: associa i volumi Amazon EBS precreati ai [volumi persistenti Kubernetes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) da utilizzare nei pod.
+ Provisioning dinamico: crea automaticamente i volumi Amazon EBS e i volumi persistenti associati da [https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims). I parametri possono essere passati tramite [https://kubernetes.io/docs/concepts/storage/storage-classes/](https://kubernetes.io/docs/concepts/storage/storage-classes/) per un controllo granulare sulla creazione dei volumi.
+ Ridimensionamento dei volumi: espande i volumi esistenti aggiornando le specifiche delle dimensioni in [https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims) senza arrestare l’esecuzione dei carichi di lavoro. Questa opzione potrebbe essere essenziale per gestire repository di modelli in crescita o adattarsi a nodi più grandi senza interrompere il servizio.
+ Istantanee di volume: crea point-in-time istantanee di volumi per il backup, il ripristino e il controllo delle versioni dei dati.
+ Volumi a blocchi: fornisce l’accesso ai dispositivi a blocchi non elaborati per applicazioni ad alte prestazioni che richiedono l’accesso diretto all’archiviazione.
+ Modifica del volume: modifica le proprietà del volume, ad esempio il tipo, le operazioni di input o output al secondo (IOPS) o il throughput utilizzando le [classi di attributi del volume](https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/).

Per ulteriori informazioni sul driver CSI di Amazon EBS, consulta [Use Kubernetes volume storage with Amazon EBS](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html) in *Amazon EKS User Guide*.

Per ulteriori informazioni sull’archiviazione nei pod del cluster, consulta [Storage](https://kubernetes.io/docs/concepts/storage/) nella *documentazione di Kubernetes*.

## Casi d’uso
<a name="sagemaker-hyperpod-eks-ebs-use"></a>

L'integrazione dei driver CSI di Amazon EBS consente diversi casi d'uso chiave per carichi di lavoro di formazione e inferenza su cluster EKS. SageMaker HyperPod 

**Carichi di lavoro di addestramento**
+ Archiviazione di set di dati: alloca volumi per set di dati di addestramento che persistono anche dopo il riavvio del pod.
+ Archiviazione dei checkpoint: salva i checkpoint del modello e i risultati intermedi dell’addestramento.
+ Artefatti condivisi: accedi a set di dati comuni e ad artefatti dei modelli in più job di addestramento.

**Carichi di lavoro di inferenza**
+ Archiviazione dei modelli: alloca dinamicamente volumi di dimensione appropriata in base ai requisiti del modello.
+ Caching dei container: crea un’archiviazione temporanea per migliorare le prestazioni di inferenza.
+ Registrazione di log degli eventi: archivia i risultati di inferenza e i log con archiviazione persistente.

## Configurazione del driver CSI Amazon EBS sui SageMaker HyperPod cluster EKS
<a name="sagemaker-hyperpod-eks-ebs-setup"></a>

Il driver Amazon Elastic Block Store (Amazon EBS) Container Storage Interface (CSI) consente di effettuare il provisioning e gestire dinamicamente i volumi Amazon EBS per i carichi di lavoro containerizzati in esecuzione su cluster con orchestrazione EKS. SageMaker HyperPod Questa sezione descrive l’installazione e la configurazione del driver CSI di Amazon EBS per abilitare l’archiviazione persistente per i carichi di lavoro di machine learning.

### Prerequisiti
<a name="sagemaker-hyperpod-eks-ebs-setup-prerequisite"></a>

Prima di iniziare, esegui queste attività:
+ [Installa e configura AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)
+ [Crea un SageMaker HyperPod cluster con l'orchestrazione di Amazon EKS](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-create-cluster.html)
+ Installazione del driver CSI di Amazon EBS versione [v1.47.0](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/CHANGELOG.md#v1470)

### Autorizzazioni aggiuntive
<a name="sagemaker-hyperpod-eks-ebs-setup-permissions"></a>

Per configurare il componente aggiuntivo del driver CSI di Amazon EBS, segui le istruzioni in [Use Kubernetes volume storage with Amazon EBS](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html) in *Amazon EKS User Guide*. Devi anche aggiungere le autorizzazioni seguenti al ruolo IAM utilizzato per eseguire il componente aggiuntivo del driver. Tieni presente che questo è il ruolo IAM specificato nella configurazione dell'account di servizio per il driver aggiuntivo, non il ruolo di esecuzione del HyperPod cluster.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
            "Effect": "Allow",
            "Action":
            [
                "sagemaker:AttachClusterNodeVolume",
                "sagemaker:DetachClusterNodeVolume"
            ],
            "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/*"
        },
        {
            "Effect": "Allow",
            "Action":
            [
                "eks:DescribeCluster"
            ],
            "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/my-cluster-name"
        }
    ]
}
```

------

## Usando il APIs
<a name="sagemaker-hyperpod-eks-ebs-setup-apis"></a>

In alternativa, puoi utilizzare le operazioni [AttachClusterNodeVolume](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AttachClusterNodeVolume.html)e [DetachClusterNodeVolume](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DetachClusterNodeVolume.html)API per collegare e scollegare i volumi Amazon EBS alle istanze del cluster SageMaker HyperPod EKS.

**I requisiti chiave per il loro utilizzo APIs includono quanto segue.**
+ Sia il volume Amazon EBS che il cluster SageMaker HyperPod EKS devono essere di proprietà dello stesso Account AWS.
+ Il principale che esegue la chiamata necessita di autorizzazioni minime specifiche per eseguire correttamente l’operazione di collegamento o scollegamento. Per ulteriori informazioni su queste autorizzazioni, consulta le sezioni seguenti.
+ Dopo aver collegato un volume al HyperPod nodo, segui le istruzioni in [Accesso ai nodi del SageMaker HyperPod cluster](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-access-through-terminal.html) per accedere al nodo del cluster e [Rendere disponibile un volume da utilizzare per](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-using-volumes.html) montare il volume collegato.

### Autorizzazioni necessarie per `sagemaker:AttachClusterNodeVolume`
<a name="sagemaker-hyperpod-eks-ebs-setup-apis-attach"></a>

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
            "Effect": "Allow",
            "Action":
            [
                "sagemaker:AttachClusterNodeVolume"
            ],
            "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/*"
        },
        {
            "Effect": "Allow",
            "Action":
            [
                "eks:DescribeCluster"
            ],
            "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/my-cluster-name"
        },
        {
            "Effect": "Allow",
            "Action":
            [
                "ec2:AttachVolume",
                "ec2:DescribeVolumes"
            ],
            "Resource": "arn:aws:ec2:us-east-1:111122223333:volume/*"
        }
    ]
}
```

------

### Autorizzazioni necessarie per `sagemaker:DetachClusterNodeVolume`
<a name="sagemaker-hyperpod-eks-ebs-setup-apis-detach"></a>

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
            "Effect": "Allow",
            "Action":
            [
                "sagemaker:DetachClusterNodeVolume"
            ],
            "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/*"
        },
        {
            "Effect": "Allow",
            "Action":
            [
                "eks:DescribeCluster"
            ],
            "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/my-cluster-name"
        },
        {
            "Effect": "Allow",
            "Action":
            [
                "ec2:DetachVolume",
                "ec2:DescribeVolumes"
            ],
            "Resource": "arn:aws:ec2:us-east-1:111122223333:volume/*"
        }
    ]
}
```

------

### Autorizzazioni richieste per le chiavi AWS KMS
<a name="sagemaker-hyperpod-eks-ebs-setup-apis-kms"></a>

Aggiungi le seguenti AWS KMS autorizzazioni solo se utilizzi chiavi KMS gestite dal cliente per crittografare i volumi Amazon EBS collegati ai nodi del cluster. HyperPod Queste autorizzazioni non sono necessarie se utilizzi chiavi KMS gestite da AWS(l’opzione di crittografia predefinita).

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "key-default-1",
    "Statement":
    [
        {
            "Effect": "Allow",
            "Principal":
            {
                "AWS": "arn:aws:iam::111122223333:role/caller-role"
            },
            "Action": "kms:DescribeKey",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Principal":
            {
                "AWS": "arn:aws:iam::111122223333:role/caller-role"
            },
            "Action": "kms:CreateGrant",
            "Resource": "*",
            "Condition":
            {
                "StringEquals":
                {
                    "kms:CallerAccount": "111122223333",
                    "kms:ViaService": "ec2.us-east-1.amazonaws.com"
                },
                "ForAnyValue:StringEquals":
                {
                    "kms:EncryptionContextKeys": "aws:ebs:id"
                },
                "Bool":
                {
                    "kms:GrantIsForAWSResource": true
                },
                "ForAllValues:StringEquals":
                {
                    "kms:GrantOperations":
                    [
                        "Decrypt"
                    ]
                }
            }
        }
    ]
}
```

------

**Nota**  
Queste AWS KMS autorizzazioni non sono necessarie `sagemaker:DetachClusterNodeVolume` quando si scollega un volume Cluster Auto Volume Attachment (CAVA) crittografato con chiavi KMS gestite dal cliente.

# Configurazione di etichette e colori Kubernetes personalizzati in Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints"></a>

 SageMaker HyperPod I cluster Amazon con orchestrator Amazon Elastic Kubernetes Service (Amazon EKS) supportano etichette e taint Kubernetes personalizzati per i nodi all'interno dei gruppi di istanze. Le etichette e i taint sono meccanismi di pianificazione e organizzazione fondamentali in Kubernetes che offrono un controllo preciso sul posizionamento dei pod e sull'utilizzo delle risorse.

Le etichette sono coppie chiave-valore che possono essere allegate agli oggetti Kubernetes e consentono di organizzare e selezionare le risorse in base agli attributi. I taint, che funzionano insieme alle tolleranze, sono proprietà specifiche dei nodi che influenzano la pianificazione dei pod respingendo i pod che non hanno tolleranze corrispondenti. Insieme, questi meccanismi consentono di isolare i carichi di lavoro, assegnarli in base alle specifiche hardware e garantire un utilizzo ottimale delle risorse.

## Casi di utilizzo comune
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-use-cases"></a>

Di seguito sono riportati gli scenari più comuni in cui etichette e colorazioni personalizzate sono vantaggiose:
+ **Prevenzione dei pod di sistema su istanze costose: applica dei trucchi alle istanze** GPU per evitare che i pod di sistema e altri carichi di lavoro non critici consumino costose risorse di elaborazione
+ **Integrazione con gli strumenti esistenti: applica etichette che corrispondono ai modelli di infrastruttura e** alle configurazioni di affinità dei nodi stabiliti dall'organizzazione

## Configurazione di etichette e colorazioni
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-configure"></a>

Puoi configurare etichette e taint Kubernetes personalizzati a livello di gruppo di istanze utilizzando il parametro nella configurazione del `KubernetesConfig` cluster. Le etichette e i taint vengono applicati a tutti i nodi del gruppo di istanze e persistono per tutto il ciclo di vita del cluster.

Il `KubernetesConfig` parametro è dichiarativo, il che significa che si specifica lo stato completo desiderato di etichette e taint per un gruppo di istanze. SageMaker HyperPod quindi riconcilia lo stato effettivo dei nodi in modo che corrisponda allo stato desiderato.
+ **Aggiungere etichette o tinte**: includi le nuove etichette o tinte `KubernetesConfig` insieme a quelle esistenti che desideri conservare
+ **Aggiornamento di etichette o tinte**: modifica i valori delle `KubernetesConfig` etichette o delle tinte che desideri modificare e includi tutte le altre che desideri conservare
+ **Rimozione di etichette o tinte**: ometti le etichette o le sfumature che desideri rimuovere`KubernetesConfig`, mantenendo solo quelle che desideri conservare

### Creazione di un cluster con etichette e tinte
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-create"></a>

Quando crei un nuovo SageMaker HyperPod cluster, includi il `KubernetesConfig` parametro nella configurazione del gruppo di istanze. L'esempio seguente mostra come creare un cluster con etichette e tinte personalizzate:

```
{
    "ClusterName": "my-cluster",
    "InstanceGroups": [{
        "InstanceGroupName": "worker-group-1",
        "InstanceType": "ml.p4d.24xlarge",
        "InstanceCount": 4,
        "LifeCycleConfig": {
            "SourceS3Uri": "s3://my-bucket/lifecycle-config.sh",
            "OnCreate": "on-create.sh"
        },
        "ExecutionRole": "arn:aws:iam::123456789012:role/HyperPodExecutionRole",
        "ThreadsPerCore": 1,
        "KubernetesConfig": { 
            "Labels": {
                "env": "prod",
                "team": "ml-training",
                "gpu-type": "a100"
            },
            "Taints": [{
                "key": "gpu",
                "value": "true",
                "effect": "NoSchedule"
            },
            {
                "key": "dedicated",
                "value": "ml-workloads",
                "effect": "NoExecute"
            }]
        }
    }],
    "VpcConfig": {
        "SecurityGroupIds": ["sg-0123456789abcdef0"],
        "Subnets": ["subnet-0123456789abcdef0", "subnet-0123456789abcdef1"]
    },
    "Orchestrator": {
        "Eks": {
            "ClusterArn": "arn:aws:eks:us-west-2:123456789012:cluster/my-eks-cluster"
        }
    }
}
```

In questo esempio:
+ **Etichette**: vengono applicate tre etichette personalizzate:`env=prod`,`team=ml-training`, e `gpu-type=a100`
+ **Taints**: due taint sono configurati per impedire la pianificazione indesiderata dei pod

### Aggiornamento di etichette e segni distintivi su un cluster esistente
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-update"></a>

È possibile modificare etichette e caratteri su un cluster esistente utilizzando l'`UpdateCluster`API. L'esempio seguente mostra come aggiornare il gruppo `KubernetesConfig` for an instance:

```
{
    "ClusterName": "my-cluster",
    "InstanceGroups": [{
        "InstanceGroupName": "worker-group-1",
        "KubernetesConfig": { 
            "Labels": {
                "env": "prod",
                "team": "ml-training",
                "gpu-type": "a100",
                "cost-center": "ml-ops"
            },
            "Taints": [{
                "key": "gpu",
                "value": "true",
                "effect": "NoSchedule"
            }]
        }
    }]
}
```

Quando aggiorni etichette e tinte, SageMaker HyperPod applica le modifiche a tutti i nodi del gruppo di istanze. Il servizio gestisce la transizione dallo stato corrente a quello desiderato, che è possibile monitorare utilizzando l'`DescribeCluster`API.

## Monitoraggio dell'etichetta e dell'applicazione di contaminazione
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-monitor"></a>

SageMaker HyperPod consente APIs di monitorare lo stato delle etichette e dei coloranti man mano che vengono applicati ai nodi del cluster.

### Verifica dello stato a livello di cluster
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-describe-cluster"></a>

Utilizza l'`DescribeCluster`API per visualizzare lo stato attuale e desiderato delle etichette e dei coloranti a livello di gruppo di istanze. L'esempio seguente mostra la struttura della risposta:

```
{
    "ClusterName": "my-cluster",
    "ClusterStatus": "InService",
    "InstanceGroups": [{
        "InstanceGroupName": "worker-group-1",
        "InstanceType": "ml.p4d.24xlarge",
        "CurrentInstanceCount": 4,
        "TargetInstanceCount": 4,
        "KubernetesConfig": {
            "CurrentLabels": {
                "env": "prod",
                "team": "ml-training",
                "gpu-type": "a100"
            },
            "DesiredLabels": {
                "env": "prod",
                "team": "ml-training",
                "gpu-type": "a100"
            },
            "CurrentTaints": [{
                "key": "gpu",
                "value": "true",
                "effect": "NoSchedule"
            }],
            "DesiredTaints": [{
                "key": "gpu",
                "value": "true",
                "effect": "NoSchedule"
            }]
        }
    }]
}
```

In caso di `CurrentLabels` `CurrentTaints` corrispondenza `DesiredLabels``DesiredTaints`, a tutti i nodi del gruppo di istanze viene applicata la configurazione specificata. Se differiscono, il cluster sta ancora applicando le modifiche.

### Verifica dello stato dei singoli nodi
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-describe-node"></a>

Per i dettagli a livello di nodo, usa l'`DescribeClusterNode`API per controllare l'etichetta e la configurazione del colore dei singoli nodi. L'esempio seguente mostra la struttura della risposta:

```
{
    "NodeDetails": { 
        "InstanceId": "i-0123456789abcdef0",
        "InstanceGroupName": "worker-group-1",
        "InstanceType": "ml.p4d.24xlarge",
        "InstanceStatus": {
            "Status": "Running",
            "Message": "Node is healthy"
        },
        "LifeCycleConfig": {
            "SourceS3Uri": "s3://my-bucket/lifecycle-config.sh",
            "OnCreate": "on-create.sh"
        },
        "LaunchTime": 1699564800.0,
        "KubernetesConfig": {
            "CurrentLabels": {
                "env": "prod",
                "team": "ml-training",
                "gpu-type": "a100"
            },
            "DesiredLabels": {
                "env": "prod",
                "team": "ml-training",
                "gpu-type": "a100"
            },
            "CurrentTaints": [{
                "key": "gpu",
                "value": "true",
                "effect": "NoSchedule"
            }],
            "DesiredTaints": [{
                "key": "gpu",
                "value": "true",
                "effect": "NoSchedule"
            }]
        }
    }
}
```

Il monitoraggio a livello di nodo è utile per la risoluzione dei problemi quando etichette o contaminazioni non si applicano correttamente a nodi specifici o quando è necessario verificare la configurazione di una particolare istanza.

## Prefissi riservati
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-reserved-prefixes"></a>

Alcuni prefissi sono riservati all'uso del sistema e non devono essere utilizzati per etichette o colorazioni personalizzate. I seguenti prefissi sono riservati:
+ `kubernetes.io/`- Riservato ai componenti principali di Kubernetes
+ `k8s.io/`- Riservato ai componenti principali di Kubernetes
+ `sagemaker.amazonaws.com/`- Riservato per SageMaker HyperPod
+ `eks.amazonaws.com/`- Riservato ad Amazon EKS
+ `k8s.aws/`- Riservato ad Amazon EKS
+ `karpenter.sh/`- Riservato alla scalabilità automatica di Karpenter

Le etichette e le macchie con questi prefissi sono gestite dai componenti del sistema e non devono essere sovrascritte con valori personalizzati.

# Formazione senza checkpointless in Amazon SageMaker HyperPod
<a name="sagemaker-eks-checkpointless"></a>

La formazione Checkpointless su Amazon SageMaker HyperPod consente un ripristino più rapido dai guasti dell'infrastruttura di formazione. La seguente documentazione ti aiuta a iniziare con la formazione senza checkpoint e la messa a punto per i modelli supportati. NeMo

La formazione Checkpointless ha i seguenti prerequisiti:
+ [Inizia a usare il supporto di Amazon EKS in SageMaker HyperPod](sagemaker-hyperpod-eks-prerequisites.md)
+ [Installazione dell’operatore di addestramento](sagemaker-eks-operator-install.md). È necessario installare la versione 1.2.0 o successiva.

 Checkpointless training on SageMaker HyperPod si basa sulla Guida per l'utente di [ NeMo NVIDIA](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemotoolkit/core/exp_manager.html#experiment-manager) Framework. Puoi eseguire corsi di formazione senza checkpointless con ricette precreate. SageMaker HyperPod Se le conosci NeMo, il processo di utilizzo delle ricette di formazione senza checkpoint è simile. Con piccole modifiche, puoi iniziare ad addestrare un modello utilizzando funzionalità di allenamento senza checkpoint che ti consentono di recuperare rapidamente dagli errori di allenamento.

Le seguenti HyperPod ricette sono preconfigurate con ottimizzazioni dell'allenamento senza checkpoint. Puoi specificare i percorsi dei dati come parte della ricetta e utilizzare lo script di avvio associato per eseguire la formazione (consulta la guida rapida di avvio di seguito):


| Modello | Metodo | Dimensione | Nodi | Istanza | Accelerator | Recipe | Script | Tutorial | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| GPT OSS | Esempio completo di finetune | 120 g | 16 | p5.48xlarge | GPU H100 | [collegamento](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes/fine-tuning/gpt_oss/checkpointless_gpt_oss_120b_full_fine_tuning.yaml) | [collegamento](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/launcher_scripts/gpt_oss/run_checkpointless_gpt_oss_120b_full_fine_tuning.sh) | [collegamento](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-finetune.html) | 
| GPT BOSS | Esempio di LoRa | 120 b | 2 | p5.48xlarge | GPU H100 | [collegamento](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes/fine-tuning/gpt_oss/checkpointless_gpt_oss_120b_lora.yaml) | [collegamento](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/launcher_scripts/gpt_oss/run_checkpointless_gpt_oss_120b_lora.sh) | [collegamento](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-peft.html) | 
| Lama 3 | Esempio di pre-allenamento | 70 b | 16 | p5.48xlarge | GPU H100 | [collegamento](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes/training/llama/checkpointless_llama3_70b_pretrain.yaml) | [collegamento](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/launcher_scripts/llama/run_checkpointless_llama3_70b_pretrain.sh) | [collegamento](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-pretraining-llama3.html) | 
| Lama 3 | Esempio di Lora | 70 b | 2 | p5.48xlarge | GPU H100 | [collegamento](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes/fine-tuning/llama/checkpointless_llama3_70b_lora.yaml) | [collegamento](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/launcher_scripts/llama/run_checkpointless_llama3_70b_lora.sh) | [collegamento](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-peft-llama.html) | 

La seguente guida rapida fornisce tutorial per l'utilizzo di ricette di formazione senza checkpoint:

**Esempi introduttivi**
+ [Tutorial - Ottimizzazione completa di Amazon SageMaker HyperPod Checkpointless GPT OSS 120b](sagemaker-eks-checkpointless-recipes-finetune.md)
+ [Tutorial - Amazon SageMaker HyperPod Checkpointless Left-LoRa GPT OSS 120b](sagemaker-eks-checkpointless-recipes-peft.md)
+ [Tutorial - Amazon SageMaker HyperPod Checkpointless Pretraining Llama 3 70b](sagemaker-eks-checkpointless-recipes-pretraining-llama3.md)
+ [Tutorial - Amazon SageMaker HyperPod Checkpointless Left-Lora Llama 3 70b](sagemaker-eks-checkpointless-recipes-peft-llama.md)

Se desideri pre-addestrare o perfezionare i modelli personalizzati, consulta. [Tutorial - Amazon SageMaker HyperPod Checkpointless, preaddestramento o messa a punto di modelli personalizzati](sagemaker-eks-checkpointless-recipes-custom.md)

Per ulteriori informazioni sull'integrazione di componenti di formazione specifici senza checkpoint,. [HyperPod funzionalità di formazione senza checkpointless](sagemaker-eks-checkpointless-features.md)

# Tutorial di formazione SageMaker HyperPod senza checkpoint su Amazon
<a name="sagemaker-eks-checkpointless-recipes"></a>

[ HyperPod Le ricette di formazione checkpointless](https://github.com/aws/sagemaker-hyperpod-checkpointless-training) sono configurazioni di lavoro predefinite con funzionalità di formazione senza checkpointless abilitate. L'utilizzo di queste ricette semplifica l'avvio di corsi di formazione senza checkpoint. HyperPod

**Topics**
+ [Tutorial - Ottimizzazione completa di Amazon SageMaker HyperPod Checkpointless GPT OSS 120b](sagemaker-eks-checkpointless-recipes-finetune.md)
+ [Tutorial - Amazon SageMaker HyperPod Checkpointless Left-LoRa GPT OSS 120b](sagemaker-eks-checkpointless-recipes-peft.md)
+ [Tutorial - Amazon SageMaker HyperPod Checkpointless Pretraining Llama 3 70b](sagemaker-eks-checkpointless-recipes-pretraining-llama3.md)
+ [Tutorial - Amazon SageMaker HyperPod Checkpointless Left-Lora Llama 3 70b](sagemaker-eks-checkpointless-recipes-peft-llama.md)
+ [Tutorial - Amazon SageMaker HyperPod Checkpointless, preaddestramento o messa a punto di modelli personalizzati](sagemaker-eks-checkpointless-recipes-custom.md)

# Tutorial - Ottimizzazione completa di Amazon SageMaker HyperPod Checkpointless GPT OSS 120b
<a name="sagemaker-eks-checkpointless-recipes-finetune"></a>

La seguente sequenza di passaggi è necessaria per eseguire ricette di formazione senza checkpoint. HyperPod

## Prerequisiti
<a name="sagemaker-eks-checkpointless-recipes-finetune-prereqs"></a>

Prima di iniziare a configurare l’ambiente, assicurati di avere:
+ [Supporto Amazon EKS abilitato in Amazon SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Configura l'operatore HyperPod di formazione (v1.2\$1)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html)
+ Una posizione di archiviazione condivisa. Può essere un FSx file system Amazon o un sistema NFS accessibile dai nodi del cluster.
+ I dati in uno dei seguenti formati:
  + JSON
  + JSONGZ (JSON compresso)
  + ARROW
+ [Scegli una ricetta di formazione supportata senza checkpoint per Llama 70B o GPT-OSS 120B dalla fonte.](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection)
+ [Scaricate i pesi del modello Hugging](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html) [Face e convertiteli nel formato supportato da Nemo.](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemo-2.0/features/hf-integration.html#importing-from-hugging-face)
+ Configurare l’ambiente

## Configurazione dell'ambiente Kubernetes
<a name="sagemaker-eks-checkpointless-finetune-recipes-kubernetes"></a>

Per configurare l'ambiente Kubernetes, procedi come segue:

1. Configura l’ambiente virtuale. Assicurati che la tua versione di Python sia maggiore o uguale a 3.10 e inferiore a 3.14.

   ```
   python3 -m venv ${PWD}/venv
   source venv/bin/activate
   ```

1. [Configura kubectl ed eksctl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)

1. [Installa Helm](https://helm.sh/docs/intro/install/)

1. Connettiti al cluster Kubernetes.

   ```
   aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}"
   ```

1. Installa le dipendenze utilizzando uno dei metodi seguenti:

   1. Metodo 1: metodo SageMaker HyperPod delle ricette:

      ```
      # install SageMaker HyperPod Recipes.
      git clone --recursive git@github.com:aws/sagemaker-hyperpod-recipes.git
      cd sagemaker-hyperpod-recipes
      pip3 install -r requirements.txt
      ```

   1. Metodo 2: kubectl con metodo job yaml predefinito

      ```
      # install SageMaker HyperPod checkpointless training.
      git clone git@github.com:aws/sagemaker-hyperpod-checkpointless-training.git
      cd sagemaker-hyperpod-checkpointless-training
      ```

Ora puoi lanciare la ricetta di allenamento senza checkpointless usando il programma di avvio -style o usando kubectl. NeMo

## Avvia i lavori di formazione con il programma di avvio delle ricette
<a name="sagemaker-eks-checkpointless-recipes-finetune-launcher"></a>

Puoi utilizzare le SageMaker HyperPod ricette di Amazon per inviare il tuo lavoro di formazione. L'utilizzo delle ricette comporta l'aggiornamento di k8s.yaml, config.yaml e l'esecuzione dello script di avvio.

1. Aggiornamento di `launcher_scripts/gpt_oss/run_checkpointless_gpt_oss_120b_full_fine_tuning.sh`

   your\$1container: Un contenitore di Deep Learning. Per trovare la versione più recente del contenitore di formazione checkpointless, consulta le note sulla versione di [checkpointless](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html) training.

   ```
   #!/bin/bash
   
   SAGEMAKER_TRAINING_LAUNCHER_DIR=${SAGEMAKER_TRAINING_LAUNCHER_DIR:-"$(pwd)"}
   TRAIN_DIR="${TRAIN_DIR}"
   VAL_DIR="${VAL_DIR}"
   EXP_DIR="${EXP_DIR}"
   LOG_DIR="${LOG_DIR}"
   CONTAINER_MOUNT="/data"
   CONTAINER="${CONTAINER}"
   MODEL_NAME_OR_PATH="${MODEL_NAME_OR_PATH}"
   
   HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \
       recipes=fine-tuning/gpt_oss/checkpointless_gpt_oss_120b_full_fine_tuning \
       recipes.dataset.dataset_path="${TRAIN_DIR}" \
       recipes.exp_manager.exp_dir="${EXP_DIR}" \
       recipes.log_dir="${LOG_DIR}" \
       recipes.resume.restore_config.path="${MODEL_NAME_OR_PATH}" \
       base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \
       git.use_default=false \
       cluster=k8s \
       cluster_type=k8s \
       container="${CONTAINER}" \
       +cluster.hostNetwork=true \
       +cluster.persistent_volume_claims.0.claimName=fsx-claim \
       +cluster.persistent_volume_claims.0.mountPath="${CONTAINER_MOUNT}" \
       +recipes.dataset.val_dataset_path="${VAL_DIR}" \
       ++recipes.callbacks.3.test_fault_config.fault_prob_between_lock=1 \
   ```

1. Avvio del job di addestramento

   ```
   bash launcher_scripts/gpt_oss/run_checkpointless_gpt_oss_120b_full_fine_tuning.sh
   ```

Dopo aver inviato il job di addestramento, puoi utilizzare il comando seguente per verificare se l’invio è riuscito.

```
kubectl get pods

NAME                             READY   STATUS             RESTARTS        AGE
gpt-oss-120b-worker-0             0/1    running               0            36s
```

Se lo STATUS è in sospeso o ContainerCreating, esegui il comando seguente per ottenere maggiori dettagli

```
kubectl describe pod <name of pod>
```

Quando lo STATUS del processo diventa Running, puoi esaminare il log utilizzando il comando seguente.

```
kubectl logs <name of pod>
```

`STATUS` diventa `COMPLETED` quando esegui `kubectl get pods`.

## Avvia il processo di formazione con kubectl con yaml predefinito
<a name="sagemaker-eks-checkpointless-recipes-finetune-kubectl"></a>

Un'altra opzione è avviare la formazione tramite kubectl con un job predefinito yaml.

1. aggiorna examples/gpt\$1oss/launch/full \$1finetune\$1gpt\$1oss\$1120b\$1checkpointless\$1p5.yaml
   + immagine: Un contenitore di Deep Learning. Per trovare la versione più recente del contenitore di formazione checkpointless, consulta le note sulla versione di [checkpointless](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html) training.
   + [resume.restore\$1config.path=: il percorso per scaricare i pesi dei modelli preaddestrati in formato Nemo nella fase Prerequisiti.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-finetune.html#sagemaker-eks-checkpointless-recipes-finetune-prereqs) <path\$1to\$1pretrained\$1weights>
   + dataset.dataset\$1path=<path\$1to\$1dataset>: il percorso del set di dati archiviato nella memoria condivisa

1. Invia il lavoro usando kubectl con full\$1finetune\$1gpt\$1oss\$1120b\$1checkpointless\$1p5.yaml

   ```
   kubectl apply -f examples/gpt_oss/launch/full_finetune_gpt_oss_120b_checkpointless_p5.yaml
   ```

Dopo aver inviato il job di addestramento, puoi utilizzare il comando seguente per verificare se l’invio è riuscito.

```
kubectl get pods

NAME                             READY   STATUS             RESTARTS        AGE
gpt-oss-120b-worker-0             0/1    running               0            36s
```

Se lo STATUS è in sospeso o, esegui il seguente comando per ottenere maggiori dettagli ContainerCreating

```
kubectl describe pod <name of pod>
```

Quando lo STATUS del processo diventa Running, puoi esaminare il log utilizzando il comando seguente.

```
kubectl logs <name of pod>
```

Lo STATUS diventerà Completato quando esegui kubectl get pods

# Tutorial - Amazon SageMaker HyperPod Checkpointless Left-LoRa GPT OSS 120b
<a name="sagemaker-eks-checkpointless-recipes-peft"></a>

La seguente sequenza di passaggi è necessaria per eseguire ricette di formazione senza checkpoint. HyperPod

## Prerequisiti
<a name="sagemaker-eks-checkpointless-recipes-peft-prereqs"></a>

Prima di iniziare a configurare l’ambiente, assicurati di avere:
+ [Supporto Amazon EKS abilitato in Amazon SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Configura l'operatore HyperPod di formazione (v1.2\$1)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html)
+ Una posizione di archiviazione condivisa. Può essere un FSx file system Amazon o un sistema NFS accessibile dai nodi del cluster.
+ I dati in uno dei seguenti formati:
  + JSON
  + JSONGZ (JSON compresso)
  + ARROW
+ [Scegli una ricetta di formazione supportata senza checkpoint per Llama 70B o GPT-OSS 120B dalla fonte.](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection)
+ [Scaricate i pesi del modello Hugging](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html) [Face e convertiteli nel formato supportato da Nemo.](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemo-2.0/features/hf-integration.html#importing-from-hugging-face)
+ Configurare l’ambiente

## Configurazione dell'ambiente Kubernetes
<a name="sagemaker-eks-checkpointless-recipes-peft-kubernetes"></a>

Per configurare l'ambiente Kubernetes, procedi come segue:

1. Configura l’ambiente virtuale. Assicurati di usare Python maggiore o uguale a 3.10 e < 3.14.

   ```
   python3 -m venv ${PWD}/venv
   source venv/bin/activate
   ```

1. [Configura kubectl ed eksctl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)

1. [Installa Helm](https://helm.sh/docs/intro/install/)

1. Connettiti al cluster Kubernetes.

   ```
   aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}"
   ```

1. Installa le dipendenze utilizzando uno dei metodi seguenti:
   + SageMaker HyperPod metodo delle ricette:

     ```
     # install SageMaker HyperPod Recipes.
     git clone --recursive git@github.com:aws/sagemaker-hyperpod-recipes.git
     cd sagemaker-hyperpod-recipes
     pip3 install -r requirements.txt
     ```
   + kubectl con metodo job yaml predefinito

     ```
     # install SageMaker HyperPod checkpointless training.
     git clone git@github.com:aws/sagemaker-hyperpod-checkpointless-training.git
     cd sagemaker-hyperpod-checkpointless-training
     ```

Ora puoi lanciare la ricetta di allenamento senza checkpointless usando il programma di avvio -style o usando kubectl. NeMo

## Avvio del job di addestramento con l’utilità di avvio delle ricette
<a name="sagemaker-eks-checkpointless-recipes-peft-recipes-launcher"></a>

In alternativa, puoi utilizzare le SageMaker HyperPod ricette per inviare il tuo lavoro di formazione. L'uso delle ricette comporta l'aggiornamento di k8s.yaml, config.yaml e l'esecuzione dello script di avvio.

1. Aggiornamento di `launcher_scripts/gpt_oss/run_checkpointless_gpt_oss_120b_lora.sh`

   your\$1contrainer: un contenitore di Deep Learning. [Per trovare la versione più recente del contenitore di formazione checkpointless, consulta le note sulla versione di checkpointless training.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html)

   ```
   #!/bin/bash
   SAGEMAKER_TRAINING_LAUNCHER_DIR=${SAGEMAKER_TRAINING_LAUNCHER_DIR:-"$(pwd)"}
   TRAIN_DIR="${TRAIN_DIR}"
   VAL_DIR="${VAL_DIR}"
   EXP_DIR="${EXP_DIR}"
   LOG_DIR="${LOG_DIR}"
   CONTAINER_MOUNT="/data"
   CONTAINER="${CONTAINER}"
   MODEL_NAME_OR_PATH="${MODEL_NAME_OR_PATH}"
   
   HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \
       recipes=fine-tuning/gpt_oss/checkpointless_gpt_oss_120b_lora \
       recipes.dataset.dataset_path="${TRAIN_DIR}" \
       recipes.exp_manager.exp_dir="${EXP_DIR}" \
       recipes.log_dir="${LOG_DIR}" \
       recipes.resume.restore_config.path="${MODEL_NAME_OR_PATH}" \
       base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \
       git.use_default=false \
       cluster=k8s \
       cluster_type=k8s \
       container="${CONTAINER}" \
       +cluster.hostNetwork=true \
       +cluster.persistent_volume_claims.0.claimName=fsx-claim \
       +cluster.persistent_volume_claims.0.mountPath="${CONTAINER_MOUNT}" \
       +recipes.dataset.val_dataset_path="${VAL_DIR}" \
       ++recipes.callbacks.3.test_fault_config.fault_prob_between_lock=1 \
   ```

1. Avvio del job di addestramento

   ```
   bash launcher_scripts/gpt_oss/run_checkpointless_gpt_oss_120b_lora.sh
   ```

Dopo aver inviato il job di addestramento, puoi utilizzare il comando seguente per verificare se l’invio è riuscito.

```
kubectl get pods

NAME                             READY   STATUS             RESTARTS        AGE
gpt-oss-120b-worker-0             0/1    running               0            36s
```

Se lo STATUS è in sospeso o ContainerCreating, esegui il comando seguente per ottenere maggiori dettagli

```
kubectl describe pod <name of pod>
```

Quando lo STATUS del processo diventa Running, puoi esaminare il log utilizzando il comando seguente.

```
kubectl logs <name of pod>
```

Lo STATUS diventerà Completato quando esegui kubectl get pods

## Avvia il processo di formazione con kubectl con yaml predefinito
<a name="sagemaker-eks-checkpointless-recipes-peft-kubectl"></a>

Un'altra opzione è avviare la formazione tramite kubectl con un job predefinito yaml.

1. aggiorna examples/gpt\$1oss/launch/peft \$1gpt\$1oss\$1120b\$1checkpointless\$1p5.yaml
   + immagine: Un contenitore di Deep Learning. Per trovare la versione più recente del contenitore di formazione checkpointless, consulta le note sulla versione di [checkpointless](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html) training.
   + [resume.restore\$1config.path=: il percorso per scaricare i pesi dei modelli preaddestrati in formato Nemo nella fase Prerequisiti.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-peft.html#sagemaker-eks-checkpointless-recipes-peft-prereqs) <path\$1to\$1pretrained\$1weights>
   + <path\$1to\$1dataset>dataset.dataset\$1path=: il percorso del set di dati archiviato nella memoria condivisa

1. Invia il lavoro usando kubectl con peft\$1gpt\$1oss\$1120b\$1checkpointless\$1p5.yaml

   ```
   kubectl apply -f examples/gpt_oss/launch/peft_gpt_oss_120b_checkpointless_p5.yaml
   ```

Dopo aver inviato il job di addestramento, puoi utilizzare il comando seguente per verificare se l’invio è riuscito.

```
kubectl get pods

NAME                                             READY   STATUS             RESTARTS        AGE
gpt-120b-lora-checkpointless-worker-0             0/1    running               0            36s
```

Se lo STATUS è in sospeso o, esegui il seguente comando per ottenere maggiori dettagli ContainerCreating

```
kubectl describe pod <name of pod>
```

Quando lo STATUS del processo diventa Running, puoi esaminare il log utilizzando il comando seguente.

```
kubectl logs <name of pod>
```

Lo STATUS diventerà Completato quando esegui kubectl get pods

# Tutorial - Amazon SageMaker HyperPod Checkpointless Pretraining Llama 3 70b
<a name="sagemaker-eks-checkpointless-recipes-pretraining-llama3"></a>

La seguente sequenza di passaggi è necessaria per eseguire ricette di allenamento senza checkpoint. HyperPod

## Prerequisiti
<a name="sagemaker-eks-checkpointless-recipes-pretraining-llama3-prereqs"></a>

Prima di iniziare a configurare l’ambiente, assicurati di avere:
+ [Supporto Amazon EKS abilitato in Amazon SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Configura l'operatore HyperPod di formazione (v1.2\$1)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html)
+ Una posizione di archiviazione condivisa. Può essere un FSx file system Amazon o un sistema NFS accessibile dai nodi del cluster.
+ I dati in uno dei seguenti formati:
  + JSON
  + JSONGZ (JSON compresso)
  + ARROW
+ [Scegli una ricetta di formazione supportata senza checkpoint per Llama 70B o GPT-OSS 120B dalla fonte.](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection)
+ [Scaricate i pesi del modello Hugging](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html) [Face e convertiteli nel formato supportato da Nemo.](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemo-2.0/features/hf-integration.html#importing-from-hugging-face)
+ Configurare l’ambiente

## Configurazione dell'ambiente Kubernetes
<a name="sagemaker-eks-checkpointless-recipes-pretraining-llama3-kubernetes"></a>

Per configurare l'ambiente Kubernetes, procedi come segue:

1. Configura l’ambiente virtuale. Assicurati di usare Python maggiore o uguale a 3.10 e inferiore a 3.14.

   ```
   python3 -m venv ${PWD}/venv
   source venv/bin/activate
   ```

1. [Configura kubectl ed eksctl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)

1. [Installa Helm](https://helm.sh/docs/intro/install/)

1. Connettiti al cluster Kubernetes.

   ```
   aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}"
   ```

1. Installa le dipendenze utilizzando uno dei metodi seguenti:

   1. Metodo 1: metodo SageMaker HyperPod delle ricette:

      ```
      # install SageMaker HyperPod Recipes.
      git clone --recursive git@github.com:aws/sagemaker-hyperpod-recipes.git
      cd sagemaker-hyperpod-recipes
      pip3 install -r requirements.txt
      ```

   1. Metodo 2: kubectl con metodo job yaml predefinito

      ```
      # install SageMaker HyperPod checkpointless training.
      git clone git@github.com:aws/sagemaker-hyperpod-checkpointless-training.git
      cd sagemaker-hyperpod-checkpointless-training
      ```

Ora puoi lanciare la ricetta di allenamento senza checkpointless usando il programma di avvio -style o usando kubectl. NeMo

## Metodo 1: avvia il processo di formazione con il programma di avvio delle ricette
<a name="sagemaker-eks-checkpointless-recipes-pretraining-llama3-recipes-launcher"></a>

In alternativa, puoi utilizzare le SageMaker HyperPod ricette per inviare il tuo lavoro di formazione. L'uso delle ricette comporta l'aggiornamento di k8s.yaml, config.yaml e l'esecuzione dello script di avvio.

1. Aggiornamento di `launcher_scripts/llama/run_checkpointless_llama3_70b_pretrain.sh`

   Un contenitore di Deep Learning. Per trovare la versione più recente del contenitore di formazione checkpointless, consulta le note sulla versione di [checkpointless](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html) training.

   ```
   #!/bin/bash
   
   SAGEMAKER_TRAINING_LAUNCHER_DIR=${SAGEMAKER_TRAINING_LAUNCHER_DIR:-"$(pwd)"}
   TRAIN_DIR="${TRAIN_DIR}"
   VAL_DIR="${VAL_DIR}"
   EXP_DIR="${EXP_DIR}"
   LOG_DIR="${LOG_DIR}"
   CONTAINER_MOUNT="/data"
   CONTAINER="${CONTAINER}"
   
   HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \
       recipes=training/llama/checkpointless_llama3_70b_pretrain \
       recipes.dataset.dataset_path="${TRAIN_DIR}" \
       recipes.exp_manager.exp_dir="${EXP_DIR}" \
       recipes.log_dir="${LOG_DIR}" \
       recipes.data.global_batch_size=16 \
       recipes.data.micro_batch_size=4 \
       base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \
       git.use_default=false \
       cluster=k8s \
       cluster_type=k8s \
       container="${CONTAINER}" \
       +cluster.hostNetwork=true \
       +cluster.persistent_volume_claims.0.claimName=fsx-claim \
       +cluster.persistent_volume_claims.0.mountPath="${CONTAINER_MOUNT}" \
       +recipes.dataset.val_dataset_path="${VAL_DIR}" \
       ++recipes.callbacks.3.test_fault_config.fault_prob_between_lock=1 \
   ```

1. Avvio del job di addestramento

   ```
   bash launcher_scripts/llama/run_checkpointless_llama3_70b_pretrain.sh
   ```

1. Dopo aver inviato il job di addestramento, puoi utilizzare il comando seguente per verificare se l’invio è riuscito.

   ```
   kubectl get pods
   
   NAME                             READY   STATUS             RESTARTS        AGE
   llama-3-70b-worker-0             0/1    running               0            36s
   ```

1. Se lo STATUS è in sospeso o ContainerCreating, esegui il comando seguente per ottenere maggiori dettagli

   ```
   kubectl describe pod <name of pod>
   ```

1. Quando lo STATUS del processo diventa Running, puoi esaminare il log utilizzando il comando seguente.

   ```
   kubectl logs <name of pod>
   ```

   Lo STATUS diventerà Completato quando esegui kubectl get pods

## Metodo 2: Avvia il processo di formazione con kubectl con yaml predefinito
<a name="sagemaker-eks-checkpointless-recipes-pretraining-llama3-kubectl"></a>

Un'altra opzione è avviare la formazione tramite kubectl con un job predefinito yaml.

1. Aggiornamento di `examples/llama3/launch/pretrain_llama3_70b_checkpointless_p5.yaml`
   + `image`: un container per il Deep Learning. [Per trovare la versione più recente del contenitore di formazione checkpointless, consulta le note sulla versione di checkpointless training.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html)
   + `resume.restore_config.path=<path_to_pretrained_weights>`[: Il percorso per scaricare i pesi dei modelli preaddestrati in formato Nemo nella fase Prerequisiti.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-finetune.html#sagemaker-eks-checkpointless-recipes-finetune-prereqs)
   + `dataset.dataset_path=<path_to_dataset>`: Il percorso del set di dati archiviato nella memoria condivisa

1. Invia il lavoro usando kubectl con `pretrain_llama3_70b_checkpointless_p5.yaml`

   ```
   kubectl apply -f examples/llama3/launch/pretrain_llama3_70b_checkpointless_p5.yaml
   ```

1. Dopo aver inviato il job di addestramento, puoi utilizzare il comando seguente per verificare se l’invio è riuscito.

   ```
   kubectl get pods
   
   NAME                                             READY   STATUS             RESTARTS        AGE
   llama3-pretrain-checkpointless-worker-0             0/1    running               0            36s
   ```

1. Se lo STATUS è in sospeso o ContainerCreating, esegui il seguente comando per ottenere maggiori dettagli

   ```
   kubectl describe pod <name of pod>
   ```

1. Quando lo STATUS del processo diventa Running, puoi esaminare il log utilizzando il comando seguente.

   ```
   kubectl logs <name of pod>
   ```

   Lo STATUS diventerà Completato quando esegui kubectl get pods

# Tutorial - Amazon SageMaker HyperPod Checkpointless Left-Lora Llama 3 70b
<a name="sagemaker-eks-checkpointless-recipes-peft-llama"></a>

La seguente sequenza di passaggi è necessaria per eseguire ricette di formazione senza checkpoint. HyperPod

## Prerequisiti
<a name="sagemaker-eks-checkpointless-recipes-peft-llama-prereqs"></a>

Prima di iniziare a configurare l’ambiente, assicurati di avere:
+ [Supporto Amazon EKS abilitato in Amazon SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Configura l'operatore HyperPod di formazione (v1.2\$1)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html)
+ Una posizione di archiviazione condivisa. Può essere un FSx file system Amazon o un sistema NFS accessibile dai nodi del cluster.
+ I dati in uno dei seguenti formati:
  + JSON
  + JSONGZ (JSON compresso)
  + ARROW
+ [Scegli una ricetta di formazione supportata senza checkpoint per Llama 70B o GPT-OSS 120B dalla fonte.](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection)
+ [Scaricate i pesi del modello Hugging](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html) [Face e convertiteli nel formato supportato da Nemo.](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemo-2.0/features/hf-integration.html#importing-from-hugging-face)
+ Configurare l’ambiente

## Configurazione dell'ambiente Kubernetes
<a name="sagemaker-eks-checkpointless-recipes-peft-llama-kubernetes"></a>

Per configurare l'ambiente Kubernetes, procedi come segue:

1. Configura l’ambiente virtuale. Assicurati di usare Python maggiore o uguale a 3.10 e inferiore a 3.14.

   ```
   python3 -m venv ${PWD}/venv
   source venv/bin/activate
   ```

1. [Configura kubectl ed eksctl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)

1. [Installa Helm](https://helm.sh/docs/intro/install/)

1. Connettiti al cluster Kubernetes.

   ```
   aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}"
   ```

1. Installa le dipendenze utilizzando uno dei metodi seguenti:

   1. Metodo 1: metodo SageMaker HyperPod delle ricette:

      ```
      # install SageMaker HyperPod Recipes.
      git clone --recursive git@github.com:aws/sagemaker-hyperpod-recipes.git
      cd sagemaker-hyperpod-recipes
      pip3 install -r requirements.txt
      ```

   1. Metodo 2: kubectl con metodo job yaml predefinito

      ```
      # install SageMaker HyperPod checkpointless training.
      git clone git@github.com:aws/sagemaker-hyperpod-checkpointless-training.git
      cd sagemaker-hyperpod-checkpointless-training
      ```

Ora puoi lanciare la ricetta di allenamento senza checkpointless usando il programma di avvio -style o usando kubectl. NeMo

## Metodo 1: avvia il processo di formazione con il programma di avvio delle ricette
<a name="sagemaker-eks-checkpointless-recipes-peft-llama-recipes-launcher"></a>

In alternativa, puoi utilizzare le SageMaker HyperPod ricette per inviare il tuo lavoro di formazione. L'uso delle ricette comporta l'aggiornamento di k8s.yaml, config.yaml e l'esecuzione dello script di avvio.

1. Aggiornamento di `launcher_scripts/llama/run_checkpointless_llama3_70b_lora.sh`

   Un contenitore di Deep Learning. Per trovare la versione più recente del contenitore di formazione checkpointless, consulta le note sulla versione di [checkpointless](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html) training.

   ```
   #!/bin/bash
   
   SAGEMAKER_TRAINING_LAUNCHER_DIR=${SAGEMAKER_TRAINING_LAUNCHER_DIR:-"$(pwd)"}
   TRAIN_DIR="${TRAIN_DIR}"
   VAL_DIR="${VAL_DIR}"
   EXP_DIR="${EXP_DIR}"
   LOG_DIR="${LOG_DIR}"
   CONTAINER_MOUNT="/data"
   CONTAINER="${CONTAINER}"
   MODEL_NAME_OR_PATH="${MODEL_NAME_OR_PATH}"
   
   HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \
       recipes=fine-tuning/llama/checkpointless_llama3_70b_lora \
       recipes.dataset.dataset_path="${TRAIN_DIR}" \
       recipes.exp_manager.exp_dir="${EXP_DIR}" \
       recipes.log_dir="${LOG_DIR}" \
       recipes.resume.restore_config.path="${MODEL_NAME_OR_PATH}" \
       base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \
       git.use_default=false \
       cluster=k8s \
       cluster_type=k8s \
       container="${CONTAINER}" \
       +cluster.hostNetwork=true \
       +cluster.persistent_volume_claims.0.claimName=fsx-claim \
       +cluster.persistent_volume_claims.0.mountPath="${CONTAINER_MOUNT}" \
       +recipes.dataset.val_dataset_path="${VAL_DIR}" \
       ++recipes.callbacks.3.test_fault_config.fault_prob_between_lock=1 \
   ```

1. Avvio del job di addestramento

   ```
   bash launcher_scripts/llama/run_checkpointless_llama3_70b_lora.sh
   ```

1. Dopo aver inviato il job di addestramento, puoi utilizzare il comando seguente per verificare se l’invio è riuscito.

   ```
   kubectl get pods
   
   NAME                             READY   STATUS             RESTARTS        AGE
   llama-3-70b-worker-0             0/1    running               0            36s
   ```

1. Se lo STATUS è in sospeso o ContainerCreating, esegui il comando seguente per ottenere maggiori dettagli

   ```
   kubectl describe pod <name of pod>
   ```

1. Quando lo STATUS del processo diventa Running, puoi esaminare il log utilizzando il comando seguente.

   ```
   kubectl logs <name of pod>
   ```

   Lo STATUS diventerà Completato quando esegui kubectl get pods

## Metodo 2: Avvia il processo di formazione con kubectl con yaml predefinito
<a name="sagemaker-eks-checkpointless-recipes-peft-llama-kubectl"></a>

Un'altra opzione è avviare la formazione tramite kubectl con un job predefinito yaml.

1. Aggiornamento di `examples/llama3/launch/peft_llama3_70b_checkpointless_p5.yaml`
   + `image`: un container per il Deep Learning. [Per trovare la versione più recente del contenitore di formazione checkpointless, consulta le note sulla versione di checkpointless training.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html)
   + `resume.restore_config.path=<path_to_pretrained_weights>`[: Il percorso per scaricare i pesi dei modelli preaddestrati in formato Nemo nella fase Prerequisiti.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-finetune.html#sagemaker-eks-checkpointless-recipes-finetune-prereqs)
   + `dataset.dataset_path=<path_to_dataset>`: Il percorso del set di dati archiviato nella memoria condivisa

1. Invia il lavoro usando kubectl con `peft_llama3_70b_checkpointless_p5.yaml`

   ```
   kubectl apply -f examples/llama3/launch/peft_llama3_70b_checkpointless_p5.yaml
   ```

1. Dopo aver inviato il job di addestramento, puoi utilizzare il comando seguente per verificare se l’invio è riuscito.

   ```
   kubectl get pods
   
   NAME                                             READY   STATUS             RESTARTS        AGE
   llama3-70b-lora-checkpointless-worker-0             0/1    running               0            36s
   ```

1. Se lo STATUS è in sospeso o ContainerCreating, esegui il seguente comando per ottenere maggiori dettagli

   ```
   kubectl describe pod <name of pod>
   ```

1. Quando lo STATUS del processo diventa Running, puoi esaminare il log utilizzando il comando seguente.

   ```
   kubectl logs <name of pod>
   ```

   Lo STATUS diventerà Completato quando esegui kubectl get pods

# Tutorial - Amazon SageMaker HyperPod Checkpointless, preaddestramento o messa a punto di modelli personalizzati
<a name="sagemaker-eks-checkpointless-recipes-custom"></a>

La seguente sequenza di passaggi è necessaria per eseguire un addestramento senza checkpoint con il modello personalizzato acceso. HyperPod

## Prerequisiti
<a name="sagemaker-eks-checkpointless-recipes-custom-prereqs"></a>

Prima di iniziare a configurare l’ambiente, assicurati di avere:
+ [Supporto Amazon EKS abilitato in Amazon SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Configura l'operatore HyperPod di formazione (v1.2\$1)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html)
+ Una posizione di archiviazione condivisa. Può essere un FSx file system Amazon o un sistema NFS accessibile dai nodi del cluster.
+ I dati in uno dei seguenti formati:
  + JSON
  + JSONGZ (JSON compresso)
  + ARROW
+ [Scarica i pesi del modello Hugging Face](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html) [e convertili nel formato supportato da Nemo.](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemo-2.0/features/hf-integration.html#importing-from-hugging-face)
+ Configurare l’ambiente

## Configurazione dell'ambiente Kubernetes
<a name="sagemaker-eks-checkpointless-recipes-custom-kubernetes"></a>

Per configurare l'ambiente Kubernetes, procedi come segue:

1. Configura l’ambiente virtuale. Assicurati di usare Python maggiore o uguale a 3.10 e inferiore a 3.14.

   ```
   python3 -m venv ${PWD}/venv
   source venv/bin/activate
   ```

1. [Configura kubectl ed eksctl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)

1. Connettiti al cluster Kubernetes.

   ```
   aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}"
   ```

1. Installare le dipendenze

   ```
   # install SageMaker HyperPod checkpointless training.
   git clone git@github.com:aws/sagemaker-hyperpod-checkpointless-training.git
   cd sagemaker-hyperpod-checkpointless-training
   ```

## Istruzioni di modifica dell'allenamento Checkpointless
<a name="sagemaker-eks-checkpointless-recipes-custom-modification-instructions"></a>

Per adottare in modo incrementale la formazione senza checkpoint per i modelli personalizzati, segui la guida all'integrazione (qui utilizziamo il pretraining di Llama 3 70b come esempio), che prevede:
+ Creazione rapida di comunicatori
+ Dataloader mappato in memoria (MMAP)
+ Ripristino in corso e senza checkpoint

### Componente 1: creazione rapida di comunicatori
<a name="sagemaker-eks-checkpointless-recipes-custom-component1"></a>

Questo per ottimizzare i tempi necessari per stabilire connessioni tra i lavoratori. Non sono necessarie modifiche al codice e richiede solo l'impostazione delle variabili env

```
  # Enable Rootless features
  export HPCT_USE_ROOTLESS=1 && \
  sysctl -w net.ipv4.ip_local_port_range="20000 65535" && \

  hyperpodrun --nproc_per_node=8 \
              ...
              --inprocess-restart \
              ...
```

La modifica completa può essere trovata nel file [llama3 70 pretrain](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/llama3/launch/pretrain_llama3_70b_checkpointless_p5.yaml) launch job config.

### Componente 2: Dataloader mappato in memoria (MMAP)
<a name="sagemaker-eks-checkpointless-recipes-custom-component2"></a>

Cache MMAP per archiviare campioni di dati precaricati e consentire l'avvio immediato della formazione senza dover attendere la preelaborazione dei dati. Richiede modifiche minime al codice da adottare inserendo il dataloader esistente.

```
data_module = MMAPDataModule(
  data_module=base_data_module,
  mmap_config=CacheResumeMMAPConfig(cache_dir=…)
)
```

### Componenti 3 e 4: ripristino in corso e senza checkpoint
<a name="sagemaker-eks-checkpointless-recipes-custom-components3-4"></a>

Ciò consente il ripristino in caso di errore senza riavviare i processi di addestramento o il caricamento dai checkpoint. Sono necessarie ulteriori modifiche al codice (aggiornamento della configurazione di strategia e formazione, wrap existing main)

```
@HPWrapper(
  health_check=CudaHealthCheck(),
  hp_api_factory=HPAgentK8sAPIFactory(),
  abort_timeout=60.0,
...)
def run_main(
  cfg,
  caller: Optional[HPCallWrapper] = None):
...


CheckpointlessMegatronStrategy(
  **self.cfg.strategy,
  ddp=self.ddp,
)
```

[La modifica completa è disponibile nello [script di immissione pretrain di llama3 70](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/llama3/llama3_70b_pretrain_checkpointless.py) e la corrispondente modifica alla configurazione di allenamento è disponibile nella configurazione di addestramento di llama3 70b.](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/llama3/config/llama3_70b_peft_checkpointless.yaml)

### Avvia la formazione
<a name="sagemaker-eks-checkpointless-recipes-custom-launch"></a>

Ora puoi avviare l'allenamento senza checkpoint usando kubectl.

```
kubectl apply -f your_job_config.yaml
```

# HyperPod funzionalità di formazione senza checkpointless
<a name="sagemaker-eks-checkpointless-features"></a>

Consulta le pagine seguenti per conoscere le funzionalità di formazione della formazione senza checkpointless.

**Topics**
+ [Archivi di formazione SageMaker HyperPod senza checkpoint di Amazon](#sagemaker-eks-checkpointless-repositories)
+ [Miglioramenti all'inizializzazione della comunicazione collettiva](sagemaker-eks-checkpointless-features-communication.md)
+ [Dataloader mappato in memoria](sagemaker-eks-checkpointless-features-mmap.md)
+ [Recupero durante il processo e formazione senza checkpoint](sagemaker-eks-checkpointless-in-process-recovery.md)

## Archivi di formazione SageMaker HyperPod senza checkpoint di Amazon
<a name="sagemaker-eks-checkpointless-repositories"></a>

[ HyperPod checkpointless training](https://github.com/aws/sagemaker-hyperpod-checkpointless-training#) accelera il ripristino dai guasti dei cluster in ambienti di formazione distribuiti su larga scala attraverso ottimizzazioni a livello di framework. Queste ottimizzazioni vengono fornite tramite un'immagine del contenitore di base che include miglioramenti avanzati dell'inizializzazione NCCL, ottimizzazioni del caricamento dei dati e componenti di ripristino in corso e senza checkpoint. Il pacchetto di formazione HyperPod checkpointless si basa su queste basi.

La formazione Checkpointless è abilitata tramite tre percorsi di ottimizzazione eseguiti in sinergia:
+ **Miglioramenti all'inizializzazione della comunicazione (NCCL e Gloo)**: elimina gli ostacoli alla comunicazione decentralizzando le informazioni di rango tra pari e ring (riquadro rosso in basso).
+ **Ottimizzazioni del caricamento dei dati**: riduci il tempo necessario per fornire il primo batch di dati durante le operazioni di riavvio (riquadri arancioni sotto).
+ **Riduzione del sovraccarico di riavvio del programma**: riduci al minimo i costi di riavvio e abilita il rifornimento senza checkpoint attraverso il ripristino del processo su nodi integri (riquadri blu e verdi di seguito).

![\[alt text not found\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod/hyperpod-checkpointless-optimization-tracks.png)


# Miglioramenti all'inizializzazione della comunicazione collettiva
<a name="sagemaker-eks-checkpointless-features-communication"></a>

NCCL e Gloo sono librerie di comunicazione fondamentali che consentono operazioni collettive (come all-reduce e broadcast) attraverso processi di formazione distribuiti. Tuttavia, l'inizializzazione tradizionale di NCCL e Gloo può creare colli di bottiglia durante il ripristino dei guasti.

Il processo di ripristino standard richiede che tutti i processi si connettano a un sistema centralizzato TCPStore e si coordinino tramite un processo root, il che comporta un oneroso sovraccarico che diventa particolarmente problematico durante i riavvii. Questo design centralizzato crea tre problemi critici: sovraccarico di coordinamento dovuto alle TCPStore connessioni obbligatorie, ritardi di ripristino poiché ogni riavvio deve ripetere l'intera sequenza di inizializzazione e un singolo punto di errore nel processo principale stesso. Ciò impone procedure di coordinamento costose e centralizzate ogni volta che la formazione viene inizializzata o riavviata.

HyperPod la formazione senza checkpointless elimina questi ostacoli di coordinamento, permettendo un recupero più rapido dai guasti grazie a un'inizializzazione «senza radici» e «...» TCPStoreless

## configurazioni rootless
<a name="sagemaker-eks-checkpointless-features-communication-rootless-config"></a>

Per abilitare Rootless, è sufficiente esporre le seguenti variabili di ambiente.

```
export HPCT_USE_ROOTLESS=1 && \
sysctl -w net.ipv4.ip_local_port_range="20000 65535" && \
```

HPCT\$1USE\$1ROOTLESS: 0 o 1. Si usa per accendere e spegnere rootless

sysctl -w net.ipv4.ip\$1local\$1port\$1range="20000 65535": imposta l'intervallo delle porte di sistema

[Vedi l'esempio per abilitare Rootless](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/llama3/launch/pretrain_llama3_70b_checkpointless_p5.yaml#L111-L113).

## Rootless
<a name="sagemaker-eks-checkpointless-features-communication-rootless"></a>

HyperPod checkpointless training offre nuovi metodi di inizializzazione, Rootless e, per i gruppi di processi NCCL e TCPStoreless Gloo.

L'implementazione di queste ottimizzazioni comporta la modifica di NCCL, Gloo e: PyTorch
+ Estensione della libreria di terze parti APIs per abilitare le ottimizzazioni Rootless e Storeless NCCL e Gloo mantenendo al contempo la compatibilità con le versioni precedenti
+ Aggiornamento dei backend dei gruppi di processi per utilizzare in modo condizionale percorsi ottimizzati e gestire i problemi di ripristino durante il processo
+ Evitando costose TCPStore creazioni a livello PyTorch distribuito mantenendo al contempo modelli di indirizzi simmetrici attraverso contatori di gruppo globali

Il grafico seguente mostra l'architettura delle librerie di formazione distribuite e le modifiche apportate alla formazione senza checkpoint.

![\[Il grafico seguente mostra l'architettura delle librerie di formazione distribuite e le modifiche apportate alla formazione senza checkpointless.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod/hyperpod-checkpointless-training-libraries.png)


### NCCL e Gloo
<a name="sagemaker-eks-checkpointless-features-communication-nccl-gloo"></a>

Si tratta di pacchetti indipendenti che eseguono le funzionalità principali delle comunicazioni collettive. Forniscono chiavi APIs, come ncclCommInit Rank, per inizializzare le reti di comunicazione, gestire le risorse sottostanti ed eseguire comunicazioni collettive. Dopo aver apportato modifiche personalizzate a NCCL e Gloo, Rootless e Storeless ottimizzano (ad esempio, saltando la connessione a) l'inizializzazione della rete di comunicazione. TCPStore È possibile passare dall'utilizzo dei percorsi di codice originali ai percorsi di codice ottimizzati in modo flessibile.

### PyTorch backend del gruppo di processi
<a name="sagemaker-eks-checkpointless-features-communication-pytorch"></a>

I backend del gruppo di processi, in particolare ProcessGroup NCCL e ProcessGroupGloo, lo implementano ProcessGroup APIs richiamando le APIs librerie sottostanti corrispondenti. Poiché estendiamo le librerie di terze parti APIs, dobbiamo richiamarle correttamente e modificare il percorso del codice in base alle configurazioni dei clienti.

Oltre all'ottimizzazione dei percorsi di codice, modifichiamo anche il backend del gruppo di processi per supportare il ripristino durante il processo.

# Dataloader mappato in memoria
<a name="sagemaker-eks-checkpointless-features-mmap"></a>

Un altro sovraccarico di riavvio deriva dal caricamento dei dati: il cluster di addestramento rimane inattivo mentre il dataloader si inizializza, scarica i dati dai file system remoti e li elabora in batch.

Per risolvere questo problema, introduciamo il Memory Mapped DataLoader (MMAP) Dataloader, che memorizza nella cache i batch preimpostati nella memoria persistente, assicurando che rimangano disponibili anche dopo un riavvio indotto da un errore. Questo approccio elimina i tempi di configurazione del dataloader e consente di riprendere immediatamente l'addestramento utilizzando batch memorizzati nella cache, mentre il dataloader reinizializza e recupera contemporaneamente i dati successivi in background. La cache dei dati si trova su ogni livello che richiede dati di addestramento e mantiene due tipi di batch: i batch consumati di recente e utilizzati per l'addestramento e i batch precaricati pronti per l'uso immediato.

![\[Questa immagine illustra il Dataloader MMAP, le cache e i batch utilizzati.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod/hyperpod-checkpointless-mmap-dataloader.png)


Il dataloader MMAP offre due funzionalità seguenti:
+ **Prefetching dei dati**: recupera e memorizza in modo proattivo i dati generati dal dataloader
+ **Memorizzazione nella cache persistente**: archivia i batch consumati e quelli precaricati in un file system temporaneo che sopravvive al riavvio del processo

Utilizzando la cache, il processo di formazione trarrà vantaggio da:
+ **Impronta di memoria ridotta**: sfrutta la mappatura della memoria I/O per mantenere una singola copia condivisa dei dati nella memoria della CPU host, eliminando le copie ridondanti tra i processi GPU (ad esempio, riduce da 8 copie a 1 su un'istanza p5 con 8) GPUs
+ **Ripristino più rapido**: riduce il tempo medio di riavvio (MTTR) grazie alla possibilità di riprendere immediatamente la formazione dai batch memorizzati nella cache, eliminando così l'attesa per la reinizializzazione del dataloader e la prima generazione del batch

## Configurazioni MMAP
<a name="sagemaker-eks-checkpointless-features-communication-mmap-config"></a>

Per utilizzare MMAP, è sufficiente inserire il modulo dati originale in `MMAPDataModule`

```
data_module=MMAPDataModule(
    data_module=MY_DATA_MODULE(...),
    mmap_config=CacheResumeMMAPConfig(
        cache_dir=self.cfg.mmap.cache_dir,
        checkpoint_frequency=self.cfg.mmap.checkpoint_frequency),
)
```

`CacheResumeMMAPConfig`: I parametri di MMAP Dataloader controllano la posizione della directory della cache, i limiti di dimensione e la delega per il recupero dei dati. Per impostazione predefinita, solo il livello TP 0 per nodo recupera i dati dall'origine, mentre gli altri ranghi dello stesso gruppo di replica li leggono dalla cache condivisa, eliminando i trasferimenti ridondanti.

`MMAPDataModule`: racchiude il modulo di dati originale e restituisce il dataloader mmap sia per l'addestramento che per la convalida.

[Vedi l'esempio per abilitare MMAP.](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/gpt_oss/gpt_oss_120b_full_finetune_checkpointless.py#L101-L109)

## Guida di riferimento alle API
<a name="sagemaker-eks-checkpointless-mmap-reference"></a>

### CacheResumeMMAPConfig
<a name="sagemaker-eks-checkpointless-mmap-reference-cacheresume"></a>

```
class hyperpod_checkpointless_training.dataloader.config.CacheResumeMMAPConfig(
  cache_dir='/dev/shm/pdl_cache',
  prefetch_length=10,
  val_prefetch_length=10,
  lookback_length=2,
  checkpoint_frequency=None,
  model_parallel_group=None,
  enable_batch_encryption=False)
```

Classe di configurazione per la funzionalità del dataloader cache-resume memory-mapped (MMAP) durante la formazione senza checkpoint. HyperPod 

Questa configurazione consente un caricamento efficiente dei dati con funzionalità di caching e prefetching, permettendo di riprendere rapidamente l'addestramento dopo i guasti mantenendo i batch di dati memorizzati nella cache in file mappati in memoria.

**Parametri**
+ **cache\$1dir** (str, opzionale) — Percorso della directory per l'archiviazione dei batch di dati memorizzati nella cache. Predefinito: «/\$1cache» dev/shm/pdl
+ **prefetch\$1length** (int, opzionale) — Numero di batch da prerecuperare durante l'allenamento. Impostazione predefinita: 10
+ **val\$1prefetch\$1length** (int, opzionale) — Numero di batch da prerecuperare in anticipo durante la convalida. Impostazione predefinita: 10
+ **lookback\$1length** (int, opzionale) — Numero di batch utilizzati in precedenza da conservare nella cache per un potenziale riutilizzo. Impostazione predefinita: 2
+ **checkpoint\$1frequency (int, opzionale) — Frequenza delle** fasi di checkpoint del modello. Utilizzato per l'ottimizzazione delle prestazioni della cache. Impostazione predefinita: nessuna
+ **model\$1parallel\$1group (oggetto, opzionale) — Gruppo** di processi per il parallelismo dei modelli. Se Nessuno, verrà creato automaticamente. Impostazione predefinita: nessuna
+ **enable\$1batch\$1encryption** (bool, opzionale) — Indica se abilitare la crittografia per i dati batch memorizzati nella cache. Impostazione predefinita: False

**Metodi**

```
create(dataloader_init_callable,
    parallel_state_util,
   step,
    is_data_loading_rank,
   create_model_parallel_group_callable,
    name='Train',
   is_val=False,
   cached_len=0)
```

Crea e restituisce un'istanza di dataloader MMAP configurata.

**Parametri**
+ **dataloader\$1init\$1callable (Callable**) — Funzione per inizializzare il dataloader sottostante
+ **parallel\$1state\$1util (object) — Utilità** per la gestione dello stato parallelo tra i processi
+ **step** (int) — La fase relativa ai dati da cui riprendere durante l'allenamento
+ **is\$1data\$1loading\$1rank (Callable) — Funzione che restituisce True se il rank** corrente deve caricare i dati
+ **create\$1model\$1parallel\$1group\$1callable (Callable**) — Funzione per creare un gruppo di processi parallelo modello
+ name (str, opzionale) — **Identificatore del nome** per il dataloader. Predefinito: «Train»
+ **is\$1val** (bool, opzionale) — Se si tratta di un dataloader di convalida. Impostazione predefinita: False
+ **cached\$1len** (int, opzionale) — Lunghezza dei dati memorizzati nella cache se si riprende dalla cache esistente. Impostazione predefinita: 0

Restituisce `CacheResumePrefetchedDataLoader` o: istanza del dataloader MMAP configurata `CacheResumeReadDataLoader`

Aumenta `ValueError` se il parametro step è. `None`

**Esempio**

```
from hyperpod_checkpointless_training.dataloader.config import CacheResumeMMAPConfig

# Create configuration
config = CacheResumeMMAPConfig(
    cache_dir="/tmp/training_cache",
    prefetch_length=20,
    checkpoint_frequency=100,
    enable_batch_encryption=False
)

# Create dataloader
dataloader = config.create(
    dataloader_init_callable=my_dataloader_init,
    parallel_state_util=parallel_util,
    step=current_step,
    is_data_loading_rank=lambda: rank == 0,
    create_model_parallel_group_callable=create_mp_group,
    name="TrainingData"
)
```

**Note**
+ La directory della cache dovrebbe avere spazio sufficiente e I/O prestazioni veloci (ad esempio, /dev/shm per l'archiviazione in memoria).
+ L'impostazione `checkpoint_frequency` migliora le prestazioni della cache allineando la gestione della cache con il checkpointing del modello
+ Per i dataloaders di convalida (`is_val=True`), il passaggio viene reimpostato su 0 e l'avvio a freddo viene forzato
+ Vengono utilizzate diverse implementazioni del dataloader a seconda che il rango corrente sia responsabile del caricamento dei dati

### MMAPDataModulo
<a name="sagemaker-eks-checkpointless-mmap-reference-mmapdatamodule"></a>

```
class hyperpod_checkpointless_training.dataloader.mmap_data_module.MMAPDataModule(  
    data_module,  
    mmap_config,  
    parallel_state_util=MegatronParallelStateUtil(),  
    is_data_loading_rank=None)
```

Un DataModule wrapper PyTorch Lightning che applica funzionalità di caricamento dei dati mappate in memoria (MMAP) a quelle esistenti per un addestramento senza checkpoint. DataModules 

Questa classe integra un PyTorch Lightning esistente e lo migliora con la funzionalità MMAP, che consente una memorizzazione efficiente dei dati nella cache DataModule e un ripristino rapido in caso di errori di formazione. Mantiene la compatibilità con l'interfaccia originale DataModule aggiungendo funzionalità di formazione senza checkpoint.

Parameters

data\$1module (pl. LightningDataModule)  
Il sottostante DataModule da avvolgere (ad esempio, LLMData Module)

mmap\$1config () MMAPConfig  
L'oggetto di configurazione MMAP che definisce il comportamento e i parametri della memorizzazione nella cache

`parallel_state_util`(MegatronParallelStateUtil, opzionale)  
Utilità per la gestione dello stato parallelo tra processi distribuiti. Impostazione predefinita: MegatronParallelStateUtil ()

`is_data_loading_rank`(Richiamabile, opzionale)  
Funzione che restituisce True se il rango corrente deve caricare dati. Se Nessuno, il valore predefinito è parallel\$1state\$1util.is\$1tp\$10. Impostazione predefinita: nessuna

**Attributes**

`global_step` (int)  
Fase di formazione globale attuale, utilizzata per riprendere dai checkpoint

`cached_train_dl_len` (int)  
Lunghezza memorizzata nella cache del dataloader di addestramento

`cached_val_dl_len` (int)  
Lunghezza memorizzata nella cache del dataloader di convalida

**Metodi**

```
setup(stage=None)
```

Imposta il modulo di dati sottostante per la fase di formazione specificata.

`stage`(str, opzionale)  
Fase dell'allenamento («adattamento», «convalida», «test» o «previsione»). Impostazione predefinita: nessuna

```
train_dataloader()
```

Crea l'allenamento DataLoader con MMAP wrapping.

*Restituisce: DataLoader — Addestramento* basato su MMAP con funzionalità di caching e prefetching DataLoader 

```
val_dataloader()
```

Crea la convalida con MMAP wrapping. DataLoader 

*Restituisce:* DataLoader — Validazione avvolta in MMAP con funzionalità di memorizzazione nella cache DataLoader 

```
test_dataloader()
```

Crea il test DataLoader se il modulo di dati sottostante lo supporta.

*Restituisce:* DataLoader o Nessuno: esegue il test DataLoader dal modulo di dati sottostante o Nessuno se non è supportato

```
predict_dataloader()
```

Crea la previsione DataLoader se il modulo di dati sottostante la supporta.

*Restituisce:* DataLoader o Nessuno: prevedi DataLoader dal modulo di dati sottostante o Nessuno se non è supportato

```
load_checkpoint(checkpoint)
```

Carica le informazioni sul checkpoint per riprendere l'allenamento da una fase specifica.

checkpoint (dict)  
dizionario Checkpoint contenente la chiave 'global\$1step'

```
get_underlying_data_module()
```

Ottieni il modulo di dati racchiuso sottostante.

*Restituisce:* pl. LightningDataModule — Il modulo dati originale che è stato confezionato

```
state_dict()
```

Ottieni il dizionario di stato del MMAP DataModule per il checkpoint.

*Restituisce:* dict — Dizionario contenente le lunghezze del dataloader memorizzate nella cache

```
load_state_dict(state_dict)
```

Carica il dizionario di stato per ripristinare lo stato MMAP. DataModule 

`state_dict`(dict)  
Dizionario di stato da caricare

**Proprietà**

```
data_sampler
```

Esporre il campionatore di dati del modulo di dati sottostante al framework. NeMo 

*Restituisce:* object or None: il campionatore di dati del modulo di dati sottostante

**Esempio**

```
from hyperpod_checkpointless_training.dataloader.mmap_data_module import MMAPDataModule  
from hyperpod_checkpointless_training.dataloader.config import CacheResumeMMAPConfig  
from my_project import MyLLMDataModule  

# Create MMAP configuration  
mmap_config = CacheResumeMMAPConfig(  
    cache_dir="/tmp/training_cache",  
    prefetch_length=20,  
    checkpoint_frequency=100  
)  

# Create original data module  
original_data_module = MyLLMDataModule(  
    data_path="/path/to/data",  
    batch_size=32  
)  

# Wrap with MMAP capabilities  
mmap_data_module = MMAPDataModule(  
    data_module=original_data_module,  
    mmap_config=mmap_config  
)  

# Use in PyTorch Lightning Trainer  
trainer = pl.Trainer()  
trainer.fit(model, data=mmap_data_module)  

# Resume from checkpoint  
checkpoint = {"global_step": 1000}  
mmap_data_module.load_checkpoint(checkpoint)
```

**Note**
+ Il wrapper delega la maggior parte dell'accesso degli attributi al modulo di dati sottostante utilizzando \$1\$1getattr\$1\$1
+ Solo i ranghi di caricamento dei dati inizializzano e utilizzano effettivamente il modulo di dati sottostante; gli altri ranghi utilizzano dataloader falsi
+ Le lunghezze dei dataloader memorizzati nella cache vengono mantenute per ottimizzare le prestazioni durante la ripresa dell'allenamento

# Recupero durante il processo e formazione senza checkpoint
<a name="sagemaker-eks-checkpointless-in-process-recovery"></a>

HyperPod la formazione senza checkpointless utilizza la ridondanza dei modelli per consentire un addestramento tollerante ai guasti. Il principio fondamentale è che gli stati del modello e dell'ottimizzatore vengono completamente replicati su più gruppi di nodi, con aggiornamenti di peso e modifiche dello stato dell'ottimizzatore replicati in modo sincrono all'interno di ciascun gruppo. Quando si verifica un errore, le repliche integre completano le fasi di ottimizzazione e trasmettono gli stati aggiornati alle repliche in fase di ripristino. model/optimizer 

Questo approccio basato sulla ridondanza del modello consente diversi meccanismi di gestione dei guasti:
+ **Ripristino durante il processo:** i processi rimangono attivi nonostante i guasti, mantenendo tutti gli stati del modello e dell'ottimizzatore nella memoria della GPU con i valori più recenti
+ **Gestione agevole delle interruzioni: aborti** controllati e pulizia delle risorse per le operazioni interessate
+ Riesecuzione **del blocco di codice: riesecuzione** solo dei segmenti di codice interessati all'interno di un blocco di codice rieseguibile (RCB)
+ **Recupero senza punti di controllo senza perdita dei progressi di allenamento:** poiché i processi persistono e gli stati rimangono in memoria, nessun progresso dell'allenamento viene perso; quando si verifica un errore, l'allenamento riprende dalla fase precedente, anziché riprendere dall'ultimo checkpoint salvato

**Configurazioni senza checkpoint**

Ecco il frammento principale della formazione senza checkpointless.

```
from hyperpod_checkpointless_training.inprocess.train_utils import wait_rank
    wait_rank()
      
def main():
    @HPWrapper(
        health_check=CudaHealthCheck(),
        hp_api_factory=HPAgentK8sAPIFactory(),
        abort_timeout=60.0,
        checkpoint_manager=PEFTCheckpointManager(enable_offload=True),
        abort=CheckpointlessAbortManager.get_default_checkpointless_abort(),
        finalize=CheckpointlessFinalizeCleanup(),
    )
    def run_main(cfg, caller: Optional[HPCallWrapper] = None):
        ...
        trainer = Trainer(
            strategy=CheckpointlessMegatronStrategy(...,
                num_distributed_optimizer_instances=2),
            callbacks=[..., CheckpointlessCallback(...)],
            )
        trainer.fresume = resume
        trainer._checkpoint_connector = CheckpointlessCompatibleConnector(trainer)
        trainer.wrapper = caller
```
+ `wait_rank`: Tutti i ranghi aspetteranno le informazioni sulla classifica dall'infrastruttura. HyperpodTrainingOperator 
+ `HPWrapper`: wrapper di funzioni Python che abilita le funzionalità di riavvio per un blocco di codice rieseguibile (RCB). L'implementazione utilizza un gestore di contesto anziché un decoratore Python perché i decoratori non possono determinare il numero di elementi da RCBs monitorare in fase di esecuzione.
+ `CudaHealthCheck`: Assicura che il contesto CUDA per il processo corrente sia integro mediante la sincronizzazione con la GPU. Utilizza il dispositivo specificato dalla variabile di ambiente LOCAL\$1RANK o utilizza come impostazione predefinita il dispositivo CUDA del thread principale se LOCAL\$1RANK non è impostato.
+ `HPAgentK8sAPIFactory`: Questa API consente la formazione senza checkpoint per interrogare lo stato di addestramento di altri pod nel cluster di formazione Kubernetes. Fornisce inoltre una barriera a livello di infrastruttura che garantisce che tutti i ranghi completino con successo le operazioni di interruzione e riavvio prima di procedere.
+ `CheckpointManager`: Gestisce i checkpoint in memoria e il ripristino per una tolleranza agli errori senza checkpoint. peer-to-peer Ha le seguenti responsabilità principali:
  + **Gestione dei checkpoint in memoria**: salva e gestisce i checkpoint NeMo del modello in memoria per un ripristino rapido senza disco I/O durante gli scenari di ripristino senza checkpoint.
  + Convalida **della fattibilità del ripristino: determina se è possibile il ripristino senza checkpoint convalidando** la coerenza globale dei passaggi, lo stato del rango e l'integrità dello stato del modello.
  + **Peer-to-Peer Orchestrazione del ripristino: coordina il trasferimento dei** checkpoint tra i ranghi sani e quelli danneggiati utilizzando la comunicazione distribuita per un ripristino rapido.
  + **Gestione dello stato RNG**: conserva e ripristina gli stati dei generatori di numeri casuali su Python e Megatron per il NumPy ripristino PyTorch deterministico.
  + **[Opzionale] Checkpoint Offload: trasferisci il checkpoint** di memoria sulla CPU se la GPU non ha una capacità di memoria sufficiente.
+ `PEFTCheckpointManager`: Si estende mantenendo i pesi del modello base `CheckpointManager` per la regolazione fine del PEFT.
+ `CheckpointlessAbortManager`: Gestisce le operazioni di interruzione in un thread in background quando si verifica un errore. Per impostazione predefinita, interrompe TransformerEngine, Checkpointing e. TorchDistributed DataLoader Gli utenti possono registrare gestori di aborti personalizzati in base alle esigenze. Una volta completata l'interruzione, tutte le comunicazioni devono cessare e tutti i processi e i thread devono terminare per evitare perdite di risorse.
+ `CheckpointlessFinalizeCleanup`: gestisce le operazioni di pulizia finale nel thread principale per i componenti che non possono essere interrotti o ripuliti in modo sicuro nel thread in background.
+ `CheckpointlessMegatronStrategy`: Eredita dalla forma di Nemo`MegatronStrategy`. Nota che l'addestramento senza checkpoint richiede almeno 2 partecipanti `num_distributed_optimizer_instances` per consentire la replica dell'ottimizzatore. La strategia si occupa anche della registrazione degli attributi essenziali e dell'inizializzazione dei gruppi di processi, ad esempio rootless.
+ `CheckpointlessCallback`: Lightning callback che integra l' NeMo allenamento con il sistema di tolleranza ai guasti di checkpointless training. Ha le seguenti responsabilità principali:
  + **Gestione del ciclo di vita delle fasi di allenamento**: tiene traccia dei progressi dell'allenamento e si coordina ParameterUpdateLock per enable/disable un recupero senza problemi in base allo stato dell'allenamento (prima fase e fasi successive).
  + **Checkpoint State Coordination**: gestisce il salvataggio/ripristino dei checkpoint del modello base PEFT in memoria.
+ `CheckpointlessCompatibleConnector`: Un PTL `CheckpointConnector` che tenta di precaricare il file di checkpoint in memoria, con il percorso di origine determinato in base a questa priorità:
  + prova checkpointless recovery
  + se checkpointless restituisce None, torna a parent.resume\$1start ()

Guarda l'esempio per aggiungere funzionalità di formazione senza [checkpointless ai codici.](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/gpt_oss/gpt_oss_120b_full_finetune.py)

**Concetti**

Questa sezione introduce concetti di formazione senza checkpoint. La formazione Checkpointless su Amazon SageMaker HyperPod supporta il ripristino in corso. Questa interfaccia API segue un formato simile a quello di. NVRx APIs

**Concetto: Re-Executable Code Block (RCB)**

Quando si verifica un errore, i processi sani rimangono attivi, ma una parte del codice deve essere rieseguita per ripristinare gli stati di addestramento e gli stack python. Un Re-Executable Code Block (RCB) è un segmento di codice specifico che viene eseguito nuovamente durante il ripristino in caso di errore. Nell'esempio seguente, l'RCB comprende l'intero script di addestramento (ovvero, tutto ciò che è contenuto in main ()), il che significa che ogni ripristino in caso di errore riavvia lo script di addestramento preservando il modello in memoria e gli stati dell'ottimizzatore.

**Concetto: controllo dei guasti**

Un modulo di controllo dei guasti riceve notifiche quando si verificano guasti durante un addestramento senza checkpoint. Questo controller di guasto include i seguenti componenti:
+ **Modulo di rilevamento dei guasti:** riceve notifiche di guasti dell'infrastruttura
+ **Definizione RCB APIs:** consente agli utenti di definire il blocco di codice rieseguibile (RCB) nel proprio codice
+ **Modulo di riavvio:** termina l'RCB, ripulisce le risorse e riavvia l'RCB

![\[Questa immagine illustra come un modulo di controllo dei guasti riceve notifiche quando si verifica un errore durante un addestramento senza checkpoint.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod/hyperpod-checkpointless-fault-controller-module.png)


**Concetto: ridondanza del modello**

L'addestramento su modelli di grandi dimensioni richiede in genere una dimensione parallela dei dati sufficientemente grande per addestrare i modelli in modo efficiente. Nel tradizionale parallelismo dei dati come PyTorch DDP e Horovod, il modello è completamente replicato. Le tecniche più avanzate di parallelismo dei dati condivisi come DeepSpeed Zero Optimizer e FSDP supportano anche la modalità di sharding ibrida, che consente di suddividere gli stati all'interno del gruppo di sharding e di replicarli completamente tra i gruppi di replica. model/optimizer NeMo ha anche questa funzione di sharding ibrido tramite un argomento num\$1distributed\$1optimizer\$1instances, che consente la ridondanza.

Tuttavia, l'aggiunta della ridondanza indica che il modello non sarà completamente suddiviso in tutto il cluster, con conseguente maggiore utilizzo della memoria del dispositivo. La quantità di memoria ridondante varierà a seconda delle specifiche tecniche di sharding del modello implementate dall'utente. I pesi, i gradienti e la memoria di attivazione del modello a bassa precisione non ne risentiranno, poiché vengono suddivisi tramite il parallelismo del modello. Il modello master ad alta precisione e gli stati dell'ottimizzatore ne risentiranno. weights/gradients L'aggiunta di una replica ridondante del modello aumenta l'utilizzo della memoria del dispositivo all'incirca dell'equivalente delle dimensioni di un checkpoint DCP.

Lo sharding ibrido suddivide i collettivi di tutti i gruppi DP in collettivi relativamente più piccoli. In precedenza c'era una riduzione della dispersione e un raggruppamento universale tra l'intero gruppo DP. Dopo lo sharding ibrido, il reduce-scatter viene eseguito solo all'interno di ogni replica del modello e verrà applicata una riduzione totale tra i gruppi di repliche dei modelli. L'all-collect funziona anche all'interno di ogni replica del modello. Di conseguenza, l'intero volume di comunicazioni rimane pressoché invariato, ma i collettivi utilizzano gruppi più piccoli, quindi ci aspettiamo una latenza migliore.

**Concetto: tipi di errore e riavvio**

La tabella seguente riporta i diversi tipi di errore e i meccanismi di ripristino associati. Checkpointless training tenta innanzitutto il ripristino in caso di errore tramite un ripristino in corso, seguito da un riavvio a livello di processo. Si ritorna al riavvio a livello di processo solo in caso di guasto catastrofico (ad esempio, guasto di più nodi contemporaneamente).


| Tipo di errore | Causa | Tipo di ripristino | Meccanismo di ripristino | 
| --- | --- | --- | --- | 
| Guasto durante il processo | Errori a livello di codice, eccezioni | Ripristino in corso (IPR) | Riesegui RCB all'interno del processo esistente; i processi sani rimangono attivi | 
| Errore di riavvio del processo | Contesto CUDA danneggiato, processo interrotto | Riavvio a livello di processo (PLR) | SageMaker HyperPod l'operatore addetto alla formazione riavvia i processi; salta il riavvio del pod K8s | 
| Errore di sostituzione del nodo | Guasto node/GPU hardware permanente | Job Level Restart (JLR) | Sostituisci il nodo fallito; riavvia l'intero processo di formazione | 

**Concetto: protezione Atomic Lock per Optimizer Step**

L'esecuzione del modello è suddivisa in tre fasi: propagazione in avanti, propagazione all'indietro e fase di ottimizzazione. Il comportamento di ripristino varia in base alla tempistica dell'errore:
+ **Propagazione avanti/indietro:** torna all'inizio della fase di addestramento corrente e trasmetti gli stati del modello ai nodi sostitutivi
+ **Fase di ottimizzazione:** consenti alle repliche sane di completare la fase di blocco della protezione, quindi trasmetti gli stati aggiornati del modello ai nodi sostitutivi

Questa strategia garantisce che gli aggiornamenti completati dell'ottimizzatore non vengano mai scartati, contribuendo a ridurre i tempi di ripristino dei guasti.

![\[Questa immagine illustra come viene gestito l'errore a seconda che si verifichi prima o dopo l'errore.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod/hyperpod-checkpointless-optimizer.png)


## Diagramma del flusso di allenamento Checkpointless
<a name="sagemaker-eks-checkpointless-training-flow"></a>

![\[Questo diagramma illustra il flusso di allenamento senza checkpoint.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod/hyperpod-checkpointless-training-flow.png)


I passaggi seguenti descrivono il processo di rilevamento degli errori e di ripristino senza checkpoint:

1. Inizia il ciclo di formazione

1. Si verifica un errore

1. Valuta la fattibilità di un curriculum senza controlli

1. Verifica se è possibile eseguire un curriculum senza checkpoint
   + Se possibile, prova a riprendere senza checkpointless
     + Se la ripresa fallisce, torna al caricamento del checkpoint dallo storage
     + Se la ripresa ha esito positivo, l'allenamento continua dallo stato di ripristino
   + Se non è possibile, ricorri al checkpoint di caricamento dal magazzino

1. Pulisci le risorse: interrompi tutti i gruppi di processi e i backend e libera le risorse in preparazione al riavvio.

1. Riprendi il ciclo di allenamento: inizia un nuovo ciclo di allenamento e il processo torna alla fase 1.

## Guida di riferimento alle API
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference"></a>

### wait\$1rank
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-wait_rank"></a>

```
hyperpod_checkpointless_training.inprocess.train_utils.wait_rank()
```

Attende e recupera le informazioni sulla classificazione da HyperPod, quindi aggiorna l'ambiente di processo corrente con variabili di addestramento distribuite.

Questa funzione ottiene l'assegnazione del grado e le variabili di ambiente corrette per l'addestramento distribuito. Garantisce che ogni processo ottenga la configurazione appropriata per il suo ruolo nel processo di formazione distribuito.

**Parametri**

Nessuno

**Valori restituiti**

**Nessuno**

**Comportamento**
+ **Controllo del processo**: salta l'esecuzione se viene chiamato da un sottoprocesso (viene eseguito solo in) MainProcess
+ **Recupero dell'ambiente: recupera le variabili** correnti `RANK` e da quelle di ambiente `WORLD_SIZE`
+ **HyperPod Comunicazione**: chiamate `hyperpod_wait_rank_info()` da cui recuperare informazioni sulla classifica HyperPod
+ **Aggiornamento dell'ambiente**: aggiorna l'ambiente di processo corrente con le variabili di ambiente specifiche del lavoratore ricevute da HyperPod

**Variabili di ambiente**

La funzione legge le seguenti variabili di ambiente:
+ **RANK** (*int*) — Classificazione attuale del processo (impostazione predefinita: -1 se non è impostata)
+ **WORLD\$1SIZE** (*int*) — Numero totale di processi nel processo distribuito (predefinito: 0 se non è impostato)

**Aumenta**
+ **AssertionError**— Se la risposta di non HyperPod è nel formato previsto o se mancano i campi obbligatori

**Esempio**

```
from hyperpod_checkpointless_training.inprocess.train_utils import wait_rank  

# Call before initializing distributed training  
wait_rank()  

# Now environment variables are properly set for this rank  
import torch.distributed as dist  
dist.init_process_group(backend='nccl')
```

**Note**
+ Viene eseguito solo nel processo principale; le chiamate ai sottoprocessi vengono saltate automaticamente
+ La funzione si blocca finché non HyperPod fornisce le informazioni sulla classificazione

### HPWrapper
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-HPWrapper"></a>

```
class hyperpod_checkpointless_training.inprocess.wrap.HPWrapper(  
    *,  
    abort=Compose(HPAbortTorchDistributed()),  
    finalize=None,  
    health_check=None,  
    hp_api_factory=None,  
    abort_timeout=None,  
    enabled=True,  
    trace_file_path=None,  
    async_raise_before_abort=True,  
    early_abort_communicator=False,  
    checkpoint_manager=None,  
    check_memory_status=True)
```

*Wrapper di funzioni Python che abilita le funzionalità di riavvio per un Re-Executable Code Block (RCB) durante un addestramento senza checkpoint. HyperPod *

*Questo wrapper offre funzionalità di tolleranza agli errori e ripristino automatico monitorando l'esecuzione della formazione e coordinando i riavvii tra i processi distribuiti in caso di errori. Utilizza un approccio di gestione del contesto anziché un decoratore per mantenere le risorse globali durante tutto il ciclo di vita della formazione.*

**Parametri**
+ **abort** (Abort, *opzionale*): *interrompe* l'esecuzione in modo asincrono quando vengono rilevati errori. Impostazione predefinita: `Compose(HPAbortTorchDistributed())`
+ **finalize (Finalize**, *opzionale*) — Gestore di *finalizzazione* Rank-Local eseguito durante il riavvio. Impostazione predefinita: `None`
+ **health\$1check (*HealthCheck*, *opzionale*) — Controllo dello** stato di salute di Rank-local eseguito durante il riavvio. Impostazione predefinita: `None`
+ **hp\$1api\$1factory** (*Callable*, *opzionale*) — Funzione di fabbrica per la creazione di un'API con cui interagire. HyperPod HyperPod Impostazione predefinita: `None`
+ **abort\$1timeout (*float*, *opzionale*) — Timeout** per interrompere la chiamata nel thread di controllo degli errori. Impostazione predefinita: `None`
+ **enabled** (*bool*, *opzionale*) — Abilita la funzionalità wrapper. Quando`False`, il wrapper diventa un pass-through. Impostazione predefinita: `True`
+ **trace\$1file\$1path** (*str*, *opzionale*) — Percorso del file di traccia per la profilazione. VizTracer Impostazione predefinita: `None`
+ **async\$1raise\$1before\$1abort (bool, opzionale) — Abilita il raise before abort** **nel thread di controllo degli errori.** Impostazione predefinita: `True`
+ **early\$1abort\$1communicator** **(bool, opzionale) — Interrompe il comunicatore (nccl/Gloo) prima di interrompere il dataloader.** Impostazione predefinita: `False`
+ **checkpoint\$1manager** (*Any*, *opzionale*) — Gestore per la gestione dei checkpoint durante il ripristino. Impostazione predefinita: `None`
+ **check\$1memory\$1status** *(*bool*, opzionale) — Abilita il controllo e la registrazione dello stato della memoria.* Impostazione predefinita: `True`

**Metodi**

```
def __call__(self, fn)
```

*Racchiude una funzione per abilitare le funzionalità di riavvio.*

**Parametri:**
+ **fn** (*Callable*) — La funzione da completare con le funzionalità di riavvio

**Restituisce:**
+ **Richiamabile**: funzione racchiusa con funzionalità di riavvio o funzione originale se disabilitata

**Esempio**

```
from hyperpod_checkpointless_training.nemo_plugins.checkpoint_manager import CheckpointManager  
from hyperpod_checkpointless_training.nemo_plugins.patches import patch_megatron_optimizer  
from hyperpod_checkpointless_training.nemo_plugins.checkpoint_connector import CheckpointlessCompatibleConnector  
from hyperpod_checkpointless_training.inprocess.train_utils import HPAgentK8sAPIFactory  
from hyperpod_checkpointless_training.inprocess.abort import CheckpointlessFinalizeCleanup, CheckpointlessAbortManager   
      
@HPWrapper(  
    health_check=CudaHealthCheck(),  
    hp_api_factory=HPAgentK8sAPIFactory(),  
    abort_timeout=60.0,  
    checkpoint_manager=CheckpointManager(enable_offload=False),  
    abort=CheckpointlessAbortManager.get_default_checkpointless_abort(),  
    finalize=CheckpointlessFinalizeCleanup(),  
)def training_function():  
    # Your training code here  
    pass
```

**Note**
+ Il wrapper deve essere disponibile `torch.distributed`
+ Quando`enabled=False`, il wrapper diventa un pass-through e restituisce la funzione originale invariata
+ Il wrapper mantiene risorse globali come il monitoraggio dei thread durante tutto il ciclo di vita della formazione
+ Supporta la profilazione quando viene fornita VizTracer `trace_file_path`
+ Si integra HyperPod per una gestione coordinata dei guasti nell'ambito della formazione distribuita

### HPCallInvolucro
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-HPCallWrapper"></a>

```
class hyperpod_checkpointless_training.inprocess.wrap.HPCallWrapper(wrapper)
```

Monitora e gestisce lo stato di un Restart Code Block (RCB) durante l'esecuzione.

Questa classe gestisce il ciclo di vita dell'esecuzione di RCB, incluso il rilevamento degli errori, il coordinamento con altri ranghi per i riavvii e le operazioni di pulizia. Gestisce la sincronizzazione distribuita e garantisce un ripristino coerente in tutti i processi di formazione.

**Parametri**
+ **wrapper** (*HPWrapper*) — Il wrapper principale contenente le impostazioni globali di ripristino durante il processo

**Attributes**
+ **step\$1upon\$1restart** (*int*) — Contatore che tiene traccia dei passaggi dall'ultimo riavvio, utilizzato per determinare la strategia di riavvio

**Metodi**

```
def initialize_barrier()
```

Attendi la sincronizzazione della HyperPod barriera dopo aver riscontrato un'eccezione da RCB.

```
def start_hp_fault_handling_thread()
```

Avvia il thread di gestione degli errori per monitorare e coordinare gli errori.

```
def handle_fn_exception(call_ex)
```

Elabora le eccezioni dalla funzione di esecuzione o da RCB.

**Parametri:**
+ **call\$1ex** (*Exception) — Eccezione* dalla funzione di monitoraggio

```
def restart(term_ex)
```

Esegue il gestore di riavvio che include la finalizzazione, la raccolta dei rifiuti e i controlli di integrità.

**Parametri:**
+ **term\$1ex** (*RankShouldRestart*) — Eccezione di terminazione che attiva il riavvio

```
def launch(fn, *a, **kw)
```

*Esegui l'RCB con una corretta gestione delle eccezioni.*

**Parametri:**
+ **fn** (*Callable*) — Funzione da eseguire
+ **a — Argomenti** della funzione
+ **kw** — Argomenti delle parole chiave della funzione

```
def run(fn, a, kw)
```

Ciclo di esecuzione principale che gestisce i riavvii e la sincronizzazione delle barriere.

**Parametri:**
+ **fn** (*Callable*) — Funzione da eseguire
+ **a — Argomenti** della funzione
+ **kw** — Argomenti delle parole chiave della funzione

```
def shutdown()
```

Gestione degli errori di spegnimento e thread di monitoraggio.

**Note**
+ Gestisce automaticamente le `RankShouldRestart` eccezioni per un ripristino coordinato
+ Gestisce il tracciamento e gli aborti della memoria, la raccolta dei rifiuti durante i riavvii
+ Supporta sia il ripristino in corso che le strategie PLR (Process-Level Restart) basate sulla tempistica degli errori

### CudaHealthCheck
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-cudahealthcheck"></a>

```
class hyperpod_checkpointless_training.inprocess.health_check.CudaHealthCheck(timeout=datetime.timedelta(seconds=30))
```

Assicura che il contesto CUDA per il processo corrente sia in buono stato durante il recupero dall'allenamento senza checkpoint.

Questo controllo di integrità si sincronizza con la GPU per verificare che il contesto CUDA non sia danneggiato dopo un errore di allenamento. Esegue operazioni di sincronizzazione della GPU per rilevare eventuali problemi che potrebbero impedire la corretta ripresa dell'allenamento. Il controllo dello stato viene eseguito dopo la distruzione dei gruppi distribuiti e il completamento della finalizzazione.

**Parametri**
+ **timeout** (*datetime.timedelta, *opzionale*) — Durata del timeout* per le operazioni di sincronizzazione della GPU. Impostazione predefinita: `datetime.timedelta(seconds=30)`

**Metodi**

```
__call__(state, train_ex=None)
```

Esegui il controllo dello stato di salute CUDA per verificare l'integrità del contesto della GPU.

**Parametri:**
+ **state (*HPState*) — HyperPod Stato** attuale contenente informazioni sulla classificazione e sulla distribuzione
+ **train\$1ex** (*Eccezione*, *opzionale*) — L'eccezione di allenamento originale che ha attivato il riavvio. Impostazione predefinita: `None`

**Restituisce:**
+ **tuple** — Una tupla che contiene `(state, train_ex)` invariate le modifiche se il controllo sanitario ha esito positivo

**Aumenta:**
+ **TimeoutError**— Se la sincronizzazione della GPU scade, indica un contesto CUDA potenzialmente danneggiato

**Conservazione dello stato**: restituisce lo stato e l'eccezione originali invariati se tutti i controlli vengono superati

**Esempio**

```
import datetime  
from hyperpod_checkpointless_training.inprocess.health_check import CudaHealthCheck  
from hyperpod_checkpointless_training.inprocess.wrap import HPWrapper  
  
# Create CUDA health check with custom timeout  
cuda_health_check = CudaHealthCheck(  
    timeout=datetime.timedelta(seconds=60)  
)  
  
# Use with HPWrapper for fault-tolerant training  
@HPWrapper(  
    health_check=cuda_health_check,  
    enabled=True  
)  
def training_function():  
    # Your training code here  
    pass
```

**Note**
+ Utilizza il threading per implementare la protezione da timeout per la sincronizzazione della GPU
+ Progettato per rilevare contesti CUDA danneggiati che potrebbero impedire la corretta ripresa dell'allenamento
+ Dovrebbe essere utilizzato come parte della pipeline di tolleranza agli errori negli scenari di formazione distribuiti

### HPAgentK8s APIFactory
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-HPAgentK8sAPIFactory"></a>

```
class hyperpod_checkpointless_training.inprocess.train_utils.HPAgentK8sAPIFactory()
```

Classe Factory per la creazione di istanze HPAgent K8SAPi che comunicano con HyperPod l'infrastruttura per il coordinamento distribuito della formazione.

Questa factory fornisce un modo standardizzato per creare e configurare oggetti HPAgent K8SAPi che gestiscono la comunicazione tra i processi di addestramento e il piano di controllo. HyperPod Incapsula la creazione del client socket sottostante e dell'istanza API, garantendo una configurazione coerente tra le diverse parti del sistema di formazione.

**Metodi**

```
__call__()
```

Crea e restituisci un'istanza HPAgent K8SAPi configurata per la comunicazione. HyperPod 

**Restituisce:**
+ **HPAgentK8sapi**: istanza API configurata per la comunicazione con l'infrastruttura HyperPod 

**Esempio**

```
from hyperpod_checkpointless_training.inprocess.train_utils import HPAgentK8sAPIFactory  
from hyperpod_checkpointless_training.inprocess.wrap import HPWrapper  
from hyperpod_checkpointless_training.inprocess.health_check import CudaHealthCheck  
  
# Create the factory  
hp_api_factory = HPAgentK8sAPIFactory()  
  
# Use with HPWrapper for fault-tolerant training  
hp_wrapper = HPWrapper(  
    hp_api_factory=hp_api_factory,  
    health_check=CudaHealthCheck(),  
    abort_timeout=60.0,  
    enabled=True  
)  
  
@hp_wrapper  
def training_function():  
    # Your distributed training code here  
    pass
```

**Note**
+ Progettato per funzionare perfettamente con l'infrastruttura basata su Kubernetes. HyperPod È essenziale per la gestione e il ripristino coordinati dei guasti in scenari di formazione distribuiti

### CheckpointManager
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-CheckpointManager"></a>

```
class hyperpod_checkpointless_training.nemo_plugins.checkpoint_manager.CheckpointManager(  
    enable_checksum=False,  
    enable_offload=False)
```

Gestisce i checkpoint in memoria e peer-to-peer il ripristino per una tolleranza agli errori senza checkpoint nell'addestramento distribuito.

Questa classe fornisce le funzionalità di base per un addestramento HyperPod senza checkpoint gestendo i checkpoint del NeMo modello in memoria, convalidando la fattibilità del recupero e orchestrando il trasferimento dei checkpoint tra i ranghi sani e quelli falliti. peer-to-peer Elimina la necessità del disco I/O durante il ripristino, riducendo in modo significativo il tempo medio di ripristino (MTTR).

**Parametri**
+ **enable\$1checksum** (*bool*, *opzionale*) — Abilita la convalida del checksum dello stato del modello per i controlli di integrità durante il ripristino. Impostazione predefinita: `False`
+ **enable\$1offload (*bool*, *opzionale*) — Abilita l'offload** dei checkpoint dalla GPU alla memoria della CPU per ridurre l'utilizzo della memoria della GPU. Impostazione predefinita: `False`

**Attributes**
+ **global\$1step (int o None) — Fase** *di allenamento corrente associata al checkpoint* *salvato*
+ **rng\$1states (*list* o *None*) — Stati** del generatore di numeri casuali memorizzati per il recupero deterministico
+ **checksum\$1manager** (*MemoryChecksumManager*) — Gestore per la convalida del checksum dello stato del modello
+ **parameter\$1update\$1lock (**) — Blocco per coordinare gli aggiornamenti dei parametri durante il ripristino *ParameterUpdateLock*

**Metodi**

```
save_checkpoint(trainer)
```

Salva il checkpoint del NeMo modello in memoria per un potenziale ripristino senza checkpoint.

**Parametri:**
+ **trainer (*Pytorch\$1Lightning.trainer***) — Istanza del trainer Lightning PyTorch 

**Note:**
+ Chiamato CheckpointlessCallback alla fine del batch o durante la gestione delle eccezioni
+ Crea punti di ripristino senza I/O sovraccarico del disco
+ Memorizza gli stati completi del modello, dell'ottimizzatore e dello scheduler

```
delete_checkpoint()
```

Elimina il checkpoint in memoria ed esegui le operazioni di pulizia.

**Note:**
+ Cancella i dati del checkpoint, gli stati RNG e i tensori memorizzati nella cache
+ Esegue la raccolta dei rifiuti e la pulizia della cache CUDA
+ Chiamato dopo il ripristino riuscito o quando il checkpoint non è più necessario

```
try_checkpointless_load(trainer)
```

Tenta il ripristino senza checkpoint caricando lo stato dai ranghi dei peer ranks.

**Parametri:**
+ **trainer (*PyTorch\$1Lightning.trainer***) — Istanza del trainer Lightning PyTorch 

**Restituisce:**
+ **dict** o **None**: checkpoint ripristinato in caso di successo, Nessuno se è necessario eseguire il fallback su disco

**Note:**
+ Punto di accesso principale per il ripristino senza checkpoint
+ Convalida la fattibilità del ripristino prima di tentare il trasferimento P2P
+ Pulisce sempre i checkpoint in memoria dopo il tentativo di ripristino

```
checkpointless_recovery_feasible(trainer, include_checksum_verification=True)
```

Determina se è possibile un ripristino senza checkpoint per lo scenario di errore corrente.

**Parametri:**
+ **trainer (*Pytorch\$1Lightning.trainer***) — Istanza del trainer Lightning PyTorch 
+ **include\$1checksum\$1verification (bool, opzionale) — **Se includere la** convalida del checksum.** Impostazione predefinita: `True`

**Restituisce:**
+ **bool** — Vero se il ripristino senza checkpoint è fattibile, False altrimenti

**Criteri di convalida:**
+ Coerenza globale dei passaggi tra i ranghi più sani
+ Sono disponibili sufficienti repliche sane per il ripristino
+ Integrità del checksum dello stato del modello (se abilitata)

```
store_rng_states()
```

Memorizza tutti gli stati del generatore di numeri casuali per il ripristino deterministico.

**Note:**
+ Cattura gli stati RNG di Python NumPy PyTorch , CPU/GPU e Megatron
+ Essenziale per mantenere il determinismo dell'allenamento dopo il recupero

```
load_rng_states()
```

Ripristina tutti gli stati RNG per una continuazione deterministica del recupero.

**Note:**
+ Ripristina tutti gli stati RNG precedentemente memorizzati
+ Assicura che l'allenamento continui con sequenze casuali identiche

```
maybe_offload_checkpoint()
```

Sposta il checkpoint dalla GPU alla memoria della CPU se l'offload è abilitato.

**Note:**
+ Riduce l'utilizzo della memoria della GPU per i modelli di grandi dimensioni
+ Viene eseguito solo se `enable_offload=True`
+ Mantiene l'accessibilità ai checkpoint per il ripristino

**Esempio**

```
from hyperpod_checkpointless_training.inprocess.wrap import HPWrapper  
from hyperpod_checkpointless_training.nemo_plugins.checkpoint_manager import CheckpointManager  
# Use with HPWrapper for complete fault tolerance  
@HPWrapper(  
    checkpoint_manager=CheckpointManager(),  
    enabled=True  
)  
def training_function():  
    # Training code with automatic checkpointless recovery  
    pass
```

**Convalida**: verifica l'integrità del checkpoint utilizzando i checksum (se abilitati)

**Note**
+ Utilizza primitive di comunicazione distribuite per un trasferimento P2P efficiente
+ Gestisce automaticamente le conversioni di tipo d del tensore e il posizionamento dei dispositivi
+ **MemoryChecksumManager**— Gestisce la convalida dell'integrità dello stato del modello

### PEFTCheckpointGestore
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-PEFTCheckpointManager"></a>

```
class hyperpod_checkpointless_training.nemo_plugins.checkpoint_manager.PEFTCheckpointManager(  
    *args,  
    **kwargs)
```

Gestisce i checkpoint per PEFT (Parameter-Efficient Fine-Tuning) con gestione separata della base e dell'adattatore per un ripristino ottimizzato senza checkpoint.

Questo gestore di checkpoint specializzato consente di ottimizzare i flussi di lavoro PEFT separando CheckpointManager i pesi del modello base dai parametri dell'adattatore.

**Parametri**

Eredita tutti i parametri da: **CheckpointManager**
+ **enable\$1checksum** (*bool*, *opzionale*) — Abilita la convalida del checksum dello stato del modello. Impostazione predefinita: `False`
+ **enable\$1offload (*bool*, opzionale) — Abilita l'offloading del checkpoint** *nella memoria della CPU.* Impostazione predefinita: `False`

**Attributi aggiuntivi**
+ **params\$1to\$1save** (*set) — Set* di nomi di parametri che devono essere salvati come parametri dell'adattatore
+ **base\$1model\$1weights (*dict* o None) — Pesi** *del modello base memorizzati nella cache, salvati una volta e riutilizzati*
+ ****base\$1model\$1keys\$1to\$1extract (list o None) — Chiavi per estrarre i tensori del modello base durante il trasferimento P2P****

**Metodi**

```
maybe_save_base_model(trainer)
```

Salva i pesi del modello base una volta, filtrando i parametri dell'adattatore.

**Parametri:**
+ **trainer (*PyTorch\$1Lightning.trainer***) — Istanza del trainer Lightning PyTorch 

**Note:**
+ Salva i pesi del modello base solo alla prima chiamata; le chiamate successive non sono operative
+ Filtra i parametri dell'adattatore per memorizzare solo i pesi del modello base congelati
+ I pesi del modello base vengono mantenuti per più sessioni di allenamento

```
save_checkpoint(trainer)
```

Salva il checkpoint del modello di adattatore NeMo PEFT in memoria per un potenziale ripristino senza checkpoint.

**Parametri:**
+ **trainer (*PyTorch\$1Lightning.trainer***) — Istanza di Lightning trainer PyTorch 

**Note:**
+ `maybe_save_base_model()`Chiama automaticamente se il modello base non è ancora stato salvato
+ Filtra il checkpoint per includere solo i parametri dell'adattatore e lo stato di allenamento
+ Riduce in modo significativo le dimensioni dei checkpoint rispetto ai checkpoint del modello completo

```
try_base_model_checkpointless_load(trainer)
```

Il modello base di Attempt PEFT soppesa il ripristino senza checkpoint caricando lo stato dai ranghi dei peer rank.

**Parametri:**
+ *trainer (**PyTorch\$1Lightning.trainer) — Istanza del trainer Lightning*** PyTorch 

**Restituisce:**
+ **dict** o **None** — Il checkpoint del modello base è stato ripristinato in caso di successo, None se è necessario il fallback

**Note:**
+ Utilizzato durante l'inizializzazione del modello per recuperare i pesi del modello base
+ Non elimina i pesi del modello base dopo il ripristino (li conserva per il riutilizzo)
+ Ottimizzato per scenari di ripristino model-weights-only

```
try_checkpointless_load(trainer)
```

L'adattatore PEFT di Attempt soppesa il ripristino senza checkpoint caricando lo stato dai ranghi dei colleghi.

**Parametri:**
+ *trainer (**PyTorch\$1Lightning.trainer) — Istanza di Lightning trainer*** PyTorch 

**Restituisce:**
+ **dict** o **None** — Il checkpoint dell'adattatore è stato ripristinato in caso di successo, Nessuno se è necessario il fallback

**Note:**
+ Recupera solo i parametri dell'adattatore, gli stati dell'ottimizzatore e gli scheduler
+ Carica automaticamente gli stati dell'ottimizzatore e dello scheduler dopo il ripristino riuscito
+ Pulisce i checkpoint dell'adattatore dopo il tentativo di ripristino

```
is_adapter_key(key)
```

Controlla se la chiave state dict appartiene ai parametri dell'adattatore.

**Parametri:**
+ **key** (*str* o *tuple*) — Chiave dict di stato da controllare

**Restituisce:**
+ **bool** — Vero se la chiave è il parametro dell'adattatore, False se è il parametro del modello base

**Logica di rilevamento:**
+ Controlla se la chiave è `params_to_save` impostata
+ Identifica le chiavi contenenti «.adapter». substring
+ Identifica le chiavi che terminano con «.adapters»
+ Per le chiavi tuple, controlla se il parametro richiede gradienti

```
maybe_offload_checkpoint()
```

Scarica i pesi del modello base dalla GPU alla memoria della CPU.

**Note:**
+ Estende il metodo principale per gestire lo scaricamento del peso del modello base
+ I pesi degli adattatori sono in genere piccoli e non richiedono lo scarico
+ Imposta un flag interno per tracciare lo stato di offload

**Note**
+ Progettato specificamente per scenari di fine-tuning efficienti dal punto di vista dei parametri (LoRa, adattatori, ecc.)
+ Gestisce automaticamente la separazione dei parametri del modello base e dell'adattatore

**Esempio**

```
from hyperpod_checkpointless_training.inprocess.wrap import HPWrapper  
from hyperpod_checkpointless_training.nemo_plugins.checkpoint_manager import PEFTCheckpointManager  
# Use with HPWrapper for complete fault tolerance  
@HPWrapper(  
    checkpoint_manager=PEFTCheckpointManager(),  
    enabled=True  
)  
def training_function():  
    # Training code with automatic checkpointless recovery  
    pass
```

### CheckpointlessAbortManager
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-CheckpointlessAbortManager"></a>

```
class hyperpod_checkpointless_training.inprocess.abort.CheckpointlessAbortManager()
```

Classe Factory per la creazione e la gestione delle composizioni dei componenti di interruzione per una tolleranza ai guasti senza checkpoint.

Questa classe di utilità fornisce metodi statici per creare, personalizzare e gestire le composizioni dei componenti di aborto utilizzate durante la gestione dei guasti durante la formazione senza checkpoint. HyperPod Semplifica la configurazione delle sequenze di interruzione che gestiscono la pulizia dei componenti di formazione distribuiti, dei caricatori di dati e delle risorse specifiche del framework durante il ripristino in caso di errore.

**Parametri**

Nessuno (tutti i metodi sono statici)

**Metodi statici**

```
get_default_checkpointless_abort()
```

Ottieni l'istanza abort compose predefinita contenente tutti i componenti di abort standard.

**Restituisce:**
+ **Componi**: istanza di interruzione composta predefinita con tutti i componenti di interruzione

**Componenti predefiniti:**
+ **AbortTransformerEngine()** — Pulisce le risorse TransformerEngine 
+ **HPCheckpointingAbort ()** — Gestisce la pulizia del sistema di checkpoint
+ **HPAbortTorchDistributed()** — Interrompe le operazioni distribuite PyTorch 
+ **HPDataLoaderAbort()** — Arresta e pulisce i caricatori di dati

```
create_custom_abort(abort_instances)
```

*Crea una composizione di interruzione personalizzata con solo le istanze di interruzione specificate.*

**Parametri:**
+ **abort\$1instances** (*Abort) — Numero variabile di istanze di aborto* da includere nella composizione

**Restituisce:**
+ **Componi** — Nuova istanza di interruzione composta contenente solo i componenti specificati

**Aumenta:**
+ **ValueError**— Se non vengono fornite istanze di interruzione

```
override_abort(abort_compose, abort_type, new_abort)
```

Sostituisci un componente di interruzione specifico in un'istanza Compose con un nuovo componente.

**Parametri:**
+ **abort\$1compose (Compose**) — L'*istanza Compose* originale da modificare
+ **abort\$1type (type**) — Il *tipo di componente di* interruzione da sostituire (ad esempio,) `HPCheckpointingAbort`
+ **new\$1abort** (Abort) — La nuova istanza di *abort* da utilizzare come sostituto

**Restituisce:**
+ **Compose** — Nuova istanza Compose con il componente specificato sostituito

**Aumenta:**
+ **ValueError**— Se abort\$1compose non ha l'attributo 'instances'

**Esempio**

```
from hyperpod_checkpointless_training.inprocess.wrap import HPWrapper  
from hyperpod_checkpointless_training.nemo_plugins.callbacks import CheckpointlessCallback  
from hyperpod_checkpointless_training.inprocess.abort import CheckpointlessFinalizeCleanup, CheckpointlessAbortManager  
  
# The strategy automatically integrates with HPWrapper  
@HPWrapper(  
    abort=CheckpointlessAbortManager.get_default_checkpointless_abort(),  
    health_check=CudaHealthCheck(),  
    finalize=CheckpointlessFinalizeCleanup(),  
    enabled=True  
)  
def training_function():  
    trainer.fit(...)
```

**Note**
+ Le configurazioni personalizzate consentono un controllo preciso sul comportamento di pulizia
+ Le operazioni di interruzione sono fondamentali per una corretta pulizia delle risorse durante il ripristino dei guasti

### CheckpointlessFinalizeCleanup
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-CheckpointlessFinalizeCleanup"></a>

```
class hyperpod_checkpointless_training.inprocess.abort.CheckpointlessFinalizeCleanup()
```

Esegue una pulizia completa dopo il rilevamento dei guasti per prepararsi al ripristino in corso durante l'addestramento senza checkpoint.

Questo gestore di finalizzazione esegue operazioni di pulizia specifiche del framework, tra cui Megatron/TransformerEngine interruzione, pulizia DDP, ricaricamento dei moduli e pulizia della memoria, eliminando i riferimenti ai componenti di addestramento. Garantisce che l'ambiente di formazione venga ripristinato correttamente per il corretto ripristino durante il processo senza richiedere l'interruzione completa del processo.

**Parametri**

Nessuno

**Attributes**
+ **trainer** *(*Pytorch\$1Lightning.trainer o None) — Riferimento all'istanza del trainer Lightning** PyTorch 

**Metodi**

```
__call__(*a, **kw)
```

**Esegui operazioni di pulizia complete per la preparazione del ripristino durante il processo.**

*Parametri:*
+ **a** — Argomenti posizionali variabili (ereditati dall'interfaccia Finalize)
+ **kw** — Argomenti variabili relativi alle parole chiave (ereditati dall'interfaccia Finalize)

**Operazioni di pulizia:**
+ **Megatron Framework Cleanup**: chiamate per ripulire le risorse specifiche `abort_megatron()` di Megatron
+ **TransformerEngine Cleanup: chiamate per ripulire le risorse** `abort_te()` TransformerEngine 
+ **RoPE Cleanup**: chiamate `cleanup_rope()` per ripulire le risorse di incorporamento della posizione rotante
+ **DDP Cleanup: chiamate per ripulire** le risorse `cleanup_ddp()` DistributedDataParallel 
+ **Module Reloading: chiamate `reload_megatron_and_te()` per ricaricare** i moduli del framework
+ **Pulizia del modulo Lightning: cancella facoltativamente il** modulo Lightning per ridurre la memoria della GPU
+ **Memory Cleanup**: elimina i riferimenti ai componenti di addestramento per liberare memoria

```
register_attributes(trainer)
```

*Registra l'istanza del trainer per utilizzarla durante le operazioni di pulizia.*

**Parametri:**
+ **trainer** (*PyTorch\$1Lightning.trainer) — Istanza di Lightning* trainer da registrare PyTorch 

**Integrazione con CheckpointlessCallback**

```
from hyperpod_checkpointless_training.nemo_plugins.callbacks import CheckpointlessCallback  
from hyperpod_checkpointless_training.inprocess.wrap import HPWrapper  
  
# The strategy automatically integrates with HPWrapper  
@HPWrapper(  
    ...  
    finalize=CheckpointlessFinalizeCleanup(),   
)  
def training_function():  
    trainer.fit(...)
```

**Note**
+ Le operazioni di pulizia vengono eseguite in un ordine specifico per evitare problemi di dipendenza
+ La pulizia della memoria utilizza l'introspezione della raccolta dei rifiuti per trovare gli oggetti di destinazione
+ Tutte le operazioni di pulizia sono progettate per essere idempotenti e sicure da riprovare

### CheckpointlessMegatronStrategy
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-CheckpointlessMegatronStrategy"></a>

```
class hyperpod_checkpointless_training.nemo_plugins.megatron_strategy.CheckpointlessMegatronStrategy(*args, **kwargs)
```

NeMo Strategia Megatron con funzionalità integrate di ripristino senza checkpoint per una formazione distribuita con tolleranza ai guasti.

Tieni presente che l'addestramento senza checkpoint deve essere almeno 2 in `num_distributed_optimizer_instances` modo da garantire la replica dell'ottimizzatore. La strategia si occupa anche della registrazione degli attributi essenziali e dell'inizializzazione dei gruppi di processi.

**Parametri**

Eredita tutti i parametri da: **MegatronStrategy**
+  NeMo MegatronStrategy Parametri di inizializzazione standard
+ Opzioni di configurazione della formazione distribuita
+ Impostazioni del parallelismo del modello

**Attributes**
+ **base\$1store** *(torch.distributed). TCPStore*o *Nessuno*) — Archivio distribuito per il coordinamento dei gruppi di processi

**Metodi**

```
setup(trainer)
```

Inizializza la strategia e registra i componenti di tolleranza ai guasti con il trainer.

**Parametri:**
+ **trainer (*PyTorch\$1Lightning.trainer***) — Istanza del trainer Lightning PyTorch 

**Operazioni di configurazione:**
+ **Parent Setup**: richiama la MegatronStrategy configurazione principale
+ **Fault Injection Registration**: registra HPFault InjectionCallback gli hook, se presenti
+ **Finalizza la registrazione**: registra il trainer con i gestori di finalize cleanup
+ Interrompi la **registrazione: registra il trainer con i gestori di aborti che lo supportano**

```
setup_distributed()
```

Inizializza il gruppo di processi utilizzando una connessione con prefisso o senza root. TCPStore 

```
load_model_state_dict(checkpoint, strict=True)
```

Carica il modello state dict con compatibilità di ripristino senza checkpointless.

**Parametri:**
+ **checkpoint** (*Mapping [str, Any]*) — Dizionario Checkpoint contenente lo stato del modello
+ **strict** (*bool*, *optional*) — Se applicare rigorosamente la corrispondenza delle chiavi state dict. Impostazione predefinita: `True`

```
get_wrapper()
```

Ottieni l'istanza HPCall Wrapper per il coordinamento della tolleranza agli errori.

**Restituisce:**
+ **HPCallWrapper**: l'istanza wrapper collegata al trainer per la tolleranza agli errori

```
is_peft()
```

Controlla se PEFT (Parameter-Efficient Fine-Tuning) è abilitato nella configurazione di addestramento verificando la presenza di callback PEFT

**Restituisce:**
+ **bool** — Vero se è presente il callback PEFT, False in caso contrario

```
teardown()
```

Sostituisci lo smontaggio nativo di PyTorch Lightning per delegare la pulizia ai gestori di aborti.

**Esempio**

```
from hyperpod_checkpointless_training.inprocess.wrap import HPWrapper  
  
# The strategy automatically integrates with HPWrapper  
@HPWrapper(  
    checkpoint_manager=checkpoint_manager,  
    enabled=True  
)  
def training_function():  
    trainer = pl.Trainer(strategy=CheckpointlessMegatronStrategy())  
    trainer.fit(model, datamodule)
```

### CheckpointlessCallback
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-CheckpointlessCallback"></a>

```
class hyperpod_checkpointless_training.nemo_plugins.callbacks.CheckpointlessCallback(  
    enable_inprocess=False,  
    enable_checkpointless=False,  
    enable_checksum=False,  
    clean_tensor_hook=False,  
    clean_lightning_module=False)
```

Lightning callback che integra la formazione con il sistema di tolleranza ai guasti di checkpointless training. NeMo 

Questo callback gestisce il tracciamento dei passaggi, il salvataggio dei checkpoint e il coordinamento dell'aggiornamento dei parametri per le funzionalità di ripristino durante il processo. Funge da punto di integrazione principale tra i cicli di formazione PyTorch Lightning e i meccanismi di addestramento HyperPod senza checkpoint, coordinando le operazioni di tolleranza agli errori durante l'intero ciclo di vita della formazione.

**Parametri**
+ ****enable\$1inprocess (bool, opzionale) — Abilita le funzionalità di ripristino durante il processo.**** Impostazione predefinita: `False`
+ **enable\$1checkpointless (*bool*, opzionale) — Abilita il ripristino senza checkpointless** *(richiesto).* `enable_inprocess=True` Impostazione predefinita: `False`
+ **enable\$1checksum (bool, opzionale) — Abilita la convalida del checksum** *dello stato del modello (richiesto**).* `enable_checkpointless=True` Impostazione predefinita: `False`
+ **clean\$1tensor\$1hook (*bool*, opzionale) — Elimina gli hook** *tensoriali da tutti i tensori della GPU durante la pulizia (operazione* costosa). Impostazione predefinita: `False`
+ **clean\$1lightning\$1module (bool, opzionale) — Abilita la pulizia del modulo Lightning** **per liberare memoria della GPU dopo ogni riavvio.** Impostazione predefinita: `False`

**Attributes**
+ **tried\$1adapter\$1checkpointless** *(bool) — Contrassegna per verificare se è stato tentato il ripristino senza checkpointless dell'adattatore*

**Metodi**

```
get_wrapper_from_trainer(trainer)
```

Scarica l'istanza Wrapper dal trainer per il coordinamento della tolleranza agli errori. HPCall

**Parametri:**
+ **trainer (*PyTorch\$1Lightning.trainer***) — Istanza del trainer Lightning PyTorch 

**Restituisce:**
+ **HPCallWrapper**: l'istanza wrapper per le operazioni di tolleranza ai guasti

```
on_train_batch_start(trainer, pl_module, batch, batch_idx, *args, **kwargs)
```

Richiamato all'inizio di ogni batch di allenamento per gestire il monitoraggio e il recupero delle fasi.

**Parametri:**
+ **trainer** (*PyTorch\$1Lightning.trainer) — Istanza di Lightning* trainer PyTorch 
+ **pl\$1module** (*pytorch\$1lightning). LightningModule*) — Modulo Lightning in fase di addestramento
+ **batch: dati** correnti relativi al batch di addestramento
+ **batch\$1idx** (*int*) — Indice del batch corrente
+ args — **Argomenti** posizionali aggiuntivi
+ **kwargs** — Argomenti aggiuntivi relativi alle parole chiave

```
on_train_batch_end(trainer, pl_module, outputs, batch, batch_idx)
```

*Rilascia il blocco di aggiornamento dei parametri alla fine di ogni batch di addestramento.*

**Parametri:**
+ **trainer** (*Pytorch\$1Lightning.trainer) — Istanza del trainer Lightning* PyTorch 
+ **pl\$1module** (*pytorch\$1lightning). LightningModule*) — Modulo Lightning in fase di addestramento
+ **outputs** (*STEP\$1OUTPUT) — Uscite* della fase di addestramento
+ **batch (Any**) — *Dati* correnti del batch di addestramento
+ **batch\$1idx** (*int*) — Indice del batch corrente

**Note:**
+ La tempistica di rilascio del blocco garantisce che il ripristino senza checkpoint possa procedere dopo il completamento degli aggiornamenti dei parametri
+ Viene eseguito solo quando entrambi i valori sono impostati su True `enable_inprocess` `enable_checkpointless`

```
get_peft_callback(trainer)
```

*Recupera il callback PEFT dall'elenco dei callback del trainer.*

**Parametri:**
+ *trainer (**Pytorch\$1Lightning.trainer**) — Istanza del trainer Lightning* PyTorch 

**Restituisce:**
+ **PEFT** o **None**: istanza di callback PEFT se trovata, nessuna in caso contrario

```
_try_adapter_checkpointless_restore(trainer, params_to_save)
```

*Tenta il ripristino senza checkpoint dei parametri dell'adattatore PEFT.*

**Parametri:**
+ **trainer (*Pytorch\$1Lightning.trainer***) — Istanza di Lightning trainer PyTorch 
+ ***params\$1to\$1save (set) — Set di nomi di parametri da salvare come parametri dell'adattatore***

**Note:**
+ Viene eseguito solo una volta per sessione di allenamento (controllata da flag) `tried_adapter_checkpointless`
+ Configura il gestore dei punti di controllo con le informazioni sui parametri dell'adattatore

**Esempio**

```
from hyperpod_checkpointless_training.nemo_plugins.callbacks import CheckpointlessCallback  
from hyperpod_checkpointless_training.nemo_plugins.checkpoint_manager import CheckpointManager  
import pytorch_lightning as pl  
  
# Create checkpoint manager  
checkpoint_manager = CheckpointManager(  
    enable_checksum=True,  
    enable_offload=True  
)  
  
# Create checkpointless callback with full fault tolerance  
checkpointless_callback = CheckpointlessCallback(  
    enable_inprocess=True,  
    enable_checkpointless=True,  
    enable_checksum=True,  
    clean_tensor_hook=True,  
    clean_lightning_module=True  
)  
  
# Use with PyTorch Lightning trainer  
trainer = pl.Trainer(  
    callbacks=[checkpointless_callback],  
    strategy=CheckpointlessMegatronStrategy()  
)  
  
# Training with fault tolerance  
trainer.fit(model, datamodule=data_module)
```

**Gestione della memoria**
+ **clean\$1tensor\$1hook: rimuove i ganci tensoriali** durante la pulizia (costoso ma completo)
+ **clean\$1lightning\$1module**: libera memoria GPU del modulo Lightning durante i riavvii
+ Entrambe le opzioni aiutano a ridurre l'ingombro di memoria durante il ripristino dei guasti
+ Coordinate con ParameterUpdateLock per il tracciamento degli aggiornamenti dei parametri thread-safe

### CheckpointlessCompatibleConnector
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-CheckpointlessCompatibleConnector"></a>

```
class hyperpod_checkpointless_training.nemo_plugins.checkpoint_connector.CheckpointlessCompatibleConnector()
```

PyTorch Connettore Lightning Checkpoint che integra il ripristino senza checkpoint con il tradizionale caricamento dei checkpoint basato su disco.

Questo connettore estende quello di PyTorch Lightning per fornire una perfetta integrazione tra il ripristino senza checkpoint e `_CheckpointConnector` il ripristino dei checkpoint standard. Tenta innanzitutto il ripristino senza checkpoint, quindi torna al caricamento del checkpoint basato su disco se il ripristino senza checkpoint non è fattibile o fallisce.

**Parametri**

**Eredita** tutti i parametri da \$1 CheckpointConnector

**Metodi**

```
resume_start(checkpoint_path=None)
```

Tentativo di precaricare il checkpoint con priorità di ripristino senza checkpointless.

**Parametri:**
+ **checkpoint\$1path** (*str* o *None*, *opzionale*) — Percorso verso il checkpoint del disco per il fallback. Impostazione predefinita: `None`

```
resume_end()
```

Completa il processo di caricamento del checkpoint ed esegui le operazioni successive al caricamento.

**Note**
+ Estende la `_CheckpointConnector` classe interna di PyTorch Lightning con il supporto per il ripristino senza checkpoint
+ Mantiene la piena compatibilità con i flussi di lavoro Lightning checkpoint standard PyTorch 

### CheckpointlessAutoResume
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-CheckpointlessAutoResume"></a>

```
class hyperpod_checkpointless_training.nemo_plugins.resume.CheckpointlessAutoResume()
```

Estende NeMo la funzionalità AutoResume con configurazione ritardata per consentire la convalida del ripristino senza checkpoint prima della risoluzione del percorso di checkpoint.

Questa classe implementa una strategia di inizializzazione in due fasi che consente la convalida del ripristino senza checkpoint prima di tornare al tradizionale caricamento dei checkpoint basato su disco. Ritarda in modo condizionale la AutoResume configurazione per impedire la risoluzione prematura del percorso dei checkpoint, permettendo di verificare innanzitutto se il ripristino senza checkpoint è fattibile. CheckpointManager peer-to-peer

**Parametri**

Eredita tutti i parametri da **AutoResume**

**Metodi**

```
setup(trainer, model=None, force_setup=False)
```

Ritarda la AutoResume configurazione in modo condizionale per consentire la convalida del ripristino senza checkpoint.

**Parametri:**
+ **trainer (Pytorch\$1Lightning.trainer o** *lightning.Fabric.fabric) — Lightning* *trainer o istanza Fabric* PyTorch 
+ **model** *(opzionale) — Istanza* del modello per la configurazione. Impostazione predefinita: `None`
+ **force\$1setup** (*bool*, *opzionale*) — Se True, ignora il ritardo ed esegui immediatamente la configurazione. AutoResume Impostazione predefinita: `False`

**Esempio**

```
from hyperpod_checkpointless_training.nemo_plugins.resume import CheckpointlessAutoResume  
from hyperpod_checkpointless_training.nemo_plugins.megatron_strategy import CheckpointlessMegatronStrategy  
import pytorch_lightning as pl  
  
# Create trainer with checkpointless auto-resume  
trainer = pl.Trainer(  
    strategy=CheckpointlessMegatronStrategy(),  
    resume=CheckpointlessAutoResume()  
)
```

**Note**
+ La AutoResume classe NeMo di Extends con meccanismo di ritardo per consentire il ripristino senza checkpoint
+ Funziona in combinazione con `CheckpointlessCompatibleConnector` per un flusso di lavoro di ripristino completo

# Considerazioni speciali
<a name="sagemaker-eks-checkpointless-considerations"></a>

Raccogliamo determinate metriche operative aggregate e anonime di routine per fornire la disponibilità essenziale del servizio. La creazione di queste metriche è completamente automatizzata e non prevede la revisione umana del carico di lavoro di formazione del modello sottostante. Queste metriche riguardano le operazioni lavorative, la gestione delle risorse e le funzionalità essenziali dei servizi. 

HyperPod checkpoint gestito su più livelli e formazione elastica: tieni presente che la formazione HyperPod senza checkpoint è attualmente incompatibile con HyperPod il checkpointing gestito a più livelli e l'allenamento elastico.

Per semplificare l'avvio, vengono fornite ricette di formazione senza checkpointless per i modelli GPT OSS 120B e Llama. Queste ricette sono state verificate su istanze ml.p5. L'utilizzo di altri tipi di istanze può richiedere ulteriori modifiche alle ricette sottostanti. Queste ricette possono essere adattate anche a flussi di lavoro di ottimizzazione completi. [Per i modelli personalizzati, ti consigliamo di consultare gli esempi introduttivi.](https://docs.aws.amazon.com/sagemaker-eks-checkpointless-recipes-custom)

# Appendice
<a name="sagemaker-eks-checkpointless-appendix"></a>

**Monitora i risultati dell'allenamento tramite HyperPod ricette**

SageMaker HyperPod le ricette offrono l'integrazione con Tensorboard per analizzare il comportamento di allenamento. Queste ricette includono VizTracer anche uno strumento a basso costo per tracciare e visualizzare l'esecuzione del codice Python. Per ulteriori informazioni, consulta [ VizTracer](https://github.com/gaogaotiantian/viztracer).

I log di tensorboard vengono generati e archiviati all'interno di. `log_dir` Per accedere ai log e analizzarli in locale, procedi come indicato di seguito:

1. Scarica la cartella degli esperimenti TensorBoard dal tuo ambiente di addestramento al computer locale.

1. Apri un prompt del terminale o di comando sul tuo computer locale.

1. Passa alla directory che contiene la cartella degli esperimenti scaricata.

1. Avvia Tensorboard eseguendo il comando:

   ```
   tensorboard --port=<port> --bind_all --logdir experiment.
   ```

1. Apri il tuo browser web e visita. `http://localhost:8008`

Ora puoi vedere lo stato e le visualizzazioni dei tuoi job di addestramento all’interno dell’interfaccia TensorBoard. L’accesso allo stato e alle visualizzazioni consente di monitorare e analizzare il processo di addestramento. Il monitoraggio e l’analisi del processo di addestramento consentono di ottenere informazioni approfondite sul comportamento e sulle prestazioni dei modelli. Per ulteriori informazioni su come monitorare e analizzare l'allenamento con Tensorboard, consulta la Guida per l'utente di [NVIDIA Framework NeMo ](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemotoolkit/core/exp_manager.html#experiment-manager).

**VizTracer**

Per abilitarlo VizTracer, puoi modificare la tua ricetta impostando la variabile di ambiente su. `ENABLE_VIZTRACER` `1` Una volta completata la formazione, il tuo VizTracer profilo si trova nella cartella dell'esperimento`log_dir/viztracer_xxx.json`. Per analizzare il tuo profilo, puoi scaricarlo e aprirlo utilizzando lo **vizviewer** strumento:

```
vizviewer --port <port> viztracer_xxx.json
```

Questo comando avvia vizviewer sulla porta 9001. Puoi visualizzarlo VizTracer andando su http://localhost: <port>nel tuo browser. Dopo l'apertura VizTracer, iniziate ad analizzare il training. Per ulteriori informazioni sull'utilizzo VizTracer, consultate [ VizTracer la documentazione](https://viztracer.readthedocs.io/en/latest/installation.html).

# Note di rilascio
<a name="sagemaker-eks-checkpointless-release-notes"></a>

Consulta le seguenti note di rilascio per tenere traccia degli ultimi aggiornamenti per la formazione SageMaker HyperPod senza checkpoint.

**La formazione senza SageMaker HyperPod checkpointless v1.0.0**

Data: 03 dicembre 2025

**SageMaker HyperPod funzionalità di allenamento senza checkpointless**
+ **Miglioramenti all'inizializzazione della comunicazione collettiva**: offre nuovi metodi di inizializzazione, Rootless e per NCCL e Gloo. TCPStoreless 
+ Dataloader **con mappatura in memoria (MMAP): memorizza** nella cache (persistono) i batch precaricati in modo che siano disponibili anche quando un errore causa il riavvio del processo di formazione.
+ **Checkpointless**: consente un ripristino più rapido dagli errori di training dei cluster in ambienti di formazione distribuiti su larga scala apportando ottimizzazioni a livello di framework
+ **Basato su Nvidia Nemo e PyTorch Lightning: sfrutta questi potenti framework per una formazione dei modelli efficiente e flessibile**
  + [Nividia NeMo](https://github.com/NVIDIA-NeMo/NeMo)
  + [PyTorch Fulmine](https://lightning.ai/docs/pytorch/stable/)

**SageMaker HyperPod Contenitore Docker di formazione Checkpointless**

[Checkpointless training on HyperPod si basa sul framework NVIDIA. NeMo ](https://docs.nvidia.com/nemo-framework/user-guide/latest/overview.html) HyperPod checkpointless training mira a recuperare più rapidamente gli errori di formazione su cluster in ambienti di formazione distribuiti su larga scala effettuando ottimizzazioni a livello di framework che verranno fornite su un contenitore di base contenente l'immagine di base con NCCL e ottimizzazioni. PyTorch 

**Disponibilità**

Attualmente le immagini sono disponibili solo in:

```
eu-north-1
ap-south-1
us-east-2
eu-west-1
eu-central-1
sa-east-1
us-east-1
eu-west-2
ap-northeast-1
us-west-2
us-west-1
ap-southeast-1
ap-southeast-2
```

ma non disponibile nelle seguenti 3 regioni opzionali:

```
ap-southeast-3
ap-southeast-4
eu-south-2
```

**Dettagli container**

Contenitore Docker di formazione Checkpointless per PyTorch la versione 2.6.0 con CUDA v12.9

```
963403601044.dkr.ecr.eu-north-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.0
423350936952.dkr.ecr.ap-south-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.0
556809692997.dkr.ecr.us-east-2.amazonaws.com/hyperpod-checkpointless-training:v1.0.0
942446708630.dkr.ecr.eu-west-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.0
391061375763.dkr.ecr.eu-central-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.0
311136344257.dkr.ecr.sa-east-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.0
327873000638.dkr.ecr.us-east-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.0
016839105697.dkr.ecr.eu-west-2.amazonaws.com/hyperpod-checkpointless-training:v1.0.0
356859066553.dkr.ecr.ap-northeast-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.0
920498770698.dkr.ecr.us-west-2.amazonaws.com/hyperpod-checkpointless-training:v1.0.0
827510180725.dkr.ecr.us-west-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.0
885852567298.dkr.ecr.ap-southeast-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.0
304708117039.dkr.ecr.ap-southeast-2.amazonaws.com/hyperpod-checkpointless-training:v1.0.0
```

**Pacchetti preinstallati**

```
PyTorch: v2.6.0
CUDA: v12.9
NCCL: v2.27.5
EFA: v1.43.0
AWS-OFI-NCCL v1.16.0
Libfabric version 2.1
Megatron v0.15.0
Nemo v2.6.0rc0
```

# Utilizzo delle partizioni GPU in Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-gpu-partitioning"></a>

Gli amministratori dei cluster possono scegliere come massimizzare l'utilizzo della GPU all'interno dell'organizzazione. Puoi abilitare il partizionamento della GPU con la tecnologia NVIDIA Multi-Instance GPU (MIG) per partizionare le risorse GPU in istanze più piccole e isolate per un migliore utilizzo delle risorse. Questa funzionalità offre la possibilità di eseguire più attività di piccole dimensioni contemporaneamente su una singola GPU anziché dedicare l'intero hardware a una singola attività, spesso sottoutilizzata. Ciò elimina lo spreco di potenza di elaborazione e memoria.

Il partizionamento GPU con tecnologia MIG supporta GPUs e consente di partizionare una singola GPU supportata in un massimo di sette partizioni GPU separate. Ogni partizione GPU dispone di risorse di memoria, cache e calcolo dedicate, che garantiscono un isolamento prevedibile.

## Vantaggi
<a name="sagemaker-hyperpod-eks-gpu-partitioning-benefits"></a>
+ **Utilizzo migliorato della GPU**: massimizza l'efficienza di elaborazione mediante il partizionamento in base ai requisiti di elaborazione e memoria GPUs 
+ **Isolamento delle attività**: ogni partizione GPU funziona in modo indipendente con risorse di memoria, cache e calcolo dedicate
+ **Flessibilità delle attività**: supporta una combinazione di attività su un'unica GPU fisica, tutte in esecuzione in parallelo
+ **Gestione flessibile della configurazione**: supporta sia le configurazioni Kubernetes Do-it-yourself (fai-da-te) utilizzando il client a riga di comando Kubernetes`kubectl`, sia una soluzione gestita con etichette personalizzate per configurare e applicare facilmente le etichette associate alle partizioni GPU

## Tipi di istanze supportati
<a name="sagemaker-hyperpod-eks-gpu-partitioning-instance-types"></a>

Il partizionamento GPU con tecnologia MIG è supportato sui seguenti tipi di istanze: HyperPod 

[Istanze GPU A100 - **instance-types/p4/** https://aws.amazon.com/ec2/](https://aws.amazon.com/ec2/instance-types/p4/)
+ ml.p4d.24xlarge - 8 schede NVIDIA **A100** (80 GB per GPU) GPUs HBM2e 
+ **ml.p4de.24xlarge** - 8 schede NVIDIA A100 GPUs (80 GB HBM2e per GPU)

**Istanze GPU [https://aws.amazon.com/ec2/H100](https://aws.amazon.com/ec2/instance-types/p5/) - instance-types/p5/**
+ ml.p5.48xlarge - 8 NVIDIA **H100** (80 GB per GPU) GPUs HBM3 

**Istanze GPU [https://aws.amazon.com/ec2/H200 - instance-types/p5/](https://aws.amazon.com/ec2/instance-types/p5/)**
+ ml.p5e.48xlarge - 8 schede NVIDIA **H200** (141 GB per GPU) GPUs HBM3e 
+ **ml.p5en.48xlarge** - 8 schede NVIDIA H200 GPUs (141 GB HBM3e per GPU)

**Istanze GPU [https://aws.amazon.com/ec2/B200](https://aws.amazon.com/ec2/instance-types/p6/) - instance-types/p6/**
+ **ml.p6b.48xlarge - 8 schede NVIDIA B200** GPUs

## partizioni GPU
<a name="sagemaker-hyperpod-eks-gpu-partitioning-profiles"></a>

I profili NVIDIA MIG definiscono il modo in cui vengono partizionati. GPUs Ogni profilo specifica l'allocazione di calcolo e memoria per istanza MIG. Di seguito sono riportati i profili MIG associati a ciascun tipo di GPU:

**GPU A100 (ml.p4d.24xlarge)**


| Profilo | Memoria (GB) | Istanze per GPU | Totale per ml.p4d.24xlarge | 
| --- | --- | --- | --- | 
| `1g.5gb` | 5 | 7 | 56 | 
| `2g.10gb` | 10 | 3 | 24 | 
| `3g.20gb` | 20 | 2 | 16 | 
| `4g.20gb` | 20 | 1 | 8 | 
| `7g.40gb` | 40 | 1 | 8 | 

**GPU H100 (ml.p5.48xlarge)**


| Profilo | Memoria (GB) | Istanze per GPU | Totale per ml.p5,48xlarge | 
| --- | --- | --- | --- | 
| `1g.10gb` | 10 | 7 | 56 | 
| `1g.20gb` | 20 | 4 | 32 | 
| `2g.20gb` | 20 | 3 | 24 | 
| `3g.40gb` | 40 | 2 | 16 | 
| `4g.40gb` | 40 | 1 | 8 | 
| `7g.80gb` | 80 | 1 | 8 | 

**GPU H200 (ml.p5e.48xlarge e ml.p5en.48xlarge)**


| Profilo | Memoria (GB) | Istanze per GPU | Totale per ml.p5en.48xlarge | 
| --- | --- | --- | --- | 
| `1g.18gb` | 18 | 7 | 56 | 
| `1g.35gb` | 35 | 4 | 32 | 
| `2g.35gb` | 35 | 3 | 24 | 
| `3g.71gb` | 71 | 2 | 16 | 
| `4g.71gb` | 71 | 1 | 8 | 
| `7g.141gb` | 141 | 1 | 8 | 

**Topics**
+ [Vantaggi](#sagemaker-hyperpod-eks-gpu-partitioning-benefits)
+ [Tipi di istanze supportati](#sagemaker-hyperpod-eks-gpu-partitioning-instance-types)
+ [partizioni GPU](#sagemaker-hyperpod-eks-gpu-partitioning-profiles)
+ [Configurazione di partizioni GPU su Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning-setup.md)
+ [Ciclo di vita dei nodi ed etichette](sagemaker-hyperpod-eks-gpu-partitioning-labels.md)
+ [Invio di attività con MIG](sagemaker-hyperpod-eks-gpu-partitioning-task-submission.md)

# Configurazione di partizioni GPU su Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup"></a>

**Topics**
+ [Prerequisiti](#sagemaker-hyperpod-eks-gpu-partitioning-setup-prerequisites)
+ [Creazione di un cluster con configurazione MIG](#sagemaker-hyperpod-eks-gpu-partitioning-setup-create-cluster)
+ [Aggiungere un operatore GPU a un cluster esistente](#sagemaker-hyperpod-eks-gpu-partitioning-setup-add-operator)
+ [Aggiornamento della configurazione MIG](#sagemaker-hyperpod-eks-gpu-partitioning-setup-update)
+ [Verifica della configurazione MIG](#sagemaker-hyperpod-eks-gpu-partitioning-setup-verify)
+ [Comandi comuni per il debug della configurazione MIG](#sagemaker-hyperpod-eks-gpu-partitioning-setup-debug-commands)
+ [Utilizzo della console SageMaker AI](#sagemaker-hyperpod-eks-gpu-partitioning-setup-console)

## Prerequisiti
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-prerequisites"></a>
+ HyperPod Cluster Amazon EKS con istanze GPU supportate
+ NVIDIA GPU Operator installato
+ Autorizzazioni IAM appropriate per la gestione dei cluster

## Creazione di un cluster con configurazione MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-create-cluster"></a>

### Usando AWS CLI
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-create-cluster-cli"></a>

```
aws sagemaker create-cluster \
  --cluster-name my-mig-cluster \
  --orchestrator 'Eks={ClusterArn=arn:aws:eks:region:account:cluster/cluster-name}' \
  --instance-groups '{
    "InstanceGroupName": "gpu-group",
    "InstanceType": "ml.p4d.24xlarge",
    "InstanceCount": 1,
    "LifeCycleConfig": {
       "SourceS3Uri": "s3://my-bucket",
       "OnCreate": "on_create_script.sh"
    },
    "KubernetesConfig": {
       "Labels": {
          "nvidia.com/mig.config": "all-1g.5gb"
       }
    },
    "ExecutionRole": "arn:aws:iam::account:role/execution-role",
    "ThreadsPerCore": 1
  }' \
  --vpc-config '{
     "SecurityGroupIds": ["sg-12345"],
     "Subnets": ["subnet-12345"]
  }' \
  --node-provisioning-mode Continuous
```

### Usando CloudFormation
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-create-cluster-cfn"></a>

```
{
  "ClusterName": "my-mig-cluster",
  "InstanceGroups": [
    {
      "InstanceGroupName": "gpu-group",
      "InstanceType": "ml.p4d.24xlarge",
      "InstanceCount": 1,
      "KubernetesConfig": {
        "Labels": {
          "nvidia.com/mig.config": "all-2g.10gb"
        }
      },
      "ExecutionRole": "arn:aws:iam::account:role/execution-role"
    }
  ],
  "Orchestrator": {
    "Eks": {
      "ClusterArn": "arn:aws:eks:region:account:cluster/cluster-name"
    }
  },
  "NodeProvisioningMode": "Continuous"
}
```

## Aggiungere un operatore GPU a un cluster esistente
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-add-operator"></a>

### Installa GPU Operator
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-add-operator-install"></a>

Sostituisci `{$AWS_REGION}` con la regione del tuo cluster (ad es. us-east-1, us-west-2).

```
helm install gpuo helm_chart/HyperPodHelmChart/charts/gpu-operator \
-f helm_chart/HyperPodHelmChart/charts/gpu-operator/regional-values/values-{$AWS_REGION}.yaml \
-n kube-system
```

### Verifica l'installazione (attendi 2-3 minuti)
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-add-operator-verify"></a>

Verifica che tutti i pod dell'operatore della GPU siano in funzione:

```
kubectl get pods -n kube-system | grep -E "(gpu-operator|nvidia-)"
```

**Pod previsti:**
+ gpu-operator-\$1 - 1 istanza (controller del cluster)
+ nvidia-device-plugin-daemonset-\$1 - 1 per nodo GPU (tutte le istanze GPU)
+ nvidia-mig-manager-\$1 - 1 per nodo compatibile con MiG (A100/H100)

### Rimuovi il vecchio plug-in del dispositivo
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-add-operator-remove"></a>

Disabilita l'esistente nvidia-device-plugin:

```
helm upgrade dependencies helm_chart/HyperPodHelmChart \
--set nvidia-device-plugin.devicePlugin.enabled=false \
-n kube-system
```

### Verifica le risorse della GPU
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-add-operator-verify-gpu"></a>

Conferma che i nodi mostrino la capacità della GPU. Dovrebbe mostrare: nvidia.com/gpu: 8 (o il numero effettivo di GPU).

```
kubectl describe nodes | grep "nvidia.com/gpu"
```

## Aggiornamento della configurazione MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update"></a>

**Preparazione dei nodi prima degli aggiornamenti MIG**  
Prima di aggiornare le configurazioni MIG sul gruppo di istanze, è necessario preparare i nodi per evitare interruzioni del carico di lavoro. Segui questi passaggi per drenare in sicurezza i carichi di lavoro dai nodi che verranno riconfigurati.

### Fase 1: Identifica i nodi nel gruppo di istanze
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update-identify"></a>

Innanzitutto, identifica tutti i nodi che appartengono al gruppo di istanze che desideri aggiornare:

```
# List all nodes in the instance group
kubectl get nodes -l sagemaker.amazonaws.com/instance-group-name=INSTANCE_GROUP_NAME

# Example:
kubectl get nodes -l sagemaker.amazonaws.com/instance-group-name=p4d-group
```

Questo comando restituisce un elenco di tutti i nodi nel gruppo di istanze specificato. Prendi nota del nome di ogni nodo per i seguenti passaggi.

### Fase 2: cordonare e drenare ogni nodo
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update-drain"></a>

Per ogni nodo identificato nel passaggio 1, esegui le seguenti azioni:

#### Cordone il nodo
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update-drain-cordon"></a>

Il cordonamento impedisce la pianificazione di nuovi pod sul nodo:

```
# Cordon a single node
kubectl cordon NODE_NAME

# Example:
kubectl cordon hyperpod-i-014a41a7001adca60
```

#### Svuota i Workload Pods dal nodo
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update-drain-evict"></a>

Svuota il nodo per eliminare tutti i pod del carico di lavoro preservando al contempo i pod di sistema:

```
# Drain the node (ignore DaemonSets and evict pods)
kubectl drain NODE_NAME \
  --ignore-daemonsets \
  --delete-emptydir-data \
  --force \
  --grace-period=300

# Example:
kubectl drain hyperpod-i-014a41a7001adca60 \
  --ignore-daemonsets \
  --delete-emptydir-data \
  --force \
  --grace-period=300
```

**Spiegazione delle opzioni di comando:**
+ `--ignore-daemonsets`- Consente di continuare l'operazione di scarico anche in presenza di DaemonSet cialde
+ `--delete-emptydir-data`- Elimina i pod utilizzando i volumi EmptyDir (necessario per il corretto drenaggio)
+ `--force`- Forza l'eliminazione dei pod non gestiti da un controller (usare con cautela)
+ `--grace-period=300`- Dà ai pod 5 minuti per terminare correttamente

**Importante**  
L'operazione di scarico può richiedere diversi minuti a seconda del numero di pod e dei relativi periodi di tolleranza
I pod di sistema nei seguenti namespace rimarranno in esecuzione:`kube-system`,,,,`cert-manager`,`kubeflow`,`hyperpod-inference-system`,, `kube-public``mpi-operator`, e `gpu-operator` `aws-hyperpod` `jupyter-k8s-system` `hyperpod-observability` `kueue-system` `keda`
DaemonSet i pod rimarranno sul nodo (vengono ignorati in base alla progettazione)

### Passaggio 3: verifica che i pod del carico di lavoro non siano in esecuzione
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update-verify"></a>

Dopo il drenaggio, verifica che nessun pod del carico di lavoro rimanga sui nodi (esclusi i namespace di sistema):

```
# Check for any remaining pods outside system namespaces
kubectl get pods --all-namespaces --field-selector spec.nodeName=NODE_NAME \
  | grep -v "kube-system" \
  | grep -v "cert-manager" \
  | grep -v "kubeflow" \
  | grep -v "hyperpod-inference-system" \
  | grep -v "kube-public" \
  | grep -v "mpi-operator" \
  | grep -v "gpu-operator" \
  | grep -v "aws-hyperpod" \
  | grep -v "jupyter-k8s-system" \
  | grep -v "hyperpod-observability" \
  | grep -v "kueue-system" \
  | grep -v "keda"

# Example:
kubectl get pods --all-namespaces --field-selector spec.nodeName=hyperpod-i-014a41a7001adca60 \
  | grep -v "kube-system" \
  | grep -v "cert-manager" \
  | grep -v "kubeflow" \
  | grep -v "hyperpod-inference-system" \
  | grep -v "kube-public" \
  | grep -v "mpi-operator" \
  | grep -v "gpu-operator" \
  | grep -v "aws-hyperpod" \
  | grep -v "jupyter-k8s-system" \
  | grep -v "hyperpod-observability" \
  | grep -v "kueue-system" \
  | grep -v "keda"
```

**Output previsto:** se il nodo è drenato correttamente, questo comando non dovrebbe restituire alcun risultato (o mostrare solo la riga di intestazione). Se alcuni pod sono ancora in funzione, scoprite perché non sono stati rimossi ed eliminateli manualmente, se necessario.

### Fase 4: Verifica dello stato di preparazione del nodo
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update-readiness"></a>

Prima di procedere con l'aggiornamento MIG, verificate che tutti i nodi siano isolati:

```
# Check node status - should show "SchedulingDisabled"
kubectl get nodes -l sagemaker.amazonaws.com/instance-group-name=INSTANCE_GROUP_NAME
```

I nodi devono essere visualizzati `SchedulingDisabled` nella colonna STATUS, a indicare che sono isolati e pronti per l'aggiornamento MIG.

### Aggiorna il profilo MIG sul cluster esistente
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update-change"></a>

È possibile modificare i profili MIG sui cluster esistenti:

```
aws sagemaker update-cluster \
  --cluster-name my-mig-cluster \
  --instance-groups '{
    "InstanceGroupName": "gpu-group",
    "InstanceType": "ml.p4d.24xlarge",
    "InstanceCount": 1,
    "KubernetesConfig": {
       "Labels": {
          "nvidia.com/mig.config": "all-3g.20gb"
       }
    },
    "ExecutionRole": "arn:aws:iam::account:role/execution-role"
  }'
```

**Nota**  
Se i lavori sono già in esecuzione su un nodo, il partizionamento MIG avrà esito negativo. L'utente riceverà un messaggio di errore per svuotare i nodi prima di tentare nuovamente il partizionamento MIG.

## Verifica della configurazione MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-verify"></a>

Dopo la creazione o l'aggiornamento del cluster, verifica la configurazione MIG:

```
# Update kubeconfig
aws eks update-kubeconfig --name your-eks-cluster --region us-east-2

# Check MIG labels
kubectl get node NODE_NAME -o=jsonpath='{.metadata.labels}' | grep mig

# Check available MIG resources
kubectl describe node NODE_NAME | grep -A 10 "Allocatable:"
```

## Comandi comuni per il debug della configurazione MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-debug-commands"></a>

Utilizzate i seguenti comandi per risolvere i problemi e convalidare la configurazione MIG nel cluster:

```
# Check GPU Operator status
kubectl get pods -n gpu-operator-resources

# View MIG configuration
kubectl exec -n gpu-operator-resources nvidia-driver-XXXXX -- nvidia-smi mig -lgi

# Check device plugin configuration
kubectl logs -n gpu-operator-resources nvidia-device-plugin-XXXXX

# Monitor node events
kubectl get events --field-selector involvedObject.name=NODE_NAME
```

**Nota**  
Sostituisci `nvidia-driver-XXXXX` e `nvidia-device-plugin-XXXXX` con i nomi effettivi dei pod del cluster e `NODE_NAME` con il nome del nodo.

## Utilizzo della console SageMaker AI
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-console"></a>

### Creazione di un nuovo cluster con MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-console-create"></a>

1. Passa ad **Amazon SageMaker AI** > **HyperPod Clusters** > **Gestione dei cluster** > **Crea HyperPod ** cluster

1. Seleziona **Orchestrated by EKS**

1. Scegli **Configurazione personalizzata** e verifica che **GPU Operator** sia abilitato per impostazione predefinita

1. Nella sezione **Gruppi di istanze**, fai clic su **Aggiungi** gruppo

1. Configura il gruppo di istanze e vai a **Configurazione avanzata** per attivare **l'opzione Usa partizione GPU** e scegli la configurazione **MIG** desiderata dal menu a discesa

1. Fai clic su **Aggiungi gruppo di istanze** e completa la configurazione del cluster rimanente

1. Fai clic su **Invia** per creare il cluster

### Aggiornamento della configurazione MIG su un cluster esistente
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-console-update"></a>

1. Passa ad **Amazon SageMaker AI** > **HyperPod Clusters > Gestione dei** **cluster**

1. Seleziona il cluster esistente e fai clic su **Modifica** sul gruppo di istanze che desideri modificare

1. In **Configurazione avanzata**, attiva **Usa la partizione GPU** se non è già abilitata e seleziona una configurazione **MIG** diversa dal menu a discesa

1. **Fai clic su Salva modifiche**

# Ciclo di vita dei nodi ed etichette
<a name="sagemaker-hyperpod-eks-gpu-partitioning-labels"></a>

Amazon SageMaker HyperPod esegue controlli approfonditi sullo stato delle istanze del cluster durante la creazione e l'aggiornamento dei HyperPod cluster prima che inizi il partizionamento della GPU. HyperPod l'agente di monitoraggio dello stato di salute monitora continuamente lo stato di salute delle istanze partizionate con GPU.

## Stati di configurazione MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-labels-states"></a>

I nodi con configurazione delle partizioni GPU attraversano diversi stati:
+ **In sospeso: il** nodo viene configurato con un profilo MIG
+ **Configurazione: l'**operatore GPU sta applicando il partizionamento MIG
+ Operazione **riuscita**: il partizionamento della GPU è stato completato correttamente
+ **Fallito**: il partizionamento della GPU ha rilevato un errore

## Monitoraggio degli stati dei nodi
<a name="sagemaker-hyperpod-eks-gpu-partitioning-labels-monitoring"></a>

```
# Check node health status
kubectl get nodes -l sagemaker.amazonaws.com/node-health-status=Schedulable

# Monitor MIG configuration progress
kubectl get node NODE_NAME -o jsonpath='{.metadata.labels.nvidia\.com/mig\.config\.state}'

# Check for configuration errors
kubectl describe node NODE_NAME | grep -A 5 "Conditions:"
```

## Etichette e segni personalizzati
<a name="sagemaker-hyperpod-eks-gpu-partitioning-labels-custom"></a>

Puoi gestire la configurazione MIG con etichette e colori personalizzati per etichettare le partizioni GPU e applicarle a tutte le istanze:

```
{
  "KubernetesConfig": {
    "Labels": {
      "nvidia.com/mig.config": "all-2g.10gb",
      "task-type": "inference",
      "environment": "production"
    },
    "Taints": [
      {
        "Key": "gpu-task",
        "Value": "mig-enabled",
        "Effect": "NoSchedule"
      }
    ]
  }
}
```

# Invio di attività con MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission"></a>

**Topics**
+ [Utilizzo di Kubernetes YAML](#sagemaker-hyperpod-eks-gpu-partitioning-task-submission-kubectl)
+ [Utilizzo della HyperPod CLI](#sagemaker-hyperpod-eks-gpu-partitioning-task-submission-cli)
+ [Distribuzione del modello con MIG](#sagemaker-hyperpod-eks-gpu-partitioning-task-submission-deployment)
+ [Utilizzo della HyperPod CLI](#sagemaker-hyperpod-eks-gpu-partitioning-task-submission-hyperpod-cli)

## Utilizzo di Kubernetes YAML
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-kubectl"></a>

```
apiVersion: batch/v1
kind: Job
metadata:
  name: mig-job
  namespace: default
spec:
  template:
    spec:
      containers:
      - name: pytorch
        image: pytorch/pytorch:latest
        resources:
          requests:
            nvidia.com/mig-1g.5gb: 1
            cpu: "100m"
            memory: "128Mi"
          limits:
            nvidia.com/mig-1g.5gb: 1
      restartPolicy: Never
```

## Utilizzo della HyperPod CLI
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-cli"></a>

Utilizza la HyperPod CLI per distribuire JumpStart modelli con supporto MIG. L'esempio seguente illustra i nuovi parametri CLI per il partizionamento della GPU:

```
# Deploy JumpStart model with MIG
hyp create hyp-jumpstart-endpoint \
  --model-id deepseek-llm-r1-distill-qwen-1-5b \
  --instance-type ml.p5.48xlarge \
  --accelerator-partition-type mig-2g.10gb \
  --accelerator-partition-validation True \
  --endpoint-name my-endpoint \
  --tls-certificate-output-s3-uri s3://certificate-bucket/ \
  --namespace default
```

## Distribuzione del modello con MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-deployment"></a>

HyperPod L'inferenza consente di implementare i modelli sui profili MIG tramite Studio Classic e `kubectl` CLI. HyperPod Per distribuire JumpStart i modelli`kubectl`, richiama CRDs i campi `spec.server.acceleratorPartitionType` per distribuire il modello sul profilo MIG desiderato. Eseguiamo convalide per garantire che i modelli possano essere implementati sul profilo MIG selezionato nel CRD. Nel caso in cui desideri disabilitare i controlli di convalida MIG, usa to. `spec.server.validations.acceleratorPartitionValidation` `False`

### JumpStart Modelli
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-jumpstart"></a>

```
apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: JumpStartModel
metadata:
  name: deepseek-model
  namespace: default
spec:
  sageMakerEndpoint:
    name: deepseek-endpoint
  model:
    modelHubName: SageMakerPublicHub
    modelId: deepseek-llm-r1-distill-qwen-1-5b
  server:
    acceleratorPartitionType: mig-7g.40gb
    instanceType: ml.p4d.24xlarge
```

### Distribuisci il modello da Amazon S3 utilizzando InferenceEndpointConfig
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-s3"></a>

InferenceEndpointConfig consente di distribuire un modello personalizzato da Amazon S3. Per implementare un modello su MIG, `spec.worker.resources` menziona il profilo MIG in and. `requests` `limits` Fai riferimento a una semplice implementazione di seguito:

```
apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: InferenceEndpointConfig
metadata:
  name: custom-model
  namespace: default
spec:
  replicas: 1
  modelName: my-model
  endpointName: my-endpoint
  instanceType: ml.p4d.24xlarge
  modelSourceConfig:
    modelSourceType: s3
    s3Storage:
      bucketName: my-model-bucket
      region: us-east-2
    modelLocation: model-path
  worker:
    resources:
      requests:
        nvidia.com/mig-3g.20gb: 1
        cpu: "5600m"
        memory: "10Gi"
      limits:
        nvidia.com/mig-3g.20gb: 1
```

### Implementa il modello di FSx for Lustre utilizzando InferenceEndpointConfig
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-fsx"></a>

InferenceEndpointConfig consente di implementare un modello personalizzato di For Lustre. FSx Per implementare un modello su MIG, `spec.worker.resources` menziona il profilo MIG in and. `requests` `limits` Fai riferimento a una semplice implementazione di seguito:

```
apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: InferenceEndpointConfig
metadata:
  name: custom-model
  namespace: default
spec:
  replicas: 1
  modelName: my-model
  endpointName: my-endpoint
  instanceType: ml.p4d.24xlarge
  modelSourceConfig:
    modelSourceType: fsx
    fsxStorage:
      fileSystemId: fs-xxxxx
    modelLocation: location-on-fsx
  worker:
    resources:
      requests:
        nvidia.com/mig-3g.20gb: 1
        cpu: "5600m"
        memory: "10Gi"
      limits:
        nvidia.com/mig-3g.20gb: 1
```

### Utilizzo dell'interfaccia utente di Studio Classic
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-studio"></a>

#### Distribuzione di JumpStart modelli con MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-studio-deploy"></a>

1. Apri **Studio Classic e vai** a **JumpStart**

1. Sfoglia o cerca il modello desiderato (ad es. "DeepSeek«, «Llama», ecc.)

1. **Fai clic sulla scheda del modello e seleziona Deploy**

1. Nella configurazione di distribuzione:
   + Scegli **HyperPod**come obiettivo di distribuzione
   + Seleziona il tuo cluster abilitato per MiG dal menu a discesa
   + **In Configurazione dell'istanza:**
     + Seleziona il tipo di istanza (ad esempio,`ml.p4d.24xlarge`)
     + Scegli il **tipo di partizione GPU** tra le opzioni disponibili
     + **Configura il **conteggio delle istanze e le** impostazioni di ridimensionamento automatico**

1. **Rivedi e fai clic su Distribuisci**

1. Monitora l'avanzamento della distribuzione nella sezione **Endpoints**

#### Opzioni di configurazione del modello
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-studio-config"></a>

**Impostazioni dell'endpoint:**
+ **Nome dell'endpoint**: identificatore univoco per la distribuzione
+ **Nome variante** - Variante di configurazione (impostazione predefinita:) AllTraffic
+ **Tipo di istanza**: deve supportare la partizione GPU (serie p)
+ **Profilo MIG - partizione GPU**
+ Numero **iniziale di istanze: numero** di istanze da distribuire
+ **Scalabilità automatica: abilita la scalabilità** dinamica in base al traffico

**Configurazione avanzata:**
+ **Posizione dei dati del modello**: percorso Amazon S3 per modelli personalizzati
+ **Immagine del contenitore**: contenitore di inferenza personalizzato (opzionale)
+ **Variabili di ambiente: configurazioni** specifiche del modello
+ **Configurazione Amazon VPC: impostazioni di** isolamento della rete

#### Monitoraggio dei modelli implementati
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-studio-monitor"></a>

1. **Passa a **Studio Classic** > **Distribuzioni > Endpoint****

1. Seleziona il tuo endpoint abilitato per MiG

1. Visualizza metriche tra cui:
   + Utilizzo **MIG: utilizzo** per partizione GPU
   + **Consumo di memoria**: per partizione GPU
   + **Latenza di inferenza: tempo di elaborazione della** richiesta
   + **Throughput: richieste** al secondo

1. Configura gli ** CloudWatch allarmi Amazon** per il monitoraggio automatico

1. Configurazione di politiche **di auto-scaling basate sull'utilizzo di** MIG

## Utilizzo della HyperPod CLI
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-hyperpod-cli"></a>

### JumpStart Distribuzione
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-hyperpod-cli-jumpstart"></a>

Il JumpStart comando HyperPod CLI include due nuovi campi per il supporto MIG:
+ `--accelerator-partition-type`- Speciifica la configurazione MIG (ad esempio, mig-4g.20gb)
+ `--accelerator-partition-validation`- Convalida la compatibilità tra i modelli e il profilo MIG (default: true)

```
hyp create hyp-jumpstart-endpoint \
  --version 1.1 \
  --model-id deepseek-llm-r1-distill-qwen-1-5b \
  --instance-type ml.p4d.24xlarge \
  --endpoint-name js-test \
  --accelerator-partition-type "mig-4g.20gb" \
  --accelerator-partition-validation true \
  --tls-certificate-output-s3-uri s3://my-bucket/certs/
```

### Distribuzione personalizzata degli endpoint
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-hyperpod-cli-custom"></a>

Per la distribuzione tramite endpoint personalizzato, utilizza i campi esistenti `--resources-requests` e abilita la funzionalità del `--resources-limits` profilo MIG:

```
hyp create hyp-custom-endpoint \
  --namespace default \
  --metadata-name deepseek15b-mig-10-14-v2 \
  --endpoint-name deepseek15b-mig-endpoint \
  --instance-type ml.p4d.24xlarge \
  --model-name deepseek15b-mig \
  --model-source-type s3 \
  --model-location deep-seek-15b \
  --prefetch-enabled true \
  --tls-certificate-output-s3-uri s3://sagemaker-bucket \
  --image-uri lmcache/vllm-openai:v0.3.7 \
  --container-port 8080 \
  --model-volume-mount-path /opt/ml/model \
  --model-volume-mount-name model-weights \
  --s3-bucket-name model-storage-123456789 \
  --s3-region us-east-2 \
  --invocation-endpoint invocations \
  --resources-requests '{"cpu":"5600m","memory":"10Gi","nvidia.com/mig-3g.20gb":"1"}' \
  --resources-limits '{"nvidia.com/mig-3g.20gb":"1"}' \
  --env '{
    "OPTION_ROLLING_BATCH":"vllm",
    "SERVING_CHUNKED_READ_TIMEOUT":"480",
    "DJL_OFFLINE":"true",
    "NUM_SHARD":"1",
    "SAGEMAKER_PROGRAM":"inference.py",
    "SAGEMAKER_SUBMIT_DIRECTORY":"/opt/ml/model/code",
    "MODEL_CACHE_ROOT":"/opt/ml/model",
    "SAGEMAKER_MODEL_SERVER_WORKERS":"1",
    "SAGEMAKER_MODEL_SERVER_TIMEOUT":"3600",
    "OPTION_TRUST_REMOTE_CODE":"true",
    "OPTION_ENABLE_REASONING":"true",
    "OPTION_REASONING_PARSER":"deepseek_r1",
    "SAGEMAKER_CONTAINER_LOG_LEVEL":"20",
    "SAGEMAKER_ENV":"1"
  }'
```

# Funzionalità di resilienza del SageMaker HyperPod cluster per l'orchestrazione dei cluster con Amazon EKS
<a name="sagemaker-hyperpod-eks-resiliency"></a>

SageMaker HyperPod fornisce le seguenti funzionalità di resilienza del cluster. 

**Topics**
+ [Sistema di monitoraggio della salute](sagemaker-hyperpod-eks-resiliency-health-monitoring-agent.md)
+ [Controlli dell’integrità di base](sagemaker-hyperpod-eks-resiliency-basic-health-check.md)
+ [Controlli dell’integrità approfonditi](sagemaker-hyperpod-eks-resiliency-deep-health-checks.md)
+ [Ripristino automatico del nodo](sagemaker-hyperpod-eks-resiliency-node-recovery.md)
+ [Etichette Kubernetes relative alla resilienza di SageMaker HyperPod](sagemaker-hyperpod-eks-resiliency-node-labels.md)
+ [Quarantena, sostituzione o riavvio manuale di un nodo](sagemaker-hyperpod-eks-resiliency-manual.md)
+ [Configurazioni di resilienza consigliate](sagemaker-hyperpod-eks-resiliency-config-tips.md)

# Sistema di monitoraggio della salute
<a name="sagemaker-hyperpod-eks-resiliency-health-monitoring-agent"></a>

SageMaker HyperPod il sistema di monitoraggio dello stato di salute include due componenti 

1. Agenti di monitoraggio installati nei nodi, tra cui l'Health Monitoring Agent (HMA) che funge da monitoraggio dello stato dell'host e un set di monitor dello out-of-node stato.

1. Node Recovery System gestito da. SageMaker HyperPod Il sistema di monitoraggio dell'integrità monitorerà continuamente lo stato di salute del nodo tramite agenti di monitoraggio e quindi agirà automaticamente quando viene rilevato un guasto utilizzando il Node Recovery System. 

![\[Questa immagine illustra come il sistema di monitoraggio della salute si sia integrato con HyperPod Cluster.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod/hyperpod-resilience-event.png)


## Controlli sanitari effettuati dall'agente di SageMaker HyperPod monitoraggio sanitario
<a name="sagemaker-hyperpod-eks-resiliency-health-monitoring-agent-list-of-checks"></a>

L'agente di SageMaker HyperPod monitoraggio sanitario verifica quanto segue.

**NVIDIA GPUs**
+ [Notifiche di violazione delle policy DCGM](https://docs.nvidia.com/datacenter/dcgm/3.0/user-guide/feature-overview.html#notifications)
+ Errori nell’output `nvidia-smi`
+ Vari errori nei log generati dalla piattaforma Amazon Elastic Compute Cloud (EC2)
+ Convalida del conteggio GPU: se c'è una mancata corrispondenza tra il numero previsto di GPUs in un particolare tipo di istanza (ad esempio: 8 GPUs nel tipo di istanza ml.p5.48xlarge) e il conteggio restituito da, HMA riavvia il nodo `nvidia-smi` 

**AWS Trainium**
+ Errori nell’output dal monitoraggio [AWS Neuron](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/tools/neuron-sys-tools/neuron-monitor-user-guide.html)
+ Output generati dal rilevatore di problemi del nodo Neuron (per ulteriori informazioni sul rilevatore di problemi del nodo AWS Neuron, consulta [Rilevamento e ripristino dei problemi AWS dei nodi Neuron all'interno dei](https://aws.amazon.com/blogs/machine-learning/node-problem-detection-and-recovery-for-aws-neuron-nodes-within-amazon-eks-clusters/) cluster Amazon EKS).
+ Vari errori nei log generati dalla piattaforma Amazon EC2
+ Convalida del conteggio dei dispositivi Neuron: se c'è una discrepanza tra il numero effettivo di dispositivi neuronali in un particolare tipo di istanza e il conteggio restituito da, HMA riavvia il nodo `neuron-ls`

 I controlli di cui sopra sono passivi, i controlli dello stato in background vengono eseguiti HyperPod continuamente sui nodi. Oltre a questi controlli, esegue HyperPod anche controlli di integrità approfonditi (o attivi) durante la creazione e l'aggiornamento dei HyperPod cluster. Scopri di più sui [controlli sanitari approfonditi](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-resiliency-deep-health-checks.html).

## Rilevamento degli errori
<a name="sagemaker-hyperpod-eks-resiliency-health-monitoring-fault-detection"></a>

Quando SageMaker HyperPod rileva un guasto, implementa una risposta in quattro parti:

1. **Etichette dei nodi**

   1. Stato di salute: `sagemaker.amazonaws.com/node-health-status`

   1. Tipo di errore: `sagemaker.amazonaws.com/fault-types` etichetta per la categorizzazione di alto livello

   1. Motivo dell'errore: `sagemaker.amazonaws.com/fault-reasons` etichetta con informazioni dettagliate sull'errore

1. **Intossicazione del nodo**

   1. `sagemaker.amazonaws.com/node-health-status=Unschedulable:NoSchedule`

1. **Annotazione del nodo**

   1. Dettagli del guasto: `sagemaker.amazonaws.com/fault-details`

   1. Registra fino a 20 errori con timestamp che si sono verificati sul nodo

1. **Condizioni del nodo (condizione** del nodo [Kubernetes](https://kubernetes.io/docs/reference/node/node-status/#condition))

   1. Riflette lo stato di salute attuale nelle condizioni del nodo:
      + Tipo: uguale al tipo di errore
      + Stato: `True`
      + Motivo: uguale al motivo del guasto
      + LastTransitionTime: ora di insorgenza del guasto

![\[Questa immagine illustra come funziona il sistema di monitoraggio dello stato di salute quando viene rilevato un guasto.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod/hyperpod-resilience-workflow.png)


## Registri generati dall'agente di monitoraggio sanitario SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-resiliency-health-monitoring-agent-health-check-results"></a>

L'agente di SageMaker HyperPod monitoraggio dello stato è una funzionalità di controllo dello out-of-the-box stato e viene eseguito continuamente su tutti i cluster. HyperPod L'agente di monitoraggio dello stato pubblica gli eventi sanitari rilevati su istanze GPU o Trn nel gruppo di log Cluster. CloudWatch `/aws/sagemaker/Clusters/`

I registri di rilevamento dell'agente di HyperPod monitoraggio dello stato vengono creati come flussi di registro separati denominati per ciascun nodo. `SagemakerHealthMonitoringAgent` È possibile interrogare i registri di rilevamento utilizzando CloudWatch log insights come segue.

```
fields @timestamp, @message
| filter @message like /HealthMonitoringAgentDetectionEvent/
```

Questo restituisce un output simile al seguente.

```
2024-08-21T11:35:35.532-07:00
    {"level":"info","ts":"2024-08-21T18:35:35Z","msg":"NPD caught event: %v","details: ":{"severity":"warn","timestamp":"2024-08-22T20:59:29Z","reason":"XidHardwareFailure","message":"Node condition NvidiaErrorReboot is now: True, reason: XidHardwareFailure, message: \"NVRM: Xid (PCI:0000:b9:00): 71, pid=<unknown>, name=<unknown>, NVLink: fatal error detected on link 6(0x10000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)\""},"HealthMonitoringAgentDetectionEvent":"HealthEvent"}
2024-08-21T11:35:35.532-07:00
    {"level":"info","ts":"2024-08-21T18:35:35Z","msg":"NPD caught event: %v","details: ":{"severity":"warn","timestamp":"2024-08-22T20:59:29Z","reason":"XidHardwareFailure","message":"Node condition NvidiaErrorReboot is now: True, reason: XidHardwareFailure, message: \"NVRM: Xid (PCI:0000:b9:00): 71, pid=<unknown>, name=<unknown>, NVLink: fatal error detected on link 6(0x10000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)\""},"HealthMonitoringAgentDetectionEvent":"HealthEvent"}
```

# Controlli dell’integrità di base
<a name="sagemaker-hyperpod-eks-resiliency-basic-health-check"></a>

SageMaker HyperPod esegue una serie di *controlli di integrità di base* sulle istanze del cluster durante la creazione e l'aggiornamento dei cluster. HyperPod Questi controlli di integrità di base sono indipendenti dall'orchestratore, quindi sono applicabili indipendentemente dalle piattaforme di orchestrazione sottostanti supportate da SageMaker HyperPod (Amazon EKS o Slurm).

I controlli dell’integrità di base monitorano le istanze del cluster per individuare problemi relativi a dispositivi come gli acceleratori (core GPU e Trainium) e i dispositivi di rete (Elastic Fabric Adapter o EFA). Per trovare l’elenco dei controlli dell’integrità di base dei cluster, consulta la sezione sui [controlli dell’integrità del cluster](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-resiliency-slurm.html#sagemaker-hyperpod-resiliency-slurm-cluster-health-check).

# Controlli dell’integrità approfonditi
<a name="sagemaker-hyperpod-eks-resiliency-deep-health-checks"></a>

SageMaker HyperPod esegue *controlli approfonditi sullo stato* delle istanze del cluster durante la creazione e l'aggiornamento dei cluster. HyperPod I controlli approfonditi dello stato garantiscono l'affidabilità e la stabilità dei SageMaker HyperPod cluster testando a fondo i componenti hardware e dell'infrastruttura sottostanti prima di consentire l'utilizzo dei cluster per l'addestramento di modelli di machine learning. Questo approccio proattivo aiuta a identificare e mitigare i potenziali problemi nelle prime fasi del ciclo di vita del cluster.

## Elenco dei controlli sanitari approfonditi eseguiti da SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-resiliency-deep-health-checks-list"></a>

SageMaker HyperPod esegue i seguenti controlli sanitari approfonditi.

**Controlli dell’integrità approfonditi a livello di istanza**


| Categoria | Nome dell’utilità | Compatibilità del tipo di istanza | Description | 
| --- | --- | --- | --- | 
| Accelerator | GPU/count NVLink  | GPU | Verifica GPU/NVLink i conteggi. | 
| Accelerator | [Diagnostica DCGM](https://docs.nvidia.com/datacenter/dcgm/latest/user-guide/dcgm-diagnostics.html) di livello 4 | GPU | Valuta lo stato e la funzionalità di NVIDIA GPUs eseguendo la diagnostica DCGM (NVIDIA Data Center GPU Manager) a livello 4, inclusi test di memoria aggiuntivi. | 
| Accelerator | Neuron Sysfs | Trainium | Per le istanze basate su Trainium, l’integrità dei dispositivi Neuron viene determinato dalla lettura dei contatori di [Neuron Sysfs](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/tools/neuron-sys-tools/neuron-sysfs-user-guide.html) propagati direttamente dal driver Neuron. | 
| Accelerator | Controllo dell’hardware Neuron | Trainium | Esegue un carico di lavoro di formazione e verifica i risultati per testare l'hardware. | 
| Accelerator | Test locale NCCOM | Trainium | Valuta le prestazioni delle operazioni di comunicazione collettiva su singoli nodi Trainium | 
| Rete | EFA | GPU e Trainium | Esegue il benchmarking della latenza e della larghezza di banda sul dispositivo EFA collegato. | 

**Controlli dell’integrità approfonditi a livello di cluster**


| Categoria | Nome dell’utilità | Compatibilità del tipo di istanza | Description | 
| --- | --- | --- | --- | 
| Accelerator | Test NCCL | GPU | Verifica le prestazioni delle operazioni di comunicazione collettiva su più unità NVIDIA GPUs | 
| Accelerator | Test del cluster NCCOM | Trainium | Verifica le prestazioni delle operazioni di comunicazione collettiva su più nodi Trainium | 

## Log dei controlli dell’integrità approfonditi
<a name="sagemaker-hyperpod-eks-resiliency-deep-health-checks-log"></a>

Di seguito sono riportati alcuni esempi di log tratti dai controlli sanitari SageMaker HyperPod approfonditi.

**Log a livello di cluster** 

I log dei controlli sanitari approfonditi a livello di cluster sono archiviati nel gruppo di log all'indirizzo CloudWatch `/aws/sagemaker/Clusters/<cluster_name>/<cluster_id>`

I flussi di log vengono registrati in `DeepHealthCheckResults/<log_stream_id>`.

Nell’esempio illustrato di seguito, i log di output dei controlli dell’integrità approfonditi mostrano l’ID dell’istanza che non ha superato i controlli insieme alla causa dell’errore.

```
{
    "level": "error",
    "ts": "2024-06-18T21:15:22Z",
    "msg": "Encountered FaultyInstance. Replace the Instance. Region: us-west-2, InstanceType: p4d.24xlarge. ERROR:Bandwidth has less than threshold: Expected minimum threshold :80,NCCL Test output Bw: 30"
}
```

**Log a livello di istanza** 

I log dei controlli dell’integrità approfonditi a livello di istanza sono archiviati in `/var/log/aws/clusters/sagemaker-deep-health-check.log` su ogni nodo. Accedi con SSH al nodo e apri il file di log eseguendo il comando seguente.

```
cat /var/log/aws/clusters/sagemaker-deep-health-check.log
```

Di seguito è riportato un esempio di output del controllo dello stress dell’hardware e di [NVIDIA DCGM](https://developer.nvidia.com/dcgm), oltre all’output del test di connettività EFA.

```
# Hardware Stress Test output

2024-08-20T21:53:58Z info Executing Hardware stress check with command: stress-ng, and args: [--cpu 32 --vm 2 --hdd 1 --fork 8 --switch 4 --timeout 60 --metrics]

2024-08-20T21:54:58Z info stress-ng success

2024-08-20T21:54:58Z    info    GpuPci Count check success

# DCGM Stress Test

2024-08-20T22:25:02Z    info    DCGM diagnostic health summary: dcgmCheckLevel: 0 dcgmVersion: 3.3.7 gpuDriverVersion: 535.183.01, gpuDeviceIds: [2237] replacementRequired: false rebootRequired:false

# EFA Loopback Test

2024-08-20T22:26:28Z    info    EFA Loopback check passed for device: rdmap0s29 . Output summary is MaxBw: 58.590000, AvgBw: 32.420000, MaxTypicalLat: 30.870000, MinTypicalLat: 20.080000, AvgLat: 21.630000
```

Di seguito è riportato un esempio di output del test di connettività NCCL.

```
#       size         count      type   redop    root     time   algbw   busbw #wrong     time   algbw   busbw #wrong

#        (B)    (elements)                               (us)  (GB/s)  (GB/s)            (us)  (GB/s)  (GB/s)       

           8             2     float     sum      -1    353.9    0.00    0.00      0    304.2    0.00    0.00      0
          16             4     float     sum      -1    352.8    0.00    0.00      0    422.9    0.00    0.00      0
          32             8     float     sum      -1    520.0    0.00    0.00      0    480.3    0.00    0.00      0
          64            16     float     sum      -1    563.0    0.00    0.00      0    416.1    0.00    0.00      0
         128            32     float     sum      -1    245.1    0.00    0.00      0    308.4    0.00    0.00      0
         256            64     float     sum      -1    310.8    0.00    0.00      0    304.9    0.00    0.00      0
         512           128     float     sum      -1    304.9    0.00    0.00      0    300.8    0.00    0.00      0
        1024           256     float     sum      -1    509.3    0.00    0.00      0    495.4    0.00    0.00      0
        2048           512     float     sum      -1    530.3    0.00    0.00      0    420.0    0.00    0.00      0
        4096          1024     float     sum      -1    391.2    0.01    0.01      0    384.5    0.01    0.01      0
        8192          2048     float     sum      -1    328.5    0.02    0.02      0    253.2    0.03    0.03      0
       16384          4096     float     sum      -1    497.6    0.03    0.03      0    490.9    0.03    0.03      0
       32768          8192     float     sum      -1    496.7    0.07    0.07      0    425.0    0.08    0.08      0
       65536         16384     float     sum      -1    448.0    0.15    0.15      0    501.0    0.13    0.13      0
      131072         32768     float     sum      -1    577.4    0.23    0.23      0    593.4    0.22    0.22      0
      262144         65536     float     sum      -1    757.8    0.35    0.35      0    721.6    0.36    0.36      0
      524288        131072     float     sum      -1   1057.1    0.50    0.50      0   1019.1    0.51    0.51      0
     1048576        262144     float     sum      -1   1460.5    0.72    0.72      0   1435.6    0.73    0.73      0
     2097152        524288     float     sum      -1   2450.6    0.86    0.86      0   2583.1    0.81    0.81      0
     4194304       1048576     float     sum      -1   4344.5    0.97    0.97      0   4419.3    0.95    0.95      0
     8388608       2097152     float     sum      -1   8176.5    1.03    1.03      0   8197.8    1.02    1.02      0
    16777216       4194304     float     sum      -1    15312    1.10    1.10      0    15426    1.09    1.09      0
    33554432       8388608     float     sum      -1    30149    1.11    1.11      0    29941    1.12    1.12      0
    67108864      16777216     float     sum      -1    57819    1.16    1.16      0    58635    1.14    1.14      0
   134217728      33554432     float     sum      -1   115699    1.16    1.16      0   115331    1.16    1.16      0
   268435456      67108864     float     sum      -1   227507    1.18    1.18      0   228047    1.18    1.18      0
   536870912     134217728     float     sum      -1   453751    1.18    1.18      0   456595    1.18    1.18      0
  1073741824     268435456     float     sum      -1   911719    1.18    1.18      0   911808    1.18    1.18      0
  2147483648     536870912     float     sum      -1  1804971    1.19    1.19      0  1806895    1.19    1.19      0

2024-08-20T16:22:43.831-07:00

# Out of bounds values : 0 OK

2024-08-20T16:22:43.831-07:00

# Avg bus bandwidth    : 0.488398 

2024-08-20T23:22:43Z    info    Nccl test successful. Summary: NcclMaxAlgoBw: 1.190000, NcclAvgAlgoBw: 0.488398, NcclThresholdAlgoBw: 1.180000, NcclOutOfBoundError: OK, NcclOperations: all_reduce_perf, NcclTotalDevices: 2, NcclNodes: 2, NcclClusterMessage:
```

# Ripristino automatico del nodo
<a name="sagemaker-hyperpod-eks-resiliency-node-recovery"></a>

Durante la creazione o l’aggiornamento del cluster, gli utenti amministratori del cluster possono selezionare l’opzione di ripristino del nodo (istanza) scegliendo tra `Automatic` (consigliato) e `None` a livello di cluster. Se impostato su`Automatic`, SageMaker HyperPod riavvia o sostituisce automaticamente i nodi difettosi. 

**Importante**  
Consigliamo di impostare l’opzione `Automatic`.

Il ripristino automatico dei nodi viene eseguito quando vengono rilevati problemi dall’agente di monitoraggio dell’integrità, dai controlli dell’integrità di base e dai controlli dell’integrità approfonditi. Se è impostato `None`, l’agente di monitoraggio dell’integrità etichetta le istanze in cui viene rilevato un guasto, ma non avvia automaticamente alcuna azione di correzione o ripristino sui nodi interessati. Questa opzione non è consigliata.

# Etichette Kubernetes relative alla resilienza di SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-resiliency-node-labels"></a>

*Le etichette* sono coppie chiave-valore allegate agli oggetti [Kubernetes](https://kubernetes.io/docs/concepts/overview/working-with-objects/#kubernetes-objects). SageMaker HyperPod introduce le seguenti etichette per i controlli sanitari che fornisce.

## Etichette dello stato di integrità dei nodi
<a name="sagemaker-hyperpod-eks-resiliency-node-labels-health-status"></a>

Le etichette `node-health-status` rappresentano lo stato di integrità del nodo e devono essere utilizzate come parte del filtro di selezione dei nodi integri.


| Etichetta | Description | 
| --- | --- | 
| sagemaker.amazonaws.com/node-health-status: Schedulable | Il nodo ha superato i controlli dell’integrità di base ed è disponibile per l’esecuzione di carichi di lavoro. Questo controllo di integrità è lo stesso delle [funzionalità di SageMaker HyperPod resilienza attualmente disponibili per i cluster Slurm](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-resiliency-slurm.html). | 
| sagemaker.amazonaws.com/node-health-status: Unschedulable | Il nodo sta eseguendo controlli dell’integrità approfonditi e non è disponibile per l’esecuzione di carichi di lavoro. | 
| sagemaker.amazonaws.com/node-health-status: UnschedulablePendingReplacement | Il nodo non ha superato i controlli dell’integrità approfonditi o i controlli degli agenti di monitoraggio dell’integrità e deve essere sostituito. Se il ripristino automatico del nodo è abilitato, il nodo verrà automaticamente sostituito da. SageMaker HyperPod | 
| sagemaker.amazonaws.com/node-health-status: UnschedulablePendingReboot | Il nodo non ha superato i controlli dell’integrità approfonditi o i controlli degli agenti di monitoraggio dell’integrità e richiede un riavvio. Se il ripristino automatico del nodo è abilitato, il nodo verrà riavviato automaticamente da. SageMaker HyperPod | 

## Etichette dei controlli dell’integrità approfonditi
<a name="sagemaker-hyperpod-eks-resiliency-node-labels-deep-health-check"></a>

Le etichette `deep-health-check-status` rappresentano lo stato di avanzamento dei controlli dell’integrità approfonditi su un nodo specifico. Sono utili agli utenti di Kubernetes per filtrare rapidamente in base allo stato di avanzamento complessivo dei controlli dell’integrità approfonditi.


| Etichetta | Description | 
| --- | --- | 
| sagemaker.amazonaws.com/deep-health-check-status: InProgress | Il nodo sta eseguendo controlli dell’integrità approfonditi e non è disponibile per l’esecuzione di carichi di lavoro. | 
| sagemaker.amazonaws.com/deep-health-check-status: Passed | Il nodo ha completato correttamente i controlli dell’integrità approfonditi e i controlli degli agenti di monitoraggio dell’integrità ed è disponibile per l’esecuzione di carichi di lavoro. | 
| sagemaker.amazonaws.com/deep-health-check-status: Failed | Il nodo non ha superato i controlli dell’integrità approfonditi o i controlli degli agenti di monitoraggio dell’integrità e richiede il riavvio o la sostituzione. Se il ripristino automatico del nodo è abilitato, il nodo verrà riavviato o sostituito automaticamente da. SageMaker HyperPod | 

## Etichette relative al tipo e al motivo del guasto
<a name="sagemaker-hyperpod-eks-resiliency-node-labels-fault-type-and-reason"></a>

Di seguito vengono descritte le etichette `fault-type` e`fault-reason`.
+ Le etichette `fault-type` rappresentano categorie generali per i guasti in caso di controlli dell’integrità non riusciti. Queste vengono compilate per gli errori identificati sia durante i controlli dell’integrità approfonditi sia dai controlli dell’agente di monitoraggio dell’integrità.
+ Le etichette `fault-reason` riportano il motivo dettagliato del guasto associato a `fault-type`.

## Come SageMaker HyperPod etichette
<a name="sagemaker-hyperpod-eks-resiliency-node-how-it-labels"></a>

Gli argomenti seguenti illustrano come viene eseguita l’etichettatura in base ai vari casi.

**Topics**
+ [Quando un nodo viene aggiunto a un SageMaker HyperPod cluster con la configurazione Deep Health Check disattivata](#sagemaker-hyperpod-eks-resiliency-node-how-it-labels-when-dhc-is-off)
+ [Quando un nodo viene aggiunto a un SageMaker HyperPod cluster con la configurazione Deep Health Check abilitata](#sagemaker-hyperpod-eks-resiliency-node-how-it-labels-when-dhc-is-on)
+ [Quando si verificano errori di calcolo sui nodi](#sagemaker-hyperpod-eks-resiliency-node-how-it-labels-when-node-fails)

### Quando un nodo viene aggiunto a un SageMaker HyperPod cluster con la configurazione Deep Health Check disattivata
<a name="sagemaker-hyperpod-eks-resiliency-node-how-it-labels-when-dhc-is-off"></a>

Quando viene aggiunto un nuovo nodo a un cluster e se il controllo approfondito dello stato non è abilitato per il gruppo di istanze, SageMaker HyperPod esegue gli stessi controlli di integrità dei controlli di [ SageMaker HyperPod integrità attualmente disponibili per i cluster Slurm](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-resiliency-slurm.html). 

Se il controllo dell’integrità viene superato, i nodi vengono contrassegnati con la seguente etichetta.

```
sagemaker.amazonaws.com/node-health-status: Schedulable
```

Se il controllo dell’integrità non viene superato, i nodi verranno terminati e sostituiti. Questo comportamento è lo stesso del modo in cui funziona il controllo dello stato di SageMaker HyperPod salute per i cluster Slurm. 

### Quando un nodo viene aggiunto a un SageMaker HyperPod cluster con la configurazione Deep Health Check abilitata
<a name="sagemaker-hyperpod-eks-resiliency-node-how-it-labels-when-dhc-is-on"></a>

Quando viene aggiunto un nuovo nodo a un SageMaker HyperPod cluster e se il test di controllo approfondito dello stato è abilitato per il gruppo di istanze, HyperPod prima contamina il nodo e avvia il check/stress test di integrità approfondito di circa 2 ore sul nodo. Ci sono tre possibili esiti per le etichette dei nodi dopo il controllo dell’integrità approfondito. 

1. Quando il test di controllo dell’integrità approfondito viene superato.

   ```
   sagemaker.amazonaws.com/node-health-status: Schedulable
   ```

1. Quando il test di controllo dell’integrità approfondito non riesce e l’istanza deve essere sostituita.

   ```
   sagemaker.amazonaws.com/node-health-status: UnschedulablePendingReplacement
   ```

1. Quando il test di controllo dell’integrità approfondito non riesce e l’istanza deve essere riavviata per ripetere il test.

   ```
   sagemaker.amazonaws.com/node-health-status: UnschedulablePendingReboot
   ```

Se un’istanza non supera il test di controllo dell’integrità approfondito, verrà sempre sostituita. Se i test del controllo dell’integrità approfondito hanno esito positivo, il taint sul nodo verrà rimosso.

### Quando si verificano errori di calcolo sui nodi
<a name="sagemaker-hyperpod-eks-resiliency-node-how-it-labels-when-node-fails"></a>

L'agente di monitoraggio dello stato di SageMaker HyperPod salute inoltre monitora continuamente lo stato di salute di ciascun nodo. Quando rileva eventuali guasti (ad esempio della GPU o del driver), l’agente contrassegna il nodo con una delle seguenti etichette.

1. Quando il nodo non è integro e deve essere sostituito.

   ```
   sagemaker.amazonaws.com/node-health-status: UnschedulablePendingReplacement
   ```

1. Quando il nodo non è integro e deve essere riavviato.

   ```
   sagemaker.amazonaws.com/node-health-status: UnschedulablePendingReboot
   ```

 L’agente di monitoraggio dell’integrità esegue il taint anche sul nodo se rileva eventuali problemi di integrità del nodo.

# Quarantena, sostituzione o riavvio manuale di un nodo
<a name="sagemaker-hyperpod-eks-resiliency-manual"></a>

Scopri come mettere in quarantena, sostituire e riavviare manualmente un nodo difettoso in SageMaker HyperPod cluster orchestrati con Amazon EKS.

**Per mettere in quarantena un nodo e forzare l’eliminazione di un pod di addestramento**

```
kubectl cordon <node-name>
```

Dopo la quarantena, forza l’espulsione del pod. Questa operazione è utile se un pod è bloccato in stato di terminazione da più di 30 minuti o se `kubectl describe pod` indica che il nodo non è pronto in Eventi

```
kubectl delete pods <pod-name> --grace-period=0 --force
```

SageMaker HyperPod offre due metodi per il ripristino manuale dei nodi. L'approccio preferito consiste nell'utilizzare SageMaker HyperPod Reboot and Replace APIs, che fornisce un processo di ripristino più rapido e trasparente che funziona con tutti gli orchestratori. In alternativa, puoi usare i comandi kubectl per etichettare i nodi per le operazioni di riavvio e sostituzione. Entrambi i metodi attivano gli stessi processi di ripristino. SageMaker HyperPod 

**Per riavviare un nodo utilizzando l'API Reboot**

Per riavviare un nodo puoi usare l'API. BatchRebootClusterNodes 

 Ecco un esempio di esecuzione dell'operazione di riavvio su due istanze di un cluster utilizzando: AWS Command Line Interface

```
 aws sagemaker batch-reboot-cluster-nodes \
        --cluster-name arn:aws:sagemaker:ap-northeast-1:123456789:cluster/test-cluster \
        --node-ids i-0123456789abcdef0 i-0fedcba9876543210
```

**Per sostituire un nodo utilizzando l'API Replace**

Per sostituire un nodo puoi usare l' BatchReplaceClusterNodes API come segue

 Ecco un esempio di esecuzione dell'operazione di sostituzione su due istanze di un cluster utilizzando: AWS Command Line Interface

```
 aws sagemaker batch-replace-cluster-nodes \
        --cluster-name arn:aws:sagemaker:ap-northeast-1:123456789:cluster/test-cluster \
        --node-ids i-0123456789abcdef0 i-0fedcba9876543210
```

**Cluster gestiti da Karpenter**  
Per SageMaker HyperPod i cluster che utilizzano Karpenter per il provisioning dei nodi, l'`BatchReplaceClusterNodes`API non garantisce la creazione di un nodo sostitutivo. Il nodo specificato *verrà* terminato, ma la sostituzione dipende dal modello di provisioning di Karpenter. pod-demand-based Karpenter crea nuovi nodi solo quando ci sono pod in `Pending` uno stato che non può essere pianificato su nodi esistenti.  
Se il carico di lavoro del nodo eliminato può essere riprogrammato sui nodi rimanenti del cluster (ad esempio, se tali nodi hanno una capacità sufficiente), Karpenter non fornisce un supporto sostitutivo. Per garantire la creazione di un nodo sostitutivo, verificate che la configurazione del carico di lavoro (ad esempio le regole di anti-affinità dei pod o le richieste di risorse) richieda un nuovo nodo per i pod spostati.  
Siamo consapevoli di questa limitazione e stiamo lavorando attivamente a una soluzione per imporre la sostituzione dei nodi quando richiesta tramite l'API.

**Per sostituire un nodo usando kubectl**

Etichetta il nodo con cui sostituirlo`sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReplacement`, che attiva il. SageMaker HyperPod [Ripristino automatico del nodo](sagemaker-hyperpod-eks-resiliency-node-recovery.md) Tieni presente che devi anche attivare il ripristino automatico dei nodi durante la creazione o l’aggiornamento del cluster.

```
kubectl label nodes <node-name> \
   sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReplacement
```

**Per riavviare un nodo usando kubectl**

Etichetta il nodo con `sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReboot` cui riavviare, che attiva il. SageMaker HyperPod [Ripristino automatico del nodo](sagemaker-hyperpod-eks-resiliency-node-recovery.md) Tieni presente che devi anche attivare il ripristino automatico dei nodi durante la creazione o l’aggiornamento del cluster.

```
kubectl label nodes <node-name> \
   sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReboot
```

Dopo aver applicato `UnschedulablePendingReboot` le etichette `UnschedulablePendingReplacement` o, dovresti essere in grado di vedere che il nodo viene terminato o riavviato in pochi minuti. 

# Configurazioni di resilienza consigliate
<a name="sagemaker-hyperpod-eks-resiliency-config-tips"></a>

Quando i controlli approfonditi dello stato sono abilitati, ogni volta che viene aggiunta una nuova istanza al HyperPod cluster (durante la creazione del cluster o tramite la sostituzione automatica del nodo), la nuova istanza viene sottoposta al processo di controllo approfondito (stress test a livello di istanza) per circa un paio d'ore. Di seguito sono illustrate alcune combinazioni di configurazione della resilienza, suggerite in base ai possibili casi.

1. **Caso**: hai altri nodi di riserva all’interno di un cluster come risorse di backup (la capacità non è completamente utilizzata) o puoi attendere circa 2 ore per ottenere le istanze meno soggette a errori grazie al processo di controllo dell’integrità approfondito.

   **Raccomandazione**: abilita la configurazione dei controlli dell’integrità approfonditi per tutto il ciclo di vita del cluster. La configurazione del ripristino automatico del nodo è abilitata per impostazione predefinita.

1. **Caso**: non hai nodi di backup aggiuntivi (la capacità è completamente utilizzata da carichi di addestramento). Hai bisogno di nodi sostitutivi il prima possibile per riprendere il job di addestramento. 

   **Raccomandazione**: abilita il controllo dell’integrità approfondito durante la creazione del cluster, quindi disattiva la configurazione dei controlli dell’integrità approfonditi dopo la creazione del cluster. La configurazione del ripristino automatico del nodo è abilitata per impostazione predefinita.

1. **Caso**: non hai nodi di backup aggiuntivi e non vuoi attendere il processo di controllo dell’integrità approfondito, che richiede circa 2 ore (cluster di piccole dimensioni).

   **Raccomandazione**: disabilita la configurazione dei controlli dell’integrità approfonditi per tutto il ciclo di vita del cluster. La configurazione del ripristino automatico del nodo è abilitata per impostazione predefinita.

Per riprendere immediatamente il job di addestramento dopo un errore, assicurati di avere nodi di riserva aggiuntivi disponibili come risorse di backup nel cluster.

# Istanze Spot in Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-spot"></a>

Amazon SageMaker HyperPod supporta le istanze Spot di Amazon EC2, che consentono risparmi significativi sui costi per carichi di lavoro con tolleranza ai guasti e stateless. AI/ML I casi d'uso includono lavori di inferenza e formazione in batch, ottimizzazione degli iperparametri e carichi di lavoro sperimentali. Puoi anche utilizzare le istanze Spot per scalare automaticamente la capacità di elaborazione quando questa capacità a basso costo è disponibile e tornare alla capacità on demand quando viene recuperata la capacità Spot aggiunta.

Per impostazione predefinita, le istanze Spot on HyperPod funzionano con la [funzione HyperPod di provisioning continuo](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-scaling-eks.html), che consente di fornire automaticamente la capacità SageMaker HyperPod residua in background mentre i carichi di lavoro iniziano immediatamente sulle istanze disponibili. Quando il provisioning dei nodi riscontra errori dovuti a vincoli di capacità o altri problemi, riprova SageMaker HyperPod automaticamente in background finché i cluster non raggiungono la scala desiderata, in modo che le operazioni di scalabilità automatica rimangano resilienti e non bloccanti. [Puoi anche utilizzare le istanze Spot con la scalabilità automatica basata su Karpenter.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-autoscaling.html)

**Funzionalità e concetti chiave da considerare**
+ Ottieni un risparmio sui costi fino al 90% rispetto alle istanze On-Demand
+ Utilizza le istanze Spot per lavori in grado di gestire le interruzioni e in cui i tempi di inizio e completamento dei lavori sono flessibili
+ Quando si utilizza Karpenter per il ridimensionamento automatico, è possibile configurare la configurazione in modo da ricorrere automaticamente HyperPod a On-Demand quando la capacità Spot è interrotta o non disponibile
+ Accedi a un'ampia gamma di tipi di istanze di CPU, GPU e acceleratori supportati da HyperPod
+ La disponibilità della capacità dipende dalla fornitura di EC2 e varia in base alla regione e al tipo di istanza
+ È possibile eseguire varie azioni, come identificare la probabilità di ottenere le istanze desiderate o di subire interruzioni, utilizzando vari strumenti come [Spot Instance](https://aws.amazon.com/ec2/spot/instance-advisor/) Advisor fornito da EC2

## Nozioni di base
<a name="sagemaker-hyperpod-spot-instance-getstart"></a>

### Prerequisiti
<a name="sagemaker-hyperpod-spot-instance-getstart-prereq"></a>

Prima di iniziare, assicurati di disporre dei seguenti elementi:

#### AWS CLI installato e configurato
<a name="sagemaker-hyperpod-spot-instance-getstart-prereq-cli"></a>

Imposta AWS le tue credenziali e la tua regione:

```
aws configure
```

Per istruzioni dettagliate, consulta la [documentazione relativa alle AWS credenziali](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-credentials.html).

#### Ruolo IAM per l'esecuzione SageMaker HyperPod
<a name="sagemaker-hyperpod-spot-instance-getstart-prereq-iam"></a>

Per aggiornare il cluster, devi prima creare le autorizzazioni [AWS Identity and Access Management](https://aws.amazon.com/iam/) (IAM) per Karpenter. Per istruzioni, consulta [Creare un ruolo IAM per la scalabilità HyperPod automatica](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-autoscaling-iam.html) con Karpenter.

#### Configurazione di cluster VPC ed EKS
<a name="sagemaker-hyperpod-spot-instance-getstart-prereq-cluster"></a>

**2.1 Creazione di cluster VPC ed EKS**

Segui la [guida all'installazione di HyperPod EKS](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-install-packages-using-helm-chart.html) per:

1. Crea un VPC con sottoreti in più zone di disponibilità

1. Crea un cluster EKS

1. Installa [le dipendenze richieste utilizzando i](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-install-packages-using-helm-chart.html) grafici Helm

**2.2 Imposta le variabili d'ambiente**

```
export EKS_CLUSTER_ARN="arn:aws:eks:REGION:ACCOUNT_ID:cluster/CLUSTER_NAME"
export EXECUTION_ROLE="arn:aws:iam::ACCOUNT_ID:role/SageMakerExecutionRole"
export BUCKET_NAME="your-s3-bucket-name"
export SECURITY_GROUP="sg-xxxxx"
export SUBNET="subnet-xxxxx"
export SUBNET1="subnet-xxxxx"
export SUBNET2="subnet-xxxxx"
export SUBNET3="subnet-xxxxx"
```

#### Quote di servizio per le istanze Spot
<a name="sagemaker-hyperpod-spot-instance-getstart-prereq-quota"></a>

Verifica di disporre delle quote richieste per le istanze che creerai nel cluster. SageMaker HyperPod Per rivedere le quote, nella console Service Quotas, AWS scegli servizi nel riquadro di navigazione, quindi scegli. SageMaker Ad esempio, la schermata seguente mostra la quota disponibile per le istanze c5.

![\[Un'immagine contenente informazioni sulla regione di costo.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/Screenshot-cluster-quota.png)


#### Verifica la disponibilità degli spot
<a name="sagemaker-hyperpod-spot-instance-getstart-prereq-availability"></a>

Prima di creare gruppi di istanze Spot, verifica la disponibilità in diverse zone di disponibilità:

```
aws ec2 get-spot-placement-scores \
  --region us-west-2 \
  --instance-types c5.2xlarge \
  --target-capacity 10 \
  --single-availability-zone \
  --region-names us-west-2
```

**Suggerimento**: scegli come target le zone di disponibilità con punteggi di posizionamento più alti per una migliore disponibilità. Puoi anche controllare i prezzi di Spot Instance Advisor ed EC2 Spot per verificare la disponibilità. Seleziona la zona di disponibilità richiesta con un punteggio di disponibilità migliore e configura il gruppo di istanze con la sottorete associata per avviare l'istanza in quella zona.

### Creazione di un gruppo di istanze (nessuna scalabilità automatica)
<a name="sagemaker-hyperpod-spot-instance-getstart-create"></a>

**CreateCluster (Spot)**

```
aws sagemaker create-cluster \
    --cluster-name clusterNameHere \
    --orchestrator 'Eks={ClusterArn='$EKS_CLUSTER_ARN'}' \
    --node-provisioning-mode "Continuous" \
    --cluster-role 'arn:aws:iam::YOUR-ACCOUNT-ID:role/SageMakerHyperPodRole' \
    --instance-groups '[{
        "InstanceGroupName": "auto-spot-c5-2x-az1",
        "InstanceType": "ml.c5.2xlarge",
        "InstanceCount": 2,
        "CapacityRequirements: { "Spot": {} }
        "LifeCycleConfig": {
        "SourceS3Uri": "s3://'$BUCKET_NAME'",
        "OnCreate": "on_create_noop.sh"
        },
        "ExecutionRole": "'$EXECUTION_ROLE'",
        "ThreadsPerCore": 1,
        "OverrideVpcConfig": {
            "SecurityGroupIds": ["'$SECURITY_GROUP'"],
            "Subnets": ["'$SUBNET1'"]
         }
    }]' 
    --vpc-config '{
        "SecurityGroupIds": ["'$SECURITY_GROUP'"],
        "Subnets": ["'$SUBNET'"] 
    }'
```

**Aggiorna cluster (Spot \$1 On-Demand)**

```
aws sagemaker update-cluster \
   --cluster-name "my-cluster" \
   --instance-groups '[{
        "InstanceGroupName": "auto-spot-c5-x-az3",
        "InstanceType": "ml.c5.xlarge",
        "InstanceCount": 2,
        "CapacityRequirements: { "Spot": {} },
        "LifeCycleConfig": {
            "SourceS3Uri": "s3://'$BUCKET_NAME'",
            "OnCreate": "on_create_noop.sh"
        },
        "ExecutionRole": "'$EXECUTION_ROLE'",
        "ThreadsPerCore": 1,
        "OverrideVpcConfig": {
            "SecurityGroupIds": ["'$SECURITY_GROUP'"],
            "Subnets": ["'$SUBNET3'"]
        }
    },
    {
        "InstanceGroupName": "auto-spot-c5-2x-az2",
        "InstanceType": "ml.c5.2xlarge",
        "InstanceCount": 2,
        "CapacityRequirements: { "Spot": {} }
        "LifeCycleConfig": {
        "SourceS3Uri": "s3://'$BUCKET_NAME'",
        "OnCreate": "on_create_noop.sh"
        },
        "ExecutionRole": "'$EXECUTION_ROLE'",
        "ThreadsPerCore": 1,
        "OverrideVpcConfig": {
            "SecurityGroupIds": ["'$SECURITY_GROUP'"],
            "Subnets": ["'$SUBNET2'"]
         }
    },
    {   
        "InstanceGroupName": "auto-ondemand-c5-2x-az1",
        "InstanceType": "ml.c5.2xlarge",
        "InstanceCount": 2,
        "LifeCycleConfig": {
        "SourceS3Uri": "s3://'$BUCKET_NAME'",
        "OnCreate": "on_create_noop.sh"
        },
        "ExecutionRole": "'$EXECUTION_ROLE'",
        "ThreadsPerCore": 1,
        "OverrideVpcConfig": {
            "SecurityGroupIds": ["'$SECURITY_GROUP'"],
            "Subnets": ["'$SUBNET1'"]
         }
    }]'
```

`CapacityRequirements`non può essere modificato una volta creato un gruppo di istanze.

**Descrizione del cluster**

```
aws sagemaker describe-cluster --cluster-name $HP_CLUSTER_NAME --region us-west-2
```

```
## Sample Response
{
    "ClusterName": "my-cluster",
    "InstanceGroups": [
        {
            "InstanceGroupName": "ml.c5.2xlarge",
            "InstanceType": "ml.c5.xlarge",
            "InstanceCount": 5,
            "CurrentCount": 3,
            "CapacityRequirements: { "Spot": {} },
            "ExecutionRole": "arn:aws:iam::account:role/SageMakerExecutionRole",
            "InstanceStorageConfigs": [...],
            "OverrideVpcConfig": {...}
        }
        // Other IGs
    ]
}
```

**DescribeClusterNode**

```
aws sagemaker describe-cluster-node --cluster-name $HP_CLUSTER_NAME --region us-west-2
```

```
## Sample Response
{
  "NodeDetails": {
    "InstanceId": "i-1234567890abcdef1",
    "InstanceGroupName": "ml.c5.2xlarge",
    "CapacityType": "Spot",
    "InstanceStatus": {...}
  }
}
```

### Utilizzo della console
<a name="sagemaker-hyperpod-spot-instance-getstart-console"></a>

#### Crea e configura un SageMaker HyperPod cluster
<a name="sagemaker-hyperpod-spot-instance-getstart-console-create"></a>

Per iniziare, avvia e configura il cluster SageMaker HyperPod EKS e verifica che la modalità di provisioning continuo sia abilitata durante la creazione del cluster. Completa questa procedura:

1. Sulla console SageMaker AI, scegli HyperPod i cluster nel pannello di navigazione.

1. Scegli Crea HyperPod cluster e Orchestrated on Amazon EKS.

1. Per le opzioni di configurazione, seleziona Configurazione personalizzata.

1. In Nome, immetti un nome.

1. Per Ripristino dell'istanza, seleziona Automatico.

1. Per la modalità di provisioning dell'istanza, seleziona Usa il provisioning continuo.

1. CapacityType : Seleziona Spot 

1. Seleziona Invia.

Schermata della console: 

![\[Un'immagine contenente il flusso del cluster di creazione.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/Screenshot-create-cluster.png)


Questa configurazione crea la configurazione necessaria come cloud privato virtuale (VPC), sottoreti, gruppi di sicurezza e cluster EKS e installa gli operatori nel cluster. Puoi anche fornire risorse esistenti come un cluster EKS se desideri utilizzare un cluster esistente invece di crearne uno nuovo. Questa configurazione richiederà circa 20 minuti.

#### Aggiungere un nuovo gruppo di istanze Spot allo stesso cluster
<a name="sagemaker-hyperpod-spot-instance-getstart-console-add"></a>

Per aggiungere uno Spot IG al tuo cluster HyperPod EKS esistente. Completa questa procedura:

1. Sulla console SageMaker AI, scegli HyperPod i cluster nel riquadro di navigazione.

1. Seleziona un HyperPod cluster esistente con Amazon EKS Orchestration (assicurati che il provisioning continuo sia abilitato).

1. Fare clic su Edit (Modifica).

1. Nella pagina Modifica cluster, fai clic su Crea gruppo di istanze.

1. Seleziona il tipo di capacità: istanza Spot nella configurazione del gruppo di istanze.

1. Fai clic su Crea gruppo di istanze. 

1. Fare clic su Submit (Invia).

**Schermata della console:**

![\[Un'immagine contenente il flusso di creazione del gruppo di istanze.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/Screenshot-instance-group.png)


### Usando CloudFormation
<a name="sagemaker-hyperpod-spot-instance-getstart-cfn"></a>

```
Resources:
  TestCluster:
    Type: AWS::SageMaker::Cluster
    Properties:
      ClusterName: "SampleCluster"
      InstanceGroups:
        - InstanceGroupName: group1
          InstanceType: ml.c5.2xlarge
          InstanceCount: 1
          LifeCycleConfig:
            SourceS3Uri: "s3://'$BUCKET_NAME'"
            OnCreate: "on_create_noop.sh"
          ExecutionRole: "'$EXECUTION_ROLE'",
          ThreadsPerCore: 1
          CapacityRequirements:
            Spot: {}
      VpcConfig:
        Subnets:
          - "'$SUBNET1'"
        SecurityGroupIds:
          - "'$SECURITY_GROUP'"
      Orchestrator:
        Eks:
          ClusterArn:
            '$EKS_CLUSTER_ARN'
      NodeProvisioningMode: "Continuous"
      NodeRecovery: "Automatic"
```

Vedi [https://docs.aws.amazon.com/sagemaker/latest/dg/smcluster- getting-started-eks-console - create-cluster-cfn .html](https://docs.aws.amazon.com/sagemaker/latest/dg/smcluster-getting-started-eks-console-create-cluster-cfn.html) per i dettagli.

### Autoscaling basato su Karpenter
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter"></a>

#### Crea il ruolo del cluster
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter-role"></a>

**Passaggio 1: accedi alla console IAM**

1. Vai al servizio **Console di gestione AWS**→ **IAM**

1. Fai clic su **Ruoli** nella barra laterale sinistra

1. Fai clic su **Crea ruolo**

**Fase 2: Impostazione della politica di fiducia**

1. Seleziona la politica di fiducia personalizzata (anziché AWS il servizio)

1. Sostituisci il JSON predefinito con questa politica di fiducia:

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

fai clic su Avanti

**Passaggio 3: creazione di una politica di autorizzazioni personalizzata**

Poiché si tratta di SageMaker autorizzazioni specifiche, dovrai creare una politica personalizzata:

1. Fai clic su **Crea politica** (apre una nuova scheda)

1. Fai clic sulla **scheda JSON**

1. Inserisci questa policy:

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "sagemaker:BatchAddClusterNodes",
           "sagemaker:BatchDeleteClusterNodes"
         ],
         "Resource": "*"
       }
     ]
   }
   ```

1. **Fai clic su Avanti**

1. Dategli un nome come `SageMakerHyperPodRolePolicy`

1. Fai clic su **Crea politica**

**Fase 4: Allega la policy al ruolo**

1. Torna alla scheda di creazione del ruolo

1. Aggiorna l'elenco delle politiche

1. Cerca e seleziona la politica appena creata

1. Fai clic su **Avanti**

**Fase 5: Assegna un nome e crea un ruolo**

1. Inserisci il nome di un ruolo (ad esempio,`SageMakerHyperPodRole`)

1. Se lo desideri, aggiungi una descrizione

1. Rivedi la politica di fiducia e le autorizzazioni

1. Fai clic su **Crea ruolo**

#### Verifica
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter-verify"></a>

Dopo la creazione, puoi effettuare la verifica tramite:
+ Se si seleziona la scheda Relazioni di fiducia, viene visualizzato il servizio hyperpod
+ La selezione della scheda Autorizzazioni mostra la tua politica personalizzata
+ Il ruolo ARN sarà disponibile per l'uso con HyperPod

Il formato ARN del ruolo sarà:

```
 arn:aws:iam::YOUR-ACCOUNT-ID:role/SageMakerHyperPodRole
```

#### Crea cluster con AutoScaling:
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter-create-cluster"></a>

Per una migliore disponibilità, crea IGs in più sottoreti AZs configurando le sottoreti. Puoi anche includere IGs onDemand come fallback.

```
aws sagemaker create-cluster \
    --cluster-name clusterNameHere \
    --orchestrator 'Eks={ClusterArn='$EKS_CLUSTER_ARN'}' \
    --node-provisioning-mode "Continuous" \
    --cluster-role 'arn:aws:iam::YOUR-ACCOUNT-ID:role/SageMakerHyperPodRole' \
    --instance-groups '[{
        "InstanceGroupName": "auto-spot-c5-2x-az1",
        "InstanceType": "ml.c5.2xlarge",
        "InstanceCount": 0, // For Auto scaling keep instance count as 0
        "CapacityRequirements: { "Spot": {} }
        "LifeCycleConfig": {
        "SourceS3Uri": "s3://'$BUCKET_NAME'",
        "OnCreate": "on_create_noop.sh"
        },
        "ExecutionRole": "'$EXECUTION_ROLE'",
        "ThreadsPerCore": 1,
        "OverrideVpcConfig": {
            "SecurityGroupIds": ["'$SECURITY_GROUP'"],
            "Subnets": ["'$SUBNET1'"]
         }
    }]' 
--vpc-config '{
    "SecurityGroupIds": ["'$SECURITY_GROUP'"],
    "Subnets": ["'$SUBNET'"] 
}'
--auto-scaling ' {
    "Mode": "Enable",
    "AutoScalerType": "Karpenter"
}'
```

#### Aggiorna cluster (Spot \$1 On-Demand)
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter-update-cluster"></a>

```
aws sagemaker update-cluster \
   --cluster-name "my-cluster" \
   --instance-groups '[{
        "InstanceGroupName": "auto-spot-c5-x-az3",
        "InstanceType": "ml.c5.xlarge",
        "InstanceCount": 2,
        "CapacityRequirements: { "Spot": {} },
        "LifeCycleConfig": {
            "SourceS3Uri": "s3://'$BUCKET_NAME'",
            "OnCreate": "on_create_noop.sh"
        },
        "ExecutionRole": "'$EXECUTION_ROLE'",
        "ThreadsPerCore": 1,
        "OverrideVpcConfig": {
            "SecurityGroupIds": ["'$SECURITY_GROUP'"],
            "Subnets": ["'$SUBNET3'"]
        }
    },
    {
        "InstanceGroupName": "auto-spot-c5-2x-az2",
        "InstanceType": "ml.c5.2xlarge",
        "InstanceCount": 2,
        "CapacityRequirements: { "Spot": {} }
        "LifeCycleConfig": {
        "SourceS3Uri": "s3://'$BUCKET_NAME'",
        "OnCreate": "on_create_noop.sh"
        },
        "ExecutionRole": "'$EXECUTION_ROLE'",
        "ThreadsPerCore": 1,
        "OverrideVpcConfig": {
            "SecurityGroupIds": ["'$SECURITY_GROUP'"],
            "Subnets": ["'$SUBNET2'"]
         }
    },
    {   
        "InstanceGroupName": "auto-ondemand-c5-2x-az1",
        "InstanceType": "ml.c5.2xlarge",
        "InstanceCount": 2,
        "LifeCycleConfig": {
        "SourceS3Uri": "s3://'$BUCKET_NAME'",
        "OnCreate": "on_create_noop.sh"
        },
        "ExecutionRole": "'$EXECUTION_ROLE'",
        "ThreadsPerCore": 1,
        "OverrideVpcConfig": {
            "SecurityGroupIds": ["'$SECURITY_GROUP'"],
            "Subnets": ["'$SUBNET1'"]
         }
    }]'
```

#### Crea HyperpodNodeClass
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter-create-class"></a>

`HyperpodNodeClass`è una risorsa personalizzata che esegue il mapping a gruppi di istanze precreati SageMaker HyperPod, definendo i vincoli relativi ai tipi di istanze e alle zone di disponibilità supportati per le decisioni di scalabilità automatica di Karpenter. Per `HyperpodNodeClass` utilizzarla, è sufficiente specificare i nomi `InstanceGroups` del SageMaker HyperPod cluster che si desidera utilizzare come origine per le risorse di AWS calcolo da utilizzare per scalare i pod del proprio. NodePools Il `HyperpodNodeClass` nome che usi qui viene riportato nella sezione successiva NodePool in cui fai riferimento ad esso. Questo indica da NodePool cosa `HyperpodNodeClass` attingere le risorse. Per creare un`HyperpodNodeClass`, completa i seguenti passaggi:

1. Create un file YAML (ad esempio, nodeclass.yaml) simile al codice seguente. Aggiungi `InstanceGroup` i nomi che hai usato al momento della creazione del cluster. SageMaker HyperPod Puoi anche aggiungere nuovi gruppi di istanze a un cluster SageMaker HyperPod EKS esistente.

1. Fai riferimento al `HyperPodNodeClass` nome nella tua NodePool configurazione.

Di seguito è riportato un esempio`HyperpodNodeClass`:

```
apiVersion: karpenter.sagemaker.amazonaws.com/v1
kind: HyperpodNodeClass
metadata:
  name: multiazg6
spec:
  instanceGroups:
    # name of InstanceGroup in HyperPod cluster. InstanceGroup needs to pre-created
    # before this step can be completed.
    # MaxItems: 10
    - auto-spot-c5-2x-az1
    - auto-spot-c5-2x-az2
    - auto-spot-c5-x-az3
    - auto-ondemand-c5-2x-az1
```

Karpenter dà la priorità ai gruppi di istanze Spot rispetto alle istanze On-Demand, utilizzando On-Demand come fallback quando specificato nella configurazione. La selezione delle istanze viene ordinata in base ai punteggi di posizionamento Spot di EC2 associati alla zona di disponibilità di ciascuna sottorete.

**Applica la configurazione al tuo cluster EKS utilizzando: `kubectl`**

```
kubectl apply -f nodeclass.yaml
```

Il HyperPod cluster deve essere AutoScaling abilitato e lo AutoScaling stato deve cambiare `InService` prima di `HyperpodNodeClass` poter essere applicato. Mostra anche le capacità dei gruppi di istanze come Spot o OnDemand. Per ulteriori informazioni e considerazioni chiave, consulta Scaling [automatico](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-autoscaling.html) su EKS. SageMaker HyperPod 

**Ad esempio**

```
apiVersion: karpenter.sagemaker.amazonaws.com/v1
kind: HyperpodNodeClass
metadata:
  creationTimestamp: "2025-11-30T03:25:04Z"
  name: multiazc6
  uid: ef5609be-15dd-4700-89ea-a3370e023690
spec:
  instanceGroups:
  -spot1
status:
  conditions:
  // true when all IGs in the spec are present in SageMaker cluster, false otherwise
  - lastTransitionTime: "2025-11-20T03:25:04Z"
    message: ""
    observedGeneration: 3
    reason: InstanceGroupReady
    status: "True"
    type: InstanceGroupReady
  // true if subnets of IGs are discoverable, false otherwise
  - lastTransitionTime: "2025-11-20T03:25:04Z"
    message: ""
    observedGeneration: 3
    reason: SubnetsReady
    status: "True"
    type: SubnetsReady
  // true when all dependent resources are Ready [InstanceGroup, Subnets]
  - lastTransitionTime: "2025-11-30T05:47:55Z"
    message: ""
    observedGeneration: 3
    reason: Ready
    status: "True"
    type: Ready
  instanceGroups:
  - instanceTypes:
    - ml.c5.2xlarge
    name:auto-spot-c5-2x-az2
    subnets:
    - id: subnet-03ecc649db2ff20d2
      zone: us-west-2a
      zoneId: usw2-az2
  - capacities: {"Spot": {}}
```

#### Crea NodePool
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter-create-nodepool"></a>

 NodePool Imposta i vincoli sui nodi che possono essere creati da Karpenter e sui pod che possono essere eseguiti su quei nodi. NodePool Possono essere impostati per eseguire varie azioni, come: 
+ Definisci etichette e colorazioni per limitare i pod che possono essere eseguiti sui nodi creati da Karpenter
+ Limita la creazione di nodi a determinate zone, tipi di istanze e architetture di computer e così via

Per ulteriori informazioni su NodePool, fare riferimento a. [NodePools](https://karpenter.sh/docs/concepts/nodepools/) SageMaker HyperPod managed Karpenter supporta una serie limitata di requisiti noti per Kubernetes e Karpenter, che spieghiamo in questo post.

Per creare un, completa i seguenti passaggi: NodePool

Crea un file YAML denominato `nodepool.yaml` con la configurazione desiderata NodePool. Il codice seguente è una configurazione di esempio per creare un esempio. NodePool Specifichiamo NodePool di includere il nostro tipo di istanza SageMaker ml.g6.xlarge e lo specifichiamo inoltre per una zona. Per ulteriori personalizzazioni, fare riferimento a. [NodePools](https://karpenter.sh/docs/concepts/nodepools/)

```
apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
 name: gpunodepool
spec:
 template:
   spec:
     nodeClassRef:
      group: karpenter.sagemaker.amazonaws.com
      kind: HyperpodNodeClass
      name: multiazg6
     expireAfter: Never
     requirements:
        - key: node.kubernetes.io/instance-type
          operator: Exists
        - key: "node.kubernetes.io/instance-type" // Optional otherwise Karpenter will decide based on Job config resource requirements
          operator: In
          values: ["ml.c5.2xlarge"]
        - key: "topology.kubernetes.io/zone"
          operator: In
          values: ["us-west-2a"]
```

**Suggerimento**: in caso di interruzione di EC2 Spot, Hyperpod contamina il nodo per innescare lo sfratto del pod. **Il processo di **consolidamento** di Karpenter rispetta i budget destinati alle interruzioni dei pod ed esegue la normale rimozione di Kubernetes, ma se si imposta ConsolidateAfter: 0, il consolidamento può avvenire immediatamente, lasciando pochissimo tempo per lo sfratto graduale dei pod.** Impostalo su un valore diverso da zero per un massimo di 2 minuti per consentire lo sfratto graduale dei pod per qualsiasi esigenza di checkpoint.

**Applicalo NodePool al tuo cluster:**

```
kubectl apply -f nodepool.yaml
```

**Monitora lo NodePool stato per assicurarti che la condizione Ready nello stato sia impostata su True:**

```
kubectl get nodepool gpunodepool -oyaml
```

Questo esempio mostra come utilizzare a per specificare l'hardware (tipo di istanza) e il posizionamento (zona di disponibilità) per i pod. NodePool 

**Avvia un carico di lavoro semplice**

Il seguente carico di lavoro esegue una distribuzione Kubernetes in cui i pod in fase di implementazione richiedono 1 CPU e 256 MB di memoria per replica, per pod. I pod non sono ancora stati attivati.

```
kubectl apply -f https://raw.githubusercontent.com/aws/karpenter-provider-aws/refs/heads/main/examples/workloads/inflate.yaml
```

Quando lo applichiamo, possiamo vedere una distribuzione e l'avvio di un singolo nodo nel nostro cluster, come mostrato nella schermata seguente.

**Per scalare questo componente, usa il seguente comando:**

```
kubectl scale deployment inflate --replicas 10
```

Vedi [https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker- hyperpod-eks-autoscaling .html](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-autoscaling.html) per maggiori dettagli.

### Gestione dell'interruzione dei nodi
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter-interrupt"></a>

Le istanze Spot possono essere recuperate in qualsiasi momento. Nella maggior parte dei casi, EC2 fornisce un avviso di interruzione di 2 minuti nel migliore dei casi, ma questo avviso non è garantito. In alcune situazioni, EC2 può chiudere immediatamente le istanze Spot senza alcun preavviso. HyperPod gestisce automaticamente entrambi gli scenari:
+ Con un preavviso di 2 minuti: ritenta automaticamente lo sgombero graduale dei pod e la sostituzione controllata della capacità non appena la capacità Spot diventa disponibile.
+ Senza preavviso (cessazione immediata): ritenta automaticamente la sostituzione del nodo (quando la capacità Spot diventa disponibile) senza procedere allo sfratto 

**Come funziona**

Quando EC2 invia un avviso di interruzione Spot, automaticamente: HyperPod 

1. Rileva il segnale di interruzione 

1. Influisce sul nodo: impedisce la pianificazione di nuovi pod sull'istanza interrotta

1. Rimuove con eleganza i pod: dà ai pod in esecuzione il tempo di completare o controllare il loro lavoro (nel rispetto di Kubernetes) `terminationGracePeriodSeconds`

1. Sostituisce la capacità: tenta automaticamente di fornire le istanze sostitutive (Spot o On-Demand in base alla disponibilità). 

   La sostituzione della capacità funziona fornendo automaticamente le istanze sostitutive. Quando la capacità non è immediatamente disponibile, il sistema continua a controllare fino a quando le risorse non diventano accessibili. Nel caso di gruppi di istanze senza scalabilità automatica, HyperPod tenta di scalare all'interno dello stesso gruppo di istanze fino a quando non diventa disponibile la capacità richiesta. Per i gruppi di istanze basati su Karpenter, Karpenter implementa un meccanismo di fallback su altri gruppi di istanze configurati nella classe Node quando il gruppo primario non è in grado di soddisfare la domanda. Inoltre, puoi configurare On-Demand come opzione di fallback, permettendo a Karpenter di passare automaticamente alle istanze On-Demand se non riesce a scalare correttamente i gruppi di istanze Spot.

1. Riprogramma i carichi di lavoro: Kubernetes riprogramma automaticamente i pod eliminati su nodi integri

### Individuazione dell'utilizzo e della fattura
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter-bill"></a>

Per verificare l'utilizzo e la fatturazione delle istanze Spot su, HyperPod puoi utilizzare la console AWS Cost Explorer. Vai a Billing and Cost Management > Fattura

![\[Un'immagine contenente informazioni sulla regione di costo.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/Screenshot-cost-region.png)


**Per esplorare l'utilizzo e la fatturazione su Console, vai a Billing and Cost Management > Cost Explorer**

![\[Un'immagine contenente costi e utilizzo.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/Screenshot-cost-usage.png)


# Utilizzo UltraServers in Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-ultraserver"></a>

SageMaker HyperPod il supporto per Ultraservers offre funzionalità di elaborazione GPU ad alte prestazioni per carichi di lavoro di intelligenza artificiale e apprendimento automatico. Basati su NVIDIA GB200 e sull' NVL72 architettura, questi Ultraserver forniscono NVLink connettività su 18 GB200 istanze in una configurazione dual-rack, per un totale di 72 B200. GPUs Questa NVLink struttura consente ai carichi di lavoro di utilizzare comunicazioni GPU che aumentano la capacità utilizzabile della GPU e la memoria indirizzabile oltre quanto possibile con le istanze discrete, supportando modelli di intelligenza artificiale più complessi e che richiedono molte risorse. La NVLink connettività è abilitata dalla tecnologia NVIDIA IMEX, che gestisce la configurazione di basso livello per connessioni sicure in struttura di GPU tra istanze all'interno dello stesso rack.

HyperPod semplifica l'implementazione e la gestione di questi cluster di GPU attraverso il riconoscimento intelligente della topologia e la configurazione automatizzata. La piattaforma rileva ed etichetta automaticamente i nodi con la loro posizione fisica e le informazioni sui blocchi di capacità, il che supporta la pianificazione basata sulla topologia per i carichi di lavoro distribuiti. HyperPod astrae i complessi requisiti di configurazione IMEX, consentendoti di concentrarti sull'implementazione dei carichi di lavoro piuttosto che sulla configurazione dell'infrastruttura GPU di basso livello. Puoi scegliere opzioni di implementazione flessibili, inclusi nodi autogestiti e gruppi di nodi gestiti da EKS. Amazon EKS offre soluzioni ottimizzate AMIs che includono driver NVIDIA preconfigurati, Fabric Manager, driver IMEX e tutto il software di sistema necessario per un funzionamento senza interruzioni.

L'integrazione include funzionalità di posizionamento dei pod che garantiscono una pianificazione ottimale dei carichi di lavoro distribuiti tra i NVL72 domini utilizzando etichette topologiche Kubernetes standard. Le funzionalità integrate di monitoraggio e ripristino automatico forniscono supporto operativo grazie all’agente di integrità AMI che rileva gli errori della GPU dai log del kernel e può correggere automaticamente i problemi o sostituire i nodi difettosi nei gruppi di nodi gestiti. Questa combinazione di scalabilità GPU, posizionamento intelligente dei carichi di lavoro e operazioni automatizzate ti aiuta a concentrarti sulle AI/ML innovazioni anziché sulla complessità dell'infrastruttura, ottenendo al contempo le massime prestazioni dagli investimenti in GPU.

Per eseguire la configurazione UltraServers con il HyperPod cluster, segui i seguenti passaggi:

1. Crea un cluster [basato su EKS HyperPod ](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-create-cluster.html). Quando scegli un gruppo di istanze, assicurati di scegliere un. UltraServer 

1. Dopo aver creato il cluster, utilizza i comandi seguenti per installare i plugin operativi:

   Plugin per dispositivi NVIDIA v0.17.2

   ```
   kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.17.2/deployments/static/nvidia-device-plugin.yml
   ```

   FD DaemonSet v0.17.3

   ```
   kubectl apply -k "https://github.com/kubernetes-sigs/node-feature-discovery/deployment/overlays/default?ref=v0.17.3"
   ```

   Rilevamento delle funzionalità della GPU

   ```
   kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.17.2/deployments/static/gpu-feature-discovery-daemonset.yaml
   ```

Ora puoi eseguire processi. Nell’esempio seguente viene illustrato come creare un dominio, configurare un dominio IMEX e abilitare l’allocazione dei canali. Queste fasi consentono inoltre di creare un pod per allocare un canale per la comunicazione NCCL.

1. Crea un file con le specifiche delle risorse da utilizzare con Kubectl.

   ```
   cat <<EOF > imex-channel-injection.yaml
   ---
   apiVersion: resource.nvidia.com/v1beta1
   kind: ComputeDomain
   metadata:
     name: imex-channel-injection
   spec:
     numNodes: 1
     channel:
       resourceClaimTemplate:
         name: imex-channel-0
   ---
   apiVersion: v1
   kind: Pod
   metadata:
     name: imex-channel-injection
   spec:
     affinity:
       nodeAffinity:
         requiredDuringSchedulingIgnoredDuringExecution:
           nodeSelectorTerms:
           - matchExpressions:
             - key: nvidia.com/gpu.clique
               operator: Exists
             - key: topology.k8s.aws/ultraserver-id
               operator: In
               values: 
               - <UltraServer-ID>
     containers:
     - name: ctr
       image: ubuntu:22.04
       command: ["bash", "-c"]
       args: ["ls -la /dev/nvidia-caps-imex-channels; trap 'exit 0' TERM; sleep 9999 & wait"]
       resources:
         claims:
         - name: imex-channel-0
     resourceClaims:
     - name: imex-channel-0
       resourceClaimTemplateName: imex-channel-0
   EOF
   ```

1. Applica la configurazione che hai creato.

   ```
   kubectl apply -f imex-channel-injection.yaml
   ```

1. Esegui i comandi `get pods` per verificare che il pod sia stato creato.

   ```
   kubectl get pods
   kubectl get pods -n nvidia-dra-driver-gpu -l resource.nvidia.com/computeDomain
   ```

1. Puoi anche controllare i log del pod per vedere se ha allocato un canale di comunicazione.

   ```
   kubectl logs imex-channel-injection
   ```

   ```
   total 0
   drwxr-xr-x 2 root root     60 Feb 19 10:43 .
   drwxr-xr-x 6 root root    380 Feb 19 10:43 ..
   crw-rw-rw- 1 root root 507, 0 Feb 19 10:43 channel0
   ```

1. Puoi anche controllare i log per verificare che la configurazione IMEX automatizzata sia in esecuzione con un canale allocato.

   ```
   kubectl logs -n nvidia-dra-driver-gpu -l resource.nvidia.com/computeDomain --tail=-1
   /etc/nvidia-imex/nodes_config.cfg:
   ```

   ```
   IMEX Log initializing at: 8/8/2025 14:23:12.081
   [Aug 8 2025 14:23:12] [INFO] [tid 39] IMEX version 570.124.06 is running with the following configuration options
   
   [Aug 8 2025 14:23:12] [INFO] [tid 39] Logging level = 4
   
   [Aug 8 2025 14:23:12] [INFO] [tid 39] Logging file name/path = /var/log/nvidia-imex.log
   
   [Aug 8 2025 14:23:12] [INFO] [tid 39] Append to log file = 0
   
   [Aug 8 2025 14:23:12] [INFO] [tid 39] Max Log file size = 1024 (MBs)
   
   [Aug 8 2025 14:23:12] [INFO] [tid 39] Use Syslog file = 0
   
   [Aug 8 2025 14:23:12] [INFO] [tid 39] IMEX Library communication bind interface =
   
   [JAug 8 2025 14:23:12] [INFO] [tid 39] IMEX library communication bind port = 50000
   
   [Aug 8 2025 14:23:12] [INFO] [tid 39] Identified this node as ID 0, using bind IP of '10.115.131.8', and network interface of enP5p9s0
   [Aug 8 2025 14:23:120] [INFO] [tid 39] nvidia-imex persistence file /var/run/nvidia-imex/persist.dat does not exist.  Assuming no previous importers.
   [Aug 8 2025 14:23:12] [INFO] [tid 39] NvGpu Library version matched with GPU Driver version
   [Aug 8 2025 14:23:12] [INFO] [tid 63] Started processing of incoming messages.
   [Aug 8 2025 14:23:12] [INFO] [tid 64] Started processing of incoming messages.
   [Aug 8 2025 14:23:12] [INFO] [tid 65] Started processing of incoming messages.
   [Aug 8 2025 14:23:12] [INFO] [tid 39] Creating gRPC channels to all peers (nPeers = 1).
   [Aug 8 2025 14:23:12] [INFO] [tid 66] Started processing of incoming messages.
   [Aug 8 2025 14:23:12] [INFO] [tid 39] IMEX_WAIT_FOR_QUORUM != FULL, continuing initialization without waiting for connections to all nodes.
   [Aug 8 2025 14:23:12] [INFO] [tid 67] Connection established to node 0 with ip address 10.115.131.8. Number of times connected: 1
   [Aug 8 2025 14:23:12] [INFO] [tid 39] GPU event successfully subscribed
   ```

1. Dopo aver verificato tutto, elimina il carico di lavoro e rimuovi la configurazione.

   ```
   kubectl delete -f imex-channel-injection.yaml
   ```

# IDEs e notebook
<a name="sagemaker-hyperpod-eks-cluster-ide"></a>

Amazon SageMaker sta introducendo una nuova funzionalità per i cluster SageMaker HyperPod EKS, che consente agli sviluppatori di intelligenza artificiale di eseguire i propri carichi di lavoro interattivi di machine learning direttamente sul cluster HyperPod EKS. Questa funzionalità introduce un nuovo componente aggiuntivo chiamato Amazon SageMaker Spaces, che consente agli sviluppatori di intelligenza artificiale di creare e gestire ambienti autonomi per l'esecuzione di notebook.

Gli amministratori possono utilizzare SageMaker HyperPod Console per installare il componente aggiuntivo sul proprio cluster e definire configurazioni di spazio predefinite come immagini, risorse di elaborazione, archiviazione locale per le impostazioni dei notebook (spazio di archiviazione aggiuntivo da allegare agli spazi di sviluppo), file system e script di inizializzazione. Sarà disponibile un'opzione di installazione con un clic con impostazioni predefinite per semplificare l'esperienza di amministrazione. Gli amministratori possono utilizzare SageMaker HyperPod Console, kubectl o HyperPod CLI per installare l'operatore, creare impostazioni predefinite e gestire tutti gli spazi in una posizione centralizzata.

Gli sviluppatori di intelligenza artificiale possono utilizzare la HyperPod CLI per creare, aggiornare ed eliminare spazi di sviluppo. Hanno la flessibilità di utilizzare le configurazioni predefinite fornite dagli amministratori o personalizzare le impostazioni. Gli sviluppatori di intelligenza artificiale possono accedere ai propri spazi HyperPod utilizzando il codice VS locale IDEs, and/or il browser Web che ospita il proprio JupyterLab CodeEditor IDE su un dominio DNS personalizzato configurato dai propri amministratori. Possono anche utilizzare la funzionalità di port forwarding di Kubernetes per accedere agli spazi nei loro browser web.

## Admin
<a name="admin-cx"></a>
+ [Impostazione delle autorizzazioni](permission-setup.md)
+ [Installa il componente aggiuntivo SageMaker AI Spaces](operator-install.md)
+ [Personalizza il componente aggiuntivo](customization.md)
+ [Aggiungere utenti e configurare account di servizio](add-user.md)
+ [Limits](ds-limits.md)
+ [Gestione delle attività per Interactive Spaces su HyperPod](task-governance.md)
+ [Osservabilità](observability.md)

## Data Scientist
<a name="data-scientist-cx"></a>
+ [Crea e gestisci spazi](create-manage-spaces.md)
+ [Accesso tramite browser Web](browser-access.md)
+ [Accesso remoto a SageMaker Spaces](vscode-access.md)

## SageMaker Prezzi delle istanze Spaces Managed
<a name="spaces-managed-instance-pricing"></a>

Il componente SageMaker aggiunto/operatore di Spaces non comporta alcun costo aggiuntivo per il cliente. Tuttavia, per supportare il SSH-over-SSM tunneling richiesto per la funzionalità di *connessione IDE remota*, Spaces utilizza un'istanza gestita. SageMaker AWS Questa istanza è registrata come istanza avanzata on-premise in SSM e pertanto viene fatturata per ora di elaborazione.

[Consulta la tariffa «On-Premises Instance Management» nella pagina dei prezzi di AWS Systems Manager: AWS Systems Manager Pricing: pricing/ https://aws.amazon.com/systems-manager/](https://aws.amazon.com/systems-manager/pricing.com)

# Impostazione delle autorizzazioni
<a name="permission-setup"></a>

## Ruoli richiesti per Add-on e relative dipendenze
<a name="permission-setup-addon"></a>

### Ruoli IAM richiesti per SageMaker Spaces on SageMaker HyperPod
<a name="role-hyperpod"></a>

Quando si abilitano le funzionalità di **SageMaker Spaces (alias SageMaker ** **IDE/Notebooks)** su un cluster SageMaker HyperPod (EKS), è necessario creare e assegnare diversi ruoli IAM. Questi ruoli supportano l'accesso sicuro, il routing, le sessioni IDE remote e il provisioning dello storage EBS. La tabella seguente riassume i quattro ruoli e quando sono richiesti.

### Tabella riassuntiva dei ruoli
<a name="role-table"></a>


| Ruolo IAM | Obbligatorio? | Scopo | Chi lo usa? | Personalizzazione consentita dalla SageMaker console? | 
| --- | --- | --- | --- | --- | 
|  Ruolo di esecuzione del componente aggiuntivo Spaces  |  Sempre richiesto  |  Consente al controller Spaces di gestire Spaces, generare sessioni SSM predefinite URLs e gestire sessioni SSM  |  Pod controller aggiuntivo (privilegiato)  |  ✔ Sì  | 
|  Ruolo del router all'interno del cluster  |  Necessario per l'accesso WebUI  |  Consente al pod del router di eseguire operazioni KMS per la firma JWT (autenticazione WebUI)  |  Pod router interno al cluster (privilegiato)  |  ✔ Sì  | 
|  Ruolo dell'istanza gestita SSM  |  Necessario per l'accesso remoto all'IDE  |  Utilizzato da SSM Agent Sidecar per sessioni IDE SSH-over-SSM remote  |  SSM Agent in Space IDE Pods (non un pod aggiuntivo)  |  ✔ Sì  | 
|  Componente aggiuntivo IAM Role for EBS CSI Driver  |  Sempre richiesto  |  Consente a EBS CSI Driver di eseguire create/attach/modify volumi per i carichi di lavoro di Spaces  |  Componente aggiuntivo EBS CSI Driver  |  Creato automaticamente  | 
|  Componente aggiuntivo IAM Role for External DNS  |  Necessario per l'accesso WebUI  |  Garantisce che agli endpoint Space e ai componenti del cluster possano essere assegnati automaticamente nomi DNS nelle zone ospitate Route 53 del cliente.  |  Componente aggiuntivo DNS esterno  |  Creato automaticamente  | 

### 1. Ruolo di esecuzione del componente aggiuntivo Spaces (obbligatorio)
<a name="add-n-execution-role"></a>

Il ruolo di esecuzione del componente aggiuntivo Spaces è sempre richiesto perché viene utilizzato dal pod controller del componente aggiuntivo SageMaker Spaces, un componente amministrativo installato tramite il componente aggiuntivo EKS. Questo ruolo consente al controller di gestire gli spazi, fornire risorse, interagire con SSM e generare predefiniti URLs per l'accesso remoto all'IDE e al WebUI. Supporta anche l'accesso KMS utilizzato per la firma delle richieste per l'autenticazione delle richieste https WebUI. Questo ruolo può essere creato automaticamente quando il componente aggiuntivo SageMaker Spaces viene installato tramite la console. SageMaker Per la creazione manuale, AWS fornisce la policy `AmazonSageMakerSpacesControllerPolicy` gestita.

**Politica di fiducia di riferimento**

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "pods.eks.amazonaws.com"
      },
      "Action": [
          "sts:AssumeRole",
          "sts:TagSession"
      ],
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "{{accountId}}",
          "aws:SourceArn": "arn:aws:eks:{{region}}:{{accountId}}:cluster/{{eksClusterName}}"
        }
      }
    }
  ]
}
```

### 2. Ruolo In-Cluster Router (richiesto per l'autenticazione WebUI)
<a name="in-cluster-role"></a>

Il ruolo In-Cluster Router viene utilizzato dal **router pod**, un componente privilegiato che autentica le sessioni WebUI di Spaces. Il router utilizza una chiave KMS per creare e firmare token JWT che autorizzano l'accesso degli utenti a spazi specifici. Questo ruolo consente al router pod di generare chiavi dati e decrittografarle. Analogamente al ruolo del controller, impone la sicurezza utilizzando restrizioni di ambito basate su tag e cluster. Questo ruolo può essere generato automaticamente quando il componente aggiuntivo Spaces viene installato tramite la AWS SageMaker console, ma i clienti possono crearlo manualmente.

**Politica di fiducia di riferimento**

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "pods.eks.amazonaws.com"
      },
      "Action": [
          "sts:AssumeRole",
          "sts:TagSession"
      ],
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "{{accountId}}",
          "aws:SourceArn": "arn:aws:eks:{{region}}:{{accountId}}:cluster/{{eksClusterName}}"
        }
      }
    }
  ]
}
```

**Politica di autorizzazione di riferimento**

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "KMSDescribeKey",
            "Effect": "Allow",
            "Action": [
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:kms:{{region}}:{{accountId}}:key/{{kmsKeyId}}"
        },
        {
            "Sid": "KMSKeyOperations",
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey",
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:{{region}}:{{accountId}}:key/{{kmsKeyId}}",
            "Condition": {
                "StringEquals": {
                    "kms:EncryptionContext:sagemaker:component": "amazon-sagemaker-spaces",
                    "kms:EncryptionContext:sagemaker:eks-cluster-arn": "${aws:PrincipalTag/eks-cluster-arn}"
                }
            }
        }
    ]
}
```

### 3. Ruolo dell'istanza gestita SSM (richiesto per l'accesso IDE remoto)
<a name="ssm-role"></a>

Il ruolo dell'istanza gestita SSM viene passato al momento della registrazione dell'istanza gestita SSM per abilitare l'accesso IDE remoto. Questo ruolo consente all'agente SSM di registrare il pod come istanza gestita SSM e utilizzare i canali SSM Session Manager per la connettività IDE remota (SSH-over-SSM). Può essere creato automaticamente quando si utilizza la console. AWS SageMaker Per le distribuzioni manuali, i clienti devono creare questo ruolo e fornirlo al componente aggiuntivo Spaces. Il controller pod di per sé non assume questo ruolo, ma lo fornisce solo durante la chiamata. `ssm:CreateActivation`

**Politica di fiducia di riferimento**

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "ssm.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "{{account}}"
                },
                "ArnEquals": {
                    "aws:SourceArn": "arn:aws:ssm:{{region}}:{{account}}:*"
                }
            }
        }
    ]
}
```

**Politica sulle autorizzazioni di riferimento**

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ssm:DescribeAssociation"
      ],
      "Resource": [
        "arn:aws:ssm:{{region}}:{{account}}:association/*",
        "arn:aws:ssm:{{region}}:{{account}}:document/*",
        "arn:aws:ec2:{{region}}:{{account}}:instance/*",
        "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:GetDocument",
        "ssm:DescribeDocument"
      ],
      "Resource": "arn:aws:ssm:{{region}}:{{account}}:document/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:GetParameter",
        "ssm:GetParameters"
      ],
      "Resource": "arn:aws:ssm:{{region}}:{{account}}:parameter/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:ListInstanceAssociations"
      ],
      "Resource": [
        "arn:aws:ec2:{{region}}:{{account}}:instance/*",
        "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:PutComplianceItems"
      ],
      "Resource": [
        "arn:aws:ec2:{{region}}:{{account}}:instance/*",
        "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:UpdateAssociationStatus"
      ],
      "Resource": [
        "arn:aws:ssm:{{region}}:{{account}}:document/*",
        "arn:aws:ec2:{{region}}:{{account}}:instance/*",
        "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:UpdateInstanceAssociationStatus"
      ],
      "Resource": [
        "arn:aws:ssm:{{region}}:{{account}}:association/*",
        "arn:aws:ec2:{{region}}:{{account}}:instance/*",
        "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:UpdateInstanceInformation"
      ],
      "Resource": [
        "arn:aws:ec2:{{region}}:{{account}}:instance/*",
        "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssm:GetDeployablePatchSnapshotForInstance",
        "ssm:GetManifest",
        "ssm:ListAssociations",
        "ssm:PutInventory",
        "ssm:PutConfigurePackageResult"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ssmmessages:CreateControlChannel",
        "ssmmessages:CreateDataChannel",
        "ssmmessages:OpenControlChannel",
        "ssmmessages:OpenDataChannel"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2messages:AcknowledgeMessage",
        "ec2messages:DeleteMessage",
        "ec2messages:FailMessage",
        "ec2messages:GetEndpoint"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ec2messages:GetMessages",
        "ec2messages:SendReply"
      ],
      "Resource": "*",
      "Condition": {
        "ArnLike": {
          "ssm:SourceInstanceARN": "arn:aws:ssm:{{region}}:{{account}}:managed-instance/*"
        }
      }
    }
  ]
}
```

### 4. Componente aggiuntivo IAM Role for EBS CSI Driver
<a name="role-ebs-csi"></a>

Il ruolo IAM per il driver CSI EBS è necessario perché il driver CSI EBS fornisce volumi persistenti per i carichi di lavoro di Spaces. Sebbene la [Amazon EBSCSIDriver Policy AWS](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEBSCSIDriverPolicy.html) gestita fornisca autorizzazioni di base, SageMaker HyperPod i cluster richiedono [funzionalità aggiuntive](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-ebs.html#sagemaker-hyperpod-eks-ebs-setup) come la creazione di ripristini rapidi di snapshot, l'etichettatura dei volumi di proprietà del cluster e dei volumi per i nodi gestiti. attaching/detaching HyperPod Queste SageMaker APIs `sagemaker:AttachClusterNodeVolume` autorizzazioni includono anche autorizzazioni specifiche come. **Se il driver EBS CSI non è installato, questo ruolo verrà ora creato automaticamente dalla SageMaker Console durante l'installazione del componente aggiuntivo Spaces, senza richiedere alcuna azione da parte del cliente.**

### 5. Componente aggiuntivo IAM Role for External DNS
<a name="role-external-nds"></a>

Il componente aggiuntivo DNS esterno gestisce i record DNS per le risorse Services e Ingress sul cluster. HyperPod Garantisce che agli endpoint Space e ai componenti del cluster possano essere assegnati automaticamente nomi DNS nelle zone ospitate Route 53 del cliente. Oggi, i clienti spesso installano il DNS esterno manualmente tramite un'opzione con 1 clic nella console EKS. Come parte del miglioramento dell'esperienza di SageMaker Spaces, questo ruolo verrà ora creato automaticamente dalla SageMaker console durante l'installazione del componente aggiuntivo Spaces, **senza richiedere alcuna** azione da parte del cliente.

## Configurazione delle autorizzazioni per AWS Toolkit to Access Spaces SageMaker
<a name="permission-for-toolkitl"></a>

Per consentire al pannello laterale di esplorazione delle risorse di AWS VS Code Toolkit di rilevare e connettersi a SageMaker Spaces, sono necessarie le seguenti autorizzazioni IAM. Queste autorizzazioni consentono al Toolkit di elencare SageMaker HyperPod i cluster disponibili, recuperare i dettagli del cluster e ottenere un token di connessione per il cluster Amazon EKS associato.

**Policy IAM richiesta**

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SageMakerListClusters",
            "Effect": "Allow",
            "Action": "sagemaker:ListClusters",
            "Resource": "*"
        },
        {
            "Sid": "SageMakerDescribeCluster",
            "Effect": "Allow",
            "Action": "sagemaker:DescribeCluster",
            "Resource": "arn:aws:sagemaker:{{region}}:{{account}}:cluster/cluster-name"
        },
        {
            "Sid": "EksDescribeCluster",
            "Effect": "Allow",
            "Action": "eks:DescribeCluster",
            "Resource": "arn:aws:eks:{{region}}:{{account}}:cluster/cluster-name"
        },
        {
            "Sid": "EksGetToken",
            "Effect": "Allow",
            "Action": "eks:GetToken",
            "Resource": "*"
        }
    ]
}
```

**Raccomandazioni per l'ambito**
+ Sostituisci il nome del cluster con i SageMaker HyperPod cluster specifici a cui gli utenti devono accedere.
+ L'GetToken azione eks: attualmente non supporta le restrizioni a livello di risorsa e deve utilizzare Resource: «\$1». Questa è una limitazione del servizio. AWS L'autenticazione lato client viene eseguita tramite le [voci di accesso EKS](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html).

# Installa il componente aggiuntivo SageMaker AI Spaces
<a name="operator-install"></a>

## Dipendenze
<a name="dependencies"></a>

**Componente aggiuntivo Amazon EKS Pod Identity Agent**
+ Richiesto all'operatore per ottenere AWS le credenziali
+ **In genere preinstallato** sulla maggior parte dei cluster EKS
+ Installazione: tramite componenti aggiuntivi EKS

**CERT-manager**
+ Necessario per la gestione dei certificati TLS
+ **Preinstallato** se si utilizza la creazione HyperPod rapida del cluster
+ Installazione: tramite componenti aggiuntivi EKS

**Driver CSI EBS**
+ Necessario per lo storage persistente Space (volumi EBS)
+ **Installato automaticamente** quando si utilizza la SageMaker console per l'installazione
+ Richiede un ruolo IAM con `AmazonEBSCSIDriverPolicy` HyperPod autorizzazioni specifiche per \$1
+ Installazione: tramite componenti aggiuntivi EKS. Tuttavia, assicurati di seguire la guida per installare le autorizzazioni aggiuntive necessarie per. HyperPod 
+ Riferimento: [utilizzo del driver CSI Amazon EBS](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-ebs.html) su HyperPod

## Dipendenze aggiuntive per WebUI Access
<a name="-additional-dependencies"></a>

**AWS Controller Load Balancer**
+ **Preinstallato** se si utilizza la creazione HyperPod rapida del cluster
+ Installazione: Via Helm
+ Guida all'installazione manuale: [installazione del AWS Load Balancer Controller](https://docs.aws.amazon.com/eks/latest/userguide/lbc-helm.html)

**DNS esterno**
+ Richiesto quando si utilizza un dominio personalizzato per l'accesso WebUI
+ Gestisce automaticamente i record DNS di Route53
+ Richiede un ruolo IAM con autorizzazioni Route53
+ Installazione: tramite componenti aggiuntivi EKS

## Installazione
<a name="installation"></a>

Prima di iniziare, assicurati di avere:
+ Un SageMaker HyperPod cluster attivo con almeno un nodo di lavoro che esegue Kubernetes versione 1.30 o successiva
+ Almeno un nodo di lavoro con tipo minimo di istanza (XX vCPU, memoria YY GiB)

### Installazione del componente aggiuntivo Amazon SageMaker Spaces
<a name="space-add-on"></a>

Puoi installare il componente aggiuntivo SageMaker Spaces utilizzando l'installazione rapida per le impostazioni predefinite o l'installazione personalizzata per la configurazione avanzata.

#### Installazione rapida
<a name="quick-install"></a>

1. Apri la SageMaker console Amazon all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Scegli il tuo cluster dall'elenco dei cluster.

1. Nella scheda IDE e notebook, individua Amazon SageMaker Spaces, quindi scegli Installazione rapida.

Installazione rapida automatica:
+ Crea i ruoli IAM richiesti per il componente aggiuntivo
+ Abilita la modalità di accesso remoto con i ruoli IAM richiesti per Systems Manager
+ Installa il componente aggiuntivo e configura l'associazione delle identità dei pod

#### Installazione personalizzata
<a name="custom-install"></a>

1. Apri la SageMaker console Amazon all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Scegli il tuo cluster dall'elenco dei cluster.

1. Nella scheda IDE e notebook, individua Amazon SageMaker Spaces, quindi scegli Installazione personalizzata.

1. Configura le opzioni seguenti:

   **Ruoli IAM necessari per il componente aggiuntivo**
   + Scegli se creare nuovi ruoli IAM con le autorizzazioni consigliate o utilizzare quelli esistenti con le autorizzazioni richieste (consulta la sezione sulla configurazione delle autorizzazioni degli amministratori sopra riportata)

   **Configurazione dell'accesso remoto**
   + Abilita per consentire agli utenti di connettersi agli spazi dal codice di Visual Studio locale utilizzando AWS Systems Manager
   + Per il ruolo dell'istanza gestita SSM:
     + **Crea nuovo ruolo**: il componente aggiuntivo crea e gestisce il ruolo con le autorizzazioni di Systems Manager richieste
     + **Usa il ruolo esistente**: seleziona un ruolo preconfigurato con le autorizzazioni necessarie di Systems Manager
   + Assicurati che il ruolo di esecuzione del componente aggiuntivo di Spaces disponga PassRole delle autorizzazioni per il ruolo dell'istanza gestita SSM
**Nota**  
L'abilitazione dell'accesso remoto attiva il livello Advanced Instances di AWS Systems Manager per costi aggiuntivi per istanza. Per informazioni sui prezzi, consulta la pagina dei prezzi di Systems Manager.

   **Configurazione dell'accesso tramite browser Web**
   + Abilita per consentire agli utenti di accedere agli spazi tramite un browser Web utilizzando i certificati DNS e SSL Route 53
   + **Prerequisiti:** installare AWS Load Balancer Controller prima di abilitare l'accesso al browser
   + **Zona ospitata Route 53:** seleziona una zona ospitata esistente per un dominio o sottodominio di tua proprietà. Il dominio o il sottodominio deve essere registrato e sotto il tuo controllo per abilitare la gestione DNS e la convalida del certificato SSL.

     Per maggiori dettagli sulla registrazione del dominio, consulta [Registrazione di un nuovo dominio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html#domain-register-procedure-section) nella Route 53 Developer Guide.
   + **Sottodominio:** inserisci il prefisso del sottodominio (solo caratteri alfanumerici e trattini, massimo 63 caratteri)
   + Certificato **SSL: seleziona un certificato** SSL esistente da AWS Certificate Manager. Il certificato deve essere valido e coprire sia il sottodominio (ad esempio, subdomain.domain.com) che i sottodomini wildcard (ad es. \$1.subdomain.domain.com) per supportare l'accesso individuale allo spazio. URLs
   +  **Chiave** di AWS firma con token: seleziona una chiave asimmetrica KMS per la firma con token JWT. La chiave viene utilizzata per crittografare i token di autenticazione per un accesso sicuro al WebUI. Puoi creare una nuova chiave asimmetrica in KMS o selezionarne una esistente a cui il tuo account ha accesso.
**Nota**  
Per le zone ospitate e le query DNS si applicano le tariffe standard della Route 53. Per informazioni sui prezzi, consulta i prezzi di Route 53.

#### Installazione del componente aggiuntivo EKS - Jupyter K8s con WebUI
<a name="webui-install"></a>

##### File di configurazione
<a name="configure-file"></a>

Crea: `addon-config.yaml`

```
jupyter-k8s:
  workspacePodWatching:
    enable: true

jupyter-k8s-aws-hyperpod:
  clusterWebUI:
    enabled: true
    domain: "<DOMAIN_NAME>"
    awsCertificateArn: "<ACM_CERTIFICATE_ARN>"
    kmsEncryptionContext:
      enabled: true
    traefik:
      shouldInstall: true
    auth:
      kmsKeyId: "<KMS_KEY_ARN>"
```

**Sostituisci i seguenti segnaposto:**
+ <DOMAIN\$1NAME>: Il tuo nome di dominio (ad esempio,) `jupyter.example.com`
+ <ACM\$1CERTIFICATE\$1ARN>: Il tuo certificato ACM ARN (ad es. `arn:aws:acm:us-west-2:111122223333:certificate/12345678-1234-1234-1234-123456789012` 
+ <KMS\$1KEY\$1ARN>: ARN della tua chiave KMS (ad es. `arn:aws:kms:us-west-2:111122223333:key/12345678-1234-1234-1234-123456789012`

##### Installazione tramite AWS CLI
<a name="install-via-cli"></a>

```
aws eks create-addon \
  --cluster-name <CLUSTER_NAME> \
  --addon-name amazon-sagemaker-spaces \
  --configuration-values file://addon-config.yaml \
  --resolve-conflicts OVERWRITE \
  --region <AWS_REGION>
```

**Per aggiornare l'addon esistente:**

```
aws eks update-addon \
  --cluster-name <CLUSTER_NAME> \
  --addon-name amazon-sagemaker-spaces \
  --configuration-values file://addon-config.yaml \
  --resolve-conflicts OVERWRITE \
  --region <AWS_REGION>
```

##### Installazione tramite Console di gestione AWS
<a name="install-via-console"></a>

1. Vai alla **console EKS** → Seleziona il tuo cluster

1. Fai clic sulla scheda **Componenti aggiuntivi** → **Aggiungi nuovo**

1. Seleziona il componente aggiuntivo **SageMaker Spaces**

1. **Incolla la configurazione YAML riportata sopra nelle Impostazioni di configurazione opzionali**

1. Fai clic su **Avanti**, quindi rivedi le impostazioni del componente aggiuntivo

1. **Fai clic su Crea**

##### Verifica l'installazione
<a name="install-verify"></a>

```
# Check addon status
aws eks describe-addon \
  --cluster-name <CLUSTER_NAME> \
  --addon-name amazon-sagemaker-spaces \
  --region <AWS_REGION>
```

##### Personalizzazione degli attributi ALB
<a name="customize-alb"></a>

Per impostazione predefinita, l'addon crea un sistema di bilanciamento del carico pubblico da utilizzare con l'interfaccia utente Web. È possibile personalizzare gli attributi del bilanciamento del carico utilizzando le proprietà del componente aggiuntivo EKS.

Per creare un ALB interno, imposta lo schema su: `internal`

```
jupyter-k8s-aws-hyperpod:
  clusterWebUI:
    enabled: true
    domain: "<DOMAIN_NAME>"
    awsCertificateArn: "<ACM_CERTIFICATE_ARN>"
    alb:
      scheme: "internal"  # Default is "internet-facing"
```

Puoi anche usare il `alb.annotations` campo per personalizzare le impostazioni ALB:

```
jupyter-k8s-aws-hyperpod:
  clusterWebUI:
    enabled: true
    domain: "<DOMAIN_NAME>"
    awsCertificateArn: "<ACM_CERTIFICATE_ARN>"
    alb:
      scheme: "internal"
      annotations:
        alb.ingress.kubernetes.io/security-groups: "<SECURITY_GROUP_ID>"
        alb.ingress.kubernetes.io/subnets: "<SUBNET_ID_1>,<SUBNET_ID_2>"
        alb.ingress.kubernetes.io/load-balancer-attributes: "idle_timeout.timeout_seconds=60"
```

**Annotazioni ALB comuni:**
+ `alb.ingress.kubernetes.io/security-groups`: Specificare i gruppi di sicurezza per l'ALB
+ `alb.ingress.kubernetes.io/subnets`: Specificare le sottoreti per l'ALB
+ `alb.ingress.kubernetes.io/load-balancer-attributes`: imposta gli attributi ALB (timeout di inattività, registri di accesso, ecc.)

Consulta la [documentazione del AWS Load Balancer Controller per tutte le annotazioni](https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/guide/ingress/annotations/) disponibili.

### Aggiornamento/versionamento del componente aggiuntivo
<a name="upgrade-add-on"></a>

```
aws eks update-addon \
  --cluster-name <CLUSTER_NAME> \
  --addon-name amazon-sagemaker-spaces \
  --configuration-values file://addon-config.yaml \
  --resolve-conflicts OVERWRITE \
  --region <AWS_REGION>
```

# Personalizza il componente aggiuntivo
<a name="customization"></a>

## Modello
<a name="customization-template"></a>

I modelli sono configurazioni di aree di lavoro riutilizzabili che fungono da modelli controllati dall'amministratore per la creazione di aree di lavoro. Forniscono impostazioni predefinite per i valori di configurazione dell'area di lavoro e protezioni per controllare cosa possono fare i data scientist. I modelli esistono a livello di cluster e possono essere riutilizzati in tutti i namespace. 

SageMaker Spaces crea due modelli di sistema come punto di partenza per i data scientist, uno per Code Editor e uno per. JupyterLab Questi modelli di sistema sono gestiti dall'addon e non possono essere modificati direttamente. Gli amministratori possono invece creare nuovi modelli e impostarli come predefiniti.

## Governance delle attività
<a name="customization-governabce"></a>

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: WorkspaceTemplate
metadata:
  name: my-jupyter-template
  namespace: my-namespace
  labels:
    kueue.x-k8s.io/priority-class: <user-input>-priority
spec:
  displayName: "My Custom Jupyter Lab"
  description: "Custom Jupyter Lab with specific configurations"
  defaultImage: "public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu"
  allowedImages:
    - "public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu"
    - "public.ecr.aws/sagemaker/sagemaker-distribution:latest-gpu"
  defaultResources:
    requests:
      cpu: "1"
      memory: "4Gi"
    limits:
      cpu: "4"
      memory: "16Gi"
  primaryStorage:
    defaultSize: "10Gi"
    minSize: "5Gi"
    maxSize: "50Gi"
    defaultStorageClassName: "sagemaker-spaces-default-storage-class"
    defaultMountPath: "/home/sagemaker-user"
  defaultContainerConfig:
    command: ["/opt/amazon/sagemaker/workspace/bin/entrypoint-workspace-jupyterlab"]
  defaultPodSecurityContext:
    fsGroup: 1000
  defaultOwnershipType: "Public"
  defaultAccessStrategy:
    name: "hyperpod-access-strategy"
  allowSecondaryStorages: true
  appType: "jupyterlab"
```

## SMD/Immagini personalizzate
<a name="customization-image"></a>

I clienti possono configurare le politiche relative alle immagini tramite modelli fornendo un'immagine predefinita e un elenco di immagini consentite. Inoltre, gli amministratori possono scegliere se consentire ai data scientist di portare le proprie immagini personalizzate. Per impostazione predefinita, il sistema utilizza la SageMaker distribuzione più recente, ma se desideri aggiungere una versione specifica, puoi specificare l'esatta versione SMD da utilizzare in un modello.

Requisiti per immagini personalizzate:
+ `curl`se si desidera utilizzare lo spegnimento inattivo
+ porta 8888
+ accesso remoto

## Requisito IDE remoto
<a name="remote-ide-requirement"></a>

### Requisito per la versione di VS Code
<a name="remote-ide-requirement-vscode"></a>

È richiesta la versione VS Code [v1.90](https://code.visualstudio.com/updates/v1_90) o successiva. Consigliamo di utilizzare l’[ultima versione stabile di VS Code](https://code.visualstudio.com/updates).

### Requisiti del sistema operativo
<a name="remote-ide-requirement-operate"></a>

Per connetterti in remoto agli spazi di Studio, devi disporre di uno dei seguenti sistemi operativi:
+ macOS 13\$1
+ Windows 10
  + [Il supporto per Windows 10 termina il 14 ottobre 2025](https://support.microsoft.com/en-us/windows/windows-10-support-ends-on-october-14-2025-2ca8b313-1946-43d3-b55c-2b95b107f281)
+ Windows 11
+ Linux
+ Installa il [Microsoft VS Code ufficiale per Linux](https://code.visualstudio.com/docs/setup/linux)
  + non è una versione open source

### Prerequisiti del computer locale
<a name="remote-ide-requirement-machine"></a>

Prima di connettere il codice di Visual Studio locale agli spazi di Studio, assicurati che il computer locale disponga delle dipendenze e dell'accesso alla rete richiesti.

**Nota**  
Gli ambienti con restrizioni all'installazione del software possono impedire agli utenti di installare le dipendenze richieste. Il AWS Toolkit for Visual Studio Code cerca automaticamente queste dipendenze all'avvio delle connessioni remote e richiederà l'installazione se ne mancano alcune. Coordinatevi con il vostro reparto IT per garantire la disponibilità di questi componenti.

**Dipendenze locali richieste**

Sul computer locale devono essere installati i seguenti componenti:
+ **[https://code.visualstudio.com/docs/remote/ssh](https://code.visualstudio.com/docs/remote/ssh)**
+ — Estensione standard di VS Code Marketplace per lo sviluppo remoto
+ **[Plugin Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html)**: necessario per la gestione sicura delle sessioni
+ **Client SSH**: componente standard sulla maggior parte delle macchine ([OpenSSH consigliato](https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse) per Windows)
+ **[https://code.visualstudio.com/docs/configure/command-line](https://code.visualstudio.com/docs/configure/command-line)**
+  In genere incluso nell'installazione di VS Code

**Requisiti specifici della piattaforma**
+ **Utenti Windows**: per le connessioni ai terminali SSH è richiesta la versione PowerShell 5.1 o successiva

**Requisiti per la connettività**

Il computer locale deve avere accesso di rete agli [endpoint di Session Manager](https://docs.aws.amazon.com/general/latest/gr/ssm.html). Ad esempio, negli Stati Uniti orientali (Virginia settentrionale) (us-east-1) questi possono essere:
+ `[ssm.us-east-1.amazonaws.com](http://ssm.us-east-1.amazonaws.com)`
+ `ssm.us-east-1.api.aws`
+ `[ssmmessages.us-east-1.amazonaws.com](http://ssmmessages.us-east-1.amazonaws.com)`
+ `[ec2messages.us-east-1.amazonaws.com](http://ec2messages.us-east-1.amazonaws.com)`

### Requisiti delle immagini
<a name="remote-ide-requirement-image"></a>

**SageMaker Immagini di distribuzione**

Quando si utilizza SageMaker Distribution con accesso remoto, utilizzare [SageMaker Distribution](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-distribution.html) versione 2.7 o successiva.

**Immagini personalizzate**

Quando utilizzi [Bring your own image (BYOI)](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-byoi.html) con accesso remoto, assicurati di seguire le [specifiche personalizzate dell'immagine](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-byoi-specs.html) e assicurati che siano installate le seguenti dipendenze:
+ `curl`o `wget` — Necessario per scaricare i componenti AWS CLI 
+ `unzip`— Necessario per estrarre i file AWS CLI di installazione
+ `tar`— Necessario per l'estrazione dell'archivio
+ `gzip`— Necessario per la gestione di file compressi

### Requisiti per l’istanza
<a name="remote-ide-requirement-instance"></a>
+ **Memoria**: almeno 8 GB
+ Utilizza istanze con almeno 8 GB di memoria. I seguenti tipi di istanze *non* sono supportati a causa della memoria insufficiente (meno di 8 GB): `ml.t3.medium`, `ml.c7i.large`, `ml.c6i.large`, `ml.c6id.large` e `ml.c5.large`. Per un elenco più completo dei tipi di istanze, consulta la pagina dei [prezzi on demand di Amazon EC2](https://aws.amazon.com/ec2/pricing/on-demand/)

## Ottimizzazione del tempo di avvio di Kubernetes preriscaldando le immagini dei container
<a name="remote-ide-optimize-image"></a>

Le prestazioni di acquisizione delle immagini dei container sono diventate un ostacolo significativo per molti clienti EKS, soprattutto perché i carichi di lavoro si basano su immagini di container sempre più AI/ML grandi. L'estrazione e il disimballaggio di queste immagini di grandi dimensioni richiedono in genere diversi minuti la prima volta che vengono utilizzate su ciascun nodo EKS. Questo ritardo aggiunge una notevole latenza all'avvio di SageMaker Spaces e influisce direttamente sull'esperienza utente, in particolare in ambienti in cui l'avvio rapido è essenziale, come notebook e processi di sviluppo interattivi. 

Il preriscaldamento delle immagini è una tecnica utilizzata per precaricare immagini di container specifiche su ogni nodo del cluster prima che siano necessarie. EKS/HyperPod Invece di aspettare che un pod attivi la prima estrazione di un'immagine di grandi dimensioni, il cluster scarica e memorizza in modo proattivo le immagini su tutti i nodi. Ciò garantisce che all'avvio dei carichi di lavoro, le immagini richieste siano già disponibili localmente, eliminando i lunghi ritardi di avvio a freddo. Il preriscaldamento delle immagini migliora la velocità di avvio di SageMaker Spaces e offre un'esperienza più prevedibile e reattiva per gli utenti finali.

### Preriscaldamento tramite DaemonSet
<a name="remote-ide-optimize-image-dae"></a>

Si consiglia di utilizzare un DaemonSet per precaricare le immagini. A DaemonSet garantisce che un pod venga eseguito su ogni nodo del cluster. Ogni contenitore all'interno del DaemonSet pod fa riferimento a un'immagine che si desidera memorizzare nella cache. Quando Kubernetes avvia il pod, estrae automaticamente le immagini, riscaldando la cache su ogni nodo.

L'esempio seguente mostra come creare un file DaemonSet che precarica due immagini GPU. Ogni contenitore esegue un `sleep infinity` comando leggero per mantenere attivo il pod con un sovraccarico minimo.

```
cat <<EOF | kubectl apply -n "namespace_1" -f -
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: image-preload-ds
spec:
  selector:
    matchLabels:
      app: image-preloader
  template:
    metadata:
      labels:
        app: image-preloader
    spec:
      containers:
      - name: preloader-3-4-2
        image: public.ecr.aws/sagemaker/sagemaker-distribution:3.4.2-gpu
        command: ["sleep"]
        args: ["infinity"]
        resources:
          requests:
            cpu: 1m
            memory: 16Mi
          limits:
            cpu: 5m
            memory: 32Mi
      - name: preloader-3-3-2
        image: public.ecr.aws/sagemaker/sagemaker-distribution:3.3.2-gpu
        command: ["sleep"]
        args: ["infinity"]
        resources:
          requests:
            cpu: 1m
            memory: 16Mi
          limits:
            cpu: 5m
            memory: 32Mi
EOF
```

### Come funziona
<a name="remote-ide-optimize-image-how"></a>
+ Ogni contenitore fa riferimento a un'immagine.
+ Kubernetes deve scaricare ogni immagine prima di avviare il contenitore.
+ Una volta che il pod è in esecuzione su ogni nodo, le immagini vengono memorizzate nella cache locale.
+ Qualsiasi carico di lavoro che utilizza queste immagini ora inizia molto più velocemente.

## Space Default Storage (EBS)
<a name="space-storage"></a>

Per impostazione predefinita, il sistema utilizza il driver CSI EBS per eseguire il provisioning dei volumi di storage EBS per ogni area di lavoro. SageMaker crea una classe di archiviazione EBS da utilizzare con le aree di lavoro e gli amministratori possono personalizzare la dimensione predefinita e massima di questi volumi utilizzando le impostazioni del modello. Per gli utenti esperti che lavorano con gli strumenti CLI, puoi anche personalizzare la classe di archiviazione dell'area di lavoro, che consente agli utenti di sfruttare altre classi di archiviazione, inclusa la configurazione di chiavi KMS gestite dal cliente per i propri volumi EBS.

Tieni presente che i volumi EBS sono associati a una particolare AZ, il che significa che le aree di lavoro possono essere pianificate solo su nodi nella stessa AZ del volume di archiviazione. Ciò può portare a errori di pianificazione se la capacità del cluster esiste ma non nella zona di disponibilità corretta.

## Archiviazione aggiuntiva
<a name="space-additional-storage"></a>

SageMaker Spaces supporta il collegamento di volumi di storage aggiuntivi come Amazon EFS, FSx for Lustre o S3 Mountpoint ai tuoi spazi di sviluppo. Ciò ti consente di accedere a set di dati condivisi, collaborare a progetti o utilizzare storage ad alte prestazioni per i tuoi carichi di lavoro.

### Prerequisiti
<a name="space-additional-storage-prereq"></a>

Prima di aggiungere spazio di archiviazione aggiuntivo agli spazi, devi:

1. **Installa il componente aggiuntivo del driver CSI appropriato tramite componenti aggiuntivi** [EKS (](https://docs.aws.amazon.com/eks/latest/userguide/workloads-add-ons-available-eks.html)Amazon EFS CSI Driver, Amazon FSx for Lustre CSI Driver o Mountpoint per Amazon S3 CSI Driver)

1. **Configura le risorse di storage e** segui la documentazione del driver CSI per il tuo tipo di storage PersistentVolumeClaims specifico

1. **Assicurati che il PVC sia disponibile** nello stesso namespace in cui intendi creare il tuo spazio

### Collegamento dello spazio di archiviazione agli spazi
<a name="space-additional-storage-attach"></a>

Una volta PersistentVolumeClaim configurato, puoi collegarlo a uno spazio usando la HyperPod CLI o kubectl.

**HyperPod CLI**

```
hyp create hyp-space \
    --name my-space \
    --display-name "My Space with FSx" \
    --memory 8Gi \
    --volume name=shared-fsx,mountPath=/shared,persistentVolumeClaimName=my-fsx-pvc
```

**kubectl**

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  name: my-space
spec:
  displayName: "My Space with FSx"
  desiredStatus: Running
  volumes:
  - name: shared-fsx
    mountPath: /shared
    persistentVolumeClaimName: my-fsx-pvc
```

### Volumi multipli
<a name="space-additional-storage-multiple"></a>

Puoi collegare più volumi di archiviazione aggiuntivi a un singolo spazio specificando più `--volume` flag con la CLI o più voci nell'array con kubectl. `volumes`

**HyperPod CLI**

```
hyp create hyp-space \
    --name my-space \
    --display-name "My Space with Multiple Storage" \
    --memory 8Gi \
    --volume name=shared-efs,mountPath=/shared,persistentVolumeClaimName=my-efs-pvc \
    --volume name=datasets,mountPath=/datasets,persistentVolumeClaimName=my-s3-pvc
```

**kubectl**

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  name: my-space
spec:
  displayName: "My Space with Multiple Storage"
  desiredStatus: Running
  volumes:
  - name: shared-efs
    mountPath: /shared
    persistentVolumeClaimName: my-efs-pvc
  - name: datasets
    mountPath: /datasets
    persistentVolumeClaimName: my-s3-pvc
```

## Configurazione delle risorse
<a name="space-resource-configuration"></a>

SageMaker Spaces ti consente di configurare le risorse di calcolo per i tuoi ambienti di sviluppo, tra cui CPU, memoria e GPU, per soddisfare i requisiti del carico di lavoro.

### Configurazione della GPU
<a name="space-gpu-configuration"></a>

SageMaker Spaces supporta sia l'allocazione dell'intera GPU che il partizionamento della GPU utilizzando la tecnologia NVIDIA Multi-Instance GPU (MIG). Ciò consente di ottimizzare l'utilizzo della GPU per diversi tipi di carichi di lavoro di machine learning.

#### Allocazione completa della GPU
<a name="space-gpu-whole"></a>

**HyperPod CLI**

```
hyp create hyp-space \
    --name gpu-space \
    --display-name "GPU Development Space" \
    --image public.ecr.aws/sagemaker/sagemaker-distribution:latest-gpu \
    --memory 16Gi \
    --gpu 1 \
    --gpu-limit 1
```

**kubectl**

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  name: gpu-space
spec:
  displayName: "GPU Development Space"
  image: "public.ecr.aws/sagemaker/sagemaker-distribution:latest-gpu"
  desiredStatus: Running
  resources:
    requests:
      memory: "16Gi"
      nvidia.com/gpu: "1"
    limits:
      memory: "16Gi"
      nvidia.com/gpu: "1"
```

#### Partizionamento GPU (MIG)
<a name="space-gpu-mig"></a>

Il partizionamento della GPU con la tecnologia NVIDIA Multi-Instance GPU (MIG) consente di partizionare una singola GPU in istanze più piccole e isolate. Il HyperPod cluster deve avere nodi GPU che supportano MIG e avere profili MIG configurati. Per ulteriori informazioni sulla configurazione MIG sul HyperPod cluster, consulta Partizionamento della [GPU](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-gpu-partitioning-setup.html) con NVIDIA MIG.

**HyperPod CLI**

```
hyp create hyp-space \
    --name mig-space \
    --display-name "MIG GPU Space" \
    --image public.ecr.aws/sagemaker/sagemaker-distribution:latest-gpu \
    --memory 8Gi \
    --accelerator-partition-type mig-3g.20gb \
    --accelerator-partition-count 1
```

**kubectl**

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  name: mig-space
spec:
  displayName: "MIG GPU Space"
  image: "public.ecr.aws/sagemaker/sagemaker-distribution:latest-gpu"
  desiredStatus: Running
  resources:
    requests:
      memory: "8Gi"
      nvidia.com/mig-3g.20gb: "1"
    limits:
      memory: "8Gi"
      nvidia.com/mig-3g.20gb: "1"
```

## Ciclo di vita
<a name="space-lifecycle"></a>

La configurazione del ciclo di vita fornisce script di avvio che vengono eseguiti quando viene creato o avviato uno spazio di lavoro. Questi script consentono agli amministratori di personalizzare l'ambiente dell'area di lavoro durante l'avvio. Si tratta di script bash con una dimensione massima di 1 KB. Se hai bisogno di una configurazione di configurazione più ampia, ti consigliamo di aggiungere uno script all'immagine del contenitore e di attivare lo script dalla configurazione del ciclo di vita.

[Utilizziamo gli hook del ciclo di vita dei container Kubernetes per fornire questa funzionalità https://kubernetes. io/docs/concepts/containers/container-lifecycle-hooks/.](https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/) Tieni presente che Kubernetes non fornisce garanzie su quando lo script di avvio verrà eseguito in relazione al punto di ingresso del contenitore. 

## Spegnimento in modalità inattiva
<a name="space-idle-shutdown"></a>

Configura lo spegnimento automatico delle aree di lavoro inattive per ottimizzare l'utilizzo delle risorse.

### Spegnimento in modalità inattiva
<a name="space-idle-shutdown-spec"></a>

```
idleShutdown:
  enabled: true
  idleShutdownTimeoutMinutes: 30
  detection:
    httpGet:
      path: /api/idle
      port: 8888
      scheme: HTTP
```

### Parameters
<a name="space-idle-shutdown-parameter"></a>

**abilitato** (booleano, obbligatorio): abilita o disabilita lo spegnimento inattivo per l'area di lavoro.

**idleShutdownTimeoutMinuti** (numeri interi, obbligatori): numero di minuti di inattività prima della chiusura dell'area di lavoro. Il valore minimo è 1.

**rilevamento** (oggetto, obbligatorio): definisce come rilevare lo stato di inattività dell'area di lavoro.

**detection.httpGet** (oggetto, opzionale) - Configurazione dell'endpoint HTTP per il rilevamento delle attività inattive. Utilizza la specifica HTTPGet Kubernetes Action.
+ **path: percorso** HTTP da richiedere
+ **port** - Numero o nome della porta
+ **schema** - HTTP o HTTPS (impostazione predefinita: HTTP)

### Posizioni di configurazione
<a name="space-idle-shutdown-configure"></a>

**Configurazione dell'area di lavoro**

Definisci lo spegnimento inattivo direttamente nelle specifiche dell'area di lavoro:

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:

      name: my-workspace
spec:
  displayName: "Development Workspace"
  image:
      jupyter/scipy-notebook:latest
  idleShutdown:
    enabled: true

      idleShutdownTimeoutMinutes: 30
    detection:
      httpGet:
        path:
      /api/idle
        port: 8888
```

**Configurazione del modello**

Definisci il comportamento di spegnimento predefinito in caso di inattività in un: WorkspaceTemplate

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: WorkspaceTemplate
metadata:
  name: jupyter-template
spec:
  displayName: "Jupyter Template"
  defaultImage: jupyter/scipy-notebook:latest
  defaultIdleShutdown:
    enabled: true
    idleShutdownTimeoutMinutes: 30
    detection:
      httpGet:
        path: /api/idle
        port: 8888
  idleShutdownOverrides:
    allow: true
    minTimeoutMinutes: 60
    maxTimeoutMinutes: 240
```

### Ereditarietà e sostituzioni dei modelli
<a name="space-idle-shutdown-inherit"></a>

Le aree di lavoro che utilizzano un modello ereditano automaticamente la configurazione del modello. `defaultIdleShutdown` Le aree di lavoro possono sovrascrivere questa configurazione se il modello lo consente.

**Ignora politica**

I modelli controllano il comportamento di override tramite: `idleShutdownOverrides`

**allow** (boolean, default: true) - Se gli spazi di lavoro possono sovrascrivere la configurazione predefinita di inattività.

**minTimeoutMinutes**(intero, opzionale) - Valore di timeout minimo consentito per le sostituzioni dell'area di lavoro.

**maxTimeoutMinutes**(intero, opzionale): valore di timeout massimo consentito per le sostituzioni dell'area di lavoro.

**Esempio di ereditarietà**

Workspace eredita le impostazioni predefinite del modello:

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  name: my-workspace
spec:
  displayName: "My Workspace"
  templateRef:
    name: jupyter-template
  # Inherits defaultIdleShutdown from template
```

**Esempio di override**

Workspace sostituisce le impostazioni predefinite del modello:

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  name: my-workspace
spec:
  displayName: "My Workspace"
  templateRef:
    name: jupyter-template
  idleShutdown:
    enabled: true
    idleShutdownTimeoutMinutes: 60  # Must be within template bounds
    detection:
      httpGet:
        path: /api/idle
        port: 8888
```

**Configurazione bloccata**

Impedisci le sostituzioni dello spazio di lavoro:

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: WorkspaceTemplate
metadata:
  name: locked-template
spec:
  displayName: "Locked Template"
  defaultImage: jupyter/scipy-notebook:latest
  defaultIdleShutdown:
    enabled: true
    idleShutdownTimeoutMinutes: 30
    detection:
      httpGet:
        path: /api/idle
        port: 8888
  idleShutdownOverrides:
    allow: false  # Workspaces cannot override
```

### Comportamento
<a name="space-idle-shutdown-behavior"></a>

Quando lo spegnimento in stato di inattività è abilitato, il sistema controlla periodicamente l'attività nell'area di lavoro utilizzando l'endpoint HTTP configurato. Se l'endpoint indica che l'area di lavoro è inattiva per la durata del timeout specificata, l'area di lavoro si interrompe automaticamente. È possibile riavviare manualmente l'area di lavoro quando necessario.

## Aggiornamenti dei modelli
<a name="customization-template-updates"></a>

Gli strumenti client come Kubectl o Hyperpod CLI e SDK possono essere utilizzati per gestire gli spazi all'interno del cluster EKS. Gli amministratori possono fornire modelli di spazio per le configurazioni Space predefinite, mentre i data scientist possono personalizzare i propri ambienti di sviluppo integrati senza dover comprendere la complessità sottostante di Kubernetes. Per istruzioni dettagliate sull'uso, consulta la documentazione della CLI e dell'SDK all'indirizzo. [https://sagemaker-hyperpod-cli.readthedocs.io/en/latest/index.html](https://sagemaker-hyperpod-cli.readthedocs.io/en/latest/index.html)

Gli amministratori possono eseguire operazioni CRUD sui modelli di spazio, che fungono da configurazioni di base per la creazione di uno spazio. I data scientist possono eseguire operazioni CRUD su Spaces e sovrascrivere vari parametri, inclusi i profili GPU multiistanza per nodi di calcolo specifici. Possono avviare, arrestare e connettersi a Spaces tramite VSCode accesso remoto e interfaccia utente Web. Quando un modello di spazio viene aggiornato, qualsiasi spazio creato successivamente verrà configurato con le impostazioni del modello aggiornato. I controlli di conformità verranno eseguiti quando gli spazi esistenti vengono aggiornati o avviati. Se alcune impostazioni superano i limiti o non corrispondono, gli spazi non verranno aggiornati o avviati.

## Usare hyp cli e kubectl
<a name="customization-hyp-cli"></a>

L'utente può eseguire CRUD sui modelli con la CLI Hyperpod

```
### 1. Create a Space Template
hyp create hyp-space-template --file template.yaml

### 2. List Space Templates
hyp list hyp-space-template
hyp list hyp-space-template --output json

### 3. Describe a Space Template
hyp describe hyp-space-template --name my-template
hyp describe hyp-space-template --name my-template --output json

### 4. Update a Space Template
hyp update hyp-space-template --name my-template --file updated-template.yaml

### 5. Delete a Space Template
hyp delete hyp-space-template --name my-template
```

Per creare modelli personalizzati, puoi utilizzare i nostri modelli di sistema come punto di partenza. Questo modello funzionerà per immagini simili a SMD, tuttavia può essere personalizzato in base alle immagini utilizzate dagli amministratori.

Esempio di modello personalizzato: JupyterLab 

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: WorkspaceTemplate
metadata:
  name: my-jupyter-template
  namespace: my-namespace
spec:
  displayName: "My Custom Jupyter Lab"
  description: "Custom Jupyter Lab with specific configurations"
  defaultImage: "public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu"
  allowedImages:
    - "public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu"
    - "public.ecr.aws/sagemaker/sagemaker-distribution:latest-gpu"
  defaultResources:
    requests:
      cpu: "1"
      memory: "4Gi"
    limits:
      cpu: "4"
      memory: "16Gi"
  primaryStorage:
    defaultSize: "10Gi"
    minSize: "5Gi"
    maxSize: "50Gi"
    defaultStorageClassName: "sagemaker-spaces-default-storage-class"
    defaultMountPath: "/home/sagemaker-user"
  defaultContainerConfig:
    command: ["/opt/amazon/sagemaker/workspace/bin/entrypoint-workspace-jupyterlab"]
  defaultPodSecurityContext:
    fsGroup: 1000
  defaultOwnershipType: "Public"
  defaultAccessStrategy:
    name: "hyperpod-access-strategy"
  allowSecondaryStorages: true
  appType: "jupyterlab"
```

Esempio di modello di Code Editor personalizzato:

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: WorkspaceTemplate
metadata:
  name: my-code-editor-template
  namespace: my-namespace
spec:
  displayName: "My Custom Code Editor"
  description: "Custom Code Editor with specific configurations"
  defaultImage: "public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu"
  allowedImages:
    - "public.ecr.aws/sagemaker/sagemaker-distribution:latest-cpu"
    - "public.ecr.aws/sagemaker/sagemaker-distribution:latest-gpu"
  defaultResources:
    requests:
      cpu: "1"
      memory: "4Gi"
    limits:
      cpu: "4"
      memory: "16Gi"
  primaryStorage:
    defaultSize: "10Gi"
    minSize: "5Gi"
    maxSize: "50Gi"
    defaultStorageClassName: "sagemaker-spaces-default-storage-class"
    defaultMountPath: "/home/sagemaker-user"
  defaultContainerConfig:
    command: ["/opt/amazon/sagemaker/workspace/bin/entrypoint-workspace-code-editor"]
  defaultPodSecurityContext:
    fsGroup: 1000
  defaultOwnershipType: "Public"
  defaultAccessStrategy:
    name: "hyperpod-access-strategy"
  allowSecondaryStorages: true
  appType: "code-editor"
```

# Aggiungere utenti e configurare account di servizio
<a name="add-user"></a>

## Controllo granulare degli accessi: la nostra raccomandazione
<a name="add-user-access-control"></a>

Gli utenti vengono differenziati in base al nome utente Kubernetes. Il nome utente Kubernetes dell'utente è definito nella relativa voce di accesso. Per garantire che due utenti umani abbiano nomi utente distinti, sono disponibili due opzioni:

1. Consigliato: più utenti umani possono utilizzare lo stesso ruolo purché ognuno abbia il proprio nome di sessione distinto che persisterà tra le sessioni. Per impostazione predefinita, i nomi utente Kubernetes per i ruoli IAM sono nel formato. `arn:aws:sts::{ACCOUNT_ID}:assumed-role/{ROLE_NAME}/{SESSION_NAME}` Con questa impostazione predefinita, gli utenti saranno già differenziati in base al nome della sessione. Un amministratore dispone di alcuni modi per imporre nomi di sessione univoci per utente.
   + Accesso SSO: per impostazione predefinita, gli utenti che utilizzano l'accesso SSO avranno un nome di sessione associato al proprio nome utente AWS 
   + Servizio centralizzato di vendita di credenziali: i clienti aziendali possono disporre di un servizio interno di vendita di credenziali che gli utenti possono chiamare per ottenere credenziali con la propria identità. 
   + Applicazione basata sui ruoli: richiedi agli utenti IAM di impostare il proprio `aws:username` nome di sessione di ruolo quando assumono un ruolo IAM nella tua azienda. Account AWS La documentazione su come eseguire questa operazione è disponibile qui: [https://aws.amazon.com/blogs/security/ -/easily-control-naming-individualiam-role-sessions](https://aws.amazon.com/blogs/security/easily-control-naming-individual-iam-role-sessions/)

1. Se 2 Data Scientist utilizzano voci di accesso diverse (ruolo o utente IAM diverso), verranno sempre conteggiati come utenti diversi.

**Creazione di una voce di accesso**

Policy IAM richiesta per il ruolo di data scientist:
+ `eks:DescribeCluster`

Politiche di accesso richieste
+ `AmazonSagemakerHyperpodSpacePolicy`- con ambito limitato allo spazio dei nomi, DS dovrebbe creare spazi in
+ `AmazonSagemakerHyperpodSpaceTemplatePolicy`- limitato allo spazio dei nomi «jupyter-k8s-shared»

## Spazi privati e pubblici
<a name="add-user-spaces"></a>

Supportiamo 2 tipi di modelli di condivisione: «Pubblico» e «OwnerOnly». Entrambi i campi «AccessType» e «OwnershipType» utilizzano questi 2 valori.
+ AccessType: Gli spazi pubblici sono accessibili da chiunque disponga delle autorizzazioni nel namespace, mentre sono OwnerOnly accessibili solo dal creatore dello spazio e dagli utenti amministratori. Gli utenti amministratori sono definiti con i seguenti criteri:
+ OwnershipType: Gli spazi pubblici possono modified/deleted appartenere a chiunque disponga delle autorizzazioni nel namespace, OwnerOnly dal creatore o modified/deleted dall'amministratore.

Gli utenti amministratori sono definiti da:

1. Parte del gruppo `system:masters` Kubernetes

1. Parte del gruppo Kubernetes definito nella variabile di ambiente CLUSTER\$1ADMIN\$1GROUP nel grafico helm.

I gruppi di un utente possono essere configurati utilizzando le voci di accesso EKS. Uno spazio può essere definito come «Pubblico» o «OwnerOnly» configurando le specifiche nell'oggetto:

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  labels:
    app.kubernetes.io/name: jupyter-k8s
  name: example-workspace
spec:
  displayName: "Example Workspace"
  image: "public.ecr.aws/sagemaker/sagemaker-distribution:3.4.2-cpu"
  desiredStatus: "Running"
  ownershipType: "Public"/"OwnerOnly"
  accessType: "Public"/"OwnerOnly"
  # more fields here
```

# Limits
<a name="ds-limits"></a>

Gli spazi vengono eseguiti come pod sui nodi HyperPod EKS con volumi EBS collegati. Il numero di Spaces che possono essere implementati per nodo è limitato dai limiti dell'infrastruttura. AWS 

**Limiti di volume EBS per nodo**

[Riferimento: \$1limits.html https://docs.aws.amazon.com/AWSEC2/ latest/UserGuide/volume](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/volume_limits.html)

I nodi EC2 hanno un numero massimo di volumi EBS che possono essere collegati. Poiché ogni Space utilizza in genere un volume EBS, ciò limita il numero di Spaces con storage EBS dedicato che possono essere eseguiti su un singolo nodo.

**Numero massimo di pod per nodo HyperPod **

Riferimento: [https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker- .html hyperpod-eks-prerequisites](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)

Ogni tipo di HyperPod istanza supporta un numero massimo di pod in base agli indirizzi IP disponibili dal plug-in VPC CNI. Poiché ogni Space funziona come un pod, questo limita direttamente il numero di spazi per nodo.

**Impatto**

Il limite effettivo per Spaces per nodo è il vincolo raggiunto per primo. 

# Gestione delle attività per Interactive Spaces su HyperPod
<a name="task-governance"></a>

Questa sezione spiega come ottimizzare i cluster Amazon SageMaker HyperPod EKS condivisi per i carichi di lavoro Interactive Spaces. Imparerai a configurare le funzionalità di governance delle attività di Kueue, tra cui la gestione delle quote, la pianificazione delle priorità e le politiche di condivisione delle risorse, per garantire che i carichi di lavoro di sviluppo funzionino senza interruzioni, mantenendo al contempo un'equa allocazione tra le attività di formazione, valutazione ed elaborazione in batch dei tuoi team.

## Come funziona la gestione interattiva dello spazio
<a name="task-governance-how"></a>

Per gestire efficacemente gli spazi interattivi in cluster HyperPod EKS condivisi, implementa le seguenti strategie di governance delle attività utilizzando le funzionalità esistenti di Kueue.

**Configurazione della classe di priorità**

Definisci classi prioritarie dedicate per gli spazi interattivi con pesi elevati (ad esempio 100) per garantire che i pod di sviluppo siano ammessi e programmati prima di altri tipi di attività. Questa configurazione consente a Interactive Spaces di anticipare i lavori con priorità inferiore durante il caricamento del cluster, il che è fondamentale per mantenere flussi di lavoro di sviluppo ininterrotti.

**Dimensionamento e allocazione delle quote**

Riserva al tuo team risorse di elaborazione sufficienti per gestire i carichi di lavoro di sviluppo previsti. ClusterQueue Nei periodi in cui le risorse di sviluppo sono inattive, le quote di risorse inutilizzate possono essere temporaneamente assegnate alle attività di altri team. Quando la domanda di sviluppo aumenta, queste risorse prese in prestito possono essere recuperate per dare priorità ai pod Interactive Space in sospeso.

**Strategie di condivisione delle risorse**

Scegli tra due approcci di condivisione delle quote in base alle tue esigenze:

*Controllo rigoroso delle risorse*: disabilita il prestito e il prestito di quote per garantire che la capacità di elaborazione riservata sia sempre disponibile per i tuoi spazi interattivi. Questo approccio richiede il dimensionamento di quote sufficientemente ampie da gestire in modo indipendente i picchi di domanda di sviluppo e può comportare l'inattività dei nodi durante i periodi di utilizzo limitato.

*Condivisione flessibile delle risorse*: abilita il prestito tramite quote per consentire ad altri team di utilizzare risorse di sviluppo inattive quando necessario. Tuttavia, disabilita il prestito per garantire che gli Interactive Spaces non funzionino mai con risorse recuperabili e prese in prestito che potrebbero portare a sfratti imprevisti.

**Prelazione all’interno del team**

Abilita la priorità all'interno del team quando esegui carichi di lavoro misti (formazione, valutazione e spazi interattivi) nell'ambito della stessa quota. Ciò consente a Kueue di anticipare i lavori con priorità più bassa all'interno del team per ospitare i pod Interactive Space ad alta priorità, garantendo che il lavoro di sviluppo possa procedere senza dipendere da quote esterne in prestito.

## Esempio di configurazione di Interactive Space
<a name="task-governance-space-setup"></a>

L'esempio seguente mostra come Kueue gestisce le risorse di calcolo per Interactive Spaces in un cluster Amazon condiviso. SageMaker HyperPod 

**Configurazione del cluster e impostazione delle politiche**

Il tuo cluster ha la configurazione seguente:
+ *Team Alpha (Dev Team)*: quota di 8 CPU per Interactive Spaces
+ *Team Beta (ML Team)*: quota di 16 CPU per la formazione e la valutazione
+ *Team Gamma (Research)*: quota di 6 CPU per la sperimentazione
+ *Provisioning statico*: nessun dimensionamento automatico
+ *Capacità totale*: 30 CPUs

Il pool di CPU condiviso utilizza questa politica di priorità:
+ *Spazi interattivi*: priorità 100
+ *Addestramento*: priorità 75
+ *Valutazione*: priorità 50
+ *Elaborazione in batch*: Priorità 25

Kueue impone le quote e le classi di priorità del team, con la priorità abilitata e il prestito disabilitato per il team di sviluppo.

**Stato iniziale: utilizzo normale del cluster**

Durante il normale funzionamento:
+ *Team Alpha*: gestisce 6 spazi interattivi utilizzando 6 CPUs, 2 CPUs inattivi
+ *Team Beta*: esegue lavori di formazione (12 CPUs) e valutazione (4 CPUs) entro la sua quota di 16 CPU
+ *Team Gamma*: esegue carichi di lavoro di ricerca su tutti e 6 CPUs
+ *Condivisione delle risorse*: il Team Beta prende in prestito l'idle CPUs 2 del Team Alpha per una formazione aggiuntiva

**Picco di sviluppo: il Team Alpha richiede risorse aggiuntive**

Quando gli sviluppatori di Team Alpha devono ampliare il lavoro di sviluppo, i pod Interactive Space aggiuntivi ne richiedono altre 4. CPUs Kueue rileva che i nuovi pod:
+ All'interno dello spazio dei nomi del Team Alpha
+ Priorità 100 (spazi interattivi)
+ Hanno l’ammissione in sospeso a causa di vincoli di quota

**Il processo di risposta di Kueue**

Kueue segue un processo in tre fasi per l’allocazione delle risorse:

1. **Controllo delle quote**

   Domanda: Il Team Alpha ha una quota inutilizzata?
   + *Utilizzo attuale*: 6 CPUs usati, 2 disponibili CPUs 
   + *Nuovo requisito*: 4 CPUs necessari
   + *Risultato*: quota insufficiente → Procedi alla Fase 2

1. **Auto-prelazione all'interno del Team Alpha**

   Domanda: È possibile anticipare i lavori Team Alpha con priorità più bassa?
   + *Obiettivi disponibili*: nessun lavoro con priorità inferiore in Team Alpha
   + *Risultato*: Nessuna prelazione possibile → Procedi alla Fase 3

1. **Recupera le risorse prese in prestito**

   Domanda: Le risorse del Team Alpha vengono prese in prestito da altri team?
   + *Risorse prese in prestito*: Team Beta utilizza 2 dal Team Alpha CPUs 
   + *Azione*: Kueue smonta le capsule di allenamento prese in prestito dal Team Beta, liberandone 2 CPUs
   + *Necessità residua: ne* mancano ancora 2 CPUs → Gli spazi interattivi restano attivi fino a quando le risorse non saranno disponibili NotAdmitted 

Questo approccio dà priorità agli spazi interattivi mantenendo al contempo i limiti delle quote del team e impedendo che il lavoro di sviluppo venga eseguito su risorse prese in prestito instabili.

# Osservabilità
<a name="observability"></a>

## Monitoraggio standard di Kubernetes
<a name="observability-monitor"></a>

Puoi monitorare Spaces utilizzando strumenti Kubernetes standard come description e logs. `kubectl` `kubectl`

**Monitoraggio dello stato dello spazio**

```
# List all Spaces with status
kubectl get workspace -A

# Get detailed information about a specific Space
kubectl describe workspace <workspace-name>
```

**Visualizzazione dei registri spaziali**

```
# View workspace container logs
kubectl logs -l workspace.jupyter.org/workspace-name=<workspace-name> -c workspace

# View SSM agent sidecar logs (for remote IDE connectivity)
kubectl logs -l workspace.jupyter.org/workspace-name=<workspace-name> -c ssm-agent-sidecar

# Follow logs in real-time
kubectl logs -l workspace.jupyter.org/workspace-name=<workspace-name> -c workspace -f
```

**Comprensione delle condizioni dello spazio**

Gli spazi riportano quattro tipi di condizioni nel loro stato:
+ **Disponibile**: `True` quando lo spazio è pronto per l'uso. Tutte le risorse richieste (pod, servizi, storage) sono funzionanti e integre.
+ **Progressione**: `True` quando lo Spazio viene creato, aggiornato o riconciliato. Passa a una volta stabile. `False`
+ **Degradato**: `True` quando vengono rilevati errori nelle risorse spaziali. Controlla il messaggio sulla condizione per i dettagli.
+ **Interrotto**: `True` quando lo stato desiderato di Space è impostato su`Stopped`. I pod vengono terminati ma l'archiviazione e la configurazione vengono preservate.

## CloudWatch Integrazione dei log
<a name="observability-cw"></a>

Puoi installare il componente aggiuntivo di CloudWatch registrazione per inviare i log di Space ad Amazon CloudWatch Logs per la gestione e la conservazione centralizzate dei log. Ciò consente l'aggregazione dei log su più cluster e l'integrazione con Insights per l'interrogazione e l'analisi. CloudWatch Tutti i `kubectl` log sopra disponibili possono essere interrogati con questo plugin. CloudWatch 

**Riferimento: [https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker- - .html hyperpod-eks-cluster-observability](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-cluster-observability-cluster-cloudwatch-ci.html)**. cluster-cloudwatch-ci

## HyperPod Componente aggiuntivo Observability
<a name="observability-addon"></a>

Il componente aggiuntivo SageMaker HyperPod Observability fornisce dashboard completi per il monitoraggio dell'utilizzo delle risorse spaziali. Dopo aver installato il componente aggiuntivo, puoi visualizzare lo spazio, la memoria e l'utilizzo della CPU nella scheda **Attività** della HyperPod console, che mostra le metriche nelle dashboard di Amazon Managed Grafana.

**[Riferimento: - .html https://docs.aws.amazon.com/sagemaker/ latest/dg/sagemaker hyperpod-observability-addon](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-observability-addon.html)**

**Metriche chiave disponibili:**
+ Utilizzo della CPU e della memoria per spazio
+ Metriche della GPU (se applicabile)

# Crea e gestisci spazi
<a name="create-manage-spaces"></a>

I data scientist possono elencare per visualizzare tutti gli spazi a cui hanno accesso, creare uno spazio utilizzando uno dei modelli, aggiornare lo spazio per aggiornare l'immagine, il file system e altri attributi della configurazione dello spazio ed eliminare uno spazio. Come prerequisito, i clienti devono installare la HyperPod CLI o utilizzare kubectl per creare e gestire gli spazi. [Per ulteriori dettagli sulla HyperPod CLI, consulta questa pagina.](https://github.com/aws/sagemaker-hyperpod-cli/blob/main/README.md#space) Per usare i comandi kubectl, consulta [questa guida](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) per installare kubectl.

## Crea spazio
<a name="create-manage-spaces-create"></a>

**HyperPod CLI**

Crea uno spazio Jupyter

```
hyp create hyp-space \ 
    --name myspace \ 
    --display-name "My Space" \ 
    --memory 8Gi \ 
    --template-ref name=sagemaker-jupyter-template,namespace=jupyter-k8s-system
```

Crea uno spazio Code Editor

```
hyp create hyp-space \ 
    --name myspace \ 
    --display-name "My Space" \ 
    --memory 8Gi \ 
    --template-ref name=sagemaker-code-editor-template,namespace=jupyter-k8s-system
```

**kubectl**

```
kubectl apply -f - <<EOF
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  name: my-space
spec:
  displayName: my-space
  desiredStatus: Running
EOF
```

oppure puoi semplicemente applicare il file yaml

```
kubectl apply -f my-workspace.yaml
```

## Elenca spazi
<a name="create-manage-spaces-list"></a>

**HyperPod CLI**

```
hyp list hyp-space
```

**kubectl**

```
kubectl get workspaces -n <workspace-namespace> 
```

## Descrivi uno spazio
<a name="create-manage-spaces-describe"></a>

**HyperPod CLI**

```
hyp describe hyp-space --name myspace
```

**kubectl**

```
# Basic Status reporting
kubectl get workspace my-workspace -n <workspace-namespace>

# Enhanced Workspace Information Retrieval 
kubectl get workspace my-workspace -n <workspace-namespace> -o wide

# Complete Workspace Information Retrieval
kubectl get workspace my-workspace -n <workspace-namespace> -o json
kubectl get workspace my-workspace -n <workspace-namespace> -o yaml
```

## Aggiorna uno spazio
<a name="create-manage-spaces-update"></a>

**HyperPod CLI**

```
hyp update hyp-space \
    --name myspace \
    --display-name "Updated My Space"
```

**kubectl**

Aggiorna il file YAML dell'area di lavoro originale secondo necessità, quindi riapplicalo. Assicuratevi che il nome dei metadati non sia modificato. Puoi anche usare questi comandi kubectl per modificare i campi senza riapplicare l'intero spazio di lavoro yaml: 

```
# Open a Terminal IDE and modify the Workspace
kubectl edit workspace -n <workspace-namespace>

# Patch a Workspace
kubectl patch workspace <workspace-name> --type='merge' -p \
    '{"spec":{"<field name>":"<desired value>"}}' -n <workspace-namespace>
```

## Avvia/arresta uno spazio
<a name="create-manage-spaces-stop"></a>

**HyperPod CLI**

```
hyp start hyp-space --name myspace
hyp stop hyp-space --name myspace
```

**kubectl**

È possibile aggiornare il campo di stato desiderato nell'area di lavoro in uno spazio. start/stop 

```
# Start a Workspace
kubectl patch workspace <workspace-name> --type='merge' -p \
    '{"spec":{"desiredStatus":"Running"}}' -n <workspace-namespace>
    
# Stop a Workspace
kubectl patch workspace <workspace-name> --type='merge' -p \
    '{"spec":{"desiredStatus":"Stopped"}}' -n <workspace-namespace>
```

## Ottieni registri
<a name="create-manage-spaces-log"></a>

**HyperPod CLI**

```
hyp get-logs hyp-space --name myspace
```

**kubectl**

```
# Check Pod Logs
kubectl logs -l workspace.jupyter.org/workspace-name=<workspace-metadata-name>

# Check Pod Events
kubectl describe pod -l workspace.jupyter.org/workspace-name=<workspace-metadata-name>

# Check Operator Logs
kubectl logs -n jupyter-k8s-system deployment/jupyter-k8s-controller-manager
```

## Eliminare uno spazio
<a name="create-manage-spaces-delete"></a>

**HyperPod CLI**

```
hyp delete hyp-space --name myspace
```

**kubectl**

```
# Delete a Workspace
kubectl delete workspace <workspace-name> -n <namespace>
```

# Accesso tramite browser Web
<a name="browser-access"></a>

L'accesso all'interfaccia utente Web consente di connettersi direttamente agli spazi di sviluppo in esecuzione sul SageMaker HyperPod cluster tramite un'interfaccia browser Web sicura. Ciò fornisce l'accesso immediato a Jupyter Lab e ad altri ambienti di sviluppo basati sul Web senza richiedere l'installazione di software locale.

## Prerequisiti
<a name="browser-access-prereq"></a>

Prima di configurare l'accesso all'interfaccia utente Web, assicurati di aver completato quanto segue:
+ SageMaker Installazione del *componente aggiuntivo Spaces: segui l'installazione* del [componente aggiuntivo SageMaker Spaces e abilita l'accesso all'interfaccia Web durante](https://docs.aws.amazon.com/sagemaker/latest/dg/operator-install.html) l'installazione
+ *Accesso utente al cluster EKS*: gli utenti devono configurare EKS Access Entry con le autorizzazioni appropriate. Vedi [Aggiungere utenti e configurare gli account di servizio per i dettagli di configurazione di EKS Access Entry](https://docs.aws.amazon.com/sagemaker/latest/dg/add-user.html)
+ *Spazi di sviluppo*: crea e avvia spazi di sviluppo sul tuo HyperPod cluster
+ *accesso kubectl*: assicurati che kubectl sia configurato per accedere al tuo cluster EKS

## Genera l'URL di accesso all'interfaccia utente Web
<a name="browser-access-url"></a>

**Utilizzo della HyperPod CLI**

Se hai installato la HyperPod CLI, puoi usare questo comando semplificato:

```
hyp create hyp-space-access --name <space-name> --connection-type web-ui
```

**Usare kubectl**

Puoi anche usare la `kubectl` riga di comando per creare una richiesta di connessione.

```
kubectl create -f - -o yaml <<EOF
apiVersion: connection.workspace.jupyter.org/v1alpha1
kind: WorkspaceConnection
metadata:
  namespace: <space-namespace>
spec:
  workspaceName: <space-name>
  workspaceConnectionType: web-ui
EOF
```

L'URL è presente nell'`status.workspaceConnectionUrl`output di questo comando.

## Accesso al tuo spazio di sviluppo
<a name="browser-access-develop"></a>

1. *Genera l'URL dell'interfaccia utente Web* utilizzando uno dei metodi precedenti

1. *Copia l'URL* dalla risposta

1. *Apri l'URL* nel tuo browser web

1. *Accedi al tuo ambiente di sviluppo* tramite l'interfaccia web

## Ambienti di sviluppo supportati
<a name="browser-access-develop-env"></a>

L'interfaccia utente Web fornisce l'accesso a:
+ *Jupyter Lab*
+ *Editor di codici*

## Risoluzione dei problemi
<a name="browser-access-troubleshooting"></a>

**Impossibile generare l'accesso URLs**

Verifica quanto segue:
+ SageMaker Il componente aggiuntivo Spaces è in esecuzione: kubectl get pods -n sagemaker-spaces-system
+ Lo spazio di sviluppo è funzionante e funzionante
+ L'utente dispone delle autorizzazioni EKS Access Entry appropriate

# Accesso remoto a SageMaker Spaces
<a name="vscode-access"></a>

L'accesso remoto consente di connettere il codice di Visual Studio locale direttamente agli spazi di sviluppo in esecuzione sul SageMaker HyperPod cluster. Le connessioni remote utilizzano SSM per stabilire tunnel sicuri e crittografati tra il computer locale e gli spazi di sviluppo.

## Prerequisiti
<a name="vscode-access-prereq"></a>

Prima di configurare l'accesso remoto, assicurati di aver completato quanto segue:
+ *SageMaker Installazione del componente aggiuntivo SageMaker * [Spaces: segui l'installazione del componente aggiuntivo](https://docs.aws.amazon.com/sagemaker/latest/dg/operator-install.html) Spaces e abilita l'accesso remoto durante l'installazione (installazione rapida o installazione personalizzata con la configurazione dell'accesso remoto abilitata).
+ *Accesso utente al cluster EKS*: gli utenti devono configurare EKS Access Entry con le autorizzazioni appropriate. Vedi [Aggiungere utenti e configurare gli account di servizio per i dettagli di configurazione di EKS Access Entry](https://docs.aws.amazon.com/sagemaker/latest/dg/add-user.html)
+ *Spazi di sviluppo*: crea e avvia spazi di sviluppo sul tuo HyperPod cluster
+ *accesso kubectl*: assicurati che kubectl sia configurato per accedere al tuo cluster EKS

## Genera una connessione remota VS Code
<a name="vscode-access-remote"></a>

### Utilizzo della HyperPod CLI
<a name="vscode-access-remote-cli"></a>

Se hai installato la HyperPod CLI, puoi usare questo comando semplificato:

```
hyp create hyp-space-access --name <space-name> --connection-type vscode-remote
```

### Usare kubectl
<a name="vscode-access-remote-kubectl"></a>

Puoi anche usare la `kubectl` riga di comando per creare una richiesta di connessione.

```
kubectl create -f - -o yaml <<EOF
apiVersion: connection.workspace.jupyter.org/v1alpha1
kind: WorkspaceConnection
metadata:
  namespace: <space-namespace>
spec:
  workspaceName: <space-name>
  workspaceConnectionType: vscode-remote
EOF
```

L'URL è presente nell'`status.workspaceConnectionUrl`output di questo comando.

## Connessione con VS Code
<a name="vscode-access-remote-vscode"></a>

1. Genera l'URL di connessione VS Code utilizzando uno dei metodi sopra indicati

1. Copia l'URL del codice VS dalla risposta

1. Fai clic sull'URL o incollalo nel browser

1. VS Code richiederà di aprire la connessione remota

1. Conferma la connessione per stabilire l'ambiente di sviluppo remoto

## Ambienti di sviluppo supportati
<a name="vscode-access-remote-dev-env"></a>

L'interfaccia utente Web fornisce l'accesso a:
+ *Jupyter Lab*
+ *Editor di codici*

## Risoluzione dei problemi
<a name="troubleshooting"></a>

**Impossibile generare una connessione URLs**

*Controlla quanto segue:*
+ SageMaker Il componente aggiuntivo Spaces è in esecuzione: kubectl get pods -n sagemaker-spaces-system
+ Lo spazio di sviluppo è funzionante e funzionante
+ L'accesso remoto è stato abilitato durante l'installazione del componente aggiuntivo
+ L'utente dispone delle autorizzazioni EKS Access Entry appropriate

# Addestra e implementa modelli con HyperPod CLI e SDK
<a name="getting-started-hyperpod-training-deploying-models"></a>

Amazon ti SageMaker HyperPod aiuta ad addestrare e distribuire modelli di machine learning su larga scala. La AWS HyperPod CLI è un'interfaccia a riga di comando unificata che semplifica i flussi di lavoro di machine learning (ML). AWS Riduce le complessità dell’infrastruttura e offre un’esperienza semplificata per l’invio, il monitoraggio e la gestione dei job di addestramento di ML. La CLI è progettata specificamente per i Data Scientist e gli ingegneri di ML che desiderano concentrarsi sullo sviluppo di modelli piuttosto che sulla gestione dell’infrastruttura. Questo argomento illustra tre scenari chiave: addestramento di un PyTorch modello, implementazione di un modello personalizzato utilizzando artefatti addestrati e distribuzione di un modello. JumpStart Progettato per gli utenti alle prime armi, questo breve tutorial ti consente di configurare, addestrare e distribuire i modelli senza sforzo utilizzando la CLI o l' HyperPod SDK. Il processo di handshake tra l’addestramento e l’inferenza consente di gestire gli artefatti del modello in modo efficace. 

## Prerequisiti
<a name="prerequisites"></a>

Prima di iniziare a utilizzare Amazon SageMaker HyperPod, assicurati di avere:
+ Un AWS account con accesso ad Amazon SageMaker HyperPod
+ Python 3.9, 3.10 o 3.11 installato
+ AWS CLI configurato con le credenziali appropriate. 

## Installa la HyperPod CLI e l'SDK
<a name="install-cli-sdk"></a>

Installa il pacchetto richiesto per accedere alla CLI e all’SDK:

```
pip install sagemaker-hyperpod
```

Questo comando imposta gli strumenti necessari per interagire con HyperPod i cluster.

## Configurazione del contesto del cluster
<a name="configure-cluster"></a>

HyperPod opera su cluster ottimizzati per l'apprendimento automatico. Inizia elencando i cluster disponibili e selezionane uno per le tue attività.

1. Elenca tutti i cluster disponibili:

   ```
   hyp list-cluster
   ```

1. Scegli e imposta il cluster attivo:

   ```
   hyp set-cluster-context your-eks-cluster-name
   ```

1. Verifica la configurazione:

   ```
   hyp get-cluster-context
   ```

**Nota**  
Tutti i comandi successivi hanno come destinazione il cluster che hai impostato come contesto.

## Scelta dello scenario
<a name="choose-scenario"></a>

Per istruzioni dettagliate su ogni scenario, fai clic sugli argomenti seguenti:

**Topics**
+ [Prerequisiti](#prerequisites)
+ [Installa la HyperPod CLI e l'SDK](#install-cli-sdk)
+ [Configurazione del contesto del cluster](#configure-cluster)
+ [Scelta dello scenario](#choose-scenario)
+ [Addestra un modello PyTorch](train-models-with-hyperpod.md)
+ [Implementazione di un modello personalizzato](deploy-trained-model.md)
+ [Implementa un modello JumpStart](deploy-jumpstart-model.md)

# Addestra un modello PyTorch
<a name="train-models-with-hyperpod"></a>

Questo argomento illustra il processo di addestramento di un PyTorch modello utilizzando HyperPod.

In questo scenario, formiamo un PyTorch modello utilizzando il `hyp-pytorch-job` modello, che semplifica la creazione di posti di lavoro esponendo i parametri di uso comune. Gli artefatti del modello vengono archiviati in un bucket S3 per essere utilizzati successivamente per l’inferenza. Tuttavia, questa impostazione è facoltativa, quindi puoi scegliere la tua posizione di archiviazione preferita.

## Creazione di un job di addestramento
<a name="create-training-job"></a>

Puoi addestrare il modello utilizzando la CLI o Python SDK.

### Utilizzo della CLI
<a name="using-cli"></a>

Crea un job di addestramento con il comando seguente:

```
hyp create hyp-pytorch-job \
    --version 1.0 \
    --job-name test-pytorch-job \
    --image pytorch/pytorch:latest \
    --command '["python", "train.py"]' \
    --args '["--epochs", "10", "--batch-size", "32"]' \
    --environment '{"PYTORCH_CUDA_ALLOC_CONF": "max_split_size_mb:32"}' \
    --pull-policy "IfNotPresent" \
    --instance-type ml.p4d.24xlarge \
    --tasks-per-node 8 \
    --label-selector '{"accelerator": "nvidia", "network": "efa"}' \
    --deep-health-check-passed-nodes-only true \
    --scheduler-type "kueue" \
    --queue-name "training-queue" \
    --priority "high" \
    --max-retry 3 \
    --volumes '["data-vol", "model-vol", "checkpoint-vol"]' \
    --persistent-volume-claims '["shared-data-pvc", "model-registry-pvc"]' \
    --output-s3-uri s3://my-bucket/model-artifacts
```

**Spiegazione dei principali parametri richiesti**:
+ `--job-name`: identificatore univoco per il job di addestramento
+ `--image`: immagine Docker che contiene l’ambiente di addestramento

Questo comando avvia un job di addestramento denominato `test-pytorch-job`. `--output-s3-uri` specifica dove vengono archiviati gli artefatti del modello addestrato, ad esempio `s3://my-bucket/model-artifacts`. Annota questa posizione, perché ti servirà per implementare il modello personalizzato.

### Utilizzo di Python SDK
<a name="using-python-sdk"></a>

Per il controllo programmatico, utilizza l’SDK. Crea uno script Python per avviare lo stesso job di addestramento.

```
from sagemaker.hyperpod import HyperPodPytorchJob
from sagemaker.hyperpod.job 
import ReplicaSpec, Template, Spec, Container, Resources, RunPolicy, Metadata

# Define job specifications
nproc_per_node = "1"  # Number of processes per node
replica_specs = 
[
    ReplicaSpec
    (
        name = "pod",  # Replica name
        template = Template
        (
            spec = Spec
            (
                containers =
                [
                    Container
                    (
                        # Container name
                        name="container-name",  
                        
                        # Training image
                        image="448049793756.dkr.ecr.us-west-2.amazonaws.com/ptjob:mnist",  
                        
                        # Always pull image
                        image_pull_policy="Always",  
                        resources=Resources\
                        (
                            # No GPUs requested
                            requests={"nvidia.com/gpu": "0"},  
                            # No GPU limit
                            limits={"nvidia.com/gpu": "0"},   
                        ),
                        # Command to run
                        command=["python", "train.py"],  
                        # Script arguments
                        args=["--epochs", "10", "--batch-size", "32"],  
                    )
                ]
            )
        ),
    )
]
# Keep pods after completion
run_policy = RunPolicy(clean_pod_policy="None")  

# Create and start the PyTorch job
pytorch_job = HyperPodPytorchJob
(
    # Job name
    metadata = Metadata(name="demo"),  
    # Processes per node
    nproc_per_node = nproc_per_node,   
    # Replica specifications
    replica_specs = replica_specs,     
    # Run policy
    run_policy = run_policy,           
    # S3 location for artifacts
    output_s3_uri="s3://my-bucket/model-artifacts"  
)
# Launch the job
pytorch_job.create()
```

## Monitoraggio del job di addestramento
<a name="monitor-training-job"></a>

Monitora lo stato di avanzamento del processo con questi comandi:

### Utilizzo della CLI
<a name="monitor-cli"></a>

```
# Check job status
hyp list hyp-pytorch-job

# Get detailed information
hyp describe hyp-pytorch-job --job-name test-pytorch-job

# View logs
hyp get-logs hyp-pytorch-job \
    --pod-name test-pytorch-job-pod-0 \
    --job-name test-pytorch-job
```

**Nota**: la durata dell’addestramento varia in base alla complessità del modello e al tipo di istanza. Monitora i log per tenere traccia dello stato di avanzamento.

Questi comandi consentono di verificare lo stato del processo e di risolvere i problemi. Una volta completato correttamente il processo, gli artefatti del modello vengono salvati in `s3://my-bucket/model-artifacts`.

### Utilizzo di Python SDK
<a name="monitor-python-sdk"></a>

Aggiungi il codice seguente allo script Python:

```
print("List all pods created for this job:")
print(pytorch_job.list_pods())

print("Check the logs from pod0:")
print(pytorch_job.get_logs_from_pod(pod_name="demo-pod-0"))

print("List all HyperPodPytorchJobs:")
print(HyperPodPytorchJob.list())

print("Describe job:")
print(HyperPodPytorchJob.get(name="demo").model_dump())

pytorch_job.refresh()
print(pytorch_job.status.model_dump())
```

## Fasi successive
<a name="next-steps"></a>

Dopo l’addestramento, gli artefatti del modello vengono archiviati nel bucket S3 che hai specificato (`s3://my-bucket/model-artifacts`). Puoi utilizzare questi artefatti per implementare un modello. Attualmente, è necessario gestire manualmente la transizione dall’addestramento all’inferenza. Questa operazione prevede:
+ **Individuazione degli artefatti**: controlla il bucket S3 (`s3://my-bucket/model-artifacts`) per verificare che i file del modello addestrato siano presenti.
+ **Registrazione del percorso**: annota il percorso S3 esatto (ad esempio `s3://my-bucket/model-artifacts/test-pytorch-job/model.tar.gz`) da utilizzare nella configurazione dell’inferenza.
+ **Riferimento durante l’implementazione**: inserisci questo percorso S3 nella configurazione dell’endpoint personalizzato per assicurarti che venga caricato il modello corretto.

# Implementazione di un modello personalizzato
<a name="deploy-trained-model"></a>

Al termine dell’addestramento, implementa il modello per l’inferenza. Puoi implementare un modello personalizzato utilizzando la CLI o l’SDK.

## Individuazione degli artefatti del modello
<a name="locate-model-artifacts"></a>
+ **Controlla il tuo bucket S3**: verifica che gli artefatti del modello siano salvati in `s3://my-bucket/model-artifacts/`
+ **Annota il percorso esatto**: ti servirà il percorso completo (ad esempio `s3://my-bucket/model-artifacts/test-pytorch-job/model.tar.gz`)

## Implementazione con la CLI
<a name="deploy-using-cli"></a>

Per implementare il modello personalizzato, utilizza il comando seguente:

```
hyp create hyp-custom-endpoint \
    --version 1.0 \
    --env '{"HF_MODEL_ID":"/opt/ml/model", "SAGEMAKER_PROGRAM":"inference.py", }' \
    --model-source-type s3 \
    --model-location test-pytorch-job \
    --s3-bucket-name my-bucket \
    --s3-region us-east-2 \
    --prefetch-enabled true \ 
    --image-uri 763104351884.dkr.ecr.us-east-1.amazonaws.com/pytorch-inference:latest \
    --model-volume-mount-name model-weights \
    --container-port 8080 \
    --resources-requests '{"cpu": "30000m", "nvidia.com/gpu": 1, "memory": "100Gi"}' \
    --resources-limits '{"nvidia.com/gpu": 1}' \
    --tls-output-s3-uri s3://<bucket_name> \
    --instance-type ml.g5.8xlarge \
    --endpoint-name endpoint-custom-pytorch \
    --model-name pytorch-custom-model
```

Questo comando distribuisce il modello addestrato come endpoint denominato `endpoint-custom-pytorch`. `--model-location` fa riferimento al percorso dell’artefatto specificato nel job di addestramento.

## Implementazione con Python SDK
<a name="deploy-using-sdk"></a>

Crea uno script Python con il seguente contenuto:

```
from sagemaker.hyperpod.inference.config.hp_custom_endpoint_config import Model, Server, SageMakerEndpoint, TlsConfig, EnvironmentVariables
from sagemaker.hyperpod.inference.hp_custom_endpoint import HPCustomEndpoint

model = Model(
    model_source_type="s3",
    model_location="test-pytorch-job",
    s3_bucket_name="my-bucket",
    s3_region="us-east-2",
    prefetch_enabled=True
)

server = Server(
    instance_type="ml.g5.8xlarge",
    image_uri="763104351884.dkr.ecr.us-east-2.amazonaws.com/huggingface-pytorch-tgi-inference:2.4.0-tgi2.3.1-gpu-py311-cu124-ubuntu22.04-v2.0",
    container_port=8080,
    model_volume_mount_name="model-weights"
)

resources = {
    "requests": {"cpu": "30000m", "nvidia.com/gpu": 1, "memory": "100Gi"},
    "limits": {"nvidia.com/gpu": 1}
}

env = EnvironmentVariables(
    HF_MODEL_ID="/opt/ml/model",
    SAGEMAKER_PROGRAM="inference.py",
    SAGEMAKER_SUBMIT_DIRECTORY="/opt/ml/model/code",
    MODEL_CACHE_ROOT="/opt/ml/model",
    SAGEMAKER_ENV="1"
)

endpoint_name = SageMakerEndpoint(name="endpoint-custom-pytorch")

tls_config = TlsConfig(tls_certificate_output_s3_uri="s3://<bucket_name>")

custom_endpoint = HPCustomEndpoint(
    model=model,
    server=server,
    resources=resources,
    environment=env,
    sage_maker_endpoint=endpoint_name,
    tls_config=tls_config
)

custom_endpoint.create()
```

## Richiamare l'endpoint
<a name="invoke-endpoint"></a>

### Utilizzo della CLI
<a name="invoke-using-cli"></a>

Testa l’endpoint con un input di esempio:

```
hyp invoke hyp-custom-endpoint \
    --endpoint-name endpoint-custom-pytorch \
    --body '{"inputs":"What is the capital of USA?"}'
```

Questa operazione restituisce la risposta del modello, ad esempio “La capitale degli Stati Uniti è Washington, D.C.”

### Utilizzo di SDK
<a name="invoke-using-sdk"></a>

Aggiungi il codice seguente allo script Python:

```
data = '{"inputs":"What is the capital of USA?"}'
response = custom_endpoint.invoke(body=data).body.read()
print(response)
```

## Gestione dell’endpoint
<a name="manage-endpoint"></a>

### Utilizzo della CLI
<a name="manage-using-cli"></a>

Elenca e ispeziona l’endpoint:

```
hyp list hyp-custom-endpoint
hyp get hyp-custom-endpoint --name endpoint-custom-pytorch
```

### Utilizzo di SDK
<a name="manage-using-sdk"></a>

Aggiungi il codice seguente allo script Python:

```
logs = custom_endpoint.get_logs()
print(logs)
```

## Eseguire la pulizia delle risorse
<a name="cleanup-resources"></a>

Al termine, elimina l’endpoint per evitare costi inutili.

### Utilizzo della CLI
<a name="cleanup-using-cli"></a>

```
hyp delete hyp-custom-endpoint --name endpoint-custom-pytorch
```

### Utilizzo di SDK
<a name="cleanup-using-sdk"></a>

```
custom_endpoint.delete()
```

## Fasi successive
<a name="next-steps"></a>

Hai distribuito e testato con successo un modello personalizzato utilizzando. SageMaker HyperPod Ora puoi utilizzare questo endpoint per l’inferenza nelle tue applicazioni.

# Implementa un modello JumpStart
<a name="deploy-jumpstart-model"></a>

Puoi implementare un JumpStart modello pre-addestrato per l'inferenza utilizzando la CLI o l'SDK.

## Utilizzo della CLI
<a name="deploy-jumpstart-cli"></a>

Esegui il comando seguente per distribuire un modello: JumpStart 

```
hyp create hyp-jumpstart-endpoint \
  --version 1.0 \
  --model-id deepseek-llm-r1-distill-qwen-1-5b \
  --instance-type ml.g5.8xlarge \
  --endpoint-name endpoint-test-jscli
```

## Utilizzo di SDK
<a name="deploy-jumpstart-sdk"></a>

Crea uno script Python con il seguente contenuto:

```
from sagemaker.hyperpod.inference.config.hp_jumpstart_endpoint_config import Model, Server, SageMakerEndpoint, TlsConfig
from sagemaker.hyperpod.inference.hp_jumpstart_endpoint import HPJumpStartEndpoint

model=Model(
    model_id='deepseek-llm-r1-distill-qwen-1-5b'
)

server=Server(
    instance_type='ml.g5.8xlarge',
)

endpoint_name=SageMakerEndpoint(name='<endpoint-name>')

# create spec
js_endpoint=HPJumpStartEndpoint(
    model=model,
    server=server,
    sage_maker_endpoint=endpoint_name
)
```

## Richiamare l'endpoint
<a name="invoke-jumpstart-endpoint"></a>

### Utilizzo della CLI
<a name="invoke-jumpstart-cli"></a>

Testa l’endpoint con un input di esempio:

```
hyp invoke hyp-jumpstart-endpoint \
    --endpoint-name endpoint-jumpstart \
    --body '{"inputs":"What is the capital of USA?"}'
```

### Utilizzo di SDK
<a name="invoke-jumpstart-sdk"></a>

Aggiungi il codice seguente allo script Python:

```
data = '{"inputs":"What is the capital of USA?"}'
response = js_endpoint.invoke(body=data).body.read()
print(response)
```

## Gestione dell’endpoint
<a name="manage-jumpstart-endpoint"></a>

### Utilizzo della CLI
<a name="manage-jumpstart-cli"></a>

Elenca e ispeziona l’endpoint:

```
hyp list hyp-jumpstart-endpoint
hyp get hyp-jumpstart-endpoint --name endpoint-jumpstart
```

### Utilizzo di SDK
<a name="manage-jumpstart-sdk"></a>

Aggiungi il codice seguente allo script Python:

```
endpoint_iterator = HPJumpStartEndpoint.list()
for endpoint in endpoint_iterator:
    print(endpoint.name, endpoint.status)

logs = js_endpoint.get_logs()
print(logs)
```

## Eseguire la pulizia delle risorse
<a name="cleanup-jumpstart-resources"></a>

Al termine, elimina l’endpoint per evitare costi inutili.

### Utilizzo della CLI
<a name="cleanup-jumpstart-cli"></a>

```
hyp delete hyp-jumpstart-endpoint --name endpoint-jumpstart
```

### Utilizzo di SDK
<a name="cleanup-jumpstart-sdk"></a>

```
js_endpoint.delete()
```

## Fasi successive
<a name="jumpstart-next-steps"></a>

Ora che hai addestrato un PyTorch modello, lo hai distribuito come endpoint personalizzato e distribuito un JumpStart modello utilizzando la HyperPod CLI e l'SDK, esplora le funzionalità avanzate:
+ **Addestramento multinodo**: estensione dell’addestramento su più istanze
+ **Container personalizzati**: crea ambienti di addestramento specializzati
+ **Integrazione con SageMaker Pipelines**: automatizza i flussi di lavoro ML
+ **Monitoraggio avanzato**: configura metriche e avvisi personalizzati

[Per altri esempi e configurazioni avanzate, visita il repository. SageMaker HyperPod GitHub ](https://github.com/aws/amazon-sagemaker-examples)

# Esecuzione di processi su SageMaker HyperPod cluster orchestrati da Amazon EKS
<a name="sagemaker-hyperpod-eks-run-jobs"></a>

I seguenti argomenti forniscono procedure ed esempi di accesso ai nodi di calcolo ed esecuzione di carichi di lavoro ML su SageMaker HyperPod cluster forniti orchestrati con Amazon EKS. A seconda di come hai configurato l'ambiente sul HyperPod cluster, esistono molti modi per eseguire carichi di lavoro ML sui cluster. HyperPod 

**Nota**  
Quando si eseguono lavori tramite SageMaker HyperPod CLI o kubectl, è HyperPod possibile tenere traccia dell'utilizzo del calcolo (ore GPU/CPU) tra i namespace (team). Queste metriche sono la base dei report di utilizzo, che forniscono:  
Visibilità sul consumo di risorse allocate e di risorse prese in prestito
Utilizzo delle risorse dei team per gli audit (fino a 180 giorni)
Attribuzione dei costi in linea con le policy di governance delle attività
Per utilizzare i report di utilizzo, è necessario installare la relativa infrastruttura. Consigliamo vivamente di configurare la [governance delle attività](sagemaker-hyperpod-eks-operate-console-ui-governance.md) per applicare le quote di calcolo e abilitare l’attribuzione granulare dei costi.  
[Per ulteriori informazioni sulla configurazione e la generazione di report sull'utilizzo, consulta Reporting Compute Usage in. HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-usage-reporting.html)

**Suggerimento**  
Per un'esperienza pratica e indicazioni su come configurare e utilizzare un SageMaker HyperPod cluster orchestrato con Amazon EKS, consigliamo di seguire questo [Amazon EKS Support](https://catalog.us-east-1.prod.workshops.aws/workshops/2433d39e-ccfe-4c00-9d3d-9917b729258e) in workshop. SageMaker HyperPod

Gli utenti di data scientist possono addestrare modelli fondamentali utilizzando il set di cluster EKS come orchestratore per il cluster. SageMaker HyperPod Gli scienziati sfruttano la [SageMaker HyperPod CLI](https://github.com/aws/sagemaker-hyperpod-cli) e i comandi `kubectl` nativi per trovare i cluster SageMaker HyperPod disponibili, inviare lavori di formazione (Pod) e gestire i propri carichi di lavoro. La SageMaker HyperPod CLI consente l'invio dei lavori utilizzando un file di schema dei lavori di formazione e fornisce funzionalità per l'elenco, la descrizione, l'annullamento e l'esecuzione dei lavori. Gli scienziati possono utilizzare [Kubeflow Training Operator](https://www.kubeflow.org/docs/components/training/overview/) in base alle quote di calcolo gestite da e gestito dall'[SageMaker IA per gestire gli esperimenti di HyperPod machine learning e le sessioni di MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html) formazione. 

**Topics**
+ [Installazione della SageMaker HyperPod CLI](sagemaker-hyperpod-eks-run-jobs-access-nodes.md)
+ [SageMaker HyperPod Comandi CLI](sagemaker-hyperpod-eks-hyperpod-cli-reference.md)
+ [Esecuzione di lavori utilizzando la SageMaker HyperPod CLI](sagemaker-hyperpod-eks-run-jobs-hyperpod-cli.md)
+ [Esecuzione dei processi con `kubectl`](sagemaker-hyperpod-eks-run-jobs-kubectl.md)

# Installazione della SageMaker HyperPod CLI
<a name="sagemaker-hyperpod-eks-run-jobs-access-nodes"></a>

SageMaker HyperPod fornisce il pacchetto CLI ([SageMaker HyperPod Command Line Interface](https://github.com/aws/sagemaker-hyperpod-cli)). 

1. Controlla se la versione di Python sul computer locale è compresa tra 3.8 e 3.11.

1. [Controlla i prerequisiti nel file `README` markdown nel pacchetto CLI SageMaker HyperPod .](https://github.com/aws/sagemaker-hyperpod-cli)

1. Clona il pacchetto SageMaker HyperPod CLI da. GitHub

   ```
   git clone https://github.com/aws/sagemaker-hyperpod-cli.git
   ```

1. Installa la SageMaker HyperPod CLI.

   ```
   cd sagemaker-hyperpod-cli && pip install .
   ```

1. Verifica se la SageMaker HyperPod CLI è installata correttamente eseguendo il comando seguente. 

   ```
   hyperpod --help
   ```

**Nota**  
Se sei un data scientist e desideri utilizzare la SageMaker HyperPod CLI, assicurati che il tuo ruolo IAM sia configurato correttamente dagli amministratori del cluster seguendo le istruzioni riportate in and. [Utenti IAM per Data Scientist](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-user) [Configurazione del controllo degli accessi basato su ruoli Kubernetes](sagemaker-hyperpod-eks-setup-rbac.md)

# SageMaker HyperPod Comandi CLI
<a name="sagemaker-hyperpod-eks-hyperpod-cli-reference"></a>

La tabella seguente riassume i comandi SageMaker HyperPod CLI.

**Nota**  
[Per un riferimento completo alla CLI, consulta [README nell'archivio](https://github.com/aws/sagemaker-hyperpod-cli?tab=readme-ov-file#sagemaker-hyperpod-command-line-interface) SageMaker HyperPod CLI. GitHub](https://github.com/aws/sagemaker-hyperpod-cli)


| SageMaker HyperPod Comando CLI | Entità  | Description | 
| --- | --- | --- | 
| hyperpod get-clusters | cluster/accesso | Elenca tutti i cluster a cui l'utente è stato abilitato, con le autorizzazioni IAM, a inviare carichi di lavoro di formazione. Fornisce un'istantanea corrente di tutte le istanze disponibili che non eseguono carichi di lavoro o job e la capacità massima, raggruppandole per stati di controllo dello stato di integrità (es:) BurnInPassed | 
| hyperpod connect-cluster | cluster/accesso | kubectlConfigura HyperPod per funzionare sul cluster e sullo spazio dei nomi specificati | 
| hyperpod start-job  | job | Invia il processo al cluster di destinazione. Il nome del processo sarà univoco a livello di namespace. Gli utenti potranno sostituire le specifiche yaml passandole come argomenti della CLI. | 
| hyperpod get-job | job | Visualizza i metadati del processo inviato. | 
| hyperpod list-jobs | job | Elenca tutti i job in Connected cluster/namespace a cui l'utente è stato aggiunto con le autorizzazioni IAM per inviare carichi di lavoro di formazione | 
| hyperpod cancel-job | job | Arresta ed elimina il processo e rilascia le risorse di calcolo sottostanti. Questo processo non può essere ripreso di nuovo. Se necessario, va avviato un nuovo processo. | 
| hyperpod list-pods | pod | Elenca tutti i pod del processo specificato in un namespace | 
| hyperpod get-log | pod | Recupera i log di un particolare pod in un processo specificato | 
| hyperpod exec | pod | Esegue il comando bash nella shell dei pod specificati e pubblica l’output | 
| hyperpod --help | utility | elenca tutti i comandi supportati | 

# Esecuzione di lavori utilizzando la SageMaker HyperPod CLI
<a name="sagemaker-hyperpod-eks-run-jobs-hyperpod-cli"></a>

Per eseguire i processi, assicurati di aver installato Kubeflow Training Operator nei cluster EKS. Per ulteriori informazioni, consulta [Installazione di pacchetti sul cluster Amazon EKS con Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md).

Esegui il `hyperpod get-cluster` comando per ottenere l'elenco dei cluster disponibili. HyperPod 

```
hyperpod get-clusters
```

Esegui `hyperpod connect-cluster` per configurare la SageMaker HyperPod CLI con il cluster EKS che orchestra il cluster. HyperPod 

```
hyperpod connect-cluster --cluster-name <hyperpod-cluster-name>
```

Utilizza il comando `hyperpod start-job` per eseguire un processo. Il comando seguente mostra il comando con le opzioni richieste. 

```
hyperpod start-job \
    --job-name <job-name>
    --image <docker-image-uri>
    --entry-script <entrypoint-script>
    --instance-type <ml.instance.type>
    --node-count <integer>
```

Il comando `hyperpod start-job` include anche varie opzioni come la ripresa automatica e la pianificazione dei processi.

## Abilitazione della ripresa automatica del processo
<a name="sagemaker-hyperpod-eks-run-jobs-hyperpod-cli-enable-auto-resume"></a>

Il comando `hyperpod start-job` include anche le opzioni seguenti per specificare la ripresa automatica del processo. Per consentire la ripresa automatica del lavoro in modo che funzioni con le funzionalità di resilienza del SageMaker HyperPod nodo, è necessario impostare il valore dell'opzione su. `restart-policy` `OnFailure` Il processo deve essere eseguito nel namespace `kubeflow` o in uno dei namespace con il prefisso `hyperpod`.
+ [--auto-resume <bool>] \$1Facoltativo: abilita la ripresa automatica del processo in caso di errore. L’impostazione predefinita è false.
+ [--max-retry <int>] \$1Facoltativo: se la ripresa automatica è impostata su true, il valore predefinito di max-retry è 1, se non specificato.
+ <enum>[--restart-policy] \$1Optional, politica di riavvio. PyTorchJob I valori disponibili sono `Always`, `OnFailure`, `Never` o `ExitCode`. Il valore predefinito è `OnFailure`. 

```
hyperpod start-job \
    ... // required options \
    --auto-resume true \
    --max-retry 3 \
    --restart-policy OnFailure
```

## Esecuzione di processi con opzioni di pianificazione
<a name="sagemaker-hyperpod-eks-run-jobs-hyperpod-cli-scheduling"></a>

Il comando `hyperpod start-job` offre le seguenti opzioni per configurare il processo con meccanismi di accodamento. 

**Nota**  
È necessario che [Kueue](https://kueue.sigs.k8s.io/docs/overview/) sia installato nel cluster EKS. Se non è installato, segui le istruzioni in [Configurazione per la governance SageMaker HyperPod delle attività](sagemaker-hyperpod-eks-operate-console-ui-governance-setup.md).
+ [--scheduler-type <enum>] \$1Facoltativo: specifica il tipo di scheduler. Il valore predefinito è `Kueue`.
+ [--queue-name <string>] \$1Facoltativo: specifica il nome della [coda locale](https://kueue.sigs.k8s.io/docs/concepts/local_queue/) o della [coda del cluster](https://kueue.sigs.k8s.io/docs/concepts/cluster_queue/) da inviare insieme al processo. La coda deve essere creata dagli amministratori del cluster utilizzando `CreateComputeQuota`.
+ [--priority <string>] \$1Facoltativo: specifica il nome della [classe di priorità del carico di lavoro](https://kueue.sigs.k8s.io/docs/concepts/workload_priority_class/), che deve essere creata dagli amministratori del cluster.

```
hyperpod start-job \
    ... // required options
    --scheduler-type Kueue \
    --queue-name high-priority-queue \
    --priority high
```

## Esecuzione dei processi da un file di configurazione
<a name="sagemaker-hyperpod-eks-run-jobs-hyperpod-cli-from-config"></a>

In alternativa, puoi creare un file di configurazione del processo che contenga tutti i parametri richiesti dal processo, quindi passarlo al comando `hyperpod start-job` utilizzando l’opzione --config-file. In questo caso:

1. Crea il file di configurazione del processo con i parametri richiesti. Fate riferimento al file di configurazione del lavoro nell' GitHub archivio SageMaker HyperPod CLI per un file di configurazione di [base](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-run-jobs-hyperpod-cli.html#sagemaker-hyperpod-eks-hyperpod-cli-from-config).

1. Avvia il processo utilizzando il file di configurazione come segue.

   ```
   hyperpod start-job --config-file /path/to/test_job.yaml
   ```

**Suggerimento**  
Per un elenco completo dei parametri del `hyperpod start-job` comando, consultate la sezione [Invio di un Job](https://github.com/aws/sagemaker-hyperpod-cli?tab=readme-ov-file#submitting-a-job) nel `README.md` repository SageMaker HyperPod GitHub CLI.

# Esecuzione dei processi con `kubectl`
<a name="sagemaker-hyperpod-eks-run-jobs-kubectl"></a>

**Nota**  
La ripresa automatica del job di addestramento richiede Kubeflow Training Operator versione `1.7.0`, `1.8.0` o `1.8.1`.

Tieni presente che Kubeflow Training Operator dovrebbe essere installato nei cluster con un grafico Helm. Per ulteriori informazioni, consulta [Installazione di pacchetti sul cluster Amazon EKS con Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md). Verifica che il piano di controllo (control-plane) di Kubeflow Training Operator sia configurato correttamente eseguendo questo comando.

```
kubectl get pods -n kubeflow
```

Questo restituisce un output simile al seguente.

```
NAME                                             READY   STATUS    RESTARTS   AGE
training-operator-658c68d697-46zmn               1/1     Running   0          90s
```

**Per inviare un job di addestramento**

Per eseguire un job di addestramento, prepara il file di configurazione del processo ed esegui il comando [https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply) come segue.

```
kubectl apply -f /path/to/training_job.yaml
```

**Per descrivere un job di addestramento**

Per recuperare i dettagli del processo inviato al cluster EKS, utilizza il comando seguente. Restituisce informazioni sul processo come l’ora di invio, l’ora di completamento, lo stato e i dettagli di configurazione.

```
kubectl get -o yaml training-job -n kubeflow
```

**Per arrestare un job di addestramento ed eliminare le risorse EKS**

Per arrestare un job di addestramento, utilizza kubectl delete. Di seguito è riportato un esempio di come arrestare il job di addestramento creato dal file di configurazione `pytorch_job_simple.yaml`.

```
kubectl delete -f /path/to/training_job.yaml 
```

Dovrebbe essere restituito l’output seguente.

```
pytorchjob.kubeflow.org "training-job" deleted
```

**Per abilitare la ripresa automatica del processo**

SageMaker HyperPod supporta la funzionalità di ripristino automatico dei lavori per i lavori Kubernetes, integrandosi con il piano di controllo Kubeflow Training Operator.

Assicurati che ci siano nodi sufficienti nel cluster che abbiano superato il controllo di integrità. SageMaker HyperPod Il taint `sagemaker.amazonaws.com/node-health-status` dei nodi deve essere impostato su `Schedulable`. Consigliamo di includere un selettore di nodi nel file YAML del processo per selezionare i nodi con la configurazione appropriata come descritto di seguito.

```
sagemaker.amazonaws.com/node-health-status: Schedulable
```

Il seguente frammento di codice è un esempio di come modificare una configurazione YAML di un PyTorch lavoro Kubeflow per abilitare la funzionalità di ripristino automatico del lavoro. È necessario aggiungere due annotazioni e impostare `restartPolicy` su `OnFailure` come segue.

```
apiVersion: "kubeflow.org/v1"
kind: PyTorchJob 
metadata:
    name: pytorch-simple
    namespace: kubeflow
    annotations: { // config for job auto resume
      sagemaker.amazonaws.com/enable-job-auto-resume: "true"
      sagemaker.amazonaws.com/job-max-retry-count: "2"
    }
spec:
  pytorchReplicaSpecs:
  ......
  Worker:
      replicas: 10
      restartPolicy: OnFailure
      template:
          spec:
              nodeSelector:
                  sagemaker.amazonaws.com/node-health-status: Schedulable
```

**Per controllare lo stato di ripresa automatica del processo**

Per controllare lo stato di ripresa automatica del processo, utilizza il comando seguente.

```
kubectl describe pytorchjob -n kubeflow <job-name>
```

A seconda dei modelli di errore, potrebbero essere riavviati due modelli del job di addestramento Kubeflow, come riportato di seguito.

**Modello 1**:

```
Start Time:    2024-07-11T05:53:10Z
Events:
  Type     Reason                   Age                    From                   Message
  ----     ------                   ----                   ----                   -------
  Normal   SuccessfulCreateService  9m45s                  pytorchjob-controller  Created service: pt-job-1-worker-0
  Normal   SuccessfulCreateService  9m45s                  pytorchjob-controller  Created service: pt-job-1-worker-1
  Normal   SuccessfulCreateService  9m45s                  pytorchjob-controller  Created service: pt-job-1-master-0
  Warning  PyTorchJobRestarting     7m59s                  pytorchjob-controller  PyTorchJob pt-job-1 is restarting because 1 Master replica(s) failed.
  Normal   SuccessfulCreatePod      7m58s (x2 over 9m45s)  pytorchjob-controller  Created pod: pt-job-1-worker-0
  Normal   SuccessfulCreatePod      7m58s (x2 over 9m45s)  pytorchjob-controller  Created pod: pt-job-1-worker-1
  Normal   SuccessfulCreatePod      7m58s (x2 over 9m45s)  pytorchjob-controller  Created pod: pt-job-1-master-0
  Warning  PyTorchJobRestarting     7m58s                  pytorchjob-controller  PyTorchJob pt-job-1 is restarting because 1 Worker replica(s) failed.
```

**Modello 2**: 

```
Events:
  Type    Reason                   Age    From                   Message
  ----    ------                   ----   ----                   -------
  Normal  SuccessfulCreatePod      19m    pytorchjob-controller  Created pod: pt-job-2-worker-0
  Normal  SuccessfulCreateService  19m    pytorchjob-controller  Created service: pt-job-2-worker-0
  Normal  SuccessfulCreatePod      19m    pytorchjob-controller  Created pod: pt-job-2-master-0
  Normal  SuccessfulCreateService  19m    pytorchjob-controller  Created service: pt-job-2-master-0
  Normal  SuccessfulCreatePod      4m48s  pytorchjob-controller  Created pod: pt-job-2-worker-0
  Normal  SuccessfulCreatePod      4m48s  pytorchjob-controller  Created pod: pt-job-2-master-0
```

# HyperPod Utilizzo dell'operatore addetto alla formazione
<a name="sagemaker-eks-operator"></a>

 L'operatore di SageMaker HyperPod formazione di Amazon ti aiuta ad accelerare lo sviluppo di modelli di intelligenza artificiale generativi gestendo in modo efficiente la formazione distribuita su cluster di GPU di grandi dimensioni. Introduce funzionalità intelligenti di ripristino dai guasti, rilevamento delle interruzioni e gestione a livello di processo che riducono al minimo le interruzioni dell’addestramento e riducono i costi. A differenza dell’infrastruttura di addestramento tradizionale che richiede il riavvio completo del processo in caso di guasto, questo operatore implementa un ripristino chirurgico del processo per garantire il corretto funzionamento dei job di addestramento. 

 L'operatore collabora anche con le funzioni di monitoraggio HyperPod dello stato di salute e osservabilità, fornendo visibilità in tempo reale sull'esecuzione della formazione e il monitoraggio automatico di parametri critici come i picchi di perdita e il degrado della produttività. Puoi definire le policy di ripristino tramite semplici configurazioni YAML senza modifiche al codice, che consentono di rispondere rapidamente e ripristinare gli stati irreversibili dell’addestramento. Queste funzionalità di monitoraggio e ripristino interagiscono per garantire prestazioni di addestramento ottimali riducendo al minimo il sovraccarico operativo.

 Sebbene Kueue non sia necessario per questo operatore di addestramento, l’amministratore del cluster può installarlo e configurarlo per migliorare le capacità di pianificazione dei processi. Per ulteriori informazioni, consulta la [documentazione ufficiale di Kueue](https://kueue.sigs.k8s.io/docs/overview/).

**Nota**  
Per utilizzare l'operatore di formazione, è necessario utilizzare l'ultima [versione HyperPod AMI](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-release-ami-eks.html). Per eseguire l'aggiornamento, utilizzate l'operazione [ UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API. Se utilizzi la [governance delle HyperPod attività](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-governance.html), deve essere anche la versione più recente.

## Versioni supportate
<a name="sagemaker-eks-operator-supported-versions"></a>

 L'operatore di HyperPod formazione funziona solo con versioni specifiche di Kubernetes, Kueue e. HyperPod Consulta l’elenco seguente per conoscere tutte le versioni compatibili. 
+ Versioni di Kubernetes supportate: 1.28, 1.29, 1.30, 1.31, 1.32 e 1.33
+ Versioni di Kueue consigliate: [v.0.12.2](https://github.com/kubernetes-sigs/kueue/releases/tag/v0.12.2) e [v.0.12.3](https://github.com/kubernetes-sigs/kueue/releases/tag/v0.12.3)
+ L'ultima versione HyperPod AMI. Per eseguire l'aggiornamento alla versione AMI più recente, utilizza l'[ UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API.
+ [PyTorch 2.4.0 — 2.7.1](https://github.com/pytorch/pytorch/releases)

**Nota**  
Raccogliamo determinate metriche operative aggregate e anonime di routine per fornire la disponibilità essenziale del servizio. La creazione di queste metriche è completamente automatizzata e non prevede la revisione umana del carico di lavoro di formazione del modello sottostante. Queste metriche riguardano le operazioni lavorative, la gestione delle risorse e le funzionalità essenziali dei servizi.

# Installazione dell’operatore di addestramento
<a name="sagemaker-eks-operator-install"></a>

Consulta le sezioni seguenti per ulteriori informazioni su come installare l’operatore di addestramento.

## Prerequisiti
<a name="sagemaker-eks-operator-prerequisites"></a>

 Prima di utilizzare l'operatore HyperPod di formazione, è necessario aver completato i seguenti prerequisiti: 
+  [Creato un HyperPod cluster con l'orchestrazione di Amazon EKS](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-create-cluster.html). 
+ Hai installato l'AMI più recente sul tuo HyperPod cluster. Per ulteriori informazioni, consulta [SageMaker HyperPod Versioni AMI per Amazon EKS](sagemaker-hyperpod-release-ami-eks.md).
+ [Hai installato cert-manager](https://cert-manager.io/docs/installation/).
+  [Hai configurato l’agente EKS Pod Identity dalla console](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-agent-setup.html). Se desideri utilizzare il AWS CLI, usa il seguente comando: 

  ```
  aws eks create-addon \ 
   --cluster-name my-eks-cluster \
   --addon-name eks-pod-identity-agent \
   --region Regione AWS
  ```
+ (Facoltativo) Se esegui i nodi HyperPod del cluster in un VPC privato, devi configurare gli endpoint PrivateLinks VPC per l'API Amazon AI (`com.amazonaws.aws-region.sagemaker.api`) e i servizi di autenticazione SageMaker Amazon EKS (com.amazonaws). *aws-region*.eks-auth). È inoltre necessario assicurarsi che i nodi del cluster funzionino con sottoreti che fanno parte di un gruppo di sicurezza che consente al traffico di instradare il traffico attraverso gli endpoint VPC per comunicare con AI SageMaker e Amazon EKS. Se questi non sono configurati correttamente, l'installazione del componente aggiuntivo può fallire. Per ulteriori informazioni sulla configurazione degli endpoint VPC, consulta Creare [un endpoint VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws).

## Installazione dell’operatore di addestramento
<a name="sagemaker-eks-operator-install-operator"></a>

 Ora puoi installare l'operatore di HyperPod formazione tramite la console SageMaker AI, la console Amazon EKS o con i metodi AWS CLI La console offrono esperienze semplificate che ti aiutano a installare l'operatore. AWS CLI Offre un approccio programmatico che consente di personalizzare una parte maggiore dell'installazione.

Tra le due esperienze di console, l' SageMaker intelligenza artificiale fornisce un'installazione con un solo clic, crea il ruolo di esecuzione IAM, crea l'associazione di identità del pod e installa l'operatore. L’installazione con la console di Amazon EKS è simile, ma non crea automaticamente il ruolo di esecuzione IAM. Durante questo processo, puoi scegliere di creare un nuovo ruolo di esecuzione IAM con le informazioni precompilate dalla console. Per impostazione predefinita, i ruoli che crei hanno accesso solo al cluster corrente in cui stai installando l’operatore. A meno che non modifichi le autorizzazioni del ruolo per includere altri cluster, devi creare un nuovo ruolo se rimuovi e reinstalli l’operatore. 

------
#### [ SageMaker AI console (recommended) ]

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Vai alla pagina dei dettagli del cluster.

1. Nella scheda **Dashboard**, individua il componente aggiuntivo denominato **Amazon SageMaker HyperPod training operator** e scegli **installa**. Durante il processo di installazione, l' SageMaker intelligenza artificiale crea un ruolo di esecuzione IAM con autorizzazioni simili alla policy [ AmazonSageMakerHyperPodTrainingOperatorAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerHyperPodTrainingOperatorAccess.html)gestita e crea un'associazione di identità del pod tra il cluster Amazon EKS e il nuovo ruolo di esecuzione.

------
#### [ Amazon EKS console ]

**Nota**  
Se installi il componente aggiuntivo tramite il cluster Amazon EKS, assicurati innanzitutto di aver taggato il HyperPod cluster con la coppia chiave-valore. `SageMaker:true` In caso contrario, l’installazione non riuscirà.

1. Apri la console Amazon EKS a [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. Vai al cluster EKS, scegli **Componenti aggiuntivi**, quindi seleziona **Ottieni altri componenti aggiuntivi**.

1. Scegli Amazon SageMaker HyperPod Training Operator, quindi scegli **Avanti**.

1. In **Versione**, consigliamo di utilizzare l’impostazione predefinita della console, ovvero la versione più recente.

1. In **Accesso aggiuntivo**, scegli un ruolo IAM per Pod Identity da utilizzare con il componente aggiuntivo dell’operatore di addestramento. Se non disponi già di un ruolo, scegli **Crea ruolo consigliato** per crearne uno.

1. Durante questo processo di creazione del ruolo, la console IAM precompila tutte le informazioni necessarie, come il caso d'uso, la policy [ AmazonSageMakerHyperPodTrainingOperatorAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerHyperPodTrainingOperatorAccess.html)gestita e le altre autorizzazioni richieste, il nome del ruolo e la descrizione. Prosegui con le varie fasi, controlla le informazioni e scegli **Crea ruolo**.

1. Nella console EKS, rivedi le impostazioni del componente aggiuntivo, quindi scegli **Crea**.

------
#### [ CLI ]

1. Assicurati che il ruolo di esecuzione IAM per il tuo HyperPod cluster abbia una relazione di fiducia che consenta a EKS Pod Identity di assumere il ruolo o di [creare un nuovo ruolo IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) con la seguente politica di fiducia. In alternativa, puoi utilizzare la console di Amazon EKS per installare il componente aggiuntivo, che crea un ruolo consigliato.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "AllowEksAuthToAssumeRoleForPodIdentity",
         "Effect": "Allow",
         "Principal": {
           "Service": "pods.eks.amazonaws.com"
         },
         "Action": [
           "sts:AssumeRole",
           "sts:TagSession",
           "eks-auth:AssumeRoleForPodIdentity"
         ]
       }
     ]
   }
   ```

------

1.  Allega la [policy AmazonSageMakerHyperPodTrainingOperatorAccess gestita](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerHyperPodTrainingOperatorAccess.html) al ruolo che hai creato. 

1.  [Quindi, crea un’associazione Pod Identity tra il cluster EKS, il ruolo IAM e il nuovo ruolo IAM](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html).

   ```
   aws eks create-pod-identity-association \
   --cluster-name my-eks-cluster \
   --role-arn ARN of your execution role \
   --namespace aws-hyperpod \
   --service-account hp-training-operator-controller-manager \
   --region Regione AWS
   ```

1.  Al termine del processo, è possibile utilizzare l' ListPodIdentityAssociations operazione per visualizzare l'associazione creata. Il possibile aspetto è mostrato nella seguente risposta di esempio. 

   ```
   aws eks list-pod-identity-associations --cluster-name my-eks-cluster
   {
       "associations": [{
           "clusterName": "my-eks-cluster",
           "namespace": "aws-hyperpod",
           "serviceAccount": "hp-training-operator-controller-manager",
           "associationArn": "arn:aws:eks:us-east-2:123456789012:podidentityassociation/my-hyperpod-cluster/a-1a2b3c4d5e6f7g8h9",
           "associationId": "a-1a2b3c4d5e6f7g8h9"
       }]
   }
   ```

1. Per installare l’operatore di addestramento, utilizza l’operazione `create-addon`. Il parametro `--addon-version` è facoltativo. Se non ne fornisci uno, l’impostazione predefinita è la versione più recente. Per ottenere le versioni possibili, utilizzate l'[ DescribeAddonVersions](https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html)operazione.

   ```
   aws eks create-addon \
     --cluster-name my-eks-cluster \
     --addon-name amazon-sagemaker-hyperpod-training-operator \
     --resolve-conflicts OVERWRITE
   ```

------

Se hai già installato l'operatore di formazione sul tuo HyperPod cluster, puoi aggiornare il componente aggiuntivo EKS alla versione che desideri. Se desideri utilizzare l'[allenamento senza checkpoint o l'allenamento](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless.html) [elastico](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-elastic-training.html), considera quanto segue:
+ Sia l'allenamento senza checkpoint che l'allenamento elastico richiedono che il componente aggiuntivo EKS sia nella versione 1.2.0 o successiva.
+ L'operatore di SageMaker HyperPod formazione di Amazon mantiene la retrocompatibilità per qualsiasi versione aggiuntiva EKS, quindi puoi eseguire l'aggiornamento da qualsiasi versione aggiuntiva alla 1.2.0 o superiore.
+ Se effettui il downgrade dalla versione 1.2.0 o successiva a una versione precedente, devi prima eliminare i lavori esistenti prima del downgrade e inviare nuovamente i lavori dopo il completamento del downgrade.

------
#### [ Amazon EKS Console ]

1. Apri la console Amazon EKS a [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. **Vai al tuo cluster EKS e scegli Componenti aggiuntivi.** Quindi, scegli il componente aggiuntivo Amazon SageMaker HyperPod Training Operator e scegli **Modifica**.

1. Nel menu **Versione**, scegli la versione del componente aggiuntivo che desideri, quindi scegli **Salva** modifiche.

------
#### [ CLI ]

1. Per prima cosa ottieni l'elenco delle versioni supportate del componente aggiuntivo per il tuo cluster.

   ```
   aws eks describe-addon-versions \
     --kubernetes-version $(aws eks describe-cluster --name my-eks-cluster --query 'cluster.version' --output text) \
     --addon-name amazon-sagemaker-hyperpod-training-operator \
     --query 'addons[0].addonVersions[].addonVersion' \
     --output table
   ```

1. Quindi aggiorna il componente aggiuntivo alla versione che desideri.

   ```
   aws eks update-addon \
     --cluster-name my-eks-cluster \
     --addon-name amazon-sagemaker-hyperpod-training-operator \
     --addon-version target-version
     --resolve-conflicts OVERWRITE
   ```

------

 L’operatore di addestramento offre diverse opzioni con valori predefiniti che potrebbero essere adatte al tuo caso d’uso. Prima di modificarle, consigliamo di provare l’operatore di addestramento con i valori predefiniti. La tabella seguente descrive tutti i parametri e gli esempi che spiegano quando potrebbe essere utile configurare i singoli parametri.


| Parametro | Description | Predefinita | 
| --- | --- | --- | 
| hpTrainingControllerManager.Manager.Resources.Requests.CPU | Quanti processori allocare per il controller | 1 | 
| hpTrainingControllerManager.Manager.Resources.Requests.Memoria | Quanta memoria allocare per il controller | 2Gi | 
| hpTrainingControllerManager.Manager.Resources.Limits.CPU | Il limite della CPU per il controller | 2 | 
| hpTrainingControllerManager.Manager.Resources.Limits.Memoria | Il limite della memoria per il controller | 4Gi | 
| hpTrainingControllerManager.NodeSelector | Selettore di nodi per i pod del controller | Il comportamento predefinito consiste nel selezionare i nodi con l’etichetta sagemaker.amazonaws.com/compute-type: "HyperPod" | 

## HyperPod agente elastico
<a name="sagemaker-eks-operator-elastic-agent"></a>

L'agente HyperPod elastico è un'estensione [PyTorchdi s ElasticAgent](https://docs.pytorch.org/docs/stable/elastic/agent.html). Orchestra i cicli di vita dei lavoratori addetti alla formazione su ogni container e comunica con l'operatore addetto alla formazione. HyperPod Per utilizzare l'operatore addetto alla HyperPod formazione, è necessario installare l'agente HyperPod elastico nell'immagine di formazione prima di poter inviare ed eseguire i lavori utilizzando l'operatore. Il seguente è un file Docker che installa l’agente elastico e utilizza `hyperpodrun` per creare l’utilità di avvio dei processi.

**Nota**  
Sia l'[allenamento senza checkpoint che l'allenamento](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless.html) [elastico](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-elastic-training.html) richiedono l'utilizzo della versione 1.1.0 o successiva di HyperPod elastic agent.

```
RUN pip install hyperpod-elastic-agent

ENTRYPOINT ["entrypoint.sh"]
# entrypoint.sh
...
hyperpodrun --nnodes=node_count --nproc-per-node=proc_count \
            --rdzv-backend hyperpod \ # Optional
            --inprocess-restart \ # Optional (in-process fault recovery with checkpointless training)
            ... # Other torchrun args
            # pre-traing arg_group
            --pre-train-script pre.sh --pre-train-args "pre_1 pre_2 pre_3" \
            # post-train arg_group
            --post-train-script post.sh --post-train-args "post_1 post_2 post_3" \
            training.py --script-args
```

Ora puoi inviare processi con `kubectl`.

### HyperPod argomenti dell'agente elastico
<a name="sagemaker-eks-operator-elastic-agent-args"></a>

 L'agente HyperPod elastico supporta tutti gli argomenti originali e aggiunge alcuni argomenti aggiuntivi. Di seguito sono riportati tutti gli argomenti disponibili nell'agente HyperPod elastico. Per ulteriori informazioni su PyTorch Elastic Agent, consulta la loro [documentazione ufficiale](https://docs.pytorch.org/docs/stable/elastic/agent.html). 


| Argomento | Description | Valore predefinito | 
| --- | --- | --- | 
| --shutdown-signal | Segnale da inviare ai worker per lo spegnimento (SIGTERM o SIGKILL) | “SIGKILL” | 
| --shutdown-timeout | Timeout in secondi tra il segnale di spegnimento e i segnali SIGKILL | 15 | 
| --server-host | Indirizzo del server dell’agente | “0.0.0.0” | 
| --server-port | Porta del server dell’agente | 8080 | 
| --server-log-level | Livello dei log del server dell’agente | “info” | 
| --server-shutdown-timeout | Timeout di spegnimento del server in secondi | 300 | 
| --pre-train-script | Percorso dello script di preaddestramento | Nessuno | 
| --pre-train-args | Argomenti per lo script di preaddestramento | Nessuno | 
| --post-train-script | Percorso dello script di post-addestramento | Nessuno | 
| --post-train-args | Argomenti per lo script di post-addestramento | Nessuno | 
| --inprocess-restart | Contrassegno che specifica se utilizzare la funzionalità inprocess\$1restart | FALSE | 
| --inprocess-timeout | Tempo in secondi in cui l'agente attende che i lavoratori raggiungano una barriera di sincronizzazione prima di attivare un riavvio a livello di processo. | Nessuno | 

## Governance delle attività (facoltativo)
<a name="sagemaker-eks-operator-task-governance"></a>

L'operatore di formazione è integrato con la [governance delle HyperPod attività](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-governance), un robusto sistema di gestione progettato per semplificare l'allocazione delle risorse e garantire un utilizzo efficiente delle risorse di elaborazione tra team e progetti per i cluster Amazon EKS. Per configurare la governance delle attività, consulta. HyperPod [Configurazione per la governance SageMaker HyperPod delle attività](sagemaker-hyperpod-eks-operate-console-ui-governance-setup.md) 

**Nota**  
Quando si installa il componente aggiuntivo per la governance delle HyperPod attività, è necessario utilizzare la versione v1.3.0-eksbuild.1 o successiva.

Quando invii un processo, assicurati di includere il nome della coda e le etichette della classe di priorità di `hyperpod-ns-team-name-localqueue` e `priority-class-name-priority`. Ad esempio, se utilizzi Kueue, le etichette diventano:
+ *team-name*kueue.x-k8s.io/queue-name: hyperpod-ns- -localqueue
+ kueue.x-k8s.io/priority-class: -name-priority *priority-class*

Di seguito è riportato un esempio di come potrebbe essere il tuo file di configurazione:

```
apiVersion: sagemaker.amazonaws.com/v1
kind: HyperPodPytorchJob
metadata:
  name: hp-task-governance-sample
  namespace: hyperpod-ns-team-name
  labels:
    kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue
    kueue.x-k8s.io/priority-class: priority-class-priority
spec:
  nprocPerNode: "1"
  runPolicy:
    cleanPodPolicy: "None"
  replicaSpecs: 
    - name: pods
      replicas: 4
      spares: 2
      template:
        spec:
          containers:
            - name: ptjob
              image: XXXX
              imagePullPolicy: Always
              ports:
                - containerPort: 8080
              resources:
                requests:
                  cpu: "2"
```

Quindi utilizza il comando kubectl seguente per applicare il file YAML.

```
kubectl apply -f task-governance-job.yaml
```

## Kueue (facoltativo)
<a name="sagemaker-eks-operator-kueue"></a>

Sebbene sia possibile eseguire direttamente i processi, l’organizzazione può anche integrare l’operatore di addestramento con Kueue per allocare le risorse e pianificare i processi. Segui i passaggi seguenti per installare Kueue nel tuo cluster. HyperPod 

1. Segui le istruzioni di installazione nella [documentazione ufficiale di Kueue](https://kueue.sigs.k8s.io/docs/installation/#install-a-custom-configured-released-version). Quando raggiungi la fase di configurazione di `controller_manager_config.yaml`, aggiungi la configurazione seguente:

   ```
   externalFrameworks:
   - "HyperPodPytorchJob.v1.sagemaker.amazonaws.com"
   ```

1. Segui le altre fasi indicate nella guida di installazione ufficiale. Dopo aver terminato l’installazione di Kueue, puoi creare alcune code di esempio con il comando `kubectl apply -f sample-queues.yaml`. Utilizza il file YAML seguente.

   ```
   apiVersion: kueue.x-k8s.io/v1beta1
   kind: ClusterQueue
   metadata:
     name: cluster-queue
   spec:
     namespaceSelector: {}
     preemption:
       withinClusterQueue: LowerPriority
     resourceGroups:
     - coveredResources:
       - cpu
       - nvidia.com/gpu
       - pods
       flavors:
       - name: default-flavor
         resources:
         - name: cpu
           nominalQuota: 16
         - name: nvidia.com/gpu
           nominalQuota: 16
         - name: pods
           nominalQuota: 16
   ---
   apiVersion: kueue.x-k8s.io/v1beta1
   kind: LocalQueue
   metadata:
     name: user-queue
     namespace: default
   spec:
     clusterQueue: cluster-queue
   ---
   apiVersion: kueue.x-k8s.io/v1beta1
   kind: ResourceFlavor
   metadata:
     name: default-flavor
   ---
   apiVersion: kueue.x-k8s.io/v1beta1
   description: High priority
   kind: WorkloadPriorityClass
   metadata:
     name: high-priority-class
   value: 1000
   ---
   apiVersion: kueue.x-k8s.io/v1beta1
   description: Low Priority
   kind: WorkloadPriorityClass
   metadata:
     name: low-priority-class
   value: 500
   ```

# Utilizzo dell’operatore di addestramento per eseguire i processi
<a name="sagemaker-eks-operator-usage"></a>

 Per eseguire i processi con kubectl, devi creare un file job.yaml con le specifiche del processo ed eseguire `kubectl apply -f job.yaml` per inviare il processo. In questo file YAML, puoi specificare configurazioni personalizzate nell’argomento `logMonitoringConfiguration` per definire le regole di monitoraggio automatizzato che analizzano gli output dei log dei job di addestramento distribuito per rilevare problemi ed eseguire il ripristino. 

```
apiVersion: sagemaker.amazonaws.com/v1
kind: HyperPodPyTorchJob
metadata:
  labels:
    app.kubernetes.io/name: HyperPod
    app.kubernetes.io/managed-by: kustomize
  name: &jobname xxx
  annotations:
    XXX: XXX
    ......
spec:
  nprocPerNode: "X"
  replicaSpecs:
    - name: 'XXX'
      replicas: 16
      template:
        spec:
          nodeSelector:
            beta.kubernetes.io/instance-type: ml.p5.48xlarge
          containers:
            - name: XXX
              image: XXX
              imagePullPolicy: Always
              ports:
                - containerPort: 8080 # This is the port that HyperPodElasticAgent listens to
              resources:
                limits:
                  nvidia.com/gpu: 8
                  hugepages-2Mi: 5120Mi
                requests:
                  nvidia.com/gpu: 8
                  hugepages-2Mi: 5120Mi
                  memory: 32000Mi
          ......        
  runPolicy:
    jobMaxRetryCount: 50
    restartPolicy:
      numRestartBeforeFullJobRestart: 3 
      evalPeriodSeconds: 21600 
      maxFullJobRestarts: 1
    cleanPodPolicy: "All"
    logMonitoringConfiguration: 
      - name: "JobStart"
        logPattern: ".*Experiment configuration.*" # This is the start of the training script
        expectedStartCutOffInSeconds: 120 # Expected match in the first 2 minutes
      - name: "JobHangingDetection"
        logPattern: ".*\\[Epoch 0 Batch \\d+.*'training_loss_step': (\\d+(\\.\\d+)?).*"
        expectedRecurringFrequencyInSeconds: 300 # If next batch is not printed within 5 minute, consider it hangs. Or if loss is not decimal (e.g. nan) for 2 minutes, mark it hang as well.
        expectedStartCutOffInSeconds: 600 # Allow 10 minutes of job startup time
      - name: "NoS3CheckpointingDetection"
        logPattern: ".*The checkpoint is finalized. All shards is written.*"
        expectedRecurringFrequencyInSeconds: 600 # If next checkpoint s3 upload doesn't happen within 10 mins, mark it hang.
        expectedStartCutOffInSeconds: 1800 # Allow 30 minutes for first checkpoint upload
      - name: "LowThroughputDetection"
        logPattern: ".*\\[Epoch 0 Batch \\d+.*'samples\\/sec': (\\d+(\\.\\d+)?).*"
        metricThreshold: 80 # 80 samples/sec
        operator: "lteq"
        metricEvaluationDataPoints: 25 # if throughput lower than threshold for 25 datapoints, kill the job
```

Se desideri utilizzare le opzioni di monitoraggio del registro, assicurati di inviare il registro di allenamento a. `sys.stdout` HyperPod elastic agent monitora i log di allenamento in sys.stdout, che viene salvato in. `/tmp/hyperpod/` Per emettere i log di addestramento, puoi utilizzare il comando seguente.

```
logging.basicConfig(format="%(asctime)s [%(levelname)s] %(name)s: %(message)s", level=logging.INFO, stream=sys.stdout)
```

 Nella tabella seguente sono descritte tutte le possibili configurazioni di monitoraggio dei log: 


| Parametro | Utilizzo | 
| --- | --- | 
| jobMaxRetryConta | Numero massimo di riavvii a livello di processo. | 
| Politica di riavvio: numRestartBefore FullJobRestart | Numero massimo di riavvii a livello di processo prima che l’operatore si riavvii a livello di processo. | 
| Politica di riavvio: evalPeriodSeconds | Periodo di valutazione del limite di riavvio in secondi. | 
| Politica di riavvio: riavvio maxFullJob | Numero massimo di riavvii completi del processo prima dell’errore del processo. | 
| cleanPodPolicy | Specifica i pod che l’operatore deve pulire. I valori accettati sono All, OnlyComplete e None. | 
| logMonitoringConfiguration | Le regole di monitoraggio dei log per il rilevamento di processi lenti e sospesi. | 
| expectedRecurringFrequencyInSeconds | Intervallo di tempo tra due LogPattern partite consecutive dopo il quale la regola restituisce HANGING. Se non specificato, non esiste alcun vincolo di tempo tra partite consecutive. LogPattern  | 
| expectedStartCutOffInSeconds | Tempo intercorso dalla prima LogPattern partita dopo il quale la regola restituisce HANGING. Se non specificato, non esiste alcun vincolo di tempo per la prima partita. LogPattern  | 
| logPattern | Espressione regolare che identifica le righe del log a cui si applica la regola quando è attiva. | 
| metricEvaluationDataPunti | Numero di volte consecutive in cui una regola restituisce SLOW prima di contrassegnare un processo come SLOW. Se il valore non viene specificato, viene usato il valore predefinito 1. | 
| metricThreshold | Soglia per il valore estratto da LogPattern con un gruppo di acquisizione. Se non specificato, la valutazione delle metriche non viene eseguita. | 
| operatore | La disuguaglianza da applicare alla configurazione del monitoraggio. I valori accettati sono gt, gteq, lt, lteq e eq. | 
| stopPattern | Espressione regolare per identificare la riga del log in corrispondenza della quale disattivare la regola. Se non viene specificata, la regola sarà sempre attiva. | 
| faultOnMatch | Indica se una corrispondenza di LogPattern deve causare immediatamente un errore di lavoro. Se impostato su true, il lavoro verrà contrassegnato come guasto non appena verrà trovato il LogPattern risultato, indipendentemente dagli altri parametri della regola. Se falsa o non è specificata, la regola verrà valutata come SLOW o HANGING in base ad altri parametri. | 

 Per una maggiore resilienza dell’addestramento, specifica i dettagli di configurazione dei nodi di riserva. Se il processo non riesce, l’operatore ricorre a Kueue per utilizzare i nodi riservati in anticipo per continuare a eseguire il processo. Le configurazioni dei nodi di riserva richiedono Kueue. Di conseguenza, se provi a inviare un processo con nodi di riserva ma Kueue non è installato, il processo non riuscirà. L’esempio seguente è un file `job.yaml` di esempio che contiene le configurazioni dei nodi di riserva.

```
apiVersion: sagemaker.amazonaws.com/v1
kind: HyperPodPyTorchJob
metadata:
  labels:
    kueue.x-k8s.io/queue-name: user-queue # Specify the queue to run the job.
  name: hyperpodpytorchjob-sample
spec:
  nprocPerNode: "1"
  runPolicy:
    cleanPodPolicy: "None"
  replicaSpecs: 
    - name: pods
      replicas: 1
      spares: 1 # Specify how many spare nodes to reserve.
      template:
        spec:
          containers:
            - name: XXX
              image: XXX
              
              imagePullPolicy: Always
              ports:
                - containerPort: 8080
              resources:
                requests:
                  nvidia.com/gpu: "0"
                limits:
                  nvidia.com/gpu: "0"
```

## Monitoraggio
<a name="sagemaker-eks-operator-usage-monitoring"></a>

Amazon SageMaker HyperPod è integrato con l'[osservabilità con Amazon Managed Grafana e Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-observability-addon.html), quindi puoi configurare il monitoraggio per raccogliere e inserire i parametri in questi strumenti di osservabilità.

In alternativa, puoi acquisire le metriche tramite Servizio gestito da Amazon per Prometheus senza la funzionalità di osservabilità gestita. A tale scopo, includi nel file `job.yaml` le metriche da monitorare quando esegui i processi con `kubectl`.

```
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: hyperpod-training-operator
  namespace: aws-hyperpod
spec:
  ......
  endpoints:
    - port: 8081
      path: /metrics
      interval: 15s
```

Di seguito sono riportati gli eventi emessi dall’operatore di addestramento che puoi inserire in Servizio gestito da Amazon per Prometheus per monitorare i job di addestramento.


| Event | Description | 
| --- | --- | 
| hyperpod\$1training\$1operator\$1jobs\$1created\$1total | Numero totale di processi eseguiti dall’operatore di addestramento | 
| hyperpod\$1training\$1operator\$1jobs\$1restart\$1latency | Latenza di riavvio del processo corrente | 
| hyperpod\$1training\$1operator\$1jobs\$1fault\$1detection\$1latency | Latenza di rilevamento guasti | 
| hyperpod\$1training\$1operator\$1jobs\$1deleted\$1total | Numero totale di processi eliminati | 
| hyperpod\$1training\$1operator\$1jobs\$1successful\$1total | Numero totale di processi completati | 
| hyperpod\$1training\$1operator\$1jobs\$1failed\$1total | Numero totale di processi non riusciti | 
| hyperpod\$1training\$1operator\$1jobs\$1restarted\$1total | Numero totale di processi riavviati automaticamente | 

## Configurazione Docker di esempio
<a name="sagemaker-eks-operator-usage-docker"></a>

Di seguito è riportato un file Docker di esempio che puoi eseguire con il comando `hyperpod run`.

```
export AGENT_CMD="--backend=nccl"
exec hyperpodrun --server-host=${AGENT_HOST} --server-port=${AGENT_PORT} \
    --tee=3 --log_dir=/tmp/hyperpod \
    --nnodes=${NNODES} --nproc-per-node=${NPROC_PER_NODE} \
    --pre-train-script=/workspace/echo.sh --pre-train-args='Pre-training script' \
    --post-train-script=/workspace/echo.sh --post-train-args='Post-training script' \
    /workspace/mnist.py --epochs=1000 ${AGENT_CMD}
```

## Configurazioni di esempio per il monitoraggio dei log
<a name="sagemaker-eks-operator-usage-log-monitoring"></a>

**Rilevamento di processi bloccati**

Per rilevare i processi bloccati, utilizza le configurazioni seguenti con questi parametri:
+ expectedStartCutOffInSeconds — quanto tempo deve attendere il monitor prima di aspettarsi i primi log
+ expectedRecurringFrequencyInSeconds — l'intervallo di tempo di attesa per il successivo lotto di log

Con queste impostazioni, il monitoraggio dei log prevede di visualizzare una riga del log corrispondente al modello regex `.*Train Epoch.*` entro 60 secondi dall’inizio del job di addestramento. Dopo la prima occorrenza, il monitoraggio prevede di rilevare righe del log corrispondenti ogni 10 secondi. Se i primi registri non vengono visualizzati entro 60 secondi o i registri successivi non vengono visualizzati ogni 10 secondi, l'agente HyperPod elastico considera il contenitore bloccato e si coordina con l'operatore addetto alla formazione per riavviare il lavoro.

```
runPolicy:
    jobMaxRetryCount: 10
    cleanPodPolicy: "None"
    logMonitoringConfiguration:
      - name: "JobStartGracePeriod"
        # Sample log line: [default0]:2025-06-17 05:51:29,300 [INFO] __main__: Train Epoch: 5 [0/60000 (0%)]       loss=0.8470
        logPattern: ".*Train Epoch.*"  
        expectedStartCutOffInSeconds: 60 
      - name: "JobHangingDetection"
        logPattern: ".*Train Epoch.*"
        expectedRecurringFrequencyInSeconds: 10 # if the next batch is not printed within 10 seconds
```

**Picco di perdita dell’addestramento**

La configurazione del monitoraggio seguente emette log di addestramento con il modello `xxx training_loss_step xx`. Utilizza il parametro `metricEvaluationDataPoints`, che consente di specificare una soglia di punti dati prima che l’operatore riavvii il processo. Se il valore di perdita dell’addestramento è superiore a 2,0, l’operatore riavvia il processo.

```
runPolicy:
  jobMaxRetryCount: 10
  cleanPodPolicy: "None"
  logMonitoringConfiguration:
    - name: "LossSpikeDetection"
      logPattern: ".*training_loss_step (\\d+(?:\\.\\d+)?).*"   # training_loss_step 5.0
      metricThreshold: 2.0
      operator: "gt"
      metricEvaluationDataPoints: 5 # if loss higher than threshold for 5 data points, restart the job
```

**Rilevamento basso TFLOPs **

La configurazione del monitoraggio seguente emette log di addestramento con il modello `xx TFLOPs xx` ogni cinque secondi. Se TFLOPs è inferiore a 100 per 5 punti dati, l'operatore riavvia il processo di formazione.

```
runPolicy:
  jobMaxRetryCount: 10
  cleanPodPolicy: "None"
  logMonitoringConfiguration:
    - name: "TFLOPs"
      logPattern: ".* (.+)TFLOPs.*"    # Training model, speed: X TFLOPs...
      expectedRecurringFrequencyInSeconds: 5        
      metricThreshold: 100       # if Tflops is less than 100 for 5 data points, restart the job       
      operator: "lt"
      metricEvaluationDataPoints: 5
```

**Rilevamento del registro degli errori dello script di allenamento**

La seguente configurazione di monitoraggio rileva se il modello specificato in `logPattern` è presente nei registri di addestramento. Non appena l'operatore addetto alla formazione rileva lo schema di errore, lo considera un guasto e riavvia il lavoro.

```
runPolicy:
  jobMaxRetryCount: 10
  cleanPodPolicy: "None"
  logMonitoringConfiguration:
    - name: "GPU Error"
      logPattern: ".*RuntimeError.*out of memory.*"
      faultOnMatch: true
```

# Risoluzione dei problemi
<a name="sagemaker-eks-operator-troubleshooting"></a>

Consulta le sezioni seguenti per scoprire come risolvere gli errori relativi all’utilizzo dell’operatore di addestramento.

## Non riesco a installare l’operatore di addestramento
<a name="sagemaker-eks-operator-troubleshooting-installation-error"></a>

Se non riesci a installare l’operatore di addestramento, assicurati di utilizzare le [versioni supportate dei componenti](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html#sagemaker-eks-operator-supported-versions). Ad esempio, se ricevi un errore che indica che la tua versione HyperPod AMI è incompatibile con l'operatore di formazione, esegui [l'aggiornamento alla versione più recente](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html).

## Versione di HyperPod task governance incompatibile
<a name="sagemaker-eks-operator-troubleshooting-task-governance-version"></a>

Durante l'installazione, è possibile che venga visualizzato un messaggio di errore indicante che la versione di HyperPod task governance è incompatibile. L’operatore di addestramento funziona solo con la versione v1.3.0-eksbuild.1 o successive. Aggiorna il componente aggiuntivo per la governance delle HyperPod attività e riprova. 

## Autorizzazioni mancanti
<a name="sagemaker-eks-operator-troubleshooting-task-missing-permissions"></a>

 Durante la configurazione dell’operatore di addestramento o l’esecuzione dei processi, potresti ricevere errori che indicano che manca l’autorizzazione per eseguire determinate operazioni, ad esempio `DescribeClusterNode`. Per risolvere questi errori, assicurati di configurare correttamente le autorizzazioni IAM quando [configuri Amazon EKS Pod Identity Agent](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator-install.html#sagemaker-eks-operator-install-pod-identity).

# Utilizzo dell'allenamento elastico in Amazon SageMaker HyperPod
<a name="sagemaker-eks-elastic-training"></a>

 Elastic Training è una nuova SageMaker HyperPod funzionalità di Amazon che ridimensiona automaticamente i lavori di formazione in base alla disponibilità delle risorse di calcolo e alla priorità del carico di lavoro. I lavori di formazione elastica possono iniziare con le risorse di calcolo minime necessarie per l'addestramento dei modelli e scalare dinamicamente verso l'alto o verso il basso attraverso il checkpoint e la ripresa automatici su diverse configurazioni di nodi (a dimensione mondiale). La scalabilità si ottiene regolando automaticamente il numero di repliche parallele dei dati. Durante i periodi di utilizzo elevato del cluster, è possibile configurare processi di formazione elastici in modo da ridurli automaticamente in risposta alle richieste di risorse provenienti da lavori con priorità più elevata, liberando l'elaborazione per carichi di lavoro critici. Quando le risorse si liberano durante i periodi non di punta, i job di formazione elastica vengono ridimensionati automaticamente verso l'alto per accelerare la formazione, per poi ridurli quando i carichi di lavoro con priorità più alta richiedono nuovamente risorse. 

Elastic Training si basa sull'operatore addetto alla HyperPod formazione e integra i seguenti componenti:
+ [Amazon EKS per l'orchestrazione di Kubernetes](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks.html)
+ [Amazon SageMaker HyperPod Task Governance](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-governance.html) per l'accodamento, l'assegnazione delle priorità e la pianificazione dei lavori
+ [PyTorch Distributed Checkpoint (DCP)](https://docs.pytorch.org/docs/stable/distributed.checkpoint.html) per una gestione scalabile dello stato e dei checkpoint, come DCP

**Framework supportati**
+ PyTorch con Distributed Data Parallel (DDP) e Fully Sharded Data Parallel (FSDP)
+ PyTorch Checkpoint distribuito (DCP)

## Prerequisiti
<a name="sagemaker-eks-elastic-prereqs"></a>

### SageMaker HyperPod Cluster EKS
<a name="sagemaker-eks-elastic-hyperpod-cluster"></a>

È necessario disporre di un SageMaker HyperPod cluster in esecuzione con orchestrazione Amazon EKS. Per informazioni sulla creazione di un cluster HyperPod EKS, consulta:
+ [Guida introduttiva ad Amazon EKS in SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Creazione di un SageMaker HyperPod cluster con l'orchestrazione di Amazon EKS](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-create-cluster.html)

### SageMaker HyperPod Operatore di formazione
<a name="sagemaker-eks-elastic-training-operator"></a>

Elastic Training è supportato nella versione 1.2 e successive di training operator.

Per installare l'operatore di formazione come componente aggiuntivo EKS, vedi: [https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker- .html eks-operator-install](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator-install.html)

### (Consigliato) Installa e configura Task Governance e Kueue
<a name="sagemaker-eks-elastic-task-governance"></a>

Consigliamo di installare e configurare Kueue tramite [HyperPod Task Governance](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-governance.html) per specificare le priorità dei carichi di lavoro con un training elastico. Kueue offre una gestione più efficace del carico di lavoro con code, prioritizzazione, pianificazione dei gruppi, monitoraggio delle risorse e prelazione, essenziali per operare in ambienti di formazione multi-tenant.
+ La pianificazione in gruppo garantisce che tutti i moduli necessari per un lavoro di formazione inizino insieme. In questo modo si evitano situazioni in cui alcuni pod vengono avviati mentre altri rimangono in sospeso, il che potrebbe causare uno spreco di risorse.
+ La priorità delicata consente ai lavori elastici con priorità più bassa di destinare risorse a carichi di lavoro con priorità più elevata. I lavori elastici possono essere ridimensionati senza essere sfrattati con la forza, migliorando la stabilità complessiva del cluster.

Consigliamo di configurare i seguenti componenti Kueue:
+ PriorityClasses per definire l'importanza relativa del lavoro
+ ClusterQueues per gestire la condivisione globale delle risorse e le quote tra team o carichi di lavoro
+ LocalQueues per indirizzare i lavori dai singoli namespace a quelli appropriati ClusterQueue

Per configurazioni più avanzate, puoi anche incorporare:
+ Politiche di condivisione equa per bilanciare l'utilizzo delle risorse tra più team
+ Regole di priorità personalizzate per applicare il controllo organizzativo o dei costi SLAs 

Si prega di fare riferimento a:
+ [https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker- hyperpod-eks-operate-console -ui-governance.html](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-governance.html)
+ [Documentazione Kueue](https://kueue.sigs.k8s.io/)

### (Consigliato) Imposta i namespace utente e le quote di risorse
<a name="sagemaker-eks-elastic-namespaces-quotas"></a>

Quando si implementa questa funzionalità su Amazon EKS, consigliamo di applicare una serie di configurazioni di base a livello di cluster per garantire l'isolamento, l'equità delle risorse e la coerenza operativa tra i team.

#### Configurazione dello spazio dei nomi e degli accessi
<a name="sagemaker-eks-elastic-namespace-access"></a>

Organizza i tuoi carichi di lavoro utilizzando namespace separati per ogni team o progetto. Ciò consente di applicare un isolamento e una governance granulari. Consigliamo inoltre di configurare la mappatura RBAC da AWS IAM a Kubernetes per associare singoli utenti o ruoli IAM ai namespace corrispondenti.

Le pratiche chiave includono:
+ Mappa i ruoli IAM sugli account di servizio Kubernetes utilizzando IAM Roles for Service Accounts (IRSA) quando i carichi di lavoro richiedono autorizzazioni. AWS [https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html)
+ Applica le politiche RBAC per limitare gli utenti solo ai namespace designati (ad esempio,`Role`/`RoleBinding`anziché alle autorizzazioni a livello di cluster).

#### Vincoli relativi alle risorse e al calcolo
<a name="sagemaker-eks-elastic-resource-constraints"></a>

Per prevenire la contesa delle risorse e garantire una pianificazione equa tra i team, applica quote e limiti a livello di namespace:
+ ResourceQuotas per limitare il numero aggregato di CPU, memoria, storage e oggetti (pod, servizi, PVCs ecc.).
+ LimitRanges per applicare i limiti predefiniti e massimi di CPU e memoria per pod o per contenitore.
+ PodDisruptionBudgets (PDBs) se necessario per definire le aspettative di resilienza.
+ Facoltativo: vincoli di accodamento a livello di namespace (ad esempio, tramite Task Governance o Kueue) per impedire agli utenti di inviare lavori in modo eccessivo.

Questi vincoli aiutano a mantenere la stabilità del cluster e supportano una pianificazione prevedibile per carichi di lavoro di formazione distribuiti.

#### Dimensionamento automatico
<a name="sagemaker-eks-elastic-autoscaling"></a>

SageMaker HyperPod su EKS supporta la scalabilità automatica dei cluster tramite Karpenter. Quando Karpenter o un fornitore di risorse simile vengono utilizzati insieme alla formazione elastica, il cluster e il lavoro di formazione elastica possono aumentare automaticamente dopo l'invio di un lavoro di formazione elastica. Questo perché elastic training operator adotta un approccio avido, richiede sempre più risorse di calcolo rispetto alle risorse di calcolo disponibili fino a raggiungere il limite massimo stabilito dal lavoro. Ciò si verifica perché l'operatore di elastic training richiede continuamente risorse aggiuntive come parte dell'esecuzione elastica del lavoro, il che può attivare il provisioning dei nodi. I fornitori continui di risorse come Karpenter soddisferanno le richieste scalando il cluster di calcolo.

Per mantenere queste scalabilità prevedibili e sotto controllo, consigliamo di configurare a livello di ResourceQuotas namespace negli spazi dei nomi in cui vengono creati i job di training elastici. ResourceQuotas aiutano a limitare il numero massimo di risorse che i job possono richiedere, prevenendo la crescita illimitata dei cluster e permettendo comunque un comportamento elastico entro limiti definiti.

Ad esempio, una istanza da ResourceQuota 8 ml.p5.48xlarge avrà il seguente formato:

```
apiVersion: v1
kind: ResourceQuota
metadata:
  name: <quota-name>
  namespace: <namespace-name>
spec:
  hard:
    nvidia.com/gpu: "64"
    vpc.amazonaws.com/efa: "256"
    requests.cpu: "1536"
    requests.memory: "5120Gi"
    limits.cpu: "1536"
    limits.memory: "5120Gi"
```

## Costruisci un contenitore di formazione
<a name="sagemaker-eks-elastic-build-container"></a>

HyperPod [l'operatore addetto alla formazione lavora con un programma di PyTorch avvio personalizzato fornito tramite il pacchetto Python di HyperPod Elastic Agent (https://www.piwheels). org/project/hyperpod](https://www.piwheels.org/project/hyperpod-elastic-agent/)-elastic-agent/). I clienti devono installare l'agente elastico e sostituire il `torchrun` comando con to launch training. `hyperpodrun` Per maggiori dettagli, consulta:

[https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker- eks-operator-install .html\$1 sagemaker-eks-operator-elastic -agent](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator-install.html#sagemaker-eks-operator-elastic-agent)

Un esempio di contenitore di formazione:

```
FROM ...

...

RUN pip install hyperpod-elastic-agent
ENTRYPOINT ["entrypoint.sh"]

# entrypoint.sh ...
hyperpodrun --nnodes=node_count --nproc-per-node=proc_count \
  --rdzv-backend hyperpod \
 # Optional ...
 # Other torchrun args
 # pre-traing arg_group
 --pre-train-script pre.sh --pre-train-args "pre_1 pre_2 pre_3" \
 # post-train arg_group
 --post-train-script post.sh --post-train-args "post_1 post_2 post_3" \
 training.py --script-args
```

## Modifica del codice di allenamento
<a name="sagemaker-eks-elastic-training-code"></a>

SageMaker HyperPod fornisce un set di ricette già configurate per l'esecuzione con Elastic Policy.

Per abilitare l'allenamento elastico per script di PyTorch allenamento personalizzati, dovrai apportare piccole modifiche al ciclo di allenamento. Questa guida illustra le modifiche necessarie per garantire che il processo di formazione risponda agli eventi di scalabilità elastica che si verificano quando la disponibilità delle risorse di calcolo cambia. Durante tutti gli eventi elastici (ad esempio, i nodi sono disponibili o i nodi vengono bloccati), il job di formazione riceve un segnale di evento elastico che viene utilizzato per coordinare uno spegnimento regolare salvando un checkpoint e riprendere l'allenamento riavviando da quel checkpoint salvato con una nuova configurazione mondiale. Per abilitare l'allenamento elastico con script di allenamento personalizzati, devi:

### Rilevare eventi Elastic Scaling
<a name="sagemaker-eks-elastic-detect-events"></a>

Nel ciclo di allenamento, verifica la presenza di eventi elastici durante ogni iterazione:

```
from hyperpod_elastic_agent.elastic_event_handler import elastic_event_detected

def train_epoch(model, dataloader, optimizer, args):
    for batch_idx, batch_data in enumerate(dataloader):
        # Forward and backward pass
        loss = model(batch_data).loss
        loss.backward()
        optimizer.step()
        optimizer.zero_grad()

        # Handle checkpointing and elastic scaling
        should_checkpoint = (batch_idx + 1) % args.checkpoint_freq == 0
        elastic_event = elastic_event_detected()
        
        # Save checkpoint if scaling-up or scaling down job
        if should_checkpoint or elastic_event:
            save_checkpoint(model, optimizer, scheduler, 
                            checkpoint_dir=args.checkpoint_dir, 
                            step=global_step)
              
            if elastic_event:
                print("Elastic scaling event detected. Checkpoint saved.")
                return
```

### Implementa Checkpoint Saving e Checkpoint Loading
<a name="sagemaker-eks-elastic-checkpoint-implementation"></a>

Nota: consigliamo di utilizzare PyTorch Distributed Checkpoint (DCP) per salvare gli stati del modello e dell'ottimizzatore, poiché DCP supporta la ripresa da un checkpoint con dimensioni mondiali diverse. Altri formati di checkpoint potrebbero non supportare il caricamento dei checkpoint su mondi di dimensioni diverse, nel qual caso dovrai implementare una logica personalizzata per gestire le modifiche dinamiche delle dimensioni mondiali.

```
import torch.distributed.checkpoint as dcp
from torch.distributed.checkpoint.state_dict import get_state_dict, set_state_dict

def save_checkpoint(model, optimizer, lr_scheduler, user_content, checkpoint_path):
    """Save checkpoint using DCP for elastic training."""
    state_dict = {
        "model": model,
        "optimizer": optimizer,
        "lr_scheduler": lr_scheduler,
        **user_content
    }
      
    dcp.save(
        state_dict=state_dict,
        storage_writer=dcp.FileSystemWriter(checkpoint_path)
    )

def load_checkpoint(model, optimizer, lr_scheduler, checkpoint_path):
    """Load checkpoint using DCP with automatic resharding."""
    state_dict = {
        "model": model,
        "optimizer": optimizer,
        "lr_scheduler": lr_scheduler
    }
      
    dcp.load(
        state_dict=state_dict,
        storage_reader=dcp.FileSystemReader(checkpoint_path)
    )
      
    return model, optimizer, lr_scheduler
```

### (Facoltativo) Usa dataloader stateful
<a name="sagemaker-eks-elastic-stateful-dataloaders"></a>

Se ti stai allenando solo per una singola epoca (ad esempio, un singolo passaggio attraverso l'intero set di dati), il modello deve vedere ogni campione di dati esattamente una volta. Se il processo di addestramento si interrompe a metà epoca e riprende con una dimensione mondiale diversa, i campioni di dati precedentemente elaborati verranno ripetuti se lo stato del dataloader non è persistente. Un dataloader con stato impedisce che ciò accada salvando e ripristinando la posizione del dataloader, assicurando che le esecuzioni riprese continuino dopo l'evento di scalabilità elastica senza rielaborare alcun campione. Consigliamo di utilizzare [StatefulDataLoader](https://meta-pytorch.org/data/main/torchdata.stateful_dataloader.html), che sostituisce direttamente tali aggiunte e metodi, che abiliti il checkpoint a metà periodo del processo di caricamento dei `torch.utils.data.DataLoader` dati. `state_dict()` `load_state_dict()`

## Invio di lavori di formazione elastici
<a name="sagemaker-eks-elastic-submit-job"></a>

[HyperPod l'operatore di formazione](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator-usage.html) definisce un nuovo tipo di risorsa -`hyperpodpytorchjob`. Elastic Training estende questo tipo di risorsa e aggiunge i campi evidenziati di seguito:

```
apiVersion: sagemaker.amazonaws.com/v1
kind: HyperPodPyTorchJob
metadata:
  name: elastic-training-job
spec:
  elasticPolicy:
    minReplicas: 1
    maxReplicas: 4
    # Increment amount of pods in fixed-size groups
    # Amount of pods will be equal to minReplicas + N * replicaIncrementStep
    replicaIncrementStep: 1           
    # ... or Provide an exact amount of pods that required for training
    replicaDiscreteValues: [2,4,8]     

    # How long traing operator wait job to save checkpoint and exit during
    # scaling events. Job will be force-stopped after this period of time
    gracefulShutdownTimeoutInSeconds: 600

    # When scaling event is detected:   
    # how long job controller waits before initiate scale-up.
    # Some delay can prevent from frequent scale-ups and scale-downs
    scalingTimeoutInSeconds: 60

    # In case of faults, specify how long elastic training should wait for
    # recovery, before triggering a scale-down
    faultyScaleDownTimeoutInSeconds: 30
  ...
  replicaSpecs:
    - name: pods
      replicas: 4           # Initial replica count
      maxReplicas: 8        # Max for this replica spec (should match elasticPolicy.maxReplicas)
      ...
```

### Usare kubectl
<a name="sagemaker-eks-elastic-kubectl-apply"></a>

Successivamente puoi avviare l'allenamento elastico con il seguente comando.

```
kubectl apply -f elastic-training-job.yaml
```

### Utilizzo delle SageMaker ricette
<a name="sagemaker-eks-elastic-sagemaker-recipes"></a>

I lavori di Elastic Training possono essere avviati tramite [SageMaker HyperPod ricette](https://github.com/aws/sagemaker-hyperpod-recipes).

**Nota**  
Abbiamo incluso **46** ricette elastiche per i lavori **SFO** e **DPO** su Hyperpod Recipe. Gli utenti possono avviare questi lavori con una sola modifica di riga sullo script di avvio statico esistente:  
`++recipes.elastic_policy.is_elastic=true`

Oltre alle ricette statiche, le ricette elastiche aggiungono i seguenti campi per definire i comportamenti elastici:

#### Politica elastica
<a name="sagemaker-eks-elastic-policy"></a>

Il `elastic_policy` campo definisce la configurazione a livello di lavoro per il job di elastic training, ha le seguenti configurazioni:
+ `is_elastic`: `bool` - se questo lavoro è un lavoro elastico
+ `min_nodes`: `int` - il numero minimo di nodi utilizzati per l'allenamento elastico
+ `max_nodes`: `int` - il numero massimo di nodi utilizzati per l'allenamento elastico
+ `replica_increment_step`: `int` - incrementa la quantità di pod in gruppi a dimensione fissa, questo campo si esclude a vicenda per quello che definiremo più avanti. `scale_config`
+ `use_graceful_shutdown`: `bool` - se si utilizza Graceful Shutdown durante gli eventi di ridimensionamento, l'impostazione predefinita è. `true`
+ `scaling_timeout`: `int` - il tempo di attesa in secondi durante l'evento di ridimensionamento prima del timeout
+ `graceful_shutdown_timeout`: `int` - il tempo di attesa per lo spegnimento graduale

Di seguito è riportato un esempio di definizione di questo campo, che puoi trovare anche nel repository Hyperpod Recipe in recipe: `recipes_collection/recipes/fine-tuning/llama/llmft_llama3_1_8b_instruct_seq4k_gpu_sft_lora.yaml`

```
<static recipe>
...
elastic_policy:
  is_elastic: true
  min_nodes: 1
  max_nodes: 16
  use_graceful_shutdown: true
  scaling_timeout: 600
  graceful_shutdown_timeout: 600
```

#### Config della scala
<a name="sagemaker-eks-elastic-scale-config"></a>

Il `scale_config` campo definisce le configurazioni prioritarie su ogni scala specifica. È un dizionario chiave-valore, dove key è un numero intero che rappresenta la scala di destinazione e value è un sottoinsieme della ricetta base. Su `<key>` larga scala, utilizziamo il `<value>` per aggiornare le configurazioni specifiche nella ricetta. base/static Di seguito viene mostrato un esempio di questo campo:

```
scale_config:   
...
  2:
    trainer:
      num_nodes: 2
    training_config:
      training_args:
        train_batch_size: 128
        micro_train_batch_size: 8
        learning_rate: 0.0004
  3:
    trainer:
      num_nodes: 3
    training_config:
      training_args:
        train_batch_size: 128
        learning_rate: 0.0004
        uneven_batch:
          use_uneven_batch: true
          num_dp_groups_with_small_batch_size: 16
          small_local_batch_size: 5
          large_local_batch_size: 6
 ...
```

La configurazione precedente definisce la configurazione di addestramento su scala 2 e 3. In entrambi i casi, utilizziamo il tasso di apprendimento`4e-4`, la dimensione del batch di`128`. Ma sulla scala 2, utilizziamo un numero `micro_train_batch_size` di 8, mentre sulla scala 3, utilizziamo una dimensione del batch non uniforme poiché la dimensione del batch del treno non può essere divisa equamente su 3 nodi.

**Dimensione irregolare del Batch**

Questo è un campo per definire il comportamento di distribuzione dei batch quando la dimensione globale del batch non può essere divisa equamente per il numero di ranghi. Non è specifico per l'allenamento elastico, ma è un fattore abilitante per una maggiore granularità di scalabilità.
+ `use_uneven_batch`: `bool` - se si utilizza una distribuzione non uniforme dei lotti
+ `num_dp_groups_with_small_batch_size`: `int` - nella distribuzione non uniforme dei lotti, alcuni ranghi utilizzano lotti locali di dimensioni inferiori, mentre altri utilizzano lotti di dimensioni maggiori. La dimensione globale del batch deve essere uguale a `small_local_batch_size * num_dp_groups_with_small_batch_size + (world_size-num_dp_groups_with_small_batch_size) * large_local_batch_size`
+ `small_local_batch_size`: `int` - questo valore è la dimensione del batch locale più piccola
+ `large_local_batch_size`: `int` - questo valore è la dimensione del batch locale più grande

**Monitora la formazione su MLFlow**

I lavori di creazione di ricette Hyperpod supportano l'osservabilità tramite. MLFlow Gli utenti possono specificare le MLFlow configurazioni nella ricetta:

```
training_config:
  mlflow:
    tracking_uri: "<local_file_path or MLflow server URL>"
    run_id: "<MLflow run ID>"
    experiment_name: "<MLflow experiment name, e.g. llama_exps>"
    run_name: "<run name, e.g. llama3.1_8b>"
```

[Queste configurazioni sono mappate alla configurazione corrispondente. MLFlow ](https://mlflow.org/docs/latest/ml/tracking/tracking-api/#setup--configuration) Di seguito è riportato un esempio di MLflow dashboard per un lavoro di allenamento elastico.

![\[Di seguito è riportato un esempio di MLflow dashboard per un lavoro di allenamento elastico.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod/hyperpod-elastic-sample-dashboard.png)


Dopo aver definito le ricette elastiche, possiamo utilizzare gli script di avvio, ad esempio `launcher_scripts/llama/run_llmft_llama3_1_8b_instruct_seq4k_gpu_sft_lora.sh` per avviare un processo di allenamento elastico. È simile all'avvio di un lavoro statico utilizzando la ricetta Hyperpod.

**Nota**  
Il processo di formazione elastico di Recipe Support riprende automaticamente dai checkpoint più recenti, tuttavia, per impostazione predefinita, ogni riavvio crea una nuova directory di formazione. Per consentire la corretta ripresa dall'ultimo checkpoint, dobbiamo assicurarci che venga riutilizzata la stessa directory di formazione. Questo può essere fatto impostando  
`recipes.training_config.training_args.override_training_dir=true`

## Esempi e limitazioni dei casi d'uso
<a name="sagemaker-eks-elastic-use-cases"></a>

### Aumenta la scalabilità quando sono disponibili più risorse
<a name="sagemaker-eks-elastic-scale-up"></a>

Quando più risorse diventano disponibili sul cluster (ad esempio, altri carichi di lavoro vengono completati). Durante questo evento, il training controller aumenterà automaticamente il processo di formazione. Questo comportamento è spiegato di seguito.

Per simulare una situazione in cui diventano disponibili più risorse, possiamo inviare un lavoro ad alta priorità e quindi rilasciare nuovamente le risorse eliminando il lavoro ad alta priorità.

```
# Submit a high-priority job on your cluster. As a result of this command
# resources will not be available for elastic training
kubectl apply -f high_prioriy_job.yaml

# Submit an elastic job with normal priority
kubectl apply -f hyperpod_job_with_elasticity.yaml

# Wait for training to start....

# Delete high priority job. This command will make additional resources available for
# elastic training
kubectl delete -f high_prioriy_job.yaml

# Observe the scale-up of elastic job
```

Comportamento previsto:
+ L'operatore di formazione crea un carico di lavoro Kueue Quando un lavoro di formazione elastico richiede una modifica delle dimensioni mondiali, l'operatore di formazione genera un oggetto Kueue Workload aggiuntivo che rappresenta i nuovi requisiti di risorse.
+ Kueue ammette il carico di lavoro Kueue valuta la richiesta in base alle risorse disponibili, alle priorità e alle politiche di coda. Una volta approvato, il carico di lavoro viene ammesso.
+ L'operatore addetto all'addestramento crea i pod aggiuntivi Al momento dell'ammissione, l'operatore lancia i pod aggiuntivi necessari per raggiungere la nuova dimensione mondiale.
+ Quando i nuovi pod sono pronti, l'operatore addetto all'addestramento invia uno speciale segnale elastico di evento al training script.
+ **Il processo di addestramento esegue il checkpoint, per prepararsi a un arresto regolare Il processo di addestramento verifica periodicamente la presenza del segnale elastico dell'evento chiamando la funzione elastic\$1event\$1detected ().** Una volta rilevato, avvia un checkpoint. Una volta completato con successo il checkpoint, il processo di addestramento termina senza problemi.
+ L'operatore addetto alla formazione riavvia il lavoro con la nuova dimensione mondiale L'operatore attende la chiusura di tutti i processi, quindi riavvia il processo di formazione utilizzando la dimensione mondiale aggiornata e il checkpoint più recente.

**Nota:** quando Kueue non viene utilizzato, l'operatore addetto alla formazione salta i primi due passaggi. Tenta immediatamente di creare i pod aggiuntivi necessari per le nuove dimensioni del mondo. Se nel cluster non sono disponibili risorse sufficienti, questi pod rimarranno in **sospeso fino a quando la** capacità non sarà disponibile.

![\[Il diagramma illustra la tempistica del ridimensionamento e delle risorse.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod/hyperpod-elastic-resize-timeline.png)


### Prelazione per mansioni ad alta priorità
<a name="sagemaker-eks-elastic-preemption"></a>

I lavori elastici possono essere ridimensionati automaticamente quando un lavoro ad alta priorità richiede risorse. Per simulare questo comportamento, puoi inviare un lavoro di formazione elastico, che utilizzi il numero massimo di risorse disponibili dall'inizio della formazione, inviare un lavoro ad alta priorità e osservare il comportamento di prelazione.

```
# Submit an elastic job with normal priority
kubectl apply -f hyperpod_job_with_elasticity.yaml

# Submit a high-priority job on your cluster. As a result of this command
# some amount of resources will be   
kubectl apply -f high_prioriy_job.yaml

# Observe scale-down behaviour
```

Quando un lavoro ad alta priorità richiede risorse, Kueue può anticipare i carichi di lavoro Elastic Training con priorità più bassa (potrebbe esserci più di un oggetto Workload associato al job Elastic Training). Il processo di prelazione segue questa sequenza:

1. Viene inviato un lavoro ad alta priorità Il lavoro crea un nuovo carico di lavoro Kueue, ma il carico di lavoro non può essere ammesso a causa di risorse del cluster insufficienti.

1. Kueue anticipa uno dei carichi di lavoro di Elastic Training I job Elastic possono avere più carichi di lavoro attivi (uno per configurazione di dimensioni mondiali). Kueue ne seleziona uno da anticipare in base alle politiche di priorità e coda.

1. L'operatore addetto all'addestramento invia un segnale di evento elastico. Una volta attivata la prelazione, l'operatore addetto all'addestramento notifica che il processo di addestramento in corso si interrompa correttamente.

1. Il processo di formazione esegue il checkpoint. Il training job verifica periodicamente la presenza di segnali di eventi elastici. Quando viene rilevato, avvia un checkpoint coordinato per preservare i progressi prima dello spegnimento.

1. l'operatore addetto alla formazione pulisce i pod e i carichi di lavoro. L'operatore attende il completamento del checkpoint, quindi elimina i pod di addestramento che facevano parte del carico di lavoro previsto. Rimuove inoltre l'oggetto Workload corrispondente da Kueue.

1. Il carico di lavoro ad alta priorità è ammesso. Una volta liberate le risorse, Kueue ammette il lavoro ad alta priorità, consentendogli di avviare l'esecuzione.  
![\[Cronologia di prelazione per carichi di lavoro di allenamento elastici.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod/hyperpod-elastic-preemption-timeline.png)

La prelazione può causare la sospensione dell'intero processo di formazione, il che potrebbe non essere auspicabile per tutti i flussi di lavoro. Per evitare la sospensione completa del lavoro e consentire comunque la scalabilità elastica, i clienti possono configurare due diversi livelli di priorità all'interno dello stesso processo di formazione definendo due sezioni: `replicaSpec`
+ Una ReplicaSpec primaria (fissa) con priorità normale o alta
  + Contiene il numero minimo richiesto di repliche necessarie per mantenere attivo il processo di formazione.
  + Ne utilizza uno superiore PriorityClass, garantendo che queste repliche *non vengano mai* annullate.
  + Mantiene i progressi di base anche quando il cluster è sotto pressione in termini di risorse.
+ Una ReplicaSpec elastica (scalabile) con priorità inferiore
  + Contiene le repliche opzionali aggiuntive che forniscono elaborazione aggiuntiva durante la scalabilità elastica.
  + Utilizza una versione inferiore PriorityClass, che consente a Kueue di anticipare queste repliche quando i lavori con priorità più alta richiedono risorse.
  + Assicura che venga recuperata solo la parte elastica, mentre l'allenamento di base continua senza interruzioni.

Questa configurazione consente la prelazione parziale, in cui viene recuperata solo la capacità elastica, mantenendo la continuità della formazione pur supportando un'equa condivisione delle risorse in ambienti multi-tenant. Esempio:

```
apiVersion: sagemaker.amazonaws.com/v1
kind: HyperPodPyTorchJob
metadata:
  name: elastic-training-job
spec:
  elasticPolicy:
    minReplicas: 2
    maxReplicas: 8
    replicaIncrementStep: 2
  ...
  replicaSpecs:
    - name: base
      replicas: 2
      template:
        spec:
          priorityClassName: high-priority # set high-priority to avoid evictions
           ...
    - name: elastic
      replicas: 0
      maxReplicas: 6
      template:
        spec:
          priorityClassName: low-priority. # Set low-priority for elastic part
           ...
```

### Gestione dello sfratto dei pod, dei crash dei pod e del degrado dell'hardware:
<a name="sagemaker-eks-elastic-pod-eviction"></a>

L'operatore addetto alla HyperPod formazione include meccanismi integrati per ripristinare il processo di formazione quando viene interrotto inaspettatamente. Le interruzioni possono verificarsi per vari motivi, ad esempio errori del codice di addestramento, rimozione dei pod, guasti dei nodi, deterioramento dell'hardware e altri problemi di runtime.

Quando ciò accade, l'operatore tenta automaticamente di ricreare i pod interessati e di riprendere l'addestramento dal checkpoint più recente. Se il recupero non è immediatamente possibile, ad esempio a causa dell'insufficiente capacità di riserva, l'operatore può continuare a progredire riducendo temporaneamente le dimensioni mondiali e riducendo il lavoro di formazione elastica.

Quando un processo di training elastico si blocca o perde delle repliche, il sistema si comporta come segue:
+ Fase di ripristino (utilizzando nodi di riserva) Il Training Controller attende che le risorse siano `faultyScaleDownTimeoutInSeconds` disponibili e tenta di recuperare le repliche fallite ridistribuendo i pod sulla capacità di riserva.
+ Elastic scale-down Se il ripristino non è possibile entro la finestra di timeout, l'operatore addetto alla formazione ridimensiona il lavoro fino a renderlo più piccolo (se la politica elastica del lavoro lo consente). L'allenamento riprende quindi con un minor numero di repliche.
+ Scale-up elastico Quando le risorse aggiuntive diventano nuovamente disponibili, l'operatore ridimensiona automaticamente il lavoro di formazione fino alla dimensione mondiale preferita.

Questo meccanismo garantisce che la formazione possa continuare con tempi di inattività minimi, anche in caso di pressione delle risorse o di guasti parziali dell'infrastruttura, sfruttando al contempo la scalabilità elastica.

### Usa l'allenamento elastico con altre funzionalità HyperPod
<a name="sagemaker-eks-elastic-other-features"></a>

Attualmente Elastic Training non supporta funzionalità di formazione senza checkpoint, checkpoint HyperPod gestito a più livelli o istanze Spot.

**Nota**  
Raccogliamo determinate metriche operative di routine aggregate e anonime per fornire la disponibilità essenziale del servizio. La creazione di queste metriche è completamente automatizzata e non prevede la revisione umana del carico di lavoro di formazione del modello sottostante. Queste metriche riguardano un lavoro e la scalabilità delle operazioni, la gestione delle risorse e le funzionalità essenziali del servizio.

# Osservabilità per SageMaker HyperPod cluster Amazon orchestrata da Amazon EKS
<a name="sagemaker-hyperpod-eks-cluster-observability"></a>

[Per ottenere un'osservabilità completa nelle risorse e nei componenti software del cluster Amazon SageMaker HyperPod (SageMaker HyperPod), integra il cluster con [Amazon CloudWatch Container Insights, Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html)[Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html) e Amazon Managed Grafana.](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html) Questi strumenti forniscono visibilità sull’integrità del cluster, sulle metriche delle prestazioni e sull’utilizzo delle risorse.

L'integrazione con Amazon Managed Service for Prometheus consente l'esportazione di metriche relative alle HyperPod risorse del cluster, fornendo informazioni sulle loro prestazioni, utilizzo e integrità. L’integrazione con Grafana gestito da Amazon consente la visualizzazione di queste metriche attraverso varie dashboard Grafana che offrono un’interfaccia intuitiva per il monitoraggio e l’analisi del comportamento del cluster. Sfruttando questi servizi, ottieni una visione centralizzata e unificata del HyperPod cluster, facilitando il monitoraggio proattivo, la risoluzione dei problemi e l'ottimizzazione dei carichi di lavoro di formazione distribuiti.

**Nota**  
Mentre CloudWatch Amazon Managed Service for Prometheus e Amazon Managed Grafana si concentrano sulle metriche operative (ad esempio, lo stato del sistema, la formazione, le prestazioni lavorative SageMaker HyperPod ), i [report sull'utilizzo completano](sagemaker-hyperpod-eks-operate-console-ui-governance.md) la Task Governance per fornire informazioni sulla responsabilità finanziaria e delle risorse. Questi report monitorano:  
Utilizzo del calcolo (GPU/CPU/Neuron Core hours) across namespaces/teams
Attribuzione dei costi per le risorse allocate e quelle prese in prestito
Tendenze cronologiche (fino a 180 giorni) per audit e ottimizzazione
Per ulteriori informazioni sulla configurazione e la generazione di report sull'utilizzo, consulta [Reporting Compute](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-usage-reporting.html) Usage in. HyperPod 

**Suggerimento**  
Per trovare esempi e soluzioni pratiche, consulta anche la sezione [Osservabilità](https://catalog.us-east-1.prod.workshops.aws/workshops/2433d39e-ccfe-4c00-9d3d-9917b729258e/en-US/06-observability) [nel SageMaker HyperPod workshop Amazon EKS Support](https://catalog.us-east-1.prod.workshops.aws/workshops/2433d39e-ccfe-4c00-9d3d-9917b729258e).

Passa ai seguenti argomenti per configurare l'osservabilità dei SageMaker HyperPod cluster.

**Topics**
+ [Osservabilità dei modelli per i lavori di formazione su SageMaker HyperPod cluster orchestrati da Amazon EKS](sagemaker-hyperpod-eks-cluster-observability-model.md)
+ [Osservabilità di cluster e attività](sagemaker-hyperpod-eks-cluster-observability-cluster.md)

# Osservabilità dei modelli per i lavori di formazione su SageMaker HyperPod cluster orchestrati da Amazon EKS
<a name="sagemaker-hyperpod-eks-cluster-observability-model"></a>

SageMaker HyperPod i cluster orchestrati con Amazon EKS possono integrarsi con l'applicazione [MLflow su Amazon Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html). SageMaker Gli amministratori dei cluster configurano il MLflow server e lo collegano ai cluster. SageMaker HyperPod I Data Scientist possono ottenere informazioni approfondite sul modello.

**Per configurare un MLflow server tramite AWS CLI**

Un amministratore del cluster deve creare un server di MLflow tracciamento.

1. Crea un server di MLflow tracciamento SageMaker AI, seguendo le istruzioni in [Creare un server di tracciamento utilizzando la AWS CLI](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-cli.html#mlflow-create-tracking-server-cli-infra-setup).

1. Assicurati che l'[https://docs.aws.amazon.com/eks/latest/APIReference/API_auth_AssumeRoleForPodIdentity.html](https://docs.aws.amazon.com/eks/latest/APIReference/API_auth_AssumeRoleForPodIdentity.html)autorizzazione esista nel ruolo di esecuzione IAM per SageMaker HyperPod.

1. Se il componente aggiuntivo `eks-pod-identity-agent` non è già installato sul cluster EKS, esegui l’operazione.

   ```
   aws eks create-addon \
       --cluster-name <eks_cluster_name> \
       --addon-name eks-pod-identity-agent \
       --addon-version vx.y.z-eksbuild.1
   ```

1. Crea un `trust-relationship.json` file per un nuovo ruolo da chiamare per Pod MLflow APIs.

   ```
   cat >trust-relationship.json <<EOF
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowEksAuthToAssumeRoleForPodIdentity",
               "Effect": "Allow",
               "Principal": {
                   "Service": "pods.eks.amazonaws.com"
   
               },
               "Action": [
                   "sts:AssumeRole",
                   "sts:TagSession"
               ]
           }
       ]
   }
   EOF
   ```

   Esegui il codice seguente per creare un ruolo e collegare la relazione di attendibilità.

   ```
   aws iam create-role --role-name hyperpod-mlflow-role \
       --assume-role-policy-document file://trust-relationship.json \
       --description "allow pods to emit mlflow metrics and put data in s3"
   ```

1. Crea la policy seguente che concede al pod l’accesso per chiamare tutte le operazioni `sagemaker-mlflow` e inserire gli artefatti del modello in S3. L'autorizzazione S3 esiste già all'interno del server di tracciamento, ma se gli artefatti del modello sono troppo grandi, viene effettuata una chiamata diretta a s3 dal MLflow codice per caricare gli artefatti.

   ```
   cat >hyperpod-mlflow-policy.json <<EOF
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sagemaker-mlflow:AccessUI",
                   "sagemaker-mlflow:CreateExperiment",
                   "sagemaker-mlflow:SearchExperiments",
                   "sagemaker-mlflow:GetExperiment",
                   "sagemaker-mlflow:GetExperimentByName",
                   "sagemaker-mlflow:DeleteExperiment",
                   "sagemaker-mlflow:RestoreExperiment",
                   "sagemaker-mlflow:UpdateExperiment",
                   "sagemaker-mlflow:CreateRun",
                   "sagemaker-mlflow:DeleteRun",
                   "sagemaker-mlflow:RestoreRun",
                   "sagemaker-mlflow:GetRun",
                   "sagemaker-mlflow:LogMetric",
                   "sagemaker-mlflow:LogBatch",
                   "sagemaker-mlflow:LogModel",
                   "sagemaker-mlflow:LogInputs",
                   "sagemaker-mlflow:SetExperimentTag",
                   "sagemaker-mlflow:SetTag",
                   "sagemaker-mlflow:DeleteTag",
                   "sagemaker-mlflow:LogParam",
                   "sagemaker-mlflow:GetMetricHistory",
                   "sagemaker-mlflow:SearchRuns",
                   "sagemaker-mlflow:ListArtifacts",
                   "sagemaker-mlflow:UpdateRun",
                   "sagemaker-mlflow:CreateRegisteredModel",
                   "sagemaker-mlflow:GetRegisteredModel",
                   "sagemaker-mlflow:RenameRegisteredModel",
                   "sagemaker-mlflow:UpdateRegisteredModel",
                   "sagemaker-mlflow:DeleteRegisteredModel",
                   "sagemaker-mlflow:GetLatestModelVersions",
                   "sagemaker-mlflow:CreateModelVersion",
                   "sagemaker-mlflow:GetModelVersion",
                   "sagemaker-mlflow:UpdateModelVersion",
                   "sagemaker-mlflow:DeleteModelVersion",
                   "sagemaker-mlflow:SearchModelVersions",
                   "sagemaker-mlflow:GetDownloadURIForModelVersionArtifacts",
                   "sagemaker-mlflow:TransitionModelVersionStage",
                   "sagemaker-mlflow:SearchRegisteredModels",
                   "sagemaker-mlflow:SetRegisteredModelTag",
                   "sagemaker-mlflow:DeleteRegisteredModelTag",
                   "sagemaker-mlflow:DeleteModelVersionTag",
                   "sagemaker-mlflow:DeleteRegisteredModelAlias",
                   "sagemaker-mlflow:SetRegisteredModelAlias",
                   "sagemaker-mlflow:GetModelVersionByAlias"
               ],
               "Resource": "arn:aws:sagemaker:us-west-2:111122223333:mlflow-tracking-server/<ml tracking server name>"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "s3:PutObject"
               ],
               "Resource": "arn:aws:s3:::<mlflow-s3-bucket_name>"
           }
       ]
   }
   EOF
   ```
**Nota**  
 ARNs [Sono quelle del MLflow server e del bucket S3 configurati con il server durante il MLflow server che hai creato seguendo le istruzioni Configura l'infrastruttura. MLflow ](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-cli.html#mlflow-create-tracking-server-cli-infra-setup)

1. Collega la policy `mlflow-metrics-emit-policy` a `hyperpod-mlflow-role` utilizzando il documento della policy salvato nella fase precedente.

   ```
   aws iam put-role-policy \
     --role-name hyperpod-mlflow-role \
     --policy-name mlflow-metrics-emit-policy \
     --policy-document file://hyperpod-mlflow-policy.json
   ```

1. Crea un account di servizio Kubernetes per consentire a Pod di accedere al server. MLflow 

   ```
   cat >mlflow-service-account.yaml <<EOF
   apiVersion: v1
   kind: ServiceAccount
   metadata:
     name: mlflow-service-account
     namespace: kubeflow
   EOF
   ```

   Esegui questo comando per applicarlo al cluster EKS.

   ```
   kubectl apply -f mlflow-service-account.yaml
   ```

1. Crea un’associazione Pod Identity.

   ```
   aws eks create-pod-identity-association \
       --cluster-name EKS_CLUSTER_NAME \
       --role-arn arn:aws:iam::111122223333:role/hyperpod-mlflow-role \
       --namespace kubeflow \
       --service-account mlflow-service-account
   ```

**Per raccogliere le metriche dai lavori di formazione al server MLflow**

I data scientist devono configurare lo script di formazione e l'immagine docker per inviare le metriche al server. MLflow 

1. Aggiungi le righe seguenti all’inizio dello script di addestramento.

   ```
   import mlflow
   
   # Set the Tracking Server URI using the ARN of the Tracking Server you created
   mlflow.set_tracking_uri(os.environ['MLFLOW_TRACKING_ARN'])
   # Enable autologging in MLflow
   mlflow.autolog()
   ```

1. Crea un’immagine Docker con lo script di addestramento e inviala ad Amazon ECR. Ottieni l’ARN del container ECR. Per ulteriori informazioni sulla creazione e il push di un’immagine Docker, consulta [Pushing a Docker image](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html) in *ECR User Guide*.
**Suggerimento**  
Assicurati di aggiungere l’installazione dei pacchetti mlflow e sagemaker-mlflow al file Docker. Per ulteriori informazioni sull'installazione dei pacchetti, sui requisiti e sulle versioni compatibili dei pacchetti, consulta [Install MLflow e il SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-track-experiments.html#mlflow-track-experiments-install-plugin) plugin AI. MLflow 

1. Aggiungi un account di servizio nei pod del job di addestramento per consentire loro l’accesso a `hyperpod-mlflow-role`. Ciò consente ai Pods di chiamare MLflow APIs. Esegui il seguente modello di invio di lavori SageMaker HyperPod CLI. Crealo con il nome del file `mlflow-test.yaml`.

   ```
   defaults:
    - override hydra/job_logging: stdout
   
   hydra:
    run:
     dir: .
    output_subdir: null
   
   training_cfg:
    entry_script: ./train.py
    script_args: []
    run:
     name: test-job-with-mlflow # Current run name
     nodes: 2 # Number of nodes to use for current training
     # ntasks_per_node: 1 # Number of devices to use per node
   cluster:
    cluster_type: k8s # currently k8s only
    instance_type: ml.c5.2xlarge
    cluster_config:
     # name of service account associated with the namespace
     service_account_name: mlflow-service-account
     # persistent volume, usually used to mount FSx
     persistent_volume_claims: null
     namespace: kubeflow
     # required node affinity to select nodes with SageMaker HyperPod
     # labels and passed health check if burn-in enabled
     label_selector:
         required:
             sagemaker.amazonaws.com/node-health-status:
                 - Schedulable
         preferred:
             sagemaker.amazonaws.com/deep-health-check-status:
                 - Passed
         weights:
             - 100
     pullPolicy: IfNotPresent # policy to pull container, can be Always, IfNotPresent and Never
     restartPolicy: OnFailure # restart policy
   
   base_results_dir: ./result # Location to store the results, checkpoints and logs.
   container: 111122223333.dkr.ecr.us-west-2.amazonaws.com/tag # container to use
   
   env_vars:
    NCCL_DEBUG: INFO # Logging level for NCCL. Set to "INFO" for debug information
    MLFLOW_TRACKING_ARN: arn:aws:sagemaker:us-west-2:11112223333:mlflow-tracking-server/tracking-server-name
   ```

1. Avvia il processo utilizzando il file YAML come segue.

   ```
   hyperpod start-job --config-file /path/to/mlflow-test.yaml
   ```

1. Genera un URL prefirmato per il MLflow server di tracciamento. Puoi aprire il link sul browser e iniziare a tenere traccia del tuo job di addestramento.

   ```
   aws sagemaker create-presigned-mlflow-tracking-server-url \                          
       --tracking-server-name "tracking-server-name" \
       --session-expiration-duration-in-seconds 1800 \
       --expires-in-seconds 300 \
       --region region
   ```

# Osservabilità di cluster e attività
<a name="sagemaker-hyperpod-eks-cluster-observability-cluster"></a>

Esistono due opzioni per il monitoraggio dei cluster: SageMaker HyperPod 

**Il componente aggiuntivo SageMaker HyperPod Observability**: SageMaker HyperPod fornisce una out-of-the-box dashboard completa che fornisce informazioni dettagliate sulle attività di sviluppo del modello di base (FM) e sulle risorse del cluster. Questa soluzione unificata di osservabilità pubblica automaticamente le metriche chiave in Servizio gestito da Amazon per Prometheus e le visualizza nelle dashboard di Grafana gestito da Amazon. Le dashboard sono ottimizzate specificamente per lo sviluppo di FM con una copertura approfondita dello stato di integrità dell’hardware, dell’utilizzo delle risorse e delle prestazioni a livello di attività. Con questo componente aggiuntivo, puoi consolidare i dati sullo stato e sulle prestazioni di NVIDIA DCGM, degli esportatori di nodi Kubernetes a livello di istanza, Elastic Fabric Adapter, dei file system integrati, di Kubernetes, Kueue e degli operatori di attività. APIs SageMaker HyperPod 

**Amazon CloudWatch Insights**: Amazon CloudWatch Insights raccoglie parametri per le risorse di calcolo, come CPU, memoria, disco e rete. Container Insights fornisce inoltre informazioni diagnostiche, ad esempio errori di riavvio del container, che consentono di isolare i problemi e risolverli in modo rapido. Puoi anche impostare CloudWatch allarmi sui parametri raccolti da Container Insights.

**Topics**
+ [SageMaker HyperPod Osservabilità di Amazon con Amazon Managed Grafana e Amazon Managed Service for Prometheus](sagemaker-hyperpod-observability-addon.md)
+ [Osservabilità con Amazon CloudWatch](sagemaker-hyperpod-eks-cluster-observability-cluster-cloudwatch-ci.md)

# SageMaker HyperPod Osservabilità di Amazon con Amazon Managed Grafana e Amazon Managed Service for Prometheus
<a name="sagemaker-hyperpod-observability-addon"></a>

Amazon SageMaker HyperPod (SageMaker HyperPod) offre una out-of-the-box dashboard completa che fornisce informazioni dettagliate sulle attività di sviluppo del modello di base (FM) e sulle risorse del cluster. Questa soluzione unificata di osservabilità pubblica automaticamente le metriche chiave in Servizio gestito da Amazon per Prometheus e le visualizza nelle dashboard di Grafana gestito da Amazon. Le dashboard sono ottimizzate specificamente per lo sviluppo di FM con una copertura approfondita dello stato di integrità dell’hardware, dell’utilizzo delle risorse e delle prestazioni a livello di attività. Con questo componente aggiuntivo, puoi consolidare i dati sullo stato e sulle prestazioni provenienti da NVIDIA DCGM, dagli esportatori di nodi Kubernetes a livello di istanza, Elastic Fabric Adapter, dai file system integrati, da Kubernetes, Kueue e dai task operator. APIs SageMaker HyperPod 

## Supporto per Restricted Instance Group (RIG)
<a name="hyperpod-observability-addon-rig-support"></a>

Il componente aggiuntivo di osservabilità supporta anche i cluster che contengono Restricted Instance Groups. Nei cluster RIG, il componente aggiuntivo adatta automaticamente la propria strategia di implementazione per rispettare l'isolamento della rete e i vincoli di sicurezza dei nodi con restrizioni. DaemonSet i componenti (node exporter, DCGM exporter, EFA exporter, Neuron monitor e node collector) funzionano su nodi standard e limitati. I componenti di distribuzione (central collector, Kube State Metrics e Training Metrics Agent) sono pianificati con una logica che riconosce i confini per rispettare l'isolamento della rete tra i gruppi di istanze. La raccolta dei log dei container con Fluent Bit non è disponibile su nodi con restrizioni.

Per informazioni sulla configurazione del componente aggiuntivo su cluster con gruppi di istanze limitati, consulta. [Configurazione del componente aggiuntivo Observability SageMaker HyperPod](hyperpod-observability-addon-setup.md)

**Topics**
+ [Supporto per Restricted Instance Group (RIG)](#hyperpod-observability-addon-rig-support)
+ [Configurazione del componente aggiuntivo Observability SageMaker HyperPod](hyperpod-observability-addon-setup.md)
+ [Dashboard di SageMaker HyperPod osservabilità di Amazon](hyperpod-observability-addon-viewing-dashboards.md)
+ [Esplorazione delle metriche dei SageMaker HyperPod cluster in Amazon Managed Grafana](hyperpod-observability-addon-exploring-metrics.md)
+ [Personalizzazione delle metriche, dei pannelli di controllo e degli avvisi SageMaker HyperPod del cluster.](hyperpod-observability-addon-customizing.md)
+ [Creazione di metriche personalizzate per i cluster SageMaker HyperPod](hyperpod-observability-addon-custom-metrics.md)
+ [SageMaker HyperPod metriche del cluster](hyperpod-observability-cluster-metrics.md)
+ [Avvisi preconfigurati](hyperpod-observability-addon-alerts.md)
+ [Risoluzione dei problemi relativi al componente aggiuntivo Amazon SageMaker HyperPod Observability](hyperpod-observability-addon-troubleshooting.md)

# Configurazione del componente aggiuntivo Observability SageMaker HyperPod
<a name="hyperpod-observability-addon-setup"></a>

L’elenco seguente descrive i prerequisiti per la configurazione del componente aggiuntivo Observability.

Per inviare le metriche per il tuo cluster Amazon SageMaker HyperPod (SageMaker HyperPod) a un'area di lavoro Amazon Managed Service for Prometheus e, facoltativamente, visualizzarle in Amazon Managed Grafana, collega innanzitutto le seguenti politiche e autorizzazioni gestite al tuo ruolo di console.
+ Per utilizzare Amazon Managed Grafana, abilita AWS IAM Identity Center (IAM Identity Center) in un luogo in cui è Regione AWS disponibile Amazon Managed Grafana. Per istruzioni, consulta [Getting started with IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) in *AWS IAM Identity Center User Guide*. Per un elenco delle Regioni AWS in cui è disponibile Grafana gestito da Amazon, consulta [Supported Regions](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html#AMG-supported-Regions) in *Amazon Managed Grafana User Guide*.
+ Crea almeno un utente nel Centro identità IAM.
+ Assicurati che il componente aggiuntivo [Amazon EKS Pod Identity Agent](https://docs.aws.amazon.com/eks/latest/userguide/workloads-add-ons-available-eks.html#add-ons-pod-id) sia installato nel tuo cluster Amazon EKS. Il componente aggiuntivo Amazon EKS Pod Identity Agent consente al componente aggiuntivo di SageMaker HyperPod osservabilità di ottenere le credenziali per interagire con Amazon Managed Service for Prometheus and Logs. CloudWatch Per verificare se il tuo cluster Amazon EKS dispone del componente aggiuntivo, vai alla console di Amazon EKS e controlla la scheda **Componenti aggiuntivi** del cluster. Per informazioni su come installare il componente aggiuntivo, se non è installato, consulta [Create add-on (Console di gestione AWS)](https://docs.aws.amazon.com/eks/latest/userguide/creating-an-add-on.html#_create_add_on_console) in *Amazon EKS User Guide*.
**Nota**  
L'Amazon EKS Pod Identity Agent è necessario per i gruppi di istanze standard. Per i Restricted Instance Groups (RIG), Pod Identity Agent non è disponibile a causa dei vincoli di isolamento della rete. Il ruolo IAM di esecuzione del gruppo di istanze del cluster viene utilizzato per interagire con Amazon Managed Service for Prometheus. Per informazioni su come configurare quel ruolo, consulta. [Prerequisiti aggiuntivi per i gruppi di istanze con restrizioni](#hyperpod-observability-addon-rig-prerequisites)
+ Assicurati di avere almeno un nodo nel SageMaker HyperPod cluster prima di installare il componente aggiuntivo SageMaker HyperPod Observability. Il tipo di istanza Amazon EC2 con le dimensioni più ridotte adatto a questo caso è `4xlarge`. Questo requisito di dimensione minima del nodo garantisce che il nodo possa ospitare tutti i pod creati dal componente aggiuntivo di SageMaker HyperPod osservabilità insieme a tutti gli altri pod già in esecuzione sul cluster.
+ Aggiungi le policy e le autorizzazioni seguenti al tuo ruolo.
  + [AWS politica gestita: AmazonSageMakerHyperPodObservabilityAdminAccess](security-iam-awsmanpol-AmazonSageMakerHyperPodObservabilityAdminAccess.md)
  + [AWS politica gestita: V2 AWSGrafana WorkspacePermissionManagement](https://docs.aws.amazon.com/grafana/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AWSGrafanaWorkspacePermissionManagementV2)
  + [AWS politica gestita: AmazonSageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html)
  + Autorizzazioni aggiuntive per configurare i ruoli IAM richiesti per l’accesso ai componenti aggiuntivi Grafana gestito da Amazon e Amazon Elastic Kubernetes Service:

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

****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Sid": "CreateRoleAccess",
                "Effect": "Allow",
                "Action": [
                    "iam:CreateRole",
                    "iam:CreatePolicy",
                    "iam:AttachRolePolicy",
                    "iam:ListRoles"
                ],
                "Resource": [
                    "arn:aws:iam::*:role/service-role/AmazonSageMakerHyperPodObservabilityGrafanaAccess*",
                    "arn:aws:iam::*:role/service-role/AmazonSageMakerHyperPodObservabilityAddonAccess*",
                    "arn:aws:iam::*:policy/service-role/HyperPodObservabilityAddonPolicy*",
                    "arn:aws:iam::*:policy/service-role/HyperPodObservabilityGrafanaPolicy*"
                ]
            }
        ]
    }
    ```

------
  + Autorizzazioni aggiuntive necessarie per gestire gli utenti del Centro identità IAM per Grafana gestito da Amazon:

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

****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Sid": "SSOAccess",
                "Effect": "Allow",
                "Action": [
                    "sso:ListProfileAssociations",
                    "sso-directory:SearchUsers",
                    "sso-directory:SearchGroups",
                    "sso:AssociateProfile",
                    "sso:DisassociateProfile"
                ],
                "Resource": [
                    "*"
                ]
            }
        ]
    }
    ```

------

## Prerequisiti aggiuntivi per i gruppi di istanze con restrizioni
<a name="hyperpod-observability-addon-rig-prerequisites"></a>

Se il cluster contiene gruppi di istanze con restrizioni, il ruolo di esecuzione del gruppo di istanze deve disporre delle autorizzazioni per scrivere metriche su Amazon Managed Service for Prometheus. Quando utilizzi la **configurazione rapida** per creare un cluster con l'osservabilità abilitata, queste autorizzazioni vengono aggiunte automaticamente al ruolo di esecuzione.

Se utilizzi la **configurazione personalizzata** o aggiungi l'osservabilità a un cluster RIG esistente, assicurati che il ruolo di esecuzione per ogni gruppo di istanze ristrette disponga delle seguenti autorizzazioni:

```
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Sid": "PrometheusAccess",
            "Effect": "Allow",
            "Action": "aps:RemoteWrite",
            "Resource": "arn:aws:aps:us-east-1:account_id:workspace/workspace-ID"
        }
    ]
}
```

Sostituisci *us-east-1* e *workspace-ID* con il tuo Regione AWS ID account e l'ID dell'area di lavoro Amazon Managed Service for Prometheus. *account\$1id*

Una volta soddisfatti i prerequisiti sopra indicati, puoi installare il componente aggiuntivo Observability.

**Per installare rapidamente il componente aggiuntivo Observability**

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Vai alla pagina dei dettagli del cluster.

1. Nella scheda **Dashboard**, individua il componente aggiuntivo denominato **HyperPod Monitoring & Observability** e scegli **Installazione rapida**.

**Per eseguire un’installazione personalizzata del componente aggiuntivo Observability**

1. Vai alla pagina dei dettagli del cluster.

1. **Nella scheda **Dashboard**, individua il componente aggiuntivo denominato **HyperPod Monitoring & Observability** e scegli Installazione personalizzata.**

1. Specifica le categorie delle metriche da visualizzare. Per ulteriori informazioni su tali categorie, consulta [SageMaker HyperPod metriche del cluster](hyperpod-observability-cluster-metrics.md).

1. Specificate se desiderate abilitare Amazon CloudWatch Logs.

1. Specifica se desideri che il servizio crei un nuovo spazio di lavoro del Servizio gestito da Amazon per Prometheus.

1. Per visualizzare le metriche nelle dashboard di Grafana gestito da Amazon, seleziona la casella **Utilizza uno spazio di lavoro Grafana gestito da Amazon**. Puoi specificare il tuo spazio di lavoro o lasciare che il servizio ne crei uno nuovo per te. 
**Nota**  
Amazon Managed Grafana non è disponibile in tutti gli Regioni AWS ambienti in cui è disponibile Amazon Managed Service for Prometheus. Tuttavia, puoi configurare uno spazio di lavoro Grafana in qualsiasi Regione AWS e impostarlo per ottenere dati metrici da uno spazio di lavoro di Prometheus che si trova in un’altra Regione AWS. Per informazioni, consulta [Use AWS data source configuration to add Amazon Managed Service for Prometheus as a data source](https://docs.aws.amazon.com/grafana/latest/userguide/AMP-adding-AWS-config.html) e [Connect to Amazon Managed Service for Prometheus and open-source Prometheus data sources](https://docs.aws.amazon.com/grafana/latest/userguide/prometheus-data-source.html). 

# Dashboard di SageMaker HyperPod osservabilità di Amazon
<a name="hyperpod-observability-addon-viewing-dashboards"></a>

Questo argomento descrive come visualizzare i dashboard delle metriche per i cluster Amazon SageMaker HyperPod (SageMaker HyperPod) e come aggiungere nuovi utenti a una dashboard. L’argomento descrive inoltre i diversi tipi di dashboard.

## Accesso alle dashboard
<a name="hyperpod-observability-addon-accessing-dashboards"></a>

Per visualizzare i parametri del tuo SageMaker HyperPod cluster in Amazon Managed Grafana, esegui i seguenti passaggi:

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Vai alla pagina dei dettagli del cluster.

1. Nella scheda **Dashboard**, individua la sezione **HyperPod Osservabilità** e scegli **Apri dashboard in Grafana**.

## Aggiunta di nuovi utenti a uno spazio di lavoro Grafana gestito da Amazon
<a name="hyperpod-observability-addon-adding-users"></a>

Per informazioni su come aggiungere utenti a uno spazio di lavoro Grafana gestito da Amazon, consulta [Use AWS IAM Identity Center with your Amazon Managed Grafana workspace](https://docs.aws.amazon.com/grafana/latest/userguide/authentication-in-AMG-SSO.html) in *Amazon Managed Grafana User Guide*.

## Dashboard di osservabilità
<a name="hyperpod-observability-addon-dashboards.title"></a>

Il componente aggiuntivo SageMaker HyperPod Observability fornisce sei dashboard interconnesse nell'area di lavoro Amazon Managed Grafana predefinita. Ogni dashboard fornisce informazioni approfondite sulle diverse risorse e attività nei cluster per vari utenti come Data Scientist, ingegneri di machine learning e amministratori.

### Dashboard delle attività
<a name="hyperpod-observability-addon-task-dashboard"></a>

La dashboard Task fornisce il monitoraggio e la visualizzazione completi dei parametri di utilizzo delle risorse per le attività. SageMaker HyperPod Il pannello principale mostra una tabella dettagliata che raggruppa l’utilizzo delle risorse per attività principali, mostrando l’utilizzo di CPU, GPU e memoria nei vari pod. I grafici interattivi delle serie temporali tracciano l’utilizzo della CPU, il consumo di memoria di sistema, le percentuali di utilizzo della GPU e l’utilizzo della memoria GPU per i pod selezionati, consentendoti di monitorare le tendenze delle prestazioni nel tempo. La dashboard offre potenti funzionalità di filtraggio tramite variabili, ad esempio il nome del cluster, il namespace, il tipo di attività e pod specifici, che semplificano l’analisi di determinati carichi di lavoro. Questa soluzione di monitoraggio è essenziale per ottimizzare l'allocazione delle risorse e mantenere le prestazioni dei carichi di lavoro di apprendimento automatico su. SageMaker HyperPod

### Dashboard di addestramento
<a name="hyperpod-observability-addon-training-dashboard"></a>

La dashboard di addestramento fornisce un monitoraggio completo dell’integrità delle attività di addestramento, dell’affidabilità e delle metriche di gestione dei guasti. La dashboard presenta diversi indicatori chiave delle prestazioni, tra cui il numero di attività create, i tassi di successo e le percentuali del tempo di attività, oltre al tracciamento dettagliato degli eventi di riavvio automatici e manuali. Offre visualizzazioni dettagliate dei modelli di guasto tramite grafici a torta e mappe di calore che suddividono gli incidenti per tipo e latenza di correzione, consentendoti di identificare i problemi ricorrenti e ottimizzare l’affidabilità delle attività. L’interfaccia include il monitoraggio in tempo reale delle metriche critiche, ad esempio i tempi di ripristino del sistema e le latenze di rilevamento dei guasti, rendendola uno strumento essenziale per mantenere un’elevata disponibilità dei carichi di lavoro di addestramento. Inoltre, la finestra finale di 24 ore della dashboard fornisce un contesto cronologico per l’analisi delle tendenze e dei modelli nelle prestazioni delle attività di addestramento, aiutando i team a risolvere in modo proattivo i potenziali problemi prima che influiscano sui carichi di lavoro di produzione.

### Dashboard di inferenza
<a name="hyperpod-observability-addon-inference-dashboard"></a>

La dashboard di inferenza offre un monitoraggio completo delle prestazioni di implementazione del modello e delle metriche di integrità su più dimensioni. Offre una panoramica dettagliata delle implementazioni attive, il monitoraggio in tempo reale dei tassi di richiesta, dei tassi di successo e delle metriche di latenza, che consentono di monitorare le prestazioni di servizio dei modelli e di identificare potenziali colli di bottiglia. La dashboard include pannelli specializzati per le metriche di inferenza generali e le metriche specifiche dei token per i modelli linguistici, come il tempo al primo token (Time To First Token, TTFT) e il throughput dei token, il che la rende particolarmente utile per il monitoraggio delle implementazioni di modelli linguistici di grandi dimensioni. Inoltre, fornisce informazioni approfondite sull’infrastruttura grazie al tracciamento dell’allocazione di pod e nodi e offre al tempo stesso funzionalità di analisi dettagliata degli errori che contribuiscono a mantenere elevate la disponibilità e le prestazioni dei carichi di lavoro di inferenza.

### Dashboard del cluster
<a name="hyperpod-observability-addon-cluster-dashboard"></a>

La dashboard del cluster offre una visione completa dello stato e delle prestazioni del cluster, offrendo visibilità in tempo reale sulle risorse di calcolo, memoria, rete e storage nell'ambiente Amazon SageMaker HyperPod (SageMaker HyperPod). Con una sola occhiata, puoi visualizzare metriche critiche come le istanze totali, l’utilizzo della GPU, l’utilizzo della memoria e le prestazioni di rete attraverso un’interfaccia intuitiva che aggiorna automaticamente i dati ogni pochi secondi. La dashboard è organizzata in sezioni logiche: parte da una panoramica generale del cluster che mostra le metriche chiave, come la percentuale di istanze integre e il numero totale di risorse, e prosegue poi con sezioni dettagliate sulle prestazioni della GPU, l’utilizzo della memoria, le statistiche di rete e le metriche di archiviazione. Ogni sezione presenta grafici e pannelli interattivi che consentono di approfondire metriche specifiche, con intervalli di tempo personalizzabili e opzioni di filtraggio per nome del cluster, istanza o ID della GPU.

### Dashboard del file system
<a name="hyperpod-observability-addon-filesystem-dashboard"></a>

La dashboard del file system offre una visibilità completa sulle prestazioni e sui parametri di salute del file system (Amazon FSx for Lustre). La dashboard mostra i parametri di storage critici, tra cui capacità libera, risparmi sulla deduplicazione, CPU/memory utilizzo, IOPS del disco, throughput e connessioni client su più visualizzazioni. Consente di monitorare sia gli indicatori di prestazioni a livello di sistema, come l'utilizzo della CPU e della memoria, sia le metriche specifiche dello storage, come le operazioni e i modelli di utilizzo del disco. read/write L’interfaccia include funzionalità di tracciamento degli avvisi e grafici dettagliati delle serie temporali per tenere traccia delle tendenze delle prestazioni nel tempo, opzioni che la rendono particolarmente utile per la manutenzione proattiva e la pianificazione della capacità. Inoltre, grazie alla copertura completa delle metriche, la dashboard aiuta a identificare potenziali colli di bottiglia, ottimizzare le prestazioni di storage e garantire operazioni affidabili dei file system per i carichi di lavoro. SageMaker HyperPod 

### Dashboard delle partizioni GPU
<a name="hyperpod-observability-addon-gpu-partition-dashboard"></a>

Per monitorare le metriche specifiche della partizione GPU quando si utilizzano configurazioni Multi-Instance GPU (MIG), è necessario installare o eseguire l'aggiornamento alla versione più recente del componente aggiuntivo Observability. SageMaker HyperPod Questo addon offre funzionalità di monitoraggio complete, incluse metriche specifiche per MiG come il numero di partizioni, l'utilizzo della memoria e l'utilizzo del calcolo per partizione GPU.

Se hai già installato SageMaker HyperPod Observability ma hai bisogno del supporto per le metriche MIG, aggiorna semplicemente l'addon alla versione più recente. Questo processo non prevede interruzioni e mantiene la configurazione di monitoraggio esistente.

SageMaker HyperPod espone automaticamente metriche specifiche di MiG, tra cui:
+ `nvidia_mig_instance_count`: Numero di istanze MIG per profilo
+ `nvidia_mig_memory_usage`: utilizzo della memoria per istanza MIG
+ `nvidia_mig_compute_utilization`: utilizzo del calcolo per istanza MIG

### Dashboard Cluster Logs
<a name="hyperpod-observability-addon-cluster-logs-dashboard"></a>

La dashboard Cluster Logs offre una visualizzazione centralizzata dei CloudWatch log per il cluster. SageMaker HyperPod La dashboard interroga il gruppo di `/aws/sagemaker/Clusters/{cluster-name}/{cluster-id}` log e visualizza gli eventi di registro con funzionalità di filtraggio per ID di istanza, nome del flusso di log, livello di registro (ERROR, WARN, INFO, DEBUG) e ricerca a testo libero. La dashboard include una cronologia degli eventi che mostra la distribuzione degli eventi di registro nel tempo, un contatore totale degli eventi, una cronologia degli eventi cercati per i risultati filtrati e un pannello di log dettagliato con messaggi di registro completi, timestamp e metadati del flusso di log. Questa dashboard utilizza CloudWatch come fonte di dati ed è utile per il debug dei problemi del cluster, il monitoraggio degli eventi relativi allo stato delle istanze e l'analisi degli errori dei lavori di formazione.

# Esplorazione delle metriche dei SageMaker HyperPod cluster in Amazon Managed Grafana
<a name="hyperpod-observability-addon-exploring-metrics"></a>

Dopo aver collegato Grafana gestito da Amazon al tuo spazio di lavoro Servizio gestito da Amazon per Prometheus, puoi utilizzare l’editor di query e gli strumenti di visualizzazione di Grafana per esplorare i dati delle metriche. Grafana gestito da Amazon offre diversi modi per interagire con i dati di Prometheus, tra cui un editor di query completo per la creazione di espressioni PromQL, un browser di metriche per rilevare metriche ed etichette disponibili e funzionalità di creazione di modelli per la creazione di dashboard dinamiche. Puoi eseguire query su intervalli per visualizzare i dati di serie temporali per determinati periodi e query istantanee per recuperare i valori più recenti, con opzioni che consentono di formattare i risultati come grafi di serie temporali, tabelle o mappe termiche. Per informazioni dettagliate sulla configurazione delle impostazioni delle query, sull’utilizzo del browser delle metriche e sull’utilizzo delle funzionalità dei modelli, consulta [Using the Prometheus data source](https://docs.aws.amazon.com/grafana/latest/userguide/using-prometheus-datasource.html).

# Personalizzazione delle metriche, dei pannelli di controllo e degli avvisi SageMaker HyperPod del cluster.
<a name="hyperpod-observability-addon-customizing"></a>

Grafana gestito da Amazon ti consente di creare dashboard complete che visualizzano i dati in pannelli con query collegate alle tue origini dati. Puoi creare dashboard da zero, importare dashboard esistenti o esportare le dashboard create per scopi di condivisione e backup. Le dashboard Grafana supportano funzionalità dinamiche grazie a variabili che sostituiscono i valori con codifica fissa nelle query, rendendo le visualizzazioni più flessibili e interattive. Puoi anche migliorare le tue dashboard con funzionalità come annotazioni, pannelli di librerie per la riutilizzabilità, gestione della cronologia delle versioni e link personalizzati per creare una soluzione completa di monitoraggio e osservabilità. [Per step-by-step indicazioni su come creare, importare, configurare e gestire i dashboard, consulta Creazione di dashboard.](https://docs.aws.amazon.com/grafana/latest/userguide/v10-dash-building-dashboards.html)

# Creazione di metriche personalizzate per i cluster SageMaker HyperPod
<a name="hyperpod-observability-addon-custom-metrics"></a>

Il componente aggiuntivo Amazon SageMaker HyperPod (SageMaker HyperPod) observability fornisce centinaia di parametri di salute, prestazioni ed efficienza. out-of-the-box Oltre a queste metriche, potrebbe essere necessario monitorare metriche personalizzate per applicazioni o esigenze aziendali specifiche che non rientrano nelle metriche predefinite, come indicatori di prestazioni specifici del modello, statistiche di elaborazione dei dati o misurazioni specifiche dell’applicazione. Per soddisfare questa esigenza, puoi implementare la raccolta di metriche personalizzate OpenTelemetry integrando un frammento di codice Python nella tua applicazione.

Per creare metriche personalizzate, esegui prima il seguente comando shell per installare i OpenTelemetry componenti principali necessari per strumentare le applicazioni Python per l'osservabilità. Questa installazione consente alle applicazioni Python eseguite su SageMaker HyperPod cluster di emettere dati di telemetria personalizzati. Questi dati vengono raccolti dal OpenTelemetry raccoglitore e inoltrati all'infrastruttura di osservabilità.

```
pip install opentelemetry-api opentelemetry-sdk opentelemetry-exporter-otlp-proto-grpc
```

Lo script di esempio seguente configura una pipeline di OpenTelemetry metriche che contrassegna automaticamente le metriche con informazioni su pod e nodi, garantendo la corretta attribuzione all'interno del cluster e invia queste metriche allo stack di osservabilità integrato ogni secondo. SageMaker HyperPod Lo script stabilisce una connessione al raccoglitore di SageMaker HyperPod metriche, imposta gli attributi di risorsa appropriati per l'identificazione e fornisce un'interfaccia di misurazione tramite la quale è possibile creare vari tipi di metriche (contatori, indicatori o istogrammi) per tenere traccia di qualsiasi aspetto delle prestazioni dell'applicazione. Le metriche personalizzate si integrano con le dashboard di monitoraggio insieme alle metriche di sistema. SageMaker HyperPod Questa integrazione consente un’osservabilità completa attraverso un’unica interfaccia, in cui puoi creare avvisi, visualizzazioni e report personalizzati per monitorare il profilo delle prestazioni completo del carico di lavoro.

```
import os
from opentelemetry import metrics
from opentelemetry.exporter.otlp.proto.grpc.metric_exporter import OTLPMetricExporter
from opentelemetry.sdk.metrics import MeterProvider
from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader
from opentelemetry.sdk.resources import Resource

# Get hostname/pod name
hostname = os.uname()[1]
node_name = os.getenv('NODE_NAME', 'unknown')

collector_endpoint = "hyperpod-otel-collector.hyperpod-observability:4317"

# Configure the OTLP exporter
exporter = OTLPMetricExporter(
    endpoint=collector_endpoint,
    insecure=True,
    timeout=5000  # 5 seconds timeout
)

reader = PeriodicExportingMetricReader(
    exporter,
    export_interval_millis=1000
)

resource = Resource.create({
    "service.name": "metric-test",
    "pod.name": hostname,
    "node.name": node_name
})

meter_provider = MeterProvider(
    metric_readers=[reader],
    resource=resource
)
metrics.set_meter_provider(meter_provider)

# Create a meter
meter = metrics.get_meter("test-meter")

# Create a counter
counter = meter.create_counter(
    name="test.counter",
    description="A test counter"
)

counter.add(1, {"pod": hostname, "node": node_name})
```

# SageMaker HyperPod metriche del cluster
<a name="hyperpod-observability-cluster-metrics"></a>

Amazon SageMaker HyperPod (SageMaker HyperPod) pubblica diverse metriche in 9 categorie distinte nell'area di lavoro Amazon Managed Service for Prometheus. Non tutte le metriche sono abilitate per impostazione predefinita o visualizzate nello spazio di lavoro Grafana gestito da Amazon. La tabella seguente mostra quali metriche sono abilitate per impostazione predefinita quando installi il componente aggiuntivo Observability, quali categorie hanno metriche aggiuntive che possono essere abilitate per ottenere informazioni più granulari sul cluster e dove vengono visualizzate tali metriche nello spazio di lavoro Grafana gestito da Amazon.


| Categoria parametro | Abilitata per impostazione predefinita? | Sono disponibili ulteriori metriche avanzate? | In quali dashboard Grafana è disponibile? | 
| --- | --- | --- | --- | 
| Metriche di addestramento | Sì  | Sì | Addestramento | 
| Metriche di inferenza | Sì | No | Inferenza | 
| Metriche di governance delle attività | No | Sì | Nessuna. Effettua una query sullo spazio di lavoro del Servizio gestito da Amazon per Prometheus per creare la tua dashboard. | 
| Metriche di dimensionamento | No | Sì | Nessuna. Effettua una query sullo spazio di lavoro del Servizio gestito da Amazon per Prometheus per creare la tua dashboard. | 
| Parametri cluster | Sì  | Sì | Cluster | 
| Parametri dell'istanza | Sì  | Sì | Cluster | 
| Metriche di calcolo accelerate | Sì  | Sì | Attività, cluster | 
| Metriche di rete | No | Sì | Cluster | 
| File system | Sì | No | File system | 

Le tabelle seguenti descrivono le metriche disponibili per il monitoraggio del cluster, organizzate per categoria. SageMaker HyperPod 

## Disponibilità delle metriche nei gruppi di istanze con restrizioni
<a name="hyperpod-observability-rig-metrics-availability"></a>

Quando il cluster contiene gruppi di istanze con restrizioni, la maggior parte delle categorie di metriche è disponibile su nodi con restrizioni con le seguenti eccezioni e considerazioni. Puoi anche impostare avvisi in base a qualsiasi metrica di tua scelta.


| Categoria parametro | Disponibile sui nodi RIG? | Note | 
| --- | --- | --- | 
| Metriche di addestramento | Sì | Vengono raccolte le metriche dei pod Kubeflow e Kubernetes. Le metriche dei KPI per la formazione avanzata (fornite da Training Metrics Agent) non sono disponibili nei nodi RIG. | 
| Metriche di inferenza | No | I carichi di lavoro di inferenza non sono supportati nei gruppi di istanze con restrizioni. | 
| Metriche di governance delle attività | No | Le metriche Kueue vengono raccolte solo dai nodi standard, se presenti. | 
| Metriche di dimensionamento | No | Le metriche KEDA vengono raccolte solo dai nodi standard, se presenti. | 
| Parametri cluster | Sì | Sono disponibili le metriche dello stato di Kube e le metriche del server API. Kube State Metrics è pianificato preferibilmente su nodi standard, ma può essere eseguito su nodi con restrizioni in cluster solo Rig. | 
| Parametri dell'istanza | Sì | Le metriche di Node Exporter e CADvisor vengono raccolte su tutti i nodi, compresi i nodi con restrizioni. | 
| Metriche di calcolo accelerate | Sì | DCGM Exporter funziona su nodi limitati abilitati alla GPU. Neuron Monitor funziona su nodi limitati abilitati a Neuron quando è abilitata la modalità avanzata. | 
| Metriche di rete | Sì | EFA Exporter funziona su nodi con restrizioni abilitati per EFA quando è abilitata la modalità avanzata. | 
| Metriche del file system | Sì | FSx le metriche di utilizzo del cluster for Lustre sono supportate su Restricted Instance Groups. | 

**Nota**  
La raccolta dei log dei container con Fluent Bit non viene distribuita su nodi con restrizioni. I log dei cluster provenienti dai nodi con restrizioni sono disponibili attraverso la SageMaker HyperPod piattaforma indipendentemente dal componente aggiuntivo Observability. È possibile visualizzare questi registri nella dashboard Cluster Logs.

## Metriche di addestramento
<a name="hyperpod-observability-training-metrics"></a>

Utilizza queste metriche per tenere traccia delle prestazioni delle attività di formazione eseguite sul cluster. SageMaker HyperPod 


| Nome o tipo di metrica | Description | Abilitata per impostazione predefinita? | Origine metrica | 
| --- | --- | --- | --- | 
| Metriche Kubeflow | [https://github.com/kubeflow/trainer](https://github.com/kubeflow/trainer) | Sì | Kubeflow | 
| Metriche dei pod di Kubernetes | [https://github.com/kubernetes/kube-state-metrics](https://github.com/kubernetes/kube-state-metrics) | Sì | Kubernetes | 
| training\$1uptime\$1percentage | Percentuale di tempo di addestramento rispetto alla finestra di tempo totale | No | SageMaker HyperPod operatore di formazione | 
| training\$1manual\$1recovery\$1count | Numero totale di riavvii manuali eseguiti sul processo | No | SageMaker HyperPod operatore addetto alla formazione | 
| training\$1manual\$1downtime\$1ms | Tempo totale in millisecondi in cui il processo è stato interrotto a causa di interventi manuali | No | SageMaker HyperPod operatore addetto alla formazione | 
| training\$1auto\$1recovery\$1count | Numero totale di ripristini automatici | No | SageMaker HyperPod operatore addetto alla formazione | 
| training\$1auto\$1recovery\$1downtime | Tempo totale di sovraccarico dell’infrastruttura in millisecondi durante il ripristino dei guasti | No | SageMaker HyperPod operatore addetto alla formazione | 
| training\$1fault\$1count | Numero totale di guasti riscontrati durante l’addestramento | No | SageMaker HyperPod operatore addetto alla formazione | 
| training\$1fault\$1type\$1count | Distribuzione dei guasti per tipo | No | SageMaker HyperPod operatore addetto alla formazione | 
| training\$1fault\$1recovery\$1time\$1ms | Tempo di ripristino in millisecondi per ogni tipo di guasto | No | SageMaker HyperPod operatore addetto alla formazione | 
| training\$1time\$1ms | Tempo totale in millisecondi dedicato all’addestramento effettivo | No | SageMaker HyperPod operatore addetto alla formazione | 

## Metriche di inferenza
<a name="hyperpod-observability-inference-metrics"></a>

Utilizza queste metriche per tenere traccia delle prestazioni delle attività di inferenza sul SageMaker HyperPod cluster.


| Nome o tipo di metrica | Description | Abilitata per impostazione predefinita? | Origine metrica | 
| --- | --- | --- | --- | 
| model\$1invocations\$1total | Numero totale di richieste di invocazione al modello | Sì | SageMaker HyperPod operatore di inferenza | 
| model\$1errors\$1total | Numero totale di errori durante l’invocazione del modello | Sì | SageMaker HyperPod operatore di inferenza | 
| model\$1concurrent\$1requests | Richieste di modelli simultanee attive | Sì | SageMaker HyperPod operatore di inferenza | 
| model\$1latency\$1milliseconds | Latenza di invocazione del modello in millisecondi | Sì | SageMaker HyperPod operatore di inferenza | 
| model\$1ttfb\$1milliseconds | Latenza del tempo al primo byte (Time To First Byte, TTFB) del modello in millisecondi | Sì | SageMaker HyperPod operatore di inferenza | 
| TGI | Queste metriche possono essere utilizzate per monitorare le prestazioni del TGI, eseguire il dimensionamento automatico dell’implementazione e identificare i colli di bottiglia. Per un elenco dettagliato delle metriche, vedere [https://github.com/deepjavalibrary/djl](https://github.com/deepjavalibrary/djl-serving/blob/master/prometheus/README.md) - .md. serving/blob/master/prometheus/README | Sì | Container del modello | 
| LMI | Queste metriche possono essere utilizzate per monitorare le prestazioni dell’LMI e identificare i colli di bottiglia. [Per un elenco dettagliato delle metriche, vedere https://github.com/deepjavalibrary/ djl- .md. serving/blob/master/prometheus/README](https://github.com/deepjavalibrary/djl-serving/blob/master/prometheus/README.md) | Sì | Container del modello | 

## Metriche di governance delle attività
<a name="hyperpod-observability-task-governance-metrics"></a>

Utilizza queste metriche per monitorare la governance delle attività e l'allocazione delle risorse nel cluster. SageMaker HyperPod 


| Nome o tipo di metrica | Description | Abilitata per impostazione predefinita? | Origine metrica | 
| --- | --- | --- | --- | 
| Kueue | [Vedi https://kueue.sigs.k8s. io/docs/reference/metrics](https://kueue.sigs.k8s.io/docs/reference/metrics/)/. | No | Kueue | 

## Metriche di dimensionamento
<a name="hyperpod-observability-scaling-metrics"></a>

Utilizza queste metriche per monitorare il comportamento e le prestazioni dell'auto-scaling sul cluster. SageMaker HyperPod 


| Nome o tipo di metrica | Description | Abilitata per impostazione predefinita? | Origine metrica | 
| --- | --- | --- | --- | 
| Metriche dell’operatore KEDA | [Vedi https://keda. sh/docs/2.17/integrations/prometheus/\$1operator](https://keda.sh/docs/2.17/integrations/prometheus/#operator). | No | Kubernetes Event-Driven Autoscaler (KEDA) | 
| Metriche del webhook KEDA | Vedi [https://keda. sh/docs/2.17/integrations/prometheus/\$1admission -webhooks](https://keda.sh/docs/2.17/integrations/prometheus/#admission-webhooks). | No | Kubernetes Event-Driven Autoscaler (KEDA) | 
| Metriche del server di metriche KEDA | [Vedi https://keda. sh/docs/2.17/integrations/prometheus/\$1metrics -server.](https://keda.sh/docs/2.17/integrations/prometheus/#metrics-server) | No | Kubernetes Event-Driven Autoscaler (KEDA) | 

## Parametri cluster
<a name="hyperpod-observability-cluster-health-metrics"></a>

Utilizza queste metriche per monitorare l’integrità complessiva del cluster e l’allocazione delle risorse.


| Nome o tipo di metrica | Description | Abilitata per impostazione predefinita? | Origine metrica | 
| --- | --- | --- | --- | 
| Integrità del cluster | Metriche del server API Kubernetes. Vedi [https://kubernetes. io/docs/reference/instrumentation/metrics](https://kubernetes.io/docs/reference/instrumentation/metrics/)/. | Sì | Kubernetes | 
| KubeState | Vedi [https://github.com/kubernetes/kube-state-metrics/\$1default -resources tree/main/docs](https://github.com/kubernetes/kube-state-metrics/tree/main/docs#default-resources). | Limitato | Kubernetes | 
| KubeState Avanzato | Vedi [https://github.com/kubernetes/kube-state-metrics/tree/main/docs\$1optional -resources](https://github.com/kubernetes/kube-state-metrics/tree/main/docs#optional-resources). | No | Kubernetes | 

## Parametri dell'istanza
<a name="hyperpod-observability-instance-metrics"></a>

Utilizza queste metriche per monitorare le prestazioni e l’integrità delle singole istanze.


| Nome o tipo di metrica | Description | Abilitata per impostazione predefinita? | Origine metrica | 
| --- | --- | --- | --- | 
| Metriche dei nodi | [Vedi node\$1exporter? https://github.com/prometheus/ readme-ov-filetab= \$1 enabled-by-default](https://github.com/prometheus/node_exporter?tab=readme-ov-file#enabled-by-default). | Sì | Kubernetes | 
| Metriche dei container | Metriche dei container esposte da Cadvisor. [Vedi cadvisor. https://github.com/google/](https://github.com/google/cadvisor) | Sì | Kubernetes | 

## Metriche di calcolo accelerate
<a name="hyperpod-observability-accelerated-compute-metrics"></a>

Utilizza queste metriche per monitorare le prestazioni, l’integrità e l’utilizzo dei singoli dispositivi di calcolo accelerati nel tuo cluster.

**Nota**  
Quando il partizionamento della GPU con MIG (Multi-Instance GPU) è abilitato sul cluster, le metriche DCGM forniscono automaticamente la granularità a livello di partizione per il monitoraggio delle singole istanze MIG. Ogni partizione MIG è esposta come un dispositivo GPU separato con parametri propri per temperatura, potenza, utilizzo della memoria e attività di calcolo. Ciò consente di tenere traccia dell'utilizzo e dello stato delle risorse per ciascuna partizione GPU in modo indipendente, consentendo un monitoraggio preciso dei carichi di lavoro in esecuzione su risorse GPU frazionarie. Per ulteriori informazioni sulla configurazione del partizionamento della GPU, consulta. [Utilizzo delle partizioni GPU in Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md)


| Nome o tipo di metrica | Description | Abilitata per impostazione predefinita? | Origine metrica | 
| --- | --- | --- | --- | 
| GPU NVIDIA | Metriche di DCGM. [Vedere dcgm- -metrics-included.csvhttps://github.com/NVIDIA/. exporter/blob/main/etc/dcp](https://github.com/NVIDIA/dcgm-exporter/blob/main/etc/dcp-metrics-included.csv) | Limitato |  NVIDIA Data Center GPU Manager (DCGM)  | 
|  GPU NVIDIA (avanzata)  | Metriche di DCGM disattivate nel seguente file CSV:[https://github.com/NVIDIA/dcgm- -metrics-included.csv exporter/blob/main/etc/dcp](https://github.com/NVIDIA/dcgm-exporter/blob/main/etc/dcp-metrics-included.csv) | No |  NVIDIA Data Center GPU Manager (DCGM)  | 
| AWS Trainium | Metriche di Neuron. Vedi [https://awsdocs-neuron.readthedocs-hosted.com/en/latest/tools/neuron-sys-tools/neuron- monitor-user-guide .html\$1. neuron-monitor-nc-counters](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/tools/neuron-sys-tools/neuron-monitor-user-guide.html#neuron-monitor-nc-counters) | No | AWS Monitor neuronale | 

## Metriche di rete
<a name="hyperpod-observability-network-metrics"></a>

Utilizza queste metriche per monitorare le prestazioni e l’integrità degli Elastic Fabric Adapters (EFA) del cluster.


| Nome o tipo di metrica | Description | Abilitata per impostazione predefinita? | Origine metrica | 
| --- | --- | --- | --- | 
| EFA | Vedi [https://github.com/aws-samples/awsome-distributed-training/blob/main/4.validation\$1and\$1observability/3.efa-node-exporter/README.md.](https://github.com/aws-samples/awsome-distributed-training/blob/main/4.validation_and_observability/3.efa-node-exporter/README.md) | No | Elastic Fabric Adapter | 

## Metriche del file system
<a name="hyperpod-observability-file-system-metrics"></a>


| Nome o tipo di metrica | Description | Abilitata per impostazione predefinita? | Origine metrica | 
| --- | --- | --- | --- | 
| File system | Metriche FSx di Amazon for Lustre di Amazon: CloudWatch[Monitoraggio con Amazon CloudWatch](https://docs.aws.amazon.com/fsx/latest/LustreGuide/monitoring-cloudwatch.html). | Sì | Amazon FSx per Lustre | 

# Avvisi preconfigurati
<a name="hyperpod-observability-addon-alerts"></a>

Il componente aggiuntivo Amazon SageMaker HyperPod (SageMaker HyperPod) observability abilita avvisi predefiniti per il cluster e i carichi di lavoro per avvisarti quando il sistema rileva indicatori precoci comuni di prestazioni insufficienti del cluster. Questi avvisi sono definiti all’interno del sistema di avvisi integrato di Grafana gestito da Amazon. Per informazioni su come modificare questi avvisi preconfigurati o crearne di nuovi, consulta [Alerts in Grafana version 10](https://docs.aws.amazon.com/grafana/latest/userguide/v10-alerts.html) in *Amazon Managed Grafana User Guide*. Il file YAML seguente mostra gli avvisi predefiniti.

```
groups:
- name: sagemaker_hyperpod_alerts
  rules:
  # GPU_TEMP_ABOVE_80C
  - alert: GPUHighTemperature
    expr: DCGM_FI_DEV_GPU_TEMP > 80
    for: 5m
    labels:
      severity: warning
    annotations:
      summary: "GPU Temperature Above 80C"
      description: "GPU {{ $labels.gpu }} temperature is {{ $value }}°C."

  # GPU_TEMP_ABOVE_85C  
  - alert: GPUCriticalTemperature  
    expr: DCGM_FI_DEV_GPU_TEMP > 85
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: "GPU Temperature Above 85C"
      description: "GPU {{ $labels.gpu }} temperature is {{ $value }}°C."

  # GPU_MEMORY_ERROR
  # Any ECC double-bit errors indicate serious memory issues requiring immediate attention
  - alert: GPUMemoryErrorDetected
    expr: DCGM_FI_DEV_ECC_DBE_VOL_TOTAL > 0 or DCGM_FI_DEV_ECC_DBE_AGG_TOTAL > DCGM_FI_DEV_ECC_DBE_AGG_TOTAL offset 5m
    labels:
      severity: critical
    annotations:
      summary: "GPU ECC Double-Bit Error Detected"
      description: "GPU {{ $labels.gpu }} has detected ECC double-bit errors."

  # GPU_POWER_WARNING
  # Sustained power limit violations can impact performance and stability
  - alert: GPUPowerViolation
    expr: DCGM_FI_DEV_POWER_VIOLATION > 100
    for: 5m
    labels:
      severity: warning  
    annotations:
      summary: "GPU Power Violation"
      description: "GPU {{ $labels.gpu }} has been operating at power limit for extended period."

  # GPU_NVLINK_ERROR
  # NVLink errors above threshold indicate interconnect stability issues
  - alert: NVLinkErrorsDetected
    expr: DCGM_FI_DEV_NVLINK_RECOVERY_ERROR_COUNT_TOTAL > 0 or DCGM_FI_DEV_NVLINK_REPLAY_ERROR_COUNT_TOTAL > 10
    labels:
      severity: warning
    annotations:
      summary: "NVLink Errors Detected" 
      description: "GPU {{ $labels.gpu }} has detected NVLink errors."

  # GPU_THERMAL_VIOLATION  
  # Immediate alert on thermal violations to prevent hardware damage
  - alert: GPUThermalViolation
    expr: increase(DCGM_FI_DEV_THERMAL_VIOLATION[5m]) > 0
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: "GPU Thermal Violation Detected"
      description: "GPU {{ $labels.gpu }} has thermal violations on node {{ $labels.Hostname }}"

  # GPU_XID_ERROR
  # XID errors indicate driver or hardware level GPU issues requiring investigation
  - alert: GPUXidError
    expr: DCGM_FI_DEV_XID_ERRORS > 0
    for: 0m
    labels:
      severity: critical
    annotations:
      summary: "GPU XID Error Detected"
      description: "GPU {{ $labels.gpu }} experienced XID error {{ $value }} on node {{ $labels.Hostname }}"

  # MIG_CONFIG_FAILURE
  # MIG configuration failures indicate issues with GPU partitioning setup
  - alert: MIGConfigFailure
    expr: kubelet_node_name{nvidia_com_mig_config_state="failed"} > 0
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: "MIG Configuration Failed"
      description: "MIG configuration failed on node {{ $labels.instance }}"

  # DISK_SPACE_WARNING
  # 90% threshold ensures time to respond before complete disk exhaustion
  - alert: NodeDiskSpaceWarning
    expr: (node_filesystem_size_bytes - node_filesystem_free_bytes) / node_filesystem_size_bytes * 100 > 90
    for: 5m
    labels:
      severity: warning
    annotations:
      summary: "High Disk Usage"
      description: "Node {{ $labels.instance }} disk usage is above 90%"

  # FSX_STORAGE_WARNING
  # 80% FSx utilization allows buffer for burst workloads
  - alert: FsxLustreStorageWarning
    expr: fsx_lustre_storage_used_bytes / fsx_lustre_storage_capacity_bytes * 100 > 80
    for: 5m
    labels:
      severity: warning
    annotations:
      summary: "High FSx Lustre Usage"
      description: "FSx Lustre storage usage is above 80% on file system {{ $labels.filesystem_id }}"
```

# Risoluzione dei problemi relativi al componente aggiuntivo Amazon SageMaker HyperPod Observability
<a name="hyperpod-observability-addon-troubleshooting"></a>

Utilizza le seguenti linee guida per risolvere problemi comuni con il componente aggiuntivo Amazon SageMaker HyperPod (SageMaker HyperPod) observability.

## Risoluzione dei problemi relativi alle metriche mancanti in Grafana gestito da Amazon
<a name="troubleshooting-missing-metrics"></a>

Se le metriche non compaiono nelle dashboard di Grafana gestito da Amazon, segui queste fasi per identificare e risolvere il problema.

### Verifica della connessione tra il Servizio gestito da Amazon per Prometheus e Grafana gestito da Amazon
<a name="verify-amp-grafana-connection"></a>

1. Accedi alla console di Grafana gestito da Amazon.

1. Nel riquadro a sinistra, scegli **Tutto workspaces**.

1. Nella tabella **Workspace**, scegli il tuo spazio di lavoro.

1. Nella pagina dei dettagli dello spazio di lavoro, scegli la scheda **Origini dati**.

1. Verifica che l’origine dati del Servizio gestito da Amazon per Prometheus esista.

1. Controlla le impostazioni di connessione:
   + Conferma che l’URL dell’endpoint sia corretto.
   + Verifica che l’autenticazione IAM sia configurata correttamente.
   + Scegli **Test Connection (Connessione di prova)**. Verifica che lo stato sia **Origine dati funzionante**.

### Verifica dello stato del componente aggiuntivo Amazon EKS
<a name="verify-eks-addon-status"></a>

1. Apri la console Amazon EKS a [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. Selezionare il cluster.

1. Selezionare la scheda **Componenti aggiuntivi**.

1. **Verifica che il componente aggiuntivo di SageMaker HyperPod osservabilità sia elencato e che il suo stato sia ATTIVO.**

1. Se lo stato non è **ACTIVE**, consulta [Risoluzione degli errori di installazione del componente aggiuntivo](#troubleshooting-addon-installation-failures).

### Verifica dell’associazione Pod Identity
<a name="verify-pod-identity-association"></a>

1. Apri la console Amazon EKS a [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. Selezionare il cluster.

1. Nella pagina dei dettagli del cluster, scegli la scheda **Accesso**.

1. Nella tabella **Associazioni Pod Identity**, scegli l’associazione con i valori di proprietà seguenti:
   + **Spazio** dei nomi: `hyperpod-observability`
   + **Account del servizio**: `hyperpod-observability-operator-otel-collector`
   + **Componente aggiuntivo**: `amazon-sagemaker-hyperpod-observability`

1. Assicurati che il ruolo IAM collegato a questa associazione abbia le autorizzazioni seguenti.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "PrometheusAccess",
               "Effect": "Allow",
               "Action": "aps:RemoteWrite",
               "Resource": "arn:aws:aps:us-east-1:111122223333:workspace/workspace-ID"
           },
           {
               "Sid": "CloudwatchLogsAccess",
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogGroup",
                   "logs:CreateLogStream",
                   "logs:DescribeLogGroups",
                   "logs:DescribeLogStreams",
                   "logs:PutLogEvents",
                   "logs:GetLogEvents",
                   "logs:FilterLogEvents",
                   "logs:GetLogRecord",
                   "logs:StartQuery",
                   "logs:StopQuery",
                   "logs:GetQueryResults"
               ],
               "Resource": [
                   "arn:aws:logs:us-east-1:111122223333:log-group:/aws/sagemaker/Clusters/*",
                   "arn:aws:logs:us-east-1:111122223333:log-group:/aws/sagemaker/Clusters/*:log-stream:*"
               ]
           }
       ]
   }
   ```

------

1. Assicurati che il ruolo IAM collegato a questa associazione abbia la policy di attendibilità seguente. Verifica che l’ARN di origine e l’account di origine siano corretti.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowEksAuthToAssumeRoleForPodIdentity",
               "Effect": "Allow",
               "Principal": {
                   "Service": "pods.eks.amazonaws.com"
               },
               "Action": [
                   "sts:AssumeRole",
                   "sts:TagSession"
               ],
               "Condition": {
                   "StringEquals": {
                       "aws:SourceArn": "arn:aws:eks:us-east-1:111122223333:cluster/cluster-name",
                       "aws:SourceAccount": "111122223333"
                   }
               }
           }
       ]
   }
   ```

------

### Verifica della limitazione (della larghezza di banda della rete) del Servizio gestito da Amazon per Prometheus
<a name="check-amp-throttling"></a>

1. Accedi Console di gestione AWS e apri la console Service Quotas all'indirizzo. [https://console.aws.amazon.com/servicequotas/](https://console.aws.amazon.com/servicequotas/)

1. Nella casella **Quote gestite**, cerca e seleziona Servizio gestito da Amazon per Prometheus.

1. Scegli la quota **Serie attiva per spazio di lavoro**.

1. Nella scheda **Quote a livello di risorsa**, seleziona lo spazio di lavoro del Servizio gestito da Amazon per Prometheus.

1. Assicurati che l’utilizzo sia inferiore alla tua quota attuale.

1. Se hai raggiunto il limite di quota, seleziona lo spazio di lavoro scegliendo il pulsante di opzione a sinistra, quindi seleziona **Richiedi un aumento a livello di risorsa**.

### Verifica che la memorizzazione nella cache KV e il routing intelligente siano abilitati
<a name="verify-caching-routing"></a>

Se manca la `KVCache Metrics` dashboard, la funzionalità non è abilitata o la porta non è menzionata nel. `modelMetrics` Per ulteriori informazioni su come abilitarla, consulta i passaggi 1 e 3 di seguito[Configura la memorizzazione nella cache KV e il routing intelligente per migliorare le prestazioni](sagemaker-hyperpod-model-deployment-deploy-ftm.md#sagemaker-hyperpod-model-deployment-deploy-ftm-cache-route). 

Se manca la `Intelligent Router Metrics` dashboard, abilita la funzione per farli apparire. Per ulteriori informazioni su come abilitarla, consulta[Configura la memorizzazione nella cache KV e il routing intelligente per migliorare le prestazioni](sagemaker-hyperpod-model-deployment-deploy-ftm.md#sagemaker-hyperpod-model-deployment-deploy-ftm-cache-route). 

## Risoluzione degli errori di installazione del componente aggiuntivo
<a name="troubleshooting-addon-installation-failures"></a>

Se l’installazione del componente aggiuntivo Observability non riesce, utilizza la procedura seguente per diagnosticare e risolvere il problema.

### Controlla lo stato di integrità della sonda
<a name="check-health-probe-status"></a>

1. Apri la console Amazon EKS a [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. Selezionare il cluster.

1. Selezionare la scheda **Componenti aggiuntivi**.

1. Scegli il componente aggiuntivo non riuscito.

1. Consulta la sezione **Problemi di integrità**.

1. Se il problema di integrità è correlato alle credenziali o a Pod Identity, consulta [Verifica dell’associazione Pod Identity](#verify-pod-identity-association). Assicurati inoltre che il componente aggiuntivo Pod Identity Agent sia in esecuzione nel cluster.

1. Verifica la presenza di errori nei log del gestore. Per istruzioni, consulta [Revisione dei log del gestore](#review-manager-logs).

1. Contatta l' AWS assistenza per i dettagli del problema.

### Revisione dei log del gestore
<a name="review-manager-logs"></a>

1. Scarica il pod del gestore dei componenti aggiuntivi:

   ```
   kubectl logs -n hyperpod-observability -l control-plane=hyperpod-observability-controller-manager
   ```

1. Per problemi urgenti, contatta Supporto.

## Revisione di tutti i pod di osservabilità
<a name="review-all-observability-pods"></a>

Tutti i pod creati dal componente aggiuntivo SageMaker HyperPod Observability si trovano nel namespace. `hyperpod-observability` Per ottenere lo stato di questi pod, utilizza il comando seguente.

```
kubectl get pods -n hyperpod-observability
```

Cerca i pod il cui stato è `pending` o `crashloopbackoff`. Utilizza il comando seguente per ottenere i log di questi pod in sospeso o in errore.

```
kubectl logs -n hyperpod-observability pod-name
```

Se non trovi errori nei log, utilizza il comando seguente per descrivere i pod e cercare gli errori.

```
kubectl describe -n hyperpod-observability pod pod-name
```

Per ottenere più contesto, esegui questi due comandi per visualizzare le descrizioni delle implementazioni e dei DaemonSet per questi pod.

```
kubectl describe -n hyperpod-observability deployment deployment-name
```

```
kubectl describe -n hyperpod-observability daemonset daemonset-name
```

## Risoluzione dei problemi relativi ai pod bloccati nello stato in sospeso
<a name="pods-stuck-in-pending"></a>

Se vedi che ci sono dei pod bloccati nello stato `pending`, assicurati che il nodo sia abbastanza grande da contenerli tutti. Per verificare che lo sia, procedi come segue.

1. Apri la console Amazon EKS a [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. Scegli il cluster.

1. Scegli la scheda **Calcolo** del cluster.

1. Scegli il nodo con il tipo di istanza più piccolo.

1. Nella sezione di allocazione della capacità, cerca i pod disponibili.

1. Se non ci sono pod disponibili, devi scegliere un tipo di istanza più grande.

Per problemi urgenti, contatta Supporto AWS.

## Risoluzione dei problemi di osservabilità su gruppi di istanze con restrizioni
<a name="troubleshooting-rig-observability"></a>

Utilizza la seguente guida per risolvere problemi specifici dei cluster con Restricted Instance Groups.

### I pod di osservabilità non iniziano su nodi con restrizioni
<a name="troubleshooting-rig-pods-not-starting"></a>

Se i pod di osservabilità non si avviano su nodi con restrizioni, controlla lo stato e gli eventi dei pod:

```
kubectl get pods -n hyperpod-observability -o wide
kubectl describe pod pod-name -n hyperpod-observability
```

Le cause più comuni includono:
+ **Errori di estrazione delle immagini:** gli eventi del pod possono mostrare errori di estrazione delle immagini se le immagini del contenitore di osservabilità non sono ancora elencate nei nodi con restrizioni. Assicurati di utilizzare la versione più recente del componente aggiuntivo Observability. Se il problema persiste dopo l'aggiornamento, contatta. Supporto
+ **Tolleranze di contaminazione:** verificate che le specifiche del pod includano la tolleranza richiesta per i nodi con restrizioni. Il componente aggiuntivo a partire dalla versione aggiunge `v1.0.5-eksbuild.1` automaticamente questa tolleranza quando il supporto RIG è abilitato. Se utilizzi una versione precedente, esegui l'aggiornamento alla versione più recente.

### Visualizzazione dei log dei pod su nodi con restrizioni
<a name="troubleshooting-rig-viewing-logs"></a>

Il `kubectl logs` comando non funziona per i pod in esecuzione su nodi con restrizioni. Questa è una limitazione prevista perché il percorso di comunicazione richiesto per lo streaming dei log non è disponibile sui nodi con restrizioni.

Per visualizzare i log dai nodi con restrizioni, usa la dashboard **Cluster Logs** in Amazon Managed Grafana, che interroga direttamente i log. CloudWatch Puoi filtrare per ID di istanza, flusso di log, livello di log e ricerca a testo libero per trovare le voci di log pertinenti.

### Errori di risoluzione DNS in cluster con nodi standard e limitati
<a name="troubleshooting-rig-dns-resolution"></a>

Nei cluster ibridi (cluster con gruppi di istanze standard e limitati), i pod sui nodi standard possono subire dei timeout di risoluzione DNS quando cercano di raggiungere AWS endpoint di servizio come Amazon Managed Service for Prometheus o. CloudWatch

**Causa:** il `kube-dns` servizio dispone di endpoint sia da pod CoredNS standard che da pod CoredNS RIG. I node pod standard non possono raggiungere gli endpoint RIG CoredNS a causa dell'isolamento della rete. Quando si `kube-proxy` bilancia il carico di una richiesta DNS da un pod di nodi standard a un endpoint RIG CoredNS, la richiesta scade.

**Risoluzione:** imposta il `kube-dns` servizio `internalTrafficPolicy: Local` in modo che i pod raggiungano CoredNS solo sul loro nodo locale:

```
kubectl patch svc kube-dns -n kube-system -p '{"spec":{"internalTrafficPolicy":"Local"}}'
```

Dopo aver applicato questa patch, riavvia i pod di osservabilità interessati:

```
kubectl delete pods -n hyperpod-observability -l app.kubernetes.io/name=hyperpod-node-collector
```

### Metriche dei nodi con restrizioni che non raggiungono Amazon Managed Service for Prometheus
<a name="troubleshooting-rig-metrics-not-reaching-amp"></a>

Se le metriche dei nodi con restrizioni non vengono visualizzate nel tuo spazio di lavoro Amazon Managed Service for Prometheus:

1. **Verifica le autorizzazioni del ruolo di esecuzione.** Assicurati che il ruolo di esecuzione per il gruppo di istanze ristrette disponga dell'`aps:RemoteWrite`autorizzazione per il tuo spazio di lavoro Prometheus. Per ulteriori informazioni, consulta [Prerequisiti aggiuntivi per i gruppi di istanze con restrizioni](hyperpod-observability-addon-setup.md#hyperpod-observability-addon-rig-prerequisites).

1. **Controlla lo stato del pod node collector.** Esegui il comando seguente e verifica che i pod del collettore di nodi siano in esecuzione su nodi con restrizioni:

   ```
   kubectl get pods -n hyperpod-observability | grep node-collector
   ```

1. **Controlla le implementazioni del collettore centrale.** Nei cluster con nodi limitati, il componente aggiuntivo implementa un collettore centrale per confine di rete. Verifica che esista un raccoglitore centrale per ogni limite:

   ```
   kubectl get deployments -n hyperpod-observability | grep central-collector
   ```

1. **Verifica la presenza di errori negli eventi del pod.** `kubectl describe`Utilizzatelo sui collector pod per cercare gli eventi di errore:

   ```
   kubectl describe pod collector-pod-name -n hyperpod-observability
   ```

Se il problema persiste dopo la verifica di quanto sopra, contatta. Supporto

### La verifica dell'identità del Pod non si applica ai nodi del gruppo di istanze con restrizioni
<a name="troubleshooting-rig-pod-identity"></a>

I [Verifica dell’associazione Pod Identity](#verify-pod-identity-association) passaggi per la risoluzione dei problemi si applicano solo ai nodi standard. Sui nodi con restrizioni, il componente aggiuntivo utilizza il ruolo di esecuzione del gruppo di istanze del cluster per AWS l'autenticazione anziché Amazon EKS Pod Identity. Se nei nodi con restrizioni mancano delle metriche, verifica le autorizzazioni del ruolo di esecuzione anziché l'associazione Pod Identity.

### Fluent Bit non funziona su nodi con restrizioni
<a name="troubleshooting-rig-fluent-bit"></a>

Questo è il comportamento previsto. Fluent Bit non viene intenzionalmente distribuito su nodi con restrizioni. I log dei nodi con restrizioni vengono pubblicati CloudWatch attraverso la SageMaker HyperPod piattaforma indipendentemente dal componente aggiuntivo di osservabilità. Utilizza la dashboard **Cluster Logs** in Amazon Managed Grafana per visualizzare questi log.

# Osservabilità con Amazon CloudWatch
<a name="sagemaker-hyperpod-eks-cluster-observability-cluster-cloudwatch-ci"></a>

Usa [Amazon CloudWatch Container Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html) per raccogliere, aggregare e riepilogare metriche e log dalle applicazioni containerizzate e dai microservizi sul cluster EKS associato a un cluster. HyperPod 

Amazon CloudWatch Insights raccoglie parametri per le risorse di calcolo, come CPU, memoria, disco e rete. Container Insights fornisce inoltre informazioni diagnostiche, ad esempio errori di riavvio del container, che consentono di isolare i problemi e risolverli in modo rapido. Puoi anche impostare CloudWatch allarmi sui parametri raccolti da Container Insights.

Per trovare un elenco completo delle metriche, consulta [Amazon EKS and Kubernetes Container Insights metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-EKS.html) in *Amazon EKS User Guide*.

## Installa Container Insights CloudWatch
<a name="sagemaker-hyperpod-eks-cluster-observability-cluster-cloudwatch-ci-setup"></a>

*Gli utenti amministratori del cluster devono configurare CloudWatch Container Insights seguendo le istruzioni in [Installa l' CloudWatch agente utilizzando il componente aggiuntivo Amazon CloudWatch Observability EKS o il grafico Helm](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Observability-EKS-addon.html) nella Guida per l'CloudWatch utente.* Per ulteriori informazioni sul componente aggiuntivo Amazon EKS, consulta anche [Installa il componente aggiuntivo Amazon CloudWatch Observability EKS nella Guida](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-setup-EKS-addon.html) per l'utente di *Amazon EKS*.

Una volta completata l'installazione, verifica che il componente aggiuntivo CloudWatch Observability sia visibile nella scheda del componente aggiuntivo del cluster EKS. Il caricamento della dashboard potrebbe richiedere un paio di minuti.

**Nota**  
SageMaker HyperPod richiede CloudWatch Insight v2.0.1-eksbuild.1 o successivo.

![\[CloudWatch Observability service card showing status, version, and IAM role information.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod-eks-CIaddon.png)


# Accedi CloudWatch alla dashboard di Container Insights
<a name="sagemaker-hyperpod-eks-cluster-observability-cluster-cloudwatch-ci-access-dashboard"></a>

1. Apri la CloudWatch console all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Scegli **Informazioni dettagliate** e **Container Insights**.

1. Seleziona il cluster EKS configurato con il HyperPod cluster che stai utilizzando.

1. Visualizza le metriche dei Pod/Cluster livelli.

![\[Performance monitoring dashboard for EKS cluster showing node status, resource utilization, and pod metrics.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/hyperpod-eks-CIdashboard.png)


## Accedi ai log di CloudWatch Container Insights
<a name="sagemaker-hyperpod-eks-cluster-observability-cluster-cloudwatch-ci-access-log"></a>

1. Apri la CloudWatch console all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Scegli **Log** e quindi **Gruppi di log**.

Quando HyperPod i cluster sono integrati con Amazon CloudWatch Container Insights, puoi accedere ai gruppi di log pertinenti nel seguente formato:`/aws/containerinsights /<eks-cluster-name>/*`. All’interno di questo gruppo di log, puoi trovare ed esplorare vari tipi di log, ad esempio delle prestazioni, degli host, delle applicazioni e del piano dati.

# Provisioning continuo per operazioni cluster avanzate su Amazon EKS
<a name="sagemaker-hyperpod-scaling-eks"></a>

 SageMaker HyperPod I cluster Amazon creati con l'orchestrazione di Amazon EKS ora supportano il provisioning continuo, una nuova funzionalità che consente una maggiore flessibilità ed efficienza nell'esecuzione di carichi di lavoro su larga scala. AI/ML Il provisioning continuo consente di iniziare rapidamente l’addestramento, scalare senza problemi, eseguire la manutenzione senza interrompere le operazioni e avere una visibilità granulare sulle operazioni del cluster. 

**Nota**  
Il provisioning continuo è disponibile come configurazione opzionale per i cluster creati con l'orchestrazione EKS. HyperPod I cluster creati con l’orchestrazione Slurm utilizzano un modello di dimensionamento diverso.

## Come funziona
<a name="sagemaker-hyperpod-scaling-eks-how"></a>

Il sistema di provisioning continuo introduce un’architettura dello stato desiderato che sostituisce il tradizionale modello basato sulla richiesta. Questa nuova architettura consente operazioni parallele e non bloccanti su diversi livelli di risorse, mantenendo al contempo la stabilità e le prestazioni del sistema. Il sistema di provisioning continuo:
+ **Accetta la richiesta**: registra il numero delle istanze di destinazione per ogni gruppo di istanze
+ **Avvia il provisioning**: avvia le istanze per raggiungere il conteggio previsto

  **Monitora lo stato di avanzamento**: monitora ogni tentativo di avvio dell’istanza e registra lo stato
+ **Gestisce gli errori**: riprova automaticamente gli avvii non riusciti

Il provisioning continuo è disabilitato per impostazione predefinita. Per utilizzare questa funzionalità, imposta `--node-provisioning-mode` su `Continuous`.

Con il provisioning continuo abilitato, puoi avviare più operazioni di dimensionamento contemporaneamente senza attendere il completamento delle operazioni precedenti. Ciò consente di scalare contemporaneamente diversi gruppi di istanze nello stesso cluster e di inviare più richieste di dimensionamento allo stesso gruppo di istanze. 

Il provisioning continuo consente inoltre l'accesso e il monitoraggio dettagliato degli eventi [DescribeClusterEvent](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeClusterEvent.html)e [ListClusterEvent](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListClusterEvents.html)la visibilità operativa. 

## Misurazione dell’utilizzo
<a name="sagemaker-hyperpod-scaling-eks-metering"></a>

HyperPod i cluster con provisioning continuo utilizzano la misurazione a livello di istanza per fornire una fatturazione accurata che rifletta l'utilizzo effettivo delle risorse. Questo approccio di misurazione si differenzia dalla tradizionale fatturazione a livello di cluster in quanto tiene traccia di ogni istanza in modo indipendente.

**Fatturazione a livello di istanza**

Con il provisioning continuo, la fatturazione inizia e si arresta a livello della singola istanza anziché attendere le modifiche dello stato a livello di cluster. Questa funzionalità fornisce i seguenti vantaggi:
+ **Accuratezza di fatturazione**: la fatturazione inizia quando inizia l’esecuzione dello script del ciclo di vita. Se lo script del ciclo di vita non riesce, l’allocazione dell’istanza verrà ritentata e verrà addebitata la durata del runtime dello script del ciclo di vita.
+ **Misurazione indipendente**: il ciclo di vita della fatturazione di ogni istanza viene gestito separatamente, evitando errori di fatturazione a cascata
+ **Aggiornamenti della fatturazione in tempo reale**: la fatturazione inizia quando un’istanza inizia a eseguire lo script del ciclo di vita e si arresta quando l’istanza entra in uno stato di terminazione

**Ciclo di vita della fatturazione**

Ogni istanza del cluster segue questo ciclo di vita di fatturazione: HyperPod 
+ **La fatturazione inizia**: quando l’istanza viene avviata correttamente e inizia a eseguire lo script di configurazione del ciclo di vita
+ **La fatturazione continua**: per tutta la durata operativa dell’istanza
+ **La fatturazione si arresta**: quando l’istanza entra in uno stato di terminazione, indipendentemente dal motivo della terminazione

**Nota**  
La fatturazione non inizia in caso di errori di avvio delle istanze. Se l’avvio di un’istanza non riesce a causa di una capacità insufficiente o di altri problemi, non verrà addebitato alcun costo per il tentativo non riuscito. La fatturazione viene calcolata a livello di istanza e i costi sono aggregati e riportati nel nome della risorsa Amazon (ARN) del cluster. 

## Creazione di un cluster con provisioning continuo abilitato
<a name="sagemaker-hyperpod-scaling-eks-create"></a>

**Nota**  
È necessario che sia configurato un cluster Amazon EKS esistente con la rete VPC e che sia installato il grafico Helm richiesto. Inoltre, devi preparare uno script di configurazione del ciclo di vita e devi caricarlo in un bucket Amazon S3 a cui può accedere il tuo ruolo di esecuzione. Per ulteriori informazioni, consulta [Gestione dei SageMaker HyperPod cluster orchestrati da Amazon EKS](sagemaker-hyperpod-eks-operate.md).

La seguente AWS CLI operazione crea un HyperPod cluster con un gruppo di istanze e il provisioning continuo abilitato.

```
aws sagemaker create-cluster \ 
--cluster-name $HP_CLUSTER_NAME \
--orchestrator 'Eks={ClusterArn='$EKS_CLUSTER_ARN'}' \
--vpc-config '{
   "SecurityGroupIds": ["'$SECURITY_GROUP'"],
   "Subnets": ["'$SUBNET'"]
}' \
--instance-groups '{
   "InstanceGroupName": "ig-1",
   "InstanceType": "ml.c5.2xlarge",
   "InstanceCount": 2,
   "LifeCycleConfig": {
      "SourceS3Uri": "s3://'$BUCKET_NAME'",
      "OnCreate": "on_create_noop.sh"
   },
   "ExecutionRole": "'$EXECUTION_ROLE'",
   "ThreadsPerCore": 1,
   "TrainingPlanArn": ""
}' \
--node-provisioning-mode Continuous


// Expected Output:
{
    "ClusterArn": "arn:aws:sagemaker:us-west-2:<account-id>:cluster/<cluster-id>"
}
```

Dopo aver creato il cluster, puoi utilizzare [ListClusterNodes](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListClusterNodes.html)o [DescribeClusterNode](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeClusterNode.html)per trovare ulteriori informazioni sui nodi del cluster. 

La chiamata a queste operazioni restituirà un [ClusterInstanceStatusDetails](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceStatusDetails.html)oggetto con uno dei seguenti valori: 
+  **Running**: il nodo è integro e registrato con l’orchestratore del cluster (EKS). 
+  **Failure**: il provisioning del nodo non è riuscito, ma il sistema riprova automaticamente a eseguire il provisioning con una nuova istanza EC2. 
+  **Pending**: è in corso il provisioning o il riavvio del nodo. 
+  **ShuttingDown**: La chiusura del nodo è in corso. Il nodo viene rimosso correttamente dal cluster oppure passa in stato di errore se si verificano errori durante la terminazione. 
+  **SystemUpdating**: Il nodo è sottoposto a patch AMI, attivate manualmente o come parte dell'applicazione di patch ai cronjob. 
+  **DeepHealthCheckInProgress**: Sono in corso [controlli sanitari approfonditi () DHCs](sagemaker-hyperpod-eks-resiliency-deep-health-checks.md). Questa operazione potrebbe richiedere da pochi minuti a diverse ore a seconda della natura dei test. I nodi danneggiati vengono sostituiti e i nodi integri passano in stato Running. 
+  **NotFound**: Usato in [BatchAddClusterNodes](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_BatchAddClusterNodes.html)risposta a indicare che un nodo è stato eliminato durante la riproduzione idempotente. 

## Requisiti di capacità minima () MinCount
<a name="sagemaker-hyperpod-scaling-eks-mincount"></a>

La MinCount funzionalità consente di specificare il numero minimo di istanze che devono essere fornite correttamente prima che un gruppo di istanze passi allo stato. `InService` Questa funzionalità offre un migliore controllo sulle operazioni di scalabilità e aiuta a prevenire scenari in cui i gruppi di istanze con provisioning parziale non possono essere utilizzati efficacemente per i carichi di lavoro di formazione.

**Importante**  
MinCount non è una garanzia permanente di capacità minima. Assicura che il numero minimo di istanze specificato sia disponibile solo quando il gruppo di istanze diventa `InService` disponibile per la prima volta. Durante le normali operazioni, ad esempio sostituzioni di istanze non funzionanti o attività di manutenzione, MinCount possono verificarsi brevi cali di seguito.

### Come funziona MinCount
<a name="sagemaker-hyperpod-scaling-eks-mincount-how"></a>

Quando si crea o si aggiorna un gruppo di istanze con MinCount enabled, si verifica il seguente comportamento:
+ **Nuovi gruppi di istanze**: il gruppo di istanze rimane `Creating` attivo fino a quando almeno MinCount le istanze non vengono fornite correttamente e sono pronte. Una volta raggiunta questa soglia, il gruppo di istanze passa a. `InService`
+ **Gruppi di istanze esistenti**: quando si MinCount esegue l'aggiornamento su un gruppo di istanze esistente, lo stato cambia `Updating` fino al soddisfacimento del nuovo MinCount requisito.
+ **Scalabilità continua**: se TargetCount è maggiore di MinCount, il sistema di ridimensionamento continuo continua a tentare di avviare istanze aggiuntive finché non viene raggiunto. TargetCount 
+ **Timeout e rollback**: se MinCount non possono essere soddisfatti entro 3 ore, il sistema ripristina automaticamente il gruppo di istanze all'ultimo stato valido conosciuto. Per ulteriori informazioni sul comportamento di rollback, vedete Comportamento [automatico](#sagemaker-hyperpod-scaling-eks-mincount-rollback) del rollback.

### Stato del gruppo di istanze durante le operazioni MinCount
<a name="sagemaker-hyperpod-scaling-eks-mincount-status"></a>

I gruppi di istanze MinCount configurati presentano il seguente comportamento di stato:

Creazione in corso  
Per i nuovi gruppi di istanze quando CurrentCount < MinCount. Il gruppo di istanze rimane in questo stato fino al raggiungimento del requisito di capacità minima.

Aggiornamento in corso  
Per i gruppi di istanze esistenti quando MinCount viene modificato e CurrentCount < MinCount. Il gruppo di istanze rimane in questo stato finché non viene soddisfatto il nuovo requisito di capacità minima.

InService  
Quando MinCount ≤ CurrentCount ≤ TargetCount. Il gruppo di istanze è pronto per l'uso e tutte le operazioni di modifica sono sbloccate.

Durante il `Creating` nostro `Updating` status, si applicano le seguenti restrizioni:
+ Operazioni mutanti come `BatchAddClusterNodes``BatchDeleteClusterNodes`, o `UpdateClusterSoftware` sono bloccate
+ È comunque possibile modificare TargetCount i valori MinCount e per correggere gli errori di configurazione
+ L'eliminazione di gruppi di cluster e istanze è sempre consentita

### Comportamento automatico del rollback
<a name="sagemaker-hyperpod-scaling-eks-mincount-rollback"></a>

Se un gruppo di istanze non riesce a raggiungerlo MinCount entro 3 ore, il sistema avvia automaticamente un rollback per evitare un'attesa indefinita:
+ **Nuovi gruppi di istanze**: MinCount e TargetCount vengono reimpostati su (0, 0)
+ **Gruppi di istanze esistenti**: MinCount e TargetCount vengono ripristinati ai loro valori dall'ultimo `InService` stato
+ **Selezione delle istanze da terminare**: se è necessario terminare le istanze durante il rollback, il sistema seleziona prima le istanze non integre e poi quelle a cui è stato effettuato il provisioning più recente.
+ **Transizione dello stato**: il gruppo di istanze passa immediatamente `InService` allo stato dopo l'avvio del rollback, consentendo al sistema di scalabilità continua di gestire la capacità in base alle impostazioni di rollback

Il timeout di 3 ore si ripristina ogni volta che viene aggiornato. MinCount Ad esempio, se si esegue l'aggiornamento MinCount più volte, il periodo di timeout ricomincia dall'aggiornamento più recente.

### MinCount eventi
<a name="sagemaker-hyperpod-scaling-eks-mincount-events"></a>

Il sistema emette eventi specifici per aiutarvi a tenere traccia MinCount delle operazioni:
+ **Capacità minima raggiunta**: emessa quando un gruppo di istanze raggiunge con successo la propria posizione MinCount e passa a `InService`
+ **Rollback avviato**: emesso quando scade il timeout di 3 ore e inizia il rollback automatico

È possibile monitorare questi eventi utilizzando per tenere traccia dello stato di avanzamento delle [ListClusterEvents](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListClusterEvents.html)operazioni. MinCount 

### Utilizzo delle API
<a name="sagemaker-hyperpod-scaling-eks-mincount-api"></a>

MinCount viene specificato utilizzando il `MinInstanceCount` parametro nelle configurazioni del gruppo di istanze:

```
aws sagemaker create-cluster \
--cluster-name $HP_CLUSTER_NAME \
--orchestrator 'Eks={ClusterArn='$EKS_CLUSTER_ARN'}' \
--vpc-config '{
   "SecurityGroupIds": ["'$SECURITY_GROUP'"],
   "Subnets": ["'$SUBNET'"]
}' \
--instance-groups '{
   "InstanceGroupName": "worker-group",
   "InstanceType": "ml.p4d.24xlarge",
   "InstanceCount": 64,
   "MinInstanceCount": 50,
   "LifeCycleConfig": {
      "SourceS3Uri": "s3://'$BUCKET_NAME'",
      "OnCreate": "on_create.sh"
   },
   "ExecutionRole": "'$EXECUTION_ROLE'"
}' \
--node-provisioning-mode Continuous
```

Considerazioni chiave per MinCount l'utilizzo:
+ `MinInstanceCount`deve essere compreso tra 0 e il valore `InstanceCount` (incluso) del gruppo di istanze specificato nella [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)nostra richiesta [UpdateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)
+ L'impostazione `MinInstanceCount` su 0 (impostazione predefinita) mantiene il comportamento di ridimensionamento continuo standard
+ L'impostazione `MinInstanceCount` uguale a `InstanceCount` fornisce un comportamento di all-or-nothing ridimensionamento
+ MinCount è disponibile solo per i cluster impostati `NodeProvisioningMode` su `Continuous`

# Scalabilità automatica su EKS SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-autoscaling"></a>

Amazon SageMaker HyperPod fornisce una soluzione gestita di scalabilità automatica dei nodi basata su Karpenter per i cluster creati con l'orchestrazione EKS. [Karpenter](https://karpenter.sh/) è un gestore del ciclo di vita dei nodi Kubernetes open source creato da Kubernetes che ottimizza la scalabilità dei cluster e l'efficienza dei costi. AWS A differenza delle implementazioni Karpenter autogestite, l'implementazione gestita di Karpenter elimina il sovraccarico operativo legato all'installazione, SageMaker HyperPod alla configurazione e alla manutenzione dei controller Karpenter, fornendo al contempo resilienza e tolleranza ai guasti integrate. Questa soluzione di scalabilità automatica gestita si basa sulle funzionalità di [provisioning continuo](sagemaker-hyperpod-scaling-eks.md) di cui dispone e consente di scalare in modo efficiente le risorse HyperPod di calcolo per i carichi di lavoro di addestramento e inferenza con gestione e ripristino automatici degli errori. 

I prezzi sono calcolati solo in base all'uso effettivo. Sei responsabile del pagamento di tutte le istanze di elaborazione il cui provisioning viene eseguito automaticamente tramite la scalabilità automatica in base ai prezzi standard. SageMaker HyperPod Per informazioni dettagliate sui prezzi, consulta [Amazon SageMaker AI](https://aws.amazon.com/sagemaker/ai/pricing/).

Abilitando la scalabilità automatica basata su Karpenter con HyperPod, hai accesso a:
+ **Ciclo di vita gestito dal servizio**: HyperPod gestisce l'installazione, gli aggiornamenti e la manutenzione di Karpenter, eliminando il sovraccarico operativo.
+ **Provisioning just-in-time**: Karpenter osserverà i pod in sospeso e allocherà le risorse di calcolo necessarie per i carichi di lavoro dal pool on demand.
+ **Riduzione verticale a zero**: riduci verticalmente i nodi a zero senza gestire un’infrastruttura di controller dedicata.
+ **Selezione dei nodi in base al carico di lavoro**: Karpenter sceglie i tipi di istanze ottimali in base ai requisiti dei pod, alle zone di disponibilità e ai prezzi per ridurre al minimo i costi.
+ **Consolidamento automatico dei nodi**: Karpenter valuta regolarmente i cluster per individuare opportunità di ottimizzazione, spostando i carichi di lavoro per eliminare i nodi sottoutilizzati.
+ **Resilienza integrata**: sfrutta i meccanismi integrati di tolleranza agli errori e HyperPod ripristino dei nodi.

I seguenti argomenti spiegano come abilitare la scalabilità HyperPod automatica con Karpenter.

**Topics**
+ [Prerequisiti](#sagemaker-hyperpod-eks-autoscaling-prereqs)
+ [Crea un ruolo IAM per la HyperPod scalabilità automatica con Karpenter](sagemaker-hyperpod-eks-autoscaling-iam.md)
+ [Crea e configura un HyperPod cluster con la scalabilità automatica di Karpenter](sagemaker-hyperpod-eks-autoscaling-cluster.md)
+ [Crea un NodeClass](sagemaker-hyperpod-eks-autoscaling-nodeclass.md)
+ [Crea un NodePool](sagemaker-hyperpod-eks-autoscaling-nodepool.md)
+ [Implementazione di un carico di lavoro](sagemaker-hyperpod-eks-autoscaling-workload.md)

## Prerequisiti
<a name="sagemaker-hyperpod-eks-autoscaling-prereqs"></a>
+ Il provisioning continuo è abilitato sul cluster. HyperPod Abilita il provisioning continuo impostando su `--node-provisioning-mode` al `Continuous` momento della creazione del cluster SageMaker HyperPod . Per ulteriori informazioni, consulta [Provisioning continuo per operazioni cluster avanzate su Amazon EKS](sagemaker-hyperpod-scaling-eks.md).
+ Deve essere installata la versione 1.0.742.0\$11.0.241.0 o successiva dell’agente di monitoraggio dell’integrità. Necessario per le operazioni e il monitoraggio del HyperPod cluster. L’agente deve essere configurato prima di abilitare il dimensionamento automatico di Karpenter per garantire la creazione di report corretti sull’integrità del cluster e la gestione del ciclo di vita dei nodi. Per ulteriori informazioni, consulta [Sistema di monitoraggio della salute](sagemaker-hyperpod-eks-resiliency-health-monitoring-agent.md).
+ Solo se sul cluster Amazon EKS è in esecuzione Karpenter, le versioni di `NodePool` e `NodeClaim` di Karpenter devono essere v1.
+ `NodeRecovery` deve essere impostato su automatico. Per ulteriori informazioni, consulta [Ripristino automatico del nodo](sagemaker-hyperpod-eks-resiliency-node-recovery.md).

# Crea un ruolo IAM per la HyperPod scalabilità automatica con Karpenter
<a name="sagemaker-hyperpod-eks-autoscaling-iam"></a>

Nei passaggi seguenti, creerai un ruolo IAM che consenta di gestire i nodi Kubernetes nel tuo cluster SageMaker HyperPod tramite la scalabilità automatica basata su Karpenter. Questo ruolo fornisce le autorizzazioni necessarie per aggiungere e rimuovere automaticamente i nodi del cluster in base HyperPod alla richiesta del carico di lavoro.

**Apertura della console IAM**

1. Accedi Console di gestione AWS e apri la console IAM all'indirizzo console.aws.amazon.com.

1. Nel pannello di navigazione, seleziona **Roles** (Ruoli).

1. Selezionare **Create role (Crea ruolo)**.

**Configurazione della policy di attendibilità**

1. Per **Trusted entity type** (Tipo di entità attendibile), scegli **Custom trust policy** (Policy di attendibilità personalizzata).

1. Nell’editor **Policy di attendibilità personalizzata**, sostituisci la policy predefinita con la seguente:

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

****  

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

------

1. Scegli **Next (Successivo)**.

**Creazione e collegamento della policy di autorizzazione**

Poiché SageMaker HyperPod richiede autorizzazioni specifiche che non sono disponibili nelle politiche AWS gestite, devi creare una politica personalizzata.

1. Scegli **Crea policy**. Si apre una nuova scheda del browser.

1. Scegli la scheda **JSON**.

1. Sostituisci la policy predefinita con la policy seguente:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sagemaker:BatchAddClusterNodes",
                   "sagemaker:BatchDeleteClusterNodes"
               ],
               "Resource": "arn:aws:sagemaker:*:*:cluster/*",
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceAccount": "${aws:PrincipalAccount}"
                   }
               }
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kms:CreateGrant",
                   "kms:DescribeKey"
               ],
               "Resource": "arn:aws:kms:*:*:key/*",
               "Condition": {
                   "StringLike": {
                       "kms:ViaService": "sagemaker.*.amazonaws.com"
                   },
                   "Bool": {
                       "kms:GrantIsForAWSResource": "true"
                   },
                   "ForAllValues:StringEquals": {
                       "kms:GrantOperations": [
                           "CreateGrant",
                           "Decrypt",
                           "DescribeKey",
                           "GenerateDataKeyWithoutPlaintext",
                           "ReEncryptTo",
                           "ReEncryptFrom",
                           "RetireGrant"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. Scegli **Next (Successivo)**.

1. In **Policy name** (Nome policy), inserisci **SageMakerHyperPodKarpenterPolicy**.

1. (Facoltativo) In **Descrizione**, inserisci una descrizione per la policy.

1. Scegliere **Create Policy (Crea policy)**.

1. Torna alla scheda di creazione del ruolo e aggiorna l’elenco delle policy.

1. Cerca e seleziona **SageMakerHyperPodKarpenterPolicy**quello che hai appena creato.

1. Scegli **Next (Successivo)**.

**Assegnazione di un nome e creazione del ruolo**

1. Per **Nome ruolo**, inserisci `SageMakerHyperPodKarpenterRole`.

1. (Facoltativo) In **Descrizione**, inserisci una descrizione per il ruolo.

1. Nella sezione **Fase 1. Seleziona le entità attendibili**, verifica che la policy di attendibilità indichi i principali dei servizi corretti.

1. Nella sezione **Fase 2. Aggiungi autorizzazioni**, verifica che `SageMakerHyperPodKarpenterPolicy` sia collegato.

1. Scegli **Crea ruolo**.

**Registrazione dell’ARN del ruolo**

Dopo aver creato correttamente il ruolo:

1. Nell’elenco **Ruoli**, seleziona il ruolo chiamato `SageMakerHyperPodKarpenterRole`.

1. Copia l’**ARN del ruolo** dalla sezione **Riepilogo**. Avrai bisogno di questo ARN per creare il tuo HyperPod cluster.

L’ARN del ruolo ha questo formato: `arn:aws:iam::ACCOUNT-ID:role/SageMakerHyperPodKarpenterRole`.

# Crea e configura un HyperPod cluster con la scalabilità automatica di Karpenter
<a name="sagemaker-hyperpod-eks-autoscaling-cluster"></a>

Nei passaggi seguenti, creerai un SageMaker HyperPod cluster con il provisioning continuo abilitato e lo configurerai per utilizzare la scalabilità automatica basata su Karpenter.

**Crea un cluster HyperPod**

1. Carica la configurazione dell'ambiente ed estrai i valori dagli CloudFormation stack.

   ```
   source .env
   SUBNET1=$(cfn-output $VPC_STACK_NAME PrivateSubnet1)
   SUBNET2=$(cfn-output $VPC_STACK_NAME PrivateSubnet2)
   SUBNET3=$(cfn-output $VPC_STACK_NAME PrivateSubnet3)
   SECURITY_GROUP=$(cfn-output $VPC_STACK_NAME NoIngressSecurityGroup)
   EKS_CLUSTER_ARN=$(cfn-output $EKS_STACK_NAME ClusterArn)
   EXECUTION_ROLE=$(cfn-output $SAGEMAKER_STACK_NAME ExecutionRole)
   SERVICE_ROLE=$(cfn-output $SAGEMAKER_STACK_NAME ServiceRole)
   BUCKET_NAME=$(cfn-output $SAGEMAKER_STACK_NAME Bucket)
   HP_CLUSTER_NAME="hyperpod-eks-test-$(date +%s)"
   EKS_CLUSTER_NAME=$(cfn-output $EKS_STACK_NAME ClusterName)
   HP_CLUSTER_ROLE=$(cfn-output $SAGEMAKER_STACK_NAME ClusterRole)
   ```

1. Carica lo script di inizializzazione del nodo sul tuo bucket Amazon S3.

   ```
   aws s3 cp lifecyclescripts/on_create_noop.sh s3://$BUCKET_NAME
   ```

1. Crea un file di configurazione del cluster con le variabili di ambiente.

   ```
   cat > cluster_config.json << EOF
   {
       "ClusterName": "$HP_CLUSTER_NAME",
       "InstanceGroups": [
           {
               "InstanceCount": 1,
               "InstanceGroupName": "system",
               "InstanceType": "ml.c5.xlarge",
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://$BUCKET_NAME",
                   "OnCreate": "on_create_noop.sh"
               },
               "ExecutionRole": "$EXECUTION_ROLE"
           },
           {
               "InstanceCount": 0,
               "InstanceGroupName": "auto-c5-az1",
               "InstanceType": "ml.c5.xlarge",
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://$BUCKET_NAME",
                   "OnCreate": "on_create_noop.sh"
               },
               "ExecutionRole": "$EXECUTION_ROLE"
           },
           {
               "InstanceCount": 0,
               "InstanceGroupName": "auto-c5-4xaz2",
               "InstanceType": "ml.c5.4xlarge",
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://$BUCKET_NAME",
                   "OnCreate": "on_create_noop.sh"
               },
               "ExecutionRole": "$EXECUTION_ROLE",
               "OverrideVpcConfig": {
                   "SecurityGroupIds": [
                       "$SECURITY_GROUP"
                   ],
                   "Subnets": [
                       "$SUBNET2"
                   ]
               }
           },
           {
               "InstanceCount": 0,
               "InstanceGroupName": "auto-g5-az3",
               "InstanceType": "ml.g5.xlarge",
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://$BUCKET_NAME",
                   "OnCreate": "on_create_noop.sh"
               },
               "ExecutionRole": "$EXECUTION_ROLE",
               "OverrideVpcConfig": {
                   "SecurityGroupIds": [
                       "$SECURITY_GROUP"
                   ],
                   "Subnets": [
                       "$SUBNET3"
                   ]
               }
           }
       ],
       "VpcConfig": {
           "SecurityGroupIds": [
               "$SECURITY_GROUP"
           ],
           "Subnets": [
               "$SUBNET1"
           ]
       },
       "Orchestrator": {
           "Eks": {
               "ClusterArn": "$EKS_CLUSTER_ARN"
           }
       },
       "ClusterRole": "$HP_CLUSTER_ROLE",
       "AutoScaling": {
           "Mode": "Enable",
           "AutoScalerType": "Karpenter"
       },
       "NodeProvisioningMode": "Continuous"
   }
   EOF
   ```

1. Esegui il comando seguente per creare il tuo HyperPod cluster.

   ```
   aws sagemaker create-cluster --cli-input-json file://./cluster_config.json
   ```

1. La procedura di creazione del cluster richiede circa 20 minuti. Monitora lo stato del cluster fino alla visualizzazione sia ClusterStatus di .Status che di AutoScaling .Status. InService

1. Salva l’ARN del cluster per le operazioni successive.

   ```
   HP_CLUSTER_ARN=$(aws sagemaker describe-cluster --cluster-name $HP_CLUSTER_NAME \
      --output text --query ClusterArn)
   ```

**Abilitazione del dimensionamento automatico Karpenter**

1. Utilizza il comando seguente per abilitare il dimensionamento automatico basato su Karpenter su qualsiasi cluster preesistente con la modalità di provisioning continuo dei nodi.

   ```
   aws sagemaker update-cluster \
       --cluster-name $HP_CLUSTER_NAME \
       --auto-scaling Mode=Enable,AutoScalerType=Karpenter \
       --cluster-role $HP_CLUSTER_ROLE
   ```

1. Verifica che Karpenter sia stato abilitato correttamente:

   ```
   aws sagemaker describe-cluster --cluster-name $HP_CLUSTER_NAME --query 'AutoScaling'
   ```

1. Output previsto:

   ```
   {
       "Mode": "Enable",
       "AutoScalerType": "Karpenter",
       "Status": "InService"
   }
   ```

Attendi che `Status` venga visualizzato `InService` prima di procedere alla configurazione NodeClass e. NodePool

# Crea un NodeClass
<a name="sagemaker-hyperpod-eks-autoscaling-nodeclass"></a>

**Importante**  
È necessario iniziare con 0 nodi nel gruppo di istanze e lasciare che Karpenter gestisca il dimensionamento automatico. Se inizi con più di 0 nodi, Karpenter li ridurrà verticalmente fino a 0.

Una classe di nodi (`NodeClass`) definisce le impostazioni a livello di infrastruttura che si applicano ai gruppi di nodi del cluster Amazon EKS, tra cui la configurazione di rete, le impostazioni di archiviazione e il tagging delle risorse. A `HyperPodNodeClass` è una personalizzazione `NodeClass` che si associa a gruppi di istanze precreati e definisce i vincoli relativi ai tipi di istanze e alle zone di disponibilità supportati per le decisioni di scalabilità automatica di Karpenter. SageMaker HyperPod

**Considerazioni sulla creazione di una classe di nodi**
+ Puoi specificare fino a 10 gruppi di istanze in `NodeClass`.
+ Quando si utilizza il partizionamento GPU con MIG (Multi-Instance GPU), Karpenter può fornire automaticamente ai nodi gruppi di istanze abilitati per Mig. Assicurati che i tuoi gruppi di istanze includano tipi di istanze supportati da Mig (ml.p4d.24xlarge, ml.p5.48xlarge o ml.p5e/p5en.48xlarge) e configura le etichette MIG appropriate durante la creazione del cluster. Per ulteriori informazioni sulla [Utilizzo delle partizioni GPU in Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md) configurazione del partizionamento GPU, consulta.
+ Se vengono applicate etichette personalizzate ai gruppi di istanze, è possibile visualizzarle sul `desiredLabels` campo quando si interroga lo stato. `HyperpodNodeClass` Ciò include etichette di configurazione MIG come. `nvidia.com/mig.config` Quando i lavori in entrata richiedono risorse MIG, Karpenter ridimensionerà automaticamente le istanze applicando le etichette MIG appropriate.
+ Se scegli di eliminare un gruppo di istanze, ti consigliamo di rimuoverlo dal tuo `NodeClass` prima di eliminarlo dal cluster. HyperPod Se un gruppo di istanze viene eliminato mentre è utilizzato in `NodeClass`, `NodeClass` viene contrassegnato come non pronto (`Ready`) per il provisioning e non verrà utilizzato per le successive operazioni di dimensionamento finché il gruppo di istanze non viene rimosso da `NodeClass`.
+ Quando rimuovi i gruppi di istanze da `NodeClass`, Karpenter rileva una deriva nei nodi gestiti da Karpenter in uno o più gruppi di istanze e arresta i nodi in base ai controlli del budget di interruzione.
+ Le sottoreti utilizzate dal gruppo di istanze devono appartenere alla stessa AZ. Le sottoreti vengono specificate a livello di cluster o utilizzando `OverrideVpcConfig` a livello di gruppo di istanze. `VpcConfig` viene utilizzato per impostazione predefinita.
+ Al momento è supportata solo la capacità on demand. I gruppi di istanze con piano di addestramento o capacità riservata non sono supportati.
+ I gruppi di istanze con `DeepHealthChecks (DHC)` non sono supportati. Questo dipende dal fatto che un DHC richiede circa 60-90 minuti per essere completato e durante questo periodo i pod restano in sospeso, causando potenzialmente un provisioning eccessivo.

La procedura che segue illustra come creare `NodeClass`.

1. Crea un file YAML (ad esempio, nodeclass.yaml) con la configurazione `NodeClass`.

1. Applica la configurazione al cluster utilizzando kubectl.

1. Fai riferimento a `NodeClass` nella configurazione `NodePool`.

1. Ecco un esempio di `NodeClass` che utilizza i tipi di istanze ml.c5.xlarge e ml.c5.4xlarge:

   ```
   apiVersion: karpenter.sagemaker.amazonaws.com/v1
   kind: HyperpodNodeClass
   metadata:
     name: sample-nc
   spec:
     instanceGroups:
       # name of InstanceGroup in HyperPod cluster. InstanceGroup needs to pre-created
       # MaxItems: 10
       - auto-c5-xaz1
       - auto-c5-4xaz2
   ```

1. Applica la configurazione:

   ```
   kubectl apply -f nodeclass.yaml
   ```

1. Monitora lo NodeClass stato per assicurarti che la condizione Ready in status sia impostata su True:

   ```
   kubectl get hyperpodnodeclass sample-nc -o yaml
   ```

   ```
   apiVersion: karpenter.sagemaker.amazonaws.com/v1
   kind: HyperpodNodeClass
   metadata:
     creationTimestamp: "<timestamp>"
     name: sample-nc
     uid: <resource-uid>
   spec:
     instanceGroups:
     - auto-c5-az1
     - auto-c5-4xaz2
   status:
     conditions:
     // true when all IGs in the spec are present in SageMaker cluster, false otherwise
     - lastTransitionTime: "<timestamp>"
       message: ""
       observedGeneration: 3
       reason: InstanceGroupReady
       status: "True"
       type: InstanceGroupReady
     // true if subnets of IGs are discoverable, false otherwise
     - lastTransitionTime: "<timestamp>"
       message: ""
       observedGeneration: 3
       reason: SubnetsReady
       status: "True"
       type: SubnetsReady
     // true when all dependent resources are Ready [InstanceGroup, Subnets]
     - lastTransitionTime: "<timestamp>"
       message: ""
       observedGeneration: 3
       reason: Ready
       status: "True"
       type: Ready
     instanceGroups:
     - desiredLabels:
       - key: <custom_label_key>
         value: <custom_label_value>
       - key: nvidia.com/mig.config
         value: all-1g.5gb
       instanceTypes:
       - ml.c5.xlarge
       name: auto-c5-az1
       subnets:
       - id: <subnet-id>
         zone: <availability-zone-a>
         zoneId: <zone-id-a>
     - instanceTypes:
       - ml.c5.4xlarge
       name: auto-c5-4xaz2
       subnets:
       - id: <subnet-id>
         zone: <availability-zone-b>
         zoneId: <zone-id-b>
   ```

# Crea un NodePool
<a name="sagemaker-hyperpod-eks-autoscaling-nodepool"></a>

`NodePool` imposta i vincoli sui nodi che possono essere creati da Karpenter e sui pod che possono essere eseguiti su tali nodi. `NodePool` può essere configurato per:
+ Limitare la creazione di nodi a determinate zone, tipi di istanze e architetture informatiche.
+ Definire le etichette o i taint per limitare i pod che possono essere eseguiti sui nodi creati da Karpenter.

**Nota**  
HyperPod il provider supporta una serie limitata di requisiti noti di Kubernetes e Karpenter spiegati di seguito. 

La procedura che segue illustra come creare `NodePool`.

1. Crea un file YAML denominato nodepool.yaml con la configurazione `NodePool` desiderata.

1. Puoi utilizzare la configurazione di esempio seguente.

   Cerca `Ready` in `Conditions` per verificare che tutte le risorse dipendenti funzionino correttamente.

   ```
   apiVersion: karpenter.sh/v1
   kind: NodePool
   metadata:
    name: sample-np
   spec:
    template:
      spec:
        nodeClassRef:
         group: karpenter.sagemaker.amazonaws.com
         kind: HyperpodNodeClass
         name: multiazc5
        expireAfter: Never
        requirements:
           - key: node.kubernetes.io/instance-type
             operator: Exists
   ```

1. Applica `NodePool` al cluster:

   ```
   kubectl apply -f nodepool.yaml
   ```

1. Monitora lo stato di `NodePool` per assicurarti che la condizione `Ready` nello stato sia impostata su `True`:

   ```
   kubectl get nodepool sample-np -oyaml
   ```

   ```
   apiVersion: karpenter.sh/v1
   kind: NodePool
   metadata:
     name: <nodepool-name>
     uid: <resource-uid>
     ...
   spec:
     disruption:
       budgets:
       - nodes: 90%
       consolidateAfter: 0s
       consolidationPolicy: WhenEmptyOrUnderutilized
     template:
       spec:
         expireAfter: 720h
         nodeClassRef:
           group: karpenter.sagemaker.amazonaws.com
           kind: HyperpodNodeClass
           name: <nodeclass-name>
         requirements:
         - key: node.kubernetes.io/instance-type
           operator: Exists
   status:
     conditions:
     - lastTransitionTime: "<timestamp>"
       message: ""
       observedGeneration: 2
       reason: ValidationSucceeded
       status: "True"
       type: ValidationSucceeded
     - lastTransitionTime: "<timestamp>"
       message: ""
       observedGeneration: 2
       reason: NodeClassReady
       status: "True"
       type: NodeClassReady
     - lastTransitionTime: "<timestamp>"
       message: ""
       observedGeneration: 2
       reason: Ready
       status: "True"
       type: Ready
   ```

**Etichette supportate per Karpenter Provider HyperPod**

Questi sono i vincoli e i requisiti facoltativi che puoi specificare nella tua configurazione `NodePool`.


|  Tipo di requisito  |  Scopo  |  Usa valori Case/Supported   |  Raccomandazione  | 
| --- | --- | --- | --- | 
|  Tipi di istanza (`node.kubernetes.io/instance-type`)  |  Controlla i tipi di SageMaker istanza tra cui Karpenter può scegliere  |  Invece di limitarti a ml.c5.xlarge, lascia che Karpenter scelga tra tutti i tipi disponibili nei tuoi gruppi di istanze.  |  Lascia questo campo indefinito o utilizza l’operatore Exists per dare a Karpenter la massima flessibilità nella scelta di tipi di istanze più convenienti.  | 
|  Zone di disponibilità (`topology.kubernetes.io/zone`)  |  Controlla in quali zone di AWS disponibilità possono essere creati i nodi  |  Nomi di zone specifici come us-east-1c. Da utilizzare se i pod devono funzionare in zone specifiche per motivi di latenza o conformità.  | N/A | 
|  Architettura (`kubernetes.io/arch`)  |  Specifica l’architettura della CPU.  |  Solo amd64 (attualmente ARM non è supportato).  |  N/A  | 

# Implementazione di un carico di lavoro
<a name="sagemaker-hyperpod-eks-autoscaling-workload"></a>

Gli esempi seguenti mostrano come la HyperPod scalabilità automatica con Karpenter effettua automaticamente il provisioning dei nodi in risposta alle richieste del carico di lavoro. Questi esempi mostrano il comportamento di dimensionamento di base e i modelli di distribuzione in più zone di disponibilità.

**Implementazione di un carico di lavoro semplice**

1. La seguente implementazione di Kubernetes include pod che richiedono 1 CPU e 256 M di memoria per ogni replica o pod. In questo scenario, i pod non sono ancora stati attivati.

   ```
   kubectl apply -f https://raw.githubusercontent.com/aws/karpenter-provider-aws/refs/heads/main/examples/workloads/inflate.yaml
   ```

1. Per testare il processo di aumento verticale, utilizza il comando seguente. Karpenter aggiungerà nuovi nodi al cluster.

   ```
   kubectl scale deployment inflate --replicas 10
   ```

1. Per testare il processo di riduzione verticale, utilizza il comando seguente. Karpenter rimuoverà i nodi dal cluster.

   ```
   kubectl scale deployment inflate --replicas 0
   ```

**Implementa un carico di lavoro su più AZs**

1. Utilizza il comando seguente per implementare un carico di lavoro che esegua un’implementazione di Kubernetes in cui i pod in fase di implementazione devono essere distribuiti uniformemente tra diverse zone di disponibilità con una differenza massima di 1.

   ```
   kubectl apply -f https://raw.githubusercontent.com/aws/karpenter-provider-aws/refs/heads/main/examples/workloads/spread-zone.yaml
   ```

1. Utilizza il comando seguente per regolare il numero di pod:

   ```
   kubectl scale deployment zone-spread --replicas 15
   ```

   Karpenter aggiungerà nuovi nodi al cluster con almeno un nodo in una zona di disponibilità diversa.

Per altri esempi, consulta [Karpenter](https://github.com/aws/karpenter-provider-aws/tree/main/examples/workloads) example workloads on. GitHub

# Utilizzo della pianificazione basata sulla topologia in Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-topology"></a>

L’efficienza del trasferimento dei dati è un fattore critico nei carichi di lavoro di calcolo ad alte prestazioni e di machine learning. Quando lo utilizzi UltraServers con Amazon SageMaker HyperPod, applica SageMaker HyperPod automaticamente le etichette della topologia alle tue risorse. La pianificazione basata sulla topologia aiuta ad allocare le risorse per ridurre al minimo i costi generali di trasferimento dei dati, considerando sia la topologia delle istanze (come le risorse sono connesse all’interno di un’istanza) che la topologia di rete (come le istanze sono collegate tra loro). Per ulteriori informazioni sulla topologia delle istanze, consulta [ Amazon EC2 instance topology](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-topology.html).

La pianificazione basata sulla topologia funziona sia con i cluster su Slurm che su Amazon EKS. Per informazioni generali su come funziona la topologia con Slurm, consulta la [guida alla topologia nella documentazione di Slurm](https://slurm.schedmd.com/topology.html).

In Amazon SageMaker HyperPod, le spese generali di trasferimento dei dati provengono in genere da tre fonti principali:
+ **GPU-to-GPU trasferimento dati**: tecnologie moderne come gli NVLink NVLink switch consentono il trasferimento di dati ad alta velocità da un paese all'altro GPUs senza coinvolgere altre risorse di elaborazione. Si tratta di un metodo estremamente efficiente, ma di solito limitato a una singola istanza.
+ **GPU-to-CPU trasferimento dati**: i sistemi NUMA (Non-Uniform Memory Access) dispongono di più bus di sistema su un'unica scheda madre. In una tipica architettura di istanze EC2 come p5.48xlarge, ci sono due diversi bus di sistema, ciascuno con una CPU e 4. GPUs Per prestazioni ottimali, i processi che caricano o leggono i dati to/from GPUs devono essere eseguiti su una CPU collegata allo stesso bus di sistema della GPU.
+ **Comunicazioni di rete tra istanze**: le istanze trasferiscono i dati attraverso una catena di switch di rete. Il percorso più breve corrisponde in genere alla latenza più bassa.

## UltraServer architettura
<a name="sagemaker-hyperpod-topology-ultraserver-architecture"></a>

SageMaker HyperPod supporta l' UltraServer architettura con istanze p6e-gb200.36xlarge. An UltraServer contiene fino a 18 istanze p6e-gb200.36xlarge, di cui 4 per ogni istanza. GPUs Tutti i nodi sono interconnessi tramite NVLink switch, che consentono il trasferimento di dati GPUs tra due senza utilizzare interfacce di rete. GPUs 

Questa architettura offre un notevole incremento delle prestazioni rispetto alle singole istanze. Per sfruttare efficacemente questa architettura, i lavori devono essere inviati ai nodi di calcolo da un unico nodo. UltraServer

## Etichetta della topologia EKS
<a name="sagemaker-hyperpod-topology-eks-scheduling"></a>

In base alla topologia delle istanze EC2, etichetta HyperPod automaticamente i nodi con le seguenti etichette:
+ **topology.kubernetes.io/region**: la zona in cui risiede il nodo. Regione AWS 
+ **topology.kubernetes.io/zone**: la zona di disponibilità in cui risiede il nodo.
+ **network-node-layertopology.k8s.aws/**: descrive il set di nodi di rete di un'istanza. NetworkNodes In ogni set di nodi di rete, i nodi sono elencati in ordine gerarchico dall’alto verso il basso. Il nodo di rete connesso all’istanza è l’ultimo nell’elenco. Esistono fino a quattro livelli di nodi di rete e ogni nodo è contrassegnato da un’etichetta. I livelli disponibili sono `topology.k8s.aws/network-node-layer-1`, `topology.k8s.aws/network-node-layer-2` e `topology.k8s.aws/network-node-layer-3`.
+ **topology.k8s.aws/ultraserver-id - Un identificatore utilizzato per etichettare ciascuna delle istanze appartenenti allo stesso dominio in un Ultraserver**. NVLink Per ulteriori informazioni SageMaker HyperPod sull'utilizzo UltraServers con, [Utilizzo UltraServers in Amazon SageMaker HyperPod](sagemaker-hyperpod-ultraserver.md) consulta.

Utilizzando queste etichette, è possibile utilizzare la pianificazione basata sulla topologia nella governance delle HyperPod attività per applicare etichette e annotazioni topologiche per ottimizzare l'efficienza della formazione dei carichi di lavoro. Per ulteriori informazioni, consulta [Utilizzo della pianificazione basata sulla topologia nella governance delle attività di Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-operate-console-ui-governance-tasks-scheduling.md).

## Plugin della topologia di rete Slurm
<a name="sagemaker-hyperpod-topology-slurm-plugins"></a>

Slurm fornisce plugin integrati per il riconoscimento della topologia di rete. UltraServer l'architettura in SageMaker HyperPod supporta il plugin a blocchi.

### Utilizzo del topology/block plugin
<a name="w2aac13c35c39c15b5"></a>

NVIDIA ha sviluppato un topology/block plug-in che fornisce una pianificazione gerarchica su blocchi di nodi con le seguenti caratteristiche:
+ Un blocco è un intervallo consecutivo di nodi
+ I blocchi non possono essere sovrapposti
+ Tutti i nodi di un blocco devono essere assegnati a un processo prima di passare al blocco successivo
+ La dimensione del blocco di pianificazione equivale alla dimensione configurata del blocco più piccolo
+ Ogni livello di blocco superiore ha una dimensione che è una potenza di due rispetto a quella del livello precedente

Questo plugin alloca i nodi in base alla topologia di rete definita.

#### Configurazione
<a name="w2aac13c35c39c15b5b9"></a>

Per configurare la pianificazione basata sulla topologia con il plug-in, topology/block 
+ SageMaker HyperPod configura automaticamente il plugin. topology/block Per configurare il plugin, specifica quanto segue nel file topology.conf nella directory di configurazione Slurm:

  ```
  BlockName=us1 Nodes=ultraserver1-[0-17]
    
  BlockName=us2 Nodes=ultraserver2-[0-17]
    
  BlockSizes=18
  ```
+ Assicurati che `slurm.conf` includa:

  ```
  TopologyPlugin=topology/block
  ```

#### Utilizzo
<a name="w2aac13c35c39c15b5c11"></a>

Quando invii i processi, puoi utilizzare i seguenti argomenti aggiuntivi con i comandi `sbatch` e `srun`:
+ `--segment=N`: specifica il numero di nodi da raggruppare. La dimensione del segmento deve essere minore o uguale alla dimensione del blocco di pianificazione.
+ `--exclusive=topo`: richiedi che nessun altro processo venga inserito nello stesso blocco. Questa operazione è utile per il benchmarking e per le applicazioni sensibili alle prestazioni.

Di seguito sono riportati alcuni scenari di esempio da prendere in considerazione durante l’allocazione dei blocchi.

**Allocazione di un intero blocco di nodi su un sistema vuoto**

```
sbatch -N18
```

**Allocazione di due blocchi di nodi su un sistema vuoto**

```
sbatch -N36
```

**Allocazione di 18 nodi su un blocco con più di 6 nodi su un altro blocco**

```
sbatch -N24
```

**Allocazione di 12 nodi su un blocco e di 12 nodi su un altro blocco**

```
sbatch -N24 —segment=12
```

**Con —exclusive=topo, il processo deve essere inserito sul blocco senza altri processi**

```
sbatch -N12 —exclusive=topo
```

## Le migliori pratiche per la topologia UltraServer
<a name="sagemaker-hyperpod-topology-best-practices"></a>

Per prestazioni ottimali con UltraServer un'architettura in SageMaker HyperPod:
+ **Imposta le dimensioni dei blocchi appropriate**: configura `BlockSizes=18` (o 17 se un nodo è libero) in modo che corrispondano all' UltraServer architettura.
+ **Utilizza i segmenti per una maggiore disponibilità**: utilizza `--segment=16`, `--segment=8` o `--segment=9` con i comandi `srun` e `sbatch` per migliorare la flessibilità della pianificazione dei processi.
+ **Considera le dimensioni del processo e del segmento**:
  + Se`BlockSizes=18`, i lavori con un massimo di 18 istanze verranno sempre eseguiti su una singola UltraServer istanza.
  + Se`BlockSizes=16`, i lavori con meno di 16 istanze verranno sempre eseguiti su una singola istanza UltraServer, mentre i lavori con 18 istanze possono essere eseguiti su una o due istanze. UltraServers

Durante la procedura di segmentazione, considera quanto segue
+ Con`--segment=1`, ogni istanza può essere eseguita su un'istanza separata. UltraServer
+ Con`-N 18 --segment 9`, 9 nodi verranno posizionati su uno UltraServer e altri 9 nodi possono essere posizionati sullo stesso o su un altro UltraServer.
+ Con`-N 24 --segment 8`, il processo può essere eseguito su 2 o 3 UltraServers, con ogni 8 nodi posizionati insieme sullo stesso server.

## Limitazioni nella pianificazione SageMaker HyperPod basata sulla topologia
<a name="sagemaker-hyperpod-topology-limitations"></a>

Il plugin `topology/block` presenta delle limitazioni nel caso di cluster eterogenei (cluster con diversi tipi di istanze):
+ Solo i nodi elencati nei blocchi possono essere pianificati con Slurm
+ Ogni blocco deve avere almeno `BlockSizes[0]` nodi

Per i cluster eterogenei, considera queste alternative:
+ Non utilizzare il plugin a blocchi con i cluster eterogenei. Invece, isola i UltraServer nodi in una partizione diversa.
+ Crea un cluster separato UltraServers solo nello stesso VPC e usa la configurazione multicluster di Slurm.

# Implementazione di modelli su Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-model-deployment"></a>

Amazon SageMaker HyperPod ora va oltre la formazione per offrire una piattaforma di inferenza completa che combina la flessibilità di Kubernetes con l'eccellenza operativa dei servizi gestiti. AWS Implementa, ridimensiona e ottimizza i tuoi modelli di machine learning con affidabilità di livello aziendale utilizzando lo stesso calcolo per l'intero ciclo di vita del modello. HyperPod 

Amazon SageMaker HyperPod offre interfacce di distribuzione flessibili che consentono di distribuire modelli tramite diversi metodi, tra cui kubectl, Python SDK, Amazon SageMaker Studio UI o CLI. HyperPod Il servizio offre funzionalità avanzate di dimensionamento automatico con allocazione dinamica delle risorse, regolata automaticamente in base alla domanda. Inoltre, include funzionalità complete di osservabilità e monitoraggio che tengono traccia di metriche critiche come la latenza e l'utilizzo della GPU per aiutarti a ottimizzare time-to-first-token le prestazioni.

**Nota**  
Quando esegui la distribuzione su istanze abilitate per GPU, puoi utilizzare il partizionamento GPU con la tecnologia Multi-Instance GPU (MIG) per eseguire più carichi di lavoro di inferenza su una singola GPU. Ciò consente un migliore utilizzo della GPU e l'ottimizzazione dei costi. Per ulteriori informazioni sulla configurazione del partizionamento GPU, vedere. [Utilizzo delle partizioni GPU in Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md)

**Infrastruttura unificata per l’addestramento e l’inferenza**

Massimizza l’utilizzo della GPU trasferendo senza problemi le risorse di calcolo tra i carichi di lavoro di addestramento e di inferenza. Questa funzionalità riduce il costo totale di proprietà garantendo al tempo stesso la continuità operativa.

**Opzioni di implementazione pensate per le aziende**

Implementa modelli da più fonti, tra cui modelli open weights e gated di Amazon e modelli personalizzati di Amazon S3 SageMaker JumpStart e Amazon FSx con supporto per architetture di inferenza a nodo singolo e multinodo.

**Caching KV (Key-value) gestito e routing intelligente**

La memorizzazione nella cache KV salva i vettori chiave-valore precalcolati dopo l'elaborazione dei token precedenti. Quando viene elaborato il token successivo, non è necessario ricalcolare i vettori. Tramite un'architettura di caching a due livelli, è possibile configurare una cache L1 che utilizza la memoria della CPU per il riutilizzo locale a bassa latenza e una cache L2 che sfrutta Redis per consentire una condivisione scalabile della cache a livello di nodo.

Il routing intelligente analizza le richieste in entrata e le indirizza all'istanza di inferenza che ha più probabilità di avere coppie chiave-valore memorizzate nella cache. Il sistema esamina la richiesta e quindi la indirizza in base a una delle seguenti strategie di routing:

1. `prefixaware`— Le richieste successive con lo stesso prefisso di prompt vengono indirizzate alla stessa istanza

1. `kvaware`— Le richieste in entrata vengono indirizzate all'istanza con la più alta frequenza di accessi della cache KV.

1. `session`— Le richieste provenienti dalla stessa sessione utente vengono indirizzate alla stessa istanza.

1. `roundrobin`— Distribuzione uniforme delle richieste senza considerare lo stato della cache KV.

Per ulteriori informazioni su come abilitare questa funzionalità, vedere[Configura la memorizzazione nella cache KV e il routing intelligente per migliorare le prestazioni](sagemaker-hyperpod-model-deployment-deploy-ftm.md#sagemaker-hyperpod-model-deployment-deploy-ftm-cache-route).

**Supporto di storage su più livelli con cache L2 integrata per la memorizzazione nella cache KV**

Basandosi sull'infrastruttura di cache KV esistente, HyperPod ora integra lo storage su più livelli come opzione di backend L2 aggiuntiva insieme a Redis. Grazie allo storage SageMaker gestito su più livelli integrato, ciò offre prestazioni migliorate. Questo miglioramento offre ai clienti un'opzione più scalabile ed efficiente per l'offload della cache, particolarmente vantaggiosa per i carichi di lavoro di inferenza LLM ad alto rendimento. L'integrazione mantiene la compatibilità con i server modello VLLm esistenti e le funzionalità di routing, offrendo al contempo prestazioni migliori.

**Nota**  
**Crittografia dei dati:** i dati della cache KV (chiavi e valori di attenzione) vengono archiviati non crittografati quando sono inattivi per ottimizzare la latenza di inferenza e migliorare le prestazioni. Per carichi di lavoro con encryption-at-rest requisiti rigorosi, prendi in considerazione la crittografia a livello di applicazione di richieste e risposte o disabilita la memorizzazione nella cache.  
**Isolamento dei dati:** quando si utilizza lo storage gestito su più livelli come backend della cache L2, più implementazioni di inferenza all'interno di un cluster condividono lo storage della cache senza isolamento. I dati della cache L2 KV (chiavi e valori di attenzione) provenienti da diverse implementazioni non sono separati. Per i carichi di lavoro che richiedono l'isolamento dei dati (scenari multi-tenant, diversi livelli di classificazione dei dati), esegui l'implementazione su cluster separati o utilizza istanze Redis dedicate.

**Implementazione di tipo multiistanza con failover automatico**

HyperPod Inference supporta l'implementazione di tipo multiistanza per migliorare l'affidabilità della distribuzione e l'utilizzo delle risorse. Specificate un elenco prioritario di tipi di istanze nella configurazione di distribuzione e il sistema selezionerà automaticamente tra le alternative disponibili quando il tipo di istanza preferito non ha capacità. Lo scheduler Kubernetes utilizza l'affinità dei `preferredDuringSchedulingIgnoredDuringExecution` nodi per valutare i tipi di istanza in ordine di priorità, posizionando i carichi di lavoro sul tipo di istanza con la priorità più alta disponibile e garantendo al contempo l'implementazione anche quando le risorse preferite non sono disponibili. Questa funzionalità previene gli errori di implementazione dovuti a vincoli di capacità, mantenendo al contempo le preferenze in termini di costi e prestazioni, garantendo la disponibilità continua del servizio anche durante le fluttuazioni della capacità del cluster.

**Affinità dei nodi personalizzata per un controllo granulare della pianificazione**

HyperPod Inference supporta l'affinità dei nodi personalizzata per controllare il posizionamento del carico di lavoro oltre la selezione del tipo di istanza. Specificate i criteri di selezione dei nodi, come la distribuzione delle zone di disponibilità, il filtraggio del tipo di capacità (su richiesta o spot) o le etichette personalizzate dei nodi tramite il campo. `nodeAffinity` Il sistema supporta vincoli di posizionamento obbligatori tramite l'utilizzo di preferenze `requiredDuringSchedulingIgnoredDuringExecution` opzionali`preferredDuringSchedulingIgnoredDuringExecution`, garantendo il pieno controllo sulle decisioni di pianificazione dei pod pur mantenendo la flessibilità di implementazione.

**Nota**  
Raccogliamo determinate metriche operative di routine per fornire la disponibilità essenziale del servizio. La creazione di queste metriche è completamente automatizzata e non prevede la revisione umana del carico di lavoro di inferenza del modello sottostante. Queste metriche riguardano le operazioni di distribuzione, la gestione delle risorse e la registrazione degli endpoint.

**Topics**
+ [Configurazione dei HyperPod cluster per l'implementazione dei modelli](sagemaker-hyperpod-model-deployment-setup.md)
+ [Implementazione di modelli di fondazione e di modelli ottimizzati con fine-tuning personalizzati](sagemaker-hyperpod-model-deployment-deploy.md)
+ [Politiche di scalabilità automatica per l'implementazione del modello di inferenza HyperPod](sagemaker-hyperpod-model-deployment-autoscaling.md)
+ [Implementazione dell'osservabilità inferenziale sui cluster HyperPod](sagemaker-hyperpod-model-deployment-observability.md)
+ [Governance delle attività per l'implementazione del modello su HyperPod](sagemaker-hyperpod-model-deployment-task-gov.md)
+ [HyperPod risoluzione dei problemi di inferenza](sagemaker-hyperpod-model-deployment-ts.md)
+ [Note sulla versione di Amazon SageMaker HyperPod Inference](sagemaker-hyperpod-inference-release-notes.md)

# Configurazione dei HyperPod cluster per l'implementazione dei modelli
<a name="sagemaker-hyperpod-model-deployment-setup"></a>

Questa guida mostra come abilitare le funzionalità di inferenza sui SageMaker HyperPod cluster Amazon. Configurerai l'infrastruttura, le autorizzazioni e gli operatori di cui gli ingegneri di machine learning hanno bisogno per implementare e gestire gli endpoint di inferenza.

**Nota**  
Per creare un cluster con l'operatore di inferenza preinstallato, consulta. [Crea un cluster orchestrato da EKS SageMaker HyperPod](sagemaker-hyperpod-quickstart.md#sagemaker-hyperpod-quickstart-eks) Per installare l'operatore di inferenza su un cluster esistente, continuate con le seguenti procedure.

Puoi installare l'operatore di inferenza utilizzando la console SageMaker AI per un'esperienza semplificata o utilizzare la AWS CLI per un maggiore controllo. Questa guida copre entrambi i metodi di installazione.

## Metodo 1: installa il componente aggiuntivo HyperPod Inference tramite la console SageMaker AI (consigliato)
<a name="sagemaker-hyperpod-model-deployment-setup-ui"></a>

La console SageMaker AI offre l'esperienza più semplificata con due opzioni di installazione:
+ **Installazione rapida:** crea automaticamente tutte le risorse necessarie con impostazioni predefinite ottimizzate, inclusi ruoli IAM, bucket Amazon S3 e componenti aggiuntivi per le dipendenze. Verrà creato un nuovo dominio Studio con le autorizzazioni necessarie per distribuire un modello nel cluster pertinente. JumpStart Questa opzione è ideale per iniziare rapidamente con decisioni di configurazione minime.
+ **Installazione personalizzata:** offre la flessibilità necessaria per specificare le risorse esistenti o personalizzare le configurazioni mantenendo l'esperienza con un solo clic. I clienti possono scegliere di riutilizzare i ruoli IAM esistenti, i bucket Amazon S3 o i componenti aggiuntivi di dipendenza in base ai requisiti organizzativi.

### Prerequisiti
<a name="sagemaker-hyperpod-model-deployment-setup-ui-prereqs"></a>
+ Un HyperPod cluster esistente con orchestrazione Amazon EKS
+ Autorizzazioni IAM per l'amministrazione di cluster Amazon EKS
+ kubectl configurato per l'accesso al cluster

### Fasi di installazione
<a name="sagemaker-hyperpod-model-deployment-setup-ui-steps"></a>

1. Vai alla console SageMaker AI e vai a **HyperPod Clusters** → **Cluster Management**.

1. Seleziona il cluster in cui desideri installare Inference Operator.

1. Vai alla scheda **Inferenza.** Seleziona **Installazione rapida** per la configurazione automatica o Installazione **personalizzata** per la flessibilità di configurazione.

1. Se scegli Installazione personalizzata, specifica le risorse esistenti o personalizza le impostazioni in base alle esigenze.

1. Fate clic su **Installa** per iniziare il processo di installazione automatica.

1. Verifica lo stato dell'installazione tramite la console o eseguendo i seguenti comandi:

   ```
   kubectl get pods -n hyperpod-inference-system
   ```

   ```
   aws eks describe-addon --cluster-name CLUSTER-NAME --addon-name amazon-sagemaker-hyperpod-inference --region REGION
   ```

Dopo aver installato correttamente il componente aggiuntivo, puoi distribuire i modelli utilizzando la documentazione sulla distribuzione del modello o accedere a. [Verifica del funzionamento dell’operatore di inferenza](#sagemaker-hyperpod-model-deployment-setup-verify)

## Metodo 2: installazione dell'operatore di inferenza utilizzando la CLI AWS
<a name="sagemaker-hyperpod-model-deployment-setup-addon"></a>

Il metodo di installazione AWS CLI offre un maggiore controllo sul processo di installazione ed è adatto per l'automazione e le configurazioni avanzate.

### Prerequisiti
<a name="sagemaker-hyperpod-model-deployment-setup-prereq-addon"></a>

L'operatore di inferenza consente l'implementazione e la gestione di endpoint di inferenza di machine learning sul tuo cluster Amazon EKS. Prima dell'installazione, assicurati che il cluster disponga delle configurazioni di sicurezza e dell'infrastruttura di supporto richieste. Completa questi passaggi per configurare i ruoli IAM, installare il AWS Load Balancer Controller, configurare i driver Amazon S3 e FSx Amazon CSI e distribuire KEDA e cert-manager:

1. [Connect al cluster e configura le variabili di ambiente](#sagemaker-hyperpod-model-deployment-setup-connect-addon)

1. [Configura i ruoli IAM per l'operatore di inferenza](#sagemaker-hyperpod-model-deployment-setup-prepare-addon)

1. [Crea il ruolo ALB Controller](#sagemaker-hyperpod-model-deployment-setup-alb-addon)

1. [Creazione del ruolo di operatore KEDA](#sagemaker-hyperpod-model-deployment-setup-keda-addon)

1. [Installa i componenti aggiuntivi EKS di dipendenza](#sagemaker-hyperpod-model-deployment-setup-install-dependencies)

**Nota**  
In alternativa, puoi utilizzare CloudFormation modelli per automatizzare la configurazione dei prerequisiti. Per ulteriori informazioni, consulta [Utilizzo dei CloudFormation modelli per creare lo stack dei prerequisiti](#sagemaker-hyperpod-model-deployment-setup-cfn).

### Connect al cluster e configura le variabili di ambiente
<a name="sagemaker-hyperpod-model-deployment-setup-connect-addon"></a>

Prima di procedere, verifica che AWS le tue credenziali siano configurate correttamente e dispongano delle autorizzazioni necessarie. Esegui i seguenti passaggi utilizzando un principale IAM con privilegi di amministratore e accesso da amministratore del cluster a un cluster Amazon EKS. Assicurati di aver creato un HyperPod cluster con[Creazione di un SageMaker HyperPod cluster con l'orchestrazione di Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md). Installa le utilità da riga di comando helm, eksctl e kubectl.

Per l'accesso amministrativo di Kubernetes al cluster Amazon EKS, apri la console Amazon EKS e seleziona il tuo cluster. Nella scheda **Accesso**, seleziona **IAM** Access Entries. Se non esiste alcuna voce per il tuo principale IAM, seleziona **Create Access Entry**. Seleziona il principale IAM desiderato e associalo ad esso. `AmazonEKSClusterAdminPolicy`

1. Configura kubectl per connetterti al cluster appena creato orchestrato dal HyperPod cluster Amazon EKS. Specificare la regione e il nome del cluster. HyperPod 

   ```
   export HYPERPOD_CLUSTER_NAME=<hyperpod-cluster-name>
   export REGION=<region>
   
   # S3 bucket where tls certificates will be uploaded
   export BUCKET_NAME="hyperpod-tls-<your-bucket-suffix>" # Bucket should have prefix: hyperpod-tls-*
   
   export EKS_CLUSTER_NAME=$(aws --region $REGION sagemaker describe-cluster --cluster-name $HYPERPOD_CLUSTER_NAME \
   --query 'Orchestrator.Eks.ClusterArn' --output text | \
   cut -d'/' -f2)
   aws eks update-kubeconfig --name $EKS_CLUSTER_NAME --region $REGION
   ```
**Nota**  
Se utilizzi un nome di bucket personalizzato che non inizia con`hyperpod-tls-`, allega la seguente policy al tuo ruolo di esecuzione:  

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "TLSBucketDeleteObjectsPermission",
               "Effect": "Allow",
               "Action": ["s3:DeleteObject"],
               "Resource": ["arn:aws:s3:::${BUCKET_NAME}/*"],
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceAccount": "${aws:PrincipalAccount}"
                   }
               }
           },
           {
               "Sid": "TLSBucketGetObjectAccess",
               "Effect": "Allow",
               "Action": ["s3:GetObject"],
               "Resource": ["arn:aws:s3:::${BUCKET_NAME}/*"]
           },
           {
               "Sid": "TLSBucketPutObjectAccess",
               "Effect": "Allow",
               "Action": ["s3:PutObject", "s3:PutObjectTagging"],
               "Resource": ["arn:aws:s3:::${BUCKET_NAME}/*"],
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceAccount": "${aws:PrincipalAccount}"
                   }
               }
           }
       ]
   }
   ```

1. Imposta le variabili env predefinite.

   ```
   HYPERPOD_INFERENCE_ROLE_NAME="SageMakerHyperPodInference-$HYPERPOD_CLUSTER_NAME"
   HYPERPOD_INFERENCE_NAMESPACE="hyperpod-inference-system"
   ```

1. Estrai il nome del cluster Amazon EKS dall’ARN del cluster, aggiorna il file kubeconfig locale e verifica la connettività elencando tutti i pod nei namespace.

   ```
   kubectl get pods --all-namespaces
   ```

1. (Facoltativo) Installa il plugin del dispositivo NVIDIA per abilitare il supporto della GPU sul cluster.

   ```
   # Install nvidia device plugin
   kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.14.5/nvidia-device-plugin.yml
   # Verify that GPUs are visible to k8s
   kubectl get nodes -o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia.com/gpu
   ```

### Configura i ruoli IAM per l'operatore di inferenza
<a name="sagemaker-hyperpod-model-deployment-setup-prepare-addon"></a>

1. Raccogli gli identificatori AWS delle risorse essenziali e ARNs necessari per configurare le integrazioni di servizi tra i componenti Amazon EKS, SageMaker AI e IAM.

   ```
   %%bash -x
   
   export ACCOUNT_ID=$(aws --region $REGION sts get-caller-identity --query 'Account' --output text)
   export OIDC_ID=$(aws --region $REGION eks describe-cluster --name $EKS_CLUSTER_NAME --query "cluster.identity.oidc.issuer" --output text | cut -d '/' -f 5)
   export EKS_CLUSTER_ROLE=$(aws eks --region $REGION describe-cluster --name $EKS_CLUSTER_NAME --query 'cluster.roleArn' --output text)
   ```

1. Associa un OIDCidentity provider IAM al tuo cluster EKS.

   ```
   eksctl utils associate-iam-oidc-provider --region=$REGION --cluster=$EKS_CLUSTER_NAME --approve
   ```

1. Crea la policy di fiducia richiesta per il ruolo IAM dell'operatore di HyperPod inferenza. Queste policy consentono una comunicazione sicura tra diversi servizi tra Amazon EKS, SageMaker AI e altri AWS servizi.

   ```
   %%bash -x
   
   # Create trust policy JSON
   cat << EOF > trust-policy.json
   {
   "Version": "2012-10-17",		 	 	 
   "Statement": [
       {
           "Effect": "Allow",
           "Principal": {
               "Service": [
                   "sagemaker.amazonaws.com"
               ]
           },
           "Action": "sts:AssumeRole"
       },
       {
           "Effect": "Allow",
           "Principal": {
               "Federated": "arn:aws:iam::${ACCOUNT_ID}:oidc-provider/oidc.eks.${REGION}.amazonaws.com/id/${OIDC_ID}"
           },
           "Action": "sts:AssumeRoleWithWebIdentity",
           "Condition": {
               "StringLike": {
                   "oidc.eks.${REGION}.amazonaws.com/id/${OIDC_ID}:aud": "sts.amazonaws.com",
                   "oidc.eks.${REGION}.amazonaws.com/id/${OIDC_ID}:sub": "system:serviceaccount:hyperpod-inference-system:hyperpod-inference-controller-manager"
               }
           }
       }
   ]
   }
   EOF
   ```

1. Crea il ruolo di esecuzione per l’operatore di inferenza.

   ```
   aws iam create-role --role-name $HYPERPOD_INFERENCE_ROLE_NAME --assume-role-policy-document file://trust-policy.json
   aws iam attach-role-policy --role-name $HYPERPOD_INFERENCE_ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerHyperPodInferenceAccess
   ```

1. Crea uno spazio dei nomi per le risorse degli operatori di inferenza

   ```
   kubectl create namespace $HYPERPOD_INFERENCE_NAMESPACE
   ```

### Crea il ruolo ALB Controller
<a name="sagemaker-hyperpod-model-deployment-setup-alb-addon"></a>

1. Crea la policy di attendibilità e la policy di autorizzazione.

   ```
   # Create trust policy
   cat <<EOF > /tmp/alb-trust-policy.json
   {
   "Version": "2012-10-17",		 	 	 
   "Statement": [
       {
           "Effect": "Allow",
           "Principal": {
               "Federated": "arn:aws:iam::$ACCOUNT_ID:oidc-provider/oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID"
           },
           "Action": "sts:AssumeRoleWithWebIdentity",
           "Condition": {
               "StringLike": {
                   "oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID:sub": "system:serviceaccount:hyperpod-inference-system:aws-load-balancer-controller",
                   "oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID:aud": "sts.amazonaws.com"
               }
           }
       }
   ]
   }
   EOF
   
   # Create permissions policy
   export ALBController_IAM_POLICY_NAME=HyperPodInferenceALBControllerIAMPolicy
   curl -o AWSLoadBalancerControllerIAMPolicy.json https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.13.0/docs/install/iam_policy.json
   
   # Create the role
   aws iam create-role \
       --role-name alb-role \
       --assume-role-policy-document file:///tmp/alb-trust-policy.json 
   
   # Create the policy
   ALB_POLICY_ARN=$(aws iam create-policy \
       --policy-name $ALBController_IAM_POLICY_NAME \
       --policy-document file://AWSLoadBalancerControllerIAMPolicy.json \
       --query 'Policy.Arn' \
       --output text)
   
   # Attach the policy to the role
   aws iam attach-role-policy \
       --role-name alb-role \
       --policy-arn $ALB_POLICY_ARN
   ```

1. Applica i tag (`kubernetes.io.role/elb`) a tutte le sottoreti del cluster Amazon EKS (sia pubbliche che private).

   ```
   export VPC_ID=$(aws --region $REGION eks describe-cluster --name $EKS_CLUSTER_NAME --query 'cluster.resourcesVpcConfig.vpcId' --output text)
   
   # Add Tags
   aws ec2 describe-subnets \
   --filters "Name=vpc-id,Values=${VPC_ID}" "Name=map-public-ip-on-launch,Values=true" \
   --query 'Subnets[*].SubnetId' --output text | \
   tr '\t' '\n' | \
   xargs -I{} aws ec2 create-tags --resources {} --tags Key=kubernetes.io/role/elb,Value=1
   
   # Verify Tags are added
   aws ec2 describe-subnets \
   --filters "Name=vpc-id,Values=${VPC_ID}" "Name=map-public-ip-on-launch,Values=true" \
   --query 'Subnets[*].SubnetId' --output text | \
   tr '\t' '\n' |
   xargs -n1 -I{} aws ec2 describe-tags --filters "Name=resource-id,Values={}" "Name=key,Values=kubernetes.io/role/elb" --query "Tags[0].Value" --output text
   ```

1. Creare un endpoint VPC Amazon S3.

   ```
   aws ec2 create-vpc-endpoint \
       --region ${REGION} \
       --vpc-id ${VPC_ID} \
       --vpc-endpoint-type Gateway \
       --service-name "com.amazonaws.${REGION}.s3" \
       --route-table-ids $(aws ec2 describe-route-tables --region $REGION --filters "Name=vpc-id,Values=${VPC_ID}" --query 'RouteTables[].Associations[].RouteTableId' --output text | tr ' ' '\n' | sort -u | tr '\n' ' ')
   ```

### Creazione del ruolo di operatore KEDA
<a name="sagemaker-hyperpod-model-deployment-setup-keda-addon"></a>

1. Crea la policy di attendibilità e la policy di autorizzazione.

   ```
   # Create trust policy
   cat <<EOF > /tmp/keda-trust-policy.json
   {
   "Version": "2012-10-17",		 	 	 
   "Statement": [
       {
           "Effect": "Allow",
           "Principal": {
               "Federated": "arn:aws:iam::$ACCOUNT_ID:oidc-provider/oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID"
           },
           "Action": "sts:AssumeRoleWithWebIdentity",
           "Condition": {
               "StringLike": {
                   "oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID:sub": "system:serviceaccount:hyperpod-inference-system:keda-operator",
                   "oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID:aud": "sts.amazonaws.com"
               }
           }
       }
   ]
   }
   EOF
   
   # Create permissions policy
   cat <<EOF > /tmp/keda-policy.json
   {
   "Version": "2012-10-17",		 	 	 
   "Statement": [
       {
           "Effect": "Allow",
           "Action": [
               "cloudwatch:GetMetricData",
               "cloudwatch:GetMetricStatistics",
               "cloudwatch:ListMetrics"
           ],
           "Resource": "*"
       },
       {
           "Effect": "Allow",
           "Action": [
               "aps:QueryMetrics",
               "aps:GetLabels",
               "aps:GetSeries",
               "aps:GetMetricMetadata"
           ],
           "Resource": "*"
       }
   ]
   }
   EOF
   
   # Create the role
   aws iam create-role \
       --role-name keda-operator-role \
       --assume-role-policy-document file:///tmp/keda-trust-policy.json
   
   # Create the policy
   KEDA_POLICY_ARN=$(aws iam create-policy \
       --policy-name KedaOperatorPolicy \
       --policy-document file:///tmp/keda-policy.json \
       --query 'Policy.Arn' \
       --output text)
   
   # Attach the policy to the role
   aws iam attach-role-policy \
       --role-name keda-operator-role \
       --policy-arn $KEDA_POLICY_ARN
   ```

1. Se utilizzi modelli gated, crea un ruolo IAM per accedervi.

   1. Creare una policy IAM

      ```
      %%bash -s $REGION
      
      JUMPSTART_GATED_ROLE_NAME="JumpstartGatedRole-${REGION}-${HYPERPOD_CLUSTER_NAME}"
      
      cat <<EOF > /tmp/trust-policy.json
      {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Principal": {
                  "Federated": "arn:aws:iam::$ACCOUNT_ID:oidc-provider/oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID"
              },
              "Action": "sts:AssumeRoleWithWebIdentity",
              "Condition": {
                  "StringLike": {
                      "oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID:sub": "system:serviceaccount:*:hyperpod-inference-service-account*",
                      "oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID:aud": "sts.amazonaws.com"
                  }
              }
          },
              {
              "Effect": "Allow",
              "Principal": {
                  "Service": "sagemaker.amazonaws.com"
              },
              "Action": "sts:AssumeRole"
          }
      ]
      }
      EOF
      ```

   1. Crea un ruolo IAM.

      ```
      # Create the role using existing trust policy
      aws iam create-role \
      --role-name $JUMPSTART_GATED_ROLE_NAME \
      --assume-role-policy-document file:///tmp/trust-policy.json
      
      aws iam attach-role-policy \
      --role-name $JUMPSTART_GATED_ROLE_NAME \
      --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerHyperPodGatedModelAccess
      ```

      ```
      JUMPSTART_GATED_ROLE_ARN_LIST= !aws iam get-role --role-name=$JUMPSTART_GATED_ROLE_NAME --query "Role.Arn" --output text
      JUMPSTART_GATED_ROLE_ARN = JUMPSTART_GATED_ROLE_ARN_LIST[0]
      !echo $JUMPSTART_GATED_ROLE_ARN
      ```

### Installa i componenti aggiuntivi EKS di dipendenza
<a name="sagemaker-hyperpod-model-deployment-setup-install-dependencies"></a>

Prima di installare l'operatore di inferenza, è necessario installare i seguenti componenti aggiuntivi EKS richiesti sul cluster. L'operatore di inferenza non verrà installato se manca una di queste dipendenze. Ogni componente aggiuntivo ha un requisito minimo di versione per la compatibilità con il componente aggiuntivo Inference.

**Importante**  
Installa tutti i componenti aggiuntivi di dipendenza prima di tentare di installare l'operatore di inferenza. Le dipendenze mancanti causeranno errori di installazione con messaggi di errore specifici.

#### Componenti aggiuntivi richiesti
<a name="sagemaker-hyperpod-model-deployment-setup-required-addons"></a>

1. **Driver CSI Amazon S3 Mountpoint** (versione minima: v1.14.1-eksbuild.1)

   Necessario per montare i bucket S3 come volumi persistenti nei carichi di lavoro di inferenza.

   ```
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name aws-mountpoint-s3-csi-driver \
       --region $REGION \
       --service-account-role-arn $S3_CSI_ROLE_ARN
   ```

   Per istruzioni di installazione dettagliate, incluse le autorizzazioni IAM richieste, consulta il driver CSI [Mountpoint for Amazon S3](https://docs.aws.amazon.com/eks/latest/userguide/workloads-add-ons-available-eks.html#mountpoint-for-s3-add-on).

1. **Amazon FSx CSI Driver** (versione minima: v1.6.0-eksbuild.1)

   Necessario per il montaggio di file system per lo storage di modelli ad alte prestazioni. FSx 

   ```
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name aws-fsx-csi-driver \
       --region $REGION \
       --service-account-role-arn $FSX_CSI_ROLE_ARN
   ```

   Per istruzioni di installazione dettagliate, incluse le autorizzazioni IAM richieste, consulta il driver [CSI di Amazon FSx for Lustre](https://docs.aws.amazon.com/eks/latest/userguide/workloads-add-ons-available-eks.html#add-ons-aws-fsx-csi-driver).

1. **Metrics Server** (versione minima: v0.7.2-eksbuild.4)

   Necessario per la funzionalità di scalabilità automatica e la raccolta delle metriche delle risorse.

   ```
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name metrics-server \
       --region $REGION
   ```

   [Per istruzioni dettagliate sull'installazione, consulta Metrics Server.](https://docs.aws.amazon.com/eks/latest/userguide/metrics-server.html)

1. **Cert Manager** (versione minima: v1.18.2-eksbuild.2)

   Necessario per la gestione dei certificati TLS per endpoint di inferenza sicuri.

   ```
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name cert-manager \
       --region $REGION
   ```

   [Per istruzioni dettagliate sull'installazione, consulta cert-manager.](https://docs.aws.amazon.com/eks/latest/userguide/community-addons.html#addon-cert-manager)

#### Verifica l'installazione del componente aggiuntivo
<a name="sagemaker-hyperpod-model-deployment-setup-verify-dependencies"></a>

Dopo aver installato i componenti aggiuntivi richiesti, verifica che funzionino correttamente:

```
# Check add-on status
aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name aws-mountpoint-s3-csi-driver --region $REGION
aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name aws-fsx-csi-driver --region $REGION
aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name metrics-server --region $REGION
aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name cert-manager --region $REGION

# Verify pods are running
kubectl get pods -n kube-system | grep -E "(mountpoint|fsx|metrics-server)"
kubectl get pods -n cert-manager
```

Tutti i componenti aggiuntivi devono mostrare lo stato «ATTIVO» e tutti i pod devono essere in stato «In esecuzione» prima di procedere con l'installazione dell'operatore di inferenza.

**Nota**  
Se hai creato il HyperPod cluster utilizzando le opzioni di configurazione rapida o di configurazione personalizzata, è possibile che FSx CSI Driver e Cert Manager siano già installati. Verifica la loro presenza utilizzando i comandi precedenti.

### Installazione del componente aggiuntivo Inference Operator with EKS
<a name="sagemaker-hyperpod-model-deployment-setup-install-inference-operator-addon"></a>

Il metodo di installazione del componente aggiuntivo EKS offre un'esperienza gestita con aggiornamenti automatici e convalida delle dipendenze integrata. Questo è l'approccio consigliato per l'installazione dell'operatore di inferenza.

**Installa il componente aggiuntivo Inference Operator**

1. Prepara la configurazione del componente aggiuntivo raccogliendo tutto il necessario ARNs e creando il file di configurazione:

   ```
   # Gather required ARNs
   export EXECUTION_ROLE_ARN=$(aws iam get-role --role-name $HYPERPOD_INFERENCE_ROLE_NAME --query "Role.Arn" --output text)
   export HYPERPOD_CLUSTER_ARN=$(aws sagemaker describe-cluster --cluster-name $HYPERPOD_CLUSTER_NAME --region $REGION --query "ClusterArn" --output text)
   export KEDA_ROLE_ARN=$(aws iam get-role --role-name keda-operator-role --query 'Role.Arn' --output text)
   export ALB_ROLE_ARN=$(aws iam get-role --role-name alb-role --query 'Role.Arn' --output text)
   
   # Verify all ARNs are set correctly
   echo "Execution Role ARN: $EXECUTION_ROLE_ARN"
   echo "HyperPod Cluster ARN: $HYPERPOD_CLUSTER_ARN"
   echo "KEDA Role ARN: $KEDA_ROLE_ARN"
   echo "ALB Role ARN: $ALB_ROLE_ARN"
   echo "TLS S3 Bucket: $BUCKET_NAME"
   ```

1. Crea il file di configurazione del componente aggiuntivo con tutte le impostazioni richieste:

   ```
   cat > addon-config.json << EOF
   {
     "executionRoleArn": "$EXECUTION_ROLE_ARN",
     "tlsCertificateS3Bucket": "$BUCKET_NAME",
     "hyperpodClusterArn": "$HYPERPOD_CLUSTER_ARN",
     "jumpstartGatedModelDownloadRoleArn": "$JUMPSTART_GATED_ROLE_ARN",
     "alb": {
       "serviceAccount": {
         "create": true,
         "roleArn": "$ALB_ROLE_ARN"
       }
     },
     "keda": {
       "auth": {
         "aws": {
           "irsa": {
             "roleArn": "$KEDA_ROLE_ARN"
           }
         }
       }
     }
   }
   EOF
   
   # Verify the configuration file
   cat addon-config.json
   ```

1. Installa il componente aggiuntivo dell'operatore di inferenza (versione minima: v1.0.0-eksbuild.1):

   ```
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --configuration-values file://addon-config.json \
       --region $REGION
   ```

1. Monitora lo stato di avanzamento dell'installazione e verifica il corretto completamento:

   ```
   # Check installation status (repeat until status shows "ACTIVE")
   aws eks describe-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --region $REGION \
       --query "addon.{Status:status,Health:health}" \
       --output table
   
   # Verify pods are running
   kubectl get pods -n hyperpod-inference-system
   
   # Check operator logs for any issues
   kubectl logs -n hyperpod-inference-system deployment/hyperpod-inference-controller-manager --tail=50
   ```

Per la risoluzione dettagliata dei problemi di installazione, vedere[HyperPod risoluzione dei problemi di inferenza](sagemaker-hyperpod-model-deployment-ts.md).

Per verificare che l'operatore di inferenza funzioni correttamente, continuate con[Verifica del funzionamento dell’operatore di inferenza](#sagemaker-hyperpod-model-deployment-setup-verify).

### Utilizzo dei CloudFormation modelli per creare lo stack dei prerequisiti
<a name="sagemaker-hyperpod-model-deployment-setup-cfn"></a>

In alternativa alla configurazione manuale dei prerequisiti, puoi utilizzare i CloudFormation modelli per automatizzare la creazione dei ruoli e delle policy IAM richiesti per l'operatore di inferenza.

1. Imposta le variabili di input. Sostituisci i valori segnaposto con i tuoi:

   ```
   #!/bin/bash
   set -e
   
   # ===== INPUT VARIABLES =====
   HP_CLUSTER_NAME="my-hyperpod-cluster"  # Replace with your HyperPod cluster name
   REGION="us-east-1"  # Replace with your AWS region
   PREFIX="my-prefix"  # Replace with your resource prefix
   SHORT_PREFIX="12a34d56"  # Replace with your short prefix (maximum 8 characters)
   CREATE_DOMAIN="true"  # Set to "false" if you don't need a SageMaker Studio domain
   STACK_NAME="hyperpod-inference-prerequisites"  # Replace with your stack name
   TEMPLATE_URL="https://aws-sagemaker-hyperpod-cluster-setup-${REGION}-prod.s3.${REGION}.amazonaws.com/templates/main-stack-inference-operator-addon-template.yaml"
   ```

1. Ricava informazioni su cluster e rete:

   ```
   # ===== DERIVE EKS CLUSTER NAME =====
   EKS_CLUSTER_NAME=$(aws sagemaker describe-cluster --cluster-name $HP_CLUSTER_NAME --region $REGION --query 'Orchestrator.Eks.ClusterArn' --output text | awk -F'/' '{print $NF}')
   echo "EKS_CLUSTER_NAME=$EKS_CLUSTER_NAME"
   
   # ===== GET VPC AND OIDC =====
   VPC_ID=$(aws eks describe-cluster --name $EKS_CLUSTER_NAME --region $REGION --query 'cluster.resourcesVpcConfig.vpcId' --output text)
   echo "VPC_ID=$VPC_ID"
   
   OIDC_PROVIDER=$(aws eks describe-cluster --name $EKS_CLUSTER_NAME --region $REGION --query 'cluster.identity.oidc.issuer' --output text | sed 's|https://||')
   echo "OIDC_PROVIDER=$OIDC_PROVIDER"
   
   # ===== GET PRIVATE ROUTE TABLES =====
   ALL_ROUTE_TABLES=$(aws ec2 describe-route-tables --region $REGION --filters "Name=vpc-id,Values=$VPC_ID" --query 'RouteTables[].RouteTableId' --output text)
   EKS_PRIVATE_ROUTE_TABLES=""
   for rtb in $ALL_ROUTE_TABLES; do
       HAS_IGW=$(aws ec2 describe-route-tables --region $REGION --route-table-ids $rtb --query 'RouteTables[0].Routes[?GatewayId && starts_with(GatewayId, `igw-`)]' --output text 2>/dev/null)
       if [ -z "$HAS_IGW" ]; then
           EKS_PRIVATE_ROUTE_TABLES="${EKS_PRIVATE_ROUTE_TABLES:+$EKS_PRIVATE_ROUTE_TABLES,}$rtb"
       fi
   done
   echo "EKS_PRIVATE_ROUTE_TABLES=$EKS_PRIVATE_ROUTE_TABLES"
   
   # ===== CHECK S3 VPC ENDPOINT =====
   S3_ENDPOINT_EXISTS=$(aws ec2 describe-vpc-endpoints --region $REGION --filters "Name=vpc-id,Values=$VPC_ID" "Name=service-name,Values=com.amazonaws.$REGION.s3" --query 'VpcEndpoints[0].VpcEndpointId' --output text)
   CREATE_S3_ENDPOINT_STACK=$([ "$S3_ENDPOINT_EXISTS" == "None" ] && echo "true" || echo "false")
   echo "CREATE_S3_ENDPOINT_STACK=$CREATE_S3_ENDPOINT_STACK"
   
   # ===== GET HYPERPOD DETAILS =====
   HYPERPOD_CLUSTER_ARN=$(aws sagemaker describe-cluster --cluster-name $HP_CLUSTER_NAME --region $REGION --query 'ClusterArn' --output text)
   echo "HYPERPOD_CLUSTER_ARN=$HYPERPOD_CLUSTER_ARN"
   
   # ===== GET DEFAULT VPC FOR DOMAIN =====
   DOMAIN_VPC_ID=$(aws ec2 describe-vpcs --region $REGION --filters "Name=isDefault,Values=true" --query 'Vpcs[0].VpcId' --output text)
   echo "DOMAIN_VPC_ID=$DOMAIN_VPC_ID"
   
   DOMAIN_SUBNET_IDS=$(aws ec2 describe-subnets --region $REGION --filters "Name=vpc-id,Values=$DOMAIN_VPC_ID" --query 'Subnets[0].SubnetId' --output text)
   echo "DOMAIN_SUBNET_IDS=$DOMAIN_SUBNET_IDS"
   
   # ===== GET INSTANCE GROUPS =====
   INSTANCE_GROUPS=$(aws sagemaker describe-cluster --cluster-name $HP_CLUSTER_NAME --region $REGION --query 'InstanceGroups[].InstanceGroupName' --output json | python3 -c "import sys, json; groups = json.load(sys.stdin); print('[' + ','.join([f'\\\\\\\"' + g + '\\\\\\\"' for g in groups]) + ']')")
   echo "INSTANCE_GROUPS=$INSTANCE_GROUPS"
   ```

1. Crea un file di parametri e distribuisci lo stack:

   ```
   # ===== CREATE PARAMETERS JSON =====
   cat > /tmp/cfn-params.json << EOF
   [
     {"ParameterKey":"ResourceNamePrefix","ParameterValue":"$PREFIX"},
     {"ParameterKey":"ResourceNameShortPrefix","ParameterValue":"$SHORT_PREFIX"},
     {"ParameterKey":"VpcId","ParameterValue":"$VPC_ID"},
     {"ParameterKey":"EksPrivateRouteTableIds","ParameterValue":"$EKS_PRIVATE_ROUTE_TABLES"},
     {"ParameterKey":"EKSClusterName","ParameterValue":"$EKS_CLUSTER_NAME"},
     {"ParameterKey":"OIDCProviderURLWithoutProtocol","ParameterValue":"$OIDC_PROVIDER"},
     {"ParameterKey":"HyperPodClusterArn","ParameterValue":"$HYPERPOD_CLUSTER_ARN"},
     {"ParameterKey":"HyperPodClusterName","ParameterValue":"$HP_CLUSTER_NAME"},
     {"ParameterKey":"CreateDomain","ParameterValue":"$CREATE_DOMAIN"},
     {"ParameterKey":"DomainVpcId","ParameterValue":"$DOMAIN_VPC_ID"},
     {"ParameterKey":"DomainSubnetIds","ParameterValue":"$DOMAIN_SUBNET_IDS"},
     {"ParameterKey":"CreateS3EndpointStack","ParameterValue":"$CREATE_S3_ENDPOINT_STACK"},
     {"ParameterKey":"TieredStorageConfig","ParameterValue":"{\"Mode\":\"Enable\",\"InstanceMemoryAllocationPercentage\":20}"},
     {"ParameterKey":"TieredKVCacheConfig","ParameterValue":"{\"KVCacheMode\":\"Enable\",\"InstanceGroup\":$INSTANCE_GROUPS,\"NVMeMode\":\"Enable\"}"}
   ]
   EOF
   
   echo -e "\n===== CREATING CLOUDFORMATION STACK ====="
   aws cloudformation create-stack \
       --region $REGION \
       --stack-name $STACK_NAME \
       --template-url $TEMPLATE_URL \
       --parameters file:///tmp/cfn-params.json \
       --capabilities CAPABILITY_NAMED_IAM
   ```

1. Monitora lo stato di creazione dello stack:

   ```
   aws cloudformation describe-stacks \
       --stack-name $STACK_NAME \
       --region $REGION \
       --query 'Stacks[0].StackStatus'
   ```

1. Una volta creato correttamente lo stack, recupera i valori di output da utilizzare nell'installazione dell'operatore di inferenza:

   ```
   aws cloudformation describe-stacks \
       --stack-name $STACK_NAME \
       --region $REGION \
       --query 'Stacks[0].Outputs'
   ```

Dopo aver creato lo CloudFormation stack, continuate con l'installazione dell'operatore [Installazione del componente aggiuntivo Inference Operator with EKS](#sagemaker-hyperpod-model-deployment-setup-install-inference-operator-addon) di inferenza.

## Metodo 3: installazione di Helm chart
<a name="sagemaker-hyperpod-model-deployment-setup-helm"></a>

**Nota**  
Per un'esperienza di installazione più semplice, si consiglia di utilizzare [Metodo 1: installa il componente aggiuntivo HyperPod Inference tramite la console SageMaker AI (consigliato)](#sagemaker-hyperpod-model-deployment-setup-ui) o[Metodo 2: installazione dell'operatore di inferenza utilizzando la CLI AWS](#sagemaker-hyperpod-model-deployment-setup-addon). L'installazione di Helm chart potrebbe essere obsoleta in una versione futura.

### Prerequisiti
<a name="sagemaker-hyperpod-model-deployment-setup-prereq"></a>

Prima di procedere, verifica che AWS le tue credenziali siano configurate correttamente e dispongano delle autorizzazioni necessarie. I seguenti passaggi devono essere eseguiti da un responsabile IAM con privilegi di amministratore e accesso di amministratore del cluster a un cluster Amazon EKS. Verifica di aver creato un HyperPod cluster con[Creazione di un SageMaker HyperPod cluster con l'orchestrazione di Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md). Verifica di aver installato le utilità a riga di comando helm, eksctl e kubectl. 

Per l'accesso amministrativo di Kubernetes al cluster Amazon EKS, vai alla console Amazon EKS e seleziona il cluster che stai utilizzando. Seleziona Voci di accesso IAM nella scheda **Accesso**. Se la voce per il tuo principale IAM non è presente, seleziona **Crea voce di accesso**. Quindi seleziona il principale IAM desiderato e associalo a `AmazonEKSClusterAdminPolicy`.

1. Configura kubectl per connetterti al cluster appena creato orchestrato dal HyperPod cluster Amazon EKS. Specificare la regione e il nome del cluster. HyperPod 

   ```
   export HYPERPOD_CLUSTER_NAME=<hyperpod-cluster-name>
   export REGION=<region>
   
   # S3 bucket where tls certificates will be uploaded
   BUCKET_NAME="<Enter name of your s3 bucket>" # This should be bucket name, not URI
   
   export EKS_CLUSTER_NAME=$(aws --region $REGION sagemaker describe-cluster --cluster-name $HYPERPOD_CLUSTER_NAME \
   --query 'Orchestrator.Eks.ClusterArn' --output text | \
   cut -d'/' -f2)
   aws eks update-kubeconfig --name $EKS_CLUSTER_NAME --region $REGION
   ```

1. Imposta le variabili env predefinite.

   ```
   LB_CONTROLLER_POLICY_NAME="AWSLoadBalancerControllerIAMPolicy-$HYPERPOD_CLUSTER_NAME"
   LB_CONTROLLER_ROLE_NAME="aws-load-balancer-controller-$HYPERPOD_CLUSTER_NAME"
   S3_MOUNT_ACCESS_POLICY_NAME="S3MountpointAccessPolicy-$HYPERPOD_CLUSTER_NAME"
   S3_CSI_ROLE_NAME="SM_HP_S3_CSI_ROLE-$HYPERPOD_CLUSTER_NAME"
   KEDA_OPERATOR_POLICY_NAME="KedaOperatorPolicy-$HYPERPOD_CLUSTER_NAME"
   KEDA_OPERATOR_ROLE_NAME="keda-operator-role-$HYPERPOD_CLUSTER_NAME"
   HYPERPOD_INFERENCE_ROLE_NAME="HyperpodInferenceRole-$HYPERPOD_CLUSTER_NAME"
   HYPERPOD_INFERENCE_SA_NAME="hyperpod-inference-operator-controller"
   HYPERPOD_INFERENCE_SA_NAMESPACE="hyperpod-inference-system"
   JUMPSTART_GATED_ROLE_NAME="JumpstartGatedRole-$HYPERPOD_CLUSTER_NAME"
   FSX_CSI_ROLE_NAME="AmazonEKSFSxLustreCSIDriverFullAccess-$HYPERPOD_CLUSTER_NAME"
   ```

1. Estrai il nome del cluster Amazon EKS dall’ARN del cluster, aggiorna il file kubeconfig locale e verifica la connettività elencando tutti i pod nei namespace.

   ```
   kubectl get pods --all-namespaces
   ```

1. (Facoltativo) Installa il plugin del dispositivo NVIDIA per abilitare il supporto della GPU sul cluster.

   ```
   #Install nvidia device plugin
   kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.14.5/nvidia-device-plugin.yml
   # Verify that GPUs are visible to k8s
   kubectl get nodes -o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia.com/gpu
   ```

### Preparazione dell’ambiente per l’installazione dell’operatore di inferenza
<a name="sagemaker-hyperpod-model-deployment-setup-prepare"></a>

1. Raccogli gli identificatori AWS delle risorse essenziali e ARNs necessari per configurare le integrazioni di servizi tra i componenti Amazon EKS, SageMaker AI e IAM.

   ```
   %%bash -x
   
   export ACCOUNT_ID=$(aws --region $REGION sts get-caller-identity --query 'Account' --output text)
   export OIDC_ID=$(aws --region $REGION eks describe-cluster --name $EKS_CLUSTER_NAME --query "cluster.identity.oidc.issuer" --output text | cut -d '/' -f 5)
   export EKS_CLUSTER_ROLE=$(aws eks --region $REGION describe-cluster --name $EKS_CLUSTER_NAME --query 'cluster.roleArn' --output text)
   ```

1. Associa un OIDCidentity provider IAM al tuo cluster EKS.

   ```
   eksctl utils associate-iam-oidc-provider --region=$REGION --cluster=$EKS_CLUSTER_NAME --approve
   ```

1. Crea la policy di fiducia richiesta per il ruolo IAM dell'operatore di HyperPod inferenza. Questa policy consente una comunicazione sicura tra diversi servizi tra Amazon EKS, SageMaker AI e altri AWS servizi.

   ```
   %%bash -x
   
   # Create trust policy JSON
   cat << EOF > trust-policy.json
   {
   "Version": "2012-10-17",		 	 	 
   "Statement": [
   {
       "Effect": "Allow",
       "Principal": {
           "Service": [
               "sagemaker.amazonaws.com"
           ]
       },
       "Action": "sts:AssumeRole"
   },
   {
       "Effect": "Allow",
       "Principal": {
           "Federated": "arn:aws:iam::${ACCOUNT_ID}:oidc-provider/oidc.eks.${REGION}.amazonaws.com/id/${OIDC_ID}"
       },
       "Action": "sts:AssumeRoleWithWebIdentity",
       "Condition": {
           "StringLike": {
               "oidc.eks.${REGION}.amazonaws.com/id/${OIDC_ID}:aud": "sts.amazonaws.com",
               "oidc.eks.${REGION}.amazonaws.com/id/${OIDC_ID}:sub": "system:serviceaccount:hyperpod-inference-system:hyperpod-inference-controller-manager"
           }
       }
   }
   ]
   }
   EOF
   ```

1. Crea il ruolo di esecuzione per l'operatore di inferenza e allega la policy gestita.

   ```
   aws iam create-role --role-name $HYPERPOD_INFERENCE_ROLE_NAME --assume-role-policy-document file://trust-policy.json
   aws iam attach-role-policy --role-name $HYPERPOD_INFERENCE_ROLE_NAME --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerHyperPodInferenceAccess
   ```

1. Scarica e crea la policy IAM richiesta al AWS Load Balancer Controller per gestire Application Load Balancer e Network Load Balancer nel tuo cluster EKS.

   ```
   %%bash -x 
   
   export ALBController_IAM_POLICY_NAME=HyperPodInferenceALBControllerIAMPolicy
   
   curl -o AWSLoadBalancerControllerIAMPolicy.json https://raw.githubusercontent.com/kubernetes-sigs/aws-load-balancer-controller/v2.13.0/docs/install/iam_policy.json
   aws iam create-policy --policy-name $ALBController_IAM_POLICY_NAME --policy-document file://AWSLoadBalancerControllerIAMPolicy.json
   ```

1. Crea un account di servizio IAM che colleghi l'account del servizio Kubernetes alla policy IAM, permettendo al Load AWS Balancer Controller di assumere le AWS autorizzazioni necessarie tramite IRSA (IAM Roles for Service Accounts).

   ```
   %%bash -x 
   
   export ALB_POLICY_ARN="arn:aws:iam::$ACCOUNT_ID:policy/$ALBController_IAM_POLICY_NAME"
   
   # Create IAM service account with gathered values
   eksctl create iamserviceaccount \
   --approve \
   --override-existing-serviceaccounts \
   --name=aws-load-balancer-controller \
   --namespace=kube-system \
   --cluster=$EKS_CLUSTER_NAME \
   --attach-policy-arn=$ALB_POLICY_ARN \
   --region=$REGION
   
   # Print the values for verification
   echo "Cluster Name: $EKS_CLUSTER_NAME"
   echo "Region: $REGION"
   echo "Policy ARN: $ALB_POLICY_ARN"
   ```

1. Applica i tag (`kubernetes.io.role/elb`) a tutte le sottoreti del cluster Amazon EKS (sia pubbliche che private).

   ```
   export VPC_ID=$(aws --region $REGION eks describe-cluster --name $EKS_CLUSTER_NAME --query 'cluster.resourcesVpcConfig.vpcId' --output text)
   
   # Add Tags
   aws ec2 describe-subnets \
   --filters "Name=vpc-id,Values=${VPC_ID}" "Name=map-public-ip-on-launch,Values=true" \
   --query 'Subnets[*].SubnetId' --output text | \
   tr '\t' '\n' | \
   xargs -I{} aws ec2 create-tags --resources {} --tags Key=kubernetes.io/role/elb,Value=1
   
   # Verify Tags are added
   aws ec2 describe-subnets \
   --filters "Name=vpc-id,Values=${VPC_ID}" "Name=map-public-ip-on-launch,Values=true" \
   --query 'Subnets[*].SubnetId' --output text | \
   tr '\t' '\n' |
   xargs -n1 -I{} aws ec2 describe-tags --filters "Name=resource-id,Values={}" "Name=key,Values=kubernetes.io/role/elb" --query "Tags[0].Value" --output text
   ```

1. Crea un namespace per KEDA e Gestione certificati.

   ```
   kubectl create namespace keda
   kubectl create namespace cert-manager
   ```

1. Creare un endpoint VPC Amazon S3.

   ```
   aws ec2 create-vpc-endpoint \
   --vpc-id ${VPC_ID} \
   --vpc-endpoint-type Gateway \
   --service-name "com.amazonaws.${REGION}.s3" \
   --route-table-ids $(aws ec2 describe-route-tables --filters "Name=vpc-id,Values=${VPC_ID}" --query 'RouteTables[].Associations[].RouteTableId' --output text | tr ' ' '\n' | sort -u | tr '\n' ' ')
   ```

1. Configura l’accesso all’archiviazione S3:

   1. Crea una policy IAM che conceda le autorizzazioni S3 necessarie per l’utilizzo di Mountpoint per Amazon S3 e che consenta l’accesso del file system ai bucket S3 dall’interno del cluster.

      ```
      %%bash -x
      
      export S3_CSI_BUCKET_NAME=“<bucketname_for_mounting_through_filesystem>”
      
      cat <<EOF> s3accesspolicy.json
      {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
          
          {
              "Sid": "MountpointAccess",
              "Effect": "Allow",
              "Action": [
                  "s3:ListBucket",
                  "s3:GetObject",
                  "s3:PutObject",
                  "s3:AbortMultipartUpload",
                  "s3:DeleteObject"
              ],
              "Resource": [
                      "arn:aws:s3:::${S3_CSI_BUCKET_NAME}",
                      "arn:aws:s3:::${S3_CSI_BUCKET_NAME}/*"
              ]
          }
      ]
      }
      EOF
      
      aws iam create-policy \
      --policy-name S3MountpointAccessPolicy \
      --policy-document file://s3accesspolicy.json
      
      cat <<EOF> s3accesstrustpolicy.json
      {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Principal": {
                  "Federated": "arn:aws:iam::$ACCOUNT_ID:oidc-provider/oidc.eks.$REGION.amazonaws.com/id/${OIDC_ID}"
              },
              "Action": "sts:AssumeRoleWithWebIdentity",
              "Condition": {
                  "StringEquals": {
                      "oidc.eks.$REGION.amazonaws.com/id/${OIDC_ID}:aud": "sts.amazonaws.com",
                      "oidc.eks.$REGION.amazonaws.com/id/${OIDC_ID}:sub": "system:serviceaccount:kube-system:${s3-csi-driver-sa}"
                  }
              }
          }
      ]
      }
      EOF
      
      aws iam create-role --role-name $S3_CSI_ROLE_NAME --assume-role-policy-document file://s3accesstrustpolicy.json
      
      aws iam attach-role-policy --role-name $S3_CSI_ROLE_NAME --policy-arn "arn:aws:iam::$ACCOUNT_ID:policy/S3MountpointAccessPolicy"
      ```

   1. (Facoltativo) Crea un account di servizio IAM per il driver CSI di Amazon S3. Il driver Amazon S3 CSI richiede un account di servizio IAM con le autorizzazioni appropriate per montare i bucket S3 come volumi persistenti nel cluster Amazon EKS. Questa fase crea il ruolo IAM e l’account di servizio Kubernetes necessari con la policy di accesso S3 richiesta.

      ```
      %%bash -x 
      
      export S3_CSI_ROLE_NAME="SM_HP_S3_CSI_ROLE-$REGION"
      export S3_CSI_POLICY_ARN=$(aws iam list-policies --query 'Policies[?PolicyName==`S3MountpointAccessPolicy`]' | jq '.[0].Arn' |  tr -d '"')
      
      eksctl create iamserviceaccount \
      --name s3-csi-driver-sa \
      --namespace kube-system \
      --cluster $EKS_CLUSTER_NAME \
      --attach-policy-arn $S3_CSI_POLICY_ARN \
      --approve \
      --role-name $S3_CSI_ROLE_NAME \
      --region $REGION 
      
      kubectl label serviceaccount s3-csi-driver-sa app.kubernetes.io/component=csi-driver app.kubernetes.io/instance=aws-mountpoint-s3-csi-driver app.kubernetes.io/managed-by=EKS app.kubernetes.io/name=aws-mountpoint-s3-csi-driver -n kube-system --overwrite
      ```

   1. (Facoltativo) Installa il componente aggiuntivo del driver CSI di Amazon S3. Questo driver consente ai pod di montare i bucket S3 come volumi persistenti, fornendo un accesso diretto all’archiviazione S3 dall’interno dei carichi di lavoro Kubernetes.

      ```
      %%bash -x
      
      export S3_CSI_ROLE_ARN=$(aws iam get-role --role-name $S3_CSI_ROLE_NAME  --query 'Role.Arn' --output text)
      eksctl create addon --name aws-mountpoint-s3-csi-driver --cluster $EKS_CLUSTER_NAME --service-account-role-arn $S3_CSI_ROLE_ARN --force
      ```

   1. (Facoltativo) Crea una richiesta di volumi persistenti (PVC) per l’archiviazione S3. Questo PVC consente ai pod di richiedere e utilizzare l’archiviazione S3 con le stesse modalità di un file system tradizionale.

      ```
      %%bash -x 
      
      cat <<EOF> pvc_s3.yaml
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
      name: s3-claim
      spec:
      accessModes:
      - ReadWriteMany # supported options: ReadWriteMany / ReadOnlyMany
      storageClassName: "" # required for static provisioning
      resources:
      requests:
          storage: 1200Gi # ignored, required
      volumeName: s3-pv
      EOF
      
      kubectl apply -f pvc_s3.yaml
      ```

1. (Facoltativo) Configura l'accesso allo storage. FSx Crea un account di servizio IAM per il driver Amazon FSx CSI. Questo account di servizio verrà utilizzato dal driver FSx CSI per interagire con il FSx servizio Amazon per conto del tuo cluster.

   ```
   %%bash -x 
   
   
   eksctl create iamserviceaccount \
   --name fsx-csi-controller-sa \
   --namespace kube-system \
   --cluster $EKS_CLUSTER_NAME \
   --attach-policy-arn arn:aws:iam::aws:policy/AmazonFSxFullAccess \
   --approve \
   --role-name FSXLCSI-${EKS_CLUSTER_NAME}-${REGION} \
   --region $REGION
   ```

### Creazione del ruolo di operatore KEDA
<a name="sagemaker-hyperpod-model-deployment-setup-keda"></a>

1. Crea la policy di attendibilità e la policy di autorizzazione.

   ```
   # Create trust policy
   cat <<EOF > /tmp/keda-trust-policy.json
   {
   "Version": "2012-10-17",		 	 	 
   "Statement": [
       {
           "Effect": "Allow",
           "Principal": {
               "Federated": "arn:aws:iam::$ACCOUNT_ID:oidc-provider/oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID"
           },
           "Action": "sts:AssumeRoleWithWebIdentity",
           "Condition": {
               "StringLike": {
                   "oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID:sub": "system:serviceaccount:kube-system:keda-operator",
                   "oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID:aud": "sts.amazonaws.com"
               }
           }
       }
   ]
   }
   EOF
   # Create permissions policy
   cat <<EOF > /tmp/keda-policy.json
   {
   "Version": "2012-10-17",		 	 	 
   "Statement": [
       {
           "Effect": "Allow",
           "Action": [
               "cloudwatch:GetMetricData",
               "cloudwatch:GetMetricStatistics",
               "cloudwatch:ListMetrics"
           ],
           "Resource": "*"
       },
       {
           "Effect": "Allow",
           "Action": [
               "aps:QueryMetrics",
               "aps:GetLabels",
               "aps:GetSeries",
               "aps:GetMetricMetadata"
           ],
           "Resource": "*"
       }
   ]
   }
   EOF
   # Create the role
   aws iam create-role \
   --role-name keda-operator-role \
   --assume-role-policy-document file:///tmp/keda-trust-policy.json
   # Create the policy
   KEDA_POLICY_ARN=$(aws iam create-policy \
   --policy-name KedaOperatorPolicy \
   --policy-document file:///tmp/keda-policy.json \
   --query 'Policy.Arn' \
   --output text)
   # Attach the policy to the role
   aws iam attach-role-policy \
   --role-name keda-operator-role \
   --policy-arn $KEDA_POLICY_ARN
   ```

1. Se utilizzi modelli gated, crea un ruolo IAM per accedervi.

   1. Crea la policy di fiducia e il ruolo IAM per l'accesso controllato ai modelli.

      ```
      %%bash -s $REGION
      
      JUMPSTART_GATED_ROLE_NAME="JumpstartGatedRole-${REGION}-${HYPERPOD_CLUSTER_NAME}"
      
      cat <<EOF > /tmp/trust-policy.json
      {
      "Version": "2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Principal": {
                  "Federated": "arn:aws:iam::$ACCOUNT_ID:oidc-provider/oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID"
              },
              "Action": "sts:AssumeRoleWithWebIdentity",
              "Condition": {
                  "StringLike": {
                      "oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID:sub": "system:serviceaccount:*:hyperpod-inference-service-account*",
                      "oidc.eks.$REGION.amazonaws.com/id/$OIDC_ID:aud": "sts.amazonaws.com"
                  }
              }
          },
              {
              "Effect": "Allow",
              "Principal": {
                  "Service": "sagemaker.amazonaws.com"
              },
              "Action": "sts:AssumeRole"
          }
      ]
      }
      EOF
      
      # Create the role and attach the managed policy
      aws iam create-role \
      --role-name $JUMPSTART_GATED_ROLE_NAME \
      --assume-role-policy-document file:///tmp/trust-policy.json
      
      aws iam attach-role-policy \
      --role-name $JUMPSTART_GATED_ROLE_NAME \
      --policy-arn arn:aws:iam::aws:policy/AmazonSageMakerHyperPodGatedModelAccess
      ```

      ```
      JUMPSTART_GATED_ROLE_ARN_LIST= !aws iam get-role --role-name=$JUMPSTART_GATED_ROLE_NAME --query "Role.Arn" --output text
      JUMPSTART_GATED_ROLE_ARN = JUMPSTART_GATED_ROLE_ARN_LIST[0]
      !echo $JUMPSTART_GATED_ROLE_ARN
      ```

### Installazione dell’operatore di inferenza
<a name="sagemaker-hyperpod-model-deployment-setup-install"></a>

1. Installa l'operatore di HyperPod inferenza. Questa fase raccoglie gli identificatori delle risorse AWS richiesti e genera il comando di installazione Helm con i parametri di configurazione appropriati.

   Accedi al grafico di timone da [https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart)\$1chart.

   ```
   git clone https://github.com/aws/sagemaker-hyperpod-cli
   cd sagemaker-hyperpod-cli
   cd helm_chart/HyperPodHelmChart
   helm dependencies update charts/inference-operator
   ```

   ```
   %%bash -x
   
   HYPERPOD_INFERENCE_ROLE_ARN=$(aws iam get-role --role-name=$HYPERPOD_INFERENCE_ROLE_NAME --query "Role.Arn" --output text)
   echo $HYPERPOD_INFERENCE_ROLE_ARN
   
   S3_CSI_ROLE_ARN=$(aws iam get-role --role-name=$S3_CSI_ROLE_NAME --query "Role.Arn" --output text)
   echo $S3_CSI_ROLE_ARN
   
   HYPERPOD_CLUSTER_ARN=$(aws sagemaker describe-cluster --cluster-name $HYPERPOD_CLUSTER_NAME --query "ClusterArn")
   
   # Verify values
   echo "Cluster Name: $EKS_CLUSTER_NAME"
   echo "Execution Role: $HYPERPOD_INFERENCE_ROLE_ARN"
   echo "Hyperpod ARN: $HYPERPOD_CLUSTER_ARN"
   # Run the the HyperPod inference operator installation. 
   
   helm install hyperpod-inference-operator charts/inference-operator \
   -n kube-system \
   --set region=$REGION \
   --set eksClusterName=$EKS_CLUSTER_NAME \
   --set hyperpodClusterArn=$HYPERPOD_CLUSTER_ARN \
   --set executionRoleArn=$HYPERPOD_INFERENCE_ROLE_ARN \
   --set s3.serviceAccountRoleArn=$S3_CSI_ROLE_ARN \
   --set s3.node.serviceAccount.create=false \
   --set keda.podIdentity.aws.irsa.roleArn="arn:aws:iam::$ACCOUNT_ID:role/keda-operator-role" \
   --set tlsCertificateS3Bucket="s3://$BUCKET_NAME" \
   --set alb.region=$REGION \
   --set alb.clusterName=$EKS_CLUSTER_NAME \
   --set alb.vpcId=$VPC_ID
   
   # For JumpStart Gated Model usage, Add
   # --set jumpstartGatedModelDownloadRoleArn=$UMPSTART_GATED_ROLE_ARN
   ```

1. Configura le annotazioni degli account di servizio per l’integrazione con IAM. Questa annotazione consente all’account di servizio dell’operatore di assumere le autorizzazioni IAM necessarie per gestire gli endpoint di inferenza e interagire con i servizi AWS .

   ```
   %%bash -x 
   
   EKS_CLUSTER_ROLE_NAME=$(echo $EKS_CLUSTER_ROLE | sed 's/.*\///')
   
   # Annotate service account
   kubectl annotate serviceaccount hyperpod-inference-operator-controller-manager \
   -n hyperpod-inference-system \
   eks.amazonaws.com/role-arn=arn:aws:iam::${ACCOUNT_ID}:role/${EKS_CLUSTER_ROLE_NAME} \
   --overwrite
   ```

## Verifica del funzionamento dell’operatore di inferenza
<a name="sagemaker-hyperpod-model-deployment-setup-verify"></a>

Segui questi passaggi per verificare che l'installazione dell'operatore di inferenza funzioni correttamente implementando e testando un modello semplice.

**Implementa un modello di test per verificare l'operatore**

1. Crea un file di configurazione dell’implementazione del modello. Questo crea un file manifest Kubernetes che definisce una distribuzione del JumpStart modello per l'operatore di inferenza. HyperPod

   ```
   cat <<EOF>> simple_model_install.yaml
   ---
   apiVersion: inference.sagemaker.aws.amazon.com/v1
   kind: JumpStartModel
   metadata:
   name: testing-deployment-bert
   namespace: default
   spec:
   model:
   modelId: "huggingface-eqa-bert-base-cased"
   sageMakerEndpoint:
   name: "hp-inf-ep-for-testing"
   server:
   instanceType: "ml.c5.2xlarge"
   environmentVariables:
   - name: SAMPLE_ENV_VAR
       value: "sample_value"
   maxDeployTimeInSeconds: 1800
   EOF
   ```

1. Implementa il modello e pulisci il file di configurazione.

   ```
   kubectl create -f simple_model_install.yaml
   rm -f simple_model_install.yaml
   ```

1. Verifica la configurazione dell'account di servizio per assicurarti che l'operatore possa assumere le autorizzazioni. AWS 

   ```
   # Get the service account details
   kubectl get serviceaccount -n hyperpod-inference-system
   
   # Check if the service account has the AWS annotations
   kubectl describe serviceaccount hyperpod-inference-operator-controller-manager -n hyperpod-inference-system
   ```

**Configura le impostazioni di distribuzione (se utilizzi l'interfaccia utente di Studio)**

1. Controlla il tipo di istanza consigliato in **Impostazioni di distribuzione**.

1. Se modifichi il **tipo di istanza**, verifica la compatibilità con il HyperPod cluster. Contatta l'amministratore se le istanze compatibili non sono disponibili.

1. Per le istanze partizionate da GPU con MIG abilitato, seleziona una **partizione GPU appropriata dai profili MIG disponibili per ottimizzare l'utilizzo della GPU**. Per ulteriori informazioni, consulta [Utilizzo delle partizioni GPU in Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md).

1. Se utilizzi la governance delle attività, configura le impostazioni di priorità per le funzionalità di priorità della distribuzione dei modelli.

1. Inserisci lo spazio dei nomi fornito dal tuo amministratore. Se necessario, contatta l'amministratore per il namespace corretto.

## (Facoltativo) Configura l'accesso degli utenti tramite l' JumpStart interfaccia utente in SageMaker AI Studio Classic
<a name="sagemaker-hyperpod-model-deployment-setup-optional-js"></a>

Per ulteriori informazioni sulla configurazione dell' SageMaker HyperPod accesso per gli utenti di Studio Classic e sulla configurazione delle autorizzazioni RBAC di Kubernetes dettagliate per gli utenti di data scientist, leggi e. [Configurazione di un cluster Amazon EKS in Studio](sagemaker-hyperpod-studio-setup-eks.md) [Configurazione del controllo degli accessi basato su ruoli Kubernetes](sagemaker-hyperpod-eks-setup-rbac.md)

1. Identifica il ruolo IAM che gli utenti di Data Scientist utilizzeranno per gestire e implementare modelli da AI Studio Classic. SageMaker HyperPod SageMaker Di solito, si tratta del ruolo di esecuzione del profilo utente o del ruolo di esecuzione del dominio per l’utente di Studio Classic.

   ```
   %%bash -x
   
   export DATASCIENTIST_ROLE_NAME="<Execution Role Name used in SageMaker Studio Classic>"
   
   export DATASCIENTIST_POLICY_NAME="HyperPodUIAccessPolicy"
   export EKS_CLUSTER_ARN=$(aws --region $REGION sagemaker describe-cluster --cluster-name $HYPERPOD_CLUSTER_NAME \
     --query 'Orchestrator.Eks.ClusterArn' --output text)
   
   export DATASCIENTIST_HYPERPOD_NAMESPACE="team-namespace"
   ```

1. Collega una policy di identità che abiliti l’accesso all’implementazione del modello.

   ```
   %%bash -x
   
   # Create access policy
   cat << EOF > hyperpod-deployment-ui-access-policy.json
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "DescribeHyerpodClusterPermissions",
               "Effect": "Allow",
               "Action": [
                   "sagemaker:DescribeCluster"
               ],
               "Resource": "$HYPERPOD_CLUSTER_ARN"
           },
           {
               "Sid": "UseEksClusterPermissions",
               "Effect": "Allow",
               "Action": [
                   "eks:DescribeCluster",
                   "eks:AccessKubernetesApi",
                   "eks:MutateViaKubernetesApi",
                   "eks:DescribeAddon"
               ],
               "Resource": "$EKS_CLUSTER_ARN"
           },
           {
               "Sid": "ListPermission",
               "Effect": "Allow",
               "Action": [
                   "sagemaker:ListClusters",
                   "sagemaker:ListEndpoints"
               ],
               "Resource": "*"
           },
           {
               "Sid": "SageMakerEndpointAccess",
               "Effect": "Allow",
               "Action": [
                   "sagemaker:DescribeEndpoint",
                   "sagemaker:InvokeEndpoint"
               ],
               "Resource": "arn:aws:sagemaker:$REGION:$ACCOUNT_ID:endpoint/*"
           }
       ]
   }
   EOF
   
   aws iam put-role-policy --role-name DATASCIENTIST_ROLE_NAME --policy-name HyperPodDeploymentUIAccessInlinePolicy --policy-document file://hyperpod-deployment-ui-access-policy.json
   ```

1. Crea una voce di accesso EKS per l’utente che lo mappa a un gruppo Kubernetes.

   ```
   %%bash -x
   
   aws eks create-access-entry --cluster-name $EKS_CLUSTER_NAME \
       --principal-arn "arn:aws:iam::$ACCOUNT_ID:role/$DATASCIENTIST_ROLE_NAME" \
       --kubernetes-groups '["hyperpod-scientist-user-namespace-level","hyperpod-scientist-user-cluster-level"]'
   ```

1. Crea policy RBAC Kubernetes per l’utente.

   ```
   %%bash -x
   
   cat << EOF > cluster_level_config.yaml
   kind: ClusterRole
   apiVersion: rbac.authorization.k8s.io/v1
   metadata:
     name: hyperpod-scientist-user-cluster-role
   rules:
   - apiGroups: [""]
     resources: ["pods"]
     verbs: ["list"]
   - apiGroups: [""]
     resources: ["nodes"]
     verbs: ["list"]
   - apiGroups: [""]
     resources: ["namespaces"]
     verbs: ["list"]
   ---
   apiVersion: rbac.authorization.k8s.io/v1
   kind: ClusterRoleBinding
   metadata:
     name: hyperpod-scientist-user-cluster-role-binding
   subjects:
   - kind: Group
     name: hyperpod-scientist-user-cluster-level
     apiGroup: rbac.authorization.k8s.io
   roleRef:
     kind: ClusterRole
     name: hyperpod-scientist-user-cluster-role
     apiGroup: rbac.authorization.k8s.io
   EOF
   
   
   kubectl apply -f cluster_level_config.yaml
   
   
   cat << EOF > namespace_level_role.yaml
   kind: Role
   apiVersion: rbac.authorization.k8s.io/v1
   metadata:
     namespace: $DATASCIENTIST_HYPERPOD_NAMESPACE
     name: hyperpod-scientist-user-namespace-level-role
   rules:
   - apiGroups: [""]
     resources: ["pods"]
     verbs: ["create", "get"]
   - apiGroups: [""]
     resources: ["nodes"]
     verbs: ["get", "list"]
   - apiGroups: [""]
     resources: ["pods/log"]
     verbs: ["get", "list"]
   - apiGroups: [""]
     resources: ["pods/exec"]
     verbs: ["get", "create"]
   - apiGroups: ["kubeflow.org"]
     resources: ["pytorchjobs", "pytorchjobs/status"]
     verbs: ["get", "list", "create", "delete", "update", "describe"]
   - apiGroups: [""]
     resources: ["configmaps"]
     verbs: ["create", "update", "get", "list", "delete"]
   - apiGroups: [""]
     resources: ["secrets"]
     verbs: ["create", "get", "list", "delete"]
   - apiGroups: [ "inference.sagemaker.aws.amazon.com" ]
     resources: [ "inferenceendpointconfig", "inferenceendpoint", "jumpstartmodel" ]
     verbs: [ "get", "list", "create", "delete", "update", "describe" ]
   - apiGroups: [ "autoscaling" ]
     resources: [ "horizontalpodautoscalers" ]
     verbs: [ "get", "list", "watch", "create", "update", "patch", "delete" ]
   ---
   apiVersion: rbac.authorization.k8s.io/v1
   kind: RoleBinding
   metadata:
     namespace: $DATASCIENTIST_HYPERPOD_NAMESPACE
     name: hyperpod-scientist-user-namespace-level-role-binding
   subjects:
   - kind: Group
     name: hyperpod-scientist-user-namespace-level
     apiGroup: rbac.authorization.k8s.io
   roleRef:
     kind: Role
     name: hyperpod-scientist-user-namespace-level-role
     apiGroup: rbac.authorization.k8s.io
   EOF
   
   
   kubectl apply -f namespace_level_role.yaml
   ```

# Implementazione di modelli di fondazione e di modelli ottimizzati con fine-tuning personalizzati
<a name="sagemaker-hyperpod-model-deployment-deploy"></a>

Che tu stia implementando modelli open weight di base preformati o modelli gated di Amazon o i tuoi modelli personalizzati o SageMaker JumpStart ottimizzati archiviati in Amazon S3 FSx o SageMaker HyperPod Amazon, offre l'infrastruttura flessibile e scalabile di cui hai bisogno per i carichi di lavoro di inferenza di produzione.




****  

|  | Implementa modelli di base aperti e controllati da JumpStart | Implementa modelli personalizzati e ottimizzati da Amazon S3 e Amazon FSx | 
| --- | --- | --- | 
| Descrizione |  Implementa da un catalogo completo di modelli di fondazione preaddestrati con policy di ottimizzazione e dimensionamento automatiche personalizzate per ogni famiglia di modelli.  | Crea modelli personalizzati e ottimizzati e sfrutta l'infrastruttura aziendale per l'inferenza su scala di produzione. SageMaker HyperPod Scegli tra uno storage conveniente con Amazon S3 o un file system ad alte prestazioni con Amazon. FSx | 
| Vantaggi principali | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-model-deployment-deploy.html) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-model-deployment-deploy.html)  | 
| Opzioni di implementazione |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-model-deployment-deploy.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-model-deployment-deploy.html)  | 

Le seguenti sezioni illustrano la distribuzione di modelli da Amazon SageMaker JumpStart e da Amazon S3 e Amazon. FSx

**Topics**
+ [Distribuisci modelli JumpStart utilizzando Amazon Studio SageMaker](sagemaker-hyperpod-model-deployment-deploy-js-ui.md)
+ [Distribuisci modelli utilizzando JumpStart kubectl](sagemaker-hyperpod-model-deployment-deploy-js-kubectl.md)
+ [Distribuisci modelli personalizzati e ottimizzati da Amazon S3 e Amazon utilizzando kubectl FSx](sagemaker-hyperpod-model-deployment-deploy-ftm.md)
+ [Implementazione di modelli ottimizzati con fine-tuning personalizzati con Python SDK e HPCLI](deploy-trained-model.md) 
+ [Distribuisci modelli da Amazon SageMaker JumpStart utilizzando Python SDK e HPCLI](deploy-jumpstart-model.md) 

# Distribuisci modelli JumpStart utilizzando Amazon Studio SageMaker
<a name="sagemaker-hyperpod-model-deployment-deploy-js-ui"></a>

I passaggi seguenti illustrano come distribuire modelli JumpStart utilizzando Amazon SageMaker Studio.

## Prerequisiti
<a name="sagemaker-hyperpod-model-deployment-deploy-js-ui-prereqs"></a>

Verifica di aver configurato le funzionalità di inferenza sui tuoi SageMaker HyperPod cluster Amazon. Per ulteriori informazioni, consulta [Configurazione dei HyperPod cluster per l'implementazione dei modelli](sagemaker-hyperpod-model-deployment-setup.md). 

## Crea una distribuzione HyperPod
<a name="sagemaker-hyperpod-model-deployment-deploy-js-ui-create"></a>

1. In Amazon SageMaker Studio, apri la pagina di **JumpStart**destinazione dal riquadro di navigazione a sinistra. 

1. In **Tutti i modelli pubblici**, scegli un modello da implementare.
**Nota**  
Se hai selezionato un modello gated, dovrai accettare il Contratto di licenza con l’utente finale (EULA).

1. Scegli **SageMaker HyperPod**.

1. In **Impostazioni di distribuzione**, JumpStart consiglierà un'istanza per la distribuzione. Se necessario, puoi modificare queste impostazioni.

   1. Se modifichi il **tipo di istanza**, assicurati che sia compatibile con il **HyperPod cluster** scelto. Se non ci sono istanze compatibili, dovrai selezionare un nuovo **HyperPod cluster** o contattare l'amministratore per aggiungere istanze compatibili al cluster.

   1. Per dare priorità all’implementazione del modello, installa il componente aggiuntivo per la governance delle attività, crea allocazioni delle risorse di calcolo e imposta le classificazioni delle attività per la policy del cluster. Una volta completata questa operazione, dovrebbe apparire un’opzione per selezionare una priorità per l’implementazione del modello, che può essere utilizzata per la prelazione di altre implementazioni e attività nel cluster. 

   1. Inserisci il namespace al quale l’amministratore ti ha fornito l’accesso. Potrebbe essere necessario contattare direttamente l’amministratore per ottenere il namespace esatto. Una volta fornito un namespace valido, il pulsante **Implementa** dovrebbe diventare attivo per implementare il modello.

   1. **Se il tipo di istanza è partizionato (abilitato per MIG), seleziona un tipo di partizione GPU.**

   1. Se desideri abilitare il routing L2 KVCache o Intelligent per velocizzare l'inferenza LLM, abilitalo. Per impostazione predefinita, è abilitata solo la cache L1 KV. [Per maggiori dettagli sul KVCache routing intelligente, consulta SageMaker HyperPod Model Deployment.](sagemaker-hyperpod-model-deployment.md)

1. Scegli **Implementa** e attendi la creazione dell’**endpoint**.

1. Dopo aver creato l’**endpoint**, seleziona **Testa inferenza**.

## Modifica una distribuzione HyperPod
<a name="sagemaker-hyperpod-model-deployment-deploy-js-ui-edit"></a>

1. In Amazon SageMaker Studio, seleziona **Compute** e poi **HyperPodCluster dal riquadro** di navigazione a sinistra. 

1. In **Implementazioni**, scegli la distribuzione del HyperPod cluster che desideri modificare.

1. Dall’icona con tre puntini verticali (⋮), scegli **Modifica**.

1. In **Impostazioni di implementazione**, puoi abilitare o disabilitare il **dimensionamento automatico** e modificare il **numero massimo di repliche**.

1. Seleziona **Salva**.

1. Lo **stato** diventa **Aggiornamento in corso**. Quando viene visualizzato di nuovo lo stato **In servizio**, le modifiche sono complete e viene visualizzato un messaggio di conferma.

## Eliminare una distribuzione HyperPod
<a name="sagemaker-hyperpod-model-deployment-deploy-js-ui-delete"></a>

1. In Amazon SageMaker Studio, seleziona **Compute** e poi **HyperPodCluster dal riquadro** di navigazione a sinistra. 

1. In **Implementazioni**, scegli la distribuzione del HyperPod cluster che desideri modificare.

1. Dall’icona con tre puntini verticali (⋮), scegli **Elimina**.

1. Nella **finestra Elimina HyperPod distribuzione**, seleziona la casella di controllo.

1. Scegli **Elimina**.

1. Lo **stato** diventa **Eliminazione in corso**. Una volta eliminata la HyperPod distribuzione, verrà visualizzato un messaggio di conferma.

# Distribuisci modelli utilizzando JumpStart kubectl
<a name="sagemaker-hyperpod-model-deployment-deploy-js-kubectl"></a>

I passaggi seguenti mostrano come distribuire un JumpStart modello in un cluster usando kubectl. HyperPod 

Le istruzioni seguenti contengono celle di codice e comandi progettati per essere eseguiti in un terminale. Assicurati di aver configurato il tuo ambiente con le AWS credenziali prima di eseguire questi comandi. 

## Prerequisiti
<a name="kubectl-prerequisites"></a>

Prima di iniziare, verifica di aver: 
+ Configura funzionalità di inferenza sui tuoi SageMaker HyperPod cluster Amazon. Per ulteriori informazioni, consulta [Configurazione dei HyperPod cluster per l'implementazione dei modelli](sagemaker-hyperpod-model-deployment-setup.md).
+ Installato l’utilità [kubectl](https://kubernetes.io/docs/reference/kubectl/) e configurato [jq](https://jqlang.org/) nel terminale.

## Installazione e configurazione
<a name="kubectl-prerequisites-setup-and-configuration"></a>

1. Scegli la tua Regione.

   ```
   export REGION=<region>
   ```

1. Visualizza tutti i modelli e HyperPod i cluster di hub SageMaker pubblici.

1. Seleziona un `JumpstartModel` da JumpstartPublic Hub. JumpstartPublic hub dispone di un gran numero di modelli, che puoi utilizzare `NextToken` per elencare in modo iterativo tutti i modelli disponibili nell'hub pubblico.

   ```
   aws sagemaker list-hub-contents --hub-name SageMakerPublicHub --hub-content-type Model --query '{Models: HubContentSummaries[].{ModelId:HubContentName,Version:HubContentVersion}, NextToken: NextToken}' --output json
   ```

   ```
   export MODEL_ID="deepseek-llm-r1-distill-qwen-1-5b"
   export MODEL_VERSION="2.0.4"
   ```

1. Configura l’ID del modello e il nome del cluster che hai selezionato nelle variabili seguenti.
**Nota**  
Rivolgiti all’amministratore del cluster per assicurarti di ottenere le autorizzazioni per questo ruolo o utente. Puoi eseguire `!aws sts get-caller-identity --query "Arn"` per verificare quale ruolo o utente stai utilizzando nel terminale.

   ```
   aws sagemaker list-clusters --output table
   
   # Select the cluster name where you want to deploy the model.
   export HYPERPOD_CLUSTER_NAME="<insert cluster name here>"
   
   # Select the instance that is relevant for your model deployment and exists within the selected cluster.
   # List availble instances in your HyperPod cluster
   aws sagemaker describe-cluster --cluster-name=$HYPERPOD_CLUSTER_NAME --query "InstanceGroups[].{InstanceType:InstanceType,Count:CurrentCount}" --output table
   
   # List supported instance types for the selected model
   aws sagemaker describe-hub-content --hub-name SageMakerPublicHub --hub-content-type Model --hub-content-name "$MODEL_ID" --output json | jq -r '.HubContentDocument | fromjson | {Default: .DefaultInferenceInstanceType, Supported: .SupportedInferenceInstanceTypes}'
   
   
   # Select and instance type from the cluster that is compatible with the model. 
   # Make sure that the selected instance is either default or supported instance type for the jumpstart model 
   export INSTANCE_TYPE="<Instance_type_In_cluster"
   ```

1. Rivolgiti all’amministratore del cluster per sapere quale namespace utilizzare. L’amministratore dovrebbe aver creato un account di servizio `hyperpod-inference` nel tuo namespace.

   ```
   export CLUSTER_NAMESPACE="default"
   ```

1. Imposta un nome per l’endpoint e l’oggetto personalizzato da creare.

   ```
   export SAGEMAKER_ENDPOINT_NAME="deepsek-qwen-1-5b-test"
   ```

1. Di seguito è riportato un esempio di implementazione del modello `deepseek-llm-r1-distill-qwen-1-5b` da JumpStart. Crea un file yaml di implementazione simile, basato sul modello selezionato nella fase precedente.
**Nota**  
Se il cluster utilizza il partizionamento GPU con MIG, è possibile richiedere profili MIG specifici aggiungendo il campo alle specifiche del `acceleratorPartitionType` server. Per ulteriori informazioni, consulta [Invio di attività con MIG](sagemaker-hyperpod-eks-gpu-partitioning-task-submission.md).

   ```
   cat << EOF > jumpstart_model.yaml
   ---
   apiVersion: inference.sagemaker.aws.amazon.com/v1
   kind: JumpStartModel
   metadata:
     name: $SAGEMAKER_ENDPOINT_NAME
     namespace: $CLUSTER_NAMESPACE 
   spec:
     sageMakerEndpoint:
       name: $SAGEMAKER_ENDPOINT_NAME
     model:
       modelHubName: SageMakerPublicHub
       modelId: $MODEL_ID
       modelVersion: $MODEL_VERSION
     server:
       instanceType: $INSTANCE_TYPE
       # Optional: Specify GPU partition profile for MIG-enabled instances
       # acceleratorPartitionType: "1g.10gb"
     metrics:
       enabled: true
     environmentVariables:
       - name: SAMPLE_ENV_VAR
         value: "sample_value"
     maxDeployTimeInSeconds: 1800
     autoScalingSpec:
       cloudWatchTrigger:
         name: "SageMaker-Invocations"
         namespace: "AWS/SageMaker"
         useCachedMetrics: false
         metricName: "Invocations"
         targetValue: 10
         minValue: 0.0
         metricCollectionPeriod: 30
         metricStat: "Sum"
         metricType: "Average"
         dimensions:
           - name: "EndpointName"
             value: "$SAGEMAKER_ENDPOINT_NAME"
           - name: "VariantName"
             value: "AllTraffic"
   EOF
   ```

## Distribuzione del modello
<a name="kubectl-deploy-your-model"></a>

**Aggiornamento della configurazione Kubernetes e implementazione del modello**

1. Configura kubectl per la connessione al HyperPod cluster orchestrato da Amazon EKS.

   ```
   export EKS_CLUSTER_NAME=$(aws --region $REGION sagemaker describe-cluster --cluster-name $HYPERPOD_CLUSTER_NAME \
     --query 'Orchestrator.Eks.ClusterArn' --output text | \
     cut -d'/' -f2)
   aws eks update-kubeconfig --name $EKS_CLUSTER_NAME --region $REGION
   ```

1.  JumpStart Implementa il tuo modello.

   ```
   kubectl apply -f jumpstart_model.yaml
   ```

**Monitoraggio dello stato di implementazione del modello**

1. Verifica che il modello sia stato implementato correttamente.

   ```
   kubectl describe JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Verifica che l’endpoint sia stato creato correttamente.

   ```
   aws sagemaker describe-endpoint --endpoint-name=$SAGEMAKER_ENDPOINT_NAME --output table
   ```

1. Invoca l’endpoint del modello. Puoi recuperare in modo programmatico i payload di esempio dall’oggetto `JumpStartModel`.

   ```
   aws sagemaker-runtime invoke-endpoint \
     --endpoint-name $SAGEMAKER_ENDPOINT_NAME \
     --content-type "application/json" \
     --body '{"inputs": "What is AWS SageMaker?"}' \
     --region $REGION \
     --cli-binary-format raw-in-base64-out \
     /dev/stdout
   ```

## Gestione dell’implementazione
<a name="kubectl-manage-your-deployment"></a>

Elimina la distribuzione JumpStart del modello quando non è più necessaria.

```
kubectl delete JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
```

**Risoluzione dei problemi**

Utilizza questi comandi di debug se l’implementazione non funziona come previsto.

1. Controlla lo stato dell’implementazione Kubernetes. Questo comando ispeziona l’oggetto di implementazione Kubernetes sottostante che gestisce i pod che eseguono il modello. Usalo per risolvere i problemi di pianificazione dei pod, allocazione delle risorse e avvio dei container.

   ```
   kubectl describe deployment $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Controlla lo stato della risorsa del JumpStart modello. Questo comando esamina la risorsa `JumpStartModel` personalizzata che gestisce la configurazione generale del modello e il ciclo di vita dell’implementazione. Usalo per risolvere problemi specifici del modello come errori di configurazione o problemi di creazione di endpoint SageMaker AI.

   ```
   kubectl describe JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Controlla lo stato di tutti gli oggetti Kubernetes. Questo comando fornisce una panoramica completa di tutte le risorse correlate a Kubernetes nel tuo namespace. Usalo per un rapido controllo dell’integrità per conoscere lo stato generale dei pod, dei servizi, delle implementazioni e delle risorse personalizzate associati all’implementazione del modello.

   ```
   kubectl get pods,svc,deployment,JumpStartModel,sagemakerendpointregistration -n $CLUSTER_NAMESPACE
   ```

# Distribuisci modelli personalizzati e ottimizzati da Amazon S3 e Amazon utilizzando kubectl FSx
<a name="sagemaker-hyperpod-model-deployment-deploy-ftm"></a>

I passaggi seguenti mostrano come distribuire modelli archiviati su Amazon S3 o Amazon su un cluster FSx SageMaker HyperPod Amazon utilizzando kubectl. 

Le istruzioni seguenti contengono celle di codice e comandi progettati per essere eseguiti in un terminale. Assicurati di aver configurato il tuo ambiente con le AWS credenziali prima di eseguire questi comandi.

## Prerequisiti
<a name="sagemaker-hyperpod-model-deployment-deploy-ftm-prereqs"></a>

Prima di iniziare, verifica di aver: 
+ Configura funzionalità di inferenza sui tuoi SageMaker HyperPod cluster Amazon. Per ulteriori informazioni, consulta [Configurazione dei HyperPod cluster per l'implementazione dei modelli](sagemaker-hyperpod-model-deployment-setup.md).
+ Installato l’utilità [kubectl](https://kubernetes.io/docs/reference/kubectl/) e configurato [jq](https://jqlang.org/) nel terminale.

## Installazione e configurazione
<a name="sagemaker-hyperpod-model-deployment-deploy-ftm-setup"></a>

Sostituisci tutti i valori segnaposto con gli tuoi identificatori delle risorse effettivi.

1. Seleziona la tua Regione nell’ambiente.

   ```
   export REGION=<region>
   ```

1. Inizializza il nome del cluster. Questo identifica il HyperPod cluster in cui verrà distribuito il tuo modello.
**Nota**  
Rivolgiti all’amministratore del cluster per assicurarti di ottenere le autorizzazioni per questo ruolo o utente. Puoi eseguire `!aws sts get-caller-identity --query "Arn"` per verificare quale ruolo o utente stai utilizzando nel terminale.

   ```
   # Specify your hyperpod cluster name here
   HYPERPOD_CLUSTER_NAME="<Hyperpod_cluster_name>"
   
   # NOTE: For sample deployment, we use g5.8xlarge for deepseek-r1 1.5b model which has sufficient memory and GPU
   instance_type="ml.g5.8xlarge"
   ```

1. Inizializza il namespace del cluster. L’amministratore del cluster dovrebbe aver già creato un account di servizio hyperpod-inference nel tuo namespace.

   ```
   cluster_namespace="<namespace>"
   ```

1. Crea una CRD utilizzando una delle seguenti opzioni:

------
#### [ Using Amazon FSx as the model source ]

   1. Imposta un nome per l' SageMaker endpoint.

      ```
      export SAGEMAKER_ENDPOINT_NAME="deepseek15b-fsx"
      ```

   1. Configura l'ID del FSx file system Amazon da utilizzare.

      ```
      export FSX_FILE_SYSTEM_ID="fs-1234abcd"
      ```

   1. Di seguito è riportato un file yaml di esempio per la creazione di un endpoint con Amazon FSx e un modello. DeepSeek 
**Nota**  
Per i cluster con il partizionamento GPU abilitato, sostituiscilo con il nome della risorsa MIG appropriato, `nvidia.com/gpu` ad esempio. `nvidia.com/mig-1g.10gb` Per ulteriori informazioni, consulta [Invio di attività con MIG](sagemaker-hyperpod-eks-gpu-partitioning-task-submission.md).

      ```
      cat <<EOF> deploy_fsx_cluster_inference.yaml
      ---
      apiVersion: inference.sagemaker.aws.amazon.com/v1
      kind: InferenceEndpointConfig
      metadata:
        name: lmcache-test
        namespace: inf-update
      spec:
        modelName: Llama-3.1-8B-Instruct
        instanceType: ml.g5.24xlarge
        invocationEndpoint: v1/chat/completions
        replicas: 2
        modelSourceConfig:
          fsxStorage:
            fileSystemId: $FSX_FILE_SYSTEM_ID
          modelLocation: deepseek-1-5b
          modelSourceType: fsx
        worker:
          environmentVariables:
          - name: HF_MODEL_ID
            value: /opt/ml/model
          - name: SAGEMAKER_PROGRAM
            value: inference.py
          - name: SAGEMAKER_SUBMIT_DIRECTORY
            value: /opt/ml/model/code
          - name: MODEL_CACHE_ROOT
            value: /opt/ml/model
          - name: SAGEMAKER_ENV
            value: '1'
          image: 763104351884.dkr.ecr.us-east-2.amazonaws.com/huggingface-pytorch-tgi-inference:2.4.0-tgi2.3.1-gpu-py311-cu124-ubuntu22.04-v2.0
          modelInvocationPort:
            containerPort: 8080
            name: http
          modelVolumeMount:
            mountPath: /opt/ml/model
            name: model-weights
          resources:
            limits:
              nvidia.com/gpu: 1
              # For MIG-enabled instances, use: nvidia.com/mig-1g.10gb: 1
            requests:
              cpu: 30000m
              memory: 100Gi
              nvidia.com/gpu: 1
              # For MIG-enabled instances, use: nvidia.com/mig-1g.10gb: 1
      EOF
      ```

------
#### [ Using Amazon S3 as the model source ]

   1. Imposta un nome per l'endpoint. SageMaker 

      ```
      export SAGEMAKER_ENDPOINT_NAME="deepseek15b-s3"
      ```

   1. Configura la posizione del bucket Amazon S3 in cui si trova il modello.

      ```
      export S3_MODEL_LOCATION="deepseek-qwen-1-5b"
      ```

   1. Di seguito è riportato un file yaml di esempio per la creazione di un endpoint con Amazon S3 e un modello. DeepSeek 
**Nota**  
Per i cluster con il partizionamento GPU abilitato, sostituiscilo con il nome della risorsa MIG appropriato, ad `nvidia.com/gpu` esempio. `nvidia.com/mig-1g.10gb` Per ulteriori informazioni, consulta [Invio di attività con MIG](sagemaker-hyperpod-eks-gpu-partitioning-task-submission.md).

      ```
      cat <<EOF> deploy_s3_inference.yaml
      ---
      apiVersion: inference.sagemaker.aws.amazon.com/v1alpha1
      kind: InferenceEndpointConfig
      metadata:
        name: $SAGEMAKER_ENDPOINT_NAME
        namespace: $CLUSTER_NAMESPACE
      spec:
        modelName: deepseek15b
        endpointName: $SAGEMAKER_ENDPOINT_NAME
        instanceType: ml.g5.8xlarge
        invocationEndpoint: invocations
        modelSourceConfig:
          modelSourceType: s3
          s3Storage:
            bucketName: $S3_MODEL_LOCATION
            region: $REGION
          modelLocation: deepseek15b
          prefetchEnabled: true
        worker:
          resources:
            limits:
              nvidia.com/gpu: 1
              # For MIG-enabled instances, use: nvidia.com/mig-1g.10gb: 1
            requests:
              nvidia.com/gpu: 1
              # For MIG-enabled instances, use: nvidia.com/mig-1g.10gb: 1
              cpu: 25600m
              memory: 102Gi
          image: 763104351884.dkr.ecr.us-east-2.amazonaws.com/djl-inference:0.32.0-lmi14.0.0-cu124
          modelInvocationPort:
            containerPort: 8000
            name: http
          modelVolumeMount:
            name: model-weights
            mountPath: /opt/ml/model
          environmentVariables:
            - name: PYTHONHASHSEED
              value: "123"
            - name: OPTION_ROLLING_BATCH
              value: "vllm"
            - name: SERVING_CHUNKED_READ_TIMEOUT
              value: "480"
            - name: DJL_OFFLINE
              value: "true"
            - name: NUM_SHARD
              value: "1"
            - name: SAGEMAKER_PROGRAM
              value: "inference.py"
            - name: SAGEMAKER_SUBMIT_DIRECTORY
              value: "/opt/ml/model/code"
            - name: MODEL_CACHE_ROOT
              value: "/opt/ml/model"
            - name: SAGEMAKER_MODEL_SERVER_WORKERS
              value: "1"
            - name: SAGEMAKER_MODEL_SERVER_TIMEOUT
              value: "3600"
            - name: OPTION_TRUST_REMOTE_CODE
              value: "true"
            - name: OPTION_ENABLE_REASONING
              value: "true"
            - name: OPTION_REASONING_PARSER
              value: "deepseek_r1"
            - name: SAGEMAKER_CONTAINER_LOG_LEVEL
              value: "20"
            - name: SAGEMAKER_ENV
              value: "1"
            - name: MODEL_SERVER_TYPE
              value: "vllm"
            - name: SESSION_KEY
              value: "x-user-id"
      EOF
      ```

------
#### [ Using Amazon S3 as the model source ]

   1. Imposta un nome per l'endpoint. SageMaker 

      ```
      export SAGEMAKER_ENDPOINT_NAME="deepseek15b-s3"
      ```

   1. Configura la posizione del bucket Amazon S3 in cui si trova il modello.

      ```
      export S3_MODEL_LOCATION="deepseek-qwen-1-5b"
      ```

   1. Di seguito è riportato un file yaml di esempio per la creazione di un endpoint con Amazon S3 e un modello. DeepSeek 

      ```
      cat <<EOF> deploy_s3_inference.yaml
      ---
      apiVersion: inference.sagemaker.aws.amazon.com/v1
      kind: InferenceEndpointConfig
      metadata:
        name: lmcache-test
        namespace: inf-update
      spec:
        modelName: Llama-3.1-8B-Instruct
        instanceType: ml.g5.24xlarge
        invocationEndpoint: v1/chat/completions
        replicas: 2
        modelSourceConfig:
          modelSourceType: s3
          s3Storage:
            bucketName: bugbash-ada-resources
            region: us-west-2
          modelLocation: models/Llama-3.1-8B-Instruct
          prefetchEnabled: false
        kvCacheSpec:
          enableL1Cache: true
      #    enableL2Cache: true
      #    l2CacheSpec:
      #      l2CacheBackend: redis/sagemaker
      #      l2CacheLocalUrl: redis://redis.redis-system.svc.cluster.local:6379
        intelligentRoutingSpec:
          enabled: true
        tlsConfig:
          tlsCertificateOutputS3Uri: s3://sagemaker-lmcache-fceb9062-tls-6f6ee470
        metrics:
          enabled: true
          modelMetrics:
            port: 8000
        loadBalancer:
          healthCheckPath: /health
        worker:
          resources:
            limits:
              nvidia.com/gpu: "4"
            requests:
              cpu: "6"
              memory: 30Gi
              nvidia.com/gpu: "4"
          image: lmcache/vllm-openai:latest
          args:
            - "/opt/ml/model"
            - "--max-model-len"
            - "20000"
            - "--tensor-parallel-size"
            - "4"
          modelInvocationPort:
            containerPort: 8000
            name: http
          modelVolumeMount:
            name: model-weights
            mountPath: /opt/ml/model
          environmentVariables:
            - name: PYTHONHASHSEED
              value: "123"
            - name: OPTION_ROLLING_BATCH
              value: "vllm"
            - name: SERVING_CHUNKED_READ_TIMEOUT
              value: "480"
            - name: DJL_OFFLINE
              value: "true"
            - name: NUM_SHARD
              value: "1"
            - name: SAGEMAKER_PROGRAM
              value: "inference.py"
            - name: SAGEMAKER_SUBMIT_DIRECTORY
              value: "/opt/ml/model/code"
            - name: MODEL_CACHE_ROOT
              value: "/opt/ml/model"
            - name: SAGEMAKER_MODEL_SERVER_WORKERS
              value: "1"
            - name: SAGEMAKER_MODEL_SERVER_TIMEOUT
              value: "3600"
            - name: OPTION_TRUST_REMOTE_CODE
              value: "true"
            - name: OPTION_ENABLE_REASONING
              value: "true"
            - name: OPTION_REASONING_PARSER
              value: "deepseek_r1"
            - name: SAGEMAKER_CONTAINER_LOG_LEVEL
              value: "20"
            - name: SAGEMAKER_ENV
              value: "1"
            - name: MODEL_SERVER_TYPE
              value: "vllm"
            - name: SESSION_KEY
              value: "x-user-id"
      EOF
      ```

------

## Configura la memorizzazione nella cache KV e il routing intelligente per migliorare le prestazioni
<a name="sagemaker-hyperpod-model-deployment-deploy-ftm-cache-route"></a>

1. Abilita la memorizzazione nella cache KV impostando `enableL1Cache` e `enableL2Cache` su `true` .Quindi, imposta `redis` e aggiorna `l2CacheLocalUrl` con l'URL del `l2CacheSpec` cluster Redis.

   ```
     kvCacheSpec:
       enableL1Cache: true
       enableL2Cache: true
       l2CacheSpec:
         l2CacheBackend: <redis | tieredstorage>
         l2CacheLocalUrl: <redis cluster URL if l2CacheBackend is redis >
   ```
**Nota**  
Se il cluster redis non si trova all'interno dello stesso Amazon VPC HyperPod del cluster, la crittografia dei dati in transito non è garantita.
**Nota**  
Non è necessario l2 CacheLocalUrl se è selezionato lo storage su più livelli.

1. Abilita il routing intelligente impostando su under. `enabled` `true` `intelligentRoutingSpec` È possibile specificare la strategia di routing da utilizzare. `routingStrategy` Se non viene specificata alcuna strategia di routing, l'impostazione predefinita è. `prefixaware`

   ```
   intelligentRoutingSpec:
       enabled: true
       routingStrategy: <routing strategy to use>
   ```

1. Abilita le metriche del router e le metriche di memorizzazione nella cache impostando su under. `enabled` `true` `metrics` Il `port` valore deve essere lo stesso del valore inferiore. `containerPort` `modelInvocationPort`

   ```
   metrics:
       enabled: true
       modelMetrics:
         port: <port value>
       ...
       modelInvocationPort:
         containerPort: <port value>
   ```

## Implementa il tuo modello da Amazon S3 o Amazon FSx
<a name="sagemaker-hyperpod-model-deployment-deploy-ftm-deploy"></a>

1. Ottieni il nome del cluster Amazon EKS dall'ARN del HyperPod cluster per l'autenticazione kubectl.

   ```
   export EKS_CLUSTER_NAME=$(aws --region $REGION sagemaker describe-cluster --cluster-name $HYPERPOD_CLUSTER_NAME \
     --query 'Orchestrator.Eks.ClusterArn' --output text | \
     cut -d'/' -f2)
   aws eks update-kubeconfig --name $EKS_CLUSTER_NAME --region $REGION
   ```

1. Implementa il tuo InferenceEndpointConfig modello con una delle seguenti opzioni:

------
#### [ Deploy with Amazon FSx as a source ]

   ```
   kubectl apply -f deploy_fsx_luster_inference.yaml
   ```

------
#### [ Deploy with Amazon S3 as a source ]

   ```
   kubectl apply -f deploy_s3_inference.yaml
   ```

------

## Verifica dello stato dell’implementazione
<a name="sagemaker-hyperpod-model-deployment-deploy-ftm-verify"></a>

1. Verifica se il modello è stato implementato correttamente.

   ```
   kubectl describe InferenceEndpointConfig $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Verifica che l’endpoint sia stato creato correttamente.

   ```
   kubectl describe SageMakerEndpointRegistration $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Testa l’endpoint implementato per verificare che funzioni correttamente. Questa fase conferma che il modello è stato implementato correttamente e può elaborare le richieste di inferenza.

   ```
   aws sagemaker-runtime invoke-endpoint \
     --endpoint-name $SAGEMAKER_ENDPOINT_NAME \
     --content-type "application/json" \
     --body '{"inputs": "What is AWS SageMaker?"}' \
     --region $REGION \
     --cli-binary-format raw-in-base64-out \
     /dev/stdout
   ```

## Gestione dell’implementazione
<a name="sagemaker-hyperpod-model-deployment-deploy-ftm-manage"></a>

Al termine dei test sull’implementazione, utilizza i comandi seguenti per pulire le risorse.

**Nota**  
Verifica di non aver più bisogno del modello implementato o dei dati archiviati prima di procedere.

**Pulizia delle risorse**

1. Elimina l’implementazione dell’inferenza e le risorse Kubernetes associate. Ciò interrompe l'esecuzione dei contenitori del modello e rimuove l' SageMakerendpoint.

   ```
   kubectl delete inferenceendpointconfig $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Verifica che la pulizia sia stata eseguita correttamente.

   ```
   # # Check that Kubernetes resources are removed
   kubectl get pods,svc,deployment,InferenceEndpointConfig,sagemakerendpointregistration -n $CLUSTER_NAMESPACE
   ```

   ```
   # Verify SageMaker endpoint is deleted (should return error or empty)
   aws sagemaker describe-endpoint --endpoint-name $SAGEMAKER_ENDPOINT_NAME --region $REGION
   ```

**Risoluzione dei problemi**

Utilizza questi comandi di debug se l’implementazione non funziona come previsto.

1. Controlla lo stato dell’implementazione di Kubernetes.

   ```
   kubectl describe deployment $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Controlla lo InferenceEndpointConfig stato per vedere lo stato di implementazione di alto livello e gli eventuali problemi di configurazione.

   ```
   kubectl describe InferenceEndpointConfig $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Controlla lo stato di tutti gli oggetti Kubernetes. Ottieni una visione completa di tutte le risorse Kubernetes correlate nel tuo namespace. Questa funzionalità ti offre una panoramica rapida su tutto ciò che è in esecuzione e sugli eventuali elementi mancanti.

   ```
   kubectl get pods,svc,deployment,InferenceEndpointConfig,sagemakerendpointregistration -n $CLUSTER_NAMESPACE
   ```

# Politiche di scalabilità automatica per l'implementazione del modello di inferenza HyperPod
<a name="sagemaker-hyperpod-model-deployment-autoscaling"></a>

Le seguenti informazioni forniscono esempi pratici e configurazioni per l'implementazione di politiche di scalabilità automatica nelle implementazioni di modelli di inferenza Amazon SageMaker HyperPod . 

Scoprirai come configurare il dimensionamento automatico utilizzando `autoScalingSpec` integrato nei file YAML di implementazione e come creare configurazioni `ScaledObject` KEDA standalone per scenari di dimensionamento avanzati. Gli esempi riguardano i trigger di scalabilità basati su CloudWatch parametri, lunghezze delle code di Amazon SQS, query Prometheus e parametri di utilizzo delle risorse come CPU e memoria. 

## Utilizzo di YAML nella distribuzione autoScalingSpec
<a name="sagemaker-hyperpod-model-deployment-autoscaling-yaml"></a>

Amazon SageMaker HyperPod Inference Operator offre funzionalità di scalabilità automatica integrate per le implementazioni di modelli utilizzando i parametri di CloudWatch Amazon Managed Prometheus (AMP). Il file YAML di implementazione di esempio seguente include una sezione `autoScalingSpec` che definisce i valori di configurazione per scalare l’implementazione del modello.

```
apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: JumpStartModel
metadata:
  name: deepseek-sample624
  namespace: ns-team-a
spec:
  sageMakerEndpoint:
    name: deepsek7bsme624
  model:
    modelHubName: SageMakerPublicHub
    modelId: deepseek-llm-r1-distill-qwen-1-5b
    modelVersion: 2.0.4
  server:
    instanceType: ml.g5.8xlarge
  metrics:
    enabled: true
  environmentVariables:
    - name: SAMPLE_ENV_VAR
      value: "sample_value"
  maxDeployTimeInSeconds: 1800
  tlsConfig:
    tlsCertificateOutputS3Uri: "s3://{USER}-tls-bucket-{REGION}/certificates"
  autoScalingSpec:
    minReplicaCount: 0
    maxReplicaCount: 5
    pollingInterval: 15
    initialCooldownPeriod: 60
    cooldownPeriod: 120
    scaleDownStabilizationTime: 60
    scaleUpStabilizationTime: 0
    cloudWatchTrigger:
        name: "SageMaker-Invocations"
        namespace: "AWS/SageMaker"
        useCachedMetrics: false
        metricName: "Invocations"
        targetValue: 10.5
        activationTargetValue: 5.0
        minValue: 0.0
        metricCollectionStartTime: 300
        metricCollectionPeriod: 30
        metricStat: "Sum"
        metricType: "Average"
        dimensions:
          - name: "EndpointName"
            value: "deepsek7bsme624"
          - name: "VariantName"
            value: "AllTraffic"
    prometheusTrigger: 
        name: "Prometheus-Trigger"
        useCachedMetrics: false
        serverAddress: http://<prometheus-host>:9090
        query: sum(rate(http_requests_total{deployment="my-deployment"}[2m]))
        targetValue: 10.0
        activationTargetValue: 5.0
        namespace: "namespace"
        customHeaders: "X-Client-Id=cid"
        metricType: "Value"
```

### Spiegazione dei campi utilizzati nel file YAML di implementazione
<a name="sagemaker-hyperpod-model-deployment-autoscaling-fields"></a>

`minReplicaCount` (Facoltativo, Numero intero)  
Specifica il numero minimo di repliche di implementazione del modello da mantenere nel cluster. Durante gli eventi di riduzione verticale, l’implementazione si riduce fino al numero minimo di pod indicato. Il valore deve essere maggiore o uguale a 0. Default: 1.

`maxReplicaCount` (Facoltativo, Numero intero)  
Specifica il numero massimo di repliche di implementazione del modello da mantenere nel cluster. Il valore deve essere maggiore o uguale a `minReplicaCount`. Durante gli eventi di aumento verticale, l’implementazione aumenta fino al numero massimo di pod indicato. Impostazione predefinita: 5.

`pollingInterval` (Facoltativo, Numero intero)  
L’intervallo di tempo in secondi per le query sulle metriche. Minimo: 0 Valore predefinito: 30 secondi.

`cooldownPeriod` (Facoltativo, Numero intero)  
Il tempo di attesa in secondi prima di passare da 1 a 0 pod durante un evento di riduzione verticale. Si applica solo quando `minReplicaCount` è impostato su 0. Minimo: 0 Impostazione predefinita: 300 secondi.

`initialCooldownPeriod` (Facoltativo, Numero intero)  
Il tempo di attesa in secondi prima di passare da 1 a 0 pod durante l’implementazione iniziale. Si applica solo quando `minReplicaCount` è impostato su 0. Minimo: 0 Impostazione predefinita: 300 secondi.

`scaleDownStabilizationTime` (Facoltativo, Numero intero)  
La finestra temporale di stabilizzazione in secondi tra l’attivazione di un trigger di riduzione verticale e l’effettiva riduzione verticale. Minimo: 0 Impostazione predefinita: 300 secondi.

`scaleUpStabilizationTime` (Facoltativo, Numero intero)  
La finestra temporale di stabilizzazione in secondi tra l’attivazione di un trigger di aumento verticale e l’effettivo aumento verticale. Minimo: 0 Impostazione predefinita: 0 secondi.

`cloudWatchTrigger`  
La configurazione di attivazione per le metriche utilizzate nelle decisioni di scalabilità automatica. CloudWatch In `cloudWatchTrigger` sono disponibili i seguenti campi:  
+ `name`(Facoltativo, stringa): nome del trigger. CloudWatch Se non viene fornito, utilizza il formato predefinito: < model-deployment-name >-scaled-object-cloudwatch-trigger.
+ `useCachedMetrics` (Facoltativo, Booleano): determina se memorizzare nella cache le metriche richieste da KEDA. KEDA esegue query sulle metriche utilizzando pollingInterval, mentre Horizontal Pod Autoscaler (HPA) richiede le metriche da KEDA ogni 15 secondi. Se impostata su true, le metriche sottoposte a query vengono memorizzate nella cache e utilizzate per soddisfare le richieste HPA. Default: true.
+ `namespace`(Obbligatorio, String) - Lo spazio dei CloudWatch nomi per la metrica da interrogare.
+ `metricName`(Obbligatorio, String): il nome della metrica. CloudWatch 
+ `dimensions` (Facoltativo, Elenco): l’elenco delle dimensioni per la metrica. Ogni dimensione include un nome (nome della dimensione - Stringa) e un valore (valore della dimensione - Stringa).
+ `targetValue`(Obbligatorio, Float): il valore target per la CloudWatch metrica utilizzata nelle decisioni di scalabilità automatica.
+ `activationTargetValue`(Facoltativo, Float): il valore target per la CloudWatch metrica utilizzata durante la scalatura da 0 a 1 pod. Si applica solo quando `minReplicaCount` è impostato su 0. Impostazione predefinita: 0.
+ `minValue`(Facoltativo, Float): il valore da utilizzare quando la CloudWatch query non restituisce dati. Impostazione predefinita: 0.
+ `metricCollectionStartTime`(Facoltativo, Integer): l'ora di inizio della query metrica, calcolata come T-Time. metricCollectionStart Deve essere maggiore o uguale a. metricCollectionPeriod Impostazione predefinita: 300 secondi.
+ `metricCollectionPeriod` (Facoltativo, Numero intero): la durata della query della metrica in secondi. Deve essere un valore CloudWatch supportato (1, 5, 10, 30 o un multiplo di 60). Impostazione predefinita: 300 secondi.
+ `metricStat`(Facoltativo, String): il tipo di statistica per la CloudWatch query. Default: `Average`.
+ `metricType` (Facoltativo, Stringa): definisce il modo in cui la metrica viene utilizzata per i calcoli di dimensionamento. Default: `Average`. Valori consentiti: `Average` e `Value`.
  + **Media**: repliche desiderate = ceil (valore metrica)/(targetValue)
  + **Valore**: repliche desiderate = (repliche correnti) × ceil (valore metrica)/(targetValue)

`prometheusTrigger`  
La configurazione dei trigger per le metriche di Amazon Managed Prometheus (AMP) utilizzate nelle decisioni di dimensionamento automatico. In `prometheusTrigger` sono disponibili i seguenti campi:  
+ `name`(Facoltativo, String): nome del CloudWatch trigger. Se non viene fornito, utilizza il formato predefinito: < model-deployment-name >-scaled-object-cloudwatch-trigger.
+ `useCachedMetrics` (Facoltativo, Booleano): determina se memorizzare nella cache le metriche richieste da KEDA. KEDA esegue query sulle metriche utilizzando pollingInterval, mentre Horizontal Pod Autoscaler (HPA) richiede le metriche da KEDA ogni 15 secondi. Se impostata su true, le metriche sottoposte a query vengono memorizzate nella cache e utilizzate per soddisfare le richieste HPA. Default: true.
+ `serverAddress` (Obbligatorio, Stringa): l’indirizzo del server AMP. È necessario utilizzare il formato: <https://aps-workspaces.<region>.amazonaws.com/workspaces/<workspace\$1id>
+ `query` (Obbligatorio, Stringa): la query PromQL utilizzata per la metrica. Deve restituire un valore scalare.
+ `targetValue`(Obbligatorio, Float): il valore target per la CloudWatch metrica utilizzata nelle decisioni di scalabilità automatica.
+ `activationTargetValue`(Facoltativo, Float): il valore target per la CloudWatch metrica utilizzata durante la scalatura da 0 a 1 pod. Si applica solo quando `minReplicaCount` è impostato su 0. Impostazione predefinita: 0.
+ `namespace` (Facoltativo, Stringa): il namespace da utilizzare per le query con namespace. Impostazione predefinita: stringa vuota (`""`).
+ `customHeaders` (Facoltativo, Stringa): intestazioni personalizzate da includere quando si esegue una query sull’endpoint Prometheus. Impostazione predefinita: stringa vuota (“”).
+ `metricType` (Facoltativo, Stringa): definisce il modo in cui la metrica viene utilizzata per i calcoli di dimensionamento. Default: `Average`. Valori consentiti: `Average` e `Value`.
  + **Media**: repliche desiderate = ceil (valore metrica)/(targetValue)
  + **Valore**: repliche desiderate = (repliche correnti) × ceil (valore metrica)/(targetValue)

## Utilizzo delle definizioni yaml KEDA ScaledObject tramite kubectl
<a name="sagemaker-hyperpod-model-deployment-autoscaling-kubectl"></a>

Oltre a configurare la scalabilità automatica tramite la autoScalingSpec sezione YAML della distribuzione, è possibile creare e applicare definizioni KEDA YAML autonome utilizzando kubectl. `ScaledObject`

Questo approccio offre una maggiore flessibilità in scenari di dimensionamento complessi e consente di gestire le policy di dimensionamento automatico indipendentemente dalle implementazioni dei modelli. `ScaledObject`Le configurazioni KEDA supportano un'[ampia gamma di trigger di scalabilità tra cui metriche](https://keda.sh/docs/2.17/scalers/), lunghezze delle code Amazon SQS CloudWatch , query Prometheus e metriche basate sulle risorse come l'utilizzo della CPU e della memoria. È possibile applicare queste configurazioni alle implementazioni di modelli esistenti facendo riferimento al nome della distribuzione nella sezione delle specifiche. scaleTargetRef ScaledObject 

**Nota**  
Assicurati che il ruolo di operatore keda fornito durante l'installazione dell'operatore HyperPod Inference disponga delle autorizzazioni adeguate per interrogare le metriche definite nei trigger degli oggetti in scala.

### CloudWatch metriche
<a name="sagemaker-hyperpod-model-deployment-autoscaling-kubectl-cw"></a>

La seguente policy KEDA yaml utilizza le CloudWatch metriche come trigger per eseguire la scalabilità automatica su una distribuzione Kubernetes. La policy esegue query sul numero di invocazioni per un endpoint SageMaker e dimensiona il numero di pod di implementazione. [L'elenco completo dei parametri supportati da KEDA per il trigger è disponibile all'indirizzo https://keda. `aws-cloudwatch` sh/docs/2.17/scalers/aws](https://keda.sh/docs/2.17/scalers/aws-cloudwatch/)-cloudwatch/.

```
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: invocations-scaledobject # name of the scaled object that will be created by this
  namespace: ns-team-a # namespace that this scaled object targets
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: $DEPLOYMENT_NAME # name of the model deployment
  minReplicaCount: 1 # minimum number of pods to be maintained
  maxReplicaCount: 4 # maximum number of pods to scale to
  pollingInterval: 10
  triggers:
  - type: aws-cloudwatch
    metadata:
      namespace: AWS/SageMaker
      metricName: Invocations
      targetMetricValue: "1"
      minMetricValue: "1"
      awsRegion: "us-west-2"
      dimensionName: EndpointName;VariantName
      dimensionValue: $ENDPOINT_NAME;$VARIANT_NAME
      metricStatPeriod: "30" # seconds
      metricStat: "Sum"
      identityOwner: operator
```

### Metriche Amazon SQS
<a name="sagemaker-hyperpod-model-deployment-autoscaling-kubectl-sqs"></a>

La policy yaml KEDA seguente utilizza le metriche di Amazon SQS come trigger per eseguire il dimensionamento automatico su un’implementazione Kubernetes. La policy esegue query sul numero di invocazioni per un endpoint SageMaker e dimensiona il numero di pod di implementazione. [L'elenco completo dei parametri supportati da KEDA per il `aws-cloudwatch` trigger è disponibile all'indirizzo https://keda. sh/docs/2.17/scalers/aws](https://keda.sh/docs/2.17/scalers/aws-sqs/)-sqs/.

```
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: invocations-scaledobject # name of the scaled object that will be created by this
  namespace: ns-team-a # namespace that this scaled object targets
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: $DEPLOYMENT_NAME # name of the model deployment
  minReplicaCount: 1 # minimum number of pods to be maintained
  maxReplicaCount: 4 # maximum number of pods to scale to
  pollingInterval: 10
  triggers:
  - type: aws-sqs-queue
    metadata:
      queueURL: https://sqs.eu-west-1.amazonaws.com/account_id/QueueName
      queueLength: "5"  # Default: "5"
      awsRegion: "us-west-1"
      scaleOnInFlight: true
      identityOwner: operator
```

### Parametri Prometheus
<a name="sagemaker-hyperpod-model-deployment-autoscaling-kubectl-prometheus"></a>

La policy yaml KEDA seguente utilizza le metriche di Prometheus come trigger per eseguire il dimensionamento automatico su un’implementazione Kubernetes. La policy esegue query sul numero di invocazioni per un endpoint SageMaker e dimensiona il numero di pod di implementazione. [L'elenco completo dei parametri supportati da KEDA per il `aws-cloudwatch` trigger è disponibile all'indirizzo https://keda. sh/docs/2.17/scalers/prometheus](https://keda.sh/docs/2.17/scalers/prometheus/)/.

```
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: invocations-scaledobject # name of the scaled object that will be created by this
  namespace: ns-team-a # namespace that this scaled object targets
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: $DEPLOYMENT_NAME # name of the model deployment
  minReplicaCount: 1 # minimum number of pods to be maintained
  maxReplicaCount: 4 # maximum number of pods to scale to
  pollingInterval: 10
  triggers:
  - type: prometheus
    metadata:
      serverAddress: http://<prometheus-host>:9090
      query: avg(rate(http_requests_total{deployment="$DEPLOYMENT_NAME"}[2m])) # Note: query must return a vector/scalar single element response
      threshold: '100.50'
      namespace: example-namespace  # for namespaced queries, eg. Thanos
      customHeaders: X-Client-Id=cid,X-Tenant-Id=tid,X-Organization-Id=oid # Optional. Custom headers to include in query. In case of auth header, use the custom authentication or relevant authModes.
      unsafeSsl: "false" #  Default is `false`, Used for skipping certificate check when having self-signed certs for Prometheus endpoint    
      timeout: 1000 # Custom timeout for the HTTP client used in this scaler
      identityOwner: operator
```

### Parametri CPU
<a name="sagemaker-hyperpod-model-deployment-autoscaling-kubectl-cpu"></a>

La policy yaml KEDA seguente utilizza le metriche cpu come trigger per eseguire il dimensionamento automatico su un’implementazione Kubernetes. La policy esegue query sul numero di invocazioni per un endpoint SageMaker e dimensiona il numero di pod di implementazione. L'elenco completo dei parametri supportati da KEDA per il `aws-cloudwatch` trigger è disponibile all'[indirizzo https://keda. sh/docs/2.17/scalers/prometheus](https://keda.sh/docs/2.17/scalers/prometheus/)/.

```
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: invocations-scaledobject # name of the scaled object that will be created by this
  namespace: ns-team-a # namespace that this scaled object targets
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: $DEPLOYMENT_NAME # name of the model deployment
  minReplicaCount: 1 # minimum number of pods to be maintained
  maxReplicaCount: 4 # maximum number of pods to scale to
  pollingInterval: 10
  triggers:
  - type: cpu
    metricType: Utilization # Allowed types are 'Utilization' or 'AverageValue'
    metadata:
        value: "60"
        containerName: "" # Optional. You can use this to target a specific container
```

### Parametri della memoria
<a name="sagemaker-hyperpod-model-deployment-autoscaling-kubectl-memory"></a>

La policy yaml KEDA seguente utilizza la query delle metriche Prometheus come trigger per eseguire il dimensionamento automatico su un’implementazione Kubernetes. La policy esegue query sul numero di invocazioni per un endpoint SageMaker e dimensiona il numero di pod di implementazione. L'elenco completo dei parametri supportati da KEDA per il `aws-cloudwatch` trigger è disponibile all'[indirizzo https://keda. sh/docs/2.17/scalers/prometheus](https://keda.sh/docs/2.17/scalers/prometheus/)/.

```
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: invocations-scaledobject # name of the scaled object that will be created by this
  namespace: ns-team-a # namespace that this scaled object targets
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: $DEPLOYMENT_NAME # name of the model deployment
  minReplicaCount: 1 # minimum number of pods to be maintained
  maxReplicaCount: 4 # maximum number of pods to scale to
  pollingInterval: 10
  triggers:
  - type: memory
    metricType: Utilization # Allowed types are 'Utilization' or 'AverageValue'
    metadata:
        value: "60"
        containerName: "" # Optional. You can use this to target a specific container in a pod
```

## Policy Prometheus di esempio per la riduzione verticale a 0 pod
<a name="sagemaker-hyperpod-model-deployment-autoscaling-kubectl-sample"></a>

La policy yaml KEDA seguente utilizza la query delle metriche Prometheus come trigger per eseguire il dimensionamento automatico su un’implementazione Kubernetes. Questa policy utilizza `minReplicaCount` pari a 0 che consente a KEDA di ridurre verticalmente l’implementazione fino a 0 pod. Quando `minReplicaCount` è impostato su 0, è necessario fornire un criterio di attivazione per far apparire il primo pod, dopo che i pod sono stati ridotti verticalmente a 0. Per il trigger Prometheus, questo valore è fornito da `activationThreshold`. Per la coda SQS, il valore proviene da `activationQueueLength`.

**Nota**  
Quando utilizzi `minReplicaCount` pari a 0, assicurati che l’attivazione non dipenda da una metrica generata dai pod. Quando i pod vengono ridotti verticalmente a 0, tale metrica non verrà mai generata e i pod non verranno più aumentati verticalmente.

```
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
  name: invocations-scaledobject # name of the scaled object that will be created by this
  namespace: ns-team-a # namespace that this scaled object targets
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: $DEPLOYMENT_NAME # name of the model deployment
  minReplicaCount: 0 # minimum number of pods to be maintained
  maxReplicaCount: 4 # maximum number of pods to scale to
  pollingInterval: 10
  cooldownPeriod:  30
  initialCooldownPeriod:  180 # time before scaling down the pods after initial deployment
  triggers:
  - type: prometheus
    metadata:
      serverAddress: http://<prometheus-host>:9090
      query: sum(rate(http_requests_total{deployment="my-deployment"}[2m])) # Note: query must return a vector/scalar single element response
      threshold: '100.50'
      activationThreshold: '5.5' # Required if minReplicaCount is 0 for initial scaling
      namespace: example-namespace
      timeout: 1000
      identityOwner: operator
```

**Nota**  
I trigger della CPU e della memoria possono essere ridotti a 0 solo quando viene definito almeno uno scaler aggiuntivo non di tipo CPU o memoria (ad esempio SQS \$1 CPU o Prometheus \$1 CPU). 

# Implementazione dell'osservabilità inferenziale sui cluster HyperPod
<a name="sagemaker-hyperpod-model-deployment-observability"></a>

Amazon SageMaker HyperPod offre funzionalità complete di osservabilità dell'inferenza che consentono ai data scientist e agli ingegneri di machine learning di monitorare e ottimizzare i modelli distribuiti. [https://prometheus.io/](https://prometheus.io/)

Con le metriche abilitate per impostazione predefinita, la piattaforma acquisisce i dati essenziali sulle prestazioni del modello, tra cui latenza di invocazione, richieste simultanee, tassi di errore e metriche a livello di token, fornendo al contempo endpoint Prometheus standard per i clienti che preferiscono implementare soluzioni di osservabilità personalizzate.

**Nota**  
Questo argomento contiene un'analisi approfondita dell'implementazione dell'osservabilità inferenziale sui cluster. HyperPod Per una panoramica più generale, consulta [Osservabilità di cluster e attività](sagemaker-hyperpod-eks-cluster-observability-cluster.md).

Questa guida fornisce step-by-step istruzioni per implementare e utilizzare l'osservabilità inferenziale sui cluster. HyperPod Scoprirai come configurare le metriche nei file YAML di implementazione, accedere alle dashboard di monitoraggio in base al tuo ruolo (amministratore, Data Scientist o ingegnere di machine learning), integrarti con soluzioni di osservabilità personalizzate che utilizzano gli endpoint Prometheus e risolvere i problemi di monitoraggio più comuni.

## Metriche di inferenza supportate
<a name="sagemaker-hyperpod-model-deployment-observability-metrics"></a>

**Parametri di invocazione**

Queste metriche acquisiscono i dati di richiesta e risposta per l’inferenza del modello, fornendo una visibilità universale indipendentemente dal tipo di modello o dal framework di servizio. Quando le metriche di inferenza sono abilitate, queste metriche vengono calcolate al momento dell’invocazione ed esportate nell’infrastruttura di monitoraggio.
+ `model_invocations_total`: numero totale di richieste di invocazione al modello 
+ `model_errors_total`: numero totale di errori durante l’invocazione del modello
+ `model_concurrent_requests`: richieste di modelli simultanee attive
+ `model_latency_milliseconds`: latenza di invocazione del modello in millisecondi
+ `model_ttfb_milliseconds`: latenza del tempo al primo byte (Time To First Byte, TTFB) del modello in millisecondi

**Metriche del container del modello**

Queste metriche forniscono informazioni approfondite sulle operazioni interne dei container del modello, tra cui l’elaborazione dei token, la gestione delle code e gli indicatori di prestazione specifici del framework. Le metriche disponibili dipendono dal framework di servizio del modello:
+ [Metriche dei container TGI](https://huggingface.co/docs/text-generation-inference/en/reference/metrics) 
+ [Metriche dei container LMI](https://github.com/deepjavalibrary/djl-serving/blob/master/prometheus/README.md) 

**Dimensioni metrica**

Tutte le metriche di inferenza includono etichette complete che consentono di filtrare e analizzare in dettaglio tutte le implementazioni:
+ **Identità del cluster:**
  + `cluster_id`- L'ID univoco del cluster HyperPod
  + `cluster_name`- Il nome del HyperPod cluster
+ **Identità della risorsa:**
  + `resource_name`- Nome della distribuzione (ad esempio, "jumpstart-model-deployment«)
  + `resource_type`: tipo di implementazione (jumpstart, inference-endpoint)
  + `namespace`: namespace Kubernetes per multi-tenancy
+ **Caratteristiche del modello:**
  + `model_name`: identificatore specifico del modello (ad esempio, “llama-2-7b-chat”)
  + `model_version`- Versione del modello per A/B test e rollback
  + `model_container_type`: framework di servizio (TGI, LMI, -)
+ **Contesto dell’infrastruttura:**
  + `pod_name`: identificatore di pod individuale per il debug
  + `node_name`: nodo Kubernetes per la correlazione delle risorse
  + `instance_type`: tipo di istanza EC2 per l’analisi dei costi
+ **Contesto operativo:**
  + `metric_source`: punto di raccolta (reverse-proxy, model-container)
  + `task_type`: classificazione del carico di lavoro (inferenza)

## Configurazione delle metriche nel file YAML di implementazione
<a name="sagemaker-hyperpod-model-deployment-observability-yaml"></a>

Amazon SageMaker HyperPod abilita le metriche di inferenza per impostazione predefinita per tutte le implementazioni di modelli, fornendo un'osservabilità immediata senza configurazioni aggiuntive. Puoi personalizzare il comportamento delle metriche modificando la configurazione YAML di implementazione per abilitare o disabilitare la raccolta delle metriche in base ai tuoi requisiti specifici.

**Implementa un modello da JumpStart**

Utilizza la seguente configurazione YAML per distribuire un JuJumpStartmpStart modello con le metriche abilitate:

```
apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: JumpStartModel
metadata:
  name:mistral-model
  namespace: ns-team-a
spec:
  model:
    modelId: "huggingface-llm-mistral-7b-instruct"
    modelVersion: "3.19.0"
  metrics:
    enabled:true # Default: true (can be set to false to disable)
  replicas: 2
  sageMakerEndpoint:
    name: "mistral-model-sm-endpoint"
  server:
    instanceType: "ml.g5.12xlarge"
    executionRole: "arn:aws:iam::123456789:role/SagemakerRole"
  tlsConfig:
    tlsCertificateOutputS3Uri: s3://hyperpod/mistral-model/certs/
```

**Distribuisci modelli personalizzati e ottimizzati da Amazon S3 o Amazon FSx**

Configura endpoint di inferenza personalizzati con impostazioni delle metriche dettagliate utilizzando il file YAML seguente:

```
apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: JumpStartModel
metadata:
  name:mistral-model
  namespace: ns-team-a
spec:
  model:
    modelId: "huggingface-llm-mistral-7b-instruct"
    modelVersion: "3.19.0"
  metrics:
    enabled:true # Default: true (can be set to false to disable)
  replicas: 2
  sageMakerEndpoint:
    name: "mistral-model-sm-endpoint"
  server:
    instanceType: "ml.g5.12xlarge"
    executionRole: "arn:aws:iam::123456789:role/SagemakerRole"
  tlsConfig:
    tlsCertificateOutputS3Uri: s3://hyperpod/mistral-model/certs/

Deploy a custom inference endpoint

Configure custom inference endpoints with detailed metrics settings using the following YAML:

apiVersion: inference.sagemaker.aws.amazon.com/v1
kind: InferenceEndpointConfig
metadata:
  name: inferenceendpoint-deepseeks
  namespace: ns-team-a
spec:
  modelName: deepseeks
  modelVersion: 1.0.1
  metrics:
    enabled: true # Default: true (can be set to false to disable)
    metricsScrapeIntervalSeconds: 30 # Optional: if overriding the default 15s
    modelMetricsConfig:
        port: 8000 # Optional: if overriding, it defaults to the WorkerConfig.ModelInvocationPort.ContainerPort within the InferenceEndpointConfig spec 8080
        path: "/custom-metrics" # Optional: if overriding the default "/metrics"
  endpointName: deepseek-sm-endpoint
  instanceType: ml.g5.12xlarge
  modelSourceConfig:
    modelSourceType: s3
    s3Storage:
      bucketName: model-weights
      region: us-west-2
    modelLocation: deepseek
    prefetchEnabled: true
  invocationEndpoint: invocations
  worker:
    resources:
      limits:
        nvidia.com/gpu: 1
      requests:
        nvidia.com/gpu: 1
        cpu: 25600m
        memory: 102Gi
    image: 763104351884.dkr.ecr.us-west-2.amazonaws.com/djl-inference:0.32.0-lmi14.0.0-cu124
    modelInvocationPort:
      containerPort: 8080
      name: http
    modelVolumeMount:
      name: model-weights
      mountPath: /opt/ml/model
    environmentVariables: ...
  tlsConfig:
    tlsCertificateOutputS3Uri: s3://hyperpod/inferenceendpoint-deepseeks4/certs/
```

**Nota**  
Per disabilitare le metriche per implementazioni specifiche, imposta `metrics.enabled: false` nella configurazione YAML.

## Monitoraggio e risoluzione dei problemi relativi ai carichi di lavoro di inferenza per ruolo
<a name="sagemaker-hyperpod-model-deployment-observability-role"></a>

Amazon SageMaker HyperPod offre funzionalità di osservabilità complete che supportano diversi flussi di lavoro degli utenti, dalla configurazione iniziale del cluster alla risoluzione avanzata dei problemi delle prestazioni. Utilizza le indicazioni seguenti in base al tuo ruolo e ai requisiti di monitoraggio.

**HyperPod amministratore**

**Responsabilità:** abilita l’infrastruttura di osservabilità e garantisci l’integrità del sistema nell’intero cluster.

**Cosa devi sapere:**
+ L’osservabilità a livello di cluster fornisce metriche dell’infrastruttura per tutti i carichi di lavoro
+ La configurazione con un solo clic implementa lo stack di monitoraggio con dashboard preconfigurate
+ Le metriche dell’infrastruttura sono separate dalle metriche di inferenza specifiche del modello

**Cosa devi fare:**

1. Vai alla HyperPod console.

1. Selezionare il cluster.

1. Vai alla pagina dei dettagli del HyperPod cluster che hai appena creato. Vedrai una nuova opzione per installare il componente aggiuntivo HyperPod observability.

1. Fai clic sull’opzione **Installazione rapida**. Dopo 1-2 minuti, una volta completate tutte le fasi, vedrai la dashboard di Grafana e i dettagli dello spazio di lavoro di Prometheus.

Questa singola azione implementa automaticamente il componente aggiuntivo EKS, configura gli operatori di osservabilità e alloca dashboard predefinite in Grafana.

**Data Scientist**

**Responsabilità:** implementa i modelli in modo efficiente e monitora le loro prestazioni di base.

**Cosa devi sapere:**
+ Le metriche vengono abilitate automaticamente quando si distribuiscono i modelli
+ Le dashboard Grafana offrono una visibilità immediata sulle prestazioni del modello
+ Puoi filtrare le dashboard per concentrarti sulle tue implementazioni specifiche

**Cosa devi fare:**

1. Implementa il modello con il tuo metodo preferito:

   1. Interfaccia utente di Amazon SageMaker Studio

   1. HyperPod Comandi CLI

   1. Python SDK nei notebook

   1. kubectl con configurazioni YAML

1. Accedi alle metriche del modello:

   1. Apri Amazon SageMaker Studio

   1. Vai a HyperPod Cluster e apri Grafana Dashboard

   1. Seleziona Dashboard di inferenza

   1. Applica i filtri per visualizzare l’implementazione del tuo modello specifico

1. Monitora gli indicatori chiave delle prestazioni:

   1. Monitora la latenza e il throughput del modello

   1. Monitora i tassi di errore e la disponibilità

   1. Esamina le tendenze di utilizzo delle risorse

Al termine, avrai una visibilità immediata sulle prestazioni del modello senza configurazioni aggiuntive, che ti consente di identificare rapidamente i problemi di implementazione o le modifiche alle prestazioni.

**Ingegnere di machine learning engineer**

**Responsabilità:** mantieni le prestazioni del modello di produzione e risolvi i problemi di prestazioni complessi.

**Cosa devi sapere:**
+ Le metriche avanzate includono dettagli sul container del modello, come la profondità della coda e le metriche dei token
+ L’analisi di correlazione tra più tipi di metriche rivela le cause principali
+ Le configurazioni con dimensionamento automatico influiscono direttamente sulle prestazioni durante i picchi di traffico

**Scenario ipotetico:** il modello di chat di un cliente dà risposte lente e intermittenti. Gli utenti lamentano ritardi di 5-10 secondi. MLE può sfruttare l’osservabilità dell’inferenza per un’indagine sistematica delle prestazioni.

**Cosa devi fare:**

1. Esamina la dashboard Grafana per comprendere la portata e la gravità del problema relativo alle prestazioni:

   1. Avviso di alta latenza attivo dalle 9:30

   1. Latenza P99: 8,2 s (normale: 2,1 s)

   1. Finestra di tempo interessata: 9:30-10:15 (45 minuti)

1. Correla più metriche per comprendere il comportamento del sistema durante l’incidente:

   1. Richieste simultanee: picco di 45 (normale: 15-20)

   1. Dimensionamento dei pod: KEDA ha aumentato i pod da 2 a 5 durante l’incidente

   1. Utilizzo della GPU: è rimasto normale (85-90%)

   1. Utilizzo della memoria: normale (24 GB/32 GB)

1. Esamina il comportamento del sistema distribuito, visto che le metriche dell’infrastruttura sembrano normali:

   1. Visualizzazione a livello di nodo: tutti i pod sono concentrati sullo stesso nodo (distribuzione scadente)

   1. Metriche del container del modello: la profondità della coda TGI mostra 127 richieste (normale: 5-10)

   ```
   Available in Grafana dashboard under "Model Container Metrics" panel
           Metric: tgi_queue_size{resource_name="customer-chat-llama"}
           Current value: 127 requests queued (indicates backlog)
   ```

1. Identifica i problemi di configurazione interconnessi:

   1. Policy di dimensionamento KEDA: troppo lenta (intervallo di polling di 30 secondi)

   1. Cronologia di dimensionamento: la risposta di dimensionamento è rimasta indietro rispetto al picco di traffico di oltre 45 secondi

1. Implementa correzioni mirate basate sull’analisi:

   1. Intervallo di polling KEDA aggiornato: da 30 s a 15 s

   1. maxReplicas aumentato nella configurazione di dimensionamento

   1. Soglie di dimensionamento regolate per anticipare il dimensionamento (15 richieste simultanee invece di 20)

Puoi diagnosticare sistematicamente problemi complessi relativi alle prestazioni utilizzando metriche complete, implementare correzioni mirate e stabilire misure preventive per garantire prestazioni costanti del modello di produzione.

## Implementazione della tua integrazione dell’osservabilità
<a name="sagemaker-hyperpod-model-deployment-observability-diy"></a>

Amazon SageMaker HyperPod espone i parametri di inferenza tramite endpoint Prometheus standard del settore, abilitando l'integrazione con l'infrastruttura di osservabilità esistente. Utilizza questo approccio quando preferisci implementare soluzioni di monitoraggio personalizzate o integrare piattaforme di osservabilità di terze parti invece di utilizzare lo stack Grafana e Prometheus integrato.

**Accesso agli endpoint delle metriche di inferenza**

**Cosa devi sapere:**
+ Le metriche di inferenza vengono esposte automaticamente su endpoint Prometheus standardizzati
+ Le metriche sono disponibili indipendentemente dal tipo di modello o dal framework di servizio
+ Per la raccolta dei dati si applicano le procedure di scraping standard di Prometheus

**Configurazione degli endpoint per le metriche di inferenza:**
+ **Porta**: 9113
+ **Percorso:** /metrics
+ **Endpoint completo:** http://pod-ip:9113/metrics

**Metriche di inferenza disponibili:**
+ `model_invocations_total`: numero totale di richieste di invocazione al modello
+ `model_errors_total`: numero totale di errori durante l’invocazione del modello
+ `model_concurrent_requests`: richieste simultanee attive per modello
+ `model_latency_milliseconds`: latenza di invocazione del modello in millisecondi
+ `model_ttfb_milliseconds`: latenza del tempo al primo byte (Time To First Byte, TTFB) del modello in millisecondi

**Accesso alle metriche del container del modello**

**Cosa devi sapere:**
+ I container del modello espongono metriche aggiuntive specifiche per il proprio framework di servizio
+ Queste metriche forniscono informazioni interne sui container, come l’elaborazione dei token e la profondità della coda
+ La configurazione degli endpoint varia in base al tipo di container del modello

**Per JumpStart le implementazioni di modelli utilizzando contenitori Text Generation Inference (TGI):**
+ **Porta:** 8080 (porta del container del modello)
+ **Percorso:** /metrics
+ **Documentazione: https://huggingface.** [ co/docs/text-generation-inference/en/reference/metrics](https://huggingface.co/docs/text-generation-inference/en/reference/metrics)

**Per le implementazioni di JumpStart modelli che utilizzano contenitori Large Model Inference (LMI):**
+ **Porta:** 8080 (porta del container del modello)
+ **Percorso:** /server/metrics
+ **Documentazione**[: djl- .md https://github.com/deepjavalibrary/ serving/blob/master/prometheus/README](https://github.com/deepjavalibrary/djl-serving/blob/master/prometheus/README.md)

**Per gli endpoint di inferenza personalizzati (BYOD):**
+ **Porta:** configurata dal cliente (impostazione predefinita: 8080. Il valore predefinito è. WorkerConfig ModelInvocationPort. ContainerPort all'interno delle InferenceEndpointConfig specifiche.)
+ **Percorso:** configurato dal cliente (default/metrics)

**Implementazione dell’integrazione personalizzata dell’osservabilità**

Con un’integrazione dell’osservabilità personalizzata, sei responsabile di:

1. **Scraping metriche:** implementa lo scraping compatibile con Prometheus dagli endpoint precedenti

1. **Esportazione dei dati:** configura l’esportazione verso la piattaforma di osservabilità prescelta

1. **Avvisi:** imposta le regole di avviso in base ai tuoi requisiti operativi

1. **Dashboard:** crea dashboard di visualizzazione per le tue esigenze di monitoraggio

## Risoluzione dei problemi di osservabilità dell’inferenza
<a name="sagemaker-hyperpod-model-deployment-observability-troubleshoot"></a>

**La dashboard non mostra dati**

Se la dashboard Grafana è vuota e tutti i pannelli mostrano il messaggio “Nessun dato”, procedi come segue per indagare:

1. Verifica che l’amministratore abbia installato l’osservabilità dell’inferenza:

   1. Passa a HyperPod Console > Seleziona cluster > Controlla se lo stato «Osservabilità» mostra «Abilitato»

   1. Verifica che il link allo spazio di lavoro Grafana sia accessibile dalla panoramica del cluster

   1. Verifica che lo spazio di lavoro Amazon Managed Prometheus sia configurato e riceva dati

1. Verifica che l' HyperPod osservabilità sia abilitata:

   ```
   hyp observability view      
   ```

1. Verifica che le metriche del modello siano abilitate:

   ```
   kubectl get jumpstartmodel -n <namespace> customer-chat-llama -o jsonpath='{.status.metricsStatus}' # Expected: enabled: true, state:Enabled       
   ```

   ```
   kubectl get jumpstartmodel -n <namespace> customer-chat-llama -o jsonpath='{.status.metricsStatus}' # Expected: enabled: true, state:Enabled        
   ```

1. Controlla l’endpoint delle metriche:

   ```
   kubectl port-forward pod/customer-chat-llama-xxx 9113:9113
   curl localhost:9113/metrics | grep model_invocations_total# Expected: model_invocations_total{...} metrics
   ```

1. Controlla i log:

   ```
   # Model Container
   kubectl logs customer-chat-llama-xxx -c customer-chat-llama# Look for: OOM errors, CUDA errors, model loading failures
   
   # Proxy/SideCar
   kubectl logs customer-chat-llama-xxx -c sidecar-reverse-proxy# Look for: DNS resolution issues, upstream connection failures
   
   # Metrics Exporter Sidecar
   kubectl logs customer-chat-llama-xxx -c otel-collector# Look for: Metrics collection issues, export failures
   ```

**Altri problemi comuni**


| Problema | Soluzione | Azione | 
| --- | --- | --- | 
|  L’osservabilità dell’inferenza non è installata  |  Installa l’osservabilità dell’inferenza dalla console  |  «Abilita l'osservabilità» nella console HyperPod   | 
|  Metriche disabilitate nel modello  |  Aggiorna la configurazione del modello  |  Aggiungi `metrics: {enabled: true}` alle specifiche del modello  | 
|  Spazio di lavoro AMP non configurato  |  Correggi la connessione all’origine dati  |  Verifica l’ID dello spazio di lavoro AMP nelle origini dati Grafana  | 
|  La connettività di rete  |  Controlla i gruppi di sicurezza/ NACLs  |  Assicurati che i pod possano raggiungere gli endpoint AMP  | 

# Governance delle attività per l'implementazione del modello su HyperPod
<a name="sagemaker-hyperpod-model-deployment-task-gov"></a>

Questa sezione spiega come ottimizzare i cluster Amazon SageMaker HyperPod EKS condivisi per carichi di lavoro di inferenza in tempo reale. Imparerai a configurare le funzionalità di governance delle attività di Kueue, tra cui la gestione delle quote, la pianificazione delle priorità e le policy di condivisione delle risorse, per garantire che i carichi di lavoro di inferenza ottengano le risorse GPU di cui hanno bisogno durante i picchi di traffico, mantenendo al tempo stesso un’equa allocazione tra le attività di addestramento, valutazione e test dei tuoi team. Per informazioni più generali sulla governance delle attività, consulta [SageMaker HyperPod governance delle attività](sagemaker-hyperpod-eks-operate-console-ui-governance.md).

## Come funziona la gestione dei carichi di lavoro di inferenza
<a name="sagemaker-hyperpod-model-deployment-task-gov-how"></a>

Per gestire efficacemente i picchi di traffico di inferenza in tempo reale nei cluster HyperPod EKS condivisi, implementa le seguenti strategie di governance delle attività utilizzando le funzionalità esistenti di Kueue.

**Configurazione della classe di priorità**

Definisci classi di priorità dedicate per i carichi di lavoro di inferenza con pesi elevati (ad esempio 100) per garantire che i pod di inferenza siano ammessi e pianificati prima di altri tipi di attività. Questa configurazione consente ai carichi di lavoro di inferenza di rendere prerilasciabili i processi con priorità più bassa durante il caricamento del cluster, il che è fondamentale per mantenere i requisiti di bassa latenza durante i picchi di traffico.

**Dimensionamento e allocazione delle quote**

Riserva al tuo team risorse GPU sufficienti in `ClusterQueue` per gestire i picchi di inferenza previsti. Durante i periodi con poco traffico di inferenza, le quote di risorse inutilizzate possono essere temporaneamente allocate alle attività di altri team. Quando la domanda di inferenza aumenta, le risorse prese in prestito possono essere recuperate per dare priorità ai pod di inferenza in sospeso. Per ulteriori informazioni, consulta [Cluster Queue](https://kueue.sigs.k8s.io/docs/concepts/cluster_queue/).

**Strategie di condivisione delle risorse**

Scegli tra due approcci di condivisione delle quote in base alle tue esigenze:

1. **Controllo rigoroso delle risorse:** disabilita la funzionalità per prendere e dare in prestito le quote per garantire che la capacità GPU riservata sia sempre disponibile per i tuoi carichi di lavoro. Questo approccio richiede quote con dimensioni piuttosto ampie per gestire in modo indipendente i picchi di domanda e può comportare l’inattività dei nodi durante i periodi di traffico ridotto.

1. **Condivisione flessibile delle risorse:** abilita la funzionalità per prendere in prestito le quote per utilizzare le risorse inattive di altri team quando necessario. I pod presi in prestito sono contrassegnati come prerilasciabili e possono essere eliminati se il team che li ha prestati reclama la capacità.

**Prelazione all’interno del team**

Abilita la prelazione all’interno del team quando esegui carichi di lavoro misti (valutazione, addestramento e inferenza) nell’ambito della stessa quota. Ciò consente a Kueue di prerilasciare i processi a bassa priorità all’interno del team per ospitare pod di inferenza ad alta priorità, garantendo che l’inferenza in tempo reale possa essere eseguita senza dipendere dal prestito di quote esterne. Per ulteriori informazioni, consulta [Prelazione](https://kueue.sigs.k8s.io/docs/concepts/preemption/).

## Esempio di configurazione del carico di lavoro di inferenza
<a name="sagemaker-hyperpod-model-deployment-task-gov-example"></a>

L'esempio seguente mostra come Kueue gestisce le risorse GPU in un cluster Amazon condiviso. SageMaker HyperPod 

**Configurazione del cluster e impostazione delle policy**  
Il tuo cluster ha la configurazione seguente:
+ **Team A**: quota di 10 GPU P4
+ **Team B**: quota di 20 GPU P4
+ **Provisioning statico**: nessun dimensionamento automatico
+ **Capacità totale: 30** P4 GPUs

Il pool di GPU condiviso utilizza questa policy di priorità:

1. **Inferenza in tempo reale**: priorità 100

1. **Addestramento**: priorità 75

1. **Valutazione**: priorità 50

Kueue applica le quote del team e le classi di priorità, con la prelazione e il prestito di quote abilitati.

**Stato iniziale: utilizzo normale del cluster**  
Durante il normale funzionamento:
+ Il team A svolge attività di formazione e valutazione su tutti i 10 P4 GPUs
+ Il Team B esegue l’inferenza (10 P4) e la valutazione (10 P4) in tempo reale all’interno della sua quota di 20 GPU
+ Il cluster è completamente utilizzato e tutti i processi sono ammessi e in esecuzione

**Picco di inferenza: il Team B ne richiede altri GPUs**  
Quando il Team B subisce un picco di traffico, i pod di inferenza aggiuntivi richiedono altri 5 P4. GPUs Kueue rileva che i nuovi pod:
+ Sono all’interno del namespace del Team B
+ Hanno priorità 100 (inferenza in tempo reale)
+ Hanno l’ammissione in sospeso a causa di vincoli di quota

**Per la risposta, Kueue può scegliere tra due opzioni:**  
**Opzione 1: prestito di quote**. Se il Team A utilizza solo 6 dei suoi 10 P4, Kueue può ammettere i pod del Team B utilizzando i 4 P4 inattivi. Tuttavia, queste risorse prese in prestito sono prerilasciabili: se il Team A invia processi per raggiungere la sua quota massima, Kueue rilascia i pod di inferenza presi in prestito dal Team B.

**Opzione 2: auto-prelazione (consigliata)**. Il Team B esegue processi di valutazione a bassa priorità (priorità 50). Quando sono in attesa pod di inferenza ad alta priorità, Kueue interrompe i processi di valutazione inclusi nella quota del Team B e ammette i pod di inferenza. Questo approccio offre un’allocazione sicura delle risorse senza rischi esterni di espulsione.

Kueue segue un processo in tre fasi per l’allocazione delle risorse:

1. **Controllo delle quote**

   Domanda: il Team B ha una quota inutilizzata?
   + Sì → Ammetti i pod
   + No → Procedi alla Fase 2

1. **Auto-prelazione all’interno del Team B**

   Domanda: è possibile prerilasciare i processi del Team B con priorità più bassa?
   + Sì → Rendi prerilasciabili i processi di valutazione (priorità 50), libera 5 P4 e ammetti i pod di inferenza
   + No → Procedi alla Fase 3

   Questo approccio mantiene i carichi di lavoro entro la quota garantita del Team B, evitando rischi esterni di espulsione.

1. **Prestito da altri team**

   Domanda: c’è una quota inattiva che può essere presa in prestito da altri team?
   + Sì → Consenti l’utilizzo di una quota presa in prestito (contrassegnata come prerilasciabile)
   + No → Il pod rimane nello stato `NotAdmitted`

# HyperPod risoluzione dei problemi di inferenza
<a name="sagemaker-hyperpod-model-deployment-ts"></a>

Questa guida alla risoluzione dei problemi più comuni che possono verificarsi durante la distribuzione e il funzionamento di Amazon SageMaker HyperPod Inference. Questi problemi riguardano in genere la configurazione della rete VPC, le autorizzazioni IAM, la gestione delle risorse Kubernetes e i problemi di connettività degli operatori che possono impedire la corretta implementazione del modello o causare il fallimento delle implementazioni o il mantenimento di stati in sospeso.

**Questa guida alla risoluzione dei problemi utilizza la seguente terminologia: le procedure di **risoluzione dei problemi sono procedure** diagnostiche per identificare e analizzare i problemi, **Resolution** fornisce le azioni specifiche per risolvere i problemi identificati e Verification conferma che la soluzione ha funzionato correttamente.**

**Topics**
+ [Inferenza gli errori di installazione dell'operatore tramite la console AI SageMaker](sagemaker-hyperpod-model-deployment-ts-console-cfn-failures.md)
+ [Errori di installazione dell'operatore di inferenza tramite CLI AWS](sagemaker-hyperpod-model-deployment-ts-cli.md)
+ [Timeout per il download del certificato](sagemaker-hyperpod-model-deployment-ts-certificate.md)
+ [Problemi di distribuzione del modello](sagemaker-hyperpod-model-deployment-ts-deployment-issues.md)
+ [Rilascio dell'autorizzazione VPC ENI](sagemaker-hyperpod-model-deployment-ts-permissions.md)
+ [Problema di relazione fiduciaria IAM](sagemaker-hyperpod-model-deployment-ts-trust.md)
+ [Errore mancante del plug-in GPU NVIDIA](sagemaker-hyperpod-model-deployment-ts-gpu.md)
+ [L'operatore di inferenza non si avvia](sagemaker-hyperpod-model-deployment-ts-startup.md)

# Inferenza gli errori di installazione dell'operatore tramite la console AI SageMaker
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-failures"></a>

**Panoramica:** quando si installa l'operatore di inferenza tramite la console SageMaker AI utilizzando Quick Install o Custom Install, gli CloudFormation stack sottostanti potrebbero non funzionare a causa di vari problemi. Questa sezione descrive gli scenari di errore più comuni e le relative risoluzioni.

## Errore di installazione del componente aggiuntivo Inference Operator tramite installazione rapida o personalizzata
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-stack-failed"></a>

**Problema:** la creazione del HyperPod cluster viene completata correttamente, ma l'installazione del componente aggiuntivo dell'operatore di inferenza non riesce.

Cause comuni:
+ I limiti di capacità dei pod sono stati superati nei nodi del cluster. L'installazione dell'operatore di inferenza richiede un minimo di 13 pod. Il tipo di istanza minimo consigliato è. `ml.c5.4xlarge`
+ Problemi di autorizzazione IAM
+ Vincoli relativi alle quote di risorse
+ Problemi di configurazione della rete o del VPC

### Sintomi e diagnosi
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-symptoms"></a>

**Caratteristiche:**
+ Il componente aggiuntivo dell'operatore di inferenza mostra lo stato CREATE\$1FAILED o DEGRADED nella console
+ CloudFormation lo stack associato al componente aggiuntivo è nello stato CREATE\$1FAILED
+ L'avanzamento dell'installazione si interrompe o mostra messaggi di errore

**Fasi di diagnostica:**

1. Controlla lo stato del componente aggiuntivo dell'operatore di inferenza:

   ```
   aws eks describe-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --region $REGION \
       --query "addon.{Status:status,Health:health,Issues:issues}" \
       --output json
   ```

1. Verifica la presenza di problemi relativi al limite dei pod:

   ```
   # Check current pod count per node
   kubectl get nodes -o json | jq '.items[] | {name: .metadata.name, allocatable: .status.allocatable.pods, capacity: .status.capacity.pods}'
   
   # Check pods running on each node
   kubectl get pods --all-namespaces -o wide | awk '{print $8}' | sort | uniq -c
   
   # Check for pod evictions or failures
   kubectl get events --all-namespaces --sort-by='.lastTimestamp' | grep -i "pod\|limit\|quota"
   ```

1. Controlla lo stato dello CloudFormation stack (se usi l'installazione della console):

   ```
   # List CloudFormation stacks related to the cluster
   aws cloudformation list-stacks \
       --region $REGION \
       --query "StackSummaries[?contains(StackName, '$EKS_CLUSTER_NAME') && StackStatus=='CREATE_FAILED'].{Name:StackName,Status:StackStatus,Reason:StackStatusReason}" \
       --output table
   
   # Get detailed stack events
   aws cloudformation describe-stack-events \
       --stack-name <stack-name> \
       --region $REGION \
       --query "StackEvents[?ResourceStatus=='CREATE_FAILED']" \
       --output table
   ```

### Risoluzione
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-resolution"></a>

Per risolvere l'errore di installazione, salva la configurazione corrente, elimina il componente aggiuntivo non riuscito, correggi il problema sottostante e quindi reinstalla l'operatore di inferenza tramite la console SageMaker AI (consigliato) o la CLI. AWS 

**Passaggio 1: salvare la configurazione corrente**
+ Estrai e salva la configurazione del componente aggiuntivo prima dell'eliminazione:

  ```
  # Save the current configuration
  aws eks describe-addon \
      --cluster-name $EKS_CLUSTER_NAME \
      --addon-name amazon-sagemaker-hyperpod-inference \
      --region $REGION \
      --query 'addon.configurationValues' \
      --output text > addon-config-backup.json
  
  # Verify the configuration was saved
  cat addon-config-backup.json
  
  # Pretty print for readability
  cat addon-config-backup.json | jq '.'
  ```

**Passaggio 2: Eliminare il componente aggiuntivo non riuscito**
+ Elimina il componente aggiuntivo dell'operatore di inferenza:

  ```
  aws eks delete-addon \
      --cluster-name $EKS_CLUSTER_NAME \
      --addon-name amazon-sagemaker-hyperpod-inference \
      --region $REGION
  
  # Wait for deletion to complete
  echo "Waiting for add-on deletion..."
  aws eks wait addon-deleted \
      --cluster-name $EKS_CLUSTER_NAME \
      --addon-name amazon-sagemaker-hyperpod-inference \
      --region $REGION 2>/dev/null || sleep 60
  ```

**Passaggio 3: Risolvi il problema sottostante**

Scegli la risoluzione appropriata in base alla causa dell'errore:

Se il problema è il superamento del limite del pod:

```
# The inference operator requires a minimum of 13 pods.
# The minimum recommended instance type is ml.c5.4xlarge.
#
# Option 1: Add instance group with higher pod capacity
# Different instance types support different maximum pod counts
# For example: m5.large (29 pods), m5.xlarge (58 pods), m5.2xlarge (58 pods)
aws sagemaker update-cluster \
    --cluster-name $HYPERPOD_CLUSTER_NAME \
    --region $REGION \
    --instance-groups '[{"InstanceGroupName":"worker-group-2","InstanceType":"ml.m5.xlarge","InstanceCount":2}]'

# Option 2: Scale existing node group to add more nodes
aws eks update-nodegroup-config \
    --cluster-name $EKS_CLUSTER_NAME \
    --nodegroup-name <nodegroup-name> \
    --scaling-config minSize=2,maxSize=10,desiredSize=5 \
    --region $REGION

# Option 3: Clean up unused pods
kubectl delete pods --field-selector status.phase=Failed --all-namespaces
kubectl delete pods --field-selector status.phase=Succeeded --all-namespaces
```

**Fase 4: Reinstallare l'operatore di inferenza**

Dopo aver risolto il problema sottostante, reinstalla l'operatore di inferenza utilizzando uno dei seguenti metodi:
+ **SageMaker Console AI con installazione personalizzata (consigliata):** riutilizza i ruoli IAM e il bucket TLS esistenti dall'installazione precedente. Per le fasi, consulta [Metodo 1: installa il componente aggiuntivo HyperPod Inference tramite la console SageMaker AI (consigliato)](sagemaker-hyperpod-model-deployment-setup.md#sagemaker-hyperpod-model-deployment-setup-ui).
+ **AWS CLI con configurazione salvata: utilizza la configurazione** di cui hai eseguito il backup nel passaggio 1 per reinstallare il componente aggiuntivo. Per la procedura completa di installazione della CLI, consulta. [Metodo 2: installazione dell'operatore di inferenza utilizzando la CLI AWS](sagemaker-hyperpod-model-deployment-setup.md#sagemaker-hyperpod-model-deployment-setup-addon)

  ```
  aws eks create-addon \
      --cluster-name $EKS_CLUSTER_NAME \
      --addon-name amazon-sagemaker-hyperpod-inference \
      --addon-version v1.0.0-eksbuild.1 \
      --configuration-values file://addon-config-backup.json \
      --region $REGION
  ```
+ **SageMaker Console AI con installazione rapida:** crea automaticamente nuovi ruoli IAM, bucket TLS e componenti aggiuntivi di dipendenza. Per le fasi, consulta [Metodo 1: installa il componente aggiuntivo HyperPod Inference tramite la console SageMaker AI (consigliato)](sagemaker-hyperpod-model-deployment-setup.md#sagemaker-hyperpod-model-deployment-setup-ui).

**Fase 5: Verificare la corretta installazione**

```
# Check add-on status
aws eks describe-addon \
    --cluster-name $EKS_CLUSTER_NAME \
    --addon-name amazon-sagemaker-hyperpod-inference \
    --region $REGION \
    --query "addon.{Status:status,Health:health}" \
    --output table

# Verify pods are running
kubectl get pods -n hyperpod-inference-system

# Check operator logs
kubectl logs -n hyperpod-inference-system deployment/hyperpod-inference-controller-manager --tail=50
```

## L'installazione di Cert-Manager non è riuscita perché il webhook Kueue non è pronto
<a name="sagemaker-hyperpod-model-deployment-ts-console-kueue-webhook-race"></a>

**Problema:** l'installazione del componente aggiuntivo cert-manager fallisce con un errore webhook perché il servizio webhook Task Governance (Kueue) non ha endpoint disponibili. Questa è una condizione di gara che si verifica quando cert-manager tenta di creare risorse prima che i pod webhook di Task Governance siano completamente funzionanti. Ciò può accadere quando il componente aggiuntivo Task Governance viene installato insieme all'operatore Inference durante la creazione del cluster.

### Sintomi e diagnosi
<a name="sagemaker-hyperpod-model-deployment-ts-console-kueue-symptoms"></a>

**Messaggio di errore:**

```
AdmissionRequestDenied
Internal error occurred: failed calling webhook "mdeployment.kb.io": failed to call webhook: 
Post "https://kueue-webhook-service.kueue-system.svc:443/mutate-apps-v1-deployment?timeout=10s": 
no endpoints available for service "kueue-webhook-service"
```

**Causa principale:**
+ Il componente aggiuntivo Task Governance installa e registra un webhook mutante che intercetta tutte le creazioni di Deployment
+ Il componente aggiuntivo Cert-Manager tenta di creare risorse di distribuzione prima che i pod webhook di Task Governance siano pronti
+ Il controllo di ammissione di Kubernetes richiama il webhook Task Governance, ma non ha endpoint (i pod non sono ancora in esecuzione)

**Fase diagnostica:**

1. Controlla lo stato del componente aggiuntivo cert-manager:

   ```
   aws eks describe-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name cert-manager \
       --region $REGION \
       --query "addon.{Status:status,Health:health,Issues:issues}" \
       --output json
   ```

### Risoluzione
<a name="sagemaker-hyperpod-model-deployment-ts-console-kueue-resolution"></a>

**Soluzione: elimina e reinstalla cert-manager**

Il webhook Task Governance diventa pronto entro 60 secondi. Basta eliminare e reinstallare il componente aggiuntivo cert-manager:

1. Elimina il componente aggiuntivo cert-manager non riuscito:

   ```
   aws eks delete-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name cert-manager \
       --region $REGION
   ```

1. Attendi 30-60 secondi che il webhook Task Governance sia pronto, quindi reinstalla il componente aggiuntivo cert-manager:

   ```
   sleep 60
   
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name cert-manager \
       --region $REGION
   ```

# Errori di installazione dell'operatore di inferenza tramite CLI AWS
<a name="sagemaker-hyperpod-model-deployment-ts-cli"></a>

**Panoramica:** quando si installa l'operatore di inferenza tramite la AWS CLI, l'installazione del componente aggiuntivo potrebbe non riuscire a causa della mancanza di dipendenze. Questa sezione descrive i più comuni scenari di errore di installazione della CLI e le relative risoluzioni.

## L'installazione del componente aggiuntivo Inference non è riuscita a causa della mancanza di driver CSI
<a name="sagemaker-hyperpod-model-deployment-ts-missing-csi-drivers"></a>

**Problema:** la creazione del componente aggiuntivo dell'operatore di inferenza non riesce perché le dipendenze dei driver CSI richieste non sono installate nel cluster EKS.

**Sintomi e diagnosi:**

**Messaggi di errore:**

I seguenti errori vengono visualizzati nei registri di creazione dei componenti aggiuntivi o nei registri degli operatori di inferenza:

```
S3 CSI driver not installed (missing CSIDriver s3.csi.aws.com). 
Please install the required CSI driver and see the troubleshooting guide for more information.

FSx CSI driver not installed (missing CSIDriver fsx.csi.aws.com). 
Please install the required CSI driver and see the troubleshooting guide for more information.
```

**Fasi diagnostiche:**

1. Controlla se i driver CSI sono installati:

   ```
   # Check for S3 CSI driver
   kubectl get csidriver s3.csi.aws.com
   kubectl get pods -n kube-system | grep mountpoint
   
   # Check for FSx CSI driver  
   kubectl get csidriver fsx.csi.aws.com
   kubectl get pods -n kube-system | grep fsx
   ```

1. Controlla lo stato del componente aggiuntivo EKS:

   ```
   # List all add-ons
   aws eks list-addons --cluster-name $EKS_CLUSTER_NAME --region $REGION
   
   # Check specific CSI driver add-ons
   aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name aws-mountpoint-s3-csi-driver --region $REGION 2>/dev/null || echo "S3 CSI driver not installed"
   aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name aws-fsx-csi-driver --region $REGION 2>/dev/null || echo "FSx CSI driver not installed"
   ```

1. Controlla lo stato del componente aggiuntivo dell'operatore di inferenza:

   ```
   aws eks describe-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --region $REGION \
       --query "addon.{Status:status,Health:health,Issues:issues}" \
       --output json
   ```

**Risoluzione:**

**Passaggio 1: installa il driver S3 CSI mancante**

1. Crea il ruolo IAM per il driver S3 CSI (se non è già stato creato):

   ```
   # Set up service account role ARN (from installation steps)
   export S3_CSI_ROLE_ARN=$(aws iam get-role --role-name $S3_CSI_ROLE_NAME --query 'Role.Arn' --output text 2>/dev/null || echo "Role not found")
   echo "S3 CSI Role ARN: $S3_CSI_ROLE_ARN"
   ```

1. Installa il componente aggiuntivo del driver S3 CSI:

   ```
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name aws-mountpoint-s3-csi-driver \
       --addon-version v1.14.1-eksbuild.1 \
       --service-account-role-arn $S3_CSI_ROLE_ARN \
       --region $REGION
   ```

1. Verifica l'installazione del driver S3 CSI:

   ```
   # Wait for add-on to be active
   aws eks wait addon-active --cluster-name $EKS_CLUSTER_NAME --addon-name aws-mountpoint-s3-csi-driver --region $REGION
   
   # Verify CSI driver is available
   kubectl get csidriver s3.csi.aws.com
   kubectl get pods -n kube-system | grep mountpoint
   ```

**Fase 2: Installare il driver CSI mancante FSx **

1. Crea il ruolo IAM per il driver FSx CSI (se non è già stato creato):

   ```
   # Set up service account role ARN (from installation steps)
   export FSX_CSI_ROLE_ARN=$(aws iam get-role --role-name $FSX_CSI_ROLE_NAME --query 'Role.Arn' --output text 2>/dev/null || echo "Role not found")
   echo "FSx CSI Role ARN: $FSX_CSI_ROLE_ARN"
   ```

1. Installa il FSx componente aggiuntivo del driver CSI:

   ```
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name aws-fsx-csi-driver \
       --addon-version v1.6.0-eksbuild.1 \
       --service-account-role-arn $FSX_CSI_ROLE_ARN \
       --region $REGION
   
   # Wait for add-on to be active
   aws eks wait addon-active --cluster-name $EKS_CLUSTER_NAME --addon-name aws-fsx-csi-driver --region $REGION
   
   # Verify FSx CSI driver is running
   kubectl get pods -n kube-system | grep fsx
   ```

**Fase 3: Verifica tutte le dipendenze**

Dopo aver installato le dipendenze mancanti, verifica che funzionino correttamente prima di riprovare l'installazione dell'operatore di inferenza:

```
# Check all required add-ons are active
aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name aws-mountpoint-s3-csi-driver --region $REGION
aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name aws-fsx-csi-driver --region $REGION
aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name metrics-server --region $REGION
aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name cert-manager --region $REGION

# Verify all pods are running
kubectl get pods -n kube-system | grep -E "(mountpoint|fsx|metrics-server)"
kubectl get pods -n cert-manager
```

## Durante la distribuzione del modello mancano le definizioni di risorse personalizzate di inferenza
<a name="sagemaker-hyperpod-model-deployment-ts-crd-not-exist"></a>

**Problema:** le definizioni di risorse personalizzate (CRDs) mancano quando si tenta di creare distribuzioni di modelli. Questo problema si verifica quando in precedenza hai installato ed eliminato il componente aggiuntivo di inferenza senza ripulire le distribuzioni di modelli che dispongono di finalizzatori.

**Sintomi e diagnosi:**

**Causa principale:**

Se si elimina il componente aggiuntivo di inferenza senza prima rimuovere tutte le distribuzioni del modello, le risorse personalizzate con i finalizzatori rimangono nel cluster. Questi finalizzatori devono essere completati prima di poter eliminare il. CRDs Il processo di eliminazione dei componenti aggiuntivi non attende il completamento dell'eliminazione del CRD, il che fa sì che il componente CRDs rimanga in uno stato terminale e impedisca nuove installazioni.

**Per diagnosticare questo problema**

1. Controlla se CRDs esistono.

   ```
   kubectl get crd | grep inference.sagemaker.aws.amazon.com
   ```

1. Verifica la presenza di risorse personalizzate bloccate.

   ```
   # Check for JumpStartModel resources
   kubectl get jumpstartmodels -A
   
   # Check for InferenceEndpointConfig resources
   kubectl get inferenceendpointconfigs -A
   ```

1. Ispeziona i finalizzatori sulle risorse bloccate.

   ```
   # Example for a specific JumpStartModel
   kubectl get jumpstartmodels <model-name> -n <namespace> -o jsonpath='{.metadata.finalizers}'
   
   # Example for a specific InferenceEndpointConfig
   kubectl get inferenceendpointconfigs <config-name> -n <namespace> -o jsonpath='{.metadata.finalizers}'
   ```

**Risoluzione:**

Rimuovi manualmente i finalizzatori da tutte le implementazioni del modello che non sono state eliminate quando hai rimosso il componente aggiuntivo di inferenza. Completa i seguenti passaggi per ogni risorsa personalizzata bloccata.

**Per rimuovere i finalizzatori dalle risorse JumpStartModel **

1. Elenca tutte le JumpStartModel risorse in tutti i namespace.

   ```
   kubectl get jumpstartmodels -A
   ```

1. Per ogni JumpStartModel risorsa, rimuovi i finalizzatori applicando una patch alla risorsa per impostare metadata.finalizers su un array vuoto.

   ```
   kubectl patch jumpstartmodels <model-name> -n <namespace> -p '{"metadata":{"finalizers":[]}}' --type=merge
   ```

   L'esempio seguente mostra come applicare una patch a una risorsa denominata kv-l1-only.

   ```
   kubectl patch jumpstartmodels kv-l1-only -n default -p '{"metadata":{"finalizers":[]}}' --type=merge
   ```

1. Verificate che l'istanza del modello sia eliminata.

   ```
   kubectl get jumpstartmodels -A
   ```

   Quando tutte le risorse vengono ripulite, dovresti vedere il seguente output.

   ```
   Error from server (NotFound): Unable to list "inference.sagemaker.aws.amazon.com/v1, Resource=jumpstartmodels": the server could not find the requested resource (get jumpstartmodels.inference.sagemaker.aws.amazon.com)
   ```

1. Verificate che il JumpStartModel CRD sia stato rimosso.

   ```
   kubectl get crd | grep jumpstartmodels.inference.sagemaker.aws.amazon.com
   ```

   Se il CRD viene rimosso correttamente, questo comando non restituisce alcun output.

**Per rimuovere i finalizzatori dalle risorse InferenceEndpointConfig **

1. Elenca tutte le InferenceEndpointConfig risorse in tutti i namespace.

   ```
   kubectl get inferenceendpointconfigs -A
   ```

1. Per ogni InferenceEndpointConfig risorsa, rimuovi i finalizzatori.

   ```
   kubectl patch inferenceendpointconfigs <config-name> -n <namespace> -p '{"metadata":{"finalizers":[]}}' --type=merge
   ```

   L'esempio seguente mostra come applicare una patch a una risorsa denominata. my-inference-config

   ```
   kubectl patch inferenceendpointconfigs my-inference-config -n default -p '{"metadata":{"finalizers":[]}}' --type=merge
   ```

1. Verifica che l'istanza di configurazione sia eliminata.

   ```
   kubectl get inferenceendpointconfigs -A
   ```

   Quando tutte le risorse vengono ripulite, dovresti vedere il seguente output.

   ```
   Error from server (NotFound): Unable to list "inference.sagemaker.aws.amazon.com/v1, Resource=inferenceendpointconfigs": the server could not find the requested resource (get inferenceendpointconfigs.inference.sagemaker.aws.amazon.com)
   ```

1. Verificate che il InferenceEndpointConfig CRD sia stato rimosso.

   ```
   kubectl get crd | grep inferenceendpointconfigs.inference.sagemaker.aws.amazon.com
   ```

   Se il CRD viene rimosso correttamente, questo comando non restituisce alcun output.

**Per reinstallare il componente aggiuntivo di inferenza**

Dopo aver ripulito tutte le risorse bloccate e verificato che siano CRDs state rimosse, reinstallate il componente aggiuntivo di inferenza. Per ulteriori informazioni, consulta [Installazione del componente aggiuntivo Inference Operator with EKS](sagemaker-hyperpod-model-deployment-setup.md#sagemaker-hyperpod-model-deployment-setup-install-inference-operator-addon).

**Verifica:**

1. Verifica che il componente aggiuntivo di inferenza sia installato correttamente.

   ```
   aws eks describe-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --region $REGION \
       --query "addon.{Status:status,Health:health}" \
       --output table
   ```

   Lo Status deve essere ATTIVO e l'Health deve essere SANO.

1. Verifica che CRDs siano installati correttamente.

   ```
   kubectl get crd | grep inference.sagemaker.aws.amazon.com
   ```

   Dovresti vedere i dati relativi all'inferenza CRDs elencati nell'output.

1. Prova a creare un nuovo modello di distribuzione per confermare che il problema è stato risolto.

   ```
   # Create a test deployment using your preferred method
   kubectl apply -f <your-model-deployment.yaml>
   ```

**Prevenzione:**

Per evitare questo problema, completa i seguenti passaggi prima di disinstallare il componente aggiuntivo di inferenza.

1. Eliminare tutte le distribuzioni dei modelli.

   ```
   # Delete all JumpStartModel resources
   kubectl delete jumpstartmodels --all -A
   
   # Delete all InferenceEndpointConfig resources
   kubectl delete inferenceendpointconfigs --all -A
   
   # Wait for all resources to be fully deleted
   kubectl get jumpstartmodels -A
   kubectl get inferenceendpointconfigs -A
   ```

1. Verifica che tutte le risorse personalizzate vengano eliminate.

1. Dopo aver confermato che tutte le risorse sono state ripulite, elimina il componente aggiuntivo di inferenza.

## L'installazione del componente aggiuntivo Inference non è riuscita a causa della mancanza di cert-manager
<a name="sagemaker-hyperpod-model-deployment-ts-missing-cert-manager"></a>

**Problema:** la creazione del componente aggiuntivo per l'operatore di inferenza non riesce perché il componente aggiuntivo EKS cert-manager non è installato, pertanto mancano le Custom Resource Definitions (). CRDs

**Sintomi e diagnosi:**

**Messaggi di errore:**

I seguenti errori vengono visualizzati nei registri di creazione dei componenti aggiuntivi o nei registri degli operatori di inferenza:

```
Missing required CRD: certificaterequests.cert-manager.io. 
The cert-manager add-on is not installed. Please install cert-manager and see the troubleshooting guide for more information.
```

**Fasi diagnostiche:**

1. Controlla se cert-manager è installato:

   ```
   # Check for cert-manager CRDs
   kubectl get crd | grep cert-manager
   kubectl get pods -n cert-manager
   
   # Check EKS add-on status
   aws eks describe-addon --cluster-name $EKS_CLUSTER_NAME --addon-name cert-manager --region $REGION 2>/dev/null || echo "Cert-manager not installed"
   ```

1. Controlla lo stato del componente aggiuntivo dell'operatore di inferenza:

   ```
   aws eks describe-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --region $REGION \
       --query "addon.{Status:status,Health:health,Issues:issues}" \
       --output json
   ```

**Risoluzione:**

**Passaggio 1: installa il componente aggiuntivo cert-manager**

1. Installa il componente aggiuntivo cert-manager EKS:

   ```
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name cert-manager \
       --addon-version v1.18.2-eksbuild.2 \
       --region $REGION
   ```

1. Verifica l'installazione di cert-manager:

   ```
   # Wait for add-on to be active
   aws eks wait addon-active --cluster-name $EKS_CLUSTER_NAME --addon-name cert-manager --region $REGION
   
   # Verify cert-manager pods are running
   kubectl get pods -n cert-manager
   
   # Verify CRDs are installed
   kubectl get crd | grep cert-manager | wc -l
   # Expected: Should show multiple cert-manager CRDs
   ```

**Fase 2: Riprovare l'installazione dell'operatore di inferenza**

1. Dopo aver installato cert-manager, riprova a installare l'operatore di inferenza:

   ```
   # Delete the failed add-on if it exists
   aws eks delete-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --region $REGION 2>/dev/null || echo "Add-on not found, proceeding with installation"
   
   # Wait for deletion to complete
   sleep 30
   
   # Reinstall the inference operator add-on
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --addon-version v1.0.0-eksbuild.1 \
       --configuration-values file://addon-config.json \
       --region $REGION
   ```

1. Monitora l'installazione:

   ```
   # Check installation status
   aws eks describe-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --region $REGION \
       --query "addon.{Status:status,Health:health}" \
       --output table
   
   # Verify inference operator pods are running
   kubectl get pods -n hyperpod-inference-system
   ```

## L'installazione del componente aggiuntivo Inference non è riuscita a causa della mancanza del controller ALB
<a name="sagemaker-hyperpod-model-deployment-ts-missing-alb"></a>

**Problema:** la creazione del componente aggiuntivo dell'operatore di inferenza non riesce perché il Load AWS Balancer Controller non è installato o non è configurato correttamente per il componente aggiuntivo di inferenza.

**Sintomi e diagnosi:**

**Messaggi di errore:**

I seguenti errori vengono visualizzati nei registri di creazione dei componenti aggiuntivi o nei registri degli operatori di inferenza:

```
ALB Controller not installed (missing aws-load-balancer-controller pods). 
Please install the Application Load Balancer Controller and see the troubleshooting guide for more information.
```

**Fasi diagnostiche:**

1. Controlla se ALB Controller è installato:

   ```
   # Check for ALB Controller pods
   kubectl get pods -n kube-system | grep aws-load-balancer-controller
   kubectl get pods -n hyperpod-inference-system | grep aws-load-balancer-controller
   
   # Check ALB Controller service account
   kubectl get serviceaccount aws-load-balancer-controller -n kube-system 2>/dev/null || echo "ALB Controller service account not found"
   kubectl get serviceaccount aws-load-balancer-controller -n hyperpod-inference-system 2>/dev/null || echo "ALB Controller service account not found in inference namespace"
   ```

1. Controlla la configurazione del componente aggiuntivo dell'operatore di inferenza:

   ```
   aws eks describe-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --region $REGION \
       --query "addon.{Status:status,Health:health,ConfigurationValues:configurationValues}" \
       --output json
   ```

**Risoluzione:**

Scegliete una delle seguenti opzioni in base alla vostra configurazione:

**Opzione 1: consenti al componente aggiuntivo di inferenza di installare ALB Controller (consigliato)**
+ Assicurati che il ruolo ALB sia creato e configurato correttamente nella configurazione del componente aggiuntivo:

  ```
  # Verify ALB role exists
  export ALB_ROLE_ARN=$(aws iam get-role --role-name alb-role --query 'Role.Arn' --output text 2>/dev/null || echo "Role not found")
  echo "ALB Role ARN: $ALB_ROLE_ARN"
  
  # Update your addon-config.json to enable ALB
  cat > addon-config.json << EOF
  {
    "executionRoleArn": "$EXECUTION_ROLE_ARN",
    "tlsCertificateS3Bucket": "$BUCKET_NAME",
    "hyperpodClusterArn": "$HYPERPOD_CLUSTER_ARN",
    "alb": {
      "enabled": true,
      "serviceAccount": {
        "create": true,
        "roleArn": "$ALB_ROLE_ARN"
      }
    },
    "keda": {
      "auth": {
        "aws": {
          "irsa": {
            "roleArn": "$KEDA_ROLE_ARN"
          }
        }
      }
    }
  }
  EOF
  ```

**Opzione 2: utilizzare l'installazione esistente del controller ALB**
+ Se hai già installato ALB Controller, configura il componente aggiuntivo per utilizzare l'installazione esistente:

  ```
  # Update your addon-config.json to disable ALB installation
  cat > addon-config.json << EOF
  {
    "executionRoleArn": "$EXECUTION_ROLE_ARN",
    "tlsCertificateS3Bucket": "$BUCKET_NAME",
    "hyperpodClusterArn": "$HYPERPOD_CLUSTER_ARN",
    "alb": {
      "enabled": false
    },
    "keda": {
      "auth": {
        "aws": {
          "irsa": {
            "roleArn": "$KEDA_ROLE_ARN"
          }
        }
      }
    }
  }
  EOF
  ```

**Fase 3: Riprovare l'installazione dell'operatore di inferenza**

1. Reinstalla il componente aggiuntivo dell'operatore di inferenza con la configurazione aggiornata:

   ```
   # Delete the failed add-on if it exists
   aws eks delete-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --region $REGION 2>/dev/null || echo "Add-on not found, proceeding with installation"
   
   # Wait for deletion to complete
   sleep 30
   
   # Reinstall with updated configuration
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --addon-version v1.0.0-eksbuild.1 \
       --configuration-values file://addon-config.json \
       --region $REGION
   ```

1. Verifica che il controller ALB funzioni:

   ```
   # Check ALB Controller pods
   kubectl get pods -n hyperpod-inference-system | grep aws-load-balancer-controller
   kubectl get pods -n kube-system | grep aws-load-balancer-controller
   
   # Check service account annotations
   kubectl describe serviceaccount aws-load-balancer-controller -n hyperpod-inference-system 2>/dev/null
   kubectl describe serviceaccount aws-load-balancer-controller -n kube-system 2>/dev/null
   ```

## L'installazione del componente aggiuntivo Inference non è riuscita a causa della mancanza dell'operatore KEDA
<a name="sagemaker-hyperpod-model-deployment-ts-missing-keda"></a>

**Problema:** la creazione del componente aggiuntivo dell'operatore di inferenza non riesce perché l'operatore KEDA (Kubernetes Event Driven Autoscaler) non è installato o non è configurato correttamente per il componente aggiuntivo di inferenza.

**Sintomi e diagnosi:**

**Messaggi di errore:**

I seguenti errori vengono visualizzati nei registri di creazione dei componenti aggiuntivi o nei registri degli operatori di inferenza:

```
KEDA operator not installed (missing keda-operator pods). 
KEDA can be installed separately in any namespace or via the Inference addon.
```

**Fasi diagnostiche:**

1. Controlla se l'operatore KEDA è installato:

   ```
   # Check for KEDA operator pods in common namespaces
   kubectl get pods -n keda-system | grep keda-operator 2>/dev/null || echo "KEDA not found in keda-system namespace"
   kubectl get pods -n kube-system | grep keda-operator 2>/dev/null || echo "KEDA not found in kube-system namespace"
   kubectl get pods -n hyperpod-inference-system | grep keda-operator 2>/dev/null || echo "KEDA not found in inference namespace"
   
   # Check for KEDA CRDs
   kubectl get crd | grep keda 2>/dev/null || echo "KEDA CRDs not found"
   
   # Check KEDA service account
   kubectl get serviceaccount keda-operator -A 2>/dev/null || echo "KEDA service account not found"
   ```

1. Controlla la configurazione del componente aggiuntivo dell'operatore di inferenza:

   ```
   aws eks describe-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --region $REGION \
       --query "addon.{Status:status,Health:health,ConfigurationValues:configurationValues}" \
       --output json
   ```

**Risoluzione:**

Scegliete una delle seguenti opzioni in base alla vostra configurazione:

**Opzione 1: consenti al componente aggiuntivo di inferenza di installare KEDA (consigliato)**
+ Assicurati che il ruolo KEDA sia creato e configurato correttamente nella configurazione del componente aggiuntivo:

  ```
  # Verify KEDA role exists
  export KEDA_ROLE_ARN=$(aws iam get-role --role-name keda-operator-role --query 'Role.Arn' --output text 2>/dev/null || echo "Role not found")
  echo "KEDA Role ARN: $KEDA_ROLE_ARN"
  
  # Update your addon-config.json to enable KEDA
  cat > addon-config.json << EOF
  {
    "executionRoleArn": "$EXECUTION_ROLE_ARN",
    "tlsCertificateS3Bucket": "$BUCKET_NAME",
    "hyperpodClusterArn": "$HYPERPOD_CLUSTER_ARN",
    "alb": {
      "serviceAccount": {
        "create": true,
        "roleArn": "$ALB_ROLE_ARN"
      }
    },
    "keda": {
      "enabled": true,
      "auth": {
        "aws": {
          "irsa": {
            "roleArn": "$KEDA_ROLE_ARN"
          }
        }
      }
    }
  }
  EOF
  ```

**Opzione 2: utilizza l'installazione KEDA esistente**
+ Se hai già installato KEDA, configura il componente aggiuntivo per utilizzare l'installazione esistente:

  ```
  # Update your addon-config.json to disable KEDA installation
  cat > addon-config.json << EOF
  {
    "executionRoleArn": "$EXECUTION_ROLE_ARN",
    "tlsCertificateS3Bucket": "$BUCKET_NAME",
    "hyperpodClusterArn": "$HYPERPOD_CLUSTER_ARN",
    "alb": {
      "serviceAccount": {
        "create": true,
        "roleArn": "$ALB_ROLE_ARN"
      }
    },
    "keda": {
      "enabled": false
    }
  }
  EOF
  ```

**Fase 3: Riprovare l'installazione dell'operatore di inferenza**

1. Reinstalla il componente aggiuntivo dell'operatore di inferenza con la configurazione aggiornata:

   ```
   # Delete the failed add-on if it exists
   aws eks delete-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --region $REGION 2>/dev/null || echo "Add-on not found, proceeding with installation"
   
   # Wait for deletion to complete
   sleep 30
   
   # Reinstall with updated configuration
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name amazon-sagemaker-hyperpod-inference \
       --addon-version v1.0.0-eksbuild.1 \
       --configuration-values file://addon-config.json \
       --region $REGION
   ```

1. Verifica che KEDA funzioni:

   ```
   # Check KEDA pods
   kubectl get pods -n hyperpod-inference-system | grep keda
   kubectl get pods -n kube-system | grep keda
   kubectl get pods -n keda-system | grep keda 2>/dev/null
   
   # Check KEDA CRDs
   kubectl get crd | grep scaledobjects
   kubectl get crd | grep scaledjobs
   
   # Check KEDA service account annotations
   kubectl describe serviceaccount keda-operator -n hyperpod-inference-system 2>/dev/null
   kubectl describe serviceaccount keda-operator -n kube-system 2>/dev/null
   kubectl describe serviceaccount keda-operator -n keda-system 2>/dev/null
   ```

# Timeout per il download del certificato
<a name="sagemaker-hyperpod-model-deployment-ts-certificate"></a>

Quando si implementa un endpoint SageMaker AI, il processo di creazione fallisce a causa dell'impossibilità di scaricare il certificato dell'autorità di certificazione (CA) in un ambiente VPC. [Per i passaggi di configurazione dettagliati, consulta la guida per l'amministratore.](https://github.com/aws-samples/sagemaker-genai-hosting-examples/blob/main/SageMakerHyperpod/hyperpod-inference/Hyperpod_Inference_Admin_Notebook.ipynb)

**Messaggio di errore:**

Il seguente errore appare nei CloudWatch log degli endpoint SageMaker AI: 

```
Error downloading CA certificate: Connect timeout on endpoint URL: "https://****.s3.<REGION>.amazonaws.com/****/***.pem"
```

**Causa principale:**
+ Questo problema si verifica quando l'operatore di inferenza non può accedere al certificato autofirmato in Amazon S3 all'interno del tuo VPC
+ La corretta configurazione dell'endpoint VPC Amazon S3 è essenziale per l'accesso ai certificati.

**Risoluzione:**

1. Se non disponi di un endpoint VPC Amazon S3:
   + [Crea un endpoint VPC Amazon S3 seguendo la configurazione nella sezione 5.3 della guida per l'amministratore.](https://github.com/aws-samples/sagemaker-genai-hosting-examples/blob/main/SageMakerHyperpod/hyperpod-inference/Hyperpod_Inference_Admin_Notebook.ipynb)

1. Se disponi già di un endpoint VPC Amazon S3:
   + Assicurati che la tabella di routing della sottorete sia configurata per puntare all'endpoint VPC (se si utilizza un endpoint gateway) o che il DNS privato sia abilitato per l'endpoint di interfaccia.
   + L'endpoint VPC di Amazon S3 dovrebbe essere simile alla configurazione menzionata nella sezione 5.3 (fase di creazione dell'endpoint)

# Problemi di distribuzione del modello
<a name="sagemaker-hyperpod-model-deployment-ts-deployment-issues"></a>

**Panoramica:** questa sezione descrive i problemi più comuni che si verificano durante la distribuzione del modello, inclusi gli stati in sospeso, le distribuzioni non riuscite e il monitoraggio dell'avanzamento della distribuzione.

## Distribuzione del modello bloccata in stato di sospeso
<a name="sagemaker-hyperpod-model-deployment-ts-pending"></a>

Quando si distribuisce un modello, la distribuzione rimane nello stato «In sospeso» per un periodo prolungato. Ciò indica che l'operatore di inferenza non è in grado di avviare la distribuzione del modello nel cluster. HyperPod 

**Componenti interessati:**

Durante la normale implementazione, l'operatore di inferenza deve:
+ Implementare un pod modello
+ Creazione di un sistema di bilanciamento del carico
+ Crea un SageMaker endpoint AI

**Fasi di risoluzione dei problemi:**

1. Controlla lo stato del pod dell'operatore di inferenza:

   ```
   kubectl get pods -n hyperpod-inference-system
   ```

   Esempio di output previsto:

   ```
   NAME                                                           READY   STATUS    RESTARTS   AGE
   hyperpod-inference-operator-controller-manager-65c49967f5-894fg   1/1     Running   0         6d13h
   ```

1. Esamina i registri degli operatori di inferenza ed esamina i registri degli operatori per verificare la presenza di messaggi di errore:

   ```
   kubectl logs hyperpod-inference-operator-controller-manager-5b5cdd7757-txq8f -n hyperpod-inference-operator-system
   ```

**Cosa cercare:**
+ Messaggi di errore nei registri degli operatori
+ Stato del pod dell'operatore
+ Eventuali avvisi o guasti relativi all'implementazione

**Nota**  
Una distribuzione efficace dovrebbe andare oltre lo stato «In sospeso» entro un periodo di tempo ragionevole. Se i problemi persistono, esamina i registri degli operatori di inferenza per individuare messaggi di errore specifici per determinare la causa principale.

## Risoluzione dei problemi relativi allo stato di distribuzione del modello
<a name="sagemaker-hyperpod-model-deployment-ts-failed"></a>

Quando l'implementazione di un modello entra in uno stato «Non riuscito», l'errore può verificarsi in uno dei tre componenti:
+ Implementazione del modello pod
+ Creazione di sistemi di bilanciamento del carico
+ SageMaker Creazione di endpoint AI

**Fasi di risoluzione dei problemi:**

1. Controlla lo stato dell'operatore di inferenza:

   ```
   kubectl get pods -n hyperpod-inference-system
   ```

   Output previsto:

   ```
   NAME                                                           READY   STATUS    RESTARTS   AGE
   hyperpod-inference-operator-controller-manager-65c49967f5-894fg   1/1     Running   0         6d13h
   ```

1. Esamina i registri dell'operatore:

   ```
   kubectl logs hyperpod-inference-operator-controller-manager-5b5cdd7757-txq8f -n hyperpod-inference-operator-system
   ```

**Cosa cercare:**

I registri dell'operatore indicheranno quale componente è guasto:
+ Errori di distribuzione del pod del modello
+ Problemi di creazione del sistema di bilanciamento del carico
+ SageMaker Errori degli endpoint AI

## Verifica dell'avanzamento dell'implementazione del modello
<a name="sagemaker-hyperpod-model-deployment-ts-progress"></a>

Per monitorare l'avanzamento della distribuzione del modello e identificare potenziali problemi, è possibile utilizzare i comandi kubectl per controllare lo stato dei vari componenti. Questo aiuta a determinare se l'implementazione sta procedendo normalmente o se ha riscontrato problemi durante la creazione del pod modello, la configurazione del load balancer o SageMaker le fasi di configurazione degli endpoint AI.

**Metodo 1: verifica dello stato del modello JumpStart **

```
kubectl describe jumpstartmodel.inference.sagemaker.aws.amazon.com/<model-name> -n <namespace>
```

**Principali indicatori di stato da monitorare:**

1. Stato dell'implementazione
   + Cerca`Status.State`: Dovrebbe mostrare `DeploymentComplete`
   + Controlla `Status.Deployment Status.Available Replicas`
   + Monitora `Status.Conditions` l'avanzamento dell'implementazione

1. SageMaker Stato dell'endpoint AI
   + Verifica`Status.Endpoints.Sagemaker.State`: dovrebbe apparire `CreationCompleted`
   + Verifica `Status.Endpoints.Sagemaker.Endpoint Arn`

1. Stato del certificato TLS
   + Visualizza dettagli `Status.Tls Certificate`
   + Verifica la scadenza del certificato in `Last Cert Expiry Time`

**Metodo 2: verifica la configurazione dell'endpoint di inferenza**

```
kubectl describe inferenceendpointconfig.inference.sagemaker.aws.amazon.com/<deployment_name> -n <namespace>
```

**Stati di stato comuni:**
+ `DeploymentInProgress`: Fase iniziale di implementazione
+ `DeploymentComplete`: Implementazione riuscita
+ `Failed`: Implementazione non riuscita

**Nota**  
Monitora la sezione Eventi per eventuali avvisi o errori. Verifica che il numero di repliche corrisponda alla configurazione prevista. Verifica tutte le condizioni indicate `Status: True` per una distribuzione corretta.

# Rilascio dell'autorizzazione VPC ENI
<a name="sagemaker-hyperpod-model-deployment-ts-permissions"></a>

SageMaker La creazione di endpoint AI non riesce a causa delle autorizzazioni insufficienti per la creazione di interfacce di rete in VPC.

**Messaggio di errore:**

```
Please ensure that the execution role for variant AllTraffic has sufficient permissions for creating an endpoint variant within a VPC
```

**Causa principale:**

Il ruolo di esecuzione dell'operatore di inferenza non dispone dell'autorizzazione Amazon EC2 richiesta per creare interfacce di rete (ENI) in VPC.

**Risoluzione:**

Aggiungi la seguente autorizzazione IAM al ruolo di esecuzione dell'operatore di inferenza:

```
{
    "Effect": "Allow",
    "Action": [
        "ec2:CreateNetworkInterfacePermission",
        "ec2:DeleteNetworkInterfacePermission"
     ],
    "Resource": "*"
}
```

**Verifica:**

Dopo aver aggiunto l'autorizzazione:

1. Elimina l'endpoint fallito (se esiste)

1. Riprova a creare l'endpoint

1. Monitora lo stato della distribuzione per garantirne il corretto completamento

**Nota**  
Questa autorizzazione è essenziale per gli endpoint SageMaker AI in esecuzione in modalità VPC. Assicurati che il ruolo di esecuzione disponga anche di tutte le altre autorizzazioni necessarie relative al VPC.

# Problema di relazione fiduciaria IAM
<a name="sagemaker-hyperpod-model-deployment-ts-trust"></a>

HyperPod l'operatore di inferenza non riesce a iniziare con un AssumeRoleWithWebIdentity errore STS, il che indica un problema di configurazione della relazione di fiducia IAM.

**Messaggio di errore:**

```
failed to enable inference watcher for HyperPod cluster *****: operation error SageMaker: UpdateClusterInference, 
get identity: get credentials: failed to refresh cached credentials, failed to retrieve credentials, 
operation error STS: AssumeRoleWithWebIdentity, https response error StatusCode: 403, RequestID: ****, 
api error AccessDenied: Not authorized to perform sts:AssumeRoleWithWebIdentity
```

**Risoluzione:**

Aggiorna la relazione di trust del ruolo di esecuzione IAM dell'operatore di inferenza con la seguente configurazione.

Sostituire i seguenti segnaposto:
+ `<ACCOUNT_ID>`: L'ID del tuo AWS account
+ `<REGION>`: La tua AWS regione
+ `<OIDC_ID>`: ID provider OIDC del tuo cluster Amazon EKS

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
            "Federated": "arn:aws:iam::<ACCOUNT_ID>:oidc-provider/oidc.eks.<REGION>.amazonaws.com/id/<OIDC_ID>"
            },
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
                "StringLike": {
                    "oidc.eks.<REGION>.amazonaws.com/id/<OIDC_ID>:sub": "system:serviceaccount:<namespace>:<service-account-name>",
                    "oidc.eks.<REGION>.amazonaws.com/id/<OIDC_ID>:aud": "sts.amazonaws.com"
                }
            }
        },
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "sagemaker.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

**Verifica:**

Dopo aver aggiornato la relazione di fiducia:

1. Verifica la configurazione del ruolo nella console IAM

1. Se necessario, riavvia l'operatore di inferenza

1. Monitora i registri degli operatori per un avvio corretto

# Errore mancante del plug-in GPU NVIDIA
<a name="sagemaker-hyperpod-model-deployment-ts-gpu"></a>

L'implementazione del modello non riesce a causa di un errore di insufficienza della GPU nonostante siano disponibili nodi GPU. Ciò si verifica quando il plug-in del dispositivo NVIDIA non è installato nel cluster. HyperPod

**Messaggio di errore:**

```
0/15 nodes are available: 10 node(s) didn't match Pod's node affinity/selector, 
5 Insufficient nvidia.com/gpu. preemption: 0/15 nodes are available: 
10 Preemption is not helpful for scheduling, 5 No preemption victims found for incoming pod.
```

**Causa principale:**
+ Kubernetes non è in grado di rilevare le risorse della GPU senza il plug-in del dispositivo NVIDIA
+ Provoca errori di pianificazione per i carichi di lavoro della GPU

**Risoluzione:**

Installa il plug-in GPU NVIDIA eseguendo:

```
kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/refs/tags/v0.17.1/deployments/static/nvidia-device-plugin.yml
```

**Passaggi di verifica:**

1. Controlla lo stato di distribuzione del plugin:

   ```
   kubectl get pods -n kube-system | grep nvidia-device-plugin
   ```

1. Verifica che le risorse della GPU siano ora visibili:

   ```
   kubectl get nodes -o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia\\.com/gpu
   ```

1. Riprova la distribuzione del modello

**Nota**  
Assicurati che i driver NVIDIA siano installati sui nodi GPU. L'installazione del plugin è una configurazione unica per cluster. L'installazione può richiedere i privilegi di amministratore del cluster.

# L'operatore di inferenza non si avvia
<a name="sagemaker-hyperpod-model-deployment-ts-startup"></a>

Il pod dell'operatore di inferenza non è stato avviato e causa il seguente messaggio di errore. Questo errore è dovuto alla politica di autorizzazione relativa al ruolo di esecuzione dell'operatore che non è autorizzato a svolgere`sts:AssumeRoleWithWebIdentity`. Per questo motivo, la parte dell'operatore che gira sul piano di controllo non viene avviata.

**Messaggio di errore:**

```
Warning Unhealthy 5m46s (x22 over 49m) kubelet Startup probe failed: Get "http://10.1.100.59:8081/healthz": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
```

**Causa principale:**
+ La politica di autorizzazione del ruolo di esecuzione dell'operatore di inferenza non è impostata per accedere al token di autorizzazione per le risorse.

**Risoluzione:**

Imposta la seguente politica del ruolo di esecuzione di `EXECUTION_ROLE_ARN` per l'operatore di HyperPod inferenza:

```
HyperpodInferenceAccessPolicy-ml-cluster to include all resources
```

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken"
            ],
            "Resource": "*"
        }
    ]
}
```

------

**Fasi di verifica:**

1. Modificare la politica.

1. Termina il pod dell'operatore di HyperPod inferenza.

1. Il pod verrà riavviato senza generare eccezioni.

# Note sulla versione di Amazon SageMaker HyperPod Inference
<a name="sagemaker-hyperpod-inference-release-notes"></a>

Questo argomento tratta le note di rilascio che tengono traccia di aggiornamenti, correzioni e nuove funzionalità per Amazon SageMaker HyperPod Inference. SageMaker HyperPod Inference ti consente di distribuire e scalare modelli di machine learning sui tuoi HyperPod cluster con un'affidabilità di livello aziendale. Per le versioni, gli aggiornamenti e i miglioramenti generali della SageMaker HyperPod piattaforma Amazon, consulta[Note di SageMaker HyperPod rilascio di Amazon](sagemaker-hyperpod-release-notes.md).

Per informazioni sulle funzionalità di SageMaker HyperPod inferenza e sulle opzioni di distribuzione, consulta[Implementazione di modelli su Amazon SageMaker HyperPod](sagemaker-hyperpod-model-deployment.md).

## SageMaker HyperPod Note sulla versione di Inference: v3.0
<a name="sagemaker-hyperpod-inference-release-notes-20260223"></a>

**Data di uscita:** 23 febbraio 2026

**Riepilogo**

Inference Operator 3.0 introduce l'integrazione del componente aggiuntivo EKS per una gestione semplificata del ciclo di vita, il supporto Node Affinity per il controllo granulare della pianificazione e una migliore etichettatura delle risorse. Le installazioni esistenti basate su Helm possono essere migrate al componente aggiuntivo EKS utilizzando lo script di migrazione fornito. Aggiorna il tuo ruolo di esecuzione di Inference Operator con nuove autorizzazioni di tagging prima dell'aggiornamento.

**Caratteristiche principali**
+ **EKS Add-on Integration**: gestione del ciclo di vita di livello aziendale con esperienza di installazione semplificata
+ **Node Affinity**: controllo granulare della pianificazione per escludere le istanze spot, preferire le zone di disponibilità o indirizzare i nodi con etichette personalizzate

Per informazioni dettagliate, tra cui prerequisiti, istruzioni di aggiornamento e linee guida sulla migrazione, consulta le sezioni seguenti.

### Prerequisiti
<a name="sagemaker-hyperpod-inference-v3-0-prerequisites"></a>

Prima di aggiornare la versione Helm alla 3.0, i clienti devono aggiungere ulteriori autorizzazioni di tagging al proprio ruolo di operatore di esecuzione di Inference. Nell'ambito del miglioramento della codifica e della sicurezza delle risorse, Inference Operator ora tagga le risorse ALB, S3 e ACM. Questo miglioramento richiede autorizzazioni aggiuntive nel ruolo di esecuzione di Inference Operator. Aggiungi le seguenti autorizzazioni al tuo ruolo di esecuzione Inference Operator:

```
{  
    "Sid": "CertificateTagginPermission",  
    "Effect": "Allow",  
    "Action": [  
        "acm:AddTagsToCertificate"  
    ],  
    "Resource": "arn:aws:acm:*:*:certificate/*",  
},  
{  
    "Sid": "S3PutObjectTaggingAccess",  
    "Effect": "Allow",  
    "Action": [  
        "s3:PutObjectTagging"  
    ],  
    "Resource": [  
        "arn:aws:s3:::<TLS_BUCKET>/*" # Replace * with your TLS bucket  
    ]  
}
```

### Aggiornamento alla versione 3.0
<a name="sagemaker-hyperpod-inference-v3-0-upgrade"></a>

Se hai già installato Inference Operator tramite Helm, usa i seguenti comandi per eseguire l'aggiornamento:

```
helm get values -n kube-system hyperpod-inference-operator \
> current-values.yaml

cd sagemaker-hyperpod-cli/helm_chart/HyperPodHelmChart/\
charts/inference-operator

helm upgrade hyperpod-inference-operator . -n kube-system \
  -f current-values.yaml --set image.tag=v3.0
    
# Verification
kubectl get deployment hyperpod-inference-operator-controller-manager \
  -n hyperpod-inference-system \
  -o jsonpath='{.spec.template.spec.containers[0].image}'
```

### Migrazione del componente aggiuntivo da Helm a EKS
<a name="sagemaker-hyperpod-inference-v3-0-migration"></a>

Se Inference operator è installato tramite Helm prima della versione 3.0, consigliamo di migrare a EKS Add-on per ottenere aggiornamenti tempestivi sulle nuove funzionalità che verranno rilasciate per Inference Operator. Questo script migra l' SageMaker HyperPod Inference Operator dall'installazione basata su Helm all'installazione del componente aggiuntivo EKS.

**Panoramica:** lo script accetta un nome e una regione del cluster come parametri, recupera la configurazione di installazione di Helm esistente e migra alla distribuzione di EKS Add-on. Crea nuovi ruoli IAM per Inference Operator, ALB Controller e KEDA Operator.

Prima di migrare l'Inference Operator, lo script garantisce l'esistenza delle dipendenze richieste (driver CSI S3, driver CSI, cert-manager e FSx metrics-server). Se non esistono, li distribuisce come componenti aggiuntivi.

Una volta completata la migrazione del componente aggiuntivo Inference Operator, lo script migra anche S3 e altre dipendenze (ALB FSx, KEDA, cert-manager, metrics-server) se originariamente installate tramite il grafico Inference Operator Helm. Utilizzatelo per saltare questo passaggio per il driver S3 `--skip-dependencies-migration` CSI, il driver CSI, il cert-manager e il metrics-server. FSx Tieni presente che ALB e KEDA vengono installati come parte del componente aggiuntivo nello stesso spazio dei nomi di Inference Operator e verranno migrati come parte del componente aggiuntivo Inference Operator.

**Importante**  
Durante la migrazione, non distribuite nuovi modelli poiché non verranno distribuiti fino al completamento della migrazione. Una volta che il componente aggiuntivo Inference Operator è in stato ATTIVO, è possibile implementare nuovi modelli. Il tempo di migrazione richiede in genere da 15 a 20 minuti e può essere completata entro 30 minuti se al momento sono installati solo pochi modelli.

**Prerequisiti per la migrazione:**
+ AWS CLI configurato con credenziali appropriate
+ kubectl configurato con accesso al cluster EKS
+ Helm installato
+ Installazione Helm esistente di hyperpod-inference-operator

**Nota**  
Gli endpoint già in esecuzione non verranno interrotti durante il processo di migrazione. Gli endpoint esistenti continueranno a servire il traffico senza interruzioni durante tutta la migrazione.

**Ottenere lo script di migrazione:**

```
git clone https://github.com/aws/sagemaker-hyperpod-cli.git
cd sagemaker-hyperpod-cli/helm_chart/HyperPodHelmChart/\
charts/inference-operator/migration
```

**Utilizzo:**

```
./helm_to_addon.sh [OPTIONS] \
  --cluster-name <cluster-name> (Required) \
  --region <region> (Required) \
  --helm-namespace kube-system (Optional) \
  --auto-approve (Optional) \
  --skip-dependencies-migration (Optional) \
  --s3-mountpoint-role-arn <s3-mountpoint-role-arn> (Optional) \
  --fsx-role-arn <fsx-role-arn> (Optional)
```

**Opzioni:**
+ `--cluster-name NAME`— nome del cluster EKS (richiesto)
+ `--region REGION`— AWS regione (richiesto)
+ `--helm-namespace NAMESPACE`— Namespace in cui è installato Helm chart (impostazione predefinita: kube-system) (opzionale)
+ `--s3-mountpoint-role-arn ARN`— ARN del ruolo IAM del driver S3 Mountpoint CSI (opzionale)
+ `--fsx-role-arn ARN`— ARN del ruolo IAM del driver FSx CSI (opzionale)
+ `--auto-approve`— Ignora le richieste di conferma se questo flag è abilitato. `step-by-step`e `auto-approve` si escludono a vicenda, se fornite, `--auto-approve` non specificate (opzionale) `--step-by-step`
+ `--step-by-step`— Fai una pausa dopo ogni passaggio principale per la revisione. Questo non dovrebbe essere menzionato se `--auto-approve` è già stato aggiunto (opzionale)
+ `--skip-dependencies-migration`— Salta la migrazione delle dipendenze installate da Helm su Add-on. Perché le dipendenze NON sono state installate tramite il grafico Inference Operator Helm o se si desidera gestirle separatamente. (opzionale)

**Esempi:**

Migrazione di base (migra le dipendenze):

```
./helm_to_addon.sh \
  --cluster-name my-cluster \
  --region us-east-1
```

Approvazione automatica senza richieste:

```
./helm_to_addon.sh \
  --cluster-name my-cluster \
  --region us-east-1 \
  --auto-approve
```

Salta la migrazione delle dipendenze per S3 mountpoint FSx, cert manager e Metrics server:

```
./helm_to_addon.sh \
  --cluster-name my-cluster \
  --region us-east-1 \
  --skip-dependencies-migration
```

Fornisci ruoli S3 e IAM esistenti: FSx 

```
./helm_to_addon.sh \
  --cluster-name my-cluster \
  --region us-east-1 \
  --s3-mountpoint-role-arn arn:aws:iam::123456789012:role/s3-csi-role \
  --fsx-role-arn arn:aws:iam::123456789012:role/fsx-csi-role
```

**Posizione di backup:**

I backup sono archiviati in `/tmp/hyperpod-migration-backup-<timestamp>/`

I backup consentono la migrazione e il ripristino sicuri:
+ **Rollback in caso di errore**: se la migrazione fallisce, lo script può ripristinare automaticamente il cluster allo stato precedente alla migrazione utilizzando le configurazioni di backup
+ **Audit Trail**: fornisce una registrazione completa di ciò che esisteva prima della migrazione per la risoluzione dei problemi e la conformità
+ **Riferimento alla configurazione**: consente di confrontare le configurazioni precedenti e successive alla migrazione
+ **Ripristino manuale**: se necessario, è possibile ispezionare e ripristinare manualmente risorse specifiche dalla directory di backup

**Ripristino:**

Se la migrazione fallisce, lo script richiede la conferma dell'utente prima di avviare il rollback per ripristinare lo stato precedente.

## SageMaker HyperPod Note sulla versione di Inference: v2.3
<a name="sagemaker-hyperpod-inference-release-notes-20260203"></a>

**Cosa c'è di nuovo**

Questa versione introduce nuovi campi opzionali nelle Custom Resource Definitions (CRDs) per migliorare la flessibilità di configurazione della distribuzione.

**Funzionalità**
+ **Tipi di istanze multiple**
  + **Maggiore affidabilità di implementazione**: supporta configurazioni di tipo multiistanza con failover automatico su tipi di istanza alternativi quando le opzioni preferite non dispongono di capacità
  + **Pianificazione intelligente delle risorse: utilizza l'**affinità dei nodi Kubernetes per dare priorità ai tipi di istanze garantendo al contempo l'implementazione anche quando le risorse preferite non sono disponibili
  + **Costi e prestazioni ottimizzati: mantiene le preferenze relative al tipo di istanza e previene** i guasti legati alla capacità durante le fluttuazioni del cluster

**Correzioni di bug**

Le modifiche al campo `invocationEndpoint` nelle specifiche di ora avranno effetto: `InferenceEndpointConfig`
+ Se il `invocationEndpoint` campo è patchato o aggiornato, le risorse dipendenti, come Load Balancer SageMaker ed Endpoint`SageMakerEndpointRegistration`, verranno aggiornate con la normalizzazione. `Ingress`
+ Il valore `invocationEndpoint` fornito verrà memorizzato così com'è nelle specifiche stesse. `InferenceEndpointConfig` Quando questo valore viene utilizzato per creare un Load Balancer e, se abilitato, un SageMaker Endpoint, verrà normalizzato in modo da avere una barra anteriore.
  + `v1/chat/completions`verrà normalizzato a `/v1/chat/completions` for the`Ingress`, AWS Load Balancer ed Endpoint. SageMaker Per il`SageMakerEndpointRegistration`, verrà visualizzato nelle sue specifiche come. `v1/chat/completions`
  + `///invoke`verrà normalizzato a `/invoke` for the`Ingress`, AWS Load Balancer ed Endpoint. SageMaker Per il`SageMakerEndpointRegistration`, verrà visualizzato nelle sue specifiche come. `invoke`

**Installazione di Helm:**

Segui: [https://github.com/aws/sagemaker-hyperpod-cli/\$1chart tree/main/helm](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart)

Se ti concentri solo sull'installazione dell'operatore di inferenza, dopo il passaggio 1, ad esempio`Set Up Your Helm Environment`, fallo. `cd HyperPodHelmChart/charts/inference-operator` Poiché ti trovi nella stessa directory del grafico degli operatori di inferenza, nei comandi, ovunque tu veda`helm_chart/HyperPodHelmChart`, sostituisci con. `.`

**Aggiorna Operator alla versione 2.3 nel caso in cui sia già installato:**

```
cd sagemaker-hyperpod-cli/helm_chart/HyperPodHelmChart/\
charts/inference-operator

helm get values -n kube-system hyperpod-inference-operator \
> current-values.yaml

helm upgrade hyperpod-inference-operator . \
  -n kube-system \
  -f current-values.yaml \
  --set image.tag=v2.3
```

# HyperPod in Studio
<a name="sagemaker-hyperpod-studio"></a>

Puoi avviare carichi di lavoro di machine learning sui SageMaker HyperPod cluster Amazon e visualizzare le informazioni sui HyperPod cluster in Amazon SageMaker Studio. La maggiore visibilità dei dettagli del cluster e delle metriche hardware può aiutare il team a identificare il candidato giusto per i carichi di lavoro di preaddestramento o fine-tuning. 

È disponibile una serie di comandi per aiutarti a iniziare quando avvii Studio IDEs su un HyperPod cluster. Puoi lavorare sugli script di formazione, utilizzare i contenitori Docker per gli script di formazione e inviare lavori al cluster, il tutto dall'interno di Studio. IDEs Le sezioni seguenti forniscono informazioni su come configurarlo, come individuare i cluster e monitorarne le attività, come visualizzare le informazioni sui cluster e come connettersi ai HyperPod cluster all'interno di Studio. IDEs 

**Topics**
+ [Configurazione in Studio HyperPod](sagemaker-hyperpod-studio-setup.md)
+ [HyperPod schede in Studio](sagemaker-hyperpod-studio-tabs.md)
+ [Connessione ai HyperPod cluster e invio di attività ai cluster](sagemaker-hyperpod-studio-open.md)
+ [Risoluzione dei problemi](sagemaker-hyperpod-studio-troubleshoot.md)

# Configurazione in Studio HyperPod
<a name="sagemaker-hyperpod-studio-setup"></a>

È necessario configurare i cluster in base alla scelta dell'orchestratore del cluster per accedere ai cluster tramite Amazon Studio. SageMaker Nelle sezioni seguenti, scegli la configurazione più adatta al tuo orchestratore.

Le istruzioni presuppongono che il cluster sia già stato configurato. Per informazioni sugli orchestratori di cluster e su come configurarli, inizia con le pagine relative agli orchestrator: HyperPod 
+  [Orchestrazione SageMaker HyperPod dei cluster con SlurmOrchestrazione Slurm](sagemaker-hyperpod-slurm.md) 
+  [Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md) 

**Topics**
+ [Configurazione di un cluster Slurm in Studio](sagemaker-hyperpod-studio-setup-slurm.md)
+ [Configurazione di un cluster Amazon EKS in Studio](sagemaker-hyperpod-studio-setup-eks.md)

# Configurazione di un cluster Slurm in Studio
<a name="sagemaker-hyperpod-studio-setup-slurm"></a>

Le seguenti istruzioni descrivono come configurare un cluster HyperPod Slurm in Studio.

1. Crea un dominio o tienine uno pronto. Per informazioni sulla creazione di un dominio, consulta [Guida alla configurazione con Amazon SageMaker AI](gs.md).

1. (Facoltativo) Crea e allega un volume personalizzato FSx per Lustre al tuo dominio. 

   1. Assicurati che il tuo file system FSx Lustre esista nello stesso VPC del dominio previsto e si trovi in una delle sottoreti presenti nel dominio.

   1. Puoi seguire le istruzioni in [Aggiunta di un file system personalizzato a un dominio](domain-custom-file-system.md). 

1. (Facoltativo) Consigliamo di aggiungere tag ai cluster per garantire un flusso di lavoro più fluido. Per informazioni su come aggiungere tag, consulta [Modifica un SageMaker HyperPod cluster](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-edit-clusters) Aggiornare il cluster utilizzando la console AI. SageMaker 

   1. Aggiungi il tuo file system FSx for Lustre al tuo dominio Studio. Questo consente di identificare il file system durante l’avvio degli spazi di Studio. A tale scopo, aggiungi il seguente tag al cluster per identificarlo con l'ID del FSx filesystem,. `fs-id` 

      Chiave tag = “`hyperpod-cluster-filesystem`”, valore tag = “`fs-id`”.

   1. Tagga lo spazio di lavoro [Grafana gestito da Amazon](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html) al tuo dominio Studio. Così facendo, puoi collegare in modo rapido e diretto lo spazio di lavoro Grafana dal cluster in Studio. A tale scopo, aggiungi il tag seguente al cluster per identificarlo con l’ID dello spazio di lavoro Grafana, `ws-id`.

      Chiave tag = “`grafana-workspace`”, valore tag = “`ws-id`”.

1. Aggiungi l’autorizzazione seguente al tuo ruolo di esecuzione. 

   Per informazioni sui ruoli di esecuzione dell' SageMaker IA e su come modificarli, consulta. [Informazioni sulle autorizzazioni e sui ruoli di esecuzione dello spazio del dominio](execution-roles-and-spaces.md) 

   Per informazioni su come collegare le policy a un utente o a un gruppo IAM, consulta [Adding and removing IAM identity permissions](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ssm:StartSession",
                   "ssm:TerminateSession"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "sagemaker:CreateCluster",
                   "sagemaker:ListClusters"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "cloudwatch:PutMetricData",
                   "cloudwatch:GetMetricData"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "sagemaker:DescribeCluster",
                   "sagemaker:DescribeClusterNode",
                   "sagemaker:ListClusterNodes",
                   "sagemaker:UpdateCluster",
                   "sagemaker:UpdateClusterSoftware"
               ],
               "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/*"
           }
       ]
   }
   ```

------

1. Aggiungi un tag a questo ruolo IAM, con Chiave tag = “`SSMSessionRunAs`” e valore tag = “`os user`”. `os user` qui corrisponde allo stesso utente configurato per il cluster Slurm. Gestisci l'accesso ai SageMaker HyperPod cluster a livello di ruolo o utente IAM utilizzando la funzionalità Run As in [AWS Systems Manager Agent (SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html)). Con questa funzionalità, puoi avviare ogni sessione SSM utilizzando l’utente del sistema operativo (OS) associato al ruolo o all’utente IAM. 

   Per informazioni su come aggiungere tag al ruolo di esecuzione, consulta [Tag IAM roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags_roles.html).

1. [Attiva il supporto per Esegui come per i nodi gestiti di Linux e macOS](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-preferences-run-as.html). Le impostazioni Esegui come sono valide per l’intero account e sono necessarie per avviare correttamente tutte le sessioni SSM.

1. (Facoltativo) [Limitazione della visualizzazione delle attività nei cluster Studio per Slurm](#sagemaker-hyperpod-studio-setup-slurm-restrict-tasks-view). Per informazioni sulle attività visibili in Studio, consulta [Processi](sagemaker-hyperpod-studio-tabs.md#sagemaker-hyperpod-studio-tabs-tasks).

In Amazon SageMaker Studio puoi navigare per visualizzare i tuoi cluster in HyperPod cluster (in Compute).

## Limitazione della visualizzazione delle attività nei cluster Studio per Slurm
<a name="sagemaker-hyperpod-studio-setup-slurm-restrict-tasks-view"></a>

Puoi impostare una limitazione che consente agli utenti di visualizzare solo le attività Slurm per le quali dispongono di autorizzazioni, senza richiedere l’immissione manuale di namespace o ulteriori controlli delle autorizzazioni. La limitazione viene applicata in base al ruolo IAM degli utenti, fornendo loro un’esperienza semplificata e sicura. La sezione seguente fornisce informazioni su come limitare la visualizzazione delle attività nei cluster Studio per Slurm. Per informazioni sulle attività visibili in Studio, consulta [Processi](sagemaker-hyperpod-studio-tabs.md#sagemaker-hyperpod-studio-tabs-tasks). 

Per impostazione predefinita, tutti gli utenti di Studio possono visualizzare, gestire e interagire con tutte le attività del cluster Slurm. Per limitare questo limite, puoi gestire l'accesso ai SageMaker HyperPod cluster a livello di ruolo o utente IAM utilizzando la funzionalità **Run As in AWS Systems Manager Agent (SSM** [Agent)](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html).

Puoi farlo taggando i ruoli IAM con identificatori specifici, come il nome utente o il gruppo. Quando un utente accede a Studio, Gestione sessioni utilizza la funzionalità Esegui come per eseguire i comandi come account utente Slurm specifico che corrisponde ai tag del ruolo IAM. La configurazione Slurm può essere impostata per limitare la visibilità delle attività in base all’account utente. L’interfaccia utente di Studio filtrerà automaticamente le attività visibili all’account dell’utente specifico quando i comandi vengono eseguiti con la funzionalità Esegui come. Al termine della configurazione, Una ogni utente che assume il ruolo con gli identificatori specificati vedrà le attività Slurm filtrate in base alla configurazione Slurm. Per informazioni su come aggiungere tag al ruolo di esecuzione, consulta [Tag IAM roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags_roles.html).

# Configurazione di un cluster Amazon EKS in Studio
<a name="sagemaker-hyperpod-studio-setup-eks"></a>

Nelle istruzioni seguenti viene descritto come configurare un cluster Amazon EKS in Studio.

1. Crea un dominio o tienine uno pronto. Per informazioni sulla creazione di un dominio, consulta [Guida alla configurazione con Amazon SageMaker AI](gs.md).

1. Aggiungi l’autorizzazione seguente al tuo ruolo di esecuzione. 

   Per informazioni sui ruoli di esecuzione dell' SageMaker IA e su come modificarli, consulta[Informazioni sulle autorizzazioni e sui ruoli di esecuzione dello spazio del dominio](execution-roles-and-spaces.md). 

   Per informazioni su come collegare le policy a un utente o a un gruppo IAM, consulta [Adding and removing IAM identity permissions](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "DescribeHyerpodClusterPermissions",
               "Effect": "Allow",
               "Action": [
                   "sagemaker:DescribeCluster"
               ],
               "Resource": "arn:aws:sagemaker:us-east-1:111122223333:cluster/cluster-name"
           },
           {
               "Effect": "Allow",
               "Action": "ec2:Describe*",
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ecr:CompleteLayerUpload",
                   "ecr:GetAuthorizationToken",
                   "ecr:UploadLayerPart",
                   "ecr:InitiateLayerUpload",
                   "ecr:BatchCheckLayerAvailability",
                   "ecr:PutImage"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
                   "Action": [
                       "cloudwatch:PutMetricData",
                       "cloudwatch:GetMetricData"
                       ],
               "Resource": "*"
           },
           {
               "Sid": "UseEksClusterPermissions",
               "Effect": "Allow",
               "Action": [
                   "eks:DescribeCluster",
                   "eks:AccessKubernetesApi",
                   "eks:DescribeAddon"
               ],
               "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/cluster-name"
           },
           {
               "Sid": "ListClustersPermission",
               "Effect": "Allow",
               "Action": [
                   "sagemaker:ListClusters"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ssm:StartSession",
                   "ssm:TerminateSession"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. [Concedi agli utenti IAM l’accesso a Kubernetes con le voci di accesso EKS](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html).

   1. Passa al cluster Amazon EKS associato al tuo HyperPod cluster.

   1. Scegli la scheda **Accesso** e [crea una voce di accesso](https://docs.aws.amazon.com/eks/latest/userguide/creating-access-entries.html) per il ruolo di esecuzione che hai creato. 

      1. Nella Fase 1, seleziona il ruolo di esecuzione che hai creato sopra nell’elenco a discesa del principale **IAM**.

      1. Nella Fase 2, seleziona il nome di una policy e la portata dell’accesso che intendi concedere agli utenti. 

1. (Facoltativo) Per garantire un’esperienza più fluida, ti consigliamo di aggiungere tag ai tuoi cluster. Per informazioni su come aggiungere tag, consulta come [Modifica un SageMaker HyperPod cluster](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-edit-clusters) aggiornare il cluster utilizzando la console SageMaker AI.

   1. Tagga lo spazio di lavoro [Grafana gestito da Amazon](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html) al tuo dominio Studio. Così facendo, puoi collegare in modo rapido e diretto lo spazio di lavoro Grafana dal cluster in Studio. A tale scopo, aggiungi il tag seguente al cluster per identificarlo con l’ID dello spazio di lavoro Grafana, `ws-id`.

     Chiave tag = “`grafana-workspace`”, valore tag = “`ws-id`”.

1. (Facoltativo) [Limitazione della visualizzazione delle attività in Studio per i cluster EKS](#sagemaker-hyperpod-studio-setup-eks-restrict-tasks-view). Per informazioni sulle attività visibili in Studio, consulta [Processi](sagemaker-hyperpod-studio-tabs.md#sagemaker-hyperpod-studio-tabs-tasks).

## Limitazione della visualizzazione delle attività in Studio per i cluster EKS
<a name="sagemaker-hyperpod-studio-setup-eks-restrict-tasks-view"></a>

Puoi limitare le autorizzazioni dei namespace Kubernetes per gli utenti, in modo che possano visualizzare solo le attività appartenenti a un namespace specificato. Di seguito vengono fornite informazioni su come limitare la visualizzazione delle attività in Studio per i cluster EKS. Per informazioni sulle attività visibili in Studio, consulta [Processi](sagemaker-hyperpod-studio-tabs.md#sagemaker-hyperpod-studio-tabs-tasks). 

Per impostazione predefinita, gli utenti avranno visibilità su tutte le attività del cluster EKS. Puoi limitare la visibilità degli utenti sulle attività del cluster EKS in base a namespace specifici. In questo modo, gli utenti possono accedere alle risorse di cui hanno bisogno, ma al tempo stesso vengono garantiti rigorosi controlli di accesso. Per consentire la visualizzazione dei processi in un namespace a un utente, devi specificare il namespace dopo aver impostato quanto segue.

Una volta applicata la limitazione, dovrai fornire il namespace agli utenti che assumono il ruolo. Studio mostrerà i processi del namespace solo dopo che l’utente fornirà il namespace per il quale dispone delle autorizzazioni per la visualizzazione nella scheda **Attività**. 

La configurazione seguente consente agli amministratori di concedere un accesso specifico e limitato ai Data Scientist per la visualizzazione delle attività all’interno del cluster. La configurazione concede le autorizzazioni seguenti:
+ Elenca e ottieni i pod
+ Elenca e ottieni gli eventi
+ Ottieni definizioni di risorse personalizzate (CRDs)

Configurazione YAML

```
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: pods-events-crd-cluster-role
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "list"]
- apiGroups: [""]
  resources: ["events"]
  verbs: ["get", "list"]
- apiGroups: ["apiextensions.k8s.io"]
  resources: ["customresourcedefinitions"]
  verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: pods-events-crd-cluster-role-binding
subjects:
- kind: Group
  name: pods-events-crd-cluster-level
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: pods-events-crd-cluster-role
  apiGroup: rbac.authorization.k8s.io
```

1. Salva la configurazione YAML in un file denominato `cluster-role.yaml`.

1. Applica la configurazione utilizzando [https://kubernetes.io/docs/reference/kubectl/](https://kubernetes.io/docs/reference/kubectl/):

   ```
   kubectl apply -f cluster-role.yaml
   ```

1. Verifica la configurazione:

   ```
   kubectl get clusterrole pods-events-crd-cluster-role
   kubectl get clusterrolebinding pods-events-crd-cluster-role-binding
   ```

1. Assegna gli utenti al gruppo `pods-events-crd-cluster-level` tramite il tuo gestore dell’identità digitale o IAM.

# HyperPod schede in Studio
<a name="sagemaker-hyperpod-studio-tabs"></a>

In Amazon SageMaker Studio puoi accedere a uno dei tuoi cluster all'interno dei **HyperPodcluster** (in **Compute**) e visualizzare l'elenco dei cluster. I cluster visualizzati contengono informazioni come attività, metriche hardware, impostazioni e dettagli sui metadati. Questa visibilità può aiutare il team a identificare il candidato giusto per i carichi di lavoro di preaddestramento o di fine-tuning. Nelle sezioni seguenti vengono approfonditi i vari tipi di informazioni.

## Processi
<a name="sagemaker-hyperpod-studio-tabs-tasks"></a>

Amazon SageMaker HyperPod fornisce una visualizzazione delle attività del cluster. Le attività sono operazioni o processi che vengono inviati al cluster. Queste possono essere operazioni di machine learning, come addestramento, esecuzione di esperimenti o inferenza. La sezione seguente fornisce informazioni sulle attività HyperPod del cluster.

In Amazon SageMaker Studio, puoi accedere a uno dei tuoi cluster nei **HyperPodcluster** (in **Compute**) e visualizzare le informazioni sulle **attività** sul tuo cluster. Se riscontri problemi con la visualizzazione delle attività, consulta [Risoluzione dei problemi](sagemaker-hyperpod-studio-troubleshoot.md).

La tabella delle attività include:

------
#### [ For Slurm clusters ]

Per i cluster Slurm, le attività attualmente presenti nella coda dello scheduler dei processi Slurm sono mostrate nella tabella. Le informazioni mostrate per ogni attività includono il nome dell’attività, lo stato, l’ID del processo, la partizione, il runtime, i nodi, l’autore e le azioni.

Per un elenco e dettagli sui lavori precedenti, usa il [https://slurm.schedmd.com/sacct.html](https://slurm.schedmd.com/sacct.html)comando in JupyterLab o un terminale Code Editor. Il comando `sacct` viene utilizzato per visualizzare *informazioni cronologiche* sui processi *terminati* o *completati* nel sistema. Fornisce informazioni sull’accounting, incluso l’utilizzo delle risorse del processo come la memoria e lo stato di uscita. 

Per impostazione predefinita, tutti gli utenti di Studio possono visualizzare, gestire e interagire con tutte le attività Slurm disponibili. Per limitare le attività visibili agli utenti di Studio, consulta [Limitazione della visualizzazione delle attività nei cluster Studio per Slurm](sagemaker-hyperpod-studio-setup-slurm.md#sagemaker-hyperpod-studio-setup-slurm-restrict-tasks-view).

------
#### [ For Amazon EKS clusters ]

Per i cluster Amazon EKS, le attività kubeflow (PyTorch, MPI, TensorFlow) sono mostrate nella tabella. PyTorch le attività sono mostrate per impostazione predefinita. È possibile ordinare per PyTorch, MPI e TensorFlow in **Tipo di attività**. Le informazioni mostrate per ogni attività includono il nome dell’attività, lo stato, il namespace, la classe di priorità e l’ora di creazione. 

Per impostazione predefinita, tutti gli utenti possono visualizzare i processi in tutti i namespace. Per limitare i namespace Kubernetes visualizzabili dagli utenti di Studio, consulta [Limitazione della visualizzazione delle attività in Studio per i cluster EKS](sagemaker-hyperpod-studio-setup-eks.md#sagemaker-hyperpod-studio-setup-eks-restrict-tasks-view). Se un utente non visualizza alcuna attività e riceve un messaggio che chiede di fornire un namespace, deve ottenere tali informazioni dall’amministratore. 

------

## Metriche
<a name="sagemaker-hyperpod-studio-tabs-metrics"></a>

Amazon SageMaker HyperPod fornisce una visualizzazione delle metriche di utilizzo del cluster Slurm o Amazon EKS. Di seguito vengono fornite informazioni sui parametri del cluster. HyperPod 

Devi installare il componente aggiuntivo Amazon EKS per visualizzare le seguenti metriche. Per ulteriori informazioni, consulta [Installare il componente aggiuntivo Amazon CloudWatch Observability EKS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-setup-EKS-addon.html).

In Amazon SageMaker Studio, puoi accedere a uno dei tuoi cluster all'interno dei **HyperPodcluster** (in **Compute**) e visualizzare i dettagli delle **metriche** sul tuo cluster. In Metriche puoi ottenere una visione completa delle metriche di utilizzo dei cluster, ad esempio quelle relative all’hardware, al team e alle attività. Sono inclusi la disponibilità e l’utilizzo delle risorse di calcolo, l’allocazione e l’utilizzo del team e le informazioni sull’esecuzione delle attività e sui tempi di attesa. 

## Settings
<a name="sagemaker-hyperpod-studio-tabs-settings"></a>

Amazon SageMaker HyperPod fornisce una visualizzazione delle impostazioni del cluster. Di seguito vengono fornite informazioni sulle impostazioni del HyperPod cluster.

In Amazon SageMaker Studio puoi accedere a uno dei tuoi cluster all'interno dei **HyperPodcluster** (in **Compute**) e visualizzare **le informazioni sulle impostazioni** del cluster. Vengono fornite le informazioni seguenti:
+ Dettagli sulle **istanze**, tra cui ID dell’istanza, stato, tipo di istanza e gruppo di istanze
+ Dettagli sui **gruppi di istanze**, tra cui nome, tipo, conteggi e informazioni sulle risorse di calcolo
+ Dettagli sull’**orchestrazione**, inclusi l’orchestratore, la versione e l’autorità di certificazione
+ Dettagli sulla **resilienza del cluster**
+ Dettagli sulla **sicurezza**, ad esempio relativi a sottoreti e gruppi di sicurezza

## Informazioni
<a name="sagemaker-hyperpod-studio-tabs-details"></a>

Amazon SageMaker HyperPod fornisce una visualizzazione dei dettagli dei metadati del cluster. Il paragrafo seguente fornisce informazioni su come ottenere i dettagli HyperPod del cluster.

In Amazon SageMaker Studio, puoi accedere a uno dei tuoi cluster all'interno dei **HyperPodcluster** (in **Compute**) e visualizzare **i dettagli** sul tuo cluster. Questi includono tag, log e metadati.

# Connessione ai HyperPod cluster e invio di attività ai cluster
<a name="sagemaker-hyperpod-studio-open"></a>

Puoi avviare carichi di lavoro di machine learning su HyperPod cluster all'interno di Amazon SageMaker Studio. IDEs Quando avvii Studio IDEs su un HyperPod cluster, è disponibile una serie di comandi per aiutarti a iniziare. Puoi lavorare sugli script di formazione, utilizzare i contenitori Docker per gli script di formazione e inviare lavori al cluster, il tutto dall'interno di Studio. IDEs La sezione seguente fornisce informazioni su come connettere il cluster a Studio. IDEs

In Amazon SageMaker Studio puoi accedere a uno dei tuoi cluster all'interno dei **HyperPodcluster** (in **Compute**) e visualizzare l'elenco dei cluster. Puoi connettere il tuo cluster a un IDE elencato in **Azioni**. 

Puoi anche scegliere un file system personalizzato dall’elenco delle opzioni. Per informazioni su come eseguire la configurazione, consulta [Configurazione in Studio HyperPod](sagemaker-hyperpod-studio-setup.md).

In alternativa, puoi creare uno spazio e avviare un IDE utilizzando la AWS CLI. A tale scopo, utilizza i comandi seguenti. L'esempio seguente crea uno `Private` `JupyterLab` spazio per `user-profile-name` con il file system `fs-id` FSx for Lustre allegato.

1. Create uno spazio utilizzando. [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-space.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-space.html) AWS CLI

   ```
   aws sagemaker create-space \
   --region your-region \
   --ownership-settings "OwnerUserProfileName=user-profile-name" \
   --space-sharing-settings "SharingType=Private" \
   --space-settings "AppType=JupyterLab,CustomFileSystems=[{FSxLustreFileSystem={FileSystemId=fs-id}}]"
   ```

1. Crea l'app utilizzando [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-app.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-app.html) AWS CLI.

   ```
   aws sagemaker create-app \
   --region your-region \
   --space-name space-name \
   --resource-spec '{"ec2InstanceType":"'"instance-type"'","appEnvironmentArn":"'"image-arn"'"}'
   ```

Una volta aperte le applicazioni, puoi inviare le attività direttamente ai cluster connessi. 

# Risoluzione dei problemi
<a name="sagemaker-hyperpod-studio-troubleshoot"></a>

La sezione seguente elenca le soluzioni per la risoluzione dei problemi HyperPod in Studio.

**Topics**
+ [Scheda Attività](#sagemaker-hyperpod-studio-troubleshoot-tasks)
+ [Scheda dei parametri](#sagemaker-hyperpod-studio-troubleshoot-metrics)

## Scheda Attività
<a name="sagemaker-hyperpod-studio-troubleshoot-tasks"></a>

Se visualizzi Definizione di risorse personalizzate (CRD) non configurata nel cluster quando sei nella scheda **Attività**.
+ Concedi le policy `EKSAdminViewPolicy` e `ClusterAccessRole` al ruolo di esecuzione del dominio. 

  Per informazioni su come aggiungere tag al ruolo di esecuzione, consulta [Tag IAM roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags_roles.html).

  Per informazioni su come collegare le policy a un utente o a un gruppo IAM, consulta [Adding and removing IAM identity permissions](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).

Se la griglia delle attività per le metriche Slurm non smette di caricarsi nella scheda **Attività**.
+ Assicurati che `RunAs` sia abilitato nelle preferenze di [Gestione sessioni AWS](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) e che il ruolo in uso abbia il tag `SSMSessionRunAs` collegato. 
  + Per abilitare `RunAs`, vai alla scheda **Preferenze** nella [console Systems Manager](https://console.aws.amazon.com/systems-manager/session-manager). 
  +  [Attiva il supporto per Esegui come per i nodi gestiti di Linux e macOS](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-preferences-run-as.html). 

Per la visualizzazione limitata delle attività in Studio per i cluster EKS:
+ Se il tuo ruolo di esecuzione non dispone delle autorizzazioni per elencare i namespace per i cluster EKS.
  + Per informazioni, consulta [Limitazione della visualizzazione delle attività in Studio per i cluster EKS](sagemaker-hyperpod-studio-setup-eks.md#sagemaker-hyperpod-studio-setup-eks-restrict-tasks-view).
+ Se gli utenti riscontrano problemi con l’accesso ai cluster EKS.

  1. Verifica che RBAC sia abilitato eseguendo il comando seguente AWS CLI .

     ```
     kubectl api-versions | grep rbac
     ```

     Questo dovrebbe restituire rbac.authorization.k8s.io/v1.

  1. Controlla se `ClusterRole` e `ClusterRoleBinding` esistono eseguendo i comandi seguenti.

     ```
     kubectl get clusterrole pods-events-crd-cluster-role
     kubectl get clusterrolebinding pods-events-crd-cluster-role-binding
     ```

  1. Verifica l’appartenenza al gruppo di utenti. Assicurati che l’utente sia assegnato correttamente al gruppo `pods-events-crd-cluster-level` nel tuo gestore dell’identità digitale o IAM.
+ Se l’utente non visualizza alcuna risorsa.
  + Verifica l’appartenenza al gruppo e assicurati che `ClusterRoleBinding` sia applicato correttamente.
+ Se gli utenti possono visualizzare le risorse in tutti i namespace.
  + Se è richiesta una limitazione del namespace, valuta la possibilità di utilizzare `Role` e `RoleBinding` invece di `ClusterRole` e `ClusterRoleBinding`.
+ Se la configurazione sembra corretta, ma le autorizzazioni non vengono applicate.
  + Controlla se `NetworkPolicies` o `PodSecurityPolicies` interferiscono con l’accesso.

## Scheda dei parametri
<a name="sagemaker-hyperpod-studio-troubleshoot-metrics"></a>

Se non ci sono CloudWatch parametri Amazon, vengono visualizzati nella scheda **Metrics**.
+ La `Metrics` sezione dei dettagli del HyperPod cluster viene utilizzata CloudWatch per recuperare i dati. Per visualizzare le metriche in questa sezione, [Osservabilità di cluster e attività](sagemaker-hyperpod-eks-cluster-observability-cluster.md) deve essere abilitato. Contatta l’amministratore per configurare le metriche.

# SageMaker HyperPod riferimenti
<a name="sagemaker-hyperpod-ref"></a>

Per ulteriori informazioni e riferimenti sull'utilizzo, SageMaker HyperPod consulta i seguenti argomenti.

**Topics**
+ [SageMaker HyperPod prezzi](#sagemaker-hyperpod-ref-pricing)
+ [SageMaker HyperPod APIs](#sagemaker-hyperpod-ref-api)
+ [SageMaker HyperPod Configurazione Slurm](#sagemaker-hyperpod-ref-slurm-configuration)
+ [SageMaker HyperPod DLAMI](#sagemaker-hyperpod-ref-hyperpod-ami)
+ [SageMaker HyperPod Riferimento alle autorizzazioni API](#sagemaker-hyperpod-ref-api-permissions)
+ [SageMaker HyperPod comandi in AWS CLI](#sagemaker-hyperpod-ref-cli)
+ [SageMaker HyperPod Moduli Python in AWS SDK per Python (Boto3)](#sagemaker-hyperpod-ref-boto3)

## SageMaker HyperPod prezzi
<a name="sagemaker-hyperpod-ref-pricing"></a>

Negli argomenti seguenti vengono fornite informazioni sui SageMaker HyperPod prezzi. Per ulteriori dettagli sul prezzo orario per l'utilizzo SageMaker HyperPod delle istanze, consulta anche [ SageMaker i prezzi di Amazon](https://aws.amazon.com/sagemaker/pricing/). 

**Richieste di capacità**

Puoi allocare capacità di calcolo su richiesta o riservata con SageMaker AI da utilizzare su. SageMaker HyperPod La creazione di cluster su richiesta alloca la capacità disponibile dal pool di capacità on-demand AI SageMaker . In alternativa, puoi richiedere una capacità riservata per garantire l’accesso inviando un ticket per un aumento della quota. L' SageMaker IA assegna la priorità alle richieste di capacità in entrata e l'utente riceve un tempo stimato per l'allocazione della capacità.

**Fatturazione del servizio**

Quando effettui il provisioning di una capacità di elaborazione attiva SageMaker HyperPod, ti viene fatturata la durata dell'allocazione della capacità. SageMaker HyperPod la fatturazione viene visualizzata nelle fatture relative all'anniversario con una voce relativa al tipo di allocazione della capacità (su richiesta, riservata), al tipo di istanza e al tempo impiegato per l'utilizzo dell'istanza. 

Per inviare un ticket per un aumento della quota, consulta [SageMaker HyperPod quote](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

## SageMaker HyperPod APIs
<a name="sagemaker-hyperpod-ref-api"></a>

L'elenco seguente è un set completo SageMaker HyperPod APIs per l'invio di richieste di azione in formato JSON all'IA tramite o. SageMaker AWS CLI AWS SDK per Python (Boto3)
+ [BatchDeleteClusterNodes](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_BatchDeleteClusterNodes.html)
+ [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)
+ [DeleteCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteCluster.html)
+ [DescribeCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html)
+ [DescribeClusterNode](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeClusterNode.html)
+ [ListClusterNodes](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListClusterNodes.html)
+ [ListClusters](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListClusters.html)
+ [UpdateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)
+ [UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)

## SageMaker HyperPod Configurazione Slurm
<a name="sagemaker-hyperpod-ref-slurm-configuration"></a>

HyperPod supporta due approcci per configurare Slurm sul tuo cluster. Scegliete l'approccio più adatto alle vostre esigenze.


|  |  |  | 
| --- |--- |--- |
| Approccio | Descrizione | Consigliato per | 
| Configurazione basata su API | Definisci la configurazione di Slurm direttamente nelle richieste e API CreateCluster UpdateCluster  | Nuovi cluster; gestione semplificata | 
| Configurazione legacy | Usa un provisioning\$1parameters.json file separato archiviato in Amazon S3 | Cluster esistenti; compatibilità con le versioni precedenti | 

### Configurazione Slurm basata su API (consigliata)
<a name="sagemaker-hyperpod-ref-slurm-api-driven"></a>

Con la configurazione basata su API, puoi definire i tipi di nodi Slurm, le assegnazioni delle partizioni e i montaggi dei file system direttamente nelle richieste API. CreateCluster UpdateCluster Questo approccio fornisce:
+ **Un'unica fonte di verità**: tutta la configurazione nella richiesta API
+ **Nessuna gestione dei file S3**: non è necessario creare o mantenere `provisioning_parameters.json`
+ **Convalida integrata: l'**API convalida la topologia Slurm prima della creazione del cluster
+ Rilevamento delle **deviazioni**: rileva le modifiche non autorizzate a `slurm.conf`
+ **Per-instance-group storage**: configura diversi FSx file system per diversi gruppi di istanze
+ **FSx per il supporto di OpenZFS**: monta i filesystem OpenZFS oltre a Lustre FSx 

#### SlurmConfig (per gruppo di istanze)
<a name="sagemaker-hyperpod-ref-slurm-config"></a>

Aggiungi `SlurmConfig` a ciascun gruppo di istanze per definire il tipo di nodo Slurm e l'assegnazione della partizione.

```
"SlurmConfig": {
    "NodeType": "Controller | Login | Compute",
    "PartitionNames": ["string"]
}
```

**Parametri:**
+ `NodeType`: obbligatorio Il tipo di nodo Slurm per questo gruppo di istanze. Valori validi:
  + `Controller`— Nodo controller Slurm (head). Esegue il demone. `slurmctld` Esattamente un gruppo di istanze deve avere questo tipo di nodo.
  + `Login`— Nodo di accesso per l'accesso degli utenti. Opzionale. Al massimo un gruppo di istanze può avere questo tipo di nodo.
  + `Compute`— Nodi di lavoro che eseguono lavori. Può avere più gruppi di istanze con questo tipo di nodo.
**Importante**  
`NodeType`è immutabile. Una volta impostato durante la creazione del cluster, non può essere modificato. Per utilizzare un tipo di nodo diverso, crea un nuovo gruppo di istanze.
+ `PartitionNames`— Condizionale. Un array di nomi di partizioni Slurm. Obbligatorio per i tipi di `Compute` nodo; non consentito per i tipi di nodo `Controller` o 2`Login`. Attualmente supporta un singolo nome di partizione per gruppo di istanze.
**Nota**  
Tutti i nodi vengono aggiunti automaticamente alla `dev` partizione universale oltre alla partizione specificata.

**Esempio**:

```
{
    "InstanceGroupName": "gpu-compute",
    "InstanceType": "ml.p4d.24xlarge",
    "InstanceCount": 8,
    "SlurmConfig": {
        "NodeType": "Compute",
        "PartitionNames": ["gpu-training"]
    },
    "LifeCycleConfig": {
        "SourceS3Uri": "s3://sagemaker-bucket/lifecycle/src/",
        "OnCreate": "on_create.sh"
    },
    "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole"
}
```

#### Orchestrator.Slurm (a livello di cluster)
<a name="sagemaker-hyperpod-ref-slurm-orchestrator"></a>

Aggiungi `Orchestrator.Slurm` alla configurazione del cluster per specificare la modalità di gestione del file. HyperPod `slurm.conf`

```
"Orchestrator": {
    "Slurm": {
        "SlurmConfigStrategy": "Managed | Overwrite | Merge"
    }
}
```

**Parametri:**
+ `SlurmConfigStrategy`— Richiesto quando `Orchestrator.Slurm` viene fornito. Controlla come HyperPod gestisce il `slurm.conf` file sul nodo del controller. Valori validi:
  + `Managed`(impostazione predefinita): controlla HyperPod completamente la mappatura dei nodi di partizione in. `slurm.conf` Il rilevamento della deriva è abilitato: se la corrente è `slurm.conf` diversa dalla configurazione prevista, fallisce e restituisce un errore. UpdateCluster Usa questa strategia quando vuoi essere l'unica fonte di verità HyperPod per la configurazione di Slurm.
  + `Overwrite`— HyperPod impone l'applicazione della configurazione dell'API, sovrascrivendo eventuali modifiche manuali apportate a. `slurm.conf` Il rilevamento della deriva è disabilitato. Utilizzate questa strategia per ripristinare dopo una deriva o ripristinare il cluster a uno stato noto.
  + `Merge`— HyperPod conserva le `slurm.conf` modifiche manuali e le unisce alla configurazione dell'API. Il rilevamento della deriva è disabilitato. Utilizza questa strategia se devi apportare modifiche manuali alla configurazione di Slurm che dovrebbero persistere tra gli aggiornamenti.

**Nota**  
Se `Orchestrator.Slurm` viene omesso dalla richiesta, il comportamento predefinito è la strategia. `Managed`

**Suggerimento**  
È possibile modificare `SlurmConfigStrategy` in qualsiasi momento utilizzando UpdateCluster. Non è previsto alcun vincolo a una strategia specifica.

**Esempio**:

```
{
    "ClusterName": "my-hyperpod-cluster",
    "InstanceGroups": [...],
    "Orchestrator": {
        "Slurm": {
            "SlurmConfigStrategy": "Managed"
        }
    }
}
```

#### SlurmConfigStrategy confronto
<a name="sagemaker-hyperpod-ref-slurm-strategy-comparison"></a>


|  |  |  |  | 
| --- |--- |--- |--- |
| Strategia | Rilevamento della deriva | Modifiche manuali | Caso d'uso | 
| Managed | Abilitato: blocca gli aggiornamenti se viene rilevata una deriva | Bloccato | HyperPod gestito | 
| Overwrite | Disabilitato | sovrascritto | Ripristino dalla deriva; ripristino allo stato noto | 
| Merge | Disabilitato | Conservato | Utenti avanzati con slurm.conf esigenze personalizzate | 

#### FSx configurazione tramite InstanceStorageConfigs
<a name="sagemaker-hyperpod-ref-slurm-fsx-config"></a>

Con la configurazione basata su API, è possibile configurare i FSx file system per gruppo di istanze utilizzando. `InstanceStorageConfigs` Ciò consente a diversi gruppi di istanze di montare file system diversi.

**Prerequisiti:**
+ Il cluster deve utilizzare un VPC personalizzato (via`VpcConfig`). FSx i file system risiedono nel tuo VPC e il VPC gestito dalla piattaforma non può raggiungerli.
+ Almeno un gruppo di istanze deve avere with. `SlurmConfig` `NodeType: Controller`

##### FsxLustreConfig
<a name="sagemaker-hyperpod-ref-slurm-fsx-lustre"></a>

Configura FSx per il montaggio del file system Lustre per un gruppo di istanze.

```
"InstanceStorageConfigs": [
    {
        "FsxLustreConfig": {
            "DnsName": "string",
            "MountPath": "string",
            "MountName": "string"
        }
    }
]
```

**Parametri:**
+ `DnsName`: obbligatorio Il nome DNS del filesystem for Lustre. FSx Ad esempio: `fs-0abc123def456789.fsx.us-west-2.amazonaws.com`
+ `MountPath` : Opzionale. Il percorso di montaggio locale sull'istanza. Impostazione predefinita: `/fsx`
+ `MountName`: obbligatorio Il nome di montaggio del FSx filesystem for Lustre. Puoi trovarlo nella FSx console Amazon o eseguendolo`aws fsx describe-file-systems`.

##### FsxOpenZfsConfig
<a name="sagemaker-hyperpod-ref-slurm-fsx-openzfs"></a>

Configura FSx per il montaggio del filesystem OpenZFS per un gruppo di istanze.

```
"InstanceStorageConfigs": [
    {
        "FsxOpenZfsConfig": {
            "DnsName": "string",
            "MountPath": "string"
        }
    }
]
```

**Parametri:**
+ `DnsName`: obbligatorio Il nome DNS del filesystem for OpenZFS. FSx Ad esempio: `fs-0xyz987654321.fsx.us-west-2.amazonaws.com`
+ `MountPath` : Opzionale. Il percorso di montaggio locale sull'istanza. Impostazione predefinita: `/home`

**Nota**  
Ogni gruppo di istanze può avere al massimo una `FsxLustreConfig` alla volta`FsxOpenZfsConfig`.

**Esempio con più filesystem:**

```
{
    "InstanceGroupName": "gpu-compute",
    "InstanceType": "ml.p4d.24xlarge",
    "InstanceCount": 4,
    "SlurmConfig": {
        "NodeType": "Compute",
        "PartitionNames": ["gpu-training"]
    },
    "InstanceStorageConfigs": [
        {
            "FsxLustreConfig": {
                "DnsName": "fs-0abc123def456789.fsx.us-west-2.amazonaws.com",
                "MountPath": "/fsx",
                "MountName": "abcdefgh"
            }
        },
        {
            "FsxOpenZfsConfig": {
                "DnsName": "fs-0xyz987654321.fsx.us-west-2.amazonaws.com",
                "MountPath": "/shared"
            }
        },
        {
            "EbsVolumeConfig": {
                "VolumeSizeInGB": 500
            }
        }
    ],
    "LifeCycleConfig": {
        "SourceS3Uri": "s3://sagemaker-bucket/lifecycle/src/",
        "OnCreate": "on_create.sh"
    },
    "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole"
}
```

**Importante**  
FSx le modifiche alla configurazione si applicano solo durante il provisioning dei nodi. I nodi esistenti mantengono la FSx configurazione originale. Per applicare una nuova FSx configurazione a tutti i nodi, riduci il gruppo di istanze a 0, quindi esegui il backup verso l'alto.

#### Esempio di configurazione completo basato su API
<a name="sagemaker-hyperpod-ref-slurm-complete-example"></a>

L'esempio seguente mostra una CreateCluster richiesta completa che utilizza la configurazione Slurm basata su API:

```
{
    "ClusterName": "ml-training-cluster",
    "InstanceGroups": [
        {
            "InstanceGroupName": "controller",
            "InstanceType": "ml.c5.xlarge",
            "InstanceCount": 1,
            "SlurmConfig": {
                "NodeType": "Controller"
            },
            "LifeCycleConfig": {
                "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/",
                "OnCreate": "on_create.sh"
            },
            "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole",
            "ThreadsPerCore": 2
        },
        {
            "InstanceGroupName": "login",
            "InstanceType": "ml.m5.xlarge",
            "InstanceCount": 1,
            "SlurmConfig": {
                "NodeType": "Login"
            },
            "LifeCycleConfig": {
                "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/",
                "OnCreate": "on_create.sh"
            },
            "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole",
            "ThreadsPerCore": 2
        },
        {
            "InstanceGroupName": "gpu-compute",
            "InstanceType": "ml.p4d.24xlarge",
            "InstanceCount": 8,
            "SlurmConfig": {
                "NodeType": "Compute",
                "PartitionNames": ["gpu-training"]
            },
            "InstanceStorageConfigs": [
                {
                    "FsxLustreConfig": {
                        "DnsName": "fs-0abc123def456789.fsx.us-west-2.amazonaws.com",
                        "MountPath": "/fsx",
                        "MountName": "abcdefgh"
                    }
                }
            ],
            "LifeCycleConfig": {
                "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/",
                "OnCreate": "on_create.sh"
            },
            "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole",
            "ThreadsPerCore": 2,
            "OnStartDeepHealthChecks": ["InstanceStress", "InstanceConnectivity"]
        },
        {
            "InstanceGroupName": "cpu-compute",
            "InstanceType": "ml.c5.18xlarge",
            "InstanceCount": 4,
            "SlurmConfig": {
                "NodeType": "Compute",
                "PartitionNames": ["cpu-preprocessing"]
            },
            "InstanceStorageConfigs": [
                {
                    "FsxLustreConfig": {
                        "DnsName": "fs-0abc123def456789.fsx.us-west-2.amazonaws.com",
                        "MountPath": "/fsx",
                        "MountName": "abcdefgh"
                    }
                }
            ],
            "LifeCycleConfig": {
                "SourceS3Uri": "s3://sagemaker-us-west-2-111122223333/lifecycle/src/",
                "OnCreate": "on_create.sh"
            },
            "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodRole",
            "ThreadsPerCore": 2
        }
    ],
    "Orchestrator": {
        "Slurm": {
            "SlurmConfigStrategy": "Managed"
        }
    },
    "VpcConfig": {
        "SecurityGroupIds": ["sg-0abc123def456789a"],
        "Subnets": ["subnet-0abc123def456789a", "subnet-0abc123def456789b"]
    },
    "Tags": [
        {
            "Key": "Project",
            "Value": "ML-Training"
        }
    ]
}
```

Per ulteriori informazioni sull'utilizzo della configurazione basata su API, consulta. [Personalizzazione dei SageMaker HyperPod cluster utilizzando script del ciclo di vita](sagemaker-hyperpod-lifecycle-best-practices-slurm.md)

### Configurazione precedente: provisioning\$1parameters.json
<a name="sagemaker-hyperpod-ref-provisioning-forms"></a>

**Nota**  
L'`provisioning_parameters.json`approccio è il metodo legacy per configurare Slurm on. HyperPod Per i nuovi cluster, consigliamo di utilizzare l'approccio di configurazione basato sulle API descritto sopra. L'approccio legacy rimane pienamente supportato per la compatibilità con le versioni precedenti.

Con l'approccio legacy, crei un file di configurazione Slurm denominato `provisioning_parameters.json` e lo carichi su Amazon S3 come parte degli script del ciclo di vita. HyperPod legge questo file durante la creazione del cluster per configurare i nodi Slurm.

#### Modulo di configurazione per provisioning\$1parameters.json
<a name="sagemaker-hyperpod-ref-provisioning-forms-slurm"></a>

Il codice seguente è il modulo di configurazione Slurm da preparare per configurare correttamente i nodi Slurm sul cluster. HyperPod Devi compilare questo modulo e caricarlo insieme a un set di script del ciclo di vita durante la creazione del cluster. Per sapere come preparare questo modulo durante i processi di creazione dei HyperPod cluster, vedi. [Personalizzazione dei SageMaker HyperPod cluster utilizzando script del ciclo di vita](sagemaker-hyperpod-lifecycle-best-practices-slurm.md)

```
// Save as provisioning_parameters.json.
{
    "version": "1.0.0",
    "workload_manager": "slurm",
    "controller_group": "string",
    "login_group": "string",
    "worker_groups": [
        {
            "instance_group_name": "string",
            "partition_name": "string"
        }
    ],
    "fsx_dns_name": "string",
    "fsx_mountname": "string"
}
```

**Parametri:**
+ `version`: obbligatorio Questa è la versione del modulo dei parametri di HyperPod provisioning. Lascia il valore su `1.0.0`.
+ `workload_manager`: obbligatorio Serve a specificare quale gestore del carico di lavoro configurare nel cluster. HyperPod Lascia il valore su `slurm`.
+ `controller_group`: obbligatorio Serve a specificare il nome del gruppo di istanze del HyperPod cluster che si desidera assegnare al nodo Slurm controller (head).
+ `login_group` : Opzionale. Serve a specificare il nome del gruppo di istanze del HyperPod cluster che si desidera assegnare al nodo di accesso Slurm.
+ `worker_groups`: obbligatorio Serve per configurare i nodi di lavoro (calcolo) Slurm sul cluster. HyperPod 
  + `instance_group_name`: obbligatorio Serve a specificare il nome del gruppo di HyperPod istanze che si desidera assegnare al nodo Slurm worker (calcolo).
  + `partition_name`: obbligatorio Serve per specificare il nome della partizione per il nodo.
+ `fsx_dns_name` : Opzionale. Se desideri configurare i tuoi nodi Slurm sul HyperPod cluster per comunicare con Amazon FSx, specifica il nome FSx DNS.
+ `fsx_mountname` : Opzionale. Se desideri configurare i tuoi nodi Slurm sul HyperPod cluster per comunicare con Amazon FSx, specifica il nome di FSx montaggio.

### Confronto: configurazione basata su API e configurazione legacy
<a name="sagemaker-hyperpod-ref-slurm-comparison"></a>


|  |  |  | 
| --- |--- |--- |
| Funzionalità | Basato su API (consigliato) | Legacy (provisioning\$1parameters.json) | 
| Posizione di configurazione | CreateCluster Richiesta API | File S3 | 
| FSx per Lustre | Sì, gruppo per istanza | Sì, solo a livello di cluster | 
| FSx per OpenZFS | Sì, per gruppo di istanze | No, non supportato | 
| Validazione integrata | Sì | No | 
| Rilevamento delle deviazioni | Sì — (Strategia gestita) | No | 
| Gestione dei file S3 | Campo non obbligatorio | Richiesto | 
| Complessità degli script del ciclo di vita | Semplificato | È richiesta la configurazione SLURM completa | 

## SageMaker HyperPod DLAMI
<a name="sagemaker-hyperpod-ref-hyperpod-ami"></a>

SageMaker HyperPod esegue un DLAMI basato su:
+ [AWS AMI GPU Deep Learning Base (Ubuntu 20.04)](https://aws.amazon.com/releasenotes/aws-deep-learning-base-gpu-ami-ubuntu-20-04/) per l'orchestrazione con Slurm.
+ AMI basata su Amazon Linux 2 per l’orchestrazione con Amazon EKS.

Il SageMaker HyperPod DLAMI è fornito in bundle con pacchetti aggiuntivi per supportare strumenti open source come Slurm, Kubernetes, dipendenze e pacchetti software SageMaker HyperPod cluster per supportare funzionalità di resilienza come il controllo dello stato del cluster e il ripristino automatico. Per seguire gli aggiornamenti software distribuiti dal team di assistenza, consulta HyperPod . HyperPod DLAMIs [Note di SageMaker HyperPod rilascio di Amazon](sagemaker-hyperpod-release-notes.md)

## SageMaker HyperPod Riferimento alle autorizzazioni API
<a name="sagemaker-hyperpod-ref-api-permissions"></a>

**Importante**  
Le politiche IAM personalizzate che consentono ad Amazon SageMaker Studio o Amazon SageMaker Studio Classic di creare SageMaker risorse Amazon 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 l'etichettatura, possono verificarsi errori AccessDenied "" durante il tentativo di creare risorse. Per ulteriori informazioni, consulta [Fornisci le autorizzazioni per etichettare SageMaker le risorse AI](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS politiche gestite per Amazon SageMaker AI](security-iam-awsmanpol.md)che danno i permessi per creare SageMaker risorse includono già le autorizzazioni per aggiungere tag durante la creazione di tali risorse.

Quando configuri il controllo degli accessi per consentire l'esecuzione di operazioni SageMaker HyperPod API e scrivi una politica di autorizzazioni da allegare agli utenti IAM per gli amministratori del cloud, utilizza la seguente tabella come riferimento.


|  |  |  | 
| --- |--- |--- |
| Operazioni delle SageMaker API Amazon | Autorizzazioni necessarie (azioni API) | Risorse | 
| CreateCluster | sagemaker:CreateCluster | arn:aws:sagemaker:region:account-id:cluster/cluster-id | 
| DeleteCluster | sagemaker:DeleteCluster | arn:aws:sagemaker:region:account-id:cluster/cluster-id | 
| DescribeCluster | sagemaker:DescribeCluster | arn:aws:sagemaker:region:account-id:cluster/cluster-id | 
| DescribeClusterNode | sagemaker:DescribeClusterNode | arn:aws:sagemaker:region:account-id:cluster/cluster-id | 
| ListClusterNodes | sagemaker:ListClusterNodes | arn:aws:sagemaker:region:account-id:cluster/cluster-id | 
| ListClusters | sagemaker:ListClusters | arn:aws:sagemaker:region:account-id:cluster/cluster-id | 
| UpdateCluster | sagemaker:UpdateCluster | arn:aws:sagemaker:region:account-id:cluster/cluster-id | 
| UpdateClusterSoftware | sagemaker:UpdateClusterSoftware | arn:aws:sagemaker:region:account-id:cluster/cluster-id | 

Per un elenco completo delle autorizzazioni e dei tipi di risorse per SageMaker APIs, consulta [Azioni, risorse e chiavi di condizione per Amazon SageMaker AI](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsagemaker.html) nel *AWS Service Authorization Reference*.

## SageMaker HyperPod comandi in AWS CLI
<a name="sagemaker-hyperpod-ref-cli"></a>

Di seguito sono riportati i AWS CLI comandi SageMaker HyperPod per eseguire le [operazioni HyperPod API](#sagemaker-hyperpod-ref-api) principali.
+ [batch-delete-cluster-nodes](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/batch-delete-cluster-nodes.html)
+ [create-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-cluster.html)
+ [delete-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/delete-cluster.html)
+ [describe-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/describe-cluster.html)
+ [describe-cluster-node](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/describe-cluster-node.html)
+ [list-cluster-nodes](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-cluster-nodes.html)
+ [list-clusters](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-clusters.html)
+ [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html)
+ [update-cluster-software](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster-software.html)

## SageMaker HyperPod Moduli Python in AWS SDK per Python (Boto3)
<a name="sagemaker-hyperpod-ref-boto3"></a>

Di seguito sono riportati i metodi del AWS SDK per Python (Boto3) client per l' SageMaker intelligenza artificiale per eseguire le [operazioni HyperPod API](#sagemaker-hyperpod-ref-api) principali.
+ [batch\$1delete\$1cluster\$1nodes](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/batch_delete_cluster_nodes.html#)
+ [create\$1cluster](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_cluster.html)
+ [delete\$1cluster](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/delete_cluster.html)
+ [describe\$1cluster](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/describe_cluster.html)
+ [describe\$1cluster\$1node](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/describe_cluster_node.html)
+ [list\$1cluster\$1nodes](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/list_cluster_nodes.html)
+ [list\$1clusters](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/list_clusters.html)
+ [update\$1cluster](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/update_cluster.html)
+ [update\$1cluster\$1software](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/update_cluster_software.html)

# Note di SageMaker HyperPod rilascio di Amazon
<a name="sagemaker-hyperpod-release-notes"></a>

Questo argomento tratta le note di rilascio che tengono traccia degli aggiornamenti, delle correzioni e delle nuove funzionalità per Amazon SageMaker HyperPod. Se stai cercando versioni, aggiornamenti e miglioramenti di funzionalità generali per Amazon SageMaker HyperPod, potresti trovare utile questa pagina.

Le versioni HyperPod AMI sono documentate separatamente per includere informazioni sui componenti chiave, comprese le versioni generali dell'AMI, le versioni e le dipendenze. Se stai cercando queste informazioni relative alle versioni HyperPod AMI, consulta[SageMaker HyperPod AMI Amazon](sagemaker-hyperpod-release-ami.md).

## SageMaker HyperPod note di rilascio: 25 gennaio 2026
<a name="sagemaker-hyperpod-release-notes-20260125"></a>

SageMaker HyperPod rilascia quanto segue per[Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuove funzionalità**
+ Rilasciata la nuova SageMaker HyperPod AMI per Amazon EKS 1.34. Per ulteriori informazioni, consulta [SageMaker Rilasci AMI Hyperpod per Amazon EKS: 25 gennaio 2026](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20260125).

Per ulteriori informazioni, consulta [Kubernetes](https://kubernetes.io/blog/2025/08/27/kubernetes-v1-34-release/) v1.34.

## SageMaker HyperPod note di rilascio: 7 novembre 2025
<a name="sagemaker-hyperpod-release-notes-20251107"></a>

SageMaker HyperPod rilascia quanto segue per[Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuove funzionalità**
+ [SageMaker HyperPod Versioni AMI per Amazon EKS: 7 novembre 2025](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20251107)Patch di sicurezza aggiornate.

## SageMaker HyperPod note di rilascio: 29 settembre 2025
<a name="sagemaker-hyperpod-release-notes-20250929"></a>

SageMaker HyperPod rilascia quanto segue per[Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuove funzionalità**
+ Rilasciata la nuova SageMaker HyperPod AMI per Amazon EKS 1.33. Per ulteriori informazioni, consulta [SageMaker HyperPod Versioni AMI per Amazon EKS: 29 settembre 2025](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20250929).
**Importante**  
L'API Kubernetes beta di Dynamic Resource Allocation è abilitata per impostazione predefinita in questa versione.  
Questa API migliora la pianificazione e il monitoraggio dei carichi di lavoro che richiedono risorse come. GPUs
Questa API è stata sviluppata dalla community open source di Kubernetes e potrebbe cambiare nelle future versioni di Kubernetes. Prima di utilizzare l'API, consulta la documentazione di [Kubernetes](https://kubernetes.io/docs/concepts/scheduling-eviction/dynamic-resource-allocation/) e scopri come influisce sui tuoi carichi di lavoro.
HyperPod non sta rilasciando un'AMI HyperPod Amazon Linux 2 per Kubernetes 1.33. AWS consiglia di eseguire la migrazione a. AL2023 Per ulteriori informazioni, consulta [Eseguire l'aggiornamento da Amazon Linux 2 a AL2023](https://docs.aws.amazon.com/eks/latest/userguide/al2023.html).

Per ulteriori informazioni, consulta [Kubernetes](https://kubernetes.io/blog/2025/04/23/kubernetes-v1-33-release/) v1.33.

## SageMaker HyperPod note di rilascio: 4 agosto 2025
<a name="sagemaker-hyperpod-release-notes-20250804"></a>

SageMaker HyperPod rilascia un nuovo pubblico AMIs per l'orchestrazione EKS. AMIs I pubblici possono essere utilizzati da soli o possono essere utilizzati per creare contenuti personalizzati. AMIs Per ulteriori informazioni sul pubblico AMIs, vedere[Rilasci di AMI pubbliche](sagemaker-hyperpod-release-public-ami.md). Per ulteriori informazioni sulla creazione di un’AMI personalizzata, consulta [Amazon Machine Images personalizzate (AMIs) per SageMaker HyperPod cluster](hyperpod-custom-ami-support.md). 

## SageMaker HyperPod note di rilascio: 31 luglio 2025
<a name="sagemaker-hyperpod-release-notes-20250731"></a>

SageMaker HyperPod rilascia quanto segue per[Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuove funzionalità e miglioramenti**
+ È stata rilasciata una nuova AMI che aggiorna il sistema operativo da Amazon Linux 2 ad Amazon Linux 2023 per i cluster EKS. Gli aggiornamenti principali includono il kernel Linux 6.1, Python 3.10, NVIDIA Driver 560.35.03 e il gestore dei pacchetti DNF che sostituisce YUM.
**Importante**  
L'aggiornamento di Amazon Linux 2 AL2023 introduce modifiche significative che potrebbero influire sulla compatibilità con software e configurazioni progettati per. AL2 Ti consigliamo vivamente di testare le tue applicazioni AL2023 prima di aggiornare completamente i cluster.

  Per ulteriori informazioni sulla nuova AMI e su come aggiornare i cluster, consulta [SageMaker HyperPod Versioni AMI per Amazon EKS: 31 luglio 2025](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20250731).

## SageMaker HyperPod note di rilascio: 13 maggio 2025
<a name="sagemaker-hyperpod-release-notes-20250513"></a>

SageMaker HyperPod rilascia quanto segue per[Orchestrazione SageMaker HyperPod dei cluster con SlurmOrchestrazione Slurm](sagemaker-hyperpod-slurm.md).

**Nuove funzionalità e miglioramenti**
+ È stata rilasciata un’AMI aggiornata che supporta Ubuntu 22.04 LTS per cluster Slurm. Questo rilascio include diversi aggiornamenti dei componenti di sistema e software che offrono prestazioni migliorate, funzionalità aggiornate e maggiore sicurezza.
**Importante**  
L’aggiornamento da Ubuntu 20.04 LTS a Ubuntu 22.04 LTS introduce modifiche che potrebbero influire sulla compatibilità con il software e le configurazioni progettate per Ubuntu 20.04.

  Per ulteriori informazioni, consulta:
  + [Aggiornamenti chiave nell’AMI Ubuntu 22.04](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-ami-slurm-ubuntu22-updates)
  + [Aggiornamento all’AMI Ubuntu 22.04](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-ami-slurm-ubuntu22-upgrade)
  + [Risoluzione dei problemi di aggiornamento](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-ami-slurm-ubuntu22-troubleshoot)

## SageMaker HyperPod note di rilascio: 1 maggio 2025
<a name="sagemaker-hyperpod-release-notes-20250501"></a>

SageMaker HyperPod rilascia quanto segue per[Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuove funzionalità**
+ È stata aggiunta la creazione di report di utilizzo per i cluster orchestrati da EKS, che consente alle organizzazioni di implementare allocazioni dei costi trasparenti e basate sull’utilizzo in team, progetti o reparti. Questa funzionalità integra HyperPod la funzionalità [Task Governance](sagemaker-hyperpod-eks-operate-console-ui-governance.md) per garantire un'equa distribuzione dei costi in ambienti AI/ML multi-tenant condivisi. Per ulteriori informazioni, consulta [Reporting Compute](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-usage-reporting.html) Usage in. HyperPod

## SageMaker HyperPod note di versione: 28 aprile 2025
<a name="sagemaker-hyperpod-release-notes-20250428"></a>

SageMaker HyperPod rilascia quanto segue per [Orchestrazione SageMaker HyperPod dei cluster con SlurmOrchestrazione Slurm](sagemaker-hyperpod-slurm.md) e[Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuove funzionalità e miglioramenti**
+ Driver NVIDIA aggiornato dalla versione 550.144.03 alla 550.163.01. Questo aggiornamento è destinato a risolvere le vulnerabilità e le esposizioni comuni (CVEs) presenti nel [NVIDIA GPU Display Security](https://nvidia.custhelp.com/app/answers/detail/a_id/5630) Bulletin di aprile 2025.

Per ulteriori informazioni sui rilasci di AMI correlati, consulta [SageMaker HyperPod Versioni AMI per Slurm: 28 aprile 2025](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20250428) e [SageMaker HyperPod Versioni AMI per Amazon EKS: 28 aprile 2025](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20250428).

## SageMaker HyperPod note di rilascio: 18 aprile 2025
<a name="sagemaker-hyperpod-release-notes-20250418"></a>

SageMaker HyperPod rilascia quanto segue per[Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuove funzionalità**
+ Rilasciata una nuova SageMaker HyperPod AMI per Amazon EKS 1.32.1. Per ulteriori informazioni, consulta [SageMaker HyperPod Versioni AMI per Amazon EKS: 18 aprile 2025](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20250418).

## SageMaker HyperPod note di rilascio: 10 aprile 2025
<a name="sagemaker-hyperpod-release-notes-20250410"></a>

SageMaker HyperPod rilascia quanto segue per[Orchestrazione SageMaker HyperPod dei cluster con SlurmOrchestrazione Slurm](sagemaker-hyperpod-slurm.md).

**Nuove funzionalità e miglioramenti**
+ È stato aggiunto un tutorial sulle ricette di Direct Preference Optimization (DPO) per l'orchestrazione SageMaker HyperPod di Slurm. Questo tutorial di ottimizzazione fornisce step-by-step indicazioni per ottimizzare l'allineamento dei modelli utilizzando il metodo DPO sui cluster Slurm alimentati da GPU. SageMaker HyperPod Per ulteriori informazioni, consulta [HyperPod Tutorial Slurm Cluster DPO (GPU)](hyperpod-gpu-slurm-dpo-tutorial.md).

## SageMaker HyperPod note di rilascio: 3 aprile 2025
<a name="sagemaker-hyperpod-release-notes-20250403"></a>

SageMaker HyperPod rilascia quanto segue per [Orchestrazione SageMaker HyperPod dei cluster con SlurmOrchestrazione Slurm](sagemaker-hyperpod-slurm.md) e[Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuove funzionalità e miglioramenti**
+ Aggiunta una pagina [Quickstart](sagemaker-hyperpod-quickstart.md) per la distribuzione dei cluster. SageMaker HyperPod La pagina sfrutta i flussi di lavoro di configurazione semplificati dei workshop specializzati e automatizza SageMaker HyperPod l'implementazione utilizzando modelli predefiniti. AWS CloudFormation Supporta preferenze di infrastruttura come Slurm o Amazon EKS, per semplificare la configurazione e l’implementazione dei cluster baseline.
+ SageMaker HyperPod ora supporta i seguenti tipi di istanza per i cluster Slurm e Amazon EKS.
  + Nuovi tipi di istanze: istanze I3en, M7i e R7i. Per l’elenco completo delle istanze supportate, consulta il campo `InstanceType` in `[ClusterInstanceGroupDetails](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupDetails.html)`.

## SageMaker HyperPod note di rilascio: 16 marzo 2025
<a name="sagemaker-hyperpod-release-notes-20250316"></a>

SageMaker HyperPod rilascia quanto segue per [Orchestrazione SageMaker HyperPod dei cluster con SlurmOrchestrazione Slurm](sagemaker-hyperpod-slurm.md) e[Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuove funzionalità e miglioramenti**
+ Sono state aggiunte le seguenti chiavi di condizione IAM per un controllo più granulare degli accessi nelle operazioni API [https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_CreateCluster.html](https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_CreateCluster.html) e [https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_UpdateCluster.html).    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-release-notes.html)

## SageMaker HyperPod note di rilascio: 20 febbraio 2025
<a name="sagemaker-hyperpod-release-notes-20250220"></a>

SageMaker HyperPod rilascia quanto segue per [Orchestrazione SageMaker HyperPod dei cluster con SlurmOrchestrazione Slurm](sagemaker-hyperpod-slurm.md) e[Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuove funzionalità e miglioramenti**
+ È stato aggiunto il supporto per l'eliminazione dei gruppi di istanze dal SageMaker HyperPod cluster. Per ulteriori informazioni, consulta [Eliminazione di gruppi di istanze](smcluster-scale-down.md#smcluster-remove-instancegroup) per i cluster orchestrati da EKS e [Riduzione verticale di un cluster](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-scale-down) per i cluster orchestrati da Slurm. 

## SageMaker HyperPod note di rilascio: 18 febbraio 2025
<a name="sagemaker-hyperpod-release-notes-20250218"></a>

SageMaker HyperPod rilascia quanto segue per [Orchestrazione SageMaker HyperPod dei cluster con SlurmOrchestrazione Slurm](sagemaker-hyperpod-slurm.md) e[Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuove funzionalità**
+ Questa versione di SageMaker HyperPod incorpora un aggiornamento di sicurezza del toolkit contenitore Nvidia (dalla versione 1.17.3 alla versione 1.17.4). Per ulteriori informazioni, consulta le [note di rilascio v1.17.4](https://github.com/NVIDIA/nvidia-container-toolkit/releases/tag/v1.17.4). 
**Nota**  
Per tutti i carichi di lavoro dei container nel Kit di strumenti per container Nvidia versione 1.17.4, il montaggio delle librerie di compatibilità CUDA ora è disabilitato. Per garantire la compatibilità con più versioni CUDA nei flussi di lavoro dei container, aggiorna `LD_LIBRARY_PATH` per includere le tue librerie di compatibilità CUDA. Puoi trovare le fasi specifiche in [Se utilizzi un livello di compatibilità CUDA](inference-gpu-drivers.md#collapsible-cuda-compat).

Per ulteriori informazioni sui rilasci di AMI correlati, consulta [SageMaker HyperPod Versioni AMI per Slurm: 18 febbraio 2025](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20250218) e [SageMaker HyperPod Versioni AMI per Amazon EKS: 18 febbraio 2025](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20250218).

## SageMaker HyperPod note di rilascio: 6 febbraio 2025
<a name="sagemaker-hyperpod-release-notes-20250206"></a>

SageMaker HyperPod rilascia quanto segue per [Orchestrazione SageMaker HyperPod dei cluster con SlurmOrchestrazione Slurm](sagemaker-hyperpod-slurm.md) e[Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md).

**Nuove funzionalità e miglioramenti**
+ Supporto SageMaker HyperPod Multi-AZ migliorato: è possibile specificare diverse sottoreti e gruppi di sicurezza, appartenenti a diverse zone di disponibilità, per singoli gruppi di istanze all'interno del cluster. Per ulteriori informazioni sul supporto SageMaker HyperPod Multi-AZ, vedere. [Configurazione di cluster su più cluster SageMaker HyperPod AZs](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-multiple-availability-zones)

## SageMaker HyperPod note di rilascio: 22 gennaio 2025
<a name="sagemaker-hyperpod-release-notes-20250122"></a>

**Rilasci dell’AMI**
+ [SageMaker HyperPod Versioni AMI per Amazon EKS: 22 gennaio 2025](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20250122)

## SageMaker HyperPod note di rilascio: 09 gennaio 2025
<a name="sagemaker-hyperpod-release-notes-20250109"></a>

SageMaker HyperPod rilascia quanto segue per [Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md) e[Orchestrazione SageMaker HyperPod dei cluster con SlurmOrchestrazione Slurm](sagemaker-hyperpod-slurm.md).

**Nuove funzionalità e miglioramenti**
+  IPv6 Supporto aggiunto: i cluster possono utilizzare l' IPv6 indirizzamento se configurati con IPv6 VPC e sottoreti abilitati. Per ulteriori informazioni, consulta [Configurazione SageMaker HyperPod con un Amazon VPC personalizzato](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-optional-vpc).

## SageMaker HyperPod note di rilascio: 21 dicembre 2024
<a name="sagemaker-hyperpod-release-notes-20241221"></a>

SageMaker HyperPod rilascia quanto segue per [Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md) e[Orchestrazione SageMaker HyperPod dei cluster con SlurmOrchestrazione Slurm](sagemaker-hyperpod-slurm.md).

**Nuove funzionalità**
+ SageMaker HyperPod ora supporta i seguenti tipi di istanza per i cluster Slurm e Amazon EKS.
  + Nuovi tipi di istanze: C6gn, C6i, M6i e R6i.
  + Nuovi tipi di istanze Trainium: Trn1 e Trn1n.

**Miglioramenti**
+ È stata migliorata la visibilità della registrazione di log degli errori quando Slurm arresta i processi e il blocco non necessario delle fasi dei processi durante gli annullamenti dei processi avviati da Slurm.
+ DLAMI di base aggiornata per p5en per i cluster Slurm e Amazon EKS.

**Rilasci dell’AMI**
+ [SageMaker HyperPod Versioni AMI per Slurm: 21 dicembre 2024](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20241221)
+ [SageMaker HyperPod Versioni AMI per Amazon EKS: 21 dicembre 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20241221)

## SageMaker HyperPod note di rilascio: 13 dicembre 2024
<a name="sagemaker-hyperpod-release-notes-20241213"></a>

SageMaker HyperPod rilascia quanto segue per [Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md) e[Orchestrazione SageMaker HyperPod dei cluster con SlurmOrchestrazione Slurm](sagemaker-hyperpod-slurm.md).

**Nuova funzionalità**
+ SageMaker HyperPod rilascia una serie di CloudWatch parametri Amazon per monitorare lo stato e le prestazioni dei cluster SageMaker HyperPod Slurm. Queste metriche si riferiscono a CPU, GPU, utilizzo della memoria e informazioni sulle istanze del cluster, come il numero di nodi e i nodi difettosi. Questa funzionalità di monitoraggio è abilitata per impostazione predefinita ed è possibile accedere alle metriche nel namespace. `/aws/sagemaker/Clusters` CloudWatch Puoi anche impostare CloudWatch allarmi basati su queste metriche per rilevare e risolvere in modo proattivo potenziali problemi all'interno dei cluster basati su Slurm. HyperPod Per ulteriori informazioni, consulta [Metriche di Amazon SageMaker HyperPod Slurm](smcluster-slurm-metrics.md).

**Rilasci dell’AMI**
+ [SageMaker HyperPod Versioni AMI per Amazon EKS: 13 dicembre 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20241213)

## SageMaker HyperPod note di rilascio: 24 novembre 2024
<a name="sagemaker-hyperpod-release-notes-20241124"></a>

SageMaker HyperPod rilascia quanto segue per [Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md) e[Orchestrazione SageMaker HyperPod dei cluster con SlurmOrchestrazione Slurm](sagemaker-hyperpod-slurm.md).

**Nuove funzionalità**
+ È stato aggiunto il supporto per la configurazione di SageMaker HyperPod cluster su più zone di disponibilità. Per ulteriori informazioni sul supporto SageMaker HyperPod Multi-AZ, vedere. [Configurazione di cluster su più cluster SageMaker HyperPod AZs](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-multiple-availability-zones)

**Rilasci dell’AMI**
+ [SageMaker HyperPod Versioni AMI per Slurm: 24 novembre 2024](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20241124)
+ [SageMaker HyperPod Versioni AMI per Amazon EKS: 24 novembre 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20241124)

## SageMaker HyperPod note di rilascio: 15 novembre 2024
<a name="sagemaker-hyperpod-release-notes-20241115"></a>

SageMaker HyperPod rilascia quanto segue per [Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md) e[Orchestrazione SageMaker HyperPod dei cluster con SlurmOrchestrazione Slurm](sagemaker-hyperpod-slurm.md). Per ulteriori informazioni, consulta [SageMaker HyperPod Versioni AMI per Amazon EKS: 15 novembre 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20241115).

**Nuove funzionalità e miglioramenti**
+ È stato aggiunto il supporto per i tipi di istanze trn1 e trn1n per i cluster orchestrati Amazon EKS e Slurm.
+ Gestione dei log migliorata per i cluster Slurm:
  +  Rotazione dei log implementata: settimanale o giornaliera in base alle dimensioni.
  +  Imposta la conservazione dei log su 3 settimane.
  +  Log compressi per ridurre l’impatto sull’archiviazione.
  +  Continua a caricare i log CloudWatch per la conservazione a lungo termine.
**Nota**  
Alcuni log sono ancora archiviati in syslogs.
+ Impostazioni Fluent Bit modificate per evitare problemi di tracciamento nei file che contengono righe lunghe.

**Correzioni di bug**
+ È stato impedito il troncamento involontario con gli aggiornamenti del nodo controller Slurm nel file di configurazione `slurm.config`.

**Rilasci dell’AMI**
+ [SageMaker HyperPod Versioni AMI per Slurm: 15 novembre 2024](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20241115)
+ [SageMaker HyperPod Versioni AMI per Amazon EKS: 15 novembre 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20241115)

## SageMaker HyperPod note di rilascio: 11 novembre 2024
<a name="sagemaker-hyperpod-release-notes-20241111"></a>

SageMaker HyperPod rilascia quanto segue per [Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md) e[Orchestrazione SageMaker HyperPod dei cluster con SlurmOrchestrazione Slurm](sagemaker-hyperpod-slurm.md). 

**Nuova funzionalità**
+ SageMaker HyperPod L'AMI ora supporta i tipi di istanza G6e.

**Rilasci dell’AMI**
+ [SageMaker HyperPod Versioni AMI per Slurm: 11 novembre 2024](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20241111)
+ [SageMaker HyperPod Versioni AMI per Amazon EKS: 11 novembre 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20241111)

## SageMaker HyperPod note di rilascio: 31 ottobre 2024
<a name="sagemaker-hyperpod-release-notes-20241031"></a>

SageMaker HyperPod rilascia quanto segue per [Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md) e[Orchestrazione SageMaker HyperPod dei cluster con SlurmOrchestrazione Slurm](sagemaker-hyperpod-slurm.md).

**Nuove funzionalità**
+ Aggiunti SageMaker HyperPod cluster con ridimensionamento a livello di gruppo di istanze e a livello di istanza per i cluster orchestrati Amazon EKS e Slurm. Per ulteriori informazioni sulla riduzione verticale dei cluster Amazon EKS, consulta [Ridimensionamento di un cluster SageMaker HyperPod](smcluster-scale-down.md). Per ulteriori informazioni sulla riduzione verticale dei cluster Slurm, consulta *Riduzione verticale di un cluster* in [Gestione dei cluster SageMaker HyperPod Slurm utilizzando il AWS CLI](sagemaker-hyperpod-operate-slurm-cli-command.md).
+ SageMaker HyperPod ora supporta il tipo di istanza P5e per i cluster orchestrati Amazon EKS e Slurm. 

## SageMaker HyperPod note di rilascio: 21 ottobre 2024
<a name="sagemaker-hyperpod-release-notes-20241021"></a>

SageMaker HyperPod rilascia quanto segue per [Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md) e[Orchestrazione SageMaker HyperPod dei cluster con SlurmOrchestrazione Slurm](sagemaker-hyperpod-slurm.md).

**Nuova funzionalità**
+ SageMaker HyperPod ora supporta i tipi di istanza P5e [n], G6, Gr6 e Trn2 [n] per i cluster Slurm e Amazon EKS.

**Rilasci dell’AMI**
+ [SageMaker HyperPod Versioni AMI per Slurm: 21 ottobre 2024](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20241021)
+ [SageMaker HyperPod Versioni AMI per Amazon EKS: 21 ottobre 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20241021)

## SageMaker HyperPod note di rilascio: 10 settembre 2024
<a name="sagemaker-hyperpod-release-notes-20240910"></a>

SageMaker HyperPod rilascia quanto segue per [Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md) e[Orchestrazione SageMaker HyperPod dei cluster con SlurmOrchestrazione Slurm](sagemaker-hyperpod-slurm.md).

**Nuove funzionalità**
+ È stato aggiunto il supporto Amazon EKS in SageMaker HyperPod. Per ulteriori informazioni, consulta [Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md).
+ È stato aggiunto il supporto per la gestione dei SageMaker HyperPod cluster tramite CloudFormation e Terraform. [Per ulteriori informazioni sulla gestione dei HyperPod cluster tramite CloudFormation, consulta CloudFormation la documentazione per. `AWS::SageMaker::Cluster`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-cluster.html) Per ulteriori informazioni sulla gestione dei HyperPod cluster tramite Terraform, consulta la documentazione di [Terraform](https://registry.terraform.io/providers/hashicorp/awscc/latest/docs/data-sources/sagemaker_cluster) per. `awscc_sagemaker_cluster`

**Rilasci dell’AMI**
+ [SageMaker HyperPod Versioni AMI per Slurm: 10 settembre 2024](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20240910)
+ [SageMaker HyperPod Versioni AMI per Amazon EKS: 10 settembre 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20240910)

## SageMaker HyperPod note di rilascio: 20 agosto 2024
<a name="sagemaker-hyperpod-release-notes-20240820"></a>

SageMaker HyperPod rilascia quanto segue per[Orchestrazione SageMaker HyperPod dei cluster con Slurm](sagemaker-hyperpod-slurm.md).

**Nuove funzionalità**
+ È stata migliorata la [funzionalità di SageMaker HyperPod ripristino automatico](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-resiliency-slurm.html#sagemaker-hyperpod-resiliency-slurm-auto-resume), estendendo la capacità di resilienza per i nodi Slurm collegati con Generic (GRES). RESources 

  Quando le [Generic RESources (GRES)](https://slurm.schedmd.com/gres.html) sono collegate a un nodo Slurm, Slurm in genere non consente modifiche all’allocazione dei nodi, ad esempio la sostituzione dei nodi, e quindi non consente di riprendere un processo non riuscito. A meno che non sia esplicitamente vietato, la funzionalità di ripristino HyperPod automatico rimette automaticamente in coda qualsiasi lavoro difettoso associato ai nodi abilitati per GRES. Questa procedura prevede l’arresto del processo, il suo reinserimento nella coda dei processi e il suo riavvio dall’inizio.

**Altre modifiche**
+ Preconfezionato [https://slurm.schedmd.com/slurmrestd.html](https://slurm.schedmd.com/slurmrestd.html)nell'AMI SageMaker HyperPod .
+ Sono stati modificati i valori predefiniti per `ResumeTimeout` e `UnkillableStepTimeout`, passati da 60 a 300 secondi in `slurm.conf` per migliorare la reattività del sistema e la gestione dei processi.
+ Sono stati apportati lievi miglioramenti ai controlli dell’integrità per NVIDIA Data Center GPU Manager (DCGM) e NVIDIA System Management Interface (nvidia-smi).

**Correzioni di bug**
+ Il plug-in di HyperPod ripristino automatico può utilizzare nodi inattivi per riprendere un lavoro.

## SageMaker HyperPod note di rilascio: 20 giugno 2024
<a name="sagemaker-hyperpod-release-notes-20240620"></a>

SageMaker HyperPod rilascia quanto segue per[Orchestrazione SageMaker HyperPod dei cluster con Slurm](sagemaker-hyperpod-slurm.md).

**Nuove funzionalità**
+ È stata aggiunta una nuova funzionalità di collegamento di storage aggiuntivo alle istanze SageMaker HyperPod del cluster. Con questa funzionalità, è possibile configurare lo storage supplementare a livello di configurazione del gruppo di istanze durante i processi di creazione o aggiornamento del cluster, tramite la SageMaker HyperPod console o il e. [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html) APIs Il volume EBS aggiuntivo è collegato a ciascuna istanza all'interno di un SageMaker HyperPod cluster e montato su. `/opt/sagemaker` Per ulteriori informazioni sulla sua implementazione nel SageMaker HyperPod cluster, consulta la documentazione aggiornata nelle pagine seguenti.
  + [Iniziare con SageMaker HyperPod](smcluster-getting-started-slurm.md)
  + [SageMaker HyperPod Operazioni del cluster Slurm](sagemaker-hyperpod-operate-slurm.md)

  Tieni presente che è necessario aggiornare il software del HyperPod cluster per utilizzare questa funzionalità. Dopo aver applicato le patch al software del HyperPod cluster, è possibile utilizzare questa funzionalità per SageMaker HyperPod i cluster esistenti creati prima del 20 giugno 2024 aggiungendo nuovi gruppi di istanze. Questa funzionalità è pienamente efficace per tutti i SageMaker HyperPod cluster creati dopo il 20 giugno 2024.

**Fasi dell’aggiornamento**
+ Esegui il comando seguente per chiamare l'[UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API per aggiornare i HyperPod cluster esistenti con il HyperPod DLAMI più recente. Per ulteriori istruzioni, consulta [Aggiorna il software della SageMaker HyperPod piattaforma di un cluster](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software). 
**Importante**  
Esegui il backup del tuo lavoro prima di eseguire questa API. Il processo di applicazione delle patch sostituisce il volume root con l’AMI aggiornata, il che significa che i dati precedenti archiviati nel volume root dell’istanza andranno persi. Assicurati di eseguire il backup dei dati dal volume root dell'istanza su Amazon S3 o Amazon FSx for Lustre. Per ulteriori informazioni, consulta [Utilizza lo script di backup fornito da SageMaker HyperPod](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software-backup).

  ```
   aws sagemaker update-cluster-software --cluster-name your-cluster-name
  ```
**Nota**  
Tieni presente che dovresti eseguire il AWS CLI comando per aggiornare il HyperPod cluster. L'aggiornamento del HyperPod software tramite l'interfaccia utente SageMaker HyperPod della console non è attualmente disponibile.

## SageMaker HyperPod note di rilascio: 24 aprile 2024
<a name="sagemaker-hyperpod-release-notes-20240424"></a>

SageMaker HyperPod rilascia quanto segue per[Orchestrazione SageMaker HyperPod dei cluster con Slurm](sagemaker-hyperpod-slurm.md).

**Correzioni di bug**
+ È stato corretto un bug con il parametro `ThreadsPerCore` nell’API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html). Con la correzione, [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)acquisisci e applica [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html) APIs correttamente l'input dell'utente`ThreadsPerCore`. Questa correzione è valida sui HyperPod cluster creati dopo il 24 aprile 2024. Se questo bug ti ha creato problemi e vuoi applicare questa correzione al cluster, devi creare un nuovo cluster. Assicurati di eseguire il backup e il ripristino del lavoro quando passi a un nuovo cluster seguendo le istruzioni riportate in [Utilizza lo script di backup fornito da SageMaker HyperPod](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software-backup).

## SageMaker HyperPod note di rilascio: 27 marzo 2024
<a name="sagemaker-hyperpod-release-notes-20240327"></a>

SageMaker HyperPod rilascia quanto segue per[Orchestrazione SageMaker HyperPod dei cluster con Slurm](sagemaker-hyperpod-slurm.md).

**HyperPod patch software**

Il team HyperPod di assistenza distribuisce le patch software tramite. [SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami) Consulta i seguenti dettagli sull'ultima versione di HyperPod DLAMI.
+ In questa versione di HyperPod DLAMI, Slurm è costruito con il servizio REST (`slurmestd`) con supporto per JSON, YAML e JWT.
+ [Slurm](https://slurm.schedmd.com/documentation.html) aggiornato alla versione 23.11.3.

**Miglioramenti**
+ Aumento del timeout del servizio di ripresa automatica a 60 minuti.
+ Processo di sostituzione delle istanze migliorato per non riavviare il controller Slurm.
+ Messaggi di errore migliorati grazie all’esecuzione di script del ciclo di vita, ad esempio errori di download ed errori di controllo dell’integrità delle istanze all’avvio dell’istanza.

**Correzioni di bug**
+ È stato corretto un bug relativo al servizio chrony che causava un problema con la sincronizzazione dell’ora.
+ È stato corretto un bug relativo all’analisi di `slurm.conf`.
+ È stato corretto un problema con la libreria [NVIDIA `go-dcgm`](https://github.com/NVIDIA/go-dcgm).

## SageMaker HyperPod note di rilascio: 14 marzo 2024
<a name="sagemaker-hyperpod-release-notes-20240314"></a>

SageMaker HyperPod rilascia quanto segue per[Orchestrazione SageMaker HyperPod dei cluster con Slurm](sagemaker-hyperpod-slurm.md).

**Miglioramenti**
+ HyperPod ora supporta correttamente il passaggio dei nomi delle partizioni forniti tramite `provisioning_parameters.json` e crea partizioni in modo appropriato sulla base degli input forniti. Per ulteriori informazioni su `provisioning_parameters.json`, consulta [Configurazione precedente: provisioning\$1parameters.json](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-provisioning-forms) e [Personalizzazione dei SageMaker HyperPod cluster utilizzando script del ciclo di vita](sagemaker-hyperpod-lifecycle-best-practices-slurm.md).

**Rilasci dell’AMI**
+ [SageMaker HyperPod Versioni AMI per Slurm: 14 marzo 2024](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20240314)

## SageMaker HyperPod note di rilascio: 15 febbraio 2024
<a name="sagemaker-hyperpod-release-notes-20240215"></a>

SageMaker HyperPod rilascia quanto segue per[Orchestrazione SageMaker HyperPod dei cluster con Slurm](sagemaker-hyperpod-slurm.md).

**Nuove funzionalità**
+ Aggiunta una nuova `UpdateClusterSoftware` API per l'applicazione SageMaker HyperPod di patch di sicurezza. Quando le patch di sicurezza diventano disponibili, ti consigliamo di aggiornare SageMaker HyperPod i cluster esistenti nel tuo account eseguendoli. `aws sagemaker update-cluster-software --cluster-name your-cluster-name` Per seguire le future patch di sicurezza, continua a tenere traccia di questa pagina delle note di SageMaker HyperPod rilascio di Amazon. Per informazioni sul funzionamento dell’API `UpdateClusterSoftware`, consulta [Aggiorna il software della SageMaker HyperPod piattaforma di un cluster](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software).

## SageMaker HyperPod note di rilascio: 29 novembre 2023
<a name="sagemaker-hyperpod-release-notes-20231129"></a>

SageMaker HyperPod rilascia quanto segue per[Orchestrazione SageMaker HyperPod dei cluster con Slurm](sagemaker-hyperpod-slurm.md).

**Nuove funzionalità**
+ Ha lanciato Amazon SageMaker HyperPod al AWS re:Invent 2023.

**Rilasci dell’AMI**
+ [SageMaker HyperPod Rilascio AMI per Slurm: 29 novembre 2023](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20231129)

# SageMaker HyperPod AMI Amazon
<a name="sagemaker-hyperpod-release-ami"></a>

Amazon SageMaker HyperPod Amazon Machine Images (AMIs) sono immagini di macchine specializzate per carichi di lavoro di apprendimento automatico distribuiti e calcolo ad alte prestazioni. Queste AMIs ottimizzano le immagini di base con componenti essenziali, tra cui i driver GPU e il supporto dell'acceleratore AWS Neuron.

I componenti chiave aggiunti includono: HyperPod AMIs 
+ [Pubblico AMIs](sagemaker-hyperpod-release-public-ami.md) con supporto per la [creazione di edifici personalizzati AMIs](hyperpod-custom-ami-support.md)
+ Strumenti di orchestrazione avanzati:
  + [Orchestrazione SageMaker HyperPod dei cluster con SlurmOrchestrazione Slurm](sagemaker-hyperpod-slurm.md)
  + [Orchestrazione di SageMaker HyperPod cluster con Amazon EKS](sagemaker-hyperpod-eks.md)
+ Dipendenze della gestione del cluster
+ Funzionalità di resilienza integrate:
  + controllo dell’integrità del cluster
  + funzionalità di ripresa automatica
+ Support per la gestione e la configurazione dei HyperPod cluster

Questi miglioramenti si basano sulla seguente base Deep Learning AMIs ()DLAMIs:
+ [AWS AMI GPU Deep Learning Base (Ubuntu 20.04)](https://aws.amazon.com/releasenotes/aws-deep-learning-base-gpu-ami-ubuntu-20-04/) per l'orchestrazione con Slurm.
+ AMI basata su Amazon Linux 2 o Amazon Linux 2023 per l’orchestrazione con Amazon EKS.

Scegli la tua in base alle tue HyperPod AMIs preferenze di orchestrazione:
+ Per l’orchestrazione Slurm, consulta [SageMaker HyperPod Versioni AMI per Slurm](sagemaker-hyperpod-release-ami-slurm.md).
+ Per l’orchestrazione Amazon EKS, consulta [SageMaker HyperPod Versioni AMI per Amazon EKS](sagemaker-hyperpod-release-ami-eks.md).

Per informazioni sulle versioni delle SageMaker HyperPod funzionalità di Amazon, consulta[Note di SageMaker HyperPod rilascio di Amazon](sagemaker-hyperpod-release-notes.md).

# Aggiorna la versione AMI nel tuo SageMaker HyperPod cluster
<a name="sagemaker-hyperpod-release-ami-update"></a>

Amazon SageMaker HyperPod Amazon Machine Images (AMIs) sono immagini di macchine specializzate per carichi di lavoro di apprendimento automatico distribuiti e calcolo ad alte prestazioni. In ogni AMI sono precaricati driver, framework di machine learning, librerie di addestramento e strumenti di monitoraggio delle prestazioni. Aggiornando la versione AMI nel cluster, puoi utilizzare le versioni più recenti di questi componenti e pacchetti per i tuoi job di addestramento e flussi di lavoro.

 Quando aggiorni la versione AMI all’interno del tuo cluster, hai la possibilità di elaborare immediatamente l’aggiornamento, pianificare un aggiornamento una tantum o utilizzare un’espressione Cron per creare una pianificazione ricorrente. Puoi anche scegliere di aggiornare tutte le istanze in un gruppo di istanze o solo batch di istanze. Se scegli di aggiornare i batch, imposti la percentuale o la quantità di istanze che l' SageMaker IA deve aggiornare alla volta. Se utilizzi questo metodo di aggiornamento, imposti un intervallo di tempo di attesa dell' SageMaker IA tra un batch e l'altro.

Se scegli di eseguire l’aggiornamento in batch, puoi anche includere un elenco di allarmi e metriche. Durante l'intervallo di attesa, l' SageMaker IA osserva queste metriche e, se alcune superano la soglia, l'allarme corrispondente passa allo stato ALARM e l' SageMaker IA ripristina l'aggiornamento dell'AMI. Per utilizzare i rollback automatici, il ruolo di esecuzione IAM deve disporre dell’autorizzazione `cloudwatch:DescribeAlarms`.

**Nota**  
L'aggiornamento del cluster in batch è disponibile solo per HyperPod i cluster integrati con Amazon EKS. Inoltre, se stai creando più pianificazioni, ti consigliamo di inserire un buffer temporale tra le pianificazioni. Se le pianificazioni si sovrappongono, gli aggiornamenti potrebbero non riuscire.

Per ulteriori informazioni su ogni versione AMI per il tuo HyperPod cluster, consulta[SageMaker HyperPod AMI Amazon](sagemaker-hyperpod-release-ami.md). Per ulteriori informazioni sulle HyperPod versioni generali, vedere[Note di SageMaker HyperPod rilascio di Amazon](sagemaker-hyperpod-release-notes.md).

Puoi utilizzare l'API SageMaker AI o le operazioni CLI per aggiornare il cluster o visualizzare gli aggiornamenti pianificati per un cluster specifico. Se utilizzi la AWS console, segui questi passaggi:

**Nota**  
L'aggiornamento dell'AMI con la AWS console è disponibile solo per i cluster integrati con Amazon EKS. Se disponi di un cluster Slurm, devi utilizzare l'API SageMaker AI o le operazioni CLI.

1. Apri la console Amazon SageMaker AI all'indirizzo [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. A sinistra, espandi **HyperPod Clusters** e scegli **Cluster Management**.

1. Scegli il cluster da aggiornare, quindi scegli **Dettagli** e **Aggiorna AMI**.



Per creare e gestire le pianificazioni degli aggiornamenti in modo programmatico, utilizza le seguenti operazioni API:
+ [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)— crea un cluster specificando una pianificazione degli aggiornamenti
+ [UpdateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)— aggiorna un cluster per aggiungere una pianificazione degli aggiornamenti
+ [ UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)— aggiornare il software della piattaforma di un cluster
+ [ DescribeCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html)— visualizzare una pianificazione di aggiornamento creata per un cluster
+ [DescribeClusterNode](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeClusterNode.html)e [ListClusterNodes](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListClusterNodes.html)— vedi quando è stato aggiornato l'ultima volta il cluster.

## Autorizzazioni richieste
<a name="sagemaker-hyperpod-release-ami-update-permissions"></a>

A seconda di come hai configurato [Pod Disruption Budget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) nel cluster Amazon EKS, elimina HyperPod i pod, rilascia nodi e impedisce qualsiasi pianificazione degli aggiornamenti durante il processo di aggiornamento dell'AMI. Se vengono violati alcuni vincoli all'interno del budget, HyperPod salta quel nodo durante l'aggiornamento dell'AMI. SageMaker HyperPod Per rimuovere correttamente i pod, è necessario aggiungere le autorizzazioni necessarie al ruolo collegato al servizio. HyperPod Il file yaml seguente ha le autorizzazioni necessarie.

```
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: hyperpod-patching
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["list"]
- apiGroups: [""]
  resources: ["pods/eviction"]
  verbs: ["create"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: hyperpod-patching
subjects:
- kind: User
  name: hyperpod-service-linked-role
roleRef:
  kind: ClusterRole
  name: hyperpod-patching
  apiGroup: rbac.authorization.k8s.io
```

Utilizza il comando seguente per impostare le autorizzazioni.

```
git clone https://github.com/aws/sagemaker-hyperpod-cli.git 

cd sagemaker-hyperpod-cli/helm_chart

helm upgrade hyperpod-dependencies HyperPodHelmChart --namespace kube-system --install
```

## Espressioni Cron
<a name="sagemaker-hyperpod-release-ami-update-cron"></a>

Per configurare un aggiornamento una tantum in un determinato momento o una pianificazione ricorrente, utilizza le espressioni Cron. Le espressioni Cron supportano sei campi e sono separate da uno spazio vuoto. Tutti e sei i campi sono obbligatori.

```
cron(Minutes Hours Day-of-month Month Day-of-week Year)
```


| **Campi** | **Valori** | **Caratteri jolly** | 
| --- | --- | --- | 
|  Minuti  |  00-59  |  N/D  | 
|  Ore  |  00-23  |  N/D  | 
|  D ay-of-month  |  01-31  | ? | 
|  Mese  |  01-12  | \$1 / | 
|  D ay-of-week  |  1-7 o LUN-DOM  | ? \$1 L | 
|  Anno  |  Anno corrente: 2099  | \$1 | 

**Caratteri jolly**
+ Il carattere jolly **\$1** (asterisco) include tutti i valori nel campo. Nel campo `Hours`, **\$1** include ogni ora.
+ Il carattere jolly **/** (barra) specifica gli incrementi. Nel campo `Months`, puoi inserire **\$1/3** per specificare ogni terzo mese.
+ Il carattere jolly **?** (punto interrogativo) specifica un valore. **Nel `Day-of-month` campo puoi inserire **7**, e se non ti interessa in che giorno della settimana è il settimo, puoi inserire?** sul Day-of-week campo.
+ Il carattere jolly **L** nel campo `day-of-week` specifica l’ultimo giorno del mese o della settimana. Ad esempio, `5L` significa l’ultimo venerdì del mese.
+ Il **carattere jolly \$1** nel ay-of-week campo specifica una determinata istanza del giorno della settimana specificato nell'arco di un mese. Ad esempio, 3\$12 sarebbe il secondo martedì del mese: il 3 fa riferimento a martedì perché è il terzo giorno di ogni settimana e il 2 fa riferimento al secondo giorno di questo tipo in un mese.

Puoi utilizzare le espressioni Cron per gli scenari seguenti:
+ Pianificazione una tantum che viene eseguita in un giorno e a un’ora predefiniti. Puoi usare il carattere `?` jolly per indicarlo day-of-month o day-of-week non importa.

  ```
  cron(30 14 ? 12 MON 2024)
  ```

  ```
  cron(30 14 15 12 ? 2024)
  ```
+ Pianificazione settimanale eseguita in un orario e in giorno determinati. L'esempio seguente crea una pianificazione che viene eseguita alle 12:00 di ogni lunedì indipendentemente. day-of-month

  ```
  cron(00 12 ? * 1 *)
  ```
+ Pianificazione mensile che viene eseguita ogni mese indipendentemente da. day-of-week La pianificazione seguente viene eseguita alle 12:30 del 15 di ogni mese.

  ```
  cron(30 12 15 * ? *)
  ```
+ Una pianificazione mensile che utilizza day-of-week.

  ```
  cron(30 12 ? * MON *)
  ```
+ Per creare una pianificazione eseguita ogni tot mesi, utilizza il carattere jolly `/`. Nell’esempio seguente viene creata una pianificazione mensile eseguita ogni 3 mesi. I due esempi seguenti mostrano come funziona con day-of-week e day-of-month.

  ```
  cron(30 12 15 */3 ? *)
  ```

  ```
  cron(30 12 ? */3 MON *)
  ```
+ Pianificazione eseguita su una determinata istanza del giorno della settimana specificato. L’esempio seguente crea una pianificazione che viene eseguita alle 12:30 del secondo lunedì di ogni mese.

  ```
  cron(30 12 ? * 1#2 *)
  ```
+ Pianificazione eseguita nell’ultima istanza del giorno della settimana specificato. La pianificazione seguente viene eseguita alle 12:30 dell’ultimo lunedì di ogni mese.

  ```
  cron(30 12 ? * 1L *)
  ```

# SageMaker HyperPod Versioni AMI per Slurm
<a name="sagemaker-hyperpod-release-ami-slurm"></a>

Le seguenti note di rilascio tengono traccia degli ultimi aggiornamenti per le versioni di Amazon SageMaker HyperPod AMI per l'orchestrazione di Slurm. Questi HyperPod AMIs sono basati sull'[AMI GPU AWS Deep Learning Base (Ubuntu 22.04](https://aws.amazon.com/releasenotes/aws-deep-learning-base-gpu-ami-ubuntu-22-04/)). Il team HyperPod di assistenza distribuisce le patch software tramite. [SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami) Per le versioni HyperPod AMI per l'orchestrazione di Amazon EKS, consulta. [SageMaker HyperPod Versioni AMI per Amazon EKS](sagemaker-hyperpod-release-ami-eks.md) Per informazioni sulle versioni delle SageMaker HyperPod funzionalità di Amazon, consulta[Note di SageMaker HyperPod rilascio di Amazon](sagemaker-hyperpod-release-notes.md).

**Nota**  
Per aggiornare HyperPod i cluster esistenti con il DLAMI più recente, vedere. [Aggiorna il software della SageMaker HyperPod piattaforma di un cluster](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software)

## SageMaker HyperPod Versioni AMI per Slurm: 1 marzo 2026
<a name="sagemaker-hyperpod-release-ami-slurm-20260301"></a>

 **Aggiornamenti generali AMI** 
+ Aggiornamenti rilasciati per SageMaker HyperPod AMI for Slurm versioni 24.11.
+ [La nota di rilascio di DLAMI di base è disponibile qui.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker HyperPod Supporto DLAMI per Slurm** 

Questo rilascio include gli aggiornamenti seguenti:

------
#### [ Slurm v24.11 ]
+ Slurm 24.11 (): ARM64
  + Versione del kernel Linux: 6.8
  + Versione Glibc: 2.35
  + Versione OpenSSL: 3.0.2
  + FSx Versione Lustre Client: 2.15.6-1fsx26
  + Versione di esecuzione: 1.3.4
  + Versione containerd: containerd containerd.io v2.2.1
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.6, 12.8, 12.9, 13.0
  + Versione EFA Installer: 1.45.1
  + Versione Python: 3.10.12
  + Versione Slurm: 24.11.0
  + versione nvme-cli: 1.16
  + versione raccolta: 5.12.0.
  + versione lustre-client: 2.15.6-1fsx26
  + versione nvidia-imex: 580.126.09-1
  + versione systemd: 249
  + versione openssh: 8.9
  + versione sudo: 1.9.9
  + versione ufw: 0.36.1
  + versione gcc: 11.4.0
  + versione cmake: 3.22.1
  + versione git: 2.34.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300064.1b1344-1
  + versione nfs-utils: 1:2.6 .1-1ubuntu1.2
  + iscsi-initiator-utils versione: 2.1.5-1ubuntu1.1
  + versione lvm2:2.03.11
  + versione ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versione rdma-core: 60.0-1
+ Slurm 24.11 (x86\$164):
  + Versione del kernel Linux: 6.8
  + Versione Glibc: 2.35
  + Versione OpenSSL: 3.0.2
  + FSx Versione Lustre Client: 2.15.6-1fsx26
  + Versione di esecuzione: 1.3.4
  + Versione containerd: containerd containerd.io v2.2.1
  + Versione DMS di aws Neuronx: 2.26.5.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.6, 12.8, 12.9, 13.0
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.10.12
  + Versione Slurm: 24.11.0
  + versione nvme-cli: 1.16
  + versione antistress: 1.0.5
  + versione raccolta: 5.12.0.
  + versione lustre-client: 2.15.6-1fsx26
  + versione systemd: 249
  + versione openssh: 8.9
  + versione sudo: 1.9.9
  + versione ufw: 0.36.1
  + versione gcc: 11.4.0
  + versione cmake: 3.22.1
  + make versione: 4.3
  + versione cloudwatch-agent: 1.300064.1b1344-1
  + versione nfs-utils: 1:2.6 .1-1ubuntu1.2
  + iscsi-initiator-utils versione: 2.1.5-1ubuntu1.1
  + versione lvm2:2.03.11
  + versione ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versione rdma-core: 60.0-1

------

## SageMaker HyperPod Versioni AMI per Slurm: 12 febbraio 2026
<a name="sagemaker-hyperpod-release-ami-slurm-20260212"></a>

 **Aggiornamenti generali AMI** 
+ Aggiornamenti rilasciati per SageMaker HyperPod AMI for Slurm versioni 24.11.
+ [La nota di rilascio di DLAMI di base è disponibile qui.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker HyperPod Supporto DLAMI per Slurm** 

Questo rilascio include gli aggiornamenti seguenti:

------
#### [ Slurm v24.11 ]
+ Slurm 24.11 (): ARM64
  + Versione del kernel Linux: 6.8
  + Versione Glibc: 2.35
  + Versione OpenSSL: 3.0.2
  + FSx Versione Lustre Client: 2.15.6-1fsx25
  + Versione di esecuzione: 1.3.4
  + Versione containerd: containerd containerd.io v2.2.1
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.6, 12.8, 12.9, 13.0
  + Versione EFA Installer: 1.45.1
  + Versione Python: 3.10.12
  + Versione Slurm: 24.11.0
  + versione nvme-cli: 1.16
  + versione raccolta: 5.12.0.
  + versione lustre-client: 2.15.6-1fsx25
  + versione nvidia-imex: 580.126.09-1
  + versione systemd: 249
  + versione openssh: 8.9
  + versione sudo: 1.9.9
  + versione ufw: 0.36.1
  + versione gcc: 11.4.0
  + versione cmake: 3.22.1
  + versione git: 2.34.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300064.0b1337-1
  + versione nfs-utils: 1:2.6 .1-1ubuntu1.2
  + iscsi-initiator-utils versione: 2.1.5-1ubuntu1.1
  + versione lvm2:2.03.11
  + versione ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versione rdma-core: 60.0-1
+ Slurm 24.11 (x86\$164):
  + Versione del kernel Linux: 6.8
  + Versione Glibc: 2.35
  + Versione OpenSSL: 3.0.2
  + FSx Versione Lustre Client: 2.15.6-1fsx25
  + Versione di esecuzione: 1.3.4
  + Versione containerd: containerd containerd.io v2.2.1
  + Versione DMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.6, 12.8, 12.9, 13.0
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.10.12
  + Versione Slurm: 24.11.0
  + versione nvme-cli: 1.16
  + versione antistress: 1.0.5
  + versione raccolta: 5.12.0.
  + versione lustre-client: 2.15.6-1fsx25
  + versione systemd: 249
  + versione openssh: 8.9
  + versione sudo: 1.9.9
  + versione ufw: 0.36.1
  + versione gcc: 11.4.0
  + versione cmake: 3.22.1
  + make versione: 4.3
  + versione cloudwatch-agent: 1.300064.0b1337-1
  + versione nfs-utils: 1:2.6 .1-1ubuntu1.2
  + iscsi-initiator-utils versione: 2.1.5-1ubuntu1.1
  + versione lvm2:2.03.11
  + versione ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versione rdma-core: 60.0-1

------

## SageMaker HyperPod Versioni AMI per Slurm: 25 gennaio 2026
<a name="sagemaker-hyperpod-release-ami-slurm-20260125"></a>

 **Aggiornamenti generali AMI** 
+ Aggiornamenti rilasciati per SageMaker HyperPod AMI for Slurm versioni 24.11.
+ [La nota di rilascio di DLAMI di base è disponibile qui.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker HyperPod Supporto DLAMI per Slurm** 

Questo rilascio include gli aggiornamenti seguenti:

------
#### [ Slurm v24.11 ]
+ Slurm 24.11 (): ARM64
  + Versione del kernel Linux: 6.8
  + Versione Glibc: 2.35
  + Versione OpenSSL: 3.0.2
  + FSx Versione Lustre Client: 2.15.6-1fsx25
  + Versione di esecuzione: 1.3.4
  + Versione containerd: containerd containerd.io v2.2.1
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.6, 12.8, 12.9, 13.0
  + Versione EFA Installer: 2.3.1amzn3.0
  + Versione Python: 3.10.12
  + Versione Slurm: 24.11.0
  + versione nvme-cli: 1.16
  + versione raccolta: 5.12.0.
  + versione lustre-client: 2.15.6-1fsx25
  + versione nvidia-imex: 580.126.09-1
  + versione systemd: 249
  + versione openssh: 8.9
  + versione sudo: 1.9.9
  + versione ufw: 0.36.1
  + versione gcc: 11.4.0
  + versione cmake: 3.22.1
  + versione git: 2.34.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300063.0b1323-1
  + versione nfs-utils: 1:2.6 .1-1ubuntu1.2
  + iscsi-initiator-utils versione: 2.1.5-1ubuntu1.1
  + versione lvm2:2.03.11
  + versione ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versione rdma-core: 60.0-1
+ Slurm 24.11 (x86\$164):
  + Versione del kernel Linux: 6.8
  + Versione Glibc: 2.35
  + Versione OpenSSL: 3.0.2
  + FSx Versione Lustre Client: 2.15.6-1fsx25
  + Versione di esecuzione: 1.3.4
  + Versione containerd: containerd containerd.io v2.2.1
  + Versione DMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.6, 12.8, 12.9, 13.0
  + Versione EFA Installer: 2.3.1amzn2.0
  + Versione Python: 3.10.12
  + Versione Slurm: 24.11.0
  + versione nvme-cli: 1.16
  + versione antistress: 1.0.5
  + versione raccolta: 5.12.0.
  + versione lustre-client: 2.15.6-1fsx25
  + versione systemd: 249
  + versione openssh: 8.9
  + versione sudo: 1.9.9
  + versione ufw: 0.36.1
  + versione gcc: 11.4.0
  + versione cmake: 3.22.1
  + make versione: 4.3
  + versione cloudwatch-agent: 1.300063.0b1323-1
  + versione nfs-utils: 1:2.6 .1-1ubuntu1.2
  + iscsi-initiator-utils versione: 2.1.5-1ubuntu1.1
  + versione lvm2:2.03.11
  + versione ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versione rdma-core: 60.0-1

------

## SageMaker HyperPod Versioni AMI per Slurm: 29 dicembre 2025
<a name="sagemaker-hyperpod-release-ami-slurm-20251229"></a>

 **Aggiornamenti generali AMI** 
+ Aggiornamenti rilasciati per SageMaker HyperPod AMI for Slurm versioni 24.11.
+ [La nota di rilascio di DLAMI di base è disponibile qui.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker HyperPod Supporto DLAMI per Slurm** 

Questo rilascio include gli aggiornamenti seguenti:

------
#### [ Slurm v24.11 ]
+ Slurm 24.11 (): ARM64
  + Versione del kernel Linux: 6.8
  + Versione Glibc: 2.35
  + Versione OpenSSL: 3.0.2
  + FSx Versione Lustre Client: 2.15.6-1fsx25
  + Versione di esecuzione: 1.3.4
  + Versione containerd: containerd containerd.io v2.2.1
  + Versione del driver NVIDIA: 580.105.08
  + Versione CUDA: 12.6, 12.8, 12.9, 13.0
  + Versione EFA Installer: 2.3.1amzn3.0
  + Versione Python: 3.10.12
  + Versione Slurm: 24.11.0
  + versione nvme-cli: 1.16
  + versione raccolta: 5.12.0.
  + versione lustre-client: 2.15.6-1fsx25
  + versione nvidia-imex: 580.105.08-1
  + versione systemd: 249
  + versione openssh: 8.9
  + versione sudo: 1.9.9
  + versione ufw: 0.36.1
  + versione gcc: 11.4.0
  + versione cmake: 3.22.1
  + versione git: 2.34.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300062.0b1304-1
  + versione nfs-utils: 1:2.6 .1-1ubuntu1.2
  + iscsi-initiator-utils versione: 2.1.5-1ubuntu1.1
  + versione lvm2:2.03.11
  + versione ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versione rdma-core: 60.0-1
+ Slurm 24.11 (x86\$164):
  + Versione del kernel Linux: 6.8
  + Versione Glibc: 2.35
  + Versione OpenSSL: 3.0.2
  + FSx Versione Lustre Client: 2.15.6-1fsx25
  + Versione di esecuzione: 1.3.4
  + Versione containerd: containerd containerd.io v2.2.1
  + Versione DMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.105.08
  + Versione CUDA: 12.6, 12.8, 12.9, 13.0
  + Versione EFA Installer: 2.3.1amzn2.0
  + Versione Python: 3.10.12
  + Versione Slurm: 24.11.0
  + versione nvme-cli: 1.16
  + versione antistress: 1.0.5
  + versione raccolta: 5.12.0.
  + versione lustre-client: 2.15.6-1fsx25
  + versione systemd: 249
  + versione openssh: 8.9
  + versione sudo: 1.9.9
  + versione ufw: 0.36.1
  + versione gcc: 11.4.0
  + versione cmake: 3.22.1
  + make versione: 4.3
  + versione cloudwatch-agent: 1.300062.0b1304-1
  + versione nfs-utils: 1:2.6 .1-1ubuntu1.2
  + iscsi-initiator-utils versione: 2.1.5-1ubuntu1.1
  + versione lvm2:2.03.11
  + versione ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versione rdma-core: 60.0-1

------

## SageMaker HyperPod Versioni AMI per Slurm: 22 novembre 2025
<a name="sagemaker-hyperpod-release-ami-slurm-20251128"></a>

 **Aggiornamenti generali AMI** 
+ Aggiornamenti rilasciati per SageMaker HyperPod AMI for Slurm versioni 24.11.
+ [La nota di rilascio di DLAMI di base è disponibile qui.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker HyperPod Supporto DLAMI per Slurm** 

Questo rilascio include gli aggiornamenti seguenti:

------
#### [ Slurm (arm64) ]
+ Versione del kernel Linux: 6.8
+ Versione Glibc: 2.35
+ Versione OpenSSL: 3.0.2
+ FSx Versione Lustre Client: 2.15.6-1fsx21
+ Versione di esecuzione: 1.3.3
+ Versione containerd: containerd containerd.io v2.1.5
+ Versione del driver NVIDIA: 580.95.05
+ Versione CUDA: 12.6, 12.8, 12.9, 13.0
+ Versione EFA Installer: 2.1.0amzn5.0
+ Versione Python: 3.10.12
+ Versione Slurm: 24.11.0
+ versione nvme-cli: 1.16
+ versione raccolta: 5.12.0.
+ versione lustre-client: 2.15.6-1fsx21
+ versione nvidia-imex: 580.95.05-1
+ versione systemd: 249
+ versione openssh: 8.9
+ versione sudo: 1.9.9
+ versione ufw: 0.36.1
+ versione gcc: 11.4.0
+ versione cmake: 3.22.1
+ versione git: 2.34.1
+ crea versione: 4.3
+ versione cloudwatch-agent: 1.300062.0b1304-1
+ versione nfs-utils: 1:2.6 .1-1ubuntu1.2
+ iscsi-initiator-utils versione: 2.1.5-1ubuntu1.1
+ versione lvm2:2.03.11
+ versione ec2-instance-connect: 1.1.14-0ubuntu1.1
+ versione rdma-core: 58.amzn0-1

------
#### [ Slurm (x86\$164) ]
+ Versione del kernel Linux: 6.8
+ Versione Glibc: 2.35
+ Versione OpenSSL: 3.0.2
+ FSx Versione Lustre Client: 2.15.6-1fsx21
+ Versione di esecuzione: 1.3.3
+ Versione containerd: containerd containerd.io v2.1.5
+ Versione DMS di aws Neuronx: 2.24.7.0
+ Versione del driver NVIDIA: 580.95.05
+ Versione CUDA: 12.6, 12.8, 12.9, 13.0
+ Versione del programma di installazione EFA: 2.3.1amzn1.0
+ Versione Python: 3.10.12
+ Versione Slurm: 24.11.0
+ versione nvme-cli: 1.16
+ versione antistress: 1.0.5
+ versione raccolta: 5.12.0.
+ versione lustre-client: 2.15.6-1fsx21
+ versione systemd: 249
+ versione openssh: 8.9
+ versione sudo: 1.9.9
+ versione ufw: 0.36.1
+ versione gcc: 11.4.0
+ versione cmake: 3.22.1
+ make versione: 4.3
+ versione cloudwatch-agent: 1.300062.0b1304-1
+ versione nfs-utils: 1:2.6 .1-1ubuntu1.2
+ iscsi-initiator-utils versione: 2.1.5-1ubuntu1.1
+ versione lvm2:2.03.11
+ versione ec2-instance-connect: 1.1.14-0ubuntu1.1
+ versione rdma-core: 59.amzn0-1

------

## SageMaker HyperPod note di rilascio: 07 novembre 2025
<a name="sagemaker-hyperpod-release-notes-20251107"></a>

**L'AMI include quanto segue:**
+ Supportato Servizio AWS: Amazon EC2
+ Sistema operativo: Ubuntu 22.04
+ Architettura di calcolo: ARM64
+ Pacchetti aggiornati: NVIDIA Driver: 580.95.05
+ Versioni CUDA: cuda-12.6, cuda-12.8, cuda-12.9, cuda-13.0
+ Correzioni [di sicurezza: patch Runc](https://aws.amazon.com/security/security-bulletins/rss/aws-2025-024/) Security

## SageMaker HyperPod note di rilascio: 29 settembre 2025
<a name="sagemaker-hyperpod-release-notes-20250929"></a>

**L'AMI include quanto segue:**
+ Supportato Servizio AWS: Amazon EC2
+ Sistema operativo: Ubuntu 22.04
+ Architettura di calcolo: ARM64
+ Pacchetti aggiornati: NVIDIA Driver: 570.172.08
+ Correzioni di sicurezza

## SageMaker HyperPod note di rilascio: 12 agosto 2025
<a name="sagemaker-hyperpod-release-notes-20250812"></a>

**L'AMI include quanto segue:**
+ Supportato Servizio AWS: Amazon EC2
+ Sistema operativo: Ubuntu 22.04
+ Architettura di calcolo: ARM64
+ L'ultima versione disponibile è installata per i seguenti pacchetti:
  + Kernel Linux: 6.8
  + FSx Lustro
  + Docker
  + AWS CLI v2 in `/usr/bin/aws`
  + NVIDIA DCGM
  + Toolkit per container Nvidia:
    + Comando di versione: `nvidia-container-cli -V`
  + Nvidia-docker2:
    + Comando di versione: `nvidia-docker version`
  + Nvidia-IMEX: v570.172.08-1
+ Driver NVIDIA: 570.158.01
+ Pila NVIDIA CUDA 12.4, 12.5, 12.6, 12.8:
  + Directory di installazione CUDA, NCCL e cuDDN: `/usr/local/cuda-xx.x/`
    + Esempio: `/usr/local/cuda-12.8/`, `/usr/local/cuda-12.8/`
  + Versione NCCL compilata:
    + Per la directory CUDA 12.4, versione NCCL compilata 2.22.3\$1 .4 CUDA12
    + Per la directory CUDA 12.5, è stata compilata la versione NCCL 2.22.3\$1 .5 CUDA12
    + Per la directory CUDA 12.6, è stata compilata la versione NCCL 2.24.3\$1 .6 CUDA12
    + Per la directory CUDA 12.8, è stata compilata la versione NCCL 2.27.5\$1 .8 CUDA12
  + CUDA predefinito: 12.8
    + PATH `/usr/local/cuda` punta a CUDA 12.8
    + Aggiornato di seguito le variabili di ambiente:
      + `LD_LIBRARY_PATH`avere `/usr/local/cuda-12.8/lib:/usr/local/cuda-12.8/lib64:/usr/local/cuda-12.8:/usr/local/cuda-12.8/targets/sbsa-linux/lib:/usr/local/cuda-12.8/nvvm/lib64:/usr/local/cuda-12.8/extras/CUPTI/lib64`
      + `PATH`avere `/usr/local/cuda-12.8/bin/:/usr/local/cuda-12.8/include/`
      + Per qualsiasi versione CUDA diversa, aggiorna di `LD_LIBRARY_PATH` conseguenza.
+ Programma di installazione EFA: 1.42.0
+  GDRCopyNvidia: 2.5.1
+ AWS Il plugin OFI NCCL viene fornito con il programma di installazione EFA
  + Percorsi `/opt/amazon/ofi-nccl/lib/aarch64-linux-gnu` e vengono aggiunti a. `/opt/amazon/ofi-nccl/efa` `LD_LIBRARY_PATH`
+ AWS CLI v2 at `/usr/local/bin/aws2` e AWS CLI v1 a `/usr/bin/aws`
+ Tipo di volume EBS: gp3
+ Python: `/usr/bin/python3.10`

## SageMaker HyperPod note di rilascio: 27 maggio 2025
<a name="sagemaker-hyperpod-release-notes-20250527"></a>

SageMaker HyperPod rilascia quanto segue per[Orchestrazione SageMaker HyperPod dei cluster con SlurmOrchestrazione Slurm](sagemaker-hyperpod-slurm.md).

**Nuove funzionalità e miglioramenti**
+ L’AMI di base aggiornata a `Deep Learning Base OSS Nvidia Driver GPU AMI (Ubuntu 22.04) 20250523` con i componenti chiave seguenti:
  + Driver NVIDIA: 570.133.20
  + CUDA: 12.8 (impostazione predefinita), con supporto per CUDA 12.4-12.6
  + Versione NCCL: 2.26.5
  + Programma di installazione EFA: 1.40.0
  + AWS OFI NCCL: 1.14.2-aws
+ Pacchetti di SDK Neuron aggiornati:
  + aws-neuronx-collectives: 2.25.65.0-9858ac9a1 (dal 2.24.59.0-838c7fc8b)
  + aws-neuronx-dkms: 2.21.37.0 (dal 2.20.28.0)
  + aws-neuronx-runtime-lib: 2.25.57.0-166c7a468 (dal 2.24.53.0-f239092cc)
  + aws-neuronx-tools: 2.23.9.0 (dal 2.22.61.0)

**Note importanti**
+ Al momento, il Kit di strumenti per container NVIDIA 1.17.4 ha disabilitato il montaggio delle librerie compatibili CUDA.
+ Configurazione EFA aggiornata da 1.37 a 1.38. EFA ora include il plugin AWS OFI NCCL, che si trova nella directory `/opt/amazon/ofi-nccl` anziché nel percorso `/opt/aws-ofi-nccl/` originale. (Data di rilascio: 18 febbraio 2025)
+ La versione del kernel è bloccata tramite pinning per garantire stabilità e compatibilità dei driver.

## SageMaker HyperPod Versioni AMI per Slurm: 13 maggio 2025
<a name="sagemaker-hyperpod-release-ami-slurm-20250513"></a>

Amazon SageMaker HyperPod ha rilasciato un'AMI aggiornata che supporta Ubuntu 22.04 LTS per cluster Slurm. AWS si aggiorna regolarmente AMIs per garantire l'accesso allo stack software più recente. L’aggiornamento all’AMI più recente offre una maggiore sicurezza grazie ad aggiornamenti completi dei pacchetti, prestazioni e stabilità migliorate per i carichi di lavoro e compatibilità con i nuovi tipi di istanze e le funzionalità del kernel più recenti.

**Importante**  
L’aggiornamento da Ubuntu 20.04 LTS a Ubuntu 22.04 LTS introduce modifiche che potrebbero influire sulla compatibilità con il software e le configurazioni progettate per Ubuntu 20.04.

**Topics**
+ [Aggiornamenti chiave nell’AMI Ubuntu 22.04](#sagemaker-hyperpod-ami-slurm-ubuntu22-updates)
+ [Aggiornamento all’AMI Ubuntu 22.04](#sagemaker-hyperpod-ami-slurm-ubuntu22-upgrade)
+ [Risoluzione dei problemi di aggiornamento](#sagemaker-hyperpod-ami-slurm-ubuntu22-troubleshoot)

### Aggiornamenti chiave nell’AMI Ubuntu 22.04
<a name="sagemaker-hyperpod-ami-slurm-ubuntu22-updates"></a>

La tabella seguente elenca le versioni dei componenti dell’AMI Ubuntu 22.04 rispetto all’AMI precedente.


**Versioni dei componenti dell’AMI Ubuntu 22.04 rispetto all’AMI precedente**  

| Componente | Versione precedente | Versione aggiornata | 
| --- | --- | --- | 
|  **Sistema operativo Ubuntu**  |  20.04 LTS  |  22.04 LTS  | 
|  **Slurm**  |  24.11  |  24.11 (invariata)  | 
|  **Python**  |  3.8 (predefinita)  |  3.10 (predefinita)  | 
|  **Elastic Fabric Adapter (EFA) su Amazon FSx**  |  Non supportata  |  Supportata  | 
|  **Kernel Linux**  |  5.15  |  6.8  | 
|  **Libreria GNU C (glibc)**  |  2,31  |  2,35  | 
|  **GNU Compiler Collection (GCC)**  |  9,40  |  11,4,0  | 
|  **libc6**  |  ≤ 2.31  |  Supportato ≥ 2.35  | 
|  **File system di rete (NFS)**  |  1:1.3.4  |  1:2.6.1  | 

**Nota**  
Sebbene la versione Slurm (24.11) resti invariata, gli aggiornamenti sottostanti del sistema operativo e della libreria in questa AMI possono influire sul comportamento del sistema e sulla compatibilità del carico di lavoro. È necessario testare i carichi di lavoro prima di aggiornare i cluster di produzione.

### Aggiornamento all’AMI Ubuntu 22.04
<a name="sagemaker-hyperpod-ami-slurm-ubuntu22-upgrade"></a>

Prima di aggiornare il cluster all’AMI Ubuntu 22.04, completa queste fasi di preparazione e rivedi i requisiti di aggiornamento. Per risolvere gli errori di aggiornamento, consulta [Risoluzione dei problemi di aggiornamento](#sagemaker-hyperpod-ami-slurm-ubuntu22-troubleshoot).

#### Analisi della compatibilità Python
<a name="sagemaker-hyperpod-ami-slurm-ubuntu22-python-compatibility"></a>

L’AMI Ubuntu 22.04 utilizza Python 3.10 come versione predefinita, aggiornata da Python 3.8. Sebbene Python 3.10 mantenga la compatibilità con la maggior parte del codice Python 3.8, è necessario testare i carichi di lavoro esistenti prima dell’aggiornamento. Se i tuoi carichi di lavoro richiedono Python 3.8, puoi installarlo utilizzando il comando seguente nello script del ciclo di vita:

```
yum install python-3.8
```

Prima di aggiornare il cluster:

1. Verifica la compatibilità del tuo codice con Python 3.10.

1. Verifica che gli script del ciclo di vita funzionino nel nuovo ambiente.

1. Verifica che tutte le dipendenze siano compatibili con la nuova versione di Python.

1. Se hai creato il HyperPod cluster copiando lo script del ciclo di vita predefinito da GitHub, aggiungi il seguente comando al `setup_mariadb_accounting.sh` file prima di eseguire l'aggiornamento a Ubuntu 22. [Per lo script completo, vedi setup\$1mariadb\$1accounting.sh su. GitHub](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config/setup_mariadb_accounting.sh)

   ```
   apt-get -y -o DPkg::Lock::Timeout=120 update && apt-get -y -o DPkg::Lock::Timeout=120 install apg
   ```

#### Aggiornamento del cluster Slurm
<a name="sagemaker-hyperpod-ami-slurm-ubuntu22-upgrade-cluster"></a>

Per utilizzare la nuova AMI, puoi aggiornare il cluster Slurm in due modi:

1. Crea un nuovo cluster con l’API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html).

1. Aggiorna il software di un cluster esistente con l’API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html).

#### Configurazioni convalidate
<a name="sagemaker-hyperpod-ami-slurm-ubuntu22-validation"></a>

AWS ha testato un'ampia gamma di carichi di lavoro di formazione distribuiti e funzionalità di infrastruttura su istanze G5, G6, G6e, P4d, P5 e Trn1, tra cui:
+ Formazione distribuita con PyTorch (ad esempio, FSDP, MA, MNIST). NeMo LLa
+ Test con acceleratore su diversi tipi di istanze con Nvidia (serie P/G) e Neuron (Trn1). AWS 
+ Funzionalità di resilienza che includono la [ripresa automatica](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-resiliency-slurm.html#sagemaker-hyperpod-resiliency-slurm-auto-resume) e i [controlli dell’integrità approfonditi](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-resiliency-deep-health-checks.html).

#### Tempi di inattività e disponibilità dei cluster
<a name="sagemaker-hyperpod-ami-slurm-ubuntu22-downtime-availability"></a>

Durante il processo di aggiornamento, il cluster non sarà disponibile. Per ridurre al minimo le interruzioni, procedi come descritto di seguito:
+ Testa il processo di aggiornamento su cluster più piccoli.
+ Crea checkpoint prima dell’aggiornamento, quindi riavvia i carichi di lavoro di addestramento dai checkpoint esistenti dopo l’aggiornamento.

### Risoluzione dei problemi di aggiornamento
<a name="sagemaker-hyperpod-ami-slurm-ubuntu22-troubleshoot"></a>

Quando un aggiornamento non riesce, stabilisci innanzitutto se l’errore è correlato agli script del ciclo di vita. Questi script generalmente non riescono a causa di errori di sintassi, dipendenze mancanti o configurazioni errate.

Per esaminare gli errori relativi agli script del ciclo di vita, controlla i log. CloudWatch Tutti gli SageMaker HyperPod eventi e i log vengono archiviati nel gruppo di log:. `/aws/sagemaker/Clusters/[ClusterName]/[ClusterID]` Guarda in particolare il flusso di log `LifecycleConfig/[instance-group-name]/[instance-id]`, che fornisce informazioni dettagliate su eventuali errori durante l’esecuzione dello script.

Se l’errore di aggiornamento non è correlato agli script del ciclo di vita, raccogli le informazioni pertinenti, tra cui l’ARN del cluster, i log degli errori e i timestamp, quindi contatta il [supporto AWS](https://aws.amazon.com/premiumsupport/) per ulteriore assistenza.

## SageMaker HyperPod Versioni AMI per Slurm: 07 maggio 2025
<a name="sagemaker-hyperpod-release-ami-slurm-20250507"></a>

Amazon SageMaker HyperPod for Slurm ha rilasciato un importante aggiornamento della versione del sistema operativo a Ubuntu 22.04 (dal precedente Ubuntu 20.04). Consulta DLAMI Ubuntu 22.04 ([note di rilascio](https://aws.amazon.com/releasenotes/aws-deep-learning-base-gpu-ami-ubuntu-22-04/)) per ulteriori informazioni: `Deep Learning Base OSS Nvidia Driver GPU AMI (Ubuntu 22.04) 20250503`.

Aggiornamenti chiave dei pacchetti:
+ Ubuntu 22.04 LTS (da 20.04)
+ Versione di Python:
  + Python 3.10 è ora la versione Python predefinita nell’AMI Slurm di Ubuntu 22.04
  + Questo aggiornamento fornisce l’accesso alle funzionalità più recenti, miglioramenti delle prestazioni e correzioni di bug introdotte in Python 3.10
+ Support per EFA su FSx
+ Nuova versione del kernel Linux 6.8 (aggiornata dalla versione 5.15)
+ Versione Glibc: 2.35 (aggiornata dalla versione 2.31)
+ Versione GCC: 11.4.0 (aggiornata dalla versione 9.4.0)
+ Supporto per versioni libc6 più recenti (dalla versione libc6 <= 2.31)
+ Versione NFS: 1:2.6.1 (aggiornata dalla versione 1:1.3.4)

## SageMaker HyperPod Versioni AMI per Slurm: 28 aprile 2025
<a name="sagemaker-hyperpod-release-ami-slurm-20250428"></a>

**Miglioramenti per Slurm**
+ Driver NVIDIA aggiornato dalla versione 550.144.03 alla 550.163.01. Questo aggiornamento è destinato a risolvere le vulnerabilità e le esposizioni comuni (CVEs) presenti nel [NVIDIA GPU](https://nvidia.custhelp.com/app/answers/detail/a_id/5630) Display Security Bulletin di aprile 2025.

**Supporto Amazon SageMaker HyperPod DLAMI per Slurm**

------
#### [ Installed the latest version of AWS Neuron SDK ]
+ **aws-neuronx-collectives: 2.24.59.0-838c7fc8b**
+ **aws-neuronx-dkms:** 2,20.28,0
+ **aws-neuronx-runtime-lib: 2,24.53,0-f239092cc**
+ **aws-neuronx-tools/sconosciuto: 2.22.61.0**

------

## SageMaker HyperPod Versioni AMI per Slurm: 18 febbraio 2025
<a name="sagemaker-hyperpod-release-ami-slurm-20250218"></a>

**Miglioramenti per Slurm**
+ Versione Slurm aggiornata alla 24.11.
+ Versione Elastic Fabric Adapter (EFA) aggiornata dalla 1.37.0 alla 1.38.0.
+ L'EFA ora include il plugin OFI AWS NCCL. Puoi trovare questo plugin nella directory `/opt/amazon/ofi-nccl`, anziché nella posizione `/opt/aws-ofi-nccl/` originale. Se devi aggiornare la variabile di ambiente `LD_LIBRARY_PATH`, assicurati di modificare il percorso in modo che punti alla nuova posizione `/opt/amazon/ofi-nccl` del plugin OFI NCCL.
+ È stato rimosso il pacchetto emacs da questi. DLAMIs Puoi installare emacs da GNU emac.

**Supporto Amazon SageMaker HyperPod DLAMI per Slurm**

------
#### [ Installed the latest version of AWS Neuron SDK 2.19 ]
+ **aws-neuronx-collectives/sconosciuto: 2.23.135.0-3e70920f2** amd64
+ **aws-neuronx-dkms/sconosciuto:** 2.19.64.0 amd64
+ **aws-neuronx-runtime-lib/sconosciuto: 2.23.112.0-9b5179492** amd64
+ **aws-neuronx-tools/sconosciuto:** 2.20.204.0 amd64

------

## SageMaker HyperPod Versioni AMI per Slurm: 21 dicembre 2024
<a name="sagemaker-hyperpod-release-ami-slurm-20241221"></a>

**SageMaker HyperPod Supporto DLAMI per Slurm**

------
#### [ Deep Learning Slurm AMI ]
+ **Driver NVIDIA:** 550.127.05
+ **Driver EFA:** 2.13.0-1
+ Installata l'ultima versione di Neuron SDK AWS 
  + **aws-neuronx-collectives: 2.22.33.0**
  + **aws-neuronx-dkms:** 218.20,0
  + **aws-neuronx-oci-hook:** 2.5.8.0
  + **aws-neuronx-runtime-lib:** 2.22.19,0
  + **aws-neuronx-tools:** 2,19,0

------

## SageMaker HyperPod Versioni AMI per Slurm: 24 novembre 2024
<a name="sagemaker-hyperpod-release-ami-slurm-20241124"></a>

**Aggiornamenti generali AMI**
+ Rilasciata nella Regione `MEL` (Melbourne).
+ DLAMI di SageMaker HyperPod base aggiornato alle seguenti versioni:
  + Slurm: 22/11/2024.

## SageMaker HyperPod Versioni AMI per Slurm: 15 novembre 2024
<a name="sagemaker-hyperpod-release-ami-slurm-20241115"></a>

**Aggiornamenti generali AMI**
+ Ultimo pacchetto `libnvidia-nscq-xxx` installato.

**SageMaker HyperPod Supporto DLAMI per Slurm**

------
#### [ Deep Learning Slurm AMI ]
+ **Driver NVIDIA:** 550.127.05
+ **Driver EFA:** 2.13.0-1
+ Installata l'ultima versione di Neuron SDK AWS 
  + **aws-neuronx-collectives: v2.22.33.0-d2128d1aa**
  + **aws-neuronx-dkms:** v2.17.17.0
  + **aws-neuronx-oci-hook:** v2.4.4.0
  + **aws-neuronx-runtime-lib:** v2.21.41.0
  + **aws-neuronx-tools:** v2.18.3.0

------

## SageMaker HyperPod Versioni AMI per Slurm: 11 novembre 2024
<a name="sagemaker-hyperpod-release-ami-slurm-20241111"></a>

**Aggiornamenti generali AMI**
+ DLAMI di SageMaker HyperPod base aggiornato alla seguente versione:
  + Slurm: 23/10/2024.

## SageMaker HyperPod Versioni AMI per Slurm: 21 ottobre 2024
<a name="sagemaker-hyperpod-release-ami-slurm-20241021"></a>

**Aggiornamenti generali AMI**
+ DLAMI di SageMaker HyperPod base aggiornato alle seguenti versioni:
  + Slurm: 27/09/2024.

## SageMaker HyperPod Versioni AMI per Slurm: 10 settembre 2024
<a name="sagemaker-hyperpod-release-ami-slurm-20240910"></a>

**SageMaker HyperPod Supporto DLAMI per Slurm**

------
#### [ Deep Learning Slurm AMI ]
+ Installato il driver NVIDIA v550.90.07
+ Installato il driver EFA v2.10
+ Installata l'ultima versione di Neuron SDK AWS 
  + **aws-neuronx-collectives: v2.21.46.0**
  + **aws-neuronx-dkms:** v2.17.17.0
  + **aws-neuronx-oci-hook:** v2.4.4.0
  + **aws-neuronx-runtime-lib:** v2.21.41.0
  + **aws-neuronx-tools:** v2.18.3.0

------

## SageMaker HyperPod Versioni AMI per Slurm: 14 marzo 2024
<a name="sagemaker-hyperpod-release-ami-slurm-20240314"></a>

**HyperPod Patch software DLAMI per Slurm**
+ [Slurm](https://slurm.schedmd.com/documentation.html) aggiornato alla versione 23.11.1
+ [Aggiunto [Open PMIx](https://openpmix.github.io/code/getting-the-reference-implementation) v4.2.6 per abilitare Slurm con. PMIx](https://slurm.schedmd.com/mpi_guide.html#pmix)
+ Basato sull’[AWS AMI di Deep Learning GPU di base (Ubuntu 20.04)](https://aws.amazon.com/releasenotes/aws-deep-learning-base-gpu-ami-ubuntu-20-04/) rilasciata il 26/10/2023
+ Un elenco completo dei pacchetti preinstallati in questo HyperPod DLAMI oltre all'AMI di base
  + [Slurm](https://slurm.schedmd.com/documentation.html): v23.11.1
  + [Apri PMIx ](https://openpmix.github.io/code/getting-the-reference-implementation): v4.2.6
  + Munge: v0.5.15
  + `aws-neuronx-dkms`: v2.\$1
  + `aws-neuronx-collectives`: v2.\$1
  + `aws-neuronx-runtime-lib`: v2.\$1
  + `aws-neuronx-tools`: v2.\$1
  + SageMaker HyperPod pacchetti software per supportare funzionalità come il controllo dello stato del cluster e il ripristino automatico

**Fasi dell’aggiornamento**
+ Esegui il comando seguente per chiamare l'[UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API per aggiornare i HyperPod cluster esistenti con il HyperPod DLAMI più recente. Per ulteriori istruzioni, consulta [Aggiorna il software della SageMaker HyperPod piattaforma di un cluster](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software).
**Importante**  
Esegui il backup del tuo lavoro prima di eseguire questa API. Il processo di applicazione delle patch sostituisce il volume root con l’AMI aggiornata, il che significa che i dati precedenti archiviati nel volume root dell’istanza andranno persi. Assicurati di eseguire il backup dei dati dal volume root dell'istanza su Amazon S3 o Amazon FSx for Lustre. Per ulteriori informazioni, consulta [Utilizza lo script di backup fornito da SageMaker HyperPod](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software-backup).

  ```
   aws sagemaker update-cluster-software --cluster-name your-cluster-name
  ```
**Nota**  
Tieni presente che dovresti eseguire il AWS CLI comando per aggiornare il HyperPod cluster. L'aggiornamento del HyperPod software tramite l'interfaccia utente SageMaker HyperPod della console non è attualmente disponibile.

## SageMaker HyperPod Rilascio AMI per Slurm: 29 novembre 2023
<a name="sagemaker-hyperpod-release-ami-slurm-20231129"></a>

**HyperPod Patch software DLAMI per Slurm**

Il team HyperPod di assistenza distribuisce le patch software tramite. [SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami) Consulta i seguenti dettagli sull'ultima versione di HyperPod DLAMI.
+ Basato sull’[AWS AMI di Deep Learning GPU di base (Ubuntu 20.04)](https://aws.amazon.com/releasenotes/aws-deep-learning-base-gpu-ami-ubuntu-20-04/) rilasciata il 18/10/2023
+ Un elenco completo dei pacchetti preinstallati in questo HyperPod DLAMI oltre all'AMI di base
  + [Slurm](https://slurm.schedmd.com/documentation.html): v23.02.3
  + Munge: v0.5.15
  + `aws-neuronx-dkms`: v2.\$1
  + `aws-neuronx-collectives`: v2.\$1
  + `aws-neuronx-runtime-lib`: v2.\$1
  + `aws-neuronx-tools`: v2.\$1
  + SageMaker HyperPod pacchetti software per supportare funzionalità come il controllo dello stato del cluster e il ripristino automatico

# SageMaker HyperPod Versioni AMI per Amazon EKS
<a name="sagemaker-hyperpod-release-ami-eks"></a>

Le seguenti note di rilascio tengono traccia degli ultimi aggiornamenti per le versioni di Amazon SageMaker HyperPod AMI per l'orchestrazione di Amazon EKS. Ogni nota di versione include un elenco riepilogativo dei pacchetti preinstallati o preconfigurati nel supporto per SageMaker HyperPod DLAMIs Amazon EKS. Ogni DLAMI è basato AL2023 e supporta una versione specifica di Kubernetes. Per le versioni HyperPod DLAMI per l'orchestrazione di Slurm, vedere. [SageMaker HyperPod Versioni AMI per Slurm](sagemaker-hyperpod-release-ami-slurm.md) Per informazioni sulle versioni delle SageMaker HyperPod funzionalità di Amazon, consulta[Note di SageMaker HyperPod rilascio di Amazon](sagemaker-hyperpod-release-notes.md).

## SageMaker Rilasci dell'AMI Hyperpod per Amazon EKS: 1 marzo 2026
<a name="sagemaker-hyperpod-release-ami-eks-20260301"></a>

 **Aggiornamenti generali AMI** 
+ Aggiornamenti rilasciati per l'AMI SageMaker Hyperpod per Amazon EKS versioni 1.28, 1.29, 1.30, 1.31, 1.32, 1.33, 1.34.
+ [La nota di rilascio di DLAMI di base è disponibile qui.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker Supporto Hyperpod DLAMI per Amazon EKS** 

Questo rilascio include gli aggiornamenti seguenti:

------
#### [ Kubernetes v1.28 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.14, build 0bab007
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + versione di aws CLI v2: aws-cli/1.44.44 Python/3.10.17 Linux/5.10.248-247.988.amzn2.x86\$164 botocore/1.42.54
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 570.211.01
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.16.1g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.28.15-eks-ecaa3a6
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione antistress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300064.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,27
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.16.1g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.28.15-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.2
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300064.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0

------
#### [ Kubernetes v1.29 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.14, build 0bab007
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + versione di aws CLI v2: aws-cli/1.44.44 Python/3.10.17 Linux/5.10.248-247.988.amzn2.x86\$164 botocore/1.42.54
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 570.211.01
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.16.1g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.29.15-eks-ecaa3a6
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione antistress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300064.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.16.1g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.29.15-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.2
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300064.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0

------
#### [ Kubernetes v1.30 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.14, build 0bab007
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + versione di aws CLI v2: aws-cli/1.44.44 Python/3.10.17 Linux/5.10.248-247.988.amzn2.x86\$164 botocore/1.42.54
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 570.211.01
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.16.1g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.30.14-eks-ecaa3a6
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione antistress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300064.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.16.1g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.30.14-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.2
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300064.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0

------
#### [ Kubernetes v1.31 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.14, build 0bab007
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + versione di aws CLI v2: aws-cli/1.44.44 Python/3.10.17 Linux/5.10.248-247.988.amzn2.x86\$164 botocore/1.42.54
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 570.211.01
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.16.1g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.31.13-eks-ecaa3a6
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione antistress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300064.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.16.1g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.31.13-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.2
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300064.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (ARM64):
  + Versione del kernel Linux: 6.12
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.16.1g
  + Versione EFA Installer: 1.43.3
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.31.13-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.2
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione nvidia-imex: 580.126.09
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300064.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 58.

------
#### [ Kubernetes v1.32 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.14, build 0bab007
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + versione di aws CLI v2: aws-cli/1.44.46 Python/3.10.17 Linux/5.10.248-247.988.amzn2.x86\$164 botocore/1.42.56
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 570.211.01
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.16.1g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.32.9-eks-ecaa3a6
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione antistress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300064.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.16.1g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.32.9-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.2
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300064.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (ARM64):
  + Versione del kernel Linux: 6.12
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.16.1g
  + Versione EFA Installer: 1.43.3
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.32.9-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.2
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione nvidia-imex: 580.126.09
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300064.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 58.

------
#### [ Kubernetes v1.33 ]
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.16.1g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.33.5-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.2
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300064.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (ARM64):
  + Versione del kernel Linux: 6.12
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.16.1g
  + Versione EFA Installer: 1.43.3
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.33.5-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.2
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione nvidia-imex: 580.126.09
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300064.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 58.

------
#### [ Kubernetes v1.34 ]
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.16.1g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.34.2-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.2
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300064.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (ARM64):
  + Versione del kernel Linux: 6.12
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.16.1g
  + Versione EFA Installer: 1.43.3
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.34.2-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.2
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione nvidia-imex: 580.126.09
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300064.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 58.

------

## SageMaker Rilasci AMI Hyperpod per Amazon EKS: 12 febbraio 2026
<a name="sagemaker-hyperpod-release-ami-eks-20260212"></a>

 **Aggiornamenti generali AMI** 
+ Aggiornamenti rilasciati per l'AMI SageMaker Hyperpod per Amazon EKS versioni 1.28, 1.29, 1.30, 1.31, 1.32, 1.33, 1.34.
+ [La nota di rilascio di DLAMI di base è disponibile qui.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker Supporto Hyperpod DLAMI per Amazon EKS** 

Questo rilascio include gli aggiornamenti seguenti:

------
#### [ Kubernetes v1.28 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.14, build 0bab007
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + versione di aws CLI v2: aws-cli/1.44.31 Python/3.10.17 Linux/5.10.247-246.989.amzn2.x86\$164 botocore/1.42.41
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 570.211.01
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.15.0g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.28.15-eks-ecaa3a6
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione antistress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,27
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.28.15-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.1
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0

------
#### [ Kubernetes v1.29 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.14, build 0bab007
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + versione di aws CLI v2: aws-cli/1.44.31 Python/3.10.17 Linux/5.10.247-246.989.amzn2.x86\$164 botocore/1.42.41
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 570.211.01
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.15.0g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.29.15-eks-ecaa3a6
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione antistress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.29.15-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.1
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0

------
#### [ Kubernetes v1.30 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.14, build 0bab007
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + versione di aws CLI v2: aws-cli/1.44.31 Python/3.10.17 Linux/5.10.247-246.989.amzn2.x86\$164 botocore/1.42.41
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 570.211.01
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.15.0g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.30.14-eks-ecaa3a6
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione antistress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.30.14-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.1
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0

------
#### [ Kubernetes v1.31 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.14, build 0bab007
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + versione di aws CLI v2: aws-cli/1.44.31 Python/3.10.17 Linux/5.10.247-246.989.amzn2.x86\$164 botocore/1.42.41
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 570.211.01
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.15.0g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.31.13-eks-ecaa3a6
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione antistress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.31.13-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.1
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (ARM64):
  + Versione del kernel Linux: 6.12
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione EFA Installer: 1.43.3
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.31.13-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.1
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione nvidia-imex: 580.126.09
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 58.

------
#### [ Kubernetes v1.32 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.14, build 0bab007
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + versione di aws CLI v2: aws-cli/1.44.31 Python/3.10.17 Linux/5.10.247-246.989.amzn2.x86\$164 botocore/1.42.41
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 570.211.01
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.15.0g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.32.9-eks-ecaa3a6
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione antistress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.32.9-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.1
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (ARM64):
  + Versione del kernel Linux: 6.12
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione EFA Installer: 1.43.3
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.32.9-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.1
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione nvidia-imex: 580.126.09
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 58.

------
#### [ Kubernetes v1.33 ]
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.33.5-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.1
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (ARM64):
  + Versione del kernel Linux: 6.12
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione EFA Installer: 1.43.3
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.33.5-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.1
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione nvidia-imex: 580.126.09
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 58.

------
#### [ Kubernetes v1.34 ]
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione EFA Installer: 1.45.0
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.34.2-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.1
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (ARM64):
  + Versione del kernel Linux: 6.12
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione EFA Installer: 1.43.3
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.34.2-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.1
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione nvidia-imex: 580.126.09
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 58.

------

## SageMaker Rilasci AMI Hyperpod per Amazon EKS: 25 gennaio 2026
<a name="sagemaker-hyperpod-release-ami-eks-20260125"></a>

 **Aggiornamenti generali AMI** 
+ Aggiornamenti rilasciati per l'AMI SageMaker Hyperpod per Amazon EKS versioni 1.28, 1.29, 1.30, 1.31, 1.32, 1.33, 1.34.
+ [La nota di rilascio di DLAMI di base è disponibile qui.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker Supporto Hyperpod DLAMI per Amazon EKS** 

Questo rilascio include gli aggiornamenti seguenti:

------
#### [ Kubernetes v1.28 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.14, build 0bab007
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + versione di aws CLI v2: aws-cli/1.44.21 Python/3.10.17 Linux/5.10.247-246.989.amzn2.x86\$164 botocore/1.42.31
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 570.211.01
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.28.15-eks-ecaa3a6
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione antistress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,27
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.28.15-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0

------
#### [ Kubernetes v1.29 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.14, build 0bab007
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + versione di aws CLI v2: aws-cli/1.44.21 Python/3.10.17 Linux/5.10.247-246.989.amzn2.x86\$164 botocore/1.42.31
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 570.211.01
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.29.15-eks-ecaa3a6
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione antistress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.29.15-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0

------
#### [ Kubernetes v1.30 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.14, build 0bab007
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + versione di aws CLI v2: aws-cli/1.44.21 Python/3.10.17 Linux/5.10.247-246.989.amzn2.x86\$164 botocore/1.42.31
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 570.211.01
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.30.14-eks-ecaa3a6
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione antistress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.30.14-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0

------
#### [ Kubernetes v1.31 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.14, build 0bab007
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + versione di aws CLI v2: aws-cli/1.44.21 Python/3.10.17 Linux/5.10.247-246.989.amzn2.x86\$164 botocore/1.42.31
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 570.211.01
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.31.13-eks-ecaa3a6
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione antistress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.31.13-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (ARM64):
  + Versione del kernel Linux: 6.12
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.31.13-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione nvidia-imex: 580.126.09
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 58.

------
#### [ Kubernetes v1.32 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.14, build 0bab007
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + versione di aws CLI v2: aws-cli/1.44.21 Python/3.10.17 Linux/5.10.247-246.989.amzn2.x86\$164 botocore/1.42.31
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 570.211.01
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.32.9-eks-ecaa3a6
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione antistress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.32.9-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (ARM64):
  + Versione del kernel Linux: 6.12
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.32.9-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione nvidia-imex: 580.126.09
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 58.

------
#### [ Kubernetes v1.33 ]
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.33.5-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (ARM64):
  + Versione del kernel Linux: 6.12
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.33.5-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione nvidia-imex: 580.126.09
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 58.

------
#### [ Kubernetes v1.34 ]
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.34.2-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (ARM64):
  + Versione del kernel Linux: 6.12
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.4
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.5
  + Versione del driver NVIDIA: 580.126.09
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.34.2-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione nvidia-imex: 580.126.09
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300062.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 58.

------

## SageMaker Rilasci AMI Hyperpod per Amazon EKS: 29 dicembre 2025
<a name="sagemaker-hyperpod-release-ami-eks-20251229"></a>

 **Aggiornamenti generali AMI** 
+ Aggiornamenti rilasciati per l'AMI SageMaker Hyperpod per Amazon EKS versioni 1.28, 1.29, 1.30, 1.31, 1.32, 1.33.
+ [La nota di rilascio di DLAMI di base è disponibile qui.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker Supporto Hyperpod DLAMI per Amazon EKS** 

Questo rilascio include gli aggiornamenti seguenti:

------
#### [ Kubernetes v1.28 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.13, build 0bab007
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + versione di aws CLI v2: aws-cli/1.44.4 Python/3.10.17 Linux/5.10.245-245.983.amzn2.x86\$164 botocore/1.42.14
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 570.195.03
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.28.15-eks-ecaa3a6
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione antistress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd 1,7,27
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.105.08
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.28.15-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0

------
#### [ Kubernetes v1.29 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.13, build 0bab007
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + versione di aws CLI v2: aws-cli/1.44.4 Python/3.10.17 Linux/5.10.245-245.983.amzn2.x86\$164 botocore/1.42.14
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 570.195.03
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.29.15-eks-ecaa3a6
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione antistress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.105.08
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.29.15-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0

------
#### [ Kubernetes v1.30 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.13, build 0bab007
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + versione di aws CLI v2: aws-cli/1.44.4 Python/3.10.17 Linux/5.10.245-245.983.amzn2.x86\$164 botocore/1.42.14
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 570.195.03
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.30.14-eks-ecaa3a6
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione di stress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.105.08
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.30.14-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0

------
#### [ Kubernetes v1.31 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.13, build 0bab007
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + versione di aws CLI v2: aws-cli/1.44.4 Python/3.10.17 Linux/5.10.245-245.983.amzn2.x86\$164 botocore/1.42.14
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 570.195.03
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.31.13-eks-ecaa3a6
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione di stress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.4
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.105.08
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.31.13-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (ARM64):
  + Versione del kernel Linux: 6.12
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.4
  + Versione del driver NVIDIA: 580.105.08
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.31.13-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione nvidia-imex: 580.105.08
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 58.

------
#### [ Kubernetes v1.32 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.13, build 0bab007
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd 1,7,29
  + versione di aws CLI v2: aws-cli/1.44.4 Python/3.10.17 Linux/5.10.245-245.983.amzn2.x86\$164 botocore/1.42.14
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 570.195.03
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.32.9-eks-ecaa3a6
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione di stress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.4
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.105.08
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.32.9-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (ARM64):
  + Versione del kernel Linux: 6.12
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.4
  + Versione del driver NVIDIA: 580.105.08
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.32.9-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione nvidia-imex: 580.105.08
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 58.

------
#### [ Kubernetes v1.33 ]
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.4
  + Versione DKMS di aws Neuronx: 2.25.4.0
  + Versione del driver NVIDIA: 580.105.08
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.33.5-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 60.0
+ AL2023 (ARM64):
  + Versione del kernel Linux: 6.12
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd/v2 2.1.4
  + Versione del driver NVIDIA: 580.105.08
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.25
  + Versione Kubernetes: v1.33.5-eks-ecaa3a6
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione nvidia-imex: 580.105.08
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 58.

------

## SageMaker Rilasci AMI Hyperpod per Amazon EKS: 22 novembre 2025
<a name="sagemaker-hyperpod-release-ami-eks-20251128"></a>

 **Aggiornamenti generali AMI** 
+ Aggiornamenti rilasciati per l'AMI SageMaker Hyperpod per Amazon EKS versioni 1.28, 1.29, 1.30, 1.31, 1.32, 1.33.
+ [La nota di rilascio di DLAMI di base è disponibile qui.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker Supporto Hyperpod DLAMI per Amazon EKS** 

Questo rilascio include gli aggiornamenti seguenti:

------
#### [ Kubernetes v1.28 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.13, build 0bab007
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd 1,7,27
  + versione di aws CLI v2: aws-cli/1.42.71 Python/3.10.17 Linux/5.10.245-241.978.amzn2.x86\$164 botocore/1.40.71
  + Versione DKMS di aws Neuronx: 2.24.7.0
  + Versione del driver NVIDIA: 570.195.03
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.28.15-eks-473151a
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione antistress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 59.
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd 1,7,27
  + Versione DKMS di aws Neuronx: 2.24.7.0
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.24
  + Versione Kubernetes: v1.28.15-eks-473151a
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 59.

------
#### [ Kubernetes v1.29 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.13, build 0bab007
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd 1,7,27
  + versione di aws CLI v2: aws-cli/1.42.71 Python/3.10.17 Linux/5.10.245-241.978.amzn2.x86\$164 botocore/1.40.71
  + Versione DKMS di aws Neuronx: 2.24.7.0
  + Versione del driver NVIDIA: 570.195.03
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.29.15-eks-473151a
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione antistress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 59.
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd 1,7,27
  + Versione DKMS di aws Neuronx: 2.24.7.0
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.24
  + Versione Kubernetes: v1.29.15-eks-473151a
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 59.

------
#### [ Kubernetes v1.30 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.13, build 0bab007
  + Versione runc: 1.3.2
  + Versione containerd: containerd github. com/containerd/containerd 1,7,27
  + versione di aws CLI v2: aws-cli/1.42.69 Python/3.10.17 Linux/5.10.245-241.976.amzn2.x86\$164 botocore/1.40.69
  + Versione DKMS di aws Neuronx: 2.24.7.0
  + Versione del driver NVIDIA: 570.195.03
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.30.11-eks-473151a
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione antistress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 58.
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd 1,7,27
  + Versione DKMS di aws Neuronx: 2.24.7.0
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.24
  + Versione Kubernetes: v1.30.11-eks-473151a
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 59.

------
#### [ Kubernetes v1.31 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.13, build 0bab007
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd 1,7,27
  + versione di aws CLI v2: aws-cli/1.42.71 Python/3.10.17 Linux/5.10.245-241.978.amzn2.x86\$164 botocore/1.40.71
  + Versione DKMS di aws Neuronx: 2.24.7.0
  + Versione del driver NVIDIA: 570.195.03
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.31.7-eks-473151a
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione antistress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 59.
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd 1,7,27
  + Versione DKMS di aws Neuronx: 2.24.7.0
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.24
  + Versione Kubernetes: v1.31.13-eks-113cf36
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 59.
+ AL2023 (ARM64):
  + Versione del kernel Linux: 6.12
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd 1,7,27
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.24
  + Versione Kubernetes: v1.31.13-eks-113cf36
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione nvidia-imex: 580.95.05
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 58.

------
#### [ Kubernetes v1.32 ]
+  **AL2 ora è obsoleto. L'AMI Kubernetes è basata su. AL2023** 
+ AL2 (x86\$164):
  + Versione del kernel Linux: 5.10
  + Versione Glibc: 2.26
  + Versione OpenSSL: 1.0.2k-fips
  + FSx Versione Lustre Client: 2.12.8
  + Versione Docker: versione Docker 25.0.13, build 0bab007
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd 1,7,27
  + versione di aws CLI v2: aws-cli/1.42.74 Python/3.10.17 Linux/5.10.245-241.978.amzn2.x86\$164 botocore/1.40.74
  + Versione DKMS di aws Neuronx: 2.24.7.0
  + Versione del driver NVIDIA: 570.195.03
  + Versione CUDA: 12.2
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.7.16
  + Versione Kubernetes: v1.32.3-eks-473151a
  + versione iptables-services: 1.8.4
  + versione nginx: 1.20.1
  + versione nvme-cli: 1.11.1
  + versione epel-release: 7
  + versione antistress: 1.0.4
  + versione raccolta: 5.8.1
  + versione acl: 2.2.51
  + versione rsyslog: 8.24.0
  + versione lustre-client: 2.12.8
  + versione systemd: 219
  + versione openssh: 7.4
  + versione sudo: 1.8.23
  + versione gcc: 7.3.1
  + versione cmake: 2.8.12.2
  + versione git: 2.47.3
  + crea versione: 3.82
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 1.3.0
  + versione lvm2:2.02.187
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 59.
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd 1,7,27
  + Versione DKMS di aws Neuronx: 2.24.7.0
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.24
  + Versione Kubernetes: v1.32.9-eks-113cf36
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 59.
+ AL2023 (ARM64):
  + Versione del kernel Linux: 6.12
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd 1,7,27
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.24
  + Versione Kubernetes: v1.32.9-eks-113cf36
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione nvidia-imex: 580.95.05
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 58.

------
#### [ Kubernetes v1.33 ]
+ AL2023 (x86\$164):
  + Versione del kernel Linux: 6.1
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd 1,7,27
  + Versione DKMS di aws Neuronx: 2.24.7.0
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.24
  + Versione Kubernetes: v1.33.5-eks-113cf36
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 59.
+ AL2023 (ARM64):
  + Versione del kernel Linux: 6.12
  + Versione Glibc: 2.34
  + Versione OpenSSL: 3.2.2
  + FSx Versione Lustre Client: 2.15.6
  + Versione runc: 1.3.3
  + Versione containerd: containerd github. com/containerd/containerd 1,7,27
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 12.8
  + Versione del driver ENA: 2.15.0g
  + Versione Python: 3.9.24
  + Versione Kubernetes: v1.33.5-eks-113cf36
  + versione iptables-services: 1.8.8
  + versione nginx: 1.28.0
  + versione nvme-cli: 2.13 1.13
  + versione antistress: 1.0.7
  + versione raccolta: 5.12.0.
  + versione acl: 2.3.1
  + versione lustre-client: 2.15.6
  + versione nvidia-imex: 580.95.05
  + versione systemd: 252
  + versione openssh: 8.7
  + versione sudo: 1.9.15
  + versione gcc: 11.5.0
  + versione cmake: 3.22.2
  + versione git: 2.50.1
  + crea versione: 4.3
  + versione cloudwatch-agent: 1.300060.1
  + versione nfs-utils: 2.5.4
  + versione lvm2:2.03.16
  + versione ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versione: 2.0
  + versione rdma-core: 58.

------

## SageMaker HyperPod Versioni AMI per Amazon EKS: 7 novembre 2025
<a name="sagemaker-hyperpod-release-ami-eks-20251107"></a>

**Aggiornamenti generali AMI**
+ Aggiornamenti rilasciati per SageMaker HyperPod AMI per Amazon EKS versioni 1.28, 1.29, 1.30, 1.31, 1.32 e 1.33. 
+ [La nota di rilascio di DLAMI di base è disponibile qui.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

**SageMaker HyperPod Supporto DLAMI per Amazon EKS**

Questo rilascio include gli aggiornamenti seguenti:

------
#### [ Kubernetes v1.28 ]
+ **Amazon Linux 2 è ora obsoleto. L'AMI Kubernetes è basata su. AL2023**
+ AL2 (x86\$164):
  + Versione del driver NVIDIA: 570.195.03
  + Versione CUDA: 12.8
  + Versione Kubernetes: 1.28.15
+ AL2023 (x86\$164):
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 13.0
  + Versione Kubernetes: 1.28.15
+ Gli aggiornamenti del pacchetto includono i componenti boto3, botocore, pip, regex, psutil e nvidia container toolkit.
+ Pacchetto aggiunto: annotated-doc 0.0.3

------
#### [ Kubernetes v1.29 ]
+ **Amazon Linux 2 è ora obsoleto. L'AMI Kubernetes è basata su. AL2023**
+ AL2 (x86\$164):
  + Versione del driver NVIDIA: 570.195.03
  + Versione CUDA: 12.8
  + Versione Kubernetes: 1.29.15
+ AL2023 (x86\$164):
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 13.0
  + Versione Kubernetes: 1.29.15
+ Gli aggiornamenti dei pacchetti includono aggiornamenti del kernel, aggiornamenti di glibc e varie librerie di sistema.
+ Pacchetto aggiunto: annotated-doc 0.0.3

------
#### [ Kubernetes v1.30 ]
+ **Amazon Linux 2 è ora obsoleto. L'AMI Kubernetes è basata su. AL2023**
+ AL2 (x86\$164):
  + Versione del driver NVIDIA: 570.195.03
  + Versione CUDA: 12.8
  + Versione Kubernetes: 1.30.11
+ AL2023 (x86\$164):
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 13.0
  + Versione Kubernetes: 1.30.11
+ Gli aggiornamenti dei pacchetti includono aggiornamenti del kernel livepatch e aggiornamenti delle librerie di sistema.
+ Pacchetto aggiunto: annotated-doc 0.0.3

------
#### [ Kubernetes v1.31 ]
+ **Amazon Linux 2 è ora obsoleto. L'AMI Kubernetes è basata su. AL2023**
+ AL2 (x86\$164):
  + Versione del driver NVIDIA: 570.195.03
  + Versione CUDA: 12.8
  + Versione Kubernetes: 1.31.7
+ AL2023 (x86\$164):
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 13.0
  + Versione Kubernetes: 1.31.13
+ AL2023 (braccio):
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 13.0
  + Versione Kubernetes: 1.31.13
  + Versione del kernel: 6.12.46-66.121.amzn2023.aarch64
+ Gli aggiornamenti dei pacchetti includono aggiornamenti estesi delle librerie di sistema, aggiornamenti del kernel e aggiornamenti delle librerie boost.
+ Pacchetti aggiunti: apr-util-lmdb kernel-livepatch-6.1.156-177.286

------
#### [ Kubernetes v1.32 ]
+ **Amazon Linux 2 è ora obsoleto. L'AMI Kubernetes è basata su. AL2023**
+ AL2 (x86\$164):
  + Versione del driver NVIDIA: 570.195.03
  + Versione CUDA: 12.8
  + Versione Kubernetes: 1.32.3
  + AWS Versione IAM Authenticator: v0.6.29
+ AL2023 (x86\$164):
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 13.0
  + Versione Kubernetes: 1.32.9
+ AL2023 (braccio):
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 13.0
  + Versione Kubernetes: 1.32.9
  + Versione del kernel: 6.12.46-66.121.amzn2023.aarch64
+ Gli aggiornamenti dei pacchetti includono aggiornamenti del kernel livepatch e aggiornamenti delle librerie di sistema.
+ Pacchetto aggiunto: annotated-doc 0.0.3

------
#### [ Kubernetes v1.33 ]
+ AL2023 (x86\$164):
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 13.0
  + Versione Kubernetes: 1.33.5
  + Versione del kernel: 6.1.155-176.282.amzn2023.x86\$164
+ AL2023 (braccio):
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 13.0
  + Versione Kubernetes: 1.33.5
  + Versione del kernel: 6.12.46-66.121.amzn2023.aarch64
+ Gli aggiornamenti dei pacchetti includono aggiornamenti estesi delle librerie di sistema, aggiornamenti del kernel e aggiornamenti delle librerie boost.
+ Pacchetti aggiunti: apr-util-lmdb, aggiornamenti kernel-livepatch

------

**Nota**  
[la versione runc è stata aggiornata alla versione 1.3.2 Bollettino di sicurezza](https://aws.amazon.com/security/security-bulletins/rss/aws-2025-024/)

## SageMaker HyperPod Versioni AMI per Amazon EKS: 29 ottobre 2025
<a name="sagemaker-hyperpod-release-ami-eks-20251029"></a>

**Aggiornamenti generali AMI**
+ Aggiornamenti rilasciati per SageMaker HyperPod AMI per Amazon EKS versioni 1.28, 1.29, 1.30, 1.31, 1.32 e 1.33. 
+ [La nota di rilascio di DLAMI di base è disponibile qui.](https://docs.aws.amazon.com//dlami/latest/devguide/aws-deep-learning-ami-baseoss-aml2-2025-10-14.html)

**SageMaker HyperPod Supporto DLAMI per Amazon EKS**

Questo rilascio include gli aggiornamenti seguenti:

------
#### [ Kubernetes v1.28 ]
+ **Amazon Linux 2 è ora obsoleto. L'AMI Kubernetes è basata su. AL2023**
+ AL2 (x86\$164):
  + Versione del driver NVIDIA: 570.195.03
  + Versione CUDA: 12.8
  + Versione Kubernetes: 1.28.15
+ AL2023 (x86\$164):
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 13.0
  + Versione Kubernetes: 1.28.15
+ Gli aggiornamenti del pacchetto includono i componenti boto3, botocore, pip, regex, psutil e nvidia container toolkit.
+ Pacchetto aggiunto: annotated-doc 0.0.3

------
#### [ Kubernetes v1.29 ]
+ **Amazon Linux 2 è ora obsoleto. L'AMI Kubernetes è basata su. AL2023**
+ AL2 (x86\$164):
  + Versione del driver NVIDIA: 570.195.03
  + Versione CUDA: 12.8
  + Versione Kubernetes: 1.29.15
+ AL2023 (x86\$164):
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 13.0
  + Versione Kubernetes: 1.29.15
+ Gli aggiornamenti dei pacchetti includono aggiornamenti del kernel, aggiornamenti di glibc e varie librerie di sistema.
+ Pacchetto aggiunto: annotated-doc 0.0.3

------
#### [ Kubernetes v1.30 ]
+ **Amazon Linux 2 è ora obsoleto. L'AMI Kubernetes è basata su. AL2023**
+ AL2 (x86\$164):
  + Versione del driver NVIDIA: 570.195.03
  + Versione CUDA: 12.8
  + Versione Kubernetes: 1.30.11
+ AL2023 (x86\$164):
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 13.0
  + Versione Kubernetes: 1.30.11
+ Gli aggiornamenti dei pacchetti includono aggiornamenti del kernel livepatch e aggiornamenti delle librerie di sistema.
+ Pacchetto aggiunto: annotated-doc 0.0.3

------
#### [ Kubernetes v1.31 ]
+ **Amazon Linux 2 è ora obsoleto. L'AMI Kubernetes è basata su. AL2023**
+ AL2 (x86\$164):
  + Versione del driver NVIDIA: 570.195.03
  + Versione CUDA: 12.8
  + Versione Kubernetes: 1.31.7
+ AL2023 (x86\$164):
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 13.0
  + Versione Kubernetes: 1.31.13
+ AL2023 (braccio):
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 13.0
  + Versione Kubernetes: 1.31.13
  + Versione del kernel: 6.12.46-66.121.amzn2023.aarch64
+ Gli aggiornamenti dei pacchetti includono aggiornamenti estesi delle librerie di sistema, aggiornamenti del kernel e aggiornamenti delle librerie boost.
+ Pacchetti aggiunti: apr-util-lmdb kernel-livepatch-6.1.156-177.286

------
#### [ Kubernetes v1.32 ]
+ **Amazon Linux 2 è ora obsoleto. L'AMI Kubernetes è basata su. AL2023**
+ AL2 (x86\$164):
  + Versione del driver NVIDIA: 570.195.03
  + Versione CUDA: 12.8
  + Versione Kubernetes: 1.32.3
+ AL2023 (x86\$164):
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 13.0
  + Versione Kubernetes: 1.32.9
+ AL2023 (braccio):
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 13.0
  + Versione Kubernetes: 1.32.9
  + Versione del kernel: 6.12.46-66.121.amzn2023.aarch64
+ Gli aggiornamenti dei pacchetti includono aggiornamenti del kernel livepatch e aggiornamenti delle librerie di sistema.
+ Pacchetto aggiunto: annotated-doc 0.0.3

------
#### [ Kubernetes v1.33 ]
+ AL2023 (x86\$164):
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 13.0
  + Versione Kubernetes: 1.33.5
  + Versione del kernel: 6.1.155-176.282.amzn2023.x86\$164
+ AL2023 (braccio):
  + Versione del driver NVIDIA: 580.95.05
  + Versione CUDA: 13.0
  + Versione Kubernetes: 1.33.5
  + Versione del kernel: 6.12.46-66.121.amzn2023.aarch64
+ Gli aggiornamenti dei pacchetti includono aggiornamenti estesi delle librerie di sistema, aggiornamenti del kernel e aggiornamenti delle librerie boost.
+ Pacchetti aggiunti: apr-util-lmdb, aggiornamenti kernel-livepatch

------

## SageMaker HyperPod Versioni AMI per Amazon EKS: 22 ottobre 2025
<a name="sagemaker-hyperpod-release-ami-eks-20251022"></a>

**AL2x86**

**Nota**  
Amazon Linux 2 è ora obsoleto. L'AMI Kubernetes è basata su. AL2023

[La nota di rilascio di DLAMI di base è disponibile qui.](https://docs.aws.amazon.com//dlami/latest/devguide/aws-deep-learning-ami-baseoss-aml2-2025-10-14.html)
+ Versioni EKS 1.28 - 1.32
+ [Questa versione contiene le patch CVE per i pacchetti di driver NVIDIA interessati, disponibili nel Nvidia October Security Bulletin.](https://nvidia.custhelp.com/app/answers/detail/a_id/5703)
+ NVIDIA SMI

  ```
  NVIDIA-SMI 570.195.03             
  Driver Version: 570.195.03     
  CUDA Version: 12.8
  ```
+ Versioni principali  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-release-ami-eks.html)
+ Pacchetti aggiunti: nessun pacchetto è stato aggiunto in questa versione.
+ Pacchetti aggiornati  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-release-ami-eks.html)
+ Pacchetti rimossi: nessun pacchetto è stato rimosso in questa versione.

**AL2023x86**

[La nota di rilascio di DLAMI di base è disponibile qui.](https://docs.aws.amazon.com//dlami/latest/devguide/aws-deep-learning-ami-gpubaseoss-al2023-2025-10-14.html)
+ Versioni EKS 1.28 - 1.32. Nessuna versione per la versione 1.33 di EKS.
+ [Questa versione contiene le patch CVE per i pacchetti di driver NVIDIA interessati, disponibili nel Nvidia October Security Bulletin.](https://nvidia.custhelp.com/app/answers/detail/a_id/5703)
+ NVIDIA SMI

  ```
  NVIDIA-SMI 580.95.05             
  Driver Version: 580.95.05  
  CUDA Version: 13.0
  ```
+ Versioni principali  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-release-ami-eks.html)
+ Pacchetti aggiunti: nessun pacchetto è stato aggiunto in questa versione.
+ Pacchetti aggiornati  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-release-ami-eks.html)
+ Pacchetti rimossi: nessun pacchetto è stato rimosso in questa versione.

**AL2023 ARM64**

[La nota di rilascio di DLAMI di base è disponibile qui.](https://docs.aws.amazon.com//dlami/latest/devguide/aws-deep-learning-ami-gpubaseossarm64-al2023-2025-10-14.html)
+ Versioni EKS 1.31 - 1.33.
+ [Questa versione contiene le patch CVE per i pacchetti di driver NVIDIA interessati, disponibili nel Nvidia October Security Bulletin.](https://nvidia.custhelp.com/app/answers/detail/a_id/5703)
+ NVIDIA SMI

  ```
  NVIDIA-SMI 580.95.05        
  Driver Version: 580.95.05    
  CUDA Version: 13.0
  ```
+ Versioni principali  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-release-ami-eks.html)
+ Pacchetti aggiunti: nessun pacchetto è stato aggiunto in questa versione.
+ Pacchetti aggiornati  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-hyperpod-release-ami-eks.html)
+ Pacchetti rimossi: nessun pacchetto è stato rimosso in questa versione.

## SageMaker HyperPod Versioni AMI per Amazon EKS: 29 settembre 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250929"></a>

**Aggiornamenti generali AMI**
+ Rilasciata la nuova SageMaker HyperPod AMI per Amazon EKS 1.33. Per ulteriori informazioni, consulta le versioni SageMaker HyperPod AMI per Amazon EKS: 29 settembre 2025.
**Importante**  
L'API Kubernetes beta di Dynamic Resource Allocation è abilitata per impostazione predefinita in questa versione.  
Questa API migliora la pianificazione e il monitoraggio dei carichi di lavoro che richiedono risorse come. GPUs
Questa API è stata sviluppata dalla community open source di Kubernetes e potrebbe cambiare nelle future versioni di Kubernetes. Prima di utilizzare l'API, consulta la documentazione di [Kubernetes](https://kubernetes.io/docs/concepts/scheduling-eviction/dynamic-resource-allocation/) e scopri come influisce sui tuoi carichi di lavoro.
HyperPod non sta rilasciando un'AMI HyperPod Amazon Linux 2 per Kubernetes 1.33. AWS consiglia di eseguire la migrazione a. AL2023 Per ulteriori informazioni, consulta [Eseguire l'aggiornamento da Amazon Linux 2 a AL2023](https://docs.aws.amazon.com/eks/latest/userguide/al2023.html).

Per ulteriori informazioni, consulta [Kubernetes](https://kubernetes.io/blog/2025/04/23/kubernetes-v1-33-release/) v1.33.

**SageMaker HyperPod Supporto DLAMI per Amazon EKS**

Questo rilascio include gli aggiornamenti seguenti:

------
#### [ Kubernetes v1.28 ]
+ **Amazon Linux 2 è ora obsoleto. L'AMI Kubernetes è basata su. AL2023**
+ NVIDIA SMI:
  + Versione del driver NVIDIA: 570.172.08
  + Versione CUDA: 12.8
+ Pacchetti:
  + Linguaggi e librerie di base:
    + GCC: 11.5.0-5.amzn2023.0.5
    + GCC 14:14.2.1-7.amzn2023.0.1
    + Giava: 17.0.16\$18-1.amzn2023.1
    + Perl: 5.32.1-477.amzn2023.0.7
    + Python: 3.9.23-1.amzn2023.0.3
    + Vai a: 3.2.0-37.amzn2023
    + Rust: 1.89.0-1.amzn2023.0.2
  + Librerie principali:
    + GLibC: 2.34-196.amzn2023.0.1
    + OpenSSL: 3.2.2-1.amzn2023.0.1
    + Zlib: 1.2.11-33.amzn2023.0.5
    + Utilità XZ: 5.2.5-9.amzn2023.0.2
    + UtilLinux: 2.37.4-1.amzn2023.0.4
  + Neurone:
    + aws-neuronx-dkms: 2.23,9,0 - dkm
    + aws-neuronx-tools: 2,25,145,0-1
  + EFA:
    + driver efa: 2.17.2-1.amzn2023
    + configurazione efa: 1.18-1.amzn2023
    + programma di aggiornamento efa: 1.2.2-1.amzn2023
    + profilo efa: 1.7-1.amzn2023
  + kernel:
    + kernel: 6.1.148-173.267.amzn2023
    + sviluppo del kernel: 6.1.148-173.267.amzn2023
    + intestazioni del kernel: 6.1.148-173.267.amzn2023
    + strumenti del kernel: 6.1.148-173.267.amzn2023
    + moduli kernel aggiuntivi: 6.1.148-173.267.amzn2023
    + patch live del kernel: 1.0-0.amzn2023
  + Nvidia:
    + toolkit per contenitori nvidia: 1.17.8-1
    + base del toolkit per contenitori nvidia: 1.17.8-1
    + libnvidia-container: 1.17.8-1 (con strumenti)
    + gestore di tessuti nvidia: 570.172.08-1
    + libnvidia-nscq: 570.172.08-1

------
#### [ Kubernetes v1.29 ]
+ **Amazon Linux 2 è ora obsoleto. L'AMI Kubernetes è basata su. AL2023**
+ NVIDIA SMI:
  + Versione del driver NVIDIA: 570.172.08
  + Versione CUDA: 12.8
+ Pacchetti:
  + Linguaggi e librerie di base:
    + GCC: 11.5.0-5.amzn2023.0.5
    + GCC 14:14.2.1-7.amzn2023.0.1
    + Giava: 17.0.16\$18-1.amzn2023.1
    + Perl: 5.32.1-477.amzn2023.0.7
    + Python: 3.9.23-1.amzn2023.0.3
    + Vai a: 3.2.0-37.amzn2023
    + Rust: 1.89.0-1.amzn2023.0.2
  + Librerie principali:
    + GLibC: 2.34-196.amzn2023.0.1
    + OpenSSL: 3.2.2-1.amzn2023.0.1
    + Zlib: 1.2.11-33.amzn2023.0.5
    + Utilità XZ: 5.2.5-9.amzn2023.0.2
    + UtilLinux: 2.37.4-1.amzn2023.0.4
  + Neurone:
    + aws-neuronx-dkms: 2.23,9,0 - dkm
    + aws-neuronx-tools: 2,25,145,0-1
  + EFA:
    + driver efa: 2.17.2-1.amzn2023
    + configurazione efa: 1.18-1.amzn2023
    + programma di aggiornamento efa: 1.2.2-1.amzn2023
    + profilo efa: 1.7-1.amzn2023
  + kernel:
    + kernel: 6.1.148-173.267.amzn2023
    + sviluppo del kernel: 6.1.148-173.267.amzn2023
    + intestazioni del kernel: 6.1.148-173.267.amzn2023
    + strumenti del kernel: 6.1.148-173.267.amzn2023
    + moduli kernel aggiuntivi: 6.1.148-173.267.amzn2023
    + patch live del kernel: 1.0-0.amzn2023
  + Nvidia:
    + toolkit per contenitori nvidia: 1.17.8-1
    + base del toolkit per contenitori nvidia: 1.17.8-1
    + libnvidia-container: 1.17.8-1 (con strumenti)
    + gestore di tessuti nvidia: 570.172.08-1
    + libnvidia-nscq: 570.172.08-1

------
#### [ Kubernetes v1.30 ]
+ **Amazon Linux 2 è ora obsoleto. L'AMI Kubernetes è basata su. AL2023**
+ NVIDIA SMI:
  + Versione del driver NVIDIA: 570.172.08
  + Versione CUDA: 12.8
+ Pacchetti:
  + Linguaggi e librerie di base:
    + GCC: 11.5.0-5.amzn2023.0.5
    + GCC 14:14.2.1-7.amzn2023.0.1
    + Giava: 17.0.16\$18-1.amzn2023.1
    + Perl: 5.32.1-477.amzn2023.0.7
    + Python: 3.9.23-1.amzn2023.0.3
    + Vai a: 3.2.0-37.amzn2023
    + Rust: 1.89.0-1.amzn2023.0.2
  + Librerie principali:
    + GLibC: 2.34-196.amzn2023.0.1
    + OpenSSL: 3.2.2-1.amzn2023.0.1
    + Zlib: 1.2.11-33.amzn2023.0.5
    + Utilità XZ: 5.2.5-9.amzn2023.0.2
    + UtilLinux: 2.37.4-1.amzn2023.0.4
  + Neurone:
    + aws-neuronx-dkms: 2.23,9,0 - dkm
    + aws-neuronx-tools: 2,25,145,0-1
  + EFA:
    + driver efa: 2.17.2-1.amzn2023
    + configurazione efa: 1.18-1.amzn2023
    + programma di aggiornamento efa: 1.2.2-1.amzn2023
    + profilo efa: 1.7-1.amzn2023
  + kernel:
    + kernel: 6.1.148-173.267.amzn2023
    + sviluppo del kernel: 6.1.148-173.267.amzn2023
    + intestazioni del kernel: 6.1.148-173.267.amzn2023
    + strumenti del kernel: 6.1.148-173.267.amzn2023
    + moduli kernel aggiuntivi: 6.1.148-173.267.amzn2023
    + patch live del kernel: 1.0-0.amzn2023
  + Nvidia:
    + toolkit per contenitori nvidia: 1.17.8-1
    + base del toolkit per contenitori nvidia: 1.17.8-1
    + libnvidia-container: 1.17.8-1 (con strumenti)
    + gestore di tessuti nvidia: 570.172.08-1
    + libnvidia-nscq: 570.172.08-1

------
#### [ Kubernetes v1.31 ]
+ **Amazon Linux 2 è ora obsoleto. L'AMI Kubernetes è basata su. AL2023**
+ NVIDIA SMI:
  + Versione del driver NVIDIA: 570.172.08
  + Versione CUDA: 12.8
+ Pacchetti:
  + Linguaggi e librerie di base:
    + GCC: 11.5.0-5.amzn2023.0.5
    + GCC 14:14.2.1-7.amzn2023.0.1
    + Giava: 17.0.16\$18-1.amzn2023.1
    + Perl: 5.32.1-477.amzn2023.0.7
    + Python: 3.9.23-1.amzn2023.0.3
    + Vai a: 3.2.0-37.amzn2023
    + Rust: 1.89.0-1.amzn2023.0.2
  + Librerie principali:
    + GLibC: 2.34-196.amzn2023.0.1
    + OpenSSL: 3.2.2-1.amzn2023.0.1
    + Zlib: 1.2.11-33.amzn2023.0.5
    + Utilità XZ: 5.2.5-9.amzn2023.0.2
    + UtilLinux: 2.37.4-1.amzn2023.0.4
  + Neurone:
    + aws-neuronx-dkms: 2.23,9,0 - dkm
    + aws-neuronx-tools: 2,25,145,0-1
  + EFA:
    + driver efa: 2.17.2-1.amzn2023
    + configurazione efa: 1.18-1.amzn2023
    + programma di aggiornamento efa: 1.2.2-1.amzn2023
    + profilo efa: 1.7-1.amzn2023
  + kernel:
    + kernel: 6.1.148-173.267.amzn2023
    + sviluppo del kernel: 6.1.148-173.267.amzn2023
    + intestazioni del kernel: 6.1.148-173.267.amzn2023
    + strumenti del kernel: 6.1.148-173.267.amzn2023
    + moduli kernel aggiuntivi: 6.1.148-173.267.amzn2023
    + patch live del kernel: 1.0-0.amzn2023
  + Nvidia:
    + toolkit per contenitori nvidia: 1.17.8-1
    + base del toolkit per contenitori nvidia: 1.17.8-1
    + libnvidia-container: 1.17.8-1 (con strumenti)
    + gestore di tessuti nvidia: 570.172.08-1
    + libnvidia-nscq: 570.172.08-1

------
#### [ Kubernetes v1.32 ]
+ **Amazon Linux 2 è ora obsoleto. L'AMI Kubernetes è basata su. AL2023**
+ NVIDIA SMI:
  + Versione del driver NVIDIA: 570.172.08
  + Versione CUDA: 12.8
+ Pacchetti:
  + Linguaggi e librerie di base:
    + GCC: 11.5.0-5.amzn2023.0.5
    + GCC 14:14.2.1-7.amzn2023.0.1
    + Giava: 17.0.16\$18-1.amzn2023.1
    + Perl: 5.32.1-477.amzn2023.0.7
    + Python: 3.9.23-1.amzn2023.0.3
    + Vai a: 3.2.0-37.amzn2023
    + Rust: 1.89.0-1.amzn2023.0.2
  + Librerie principali:
    + GLibC: 2.34-196.amzn2023.0.1
    + OpenSSL: 3.2.2-1.amzn2023.0.1
    + Zlib: 1.2.11-33.amzn2023.0.5
    + Utilità XZ: 5.2.5-9.amzn2023.0.2
    + UtilLinux: 2.37.4-1.amzn2023.0.4
  + Neurone:
    + aws-neuronx-dkms: 2.23,9,0 - dkm
    + aws-neuronx-tools: 2,25,145,0-1
  + EFA:
    + driver efa: 2.17.2-1.amzn2023
    + configurazione efa: 1.18-1.amzn2023
    + programma di aggiornamento efa: 1.2.2-1.amzn2023
    + profilo efa: 1.7-1.amzn2023
  + kernel:
    + kernel: 6.1.148-173.267.amzn2023
    + sviluppo del kernel: 6.1.148-173.267.amzn2023
    + intestazioni del kernel: 6.1.148-173.267.amzn2023
    + strumenti del kernel: 6.1.148-173.267.amzn2023
    + moduli kernel aggiuntivi: 6.1.148-173.267.amzn2023
    + patch live del kernel: 1.0-0.amzn2023
  + Nvidia:
    + toolkit per contenitori nvidia: 1.17.8-1
    + base del toolkit per contenitori nvidia: 1.17.8-1
    + libnvidia-container: 1.17.8-1 (con strumenti)
    + gestore di tessuti nvidia: 570.172.08-1
    + libnvidia-nscq: 570.172.08-1

------
#### [ Kubernetes v1.33 ]

La tabella seguente contiene informazioni sui componenti di questa versione AMI e delle versioni corrispondenti.


| componente | AL2023\$1x86 | AL2023\$1arm64 | 
| --- | --- | --- | 
| EKS | v1.33.4 | v1.33.4 | 
| amazon-ssm-agent | 3.3.2299,0-1amzn2023 | 3.3.2299,0-1.amzn2023 | 
| aws-neuronx-dkms | 2.23,9,0 - kms | N/D | 
| containerd | 1,7,27-1eks.amzn2023.0,4 | 1,7,27-1eks.amzn2023,0.4 | 
| efa | 2.17.2-1.amzn2023 | 2.17.2-1.amzn2023 | 
| ena | 2.14,1 g | 2,14,1 g | 
| kernel | 6.12.40-64.114.amzn2023 | N/D | 
| kernel 6.12 | N/D | 6.12.40-64.114.amzn2023 | 
| kmod-nvidia-latest-dkms | 570,172,08-1amzn2023 | 570,172,08-1el9 | 
| nvidia-container-toolkit | 1,178-1 | 1,178-1 | 
| runc | 1.2.6-1.amzn2023.0.1 | 1.2.6-1.amzn2023.0.1 | 

------

## SageMaker HyperPod Versioni AMI per Amazon EKS: 25 agosto 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250825"></a>

**SageMaker HyperPod Supporto DLAMI per Amazon EKS**

Questo rilascio include gli aggiornamenti seguenti:

------
#### [ Kubernetes v1.28 ]

**NVIDIA SMI:**
+ Driver NVIDIA versione: 570.172.08
+ Versione CUDA: 12.8

**Pacchetti aggiunti:**
+ kernel-livepatch-5.10.240-238.955.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Pacchetti aggiornati:**
+ gdk-pixbuf2.x86\$164: 2.36.12-3.amzn2 → 2.36.12-3.amzn2.0.2
+ kernel.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-devel.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-headers.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-tools.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ libgs.x86\$164: 9.54.0-9.amzn2.0.11 → 9.54.0-9.amzn2.0.12
+ microcode\$1ctl.x86\$164: 2:2.1-47.amzn2.4.24 → 2:2.1-47.amzn2.4.25
+ pam.x86\$164: 1.1.8-23.amzn2.0.2 → 1.1.8-23.amzn2.0.4

**Pacchetti rimossi:**
+ kernel-livepatch-5.10.239-236.958.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Repository modificato:**
+ libnvidia-container-tools.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ libnvidia-container1.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ nvidia-container-toolkit.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ nvidia-container-toolkit-base.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit

------
#### [ Kubernetes v1.29 ]

**NVIDIA SMI:**
+ Driver NVIDIA versione: 570.172.08
+ Versione CUDA: 12.8

**Pacchetti aggiunti:**
+ kernel-livepatch-5.10.240-238.955.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Pacchetti aggiornati:**
+ gdk-pixbuf2.x86\$164: 2.36.12-3.amzn2 → 2.36.12-3.amzn2.0.2
+ kernel.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-devel.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-headers.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-tools.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ libgs.x86\$164: 9.54.0-9.amzn2.0.11 → 9.54.0-9.amzn2.0.12
+ microcode\$1ctl.x86\$164: 2:2.1-47.amzn2.4.24 → 2:2.1-47.amzn2.4.25
+ pam.x86\$164: 1.1.8-23.amzn2.0.2 → 1.1.8-23.amzn2.0.4

**Pacchetti rimossi:**
+ kernel-livepatch-5.10.239-236.958.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Repository modificato:**
+ libnvidia-container-tools.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ libnvidia-container1.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ nvidia-container-toolkit.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ nvidia-container-toolkit-base.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit

------
#### [ Kubernetes v1.30 ]

**NVIDIA SMI:**
+ Driver NVIDIA versione: 570.172.08
+ Versione CUDA: 12.8

**Pacchetti aggiunti:**
+ kernel-livepatch-5.10.240-238.955.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Pacchetti aggiornati:**
+ aws-neuronx-dkms.noarch: 2.22.2,0-dkms → 2.23,9,0-dkms
+ efa.x86\$164: 2.15.3-1.amzn2 → 2.17.2-1.amzn2
+ efa-nv-peermem.x86\$164:1.2.1-1.amzn2 → 1.2.2-1.amzn2
+ gdk-pixbuf2.x86\$164: 2.36.12-3.amzn2 → 2.36.12-3.amzn2.0.2
+ ibacm.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ infiniband-diags.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ kernel.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-devel.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-headers.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-tools.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ libfabric-aws.x86\$164: 2.1.0amzn3.0-1.amzn2 → 2.1.0amzn5.0-1.amzn2
+ libfabric-aws-devel.x86\$164:2.1.0amzn3.0-1.amzn2 → 2.1.0amzn5.0-1.amzn2
+ libgs.x86\$164: 9.54.0-9.amzn2.0.11 → 9.54.0-9.amzn2.0.12
+ libibumad.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ libibverbs.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ libibverbs-core.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ libibverbs-utils.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ libnccl-ofi.x86\$164: 1.15.0-1.amzn2 → 1.16.2-1.amzn2
+ librdmacm.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ librdmacm-utils.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ microcode\$1ctl.x86\$164: 2:2.1-47.amzn2.4.24 → 2:2.1-47.amzn2.4.25
+ pam.x86\$164: 1.1.8-23.amzn2.0.2 → 1.1.8-23.amzn2.0.4
+ rdma-core.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ rdma-core-devel.x86\$164:57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2

**Pacchetti rimossi:**
+ kernel-livepatch-5.10.239-236.958.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Repository modificato:**
+ libnvidia-container-tools.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ libnvidia-container1.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ nvidia-container-toolkit.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ nvidia-container-toolkit-base.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit

------
#### [ Kubernetes v1.31 ]

**NVIDIA SMI:**
+ Driver NVIDIA versione: 570.172.08
+ Versione CUDA: 12.8

**Pacchetti aggiunti:**
+ kernel-livepatch-5.10.240-238.955.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Pacchetti aggiornati:**
+ gdk-pixbuf2.x86\$164: 2.36.12-3.amzn2 → 2.36.12-3.amzn2.0.2
+ kernel.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-devel.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-headers.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-tools.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ libgs.x86\$164: 9.54.0-9.amzn2.0.11 → 9.54.0-9.amzn2.0.12
+ microcode\$1ctl.x86\$164: 2:2.1-47.amzn2.4.24 → 2:2.1-47.amzn2.4.25
+ pam.x86\$164: 1.1.8-23.amzn2.0.2 → 1.1.8-23.amzn2.0.4

**Pacchetti rimossi:**
+ kernel-livepatch-5.10.239-236.958.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Repository modificato:**
+ libnvidia-container-tools.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ libnvidia-container1.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ nvidia-container-toolkit.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ nvidia-container-toolkit-base.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit

------
#### [ Kubernetes v1.32 ]

**NVIDIA SMI:**
+ Driver NVIDIA versione: 570.172.08
+ Versione CUDA: 12.8

**Pacchetti aggiunti:**
+ kernel-livepatch-5.10.240-238.955.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Pacchetti aggiornati:**
+ aws-neuronx-dkms.noarch: 2.22.2,0-dkms → 2.23,9,0-dkms
+ efa.x86\$164: 2.15.3-1.amzn2 → 2.17.2-1.amzn2
+ efa-nv-peermem.x86\$164:1.2.1-1.amzn2 → 1.2.2-1.amzn2
+ gdk-pixbuf2.x86\$164: 2.36.12-3.amzn2 → 2.36.12-3.amzn2.0.2
+ ibacm.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ infiniband-diags.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ kernel.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-devel.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-headers.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ kernel-tools.x86\$164: 5.10.239-236.958.amzn2 → 5.10.240-238.955.amzn2
+ libfabric-aws.x86\$164: 2.1.0amzn3.0-1.amzn2 → 2.1.0amzn5.0-1.amzn2
+ libfabric-aws-devel.x86\$164:2.1.0amzn3.0-1.amzn2 → 2.1.0amzn5.0-1.amzn2
+ libgs.x86\$164: 9.54.0-9.amzn2.0.11 → 9.54.0-9.amzn2.0.12
+ libibumad.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ libibverbs.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ libibverbs-core.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ libibverbs-utils.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ libnccl-ofi.x86\$164: 1.15.0-1.amzn2 → 1.16.2-1.amzn2
+ librdmacm.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ librdmacm-utils.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ microcode\$1ctl.x86\$164: 2:2.1-47.amzn2.4.24 → 2:2.1-47.amzn2.4.25
+ pam.x86\$164: 1.1.8-23.amzn2.0.2 → 1.1.8-23.amzn2.0.4
+ rdma-core.x86\$164: 57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2
+ rdma-core-devel.x86\$164:57.amzn1-1.amzn2.0.2 → 58.amzn0-1.amzn2.0.2

**Pacchetti rimossi:**
+ kernel-livepatch-5.10.239-236.958.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Repository modificato:**
+ libnvidia-container-tools.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ libnvidia-container1.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ nvidia-container-toolkit.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit
+ nvidia-container-toolkit-base.x86\$164: cuda-rhel8-x86\$164 → nvidia-container-toolkit

------

## SageMaker HyperPod Versioni AMI per Amazon EKS: 12 agosto 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250812"></a>

**L'AMI include quanto segue:**
+  AWS Servizio supportato: Amazon EC2
+ Sistema operativo: Amazon Linux 2023
+ Architettura di calcolo: ARM64
+ L'ultima versione disponibile è installata per i seguenti pacchetti:
  + Kernel Linux: 6.12
  + FSx Lustro
  + Docker
  + AWS CLI v2 in `/usr/bin/aws`
  + NVIDIA DCGM
  + Toolkit per container Nvidia:
    + Comando di versione: `nvidia-container-cli -V`
  + Nvidia-docker2:
    + Comando di versione: `nvidia-docker version`
  + Nvidia-IMEX: v570.172.08-1
+ Driver NVIDIA: 570.158.01
+ Pila NVIDIA CUDA 12.4, 12.5, 12.6, 12.8:
  + Directory di installazione CUDA, NCCL e cuDDN: `/usr/local/cuda-xx.x/`
    + Esempio: `/usr/local/cuda-12.8/`, `/usr/local/cuda-12.8/`
  + Versione NCCL compilata:
    + Per la directory CUDA 12.4, versione NCCL compilata 2.22.3\$1 .4 CUDA12
    + Per la directory CUDA 12.5, è stata compilata la versione NCCL 2.22.3\$1 .5 CUDA12
    + Per la directory CUDA 12.6, è stata compilata la versione NCCL 2.24.3\$1 .6 CUDA12
    + Per la directory CUDA 12.8, è stata compilata la versione NCCL 2.27.5\$1 .8 CUDA12
  + CUDA predefinito: 12.8
    + PATH `/usr/local/cuda` punta a CUDA 12.8
    + Aggiornato di seguito le variabili di ambiente:
      + `LD_LIBRARY_PATH`avere `/usr/local/cuda-12.8/lib:/usr/local/cuda-12.8/lib64:/usr/local/cuda-12.8:/usr/local/cuda-12.8/targets/sbsa-linux/lib:/usr/local/cuda-12.8/nvvm/lib64:/usr/local/cuda-12.8/extras/CUPTI/lib64`
      + `PATH`avere `/usr/local/cuda-12.8/bin/:/usr/local/cuda-12.8/include/`
      + Per qualsiasi versione CUDA diversa, aggiorna di `LD_LIBRARY_PATH` conseguenza.
+ Programma di installazione EFA: 1.42.0
+  GDRCopyNvidia: 2.5.1
+ AWS Il plugin OFI NCCL viene fornito con il programma di installazione EFA
  + Percorsi `/opt/amazon/ofi-nccl/lib` e vengono aggiunti a. `/opt/amazon/ofi-nccl/efa` `LD_LIBRARY_PATH`
+ AWS CLI v2 in `/usr/local/bin/aws`
+ Tipo di volume EBS: gp3
+ Python: `/usr/bin/python3.9`

## SageMaker HyperPod Versioni AMI per Amazon EKS: 6 agosto 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250806"></a>

**SageMaker HyperPod Supporto DLAMI per Amazon EKS**

 AMIs Includono i seguenti aggiornamenti:

------
#### [ K8s v1.28 ]
+ **Pacchetti Neuron:**
  + **aws-neuronx-collectives: 2.27.34.0\$1ec8cd5e8b-1**
  + **aws-neuronx-dkms:** 2.23,9,0 - kms
  + **aws-neuronx-runtime-lib: 2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-k8 plugin: 2.27.7.0-1**
  + **aws-neuronx-k8-scheduler:** 2.27.7.0-1
  + **aws-neuronx-tools: 2,25.145,0-1**

------
#### [ K8s v1.29 ]
+ **Pacchetti Neuron:**
  + **aws-neuronx-collectives: 2,27,34,0\$1ec8cd5e8b-1**
  + **aws-neuronx-dkms:** 2.23,9,0 - kms
  + **aws-neuronx-runtime-lib: 2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-k8 plugin: 2.27.7.0-1**
  + **aws-neuronx-k8-scheduler:** 2.27.7.0-1
  + **aws-neuronx-tools: 2,25.145,0-1**

------
#### [ K8s v1.30 ]
+ **Pacchetti Neuron:**
  + **aws-neuronx-collectives: 2,27,34,0\$1ec8cd5e8b-1**
  + **aws-neuronx-dkms:** 2.23,9,0 - kms
  + **aws-neuronx-runtime-lib: 2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-k8 plugin: 2.27.7.0-1**
  + **aws-neuronx-k8-scheduler:** 2.27.7.0-1
  + **aws-neuronx-tools: 2,25.145,0-1**

------
#### [ K8s v1.31 ]
+ **Pacchetti Neuron:**
  + **aws-neuronx-collectives: 2,27,34,0\$1ec8cd5e8b-1**
  + **aws-neuronx-dkms:** 2.23,9,0 - kms
  + **aws-neuronx-runtime-lib: 2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-k8 plugin: 2.27.7.0-1**
  + **aws-neuronx-k8-scheduler:** 2.27.7.0-1
  + **aws-neuronx-tools: 2,25.145,0-1**

------
#### [ K8s v1.32 ]
+ **Pacchetti Neuron:**
  + **aws-neuronx-collectives: 2,27,34,0\$1ec8cd5e8b-1**
  + **aws-neuronx-dkms:** 2.23,9,0 - kms
  + **aws-neuronx-runtime-lib: 2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-k8 plugin: 2.27.7.0-1**
  + **aws-neuronx-k8-scheduler:** 2.27.7.0-1
  + **aws-neuronx-tools: 2,25.145,0-1**

------

**Importante**  
Deep Learning Base OSS Nvidia Driver AMI (Amazon Linux 2) versione 70.3
Deep Learning Base Proprietary Nvidia Driver AMI (Amazon Linux 2) versione 68.4
Supporto CUDA 12.8 più recente
Driver Nvidia aggiornato da 570.158.01 a 570.172.08 per correggere le CVE presenti nel bollettino Nvidia Security Bulletin di luglio.

## SageMaker HyperPod Versioni AMI per Amazon EKS: 31 luglio 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250731"></a>

Amazon SageMaker HyperPod ora supporta una nuova AMI per i cluster Amazon EKS che aggiorna il sistema operativo di base ad Amazon Linux 2023. Questa versione offre diversi miglioramenti rispetto ad Amazon Linux 2 (AL2). HyperPod nuove versioni vengono rilasciate AMIs regolarmente e ti consigliamo di eseguire tutti i HyperPod cluster sulle versioni più recenti e sicure di AMIs per risolvere le vulnerabilità ed eliminare gradualmente software e librerie obsoleti.

### Aggiornamenti chiave
<a name="sagemaker-hyperpod-release-ami-eks-20250731-specs"></a>
+ **Sistema operativo**: Amazon Linux 2023 (aggiornato da Amazon Linux 2 o AL2)
+ **Package Manager**: DNF è lo strumento di gestione dei pacchetti predefinito, che sostituisce YUM utilizzato in AL2
+ **Servizio di rete**: `systemd-networkd` gestisce le interfacce di rete, sostituendo ISC utilizzato in `dhclient` AL2
+ **Kernel Linux**: versione 6.1, aggiornata dal kernel utilizzato in AL2
+ **Glibc**: versione 2.34, aggiornata dalla versione in AL2
+ **GCC**: Versione 11.5.0, aggiornata dalla versione in AL2
+ **NFS**: versione 1:2.6 .1, aggiornata dalla versione 1:1.3 .4 in AL2
+ **Driver NVIDIA**: versione 570.172.08, una versione del driver più recente
+ **Python**: versione 3.9, che sostituisce Python 2.7 utilizzato in AL2
+ **NVME**: versione 1.11.1, una versione più recente del driver NVMe 

### Prima dell’aggiornamento
<a name="sagemaker-hyperpod-release-ami-eks-20250731-prereqs"></a>

Ci sono alcune cose importanti da sapere prima dell’aggiornamento. Con AL2023, diversi pacchetti sono stati aggiunti, aggiornati o rimossi rispetto a. AL2 Ti consigliamo vivamente di testare le tue applicazioni AL2023 prima di aggiornare i cluster. Per un elenco completo di tutte le modifiche ai pacchetti in AL2023, consulta [Modifiche ai pacchetti in Amazon Linux 2023](https://docs.aws.amazon.com/linux/al2023/release-notes/compare-packages.html).

Di seguito sono riportate alcune delle modifiche significative tra AL2 e AL2023:
+ **Python 3.10**: l’aggiornamento più importante, a parte il sistema operativo, è l’aggiornamento della versione di Python. Dopo l’aggiornamento, l’impostazione predefinita per i cluster sarà Python 3.10. Anche se alcuni carichi di lavoro di addestramento distribuito Python 3.8 possono essere compatibili con Python 3.10, consigliamo vivamente di testare separatamente gli specifici carichi di lavoro. Se la migrazione a Python 3.10 presenta difficoltà, ma desideri comunque aggiornare il cluster per accedere ad altre nuove funzionalità, puoi installare una versione precedente di Python utilizzando il comando `yum install python-xx.x` con gli [script del ciclo di vita](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-lifecycle-best-practices-slurm.html) prima di eseguire qualsiasi carico di lavoro. Assicurati di testare sia gli script del ciclo di vita esistenti che il codice dell’applicazione per verificarne la compatibilità.
+ **NVIDIA Runtime Enforcement**: applica AL2023 rigorosamente i requisiti di runtime dei container NVIDIA, facendo sì che i contenitori con variabili di ambiente NVIDIA codificate (come`NVIDIA_VISIBLE_DEVICES: "all"`) non funzionino correttamente sui nodi che utilizzano solo la CPU (mentre AL2 ignora queste impostazioni quando non sono presenti driver GPU). Puoi ignorare l’imposizione configurando `NVIDIA_VISIBLE_DEVICES: "void"` nelle specifiche del pod o ricorrendo a immagini che utilizzano solo la CPU.
+ **cgroup v2**: AL2023 presenta la nuova generazione di gerarchia unificata dei gruppi di controllo (cgroup v2). cgroup v2 viene utilizzato per i runtime dei container ed è utilizzato anche da. `systemd` Sebbene includa AL2023 ancora codice che può far funzionare il sistema utilizzando cgroup v1, questa non è una configurazione consigliata.
+ **Amazon VPC CNI e `eksctl` versioni**: richiede AL2023 inoltre che la versione di Amazon VPC CNI sia 1.16.2 o successiva e la versione 0.176.0 o superiore. `eksctl`
+ **EFA on FSx for Lustre**: ora puoi usare EFA on FSx for Lustre, che ti consente di ottenere prestazioni applicative paragonabili a quelle dei cluster locali AI/ML o HPC (High Performance Computing), beneficiando al contempo della scalabilità, della flessibilità e dell'elasticità del cloud computing.

Inoltre, l'aggiornamento a AL2023 richiede una versione minima di `1.0.643.0_1.0.192.0` Health Monitoring Agent. Completa la procedura seguente per aggiornare l’agente di monitoraggio dell’integrità:

1. Se utilizzi script HyperPod del ciclo di vita dal GitHub repository [awsome-distributed-training](https://github.com/aws-samples/awsome-distributed-training)), assicurati di scaricare la versione più recente. Le versioni precedenti non sono compatibili con. AL2023 Il nuovo script del ciclo di vita garantisce l'`containerd`utilizzo dello spazio di archiviazione aggiuntivo montato per inserire le immagini dei contenitori. AL2023

1. Inserisci l'ultima versione del [repository git HyperPod CLI](https://github.com/aws/sagemaker-hyperpod-cli/tree/main).

1. Aggiorna le dipendenze con il comando seguente: `helm dependencies update helm_chart/HyperPodHelmChart`.

1. Come indicato nel passaggio 4 del [README di HyperPodHelmChart](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#step-four-whenever-you-want-to-upgrade-the-installation-of-helm-charts), esegui il comando seguente per aggiornare la versione delle dipendenze in esecuzione sul cluster: `helm upgrade dependencies helm_chart/HyperPodHelmChart -namespace kube-system`

### Carichi di lavoro testati su cluster EKS aggiornati
<a name="sagemaker-hyperpod-release-ami-eks-20250731-tested"></a>

Di seguito sono riportati alcuni casi d’uso nei quali l’aggiornamento è stato testato:
+ **Compatibilità con le versioni precedenti**: i lavori di formazione distribuiti più diffusi che coinvolgono PyTorch dovrebbero essere retrocompatibili sulla nuova AMI. Tuttavia, poiché i carichi di lavoro possono dipendere da specifiche librerie Python o Linux, ti consigliamo di eseguire test su ambienti più piccoli o su un sottoinsieme di nodi prima di aggiornare i cluster più grandi.
+ **Test degli acceleratori**: sono stati testati lavori su vari tipi di istanze, utilizzando sia gli acceleratori NVIDIA (per le famiglie di istanze P e G) che gli acceleratori AWS Neuron (per le istanze Trn).

### Come aggiornare l’AMI e i carichi di lavoro associati
<a name="sagemaker-hyperpod-release-ami-eks-20250731-upgrade"></a>

Puoi eseguire l’aggiornamento alla nuova AMI utilizzando uno dei seguenti metodi:
+ Utilizza l’API [create-cluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html) per creare un nuovo cluster con l’AMI più recente.
+ Usa l'API per aggiornare il tuo cluster esistente. [update-cluster-software](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html) Tieni presente che questa opzione esegue nuovamente tutti gli script del ciclo di vita.

Il cluster non è disponibile durante il processo di aggiornamento. Consigliamo di pianificare questo tempo di inattività e di riavviare il carico di lavoro di addestramento da un checkpoint esistente una volta completato l’aggiornamento. Come best practice, ti suggeriamo di eseguire test su cluster più piccoli prima di aggiornare i cluster più grandi.

Se il comando update non riesce, devi identificare prima di tutto la causa dell’errore. In caso di errori degli script del ciclo di vita, apporta le correzioni necessarie agli script e riprova. Per altri problemi non risolvibili, contatta il [Supporto AWS](https://aws.amazon.com/premiumsupport/).

### Risoluzione dei problemi
<a name="sagemaker-hyperpod-release-ami-eks-20250731-troubleshooting"></a>

Utilizza la sezione seguente per aiutarti a risolvere eventuali problemi riscontrati durante l'aggiornamento a. AL2023

**Come posso correggere errori come `"nvml error: driver not loaded: unknown"` sui nodi del cluster che utilizzano solo la CPU?**

Se i contenitori che funzionavano sulla CPU dei nodi AL2 Amazon EKS ora falliscono AL2023, l'immagine del contenitore potrebbe avere variabili di ambiente NVIDIA codificate. Puoi verificare la presenza di variabili di ambiente con codifica fissa con il comando seguente:

```
docker inspect image:tag | grep -i nvidia
```

AL2023 applica rigorosamente questi requisiti, mentre AL2 era più indulgente sui nodi che utilizzano solo CPU. Una soluzione consiste nell'ignorare l' AL2023 applicazione impostando determinate variabili di ambiente NVIDIA nelle specifiche del pod Amazon EKS, come mostrato nell'esempio seguente:

```
yaml
containers:
- name: your-container
image: your-image:tag
env:
- name: NVIDIA_VISIBLE_DEVICES
value: "void"
- name: NVIDIA_DRIVER_CAPABILITIES
value: ""
```

In alternativa, si possono impiegare le immagini del container che utilizzano solo la CPU (ad esempio `pytorch/pytorch:latest-cpu`) oppure creare immagini personalizzate senza dipendenze NVIDIA.

## SageMaker HyperPod Versioni AMI per Amazon EKS: 15 luglio 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250715"></a>

**SageMaker HyperPod Supporto DLAMI per Amazon EKS**

 AMIs Includono i seguenti aggiornamenti:

------
#### [ K8s v1.28 ]
+ **Driver NVIDIA più recente:** 550.163.01
+ **CUDA predefinito:** 12.4
+ **Programma di installazione EFA:** 1.38.0
+ **Pacchetti Neuron:**
  + **aws-neuronx-dkms.noarch**: 2.22.2,0-dkms
  + **aws-neuronx-oci-hook.x86\$164:** 2.4.4.0-1
  + **aws-neuronx-tools.x86\$164:** 2,18.3,0-1
  + **aws-neuron-dkms.noarch: 2.3.26.0-dkms**
  + aws-neuron-k8 **plugin.x86\$164:** 1.9.3.0-1
  + **aws-neuron-k8-scheduler.x86\$164**: 1.9.3.0-1
  + **aws-neuron-runtime.x86\$164**: 1.6.24.0-1
  + **aws-neuron-runtime-base.x86\$164:** 1,6,21.0-1
  + **aws-neuron-tools.x86\$164:** 2.1.4.0-1
  + **aws-neuronx-collectives.x86\$164:2,26.43,0\$147cc904ea-1**
  + **aws-neuronx-gpsimd-customop.x86\$164:0,2,3,0-1**
  + **aws-neuronx-gpsimd-customop-lib.x86\$164:** 0,16,2,0-1
  + **aws-neuronx-gpsimd-tools.x86\$164:0,16,1,0\$10a6506a47-1**
  + aws-neuronx-k8 **plugin.x86\$164:2.26.26.0-1**
  + **aws-neuronx-k8-scheduler.x86\$164**: 2,26.26,0-1
  + **aws-neuronx-runtime-lib.x86\$164:2,26.42,0\$12ff3b5c7d-1**
  + **aws-neuronx-tools.x86\$164:** 2,24.54,0-1
  + **tensorflow-model-server-neuron.x86\$164:** 2.8.0.2.3.0.0-0
  + **tensorflow-model-server-neuronx.x86\$164:** 2,10,12.12.2.0-0

------
#### [ K8s v1.29 ]
+ **Driver NVIDIA versione:** 550.163.01
+ **Versione CUDA:** 12.4
+ **Programma di installazione EFA:** 1.38.0
+ **Pacchetti Neuron:**
  + **aws-neuronx-dkms.noarch: 2.22.2,0-kms**
  + **aws-neuronx-oci-hook.x86\$164:** 2.4.4.0-1
  + **aws-neuronx-tools.x86\$164:** 2,18.3,0-1
  + **aws-neuron-dkms.noarch: 2.3.26.0-dkms**
  + aws-neuron-k8 **plugin.x86\$164:** 1.9.3.0-1
  + **aws-neuron-k8-scheduler.x86\$164**: 1.9.3.0-1
  + **aws-neuron-runtime.x86\$164**: 1.6.24.0-1
  + **aws-neuron-runtime-base.x86\$164:** 1,6,21.0-1
  + **aws-neuron-tools.x86\$164:** 2.1.4.0-1
  + **aws-neuronx-collectives.x86\$164:2,26.43,0\$147cc904ea-1**
  + **aws-neuronx-gpsimd-customop.x86\$164:0,2,3,0-1**
  + **aws-neuronx-gpsimd-customop-lib.x86\$164:** 0,16,2,0-1
  + **aws-neuronx-gpsimd-tools.x86\$164:0,16,1,0\$10a6506a47-1**
  + aws-neuronx-k8 **plugin.x86\$164:2.26.26.0-1**
  + **aws-neuronx-k8-scheduler.x86\$164**: 2,26.26,0-1
  + **aws-neuronx-runtime-lib.x86\$164:2,26.42,0\$12ff3b5c7d-1**
  + **aws-neuronx-tools.x86\$164:** 2,24.54,0-1
  + **tensorflow-model-server-neuron.x86\$164:** 2.8.0.2.3.0.0-0
  + **tensorflow-model-server-neuronx.x86\$164:** 2,10,12.12.2.0-0

------
#### [ K8s v1.30 ]
+ **Driver NVIDIA versione:** 550.163.01
+ **Versione CUDA:** 12.4
+ **Versione del programma di installazione EFA:** 1.38.0
+ **Pacchetti Neuron:**
  + **aws-neuronx-dkms.noarch: 2.22.2,0-kms**
  + **aws-neuronx-oci-hook.x86\$164:** 2.4.4.0-1
  + **aws-neuronx-tools.x86\$164:** 2,18.3,0-1
  + **aws-neuron-dkms.noarch: 2.3.26.0-dkms**
  + aws-neuron-k8 **plugin.x86\$164:** 1.9.3.0-1
  + **aws-neuron-k8-scheduler.x86\$164**: 1.9.3.0-1
  + **aws-neuron-runtime.x86\$164**: 1.6.24.0-1
  + **aws-neuron-runtime-base.x86\$164:** 1,6,21.0-1
  + **aws-neuron-tools.x86\$164:** 2.1.4.0-1
  + **aws-neuronx-collectives.x86\$164:2,26.43,0\$147cc904ea-1**
  + **aws-neuronx-gpsimd-customop.x86\$164:0,2,3,0-1**
  + **aws-neuronx-gpsimd-customop-lib.x86\$164:** 0,16,2,0-1
  + **aws-neuronx-gpsimd-tools.x86\$164:0,16,1,0\$10a6506a47-1**
  + aws-neuronx-k8 **plugin.x86\$164:2.26.26.0-1**
  + **aws-neuronx-k8-scheduler.x86\$164**: 2,26.26,0-1
  + **aws-neuronx-runtime-lib.x86\$164:2,26.42,0\$12ff3b5c7d-1**
  + **aws-neuronx-tools.x86\$164:** 2,24.54,0-1
  + **tensorflow-model-server-neuron.x86\$164:** 2.8.0.2.3.0.0-0
  + **tensorflow-model-server-neuronx.x86\$164:** 2,10,12.12.2.0-0

------
#### [ K8s v1.31 ]
+ **Driver NVIDIA versione:** 550.163.01
+ **Versione CUDA:** 12.4
+ **Versione del programma di installazione EFA:** 1.38.0
+ **Pacchetti Neuron:**
  + **aws-neuronx-dkms.noarch: 2.22.2,0-kms**
  + **aws-neuronx-oci-hook.x86\$164:** 2.4.4.0-1
  + **aws-neuronx-tools.x86\$164:** 2,18.3,0-1
  + **aws-neuron-dkms.noarch: 2.3.26.0-dkms**
  + aws-neuron-k8 **plugin.x86\$164:** 1.9.3.0-1
  + **aws-neuron-k8-scheduler.x86\$164**: 1.9.3.0-1
  + **aws-neuron-runtime.x86\$164**: 1.6.24.0-1
  + **aws-neuron-runtime-base.x86\$164:** 1,6,21.0-1
  + **aws-neuron-tools.x86\$164:** 2.1.4.0-1
  + **aws-neuronx-collectives.x86\$164:2,26.43,0\$147cc904ea-1**
  + **aws-neuronx-gpsimd-customop.x86\$164:0,2,3,0-1**
  + **aws-neuronx-gpsimd-customop-lib.x86\$164:** 0,16,2,0-1
  + **aws-neuronx-gpsimd-tools.x86\$164:0,16,1,0\$10a6506a47-1**
  + aws-neuronx-k8 **plugin.x86\$164:2.26.26.0-1**
  + **aws-neuronx-k8-scheduler.x86\$164**: 2,26.26,0-1
  + **aws-neuronx-runtime-lib.x86\$164:2,26.42,0\$12ff3b5c7d-1**
  + **aws-neuronx-tools.x86\$164:** 2,24.54,0-1
  + **tensorflow-model-server-neuron.x86\$164:** 2.8.0.2.3.0.0-0
  + **tensorflow-model-server-neuronx.x86\$164:** 2,10,12.12.2.0-0

------
#### [ K8s v1.32 ]
+ **Driver NVIDIA versione:** 550.163.01
+ **Versione CUDA:** 12.4
+ **Versione del programma di installazione EFA:** 1.38.0
+ **Pacchetti Neuron:**
  + **aws-neuronx-dkms.noarch: 2.22.2,0-kms**
  + **aws-neuronx-oci-hook.x86\$164:** 2.4.4.0-1
  + **aws-neuronx-tools.x86\$164:** 2,18.3,0-1
  + **aws-neuron-dkms.noarch: 2.3.26.0-dkms**
  + aws-neuron-k8 **plugin.x86\$164:** 1.9.3.0-1
  + **aws-neuron-k8-scheduler.x86\$164**: 1.9.3.0-1
  + **aws-neuron-runtime.x86\$164**: 1.6.24.0-1
  + **aws-neuron-runtime-base.x86\$164:** 1,6,21.0-1
  + **aws-neuron-tools.x86\$164:** 2.1.4.0-1
  + **aws-neuronx-collectives.x86\$164:2,26.43,0\$147cc904ea-1**
  + **aws-neuronx-gpsimd-customop.x86\$164:0,2,3,0-1**
  + **aws-neuronx-gpsimd-customop-lib.x86\$164:** 0,16,2,0-1
  + **aws-neuronx-gpsimd-tools.x86\$164:0,16,1,0\$10a6506a47-1**
  + aws-neuronx-k8 **plugin.x86\$164:2.26.26.0-1**
  + **aws-neuronx-k8-scheduler.x86\$164**: 2,26.26,0-1
  + **aws-neuronx-runtime-lib.x86\$164:2,26.42,0\$12ff3b5c7d-1**
  + **aws-neuronx-tools.x86\$164:** 2,24.54,0-1
  + **tensorflow-model-server-neuron.x86\$164:** 2.8.0.2.3.0.0-0
  + **tensorflow-model-server-neuronx.x86\$164:** 2,10,12.12.2.0-0

------

## SageMaker HyperPod Versioni AMI per Amazon EKS: 9 giugno 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250609"></a>

**SageMaker HyperPod Supporto DLAMI per Amazon EKS**

------
#### [ Neuron SDK Updates ]
+ **aws-neuronx-dkms.noarch: 2.21.37.0 (dalla versione** 2.20.74.0)

------

## SageMaker HyperPod Versioni AMI per Amazon EKS: 22 maggio 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250522"></a>

**Aggiornamenti generali AMI**

**SageMaker HyperPod Supporto DLAMI per Amazon EKS**

------
#### [ Deep Learning Base AMI AL2 ]
+ **Driver NVIDIA più recente:** 550.163.01
+ **Aggiornamenti dello stack CUDA:**
  + **CUDA predefinito**: 12.1
  + **Versione NCCL**: 2.22.3
+ **Programma di installazione EFA:** 1.38.0
+ **AWS OFI NCCL**: 1.13.2
+ **Kernel Linux:** 5.10
+ **GDRCopy: 2,4**

**Importante**  
**Aggiornamento del Kit di strumenti per container NVIDIA 1.17.4:** il montaggio delle librerie compatibili CUDA è ora disabilitato
**Aggiornamenti EFA dalla versione 1.37 alla 1.38:**  
AWS Il plugin OFI NCCL ora si trova in/-nccl opt/amazon/ofi
La posizione precedente /opt//è obsoleta aws-ofi-nccl

------
#### [ Neuron SDK Updates ]
+ **aws-neuronx-dkms.noarch: 2.20.74.0 (dal 2.20.28.0**)
+ **aws-neuronx-collectives.x86\$164:2.25.65.0\$19858ac9a1-1** (da 2.24.59.0\$1838c7fc8b-1)
+ **aws-neuronx-runtime-lib.x86\$164:2.25.57.0\$1166c7a468-1** (da 2.24.53.0\$1f239092cc-1)
+ **aws-neuronx-tools.x86\$164:** 2.23.9.0 (da 2.22.61.0)
+ **aws-neuronx-gpsimd-customop-lib.x86\$164:** 0.15.12.0 (dalla 0.14.12.0)
+ **aws-neuronx-gpsimd-tools.x86\$164:0.15.1.0\$15d31b6a3f** (da 0.14.6.0\$1241eb69f4)
+ **aws-neuronx-k8-plugin.x86\$164:** 2.25.24.0 (dal 2.24.23.0)
+ **aws-neuronx-k8-scheduler.x86\$164:** 2.25.24.0 (dal 2.24.23.0)

**Note di supporto:**
+ I componenti AMI, incluse le versioni CUDA, possono essere rimossi o modificati in base alla policy di supporto del framework
+ La versione del kernel è bloccata tramite pinning per la compatibilità. Gli utenti devono evitare gli aggiornamenti a meno che non siano necessari per le patch di sicurezza
+ Per le istanze EC2 con più schede di rete, consulta la guida alla configurazione EFA per una procedere correttamente

------

## SageMaker HyperPod Versioni AMI per Amazon EKS: 7 maggio 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250507"></a>

------
#### [ Installed the latest version of AWS Neuron SDK ]
+ **tensorflow-model-server-neuron.x86\$164 2.8.0.2.3.0.0-0 neurone**

------

## SageMaker HyperPod Versioni AMI per Amazon EKS: 28 aprile 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250428"></a>

**Miglioramenti per K8s**
+ Driver NVIDIA aggiornato dalla versione 550.144.03 alla 550.163.01. Questo aggiornamento è destinato a risolvere le vulnerabilità e le esposizioni comuni (CVEs) presenti nel [NVIDIA GPU Display](https://nvidia.custhelp.com/app/answers/detail/a_id/5630) Security Bulletin di aprile 2025.

**SageMaker HyperPod Supporto DLAMI per Amazon EKS**

------
#### [ Installed the latest version of AWS Neuron SDK ]
+ **aws-neuronx-dkms.noarch: 2,20.28,0-dkms**
+ **aws-neuronx-oci-hook.x86\$164:** 2.4.4,0-1
+ **aws-neuronx-tools.x86\$164:** 2,18.3,0-1
+ **aws-neuron-dkms.noarch: 2.3.26.0-dkms**
+ aws-neuron-k8 **plugin.x86\$164:** 1.9.3.0-1
+ **aws-neuron-k8-scheduler.x86\$164**: 1.9.3.0-1
+ **aws-neuron-runtime.x86\$164**: 1.6.24.0-1
+ **aws-neuron-runtime-base.x86\$164:** 1,6,21.0-1
+ **aws-neuron-tools.x86\$164:** 2.1.4.0-1
+ **aws-neuronx-collectives.x86\$164:2,24.59,0\$1838c7fc8b-1**
+ **aws-neuronx-gpsimd-customop.x86\$164:0,2,3,0-1**
+ **aws-neuronx-gpsimd-customop-lib.x86\$164:** 0,14-12,0-1
+ **aws-neuronx-gpsimd-tools.x86\$164:0,14.6,0\$1241eb69f4-1**
+ aws-neuronx-k8 **plugin.x86\$164:2.24.23.0-1**
+ **aws-neuronx-k8-scheduler.x86\$164**: 2.24.23.0-1
+ **aws-neuronx-runtime-lib.x86\$164:2,24.53,0\$1f239092cc-1**
+ **aws-neuronx-tools.x86\$164:** 2.22.61.0-1
+ **tensorflow-model-server-neuronx.x86\$164:** 2,10,1,2,2,0-0

------

## SageMaker HyperPod Versioni AMI per Amazon EKS: 18 aprile 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250418"></a>

**Aggiornamenti generali AMI**
+ Nuova SageMaker HyperPod AMI per Amazon EKS 1.32.1.

**SageMaker HyperPod Supporto DLAMI per Amazon EKS**

 AMIs Includono quanto segue:

------
#### [ Deep Learning EKS AMI 1.32.1 ]
+ **Componenti Amazon EKS**
  + Versione Kubernetes: 1.32.1
  + Versione Containerd: 1.7.27
  + Versione Runc: 1.1.14
  + AWS Autenticatore IAM: 0.6.29
+ **Agente Amazon SSM:** 3.3.1611.0 
+ **Kernel Linux:** 5.10.235
+ **Driver OSS Nvidia:** 550.163.01
+ **NVIDIA CUDA:** 12.4
+ **Programma di installazione EFA:** 1.38.0
+ **GDRCopy:** 2.4.1-1
+ **Kit di strumenti per container Nvidia:** 1.17.6
+ **AWS OFI** NCCL: 1.13.2
+ **aws-neuronx-tools: 2.18.3,0**
+ **aws-neuronx-runtime-lib: 2,24,53,0**
+ **aws-neuronx-oci-hook:** 2,4,4,0-1
+ **aws-neuronx-dkms:** 2,20,28,0
+ **aws-neuronx-collectives:** 2,2459,0

------

## SageMaker HyperPod Versioni AMI per Amazon EKS: 18 febbraio 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250218"></a>

**Miglioramenti per K8s**
+ Kit di strumenti per container Nvidia aggiornato dalla versione 1.17.3 alla versione 1.17.4.
+ È stato risolto il problema che impediva ai clienti di connettersi ai nodi dopo il riavvio.
+ Versione Elastic Fabric Adapter (EFA) aggiornata dalla 1.37.0 alla 1.38.0.
+ L'EFA ora include il plug-in AWS OFI NCCL, che si trova nella `/opt/amazon/ofi-nccl` directory anziché nel percorso originale. `/opt/aws-ofi-nccl/` Se devi aggiornare la variabile di ambiente `LD_LIBRARY_PATH`, assicurati di modificare il percorso in modo che punti alla nuova posizione `/opt/amazon/ofi-nccl` del plugin OFI NCCL.
+ Da questi file è stato rimosso il pacchetto emacs. DLAMIs Puoi installare emacs da GNU emac.

**SageMaker HyperPod Supporto DLAMI per Amazon EKS**

------
#### [ Installed the latest version of neuron SDK ]
+ **aws-neuronx-dkms.noarch**: 2.19.64,0-dkms @neuron
+ **aws-neuronx-oci-hook.x86\$164:** 2.4.4,0-1 @neuron
+ **aws-neuronx-tools.x86\$164:** 2,18,0-1 @neuron
+ **aws-neuronx-collectives.x86\$164:2.23.135.0\$13e70920f2-1** neurone
+ **aws-neuronx-gpsimd-customop.x86\$164:0.2.3.0-1** neurone
+ **aws-neuronx-gpsimd-customop-lib.x86\$164**
+ **aws-neuronx-gpsimd-tools.x86\$164:0.13.2.0\$194ba34927-1** neurone
+ **aws-neuronx-k8-plugin.x86\$164:2.23.45.0-1** neurone
+ **aws-neuronx-k8-scheduler.x86\$164:** 2.23.45.0-1 neurone
+ **aws-neuronx-runtime-lib.x86\$164:2.23.112.0\$19b5179492-1** neurone
+ **aws-neuronx-tools.x86\$164:** 2.20.204.0-1 neurone
+ **tensorflow-model-server-neuronx.x86\$164**

------

## SageMaker HyperPod Versioni AMI per Amazon EKS: 22 gennaio 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250122"></a>

**Aggiornamenti generali AMI**
+ Nuova SageMaker HyperPod AMI per Amazon EKS 1.31.2.

**SageMaker HyperPod Supporto DLAMI per Amazon EKS**

 AMIs Includono quanto segue:

------
#### [ Deep Learning EKS AMI 1.31 ]
+ **Componenti Amazon EKS**
  + Versione Kubernetes: 1.31.2
  + Versione Containerd: 1.7.23
  + Versione Runc: 1.1.14
  + AWS Autenticatore IAM: 0.6.26
+ **Agente Amazon SSM:** 3.3.987
+ **Kernel Linux:** 5.10.230
+ **Driver OSS Nvidia:** 550.127.05
+ **NVIDIA CUDA:** 12.4
+ **Programma di installazione EFA**: 1.37.0
+ **GDRCopy:** 2.4.1-1
+ **Kit di strumenti per container Nvidia:** 1.17.3
+ **AWS OFI** NCCL: 1.13.0
+ **aws-neuronx-tools: 2.18.3**
+ **aws-neuronx-runtime-lib: 2,23,112,0**
+ **aws-neuronx-oci-hook:** 2,4,4,0-1
+ **aws-neuronx-dkms:** 2,18.20,0
+ **aws-neuronx-collectives:** 2,23.133,0

------

## SageMaker HyperPod Versioni AMI per Amazon EKS: 21 dicembre 2024
<a name="sagemaker-hyperpod-release-ami-eks-20241221"></a>

**SageMaker HyperPod Supporto DLAMI per Amazon EKS**

 AMIs Includono quanto segue:

------
#### [ K8s v1.28 ]
+ **Componenti Amazon EKS**
  + Versione Kubernetes: 1.28.15
  + Versione Containerd: 1.7.23
  + Versione Runc: 1.1.14
  + AWS Autenticatore IAM: 0.6.26
+ **Agente Amazon SSM:** 3.3.987
+ **Kernel Linux:** 5.10.228
+ **Driver OSS NVIDIA:** 550.127.05
+ **NVIDIA CUDA:** 12.4
+ **Programma di installazione EFA**: 1.37.0
+ **GDRCopy: 2.4**
+ **Kit di strumenti per container NVIDIA:** 1.17.3
+ **AWS OFI NCCL**: 1.13.0
+ aws-neuronx-tools: **2,18,3,0-1**
+ **aws-neuronx-runtime-lib:** 2,23,112,0
+ **aws-neuronx-oci-hook:** 2,4,4,0-1
+ **aws-neuronx-dkms:** 2,18.20,0
+ **aws-neuronx-collectives:** 2,23,135,0

------
#### [ K8s v1.29 ]
+ **Componenti Amazon EKS**
  + Versione Kubernetes: 1.29.10
  + Versione Containerd: 1.7.23
  + Versione Runc: 1.1.14
  + AWS Autenticatore IAM: 0.6.26
+ **Agente Amazon SSM:** 3.3.987
+ **Kernel Linux:** 5.15.0
+ **Driver OSS Nvidia:** 550.127.05
+ **NVIDIA CUDA:** 12.4
+ **Programma di installazione EFA**: 1.37.0
+ **GDRCopy: 2.4**
+ **Kit di strumenti per container Nvidia:** 1.17.3
+ **AWS OFI NCCL**: 1.13.0
+ aws-neuronx-tools: **2,18,3,0-1**
+ **aws-neuronx-runtime-lib:** 2,23,112,0
+ **aws-neuronx-oci-hook:** 2,4,4,0-1
+ **aws-neuronx-dkms:** 2,18.20,0
+ **aws-neuronx-collectives:** 2,23,135,0

------
#### [ K8s v1.30 ]
+ **Componenti Amazon EKS**
  + Versione Kubernetes: 1.30.6
  + Versione Containerd: 1.7.23
  + Versione Runc: 1.1.14
  + AWS Autenticatore IAM: 0.6.26
+ **Agente Amazon SSM:** 3.3.987.0
+ **Kernel Linux:** 5.10.228
+ **Driver OSS Nvidia:** 550.127.05
+ **NVIDIA CUDA:** 12.4
+ **Programma di installazione EFA**: 1.37.0
+ **GDRCopy: 2.4**
+ **Kit di strumenti per container Nvidia:** 1.17.3
+ **AWS OFI NCCL**: 1.13.0
+ aws-neuronx-tools: **2,18,3,0-1**
+ **aws-neuronx-runtime-lib:** 2,23,112,0
+ **aws-neuronx-oci-hook:** 2,4,4,0-1
+ **aws-neuronx-dkms:** 2,18.20,0
+ **aws-neuronx-collectives:** 2,23,135,0

------

## SageMaker HyperPod Versioni AMI per Amazon EKS: 13 dicembre 2024
<a name="sagemaker-hyperpod-release-ami-eks-20241213"></a>

**SageMaker HyperPod Aggiornamento DLAMI per Amazon EKS**
+ Agente SSM aggiornato alla versione `3.3.1311.0`.

## SageMaker HyperPod Versioni AMI per Amazon EKS: 24 novembre 2024
<a name="sagemaker-hyperpod-release-ami-eks-20241124"></a>

**Aggiornamenti generali AMI**
+ Rilasciata nella Regione `MEL` (Melbourne).
+ DLAMI di SageMaker HyperPod base aggiornato alle seguenti versioni:
  + Kubernetes: 01/11/2024.

## SageMaker HyperPod Versioni AMI per Amazon EKS: 15 novembre 2024
<a name="sagemaker-hyperpod-release-ami-eks-20241115"></a>

**SageMaker HyperPod Supporto DLAMI per Amazon EKS**

 AMIs Includono quanto segue:

------
#### [ Deep Learning EKS AMI 1.28 ]
+ **Componenti Amazon EKS**
  + Versione Kubernetes: 1.28.15
  + Versione Containerd: 1.7.23
  + Versione Runc: 1.1.14
  + AWS Autenticatore IAM: 0.6.26
+ **Agente Amazon SSM:** 3.3.987
+ **Kernel Linux:** 5.10.228
+ **Driver OSS NVIDIA:** 550.127.05
+ **NVIDIA CUDA:** 12.4
+ **Programma di installazione EFA**: 1.34.0
+ **GDRCopy: 2.4**
+ **Kit di strumenti per container NVIDIA:** 1.17.3
+ **AWS OFI NCCL**: 1.11.0
+ aws-neuronx-tools: **2,18,3,0-1**
+ **aws-neuronx-runtime-lib:** 2,2,19,0
+ **aws-neuronx-oci-hook:** 2,4,4,0-1
+ **aws-neuronx-dkms:** 2,18.20,0
+ **aws-neuronx-collectives:** 2.22.33.0

------
#### [ Deep Learning EKS AMI 1.29 ]
+ **Componenti Amazon EKS**
  + Versione Kubernetes: 1.29.10
  + Versione Containerd: 1.7.23
  + Versione Runc: 1.1.14
  + AWS Autenticatore IAM: 0.6.26
+ **Agente Amazon SSM:** 3.3.987
+ **Kernel Linux:** 5.10.228
+ **Driver OSS Nvidia:** 550.127.05
+ **NVIDIA CUDA:** 12.4
+ **Programma di installazione EFA**: 1.34.0
+ **GDRCopy: 2.4**
+ **Kit di strumenti per container Nvidia:** 1.17.3
+ **AWS OFI NCCL**: 1.11.0
+ aws-neuronx-tools: **2,18,3,0-1**
+ **aws-neuronx-runtime-lib:** 2,2,19,0
+ **aws-neuronx-oci-hook:** 2,4,4,0-1
+ **aws-neuronx-dkms:** 2,18.20,0
+ **aws-neuronx-collectives:** 2.22.33.0

------
#### [ Deep Learning EKS AMI 1.30 ]
+ **Componenti Amazon EKS**
  + Versione Kubernetes: 1.30.6
  + Versione Containerd: 1.7.23
  + Versione Runc: 1.1.14
  + AWS Autenticatore IAM: 0.6.26
+ **Agente Amazon SSM:** 3.3.987
+ **Kernel Linux:** 5.10.228
+ **Driver OSS Nvidia:** 550.127.05
+ **NVIDIA CUDA:** 12.4
+ **Programma di installazione EFA**: 1.34.0
+ **GDRCopy: 2.4**
+ **Kit di strumenti per container Nvidia:** 1.17.3
+ **AWS OFI NCCL**: 1.11.0
+ aws-neuronx-tools: **2,18,3,0-1**
+ **aws-neuronx-runtime-lib:** 2,2,19,0
+ **aws-neuronx-oci-hook:** 2,4,4,0-1
+ **aws-neuronx-dkms:** 2,18.20,0
+ **aws-neuronx-collectives:** 2.22.33.0

------

## SageMaker HyperPod Versioni AMI per Amazon EKS: 11 novembre 2024
<a name="sagemaker-hyperpod-release-ami-eks-20241111"></a>

**Aggiornamenti generali AMI**
+  SageMaker HyperPod DLAMI aggiornato con le versioni di Amazon EKS 1.28.13, 1.29.8, 1.30.4.

## SageMaker HyperPod Versioni AMI per Amazon EKS: 21 ottobre 2024
<a name="sagemaker-hyperpod-release-ami-eks-20241021"></a>

**Aggiornamenti generali AMI**
+ DLAMI di SageMaker HyperPod base aggiornato alle seguenti versioni:
  + Amazon EKS: 1.28.11, 1.29.6, 1.30.2.

## SageMaker HyperPod Versioni AMI per Amazon EKS: 10 settembre 2024
<a name="sagemaker-hyperpod-release-ami-eks-20240910"></a>

**SageMaker HyperPod Supporto DLAMI per Amazon EKS**

 AMIs Includono quanto segue:

------
#### [ Deep Learning EKS AMI 1.28 ]
+ **Componenti Amazon EKS**
  + Versione Kubernetes: 1.28.11
  + Versione Containerd: 1.7.20
  + Versione Runc: 1.1.11
  + AWS Autenticatore IAM: 0.6.21
+ **Agente Amazon SSM:** 3.3.380
+ **Kernel Linux:** 5.10.223
+ **Driver OSS NVIDIA:** 535.183.01
+ **NVIDIA CUDA:** 12.2
+ **Programma di installazione EFA:** 1.32.0
+ **GDRCopy: 2.4**
+ **Kit di strumenti per container NVIDIA:** 1.16.1
+ **AWS OFI NCCL**: 1.9.1
+ aws-neuronx-tools: **2,18,3,0-1**
+ **aws-neuronx-runtime-lib:** 2,21,41,0
+ **aws-neuronx-oci-hook:** 2,4,4,0-1
+ **aws-neuronx-dkms:** 217.17,0
+ **aws-neuronx-collectives:** 2,21,46,0

------
#### [ Deep Learning EKS AMI 1.29 ]
+ **Componenti Amazon EKS**
  + Versione Kubernetes: 1.29.6
  + Versione Containerd: 1.7.20
  + Versione Runc: 1.1.11
  + AWS Autenticatore IAM: 0.6.21
+ **Agente Amazon SSM:** 3.3.380
+ **Kernel Linux:** 5.10.223
+ **Driver OSS Nvidia:** 535.183.01
+ **NVIDIA CUDA:** 12.2
+ **Programma di installazione EFA:** 1.32.0
+ **GDRCopy: 2.4**
+ **Kit di strumenti per container Nvidia:** 1.16.1
+ **AWS OFI NCCL**: 1.9.1
+ aws-neuronx-tools: **2,18,3,0-1**
+ **aws-neuronx-runtime-lib:** 2,21,41,0
+ **aws-neuronx-oci-hook:** 2,4,4,0-1
+ **aws-neuronx-dkms:** 217.17,0
+ **aws-neuronx-collectives:** 2,214,0

------
#### [ Deep Learning EKS AMI 1.30 ]
+ **Componenti Amazon EKS**
  + Versione Kubernetes: 1.30.2
  + Versione Containerd: 1.7.20
  + Versione Runc: 1.1.11
  + AWS Autenticatore IAM: 0.6.21
+ **Agente Amazon SSM:** 3.3.380
+ **Kernel Linux:** 5.10.223
+ **Driver OSS Nvidia:** 535.183.01
+ **NVIDIA CUDA:** 12.2
+ **Programma di installazione EFA:** 1.32.0
+ **GDRCopy: 2.4**
+ **Kit di strumenti per container Nvidia:** 1.16.1
+ **AWS OFI NCCL**: 1.9.1
+ aws-neuronx-tools: **2,18,3,0-1**
+ **aws-neuronx-runtime-lib:** 2,21,41,0
+ **aws-neuronx-oci-hook:** 2,4,4,0-1
+ **aws-neuronx-dkms:** 217.17,0
+ **aws-neuronx-collectives:** 2,214,0

------

# Rilasci di AMI pubbliche
<a name="sagemaker-hyperpod-release-public-ami"></a>

Le seguenti note di rilascio tengono traccia degli ultimi aggiornamenti per le versioni SageMaker HyperPod pubbliche delle AMI di Amazon per l'orchestrazione di Amazon EKS. Ogni nota di versione include un elenco riepilogativo dei pacchetti preinstallati o preconfigurati nel supporto per SageMaker HyperPod DLAMIs Amazon EKS. Ogni DLAMI è basato AL2023 e supporta una versione specifica di Kubernetes. Per informazioni sulle versioni di SageMaker HyperPod funzionalità di Amazon, consulta[Note di SageMaker HyperPod rilascio di Amazon](sagemaker-hyperpod-release-notes.md).

Questa pagina viene aggiornata regolarmente per fornire informazioni complete sulla gestione del ciclo di vita delle AMI, tra cui vulnerabilità di sicurezza, annunci di obsolescenza e suggerimenti sulle patch. Come parte dell'impegno a mantenere l' up-to-dateinfrastruttura sicura, l' SageMaker intelligenza artificiale monitora continuamente tutto il HyperPod pubblico alla AMIs ricerca di vulnerabilità critiche utilizzando flussi di lavoro di scansione automatizzati. Quando vengono identificati problemi di sicurezza critici, AMIs vengono sistematicamente eliminati con adeguate linee guida sulla migrazione. Gli aggiornamenti regolari includono lo stato di correzione delle vulnerabilità e delle esposizioni comuni (CVE), i risultati di conformità e le azioni consigliate per garantire la sicurezza HyperPod degli ambienti riducendo al minimo le interruzioni operative durante le transizioni AMI.

## SageMaker HyperPod rilasci pubblici dell'AMI: 4 agosto 2025
<a name="sagemaker-hyperpod-release-public-ami-2025-08-04"></a>

Amazon SageMaker HyperPod ora supporta il nuovo pubblico AMIs per i cluster Amazon EKS. AMIs Includono quanto segue:

------
#### [ K8s v1.32 ]

Nome AMI: AMI HyperPod EKS 1.32 x86\$164 Amazon Linux 2 2025080407
+ **Componenti Amazon EKS**
  + Versione Kubernetes: 1.32.3
  + Versione Containerd: 1.7.23
  + Versione Runc: 1.2.6
  + AWS Autenticatore IAM: 0.6.29
+ **Agente Amazon SSM:** 3.3.2299.0
+ **Kernel Linux:** 5.10.238-234.956.amzn2.x86\$164
+ **Driver OSS NVIDIA:** 550.163.01
+ **NVIDIA CUDA:** 12.2
+ **Programma di installazione EFA:** 1.38.0
+ **GDRCopy: 2.4.1**
+ **Kit di strumenti per container NVIDIA:** 1.17.8
+ **AWS OFI NCCL**: 1.13.0-aws
+ **Pacchetti Neuron:**
  + **aws-neuronx-dkms.noarch: 2.22.2,0-kms**
  + **aws-neuronx-oci-hook.x86\$164:** 2.4.4.0-1
  + **aws-neuronx-tools.x86\$164:** 2,18.3,0-1
  + **aws-neuron-dkms.noarch: 2.3.26.0-dkms**
  + aws-neuron-k8 **plugin.x86\$164:** 1.9.3.0-1
  + **aws-neuron-k8-scheduler.x86\$164**: 1.9.3.0-1
  + **aws-neuron-runtime.x86\$164**: 1.6.24.0-1
  + **aws-neuron-runtime-base.x86\$164:** 1,6,21.0-1
  + **aws-neuron-tools.x86\$164:** 2.1.4.0-1
  + **aws-neuronx-collectives.x86\$164:2,27.34,0\$1ec8cd5e8b-1**
  + **aws-neuronx-gpsimd-customop.x86\$164:0,2,3,0-1**
  + **aws-neuronx-gpsimd-customop-lib.x86\$164:0,17,0-1**
  + **aws-neuronx-gpsimd-tools.x86\$164:0,170,0\$1aacc27699-1**
  + aws-neuronx-k8 **plugin.x86\$164:2.27.7.0-1**
  + **aws-neuronx-k8-scheduler.x86\$164**: 2,27.7,0-1
  + **aws-neuronx-runtime-lib.x86\$164:2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-tools.x86\$164:** 2,25,145,0-1
  + **tensorflow-model-server-neuron.x86\$164:** 2.8.0.2.3.0.0-0
  + **tensorflow-model-server-neuronx.x86\$164:** 2,10,12.12.2.0-0

------
#### [ K8s v1.30 ]

Nome AMI: HyperPod EKS 1.30 x86\$164 AMI Amazon Linux 2 2025080407
+ **Componenti Amazon EKS**
  + Versione Kubernetes: 1.30.11
  + Versione Containerd: 1.7.\$1
  + Versione Runc: 1.2.6
  + AWS Autenticatore IAM: 0.6.28
+ **Agente Amazon SSM:** 3.3.2299.0
+ **Kernel Linux:** 5.10.238-234.956.amzn2.x86\$164
+ **Driver OSS NVIDIA:** 550.163.01
+ **NVIDIA CUDA:** 12.2
+ **Programma di installazione EFA:** 1.38.0
+ **GDRCopy: 2.4.1**
+ **Kit di strumenti per container NVIDIA:** 1.17.8
+ **AWS OFI NCCL**: 1.13.0-aws
+ **Pacchetti Neuron:**
  + **aws-neuronx-dkms.noarch: 2.22.2,0-kms**
  + **aws-neuronx-oci-hook.x86\$164:** 2.4.4.0-1
  + **aws-neuronx-tools.x86\$164:** 2,18.3,0-1
  + **aws-neuron-dkms.noarch: 2.3.26.0-dkms**
  + aws-neuron-k8 **plugin.x86\$164:** 1.9.3.0-1
  + **aws-neuron-k8-scheduler.x86\$164**: 1.9.3.0-1
  + **aws-neuron-runtime.x86\$164**: 1.6.24.0-1
  + **aws-neuron-runtime-base.x86\$164:** 1,6,21.0-1
  + **aws-neuron-tools.x86\$164:** 2.1.4.0-1
  + **aws-neuronx-collectives.x86\$164:2,27.34,0\$1ec8cd5e8b-1**
  + **aws-neuronx-gpsimd-customop.x86\$164:0,2,3,0-1**
  + **aws-neuronx-gpsimd-customop-lib.x86\$164:0,17,0-1**
  + **aws-neuronx-gpsimd-tools.x86\$164:0,170,0\$1aacc27699-1**
  + aws-neuronx-k8 **plugin.x86\$164:2.27.7.0-1**
  + **aws-neuronx-k8-scheduler.x86\$164**: 2,27.7,0-1
  + **aws-neuronx-runtime-lib.x86\$164:2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-tools.x86\$164:** 2,25,145,0-1
  + **tensorflow-model-server-neuron.x86\$164:** 2.8.0.2.3.0.0-0
  + **tensorflow-model-server-neuronx.x86\$164:** 2,10,12.12.2.0-0

------
#### [ K8s v1.31 ]

Nome AMI: AMI HyperPod EKS 1.31 x86\$164 Amazon Linux 2 2025080407
+ **Componenti Amazon EKS**
  + Versione Kubernetes: 1.31.7
  + Versione Containerd: 1.7.\$1
  + Versione Runc: 1.2.6
  + AWS Autenticatore IAM: 0.6.28
+ **Agente Amazon SSM:** 3.3.2299.0
+ **Kernel Linux:** 5.10.238-234.956.amzn2.x86\$164
+ **Driver OSS NVIDIA:** 550.163.01
+ **NVIDIA CUDA:** 12.2
+ **Programma di installazione EFA:** 1.38.0
+ **GDRCopy: 2.4.1**
+ **Kit di strumenti per container NVIDIA:** 1.17.8
+ **AWS OFI NCCL**: 1.13.0-aws
+ **Pacchetti Neuron:**
  + **aws-neuronx-dkms.noarch: 2.22.2,0-kms**
  + **aws-neuronx-oci-hook.x86\$164:** 2.4.4.0-1
  + **aws-neuronx-tools.x86\$164:** 2,18.3,0-1
  + **aws-neuron-dkms.noarch: 2.3.26.0-dkms**
  + aws-neuron-k8 **plugin.x86\$164:** 1.9.3.0-1
  + **aws-neuron-k8-scheduler.x86\$164**: 1.9.3.0-1
  + **aws-neuron-runtime.x86\$164**: 1.6.24.0-1
  + **aws-neuron-runtime-base.x86\$164:** 1,6,21.0-1
  + **aws-neuron-tools.x86\$164:** 2.1.4.0-1
  + **aws-neuronx-collectives.x86\$164:2,27.34,0\$1ec8cd5e8b-1**
  + **aws-neuronx-gpsimd-customop.x86\$164:0,2,3,0-1**
  + **aws-neuronx-gpsimd-customop-lib.x86\$164:0,17,0-1**
  + **aws-neuronx-gpsimd-tools.x86\$164:0,170,0\$1aacc27699-1**
  + aws-neuronx-k8 **plugin.x86\$164:2.27.7.0-1**
  + **aws-neuronx-k8-scheduler.x86\$164**: 2,27.7,0-1
  + **aws-neuronx-runtime-lib.x86\$164:2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-tools.x86\$164:** 2,25,145,0-1
  + **tensorflow-model-server-neuron.x86\$164:** 2.8.0.2.3.0.0-0
  + **tensorflow-model-server-neuronx.x86\$164:** 2,10,12.12.2.0-0

------
#### [ K8s v1.29 ]

Nome AMI: AMI HyperPod EKS 1.29 x86\$164 Amazon Linux 2 2025080407
+ **Componenti Amazon EKS**
  + Versione Kubernetes: 1.29.15
  + Versione Containerd: 1.7.\$1
  + Versione Runc: 1.2.6
  + AWS Autenticatore IAM: 0.6.28
+ **Agente Amazon SSM:** 3.3.2299.0
+ **Kernel Linux:** 5.10.238-234.956.amzn2.x86\$164
+ **Driver OSS NVIDIA:** 550.163.01
+ **NVIDIA CUDA:** 12.2
+ **Programma di installazione EFA:** 1.38.0
+ **GDRCopy: 2.4.1**
+ **Kit di strumenti per container NVIDIA:** 1.17.8
+ **AWS OFI NCCL**: 1.13.0-aws
+ **Pacchetti Neuron:**
  + **aws-neuronx-dkms.noarch: 2.22.2,0-kms**
  + **aws-neuronx-oci-hook.x86\$164:** 2.4.4.0-1
  + **aws-neuronx-tools.x86\$164:** 2,18.3,0-1
  + **aws-neuron-dkms.noarch: 2.3.26.0-dkms**
  + aws-neuron-k8 **plugin.x86\$164:** 1.9.3.0-1
  + **aws-neuron-k8-scheduler.x86\$164**: 1.9.3.0-1
  + **aws-neuron-runtime.x86\$164**: 1.6.24.0-1
  + **aws-neuron-runtime-base.x86\$164:** 1,6,21.0-1
  + **aws-neuron-tools.x86\$164:** 2.1.4.0-1
  + **aws-neuronx-collectives.x86\$164:2,27.34,0\$1ec8cd5e8b-1**
  + **aws-neuronx-gpsimd-customop.x86\$164:0,2,3,0-1**
  + **aws-neuronx-gpsimd-customop-lib.x86\$164:0,17,0-1**
  + **aws-neuronx-gpsimd-tools.x86\$164:0,170,0\$1aacc27699-1**
  + aws-neuronx-k8 **plugin.x86\$164:2.27.7.0-1**
  + **aws-neuronx-k8-scheduler.x86\$164**: 2,27.7,0-1
  + **aws-neuronx-runtime-lib.x86\$164:2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-tools.x86\$164:** 2,25,145,0-1
  + **tensorflow-model-server-neuron.x86\$164:** 2.8.0.2.3.0.0-0
  + **tensorflow-model-server-neuronx.x86\$164:** 2,10,12.12.2.0-0

------
#### [ K8s v1.28 ]

Nome AMI: AMI HyperPod EKS 1.28 x86\$164 Amazon Linux 2 2025080407
+ **Componenti Amazon EKS**
  + Versione Kubernetes: 1.28.15
  + Versione Containerd: 1.7.\$1
  + Versione Runc: 1.2.6
  + AWS Autenticatore IAM: 0.6.28
+ **Agente Amazon SSM:** 3.3.2299.0
+ **Kernel Linux:** 5.10.238-234.956.amzn2.x86\$164
+ **Driver OSS NVIDIA:** 550.163.01
+ **NVIDIA CUDA:** 12.2
+ **Programma di installazione EFA:** 1.38.0
+ **GDRCopy: 2.4.1**
+ **Kit di strumenti per container NVIDIA:** 1.17.8
+ **AWS OFI NCCL**: 1.13.0-aws
+ **Pacchetti Neuron:**
  + **aws-neuronx-dkms.noarch: 2.22.2,0-kms**
  + **aws-neuronx-oci-hook.x86\$164:** 2.4.4.0-1
  + **aws-neuronx-tools.x86\$164:** 2,18.3,0-1
  + **aws-neuron-dkms.noarch: 2.3.26.0-dkms**
  + aws-neuron-k8 **plugin.x86\$164:** 1.9.3.0-1
  + **aws-neuron-k8-scheduler.x86\$164**: 1.9.3.0-1
  + **aws-neuron-runtime.x86\$164**: 1.6.24.0-1
  + **aws-neuron-runtime-base.x86\$164:** 1,6,21.0-1
  + **aws-neuron-tools.x86\$164:** 2.1.4.0-1
  + **aws-neuronx-collectives.x86\$164:2,27.34,0\$1ec8cd5e8b-1**
  + **aws-neuronx-gpsimd-customop.x86\$164:0,2,3,0-1**
  + **aws-neuronx-gpsimd-customop-lib.x86\$164:0,17,0-1**
  + **aws-neuronx-gpsimd-tools.x86\$164:0,170,0\$1aacc27699-1**
  + aws-neuronx-k8 **plugin.x86\$164:2.27.7.0-1**
  + **aws-neuronx-k8-scheduler.x86\$164**: 2,27.7,0-1
  + **aws-neuronx-runtime-lib.x86\$164:2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-tools.x86\$164:** 2,25,145,0-1
  + **tensorflow-model-server-neuron.x86\$164:** 2.8.0.2.3.0.0-0
  + **tensorflow-model-server-neuronx.x86\$164:** 2,10,12.12.2.0-0

------

# AI generativa in ambienti notebook SageMaker
<a name="jupyterai"></a>

[Jupyter AI](https://github.com/jupyterlab/jupyter-ai) è un'estensione open source dell' JupyterLab integrazione di funzionalità di intelligenza artificiale generativa nei notebook Jupyter. Tramite l’interfaccia della chat di Jupyter AI e i comandi magic, gli utenti conducono esperimenti sul codice generato da istruzioni in linguaggio naturale, spiegano il codice esistente, pongono domande sui file locali, generano interi notebook e altro ancora. L'estensione collega i notebook Jupyter con modelli linguistici di grandi dimensioni (LLMs) che gli utenti possono utilizzare per generare testo, codice o immagini e per porre domande sui propri dati. Jupyter AI supporta fornitori di modelli generativi come AI21 Anthropic ( AWS e JumpStart Amazon Bedrock), Cohere e OpenAI.

Puoi utilizzare Amazon Q Developer anche come soluzione pronta all’uso. Invece di configurare manualmente una connessione in un modello, puoi iniziare a utilizzare Amazon Q Developer con una configurazione minima. Quando lo abiliti, Amazon Q Developer diventa il provider di soluzioni predefinito all’interno di Jupyter AI. Per ulteriori informazioni sull’utilizzo di Amazon Q Developer, consulta [SageMaker JupyterLab](studio-updated-jl.md).

Il pacchetto dell'estensione è incluso nella [versione 1.2 e successive](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v1) di [Amazon SageMaker Distribution](https://github.com/aws/sagemaker-distribution). Amazon SageMaker Distribution è un ambiente Docker per la scienza dei dati e il calcolo scientifico utilizzato come immagine predefinita delle istanze di JupyterLab notebook. Gli utenti di IPython ambienti diversi possono installare Jupyter AI manualmente.

[In questa sezione, forniamo una panoramica delle funzionalità di intelligenza artificiale di Jupyter e dimostriamo come configurare i modelli forniti da JumpStart Amazon Bedrock dai [JupyterLab](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-jl.html)nostri notebook Studio Classic.](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html) Per informazioni approfondite sul progetto Jupyter AI, consulta la relativa [documentazione](https://jupyter-ai.readthedocs.io/en/latest/). In alternativa, puoi fare riferimento al post di blog *[Generative AI in Jupyter](https://blog.jupyter.org/generative-ai-in-jupyter-3f7174824862)* per una panoramica ed esempi delle principali funzionalità di Jupyter AI.

Prima di utilizzare Jupyter AI e interagire con il tuo, assicurati di soddisfare i seguenti prerequisiti: LLMs
+ Per i modelli ospitati da AWS, dovresti disporre dell'ARN del tuo endpoint SageMaker AI o avere accesso ad Amazon Bedrock. Per gli altri provider di modelli, devi disporre della chiave API utilizzata per autenticare e autorizzare le richieste nel modello. Jupyter AI supporta un’ampia gamma di provider di modelli e modelli linguistici, consulta l’elenco dei [modelli supportati](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#model-providers) per aggiornamenti sugli ultimi modelli disponibili. Per informazioni su come implementare un modello in JumpStart, consulta [Deploy](https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-deploy.html) a Model nella documentazione. JumpStart Devi richiedere l’accesso ad [Amazon Bedrock](https://aws.amazon.com/bedrock/) per utilizzarlo come provider di modelli.
+ Assicurati che nel tuo ambiente siano presenti le librerie di Jupyter AI. In caso contrario, installa il pacchetto richiesto seguendo le istruzioni riportate in [Installazione di Jupyter AI](sagemaker-jupyterai-installation.md).
+ Acquisisci familiarità con le funzionalità di Jupyter AI in [Accesso alle funzionalità di Jupyter AI](sagemaker-jupyterai-overview.md).
+ Configura i modelli di destinazione da utilizzare seguendo le istruzioni riportate in [Configurazione del provider di modelli](sagemaker-jupyterai-model-configuration.md).

Dopo aver completato le fasi preliminari, puoi procedere alla sezione [Usa Jupyter AI nel nostro Studio Classic JupyterLab](sagemaker-jupyterai-use.md).

**Topics**
+ [Installazione di Jupyter AI](sagemaker-jupyterai-installation.md)
+ [Accesso alle funzionalità di Jupyter AI](sagemaker-jupyterai-overview.md)
+ [Configurazione del provider di modelli](sagemaker-jupyterai-model-configuration.md)
+ [Usa Jupyter AI nel nostro Studio Classic JupyterLab](sagemaker-jupyterai-use.md)

# Installazione di Jupyter AI
<a name="sagemaker-jupyterai-installation"></a>

Per utilizzare Jupyter AI, devi installare prima il pacchetto Jupyter AI. Per gli utenti di [Amazon SageMaker AI Distribution](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v1), consigliamo di selezionare l'immagine di SageMaker distribuzione versione 1.2 o successiva. Non è richiesta alcuna operazione di installazione aggiuntiva. Gli utenti di JupyterLab in Studio possono scegliere la versione della propria SageMaker distribuzione Amazon quando creano uno spazio.

Per gli utenti di altri IPython ambienti, la versione del pacchetto Jupyter AI consigliato dipende dalla versione utilizzata JupyterLab .

La distribuzione di Jupyter AI prevede due pacchetti.
+ `jupyter_ai`: Questo pacchetto fornisce un' JupyterLab estensione e un'interfaccia utente di chat (UI) nativa. Funziona come un assistente di conversazione e utilizza il modello linguistico di grandi dimensioni scelto da te.
+ `jupyter_ai_magics`: Questo pacchetto fornisce i comandi IPython `%%ai` `%ai` magici con cui è possibile richiamare un modello di linguaggio di grandi dimensioni (LLM) dalle celle del notebook.

**Nota**  
Insieme a `jupyter_ai` viene installato anche `jupyter_ai_magics`. Tuttavia, è possibile eseguire l'installazione `jupyter_ai_magics` in modo indipendente senza JupyterLab o. `jupyter_ai` I comandi `%%ai` magici `%ai` funzionano in qualsiasi ambiente IPython kernel. Se installi solo `jupyter_ai_magics`, non puoi utilizzare l’interfaccia utente della chat.

Agli utenti di JupyterLab 3 persone, in particolare agli utenti di Studio Classic, consigliamo di installare la `jupyter-ai` [versione 1.5.x o qualsiasi versione 1.x](https://pypi.org/project/jupyter-ai/#history) successiva. Tuttavia, consigliamo vivamente di utilizzare Jupyter AI con 4. JupyterLab La `jupyter-ai` versione compatibile con JupyterLab 3 potrebbe non consentire agli utenti di impostare parametri aggiuntivi del modello come temperatura, campionamento top-k e top-p, numero massimo di token o lunghezza massima o accordi di licenza di accettazione da parte dell'utente.

Per gli utenti di JupyterLab 4 ambienti che non utilizzano SageMaker Distribution, consigliamo di installare la `jupyter-ai` [versione 2.5.x o qualsiasi versione 2.x successiva](https://pypi.org/project/jupyter-ai/#history).

Consulta le istruzioni nella sezione sull’*installazione* della [documentazione di Jupyter AI](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#installation-via-pip).

# Accesso alle funzionalità di Jupyter AI
<a name="sagemaker-jupyterai-overview"></a>

Puoi accedere alle funzionalità di Jupyter AI con due metodi distinti: l’interfaccia utente della chat o i comandi magic all’interno dei notebook.

## Dall’assistente IA dell’interfaccia utente della chat
<a name="sagemaker-jupyterai-overview-chatui"></a>

L’interfaccia della chat ti connette con Jupyternaut, un agente di conversazione che utilizza il modello linguistico scelto da te. 

Dopo aver avviato un' JupyterLab applicazione installata con Jupyter AI, puoi accedere all'interfaccia di chat scegliendo l'icona della chat () ![\[Icon of a rectangular shape with a curved arrow pointing to the upper right corner.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/jupyterai/jupyterai-chat-ui.png) nel pannello di navigazione a sinistra. Agli utenti alle prime armi viene richiesto di configurare il proprio modello. Per le istruzioni di configurazione, consulta [Configurazione del provider di modelli nell’interfaccia utente della chat](sagemaker-jupyterai-model-configuration.md#sagemaker-jupyterai-model-configuration-chatui).

**Con l’interfaccia utente della chat, puoi:**
+ **Rispondere alle domande**: ad esempio, puoi chiedere a Jupyternaut di creare una funzione Python che aggiunga file CSV a un bucket Amazon S3. Successivamente, puoi perfezionare la risposta ponendo un’altra domanda, ad esempio puoi aggiungere un parametro alla funzione per scegliere il percorso in cui scrivere i file. 
+ **Interagisci con i file in JupyterLab**: puoi includere una parte del tuo taccuino nel prompt selezionandolo. Quindi, puoi sostituirla con la risposta suggerita dal modello o copiare manualmente la risposta negli appunti.
+ **Generare interi notebook** dai prompt: avviando il prompt con `/generate`, attivi un processo di generazione dei notebook in background che non interrompe l’utilizzo di Jupyternaut. Al termine del processo viene visualizzato un messaggio che contiene il link al nuovo file.
+ **Inserire informazioni dai file locali e porre domande su di essi**: utilizzando il comando `/learn`, puoi inserire informazioni sui file locali in un modello di embedding a tua scelta, quindi puoi porre domande su tali file utilizzando il comando `/ask`. Jupyter AI archivia i contenuti incorporati in un [database vettoriale FAISS](https://github.com/facebookresearch/faiss) locale, quindi utilizza la generazione potenziata da recupero dati (RAG) per fornire risposte basate sulle informazioni apprese. Per cancellare tutte le informazioni precedentemente apprese dal tuo modello di embedding, utilizza `/learn -d`.

**Nota**  
Amazon Q Developer non è in grado di generare notebook da zero.

Per un elenco completo delle funzionalità e istruzioni dettagliate sul loro utilizzo, consulta la documentazione sull’[interfaccia della chat Jupyter AI](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#the-chat-interface). Per informazioni su come configurare l’accesso a un modello in Jupyternaut, consulta [Configurazione del provider di modelli nell’interfaccia utente della chat](sagemaker-jupyterai-model-configuration.md#sagemaker-jupyterai-model-configuration-chatui).

## Dalle celle dei notebook
<a name="sagemaker-jupyterai-overview-magic-commands"></a>

Utilizzando `%%ai` i comandi `%ai` magici, puoi interagire con il modello linguistico che preferisci dalle celle del tuo notebook o da qualsiasi interfaccia a riga di IPython comando. Il comando `%%ai` applica le istruzioni all’intera cella, mentre `%ai` le applica alla riga specifica.

L’esempio seguente illustra un comando magic `%%ai` che invoca un modello Anthropic Claude per generare un file HTML che contiene l’immagine di un quadrato bianco con bordi neri.

```
%%ai anthropic:claude-v1.2 -f html
Create a square using SVG with a black border and white fill.
```

Per conoscere la sintassi di ogni comando, utilizza `%ai help`. Per elencare i provider e i modelli supportati dall’estensione, esegui `%ai list`.

Per un elenco completo delle funzionalità e istruzioni dettagliate sul loro utilizzo, consulta la documentazione sui [comandi magic](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#the-ai-and-ai-magic-commands) di Jupyter AI. In particolare, puoi personalizzare il formato di output del modello utilizzando il parametro `-f` o `--format`, consentire l’interpolazione delle variabili nei prompt, incluse le variabili speciali `In` e `Out`, e altro ancora.

Per informazioni su come configurare l’accesso a un modello, consulta [Configurazione del provider di modelli in un notebook](sagemaker-jupyterai-model-configuration.md#sagemaker-jupyterai-model-configuration-magic-commands). 

# Configurazione del provider di modelli
<a name="sagemaker-jupyterai-model-configuration"></a>

**Nota**  
In questa sezione, diamo per scontato che i modelli linguistici e di embedding che intendi utilizzare siano già implementati. Per i modelli forniti da AWS, dovresti già disporre dell'ARN del tuo endpoint SageMaker AI o dell'accesso ad Amazon Bedrock. Per gli altri provider di modelli, devi disporre della chiave API utilizzata per autenticare e autorizzare le richieste nel modello.  
Jupyter AI supporta un’ampia gamma di provider di modelli e modelli linguistici, consulta l’elenco dei [modelli supportati](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#model-providers) per aggiornamenti sugli ultimi modelli disponibili. Per informazioni su come distribuire un modello fornito da JumpStart, consulta [Deploy](https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-deploy.html) a Model nella documentazione. JumpStart Devi richiedere l’accesso ad [Amazon Bedrock](https://aws.amazon.com/bedrock/) per utilizzarlo come provider di modelli.

La configurazione di Jupyter AI varia a seconda che si utilizzi l’interfaccia utente della chat o i comandi magic.

## Configurazione del provider di modelli nell’interfaccia utente della chat
<a name="sagemaker-jupyterai-model-configuration-chatui"></a>

**Nota**  
È possibile configurare diversi modelli LLMs e incorporarli seguendo le stesse istruzioni. Tuttavia, è necessario configurare almeno un **modello linguistico**.

**Per configurare l’interfaccia utente della chat**

1. In JupyterLab, accedi all'interfaccia della chat selezionando l'icona della chat (![\[Icon of a rectangular shape with a curved arrow pointing to the upper right corner.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/jupyterai/jupyterai-chat-ui.png)) nel pannello di navigazione a sinistra.

1. Scegli l’icona di configurazione (![\[Gear or cog icon representing settings or configuration options.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/jupyterai/jupyterai-configure-models.png)) nell’angolo in alto a destra del riquadro a sinistra. Si apre il pannello di configurazione di Jupyter AI.

1. Compila i campi relativi al provider di servizi.
   + **Per i modelli forniti da JumpStart Amazon Bedrock**
     + Nell'elenco a discesa **dei modelli linguistici**, seleziona `sagemaker-endpoint` i modelli distribuiti con JumpStart o `bedrock` per i modelli gestiti da Amazon Bedrock.
     + I parametri variano a seconda che il modello sia distribuito su SageMaker AI o Amazon Bedrock.
       + Per i modelli distribuiti con: JumpStart
         + [**Inserisci il nome dell'endpoint in Nome dell'**endpoint, quindi il nome** Regione AWS in cui viene distribuito il modello in Nome regione.**](sagemaker-jupyterai-use.md#sagemaker-jupyterai-region-name) Per recuperare l'ARN degli SageMaker endpoint AI, vai [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/) a e quindi **scegli** Inferenza **ed** endpoints nel menu a sinistra.
         + Incolla il codice JSON dello [**schema di richiesta**](sagemaker-jupyterai-use.md#sagemaker-jupyterai-request-schema) personalizzato per il tuo modello e il [**percorso di risposta**](sagemaker-jupyterai-use.md#sagemaker-jupyterai-response-path) corrispondente per analizzare l’output del modello.
**Nota**  
[Puoi trovare il formato di richiesta e risposta di vari modelli di JumpStart base nei seguenti taccuini di esempio.](https://github.com/aws/amazon-sagemaker-examples/tree/main/introduction_to_amazon_algorithms/jumpstart-foundation-models) Ogni notebook prende il nome dal modello che descrive.
       + [**Per i modelli gestiti da Amazon Bedrock: aggiungi il AWS profilo che memorizza le AWS credenziali sul sistema (opzionale), quindi il profilo Regione AWS in cui viene distribuito il modello nel nome della regione.**](sagemaker-jupyterai-use.md#sagemaker-jupyterai-region-name)
     + (Facoltativo) Seleziona un [modello di embedding](sagemaker-jupyterai-overview.md#sagemaker-jupyterai-embedding-model) al quale hai accesso. I modelli di embedding vengono utilizzati per acquisire informazioni aggiuntive dai documenti locali, consentendo al modello di generazione del testo di rispondere alle domande in base al contesto di tali documenti.
     + Scegli **Salva le modifiche** e vai all’icona della freccia sinistra (![\[Left-pointing arrow icon, typically used for navigation or returning to a previous page.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/jupyterai/jupyterai-return-to-chat.png)) nell’angolo in alto a sinistra del riquadro di sinistra. Si apre l’interfaccia utente della chat di Jupyter AI. Puoi iniziare a interagire con il tuo modello.
   + **Per i modelli ospitati da provider di terze parti**
     + Nell’elenco a discesa del **modello linguistico**, seleziona l’ID del tuo provider. Puoi trovare i dettagli di ciascun provider, incluso il relativo ID, nell’[elenco dei provider di modelli](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#model-providers) di Jupyter AI.
     + (Facoltativo) Seleziona un [modello di embedding](sagemaker-jupyterai-overview.md#sagemaker-jupyterai-embedding-model) al quale hai accesso. I modelli di embedding vengono utilizzati per acquisire informazioni aggiuntive dai documenti locali, consentendo al modello di generazione del testo di rispondere alle domande in base al contesto di tali documenti.
     + Inserisci le chiavi API dei tuoi modelli.
     + Scegli **Salva le modifiche** e vai all’icona della freccia sinistra (![\[Left-pointing arrow icon, typically used for navigation or returning to a previous page.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/jupyterai/jupyterai-return-to-chat.png)) nell’angolo in alto a sinistra del riquadro di sinistra. Si apre l’interfaccia utente della chat di Jupyter AI. Puoi iniziare a interagire con il tuo modello.

L'istantanea seguente è un'illustrazione del pannello di configurazione dell'interfaccia utente della chat impostato per richiamare un modello FLAN-T5-small fornito e distribuito nell'intelligenza artificiale. JumpStart SageMaker 

![\[Pannello di configurazione dell'interfaccia utente della chat impostato per richiamare un modello FLAN-T5-small fornito da. JumpStart\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/jupyterai/jupyterai-chatui-configuration.png)


### Passaggio di ulteriori parametri del modello e di parametri personalizzati alla tua richiesta
<a name="sagemaker-jupyterai-configuration-model-parameters"></a>

Il tuo modello potrebbe aver bisogno di ulteriori parametri, ad esempio un attributo personalizzato per l’approvazione del contratto con l’utente o modifiche ad altri parametri del modello come la temperatura o la lunghezza della risposta. Consigliamo di configurare queste impostazioni come opzione di avvio dell'applicazione utilizzando una configurazione del ciclo di vita JupyterLab. Per informazioni su come creare una configurazione del ciclo di vita e collegarla al tuo dominio o a un profilo utente dalla [console SageMaker AI](https://console.aws.amazon.com/sagemaker/), consulta [Creare e](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-lcc.html) associare una configurazione del ciclo di vita. Puoi scegliere lo script LCC quando crei uno spazio per la tua applicazione. JupyterLab 

Utilizza il seguente schema JSON per configurare i [parametri aggiuntivi](sagemaker-jupyterai-use.md#sagemaker-jupyterai-extra-model-params):

```
{
  "AiExtension": {
    "model_parameters": {
      "<provider_id>:<model_id>": { Dictionary of model parameters which is unpacked and passed as-is to the provider.}
      }
    }
  }
}
```

Lo script seguente è un esempio di file di configurazione JSON che puoi utilizzare durante la creazione di un' JupyterLab applicazione LCC per impostare la lunghezza massima di un [modello AI21 Labs Jurassic-2 distribuito](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-jurassic2.html) su Amazon Bedrock. Se aumenti la lunghezza della risposta generata dal modello, potresti impedire il troncamento sistematico della risposta del modello.

```
#!/bin/bash
set -eux

mkdir -p /home/sagemaker-user/.jupyter

json='{"AiExtension": {"model_parameters": {"bedrock:ai21.j2-mid-v1": {"model_kwargs": {"maxTokens": 200}}}}}'
# equivalent to %%ai bedrock:ai21.j2-mid-v1 -m {"model_kwargs":{"maxTokens":200}}

# File path
file_path="/home/sagemaker-user/.jupyter/jupyter_jupyter_ai_config.json"

#jupyter --paths

# Write JSON to file
echo "$json" > "$file_path"

# Confirmation message
echo "JSON written to $file_path"

restart-jupyter-server

# Waiting for 30 seconds to make sure the Jupyter Server is up and running
sleep 30
```

Lo script seguente è un esempio di file di configurazione JSON per la creazione di un' JupyterLab applicazione LCC utilizzato per impostare parametri di modello aggiuntivi per un modello [Anthropic Claude distribuito su](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-claude.html) Amazon Bedrock.

```
#!/bin/bash
set -eux

mkdir -p /home/sagemaker-user/.jupyter

json='{"AiExtension": {"model_parameters": {"bedrock:anthropic.claude-v2":{"model_kwargs":{"temperature":0.1,"top_p":0.5,"top_k":25
0,"max_tokens_to_sample":2}}}}}'
# equivalent to %%ai bedrock:anthropic.claude-v2 -m {"model_kwargs":{"temperature":0.1,"top_p":0.5,"top_k":250,"max_tokens_to_sample":2000}}

# File path
file_path="/home/sagemaker-user/.jupyter/jupyter_jupyter_ai_config.json"

#jupyter --paths

# Write JSON to file
echo "$json" > "$file_path"

# Confirmation message
echo "JSON written to $file_path"

restart-jupyter-server

# Waiting for 30 seconds to make sure the Jupyter Server is up and running
sleep 30
```

Dopo aver collegato la scheda LCC al dominio o al profilo utente, aggiungi la scheda LCC al tuo spazio quando avvii l'applicazione. JupyterLab Per assicurarti che il file di configurazione venga aggiornato dalla LCC, esegui `more ~/.jupyter/jupyter_jupyter_ai_config.json` in un terminale. Il contenuto del file deve corrispondere al contenuto del file JSON passato alla LCC.

## Configurazione del provider di modelli in un notebook
<a name="sagemaker-jupyterai-model-configuration-magic-commands"></a>

**Per richiamare un modello tramite Jupyter AI all'interno dei notebook Studio Classic JupyterLab o utilizzando i comandi e magic `%%ai` `%ai`**

1. Installa le librerie client specifiche per il tuo provider di modelli nell’ambiente del notebook. Ad esempio, quando utilizzi modelli OpenAI, devi installare la libreria client `openai`. Puoi trovare l’elenco delle librerie client richieste per ogni provider nella colonna *Pacchetti Python* dell’[elenco dei provider di modelli](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#model-providers) di Jupyter AI.
**Nota**  
Per i modelli ospitati da AWS, `boto3` è già installato nell'immagine SageMaker AI Distribution utilizzata da o in qualsiasi immagine Data JupyterLab Science utilizzata con Studio Classic.

1. 
   + **Per i modelli ospitati da AWS**

     Assicurati che il tuo ruolo di esecuzione sia autorizzato a richiamare il tuo endpoint SageMaker AI per i modelli forniti da Amazon Bedrock JumpStart o che tu abbia accesso ad Amazon Bedrock.
   + **Per i modelli ospitati da provider di terze parti**

     Esporta la chiave API del tuo provider nell’ambiente del notebook utilizzando le variabili di ambiente. Puoi utilizzare il comando magic seguente. Sostituisci `provider_API_key` nel comando con la variabile di ambiente corrispondente al tuo provider, disponibile nella colonna *Variabile di ambiente* dell’[elenco dei provider di modelli](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#model-providers) di Jupyter AI.

     ```
     %env provider_API_key=your_API_key
     ```

# Usa Jupyter AI nel nostro Studio Classic JupyterLab
<a name="sagemaker-jupyterai-use"></a>

Puoi usare Jupyter AI in JupyterLab o Studio Classic richiamando modelli linguistici dall'interfaccia utente della chat o dalle celle del notebook. Nelle sezioni seguenti vengono fornite informazioni sulle fasi necessarie per completare questa operazione.

## Utilizzo dei modelli linguistici dell’interfaccia utente della chat
<a name="sagemaker-jupyterai-use-chatui"></a>

Scrivi il tuo messaggio nella casella di testo dell’interfaccia utente della chat per iniziare a interagire con il tuo modello. Per cancellare la cronologia dei messaggi, utilizza il comando `/clear`.

**Nota**  
La cancellazione della cronologia dei messaggi non cancella il contesto della chat del provider di modelli.

## Utilizzo dei modelli linguistici dalle celle del notebook
<a name="sagemaker-jupyterai-use-magic-commands"></a>

Prima di utilizzare i `%ai` comandi `%%ai` and per richiamare un modello di linguaggio, carica l' IPython estensione eseguendo il comando seguente in una JupyterLab cella del notebook Studio Classic.

```
%load_ext jupyter_ai_magics
```
+ **Per i modelli ospitati da: AWS**
  + Per richiamare un modello distribuito nell' SageMaker intelligenza artificiale, passa la stringa `sagemaker-endpoint:endpoint-name` al comando `%%ai` magic con i parametri richiesti di seguito, quindi aggiungi il prompt nelle righe seguenti.

    La tabella seguente elenca i parametri obbligatori e facoltativi quando si richiamano modelli ospitati da SageMaker AI o Amazon Bedrock.<a name="sagemaker-jupyterai-jumpstart-inference-params"></a>    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/sagemaker-jupyterai-use.html)

    Il comando seguente richiama un modello [Llama2-7b](https://sagemaker.readthedocs.io/en/stable/doc_utils/pretrainedmodels.html) ospitato da AI. SageMaker 

    ```
    %%ai sagemaker-endpoint:jumpstart-dft-meta-textgeneration-llama-2-7b -q {"inputs":"<prompt>","parameters":{"max_new_tokens":64,"top_p":0.9,"temperature":0.6,"return_full_text":false}} -n us-east-2 -p [0].generation -m {"endpoint_kwargs":{"CustomAttributes":"accept_eula=true"}} -f text
    Translate English to French:
    sea otter => loutre de mer
    peppermint => menthe poivrée
    plush girafe => girafe peluche
    cheese =>
    ```

    L'esempio seguente richiama un modello FLAN-T5-Small ospitato da AI. SageMaker 

    ```
    %%ai sagemaker-endpoint:hf-text2text-flan-t5-small --request-schema={"inputs":"<prompt>","parameters":{"num_return_sequences":4}} --region-name=us-west-2 --response-path=[0]["generated_text"] -f text
    What is the atomic number of Hydrogen?
    ```
  + Per richiamare un modello distribuito in Amazon Bedrock, passa la stringa `bedrock:model-name` al comando `%%ai` magic con qualsiasi parametro opzionale definito nell'elenco dei [parametri per richiamare i modelli ospitati da o JumpStart Amazon Bedrock](#sagemaker-jupyterai-jumpstart-inference-params), quindi aggiungi il prompt nelle righe seguenti.

    L'esempio seguente richiama un [modello AI21 Labs Jurassic-2 ospitato](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-jurassic2.html) da Amazon Bedrock.

    ```
    %%ai bedrock:ai21.j2-mid-v1 -m {"model_kwargs":{"maxTokens":256}} -f code
    Write a function in python implementing a bubbble sort.
    ```
+ **Per i modelli ospitati da provider di terze parti**

  Per invocare un modello ospitato da provider di terze parti, passa la stringa `provider-id:model-name` al comando magic `%%ai` con un [`Output format`](#sagemaker-jupyterai-output-format-params) facoltativo, quindi aggiungi il prompt nelle righe seguenti. Puoi trovare i dettagli di ciascun provider, incluso il relativo ID, nell’[elenco dei provider di modelli](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#model-providers) di Jupyter AI.

  Il comando seguente chiede a un modello Anthropic Claude di generare un file HTML con l’immagine di un quadrato bianco con bordi neri.

  ```
  %%ai anthropic:claude-v1.2 -f html
  Create a square using SVG with a black border and white fill.
  ```

# Amazon Q Developer
<a name="studio-updated-amazon-q"></a>

Amazon Q Developer è un assistente conversazionale di IA generativa che ti aiuta a scrivere codice migliore. Amazon Q Developer è disponibile nei seguenti formati IDEs all'interno di Amazon SageMaker Studio:
+ JupyterLab
+ Editor di codice, basato su Code-OSS, Visual Studio Code - Open Source

Utilizza le sezioni seguenti per configurare Amazon Q Developer e utilizzarlo all’interno del tuo ambiente.

**Topics**
+ [Configurazione di Amazon Q Developer per i tuoi utenti](studio-updated-amazon-q-admin-guide-set-up.md)
+ [Utilizzo di Amazon Q per accelerare i flussi di lavoro di machine learning](studio-updated-user-guide-use-amazon-q.md)
+ [Personalizza Amazon Q Developer nelle applicazioni Amazon SageMaker Studio](q-customizations.md)

# Configurazione di Amazon Q Developer per i tuoi utenti
<a name="studio-updated-amazon-q-admin-guide-set-up"></a>

Amazon Q Developer è un assistente conversazionale di IA generativa. Puoi configurare Amazon Q Developer all’interno di un dominio nuovo o esistente. Utilizza le informazioni seguenti per configurare Amazon Q Developer.

Con Amazon Q Developer, i tuoi utenti possono:
+ Ricevi step-by-step indicazioni sull'uso delle funzionalità di SageMaker intelligenza artificiale in modo indipendente o in combinazione con altri AWS servizi.
+ Ottieni codice di esempio per iniziare le tue attività di machine learning come la preparazione dei dati, la formazione, l'inferenza e MLOps.
+ Ricevere assistenza sulla risoluzione dei problemi per eseguire il debug e correggere gli errori riscontrati durante l’esecuzione del codice.

**Nota**  
Amazon Q Developer in Studio non utilizza i contenuti degli utenti per migliorare il servizio, indipendentemente dal livello di abbonamento in uso, gratuito o Pro. Per la condivisione della telemetria a livello di IDE, Amazon Q potrebbe tenere traccia dell’utilizzo da parte degli utenti, ad esempio il numero di domande poste e se le raccomandazioni sono state accettate o rifiutate. Questi dati di telemetria non includono informazioni di identificazione personale come l’indirizzo IP degli utenti. Per ulteriori informazioni sulla protezione dei dati e per istruzioni sulla non adesione, consulta [Non adesione alla condivisione dei dati nell’IDE](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/opt-out-IDE.html).

Puoi configurare Amazon Q Developer con un piano di abbonamento gratuito o Pro. Il piano Pro è un servizio di abbonamento a pagamento con limiti di utilizzo più elevati e altre funzionalità. Per ulteriori informazioni sulle differenze tra i livelli, consulta [Understanding tiers of service for Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/q-tiers.html).

Per informazioni sull’abbonamento ad Amazon Q Developer Pro, consulta [Subscribing to Amazon Q Developer Pro](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/q-admin-setup-subscribe-general.html).

## Istruzioni di configurazione per il piano gratuito di Amazon Q Developer:
<a name="studio-updated-amazon-q-developer-free-tier-set-up"></a>

Per configurare il piano gratuito di Amazon Q Developer, procedi come indicato di seguito:

**Per configurare il piano gratuito di Amazon Q Developer**

1. Aggiungi la seguente policy al ruolo IAM che hai usato per creare il tuo spazio JupyterLab o Code Editor:

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

****  

   ```
   {
   	"Version":"2012-10-17",		 	 	 
   	"Statement": [
   		{
   			"Effect": "Allow",
   			"Action": [
   				"q:SendMessage"
   			],
   			"Resource": [
   				"*"
   			]
   		},
   		{
   			"Sid": "AmazonQDeveloperPermissions",
   			"Effect": "Allow",
   			"Action": [
   				"codewhisperer:GenerateRecommendations"
   			],
   			"Resource": "*"
   		}
   	]
   }
   ```

------

1. Accedi ad Amazon SageMaker Studio.

1. Apri il tuo spazio JupyterLab o Code Editor.

1. Vai all’**utilità di avvio** e scegli **Terminale**.

1. Nel JupyterLab, procedi come segue:

   1. Specifica `restart-jupyter-server`.

   1. Riavvia il browser e torna ad Amazon SageMaker Studio.

## Istruzioni di configurazione per il piano Amazon Q Developer Pro:
<a name="studio-updated-amazon-q-developer-pro-set-up"></a>

**Prerequisiti**  
Per configurare Amazon Q Pro, è necessario:  
Un dominio Amazon SageMaker AI configurato per la tua organizzazione con IAM Identity Center configurato come mezzo di accesso.
Un abbonamento Amazon Q Developer Pro.

Se stai aggiornando un dominio che hai già configurato per la tua organizzazione, devi aggiornarlo per utilizzare Amazon Q Developer. Puoi utilizzare il Console di gestione AWS o il AWS Command Line Interface per aggiornare un dominio.

Devi utilizzare l’ARN del tuo profilo Amazon Q Developer. Puoi trovare l’ARN del profilo Q nella pagina delle [impostazioni di Q Developer](https://console.aws.amazon.com/amazonq/developer/settings).

Puoi usare il seguente AWS Command Line Interface comando per aggiornare il tuo dominio:

```
aws --region Regione AWS sagemaker update-domain --domain-id domain-id --domain-settings-for-update "AmazonQSettings={Status=ENABLED,QProfileArn=Q-Profile-ARN}"           
```

Puoi utilizzare anche la procedura seguente per aggiornare il dominio all’interno della Console di gestione AWS.

1. Passa alla console [Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker).

1. Scegli Domini.

1. Seleziona **Configurazioni dell’app**.

1. Per **Amazon Q Developer for SageMaker AI Applications**, scegli **Modifica**.

1. Seleziona **Abilita Amazon Q Developer su questo dominio**.

1. Fornisci l’ARN del profilo Q.

1. Seleziona **Invia**.

Devi utilizzare l’ARN del tuo profilo Amazon Q Developer. Puoi trovare l’ARN del profilo Q nella pagina dei **dettagli dell’account Amazon Q** della console di Amazon[ Q Developer](https://console.aws.amazon.com/amazonq/developer).

La **configurazione per le organizzazioni** è una configurazione avanzata per il dominio Amazon SageMaker AI che consente di utilizzare IAM Identity Center. Per informazioni su come configurare il dominio e il Centro identità IAM, consulta [Usa una configurazione personalizzata per Amazon SageMaker AI](onboard-custom.md).

Quando configuri Amazon Q Developer in un nuovo dominio, puoi utilizzare il comando Console di gestione AWS o il seguente AWS Command Line Interface comando dal tuo computer locale:

```
                    
aws --region Regione AWS sagemaker create-domain --domain-id domain-id --domain-name "example-domain-name" --vpc-id example-vpc-id --subnet-ids example-subnet-ids --auth-mode SSO --default-user-settings "ExecutionRole=arn:aws:iam::111122223333:role/IAM-role",--domain-settings "AmazonQSettings={status=ENABLED,qProfileArn=Q-profile-ARN" --query example-domain-ARN--output text
```

Puoi utilizzare il seguente AWS CLI comando per disabilitare Amazon Q Developer:

```
aws --region Regione AWS sagemaker update-domain --domain-id domain-id --domain-settings-for-update "AmazonQSettings={Status=DISABLED,QProfileArn=Q-Profile-ARN}"           
```

Ti consigliamo di utilizzare sempre la versione più recente di AWS Command Line Interface. Per informazioni sull'aggiornamento di AWS CLI, consulta [Installare o aggiornare alla versione più recente di AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

Se devi stabilire una connessione tra Amazon Q Developer e il tuo VPC, consulta [Creazione di un endpoint VPC di interfaccia per Amazon Q](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/vpc-interface-endpoints.html#vpc-endpoint-create).

**Nota**  
Amazon Q Developer presenta i seguenti limiti:  
Non supporta gli spazi condivisi.
Amazon Q Developer rileva se un suggerimento di codice potrebbe essere troppo simile al codice disponibile pubblicamente. Il reference tracker può contrassegnare i suggerimenti con repository URLs e licenze o filtrarli. Questa operazione consente di esaminare il codice di riferimento e il suo utilizzo prima di adottarlo. Tutti i riferimenti vengono registrati per consentirti di esaminarli in un secondo momento per garantire che il flusso di codice e la scrittura del codice non subiscano interruzioni.  
Per ulteriori informazioni sui riferimenti al codice, consulta [Uso dei riferimenti al codice - Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/code-reference.html) e [AI Coding Assistant - Amazon Q Developer FAQs](https://aws.amazon.com/q/developer/faqs/?refid=255ccf7b-4a76-4dcb-9b07-68709e2b636b#:~:text=Can%20I%20prevent%20Amazon%20Q%20Developer%20from%20recommending%20code%20with%20code%20references%3F).
Amazon Q elabora tutti i dati di interazione degli utenti nella Regione AWS Stati Uniti orientali (Virginia settentrionale). Per ulteriori informazioni su come Amazon Q elabora i dati e sulle Regioni AWS che supporta, consulta [Regioni supportate per Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/regions.html).
Amazon Q funziona solo con Amazon SageMaker Studio. Non è supportato in Amazon SageMaker Studio Classic.
Sì JupyterLab, Amazon Q funziona con SageMaker AI Distribution Images versione 2.0 e successive. Su Code Editor, Amazon Q funziona con SageMaker AI Distribution Images versione 2.2.1 e successive.
Amazon Q Developer in JupyterLab funziona all'interno dell'estensione AI di Jupyter. Non puoi utilizzare altri modelli 3P all’interno dell’estensione mentre esegui Amazon Q.

## Personalizzazioni di Amazon Q in Amazon SageMaker AI
<a name="q-customizations-in-sagemaker"></a>

Se utilizzi Amazon Q Developer Pro, puoi creare delle *personalizzazioni*. Con le personalizzazioni, Amazon Q Developer fornisce suggerimenti basati sulla codebase della tua azienda. Se crei personalizzazioni in Amazon Q Developer, queste diventano disponibili per l'uso in JupyterLab e Code Editor in Amazon SageMaker Studio. Per ulteriori informazioni sulla configurazione delle personalizzazioni, consulta [Personalizzazione dei suggerimenti](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/customizations.html) nella *Guida per l’utente di Amazon Q Developer*.

# Utilizzo di Amazon Q per accelerare i flussi di lavoro di machine learning
<a name="studio-updated-user-guide-use-amazon-q"></a>

Amazon Q Developer è il tuo partner basato sull’IA per lo sviluppo del machine learning. Con Amazon Q Developer, puoi:
+ Ricevi step-by-step indicazioni sull'uso delle funzionalità di SageMaker intelligenza artificiale indipendentemente o in combinazione con altri AWS servizi.
+ Ottieni codice di esempio per iniziare le tue attività di machine learning come la preparazione dei dati, la formazione, l'inferenza e MLOps.

 Per utilizzare Amazon Q Developer, scegli la **Q** dalla barra di navigazione a sinistra del tuo ambiente JupyterLab o del Code Editor.

Se non vedi l’icona **Q**, il tuo amministratore deve configurarla per te. Per ulteriori informazioni sulla configurazione di Amazon Q Developer, consulta [Configurazione di Amazon Q Developer per i tuoi utenti](studio-updated-amazon-q-admin-guide-set-up.md).

Amazon Q fornisce automaticamente suggerimenti per aiutarti a scrivere il codice. Puoi anche chiedere suggerimenti tramite l’interfaccia della chat.

# Personalizza Amazon Q Developer nelle applicazioni Amazon SageMaker Studio
<a name="q-customizations"></a>

Puoi personalizzare le applicazioni Amazon Q Developer in the JupyterLab e Code Editor in Amazon SageMaker Studio. Quando lo personalizzi, Q Developer fornisce suggerimenti e risposte basati su esempi tratti dalla tua codebase. Se utilizzi Amazon Q Developer Pro, puoi caricare tutte le personalizzazioni che hai creato con quel servizio. 

## Personalizza in JupyterLab
<a name="q-customizations-jupyterlab"></a>

In JupyterLab, puoi caricare tutte le personalizzazioni che hai creato con Amazon Q Developer Pro. Oppure, nel tuo JupyterLab spazio, puoi personalizzare Q Developer localmente con i file che carichi nello spazio.

### Per utilizzare le personalizzazioni create in Amazon Q Developer Pro
<a name="use-q-customizations-jupyterlab"></a>

Quando carichi una personalizzazione, Q Developer fornisce suggerimenti basati sulla codebase che hai utilizzato per creare la personalizzazione. Inoltre, quando utilizzi la chat nel pannello **Amazon Q**, interagisci con la tua personalizzazione.

Per ulteriori informazioni sulla configurazione delle personalizzazioni, consulta [Personalizzazione dei suggerimenti](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/customizations.html) nella *Guida per l’utente di Amazon Q Developer*.

**Per caricare la personalizzazione**

Apri il tuo JupyterLab spazio e completa i seguenti passaggi.

1. Nella barra di stato in basso JupyterLab, scegli **Amazon Q.** Si apre un menu.

1. Nel menu, scegli **Altre funzionalità**. La scheda **Funzionalità di Amazon Q** si apre nell’area di lavoro principale.

1. Nella scheda **Funzionalità di Amazon Q**, in **Seleziona personalizzazione**, scegli la tua personalizzazione Q Developer.

1. Interagisci con la personalizzazione in uno dei seguenti modi:
   + Crea un notebook e scrivi codice al suo interno. Mentre scrivi, Q Developer ti fornisce automaticamente dei suggerimenti inline su misura in base alla tua personalizzazione.
   + Chatta con Q Developer nel pannello **Amazon Q** seguendo questi passaggi:

     1. Nella barra laterale sinistra di JupyterLab, scegli l'icona **Jupyter** AI Chat. Si apre il pannello **Amazon Q.**

     1. Utilizza la finestra di chat **Chiedi ad Amazon Q** per interagire con la personalizzazione.

### Per personalizzare Amazon Q Developer con i file presenti nel tuo JupyterLab spazio
<a name="customize-q-in-jupyterlab"></a>

Nel JupyterLab, puoi personalizzare Q Developer con i file che carichi nel tuo spazio. Quindi, nella chat nel pannello **Amazon Q**, puoi utilizzare un comando per chiedere a Q Developer informazioni su quei file.

Quando personalizzi Q Developer con i file presenti nel tuo spazio, la personalizzazione esiste solo nel tuo spazio. Non puoi caricare la personalizzazione altrove, ad esempio in altri spazi o nella console di Amazon Q Developer.

Puoi personalizzare Q Developer inserendo file JupyterLab se utilizzi Amazon Q Developer Pro o Amazon Q Developer al piano gratuito.

**Per personalizzare in base ai tuoi file**

Apri il tuo JupyterLab spazio e completa i seguenti passaggi.

1. Verifica se il tuo spazio è configurato con il modello di embedding richiesto. Puoi personalizzare Q Developer JupyterLab solo se utilizzi il modello di incorporamento predefinito, che è **CodeSage :: codesage-small**. Per controllare, procedi come descritto di seguito:

   1. **Nella barra laterale sinistra, scegli l'icona Jupyter AI JupyterLab Chat.** Si apre il pannello **Amazon Q.**

   1. Scegli l’icona delle impostazioni nell’angolo in alto a destra del pannello.

   1. **Per il **modello di incorporamento**, se necessario, scegli **CodeSage : codesage-small** e scegli Salva modifiche.**

   1. Scegli l’icona Indietro nell’angolo in alto a destra del pannello. 

1. Per caricare i file con cui personalizzare Q Developer, nel pannello **Browser di file** scegli l’icona **Carica file**.

1. Dopo aver caricato i file, nella finestra di chat **Chiedi ad Amazon Q**, digita `/learn file path/`. Sostituisci *file path/* con il percorso dei tuoi file nel tuo spazio. JupyterLab Quando Amazon Q termina l’elaborazione dei file, lo conferma con un messaggio di chat nel pannello Amazon Q.

1. Per porre a Q Developer una domanda sui tuoi file, digita `/ask` nella finestra di chat e inserisci la domanda dopo il comando. Amazon Q genera una risposta in base ai tuoi file e la visualizza nella chat.

Per ulteriori informazioni sui comandi `/learn` e `/ask`, come le relative opzioni e gli argomenti supportati, consulta [Informazioni sui dati locali](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#learning-about-local-data) nella documentazione per gli utenti di Jupyter AI. Questa pagina spiega come utilizzare i comandi con il chatbot AI di Jupyternaut. JupyterLabin Amazon SageMaker Studio supporta la stessa sintassi dei comandi.

## Personalizzazione nell’Editor di codice
<a name="q-customizations-code-editor"></a>

Se hai creato una personalizzazione in Amazon Q Developer Pro, puoi caricarla nell’Editor di codice. Quindi, quando fornisce i suggerimenti per il codice, Q Developer utilizza la codebase con cui hai creato la personalizzazione. Inoltre, quando utilizzi la chat nel pannello **Amazon Q: chat**, interagisci con la tua personalizzazione.

**Per utilizzare le personalizzazioni create in Amazon Q Developer Pro**

Apri lo spazio dell’Editor di codice e procedi come segue.

1. Nel menu dell’Editor di codice, scegli **Visualizza** e **Quadro di comando**.

1. Nel quadro di comando, inizia a digitare **>Amazon Q: Select Customization** e scegli l’opzione nell’elenco filtrato dei comandi quando viene visualizzata. Il quadro di comando mostra le personalizzazioni di Q Developer.

1. Scegli la personalizzazione.

1. Interagisci con la personalizzazione in uno dei seguenti modi:
   + Crea un file Python o un notebook Jupyter e scrivici del codice. Mentre scrivi, Q Developer ti fornisce automaticamente dei suggerimenti inline su misura in base alla tua personalizzazione.
   + Chatta con Q Developer nel pannello **Amazon Q** seguendo questi passaggi:

     1. Nella barra laterale sinistra dell’Editor di codice, scegli l’icona **Amazon Q**. Si apre il pannello **Amazon Q: chat**.

     1. Utilizza la finestra di chat per interagire con la tua personalizzazione.

Per ulteriori informazioni sulle funzionalità di Q Developer, consulta [Utilizzo di Amazon Q Developer nell’IDE](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/q-in-IDE.html) in *Guida per l’utente di Amazon Q Developer*.

# Panoramica delle app Amazon SageMaker Partner AI
<a name="partner-apps"></a>

Con Amazon SageMaker Partner AI Apps, gli utenti hanno accesso ad applicazioni di sviluppo generative di intelligenza artificiale e machine learning (ML) create, pubblicate e distribuite da fornitori di applicazioni leader del settore. Le app Partner AI sono certificate per funzionare sull'intelligenza artificiale. SageMaker Con le Partner AI Apps, gli utenti possono accelerare e migliorare il modo in cui creano soluzioni basate su modelli di fondazione (FM) e modelli di ML classici senza compromettere la sicurezza dei dati sensibili. I dati rimangono totalmente all’interno della configurazione di sicurezza attendibile e non vengono mai condivisi con terze parti.  

## Come funziona
<a name="partner-apps-how-works"></a>

Le Partner AI Apps sono uno stack di applicazioni completo che include un cluster Amazon Elastic Kubernetes Service e un array di servizi accessori, tra cui Application Load Balancer, Amazon Relational Database Service, bucket Amazon Simple Storage Service, code Amazon Simple Queue Service e cache Redis. 

Queste applicazioni di servizio possono essere condivise tra tutti gli utenti di un dominio SageMaker AI e vengono fornite da un amministratore. Dopo aver fornito l'applicazione acquistando un abbonamento tramite Marketplace AWS, l'amministratore può concedere agli utenti del dominio SageMaker AI le autorizzazioni per accedere all'app Partner AI direttamente da Amazon SageMaker Studio, Amazon SageMaker Unified Studio (anteprima) o utilizzando un URL prefirmato. Per informazioni sull’avvio di un’applicazione da Studio, consulta [Avvia Amazon SageMaker Studio](studio-updated-launch.md). 

La funzionalità Partner AI Apps offre i vantaggi seguenti ad amministratori e utenti.  
+  Gli amministratori utilizzano la console SageMaker AI per sfogliare, scoprire, selezionare e fornire le app Partner AI per l'utilizzo da parte dei loro team di data science e ML. Dopo l'implementazione delle app Partner SageMaker AI, l'IA le esegue in modalità gestita dal servizio. Account AWS Questo riduce in modo significativo il sovraccarico operativo associato alla creazione e al funzionamento di queste applicazioni e contribuisce alla sicurezza e alla privacy dei dati dei clienti. 
+  I data scientist e gli sviluppatori di machine learning possono accedere alle app Partner AI dall'interno del loro ambiente di sviluppo ML in Amazon SageMaker Studio o Amazon SageMaker Unified Studio (anteprima). Possono utilizzare le app Partner AI per analizzare i dati, gli esperimenti e i modelli creati sull' SageMaker IA. Questo riduce al minimo il cambio di contesto e aiuta ad accelerare la creazione di modelli di fondazione e l’introduzione sul mercato di nuove funzionalità di IA generativa. 

## Integrazione con Servizi AWS
<a name="partner-apps-integration"></a>

Partner AI Apps utilizza la configurazione esistente AWS Identity and Access Management (IAM) per l'autorizzazione e l'autenticazione. Di conseguenza, gli utenti non devono fornire credenziali separate per accedere a ciascuna app Partner AI di Amazon SageMaker Studio. Per ulteriori informazioni sull’autorizzazione e l’autenticazione con Partner AI Apps, consulta [Configurazione delle Partner AI Apps](partner-app-onboard.md). 

Partner AI Apps si integra anche con Amazon CloudWatch per fornire monitoraggio e gestione operativi. Dalla Console di gestione AWS, i clienti possono anche sfogliare e ottenere informazioni sulle Partner AI Apps, ad esempio relativamente a funzionalità, esperienza del cliente e prezzi. Per informazioni su Amazon CloudWatch, consulta [How Amazon CloudWatch works](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_architecture.html). 

Le applicazioni di intelligenza artificiale dei partner come Deepchecks supportano l'integrazione con Amazon Bedrock per abilitare funzionalità di valutazione basate su LLM come valutazioni «LLM as a judge» e funzionalità di annotazione automatizzata. Quando l'integrazione con Amazon Bedrock è abilitata, l'app Partner AI utilizza il tuo account Amazon Bedrock gestito dal cliente per accedere ai modelli di base, assicurando che i tuoi dati rimangano all'interno della tua configurazione di sicurezza affidabile. Per ulteriori informazioni sulla configurazione dell'integrazione con Amazon Bedrock, consulta. [Configurazione dell'integrazione con Amazon Bedrock](partner-app-onboard.md#partner-app-onboard-admin-bedrock)

## Tipi supportati 
<a name="partner-apps-supported"></a>

Partner AI Apps supporta i tipi seguenti: 
+ Comet 
+  Deepchecks 
+  Fiddler 
+  Lakera Guard 

 Quando l’amministratore avvia una Partner AI App, deve selezionare la configurazione del cluster di istanze con cui viene avviata la Partner AI App. Questa configurazione è nota come livello della Partner AI App. Il livello di una Partner AI App può corrispondere a uno dei seguenti valori: 
+  `small` 
+  `medium` 
+  `large` 

 Le sezioni seguenti forniscono informazioni su ciascuno dei tipi di Partner AI App e sui valori dei livelli della Partner AI App. 

### Panoramica di Comet
<a name="partner-apps-supported-comet"></a>

 Cometfornisce una piattaforma di valutazione dei end-to-end modelli per gli sviluppatori di intelligenza artificiale, con valutazioni LLM, tracciamento degli esperimenti e monitoraggio della produzione. 

 Consigliamo i seguenti livelli della Partner AI App in base al carico di lavoro: 
+  `small`: consigliato per un massimo di 5 utenti e 20 processi in esecuzione. 
+  `medium`: consigliato per un massimo di 50 utenti e 100 processi in esecuzione. 
+  `large`: consigliato per un massimo di 500 utenti e più di 100 processi in esecuzione. 

**Nota**  
SageMaker L'intelligenza artificiale non supporta la visualizzazione dell'Cometinterfaccia utente come parte dell'output di un notebook Jupyter. 

### Panoramica di Deepchecks
<a name="partner-apps-supported-deepchecks"></a>

Gli sviluppatori di applicazioni di IA e le parti interessate possono utilizzare Deepchecks per convalidare continuamente le applicazioni basate su LLM, comprese le caratteristiche, le metriche delle prestazioni e i potenziali difetti durante l’intero ciclo di vita, dalla pre-implementazione alla sperimentazione interna fino alla produzione. 

 Consigliamo i seguenti livelli della Partner AI App in base alla velocità desiderata per il carico di lavoro: 
+  `small`: elabora 200 token al secondo. 
+  `medium`: elabora 500 token al secondo. 
+  `large`: elabora 1300 token al secondo. 

### Panoramica di Fiddler
<a name="partner-apps-supported-fiddler"></a>

 La piattaforma di osservabilità IA di Fiddler facilita la convalida, il monitoraggio e l’analisi dei modelli di ML in produzione, inclusi i modelli tabulari, di deep learning, di visione artificiale e di elaborazione del linguaggio naturale. 

 Consigliamo i seguenti livelli della Partner AI App in base alla velocità desiderata per il carico di lavoro: 
+  `small`: l’elaborazione di 10 milioni di eventi in 5 modelli, 100 funzionalità e 20 iterazioni richiede circa 53 minuti. 
+  `medium`: l’elaborazione di 10 milioni di eventi in 5 modelli, 100 funzionalità e 20 iterazioni richiede circa 23 minuti. 
+  `large`: l’elaborazione di 10 milioni di eventi in 5 modelli, 100 funzionalità e 100 iterazioni richiede circa 27 minuti. 

### Panoramica di Lakera Guard
<a name="partner-apps-supported-lakera-guard"></a>

 Lakera Guard è un firewall per applicazioni di IA a bassa latenza per proteggere le applicazioni di IA generativa dalle minacce specifiche dell’IA generativa. 

 Consigliamo i seguenti livelli della Partner AI App in base al carico di lavoro: 
+  `small`— Consigliato per un massimo di 20 automazioni di processo robotiche (). RPAs 
+  `medium`— Consigliato per un massimo di 100 persone. RPAs 
+  `large`— Consigliato per un massimo di 200 persone RPAs. 

# Configurazione delle Partner AI Apps
<a name="partner-app-onboard"></a>

 I seguenti argomenti descrivono le autorizzazioni necessarie per iniziare a utilizzare Amazon SageMaker Partner AI Apps. Le autorizzazioni richieste sono suddivise in due parti, a seconda del livello di autorizzazione dell’utente: 
+  **Autorizzazioni amministrative**: autorizzazioni per gli amministratori che configurano ambienti di sviluppo di Data Scientist e machine learning (ML).
  + Marketplace AWS
  +  Gestione delle Partner AI Apps 
  +  AWS License Manager 
+  **Autorizzazioni utente**: autorizzazioni per Data Scientist e sviluppatori di machine learning. 
  +  Autorizzazione dell'utente 
  +  Propagazione dell’identità 
  +  Accesso tramite SDK 

## Prerequisiti
<a name="partner-app-onboard-prereq"></a>

 Gli amministratori possono completare i prerequisiti seguenti per configurare Partner AI Apps. 
+ (Facoltativo) Effettua l'onboarding su un dominio SageMaker AI. È possibile accedere alle app AI partner direttamente da un dominio SageMaker AI. Per ulteriori informazioni, consulta [Panoramica del dominio Amazon SageMaker AI](gs-studio-onboard.md). 
  + Se utilizzano Partner AI Apps in un dominio SageMaker AI in modalità solo VPC, gli amministratori devono creare un endpoint con il seguente formato per connettersi alle App Partner AI. Per ulteriori informazioni sull’utilizzo di Studio in modalità Solo VPC, consulta [Connect Amazon SageMaker Studio in un VPC a risorse esterne](studio-updated-and-internet-access.md). 

    ```
    aws.sagemaker.region.partner-app
    ```
+ (Facoltativo) Se gli amministratori interagiscono con il dominio utilizzando il, devono inoltre completare i seguenti prerequisiti. AWS CLI

  1.  AWS CLI Aggiornate il file seguendo la procedura descritta in [Installazione](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled) della versione corrente. AWS CLI   

  1. Dal computer locale, esegui `aws configure` e inserisci le credenziali AWS . Per informazioni sulle AWS credenziali, consulta [Comprendere e ottenere le AWS credenziali](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html).

## Autorizzazioni di amministrazione
<a name="partner-app-onboard-admin"></a>

 L'amministratore deve aggiungere le seguenti autorizzazioni per abilitare le app Partner AI in AI. SageMaker 
+  Autorizzazione a completare Marketplace AWS l'abbonamento per Partner AI Apps 
+  Configurazione del ruolo di esecuzione della Partner AI App 

### Marketplace AWS abbonamento per Partner AI Apps
<a name="partner-app-onboard-admin-marketplace"></a>

Gli amministratori devono completare i seguenti passaggi per aggiungere le autorizzazioni per. Marketplace AWS Per informazioni sull'utilizzo Marketplace AWS, consulta [Guida introduttiva come acquirente](https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-getting-started.html) utilizzando. Marketplace AWS

1. Concedi le autorizzazioni per Marketplace AWS. Gli amministratori di Partner AI Apps richiedono queste autorizzazioni per acquistare abbonamenti a Partner AI Apps da. Marketplace AWS Per ottenere l'accesso Marketplace AWS, gli amministratori devono collegare la policy `AWSMarketplaceManageSubscriptions` gestita al ruolo IAM che utilizzano per accedere alla console SageMaker AI e acquistare l'app. Per i dettagli sulla policy `AWSMarketplaceManageSubscriptions` gestita, consulta [Politiche AWS gestite per gli Marketplace AWS acquirenti](https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-security-iam-awsmanpol.html#security-iam-awsmanpol-awsmarketplacemanagesubscriptions). Per informazioni sul collegamento delle policy gestite, consulta [Aggiunta e rimozione di autorizzazioni di identità IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html). 

1. Concedi all' SageMaker IA le autorizzazioni per eseguire operazioni per conto degli amministratori utilizzando altri. Servizi AWS Gli amministratori devono concedere all' SageMaker IA le autorizzazioni per utilizzare questi servizi e le risorse su cui agiscono. La definizione della policy seguente illustra come concedere le autorizzazioni Partner AI Apps richieste. Queste autorizzazioni devono essere aggiunte alle autorizzazioni esistenti per il ruolo di amministratore. Per ulteriori informazioni, consulta [Come utilizzare i ruoli di esecuzione dell' SageMaker IA](sagemaker-roles.md).

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sagemaker:CreatePartnerApp",
                   "sagemaker:DeletePartnerApp",
                   "sagemaker:UpdatePartnerApp",
                   "sagemaker:DescribePartnerApp",
                   "sagemaker:ListPartnerApps",
                   "sagemaker:CreatePartnerAppPresignedUrl",
                   "sagemaker:CreatePartnerApp",
                   "sagemaker:AddTags",
                   "sagemaker:ListTags",
                   "sagemaker:DeleteTags"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "iam:PassRole"
               ],
               "Resource": "arn:aws:iam::*:role/*",
               "Condition": {
                   "StringEquals": {
                        "iam:PassedToService": "sagemaker.amazonaws.com"
                    } 
               }
           }
       ]
   }
   ```

------

### Configurazione del ruolo di esecuzione della Partner AI App
<a name="partner-app-onboard-admin-role"></a>

1. Partner AI Apps richiede un ruolo di esecuzione per interagire con le risorse nell’ Account AWS. Gli amministratori possono creare questo ruolo di esecuzione utilizzando la AWS CLI. La Partner AI App utilizza questo ruolo per completare le azioni relative alla funzionalità della Partner AI App. 

   ```
   aws iam create-role --role-name PartnerAiAppExecutionRole --assume-role-policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": [
             "sagemaker.amazonaws.com"
           ]
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }'
   ```

1.  Crea il ruolo AWS License Manager collegato al servizio seguendo i passaggi descritti in [Creare un ruolo collegato al servizio per License Manager](https://docs.aws.amazon.com/license-manager/latest/userguide/license-manager-role-core.html#create-slr-core).  

1.  Concedi le autorizzazioni alla Partner AI App per accedere allo Strumento di gestione delle licenze dalla AWS CLI. Queste autorizzazioni sono necessarie per accedere alle licenze per la Partner AI App. Questa operazione consente alla Partner AI App di verificare l’accesso alla propria licenza.

   ```
   aws iam put-role-policy --role-name PartnerAiAppExecutionRole --policy-name LicenseManagerPolicy --policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": {
       "Effect": "Allow",
       "Action": [
         "license-manager:CheckoutLicense",
         "license-manager:CheckInLicense",
         "license-manager:ExtendLicenseConsumption",
         "license-manager:GetLicense",
         "license-manager:GetLicenseUsage"
       ],
       "Resource": "*"
     }
   }'
   ```

1.  Se la Partner AI App richiede l’accesso a un bucket Amazon S3, aggiungi le autorizzazioni Amazon S3 al ruolo di esecuzione. Per ulteriori informazioni, consulta [Autorizzazioni necessarie per le operazioni API di Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-policy-actions.html). 

### Configurazione dell'integrazione con Amazon Bedrock
<a name="partner-app-onboard-admin-bedrock"></a>

Le applicazioni di intelligenza artificiale dei partner come Deepchecks supportano l'integrazione con Amazon Bedrock per abilitare funzionalità di valutazione basate su LLM. Quando configurano un'app Partner AI con il supporto Amazon Bedrock, gli amministratori possono specificare quali modelli di base e profili di inferenza sono disponibili per l'uso all'interno dell'applicazione. Se devi aumentare il limite di quota per i tuoi modelli Amazon Bedrock, consulta [Richiedere un aumento delle quote Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas-increase.html).

1. Assicurati che il ruolo di esecuzione dell'app Partner AI disponga delle autorizzazioni Amazon Bedrock richieste. Aggiungi le seguenti autorizzazioni per abilitare l'accesso al modello Amazon Bedrock:

   ```
   aws iam put-role-policy --role-name PartnerAiAppExecutionRole --policy-name BedrockInferencePolicy --policy-document '{
   	   "Version": "2012-10-17",		 	 	 
   	   "Statement": {
   	     "Effect": "Allow",
   	     "Action": [
   	       "bedrock:InvokeModel",
   	       "bedrock:GetFoundationModel",
   	       "bedrock:GetInferenceProfile"
   	     ],
   	     "Resource": "*"
   	   }
   	 }'
   ```

1. Identifica i modelli Amazon Bedrock che la tua organizzazione desidera rendere disponibili all'app Partner AI. Puoi visualizzare i modelli disponibili nella tua regione utilizzando la console Amazon Bedrock. Per informazioni sulla disponibilità dei modelli in tutte le regioni, consulta [Model support by Regione AWS](https://docs.aws.amazon.com/bedrock/latest/userguide/models-regions.html).

1. (Facoltativo) Crea profili di inferenza gestiti dal cliente per il monitoraggio dei costi e la gestione dei modelli. I profili di inferenza ti consentono di monitorare l'utilizzo di Amazon Bedrock in modo specifico per l'app Partner AI e di abilitare l'inferenza tra regioni quando i modelli non sono disponibili nella tua regione attuale. Per ulteriori informazioni, consulta [Utilizzo dei profili di inferenza in Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles.html).

1. Quando crei o aggiorni l'app Partner AI, specifica i modelli e i profili di inferenza consentiti utilizzando l'`CreatePartnerApp`API o. `UpdatePartnerApp` L'app Partner AI sarà in grado di accedere solo ai modelli e ai profili di inferenza che configuri esplicitamente.

**Importante**  
L'utilizzo di Amazon Bedrock tramite Partner AI Apps viene fatturato direttamente all'utente Account AWS utilizzando i prezzi Amazon Bedrock esistenti. I costi dell'infrastruttura dell'app Partner AI sono separati dai costi di inferenza del modello Amazon Bedrock.

#### Deepcontrolla l'integrazione con Amazon Bedrock
<a name="partner-app-onboard-admin-bedrock-deepchecks"></a>

Deepchecks supporta l'integrazione di Amazon Bedrock per funzionalità di valutazione basate su LLM, tra cui:
+ *LLM come valutazione arbitrale*: utilizza i modelli di base per valutare automaticamente i risultati dei modelli in termini di qualità, pertinenza e altri criteri
+ *Annotazione automatizzata: genera etichette e annotazioni* per set di dati utilizzando modelli di base
+ *Analisi del contenuto*: analizza i dati di testo per rilevare distorsioni, tossicità e altre metriche di qualità utilizzando le funzionalità LLM

Per informazioni dettagliate sulle caratteristiche e sulla configurazione di Deepchecks Amazon Bedrock, consulta la documentazione di Deepchecks all'interno dell'applicazione.

## Autorizzazioni degli utenti
<a name="partner-app-onboard-user"></a>

 Dopo aver completato l’impostazione delle autorizzazioni amministrative, gli amministratori devono assicurarsi che gli utenti dispongano delle autorizzazioni necessarie per accedere alle Partner AI Apps.

1. Concedi le autorizzazioni all' SageMaker IA per eseguire operazioni per tuo conto utilizzando altri. Servizi AWS Gli amministratori devono concedere all' SageMaker IA le autorizzazioni per utilizzare questi servizi e le risorse su cui agiscono. Gli amministratori concedono all' SageMaker IA queste autorizzazioni utilizzando un ruolo di esecuzione IAM. Per ulteriori informazioni sui ruoli IAM, consulta [Ruoli IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html). La definizione della policy seguente illustra come concedere le autorizzazioni Partner AI Apps richieste. Questa policy può essere aggiunta al ruolo di esecuzione del profilo utente.  Per ulteriori informazioni, consulta [Come utilizzare i ruoli di esecuzione dell' SageMaker IA](sagemaker-roles.md). 

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sagemaker:DescribePartnerApp",
                   "sagemaker:ListPartnerApps",
                   "sagemaker:CreatePartnerAppPresignedUrl"
               ],
               "Resource": "arn:aws:sagemaker:*:*:partner-app/app-*"
           }
       ]
   }
   ```

------

1.  (Facoltativo) Se avvii Partner AI Apps da Studio, aggiungi la policy di attendibilità `sts:TagSession` al ruolo utilizzato per avviare direttamente Studio o Partner AI Apps come segue. Questo garantisce la corretta propagazione dell’identità.

   ```
   {
       "Effect": "Allow",
       "Principal": {
           "Service": "sagemaker.amazonaws.com"
       },
       "Action": [
                   "sts:AssumeRole",
                   "sts:TagSession"
                ]
   }
   ```

1.  (Facoltativo) Se utilizzi l'SDK di un'app Partner AI per accedere alle funzionalità dell' SageMaker IA, aggiungi la seguente `CallPartnerAppApi` autorizzazione al ruolo utilizzato per eseguire il codice SDK. Se esegui il codice SDK da Studio, aggiungi l’autorizzazione al ruolo di esecuzione di Studio. Se esegui il codice da una posizione diversa da Studio, aggiungi l’autorizzazione al ruolo IAM utilizzato con il notebook. Questo consente all’utente di accedere alla funzionalità della Partner AI App dall’SDK della Partner AI App. 

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Statement1",
               "Effect": "Allow",
               "Action": [
                   "sagemaker:CallPartnerAppApi"
               ],
               "Resource": [
                   "arn:aws:sagemaker:us-east-1:111122223333:partner-app/app"
               ]
           }
       ]
   }
   ```

------

### Gestione dell’autenticazione e dell’autorizzazione degli utenti
<a name="partner-app-onboard-user-auth"></a>

Per fornire l’accesso alla funzionalità Partner AI Apps ai membri del team, gli amministratori devono assicurarsi che l’identità dei propri utenti venga propagata in Partner AI Apps. Questa propagazione garantisce che gli utenti possano accedere correttamente all’interfaccia utente ed eseguire le azioni autorizzate della funzionalità Partner AI Apps. 

 Partner AI Apps supporta le origini di identità seguenti: 
+  AWS IAM Identity Center 
+  Provider di identità esterni () IdPs  
+  Identità basata sulla sessione IAM 

 Le sezioni seguenti forniscono informazioni sulle origini di identità supportate dalla funzionalità Partner AI Apps, oltre a dettagli importanti relativi alle singole origini di identità. 

#### Centro identità IAM
<a name="partner-app-onboard-user-auth-idc"></a>

Se un utente viene autenticato in Studio con il Centro identità IAM e avvia un’applicazione da Studio, il `UserName` del Centro identità IAM viene automaticamente propagato come identità dell’utente per una Partner AI App. Questo non accade se l’utente avvia la Partner AI App direttamente con l’API `CreatePartnerAppPresignedUrl`.

#### Provider di identità esterni (IdPs)
<a name="partner-app-onboard-user-auth-idps"></a>

Se utilizzano SAML per la Account AWS federazione, gli amministratori hanno due opzioni per trasferire l'identità IdP come identità utente per un'app Partner AI. Per informazioni sulla configurazione Account AWS della federazione, consulta [Come configurare SAML 2.0 per la](https://saml-doc.okta.com/SAML_Docs/How-to-Configure-SAML-2.0-for-Amazon-Web-Service) federazione. Account AWS   
+ **Tag principale**: gli amministratori possono configurare l'applicazione IAM Identity Center specifica per IdP per passare le informazioni sull'identità dalla sessione di destinazione utilizzando la AWS sessione `PrincipalTag` con il seguente attributo. `Name` Quando utilizzi SAML, la sessione del ruolo di destinazione utilizza un ruolo IAM. Per utilizzare `PrincipalTag`, gli amministratori devono aggiungere l’autorizzazione `sts:TagSession` a questo ruolo di destinazione, oltre che al ruolo di esecuzione di Studio. Per ulteriori informazioni su `PrincipalTag`, consulta [Configurazione delle asserzioni SAML per la risposta di autenticazione](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_assertions.html#saml_role-session-tags). 

  ```
  https://aws.amazon.com/SAML/Attributes/PrincipalTag:SageMakerPartnerAppUser
  ```
+ **Nome della sessione di destinazione**: gli amministratori possono propagare il nome della sessione di destinazione come identità della Partner AI App. A tale scopo, devono impostare il flag di adesione `EnableIamSessionBasedIdentity` per ciascuna Partner AI App. Per ulteriori informazioni, consulta [`EnableIamSessionBasedIdentity`](#partner-app-onboard-user-iam-session).

#### Identità basata sulla sessione IAM
<a name="partner-app-onboard-user-auth-iam"></a>

**Importante**  
Si sconsiglia di utilizzare questo metodo per gli account di produzione. Per gli account di produzione, utilizza un gestore dell’identità digitale per una maggiore sicurezza.

 SageMaker L'intelligenza artificiale supporta le seguenti opzioni per la propagazione dell'identità quando si utilizza un'identità basata su una sessione IAM. Tutte le opzioni, tranne l'utilizzo di un tag di sessione con AWS STS, richiedono l'impostazione del flag di `EnableIamSessionBasedIdentity` attivazione per ciascuna applicazione. Per ulteriori informazioni, consulta [`EnableIamSessionBasedIdentity`](#partner-app-onboard-user-iam-session).

Durante la propagazione delle identità, l' SageMaker IA verifica se viene utilizzato un tag di AWS STS sessione. Se non ne viene utilizzato uno, l' SageMaker IA propaga il nome utente o il nome di sessione IAM. AWS STS 
+  **AWS STS Tag di sessione**: gli amministratori possono impostare un tag di sessione per la `SageMakerPartnerAppUser` sessione IAM di avvio. Quando gli amministratori avviano un'app Partner AI utilizzando la console SageMaker AI o il AWS CLI, il tag di `SageMakerPartnerAppUser` sessione viene automaticamente passato come identità utente per l'app Partner AI. L’esempio seguente mostra come impostare il tag di sessione `SageMakerPartnerAppUser` utilizzando la AWS CLI. Il valore della chiave viene aggiunto come tag principale.

  ```
  aws sts assume-role \
      --role-arn arn:aws:iam::account:role/iam-role-used-to-launch-partner-ai-app \
      --role-session-name session_name \
      --tags Key=SageMakerPartnerAppUser,Value=user-name
  ```

   Quando concedi agli utenti l’accesso a una Partner AI App con `CreatePartnerAppPresignedUrl`, è consigliabile verificare il valore della chiave `SageMakerPartnerAppUser`. Questo aiuta a prevenire l’accesso involontario alle risorse della Partner AI App. La policy di attendibilità seguente verifica che il tag di sessione corrisponda esattamente all’utente IAM associato. Gli amministratori possono utilizzare qualsiasi tag principale per questo scopo. Deve essere configurato sul ruolo che sta avviando Studio o la Partner AI App.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "RoleTrustPolicyRequireUsernameForSessionName",
              "Effect": "Allow",
              "Action": [
                  "sts:AssumeRole",
                  "sts:TagSession"
              ],
              "Principal": {
                  "AWS": "arn:aws:iam::111122223333:root"
              },
              "Condition": {
                  "StringLike": {
                      "aws:RequestTag/SageMakerPartnerAppUser": "prefix${aws:username}"
                  }
              }
          }
      ]
  }
  ```

------
+  **Utente IAM autenticato**: il nome dell’utente viene propagato automaticamente come utente della Partner AI App. 
+  **AWS STS nome della sessione**: se non è configurato alcun tag di `SageMakerPartnerAppUser` sessione durante l'utilizzo AWS STS, SageMaker AI restituisce un errore quando gli utenti avviano un'app Partner AI. Per evitare questo errore, gli amministratori devono impostare il flag di adesione `EnableIamSessionBasedIdentity` per ciascuna Partner AI App. Per ulteriori informazioni, consulta [`EnableIamSessionBasedIdentity`](#partner-app-onboard-user-iam-session).

   Quando il flag di adesione `EnableIamSessionBasedIdentity` è abilitato, utilizza la [policy di attendibilità del ruolo IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#ck_rolesessionname) per assicurarti che il nome della sessione IAM sia o contenga il nome utente IAM. Questo assicura che gli utenti non ottengano l’accesso fingendosi altri utenti. La policy di attendibilità seguente verifica che il nome della sessione corrisponda esattamente all’utente IAM associato. Gli amministratori possono utilizzare qualsiasi tag principale per questo scopo. Deve essere configurato sul ruolo che sta avviando Studio o la Partner AI App.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "RoleTrustPolicyRequireUsernameForSessionName",
              "Effect": "Allow",
              "Action": "sts:AssumeRole",
              "Principal": {
                  "AWS": "arn:aws:iam::111122223333:root"
              },
              "Condition": {
                  "StringEquals": {
                      "sts:RoleSessionName": "${aws:username}"
                  }
              }
          }
      ]
  }
  ```

------

  Gli amministratori devono anche aggiungere la policy di attendibilità `sts:TagSession` al ruolo che sta avviando Studio o Partner AI Apps. Questo garantisce la corretta propagazione dell’identità.

  ```
  {
      "Effect": "Allow",
      "Principal": {
          "Service": "sagemaker.amazonaws.com"
      },
      "Action": [
                  "sts:AssumeRole",
                  "sts:TagSession"
               ]
  }
  ```

 Dopo aver impostato le credenziali, gli amministratori possono consentire ai propri utenti di accedere a Studio o all'app Partner AI AWS CLI utilizzando rispettivamente le chiamate `CreatePresignedDomainUrl` o le chiamate `CreatePartnerAppPresignedUrl` API.

Gli utenti possono inoltre avviare Studio dalla console SageMaker AI e avviare Partner AI Apps da Studio.

### `EnableIamSessionBasedIdentity`
<a name="partner-app-onboard-user-iam-session"></a>

`EnableIamSessionBasedIdentity` è un flag di adesione. Quando il `EnableIamSessionBasedIdentity` flag è impostato, l' SageMaker IA trasmette le informazioni sulla sessione IAM come identità utente dell'app Partner AI. Per ulteriori informazioni sulle AWS STS sessioni, consulta [Utilizzare credenziali temporanee con AWS le risorse](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html).

### Controllo accessi
<a name="partner-app-onboard-user-access"></a>

 Per controllare l’accesso alla funzionalità Partner AI Apps, utilizza una policy IAM collegata al ruolo di esecuzione del profilo utente. Per avviare un'app Partner AI direttamente da Studio o utilizzando il AWS CLI, il ruolo di esecuzione del profilo utente deve avere una politica che fornisca le autorizzazioni per l'`CreatePartnerAppPresignedUrl`API. Rimuovi questa autorizzazione dal ruolo di esecuzione del profilo utente per assicurarti che non possa avviare Partner AI Apps. 

### Utenti amministratori root
<a name="partner-app-onboard-user-root"></a>

 Le Partner AI Apps Comet e Fiddler richiedono almeno un utente amministratore root. Gli utenti amministratore root dispongono delle autorizzazioni per aggiungere utenti normali e amministratori e per gestire le risorse. I nomi utente forniti come utenti amministratori root devono essere coerenti con i nomi utente dell’origine di identità. 

 Sebbene gli utenti amministratore root siano permanenti nell' SageMaker AI, gli utenti amministratori normali non lo sono ed esistono solo all'interno dell'app Partner AI fino alla chiusura dell'app Partner AI. 

 Gli amministratori possono aggiornare gli utenti amministratori root utilizzando la chiamata API `UpdatePartnerApp`. Quando gli utenti amministratori root vengono aggiornati, il loro elenco aggiornato viene passato alla Partner AI App. La Partner AI App assicura che a tutti i nomi utente nell’elenco vengano concessi i privilegi di amministratore root. Se un utente amministratore root viene rimosso dall’elenco, l’utente mantiene comunque le normali autorizzazioni di amministratore fino a quando:
+ L’utente viene rimosso dall’applicazione.
+ Un altro utente amministratore revoca le autorizzazioni di amministratore per l’utente.

**Nota**  
Fiddler non supporta l’aggiornamento degli utenti amministratori. Comet supporta solo gli aggiornamenti per gli utenti amministratori root.  

 Per eliminare un utente amministratore root, devi prima aggiornare il relativo elenco con l’API `UpdatePartnerApp`. Quindi, rimuovi o revoca le autorizzazioni di amministratore tramite l’interfaccia utente della Partner AI App.

 Se rimuovi un utente amministratore root dall’interfaccia utente della Partner AI App senza aggiornare l’elenco degli utenti amministratori root con l’API `UpdatePartnerApp`, la modifica sarà temporanea. Quando SageMaker AI invia la successiva richiesta di aggiornamento dell'app Partner SageMaker AI, l'IA invia l'elenco degli amministratori principali che include ancora l'utente all'app Partner AI. Questo sostituisce l’eliminazione completata dall’interfaccia utente della Partner AI App. 

# Provisioning della Partner AI App
<a name="partner-apps-provision"></a>

Dopo aver configurato le autorizzazioni richieste, gli amministratori possono esplorare e fornire le app Amazon SageMaker Partner AI per gli utenti del dominio.

Gli amministratori possono visualizzare tutte le app Partner AI disponibili, nonché le app Partner AI che hanno fornito dalla console [Amazon SageMaker ](https://console.aws.amazon.com/sagemaker/) AI. Nella pagina **Partner AI Apps**, gli amministratori possono visualizzare i dettagli sul modello di prezzo per ciascuna Partner AI App e renderla disponibile agli utenti. Gli amministratori possono renderle disponibili accedendo all'app Partner AI per Marketplace AWS abbonarsi.

 Gli amministratori possono allocare nuove app dalla pagina Partner AI Apps. Possono anche visualizzare le Partner AI Apps già allocate dalla scheda **Le mie app**.

**Nota**  
Le applicazioni allocate dagli amministratori sono accessibili a tutti gli utenti a cui gli amministratori concedono le autorizzazioni appropriate in un Account AWS. Le Partner AI Apps non sono limitate a un dominio o a un utente specifico.

## Status
<a name="partner-apps-provision-status"></a>

 Quando gli amministratori visualizzano una Partner AI App che hanno allocato, possono anche vedere lo stato dell’applicazione con uno dei seguenti valori.
+  **Implementata**: l’applicazione è pronta per essere utilizzata. Gli amministratori possono aggiornare la configurazione dell’applicazione ed eliminare l’applicazione.
+ **Errore**: si è verificato un problema con l’implementazione dell’applicazione. Gli amministratori possono risolvere il problema e configurare nuovamente l’applicazione per implementarla.
+ **Non implementata**: l’applicazione dispone di un abbonamento valido, ma non è stata implementata. Gli amministratori possono configurare l’applicazione per implementarla.

## Opzioni
<a name="partner-apps-provision-options"></a>

 Quando gli amministratori configurano un’applicazione, possono decidere le seguenti opzioni: 
+  **Nome dell’app**: un nome univoco per l’applicazione. 
+  **Pianificazione della manutenzione delle app**: le Partner AI Apps vengono sottoposte a manutenzione a cadenza settimanale. Con questa opzione, gli amministratori scelgono sia il giorno della settimana che l’ora in cui eseguire la manutenzione. 
+  **Propagazione dell'identità STS**: utilizzate questa opzione per passare il nome della sessione IAM del programma di avvio AWS Security Token Service (AWS STS) come identità utente dell'app Partner AI. Per ulteriori informazioni, consulta [Configurazione delle Partner AI Apps](partner-app-onboard.md). 
+  **Gestione amministrativa**: alcune Partner AI Apps supportano l’aggiunta di un massimo di cinque amministratori con pieni diritti di gestione della funzionalità delle Partner AI Apps. Questo vale solo per Comet e Fiddler. Per ulteriori informazioni, consulta [Configurazione delle Partner AI Apps](partner-app-onboard.md). 
+  **Ruolo di esecuzione**: il ruolo utilizzato dalla Partner AI App per accedere alle risorse ed eseguire azioni. Per ulteriori informazioni, consulta [Configurazione delle Partner AI Apps](partner-app-onboard.md). 
+  **Versione dell’app**: la versione della Partner AI App che gli amministratori desiderano utilizzare.  
+  **Selezione del livello**: il livello di implementazione dell’infrastruttura per la Partner AI App. La dimensione del livello influisce sulla velocità e sulle funzionalità dell’applicazione. Per ulteriori informazioni, consulta [Configurazione delle Partner AI Apps](partner-app-onboard.md). 
+  **Policy di bucket Lakera S3**: è richiesta solo dall’app Lakera-guard per accedere a un bucket Amazon S3.

# Configura le app Amazon SageMaker Partner AI SDKs
<a name="partner-apps-sdk"></a>

 Il seguente argomento descrive il processo necessario per installare e utilizzare l'applicazione specifica SDKs con SageMaker Amazon Partner AI Apps. Per l'installazione e l'utilizzo SDKs per le applicazioni, devi specificare le variabili di ambiente specifiche per Partner AI Apps, in modo che l'SDK dell'applicazione possa rilevare le variabili di ambiente e attivare l'autorizzazione. Le sezioni seguenti forniscono informazioni sulle fasi necessarie per completare questa operazione per ciascuno dei tipi di applicazioni supportati. 

## Comet
<a name="partner-apps-sdk-comet"></a>

 Comet offre due prodotti: 
+  Opik è un framework di valutazione LLM open source. 
+  La piattaforma di ML di Comet può essere utilizzata per tracciare, confrontare, spiegare e ottimizzare i modelli durante l’intero ciclo di vita di ML. 

Comet ne supporta l'uso di due diverse SDKs in base al prodotto con cui si interagisce. Completa la seguente procedura per installare e utilizzare Comet o Opik. SDKs Per ulteriori informazioni su Comet SDK, consulta [Quickstart](https://www.comet.com/docs/v2/guides/quickstart/). Per ulteriori informazioni su Opik SDK, consulta [Open source LLM evaluation framework](https://github.com/comet-ml/opik).

1. Avvia l'ambiente in cui stai utilizzando Comet o Opik SDKs con Partner AI Apps. Per informazioni sull'avvio di un'JupyterLab applicazione, consulta. [Creazione di uno spazio](studio-updated-jl-user-guide-create-space.md) Per informazioni sull’avvio di un’applicazione dell’Editor di codice, basato su Code-OSS, Visual Studio Code - Open Source, consulta [Avvio di un’applicazione Editor di codice in Studio](code-editor-use-studio.md).

1.  Avvia un notebook Jupyter o uno spazio dell’Editor di codice. 

1.  Dall'ambiente di sviluppo, installa le versioni compatibili di Comet, Opik e Python SageMaker SDK. Per essere compatibile: 
   +  La versione SageMaker Python SDK deve essere almeno. `2.237.0`
   +  La versione di Comet SDK deve essere la versione più recente.
   +  La versione di Opik SDK deve corrispondere alla versione utilizzata dall’applicazione Opik. Verifica la versione di Opik utilizzata nell’interfaccia utente dell’applicazione web Opik. L’unica eccezione riguarda Opik SDK, la cui versione deve essere almeno `1.2.0` quando la versione dell’applicazione Opik è `1.1.5`.
**Nota**  
SageMaker JupyterLab viene fornito con SageMaker Python SDK installato. Tuttavia, potrebbe essere necessario aggiornare SageMaker Python SDK se la versione è precedente a. `2.237.0`

   ```
   %pip install sagemaker>=2.237.0 comet_ml
   
   ##or
   
   %pip install sagemaker>=2.237.0 opik=<compatible-version>
   ```

1.  Imposta le variabili di ambiente seguenti per l’ARN della risorsa dell’applicazione. Queste variabili di ambiente vengono utilizzate per comunicare con Comet e Opik. SDKs Per recuperare questi valori, vai alla pagina dei dettagli dell'applicazione in Amazon SageMaker Studio.

   ```
   os.environ['AWS_PARTNER_APP_AUTH'] = 'true'
   os.environ['AWS_PARTNER_APP_ARN'] = '<partner-app-ARN>'
   ```

1.  Per l’applicazione Comet, l’URL dell’SDK viene incluso automaticamente come parte della chiave API impostata nella fase successiva. Puoi invece impostare la variabile di ambiente `COMET_URL_OVERRIDE` per sostituire manualmente l’URL dell’SDK.

   ```
   os.environ['COMET_URL_OVERRIDE'] = '<comet-url>'
   ```

1.  Per l’applicazione Opik, l’URL dell’SDK viene incluso automaticamente come parte della chiave API impostata nella fase successiva. Puoi invece impostare la variabile di ambiente `OPIK_URL_OVERRIDE` per sostituire manualmente l’URL dell’SDK. Per ottenere il nome dello spazio di lavoro Opik, consulta l’applicazione Opik e vai allo spazio di lavoro dell’utente.

   ```
   os.environ['OPIK_URL_OVERRIDE'] = '<opik-url>'
   os.environ['OPIK_WORKSPACE'] = '<workspace-name>'
   ```

1.  Imposta la variabile di ambiente che identifica la chiave API per Comet o Opik. Viene utilizzato per verificare la connessione dall' SageMaker applicazione quando si utilizzano Comet e Opik SDKs . Questa chiave API è specifica dell'applicazione e non è gestita da. SageMaker Per ottenere questa chiave, è necessario accedere all'applicazione e recuperare la chiave API. La chiave API di Opik uguale a quella di Comet.

   ```
   os.environ['COMET_API_KEY'] = '<API-key>'
   os.environ["OPIK_API_KEY"] = os.environ["COMET_API_KEY"]
   ```

## Fiddler
<a name="partner-apps-sdk-fiddler"></a>

 Completa la procedura seguente per installare e utilizzare il client Fiddler per Python. Per informazioni sul client Fiddler per Python, consulta [About Client 3.x](https://docs.fiddler.ai/python-client-3-x/about-client-3x). 

1.  Avvia l'ambiente notebook in cui stai utilizzando il Fiddler Python Client con le app AI dei partner. Per informazioni sull'avvio di un'JupyterLab applicazione, consulta. [Creazione di uno spazio](studio-updated-jl-user-guide-create-space.md) Per informazioni sull’avvio di un’applicazione dell’Editor di codice, basato su Code-OSS, Visual Studio Code - Open Source, consulta [Avvio di un’applicazione Editor di codice in Studio](code-editor-use-studio.md).

1.  Avvia un notebook Jupyter o uno spazio dell’Editor di codice. 

1.  Dall'ambiente di sviluppo, installa le versioni Fiddler Python Client e Python SDK. SageMaker Per essere compatibile: 
   +  La versione SageMaker Python SDK deve essere almeno. `2.237.0` 
   +  La versione del client Fiddler per Python deve essere compatibile con la versione di Fiddler utilizzata nell’applicazione. Dopo aver verificato la versione di Fiddler dall’interfaccia utente, consulta la [matrice di compatibilità](https://docs.fiddler.ai/history/compatibility-matrix) Fiddler per scoprire la versione compatibile del client Fiddler per Python. 
**Nota**  
SageMaker JupyterLab viene fornito con SageMaker Python SDK installato. Tuttavia, potrebbe essere necessario aggiornare SageMaker Python SDK se la versione è precedente a. `2.237.0` 

   ```
   %pip install sagemaker>=2.237.0 fiddler-client=<compatible-version>
   ```

1.  Imposta le variabili di ambiente seguenti per l’ARN della risorsa dell’applicazione e per l’URL dell’SDK. Queste variabili di ambiente vengono utilizzate per comunicare con il client Fiddler per Python. Per recuperare questi valori, vai alla pagina dei dettagli dell'applicazione Fiddler in Amazon Studio. SageMaker    

   ```
   os.environ['AWS_PARTNER_APP_AUTH'] = 'true'
   os.environ['AWS_PARTNER_APP_ARN'] = '<partner-app-ARN>'
   os.environ['AWS_PARTNER_APP_URL'] = '<partner-app-URL>'
   ```

1.  Imposta la variabile di ambiente che identifica la chiave API per l’applicazione Fiddler. Viene utilizzato per verificare la connessione dall' SageMaker applicazione Fiddler quando viene utilizzato il Fiddler Python Client. Questa chiave API è specifica dell'applicazione e non è gestita da. SageMaker Per ottenere questa chiave, devi accedere all'applicazione Fiddler e recuperare la chiave API. 

   ```
   os.environ['FIDDLER_KEY'] = '<API-key>'
   ```

## Deepchecks
<a name="partner-apps-sdk-deepchecks"></a>

 Completa la procedura seguente per installare e utilizzare Deepchecks Python SDK. 

1.  Avvia l’ambiente notebook in cui stai utilizzando Deepchecks Python SDK con Partner AI Apps. Per informazioni sull'avvio di un'JupyterLab applicazione, consulta. [Creazione di uno spazio](studio-updated-jl-user-guide-create-space.md) Per informazioni sull’avvio di un’applicazione dell’Editor di codice, basato su Code-OSS, Visual Studio Code - Open Source, consulta [Avvio di un’applicazione Editor di codice in Studio](code-editor-use-studio.md).

1.  Avvia un notebook Jupyter o uno spazio dell’Editor di codice. 

1.  Dall'ambiente di sviluppo, installa le versioni compatibili Deepchecks Python SDK SageMaker e Python SDK.  Partner AI Apps esegue la versione `0.21.15` di Deepchecks. Per essere compatibile: 
   +  La versione SageMaker Python SDK deve essere almeno. `2.237.0` 
   +  Deepchecks Python SDK deve utilizzare la versione secondaria `0.21`. 
**Nota**  
SageMaker JupyterLab viene fornito con SageMaker Python SDK installato. Tuttavia, potrebbe essere necessario aggiornare SageMaker Python SDK se la versione è precedente a. `2.237.0` 

   ```
   %pip install sagemaker>=2.237.0 deepchecks-llm-client>=0.21,<0.22
   ```

1.  Imposta le variabili di ambiente seguenti per l’ARN della risorsa dell’applicazione e per l’URL dell’SDK. Queste variabili di ambiente vengono utilizzate per comunicare con Deepchecks Python SDK. Per recuperare questi valori, vai alla pagina dei dettagli dell'applicazione in Amazon SageMaker Studio.   

   ```
   os.environ['AWS_PARTNER_APP_AUTH'] = 'true'
   os.environ['AWS_PARTNER_APP_ARN'] = '<partner-app-ARN>'
   os.environ['AWS_PARTNER_APP_URL'] = '<partner-app-URL>'
   ```

1.  Imposta la variabile di ambiente che identifica la chiave API per l’applicazione Deepchecks. Viene utilizzato per verificare la connessione dall' SageMaker applicazione Deepchecks quando viene utilizzato Deepchecks Python SDK. Questa chiave API è specifica dell'applicazione e non è gestita da. SageMaker Per ottenere questa chiave, vedi [Configurazione: installazione di Python SDK e recupero delle chiavi API](https://llmdocs.deepchecks.com/docs/setup-sdk-installation-api-key#generate-an-api-key-via-the-ui). 

   ```
   os.environ['DEEPCHECKS_API_KEY'] = '<API-key>'
   ```

## Lakera
<a name="partner-apps-sdk-lakera"></a>

 Lakera non offre un SDK. Tuttavia, puoi interagire con l’API Lakera Guard tramite richieste HTTP agli endpoint disponibili in qualsiasi linguaggio di programmazione. Per ulteriori informazioni, consulta [Lakera Guard API](https://platform.lakera.ai/docs/api). 

 Per utilizzare l'SDK SageMaker Python con Lakera, completa i seguenti passaggi: 

1.  Avvia l’ambiente in cui stai utilizzando Partner AI Apps. Per informazioni sul lancio di un'JupyterLab applicazione, consulta. [Creazione di uno spazio](studio-updated-jl-user-guide-create-space.md) Per informazioni sull’avvio di un’applicazione dell’Editor di codice, basato su Code-OSS, Visual Studio Code - Open Source, consulta [Avvio di un’applicazione Editor di codice in Studio](code-editor-use-studio.md).

1.  Avvia un notebook Jupyter o uno spazio dell’Editor di codice. 

1.  Dall'ambiente di sviluppo, installa la versione compatibile di SageMaker Python SDK. La versione di SageMaker Python SDK deve essere almeno `2.237.0` 
**Nota**  
SageMaker JupyterLab viene fornito con SageMaker Python SDK installato. Tuttavia, potrebbe essere necessario aggiornare SageMaker Python SDK se la versione è precedente a. `2.237.0` 

   ```
   %pip install sagemaker>=2.237.0
   ```

1.  Imposta le variabili di ambiente seguenti per l’ARN della risorsa dell’applicazione e per l’URL dell’SDK. Per recuperare questi valori, vai alla pagina dei dettagli dell'applicazione in Amazon SageMaker Studio. 

   ```
   os.environ['AWS_PARTNER_APP_ARN'] = '<partner-app-ARN>'
   os.environ['AWS_PARTNER_APP_URL'] = '<partner-app-URL>'
   ```

# Partner AI Apps in Studio
<a name="partner-apps-studio"></a>

 Dopo che l'amministratore ha aggiunto le autorizzazioni richieste e gli utenti autorizzati, gli utenti possono visualizzare l'app Amazon SageMaker Partner AI in Amazon SageMaker Studio. Da Studio, gli utenti possono avviare e utilizzare le app approvate dall’amministratore.

## Navigazione e selezione
<a name="partner-apps-studio-browse"></a>

 Per sfogliare le Partner AI Apps disponibili, gli utenti devono accedere a Studio. Per informazioni su come avviare Studio, consulta [Avvia Amazon SageMaker Studio](studio-updated-launch.md).

 Dopo aver avviato Studio, gli utenti possono visualizzare tutte le Partner AI Apps disponibili selezionando la sezione **Partner AI Apps** nel menu di navigazione a sinistra. La pagina **Partner AI Apps** elenca tutte le Partner AI Apps e specifica se le Partner AI App sono state implementate o meno dall’amministratore. Se le app Partner AI desiderate non sono state distribuite, gli utenti possono contattare l'amministratore per richiedere che distribuiscano le app Partner AI da utilizzare nel SageMaker dominio AI.

 Se l’applicazione è stata implementata, gli utenti possono aprire l’interfaccia utente della Partner AI App per iniziare a utilizzarla o per visualizzarne i dettagli.

 Nei dettagli dell’applicazione, gli utenti possono vedere il valore degli elementi seguenti. 
+  ARN: l’ARN della risorsa della Partner AI App.
+  URL SDK: si tratta dell'URL dell'app Partner AI che il Partner AI App SDK utilizza per supportare attività specifiche dell'app, come la registrazione dei dati di tracciamento degli esperimenti su modelli da un notebook in Studio. JupyterLab

Gli utenti possono utilizzare questi valori per scrivere codice che include l’SDK della Partner AI App per attività specifiche dell’app.

La pagina dei dettagli di ogni Partner AI App include un notebook di esempio. Per iniziare, gli utenti possono avviare il notebook di esempio in uno JupyterLab spazio nell'ambiente Studio.

# Usa AWS KMS le autorizzazioni per le app di intelligenza artificiale SageMaker dei partner Amazon
<a name="partner-apps-kms"></a>

Puoi proteggere i tuoi dati inattivi utilizzando la crittografia per Amazon SageMaker Partner AI Apps. Per impostazione predefinita, utilizza la crittografia lato server con una chiave SageMaker proprietaria. SageMaker supporta anche un'opzione per la crittografia lato server con una chiave KMS gestita dal cliente.

## Crittografia lato server con SageMaker chiavi gestite (impostazione predefinita)
<a name="partner-apps-managed-key"></a>

Per impostazione predefinita, le app Partner AI crittografano tutti i dati inattivi utilizzando una chiave AWS gestita.

## Crittografia lato server (SSE) con chiavi KMS gestite dal cliente (facoltativa)
<a name="partner-apps-customer-managed-key"></a>

Le app AI dei partner supportano l'uso di una chiave simmetrica gestita dal cliente che puoi creare, possedere e gestire per sostituire la crittografia di proprietà esistente AWS . Avendo il pieno controllo di questo livello di crittografia, è possibile eseguire operazioni quali:
+ Stabilire e mantenere le policy delle chiavi
+ Stabilire e mantenere le policy e le sovvenzioni IAM
+ Abilitare e disabilitare le policy delle chiavi
+ Ruotare i materiali crittografici delle chiavi
+ Aggiungere tag
+ Creare alias delle chiavi
+ Pianificare l’eliminazione delle chiavi

Per ulteriori informazioni, consulta [Customer managed keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) nella *Guida per sviluppatori AWS Key Management Service *.

## In che modo le app Partner AI utilizzano le sovvenzioni in AWS KMS
<a name="partner-apps-grants-cmk"></a>

Per utilizzare la chiave gestita dal cliente, le Partner AI Apps richiedono una concessione. Quando crei un'applicazione crittografata con una chiave gestita dal cliente, Partner AI Apps crea una concessione per tuo conto inviando una CreateGrant richiesta a AWS KMS. Le sovvenzioni AWS KMS vengono utilizzate per consentire alle app Partner AI di accedere a una chiave KMS in un account cliente.

Puoi revocare l'accesso alla concessione o rimuovere l'accesso del servizio alla chiave gestita dal cliente in qualsiasi momento. In tal caso, la Partner AI App non potrà accedere ad alcuno dei dati crittografati dalla chiave gestita dal cliente, con conseguenze sulle operazioni che dipendono da questi dati. L’applicazione non funzionerà correttamente e non sarà più ripristinabile.

## Creazione di una chiave gestita dal cliente
<a name="partner-apps-create-cmk"></a>

Puoi creare una chiave simmetrica gestita dal cliente utilizzando o il. Console di gestione AWS AWS KMS APIs

**Per creare una chiave simmetrica gestita dal cliente**

Segui le fasi descritte in [Creazione di chiavi KMS simmetriche di crittografia](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) nella *Guida per gli sviluppatori di AWS Key Management Service *.

**Policy della chiave**

Le policy della chiave controllano l’accesso alla chiave gestita dal cliente. Ogni chiave gestita dal cliente deve avere esattamente una policy della chiave, che contiene istruzioni che determinano chi può usare la chiave e come la possono usare. Quando crei la chiave gestita dal cliente, puoi specificare una policy della chiave. Per ulteriori informazioni, consulta [Determining access to AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/determining-access.html) nella *Guida per gli sviluppatori AWS Key Management Service *.

Per utilizzare la chiave gestita dal cliente con le risorse della Partner AI App, è necessario che le seguenti operazioni API siano consentite nella policy della chiave. Il principale di queste operazioni varia a seconda che il ruolo venga utilizzato per creare o utilizzare l’applicazione. 
+ Creazione dell’applicazione:
  + `[kms:CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)`
  + [https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) 
+ Utilizzo dell’applicazione:
  + [https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) 
  + [https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)

Di seguito sono riportati esempi di istruzioni di policy che puoi aggiungere per Partner AI Apps a seconda che l’utente tipo sia un amministratore o un utente. Per ulteriori informazioni su come specificare le autorizzazioni in una policy, consulta [AWS KMS Autorizzazioni](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) nella *AWS Key Management Service Guida per gli sviluppatori*. Per informazioni sulla risoluzione dei problemi, consulta [Troubleshooting key access](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html) nella *AWS Key Management Service Guida per gli sviluppatori*.

**Amministratore**

L’istruzione di policy seguente viene utilizzata per l’amministratore che sta creando Partner AI Apps.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "example-key-policy",
    "Statement": [
        {
            "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/<admin-role>"
            },
            "Action": [
                "kms:CreateGrant",
                "kms:DescribeKey"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "kms:ViaService": "sagemaker.us-east-1.amazonaws.com"
                }
            }
        }
    ]
}
```

------

**Utente**

L’istruzione di policy seguente viene utilizzata per l’utente delle Partner AI Apps.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id":"example-key-policy",
  "Statement":[
    {
      "Effect":"Allow",
      "Principal":{
        "AWS":"arn:aws:iam::111122223333:role/user-role"
      },
      "Action":[
        "kms:Decrypt",
        "kms:GenerateDataKey"
      ],
      "Resource":"*",
      "Condition":{
        "StringEquals":{
          "kms:ViaService":"sagemaker.us-east-1.amazonaws.com"
        }
      }
    }
  ]
}
```

------

# Configurazione della condivisione tra account per le app SageMaker AI dei partner Amazon AI
<a name="partner-app-resource-sharing-ram"></a>

Amazon SageMaker AI si integra con AWS Resource Access Manager (AWS RAM) per consentire la condivisione delle risorse. AWS RAM è un servizio che ti consente di condividere alcune risorse SageMaker AI di Amazon con altri Account AWS o tramite AWS Organizations. Con AWS RAM, condividi le risorse di tua proprietà creando una *condivisione di risorse*. Una condivisione delle risorse specifica le risorse da condividere e gli utenti con cui condividerle. I consumatori possono essere specifici Account AWS all'interno o all'esterno dell'organizzazione in AWS Organizations.

Per ulteriori informazioni in merito AWS RAM, consulta la *[Guida AWS RAM per l'utente](https://docs.aws.amazon.com/ram/latest/userguide/)*.

Questo argomento spiega come condividere le tue risorse e come utilizzare le risorse condivise con te.

**Topics**
+ [Prerequisiti per la condivisione di un'app Amazon SageMaker Partner AI](#partner-app-resource-sharing-ram-prereqs)
+ [Condivisione di un'app Amazon SageMaker Partner AI](#partner-app-resource-sharing-share)
+ [Come accettare gli inviti alla condivisione di risorse](#partner-app-resource-sharing-responses)
+ [Identificazione di un'app Amazon SageMaker Partner AI condivisa](#sharing-identify)
+ [Responsabilità e autorizzazioni per le app Amazon SageMaker Partner AI condivise](#sharing-perms)

## Prerequisiti per la condivisione di un'app Amazon SageMaker Partner AI
<a name="partner-app-resource-sharing-ram-prereqs"></a>
+ Per condividere un'app Amazon SageMaker Partner AI, devi possederla nel tuo Account AWS. Ciò significa che la risorsa deve essere allocata o assegnata all’account. Non puoi condividere un'app Amazon SageMaker Partner AI che è stata condivisa con te.
+ Per condividere un'app Amazon SageMaker Partner AI con la tua organizzazione o un'unità organizzativa in AWS Organizations, devi abilitare la condivisione con AWS Organizations. Per ulteriori informazioni, consulta [ Abilita la condivisione con AWS Organizations](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-orgs) nella *Guida per l'utente AWS RAM *.

## Condivisione di un'app Amazon SageMaker Partner AI
<a name="partner-app-resource-sharing-share"></a>

Per condividere un'app Amazon SageMaker Partner AI, devi aggiungerla a una condivisione di risorse. Una condivisione di risorse è una risorsa AWS RAM che consente di condividere le risorse tra Account AWS. Una condivisione di risorse specifica le risorse da condividere e i consumatori con cui sono condivise. Quando condividi un'app Amazon SageMaker Partner AI utilizzando la [console Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker), la aggiungi a una condivisione di risorse esistente. Per aggiungere l'app Amazon SageMaker Partner AI a una nuova condivisione di risorse, devi prima creare la condivisione di risorse utilizzando la [AWS RAM console](https://console.aws.amazon.com/ram).

Puoi condividere un'app Amazon SageMaker Partner AI di tua proprietà utilizzando la console Amazon SageMaker AI, la AWS RAM console o il AWS CLI.

**Per condividere un'app Amazon SageMaker Partner AI di tua proprietà utilizzando la console Amazon SageMaker AI**

1. Accedi Console di gestione AWS e apri la AWS RAM console da [https://console.aws.amazon.com/ram/casa](https://console.aws.amazon.com/ram/home).

1. Nel riquadro principale, scegli **Crea una condivisione di risorse**.

1. Immetti un nome per la condivisione di risorse da creare.

1. Nella sezione **Risorse**, per **Tipo di risorsa** seleziona **SageMaker AI Partner Apps**. Le Partner Apps che puoi condividere sono visualizzate nella tabella.

1. Seleziona le Partner App da condividere.

1. Se lo desideri, specifica i tag, quindi scegli **Avanti**.

1. Specificate Account AWS con che tipo di app volete condividere le vostre app partner.

1. Controlla la configurazione della condivisione di risorse e seleziona **Crea una condivisione di risorse**. Il servizio potrebbe impiegare alcuni minuti per completare la creazione della condivisione di risorse.

**Per condividere un'app Amazon SageMaker Partner AI di tua proprietà utilizzando la AWS RAM console**  
Consulta [Creazione di una condivisione di risorse](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-create) in *Guida per l'utente di AWS RAM *.

**Per condividere un'app Amazon SageMaker Partner AI di tua proprietà utilizzando il AWS CLI**  
Utilizza il comando [create-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html).

## Come accettare gli inviti alla condivisione di risorse
<a name="partner-app-resource-sharing-responses"></a>

Quando il proprietario di una risorsa configura una condivisione di risorse, ogni consumatore Account AWS riceve un invito a partecipare alla condivisione di risorse. Il consumatore Account AWS deve accettare l'invito per accedere a qualsiasi risorsa condivisa.

Per ulteriori informazioni sull'accettazione di un invito alla condivisione di risorse tramite AWS RAM, vedere [Using shared AWS resources](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-shared.html) nella *AWS Resource Access Manager User Guide*.

## Identificazione di un'app Amazon SageMaker Partner AI condivisa
<a name="sharing-identify"></a>

I proprietari e i consumatori possono identificare le app Amazon SageMaker Partner AI condivise utilizzando la console Amazon SageMaker AI e AWS CLI.

**Per identificare un'app Amazon SageMaker Partner AI condivisa utilizzando la console Amazon SageMaker AI**  
Per informazioni, consulta [Partner AI Apps in Studio](partner-apps-studio.md).

**Per identificare un'app Amazon SageMaker Partner AI condivisa utilizzando il AWS CLI**  
Utilizza il comando [list-partner-apps](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-partner-apps.html). Il comando restituisce le app Amazon SageMaker Partner AI che possiedi e le app Amazon SageMaker Partner AI che sono condivise con te. `OwnerId`mostra l' Account AWS ID del proprietario dell'app Amazon SageMaker Partner AI.

## Responsabilità e autorizzazioni per le app Amazon SageMaker Partner AI condivise
<a name="sharing-perms"></a>

L'account con cui è condivisa un'app Amazon SageMaker Partner AI deve avere la seguente AWS Identity and Access Management politica.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement" : [
    {
      "Sid" : "AmazonSageMakerPartnerListAppsPermission",
      "Effect" : "Allow",
      "Action" : "sagemaker:ListPartnerApps",
      "Resource" : "*"
    },
    {
      "Sid" : "AmazonSageMakerPartnerAppsPermission",
      "Effect" : "Allow",
      "Action" : [
        "sagemaker:CreatePartnerAppPresignedUrl",
        "sagemaker:DescribePartnerApp",
        "sagemaker:CallPartnerAppApi"
      ],
      "Condition" : {
        "StringEquals" : {
          "aws:ResourceAccount" : [
                        "App-owner Account AWS-1", "App-owner Account AWS-2"]        
        }
      },
      "Resource" : "arn:aws:sagemaker:*:*:partner-app/*"
    }
  ]
}
```

------