

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Ambientes de aprendizado de máquina oferecidos pela Amazon SageMaker AI
<a name="machine-learning-environments"></a>

**Importante**  
O Amazon SageMaker Studio e o Amazon SageMaker Studio Classic são dois dos ambientes de aprendizado de máquina que você pode usar para interagir com a SageMaker IA.  
Se seu domínio foi criado depois de 30 de novembro de 2023, o Studio é sua experiência padrão.  
Se seu domínio foi criado antes de 30 de novembro de 2023, o Amazon SageMaker Studio Classic é sua experiência padrão. Para usar o Studio se o Amazon SageMaker Studio Classic for sua experiência padrão, consulte[Migração do Amazon SageMaker Studio Classic](studio-updated-migrate.md).  
Quando você migra do Amazon SageMaker Studio Classic para o Amazon SageMaker Studio, não há perda na disponibilidade dos recursos. O Studio Classic também existe como um IDE no Amazon SageMaker Studio para ajudá-lo a executar seus fluxos de trabalho legados de aprendizado de máquina.

SageMaker A IA oferece suporte aos seguintes ambientes de aprendizado de máquina:
+ *Amazon SageMaker Studio* (recomendado): a mais recente experiência baseada na web para executar fluxos de trabalho de ML com um conjunto de. IDEs O Studio é compatível com os seguintes aplicações:
  + Amazon SageMaker Studio clássico
  + Editor de Código, baseado em Code-OSS, Visual Studio Code - código aberto
  + JupyterLab
  + Amazon SageMaker Canvas
  + RStudio
+ *Amazon SageMaker Studio Classic*: permite criar, treinar, depurar, implantar e monitorar seus modelos de aprendizado de máquina.
+ *Instâncias do Amazon SageMaker Notebook*: permite que você prepare e processe dados, além de treinar e implantar modelos de aprendizado de máquina a partir de uma instância computacional executando o aplicativo Jupyter Notebook.
+ *Amazon SageMaker Studio Lab*: O Studio Lab é um serviço gratuito que oferece acesso a recursos AWS computacionais em um ambiente baseado em código aberto JupyterLab, sem a necessidade de uma AWS conta.
+ *Amazon SageMaker Canvas*: oferece a capacidade de usar o aprendizado de máquina para gerar previsões sem precisar codificar.
+ *Amazon SageMaker geospatial*: oferece a capacidade de criar, treinar e implantar modelos geoespaciais.
+ *RStudio na Amazon SageMaker AI*: RStudio é um IDE para [R](https://aws.amazon.com/blogs/opensource/getting-started-with-r-on-amazon-web-services/), com um console, editor de realce de sintaxe que oferece suporte à execução direta de código e ferramentas para plotagem, histórico, depuração e gerenciamento de espaço de trabalho.
+ *SageMaker HyperPod*: SageMaker HyperPod permite provisionar clusters resilientes para executar cargas de trabalho de aprendizado de máquina (ML) e desenvolver state-of-the-art modelos como modelos de linguagem grande (LLMs), modelos de difusão e modelos básicos (). FMs

Para usar esses ambientes de aprendizado de máquina, você ou o administrador da sua organização devem criar um domínio Amazon SageMaker AI. As exceções são Studio Lab, SageMaker Notebook Instances e. SageMaker HyperPod

Em vez de provisionar recursos manualmente e gerenciar permissões para você e seus usuários, você pode criar um domínio da Amazon DataZone . O processo de criação de um DataZone domínio Amazon cria um domínio Amazon SageMaker AI correspondente com bancos de dados Amazon Redshift AWS Glue ou Amazon Redshift para seus fluxos de trabalho de ETL. Configurar um domínio por meio da Amazon DataZone reduz o tempo necessário para configurar ambientes de SageMaker IA para seus usuários. Para obter mais informações sobre a configuração de um domínio do Amazon SageMaker AI na Amazon DataZone, consulte[Configurar SageMaker ativos (guia do administrador)](sm-assets-set-up.md).

Os usuários dentro do DataZone domínio da Amazon têm permissões para todas as ações da Amazon SageMaker AI, mas suas permissões são limitadas aos recursos dentro do DataZone domínio da Amazon.

A criação de um DataZone domínio da Amazon simplifica a criação de um domínio que permite que seus usuários compartilhem dados e modelos entre si. Para obter informações sobre como eles podem compartilhar dados e modelos, consulte[Acesso controlado aos ativos com o Amazon SageMaker Assets](sm-assets.md).

**Topics**
+ [SageMaker Estúdio Amazon](studio-updated.md)
+ [SageMaker JupyterLab](studio-updated-jl.md)
+ [Instâncias de SageMaker notebook da Amazon](nbi.md)
+ [Laboratório Amazon SageMaker Studio](studio-lab.md)
+ [Amazon SageMaker Canvas](canvas.md)
+ [Capacidades SageMaker geoespaciais da Amazon](geospatial.md)
+ [RStudio na Amazon SageMaker AI](rstudio.md)
+ [Editor de código no Amazon SageMaker Studio](code-editor.md)
+ [Amazon SageMaker HyperPod](sagemaker-hyperpod.md)
+ [IA generativa em ambientes de SageMaker notebook](jupyterai.md)
+ [Amazon Q Developer](studio-updated-amazon-q.md)
+ [Visão geral dos aplicativos Amazon SageMaker Partner AI](partner-apps.md)

# SageMaker Estúdio Amazon
<a name="studio-updated"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da experiência atualizada do Studio. Para obter informações sobre como usar a aplicação do Studio Classic, consulte [Amazon SageMaker Studio clássico](studio.md).

 O Amazon SageMaker Studio é a mais recente experiência baseada na web para executar fluxos de trabalho de ML. O Studio oferece um conjunto de ambientes de desenvolvimento integrados (IDEs). Isso inclui o Code Editor, baseado no Code-OSS, o Visual Studio Code - Open Source, um novo JupyterLab aplicativo RStudio e o Amazon SageMaker Studio Classic. Para obter mais informações, consulte [Aplicativos compatíveis com o Amazon SageMaker Studio](studio-updated-apps.md). 

A nova interface de usuário baseada na web no Studio é mais rápida e fornece acesso a todos os recursos de SageMaker IA, incluindo tarefas e endpoints, em uma única interface. Os profissionais de ML também podem escolher seu IDE preferido para acelerar o desenvolvimento de ML. Um cientista de dados pode usar JupyterLab para explorar dados e ajustar modelos. Além disso, um engenheiro de operações de aprendizado de máquina (MLOps) pode usar o Code Editor com a ferramenta de pipelines no Studio para implantar e monitorar modelos em produção. 

 A experiência anterior do Studio ainda está sendo suportada como Amazon SageMaker Studio Classic. O Studio Classic é a experiência padrão para clientes existentes e está disponível como uma aplicação no Studio. Para obter mais informações sobre status de cluster, consulte [Amazon SageMaker Studio clássico](studio.md). Para obter informações sobre como migrar do Studio Classic para Studio, consulte [Migração do Amazon SageMaker Studio Classic](studio-updated-migrate.md). 

 O Studio oferece os seguintes benefícios: 
+ Um novo JupyterLab aplicativo que tem um tempo de inicialização mais rápido e é mais confiável do que o aplicativo Studio Classic existente. Para obter mais informações, consulte [SageMaker JupyterLab](studio-updated-jl.md).
+ Um conjunto deles IDEs é aberto em uma guia separada, incluindo o novo editor de código, baseado no Code-OSS, Visual Studio Code - aplicativo de código aberto. Os usuários podem interagir com o suporte IDEs em uma experiência de tela cheia. Para obter mais informações, consulte [Aplicativos compatíveis com o Amazon SageMaker Studio](studio-updated-apps.md).
+ Acesso a todos os seus recursos de SageMaker IA em um só lugar. O Studio exibe instâncias em execução em todos os suas aplicações.  
+ Acesso a todos os trabalhos de treinamento em uma única visualização, independentemente de terem sido agendados a partir de notebooks ou iniciados pela Amazon SageMaker JumpStart.
+ Fluxos de trabalho simplificados de implantação de modelos e gerenciamento e monitoramento de endpoints diretamente do Studio. Você não precisa acessar o console de SageMaker IA. 
+ Criação automática de todos as aplicações configurados quando você se integra a um domínio. Para obter informações sobre a integração em um domínio, consulte [Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md).
+ Uma JumpStart experiência aprimorada na qual você pode descobrir, importar, registrar, ajustar e implantar um modelo básico. Para obter mais informações, consulte [SageMaker JumpStart modelos pré-treinados](studio-jumpstart.md).

**Topics**
+ [Inicie o Amazon SageMaker Studio](studio-updated-launch.md)
+ [Visão geral da interface do usuário do Amazon SageMaker Studio](studio-updated-ui.md)
+ [Montagem automática do Amazon EFS no Studio](studio-updated-automount.md)
+ [Encerramento por inatividade](studio-updated-idle-shutdown.md)
+ [Aplicativos compatíveis com o Amazon SageMaker Studio](studio-updated-apps.md)
+ [Conecte seu IDE remoto a SageMaker espaços com acesso remoto](remote-access.md)
+ [Traga sua própria imagem (BYOI)](studio-updated-byoi.md)
+ [Configurações de ciclo de vida no Amazon Studio SageMaker](studio-lifecycle-configurations.md)
+ [Espaços do Amazon SageMaker Studio](studio-updated-spaces.md)
+ [Propagação de identidade confiável com o Studio](trustedidentitypropagation.md)
+ [Executar tarefas de IU](studio-updated-common.md)
+ [NVMe lojas com Amazon SageMaker Studio](studio-updated-nvme.md)
+ [Suporte ao modo local no Amazon SageMaker Studio](studio-updated-local.md)
+ [Visualizar suas instâncias, aplicações e espaços em execução no Studio](studio-updated-running.md)
+ [Interromper e excluir aplicações e espaços em execução no Studio](studio-updated-running-stop.md)
+ [SageMaker Política de suporte de imagem do Studio](sagemaker-distribution.md)
+ [Preços do Amazon SageMaker Studio](studio-updated-cost.md)
+ [Solução de problemas](studio-updated-troubleshooting.md)
+ [Migração do Amazon SageMaker Studio Classic](studio-updated-migrate.md)
+ [Amazon SageMaker Studio clássico](studio.md)

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

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da experiência atualizada do Studio. Para obter informações sobre como usar a aplicação do Studio Classic, consulte [Amazon SageMaker Studio clássico](studio.md).

 Os tópicos desta página demonstram como iniciar o Amazon SageMaker Studio a partir do console Amazon SageMaker AI e do AWS Command Line Interface (AWS CLI). 

**Topics**
+ [Pré-requisitos](#studio-updated-launch-prereq)
+ [Inicie a partir do console Amazon SageMaker AI](#studio-updated-launch-console)
+ [Inicie usando o AWS CLI](#studio-updated-launch-cli)

## Pré-requisitos
<a name="studio-updated-launch-prereq"></a>

 Antes de começar, conclua os seguintes pré-requisitos: 
+ Integre-se a um domínio de SageMaker IA com acesso ao Studio. Caso não tenha permissões para definir o Studio como a experiência padrão do seu domínio, entre em contato com seu administrador. Para obter mais informações, consulte [Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md). 
+ Atualize o AWS CLI seguindo as etapas em [Instalando a AWS CLI versão atual](https://docs.aws.amazon.com//cli/latest/userguide/install-cliv1.html#install-tool-bundled). 
+ Em sua máquina local, execute `aws configure` e forneça suas credenciais da AWS . Para obter informações sobre AWS credenciais, consulte [Entendendo e obtendo suas AWS credenciais](https://docs.aws.amazon.com//general/latest/gr/aws-sec-cred-types.html).

## Inicie a partir do console Amazon SageMaker AI
<a name="studio-updated-launch-console"></a>

Conclua o procedimento a seguir para iniciar o Studio a partir do console Amazon SageMaker AI.

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1.  No painel de navegação à esquerda, escolha Studio. 

1.  Na página inicial do Studio, selecione o domínio e o perfil de usuário para iniciar o Studio. 

1.  Escolha **Abrir Studio**. 

1.  Para iniciar o Studio, escolha **Executar Studio pessoal**. 

## Inicie usando o AWS CLI
<a name="studio-updated-launch-cli"></a>

Esta seção demonstra como iniciar o Studio usando o. AWS CLI O procedimento para acessar o Studio usando o AWS CLI depende se o domínio usa autenticação ou Centro de Identidade do AWS IAM autenticação AWS Identity and Access Management (IAM). Você pode usar o AWS CLI para iniciar o Studio criando um URL de domínio pré-assinado quando seu domínio usa a autenticação do IAM. Para informações sobre como iniciar o Studio com a autenticação do IAM Identity Center, consulte [Use a configuração personalizada para Amazon SageMaker AI](onboard-custom.md). 

### Inicie se o Studio for a experiência padrão
<a name="studio-updated-launch-console-updated"></a>

 O seguinte trecho de código demonstra como executar o Studio a partir do uso AWS CLI de um URL de domínio predefinido se o Studio for a experiência padrão: Para obter mais informações, consulte [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
```

### Inicie se o Amazon SageMaker Studio Classic for sua experiência padrão
<a name="studio-updated-launch-console-classic"></a>

 O trecho de código a seguir demonstra como executar o Studio AWS CLI usando um URL de domínio pré-assinado se o Studio Classic for a experiência padrão. Para obter mais informações, consulte [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::
```

# Visão geral da interface do usuário do Amazon SageMaker Studio
<a name="studio-updated-ui"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da experiência atualizada do Studio. Para obter informações sobre como usar a aplicação do Studio Classic, consulte [Amazon SageMaker Studio clássico](studio.md).

 A interface de usuário do Amazon SageMaker Studio é dividida em três partes distintas. Esta página fornece informações sobre as peças distintas e seus componentes. 
+  **Barra de navegação**: esta seção da interface do usuário inclui o URL, a navegação estrutural, as notificações e as opções do usuário. 
+  **Painel de navegação**: esta seção da interface do usuário inclui uma lista das aplicações compatíveis com o Studio e opções para os principais fluxos de trabalho no Studio. 
+  **Painel de conteúdo:** a área de trabalho principal que exibe a página atual da interface do usuário do Studio que você abriu.

![\[Página inicial do Amazon SageMaker Studio com painel de navegação e painel de conteúdo (área de trabalho principal).\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/monarch/studio-updated-ui.png)


**Topics**
+ [Barra de navegação do Amazon SageMaker Studio](#studio-updated-ui-top)
+ [Painel de navegação do Amazon SageMaker Studio](#studio-updated-ui-left)
+ [Painel de conteúdo do Studio](#studio-updated-ui-working)

## Barra de navegação do Amazon SageMaker Studio
<a name="studio-updated-ui-top"></a>

 A barra de navegação da interface do usuário do Studio inclui o URL, a navegação estrutural, as notificações e as opções do usuário. 

 **Estrutura do URL** 

 O URL do Studio muda à medida que você navega pela interface do usuário. Quando você navega para uma página diferente na interface do usuário, o URL muda para refletir essa página. Com o URL atualizado, você abre qualquer página diretamente na interface do usuário do Studio, sem primeiro navegar até a página de destino. 

 **Navegação estrutural** 

 Conforme você navega pela interface do usuário do Studio, a navegação estrutural acompanha as páginas principais da página atual. Ao escolher uma dessas navegações estruturais, você pode navegar até as páginas principais na interface do usuário. 

 **Notificações** 

 A seção de notificações da interface do usuário fornece informações sobre mudanças importantes no Studio, atualizações nas aplicações e problemas a serem resolvidos. 

 **Opções do usuário** 

Escolha o ícone de opções do usuário (![\[User icon with a circular avatar placeholder and a downward-pointing arrow.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/monarch/user-settings.png)) para obter informações sobre o perfil do usuário que está usando o Studio no momento e dê a opção de sair do Studio.  

## Painel de navegação do Amazon SageMaker Studio
<a name="studio-updated-ui-left"></a>

 **Painel de navegação** 

 O painel de navegação da interface do usuário inclui uma lista das aplicações compatíveis com o Studio. Ele também fornece opções para os principais fluxos de trabalho no Studio. 

 Essa seção da interface do usuário pode ser usada em um estado expandido ou reduzido. Para alterar se a seção está expandida ou contraída, selecione o ícone **Recolher** (![\[Square icon with "ID" text representing an identity or identification concept.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/monarch/collapse-ui.png)). 

 **Aplicativos** 

 A seção Aplicações lista as aplicações que estão disponíveis no Studio. Se você escolher um dos tipos de aplicação, será direcionado para a página inicial desse aplicação. 

 **Fluxos de trabalho** 

 A lista de fluxos de trabalho inclui todas as ações disponíveis que você pode realizar no Studio. Escolha uma das opções para navegar até a página inicial desse fluxo de trabalho. Se houver vários fluxos de trabalho disponíveis para essa opção, a escolha da opção abrirá um menu suspenso onde você poderá selecionar a página inicial desejada. 

 A lista a seguir descreve as opções e fornece um link para obter mais informações. 
+  **Página inicial**: a página de destino principal com uma visão geral, introdução e novidades. 
+  **Instâncias em execução**: todas as instâncias que estão sendo executadas atualmente no Studio. Para obter mais informações, consulte [Visualizar suas instâncias, aplicações e espaços em execução no Studio](studio-updated-running.md). 
+  **Dados**: opções de preparação de dados nas quais você pode colaborar para armazenar, explorar, preparar, transformar e compartilhar seus dados.  
  +  Para obter mais informações sobre o Amazon SageMaker Data Wrangler, consulte. [preparação de dados](canvas-data-prep.md) 
  +  Para obter mais informações sobre a Amazon SageMaker Feature Store, consulte[Criar, armazenar e compartilhar atributos com o arquivo de atributos](feature-store.md). 
  +  Para obter mais informações sobre clusters do Amazon EMR, consulte [Preparação de dados usando o Amazon EMR](studio-notebooks-emr-cluster.md). 
+  **Auto ML**: crie, treine, ajuste e implante modelos de machine learning (ML). Para obter mais informações, consulte [Amazon SageMaker Canvas](canvas.md). 
+  **Experimentos**: crie, gerencie, analise e compare seus experimentos de machine learning usando Amazon SageMaker Experiments. Para obter mais informações, consulte [SageMaker Experiências da Amazon no Studio Classic](experiments.md). 
+  **Trabalhos**: veja os trabalhos criados no Studio.  
  +  Para obter mais informações sobre treinamento, consulte [Treinamento de modelos](train-model.md). 
  +  Para obter informações sobre a avaliação de modelo, consulte [Entenda as opções para avaliar grandes modelos de linguagem com SageMaker o Clarify](clarify-foundation-model-evaluate.md). 
+  **Pipelines** — automatize seu fluxo de trabalho de ML com o Amazon SageMaker Pipelines, que fornece recursos para ajudá-lo a criar, rastrear e gerenciar seus recursos de pipeline. Para obter mais informações, consulte [Pipelines](pipelines.md).
+  **Modelos**: organize seus modelos em grupos e coleções no registro de modelos, onde você pode gerenciar versões de modelos, visualizar metadados e implantar modelos na produção. Para obter mais informações, consulte [Implantação do registro do modelo com o Model Registry](model-registry.md).
+  **JumpStart**— SageMaker JumpStart A Amazon fornece modelos pré-treinados de código aberto para uma ampla variedade de tipos de problemas para ajudar você a começar a usar o aprendizado de máquina. Para obter mais informações, consulte[SageMaker JumpStart modelos pré-treinados](studio-jumpstart.md). 
+  **Implantações**: implante seus modelos de machine learning (ML) para inferência.
  +  Para obter mais informações sobre o Amazon SageMaker Inference Recommender, consulte. [Recomendador de SageMaker inferência da Amazon](inference-recommender.md) 
  +  Para obter mais informações sobre os endpoints, consulte [Implantar modelos para inferência](deploy-model.md). 

## Painel de conteúdo do Studio
<a name="studio-updated-ui-working"></a>

 A área de trabalho principal também é chamada de painel de conteúdo. Ela exibe a página atual da interface do usuário do Studio que você abriu. 

 **Página inicial do Studio** 

 A página inicial do Studio é a página de destino principal na área de trabalho principal. A página inicial inclui duas guias distintas. Há uma guia **Visão geral** e uma guia **Introdução**. 

 **Visão geral** 

 A guia **Visão geral** inclui opções para iniciar espaços para tipos de aplicações amplamente conhecidas, conceitos básicos de soluções pré-criadas e automatizadas para fluxos de trabalho de ML e links para tarefas comuns na interface do usuário do Studio. 

 **Conceitos básicos** 

 A guia **Introdução** inclui informações, orientações e recursos sobre como começar a usar o Studio. Isso inclui uma visita guiada à interface do usuário do Studio, um link para a documentação sobre o Studio e uma seleção de dicas rápidas. 

# Montagem automática do Amazon EFS no Studio
<a name="studio-updated-automount"></a>

 O Amazon SageMaker AI suporta a montagem automática de uma pasta em um volume do Amazon EFS para cada usuário em um domínio. Ao usar esta pasta, os usuários podem compartilhar dados entre seus próprios espaços privados. No entanto, os usuários não podem compartilhar dados com outros usuários no domínio. Os usuários só têm acesso à sua própria pasta. 

 A pasta do usuário pode ser acessada por meio de uma pasta chamada `user-default-efs`. Essa pasta está presente no diretório `$HOME` da aplicação do Studio.

 Para informações sobre como remover a montagem automática do Amazon EFS, consulte [Desativar a montagem automática do Amazon EFS](studio-updated-automount-optout.md). 

 A montagem automática do Amazon EFS também facilita a migração de dados do Studio Classic para o Studio. Para obter mais informações, consulte [(Opcional) Migrar dados do Studio Classic para o Studio](studio-updated-migrate-data.md). 

 **Informações do ponto de acesso** 

 Quando a montagem automática é ativada, a SageMaker IA usa um ponto de acesso do Amazon EFS para facilitar o acesso aos dados no volume do Amazon EFS. Para obter mais informações sobre pontos de acesso, consulte [Trabalhando com pontos de acesso do Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/efs-access-points.html) A SageMaker IA cria um ponto de acesso exclusivo para cada perfil de usuário no domínio durante a criação do perfil do usuário ou durante a criação do aplicativo para um perfil de usuário existente. O valor de usuário POSIX do ponto de acesso corresponde ao `HomeEfsFileSystemUid` valor do perfil de usuário para o qual a SageMaker IA cria o ponto de acesso. Para obter o valor do usuário, consulte [DescribeUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeUserProfile.html#sagemaker-DescribeUserProfile-response-HomeEfsFileSystemUid). O caminho do diretório raiz também é definido com o mesmo valor que o valor do usuário POSIX.  

 SageMaker A IA define as permissões do novo diretório com os seguintes valores: 

 
+  ID de usuário do proprietário: `POSIX user value` 
+  ID do grupo proprietário: `0` 
+  Permissões `700` 

 O ponto de acesso é necessário para acessar o volume do Amazon EFS. Como resultado, você não pode excluir ou atualizar o ponto de acesso sem perder o acesso ao volume do Amazon EFS. 

 **Resolução de erros** 

 Se a SageMaker IA encontrar um problema ao montar automaticamente a pasta de usuário do Amazon EFS durante a criação do aplicativo, o aplicativo ainda será criado. No entanto, nesse caso, a SageMaker IA cria um arquivo chamado `error.txt` em vez de montar a pasta Amazon EFS. Esse arquivo descreve o erro encontrado, bem como as etapas para resolvê-lo. SageMaker O AI cria o `error.txt` arquivo na `user-default-efs` pasta localizada no `$HOME` diretório do aplicativo. 

# Desativar a montagem automática do Amazon EFS
<a name="studio-updated-automount-optout"></a>

 Você pode desativar a montagem automática de pastas de usuário do Amazon EFS pela Amazon SageMaker AI durante a criação do domínio e do perfil do usuário ou para um domínio ou perfil de usuário existente. 

## Optar por não participar durante a criação do domínio
<a name="studio-updated-automount-optout-domain-creation"></a>

 Você pode optar por não usar a montagem automática do Amazon EFS ao criar um domínio usando o console ou a AWS Command Line Interface. 

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

Conclua as etapas a seguir para desativar a montagem automática do Amazon EFS ao criar um domínio a partir do console. 

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1.  Conclua as etapas [Use a configuração personalizada para Amazon SageMaker AI](onboard-custom.md) com a seguinte modificação para configurar um domínio: 
   +  Na etapa **Configurar armazenamento**, desative **Montar automaticamente o armazenamento e os dados do EFS**. 

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

 Use o comando a seguir para desativar a montagem automática do Amazon EFS durante a criação do domínio usando a AWS CLI. Para obter mais informações sobre como criar um domínio usando o AWS CLI, consulte[Use a configuração personalizada para 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"
```

## Optar por não usar um domínio existente
<a name="studio-updated-automount-optout-domain-existing"></a>

 Você pode optar por não usar a montagem automática do Amazon EFS para um domínio existente usando o console ou AWS CLI. 

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

 Conclua as etapas a seguir para desativar a montagem automática do Amazon EFS ao atualizar um domínio a partir do console. 

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1.  Na navegação à esquerda em **Configurações de administração**, escolha **Domínios**. 

1.  Na página **Domínios**, selecione o domínio para o qual você deseja desativar a montagem automática do Amazon EFS. 

1.  Na página de **detalhes do domínio**, selecione a guia **Configurações do domínio**. 

1.  Navegue até a seção **Configuração do sistema de arquivo**. 

1.  Selecione **Editar**. 

1.  Na página **Editar configurações de armazenamento**, desative **Montar automaticamente o armazenamento e os dados do EFS**. 

1.  Selecione **Submit (Enviar)**.

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

 Use o comando a seguir para desativar a montagem automática do Amazon EFS ao atualizar um domínio existente usando a AWS CLI. 

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

## Optar por não participar durante a criação do perfil do usuário
<a name="studio-updated-automount-optout-user-creation"></a>

 Você pode optar por não usar a montagem automática do Amazon EFS ao criar um perfil de usuário usando o console ou a AWS CLI. 

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

 Conclua as etapas a seguir para desativar a montagem automática do Amazon EFS ao criar um perfil de usuário a partir do console. 

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1.  Conclua as etapas [Adicionar perfis de usuário](domain-user-profile-add.md) com a seguinte modificação para criar um perfil de usuário: 
   +  Na etapa **Dados e armazenamento**, desative **Herdar configurações do domínio**. Isso permite que o usuário tenha um valor diferente dos padrões definidos para o domínio.  
   +  Desative a **Montagem automática do armazenamento e dos dados do EFS**. 

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

 Use o comando a seguir para desativar a montagem automática do Amazon EFS durante a criação do perfil de usuário usando a AWS CLI. Para obter mais informações sobre como criar um perfil de usuário usando o AWS CLI, consulte[Adicionar perfis de usuário](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"
```

## Desativar um perfil de usuário existente
<a name="studio-updated-automount-optout-user-existing"></a>

 Você pode optar por não usar a montagem automática do Amazon EFS para um perfil de usuário existente usando o console ou a AWS CLI. 

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

 Conclua as etapas a seguir para desativar a montagem automática do Amazon EFS ao atualizar um perfil de usuário a partir do console. 

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1.  Na navegação à esquerda em **Configurações de administração**, escolha **Domínios**. 

1.  Na página **Domínios**, selecione o domínio que contém o perfil de usuário para o qual você deseja desativar a montagem automática do Amazon EFS. 

1.  Na página **Detalhes de Domínios**, escolha a aba **Perfis de usuário**. 

1.  Selecione o perfil do usuário a ser atualizado. 

1.  Na guia **Detalhes do usuário**, navegue até a seção **AutoMountHomeEFS**. 

1.  Selecione **Editar**. 

1.  Na página **Editar configurações de armazenamento**, desative **Herdar configurações do domínio**. Isso permite que o usuário tenha um valor diferente dos padrões definidos para o domínio.  

1.  Desative a **Montagem automática do armazenamento e dos dados do EFS**. 

1.  Selecione **Submit (Enviar)**. 

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

 Use o comando a seguir para desativar a montagem automática do Amazon EFS ao atualizar um perfil de usuário existente usando a AWS CLI. 

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

# Encerramento por inatividade
<a name="studio-updated-idle-shutdown"></a>

A Amazon SageMaker AI oferece suporte ao encerramento de recursos ociosos para gerenciar custos e evitar custos excessivos devido ao custo acumulado por recursos ociosos e faturáveis. Isso é feito detectando o estado ocioso de uma aplicação e realizando o encerramento da aplicação quando os critérios de inatividade são atendidos. 

SageMaker A IA suporta o desligamento inativo para os seguintes aplicativos. O desligamento inativo deve ser definido para cada tipo de aplicação de forma independente. 
+  JupyterLab 
+  Editor de Código, baseado em Code-OSS, Visual Studio Code - código aberto 

 O desligamento ocioso pode ser definido no nível de domínio ou de perfil de usuário. Quando o encerramento por inatividade é definido no nível do domínio, as configurações de encerramento por inatividade se aplicam a todas as aplicações criadas no domínio. Quando definidas no nível do perfil do usuário, as configurações de encerramento por inatividade se aplicam somente aos usuários específicos para os quais estão definidas. As configurações do perfil do usuário substituem as configurações de domínio.  

**nota**  
O desligamento inativo requer o uso da `SageMaker-distribution` imagem (SMD) com a versão 2.0 ou mais recente. Os domínios que usam uma versão mais antiga do SMD não podem usar o atributo. Em vez disso, esses usuários devem usar uma LCC para gerenciar o desligamento automático. 

## Definição de ociosidade
<a name="studio-updated-idle-shutdown-definition"></a>

 As configurações de desligamento inativo só se aplicam quando a aplicação fica ocioso sem nenhum trabalho em execução. SageMaker A IA não inicia o tempo de desligamento ocioso até que a instância fique ociosa. A definição de ocioso difere dependendo se o tipo de aplicativo é JupyterLab ou Editor de código. 

 Para JupyterLab aplicativos, a instância é considerada ociosa quando as seguintes condições são atendidas: 
+  Nenhuma sessão ativa do kernel Jupyter 
+  Nenhuma sessão ativa do terminal Jupyter 

 Para aplicações de editor de código, a instância é considerada ociosa quando as seguintes condições são atendidas: 
+  Nenhuma alteração no arquivo de texto ou no caderno 
+  Nenhum arquivo sendo visualizado 
+  Sem interação com o terminal

# Configurar o encerramento por inatividade
<a name="studio-updated-idle-shutdown-setup"></a>

 As seções a seguir mostram como configurar o encerramento por inatividade a partir do console ou usando a AWS CLI. O desligamento ocioso pode ser definido no nível de domínio ou de perfil de usuário. 

## Pré-requisitos
<a name="studio-updated-idle-shutdown-setup-prereq"></a>

 Para usar o encerramento por inatividade com sua aplicação, conclua os pré-requisitos a seguir. 
+ Certifique-se de que seu aplicativo esteja usando a versão 2.0 de SageMaker distribuição (SMD). Você pode selecionar essa versão durante a criação da aplicação ou atualizar a versão da imagem da aplicação após a criação. Para obter mais informações, consulte [Atualizar a imagem SageMaker de distribuição](studio-updated-jl-update-distribution-image.md). 
+ Para aplicativos criados com imagens personalizadas, o desligamento inativo é suportado se sua imagem personalizada for criada com SageMaker Distribuição (SMD) versão 2.0 ou posterior como imagem base. Se a imagem personalizada for criada com uma imagem base diferente, você deverá instalar a extensão [jupyter-activity-monitor-extension >= 0.3.1](https://anaconda.org/conda-forge/jupyter-activity-monitor-extension) na imagem e anexar a imagem ao seu domínio Amazon SageMaker AI para JupyterLab aplicativos. Para ter mais informações sobre imagens personalizadas, consulte [Traga sua própria imagem (BYOI)](studio-updated-byoi.md).

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

 As seções a seguir mostram como ativar o encerramento por inatividade no console. 

### Adicionar ao criar um novo domínio
<a name="studio-updated-idle-shutdown-setup-console-new-domain"></a>

1. Crie um domínio seguindo as etapas em [Use a configuração personalizada para Amazon SageMaker AI](onboard-custom.md). 

1.  Ao definir as configurações do aplicativo no domínio, navegue até o Editor de código ou a JupyterLab seção.  

1.  Selecione **Ativar encerramento por inatividade**. 

1.  Insira um tempo de encerramento por inatividade padrão em minutos. Esse valor é assumido como padrão `10,080` se nenhum valor for inserido. 

1.  (Opcional) Selecione **Permitir que os usuários definam um tempo de encerramento por inatividade personalizado para permitir que os usuários modifiquem o tempo** de encerramento por inatividade. 
   +  Insira um valor máximo para o qual os usuários possam definir o tempo de encerramento por inatividade padrão. Você deve inserir um valor máximo. O valor mínimo é definido pela Amazon SageMaker AI e deve ser`60`. 

### Adicionar a um domínio existente
<a name="studio-updated-idle-shutdown-setup-console-existing-domain"></a>

**nota**  
Se o encerramento por inatividade for definido quando as aplicações estiverem em execução, elas deverão ser reiniciadas para que as configurações de encerramento por inatividade entrem em vigor. 

1.  Navegue até o domínio. 

1.  Escolha a guia **Configurações da aplicação**. 

1.  Na guia **Configurações do aplicativo**, navegue até o Editor de código ou a JupyterLab seção. 

1.  Selecione **Editar**. 

1.  Selecione **Ativar encerramento por inatividade**. 

1.  Insira um tempo de encerramento por inatividade padrão em minutos. Esse valor é assumido como padrão `10,080` se nenhum valor for inserido. 

1.  (Opcional) Selecione **Permitir que os usuários definam um tempo de encerramento por inatividade personalizado para permitir que os usuários modifiquem o tempo** de encerramento por inatividade. 
   +  Insira um valor máximo para o qual os usuários possam definir o tempo de encerramento por inatividade padrão. Você deve inserir um valor máximo. O valor mínimo é definido pela Amazon SageMaker AI e deve ser`60`. 

1.  Selecione **Submit (Enviar)**. 

### Adicionar ao criar um novo perfil de usuário
<a name="studio-updated-idle-shutdown-setup-console-new-userprofile"></a>

1. Adicione um perfil de usuário seguindo as etapas em [Adicionar perfis de usuário](domain-user-profile-add.md) 

1.  Ao definir as configurações do aplicativo para o perfil do usuário, navegue até o Editor de código ou a JupyterLab seção. 

1.  Selecione **Ativar encerramento por inatividade**. 

1.  Insira um tempo de encerramento por inatividade padrão em minutos. Esse valor é assumido como padrão `10,080` se nenhum valor for inserido. 

1.  (Opcional) Selecione **Permitir que os usuários definam um tempo de encerramento por inatividade personalizado para permitir que os usuários modifiquem o tempo** de encerramento por inatividade. 
   +  Insira um valor máximo para o qual os usuários possam definir o tempo de encerramento por inatividade padrão. Você deve inserir um valor máximo. O valor mínimo é definido pela Amazon SageMaker AI e deve ser`60`. 

1.  Escolha “Salvar alterações”. 

### Adicionar a um perfil de usuário existente
<a name="studio-updated-idle-shutdown-setup-console-existing-userprofile"></a>

 Nota: se o encerramento por inatividade for definido quando as aplicações estiverem em execução, eles deverão ser reiniciados para que as configurações de encerramento por inatividade entrem em vigor. 

1.  Navegue até o perfil do usuário. 

1.  Escolha a guia **Configurações da aplicação**. 

1.  Na guia ****Configurações do aplicativo****, navegue até o Editor de código ou a JupyterLab seção.  

1.  Selecione **Editar**. 

1.  As configurações de desligamento inativo mostrarão as configurações do domínio por padrão, se configuradas para o domínio. 

1.  Selecione **Ativar encerramento por inatividade**. 

1.  Insira um tempo de encerramento por inatividade padrão em minutos. Esse valor é assumido como padrão `10,080` se nenhum valor for inserido. 

1.  (Opcional) Selecione **Permitir que os usuários definam um tempo de encerramento por inatividade personalizado para permitir que os usuários modifiquem o tempo** de encerramento por inatividade. 
   +  Insira um valor máximo para o qual os usuários possam definir o tempo de encerramento por inatividade padrão. Você deve inserir um valor máximo. O valor mínimo é definido pela Amazon SageMaker AI e deve ser`60`. 

1.  Escolha **Salvar alterações**. 

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

 As seções a seguir mostram como ativar o encerramento por inatividade usando a AWS CLI. 

**nota**  
Para impor um valor de tempo limite específico a partir do AWS CLI, você deve definir `IdleTimeoutInMinutes``MaxIdleTimeoutInMinutes`, e `MinIdleTimeoutInMinutes` com o mesmo valor.

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

 O comando a seguir mostra como ativar o encerramento por inatividade ao atualizar um domínio existente. Para adicionar o encerramento por inatividade para um novo domínio, use o comando `create-domain` em vez disso. 

**nota**  
Se o encerramento por inatividade for definido quando as aplicações estiverem em execução, elas deverão ser reiniciadas para que as configurações de encerramento por inatividade entrem em vigor. 

```
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
        }
    }
}
```

### Perfil de usuário
<a name="studio-updated-idle-shutdown-setup-cli-userprofile"></a>

 O comando a seguir mostra como ativar o encerramento por inatividade ao atualizar um perfil de usuário existente. Para adicionar o encerramento por inatividade para um novo perfil de usuário, use o comando `create-user-profile` em vez disso. 

**nota**  
Se o encerramento por inatividade for definido quando as aplicações estiverem em execução, elas deverão ser reiniciadas para que as configurações de encerramento por inatividade entrem em vigor. 

```
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
        }
    }
}
```

# Atualizar as configurações padrão de encerramento por inatividade
<a name="studio-updated-idle-shutdown-update"></a>

 Você pode atualizar as configurações padrão de encerramento por inatividade no nível do domínio ou do perfil do usuário. 

**nota**  
Se o encerramento por inatividade for definido quando as aplicações estiverem em execução, elas deverão ser reiniciadas para que as configurações de encerramento por inatividade entrem em vigor. 

## Atualizar configurações de domínio
<a name="studio-updated-idle-shutdown-update-domain"></a>

1.  Navegue até o domínio. 

1.  Escolha a guia **Configurações da aplicação**. 

1.  Na guia **Configurações do aplicativo**, navegue até o Editor de código ou a JupyterLab seção.  

1.  Na seção da aplicação para a qual você deseja modificar o limite de tempo de encerramento por inatividade, selecione **Editar**. 

1.  Atualize as configurações de encerramento por inatividade do domínio. 

1.  Escolha **Salvar alterações**. 

## Atualizar as configurações do perfil do usuário
<a name="studio-updated-idle-shutdown-update-userprofile"></a>

1.  Navegue até o domínio. 

1.  Escolha a guia **Perfis de usuário**. 

1.  Na guia **Perfis de usuário**, selecione o perfil de usuário a ser editado. 

1.  Na página **Perfil do usuário**, escolha a guia **Aplicações**. 

1.  Na guia **Aplicativos**, navegue até o Editor de código ou a JupyterLab seção.  

1.  Na seção da aplicação para a qual você deseja modificar o limite de tempo de encerramento por inatividade, selecione **Editar**. 

1.  Atualize as configurações de encerramento por inatividade do perfil do usuário. 

1.  Escolha **Salvar alterações**. 

# Modifique seu limite de tempo de encerramento por inatividade
<a name="studio-updated-idle-shutdown-modify"></a>

 Os usuários poderão modificar o limite de tempo de encerramento por inatividade se o administrador conceder acesso ao adicionar compatibilidade com encerramento por inatividade. Se for adicionada compatibilidade com encerramento por inatividade, pode haver um limite aplicado ao tempo máximo de desligamento em marcha lenta. Um usuário pode definir o valor em qualquer lugar entre o limite inferior e o limite superior. 

1.  Inicie o Amazon SageMaker Studio seguindo as etapas em[Inicie o Amazon SageMaker Studio](studio-updated-launch.md). 

1.  Na seção **Aplicações**, selecione o tipo de aplicação para a qual atualizar o tempo de encerramento por inatividade. 

1.  Selecione o espaço a ser atualizado. 

1.  Atualize o **desligamento inativo (minutos)** com o valor desejado. 
**nota**  
Se o encerramento por inatividade for definido quando as aplicações estiverem em execução, elas deverão ser reiniciadas para que as configurações de encerramento por inatividade entrem em vigor. 

# Aplicativos compatíveis com o Amazon SageMaker Studio
<a name="studio-updated-apps"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da experiência atualizada do Studio. Para obter informações sobre como usar a aplicação do Studio Classic, consulte [Amazon SageMaker Studio clássico](studio.md).

 O Amazon SageMaker Studio oferece suporte aos seguintes aplicativos: 
+  **Editor de código, baseado no Code-OSS, o Visual Studio Code - Open Source** - o Editor de Código oferece um ambiente de desenvolvimento integrado (IDE) leve e poderoso com atalhos familiares, terminal e recursos avançados de depuração e ferramentas de refatoração. É uma aplicação totalmente gerenciado e baseado em navegador no Studio. Para obter mais informações, consulte [Editor de código no Amazon SageMaker Studio](code-editor.md). 
+  **Amazon SageMaker Studio Classic** — O Amazon SageMaker Studio Classic é um IDE baseado na web para aprendizado de máquina. Com o Studio Classic, você pode criar, treinar, depurar, implementar e monitorar seus modelos de machine learning. Para obter mais informações, consulte [Amazon SageMaker Studio clássico](studio.md). 
+  **JupyterLab**— JupyterLab oferece um conjunto de recursos que ampliam a oferta de notebooks totalmente gerenciados. Inclui kernels que começam em segundos, um runtime pré-configurado com frameworks de ciência de dados e machine learning conhecidos e armazenamento em blocos de alto desempenho. Para obter mais informações, consulte [SageMaker JupyterLab](studio-updated-jl.md). 
+  **Amazon SageMaker Canvas** — Com o SageMaker Canvas, você pode usar o aprendizado de máquina para gerar previsões sem escrever código. Com o Canvas, você pode conversar com modelos populares de linguagem grande (LLMs), acessar ready-to-use modelos ou criar um modelo personalizado treinado com base em seus dados. Para obter mais informações, consulte [Amazon SageMaker Canvas](canvas.md). 
+  **RStudio**— RStudio é um ambiente de desenvolvimento integrado para R. Inclui um console e um editor de realce de sintaxe que suporta a execução direta do código. Também inclui ferramentas para plotagem, histórico, depuração e gerenciamento do espaço de trabalho. Para obter mais informações, consulte [RStudio na Amazon SageMaker AI](rstudio.md). 

# Conecte seu IDE remoto a SageMaker espaços com acesso remoto
<a name="remote-access"></a>

Você pode se conectar remotamente do seu IDE remoto aos espaços do Amazon SageMaker Studio. Você pode usar sua configuração personalizada de IDE local, incluindo ferramentas de desenvolvimento assistidas por IA e extensões personalizadas, com os recursos computacionais escaláveis da Amazon AI. SageMaker Este guia apresenta conceitos e instruções de configuração para administradores e usuários.

Uma conexão IDE remota estabelece uma conexão segura entre o IDE local e SageMaker os espaços. Essa conexão permite que você:
+ **Acesse recursos de computação de SageMaker IA** — execute código em uma infraestrutura de SageMaker IA escalável a partir do seu ambiente local
+ **Mantenha os limites de segurança** — trabalhe dentro da mesma estrutura de segurança da SageMaker IA
+ **Mantenha sua experiência familiar de IDE** — Use extensões, temas e configurações locais compatíveis que ofereçam suporte ao desenvolvimento remoto

**nota**  
Nem todas as extensões do IDE são compatíveis com o desenvolvimento remoto. As extensões que exigem componentes de GUI locais têm dependências de arquitetura ou precisam de interações específicas entre cliente e servidor talvez não funcionem adequadamente no ambiente remoto. Verifique se as extensões necessárias oferecem suporte ao desenvolvimento remoto antes de usar.

**Topics**
+ [Principais conceitos](#remote-access-key-concepts)
+ [Métodos de conexão](#remote-access-connection-methods)
+ [Suportado IDEs](#remote-access-supported-ides)
+ [Requisitos da versão do IDE](#remote-access-ide-version-requirements)
+ [Requisitos de sistema operacional](#remote-access-os-requirements)
+ [Pré-requisitos da máquina local](#remote-access-local-prerequisites)
+ [Requisitos de imagens](#remote-access-image-requirements)
+ [Requisitos de instância](#remote-access-instance-requirements)
+ [Configurar o acesso remoto](remote-access-remote-setup.md)
+ [Configurar o IDE remoto](remote-access-local-ide-setup.md)
+ [AWS Regiões suportadas](remote-access-supported-regions.md)

## Principais conceitos
<a name="remote-access-key-concepts"></a>
+ **Conexão remota** — Um túnel seguro entre seu IDE remoto e um SageMaker espaço. Essa conexão permite o desenvolvimento interativo e a execução de código usando recursos computacionais de SageMaker IA.
+ [https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-spaces.html](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-spaces.html) — Um ambiente dedicado dentro do Amazon SageMaker Studio onde você pode gerenciar seu armazenamento e recursos para seus aplicativos Studio.
+ **Link** direto — Um botão (URL direto) da SageMaker interface do usuário que inicia uma conexão remota com seu IDE local.

## Métodos de conexão
<a name="remote-access-connection-methods"></a>

Há três maneiras principais de conectar seu IDE remoto a SageMaker espaços:
+ **Acesso ao link** direto — Você pode se conectar diretamente a um espaço específico usando o botão **Abrir espaço com** disponível na SageMaker IA. Isso usa padrões de URL para estabelecer uma conexão remota e abrir seu SageMaker espaço no 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): você pode se autenticar com o AWS Toolkit for Visual Studio Code. Isso permite que você se conecte a espaços e abra uma janela conectada remotamente a partir do seu IDE remoto.
+ **Conexão de terminal SSH**: você pode se conectar por meio da linha de comandos usando a configuração SSH.

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

A conexão remota com espaços do Studio permite usar:
+ [Visual Studio Code](https://code.visualstudio.com/)
+ [Kiro](https://kiro.dev/)
+ [Cursor](https://cursor.com/home)

## Requisitos da versão do IDE
<a name="remote-access-ide-version-requirements"></a>

A tabela a seguir lista os requisitos mínimos de versão para cada IDE remoto compatível.


| IDE | Versão mínima | 
| --- | --- | 
|  Visual Studio Code  |  [v1.90 ou superior](https://code.visualstudio.com/updates/v1_90). Recomendamos usar a [versão estável mais recente](https://code.visualstudio.com/updates).  | 
|  Kiro  |  v0.10.78 ou superior  | 
|  Cursor  |  v2.6.18 ou superior  | 

A extensão AWS Toolkit é necessária para conectar seu IDE remoto aos espaços do Studio. Para Kiro e Cursor, é necessária a versão v3.100 ou superior da extensão AWS Toolkit.

## Requisitos de sistema operacional
<a name="remote-access-os-requirements"></a>

Você precisa de um dos seguintes sistemas operacionais para se conectar remotamente aos espaços do Studio:
+ macOS 13 e posterior
+ Windows 10
  + [O suporte ao Windows 10 termina em 14 de outubro de 2025](https://support.microsoft.com/en-us/windows/windows-10-support-ends-on-october-14-2025-2ca8b313-1946-43d3-b55c-2b95b107f281)
+ Windows 11
+ Linux
  + Para o VS Code, instale o [Microsoft VS Code oficial para Linux](https://code.visualstudio.com/docs/setup/linux), não uma versão de código aberto

## Pré-requisitos da máquina local
<a name="remote-access-local-prerequisites"></a>

Antes de conectar seu IDE remoto aos espaços do Studio, certifique-se de que sua máquina local tenha as dependências e o acesso à rede necessários.

**Importante**  
Ambientes com restrições de instalação de software podem impedir que os usuários instalem as dependências necessárias. O pesquisa AWS Toolkit for Visual Studio Code automaticamente essas dependências ao iniciar conexões remotas e solicitará a instalação se alguma estiver faltando. Coordene com seu departamento de TI para garantir que esses componentes estejam disponíveis.

**Dependências locais necessárias**

Sua máquina local deve ter os seguintes componentes instalados:
+ Extensão **[Remote-SSH — Extensão](https://code.visualstudio.com/docs/remote/ssh)** de desenvolvimento remoto para seu IDE (disponível no mercado de extensões para VS Code, Kiro e Cursor)
+ **[Plugin Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html)** — necessário para o gerenciamento seguro de sessões
+ **Cliente SSH** — Componente padrão na maioria das máquinas (o [OpenSSH é recomendado para Windows](https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse))
+ **Comando IDE CLI** — Normalmente incluído na instalação do IDE (por exemplo, para VS Code, `code` para Kiro, `kiro` `cursor` para Cursor)

**Requisitos específicos da plataforma**
+ **Usuários do Windows** — PowerShell 5.1 ou posterior é necessário para conexões de terminal SSH

**Requisitos de conectividade de rede**

Sua máquina local deve ter acesso à rede aos [endpoints do Session Manager](https://docs.aws.amazon.com/general/latest/gr/ssm.html). Por exemplo, no Leste dos EUA (Norte da Virgínia) (us-east-1), eles podem ser:
+ ssm.us-east-1.amazonaws.com
+ ssm.us-east-1.api.aws
+ ssmmessages.us-east-1.amazonaws.com
+ ec2messages.us-east-1.amazonaws.com

## Requisitos de imagens
<a name="remote-access-image-requirements"></a>

**SageMaker Imagens de distribuição**

Ao usar o SageMaker Distribution com acesso remoto, use o [SageMaker Distribution](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-distribution.html) versão 2.7 ou posterior.

**Imagens personalizadas**

Ao usar [Traga sua própria imagem (BYOI)](studio-updated-byoi.md) o acesso remoto, certifique-se de seguir as [especificações personalizadas da imagem](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-byoi-specs.html) e garantir que as seguintes dependências estejam instaladas:
+ `curl`ou `wget` — Obrigatório para baixar AWS CLI componentes
+ `unzip`— Necessário para extrair arquivos de AWS CLI instalação
+ `tar`— Necessário para extração de arquivos
+ `gzip`— Necessário para manipulação de arquivos compactados

## Requisitos de instância
<a name="remote-access-instance-requirements"></a>
+ **Memória**: 8 GB ou mais.
+ **Tipos de instância**: use instâncias com pelo menos 8 GB de memória. Os tipos de instância a seguir *não* são compatíveis devido à falta de memória (menos de 8 GB): `ml.t3.medium`, `ml.c7i.large`, `ml.c6i.large`, `ml.c6id.large` e `ml.c5.large`. Para ver uma lista mais completa dos tipos de instância, consulte a página [Preço sob demanda do Amazon EC2](https://aws.amazon.com/ec2/pricing/on-demand/).

**Topics**
+ [Principais conceitos](#remote-access-key-concepts)
+ [Métodos de conexão](#remote-access-connection-methods)
+ [Suportado IDEs](#remote-access-supported-ides)
+ [Requisitos da versão do IDE](#remote-access-ide-version-requirements)
+ [Requisitos de sistema operacional](#remote-access-os-requirements)
+ [Pré-requisitos da máquina local](#remote-access-local-prerequisites)
+ [Requisitos de imagens](#remote-access-image-requirements)
+ [Requisitos de instância](#remote-access-instance-requirements)
+ [Configurar o acesso remoto](remote-access-remote-setup.md)
+ [Configurar o IDE remoto](remote-access-local-ide-setup.md)
+ [AWS Regiões suportadas](remote-access-supported-regions.md)

# Configurar o acesso remoto
<a name="remote-access-remote-setup"></a>

Antes que os usuários possam conectar seu IDE remoto aos espaços do Studio, o administrador deve configurar as permissões. Esta seção fornece instruções para administradores sobre como configurar seu domínio Amazon SageMaker AI com acesso remoto.

Métodos de conexão diferentes exigem permissões diferentes do IAM. Configure as permissões apropriadas com base em como os usuários se conectarão. Use o fluxo de trabalho a seguir com as permissões alinhadas ao método de conexão.

**Importante**  
No momento, as conexões remotas do IDE são autenticadas usando credenciais do IAM, não do Centro de Identidade do IAM. Isso se aplica a domínios que usam o [método de autenticação](https://docs.aws.amazon.com/sagemaker/latest/dg/onboard-custom.html#onboard-custom-authentication-details) do Centro de Identidade do IAM para que seus usuários acessem o domínio. Se você optar por não usar a autenticação do IAM para conexões remotas, desabilite esse recurso usando a chave condicional `RemoteAccess` em suas políticas do IAM. Para obter mais informações, consulte [Imposição do acesso remoto](remote-access-remote-setup-abac.md#remote-access-remote-setup-abac-remote-access-enforcement). Ao usar as credenciais do IAM, as conexões remotas do IDE podem manter sessões ativas mesmo depois de você sair da sessão do IAM Identity Center. Às vezes, essas conexões remotas do IDE podem persistir por até 12 horas. Para garantir a segurança do seu ambiente, os administradores devem revisar as configurações de duração da sessão sempre que possível e ter cuidado ao usar estações de trabalho compartilhadas ou redes públicas.

1. Escolha uma das permissões de método de conexão a seguir que se alinhe aos [Métodos de conexão](remote-access.md#remote-access-connection-methods) de seus usuários.

1. [Crie uma política personalizada do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) com base na permissão do método de conexão.

**Topics**
+ [Etapa 1: configurar a segurança e permissões](#remote-access-remote-setup-permissions)
+ [Etapa 2: habilitar o acesso remoto ao seu espaço](#remote-access-remote-setup-enable)
+ [Controle de acesso avançado](remote-access-remote-setup-abac.md)
+ [Configurar o Studio para ser executado com sub-redes sem acesso à internet em uma VPC](remote-access-remote-setup-vpc-subnets-without-internet-access.md)
+ [Configure a filtragem automatizada de espaço do Studio ao usar o Toolkit AWS](remote-access-remote-setup-filter.md)

## Etapa 1: configurar a segurança e permissões
<a name="remote-access-remote-setup-permissions"></a>

**Topics**
+ [Método 1: permissões de link direto](#remote-access-remote-setup-method-1-deep-link-permissions)
+ [Método 2: permissões do AWS kit de ferramentas](#remote-access-remote-setup-method-2-aws-toolkit-permissions)
+ [Método 3: permissões do terminal SSH](#remote-access-remote-setup-method-3-ssh-terminal-permissions)

**Importante**  
Usar permissões amplas para`sagemaker:StartSession`, especialmente com um recurso curinga, `*` cria o risco de que qualquer usuário com essa permissão possa iniciar uma sessão em qualquer aplicativo do SageMaker Space na conta. Isso pode causar o impacto de cientistas de dados acessarem involuntariamente os Spaces de outros usuários SageMaker . Para ambientes de produção, você deve limitar essas permissões a um espaço específico ARNs para aplicar o princípio do menor privilégio. Veja exemplos [Controle de acesso avançado](remote-access-remote-setup-abac.md) de políticas de permissão mais granulares usando recursos ARNs, tags e restrições baseadas em rede.

### Método 1: permissões de link direto
<a name="remote-access-remote-setup-method-1-deep-link-permissions"></a>

Para usuários que se conectam por meio de links diretos da SageMaker interface do usuário, use a permissão a seguir e anexe-a à sua função de [execução do espaço de SageMaker IA ou à sua função](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-get-execution-role-space) de [execução de domínio](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-get-execution-role). Se o perfil de execução do espaço não estiver configurado, o perfil de execução do domínio será usada por padrão.

------
#### [ 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}"
                }
            }
        }
    ]
}
```

------

### Método 2: permissões do AWS kit de ferramentas
<a name="remote-access-remote-setup-method-2-aws-toolkit-permissions"></a>

Para usuários que se conectam por meio da AWS Toolkit for Visual Studio Code extensão, anexe a seguinte política a uma das seguintes:
+ Para autenticação do IAM, anexe essa política ao usuário ou perfil do IAM.
+ Para autenticação do IdC, anexe essa política aos [conjuntos de permissões](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetsconcept.html) gerenciados pelo IdC.

Para mostrar somente espaços relevantes para o usuário autenticado, consulte[Visão geral sobre filtragem](remote-access-remote-setup-filter.md#remote-access-remote-setup-filter-overview).

**Importante**  
A seguir, a política que usa `*` como restrição de recursos só é recomendada para realizar testes rápidos. Para ambientes de produção, você deve limitar essas permissões a um espaço específico ARNs para aplicar o princípio do menor privilégio. Veja exemplos [Controle de acesso avançado](remote-access-remote-setup-abac.md) de políticas de permissão mais granulares usando recursos ARNs, tags e restrições baseadas em rede.

------
#### [ 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"
            ]
        }
    ]
}
```

------

### Método 3: permissões do terminal SSH
<a name="remote-access-remote-setup-method-3-ssh-terminal-permissions"></a>

Para conexões de terminal SSH, a `StartSession` API é chamada pelo script de comando do proxy SSH abaixo, usando as credenciais locais AWS . Consulte [Configurar o AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) para obter informações e instruções sobre como configurar as AWS credenciais locais do usuário. Para usar estas permissões:

1. Anexe essa política ao usuário ou perfil do IAM associado às credenciais locais da AWS .

1. Se estiver usando um perfil de credencial nomeado, modifique o comando do proxy na sua configuração de SSH:

   ```
   ProxyCommand '/home/user/sagemaker_connect.sh' '%h' YOUR_CREDENTIAL_PROFILE_NAME
   ```
**nota**  
A política precisa ser anexada à identidade do IAM (usuário/função) usada em sua configuração de AWS credenciais locais, não à função de execução do domínio 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"
               ]
           }
       ]
   }
   ```

------

Após a configuração, os usuários podem executar `ssh my_studio_space_abc` para iniciar o espaço. Para obter mais informações, consulte [Método 3: conectar-se pelo terminal via CLI do SSH](remote-access-local-ide-setup.md#remote-access-local-ide-setup-local-vs-code-method-3-connect-from-the-terminal-via-ssh-cli).

## Etapa 2: habilitar o acesso remoto ao seu espaço
<a name="remote-access-remote-setup-enable"></a>

Depois de configurar as permissões, você deve ativar o **Acesso Remoto** e iniciar seu espaço no Studio antes que o usuário possa se conectar usando o IDE remoto. Essa configuração só precisa ser feita uma vez.

**nota**  
Se seus usuários estão se conectando usando[Método 2: permissões do AWS kit de ferramentas](#remote-access-remote-setup-method-2-aws-toolkit-permissions), você não precisa necessariamente dessa etapa. AWS Toolkit for Visual Studio os usuários podem habilitar o acesso remoto a partir do Toolkit.

**Ativar o acesso remoto ao espaço do Studio**

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

1. Abra a interface de usuário do Studio.

1. Navegue até o seu espaço.

1. Nos detalhes do espaço, ative **Acesso remoto**.

1. Escolha **Executar espaço**.

# Controle de acesso avançado
<a name="remote-access-remote-setup-abac"></a>

O Amazon SageMaker AI oferece suporte [ao controle de acesso baseado em atributos (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) para obter um controle de acesso refinado para conexões remotas de IDE usando políticas ABAC. Veja a seguir exemplos de políticas ABAC para conexões remotas do IDE.

**Topics**
+ [Imposição do acesso remoto](#remote-access-remote-setup-abac-remote-access-enforcement)
+ [Controle de acesso com base em tags](#remote-access-remote-setup-abac-tag-based-access-control)

## Imposição do acesso remoto
<a name="remote-access-remote-setup-abac-remote-access-enforcement"></a>

Controle o acesso aos recursos usando a chave de condição `sagemaker:RemoteAccess`. Isso é suportado por `CreateSpace` `UpdateSpace` APIs e. O exemplo a seguir usa `CreateSpace`. 

É possível garantir que os usuários não consigam criar espaços com o acesso remoto habilitado. Isso ajuda a manter a segurança, usando configurações de acesso mais restritas por padrão. A seguinte política garante que os usuários possam:
+ Criar espaços do Studio onde o acesso remoto esteja explicitamente desabilitado.
+ Criar espaços do Studio sem especificar nenhuma configuração de acesso 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/*"
        }
    ]
}
```

------

## Controle de acesso com base em tags
<a name="remote-access-remote-setup-abac-tag-based-access-control"></a>

Implemente o controle de acesso [baseado em tags](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/what-are-tags.html) para restringir conexões de acordo com os recursos e as tags de entidade principal.

Você pode garantir que os usuários possam acessar somente os recursos apropriados para as respectivas atribuições de perfil e projeto. Você pode usar a seguinte política para:
+ Permitir que os usuários se conectem somente a espaços que correspondam à equipe, ao ambiente e ao centro de custos designados.
+ Implementar controle de acesso refinado com base na estrutura organizacional.

No exemplo a seguir, o espaço é marcado com o seguinte:

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

Você pode ter um perfil que contenha a seguinte política para estabelecer correspondência com as tags de recurso e de entidade principal:

------
#### [ 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 as tags do perfil correspondem à política, o usuário tem permissão para iniciar a sessão e se conectar remotamente ao espaço dele. Para ter mais informações, consulte [Controlar o acesso a recursos da AWS usando tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html).

# Configurar o Studio para ser executado com sub-redes sem acesso à internet em uma VPC
<a name="remote-access-remote-setup-vpc-subnets-without-internet-access"></a>

Este guia mostra como se conectar aos espaços do Amazon SageMaker Studio a partir do seu IDE remoto quando seu domínio Amazon SageMaker AI é executado em sub-redes privadas sem acesso à Internet. Você aprenderá sobre os requisitos de conectividade e as opções de configuração para estabelecer conexões remotas seguras em ambientes de rede isolados.

Você pode configurar o Amazon SageMaker Studio para ser executado somente no modo VPC com sub-redes sem acesso à Internet. Essa configuração aprimora a segurança de suas workloads de machine learning, pois permite operar em um ambiente de rede isolado em que todo o tráfego flui pela VPC. Para habilitar a comunicação externa e, ao mesmo tempo, manter a segurança, use endpoints de VPC para AWS serviços e configure a PrivateLink VPC para as dependências necessárias. AWS 

**Suporte IDE para conexões de sub-rede privadas**

A tabela a seguir mostra os métodos de conexão suportados para cada IDE remoto ao se conectar aos espaços do Studio em sub-redes privadas sem acesso à Internet.


| Método de conexão | VS Code | Kiro | Cursor | 
| --- | --- | --- | --- | 
|  Suporte ao proxy HTTP  |  Compatível  |  Compatível  |  Não compatível  | 
|  Servidor remoto e extensões pré-empacotados  |  Compatível  |  Não compatível  |  Sem compatibilidade  | 

**Importante**  
O cursor não é suportado para conexão com espaços do Studio em sub-redes privadas sem acesso de saída à Internet.

**Topics**
+ [Requisitos de rede de acesso remoto do Studio](#remote-access-remote-setup-vpc-subnets-without-internet-access-network-requirements)
+ [Configurar a rede de acesso remoto do Studio](#remote-access-remote-setup-vpc-subnets-without-internet-access-setup)

## Requisitos de rede de acesso remoto do Studio
<a name="remote-access-remote-setup-vpc-subnets-without-internet-access-network-requirements"></a>

**Limitações do modo VPC**: no modo VPC, o Studio permite apenas sub-redes privadas. Ele não funciona com sub-redes diretamente conectadas a um gateway da internet (IGW). As conexões IDE remotas compartilham as mesmas limitações da SageMaker IA. Para ter mais informações, consulte [Conectar os cadernos do Studio em uma VPC para recursos externos](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-and-internet-access.html).

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

Quando a SageMaker IA é executada em sub-redes privadas, configure esses endpoints VPC SSM, além dos endpoints VPC padrão necessários. SageMaker Para ter mais informações, consulte [Conectar o Studio por meio de um endpoint da VPC](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-interface-endpoint.html).
+ `com.amazonaws.REGION.ssm`
+ `com.amazonaws.REGION.ssmmessages`

**Recomendações de políticas de endpoints de VPC**

A seguir estão as políticas de endpoint de VPC recomendadas que permitem as ações necessárias para acesso remoto enquanto usam a `aws:PrincipalIsAWSService` condição para garantir que somente serviços AWS como o Amazon SageMaker AI possam fazer as chamadas. Para obter mais informações sobre a chave de `aws:PrincipalIsAWSService` condição, consulte [a documentação](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalisawsservice).

**Política de endpoint de SSM**

Use a seguinte política para o `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"
                }
            }
        }
    ]
}
```

**Política de endpoint de mensagens SSM**

Use a seguinte política para o `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"
                }
            }
        }
    ]
}
```

**Requisitos de rede específicos do VS Code**

A conexão remota do VS Code requer o desenvolvimento remoto do VS Code, que precisa de acesso específico à rede para instalar o servidor remoto e as extensões. Consulte [Remote Development FAQ](https://code.visualstudio.com/docs/remote/faq) na documentação do Visual Studio Code para ver todos os requisitos de rede. Abaixo é apresentado um resumo do requisitos:
+ O acesso aos endpoints do servidor do VS Code da Microsoft é necessário para instalar e atualizar o servidor remoto do VS Code.
+ O acesso ao Visual Studio Marketplace e aos endpoints de CDN relacionados é necessário para instalar as extensões do VS Code por meio do painel de extensões (também é possível instalar as extensões manualmente usando arquivos VSIX sem conexão com a internet).
+ Algumas extensões podem exigir acesso a endpoints adicionais para baixar dependências específicas. Consulte a documentação da extensão para conhecer os requisitos específicos de conectividade.

**Requisitos de rede específicos da Kiro**

A conexão remota do Kiro requer o desenvolvimento remoto do Kiro, que precisa de acesso específico à rede para instalar o servidor remoto e as extensões. Para configuração de firewall e servidor proxy, consulte Configuração do [firewall Kiro](https://kiro.dev/docs/privacy-and-security/firewalls/). Os requisitos são semelhantes aos do VS Code:
+ O acesso aos endpoints do servidor Kiro é necessário para instalar e atualizar o servidor remoto Kiro.
+ O acesso ao mercado de extensões e aos endpoints CDN relacionados é necessário para instalar as extensões Kiro por meio do painel de extensões.
+ Algumas extensões podem exigir acesso a endpoints adicionais para baixar dependências específicas. Consulte a documentação da extensão para conhecer os requisitos específicos de conectividade.

## Configurar a rede de acesso remoto do Studio
<a name="remote-access-remote-setup-vpc-subnets-without-internet-access-setup"></a>

Você tem as seguintes opções para conectar seu IDE remoto aos espaços do Studio em sub-redes privadas:
+ Proxy HTTP (compatível com VS Code e Kiro)
+ Servidor remoto e extensões pré-empacotados (somente VS Code)

### Configurar o proxy HTTP com lista de permissões controlada
<a name="remote-access-remote-setup-vpc-subnets-without-internet-access-setup-http-proxy-with-controlled-allow-listing"></a>

Quando o espaço do Studio estiver protegido por um firewall ou proxy, permita o acesso ao seu servidor IDE e aos endpoints relacionados à extensão CDNs .

1. Configure uma sub-rede pública para executar o proxy HTTP (como o Squid), na qual é possível configurar quais sites permitir. Certifique-se de que o proxy HTTP esteja acessível por SageMaker espaços.

1. A sub-rede pública pode estar na mesma VPC usada pelo Studio ou em uma VPC separada emparelhada com todos os domínios VPCs usados pela Amazon AI. SageMaker 

### Configurar servidores remotos e extensões pré-empacotados (somente VS Code)
<a name="remote-access-remote-setup-vpc-subnets-without-internet-access-setup-pre-packaged-vs-code-remote-server-and-extensions"></a>

**nota**  
Essa opção está disponível somente para o Visual Studio Code. O Kiro e o Cursor não oferecem suporte à configuração pré-empacotada do servidor remoto.

Quando seus espaços do Studio não conseguem acessar endpoints externos para baixar o servidor remoto e extensões do VS Code, você pode empacotá-los previamente. Com essa abordagem, exporte um tarball contendo o diretório `.VS Code-server` de uma versão específica do VS Code. Em seguida, você usa um script SageMaker AI Lifecycle Configuration (LCC) para copiar e extrair o tarball no diretório inicial (`/home/sagemaker-user`) dos espaços do Studio. Essa solução baseada em LCC funciona com imagens AWS fornecidas e personalizadas. Mesmo quando você não está usando sub-redes privadas, essa abordagem acelera a configuração do servidor remoto e das extensões pré-instaladas do VS Code.

**Instruções para pré-empacotar o servidor remoto e as extensões do VS Code**

1. Instale o VS Code na máquina local.

1. Inicie um contêiner do Docker baseado em Linux (x64) com SSH habilitado, localmente ou por meio de um espaço do Studio com acesso à internet. Recomendamos usar um espaço temporário do Studio com acesso remoto e internet habilitada para simplificar.

1. Conecte o VS Code instalado ao contêiner do Docker local via SSH remoto ou conecte-se ao espaço do Studio por meio do recurso do VS Code remoto do Studio. O VS Code instala o servidor remoto no `.VS Code-server` no diretório inicial do contêiner remoto durante a conexão. Consulte [Exemplo de uso do Dockerfile para pré-empacotar seu servidor remoto e extensões do 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) para obter mais informações.

1. Depois de se conectar remotamente, você deve usar o perfil padrão do VS Code.

1. Instale as extensões necessárias do VS Code e valide a respectiva funcionalidade. Por exemplo, crie e execute um caderno para instalar extensões relacionadas ao caderno Jupyter no servidor remoto do VS Code.

   Certifique-se de [instalar a AWS Toolkit for Visual Studio Code extensão](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/setup.html) depois de se conectar ao contêiner remoto.

1. Arquive o diretório `$HOME/.VS Code-server` (por exemplo, `VS Code-server-with-extensions-for-1.100.2.tar.gz`) no contêiner do Docker local ou no terminal do espaço do Studio conectado remotamente.

1. Faça upload do tarball no Amazon S3.

1. Crie um [script de LCC](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-lifecycle-configurations.html) ([Exemplo de 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)) que:
   + Baixe o arquivo específico do Amazon S3.
   + Extraia o arquivo para o diretório inicial quando um espaço do Studio em uma sub-rede privada é iniciado.

1. (Opcional) Estenda o script de LCC para permitir tarballs do servidor do VS Code por usuário armazenados em pastas do Amazon S3 específicas do usuário.

1. (Opcional) Mantenha scripts de LCC específicos da versão ([Exemplo de 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)) que você possa anexar aos seus espaços para garantir a compatibilidade entre o cliente do VS Code local e o servidor remoto.

# Configure a filtragem automatizada de espaço do Studio ao usar o Toolkit AWS
<a name="remote-access-remote-setup-filter"></a>

Os usuários podem filtrar espaços no AWS Toolkit for Visual Studio Code explorador para exibir somente espaços relevantes. Esta seção fornece informações sobre filtragem e como configurar a filtragem automatizada.

Essa configuração só se aplica ao usar o [Método 2: AWS Kit de ferramentas no IDE remoto](remote-access-local-ide-setup.md#remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code) método para se conectar do seu IDE remoto aos espaços do Amazon SageMaker Studio. Consulte [Configurar o acesso remoto](remote-access-remote-setup.md) para obter mais informações.

**Topics**
+ [Visão geral sobre filtragem](#remote-access-remote-setup-filter-overview)
+ [Configurar quando se conectar com credenciais do IAM](#remote-access-remote-setup-filter-set-up-iam-credentials)

## Visão geral sobre filtragem
<a name="remote-access-remote-setup-filter-overview"></a>

A **filtragem manual** permite que os usuários selecionem manualmente quais perfis de usuário exibir espaços por meio da interface do AWS Toolkit. Esse método funciona para todos os tipos de autenticação e tem precedência sobre a filtragem automática. Para filtrar manualmente, consulte [Filtragem manual](remote-access-local-ide-setup-filter.md#remote-access-local-ide-setup-filter-manual).

A **filtragem automática** mostra automaticamente ao usuário autenticado apenas os espaços relevantes. Esse comportamento de filtragem depende do método de autenticação durante o login. Consulte [conectar-se a AWS partir do Toolkit](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/connect.html#connect-to-aws) no Guia do usuário do Toolkit for VS Code para obter mais informações. A seguir é apresentada uma lista das opções de login.
+ **Autenticar e conectar-se com o SSO**: a filtragem automatizada funciona por padrão.
+ **Autenticar e conectar-se com credenciais do IAM**: a filtragem automatizada **exige a configuração do administrador** para as credenciais do IAM a seguir. Sem essa configuração, o AWS Toolkit não consegue identificar quais espaços pertencem ao usuário, então todos os espaços são mostrados por padrão.
  + Uso de credenciais de usuário do IAM
  + **Uso de credenciais de sessão do perfil do IAM assumido**

## Configurar quando se conectar com credenciais do IAM
<a name="remote-access-remote-setup-filter-set-up-iam-credentials"></a>

**Quando usar credenciais de usuário do IAM**

O kit de ferramentas para VS Code consegue identificar os espaços pertencentes a perfis de usuário que comecem com o nome de usuário autenticado do IAM ou o nome da sessão do perfil assumido. Para configurar isso:

**nota**  
Os administradores devem configurar os nomes de perfil de usuário do Studio de acordo com essa convenção de nomenclatura para que a filtragem automática funcione corretamente.
+ Eles devem garantir que os nomes de perfil de usuário do Studio sigam a convenção de nomenclatura:
  + Para usuários do IAM: prefixo com `IAM-user-name-`.
  + Para perfis assumidos: prefixo com `assumed-role-session-name-`.
+ `aws sts get-caller-identity` exibe as informações de identidade usadas para fazer a correspondência.
+ Os espaços pertencentes aos perfis de usuário correspondentes serão filtrados automaticamente no kit de ferramentas para VS Code.

**Ao usar credenciais de sessão com função presumida do IAM** Além da configuração acima ao usar as credenciais de usuário do IAM, você precisará garantir que a sessão ARNs inclua identificadores de usuário como prefixos correspondentes. Você pode configurar políticas de confiança que garantam que a sessão ARNs inclua identificadores de usuário como prefixos. [Crie uma política de confiança](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) e anexe-a ao perfil assumido usado para autenticação.

Essa configuração não é necessária para credenciais diretas de usuário do IAM ou autenticação do IdC.

**Exemplo de configuração de política de confiança para credenciais de sessão de perfil do IAM**: crie uma política de confiança que imponha que as sessões de perfil incluam o nome de usuário do IAM. Veja abaixo um exemplo de política:

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

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

Depois que os administradores concluírem as instruções[Conecte seu IDE remoto a SageMaker espaços com acesso remoto](remote-access.md), você poderá conectar seu IDE remoto aos seus SageMaker espaços remotos.

**Topics**
+ [Configurar o ambiente local](#remote-access-local-ide-setup-local-environment)
+ [Conecte-se ao seu IDE remoto](#remote-access-local-ide-setup-local-vs-code)
+ [Conectar-se à VPC com sub-redes sem acesso à internet](remote-access-local-ide-setup-vpc-no-internet.md)
+ [Filtrar espaços do Studio](remote-access-local-ide-setup-filter.md)

## Configurar o ambiente local
<a name="remote-access-local-ide-setup-local-environment"></a>

Instale seu IDE remoto preferido em sua máquina local:
+ [Visual Studio Code](https://code.visualstudio.com/)
+ [Kiro](https://kiro.dev/)
+ [Cursor](https://cursor.com/home)

Para obter informações sobre os requisitos da versão, consulte[Requisitos da versão do IDE](remote-access.md#remote-access-ide-version-requirements).

## Conecte-se ao seu IDE remoto
<a name="remote-access-local-ide-setup-local-vs-code"></a>

Antes que você possa estabelecer uma conexão do seu IDE remoto com seus SageMaker espaços remotos, seu administrador deve[Configurar o acesso remoto](remote-access-remote-setup.md). O administrador configura um método específico para você estabelecer uma conexão. Escolha o método que foi configurado para você.

**Topics**
+ [Método 1: link direto da interface de usuário do Studio](#remote-access-local-ide-setup-local-vs-code-method-1-deep-link-from-studio-ui)
+ [Método 2: AWS Kit de ferramentas no IDE remoto](#remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code)
+ [Método 3: conectar-se pelo terminal via CLI do SSH](#remote-access-local-ide-setup-local-vs-code-method-3-connect-from-the-terminal-via-ssh-cli)

### Método 1: link direto da interface de usuário do Studio
<a name="remote-access-local-ide-setup-local-vs-code-method-1-deep-link-from-studio-ui"></a>

Use o procedimento a seguir para estabelecer uma conexão usando o link direto.

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

1. Na interface do usuário do Studio, navegue até o seu espaço.

1. Escolha **o botão Abrir no VS Code**, **Abrir no Kiro** ou **Abrir no Cursor** para seu IDE preferido. Certifique-se de que seu IDE preferido já esteja instalado em seu computador local.

1. Quando solicitado, confirme para abrir seu IDE. Seu IDE abre com outro pop-up para confirmar. Depois de concluída, a conexão remota é estabelecida.

### Método 2: AWS Kit de ferramentas no IDE remoto
<a name="remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code"></a>

Use o procedimento a seguir para estabelecer uma conexão usando o AWS Toolkit for Visual Studio Code. Esse método está disponível para VS Code, Kiro e Cursor.

1. Abra seu IDE remoto (VS Code, Kiro ou Cursor).

1. Abra a extensão AWS Toolkit.

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

1. No AWS Explorer, expanda a **SageMaker IA** e, em seguida, expanda o **Studio**.

1. Encontre seu espaço do Studio.

1. Escolha o ícone de **conexão** ao lado do seu espaço para iniciá-lo.
**nota**  
Pare e reinicie o espaço no kit de ferramentas para Visual Studio para habilitar o acesso remoto, se ainda não conectado.
Se o espaço não estiver usando um [tamanho de instância](https://docs.aws.amazon.com/sagemaker/latest/dg/remote-access.html#remote-access-instance-requirements) compatível, você deverá alterar a instância.

### Método 3: conectar-se pelo terminal via CLI do SSH
<a name="remote-access-local-ide-setup-local-vs-code-method-3-connect-from-the-terminal-via-ssh-cli"></a>

Escolha uma das seguintes opções de plataforma para visualizar o procedimento para estabelecer uma conexão usando a CLI SSH.

**nota**  
Verifique se você tem as versões mais recentes do [Pré-requisitos da máquina local](remote-access.md#remote-access-local-prerequisites) instalado antes de seguir as instruções abaixo.
Se você[Traga sua própria imagem (BYOI)](studio-updated-byoi.md), certifique-se de ter instalado as dependências necessárias listadas [Requisitos de imagens](remote-access.md#remote-access-image-requirements) antes de continuar

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

Crie um script de shell (por exemplo, `/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. Torne o script executável:

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

1. Configure `$HOME/.ssh/config` para adicionar a seguinte entrada:

```
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
```

Por exemplo, `PARTITION` pode ser `aws`.

Se você precisar usar um [perfil de AWS credencial nomeado](https://docs.aws.amazon.com/cli/v1/userguide/cli-configure-files.html#cli-configure-files-using-profiles), altere o comando proxy da seguinte forma:

```
  ProxyCommand '/home/user/sagemaker_connect.sh' '%h' YOUR_CREDENTIAL_PROFILE_NAME
```
+ Conecte-se via SSH ou execute o comando SCP:

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

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

**Pré-requisitos para Windows:**
+ PowerShell 5.1 ou posterior
+ Cliente SSH (OpenSSH recomendado)

Crie um PowerShell script (por exemplo,`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
}
```
+ Configure `C:\Users\user-name\.ssh\config` para adicionar a seguinte entrada:

```
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
```

------

# Conectar-se à VPC com sub-redes sem acesso à internet
<a name="remote-access-local-ide-setup-vpc-no-internet"></a>

Antes de conectar seu IDE remoto aos espaços do Studio em sub-redes privadas sem acesso à Internet, verifique se o administrador o fez. [Configurar o Studio para ser executado com sub-redes sem acesso à internet em uma VPC](remote-access-remote-setup-vpc-subnets-without-internet-access.md)

Você tem as seguintes opções para conectar seu IDE remoto aos espaços do Studio em sub-redes privadas:
+ Configurar o proxy HTTP (compatível com VS Code e Kiro)
+ Servidor remoto e extensões pré-empacotados (somente VS Code)

**Importante**  
O cursor não é suportado para conexão com espaços do Studio em sub-redes privadas sem acesso de saída à Internet.

**Topics**
+ [Proxy HTTP com lista de permissões controlada](#remote-access-local-ide-setup-vpc-no-internet-http-proxy-with-controlled-allow-listing)
+ [Servidor remoto e extensões pré-empacotados (somente VS Code)](#remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions)

## Proxy HTTP com lista de permissões controlada
<a name="remote-access-local-ide-setup-vpc-no-internet-http-proxy-with-controlled-allow-listing"></a>

Quando o espaço do Studio estiver protegido por um firewall ou proxy, peça ao administrador que permita o acesso ao seu servidor IDE e aos endpoints CDNs e relacionados à extensão. Para obter mais informações, consulte [Configurar o proxy HTTP com lista de permissões controlada](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 ]

Configure o proxy HTTP para o desenvolvimento remoto do VS Code fornecendo a URL do proxy com a `remote.SSH.httpsProxy` configuração `remote.SSH.httpProxy` ou.

**nota**  
Considere habilitar “Remote.ssh: use arquivos de configuração Curl e Wget” para usar a configuração dos arquivos e do ambiente remoto. `curlrc` `wgetrc` Isso é para que os `wgetrc` arquivos `curlrc` e, colocados em seus respectivos locais padrão no SageMaker espaço, possam ser usados para habilitar determinados casos.

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

Configure o proxy HTTP para o desenvolvimento remoto do Kiro definindo a `aws.sagemaker.ssh.kiro.httpsProxy` configuração para seu endpoint de proxy HTTP ou HTTPS.

Se você usa servidores MCP (Model Context Protocol) no Kiro, também precisa adicionar as variáveis de ambiente proxy à configuração do servidor MCP:

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

------

Essa opção funciona quando você tem permissão para configurar o proxy HTTP e permite instalar extensões adicionais de forma flexível, pois algumas extensões exigem um endpoint público.

## Servidor remoto e extensões pré-empacotados (somente VS Code)
<a name="remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions"></a>

**nota**  
Essa opção está disponível somente para o Visual Studio Code. O Kiro e o Cursor não oferecem suporte à configuração pré-empacotada do servidor remoto.

Quando seus espaços do Studio não conseguem acessar endpoints externos para baixar o servidor remoto e extensões do VS Code, você pode empacotá-los previamente. Com essa abordagem, o administrador pode exportar um tarball que contém o diretório `.VS Code-server` de uma versão específica do VS Code. Em seguida, o administrador usa um script SageMaker AI Lifecycle Configuration (LCC) para copiar e extrair o tarball em seu diretório inicial (). `/home/sagemaker-user` Para obter mais informações, consulte [Configurar servidores remotos e extensões pré-empacotados (somente 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).

**Instruções para pré-empacotar o servidor remoto e as extensões do VS Code**

1. Instale o VS Code na máquina local.

1. Quando você se conecta ao SageMaker espaço:
   + Use o perfil padrão para garantir a compatibilidade com extensões pré-empacotadas. Caso contrário, você precisará instalar extensões usando os arquivos VSIX baixados depois de se conectar ao espaço do Studio.
   + Escolha um script de LCC específico da versão do VS Code para anexar ao espaço ao iniciá-lo.

### Exemplo de uso do Dockerfile para pré-empacotar seu servidor remoto e extensões do VS Code
<a name="remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions-example-dockerfile"></a>

A seguir é apresentado um exemplo de Dockerfile para iniciar um contêiner local com o servidor SSH pré-instalado, caso não seja possível criar um espaço com acesso remoto e internet habilitada.

**nota**  
Neste exemplo, o servidor SSH não requer autenticação e é usado apenas para exportar o servidor remoto do VS Code.
O contêiner deve ser criado e executado em uma arquitetura 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"]
```

Use os seguintes comandos para criar e executar o contêiner:

```
# 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 &'
```

Conecte-se usando o seguinte comando:

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

Para que esse contêiner possa ser conectado, faça a configuração abaixo no arquivo `.ssh/config`. Depois, você poderá ver `remote_access_export` como um nome de host no painel lateral de SSH remoto ao se conectar. Por exemplo:

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

Arquive `/tmp/remote_access/.VS Code-server` e siga as etapas em “Servidor remoto e extensões pré-empacotados do VS Code” para conectar e instalar a extensão. Depois de descompactar, verifique se a pasta `.VS Code-server` aparece como a pasta principal.

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

### Exemplo de 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>

Veja a seguir um exemplo de como instalar uma versão específica do servidor remoto do 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
```

# Filtrar espaços do Studio
<a name="remote-access-local-ide-setup-filter"></a>

Você pode usar a filtragem para exibir somente os espaços relevantes da Amazon SageMaker AI no AWS Toolkit for Visual Studio Code explorador. Veja a seguir informações sobre filtragem manual e filtragem automatizada. Para ter mais informações sobre as definições de filtragem manual e automática, consulte [Visão geral sobre filtragem](remote-access-remote-setup-filter.md#remote-access-remote-setup-filter-overview).

Essa configuração só se aplica ao usar o [Método 2: AWS Kit de ferramentas no IDE remoto](remote-access-local-ide-setup.md#remote-access-local-ide-setup-local-vs-code-method-2-aws-toolkit-in-vs-code) método para se conectar do seu IDE remoto aos espaços do Amazon SageMaker Studio. Consulte [Configurar o acesso remoto](remote-access-remote-setup.md) para obter mais informações.

**Topics**
+ [Filtragem manual](#remote-access-local-ide-setup-filter-manual)
+ [Configuração de filtragem automática ao usar credenciais do IAM para fazer login](#remote-access-local-ide-setup-filter-automatic-IAM-credentials)

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

Para filtrar manualmente os espaços exibidos:
+ Abra seu IDE remoto e navegue até o explorador do painel lateral do Toolkit for VS Code
+ Encontre a seção de **SageMaker IA**
+ Escolha o ícone do filtro à direita do cabeçalho da seção SageMaker AI. Isso abre um menu suspenso.
+ No menu suspenso, selecione os perfis de usuário para os quais você deseja exibir espaços.

## Configuração de filtragem automática ao usar credenciais do IAM para fazer login
<a name="remote-access-local-ide-setup-filter-automatic-IAM-credentials"></a>

A filtragem automática depende do método de autenticação durante o login. Consulte [Conectando-se a AWS partir do kit de ferramentas](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/connect.html#connect-to-aws) no Guia do usuário do Toolkit for VS Code para obter mais informações.

Quando você se autentica e se conecta com **credenciais do IAM**, a filtragem automatizada exige que você siga as instruções em [Configurar quando se conectar com credenciais do IAM](remote-access-remote-setup-filter.md#remote-access-remote-setup-filter-set-up-iam-credentials). Sem essa configuração, se os usuários optarem pela filtragem de identidade, nenhum espaço será exibido.

Depois que o acima estiver configurado, o AWS Toolkit combina os espaços pertencentes aos perfis de usuário que começam com o nome de usuário autenticado do IAM ou o nome da sessão da função assumida.

A filtragem automática é opcional para os usuários:
+ Abra suas configurações do Remote IDE
+ Navegue até a extensão **Kit de ferramentas da AWS **
+ Encontre **Habilitar a filtragem de identidade**.
+ Opte por habilitar a filtragem automática de espaços com base em sua identidade da AWS .

# AWS Regiões suportadas
<a name="remote-access-supported-regions"></a>

A tabela a seguir lista as AWS regiões nas quais as conexões remotas do IDE com os espaços do Studio são suportadas, junto com as IDEs disponíveis em cada região.


| AWS Região | VS Code | Kiro | Cursor | 
| --- | --- | --- | --- | 
| us-east-1 | Compatível | Compatível | Compatível | 
| us-east-2 | Compatível | Compatível | Compatível | 
| us-west-1 | Compatível | Compatível | Compatível | 
| us-west-2 | Compatível | Compatível | Compatível | 
| af-south-1 | Compatível | Compatível | Compatível | 
| ap-east-1 | Compatível | Compatível | Compatível | 
| ap-south-1 | Compatível | Compatível | Compatível | 
| ap-northeast-1 | Compatível | Compatível | Compatível | 
| ap-northeast-2 | Compatível | Compatível | Compatível | 
| ap-northeast-3 | Compatível | Compatível | Compatível | 
| ap-southeast-1 | Compatível | Compatível | Compatível | 
| ap-southeast-2 | Compatível | Compatível | Compatível | 
| ap-southeast-3 | Compatível | Compatível | Compatível | 
| ap-southeast-5 | Compatível | Compatível | Compatível | 
| ca-central-1 | Compatível | Compatível | Compatível | 
| eu-central-1 | Compatível | Compatível | Compatível | 
| eu-central-2 | Compatível | Compatível | Compatível | 
| eu-north-1 | Compatível | Compatível | Compatível | 
| eu-south-1 | Compatível | Compatível | Compatível | 
| eu-south-2 | Compatível | Compatível | Compatível | 
| eu-west-1 | Compatível | Compatível | Compatível | 
| eu-west-2 | Compatível | Compatível | Compatível | 
| eu-west-3 | Compatível | Compatível | Compatível | 
| il-central-1 | Compatível | Compatível | Compatível | 
| me-central-1 | Compatível | Não compatível | Sem compatibilidade | 
| me-south-1 | Compatível | Não compatível | Sem compatibilidade | 
| sa-east-1 | Compatível | Compatível | Compatível | 

# Traga sua própria imagem (BYOI)
<a name="studio-updated-byoi"></a>

Uma imagem é um arquivo que identifica os kernels, os pacotes de linguagem e outras dependências necessárias para executar suas aplicações. Inclui:
+ Linguagens de programação (como Python ou R)
+ Kernels
+ Bibliotecas e pacotes
+ Outro software necessário

O Amazon SageMaker Distribution (`sagemaker-distribution`) é um conjunto de imagens do Docker que inclui estruturas e pacotes populares para aprendizado de máquina, ciência de dados e visualização. Para obter mais informações, consulte [SageMaker Política de suporte de imagem do Studio](sagemaker-distribution.md).

Se precisar de uma funcionalidade diferente, você pode trazer sua própria imagem (BYOI). É recomendável criar uma imagem personalizada se:
+ Você precisar de uma versão específica de uma linguagem de programação ou biblioteca.
+ Você desejar incluir ferramentas ou pacotes personalizados.
+ Você estiver trabalhando com um software especializado que não está disponível nas imagens padrão.

## Terminologia básica
<a name="studio-updated-byoi-basics"></a>

A seção a seguir define os principais termos para usar sua própria imagem com a SageMaker IA.
+ **Dockerfile:** um documento baseado em texto com instruções para criar uma imagem do Docker. Ele identifica os pacotes de idiomas e outras dependências da sua imagem do Docker.
+ **Imagem do Docker:** um conjunto empacotado de software e dependências criado com base em um Dockerfile.
+ **SageMaker Armazenamento de imagens de IA:** um armazenamento de suas imagens personalizadas em SageMaker IA.

**Topics**
+ [Terminologia básica](#studio-updated-byoi-basics)
+ [Especificações de imagem personalizadas](studio-updated-byoi-specs.md)
+ [Como trazer sua própria imagem](studio-updated-byoi-how-to.md)
+ [Iniciar uma imagem personalizada no Studio](studio-updated-byoi-how-to-launch.md)
+ [Visualizar detalhes da imagem personalizada](studio-updated-byoi-view-images.md)
+ [Acelere a inicialização de contêineres com o SOCI](soci-indexing.md)
+ [Desanexar imagens personalizadas e limpar os recursos correspondentes](studio-updated-byoi-how-to-detach-from-domain.md)

# Especificações de imagem personalizadas
<a name="studio-updated-byoi-specs"></a>

A imagem que você especifica no Dockerfile deve atender as especificações nas seções a seguir para criar a imagem com sucesso.

**Topics**
+ [Executando a imagem](#studio-updated-byoi-specs-run)
+ [Especificações para o usuário e o sistema de arquivos](#studio-updated-byoi-specs-user-and-filesystem)
+ [Verificação de integridade e URL de aplicações](#studio-updated-byoi-specs-app-healthcheck)
+ [Exemplos de Dockerfile](#studio-updated-byoi-specs-dockerfile-templates)

## Executando a imagem
<a name="studio-updated-byoi-specs-run"></a>

As configurações a seguir podem ser feitas atualizando sua [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerConfig.html). Para ver um exemplo, consulte [Atualizar a configuração do contêiner](studio-updated-byoi-how-to-container-configuration.md).
+ `Entrypoint`: você pode configurar `ContainerArguments` e `ContainerEntrypoint`, que são transferidos para o contêiner no runtime. Recomendamos que você use `ContainerConfig` para configurar seu ponto de entrada. Consulte o link acima para ver um exemplo.
+ `EnvVariables`: ao usar o Studio, você pode definir variáveis personalizadas de `ContainerEnvironment` para seu contêiner. Opcionalmente, use `ContainerConfig` para atualizar suas variáveis de ambiente. Consulte o link acima para ver um exemplo.

  SageMaker As variáveis de ambiente específicas da IA têm precedência e substituirão todas as variáveis com os mesmos nomes. Por exemplo, a SageMaker IA fornece automaticamente variáveis de ambiente prefixadas com `AWS_` e `SAGEMAKER_` para garantir a integração adequada com AWS os serviços e a funcionalidade da SageMaker IA. Veja a seguir alguns exemplos de variáveis de ambiente SageMaker específicas de IA:
  + `AWS_ACCOUNT_ID`
  + `AWS_REGION`
  + `AWS_DEFAULT_REGION`
  + `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`
  + `SAGEMAKER_SPACE_NAME`
  + `SAGEMAKER_APP_TYPE`

## Especificações para o usuário e o sistema de arquivos
<a name="studio-updated-byoi-specs-user-and-filesystem"></a>
+ `WorkingDirectory`: O volume do Amazon EBS do seu espaço está montado no caminho `/home/sagemaker-user`. Não é possível mudar o caminho de montagem. Use a instrução `WORKDIR` para definir o diretório de trabalho da sua imagem como uma pasta em `/home/sagemaker-user`.
+ `UID`: O ID do usuário do contêiner do Docker. UID=1000 é um valor compatível. É possível adicionar acesso sudo aos seus usuários. Eles IDs são remapeados para evitar que um processo em execução no contêiner tenha mais privilégios do que o necessário.
+ `GID`: O ID do grupo do contêiner do Docker. GID=100 é um valor compatível. É possível adicionar acesso sudo aos seus usuários. Eles IDs são remapeados para evitar que um processo em execução no contêiner tenha mais privilégios do que o necessário.
+ Diretórios de metadados — Os `/opt/ml` diretórios `/opt/.sagemakerinternal` e que são usados pelo. AWS O arquivo de metadados em `/opt/ml` contém metadados sobre recursos como `DomainId`.

  Use o seguinte comando para mostrar o conteúdo do sistema de arquivos:

  ```
  cat /opt/ml/metadata/resource-metadata.json
  ```
+ Diretórios de registro: `/var/log/studio` são reservados para os diretórios de suas aplicações e as extensões correspondentes. Recomendamos que você não use essas pastas para criar a imagem.

## Verificação de integridade e URL de aplicações
<a name="studio-updated-byoi-specs-app-healthcheck"></a>

A verificação de integridade e o URL dependem das aplicações. Escolha o link a seguir associado à aplicação para a qual você está criando a imagem.
+ [Verificação de integridade e URL de aplicações](code-editor-custom-images.md#code-editor-custom-images-app-healthcheck) para o Editor de Código
+ [Verificação de integridade e URL de aplicações](studio-updated-jl-admin-guide-custom-images.md#studio-updated-jl-admin-guide-custom-images-app-healthcheck) para JupyterLab

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

Para ver exemplos de Dockerfile que atendam aos requisitos nesta página e às necessidades específicas de sua aplicação, acesse os exemplos de Dockerfile na seção da respectiva aplicação. As opções a seguir incluem aplicativos Amazon SageMaker Studio. 
+ [Exemplos de Dockerfile](code-editor-custom-images.md#code-editor-custom-images-dockerfile-templates) para o Editor de Código
+ [Exemplos de Dockerfile](studio-updated-jl-admin-guide-custom-images.md#studio-updated-jl-custom-images-dockerfile-templates)para JupyterLab

**nota**  
Se você estiver trazendo sua própria imagem para o SageMaker Unified Studio, precisará seguir as [especificações do Dockerfile](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html) no Guia do *usuário do Amazon SageMaker Unified Studio*.  
`Dockerfile`exemplos do SageMaker Unified Studio podem ser encontrados no [exemplo do Dockerfile no Guia do](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example) *usuário do Amazon SageMaker Unified Studio*.

# Como trazer sua própria imagem
<a name="studio-updated-byoi-how-to"></a>

As páginas a seguir fornecerão instruções sobre trazer sua própria imagem personalizada. Os pré-requisitos a seguir devem ser atendidos para continuar.

## Pré-requisitos
<a name="studio-updated-byoi-how-to-prerequisites"></a>

Você precisará preencher os seguintes pré-requisitos para trazer sua própria imagem para a Amazon AI. SageMaker 
+ Configure a aplicação do Docker. Para ter mais informações, consulte [Get started](https://docs.docker.com/get-started/) na *documentação do Docker*.
+ Instale o mais recente AWS CLI seguindo as etapas em [Introdução ao AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) no *Guia do AWS Command Line Interface usuário da versão 2*.
+ Permissões de acesso ao serviço Amazon Elastic Container Registry (Amazon ECR). Para ter mais informações, consulte [Amazon ECR Managed Policies](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ecr_managed_policies.html) no *Guia do usuário do Amazon ECR*.
+ Uma AWS Identity and Access Management função que tem a [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)política anexada.

**Topics**
+ [Pré-requisitos](#studio-updated-byoi-how-to-prerequisites)
+ [Criar uma imagem personalizada e enviá-la ao Amazon ECR](studio-updated-byoi-how-to-prepare-image.md)
+ [Anexar imagem personalizada ao seu domínio](studio-updated-byoi-how-to-attach-to-domain.md)
+ [Atualizar a configuração do contêiner](studio-updated-byoi-how-to-container-configuration.md)

# Criar uma imagem personalizada e enviá-la ao Amazon ECR
<a name="studio-updated-byoi-how-to-prepare-image"></a>

Esta página fornece instruções sobre como criar um Dockerfile local, criar a imagem do contêiner e adicioná-la ao Amazon Elastic Container Registry (Amazon ECR).

**nota**  
Nos exemplos a seguir, as tags não são especificadas e a tag `latest` é aplicada por padrão. Se quiser especificar uma tag, você precisará acrescentar `:tag` ao final dos nomes das imagens. Para ter mais informações, consulte [docker image tag](https://docs.docker.com/reference/cli/docker/image/tag/) na *documentação do Docker*.

**Topics**
+ [Criar um Dockerfile local e a imagem do contêiner](#studio-updated-byoi-how-to-create-local-dockerfile)
+ [Adicionar uma imagem do Docker ao Amazon ECR](#studio-updated-byoi-add-container-image)

## Criar um Dockerfile local e a imagem do contêiner
<a name="studio-updated-byoi-how-to-create-local-dockerfile"></a>

Use as instruções a seguir para criar um Dockerfile com o software e as dependências que você deseja.

**Como criar o Dockerfile**

1. Primeiro, defina suas variáveis para os AWS CLI comandos a seguir.

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

   `local-image-name` é o nome da imagem do contêiner em seu dispositivo local, que você define aqui.

1. Crie um documento baseado em texto, chamado `Dockerfile`, que atenda às especificações em [Especificações de imagem personalizadas](studio-updated-byoi-specs.md).

   Exemplos do `Dockerfile` de aplicações compatíveis podem ser encontrados em [Exemplos de Dockerfile](studio-updated-byoi-specs.md#studio-updated-byoi-specs-dockerfile-templates).
**nota**  
Se você estiver trazendo sua própria imagem para o SageMaker Unified Studio, precisará seguir as [especificações do Dockerfile](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html) no Guia do *usuário do Amazon SageMaker Unified Studio*.  
`Dockerfile`exemplos do SageMaker Unified Studio podem ser encontrados no [exemplo do Dockerfile no Guia do](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example) *usuário do Amazon SageMaker Unified Studio*.

1. No mesmo diretório que contém seu `Dockerfile`, crie a imagem do Docker usando o comando a seguir. O ponto (`.`) especifica que o `Dockerfile` deve estar no contexto do comando de compilação.

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

   Depois que a compilação for concluída, você poderá listar as informações da imagem do contêiner com o comando a seguir.

   ```
   docker images
   ```

1. (Opcional) É possível testar sua imagem usando o comando a seguir.

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

   Na saída, você perceberá que seu servidor está sendo executado em um URL, como `http://127.0.0.1:8888/...`. Você pode testar a imagem copiando o URL no navegador. 

   Se isso não funcionar, talvez seja necessário incluir `-p port:port` no comando docker run. Essa opção associa a porta exposta no contêiner à porta no sistema de host. Para saber mais sobre a execução do Docker, consulte [Running containers](https://docs.docker.com/engine/containers/run/) na *documentação do Docker*.

   Depois de verificar se o servidor está funcionando, você pode interrompê-lo e desligar todos os kernels antes de continuar. As instruções podem ser visualizadas na saída.

## Adicionar uma imagem do Docker ao Amazon ECR
<a name="studio-updated-byoi-add-container-image"></a>

Use as etapas a seguir para adicionar uma imagem de contêiner do Docker ao Amazon ECR.
+ Crie um repositório do Amazon ECR.
+ Faça login no seu registro padrão.
+ Empurre a imagem para o repositório do Amazon ECR.

**nota**  
O repositório Amazon ECR deve estar no mesmo domínio Região da AWS ao qual você está anexando a imagem.

**Como criar e envia uma imagem de contêiner ao Amazon ECR**

1. Primeiro, defina suas variáveis para os AWS CLI comandos a seguir.

   ```
   ACCOUNT_ID=account-id
   REGION=aws-region
   ECR_REPO_NAME=ecr-repository-name
   ```
   + `account-id` é o ID de sua conta. Você pode encontrar isso no canto superior direito de qualquer página AWS do console. Por exemplo, o [console SageMaker AI](https://console.aws.amazon.com/sagemaker).
   + `aws-region`é o Região da AWS do seu domínio Amazon SageMaker AI. Você pode encontrar isso no canto superior direito de qualquer página AWS do console. 
   + `ecr-repository-name` é o nome do seu repositório do Amazon Elastic Container Registry, que você define aqui. Para visualizar seus repositórios do Amazon ECR, consulte [Console do Amazon ECR](https://console.aws.amazon.com/ecr).

1. Faça login no Amazon ECR e entre no Docker.

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

   Se a autenticação for bem-sucedida, você receberá uma mensagem de login bem-sucedido.
**Importante**  
Se você receber um erro, talvez seja necessário instalar ou atualizar para a versão mais recente da AWS CLI. Para obter mais informações, consulte [Instalar a AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) no *Guia do usuário da AWS Command Line Interface *.

1. Marque a imagem em um formato compatível com o Amazon ECR para enviá-la ao repositório.

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

1. Crie um repositório do Amazon ECR usando a AWS CLI. Para criar o repositório usando o console do Amazon ECR, consulte [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. Envie a imagem por push ao seu repositório do Amazon ECR. Você também pode atribuir uma tag à imagem do Docker.

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

Depois que a imagem for adicionada com êxito ao repositório do Amazon ECR, você poderá visualizá-la no [console do Amazon ECR](https://console.aws.amazon.com/ecr).

# Anexar imagem personalizada ao seu domínio
<a name="studio-updated-byoi-how-to-attach-to-domain"></a>

Esta página contém instruções sobre como anexar uma imagem personalizada ao seu domínio. Use o procedimento a seguir para usar o console do Amazon SageMaker AI para navegar até seu domínio e iniciar o processo de **anexar imagem**.

As instruções a seguir pressupõem que você tenha enviado uma imagem para um repositório Amazon ECR no mesmo que seu Região da AWS domínio. Se ainda não fez feito isso, consulte [Criar uma imagem personalizada e enviá-la ao Amazon ECR](studio-updated-byoi-how-to-prepare-image.md).

Ao escolher anexar uma imagem, há duas opções:
+ Anexar uma **nova imagem**: essa opção criará uma imagem e uma versão de imagem em seu armazenamento de imagens de SageMaker IA e, em seguida, as anexará ao seu domínio.
**nota**  
Se você estiver continuando o processo de BYOI, em [Criar uma imagem personalizada e enviá-la ao Amazon ECR](studio-updated-byoi-how-to-prepare-image.md), use a opção **Nova imagem**.
+ Anexar uma **imagem existente**: se você já criou a imagem personalizada pretendida no armazenamento de imagens de SageMaker IA, use essa opção. Esta opção anexa uma imagem personalizada existente ao seu domínio. Para ver suas imagens personalizadas no armazenamento de imagens de SageMaker IA, consulte[Visualizar detalhes da imagem personalizada (console)](studio-updated-byoi-view-images.md#studio-updated-byoi-view-images-console).

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

**Como anexar uma nova imagem ao seu domínio**

1. Abra o [console de SageMaker IA](https://console.aws.amazon.com/sagemaker).

1. Expanda a seção **Configurações do administrador**, se ainda não tiver feito isso.

1. Em **Configurações do administrador**, escolha **Domínios**.

1. Na lista **Domínios**, selecione o domínio ao qual deseja anexar a imagem.
**nota**  
Se você estiver anexando a imagem a um projeto do SageMaker Unified Studio e precisar de esclarecimentos sobre qual domínio usar, consulte [Exibir os detalhes do domínio de SageMaker IA associados ao seu](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/view-project-details.html#view-project-details-smai-domain) projeto.

1. Abra a página de **Ambiente**.

1. Na seção **Imagens personalizadas para aplicações pessoais do Studio**, escolha **Anexar imagem**.

1. Em **Origem da imagem**, escolha **Imagem existente**.

1. Inclua o URI da imagem do Amazon ECR. O formato é o seguinte.

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

   1. Para obter o URI da imagem do Amazon ECR, navegue até a página [Repositórios privados do Amazon ECR](https://console.aws.amazon.com/ecr/private-registry/repositories).

   1. Escolha o link do nome do repositório.

   1. Escolha o ícone de **copiar URI** que corresponde à versão da sua imagem (**Etiqueta da imagem**).

1. Siga o restante das instruções para anexar sua imagem personalizada.
**nota**  
Verifique se você está usando o tipo de aplicação consistente com o seu `Dockerfile`. Para obter mais informações, consulte [Exemplos de Dockerfile](studio-updated-byoi-specs.md#studio-updated-byoi-specs-dockerfile-templates).

Depois que a imagem for anexada com êxito ao seu domínio, você poderá visualizá-la na guia **Ambiente**.

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

**Como anexar uma imagem existente ao seu domínio**

1. Abra o [console de SageMaker IA](https://console.aws.amazon.com/sagemaker).

1. Expanda a seção **Configurações do administrador**, se ainda não tiver feito isso.

1. Em **Configurações do administrador**, escolha **Domínios**.

1. Na lista **Domínios**, selecione o domínio ao qual deseja anexar a imagem.
**nota**  
Se você estiver anexando a imagem a um projeto do SageMaker Unified Studio e precisar de esclarecimentos sobre qual domínio usar, consulte [Exibir os detalhes do domínio de SageMaker IA associados ao seu](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/view-project-details.html#view-project-details-smai-domain) projeto.

1. Abra a página de **Ambiente**.

1. Na seção **Imagens personalizadas para aplicações pessoais do Studio**, escolha **Anexar imagem**.

1. Em **Origem da imagem**, escolha **Imagem existente**.

1. Escolha uma imagem existente e uma versão de imagem no armazenamento de imagens de SageMaker IA.

   Se você não conseguir visualizar a versão da imagem, talvez seja necessário criar uma versão da imagem. Para obter mais informações, consulte [Visualizar detalhes da imagem personalizada (console)](studio-updated-byoi-view-images.md#studio-updated-byoi-view-images-console).

1. Siga o restante das instruções para anexar sua imagem personalizada.
**nota**  
Verifique se você está usando o tipo de aplicação consistente com o seu `Dockerfile`. Para obter mais informações, consulte [Exemplos de Dockerfile](studio-updated-byoi-specs.md#studio-updated-byoi-specs-dockerfile-templates).

Depois que a imagem for anexada com êxito ao seu domínio, você poderá visualizá-la na guia **Ambiente**.

------

Depois que sua imagem for anexada com êxito ao seu domínio, os usuários do domínio poderão escolhê-la para a aplicação deles. Para obter mais informações, consulte [Iniciar uma imagem personalizada no Studio](studio-updated-byoi-how-to-launch.md).

**nota**  
Se você anexou uma imagem personalizada ao seu projeto do SageMaker Unified Studio, precisará iniciar o aplicativo de dentro do SageMaker Unified Studio. Para obter mais informações, consulte [Inicie sua imagem personalizada](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-launch-custom-image.html) no *Guia do usuário do Amazon SageMaker Unified Studio*.

# Atualizar a configuração do contêiner
<a name="studio-updated-byoi-how-to-container-configuration"></a>

Você pode trazer imagens do Docker personalizadas para seus fluxos de trabalho de machine learning. Um aspecto fundamental da personalização dessas imagens é definir as configurações do contêiner (ou [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ContainerConfig.html)). A página a seguir apresenta um exemplo de como definir sua `ContainerConfig`. 

Um ponto de entrada é o comando ou script executado quando o contêiner é iniciado. Os pontos de entrada personalizados permitem configurar seu ambiente, inicializar serviços ou executar quaisquer configurações necessárias antes da inicialização da aplicação. 

Este exemplo fornece instruções sobre como configurar um ponto de entrada personalizado para seu JupyterLab aplicativo usando o. AWS CLI Este exemplo pressupõe que você já tenha criado uma imagem e um domínio personalizados. Para instruções, consulte [Anexar imagem personalizada ao seu domínio](studio-updated-byoi-how-to-attach-to-domain.md).

1. Primeiro, defina suas variáveis para os AWS CLI comandos a seguir.

   ```
   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` é o nome da configuração da imagem da aplicação.
   + `entrypoint-file-name` é o nome do script do ponto de entrada do contêiner. Por exemplo, .`entrypoint.sh`
   + `environment-key` é o nome de sua variável de ambiente.
   + `environment-value` é o valor atribuído à variável de ambiente.
   + `aws-region`é o Região da AWS do seu domínio Amazon SageMaker AI. Você pode encontrar isso no canto superior direito de qualquer página AWS do console. 
   + `domain-id` é o ID do seu domínio. Para visualizar seus domínios, consulte [Visualizar domínios](domain-view.md).
   + `custom-image-name` é o nome da imagem personalizada. Para visualizar os detalhes da imagem personalizada, consulte [Visualizar detalhes da imagem personalizada (console)](studio-updated-byoi-view-images.md#studio-updated-byoi-view-images-console).

     Se você seguiu as instruções em [Anexar imagem personalizada ao seu domínio](studio-updated-byoi-how-to-attach-to-domain.md), é recomendável usar o mesmo nome de imagem usado nesse processo.
   + `custom-image-version` é o número da versão da imagem personalizada. Ele deve ser um número inteiro, representando a versão da sua imagem. Para visualizar os detalhes da imagem personalizada, consulte [Visualizar detalhes da imagem personalizada (console)](studio-updated-byoi-view-images.md#studio-updated-byoi-view-images-console).

1. Usar a API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAppImageConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAppImageConfig.html) para criar uma configuração de imagem.

   ```
   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. Use a API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateDomain.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateDomain.html) para atualizar as configurações padrão do seu domínio. Isso anexará a imagem personalizada e a configuração da imagem da aplicação. 

   ```
   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}\"
                   }
               ]
           }
       }"
   ```

# Iniciar uma imagem personalizada no Studio
<a name="studio-updated-byoi-how-to-launch"></a>

Depois de anexar uma imagem personalizada ao seu domínio Amazon SageMaker AI, a imagem fica disponível para os usuários no domínio. Use as instruções a seguir para iniciar uma aplicação com a imagem personalizada.

**nota**  
Se você anexou uma imagem personalizada ao seu projeto do SageMaker Unified Studio, precisará iniciar o aplicativo de dentro do SageMaker Unified Studio. Para obter mais informações, consulte [Inicie sua imagem personalizada](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-launch-custom-image.html) no *Guia do usuário do Amazon SageMaker Unified Studio*.

1. Inicie o Amazon SageMaker Studio. Para instruções, consulte [Inicie o Amazon SageMaker Studio](studio-updated-launch.md).

1. Se ainda não tiver feito isso, expanda a seção **Aplicações**.

1. Na seção **Aplicações**, escolha a aplicação. Se você não vir a aplicação disponível, isso significa que ela pode estar oculta para você. Nesse caso, entre em contato com o administrador.

1. Para criar um espaço, escolha **\$1 Criar *application* espaço** e siga as instruções para criar o espaço.

   Para escolher um espaço existente, selecione o nome do link do espaço que você deseja abrir.

   

1. Em **Imagem**, escolha a imagem que você deseja usar.

   Se o menu suspenso **Imagem** não estiver disponível, talvez seja necessário interromper o espaço. Escolha **Interromper espaço** para fazer isso.

1. Defina as configurações do espaço e escolha **Executar espaço**.

# Visualizar detalhes da imagem personalizada
<a name="studio-updated-byoi-view-images"></a>

A página a seguir fornece instruções sobre como visualizar os detalhes de sua imagem personalizada no armazenamento de imagens de SageMaker IA.

## Visualizar detalhes da imagem personalizada (console)
<a name="studio-updated-byoi-view-images-console"></a>

Veja a seguir instruções sobre como visualizar suas imagens personalizadas usando o console SageMaker AI. Nesta seção, você pode visualizar e editar os detalhes da imagem.

**Visualizar imagens personalizadas (console)**

1. Abra o [console de SageMaker IA](https://console.aws.amazon.com/sagemaker).

1. Expanda a seção **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Imagens**.

1. Na lista **Imagens personalizadas**, selecione o hiperlink do nome da imagem.

## Visualizar detalhes da imagem personalizada (AWS CLI)
<a name="studio-updated-byoi-view-images-cli"></a>

A seção a seguir mostra um exemplo de como visualizar suas imagens personalizadas usando a AWS CLI.

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

# Acelere a inicialização de contêineres com o SOCI
<a name="soci-indexing"></a>

[A indexação SOCI (Seekable Open Container Initiative) permite o carregamento lento de imagens personalizadas de contêineres no Amazon Unified Studio ou [SageMaker Estúdio Amazon](studio-updated.md) no Amazon Unified Studio. SageMaker ](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/what-is-sagemaker-unified-studio.html) O SOCI reduz significativamente os tempos de inicialização em aproximadamente 30 a 70% para seus contêineres personalizados[Traga sua própria imagem (BYOI)](studio-updated-byoi.md). A melhoria da latência varia dependendo do tamanho da imagem, da disponibilidade da instância de hospedagem e de outras dependências do aplicativo. O SOCI cria um índice que permite que os contêineres sejam iniciados somente com os componentes necessários, obtendo arquivos adicionais sob demanda, conforme necessário.

O SOCI aborda tempos lentos de inicialização de contêineres, que interrompem os fluxos de trabalho iterativos de desenvolvimento de aprendizado de máquina (ML) para imagens personalizadas. À medida que as cargas de trabalho de ML se tornam mais complexas, as imagens de contêiner aumentam, criando atrasos na inicialização que prejudicam os ciclos de desenvolvimento.

**Topics**
+ [Benefícios principais](#soci-indexing-key-benefits)
+ [Como funciona a indexação SOCI](#soci-indexing-how-works)
+ [Componentes da arquitetura](#soci-indexing-architecture-components)
+ [Ferramentas compatíveis](#soci-indexing-supported-tools)
+ [Permissões para indexação SOCI](soci-indexing-setup.md)
+ [Crie índices SOCI com nerdctl e exemplo de SOCI CLI](soci-indexing-example-create-indexes.md)
+ [Integre imagens indexadas pelo SOC com o exemplo do Studio](soci-indexing-example-integrate-studio.md)

## Benefícios principais
<a name="soci-indexing-key-benefits"></a>
+ **Ciclos de iteração mais rápidos**: reduza a inicialização do contêiner, dependendo dos tipos de imagem e instância
+ **Otimização universal**: estenda os benefícios de desempenho a todos os contêineres BYOI personalizados no Studio

## Como funciona a indexação SOCI
<a name="soci-indexing-how-works"></a>

O SOCI cria um índice de metadados especializado que mapeia a estrutura interna de arquivos da imagem do contêiner. Esse índice permite o acesso a arquivos individuais sem baixar a imagem inteira. O índice SOCI é armazenado como um artefato compatível com OCI (Open Container Initiative) no [Amazon](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) ECR e vinculado à imagem original do contêiner, preservando os resumos da imagem e a validade da assinatura.

Quando você inicia um contêiner no Studio, o sistema usa o índice SOCI para identificar e baixar somente os arquivos essenciais necessários para a inicialização. Componentes adicionais são obtidos paralelamente conforme seu aplicativo os exige.

## Componentes da arquitetura
<a name="soci-indexing-architecture-components"></a>
+ **Imagem original do contêiner**: Seu contêiner básico armazenado no Amazon ECR
+ **Artefato de índice SOCI**: metadados mapeando a estrutura de arquivos da sua imagem
+ **Manifesto do OCI Image Index**: vincula sua imagem original e o índice SOCI
+ Tempo de **execução do contêiner Finch**: permite a integração de carregamento lento com o Studio

## Ferramentas compatíveis
<a name="soci-indexing-supported-tools"></a>


| Ferramenta | Integração | 
| --- | --- | 
| nerdctl | Requer configuração de containerd | 
| CLI do Finch | Suporte nativo ao SOCI | 
| Docker \$1 SOCI CLI | Ferramentas adicionais necessárias | 

**Topics**
+ [Benefícios principais](#soci-indexing-key-benefits)
+ [Como funciona a indexação SOCI](#soci-indexing-how-works)
+ [Componentes da arquitetura](#soci-indexing-architecture-components)
+ [Ferramentas compatíveis](#soci-indexing-supported-tools)
+ [Permissões para indexação SOCI](soci-indexing-setup.md)
+ [Crie índices SOCI com nerdctl e exemplo de SOCI CLI](soci-indexing-example-create-indexes.md)
+ [Integre imagens indexadas pelo SOC com o exemplo do Studio](soci-indexing-example-integrate-studio.md)

# Permissões para indexação SOCI
<a name="soci-indexing-setup"></a>

[Crie índices SOCI para suas imagens de contêiner e armazene-os no Amazon ECR antes de usar a indexação SOCI com [SageMaker Estúdio Amazon](studio-updated.md) o Amazon Unified Studio. SageMaker ](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/what-is-sagemaker-unified-studio.html)

**Topics**
+ [Pré-requisitos](#soci-indexing-setup-prerequisites)
+ [Permissões obrigatórias do IAM](#soci-indexing-setup-iam-permissions)

## Pré-requisitos
<a name="soci-indexing-setup-prerequisites"></a>
+ Conta da AWS com uma função [AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started.html)(IAM) com permissões para gerenciar
  + [Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)
  + [ SageMaker Inteligência Artificial da Amazon](https://docs.aws.amazon.com/sagemaker/latest/dg/gs.html)
+ [Repositórios privados do Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html) para armazenar suas imagens de contêineres
+ [AWS CLI v2.0\$1](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) configurado com as credenciais apropriadas
+ As seguintes ferramentas de contêiner:
  + Obrigatório: [soci-snapshotter](https://github.com/awslabs/soci-snapshotter)
  + Opções:
    + [nerdctl](https://github.com/containerd/nerdctl)
    + [tentilhão](https://github.com/runfinch/finch)

## Permissões obrigatórias do IAM
<a name="soci-indexing-setup-iam-permissions"></a>

Sua função do IAM precisa de permissões para:
+ Crie e gerencie recursos de SageMaker IA (domínios, imagens, configurações de aplicativos).
  + Você pode usar a política [SageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html) AWS gerenciada. Para obter mais detalhes sobre a permissão, consulte[AWS política gerenciada: AmazonSageMakerFullAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSageMakerFullAccess).
+ [Permissões do IAM para enviar uma imagem para um repositório privado do Amazon ECR.](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-push-iam.html)

# Crie índices SOCI com nerdctl e exemplo de SOCI CLI
<a name="soci-indexing-example-create-indexes"></a>

A página a seguir fornece um exemplo de como criar índices SOCI com nerdctl e SOCI CLI.

**Exemplo de criação de índices SOCI**

1. Primeiro, defina suas variáveis para os AWS CLI comandos a seguir. Veja a seguir um exemplo de como configurar suas variáveis.

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

   Definições de variáveis:
   + `ACCOUNT_ID`é o seu Conta da AWS ID
   + `REGION`é o Região da AWS do seu registro privado do Amazon ECR
   + `REPOSITORY_NAME`é o nome do seu registro privado do Amazon ECR
   + `ORIGINAL_IMAGE_TAG`é a etiqueta da sua imagem original
   + `SOCI_IMAGE_TAG`é a tag da sua imagem indexada pelo SOC

1. Instale as ferramentas necessárias:

   ```
   # 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. Defina suas variáveis de registro:

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

1. Exporte sua região e autentique-se no 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. Puxe a imagem original do contêiner:

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

1. Crie o índice SOCI:

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

1. Envie a imagem indexada pelo Soci-Index:

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

Esse processo cria dois artefatos para a imagem original do contêiner em seu repositório ECR:
+ Índice SOCI - Metadados que permitem carregamento lento
+ Manifesto do Image Index - Manifesto compatível com OCI

# Integre imagens indexadas pelo SOC com o exemplo do Studio
<a name="soci-indexing-example-integrate-studio"></a>

Você deve referenciar a tag de imagem indexada por SOC para usar imagens indexadas por SOC no Studio, em vez da tag de imagem do contêiner original. Use a tag que você especificou durante o processo de conversão do SOCI (por exemplo, `SOCI_IMAGE_TAG` no[Crie índices SOCI com nerdctl e exemplo de SOCI CLI](soci-indexing-example-create-indexes.md)).

**Exemplo de integração de imagens indexadas pelo SOC**

1. Primeiro, defina suas variáveis para os AWS CLI comandos a seguir. Veja a seguir um exemplo de como configurar suas variáveis.

   ```
   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"
   ```

   Definições de variáveis:
   + `ACCOUNT_ID`é o seu Conta da AWS ID
   + `REGION`é o Região da AWS do seu registro privado do Amazon ECR
   + `IMAGE_NAME`é o nome da sua SageMaker imagem
   + `IMAGE_CONFIG_NAME`é o nome da configuração da sua SageMaker imagem
   + `ROLE_ARN`é o ARN da sua função de execução com as permissões listadas em Permissões [obrigatórias](soci-indexing-setup.md#soci-indexing-setup-iam-permissions) do IAM
   + `DOMAIN_ID`é o [ID do domínio](https://docs.aws.amazon.com/sagemaker/latest/dg/domain-view.html)
**nota**  
Se você estiver anexando a imagem a um projeto do SageMaker Unified Studio e precisar de esclarecimentos sobre qual domínio usar, consulte [Exibir os detalhes do domínio de SageMaker IA associados ao seu](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/view-project-details.html#view-project-details-smai-domain) projeto.
   + `SOCI_IMAGE_TAG`é a tag da sua imagem indexada pelo SOC

1. Exporte sua região:

   ```
   export AWS_REGION=$REGION
   ```

1. Crie uma SageMaker imagem:

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

1. Crie uma versão de SageMaker imagem usando seu URI de índice 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. Crie uma configuração de imagem do aplicativo e atualize seu domínio do Amazon SageMaker AI para incluir a imagem personalizada do seu aplicativo. Você pode fazer isso para o Code Editor, com base em Code-OSS, Visual Studio Code - Open Source (Code Editor) e aplicativos. JupyterLab Escolha a opção de aplicativo abaixo para ver as etapas.

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

   Crie uma configuração de imagem do aplicativo para o 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 } }'
   ```

   Atualize seu domínio Amazon SageMaker AI para incluir a imagem personalizada para o Code Editor:

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

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

   Crie uma configuração de imagem do aplicativo para 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 } }'
   ```

   Atualize seu domínio Amazon SageMaker AI para incluir a imagem personalizada para JupyterLab:

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

------

1. Depois de atualizar seu domínio para incluir sua imagem personalizada, você pode criar um aplicativo no Studio usando sua imagem personalizada. Quando você [Iniciar uma imagem personalizada no Studio](studio-updated-byoi-how-to-launch.md) garante que está usando sua imagem personalizada.

# Desanexar imagens personalizadas e limpar os recursos correspondentes
<a name="studio-updated-byoi-how-to-detach-from-domain"></a>

A página a seguir fornece instruções sobre como separar suas imagens personalizadas e limpar os recursos relacionados usando o console Amazon SageMaker AI ou o AWS Command Line Interface (AWS CLI). 

**Importante**  
Primeiro, você deve separar sua imagem personalizada do seu domínio antes de excluí-la do armazenamento de imagens de SageMaker IA. Do contrário, você poderá receber erros ao visualizar as informações do seu domínio ou anexar novas imagens personalizadas ao seu domínio.   
Se você estiver recebendo um erro ao carregar uma imagem personalizada, consulte [Falha ao carregar a imagem personalizada](studio-updated-troubleshooting.md#studio-updated-troubleshooting-custom-image). 

## Desanexar e excluir imagens personalizadas (console)
<a name="studio-updated-byoi-how-to-detach-from-domain-console"></a>

Veja a seguir instruções sobre como separar suas imagens personalizadas da SageMaker IA e limpar seus recursos de imagem personalizada usando o console.

**Desanexar uma imagem personalizada do seu domínio**

1. Abra o [console de SageMaker IA](https://console.aws.amazon.com/sagemaker).

1. Expanda a seção **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**.

1. A partir da lista de **Domínios**, escolha um domínio.

1. Abra a página de **Ambiente**.

1. Em **Imagens personalizadas para aplicações pessoais do Studio**, marque as caixas de seleção das imagens que você deseja desanexar.

1. Escolha **Desassociar**.

1. Siga as instruções para desanexar.

**Excluir uma imagem personalizada**

1. Abra o [console de SageMaker IA](https://console.aws.amazon.com/sagemaker).

1. Expanda a seção **Configurações do administrador**, se ainda não tiver feito isso.

1. Em **Configurações do administrador**, escolha **Imagens**.

1. Na lista de **Imagens**, selecione a imagem que você gostaria de excluir.

1. Escolha **Excluir**.

1. Siga as instruções para excluir sua imagem e todas as suas versões da SageMaker IA.

**Excluir imagens personalizadas e o repositório do Amazon ECR**
**Importante**  
Isso também excluirá todos os artefatos e imagens do contêiner nesse repositório.

1. Abra o [console do Amazon ECR](https://console.aws.amazon.com/ecr).

1. Se ainda não tiver feito isso, expanda o painel de navegação à esquerda.

1. Em **Registro privado**, escolha **Repositórios**.

1. Selecione os repositórios que você deseja excluir.

1. Escolha **Excluir**.

1. Siga as instruções para excluir.

## Desanexar e excluir imagens personalizadas (AWS CLI)
<a name="studio-updated-byoi-how-to-detach-from-domain-cli"></a>

A seção a seguir mostra um exemplo de como desanexar suas imagens personalizadas usando a AWS CLI.

1. Primeiro, defina suas variáveis para os AWS CLI comandos a seguir.

   ```
   ACCOUNT_ID=account-id
   REGION=aws-region
   APP_IMAGE_CONFIG=app-image-config
   SAGEMAKER_IMAGE_NAME=custom-image-name
   ```
   + `aws-region`é o Região da AWS do seu domínio Amazon SageMaker AI. Você pode encontrar isso no canto superior direito de qualquer página AWS do console. 
   + `app-image-config` é o nome da configuração da imagem da aplicação. Use o AWS CLI comando a seguir para listar as configurações de imagem do aplicativo em seu Região da AWS.

     ```
     aws sagemaker list-app-image-configs \
            --region ${REGION}
     ```
   + `custom-image-name` é o nome da imagem personalizada. Use o AWS CLI comando a seguir para listar as imagens em seu Região da AWS.

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

1. Para desanexar a imagem e as versões correspondentes em seu domínio usando estas instruções, você precisará criar ou atualizar um arquivo json de configuração de domínio.
**nota**  
Se você seguiu as instruções em [Anexar imagem personalizada ao seu domínio](studio-updated-byoi-how-to-attach-to-domain.md), talvez tenha atualizado seu domínio usando o arquivo chamado `update-domain.json`.   
Se você não tiver esse arquivo, poderá criar outro arquivo json em vez desse.

   Crie um arquivo chamado `update-domain.json`, que você usará para atualizar seu domínio.

1. Para excluir as imagens personalizadas, você precisará deixar `CustomImages` em branco, desta forma `"CustomImages": []`. Escolha uma das opções a seguir para ver exemplos de arquivos de configuração para o Editor de código ou JupyterLab.

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

   Um exemplo de arquivo de configuração para o Editor de Código, usando [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 ]

   Um exemplo de arquivo de configuração para JupyterLab, usando [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` é o ID do domínio ao qual sua imagem está anexada. Use o comando a seguir para listar seus domínios.

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

1. Salve o arquivo.

1. Chame o [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html) AWS CLI usando o arquivo de configuração do domínio de atualização,. `update-domain.json`
**nota**  
Para atualizar as imagens personalizadas, é necessário excluir todas as **aplicações** em seu domínio. **Não** é necessário excluir perfis de usuário ou espaços compartilhados. Para obter instruções sobre como excluir aplicações, selecione uma das opções a seguir.  
Se você quiser usar o console de SageMaker IA, consulte[Encerre os recursos de SageMaker IA em seu domínio](sm-console-domain-resources-shut-down.md).
Se você quiser usar o AWS CLI, use as etapas 1 a 3 do[Excluir um domínio do 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. Exclua a configuração da imagem da aplicação.

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

1. Exclua a imagem personalizada. Isso também exclui todas as versões da imagem. Mas não exclui a imagem do contêiner do Amazon ECR e as versões correspondentes. Para isso, use as etapas opcionais abaixo.

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

1. (Opcional) Exclua seus recursos do Amazon ECR. A lista a seguir fornece AWS CLI comandos para obter suas informações de recursos do Amazon ECR para as etapas abaixo.

   1. Defina suas variáveis para os AWS CLI comandos a seguir.

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

      `ecr-repository-name` é o nome do seu repositório do Amazon Elastic Container Registry. 

      Para listar os detalhes dos seus repositórios, use o comando a seguir.

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

   1. Exclua seu repositório do Amazon ECR. 
**Importante**  
Isso também excluirá todos os artefatos e imagens do contêiner nesse repositório.

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

# Configurações de ciclo de vida no Amazon Studio SageMaker
<a name="studio-lifecycle-configurations"></a>

As configurações de ciclo de vida (LCCs) são scripts que administradores e usuários podem usar para automatizar a personalização dos seguintes aplicativos em seu ambiente Amazon Studio: SageMaker 
+  SageMaker IA da Amazon JupyterLab
+ Editor de Código, baseado em Code-OSS, Visual Studio Code - código aberto
+ Studio Classic
+ Instância de caderno

A personalização da sua aplicação inclui:
+ Como instalar pacotes personalizados
+ Configurar extensões
+ Como pré-carregar conjuntos de dados
+ Como configurar repositórios de código-fonte

Usuários criam e anexam configurações de ciclo de vida integradas aos seus próprios perfis de usuário. Administradores criam e anexam configurações de ciclo de vida padrão ou integradas no nível do domínio, do espaço ou do perfil do usuário.

**Importante**  
O Amazon SageMaker Studio primeiro executa a configuração de ciclo de vida integrada e, em seguida, executa a LCC padrão. A Amazon SageMaker AI não resolverá conflitos de pacotes entre o usuário e o administrador LCCs. Por exemplo, se a LCC integrada instalar o `python3.11` e a LCC padrão instalar o `python3.12`, o Studio instala o `python3.12`. 

# Criar e anexar configurações de ciclo de vida
<a name="studio-lifecycle-configurations-create"></a>

Você pode criar e anexar configurações de ciclo de vida usando o ou o. Console de gerenciamento da AWS AWS Command Line Interface

**Topics**
+ [Criar e anexar configurações de ciclo de vida (AWS CLI)](#studio-lifecycle-configurations-create-cli)
+ [Crie e anexe as configurações de ciclo de vida (console)](#studio-lifecycle-configurations-create-console)

## Criar e anexar configurações de ciclo de vida (AWS CLI)
<a name="studio-lifecycle-configurations-create-cli"></a>

**Importante**  
Antes de começar, conclua os seguintes pré-requisitos:   
Atualize o AWS CLI seguindo as etapas em [Instalando a AWS CLI versão atual](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled).
Em sua máquina local, execute `aws configure` e forneça suas AWS credenciais. Para obter informações sobre AWS credenciais, consulte [Entendendo e obtendo suas AWS credenciais](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 
Integre-se ao domínio Amazon SageMaker AI. Para obter informações conceituais, consulte [Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md). Para obter um guia de início rápido, consulte [Use a configuração rápida para Amazon SageMaker AI](onboard-quick-start.md).

O procedimento a seguir mostra como criar um script de configuração do ciclo de vida que é impresso `Hello World` no Editor de código ou. JupyterLab

**nota**  
Cada script pode ter até **16.384 caracteres**.

1. De sua máquina local, crie um arquivo denominado `my-script.sh` com o seguinte conteúdo:

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

1. Use o seguinte para converter seu arquivo `my-script.sh` no formato base64: Esse requisito evita erros que ocorram devido à codificação de espaçamento e quebra de linha.

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

1. Crie uma configuração de ciclo de vida para uso com o Studio. O comando a seguir cria uma configuração de ciclo de vida que é executada quando você inicia uma aplicação associada `JupyterLab`.

   ```
   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
   ```

   Para o `studio-lifecycle-config-app-type`, especifique *CodeEditor* ou *JupyterLab*.
**nota**  
O ARN da configuração de ciclo de vida recém-criada que é retornada. Esse ARN é necessário para anexar a configuração do ciclo de vida à sua aplicação.

Para garantir que os ambientes sejam personalizados de forma adequada, usuários e administradores usam comandos diferentes para anexar configurações de ciclo de vida.

### Anexe as configurações padrão de ciclo de vida (administrador)
<a name="studio-lifecycle-configurations-attach-cli-administrator"></a>

Para anexar a configuração do ciclo de vida, é necessário atualizar as `UserSettings` do seu domínio ou perfil de usuário. Os scripts de configuração do ciclo de vida associados no nível do domínio são herdados por todos os usuários. No entanto, os scripts associados no nível do perfil do usuário têm como escopo um usuário específico. 

Você pode criar um novo perfil de usuário, domínio ou espaço com uma configuração de ciclo de vida anexada usando os seguintes comandos:
+ [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)

O comando a seguir cria um perfil de usuário com uma configuração de ciclo de vida para um JupyterLab aplicativo. Adicione o ARN da configuração do ciclo de vida da etapa anterior às `JupyterLabAppSettings` do usuário. É possível adicionar várias configurações de ciclo de vida ao mesmo tempo usando uma lista de configurações de ciclo de vida. Quando um usuário inicia um JupyterLab aplicativo com o AWS CLI, ele pode especificar uma configuração de ciclo de vida em vez de usar a configuração padrão. A configuração de ciclo de vida que o usuário passa deve pertencer à lista de configurações de ciclo de vida em `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]
  }
}'
```

O comando a seguir cria um perfil de usuário com uma configuração de ciclo de vida para aplicação do Editor de código. Adicione o ARN da configuração do ciclo de vida da etapa anterior às `CodeEditorAppSettings` do usuário. É possível adicionar várias configurações de ciclo de vida ao mesmo tempo usando uma lista de configurações de ciclo de vida. Quando um usuário inicia uma aplicação do Editor de código com a AWS CLI, ele pode passar uma configuração de ciclo de vida em vez de usar a padrão. A configuração de ciclo de vida que o usuário passa deve pertencer à lista de configurações de ciclo de vida em `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]
  }
}'
```

### Anexe as configurações de ciclo de vida integradas (usuário)
<a name="studio-lifecycle-configurations-attach-cli-user"></a>

Para anexar a configuração do ciclo de vida, você deve atualizar as `UserSettings` do perfil de usuário.

O comando a seguir cria um perfil de usuário com uma configuração de ciclo de vida para um JupyterLab aplicativo. Adicione o ARN da configuração do ciclo de vida da etapa anterior às `JupyterLabAppSettings` do seu perfil de usuário.

```
# 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"
  }
}'
```

O comando a seguir cria um perfil de usuário com uma configuração de ciclo de vida para aplicação do Editor de código. Adicione o ARN da configuração do ciclo de vida da etapa anterior às `CodeEditorAppSettings` do seu perfil de usuário. A configuração de ciclo de vida que o usuário passa deve pertencer à lista de configurações de ciclo de vida em `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"
  }
}'
```

## Crie e anexe as configurações de ciclo de vida (console)
<a name="studio-lifecycle-configurations-create-console"></a>

Para criar e anexar configurações de ciclo de vida no Console de gerenciamento da AWS, navegue até o [console Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker) e escolha **Configurações de ciclo** de vida na navegação à esquerda. O console guiará você pelo processo de criação da configuração do ciclo de vida.

# Configuração de depuração do ciclo de vida
<a name="studio-lifecycle-configurations-debug"></a>

Os tópicos a seguir mostram como obter informações e depurar as configurações de ciclo de vida.

**Topics**
+ [Verifique o processo de configuração do ciclo de vida a partir do Logs CloudWatch](#studio-lifecycle-configurations-debug-logs)
+ [Tempo limite de configuração do ciclo de vida](studio-lifecycle-configurations-debug-timeout.md)

## Verifique o processo de configuração do ciclo de vida a partir do Logs CloudWatch
<a name="studio-lifecycle-configurations-debug-logs"></a>

Somente as configurações de ciclo de vida registram `STDOUT` e `STDERR`.

`STDOUT` é a saída padrão para scripts bash. Você pode escrever em `STDERR` anexando `>&2` ao final de um comando bash. Por exemplo, .`echo 'hello'>&2` 

Os registros de suas configurações de ciclo de vida são publicados para você usando Conta da AWS a Amazon. CloudWatch Esses registros podem ser encontrados no fluxo de `/aws/sagemaker/studio` registros no CloudWatch console.

1. Abra o CloudWatch console em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Selecione **Logs** no painel de navegação esquerdo. No menu suspenso, selecione **Grupo de logs**.

1. Na página **Grupos de logs**, pesquise por `aws/sagemaker/studio`. 

1. Selecione o grupo de logs .

1. Na página **Detalhes do grupo de logs**, escolha a guia **Fluxo de logs**.

1. Para encontrar os logs de uma aplicação e espaço específicos, pesquise os fluxos de logs usando o seguinte formato:

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

   Por exemplo, para encontrar os logs de configuração de ciclo de vida para o ID de domínio `d-m85lcu8vbqmz`, o nome de espaço `i-sonic-js` e o tipo de aplicação `JupyterLab`, use a seguinte string de pesquisa:

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

1. Selecione o fluxo de logs anexado com `LifecycleConfigOnStart` para ver os logs de execução do script.

# Tempo limite de configuração do ciclo de vida
<a name="studio-lifecycle-configurations-debug-timeout"></a>

Há um limite de tempo limite de configuração do ciclo de vida de 5 minutos. Se um script de configuração do ciclo de vida demorar mais de 5 minutos para ser executado, será gerado um erro.

Para resolver esse erro, certifique-se de que seu script de configuração do ciclo de vida seja concluído em menos de 5 minutos. 

Para ajudar a diminuir o runtime de scripts, tente o seguinte:
+ Reduza as etapas desnecessárias. Por exemplo, limite os ambientes conda nos quais instalar pacotes grandes.
+ Execute tarefas em processos paralelos.
+ Use o comando nohup em seu script para garantir que os sinais de desligamento sejam ignorados para que o script seja executado sem interrupção.

# Espaços do Amazon SageMaker Studio
<a name="studio-updated-spaces"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da experiência atualizada do Studio. Para obter informações sobre como usar a aplicação do Studio Classic, consulte [Amazon SageMaker Studio clássico](studio.md).

Os espaços são usados para gerenciar as necessidades de armazenamento e recursos de alguns aplicativos do Amazon SageMaker Studio. Cada espaço é composto por vários recursos e pode ser privado ou compartilhado. Cada espaço tem uma relação 1:1 com uma instância de uma aplicação. Cada aplicação compatível criado tem seu próprio espaço. As seguintes aplicações no Studio são executadas em espaços: 
+  [Editor de código no Amazon SageMaker Studio](code-editor.md)
+  [SageMaker JupyterLab](studio-updated-jl.md) 
+  [Amazon SageMaker Studio clássico](studio.md) 

Um espaço é composto pelos seguintes recursos: 
+ Um volume de armazenamento. 
  + Para o Studio Classic, o espaço é conectado ao volume compartilhado do Amazon Elastic File System (Amazon EFS) do domínio. 
  + Para outras aplicações, um volume distinto do Amazon Elastic Block Store (Amazon EBS) é anexado ao espaço. Todos as aplicações recebem seu próprio volume do Amazon EBS. As aplicações não têm acesso ao volume Amazon EBS de outras aplicações. Para mais informações sobre volumes do Amazon EBS, consulte [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/AmazonEBS.html). 
+ O tipo de aplicação do espaço. 
+ A imagem na qual a aplicação se baseia.

Os espaços podem ser privados ou compartilhados:
+  **Privado**: os espaços privados têm como escopo um único usuário em um domínio. Espaços privados não podem ser compartilhados com outros usuários. Todos as aplicações que oferecem apoio a espaços também oferecem apoio a espaços privados. 
+  **Compartilhado**: os espaços compartilhados podem ser acessados por todos os usuários no domínio. Para obter mais informações sobre espaços compartilhados, consulte [Colaboração com espaços compartilhados](domain-space.md). 

Espaços podem ser criados em domínios que usam a autenticação Centro de Identidade do AWS IAM ou AWS Identity and Access Management (IAM). As seções a seguir fornecem informações gerais sobre como acessar espaços. Para obter informações específicas sobre como criar e acessar um espaço, consulte a documentação do respectivo tipo de aplicação do espaço que você está criando. 

Para obter informações sobre como visualizar, interromper ou excluir suas aplicações, instâncias ou espaços, consulte [Interromper e excluir aplicações e espaços em execução no Studio](studio-updated-running-stop.md).

**Topics**
+ [Lançar espaços](studio-updated-spaces-access.md)
+ [Colaboração com espaços compartilhados](domain-space.md)

# Lançar espaços
<a name="studio-updated-spaces-access"></a>

As seções a seguir fornecem informações sobre como acessar espaços em um domínio. Espaços podem ser acessados de uma das seguintes maneiras:
+ do console Amazon SageMaker AI
+ do Studio;
+ usando o AWS CLI

## Acessando espaços a partir do console Amazon SageMaker AI
<a name="studio-updated-spaces-access-console"></a>

**Para acessar espaços a partir do console Amazon SageMaker AI**

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Em **Configurações do administrador**, escolha **Domínios**.

1. Na lista de domínios, selecione o domínio que contém os espaços.

1. Na página de **Detalhes do domínio**, selecione a aba **Gerenciamento de espaço**. Para obter mais informações sobre gerenciamento de espaços, consulte [Colaboração com espaços compartilhados](domain-space.md).

1. Na lista de espaços desse domínio, selecione o espaço a ser lançado.

1. Escolha **Lançar Studio** para o espaço que você deseja iniciar.

## Acessar espaços do Studio
<a name="studio-updated-spaces-access-updated"></a>

Siga estas etapas para acessar espaços do Studio para um tipo específico de aplicação. 

**Acessar espaços do Studio**

1. Abra o Studio seguindo as etapas em [Inicie o Amazon SageMaker Studio](studio-updated-launch.md). 

1. Selecione o tipo de aplicação com espaços que você deseja acessar.

## Acessando espaços usando o AWS CLI
<a name="studio-updated-spaces-access-cli"></a>

As seções a seguir mostram como acessar um espaço a partir do AWS Command Line Interface (AWS CLI). Os procedimentos são para domínios que usam AWS Identity and Access Management (IAM) ou Centro de Identidade do AWS IAM autenticação. 

### Autenticação do IAM
<a name="studio-updated-spaces-access-cli-iam"></a>

O procedimento a seguir apresenta uma visão geral sobre como acessar um espaço usando a autenticação do IAM por meio da AWS CLI. 

1. Crie um URL de domínio pré-assinado especificando o nome do espaço que você deseja acessar.

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

1. Navegue até o URL. 

### Acessar um espaço na autenticação do Centro de Identidade do IAM
<a name="studio-updated-spaces-access-identity-center"></a>

O procedimento a seguir descreve como acessar um espaço usando a autenticação do Centro de Identidade do IAM por meio da AWS CLI. 

1. Use o comando a seguir para retornar o URL associado ao espaço.

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

1. Anexe o respectivo parâmetro de redirecionamento para o tipo de aplicação ao URL a ser federado por meio do Centro de Identidade do IAM. Para obter mais informações sobre os parâmetros de redirecionamento, consulte [describe-space](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/describe-space.html). 

1. Navegue até o URL a ser federado por meio do Centro de Identidade do IAM. 

# Colaboração com espaços compartilhados
<a name="domain-space"></a>

Um espaço compartilhado do Amazon SageMaker Studio Classic consiste em um JupyterServer aplicativo e um diretório compartilhados. Um espaço JupyterLab compartilhado consiste em um JupyterLab aplicativo compartilhado e um diretório compartilhado no Amazon SageMaker Studio. Todos os perfis de usuário em um domínio têm acesso a todos os espaços compartilhados no domínio. O Amazon SageMaker AI define automaticamente o escopo dos recursos em um espaço compartilhado dentro do contexto do aplicativo Amazon SageMaker Studio Classic que você executa nesse espaço compartilhado. Os recursos em um espaço compartilhado incluem cadernos, arquivos, experimentos e modelos. Use espaços compartilhados para colaborar com outros usuários em tempo real pelos atributos, como marcação automática, coedição de cadernos em tempo real e personalização. 

Os espaços compartilhados estão disponíveis em:
+ Amazon SageMaker Studio clássico
+ JupyterLab

Um espaço compartilhado do Studio Classic só é compatível com o Studio Classic e KernelGateway os aplicativos. Um espaço compartilhado só suporta o uso de um Amazon Resource Name (ARN) de JupyterLab 3 imagens. Para obter mais informações, consulte [JupyterLab Controle de versão no Amazon Studio Classic SageMaker](studio-jl.md).

 O Amazon SageMaker AI marca automaticamente todos os recursos de SageMaker IA que você cria dentro do escopo de um espaço compartilhado. Você pode usar essas tags para monitorar custos e planejar orçamentos usando ferramentas como AWS Budgets. 

Um espaço compartilhado usa as mesmas configurações de VPC do domínio em que foi criado. 

**nota**  
 Espaços compartilhados não suportam o uso de clusters entre contas do Amazon SageMaker Data Wrangler ou do Amazon EMR. 

 **Marcação automática** 

 Todos os recursos criados em um espaço compartilhado são automaticamente marcados com uma tag ARN de domínio e uma tag ARN de espaço compartilhado. A tag ARN do domínio é baseada na ID do domínio, enquanto a tag ARN do espaço compartilhado é baseada no nome do espaço compartilhado. 

 Você pode usar essas tags para monitorar o AWS CloudTrail uso. Para obter mais informações, consulte [Registrar chamadas de SageMaker API da Amazon com AWS CloudTrail](https://docs.aws.amazon.com//sagemaker/latest/dg/logging-using-cloudtrail.html). 

 Você também pode usar essas tags para monitorar custos com Gerenciamento de Faturamento e Custos da AWS. Para obter mais informações, consulte [Uso de tags de alocação de AWS custos](https://docs.aws.amazon.com//awsaccountbilling/latest/aboutv2/cost-alloc-tags.html). 

 **Coedição de cadernos em tempo real** 

 Um dos principais benefícios de um espaço compartilhado é que ele facilita a colaboração entre os membros do espaço compartilhado em tempo real. Os usuários que colaboram em um espaço de trabalho têm acesso a uma aplicação compartilhada do Studio Classic, onde podem acessar, ler e editar seus cadernos em tempo real. A colaboração em tempo real só é suportada para JupyterServer aplicativos dentro de um espaço compartilhado. 

 Usuários com acesso a um espaço compartilhado podem simultaneamente abrir, visualizar, editar e executar cadernos Jupyter no Studio Classic compartilhado ou no JupyterLab aplicativo compartilhado nesse espaço. 

O caderno indica cada usuário de coedição com um cursor diferente que mostra o nome do perfil do usuário. Embora vários usuários possam ver o mesmo caderno, a coedição é mais adequada para pequenos grupos de dois a cinco usuários.

Para monitorar as alterações feitas por vários usuários, recomendamos usar o controle de versão integrado baseado em Git do Studio Classic.

 **JupyterServer 2** 

Para usar espaços compartilhados no Studio Classic, é obrigatório o Jupyter Server versão 2. Certas JupyterLab extensões e pacotes podem fazer o downgrade forçado do Jupyter Server para a versão 1. Isso impede o uso do espaço compartilhado. Execute o seguinte no prompt de comando para alterar o número da versão e continuar usando espaços compartilhados:

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

 **Personalize um espaço compartilhado** 

Para anexar uma configuração de ciclo de vida ou imagem personalizada a um espaço compartilhado, você deve usar a AWS CLI. Para obter mais informações sobre como criar e anexar configurações de ciclo de vida, consulte [Crie e associe uma configuração de ciclo de vida ao Amazon Studio Classic SageMaker](studio-lcc-create.md). Para obter mais informações sobre como criar e anexar imagens personalizadas, consulte [Imagens personalizadas no Amazon SageMaker Studio Classic](studio-byoi.md).

# Criar um espaço compartilhado
<a name="domain-space-create"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

 O tópico a seguir demonstra como criar um espaço compartilhado em um domínio existente da Amazon SageMaker AI. Se você criou seu domínio sem suporte para espaços compartilhados, você deve adicionar compatibilidade com espaços compartilhados ao seu domínio existente antes de criar um espaço compartilhado. 

**Topics**
+ [Adicionar compatibilidade de espaço compartilhado a um domínio existente](#domain-space-add)
+ [Criar um espaço compartilhado](#domain-space-create-app)

## Adicionar compatibilidade de espaço compartilhado a um domínio existente
<a name="domain-space-add"></a>

 Você pode usar o console de SageMaker IA ou o AWS CLI para adicionar suporte para espaços compartilhados a um domínio existente. Se o domínio estiver usando acesso à rede `VPC only`, você só poderá adicionar compatibilidade com o espaço compartilhado usando a AWS CLI.

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

 Conclua o procedimento a seguir para adicionar suporte aos espaços compartilhados do Studio Classic a um domínio existente a partir do console de SageMaker IA. 

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1.  Na lista de Domínios, selecione o Domínio para o qual você deseja abrir a página de **Configurações de domínio**. 

1.  Na página **Detalhes do Domínio**, escolha a guia **Configurações do Domínio**. 

1.  Escolha **Editar**. 

1.  Em **Perfil de execução padrão do espaço**, defina um perfil do IAM que seja usado por padrão para todos os espaços compartilhados criados no domínio. 

1.  Escolha **Próximo**. 

1.  Escolha **Próximo**. 

1.  Escolha **Próximo**. 

1.  Selecione **Enviar**. 

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

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

Execute o comando a seguir no terminal da sua máquina local para adicionar configurações padrão de espaço compartilhado a um domínio a partir da AWS CLI. Se você estiver adicionando configurações padrão de espaço compartilhado a um domínio dentro de um Amazon VPC, você também deve incluir uma lista de grupos de segurança. Os espaços compartilhados do Studio Classic suportam apenas o uso de JupyterLab 3 imagens ARNs. Para obter mais informações, consulte [JupyterLab Controle de versão no Amazon Studio Classic SageMaker](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]"
```

Use o comando a seguir para verificar se as configurações padrão de espaço compartilhado foram atualizadas. 

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

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

Execute o comando a seguir no terminal da sua máquina local para adicionar configurações padrão de espaço compartilhado a um domínio a partir da AWS CLI. Se você estiver adicionando configurações padrão de espaço compartilhado a um domínio dentro de um Amazon VPC, você também deve incluir uma lista de grupos de segurança. Os espaços compartilhados do Studio Classic suportam apenas o uso de JupyterLab 4 imagens ARNs. Para obter mais informações, consulte [JupyterLab Controle de versão no Amazon Studio Classic SageMaker](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]"
```

Use o comando a seguir para verificar se as configurações padrão de espaço compartilhado foram atualizadas. 

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

------

## Criar um espaço compartilhado
<a name="domain-space-create-app"></a>

As seções a seguir demonstram como criar um espaço compartilhado a partir do console Amazon SageMaker AI, do Amazon SageMaker Studio ou do AWS CLI.

### Criar a partir do Studio
<a name="domain-space-create-updated"></a>

Use os processos a seguir para criar um espaço compartilhado em um domínio a partir do Studio.

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

1. Navegue até o Studio seguindo as etapas em[Inicie o Amazon SageMaker Studio](studio-updated-launch.md).

1. Na interface do usuário do Studio, encontre o painel de aplicações no lado esquerdo.

1. No painel de aplicações, selecione **Studio Classic**.

1. Selecione **Criar espaço no Studio Classic**

1. Na janela pop-up, insira um nome para o espaço.

1. Selecione **Criar espaço**.

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

1. Navegue até o Studio seguindo as etapas em[Inicie o Amazon SageMaker Studio](studio-updated-launch.md).

1. Na interface do usuário do Studio, encontre o painel de aplicações no lado esquerdo.

1. No painel de aplicativos, selecione **JupyterLab**.

1. Escolha **Criar JupyterLab espaço**

1. Na janela pop-up, insira um nome para o espaço.

1. Selecione **Criar espaço**.

------

### Criar a partir do console
<a name="domain-space-create-console"></a>

 Conclua o procedimento a seguir para criar um espaço compartilhado em um domínio a partir do console de SageMaker IA. 

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1.  Na lista de domínios, selecione o domínio para o qual você quer criar um espaço compartilhado. 

1.  Na página de **Detalhes do domínio**, escolha a aba **Gerenciamento de espaço**. 

1.  Escolha **Criar**. 

1.  Insira um nome para seu espaço compartilhado. Os nomes de espaços compartilhados em um domínio devem ser exclusivos. O perfil de execução do espaço compartilhado é definida como o perfil de execução do IAM do domínio. 

### Crie a partir de AWS CLI
<a name="domain-space-create-cli"></a>

Esta seção mostra como criar um espaço compartilhado a partir da AWS CLI. 

Você não pode definir a função de execução de um espaço compartilhado ao criá-lo ou atualizá-lo. O só `DefaultDomainExecRole` pode ser definido ao criar ou atualizar o domínio. Os espaços compartilhados suportam apenas o uso de JupyterLab 3 imagens. ARNs Para obter mais informações, consulte [JupyterLab Controle de versão no Amazon Studio Classic SageMaker](studio-jl.md).

Para criar um espaço compartilhado a partir do AWS CLI, execute um dos comandos a seguir no terminal da sua máquina local.

------
#### [ 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\"}"
```

------

# Obter informações sobre espaços compartilhados
<a name="domain-space-list"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

 Este guia mostra como acessar uma lista de espaços compartilhados em um domínio do Amazon SageMaker AI com o console Amazon SageMaker AI, o Amazon SageMaker Studio ou AWS CLI o. Também mostra como visualizar detalhes de um espaço compartilhado a partir da AWS CLI. 

**Topics**
+ [Listar espaços compartilhados](#domain-space-list-spaces)
+ [Visualizar detalhes do espaço compartilhado](#domain-space-describe)

## Listar espaços compartilhados
<a name="domain-space-list-spaces"></a>

 O tópico a seguir descreve como visualizar uma lista de espaços compartilhados em um domínio a partir do console SageMaker AI ou do AWS CLI. 

### Listar espaços compartilhados a partir do Studio
<a name="domain-space-list-updated"></a>

 Conclua o procedimento a seguir para visualizar uma lista de espaços compartilhados em um domínio a partir do Studio.

1. Navegue até o Studio seguindo as etapas em[Inicie o Amazon SageMaker Studio](studio-updated-launch.md).

1. Na interface do usuário do Studio, encontre o painel de aplicações no lado esquerdo.

1. No painel de aplicativos, selecione **Studio Classic** ou **JupyterLab**. Você pode visualizar os espaços que estão sendo usados para executar o tipo de aplicação.

### Listar espaços compartilhados a partir do console
<a name="domain-space-list-console"></a>

 Conclua o procedimento a seguir para ver uma lista dos espaços compartilhados em um domínio no console do SageMaker AI. 

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1.  Na lista de domínios, selecione o domínio cuja lista de espaços compartilhados você deseja visualizar. 

1.  Na página de **Detalhes do domínio**, escolha a aba **Gerenciamento de espaço**. 

### Listar espaços compartilhados do AWS CLI
<a name="domain-space-list-cli"></a>

 Para listar os espaços compartilhados em um domínio a partir do AWS CLI, execute o seguinte comando no terminal da sua máquina local.

```
aws --region region \
sagemaker list-spaces \
--domain-id domain-id
```

## Visualizar detalhes do espaço compartilhado
<a name="domain-space-describe"></a>

 A seção a seguir descreve como visualizar os detalhes do espaço compartilhado no console SageMaker AI, no Studio ou no AWS CLI. 

### Visualizar detalhes de espaços compartilhados a partir do Studio
<a name="domain-space-describe-updated"></a>

 Conclua o procedimento a seguir para visualizar os detalhes de espaços compartilhados em um domínio a partir do Studio.

1. Navegue até o Studio seguindo as etapas em[Inicie o Amazon SageMaker Studio](studio-updated-launch.md).

1. Na interface do usuário do Studio, encontre o painel de aplicações no lado esquerdo.

1. No painel de aplicativos, selecione **Studio Classic** ou **JupyterLab**. Você pode visualizar os espaços que estão executando a aplicação.

1. Selecione o nome do espaço deseja visualizar.

### Visualizar detalhes do espaço compartilhado a partir do console
<a name="domain-space-describe-console"></a>

 Você pode ver os detalhes de um espaço compartilhado no console do SageMaker AI usando o procedimento a seguir. 

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1.  Na lista de domínios, selecione o domínio cuja lista de espaços compartilhados você deseja visualizar. 

1.  Na página de **Detalhes do domínio**, escolha a aba **Gerenciamento de espaço**. 

1.  Selecione o nome do espaço para abrir uma nova página que lista os detalhes sobre o espaço compartilhado. 

### Veja os detalhes do espaço compartilhado no AWS CLI
<a name="domain-space-describe-cli"></a>

Para ver os detalhes de um espaço compartilhado no AWS CLI, execute o seguinte comando no terminal da sua máquina local.

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

# Editar um espaço compartilhado
<a name="domain-space-edit"></a>

 Você só pode editar os detalhes de um Amazon SageMaker Studio Classic ou espaço JupyterLab compartilhado usando AWS CLI o. Você não pode editar os detalhes de um espaço compartilhado no console Amazon SageMaker AI. Você só pode atualizar os atributos do espaço de trabalho quando não há aplicações em execução no espaço compartilhado. 

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

Para editar os detalhes de um espaço compartilhado do Studio Classic a partir do AWS CLI, execute o comando a seguir no terminal da sua máquina local. Os espaços compartilhados suportam apenas o uso de JupyterLab 3 imagens. ARNs Para obter mais informações, consulte [JupyterLab Controle de versão no Amazon Studio Classic SageMaker](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 ]

Para editar os detalhes de um espaço JupyterLab compartilhado a partir do AWS CLI, execute o comando a seguir no terminal da sua máquina local. Os espaços compartilhados suportam apenas o uso de JupyterLab 4 imagens. ARNs Para obter mais informações, consulte [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
    }
    }
  }
}"
```

------

# Excluir um espaço compartilhado
<a name="domain-space-delete"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

 O tópico a seguir mostra como excluir um espaço compartilhado do Amazon SageMaker Studio Classic do console Amazon SageMaker AI ou AWS CLI. Um espaço compartilhado só pode ser excluído se não tiver aplicações em execução. 

**Topics**
+ [Console](#domain-space-delete-console)
+ [AWS CLI](#domain-space-delete-cli)

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

 Conclua o procedimento a seguir para excluir um espaço compartilhado no domínio Amazon SageMaker SageMaker AI do console de IA. 

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1.  Na lista de domínios, selecione o domínio para o qual você quer criar um espaço compartilhado. 

1.  Na página de **Detalhes do domínio**, escolha a aba **Gerenciamento de espaço**. 

1.  Selecione o espaço compartilhado que você deseja excluir. O espaço compartilhado não deve conter nenhuma aplicação que não tenha falhado. 

1.  Escolha **Excluir**. Essa ação abre uma nova janela. 

1.  Escolha **Sim, excluir espaço**. 

1.  Digite *Excluir* no campo. 

1.  Escolha **Excluir espaço**. 

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

Para excluir um espaço compartilhado do AWS CLI, execute o seguinte comando no terminal da sua máquina local.

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

# Propagação de identidade confiável com o Studio
<a name="trustedidentitypropagation"></a>

A propagação de identidade confiável é um Centro de Identidade do AWS IAM recurso que os administradores de AWS serviços conectados podem usar para conceder e auditar o acesso aos dados do serviço. O acesso a esses dados é baseado em atributos do usuário, como associações de grupo. Configurar a propagação de identidade confiável requer colaboração entre os administradores dos AWS serviços conectados e o administrador do IAM Identity Center. Para ter mais informações, consulte [Prerequisites and considerations](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-overall-prerequisites.html).

Os administradores do Amazon SageMaker Studio e do IAM Identity Center podem colaborar para conectar os serviços para uma propagação confiável de identidade. A propagação confiável de identidade atende às necessidades de autenticação corporativa em todos AWS os serviços, simplificando:
+ Uma auditoria aprimorada que monitora as ações de usuários específicos.
+ Gerenciamento de acesso para cargas de trabalho de ciência de dados e aprendizado de máquina por meio da integração com serviços compatíveis AWS 
+ O atendimento de requisitos de conformidade em setores regulamentados.

O Studio oferece suporte à propagação confiável de identidade para fins de auditoria e controle de acesso com AWS serviços conectados. A propagação de identidade confiável no Studio não lida diretamente com decisões de autenticação ou autorização dentro do próprio Studio. Em vez disso, ele propaga informações de contexto de identidade para serviços compatíveis que podem usar essas informações para controle de acesso.

Quando você usa a propagação de identidade confiável com o Studio, sua identidade do IAM Identity Center se propaga para os AWS serviços conectados, criando permissões mais granulares e governança de segurança.

**Topics**
+ [Arquitetura e compatibilidade da propagação de identidade confiável](trustedidentitypropagation-compatibility.md)
+ [Configurar a propagação de identidade confiável para o Studio](trustedidentitypropagation-setup.md)
+ [Monitoramento e auditoria com CloudTrail](trustedidentitypropagation-auditing.md)
+ [Sessões de usuários em segundo plano](trustedidentitypropagation-user-background-sessions.md)
+ [Como se conectar a outros AWS serviços com a propagação de identidade confiável ativada](trustedidentitypropagation-connect-other.md)

# Arquitetura e compatibilidade da propagação de identidade confiável
<a name="trustedidentitypropagation-compatibility"></a>

A propagação de identidade confiável se integra ao Centro de Identidade do AWS IAM Amazon SageMaker Studio e a outros AWS serviços conectados para propagar o contexto de identidade dos usuários em todos os serviços. A página a seguir resume a arquitetura confiável de propagação de identidade e a compatibilidade com SageMaker a IA. Para uma visão geral abrangente de como a propagação de identidade confiável funciona AWS, consulte Visão geral da [propagação de identidade confiável](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-overview.html).

Os principais componentes da arquitetura de propagação de identidade confiável incluem:
+ **Propagação de identidade confiável**: uma metodologia para propagar o contexto de identidade do usuário entre aplicações e serviços.
+ **Contexto de identidade**: informações sobre um usuário.
+ **Sessão de função IAM aprimorada** com identidade: as sessões de função aprimorada com identidade têm um contexto de identidade adicional que carrega um identificador de usuário para o AWS serviço que ele chama
+ ** AWS Serviços conectados**: outros AWS serviços que podem reconhecer o contexto de identidade que é propagado por meio da propagação de identidade confiável

A propagação confiável de identidade permite que AWS os serviços conectados tomem decisões de acesso com base na identidade do usuário. No Studio em si, os perfis do IAM são usados como portadores do contexto de identidade, não para tomar decisões de controle de acesso. O contexto de identidade é propagado para AWS serviços conectados, onde pode ser usado para fins de controle de acesso e auditoria. Consulte as [considerações sobre propagação de identidade confiável](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-overall-prerequisites.html#trustedidentitypropagation-considerations) para obter mais informações.

Quando você ativa a propagação de identidade confiável com o Studio e se autentica por meio do IAM Identity Center, SageMaker a IA:
+ Captura o contexto de identidade do usuário no Centro de Identidade do IAM.
+ Cria uma sessão de perfil do IAM aprimorada com identidade que inclui o contexto de identidade do usuário
+ Transmite a sessão de função IAM com identidade aprimorada para AWS serviços compatíveis quando o usuário acessa os recursos
+ Permite que AWS os serviços posteriores tomem decisões de acesso e registrem atividades com base na identidade do usuário

## Recursos de SageMaker IA compatíveis
<a name="trustedidentitypropagation-compatibility-compatible-features"></a>

A propagação de identidade confiável funciona com os seguintes recursos do Studio:
+ Espaços privados do [Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html) (JupyterLab e editor de código, baseado em Code-OSS, Visual Studio Code - Open Source)

**nota**  
Quando o Studio é iniciado com a propagação de identidade confiável habilitada, ele usa seu contexto de identidade, bem como as permissões de perfil de execução. No entanto, os seguintes processos durante a configuração da instância usarão somente as permissões da função de execução, sem o contexto de identidade: Configuração do ciclo de vida Bring-Your-Own-Image, CloudWatch agente para encaminhamento de registros do usuário.
No momento, não é possível usar [acesso remoto](https://docs.aws.amazon.com/sagemaker/latest/dg/remote-access.html) com a propagação de identidade confiável.
Quando você usa operações de assumir função nos notebooks do Studio, as funções assumidas não propagam um contexto confiável de propagação de identidade. Somente a função de execução original mantém o contexto de identidade.
+  [SageMakerTreinamento](https://docs.aws.amazon.com/sagemaker/latest/dg/how-it-works-training.html) 
+  [SageMakerProcessamento](https://docs.aws.amazon.com/sagemaker/latest/dg/processing-job.html) 
+  [SageMaker Hospedagem AI em tempo real](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints-options.html) 
+  [SageMakerOleodutos](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-overview.html) 
+  [SageMakerinferência em tempo real](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints.html) 
+  [SageMakerInferência assíncrona](https://docs.aws.amazon.com/sagemaker/latest/dg/async-inference.html) 
+  [Gerenciados MLflow](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html) 

## AWS Serviços compatíveis
<a name="trustedidentitypropagation-compatibility-compatible-services"></a>

A propagação de identidade confiável para o Amazon SageMaker Studio se integra a AWS serviços compatíveis, nos quais a propagação de identidade confiável está habilitada. Consulte os [casos de uso](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-integrations.html) para obter uma lista abrangente com exemplos de como habilitar a propagação de identidade confiável. Os serviços compatíveis de propagação de identidade confiável incluem os seguintes:
+  [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/workgroups-identity-center.html) 
+  [Amazon EMR no EC2](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-idc-start.html) 
+  [EMR Sem Servidor](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 de dados do Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/data-api-trusted-identity-propagation.html) 
+ Amazon S3 (por meio do recurso [Concessão de Acesso do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-get-started.html))
+ [Conexões do AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/security-trusted-identity-propagation.html)

Quando a propagação de identidade confiável é habilitada com SageMaker IA, todos os outros AWS serviços com propagação de identidade confiável ativada são conectados. Uma vez conectados, eles reconhecem e usam o contexto de identidade do usuário para controle de acesso e auditoria.

## Suportado Regiões da AWS
<a name="trustedidentitypropagation-compatibility-supported-regions"></a>

O Studio permite usar a propagação de identidade confiável onde é possível usar o [Centro de Identidade do IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/regions.html) e o Studio com a autenticação do Centro de Identidade do IAM. O Studio oferece suporte à propagação de identidade confiável no seguinte: Regiões da 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

# Configurar a propagação de identidade confiável para o Studio
<a name="trustedidentitypropagation-setup"></a>

Configurar a propagação de identidade confiável para o Amazon SageMaker Studio exige que seu domínio do Amazon SageMaker AI tenha configurado o método de autenticação do IAM Identity Center. Esta seção orienta você a respeito das etapas e dos pré-requisitos necessários para habilitar e configurar a propagação de identidade confiável para seus usuários do Studio.

**Topics**
+ [Pré-requisitos](#trustedidentitypropagation-setup-prerequisites)
+ [Habilite a propagação de identidade confiável para seu domínio Amazon SageMaker AI](#trustedidentitypropagation-setup-enable)
+ [Configure sua função de execução de SageMaker IA](#trustedidentitypropagation-setup-permissions)

## Pré-requisitos
<a name="trustedidentitypropagation-setup-prerequisites"></a>

Antes de configurar a propagação de identidade confiável para SageMaker IA, configure seu IAM Identity Center usando as instruções a seguir.

**nota**  
A Central de Identidade do IAM e seu domínio devem estar na mesma região.
+  [Pré-requisitos da propagação de identidade confiável do Centro de Identidade do IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-overall-prerequisites.html#trustedidentitypropagation-prerequisites) 
+  [Configurar o Centro de Identidade do IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) 
+  [Adicionar usuários ao diretório do Centro de Identidade do IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/addusers.html) 

## Habilite a propagação de identidade confiável para seu domínio Amazon SageMaker AI
<a name="trustedidentitypropagation-setup-enable"></a>

**Importante**  
Você só pode habilitar a propagação de identidade confiável para domínios com o método de autenticação Centro de Identidade do AWS IAM configurado.
Seu IAM Identity Center e o domínio Amazon SageMaker AI devem estar no mesmo Região da AWS.

Use uma das opções a seguir para saber como habilitar a propagação de identidade confiável para um domínio novo ou existente.

------
#### [ New domain - console ]

**Habilite a propagação de identidade confiável para um novo domínio usando o console de SageMaker IA**

1. Abra o [console Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker).

1. Navegue até **Domínios**.

1. [Crie um domínio personalizado](https://docs.aws.amazon.com/sagemaker/latest/dg/onboard-custom.html). O domínio deve ter o método de autenticação **Centro de Identidade do AWS IAM**configurado.

1. Na seção **Propagação de identidade confiável**, escolha **Habilitar a propagação de identidade confiável para todos os usuários desse domínio**.

1. Conclua o processo de criação personalizado.

------
#### [ Existing domain - console ]

**Habilite a propagação de identidade confiável para um domínio existente usando o console de SageMaker IA**
**nota**  
Para que a propagação de identidade confiável funcione adequadamente após ser habilitada para um domínio existente, os usuários precisarão reiniciar suas sessões atuais do IAM Identity Center. Para fazer isso, você também pode:  
Os usuários precisarão se desconectar e fazer login novamente em suas sessões existentes do IAM Identity Center
Os administradores podem [encerrar sessões ativas para seus usuários da força de trabalho](https://docs.aws.amazon.com/singlesignon/latest/userguide/end-active-sessions.html).

1. Abra o [console Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker).

1. Navegue até **Domínios**.

1. Selecione o domínio existente. O domínio deve ter o método de autenticação **Centro de Identidade do AWS IAM**configurado.

1. Na guia **Configurações do domínio**, escolha **Editar** na seção **Autenticação e permissões**.

1. Escolha **Habilitar a propagação de identidade confiável para todos os usuários desse domínio**.

1. Preencha a configuração do domínio.

------
#### [ Existing domain - AWS CLI ]

Habilite a propagação de identidade confiável para um domínio existente usando o AWS CLI

**nota**  
Para que a propagação de identidade confiável funcione adequadamente após ser habilitada para um domínio existente, os usuários precisarão reiniciar suas sessões atuais do IAM Identity Center. Para fazer isso, você também pode:  
Os usuários precisarão se desconectar e fazer login novamente em suas sessões existentes do IAM Identity Center
Os administradores podem [encerrar sessões ativas para seus usuários da força de trabalho](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`é o ID de domínio da Amazon SageMaker AI. Consulte [Exibir domínios](https://docs.aws.amazon.com/sagemaker/latest/dg/domain-view.html) para ter mais informações.
+ `REGION`é o Região da AWS do seu domínio Amazon SageMaker AI. Você pode encontrar isso no canto superior direito de qualquer página AWS do console.

------

## Configure sua função de execução de SageMaker IA
<a name="trustedidentitypropagation-setup-permissions"></a>

Para habilitar a propagação de identidade confiável para seus usuários do Studio, todas os perfis de propagação de identidade confiável precisam definir as permissões de contexto a seguir. Atualize a política de confiança para todos os perfis a fim de incluir as ações `sts:AssumeRole` e `sts:SetContext`. Use a política a seguir ao [atualizar sua política de confiança de perfil](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"
            ]
        }
    ]
}
```

------

# Monitoramento e auditoria com CloudTrail
<a name="trustedidentitypropagation-auditing"></a>

Com a propagação de identidade confiável ativada, AWS CloudTrail os registros incluem as informações de identidade do usuário específico que realizou uma ação, em vez de apenas a função do IAM. Isso fornece recursos aprimorados de auditoria para melhorar a conformidade e segurança.

Para ver as informações de identidade nos CloudTrail registros:
+ Abra o [console do CloudTrail ](https://console.aws.amazon.com/cloudtrail).
+ Selecione **Histórico de eventos** no painel de navegação à esquerda.
+ Escolha eventos de SageMaker IA e serviços relacionados.
+ Em **Registro de eventos**, localize a chave `onBehalfOf`. Ele contém a chave `userId` e outras informações de identificação do usuário que podem ser correlacionadas a um usuário específico do Centro de Identidade do IAM.

  Consulte os [casos de CloudTrail uso do IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/sso-cloudtrail-use-cases.html) para obter mais informações.

# Sessões de usuários em segundo plano
<a name="trustedidentitypropagation-user-background-sessions"></a>

As sessões de usuários em segundo plano continuam mesmo quando os usuários não estão mais ativos. Isso permite trabalhos de longa duração que podem continuar mesmo depois de o usuário se desconectar. Isso pode ser ativado por meio da propagação de identidade confiável da SageMaker IA. A página a seguir explica as opções de configuração e os comportamentos das sessões de usuários em segundo plano.

**nota**  
As sessões de usuário ativas existentes não são afetadas quando a propagação de identidade confiável é habilitada. A duração padrão se aplica somente a sessões de novos usuários ou a sessões reiniciadas.
As sessões em segundo plano do usuário se aplicam a qualquer fluxo de trabalho de SageMaker IA de longa duração ou a trabalhos com estados persistentes. Isso inclui, mas não está limitado a, quaisquer recursos de SageMaker IA que mantenham o status de execução ou exijam monitoramento contínuo. Por exemplo, trabalhos de execução de SageMaker treinamento, processamento e pipelines.

**Topics**
+ [Configurar uma sessão de usuário em segundo plano](#configure-user-background-sessions)
+ [Duração padrão das sessões de usuários em segundo plano](#default-user-background-session-duration)
+ [Impacto da desabilitação da propagação de identidade confiável no Studio](#user-background-session-impact-disable-trustedidentitypropagation-studio)
+ [Impacto da desabilitação das sessões de usuários em segundo plano no console do Centro de Identidade do IAM](#user-background-session-impact-disable-trustedidentitypropagation-identity-center)
+ [Considerações sobre runtime](#user-background-session-runtime-considerations)

## Configurar uma sessão de usuário em segundo plano
<a name="configure-user-background-sessions"></a>

Depois que a propagação de identidade confiável para o Amazon SageMaker Studio estiver habilitada, os limites de duração padrão poderão ser configurados por meio das [sessões em segundo plano do usuário no IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/user-background-sessions.html).

## Duração padrão das sessões de usuários em segundo plano
<a name="default-user-background-session-duration"></a>

Por padrão, todas as sessões de usuários em segundo plano têm um limite de duração de sete dias. Os administradores podem [modificar essa duração no console do Centro de Identidade do IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/user-background-sessions.html). Essa configuração se aplica no nível de instância do Centro de Identidade do IAM, afetando todas as aplicações do Centro de Identidade do IAM e domínios do Studio compatíveis nessa instância.

Quando a propagação de identidade confiável estiver ativada, os administradores no console de SageMaker IA encontrarão um banner com as seguintes informações:
+ O limite de duração das sessões de usuários em segundo plano.
+ Um link para o console do Centro de Identidade do IAM, onde os administradores podem alterar essa configuração.
  + A duração pode ser definida para qualquer valor, de 15 minutos a 90 dias.

Uma mensagem será exibida quando uma sessão de usuário em segundo plano expirar. Você pode usar o link para o console do Centro de Identidade do IAM para atualizar a duração.

## Impacto da desabilitação da propagação de identidade confiável no Studio
<a name="user-background-session-impact-disable-trustedidentitypropagation-studio"></a>

Se um administrador desabilitar a propagação de identidade confiável, depois de ativá-la inicialmente, no console do SageMaker AI:
+ Os trabalhos existentes continuarão sendo executados sem interrupção quando as sessões de usuários em segundo plano forem habilitadas.
+ Quando as sessões em segundo plano do usuário são desativadas, qualquer fluxo de trabalho de SageMaker IA de longa duração ou trabalho com estados persistentes passará a usar sessões interativas. Isso inclui, mas não está limitado a, quaisquer recursos de SageMaker IA que mantenham o status de execução ou exijam monitoramento contínuo. Por exemplo, trabalhos de SageMaker treinamento e processamento da Amazon.
+ Os usuários poderão reiniciar trabalhos expirados usando os pontos de verificação.
+ Os novos trabalhos serão executados com credenciais de perfil do IAM e não propagarão o contexto de identidade.

## Impacto da desabilitação das sessões de usuários em segundo plano no console do Centro de Identidade do IAM
<a name="user-background-session-impact-disable-trustedidentitypropagation-identity-center"></a>

Quando a sessão em segundo plano do usuário é **desativada** para a instância do IAM Identity Center, o trabalho de SageMaker IA usa sessões interativas do usuário. Ao usar sessões interativas, um trabalho de SageMaker IA falhará em 15 minutos quando:
+ O usuário se desconectar.
+ A sessão interativa for revogada pelo administrador.

Quando a sessão em segundo plano do usuário está **habilitada** para a instância do IAM Identity Center, o trabalho de SageMaker IA usa sessões em segundo plano do usuário. Ao usar sessões interativas, um trabalho de SageMaker IA falhará em 15 minutos quando:
+ A sessão de usuário em segundo plano expirar.
+ A sessão de usuário em segundo plano for revogada manualmente por um administrador.

Veja a seguir um exemplo de comportamento com trabalhos SageMaker de treinamento. Quando um administrador habilita a propagação de identidade confiável, mas desabilita as [sessões de usuários em segundo plano](https://docs.aws.amazon.com/singlesignon/latest/userguide/user-background-sessions.html) no console do Centro de Identidade do IAM:
+ Se um usuário permanecer conectado, suas tarefas de treinamento criadas enquanto as sessões em segundo plano estão desabilitadas retornarão para a sessão interativa.
+ Se o usuário se desconectar, a sessão expirará e as tarefas de treinamento, dependendo da sessão interativa, falharão.
+ Os usuários podem reiniciar a tarefa de treinamento usando o último ponto de verificação. A duração da sessão é determinada pelo que está definido para a duração da sessão interativa no console do Centro de Identidade do IAM.
+ Se um usuário desabilitar as sessões em segundo plano **depois** de iniciar um trabalho, o trabalho continuará usando as sessões em segundo plano existentes. Em outras palavras, a SageMaker IA não criará nenhuma nova sessão em segundo plano.

O mesmo comportamento se aplica se as sessões em segundo plano estiverem habilitadas no nível da instância do IAM Identity Center, mas desativadas especificamente para o aplicativo Studio usando o [IAM Identity Center APIs](https://docs.aws.amazon.com/singlesignon/latest/APIReference/welcome.html).

## Considerações sobre runtime
<a name="user-background-session-runtime-considerations"></a>

Quando um administrador define trabalhos `MaxRuntimeInSeconds` de treinamento ou processamento de longa duração inferiores à duração da sessão em segundo plano do usuário, a SageMaker IA executa o trabalho pelo mínimo de uma `MaxRuntimeInSeconds` ou outra duração da sessão em segundo plano do usuário. Para saber mais sobre o `MaxRuntimeInSeconds`, consulte [CreateTrainingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html#sagemaker-CreateTrainingJob-request-StoppingCondition). Consulte [User background sessions](https://docs.aws.amazon.com/singlesignon/latest/userguide/user-background-sessions.html) no “Guia do usuário do Centro de Identidade do IAM” para ter informações sobre como definir o tempo de execução.

# Como se conectar a outros AWS serviços com a propagação de identidade confiável ativada
<a name="trustedidentitypropagation-connect-other"></a>

Quando a propagação de identidade confiável está habilitada para seu domínio Amazon SageMaker AI, os usuários do domínio podem se conectar a outros serviços confiáveis habilitados AWS para propagação de identidade. Quando a propagação de identidade confiável é habilitada, seu contexto de identidade é propagado automaticamente para serviços compatíveis, permitindo um controle de acesso refinado e uma auditoria aprimorada em seus fluxos de trabalho de machine learning. Essa integração elimina a necessidade de troca complexa de funções do IAM e fornece uma experiência de identidade unificada em todos AWS os serviços. As páginas a seguir fornecem informações sobre como conectar o Amazon SageMaker Studio a outros AWS serviços quando a propagação de identidade confiável está habilitada.

**Topics**
+ [Conecte os JupyterLab notebooks do Connect Studio aos Amazon S3 Access Grants com a propagação de identidade confiável habilitada](trustedidentitypropagation-s3-access-grants.md)
+ [Conecte os JupyterLab notebooks Connect Studio ao Amazon EMR com a propagação de identidade confiável ativada](trustedidentitypropagation-emr-ec2.md)
+ [Conecte seus JupyterLab notebooks Studio ao EMR Serverless com a propagação de identidade confiável ativada](trustedidentitypropagation-emr-serverless.md)
+ [Conecte os JupyterLab notebooks do Connect Studio à API Redshift Data com a propagação de identidade confiável ativada](trustedidentitypropagation-redshift-data-apis.md)
+ [Conecte os JupyterLab notebooks Connect Studio ao Lake Formation e ao Athena com a propagação de identidade confiável ativada](trustedidentitypropagation-lake-formation-athena.md)

# Conecte os JupyterLab notebooks do Connect Studio aos Amazon S3 Access Grants com a propagação de identidade confiável habilitada
<a name="trustedidentitypropagation-s3-access-grants"></a>

É possível usar o recurso [Concessão de Acesso do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants.html) para conceder flexivelmente um controle de acesso refinado baseado em identidade aos locais do Amazon S3. Esse recurso concede acesso aos buckets do Amazon S3 diretamente a seus usuários e grupos empresariais. As páginas a seguir fornecem informações e instruções sobre como usar o Amazon S3 Access Grants com propagação de identidade confiável para IA. SageMaker 

## Pré-requisitos
<a name="s3-access-grants-prerequisites"></a>

Para conectar o Studio ao Lake Formation e ao Athena com a propagação de identidade confiável habilitada, atenda aos seguintes pré-requisitos:
+  [Configurar a propagação de identidade confiável para o Studio](trustedidentitypropagation-setup.md) 
+ Siga as instruções em [Conceitos básicos da funcionalidade Concessão de Acesso do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants-get-started.html) para configurar o recurso Concessão de Acesso do Amazon S3 para seu bucket. Consulte [Scaling data access with Amazon S3 Access Grants](https://aws.amazon.com/blogs/storage/scaling-data-access-with-amazon-s3-access-grants/) para ter mais informações.
**nota**  
O Amazon S3 padrão APIs não funciona automaticamente com os Amazon S3 Access Grants. Você deve usar explicitamente o Amazon S3 Access Grants. APIs Consulte [Gerenciar o acesso com a funcionalidade Concessão de Acesso do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants.html) para ter mais informações.

**Topics**
+ [Pré-requisitos](#s3-access-grants-prerequisites)
+ [Conecte as concessões de acesso do Amazon S3 com notebooks Studio JupyterLab](s3-access-grants-setup.md)
+ [Conecte os JupyterLab notebooks do Connect Studio às concessões de acesso do Amazon S3 com trabalhos de treinamento e processamento](trustedidentitypropagation-s3-access-grants-jobs.md)

# Conecte as concessões de acesso do Amazon S3 com notebooks Studio JupyterLab
<a name="s3-access-grants-setup"></a>

Use as informações a seguir para conceder concessões de acesso ao Amazon S3 em notebooks Studio JupyterLab .

Depois que o recurso Concessão de Acesso do Amazon S3 for configurado, [adicione as permissões a seguir](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) ao seu domínio ou [perfil de execução](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-get-execution-role) de usuário.
+ `us-east-1` é sua Região da AWS.
+ `111122223333` é o ID da Conta da AWS .
+ `S3-ACCESS-GRANT-ROLE` é o perfil do recurso Concessão de Acesso do Amazon S3.

------
#### [ 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"
        }
    ]
}
```

------

A política de confiança do perfil do recurso Concessão de Acesso do Amazon S3 dever permitir as ações `sts:SetContext` e `sts:AssumeRole`. Veja a seguir um exemplo de política para quando você [atualiza sua política de confiança de perfil](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"
                }
            }
        }
    ]
}
```

------

## Usar o recurso Concessão de Acesso do Amazon S3 para chamar o Amazon S3
<a name="s3-access-grants-python-example"></a>

Veja a seguir um exemplo de script em Python que mostra como o recurso Concessão de Acesso do Amazon S3 pode ser usado para chamar o Amazon S3. Isso pressupõe que você já tenha configurado com êxito a propagação de identidade confiável com SageMaker IA.

```
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 você usar um caminho para um bucket do Amazon S3 onde o recurso Concessão de Acesso do Amazon S3 não esteja habilitado, a chamada falhará.

Para ter mais informações sobre outras linguagens de programação, consulte [Gerenciar o acesso com a funcionalidade Concessão de Acesso do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants.html).

# Conecte os JupyterLab notebooks do Connect Studio às concessões de acesso do Amazon S3 com trabalhos de treinamento e processamento
<a name="trustedidentitypropagation-s3-access-grants-jobs"></a>

Use as informações a seguir para conceder ao Amazon S3 Access Grants para acessar dados em trabalhos de SageMaker treinamento e processamento da Amazon.

Quando um usuário com propagação de identidade confiável habilitada inicia um trabalho de SageMaker treinamento ou processamento que precisa acessar os dados do Amazon S3:
+ SageMaker A IA chama o Amazon S3 Access Grants para obter credenciais temporárias com base na identidade do usuário
+ Se a operação for bem-sucedida, essas credenciais temporárias acessam os dados do Amazon S3.
+ Se não for bem-sucedida, a SageMaker IA volta a usar as credenciais da função do IAM

**nota**  
Para garantir que todas as permissões sejam concedidas por meio do recurso Concessão de Acesso do Amazon S3, você precisará remover a permissão de acesso relacionada ao Amazon S3 do seu perfil de execução e anexá-la à sua [concessão de acesso do Amazon S3](https://docs.aws.amazon.com/singlesignon/latest/userguide/tip-tutorial-s3.html#tip-tutorial-s3-create-grant) correspondente.

**Topics**
+ [Considerações](#s3-access-grants-jobs-considerations)
+ [Configurar o recurso Concessão de Acesso do Amazon S3 com tarefas de treinamento e processamento](#s3-access-grants-jobs-setup)

## Considerações
<a name="s3-access-grants-jobs-considerations"></a>

Os Amazon S3 Access Grants não podem ser usados com o [modo Pipe](https://docs.aws.amazon.com/sagemaker/latest/dg/augmented-manifest-stream.html) para SageMaker treinamento e processamento de entradas do Amazon S3.

Quando a propagação de identidade confiável está habilitada, você não pode iniciar um SageMaker Training Job com o seguinte recurso
+ Depuração remota
+ Debugger
+ Profiler

Quando a propagação de identidade confiável está habilitada, não é possível iniciar uma tarefa de processamento com o seguinte recurso:
+ DatasetDefinition

## Configurar o recurso Concessão de Acesso do Amazon S3 com tarefas de treinamento e processamento
<a name="s3-access-grants-jobs-setup"></a>

Depois que o recurso Concessão de Acesso do Amazon S3 for configurado, [adicione as permissões a seguir](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) ao seu domínio ou [perfil de execução](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-roles.html#sagemaker-roles-get-execution-role) de usuário.
+ `us-east-1` é sua Região da AWS.
+ `111122223333` é o ID da Conta da AWS .
+ `S3-ACCESS-GRANT-ROLE` é o perfil do recurso Concessão de Acesso do Amazon S3.

------
#### [ 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"
        }
    ]
}
```

------

# Conecte os JupyterLab notebooks Connect Studio ao Amazon EMR com a propagação de identidade confiável ativada
<a name="trustedidentitypropagation-emr-ec2"></a>

Conectar os JupyterLab notebooks Amazon SageMaker Studio aos clusters do Amazon EMR permite que você aproveite o poder de computação distribuída do Amazon EMR para cargas de trabalho analíticas e de processamento de dados em grande escala. Com a propagação de identidade confiável habilitada, seu contexto de identidade é propagado para o Amazon EMR, permitindo um controle de acesso refinado e trilhas de auditoria abrangentes. A página a seguir fornece instruções sobre como conectar seu caderno do Studio com clusters do Amazon EMR. Após a configuração, você pode usar a opção `Connect to Cluster` em seu caderno do Studio.

Para conectar o Studio ao Amazon EMR com a propagação de identidade confiável habilitada, conclua as seguintes configurações:
+  [Configurar a propagação de identidade confiável para o Studio](trustedidentitypropagation-setup.md) 
+  [Introdução à Centro de Identidade do AWS IAM integração com o Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-idc-start.html) 
+  [Habilitar comunicações entre o Studio e clusters do Amazon EMR](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-emr-cluster.html) 

 **Conectar-se ao cluster do Amazon EMR** 

Para obter uma lista completa de opções sobre como conectar seu JupyterLab notebook ao Amazon EMR, consulte [Conecte-se a um cluster do Amazon EMR.](https://docs.aws.amazon.com/sagemaker/latest/dg/connect-emr-clusters.html)

# Conecte seus JupyterLab notebooks Studio ao EMR Serverless com a propagação de identidade confiável ativada
<a name="trustedidentitypropagation-emr-serverless"></a>

O Amazon EMR Sem Servidor oferece uma opção sem servidor para executar aplicações do Apache Spark e do Apache Hive sem gerenciar clusters. Quando integrado à propagação de identidade confiável, o EMR Sem Servidor escala automaticamente os recursos de computação e, ao mesmo tempo, mantém seu contexto de identidade para controle de acesso e auditoria. Essa abordagem elimina os custos operacionais indiretos do gerenciamento de clusters e preserva os benefícios de segurança do controle de acesso baseado em identidade. A seção a seguir fornece informações sobre como conectar o Studio habilitado para propagação de identidade confiável com o EMR Sem Servidor.

Para conectar o Studio ao Amazon EMR Sem Servidor com a propagação de identidade confiável habilitada, conclua as seguintes configurações:
+  [Configurar a propagação de identidade confiável para o Studio](trustedidentitypropagation-setup.md) 
+  [Propagação de identidade confiável com o EMR Sem Servidor](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-service-trusted-prop.html) 
+  [Habilitar comunicações entre o Studio e clusters do Amazon EMR Sem Servidor](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-emr-serverless.html) 

 **Conectar-se à aplicação do EMR Sem Servidor** 

Para obter uma lista completa de opções sobre como conectar seu JupyterLab notebook ao EMR Serverless, consulte [Conectar-se a um aplicativo EMR](https://docs.aws.amazon.com/sagemaker/latest/dg/connect-emr-serverless-application.html) Serverless.

# Conecte os JupyterLab notebooks do Connect Studio à API Redshift Data com a propagação de identidade confiável ativada
<a name="trustedidentitypropagation-redshift-data-apis"></a>

A API de dados do Amazon Redshift permite que você interaja programaticamente com seus clusters do Amazon Redshift sem gerenciar conexões persistentes. Quando combinada com a propagação de identidade confiável, a API de dados do Redshift oferece acesso seguro e baseado em identidade ao seu data warehouse, permitindo que você execute consultas SQL e recupere resultados enquanto mantém trilhas de auditoria completas das atividades do usuário. Essa integração é particularmente valiosa para fluxos de trabalho de ciência de dados que exigem acesso a dados estruturados armazenados no Redshift. A página a seguir inclui informações e instruções sobre como conectar a propagação de identidade confiável com o Amazon SageMaker Studio à API de dados do Redshift.

Para conectar o Studio à API de dados do Redshift com a propagação de identidade confiável habilitada, conclua as seguintes configurações:
+  [Configurar a propagação de identidade confiável para o Studio](trustedidentitypropagation-setup.md) 
+  [Usar a API de dados com propagação de identidade confiável](https://docs.aws.amazon.com/redshift/latest/mgmt/data-api-trusted-identity-propagation.html) 
  + Seu perfil de execução deve permissões relevantes para a API de dados do Redshift. Para ter mais informações, consulte [Usar acesso de autenticação](https://docs.aws.amazon.com/redshift/latest/mgmt/data-api-access.html).
+  [Simplifique o gerenciamento de acesso com o Amazon Redshift e AWS Lake Formation para usuários em um provedor de identidade externo](https://aws.amazon.com/blogs/big-data/simplify-access-management-with-amazon-redshift-and-aws-lake-formation-for-users-in-an-external-identity-provider/) 

# Conecte os JupyterLab notebooks Connect Studio ao Lake Formation e ao Athena com a propagação de identidade confiável ativada
<a name="trustedidentitypropagation-lake-formation-athena"></a>

AWS Lake Formation e o Amazon Athena trabalham juntos para fornecer uma solução abrangente de data lake com controle de acesso refinado e recursos de consulta sem servidor. O Lake Formation centraliza o gerenciamento de permissões para seu data lake, enquanto o Athena fornece serviços de consulta interativos. Quando integrada à propagação de identidade confiável, essa combinação permite que os cientistas de dados acessem somente os dados que estão autorizados a ver, com todas as consultas e o acesso aos dados registrados em log automaticamente para fins de conformidade e auditoria. A página a seguir fornece informações e instruções sobre como conectar a propagação de identidade confiável com o Amazon SageMaker Studio ao Lake Formation e ao Athena.

Para conectar o Studio ao Lake Formation e ao Athena com a propagação de identidade confiável habilitada, conclua as seguintes configurações:
+  [Configurar a propagação de identidade confiável para o Studio](trustedidentitypropagation-setup.md) 
+  [Criar um perfil do Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/prerequisites-identity-center.html) 
+  [Conectar o Lake Formation com o Centro de Identidade do IAM](https://docs.aws.amazon.com/lake-formation/latest/dg/connect-lf-identity-center.html) 
+ Criar recursos do Lake Formation:
  +  [Banco de dados](https://docs.aws.amazon.com/lake-formation/latest/dg/creating-database.html) 
  +  [Tabelas](https://docs.aws.amazon.com/lake-formation/latest/dg/creating-tables.html) 
+  [Criar um grupo de trabalho do Athena](https://docs.aws.amazon.com/athena/latest/ug/creating-workgroups.html) 
  + Escolha o **AthenaSQL** para o mecanismo.
  + Escolha **Centro de Identidade do IAM** como método de autenticação.
  + Crie um perfil de serviço.
    + Os usuários do Centro de Identidade do IAM devem ter acesso ao local do resultado da consulta usando o recurso Concessão de Acesso do Amazon S3.
+  [Conceder permissões de banco de dados usando o método de recurso nomeado](https://docs.aws.amazon.com/lake-formation/latest/dg/granting-database-permissions.html) 

# Executar tarefas de IU
<a name="studio-updated-common"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da experiência atualizada do Studio. Para obter informações sobre como usar a aplicação do Studio Classic, consulte [Amazon SageMaker Studio clássico](studio.md).

 As seções a seguir descrevem como realizar tarefas comuns na interface do usuário do Amazon SageMaker Studio. Para obter uma visão geral da interface do Studio, consulte [Visão geral da interface do usuário do Amazon SageMaker Studio](studio-updated-ui.md). 

 **Definir preferências de cookies** 

1. Execute o Studio seguindo as etapas em [Inicie o Amazon SageMaker Studio](studio-updated-launch.md). 

1.  Na parte inferior da interface do usuário do Studio, escolha **Preferências de cookies**. 

1.  Marque a caixa de seleção para cada tipo de cookie que você deseja que a Amazon SageMaker AI use. 

1.  Selecione **Salvar preferências**. 

 **Gerenciar notificações** 

As notificações fornecem informações sobre mudanças importantes no Studio, atualizações nas aplicações e problemas a serem resolvidos. 

1. Execute o Studio seguindo as etapas em [Inicie o Amazon SageMaker Studio](studio-updated-launch.md). 

1.  Na barra de navegação superior, escolha o ícone de **Notificações** (![\[Logo for Notifications, a cloud service with a stylized bell icon.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/monarch/notification.png)). 

1.  Na lista de notificações, selecione a notificação para obter informações sobre ela. 

 **Deixar feedback** 

 Nós levamos seu feedback a sério. Recomendamos que você envie seu feedback. 

 Na barra de navegação superior do Studio, escolha **Fornecer feedback**. 

 **Desconectar** 

 Sair da interface do usuário do Studio é diferente de fechar a janela do navegador. Sair limpa os dados da sessão do navegador e exclui as alterações não salvas. 

Esse mesmo comportamento também acontece quando a sessão do Studio expira. Isso acontece depois de cinco minutos. 

1. Execute o Studio seguindo as etapas em [Inicie o Amazon SageMaker Studio](studio-updated-launch.md). 

1. Escolha o ícone de **Opções do usuário** (![\[User icon with a circular avatar placeholder and a downward-pointing arrow.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/monarch/user-settings.png)). 

1.  Escolha **Sair**. 

1. Na janela pop-up, escolha **Sair**. 

# NVMe lojas com Amazon SageMaker Studio
<a name="studio-updated-nvme"></a>

Os aplicativos do Amazon SageMaker Studio e seus notebooks associados são executados em instâncias do Amazon Elastic Compute Cloud (Amazon EC2). Alguns dos tipos de instância do Amazon EC2, como a família de `ml.m5d` instâncias, oferecem armazenamentos de instâncias de unidades de estado sólido (SSDNVMe) de memória expressa não volátil (). NVMe armazenamentos de instâncias são armazenamentos de discos temporários locais que estão fisicamente conectados a uma instância para armazenamento temporário rápido. Os aplicativos Studio oferecem suporte a armazenamentos de NVMe instâncias para tipos de instância compatíveis. Para obter mais informações sobre os tipos de instância e seus volumes de NVMe armazenamento associados, consulte os [detalhes do tipo de instância do Amazon Elastic Compute Cloud](https://aws.amazon.com/ec2/instance-types/). Este tópico fornece informações sobre como acessar e usar armazenamentos de NVMe instâncias, bem como considerações sobre o uso de armazenamentos de NVMe instâncias com o Studio.

## Considerações
<a name="studio-updated-nvme-considerations"></a>

As considerações a seguir se aplicam ao usar armazenamentos de NVMe instâncias com o Studio.
+ Um armazenamento de NVMe instâncias é um armazenamento temporário. Os dados armazenados na NVMe loja são excluídos quando a instância é encerrada, interrompida ou hibernada. Ao usar NVMe lojas com aplicativos Studio, os dados no armazenamento de NVMe instâncias são perdidos sempre que o aplicativo é excluído, reiniciado ou corrigido. Recomendamos que você faça backup de dados valiosos em soluções de armazenamento persistente, como Amazon Elastic Block Store, Amazon Elastic File System ou Amazon Simple Storage Service. 
+ O Studio corrige as instâncias periodicamente para instalar novas atualizações de segurança. Quando uma instância é corrigida, ela é reiniciada. Essa reinicialização resulta na exclusão dos dados armazenados no armazenamento de NVMe instâncias. Recomendamos que você faça backup frequente dos dados necessários do armazenamento de NVMe instâncias em soluções de armazenamento persistente, como Amazon Elastic Block Store, Amazon Elastic File System ou Amazon Simple Storage Service. 
+ Os seguintes aplicativos do Studio oferecem suporte ao uso NVMe de armazenamento:
  + JupyterLab
  + Editor de Código, baseado em Code-OSS, Visual Studio Code - código aberto
  + KernelGateway

## Acesse lojas de NVMe instâncias
<a name="studio-updated-nvme-access"></a>

Quando você seleciona um tipo de instância com armazenamentos de NVMe instâncias anexados para hospedar um aplicativo Studio, o diretório de armazenamento de NVMe instâncias é montado no contêiner do aplicativo no seguinte local:

```
/mnt/sagemaker-nvme
```

Se uma instância tiver mais de um armazenamento de NVMe instâncias anexado, o Studio cria um volume lógico distribuído que abrange todos os discos locais anexados. Em seguida, o Studio monta esse volume lógico distribuído no diretório `/mnt/sagemaker-nvme`. Como resultado, o tamanho do armazenamento do diretório é a soma de todos os tamanhos de volume de armazenamento de NVMe instâncias anexados à instância. 

Se o `/mnt/sagemaker-nvme` diretório não existir, verifique se o tipo de instância que hospeda seu aplicativo tem um volume de armazenamento de NVMe instâncias anexado.

# Suporte ao modo local no Amazon SageMaker Studio
<a name="studio-updated-local"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Os aplicativos do Amazon SageMaker Studio oferecem suporte ao uso do modo local para criar estimadores, processadores e pipelines e, em seguida, implantá-los em um ambiente local. Com o modo local, você pode testar scripts de aprendizado de máquina antes de executá-los em ambientes gerenciados de treinamento ou hospedagem da Amazon SageMaker AI. O Studio comporta o modo local nas seguintes aplicações:
+ Amazon SageMaker Studio clássico
+ JupyterLab
+ Editor de Código, baseado em Code-OSS, Visual Studio Code - código aberto

O modo local nos aplicativos do Studio é invocado usando o SDK do SageMaker Python. Nos aplicativos Studio, o modo local funciona de forma semelhante às instâncias de SageMaker notebooks da Amazon, com algumas diferenças. Com a [Configuração do Docker sem raiz](studio-updated-local-get-started.md#studio-updated-local-rootless) habilitada, você também pode acessar registros adicionais do Docker por meio de sua configuração de VPC, bem como repositórios on-premises e registros públicos. [Para obter mais informações sobre como usar o modo local com o SDK do SageMaker Python, consulte Modo local.](https://sagemaker.readthedocs.io/en/stable/overview.html#local-mode)

**nota**  
As aplicações do Studio não são compatíveis com trabalhos com vários contêineres no modo local. Os trabalhos no modo local são limitados a uma única instância para trabalhos de treinamento, inferência e processamento. Ao criar um trabalho no modo local, a configuração da contagem de instâncias deve ser `1`. 

## Ajuda do Docker
<a name="studio-updated-local-docker"></a>

Como parte da compatibilidade com o modo local, as aplicações do Studio oferecem comportam recursos de acesso limitado do Docker. Com esse suporte, os usuários podem interagir com a API do Docker por meio dos cadernos Jupyter ou do terminal de imagem da aplicação. Os clientes podem interagir com o Docker usando uma das seguintes opções:
+ [CLI do Docker](https://docs.docker.com/engine/reference/run/)
+ [CLI do Docker Compose ](https://docs.docker.com/compose/reference/)
+ SDKs do Docker para linguagem específica

O Studio também oferece apoio a recursos do acesso limitado ao Docker com as seguintes restrições:
+ O uso de redes do Docker não é compatível.
+ O uso do Dockervolume do [https://docs.docker.com/storage/volumes/](https://docs.docker.com/storage/volumes/) não é compatível durante a execução do contêiner. Somente entradas de montagem de vinculação de volume são permitidas durante a orquestração do contêiner. As entradas do volume de montagem vinculada devem estar localizadas no volume do Amazon Elastic File System (Amazon EFS) para o Studio Classic. Para JupyterLab aplicativos do Code Editor de Código, ele deve estar localizado no volume Amazon Elastic Block Store (Amazon EBS).
+ As operações de inspeção do contêiner são permitidas.
+ O mapeamento da porta do contêiner para o host não é permitido. Porém, você não pode especificar uma porta para hospedagem. O endpoint pode então ser acessado pelo Studio usando o seguinte URL:

  ```
  http://localhost:port
  ```

### Operações do Docker compatíveis
<a name="studio-updated-local-docker-supported"></a>

A tabela a seguir lista todos os endpoints da API do Docker que são compatíveis com o Studio, incluindo quaisquer limitações de compatibilidade. Se um endpoint da API estiver ausente da tabela, o Studio não será compatível.


|  Documentação de API  |  Limitações  | 
| --- | --- | 
|  [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/pt_br/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)  |  A compatibilidade com o modo VPC-only é limitado às imagens do Amazon ECR nas contas permitidas. Com a [Configuração do Docker sem raiz](studio-updated-local-get-started.md#studio-updated-local-rootless) habilitada, você também pode acessar registros adicionais do Docker por meio de sua configuração de VPC, bem como repositórios on-premises e registros públicos. | 
|  [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)  |  A compatibilidade com o modo VPC-only é limitado às imagens do Amazon ECR nas contas permitidas. Com a [Configuração do Docker sem raiz](studio-updated-local-get-started.md#studio-updated-local-rootless) habilitada, você também pode acessar registros adicionais do Docker por meio de sua configuração de VPC, bem como repositórios on-premises e registros públicos. | 
|  [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/pt_br/sagemaker/latest/dg/studio-updated-local.html)  | 

**Topics**
+ [Ajuda do Docker](#studio-updated-local-docker)
+ [Conceitos básicos do modo local](studio-updated-local-get-started.md)

# Conceitos básicos do modo local
<a name="studio-updated-local-get-started"></a>

As seções a seguir descrevem as etapas necessárias para começar a usar o modo local no Amazon SageMaker Studio, incluindo:
+ Como concluir os pré-requisitos
+ Configurar `EnableDockerAccess`
+ Instalação do Docker

## Pré-requisitos
<a name="studio-updated-local-prereq"></a>

Preencha os seguintes pré-requisitos para usar o modo local nas aplicações do Studio:
+ Para extrair imagens de um repositório do Amazon Elastic Container Registry, a conta que hospeda a imagem do Amazon ECR deve fornecer permissão de acesso para a função de execução do usuário. A função de execução do domínio também deve permitir o acesso ao Amazon ECR.
+ Verifique se você está usando a versão mais recente do SDK do Studio Python usando o seguinte comando: 

  ```
  pip install -U sagemaker
  ```
+ Para usar o modo e os recursos locais do Docker, defina o seguinte parâmetro do domínio `DockerSettings` usando a AWS Command Line Interface (AWS CLI): 

  ```
  EnableDockerAccess : ENABLED
  ```
+ Ao usar `EnableDockerAccess`, você também pode controlar se os usuários no domínio podem usar o modo local. Por padrão, o modo e os recursos locais do Docker não são permitidos nas aplicações do Studio. Para obter mais informações, consulte [Configurar `EnableDockerAccess`](#studio-updated-local-enable).
+ Instale a CLI do Docker na aplicação do Studio seguindo as etapas em [Instalação do Docker](#studio-updated-local-docker-installation).
+ Para a [Configuração do Docker sem raiz](#studio-updated-local-rootless), sua VPC deve ter endpoints e roteamento apropriados configurados para os registros do Docker desejados.

## Configurar `EnableDockerAccess`
<a name="studio-updated-local-enable"></a>

As seções a seguir mostram como definir `EnableDockerAccess` quando o domínio tem acesso público à internet ou está no modo `VPC-only`.

**nota**  
As alterações serão aplicadas ao `EnableDockerAccess` apenas nas aplicações criadas após a atualização do domínio. Crie uma aplicação depois de atualizar o domínio.

**Acesso público à internet**

Os seguintes comandos de exemplo mostram como configurar o `EnableDockerAccess` ao criar um novo domínio ou atualizar um domínio existente com acesso público à 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"}}'
```

**Modo `VPC-only`**

Ao usar um domínio no modo `VPC-only`, as solicitações push e pull de imagem do Docker são roteadas pelo serviço VPC em vez da VPC configurada pelo cliente. Devido a esta funcionalidade, os administradores podem configurar uma lista de Contas da AWS confiáveis para as quais os usuários podem solicitar operações pull e push do Docker do Amazon ECR.

Se uma solicitação push ou pull de Docker imagem for feita para uma Conta da AWS que não esteja na lista de confiáveis Contas da AWS, a solicitação falhará. DockerAs operações pull and push fora do Amazon Elastic Container Registry (Amazon ECR) não são suportadas `VPC-only` no modo.

Por padrão, os itens a seguir Contas da AWS são confiáveis:
+ A conta que hospeda o domínio SageMaker AI.
+ SageMaker Contas de IA que hospedam as seguintes SageMaker imagens:
  + Imagens da estrutura DLC
  + SklearnSpark, XGBoost processando imagens

Para configurar uma lista de outros confiáveis Contas da AWS, especifique o `VpcOnlyTrustedAccounts` valor da seguinte forma:

```
aws --region region \
    sagemaker update-domain --domain-id domain-id \
    --domain-settings-for-update '{"DockerSettings": {"EnableDockerAccess": "ENABLED", "VpcOnlyTrustedAccounts": ["account-list"]}}'
```

**nota**  
Quando [Configuração do Docker sem raiz](#studio-updated-local-rootless) está habilitada, `VpcOnlyTrustedAccounts` é ignorado e o tráfego do Docker passa por sua configuração de VPC, permitindo acesso a qualquer registro que sua VPC possa acessar.

## Configuração do Docker sem raiz
<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) está habilitado, o Studio usa um [daemon do Docker sem raiz](https://docs.docker.com/engine/security/rootless/) que roteia o tráfego pela sua VPC. Isso oferece segurança aprimorada e permite acesso a registros adicionais do Docker. As principais diferenças com o `RootlessDocker` são:
+ Sua configuração de VPC determina quais registros são acessíveis para operações do Docker. `VpcOnlyTrustedAccounts` é ignorado e o tráfego do Docker passa por sua configuração de VPC.

Para usar o Docker sem raiz, você precisará definir `EnableDockerAccess` e `RootlessDocker` como `ENABLED` para suas `DockerSettings`. Por exemplo, nos exemplos de [Configurar `EnableDockerAccess`](#studio-updated-local-enable) acima, você pode modificar as configurações do seu domínio para incluir:

```
'{"DockerSettings": {"EnableDockerAccess": "ENABLED", "RootlessDocker": "ENABLED"}}'
```

## Instalação do Docker
<a name="studio-updated-local-docker-installation"></a>

Para usar o Docker, você deve instalar manualmente o Docker por meio do terminal da aplicação do Studio. As etapas de instalação do Docker são diferentes se o domínio tiver acesso à internet ou não.

### Acesso à Internet
<a name="studio-updated-local-docker-installation-internet"></a>

Se o domínio for criado com acesso público à internet ou no modo `VPC-only` com acesso limitado à internet, use as etapas a seguir para instalar o Docker.

1. (Opcional) Se seu domínio for criado no modo de `VPC-only` com acesso limitado à internet, crie um gateway NAT público com acesso ao site do Docker. Para ter instruções, consulte [Gateways NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html).

1. Navegue até o terminal da aplicação do Studio em que deseja instalar o Docker.

1. Para retornar o sistema operacional da aplicação, execute o seguinte comando no terminal:

   ```
   cat /etc/os-release
   ```

1. Instale Docker seguindo as instruções para o sistema operacional do aplicativo no [repositório Amazon SageMaker AI Local Mode Examples](https://github.com/aws-samples/amazon-sagemaker-local-mode/tree/main/sagemaker_studio_docker_cli_install).

   Por exemplo, instale Docker Ubuntu seguindo o script em [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) com as seguintes considerações:
   + Se os comandos encadeados falharem, execute comandos individualmente.
   + O Studio é compatível apenas com o Docker versão `20.10.X.` e a API do Docker Engine versão `1.41`.
   + Os seguintes pacotes não precisam usar a CLI do Docker no Studio e sua instalação pode ser ignorada:
     + `containerd.io`
     + `docker-ce`
     + `docker-buildx-plugin`
**nota**  
Você não precisa iniciar o serviço do Docker em suas aplicações. A instância que hospeda a aplicação do Studio executa o serviço do Docker por padrão. Todas as chamadas de API do Docker são roteadas automaticamente pelo serviço do Docker.

1. Use o soquete do Docker exposto para interações do Docker nas aplicações do Studio. Por padrão, o seguinte soquete é exposto:

   ```
   unix:///docker/proxy.sock
   ```

   A seguinte variável de ambiente da aplicação do Studio para o `USER` padrão usa esse soquete exposto:

   ```
   DOCKER_HOST
   ```

### Sem acesso à internet
<a name="studio-updated-local-docker-installation-no-internet"></a>

Se o domínio for criado no modo `VPC-only` sem acesso à internet, use as etapas a seguir para instalar o Docker.

1. Navegue até o terminal da aplicação do Studio em que deseja instalar o Docker.

1. Execute o seguinte comando no terminal para retornar o sistema operacional da aplicação:

   ```
   cat /etc/os-release
   ```

1. Baixe os arquivos `.deb` do Docker necessários em sua máquina local. Para instruções sobre como baixar os arquivos necessários para o sistema operacional da aplicação do Studio, consulte [Instalar o Docker Engine](https://docs.docker.com/engine/install/).

   Por exemplo, instale o Docker a partir de um pacote no Ubuntu seguindo as etapas de 1 a 4 em [Instalar de um pacote](https://docs.docker.com/engine/install/ubuntu/#install-from-a-package) com as seguintes considerações:
   + Instale Docker a partir de um pacote. O uso de outros métodos para instalar o Docker não funcionará.
   + Instale os pacotes mais recentes correspondentes à versão`20.10.X` do Docker.
   + Os pacotes a seguir não são obrigatórios para usar a CLI do Docker no Studio. Não é necessário instalar:
     + `containerd.io`
     + `docker-ce`
     + `docker-buildx-plugin`
**nota**  
Você não precisa iniciar o serviço do Docker em suas aplicações. A instância que hospeda a aplicação do Studio executa o serviço do Docker por padrão. Todas as chamadas de API do Docker são roteadas automaticamente pelo serviço do Docker.

1. Carregue os arquivos `.deb` no sistema de arquivos do Amazon EFS ou no sistema de arquivos do Amazon EBS da aplicação.

1. Instale manualmente os pacotes `.deb` `docker-ce-cli` e `docker-compose-plugin` por meio do terminal da aplicação do Studio. Para mais informações e instruções, consulte a etapa 5 em [Instalar a partir de um pacote](https://docs.docker.com/engine/install/ubuntu/#install-from-a-package) no site da de docs do Docker.

1. Use o soquete do Docker exposto para interações do Docker nas aplicações do Studio. Por padrão, o seguinte soquete é exposto:

   ```
   unix:///docker/proxy.sock
   ```

   A seguinte variável de ambiente da aplicação do Studio para o `USER` padrão usa esse soquete exposto:

   ```
   DOCKER_HOST
   ```

# Visualizar suas instâncias, aplicações e espaços em execução no Studio
<a name="studio-updated-running"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da experiência atualizada do Studio. Para obter informações sobre como usar a aplicação do Studio Classic, consulte [Amazon SageMaker Studio clássico](studio.md).

Os tópicos a seguir incluem informações e instruções sobre como visualizar suas instâncias, aplicações e espaços em execução no Studio. Para obter mais informações sobre espaços compartilhados, consulte [Espaços do Amazon SageMaker Studio](studio-updated-spaces.md).

## Visualizar suas instâncias e aplicações em execução no Studio
<a name="studio-updated-running-view-app"></a>

A página **Instâncias em execução** fornece informações sobre todas as instâncias de aplicativos em execução que foram criadas no Amazon SageMaker Studio pelo usuário ou que foram compartilhadas com o usuário. 

Você pode visualizar e interromper a execução de instâncias para todos os suas aplicações e espaços. Se uma instância for interrompida, ela não aparecerá nessa página. As instâncias interrompidas podem ser visualizadas na página inicial de seus respectivos tipos de aplicações. 

Você pode ver uma lista das aplicações em execução e seus detalhes no Studio.

**Visualizar instâncias em execução**

1. Execute o Studio seguindo as etapas em [Inicie o Amazon SageMaker Studio](studio-updated-launch.md). 

1. No painel de navegação à esquerda, escolha **Instâncias em execução**. 

1. Na página **Instâncias em execução**, você pode ver uma lista de aplicações em execução e detalhes sobre esses aplicações. 

   Para visualizar instâncias não em execução, no painel de navegação esquerdo, escolha a aplicação relevante em **Aplicações**. As aplicações que não estão em execução terão o status **Parado** na coluna **Status**.

## Visualizar espaços do Studio
<a name="studio-updated-running-view-space"></a>

A seção **Espaços** na página de **Detalhes do domínio** fornece informações sobre os espaços do Studio em seu domínio. Você pode exibir, criar e excluir espaços nessa página. 

Os espaços que você pode visualizar na seção **Espaços** são espaços em execução para o seguinte:
+ JupyterLab espaço privado. Para obter informações sobre JupyterLab, consulte[SageMaker JupyterLab](studio-updated-jl.md).
+ Espaço privado do Code Editor. Para obter informações sobre o Editor de código, com base no Code-OSS, Visual Studio Code - Open Source, consulte. [Editor de código no Amazon SageMaker Studio](code-editor.md)
+ Espaço compartilhado Studio Classic. Para obter informações sobre o espaço compartilhado do Studio Classic, consulte [Colaboração com espaços compartilhados](domain-space.md).

Não há espaços para SageMaker Canvas, Studio Classic (privado) ou RStudio. 

**Visualize seus espaços de estúdio em um domínio**

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador** e selecione **Domínios**.

1. Escolha o domínio em que deseja visualizar os espaços.

1. Na página **Detalhes do domínio**, escolha a aba **Gerenciamento de espaço** para abrir a seção **Espaços**.

**Visualize seus espaços de estúdio usando o AWS CLI**

Use o comando a seguir para listar todos os espaços em seu domínio:

```
aws sagemaker list-spaces --region us-east-1 --domain-id domain-id
```
+ `us-east-1`é seu Região da AWS.
+ *domain-id* é o ID do seu domínio. Consulte [Visualizar domínios](domain-view.md) para obter mais informações.

# Interromper e excluir aplicações e espaços em execução no Studio
<a name="studio-updated-running-stop"></a>

A página a seguir inclui informações e instruções sobre como interromper e excluir recursos não utilizados do Amazon SageMaker Studio para evitar custos adicionais indesejados. Para os recursos do Studio que você não deseja mais usar, você precisará:
+ Interromper a aplicação: isso interrompe a aplicação e exclui a instância na qual a aplicação está sendo executada. Depois de interromper uma aplicação, você pode reiniciá-la novamente.
+ Excluir o espaço: isso exclui o volume do Amazon EBS que foi criado para a aplicação e a instância.
**Importante**  
Se você excluir o espaço, perderá o acesso aos dados dentro desse espaço. Não exclua o espaço, a menos que tenha certeza de que deseja.

Para ter mais informações sobre as diferenças entre espaços e aplicações do Studio, consulte [Visualizar suas instâncias, aplicações e espaços em execução no Studio](studio-updated-running.md).

**Topics**
+ [Pare seu aplicativo Amazon SageMaker Studio](#studio-updated-running-stop-app)
+ [Excluir um espaço do Studio](#studio-updated-running-stop-space)

## Pare seu aplicativo Amazon SageMaker Studio
<a name="studio-updated-running-stop-app"></a>

Para evitar cobranças adicionais decorrentes da execução de aplicações não utilizadas, você pode interrompê-las ou excluí-las. A seguir são apresentadas informações sobre o que a interrupção de uma aplicação faz e como interrompê-la.
+ As instruções a seguir usam a API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteApp.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteApp.html) para interromper a aplicação. Isso também interrompe a instância em que a aplicação está sendo executada.
+ Depois de interromper uma aplicação, você pode inicializar a aplicação novamente em um momento posterior.
  + Quando você interromper uma aplicação, os arquivos no espaço persistirão. Você pode executar a aplicação novamente e esperar ter acesso aos mesmos arquivos que estão armazenados no espaço, como você tinha antes de excluir a aplicação.

    
  + Quando você interromper uma aplicação, os respectivos *metadados* serão excluídos em 24 horas. Para obter mais informações, consulte a nota no elemento de `CreationTime` resposta da [DescribeApp](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeApp.html#sagemaker-DescribeApp-response-CreationTime)API.

**nota**  
Se o serviço detectar que uma aplicação não está íntegro, ele assume a função vinculada ao serviço [AmazonSageMakerNotebooksServiceRolePolicy](security-iam-awsmanpol-notebooks.md#security-iam-awsmanpol-AmazonSageMakerNotebooksServiceRolePolicy) e exclui a aplicação usando a API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteApp.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteApp.html).

As guias a seguir fornecem instruções para interromper um aplicativo do seu domínio usando a interface do usuário do Studio, o console de SageMaker IA ou o. AWS CLI

**nota**  
Para visualizar e interromper todas as instâncias em execução do Studio em um único local, recomendamos o fluxo de trabalho [Interromper aplicações usando a interface de usuário do Studio](#studio-updated-running-stop-app-using-studio-updated-ui) das seguintes opções:

### Interromper aplicações usando a interface de usuário do Studio
<a name="studio-updated-running-stop-app-using-studio-updated-ui"></a>

Para excluir aplicações do Studio usando a interface de usuário do Studio, use as instruções a seguir.

**Como excluir aplicações (interface de usuário do Studio)**

1. Execute o Studio. Esse processo pode ser diferente dependendo da configuração. Para obter informações sobre o lançamento do Studio, consulte [Inicie o Amazon SageMaker Studio](studio-updated-launch.md). 

1. No painel de navegação à esquerda, escolha **Instâncias em execução**. 

   Se a tabela na página estiver vazia, você não tem nenhuma instância ou aplicação em execução em seus espaços.

1. Na tabela abaixo das colunas **Nome** e **Aplicação**, localize o nome do espaço e a aplicação que você deseja interromper.

1. Escolha o botão **Interromper** correspondente para interromper a aplicação.

### Interrompa os aplicativos usando o console de SageMaker IA
<a name="studio-updated-running-stop-app-using-sagemaker-console"></a>

Para visualizar ou interromper a execução de instâncias do Studio em um local centralizado, consulte [Interromper aplicações usando a interface de usuário do Studio](#studio-updated-running-stop-app-using-studio-updated-ui). Caso contrário, siga todas as instruções abaixo.

No console do SageMaker AI, você só pode interromper a execução dos aplicativos do Studio nos espaços que você pode visualizar na seção **Espaços** do console. Para obter uma lista dos espaços visíveis, consulte [Visualizar espaços do Studio](studio-updated-running.md#studio-updated-running-view-space).

Essas etapas mostram como interromper seus aplicativos do Studio usando o console de SageMaker IA.

**Para interromper seus aplicativos (console de SageMaker IA)**

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador** e selecione **Domínios**. 

1. Escolha o domínio que você deseja reverter.

1. Na página de **Detalhes do domínio**, escolha a aba **Gerenciamento de espaço**.

1. 
**Importante**  
Na guia **Gerenciamento de espaço**, você tem a opção de excluir o espaço. Há uma diferença entre excluir o espaço e excluir uma aplicação. Se você excluir o espaço, perderá o acesso aos dados dentro desse espaço. Não exclua o espaço, a menos que tenha certeza de que deseja.

   Para interromper a aplicação, na guia **Gerenciamento de espaço** e na coluna **Nome**, escolha o espaço para a aplicação.

1. Na seção **Aplicações** e na coluna **Tipo de aplicação**, pesquise a aplicação a ser interrompida.

1. Na coluna **Ação**, escolha o botão **Excluir aplicação** correspondente.

1. Na caixa pop-up, selecione **Sim, excluir aplicação**. Depois de fazer isso, o campo de entrada de exclusão fica disponível.

1. Insira **delete** no campo de entrada de exclusão para confirmar a exclusão.

1. Escolha **Excluir**.

### Pare seus aplicativos de domínio usando o AWS CLI
<a name="studio-updated-running-stop-app-using-cli"></a>

Para visualizar ou interromper qualquer uma das instâncias em execução do Studio a partir de um local centralizado, consulte [Interromper aplicações usando a interface de usuário do Studio](#studio-updated-running-stop-app-using-studio-updated-ui). Caso contrário, siga todas as instruções abaixo.

Os exemplos de código a seguir usam a API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteApp.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteApp.html) para interromper uma aplicação em um domínio de exemplo. 

Para interromper sua execução **JupyterLab**ou instâncias **do Editor de código**, use o exemplo de código a seguir:

```
aws sagemaker delete-app \
--domain-id example-domain-id \
--region Região da AWS \
--app-name default \
--app-type example-app-type \
--space-name example-space-name
```
+ Para obter o `example-domain-id`, use as seguintes instruções:

**Para obter o `example-domain-id`**

  1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

  1. No painel de navegação à esquerda, escolha **Configurações do administrador** e selecione **Domínios**. 

  1. Escolha o domínio relevante.

  1. Na página **Detalhes do Domínio**, escolha a guia **Configurações do Domínio**.

  1. Copie o **ID do domínio**.
+ Para obter a `Região da AWS`, use as seguintes instruções para garantir que você esteja usando a Região da AWS correta para o seu domínio: 

**Para obter o `Região da AWS`**

  1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

  1. No painel de navegação à esquerda, escolha **Configurações do administrador** e selecione **Domínios**. 

  1. Escolha o domínio relevante.

  1. Na página **Detalhes do domínio**, verifique se esse é o domínio relevante.

  1. Expanda a lista suspensa de regiões no canto superior direito do console de SageMaker IA e use o Região da AWS ID correspondente à direita do seu Região da AWS nome. Por exemplo, .`us-west-1`
+ Para `example-app-type`, use o tipo de aplicação relevante para a aplicação que você deseja interromper. Por exemplo, substitua `example-app-type` por um dos seguintes tipos de aplicação:
  + JupyterLab tipo de aplicação:`JupyterLab`. Para obter informações sobre JupyterLab, consulte[SageMaker JupyterLab](studio-updated-jl.md).
  + Tipo de aplicação do Editor de Código: `CodeEditor`. Para obter informações sobre o Editor de código, com base no Code-OSS, Visual Studio Code - Open Source, consulte [Editor de código no Amazon SageMaker Studio](code-editor.md).
+ Para obter `example-space-name`, use as seguintes etapas: 

**Para obter o `example-space-name`**

  1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

  1. No painel de navegação à esquerda, escolha **Configurações do administrador** e selecione **Domínios**. 

  1. Escolha o domínio relevante.

  1. Na página de **Detalhes do domínio**, escolha a aba **Gerenciamento de espaço**.

  1. Copie o nome do espaço relevante.

Para parar de executar instâncias para **SageMaker Canvas**, **Studio Classic** ou **RStudio**, use o seguinte exemplo de código:

```
aws sagemaker delete-app \
--domain-id example-domain-id \
--region Região da AWS \
--app-name default \
--app-type example-app-type \
--user-profile example-user-name
```
+ Para `example-app-type`, use o tipo de aplicação relevante para a aplicação que você deseja interromper. Por exemplo, substitua `example-app-type` por um dos seguintes tipos de aplicação:
  + SageMaker Tipo de aplicação de tela:`Canvas`. Para obter informações sobre o SageMaker Canvas, consulte[Amazon SageMaker Canvas](canvas.md).
  + Tipo de aplicação Studio Classic: `JupyterServer`. Para obter informações sobre o Studio Classic, consulte [Amazon SageMaker Studio clássico](studio.md).
  + RStudio tipo de aplicação:`RStudioServerPro`. Para obter informações sobre RStudio, consulte[RStudio na Amazon SageMaker AI](rstudio.md).
+ Para obter o `example-user-name`, navegue até a página **Detalhes do domínio**. 
  + Em seguida, escolha a guia **Perfis de usuário** e copie o nome do espaço relevante.

Para obter instruções alternativas para excluir aplicações do Studio em execução, consulte: 
+ JupyterLab: [Excluir recursos não utilizados](studio-updated-jl-admin-guide-clean-up.md).
+ Editor de Código: [Encerre os recursos do Editor de Código](code-editor-use-log-out.md).
+ SageMaker Tela:[Sair do Amazon SageMaker Canvas](canvas-log-out.md).
+ Studio Classic: [Desligue e atualize o Amazon SageMaker Studio Classic e os aplicativos](studio-tasks-update.md).
+ RStudio: [Encerrar RStudio](rstudio-shutdown.md).

## Excluir um espaço do Studio
<a name="studio-updated-running-stop-space"></a>

**Importante**  
Depois de excluir seu espaço, você perderá todos os dados armazenados no espaço. Recomendamos que você faça backup dos dados antes de excluir seu espaço.

Para excluir um espaço do Studio, você precisará ter permissões de administrador ou pelo menos ter permissões para atualizar o domínio, o IAM e o Amazon S3.
+ Os espaços são usados para gerenciar as necessidades de armazenamento e recursos da aplicação relevante. Quando você exclui um espaço, o volume de armazenamento também é excluído. Portanto, você perde o acesso aos arquivos armazenados nesse espaço. Para obter mais informações sobre espaços compartilhados, consulte [Espaços do Amazon SageMaker Studio](studio-updated-spaces.md).

  Recomendamos que você faça backup dos dados se optar por excluir um espaço.
+ Depois de excluir um espaço, você não pode acessá-lo novamente.

Você pode excluir os espaços do Studio que podem ser visualizados na seção **Espaços** do console. Para obter uma lista dos espaços visíveis, consulte [Visualizar espaços do Studio](studio-updated-running.md#studio-updated-running-view-space). 

Não há espaços para SageMaker Canvas, Studio Classic (privado) RStudio e. Para parar e excluir seu SageMaker Canvas, Studio Classic (privado) ou RStudio aplicativos, consulte[Pare seu aplicativo Amazon SageMaker Studio](#studio-updated-running-stop-app).

### Excluir um espaço usando o console SageMaker AI
<a name="studio-updated-running-stop-space-using-sagemaker-console"></a>

A seção **Espaços** na página de **Detalhes do domínio** fornece informações sobre os espaços do Studio em seu domínio. Você pode exibir, criar e excluir espaços nessa página. 

**Para visualizar espaços do Studio em um domínio**

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador** e selecione **Domínios**. 

1. Escolha o domínio em que deseja visualizar os espaços.

1. Em **Detalhes do domínio**, escolha **Gerenciamento de espaço** para abrir a seção **Espaços**.

1. Selecione o espaço a ser excluído.

1. Escolha **Excluir**. 

1. Na caixa pop-up intitulada **Excluir espaço**, você tem duas opções: 
   + Se você já encerrou todas as aplicações no espaço, escolha **Sim, excluir espaço**.
   + Se você ainda tiver aplicações em execução no espaço, escolha **Sim, encerrar todas as aplicações e excluir o espaço**.

1. Insira **delete** no campo de entrada de exclusão para confirmar a exclusão.

1. Para excluir o espaço, você tem duas opções:
   + Se você já encerrou todas as aplicações no espaço, escolha **Excluir espaço**.
   + Se você ainda tiver aplicações em execução no espaço, escolha **Sim, encerrar todas as aplicações e excluir o espaço**.

### Exclua um espaço usando a AWS CLI
<a name="studio-updated-running-stop-space-using-cli"></a>

Antes de excluir um espaço usando o AWS CLI, você deve excluir o aplicativo associado a ele. Para mais informações sobre interromper as aplicações do Studio, consulte [Pare seu aplicativo Amazon SageMaker Studio](#studio-updated-running-stop-app).

Use o AWS CLI comando a seguir para excluir um espaço em um domínio:

```
aws sagemaker delete-space \
--domain-id example-domain-id \
--region Região da AWS \
--space-name example-space-name
```
+ Para obter o `example-domain-id`, use as seguintes instruções:

**Para obter o `example-domain-id`**

  1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

  1. No painel de navegação à esquerda, escolha **Configurações do administrador** e selecione **Domínios**. 

  1. Escolha o domínio relevante.

  1. Na página **Detalhes do Domínio**, escolha a guia **Configurações do Domínio**.

  1. Copie o **ID do domínio**.
+ Para obter a `Região da AWS`, use as seguintes instruções para garantir que você esteja usando a Região da AWS correta para o seu domínio: 

**Para obter o `Região da AWS`**

  1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

  1. No painel de navegação à esquerda, escolha **Configurações do administrador** e selecione **Domínios**. 

  1. Escolha o domínio relevante.

  1. Na página **Detalhes do domínio**, verifique se esse é o domínio relevante.

  1. Expanda a lista suspensa de regiões no canto superior direito do console de SageMaker IA e use o Região da AWS ID correspondente à direita do seu Região da AWS nome. Por exemplo, .`us-west-1`
+ Para obter `example-space-name`, use as seguintes etapas: 

**Para obter o `example-space-name`**

  1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

  1. No painel de navegação à esquerda, escolha **Configurações do administrador** e selecione **Domínios**. 

  1. Escolha o domínio relevante.

  1. Na página de **Detalhes do domínio**, escolha a aba **Gerenciamento de espaço**.

  1. Copie o nome do espaço relevante.

# SageMaker Política de suporte de imagem do Studio
<a name="sagemaker-distribution"></a>

**Importante**  
Atualmente, todos os pacotes em imagens de SageMaker distribuição são licenciados para uso com a Amazon SageMaker AI e não exigem licenças comerciais adicionais. No entanto, isso pode estar sujeito a alterações no futuro. Por isso, recomendamos que consulte regularmente os termos de licenciamento para verificar se existem atualizações.

O Amazon SageMaker Distribution é um conjunto de imagens do Docker disponível no SageMaker Studio que inclui estruturas populares para aprendizado de máquina, ciência de dados e visualização.

As imagens incluem estruturas de aprendizado profundo como PyTorch, TensorFlow e Keras; pacotes Python populares como numpy, scikit-learn e pandas; e like and Code Editor, baseado em Code-OSS, IDEs Visual JupyterLab Studio Code - Open Source. A distribuição contém as versões mais recentes de todos esses pacotes para que sejam mutuamente compatíveis.

Esta página detalha a política de suporte e a disponibilidade para imagens SageMaker de distribuição no SageMaker Studio.

## Versionamento, cadência de lançamento e política de compatibilidade
<a name="sm-distribution-versioning"></a>

A tabela abaixo descreve o cronograma de lançamento das versões da SageMaker Distribution Image e seu suporte planejado. AWS fornece atualizações contínuas de funcionalidade e segurança para as versões de imagem suportadas. Novas versões secundárias são lançadas para as versões principais durante 12 meses e as versões secundárias compatíveis recebem funcionalidades e patches de segurança contínuos. Em alguns casos, uma versão de imagem pode precisar ser designada como fim do suporte antes do planejado originalmente se (a) os problemas de segurança não puderem ser resolvidos mantendo as diretrizes de versão semântica ou (b) qualquer uma de nossas principais dependências, como o Python, for alcançada. end-of-life AWS lança versões principais ou secundárias ad-hoc conforme necessário.


| Versão | Description | Cadência de lançamento | Compatibilidade planejada | 
| --- | --- | --- | --- | 
| Principais | Os principais lançamentos de versões da Amazon SageMaker Distribution envolvem a atualização de todas as suas principais dependências para as versões compatíveis mais recentes. Como parte da atualização, esses lançamentos principais também podem adicionar ou excluir pacotes. As versões principais são indicadas pelo primeiro número na string da versão, como 1.0, 2.0 ou 3.0. | 6 meses | 18 meses | 
| Secundárias | Os lançamentos de versões secundárias da Amazon SageMaker Distribution incluem a atualização de todas as suas dependências principais para as versões secundárias compatíveis mais recentes dentro da mesma versão principal. SageMaker A distribuição pode adicionar novos pacotes durante o lançamento de uma versão secundária. As versões secundárias são indicadas pelo segundo número na string de versão, por exemplo, 1.1, 1.2 ou 2.1. | 1 mês | 6 meses | 
| Patch | Os lançamentos da versão de patch da Amazon SageMaker Distribution incluem a atualização de todas as suas dependências principais para as versões de patch compatíveis mais recentes dentro da mesma versão secundária. SageMaker A distribuição não adiciona nem remove nenhum pacote durante o lançamento de uma versão de patch. As versões do patch são indicadas pelo terceiro número na string de versão, por exemplo, 1.1.1, 1.2.1 ou 2.1.3. Como as versões do patch geralmente são lançadas para corrigir vulnerabilidades de segurança, recomendamos sempre atualizar para a versão do patch mais recente, quando estiverem disponíveis. | Conforme necessário para corrigir vulnerabilidades de segurança | Até que uma nova versão do patch seja lançada | 

Cada versão principal da Amazon SageMaker Distribution está disponível por 18 meses. Durante os primeiros 12 meses, são lançadas novas versões secundárias mensalmente. Nos seis meses restantes, as versões secundárias existentes continuarão compatíveis.

## Versões de imagens compatíveis
<a name="sagemaker-distribution-supported-packages"></a>

As tabelas abaixo listam as versões SageMaker de imagem de distribuição suportadas, suas datas planejadas de fim do suporte e sua disponibilidade no SageMaker Studio. Para versões de imagens cujo suporte termina antes da data planejada de fim da compatibilidade, as versões continuam disponíveis no Studio até a data de disponibilidade definida. Você pode continuar usando a imagem para iniciar aplicações por até 90 dias ou até a data de disponibilidade no Studio, o que ocorrer primeiro. Para obter mais informações sobre esses casos, entre em contato com Suporte.

Você pode migrar para uma versão mais recente compatível o quanto antes para garantir que receba atualizações contínuas de funcionalidade e segurança. Ao escolher uma versão de imagem no SageMaker Studio, recomendamos que você escolha uma versão de imagem compatível nas tabelas abaixo.

### Versões principais compatíveis
<a name="sm-distribution-major-versions"></a>

A tabela a seguir lista as principais versões de imagem do SageMaker Distribution suportadas.


| Versão de imagem | Lançamento da última versão secundária | Compatível até | Description | 
| --- | --- | --- | --- | 
| 1.x.x | 30 de abril de 2025 | 30 de outubro de 2025 | SageMaker A versão principal da distribuição 1 é construída com o Python 3.10. | 
| 2.x.x | 25 de agosto de 2025 | 25 de fevereiro de 2026 | SageMaker A versão 2 principal da distribuição é construída com o Python 3.11. | 
|  3.x.x  | 29 de março de 2026 | 29 de setembro de 2026 |  SageMaker A versão 3 principal da distribuição é construída com o Python 3.12.  | 

### Versões secundárias de imagens da CPU
<a name="sm-distribution-cpu-versions"></a>

A tabela a seguir lista as versões de imagens secundárias de SageMaker distribuição suportadas para CPUs.


| Versão de imagem | URI da imagem do Amazon ECR | Data planejada para o fim da compatibilidade | Disponibilidade no Studio até | Notas da versão | 
| --- | --- | --- | --- | --- | 
| 3.1.x | public.ecr. aws/sagemaker/sagemaker-distribuição: 3.1-cpu | 19 de novembro de 2025 | 19 de novembro de 2025 | [Notas da versão](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v3/v3.1) | 
| 3.0.x  | public.ecr. aws/sagemaker/sagemaker-distribuição: 3.0-cpu  | 30 de junho de 2025 | 29 de setembro de 2025 | [Notas da versão](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v3/v3.0) | 
| 2.6.x | public.ecr. aws/sagemaker/sagemaker-distribuição: 2,6-cpu | 30 de junho de 2025 | 28 de outubro de 2025 | [Notas da versão](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v2/v2.6) | 

### Versões secundárias de imagens da GPU
<a name="sm-distribution-gpu-versions"></a>

A tabela a seguir lista as versões de imagens secundárias de SageMaker distribuição suportadas para GPUs.


| Versão de imagem | URI da imagem do Amazon ECR | Data planejada para o fim da compatibilidade | Disponibilidade no Studio até | Notas de lançamento do patch mais recente | 
| --- | --- | --- | --- | --- | 
| 3.1.x | public.ecr. aws/sagemaker/sagemaker-distribuição: 3.1 gpu | 19 de novembro de 2025 | 19 de novembro de 2025 | [Notas da versão](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v3/v3.1) | 
| 3.0.x | public.ecr. aws/sagemaker/sagemaker-distribuição: 3.0-gpu | 30 de junho de 2025 | 29 de setembro de 2025 | [Notas da versão](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v3/v3.0) | 
| 2.6.x | public.ecr. aws/sagemaker/sagemaker-distribuição: 2,6-gpu | 30 de junho de 2025 | 28 de outubro de 2025 | [Notas da versão](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v2/v2.6) | 

### Imagens incompatíveis
<a name="sm-distribution-unsupported-images"></a>

A tabela a seguir lista as versões de imagem SageMaker de distribuição não suportadas.


| Versão de imagem | URI da imagem do Amazon ECR | Data do fim da compatibilidade | Disponibilidade no Studio até | 
| --- | --- | --- | --- | 
| 2.4.x |  public.ecr. aws/sagemaker/sagemaker-distribuição: 2,4-cpu public.ecr. aws/sagemaker/sagemaker-distribuição: 2,4-cpu  | 7 de setembro de 2025 | 7 de setembro de 2025 | 
| 2.3.x |  public.ecr. aws/sagemaker/sagemaker-distribuição: 2,3-cpu public.ecr. aws/sagemaker/sagemaker-distribuição: 2,3-cpu  | 27 de julho de 2025 | 27 de julho de 2025 | 
| 2.2.x |  public.ecr. aws/sagemaker/sagemaker-distribuição: 2,2-cpu public.ecr. aws/sagemaker/sagemaker-distribuição: 2.2 gpu  | 15 de maio de 2025 | 15 de maio de 2025 | 
| 2.1.x |  public.ecr. aws/sagemaker/sagemaker-distribuição: 2.1-cpu public.ecr. aws/sagemaker/sagemaker-distribuição: 2.1 gpu  | 25 de abril de 2025 | 12 de maio de 2025 | 
| 2.0.x |  public.ecr. aws/sagemaker/sagemaker-distribuição: 2.0-cpu public.ecr. aws/sagemaker/sagemaker-distribuição: 2.0-gpu  | 25 de fevereiro de 2025 | 21 de abril de 2025 | 
| 1.13.x |  public.ecr. aws/sagemaker/sagemaker- distribuição: 1,13 - CPU public.ecr. aws/sagemaker/sagemaker-distribuição: 1,13 gpu  | 15 de maio de 2025 | 20 de setembro de 2025 | 
| 1.12.x |  public.ecr. aws/sagemaker/sagemaker- distribuição: 1,12-cpu public.ecr. aws/sagemaker/sagemaker-distribuição: 1,12-gpu  | 23 de julho de 2025 | 23 de julho de 2025 | 
| 1.11.x |  public.ecr. aws/sagemaker/sagemaker- distribuição: 1,11-cpu public.ecr. aws/sagemaker/sagemaker-distribuição: 1,11-gpu  | 1.º de abril de 2025 | 12 de maio de 2025 | 
| 1.10.x |  public.ecr. aws/sagemaker/sagemaker- distribuição: 1,10-cpu public.ecr. aws/sagemaker/sagemaker-distribuição: 1,10-gpu  | 5 de fevereiro de 2025 | 10 de abril de 2025 | 
| 1.9.x |  public.ecr. aws/sagemaker/sagemaker-distribuição: 1,9-cpu public.ecr. aws/sagemaker/sagemaker-distribuição: 1,9-gpu  | 15 de janeiro de 2025 | 10 de abril de 2025 | 
| 1.8.x |  public.ecr. aws/sagemaker/sagemaker- distribuição: 1,8-cpu public.ecr. aws/sagemaker/sagemaker-distribuição: 1,8 gpu  | 31 de dezembro de 2024 | 10 de abril de 2025 | 
| 1.7.x |  public.ecr. aws/sagemaker/sagemaker-distribuição: 1,7-cpu public.ecr. aws/sagemaker/sagemaker-distribuição: 1,7-gpu  | 15 de dezembro de 2024 | 10 de abril de 2025 | 
| 1.6.x |  public.ecr. aws/sagemaker/sagemaker-distribuição: 1,6 CPU public.ecr. aws/sagemaker/sagemaker-distribuição: 1,6 gpu  | 15 de dezembro de 2024 | 10 de abril de 2025 | 
| 1.5.x |  public.ecr. aws/sagemaker/sagemaker- distribuição: 1,5 CPU public.ecr. aws/sagemaker/sagemaker-distribuição: 1,5 gpu  | 31 de outubro de 2024 | 1.º de novembro de 2024 | 
| 1.4.x |  public.ecr. aws/sagemaker/sagemaker-distribuição: 1,4-cpu public.ecr. aws/sagemaker/sagemaker-distribuição: 1,4-gpu  | 31 de outubro de 2024 | 1.º de novembro de 2024 | 
| 1.3.x | public.ecr. aws/sagemaker/sagemaker- distribuição: 1,3 CPU | 28 de junho de 2024 | 18 de outubro de 2024 | 
| 1.2.x | public.ecr. aws/sagemaker/sagemaker- distribuição: 1,2 - CPU | 28 de junho de 2024 | 18 de outubro de 2024 | 

### Perguntas frequentes
<a name="sm-distribution-faqs"></a>

**O que constitui o lançamento de uma versão principal de imagem?**

As versões principais de imagem são lançadas a cada seis meses. O lançamento de uma versão principal de imagem para a Amazon SageMaker Distribution envolve a atualização de todas as dependências principais para as versões compatíveis mais recentes e pode incluir a adição ou remoção de pacotes. A estrutura do Python só é atualizada com os novos lançamentos de versões principais. Por exemplo, com o lançamento principal da versão 2, a estrutura Python foi atualizada da versão 3.10 para a 3.11, PyTorch da 2.0 para a 2.3, da 2.14 para a 2.17, o Autogluon TensorFlow foi atualizado da 0.8 para a 1.1 e 4 pacotes foram adicionados à imagem.

**O que constitui o lançamento de uma versão secundária de imagem?**

As versões secundárias de imagens são lançadas mensalmente para todas as versões principais compatíveis. Uma versão secundária de imagem para a Amazon SageMaker Distribution envolve a atualização de todas as dependências principais, exceto Python e CUDA, para as versões secundárias mais recentes compatíveis dentro da mesma versão principal e pode incluir a adição de novos pacotes. Por exemplo, com o lançamento de uma versão secundária, o langchain pode ser atualizado de 0.1 para 0.2, e o jupyter-ai de 2.18 para 2.20.

**O que constitui o lançamento de uma versão do patch de imagem?**

As versões do patch de imagem são lançadas conforme necessário para corrigir vulnerabilidades de segurança. O lançamento de uma versão de imagem de patch para a Amazon SageMaker Distribution envolve a atualização de todas as suas dependências principais para as versões de patch compatíveis mais recentes dentro da mesma versão secundária. SageMaker A distribuição não adiciona nem remove nenhum pacote durante o lançamento de uma versão de patch. Por exemplo, com o lançamento de uma versão do patch, o matplotlib pode ser atualizado de 3.9.1 para 3.9.2, e o boto3 de 1.34.131 para 1.34.162.

**Onde posso encontrar os pacotes disponíveis em uma versão específica de imagem?**

Cada versão de imagem tem um `release.md` arquivo na `build_artifacts` pasta [do GitHub repositório](https://github.com/aws/sagemaker-distribution), mostrando todos os pacotes e versões de pacotes para imagens de CPU e GPU. Os arquivos separados de changelog para as versões de CPU e GPU especificam as atualizações de pacotes. Os changelogs comparam a nova versão da imagem com a anterior. Por exemplo, a versão 1.9.0 é comparada à versão do patch 1.8 mais recente, a versão 1.9.1 é comparada à versão 1.9.0, e a versão 2.0.0 é comparada à versão do patch mais recente da versão secundária mais recente disponível no momento.

**Como as imagens são digitalizadas em busca de vulnerabilidades e exposições comuns ()? CVEs**

O Amazon SageMaker AI aproveita a [verificação aprimorada do Amazon Elastic Container Registry (Amazon ECR)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-scanning-enhanced.html) para detectar automaticamente vulnerabilidades e correções para imagens de distribuição. SageMaker AWS executa continuamente a digitalização aprimorada do ECR para a versão de patch mais recente de todas as versões de imagem suportadas. Quando as vulnerabilidades são detectadas e uma correção está disponível, AWS lança uma versão de imagem atualizada para corrigir o problema.

**Ainda posso usar imagens antigas depois que uma imagem deixar de ser compatível?**

As imagens estão disponíveis no SageMaker Studio até a data de disponibilidade designada. As imagens mais antigas permanecem disponíveis no ECR após chegarem o fim da compatibilidade e serem excluídas do Studio. Você pode baixar versões de imagem mais antigas do ECR e [criar uma SageMaker imagem personalizada](studio-byoi-create.md). Entretanto, é bastante recomendável atualizar para uma versão de imagem compatível que receba atualizações de segurança e correções de erros continuamente. Os clientes que criam imagens próprias personalizadas ficam responsáveis por verificar e corrigir suas imagens. Para mais informações, consulte o [Modelo de responsabilidade compartilhada da AWS](https://aws.amazon.com/compliance/shared-responsibility-model/).

**Importante**  
SageMaker A distribuição v0.x.y é usada somente no Studio Classic. SageMaker A distribuição v1.x.y só é usada em. JupyterLab

# Preços do Amazon SageMaker Studio
<a name="studio-updated-cost"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da experiência atualizada do Studio. Para obter informações sobre como usar a aplicação do Studio Classic, consulte [Amazon SageMaker Studio clássico](studio.md).

Não há cobrança adicional pelo uso da interface do usuário do Amazon SageMaker Studio.  

Os seguintes itens incorrem em custos:
+ Volumes do Amazon Elastic Block Store ou do Amazon Elastic File System que são montados com suas aplicações.
+ Quaisquer trabalhos e recursos que os usuários iniciem a partir das aplicações do Studio.
+ Iniciar um JupyterLab aplicativo, mesmo que nenhum recurso ou tarefa tenha sido lançado no aplicativo. 

Para obter informações sobre como o Amazon SageMaker Studio Classic é cobrado, consulte[Preços do Amazon SageMaker Studio Classic](studio-pricing.md). 

Para obter mais informações sobre faturamento e exemplos de preços, consulte [Amazon SageMaker Pricing](https://aws.amazon.com//sagemaker/pricing/). 

# Solução de problemas
<a name="studio-updated-troubleshooting"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da experiência atualizada do Studio. Para obter informações sobre como usar a aplicação do Studio Classic, consulte [Amazon SageMaker Studio clássico](studio.md).

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Esta seção mostra como solucionar problemas comuns no Amazon SageMaker Studio.

## Método de recuperação
<a name="studio-updated-troubleshooting-recovery-mode"></a>

O modo de recuperação permite que você acesse sua aplicação do Studio quando um problema de configuração impede a inicialização normal. Ele oferece um ambiente simplificado com funcionalidades essenciais para ajudar a diagnosticar e corrigir o problema.

Quando uma aplicação falhar na inicialização, provavelmente você verá uma mensagem de erro sobre o acesso ao modo de recuperação para resolver um dos problemas de configuração a seguir.
+ Arquivo [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) corrompido.

  Para ter informações sobre como solucionar problemas com o arquivo `.condarc` arquivo, consulte a página [Troubleshooting](https://docs.conda.io/projects/conda/en/latest/user-guide/troubleshooting.html) no *Conda user guide*.
+ Volume de armazenamento disponível insuficiente. 

  Você pode aumentar o espaço de armazenamento do Amazon EBS disponível para a aplicação ou entrar no modo de recuperação para remover dados desnecessários.

  Para ter informações sobre como aumentar o tamanho do volume do Amazon EBS, consulte [Solicitar um aumento de cota](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) no *Guia do usuário do Service Quotas*.

No modo de recuperação:
+ Seu diretório inicial será diferente do diretório de sua inicialização normal. Esse diretório é temporário e garante que qualquer configuração corrompida em seu diretório inicial padrão não afete suas operações no modo de recuperação. Você pode navegar até seu diretório inicial padrão usando o comando`cd /home/sagemaker-user`.
  + Modo padrão: `/home/sagemaker-user`
  + Método de recuperação: `/tmp/sagemaker-recovery-mode-home`
+ O ambiente Conda usa um ambiente conda básico mínimo com apenas pacotes essenciais. A configuração simplificada do Conda ajuda a isolar problemas relacionados ao ambiente e oferece funcionalidade básica para solução de problemas.

Você pode usar a interface do usuário do Studio ou a AWS CLI para acessar o aplicativo no modo de recuperação.

### Use a interface de usuário do Studio para acessar a aplicação no modo de recuperação.
<a name="studio-updated-troubleshooting-recovery-mode-console"></a>

A seguir são apresentadas instruções para acessar sua aplicação no modo de recuperação.

1. Se ainda não tiver feito isso, inicie a interface de usuário do Studio seguindo as instruções em [Inicie a partir do console Amazon SageMaker AI](studio-updated-launch.md#studio-updated-launch-console).

1. No menu de navegação à esquerda, em **Aplicações**, escolha a aplicação.

1. Escolha o espaço com o qual você está tendo problemas de configuração.

   As etapas a seguir são disponibilizadas quando você encontra um ou mais dos problemas de configuração mencionados anteriormente. Nesse caso, você verá um banner de aviso e uma mensagem do **modo de recuperação**. 
**nota**  
O banner de aviso deve ter uma solução recomendada para o problema. Anote-a antes de continuar.

1. Escolha **Espaço de execução (modo de recuperação)**. 

1. Para acessar seu aplicativo no modo de recuperação, escolha **Abrir *application* (modo de recuperação)**.

### Use o AWS CLI para acessar o aplicativo no modo de recuperação
<a name="studio-updated-troubleshooting-recovery-mode-cli"></a>

Para acessar seu aplicativo no modo de recuperação, você deve anexar `--recovery-mode` ao comando [AWS CLI create-app](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-app.html). A seguir é apresentado um exemplo sobre como acessar uma aplicação no modo de recuperação. 

Para o exemplo a seguir, você precisará de:
+ *domain-id*

  Para obter os detalhes do seu domínio, consulte [Visualizar domínios](domain-view.md).
+ *space-name*

  Para obter os nomes de espaço associados ao seu domínio, consulte[Use o AWS CLI para visualizar os espaços de SageMaker IA em seu domínio](sm-console-domain-resources-view.md#sm-console-domain-resources-view-spaces-cli).
+ *app-name*

  O nome da sua aplicação. Para visualizar suas aplicações, consulte [Use o AWS CLI para visualizar os aplicativos de SageMaker IA em seu domínio](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
```

------

## Não é possível excluir o editor de código ou o JupyterLab aplicativo
<a name="studio-updated-troubleshooting-cannot-delete-application"></a>

Esse problema ocorre quando um usuário cria um aplicativo do Amazon SageMaker Studio, que só está disponível no Studio, e depois reverte sua experiência padrão para o Studio Classic. Como resultado, o usuário não pode excluir um aplicativo do Editor de Código, com base no Code-OSS, no Visual Studio Code - Open Source ou JupyterLab porque não consegue acessar a interface do usuário do Studio.

Para resolver esse problema, notifique seu administrador para que ele possa excluir o aplicativo manualmente usando o AWS Command Line Interface (AWS CLI). 

## EC2InsufficientCapacityError
<a name="studio-updated-troubleshooting-ec2-capacity"></a>

Esse problema ocorre quando você tenta executar um espaço e atualmente AWS não tem capacidade sob demanda disponível suficiente para atender à sua solicitação. 

Para resolver esse problema, faça o seguinte: 
+ Espere alguns minutos e envie sua solicitação novamente. A capacidade pode mudar com frequência.
+ Execute o espaço com um tamanho ou tipo de instância alternativo.

**nota**  
A capacidade está disponível em Zonas de Disponibilidade diferentes. Para maximizar a disponibilidade da capacidade para os usuários, recomendamos configurar sub-redes em todas as Zonas de Disponibilidade. O Studio repete todas as Zonas de Disponibilidade disponíveis para o domínio.   
A disponibilidade do tipo de instância difere entre as regiões. Para obter uma lista dos tipos de instâncias compatíveis por região, consulte os [preços do Amazon SageMaker AI](https://aws.amazon.com/sagemaker/pricing/))

A tabela a seguir lista as famílias de instâncias e suas alternativas recomendadas.


| Família de instâncias | Tipo de CPU | v CPUs | Memória (GiB) | Tipo de GPU | GPUs | Memória de GPU (GiB) | Alternativa recomendada | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
| G4dn | Processadores Intel Xeon escaláveis de segunda geração | De 4 a 96 | De 16 a 384 | NVIDIA T4 Tensor Core | 1 a 8 | 16 por GPU | G6 | 
| G5 | Processadores AMD EPYC de segunda geração | De 4 a 192 | De 16 a 768 | NVIDIA A10G Tensor Core | 1 a 8 | 24 por GPU | G6e | 
| G6 | Processadores AMD EPYC de terceira geração | De 4 a 192 | De 16 a 768 | NVIDIA L4 Tensor Core | 1 a 8 | 24 por GPU | G4dn | 
| G6e | Processadores AMD EPYC de terceira geração | De 4 a 192 | De 32 a 1.536 | NVIDIA L40S Tensor Core | 1 a 8 | 48 por GPU | G5, P4 | 
| P3 | Processadores Intel Xeon escaláveis | De 8 a 96 | De 61 a 768 | NVIDIA Tesla V100 | 1 a 8 | 16 por GPU (32 por GPU para P3dn) | G6e, P4 | 
| P4 | Processadores Intel Xeon escaláveis de segunda geração | 96 | 1152 | NVIDIA A100 Tensor Core | 8 | 320 (640 para P4de) | G6e | 
| P5 | Processadores AMD EPYC de terceira geração | 192 | 2000 | NVIDIA H100 Tensor Core | 8 | 640 | P4de | 

## Limite insuficiente (é necessário aumentar a cota)
<a name="studio-updated-troubleshooting-insufficient-limit"></a>

Esse problema ocorre quando você recebe o seguinte erro ao executar um espaço: 

```
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 Service Quotas to request an increase for this quota.
```

Há um limite padrão quanto ao número de instâncias, para cada tipo de instância, que é possível executar em cada Região da AWS. Esse erro significa que você atingiu esse limite. 

Para resolver esse problema, solicite um aumento do limite de instância para o espaço em Região da AWS que você está lançando o espaço. Consulte [Solicitar um aumento de cota](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)para ter mais informações.

## Falha ao carregar a imagem personalizada
<a name="studio-updated-troubleshooting-custom-image"></a>

Esse problema ocorre quando uma imagem de SageMaker IA é excluída antes de separar a imagem do seu domínio. Isso pode ser visto quando você visualiza a guia **Ambiente** do seu domínio.

Para resolver esse problema, você precisará criar uma imagem temporária com o mesmo nome da imagem excluída, desanexar a imagem e, em seguida, excluir a temporária. Use as instruções a seguir para ver uma demonstração.

1. Se você ainda não fez isso, inicie o [console de SageMaker IA](https://console.aws.amazon.com/sagemaker).

1. No menu de navegação à esquerda, em **Configurações de administração**, escolha **Domínios**.

1. Escolha o seu domínio.

1. Escolha a guia **Ambiente**. Você verá a mensagem de erro nessa página.

1. Use o ARN da imagem para copiar o nome da sua imagem.

1. No menu de navegação à esquerda, em **Configurações de administração**, escolha **Imagens**.

1. Escolha **Criar imagem**.

1. Siga as etapas do procedimento, mas garanta que o nome da imagem seja igual ao nome da imagem acima. 

   Se você não tiver uma imagem em um diretório do Amazon ECR, consulte as instruções em [Criar uma imagem personalizada e enviá-la ao Amazon ECR](studio-updated-byoi-how-to-prepare-image.md).

1. Depois de criar sua imagem de SageMaker IA, volte para a guia **Ambiente** do seu domínio. Você verá a imagem anexada ao seu domínio.

1. Selecione a imagem e clique em **Desanexar**.

1. Siga as instruções para desanexar e excluir a imagem temporária da SageMaker IA.

# Migração do Amazon SageMaker Studio Classic
<a name="studio-updated-migrate"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Quando você abre o Amazon SageMaker Studio, a interface de usuário baseada na web é baseada na experiência padrão escolhida. Atualmente, o Amazon SageMaker AI oferece suporte a duas experiências padrão diferentes: a experiência do Amazon SageMaker Studio e a experiência do Amazon SageMaker Studio Classic. Para acessar os recursos mais recentes do Amazon SageMaker Studio, você deve migrar os domínios existentes da experiência Amazon SageMaker Studio Classic. Ao migrar sua experiência padrão do Studio Classic para o Studio, você não perde nenhum atributo e ainda pode acessar o IDE do Studio Classic dentro do Studio. Para obter informações sobre os benefícios adicionais da experiência do Studio, consulte[SageMaker Estúdio Amazon](studio-updated.md).

**nota**  
Para clientes existentes que criaram suas contas antes de 30 de novembro de 2023, o Studio Classic pode ser a experiência padrão. Você pode ativar o Studio como sua experiência padrão usando o AWS Command Line Interface (AWS CLI) ou o console Amazon SageMaker AI. Para ter mais informações sobre o Studio Classic, consulte [Amazon SageMaker Studio clássico](studio.md). 
Para clientes que criaram suas contas depois de 30 de novembro de 2023, recomendamos usar o Studio como a experiência padrão, pois ele contém vários ambientes de desenvolvimento integrados (IDEs), incluindo o Studio Classic IDE e outros novos recursos.  
JupyterLab 3 atingiu a data de fim da manutenção em 15 de maio de 2024. Depois de 31 de dezembro de 2024, você só poderá criar novos cadernos Studio Classic em JupyterLab 3 por um período limitado. No entanto, após 31 de dezembro de 2024, a SageMaker IA não fornecerá mais correções para problemas críticos nos notebooks Studio Classic em JupyterLab 3. Recomendamos que você migre suas cargas de trabalho para a nova experiência do Studio, que suporta JupyterLab 4.
+ Se o Studio for sua experiência padrão, a interface de usuário será semelhante às imagens encontradas em [Visão geral da interface do usuário do Amazon SageMaker Studio](studio-updated-ui.md).
+ Se o Studio Classic for sua experiência padrão, a interface de usuário será semelhante às imagens encontradas em[Visão geral da interface do usuário do Amazon SageMaker Studio Classic](studio-ui.md).

Para migrar, atualize um domínio em vigor. A migração de um domínio existente do Studio Classic para o Studio requer três fases distintas:

1. **Migrar a interface do usuário do Studio Classic para o Studio**: tarefa única e de baixo custo que exige a criação de um domínio de teste para garantir que o Studio esteja em conformidade com as configurações de rede da sua organização antes de migrar a interface do usuário do domínio existente do Studio Classic para o Studio.

1. **(Opcional) Migrar imagens personalizadas e scripts de configuração do ciclo de vida**: tarefa média para migrar suas imagens personalizadas e scripts de LCC do Studio Classic para o Studio.

1. **(Opcional) Migrar dados do Studio Classic para o Studio**: tarefa pesada que requer o uso de AWS DataSync para migrar dados do volume Amazon Elastic File System do Studio Classic para um volume de destino do Amazon EFS ou do Amazon Elastic Block Store.

   1. **(Opcional) Migrar fluxos de dados do Data Wrangler no Studio Classic**: tarefa única e de baixo custo para migrar seus fluxos de dados do Data Wrangler no Studio Classic para o Studio, que você pode acessar na versão mais recente do Studio por meio do Canvas. SageMaker Para obter mais informações, consulte [Migre fluxos de dados do Data Wrangler](studio-updated-migrate-data.md#studio-updated-migrate-flows).

 Os tópicos a seguir mostram como concluir essas fases para migrar um domínio existente do Studio Classic para o Studio.

## Migração automática
<a name="studio-updated-migrate-auto"></a>

Entre julho de 2024 e agosto de 2024, estamos atualizando automaticamente a experiência de início padrão dos usuários para a nova experiência Studio. Isso muda apenas a interface de início padrão para a interface de usuário do Studio atualizada. A aplicação Studio Classic ainda pode ser acessado a partir da nova interface do usuário do Studio.

Para garantir que a migração funcione com êxito para seus usuários, consulte [Migrar a interface do usuário do Studio Classic para o Studio](studio-updated-migrate-ui.md). Em especial, verifique se:
+ o perfil de execução do domínio tem as permissões corretas;
+ a experiência de início padrão está definida como Studio;
+ a Amazon VPC do domínio, se aplicável, está configurada para o Studio usando o endpoint da VPC do Studio.

No entanto, se você precisar continuar tendo o Studio Classic como sua interface de usuário padrão por um tempo limitado, defina a experiência de início como Studio Classic explicitamente. Para obter mais informações, consulte [Definir o Studio Classic como a experiência padrão](studio-updated-migrate-ui.md#studio-updated-migrate-revert).

**Topics**
+ [Migração automática](#studio-updated-migrate-auto)
+ [Pré-requisitos completos para migrar a experiência do Studio](studio-updated-migrate-prereq.md)
+ [Migrar a interface do usuário do Studio Classic para o Studio](studio-updated-migrate-ui.md)
+ [(Opcional) Migre imagens personalizadas e configurações de ciclo de vida](studio-updated-migrate-lcc.md)
+ [(Opcional) Migrar dados do Studio Classic para o Studio](studio-updated-migrate-data.md)

# Pré-requisitos completos para migrar a experiência do Studio
<a name="studio-updated-migrate-prereq"></a>

A migração da experiência padrão do Studio Classic para o Studio é gerenciada pelo administrador do domínio existente. Se você não tiver permissões para definir o Studio como a experiência padrão para o domínio existente, entre em contato com o administrador. Para migrar sua experiência padrão, você deve ter permissões de administrador ou pelo menos ter permissões para atualizar o domínio existente AWS Identity and Access Management (IAM) e o Amazon Simple Storage Service (Amazon S3). Preencha os pré-requisitos a seguir antes de migrar um domínio existente do Studio Classic para o Studio.
+ A AWS Identity and Access Management função usada para concluir a migração deve ter uma política anexada com pelo menos as seguintes permissões. Para obter informações sobre como criar uma política do IAM, consulte [Criar políticas do IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_create.html).
**nota**  
O lançamento do Studio inclui atualizações nas políticas AWS gerenciadas. Para obter mais informações, consulte [SageMaker Atualizações de IA para políticas AWS gerenciadas](security-iam-awsmanpol.md#security-iam-awsmanpol-updates).
  + Permissões necessárias na 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`
  + Permissões necessárias na fase 2 (opcional, somente se estiver usando scripts de configuração do ciclo de vida):

    Sem permissões adicionais necessárias. Se o domínio existente tiver configurações de ciclo de vida e imagens personalizadas, o administrador já terá as permissões necessárias.
  + Fase 3: usando as permissões personalizadas necessárias do Amazon Elastic File System (opcional, somente se estiver transferindo dados):
    + `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`
  + A fase 3 de uso do Amazon Simple Storage Service exigiu permissões (opcional, somente se estiver transferindo dados):
    + `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`
+ Acesso aos AWS serviços de um ambiente de terminal em:
  + Sua máquina local usando a AWS CLI versão`2.13+`. Use o comando a seguir para verificar a AWS CLI versão.

    ```
    aws --version
    ```
  + AWS CloudShell. Para obter mais informações, consulte [O que é AWS CloudShell?](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)
+ Na sua máquina local ou AWS CloudShell, execute o comando a seguir e forneça suas AWS credenciais. Para obter informações sobre AWS credenciais, consulte [Entendendo e obtendo suas AWS credenciais](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds.html).

  ```
  aws configure
  ```
+ Verifique se o processador JSON leve,jq, está instalado no ambiente do terminal. jqé necessário para analisar AWS CLI as respostas.

  ```
  jq --version
  ```

  Se jq não estiver instalado, instale-o usando os seguintes comandos:
  + 

    ```
    sudo apt-get install -y jq
    ```
  + 

    ```
    sudo yum install -y jq
    ```

# Migrar a interface do usuário do Studio Classic para o Studio
<a name="studio-updated-migrate-ui"></a>

A primeira fase para migrar um domínio existente envolve a migração da interface do usuário do Amazon SageMaker Studio Classic para o Amazon SageMaker Studio. Essa fase não inclui a migração de dados. Os usuários podem continuar trabalhando com seus dados da mesma forma que faziam antes da migração. Para obter informações sobre a migração de dados, consulte [(Opcional) Migrar dados do Studio Classic para o Studio](studio-updated-migrate-data.md).

A fase 1 consiste nas seguintes etapas:

1. Atualizar as permissões de criação de aplicações para novas aplicações disponíveis no Studio.

1. Atualizar a configuração da VPC para o domínio.

1. Atualizar o domínio para usar a interface do Studio.

## Pré-requisitos
<a name="studio-updated-migrate-ui-prereq"></a>

Para configurar esses pré-requisitos, conclua as etapas em [Pré-requisitos completos para migrar a experiência do Studio](studio-updated-migrate-prereq.md).

## Etapa 1: atualizar as permissões de criação de aplicações
<a name="studio-updated-migrate-limit-apps"></a>

Antes de migrar o domínio, atualize a função de execução do domínio para conceder aos usuários permissões para criar aplicações.

1. Crie uma AWS Identity and Access Management política com um dos conteúdos a seguir seguindo as etapas em [Criação de políticas do IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_create.html): 
   + Use a política a seguir para conceder permissões para todos os tipos e espaços de aplicações.
**nota**  
Se o domínio usar a política `SageMakerFullAccess`, não será necessário executar essa ação. `SageMakerFullAccess` concede permissões para criar todas as aplicações.

------
#### [ 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"
                         ]
                     }
                 }
             }
         ]
     }
     ```

------
   + Como o Studio mostra um conjunto expandido de aplicações, os usuários podem ter acesso a aplicações que não foram exibidos antes. Os administradores podem limitar o acesso a esses aplicativos padrão criando uma política AWS Identity and Access Management (IAM) que concede permissões negadas para alguns aplicativos a usuários específicos.
**nota**  
O tipo de aplicação pode ser `jupyterlab` ou `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. Anexar a política ao perfil de execução do domínio. Para obter instruções, siga as etapas em [Adicionar permissões de identidade do IAM (console)](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console).

## Etapa 2: atualizar a configuração da VPC
<a name="studio-updated-migrate-vpc"></a>

Se você usa seu domínio no modo `VPC-Only`, certifique-se de que sua configuração da VPC atenda aos requisitos para usar o Studio no modo `VPC-Only`. Para obter mais informações, consulte [Conecte o Amazon SageMaker Studio em uma VPC a recursos externos](studio-updated-and-internet-access.md).

## Etapa 3: atualizar para a interface de usuário do Studio
<a name="studio-updated-migrate-set-studio-updated"></a>

Antes de migrar seu domínio existente do Studio Classic para o Studio, recomendamos criar um domínio de teste usando o Studio com as mesmas configurações do seu domínio existente.

### (Opcional) Criar um domínio de teste
<a name="studio-updated-migrate-ui-create-test"></a>

Use esse domínio de teste para interagir com o Studio, testar configurações de rede e iniciar aplicações antes de migrar o domínio existente.

1. Obtenha o ID de domínio do seu domínio existente.

   1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

   1. No painel de navegação à esquerda, escolha **Configurações do administrador** e selecione **Domínios**. 

   1. Escolha o domínio existente.

   1. Na página **Detalhes do Domínio**, escolha a guia **Configurações do Domínio**.

   1. Copie o **ID do domínio**.

1. Adicione o ID de domínio do seu domínio existente.

   ```
   export REF_DOMAIN_ID="domain-id"
   export SM_REGION="region"
   ```

1. Use `describe-domain` para obter informações importantes sobre o domínio existente.

   ```
   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. Valide os parâmetros.

   ```
   echo "Execution Role: $REF_EXECROLE || VPCID: $REF_VPC || SubnetIDs: $REF_SIDS || Security GroupIDs: $REF_SGS || AuthMode: $AUTHMODE"
   ```

1. Crie um domínio de teste usando as configurações do domínio existente.

   ```
   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. Depois que o domínio de teste for `In Service`, use o ID do domínio de teste para criar um perfil de usuário. Esse perfil de usuário é usado para iniciar e testar aplicações.

   ```
   aws sagemaker create-user-profile \
   --region="$SM_REGION" --domain-id=test-domain-id \
   --user-profile-name test-network-user
   ```

#### Testar funcionalidade do Studio
<a name="studio-updated-migrate-ui-testing"></a>

Inicie o domínio de teste usando o perfil do usuário `test-network-user`. Sugerimos que você teste minuciosamente a interface do usuário do Studio e crie aplicações para testar a funcionalidade do Studio no modo `VPCOnly`. Teste os seguintes fluxos de trabalho:
+ Crie um novo JupyterLab espaço, teste o ambiente e a conectividade.
+ Criar um novo editor de código, baseado em Code-OSS, Visual Studio Code - Open Source Space, ambiente de teste e conectividade.
+ Inicie um nova aplicação Studio Classic, teste o ambiente e a conectividade.
+ Testar a conectividade do Amazon Simple Storage Service com ações de teste de leitura e gravação.

Se esses testes forem bem-sucedidos, atualize o domínio existente. Se você encontrar alguma falha, recomendamos corrigir seus problemas de ambiente e conectividade antes de atualizar o domínio existente.

#### Limpar os recursos do domínio de teste
<a name="studio-updated-migrate-ui-clean"></a>

Depois de migrar o domínio existente, limpe os recursos do domínio de teste.

1. Adicione o ID do domínio de teste.

   ```
   export TEST_DOMAIN="test-domain-id"
   export SM_REGION="region"
   ```

1. Liste todos as aplicações no domínio que estão em execução.

   ```
   active_apps_json=$(aws sagemaker list-apps --region=$SM_REGION --domain-id=$TEST_DOMAIN)
   echo $active_apps_json
   ```

1. Analise a lista JSON de aplicações em execução e exclua-os. Se os usuários tentarem criar uma aplicação para o qual não têm permissões, pode haver espaços que não foram capturados no script a seguir. Será necessário excluir esses espaços 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. Exclua o perfil de usuário de teste.

   ```
   aws sagemaker delete-user-profile \
   --region=$SM_REGION --domain-id=$TEST_DOMAIN \
   --user-profile-name "test-network-user"
   ```

1. Exclua o domínio de teste.

   ```
   aws sagemaker delete-domain \
   --region=$SM_REGION --domain-id=$TEST_DOMAIN
   ```

Depois de testar a funcionalidade do Studio com as configurações em seu domínio de teste, migre o domínio existente. Quando o Studio é a experiência padrão para um domínio, o Studio é a experiência padrão para todos os usuários no domínio. No entanto, as configurações do usuário têm precedência sobre as configurações do domínio. Portanto, se um usuário tiver sua experiência padrão definida como Studio Classic em suas configurações de usuário, esse usuário terá o Studio Classic como experiência padrão. 

Você pode migrar o domínio existente atualizando-o no console de SageMaker IA AWS CLI, no ou AWS CloudFormation. Escolha uma das guias a seguir para visualizar as instruções relevantes.

### Defina o Studio como a experiência padrão para o domínio existente usando o console SageMaker AI
<a name="studio-updated-migrate-set-studio-updated-console"></a>

Você pode definir o Studio como a experiência padrão para o domínio existente usando o console de SageMaker IA.

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador** e selecione **Domínios**. 

1. Escolha o domínio existente para o qual você quer habilitar o Studio como a experiência padrão.

1. Na página de **Detalhes do domínio**, abra **Ativar o novo Studio**.

1. (Opcional) Para ver os detalhes sobre as etapas envolvidas na ativação do Studio como sua experiência padrão, escolha **Exibir detalhes**. A página mostra o seguinte:
   + Na seção **Visão geral do SageMaker Studio**, você pode ver os aplicativos incluídos ou disponíveis na interface web do Studio. 
   + Na seção **Processo de capacitação**, você pode ver as descrições das tarefas do fluxo de trabalho para habilitar o Studio.
**nota**  
Você precisará migrar seus dados manualmente. Para obter instruções sobre como migrar seus dados, consulte [(Opcional) Migrar dados do Studio Classic para o Studio](studio-updated-migrate-data.md).
   + Na seção **Reverter para a experiência do Studio Classic**, você pode ver como voltar para o Studio Classic depois de ativar o Studio como sua experiência padrão.

1. Para iniciar o processo de habilitar o Studio como sua experiência padrão, escolha **Habilitar o novo Studio**.

1. Na seção **Especificar e configurar a função**, você pode visualizar as aplicações padrão que são incluídos automaticamente no Studio.

   Para impedir que os usuários executem esses aplicações, escolha o perfil do AWS Identity and Access Management (IAM) que tem uma política do IAM que nega o acesso. Para obter informações sobre como criar uma política para limitar o acesso, consulte [Etapa 1: atualizar as permissões de criação de aplicações](#studio-updated-migrate-limit-apps).

1. Na seção **Escolha o bucket padrão do S3 para anexar a política do CORS**, você pode dar ao Studio acesso aos buckets do Amazon S3. O bucket padrão do Amazon S3, nesse caso, é o bucket padrão do Amazon S3 para o Studio Classic. Nesta etapa, você pode fazer o seguinte:
   + Verifique o bucket Amazon S3 padrão do domínio ao qual anexar a política do CORS. Se o seu domínio não tiver um bucket padrão do Amazon S3, a SageMaker AI cria um bucket do Amazon S3 com a política de CORS correta anexada.
   + Você pode incluir 10 buckets adicionais do Amazon S3 aos quais anexar a política do CORS.

     Se quiser incluir mais de 10 buckets, você pode adicioná-los manualmente. Para obter mais informações sobre como anexar manualmente a política CORS aos buckets do Amazon S3, consulte [(Opcional) Atualizar a política CORS para acessar os buckets do Amazon S3](#studio-updated-migrate-cors).

   Para continuar, marque a caixa de seleção ao lado de **Você concorda em substituir alguma política de CORS existente nos buckets do Amazon S3 escolhidos?**.

1. A seção **Migrar dados** contém informações sobre os diferentes volumes de armazenamento de dados do Studio Classic e do Studio. Seus dados não serão migrados automaticamente por meio desse processo. Para obter instruções sobre como migrar seus dados, configurações de ciclo de vida e JupyterLab extensões, consulte. [(Opcional) Migrar dados do Studio Classic para o Studio](studio-updated-migrate-data.md)

1. Depois de concluir as tarefas na página e verificar sua configuração, escolha **Habilitar o novo Studio**.

### Defina o Studio como a experiência padrão para o domínio existente usando o AWS CLI
<a name="studio-updated-migrate-set-studio-updated-cli"></a>

Para definir o Studio como a experiência padrão para o domínio existente usando a AWS CLI, use a chamada [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html). Você deve definir `ENABLED` como o valor para `StudioWebPortal` e definir `studio::` como o valor para `DefaultLandingUri` como parte do parâmetro `default-user-settings`. 

`StudioWebPortal` indica se a experiência do Studio é a experiência padrão e `DefaultLandingUri` indica a experiência padrão para a qual o usuário é direcionado ao acessar o domínio. Neste exemplo, definir esses valores em um nível de domínio (no `default-user-settings`) torna o Studio a experiência padrão para usuários dentro do domínio.

Se um usuário dentro do domínio tiver seu `StudioWebPortal` definido como `DISABLED` e `DefaultLandingUri` definido como `app:JupyterServer:` em um nível de usuário (no `UserSettings`), isso terá precedência sobre as configurações do domínio. Em outras palavras, esse usuário terá o Studio Classic como sua experiência padrão, independentemente das configurações do domínio. 

O seguinte exemplo de código mostra como definir o Studio como a experiência padrão para usuários no domínio:

```
aws sagemaker update-domain \
--domain-id existing-domain-id \
--region Região da AWS \
--default-user-settings '
{
    "StudioWebPortal": "ENABLED",
    "DefaultLandingUri": "studio::"
}
'
```
+ Para obter o `existing-domain-id`, use as seguintes instruções:

**Para obter o `existing-domain-id`**

  1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

  1. No painel de navegação à esquerda, escolha **Configurações do administrador** e selecione **Domínios**. 

  1. Escolha o domínio existente.

  1. Na página **Detalhes do Domínio**, escolha a guia **Configurações do Domínio**.

  1. Copie o **ID do domínio**.
+ Para garantir que você esteja usando o correto Região da AWS para seu domínio, use as seguintes instruções: 

**Para obter o `Região da AWS`**

  1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

  1. No painel de navegação à esquerda, escolha **Configurações do administrador** e selecione **Domínios**. 

  1. Escolha o domínio existente.

  1. Na página **Detalhes do domínio**, verifique se esse é o domínio existente.

  1. Expanda a lista Região da AWS suspensa no canto superior direito do console de SageMaker IA e use o Região da AWS ID correspondente à direita do seu Região da AWS nome. Por exemplo, .`us-west-1`

Depois de migrar sua experiência padrão para o Studio, você pode dar ao Studio acesso aos buckets do Amazon S3. Por exemplo, você pode incluir acesso ao seu bucket Amazon S3 padrão do Studio Classic e buckets adicionais do Amazon S3. Para fazer isso, você deve anexar manualmente uma configuração de [Compartilhamento de recursos de origem cruzada](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) (CORS) aos buckets do Amazon S3. Para obter mais informações sobre como anexar manualmente a política do CORS aos buckets do Amazon S3, consulte [(Opcional) Atualizar a política CORS para acessar os buckets do Amazon S3](#studio-updated-migrate-cors).

Da mesma forma, você pode definir o Studio como a experiência padrão ao criar um domínio AWS CLI usando a chamada [create-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/create-domain.html). 

### Defina o Studio como a experiência padrão para o domínio existente usando o AWS CloudFormation
<a name="studio-updated-migrate-set-studio-updated-cloud-formation"></a>

Você pode definir a experiência padrão ao criar um domínio usando o AWS CloudFormation. Para obter um modelo de CloudFormation migração, consulte [Modelos de IaC do SageMaker Studio Administrator](https://github.com/aws-samples/sagemaker-studio-admin-iac-templates/tree/main?tab=readme-ov-file#phase-1-migration). Para obter mais informações sobre como criar um domínio usando CloudFormation, consulte [Criação de domínio Amazon SageMaker AI usando CloudFormation](https://github.com/aws-samples/cloudformation-studio-domain?tab=readme-ov-file#creating-sagemaker-studio-domains-using-cloudformation).

Para obter informações sobre o recurso de domínio suportado pelo AWS CloudFormation, consulte [AWS:: SageMaker AI: :Domain](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-domain.html#cfn-sagemaker-domain-defaultusersettings).

Depois de migrar sua experiência padrão para o Studio, você pode dar ao Studio acesso aos buckets do Amazon S3. Por exemplo, você pode incluir acesso ao seu bucket Amazon S3 padrão do Studio Classic e buckets adicionais do Amazon S3. Para fazer isso, você deve anexar manualmente uma configuração de [Compartilhamento de recursos de origem cruzada](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) (CORS) aos buckets do Amazon S3. Para obter informações sobre como anexar manualmente a política do CORS aos seus buckets do Amazon S3, consulte [(Opcional) Atualizar a política CORS para acessar os buckets do Amazon S3](#studio-updated-migrate-cors).

### (Opcional) Atualizar a política CORS para acessar os buckets do Amazon S3
<a name="studio-updated-migrate-cors"></a>

No Studio Classic, os usuários podem criar, listar e carregar arquivos para buckets do Amazon Simple Storage Service (Amazon S3). Para oferecer apoio à mesma experiência no Studio, os administradores devem anexar uma configuração de [Compartilhamento de recursos de origem cruzada](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) (CORS) aos buckets do Amazon S3. Isso é necessário porque o Studio faz chamadas para o Amazon S3 a partir do navegador da Internet. O navegador invoca o CORS em nome dos usuários. Como resultado, todas as solicitações para os buckets do Amazon S3 falham, a menos que a política do CORS esteja anexada aos buckets do Amazon S3.

Talvez seja necessário anexar manualmente a política do CORS aos buckets do Amazon S3 pelos seguintes motivos:
+ Se já houver um bucket padrão do Amazon S3 que não tenha a política CORS correta anexada quando você migra a experiência padrão do domínio existente para o Studio.
+ Se você estiver usando o AWS CLI para migrar a experiência padrão do domínio existente para o Studio. Para obter informações sobre como usar o AWS CLI para migrar, consulte[Defina o Studio como a experiência padrão para o domínio existente usando o AWS CLI](#studio-updated-migrate-set-studio-updated-cli).
+ Se você quiser anexar a política do CORS a buckets adicionais do Amazon S3.

**nota**  
Se você planeja usar o console de SageMaker IA para habilitar o Studio como sua experiência padrão, os buckets do Amazon S3 aos quais você anexa a política de CORS terão suas políticas de CORS existentes substituídas durante a migração. Por isso, você pode ignorar as instruções do manual a seguir.  
No entanto, se você já usou o console de SageMaker IA para migrar e deseja incluir mais buckets do Amazon S3 aos quais anexar a política do CORS, continue com as instruções manuais a seguir.

O procedimento a seguir mostra como adicionar manualmente a configuração de CORS a um bucket do Amazon S3.

**Adicionar uma configuração CORS a um bucket do Amazon S3**

1. Verifique se há um bucket do Amazon S3 no mesmo domínio existente com o Região da AWS seguinte nome. Para obter instruções, consulte [Visualizar as propriedades de um bucket do Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/view-bucket-properties.html). 

   ```
   sagemaker-region-account-id
   ```

1. Adicione uma configuração CORS com o conteúdo a seguir ao bucket padrão do Amazon S3. Para obter instruções, consulte [Configurar o compartilhamento de recursos de origem cruzada (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"
           ]
       }
   ]
   ```

### (Opcional) Migrar do Data Wrangler no Studio Classic para o Canvas SageMaker
<a name="studio-updated-migrate-dw"></a>

O Amazon SageMaker Data Wrangler existe como seu próprio recurso na experiência do Studio Classic. Ao habilitar o Studio como sua experiência padrão, use o aplicativo [Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html) para acessar a funcionalidade do Data Wrangler. SageMaker O Canvas é um aplicativo no qual você pode treinar e implantar modelos de aprendizado de máquina sem escrever nenhum código, e o Canvas fornece recursos de preparação de dados baseados no Data Wrangler.

A nova experiência do Studio não é compatível com a interface clássica do Data Wrangler, e você deve criar uma aplicação Canvas se quiser continuar usando o Data Wrangler. No entanto, você deve ter as permissões necessárias para criar e usar aplicações do Canvas.

Conclua as etapas a seguir para anexar as políticas de permissões necessárias à função do AWS IAM do seu domínio de SageMaker IA ou usuário.

**Conceder permissões para a funcionalidade do Data Wrangler dentro do Canvas**

1. Anexe a política AWS gerenciada [AmazonSageMakerFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol.html#security-iam-awsmanpol-AmazonSageMakerFullAccess)à função do IAM do seu usuário. Para um procedimento que mostra como anexar políticas do IAM a um perfil, consulte [Adicionar permissões de identidade do IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console) no *Guia do usuário do AWS IAM*.

   Se essa política de permissões for muito permissiva para seu caso de uso, você poderá criar políticas com escopo reduzido que incluam pelo menos as seguintes permissões:

   ```
   {
       "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. Anexe a política AWS gerenciada [AmazonSageMakerCanvasDataPrepFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasDataPrepFullAccess.html)à função do IAM do seu usuário.

Depois de anexar as permissões necessárias, você pode criar uma aplicação Canvas e fazer login. Para obter mais informações, consulte [Começando a usar o Amazon SageMaker Canvas](canvas-getting-started.md).

Depois de fazer login no Canvas, você pode acessar diretamente o Data Wrangler e começar a criar fluxos de dados. Para obter mais informações, consulte [preparação de dados](canvas-data-prep.md) na documentação do Canvas.

### (Opcional) Migrar do piloto automático no Studio Classic para o Canvas SageMaker
<a name="studio-updated-migrate-autopilot"></a>

[O Amazon SageMaker Autopilot](https://docs.aws.amazon.com/sagemaker/AWSIronmanApiDoc/integ/npepin-studio-migration-autopilot-to-canvas/latest/dg/autopilot-automate-model-development.html) existe como seu próprio recurso na experiência do Studio Classic. Ao migrar para a experiência atualizada do Studio, use o aplicativo [Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html) para continuar usando os mesmos recursos de aprendizado de máquina automatizado (AutoML) por meio de uma interface de usuário (UI). SageMaker O Canvas é um aplicativo no qual você pode treinar e implantar modelos de aprendizado de máquina sem escrever nenhum código, e o Canvas fornece uma interface de usuário para executar suas tarefas do AutoML.

A nova experiência do Studio não é compatível com a interface clássica do Autopilot. Você deve criar uma aplicação Canvas se quiser continuar usando os atributos AutoML do Autopilot por meio de uma interface de usuário. 

No entanto, você deve ter as permissões necessárias para criar e usar aplicações do Canvas.
+ Se você estiver acessando o SageMaker Canvas a partir do Studio, adicione essas permissões à função de execução do seu domínio de SageMaker IA ou perfil de usuário.
+ Se você estiver acessando o SageMaker Canvas a partir do console, adicione essas permissões à função do AWS IAM do seu usuário.
+ Se você estiver acessando o SageMaker Canvas por meio de uma [URL pré-assinada](https://docs.aws.amazon.com/sagemaker/latest/dg/setting-up-canvas-sso.html#canvas-optional-access), adicione essas permissões à função do IAM que você está usando para acessar o Okta SSO.

Para habilitar os recursos do AutoML no Canvas, adicione as seguintes políticas à sua função de execução ou função de usuário do IAM:
+ AWS política gerenciada: [`CanvasFullAccess`.](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess) 
+ Política em linha:

  ```
  {
      "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"
          }
      }
  }
  ```

**Anexar políticas do IAM a um perfil de execução**

1. 

**Encontre a função de execução associada ao seu perfil de usuário de SageMaker IA**

   1. No console de SageMaker IA[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/), navegue até **Domínios** e escolha seu domínio de SageMaker IA.

   1. O ARN do perfil de execução está listado em *Perfil de execução* na página **Detalhes do usuário** do seu perfil de usuário. Observe o nome do perfil de execução no ARN.

   1. No console do IAM [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/), escolha **Roles**.

   1. Procure sua função por nome no campo de pesquisa.

   1. Selecione a função.

1. Adicionar políticas ao perfil

   1. No console do IAM [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/), escolha **Roles**.

   1. Procure sua função por nome no campo de pesquisa.

   1. Selecione a função.

   1. Na guia **Permissões**, navegue até o menu suspenso **Adicionar permissões**.

   1. 
      + Para políticas gerenciadas: selecione **Anexar políticas**, pesquise o nome da política de gerenciamento que você deseja anexar.

        Selecione a política e escolha **Adicionar permissões**.
      + Para políticas em linha: selecione **Criar política em linha**, cole sua política na guia JSON, escolha Avançar, nomeie sua política e escolha **Criar**.

Para um procedimento que mostra como anexar políticas do IAM a um perfil, consulte [Adicionar permissões de identidade do IAM (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console) no *Guia do usuário do AWS IAM*.

Depois de anexar as permissões necessárias, você pode criar uma aplicação Canvas e fazer login. Para obter mais informações, consulte [Começando a usar o Amazon SageMaker Canvas](canvas-getting-started.md).

## Definir o Studio Classic como a experiência padrão
<a name="studio-updated-migrate-revert"></a>

Os administradores podem reverter para o Studio Classic como a experiência padrão para um domínio existente. Isso pode ser feito por meio da AWS CLI.

**nota**  
Quando o Studio Classic é definido como a experiência padrão para um domínio, o Studio Classic é a experiência padrão para todos os usuários no domínio. No entanto, as configurações em nível de usuário têm precedência sobre as configurações em nível de domínio. Portanto, se um usuário tiver sua experiência padrão definida como Studio, esse usuário terá o Studio como experiência padrão. 

Para reverter para o Studio Classic como a experiência padrão para o domínio existente usando o AWS CLI, use a chamada [update-domain](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html). Como parte do campo `default-user-settings`, você deve definir:
+ O valor do `StudioWebPortal` como `DISABLED`.
+ O valor do `DefaultLandingUri` como `app:JupyterServer:`.

`StudioWebPortal` indica se a experiência do Studio é a experiência padrão e `DefaultLandingUri` indica a experiência padrão para a qual o usuário é direcionado ao acessar o domínio. Neste exemplo, definir esses valores em um nível de domínio (no `default-user-settings`) torna o Studio Classic a experiência padrão para usuários dentro do domínio.

Se um usuário dentro do domínio tiver seu `StudioWebPortal` definido como `ENABLED` e `DefaultLandingUri` definido como `studio::` em nível de usuário (em `UserSettings`), isso terá precedência sobre as configurações do domínio. Em outras palavras, esse usuário terá o Studio como sua experiência padrão, independentemente das configurações em nível de domínio. 

O seguinte exemplo de código mostra como definir o Studio Classic como a experiência padrão para usuários no domínio:

```
aws sagemaker update-domain \
--domain-id existing-domain-id \
--region Região da AWS \
--default-user-settings '
{
    "StudioWebPortal": "DISABLED",
    "DefaultLandingUri": "app:JupyterServer:"
}
'
```

Use as instruções a seguir para obter seu `existing-domain-id`.

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador** e selecione **Domínios**. 

1. Escolha o domínio existente.

1. Na página **Detalhes do Domínio**, escolha a guia **Configurações do Domínio**.

1. Copie o **ID do domínio**.

Para obter o seu`Região da AWS`, use as instruções a seguir para garantir que você esteja usando o correto Região da AWS para o seu domínio.

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador** e selecione **Domínios**. 

1. Escolha o domínio existente.

1. Na página **Detalhes do domínio**, verifique se esse é o domínio existente.

1. Expanda a lista Região da AWS suspensa no canto superior direito do console de SageMaker IA e use o Região da AWS ID correspondente à direita do seu Região da AWS nome. Por exemplo, .`us-west-1`

# (Opcional) Migre imagens personalizadas e configurações de ciclo de vida
<a name="studio-updated-migrate-lcc"></a>

Você deve atualizar suas imagens personalizadas e scripts de configuração do ciclo de vida (LCC) para trabalhar com o modelo de execução local simplificado no Amazon Studio. SageMaker Se você não criou imagens personalizadas ou configurações de ciclo de vida em seu domínio, pule esta fase.

O Amazon SageMaker Studio Classic opera em um ambiente dividido com:
+ Uma aplicação do `JupyterServer` executando o Jupyter Server. 
+ Cadernos do Studio Classic em execução em um ou mais aplicações do `KernelGateway`. 

O Studio se afastou de um ambiente dividido. O Studio executa o JupyterLab e o Code Editor, com base nos aplicativos Code-OSS, Visual Studio Code - Open Source em um modelo de tempo de execução local. Para obter mais informações sobre a mudança na arquitetura, consulte [Aumentar a produtividade no Amazon SageMaker Studio](https://aws.amazon.com/blogs//machine-learning/boost-productivity-on-amazon-sagemaker-studio-introducing-jupyterlab-spaces-and-generative-ai-tools/). 

## Migração de imagens personalizadas
<a name="studio-updated-migrate-lcc-custom"></a>

Suas imagens personalizadas existentes do Studio Classic podem não funcionar no Studio. Recomendamos criar uma nova imagem personalizada que atenda aos requisitos de uso no Studio. O lançamento do Studio simplifica o processo de criação de imagens personalizadas fornecendo[SageMaker Política de suporte de imagem do Studio](sagemaker-distribution.md). SageMaker As imagens de distribuição de IA incluem bibliotecas e pacotes populares para visualização de aprendizado de máquina, ciência de dados e análise de dados. Para obter uma lista de imagens básicas de SageMaker distribuição e informações da conta do Amazon Elastic Container Registry, consulte[SageMaker Imagens da Amazon disponíveis para uso com notebooks Studio Classic](notebooks-available-images.md).

Para criar uma imagem personalizada, preencha uma das opções a seguir.
+ Estenda uma imagem de SageMaker distribuição com pacotes e módulos personalizados. Essas imagens são pré-configuradas com um editor JupyterLab de código, baseado em Code-OSS, Visual Studio Code - Open Source.
+ Crie um arquivo Dockerfile personalizado seguindo as instruções em [Traga sua própria imagem (BYOI)](studio-updated-byoi.md). Você deve instalar JupyterLab e o código aberto CodeServer na imagem para torná-la compatível com o Studio.

## Configuração de migração do ciclo de vida
<a name="studio-updated-migrate-lcc-lcc"></a>

Devido ao modelo simplificado de tempo de execução local no Studio, recomendamos migrar a estrutura do seu Studio Classic LCCs existente. No Studio Classic, geralmente é necessário criar configurações de ciclo de vida separadas para ambos e para as aplicações do KernelGateway e JupyterServer. Como os KernelGateway aplicativos JupyterServer e são executados em recursos computacionais separados no Studio Classic, o Studio Classic LCCs pode ser de qualquer tipo: 
+ JupyterServerLCC: elas controlam LCCs principalmente as ações domésticas do usuário, incluindo configuração de proxy, criação de variáveis de ambiente e desligamento automático de recursos.
+ KernelGatewayLCC: Eles LCCs controlam as otimizações do ambiente do notebook Studio Classic. Isso inclui a atualização das versões do pacote numpy no kernel `Data Science 3.0` e a instalação do pacote snowflake no kernel `Pytorch 2.0 GPU`.

Na arquitetura simplificada do Studio, você só precisa de um script de LCC que seja executado na inicialização da aplicação. Embora a migração de seus scripts de LCC varie com base no ambiente de desenvolvimento, recomendamos combinar JupyterServer e KernelGateway LCCs criar uma LCC combinada.

LCCs no Studio pode ser associado a um dos seguintes aplicativos: 
+ JupyterLab 
+ Editor de código

Os usuários podem selecionar a LCC para o respectivo tipo de aplicação ao criar um espaço ou usar a LCC padrão definida pelo administrador.

**nota**  
Os scripts de desligamento automático existentes do Studio Classic não funcionam com o Studio. Para ver um exemplo do script de desligamento automático do Studio, consulte Exemplos de configuração do [ciclo de vida do SageMaker Studio](https://github.com/aws-samples/sagemaker-studio-apps-lifecycle-config-examples).

### Considerações ao refatorar LCCs
<a name="studio-updated-migrate-lcc-considerations"></a>

Considere as seguintes diferenças entre o Studio Classic e o Studio ao refatorar seu. LCCs
+ JupyterLab e os aplicativos do Code Editor, quando criados, são executados como `sagemaker-user` com `UID:1001` `GID:101` e. Por padrão, `sagemaker-user` tem permissões para assumir sudo/root permissões. KernelGatewayos aplicativos são `root` executados como padrão.
+ SageMaker As imagens de distribuição que são executadas dentro JupyterLab e os aplicativos do Code Editor usam o gerenciador de pacotes Debian baseado,`apt-get`.
+ Os aplicativos Studio JupyterLab e Code Editor usam o gerenciador de Conda pacotes. SageMaker A IA cria um Python3 Conda ambiente básico único quando um aplicativo Studio é lançado. Para informações sobre a atualização de pacotes no ambiente Conda base e a criação de novos ambientes Conda, consulte [JupyterLab guia do usuário](studio-updated-jl-user-guide.md). Por outro lado, nem todas as aplicações do KernelGateway usam o Conda como gerenciador de pacotes.
+ O JupyterLab aplicativo Studio usa`JupyterLab 4.0`, enquanto o Studio Classic usa`JupyterLab 3.0`. Verifique se todas as extensões do JupyterLab que você usa são compatíveis com o `JupyterLab 4.0`. Para obter mais informações sobre extensões, consulte [Compatibilidade de extensões com JupyterLab 4.0](https://github.com/jupyterlab/jupyterlab/issues/14590).

# (Opcional) Migrar dados do Studio Classic para o Studio
<a name="studio-updated-migrate-data"></a>

O Studio Classic e o Studio usam dois tipos diferentes de volumes de armazenamento. O Studio Classic usa um único volume do Amazon Elastic File System (Amazon EFS) para armazenar dados de todos os usuários e espaços compartilhados no domínio. No Studio, cada espaço tem seu próprio volume do Amazon Elastic Block Store (Amazon EBS). Quando você atualiza a experiência padrão de um domínio existente, a SageMaker IA monta automaticamente uma pasta em um volume do Amazon EFS para cada usuário em um domínio. Como resultado, os usuários podem acessar arquivos do Studio Classic em suas aplicações do Studio. Para obter mais informações, consulte [Montagem automática do Amazon EFS no Studio](studio-updated-automount.md). 

Você também pode desativar a montagem automática do Amazon EFS e migrar manualmente os dados para dar aos usuários acesso aos arquivos do Studio Classic nas aplicações do Studio. Para fazer isso, transfira os arquivos dos diretórios pessoais do usuário para os volumes do Amazon EBS associados a esses espaços. A seção a seguir apresenta informações sobre esse fluxo de trabalho. Para obter mais informações a respeito de como optar por não participar da montagem automática do Amazon EFS, consulte [Desativar a montagem automática do Amazon EFS](studio-updated-automount-optout.md).

## Migrar manualmente todos os seus dados do Studio Classic
<a name="studio-updated-migrate-data-all"></a>

A seção a seguir descreve como migrar todos os dados do volume de armazenamento do Studio Classic para a nova experiência do Studio.

Ao migrar manualmente os dados, o código e os artefatos de um usuário do Studio Classic para o Studio, recomendamos uma das seguintes abordagens:

1. Como usar um volume personalizado do Amazon EFS

1. Como usar o Amazon Simple Storage Service (Amazon S3)

Se você usou o Amazon SageMaker Data Wrangler no Studio Classic e quiser migrar seus arquivos de fluxo de dados, escolha uma das seguintes opções para migração:
+ Se você quiser migrar todos os dados do seu volume de armazenamento do Studio Classic, incluindo seus arquivos de fluxo de dados, acesse [Migrar manualmente todos os seus dados do Studio Classic](#studio-updated-migrate-data-all) e conclua a seção **Usar o Amazon S3 para migrar dados**. Depois, acesse a seção [Importe os arquivos de fluxo para o Canvas](#studio-updated-migrate-flows-import).
+ Se quiser migrar apenas seus arquivos de fluxo de dados e nenhum outro dado do seu volume de armazenamento do Studio Classic, acesse a seção [Migre fluxos de dados do Data Wrangler](#studio-updated-migrate-flows).

### Pré-requisitos
<a name="studio-updated-migrate-data-prereq"></a>

Para configurar esses pré-requisitos, conclua as etapas em [Pré-requisitos completos para migrar a experiência do Studio](studio-updated-migrate-prereq.md). Conclua também as etapas em[Migrar a interface do usuário do Studio Classic para o Studio](studio-updated-migrate-ui.md).

### Como escolher uma abordagem
<a name="studio-updated-migrate-data-choose"></a>

Considere o seguinte ao escolher uma abordagem para migrar seus dados do Studio Classic:

** Prós e contras do uso de um volume personalizado do Amazon EFS**

Nessa abordagem, você usa uma AWS DataSync tarefa do Amazon EFS-to-Amazon EFS (uma vez ou cadência) para copiar dados e, em seguida, montar o volume de destino do Amazon EFS nos espaços de um usuário. Isso dá aos usuários acesso aos dados do Studio Classic em seus ambientes de computação do Studio.

Prós:
+ Somente os dados do diretório inicial do usuário são visíveis nos espaços do usuário. Não há polinização cruzada de dados.
+ A sincronização do volume de origem do Amazon EFS com um volume de destino do Amazon EFS é mais segura do que montar diretamente o volume de origem do Amazon EFS gerenciado pela SageMaker IA em espaços. Isso evita o potencial de impactar os arquivos do usuário do diretório inicial.
+ Os usuários têm a flexibilidade de continuar trabalhando nas aplicações do Studio Classic e do Studio, ao mesmo tempo em que têm seus dados disponíveis em ambas as aplicações, se o AWS DataSync estiver configurado regularmente.
+ Não há necessidade de empurrar e puxar repetidamente com o Amazon S3.

Contras:
+ Sem acesso de gravação ao volume de destino do Amazon EFS montado nos espaços do usuário. Para ter acesso de gravação ao volume de destino do Amazon EFS, os clientes precisariam montar o volume alvo do Amazon EFS em uma instância do Amazon Elastic Compute Cloud e fornecer as permissões apropriadas para os usuários gravarem no prefixo do Amazon EFS.
+ Requer modificação nos grupos de segurança gerenciados pela SageMaker IA para permitir o fluxo de entrada e saída do sistema de arquivos de rede (NFS).
+ Custa mais do que usar o Amazon S3.
+ Ao [migrar fluxos de dados do Data Wrangler no Studio Classic](#studio-updated-migrate-flows), você deve seguir as etapas para exportar manualmente os arquivos de fluxo.

**Prós e contras do uso do Amazon S3**

Nessa abordagem, você usa uma AWS DataSync tarefa do Amazon EFS-to-Amazon S3 (uma vez ou cadência) para copiar dados e, em seguida, cria uma configuração de ciclo de vida para copiar os dados do usuário do Amazon S3 para o volume Amazon EBS de seu espaço privado.

Prós:
+ Se a LCC estiver anexada ao domínio, os usuários poderão optar por usar a LCC para copiar dados para seu espaço ou executar o espaço sem o script da LCC. Isso dá aos usuários a opção de copiar seus arquivos somente nos espaços de que precisam.
+ Se uma AWS DataSync tarefa for configurada em uma cadência, os usuários poderão reiniciar o aplicativo Studio para obter os arquivos mais recentes.
+ Como os dados são copiados para o Amazon EBS, os usuários têm permissões de gravação nos arquivos.
+ O armazenamento do Amazon S3 é mais barato que o Amazon EFS.
+ Se estiver [migrando fluxos de dados do Data Wrangler no Studio Classic](#studio-updated-migrate-flows), você pode pular as etapas de exportação manual e importar diretamente os fluxos de dados do SageMaker Amazon S3 para o Canvas.

Contras:
+ Se os administradores precisarem evitar a polinização cruzada, eles devem criar políticas de AWS Identity and Access Management no nível do usuário para garantir que os usuários só possam acessar o prefixo do Amazon S3 que contém seus arquivos.

### Use um volume personalizado do Amazon EFS para migrar dados
<a name="studio-updated-migrate-data-approach1"></a>

Nessa abordagem, você usa um Amazon EFS-to-Amazon EFS AWS DataSync para copiar o conteúdo de um volume Studio Classic Amazon EFS para um volume de destino do Amazon EFS uma vez ou em um ritmo regular e, em seguida, montar o volume de destino do Amazon EFS nos espaços de um usuário. Isso dá aos usuários acesso aos dados do Studio Classic em seus ambientes de computação do Studio.

1. Crie um volume de destino do Amazon EFS. Você transferirá dados para esse volume do Amazon EFS e o montará no espaço de um usuário correspondente usando a montagem em nível de prefixo.

   ```
   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. Adicione variáveis para o volume de origem do Amazon EFS atualmente anexado ao domínio e usado por todos os usuários. As informações da Amazon Virtual Private Cloud do domínio são necessárias para garantir que o Amazon EFS de destino seja criado na mesma Amazon VPC e sub-rede, com a mesma configuração de grupo de segurança.

   ```
   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. Crie um destino de montagem do Amazon EFS na mesma Amazon VPC e sub-rede do volume de origem do Amazon EFS, com a mesma configuração de grupo de segurança. O alvo de montagem leva alguns minutos para ficar disponível.

   ```
   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. Crie locais de origem e destino do Amazon EFS para a AWS DataSync tarefa.

   ```
   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. Permita o tráfego entre as montagens do sistema de arquivos de rede (NFS) de origem e de destino. Quando um novo domínio é criado, a SageMaker IA cria dois grupos de segurança.
   + Grupo de segurança de entrada NFS com apenas tráfego de entrada.
   + Grupo de segurança de saída NFS com somente tráfego de saída.

   O NFS de origem e de destino são colocados dentro dos mesmos grupos de segurança. Você pode permitir o tráfego entre esses suportes a partir do Console de gerenciamento da AWS ou AWS CLI.
   + Permitir tráfego a partir do Console de gerenciamento da AWS

     1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon VPC em. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

     1. Escolha **Grupos de segurança**.

     1. Pesquise o ID do domínio existente na página de **Grupos de Segurança**.

        ```
        d-xxxxxxx
        ```

        Os resultados devem retornar dois grupos de segurança que incluam o ID do domínio no nome.
        + `security-group-for-inbound-nfs-domain-id`
        + `security-group-for-outbound-nfs-domain-id`

     1. Selecione a ID do grupo de segurança de entrada. Essa ação abre uma nova página com detalhes sobre o grupo de segurança.

     1. Selecione a guia **Regras de saída**.

     1. Selecione **Editar regras de saída**.

     1. Atualize as regras de saída existentes ou adicione uma nova regra de saída com os seguintes valores:
        + **Tipo**: NFS
        + **Protocolo**: TCP
        + **Intervalo de portas**: 2049
        + **Destino**: security-group-for-outbound -nfs- \$1 *domain-id* *security-group-id*

     1. Selecione **Salvar regras**.

     1. Selecione a guia **Regras de entrada**.

     1. Selecione **Editar regras de entrada**.

     1. Atualize as regras de entrada existentes ou adicione uma nova regra de saída com os seguintes valores:
        + **Tipo**: NFS
        + **Protocolo**: TCP
        + **Intervalo de portas**: 2049
        + **Destino**: security-group-for-outbound -nfs- \$1 *domain-id* *security-group-id*

     1. Selecione **Salvar regras**.
   + Permitir tráfego a partir do AWS CLI

     1.  Atualize as regras de entrada e saída do grupo de segurança com os seguintes valores:
        + **Protocolo**: TCP
        + **Intervalo de portas**: 2049
        + **ID do grupo**: do grupo de segurança de entrada ou ID do grupo de segurança de saída

        ```
        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.  Adicione os grupos de segurança de entrada e saída aos alvos de montagem do Amazon EFS de origem e de destino. Isso permite o tráfego entre as duas montagens do 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. Crie uma AWS DataSync tarefa. Isso retorna um ARN de tarefa que pode ser usado para executar a tarefa sob demanda ou como parte de uma cadência regular.

   ```
   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. Inicie uma AWS DataSync tarefa para copiar automaticamente os dados da origem do Amazon EFS para a montagem do Amazon EFS de destino. Isso não retém as permissões POSIX do arquivo, o que permite que os usuários leiam a partir da montagem de destino do Amazon EFS, mas não gravem nela.

   ```
   aws datasync start-task-execution --task-arn $DATASYNC_TASK_ARN
   ```

1. Monte o volume de destino do Amazon EFS no domínio no nível raiz.

   ```
   aws sagemaker update-domain --domain-id $SOURCE_DOMAIN_ID \
   --default-user-settings '{"CustomFileSystemConfigs": [{"EFSFileSystemConfig": {"FileSystemId": "'"$TARGET_EFS"'", "FileSystemPath": "/"}}]}'
   ```

1. Substitua cada perfil de usuário por um prefixo `FileSystemPath`. O prefixo inclui o UID do usuário, criado pela SageMaker IA. Isso garante que os usuários tenham acesso apenas aos seus dados e evita a polinização cruzada. Quando um espaço é criado no domínio e o volume de destino do Amazon EFS é montado na aplicação, o prefixo do usuário substitui o prefixo do domínio. Como resultado, a SageMaker IA só monta o `/user-id` diretório no aplicativo do usuário.

   ```
   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. Em seguida, os usuários podem selecionar o sistema de arquivos personalizado do Amazon EFS ao iniciar uma aplicação. Para acessar mais informações, consulte [JupyterLab guia do usuário](studio-updated-jl-user-guide.md) ou [Inicie a aplicação de Editor de Código no Studio](code-editor-use-studio.md).

### Usar o Amazon S3 para migrar dados
<a name="studio-updated-migrate-data-approach2"></a>

Nessa abordagem, você usa uma AWS DataSync tarefa do Amazon EFS-to-Amazon S3 para copiar o conteúdo de um volume do Studio Classic Amazon EFS para um bucket do Amazon S3 uma vez ou em um ritmo regular e, em seguida, criar uma configuração de ciclo de vida para copiar os dados do usuário do Amazon S3 para o volume Amazon EBS de seu espaço privado.

**nota**  
Essa abordagem só funciona para domínios que têm acesso à internet.

1. Defina o ID do volume Amazon EFS de origem do domínio que contém os dados que você está migrando.

   ```
   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. Defina o nome do bucket do Amazon S3 de destino. Para informações sobre como criar um bucket do Amazon S3, consulte [Criação de um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html). O bucket usado deve ter uma política de CORS, conforme descrito em [(Opcional) Atualizar a política CORS para acessar os buckets do Amazon S3](studio-updated-migrate-ui.md#studio-updated-migrate-cors). Os usuários do domínio também devem ter permissões para acessar o bucket do Amazon S3.

   Neste exemplo, estamos copiando arquivos para um prefixo chamado `studio-new`. Se você estiver usando um único bucket do Amazon S3 para migrar vários domínios, use o `studio-new/<domain-id>` prefixo para restringir as permissões aos arquivos usando o IAM.

   ```
   export BUCKET_NAME=s3-bucket-name
   export S3_DESTINATION_PATH=studio-new
   ```

1. Crie uma política de confiança que dê AWS DataSync permissões para assumir a função de execução da sua conta. 

   ```
   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. Crie um perfil do IAM e anexe a política de confiança.

   ```
   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. Crie um grupo de segurança para conceder acesso à localização do 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. Crie um local de origem do Amazon EFS para a AWS DataSync tarefa.

   ```
   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. Crie um local de destino do Amazon S3 para a AWS DataSync tarefa.

   ```
   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. Crie uma AWS DataSync tarefa.

   ```
   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. Inicie a AWS DataSync tarefa. Essa tarefa copia automaticamente os dados do volume de origem do Amazon EFS para o bucket do Amazon S3 de destino. Aguarde a conclusão do trabalho.

   ```
   aws datasync start-task-execution --task-arn $TASK_ARN
   ```

1. Verifique o status da AWS DataSync tarefa para verificar se ela foi concluída. Passe o ARN retornado na etapa anterior.

   ```
   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. Depois que a AWS DataSync tarefa for concluída, limpe os recursos criados anteriormente.

   ```
   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. De sua máquina local, crie um arquivo denominado `on-start.sh` com o conteúdo a seguir. Esse script copia o diretório inicial do Amazon EFS do usuário no Amazon S3 para o volume do Amazon EBS do usuário no Studio e cria um prefixo para cada perfil de usuário.

   ```
   #!/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. Converter seu arquivo no formato base64. Esse requisito evita erros que ocorram devido à codificação de espaçamento e quebra de linha. O tipo de script pode ser `JupyterLab` ou`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. Verifique o seguinte antes de usar o script: 
   + O volume do Amazon EBS é grande o suficiente para armazenar os objetos que você está exportando.
   + Você não está migrando arquivos e pastas ocultos, como `.bashrc` e `.condarc` se não tiver a intenção de fazer isso.
   + A função de execução AWS Identity and Access Management (IAM) associada aos perfis de usuário do Studio tem as políticas configuradas para acessar somente o respectivo diretório inicial no Amazon S3.

1. Crie uma configuração de ciclo de vida usando seu 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. Anexe a LCC ao seu domínio.

   ```
   aws sagemaker update-domain \
       --domain-id $SOURCE_DOMAIN_ID \
       --default-user-settings '
           {"JupyterLabAppSettings":
               {"LifecycleConfigArns":
                   [
                       "lifecycle-config-arn"
                   ]
               }
           }'
   ```

1. Em seguida, os usuários podem selecionar o script da LCC ao iniciar uma aplicação. Para acessar mais informações, consulte [JupyterLab guia do usuário](studio-updated-jl-user-guide.md) ou [Inicie a aplicação de Editor de Código no Studio](code-editor-use-studio.md). Isso sincroniza automaticamente os arquivos do Amazon S3 com o armazenamento do Amazon EBS para o espaço do usuário.

## Migre fluxos de dados do Data Wrangler
<a name="studio-updated-migrate-flows"></a>

Se você já usou o Amazon SageMaker Data Wrangler no Amazon SageMaker Studio Classic para tarefas de preparação de dados, você pode migrar para o novo Amazon SageMaker Studio e acessar a versão mais recente do Data Wrangler no Amazon Canvas. SageMaker O Data Wrangler in SageMaker Canvas oferece uma experiência de usuário aprimorada e acesso aos recursos mais recentes, como uma interface de linguagem natural e desempenho mais rápido.

Você pode se conectar ao SageMaker Canvas a qualquer momento para começar a usar a nova experiência do Data Wrangler. Para obter mais informações, consulte [Começando a usar o Amazon SageMaker Canvas](canvas-getting-started.md).

Se você tiver arquivos de fluxo de dados salvos no Studio Classic nos quais estava trabalhando anteriormente, você pode integrá-los ao Studio e depois importar os arquivos de fluxo para o Canvas. Você tem as seguintes opções para conceder acesso:
+ Migração com um clique: ao entrar no Canvas, você pode usar uma opção de importação única que migra todos os seus arquivos de fluxo em seu nome.
+ Migração manual: você pode importar manualmente seus arquivos de fluxo para o Canvas. No Studio Classic, exporte os arquivos para o Amazon S3 ou baixe-os para sua máquina local. Em seguida, você entra no aplicativo SageMaker Canvas, importa os arquivos de fluxo e continua suas tarefas de preparação de dados.

O guia a seguir descreve os pré-requisitos para a migração e como migrar seus arquivos de fluxo de dados usando a opção de um clique ou manual.

### Pré-requisitos
<a name="studio-updated-migrate-flows-prereqs"></a>

Verifique os seguintes pré-requisitos antes de começar a migrar seus arquivos de fluxo:

**Etapa 1. Migre o domínio e conceda permissões**

Antes de migrar arquivos de fluxo de dados, você precisa seguir etapas específicas do [Migração do Amazon SageMaker Studio Classic](studio-updated-migrate.md) guia para garantir que a função de execução do AWS IAM do seu perfil de usuário tenha as permissões necessárias. Siga os [pré-requisitos](studio-updated-migrate-prereq.md) e, [Migrar a interface do usuário do Studio Classic para o Studio](studio-updated-migrate-ui.md) antes de continuar, que descrevem como conceder as permissões necessárias, configure o Studio como a nova experiência e migre seu domínio existente.

Especificamente, você deve ter permissões para criar um aplicativo SageMaker Canvas e usar os recursos de preparação de dados do SageMaker Canvas. Para obter essas permissões, você pode:
+ Adicione a [ AmazonSageMakerCanvasDataPrepFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasDataPrepFullAccess.html)política à sua função do IAM ou
+ Anexe uma política de permissões mínimas, conforme mostrado na seção **(opcional) Migrar do Data Wrangler no Studio Classic para SageMaker ** o Canvas da página. [Migrar a interface do usuário do Studio Classic para o Studio](studio-updated-migrate-ui.md)

Certifique-se de usar o mesmo perfil de usuário para o Studio e o SageMaker Canvas.

Depois de concluir os pré-requisitos descritos no guia de migração, você deve ter um novo domínio com as permissões necessárias para acessar SageMaker o Canvas por meio do Studio.

**Etapa 2. (opcional) Prepare um local do Amazon S3**

Se você estiver fazendo uma migração manual e planeja usar o Amazon S3 para transferir seus arquivos de fluxo em vez de usar a opção de download local, você deve ter um bucket do Amazon S3 em sua conta que gostaria de usar para armazenar os arquivos de fluxo.

### Método de migração com apenas um clique
<a name="studio-updated-migrate-flows-auto"></a>

SageMaker O Canvas oferece uma opção de importação única para migrar seus fluxos de dados do Data Wrangler no Studio Classic para o Data Wrangler no Canvas. SageMaker Desde que suas aplicações do Studio Classic e Canvas compartilhem o mesmo volume de armazenamento do Amazon EFS, você pode migrar do Canvas com um único clique. Esse processo simplificado elimina a necessidade de etapas manuais de exportação e importação, e você pode importar todos os seus fluxos de uma só vez.

Use o seguinte procedimento para migrar todos os seus arquivos de fluxo:

1. Abra sua versão mais recente do Studio.

1. No Studio, no painel de navegação à esquerda, selecione o menu suspenso **Dados**.

1. Nas opções de navegação, escolha **Data Wrangler**.

1. Na página **Data Wrangler**, escolha **Executar no** Canvas. Se você configurou com sucesso as permissões, isso cria uma aplicação do Canvas para você. Pode levar alguns minutos para a aplicação do Canvas ficar pronta. 

1. Quando o Canvas estiver pronto, escolha **Abrir no Canvas.**

1. O Canvas abre a página do **Data Wrangler** e aparece um banner na parte superior da página que diz Importar seus fluxos de dados do Data Wrangler no Studio Classic para o Canvas. Essa importação é necessária apenas uma vez. Saiba mais. No banner, escolha **Importar tudo**.
**Atenção**  
Se você fechar a notificação do banner, não poderá mais reabri-la nem usar o método de migração com um clique. 

Uma notificação pop-up aparece, indicando que o Canvas está importando seus arquivos de fluxo do Studio Classic. Se a importação for totalmente bem-sucedida, você receberá outra notificação de que o número `X` de arquivos de fluxo foi importado e poderá ver seus arquivos de fluxo na página **Data Wrangler** da aplicação do Canvas. Todos os arquivos de fluxo importados que tenham o mesmo nome dos fluxos de dados existentes em sua aplicação do Canvas são renomeados com um postfix. Você pode abrir um fluxo de dados para verificar se ele tem a aparência esperada.

Caso algum dos seus arquivos de fluxo não seja importado com êxito, você receberá uma notificação de que a importação foi parcialmente bem-sucedida ou falhou. Escolha **Exibir erros** na mensagem de notificação para verificar as mensagens de erro individuais e obter orientação sobre como reformatar qualquer arquivo de fluxo formatado incorretamente.

Depois de importar seus arquivos de fluxo, agora você deve ser capaz de continuar usando o Data Wrangler para preparar dados no Canvas. SageMaker 

### Método de migração manual
<a name="studio-updated-migrate-flows-manual"></a>

As seções a seguir descrevem como importar manualmente seus arquivos de fluxo para o Canvas, caso o método de migração com um clique não funcione.

#### Exporte os arquivos de fluxo do Studio Classic
<a name="studio-updated-migrate-flows-export"></a>

**nota**  
Se você já migrou seus dados do Studio Classic para o Amazon S3 seguindo as instruções no [(Opcional) Migrar dados do Studio Classic para o Studio](#studio-updated-migrate-data), você pode pular esta etapa e ir direto para a seção [Importe os arquivos de fluxo para o Canvas](#studio-updated-migrate-flows-import) na qual você importa seus arquivos de fluxo do local do Amazon S3 onde seus dados do Studio Classic estão armazenados.

Você pode exportar seus arquivos de fluxo salvando-os no Amazon S3 ou baixando-os para sua máquina local. Ao importar seus arquivos de fluxo para o SageMaker Canvas na próxima etapa, se você escolher a opção de upload local, poderá carregar apenas 20 arquivos de fluxo por vez. Se você tem um grande número de arquivos de fluxo para importar, recomendamos usar o Amazon S3.

Siga as instruções em [Método 1: usar o Amazon S3 para transferir arquivos de fluxo](#studio-updated-migrate-flows-export-s3) ou [Método 2: usar sua máquina local para transferir arquivos de fluxo](#studio-updated-migrate-flows-export-local) para continuar.

##### Método 1: usar o Amazon S3 para transferir arquivos de fluxo
<a name="studio-updated-migrate-flows-export-s3"></a>

Com esse método, você usa o Amazon S3 como intermediário entre o Data Wrangler no Studio Classic e o Data Wrangler no SageMaker Canvas (acessado por meio da versão mais recente do Studio). Você exporta os arquivos de fluxo do Studio Classic para o Amazon S3 e, na próxima etapa, acessa o Canvas por meio do Studio e importa os arquivos de fluxo do Amazon S3.

Verifique se você tem um bucket do Amazon S3 preparado como o local de armazenamento dos arquivos de fluxo.

Use o seguinte procedimento para exportar seus arquivos de fluxo do Studio Classic para o Amazon S3:

1. Abra o Studio Classic.

1. Abra um novo terminal fazendo o seguinte:

   1. Na barra de navegação superior, escolha **Arquivo**.

   1. No menu de contexto, passe o mouse sobre **Novo** e selecione **Terminal**.

1. Por padrão, o terminal deve abrir em seu diretório inicial. Navegue até a pasta que contém todos os arquivos de fluxo que você deseja migrar.

1. Use o seguinte comando para sincronizar todos os arquivos de fluxo com a localização especificada do Amazon S3: Substitua `{bucket-name}` e `{folder}` pelo caminho para a localização desejada do Amazon S3. Para obter mais informações sobre o comando e os parâmetros, consulte o comando [sync](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html) na Referência de AWS AWS CLI comandos.

   ```
   aws s3 sync . s3://{bucket-name}/{folder}/ --exclude "*.*" --include "*.flow"
   ```

   Se você estiver usando o seu próprio AWS KMS key, use o comando a seguir para sincronizar os arquivos e especificar sua ID da chave KMS. Verifique se a função de execução do IAM do usuário (que deve ser a mesma função usada na **Etapa 1. Migre o domínio e conceda permissões** dos [pré-requisitos](#studio-updated-migrate-flows-prereqs) anteriores) recebeu acesso para usar a chave do KMS.

   ```
   aws s3 sync . s3://{bucket-name}/{folder}/ --exclude "*.*" --include "*.flow" --sse-kms-key-id {your-key-id}
   ```

Seus arquivos de fluxo agora devem ser exportados. Verifique seu bucket do Amazon S3 para garantir que os arquivos de fluxo tenham sido sincronizados com sucesso.

Para importar esses arquivos na versão mais recente do Data Wrangler, siga as etapas em [Importe os arquivos de fluxo para o Canvas](#studio-updated-migrate-flows-import).

##### Método 2: usar sua máquina local para transferir arquivos de fluxo
<a name="studio-updated-migrate-flows-export-local"></a>

Com esse método, você baixa os arquivos de fluxo do Studio Classic para sua máquina local. Você pode baixar os arquivos diretamente ou compactá-los como um arquivo zip. Em seguida, descompacte o arquivo zip localmente (se aplicável), faça login no Canvas e importe os arquivos de fluxo fazendo upload deles a partir do seu computador local.

Use o seguinte procedimento para fazer o download de seus arquivos de fluxo do Studio Classic:

1. Abra o Studio Classic.

1. (Opcional) Se você quiser compactar vários arquivos de fluxo em um arquivo zip e baixá-los todos de uma vez, faça o seguinte:

   1. Na barra de navegação superior do Studio Classic, escolha **Arquivo**.

   1. No menu de contexto, passe o mouse sobre **Novo** e selecione **Terminal**.

   1. Por padrão, o terminal abre em seu diretório inicial. Navegue até a pasta que contém todos os arquivos de fluxo que você deseja migrar.

   1. Use o comando a seguir para compactar os arquivos de fluxo no diretório atual como um zip. O comando exclui todos os arquivos ocultos:

      ```
      find . -not -path "*/.*" -name "*.flow" -print0 | xargs -0 zip my_archive.zip
      ```

1. Faça o download do arquivo zip ou dos arquivos de fluxo individuais para sua máquina local fazendo o seguinte:

   1. No painel de navegação à esquerda do Studio Classic, escolha **Navegador de arquivos**.

   1. Encontre o arquivo que você deseja baixar no navegador de arquivos.

   1. Clique com o botão direito do mouse no arquivo e, no menu de contexto, selecione **Baixar**.

O arquivo deve ser baixado em seu computador local. Se você os empacotou como um arquivo zip, extraia os arquivos localmente. Depois que os arquivos forem extraídos, para importá-los na versão mais recente do Data Wrangler, siga as etapas em [Importe os arquivos de fluxo para o Canvas](#studio-updated-migrate-flows-import). 

#### Importe os arquivos de fluxo para o Canvas
<a name="studio-updated-migrate-flows-import"></a>

Depois de exportar seus arquivos de fluxo, acesse o Canvas pelo Studio e importe os arquivos.

Use o seguinte procedimento para importar arquivos de fluxo para o Canvas:

1. Abra sua versão mais recente do Studio.

1. No Studio, no painel de navegação à esquerda, selecione o menu suspenso **Dados**.

1. Nas opções de navegação, escolha **Data Wrangler**.

1. Na página **Data Wrangler**, escolha **Executar no** Canvas. Se você configurou com sucesso as permissões, isso cria uma aplicação do Canvas para você. Pode levar alguns minutos para a aplicação do Canvas ficar pronta. 

1. Quando o Canvas estiver pronto, escolha **Abrir no Canvas.**

1. O Canvas é aberto na página do **Data Wrangler**. No painel superior, escolha **Importar fluxos de dados**.

1. Para **Fonte de dados**, escolha **Amazon S3** ou **carregamento de dados**.

1. Selecione seus arquivos de fluxo do seu bucket do Amazon S3 ou carregue os arquivos da sua máquina local.
**nota**  
Para upload local, você pode carregar no máximo 20 arquivos de fluxo por vez. Para importações maiores, use o Amazon S3. Se você selecionar uma pasta para importar, todos os arquivos de fluxo em subpastas também serão importados.

1. Escolha **Importar dados**.

Se a importação for bem-sucedida, você receberá uma notificação de que o número `X` de arquivos de fluxo foi importado com êxito.

Caso seus arquivos de fluxo não sejam importados com sucesso, você receberá uma notificação no aplicativo SageMaker Canvas. Escolha **Exibir erros** na mensagem de notificação para verificar as mensagens de erro individuais e obter orientação sobre como reformatar qualquer arquivo de fluxo formatado incorretamente.

Depois que a importação dos arquivos de fluxo for concluída, acesse a página **Data Wrangler** do aplicativo SageMaker Canvas para visualizar seus fluxos de dados. Você pode tentar abrir um fluxo de dados para verificar se ele tem a aparência esperada.

# Amazon SageMaker Studio clássico
<a name="studio"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

O Amazon SageMaker Studio Classic é um ambiente de desenvolvimento integrado (IDE) baseado na web para aprendizado de máquina (ML). O Studio Classic permite criar, treinar, depurar, implantar e monitorar seus modelos de ML. O Studio Classic inclui todas as ferramentas de que você precisa para levar seus modelos da preparação de dados à experimentação e à produção com maior produtividade. Em uma única interface visual, você pode fazer as seguintes tarefas:
+ Escrever e executar código em cadernos Jupyter
+ Preparar dados para o machine learning
+ Criar e treine modelos de ML
+ Implantar os modelos e monitorar o desempenho das predições
+ Rastrear e depurar experimentos de ML
+ Colaborar com outras pessoas em tempo real

Para obter informações sobre as etapas de integração do Studio Classic, consulte [Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md).

Para obter informações sobre como colaborar com outros usuários em tempo real, consulte [Colaboração com espaços compartilhados](domain-space.md).

Para as AWS regiões suportadas pelo Studio Classic, consulte[Regiões e cotas compatíveis](regions-quotas.md).

## Plano de fase de manutenção do Amazon SageMaker Studio Classic
<a name="studio-deprecation"></a>

A tabela a seguir fornece informações sobre o cronograma de quando o Amazon SageMaker Studio Classic entrou em sua fase de manutenção estendida.




| Data | Description | 
| --- | --- | 
|  31/12/2024  |  Em 31 de dezembro, o Studio Classic chegou ao fim da manutenção. Após essa data, o Studio Classic deixou de receber atualizações e correções de segurança. Todos os novos domínios serão criados com o Amazon SageMaker Studio como padrão.  | 
|  31/01/2025  |  A partir de 31 de janeiro, os usuários não poderão mais criar JupyterLab 3 novos notebooks no Studio Classic. Os usuários também não poderão reiniciar ou atualizar os cadernos existentes. Os usuários poderão acessar as aplicações existentes do Studio Classic usando o Studio somente para excluir ou interromper os cadernos existentes.  | 

**nota**  
Seu domínio existente do Studio Classic não é migrado automaticamente para o Studio. Para obter informações sobre migração, consulte [Migração do Amazon SageMaker Studio Classic](studio-updated-migrate.md).

**Topics**
+ [Plano de fase de manutenção do Amazon SageMaker Studio Classic](#studio-deprecation)
+ [Características do Amazon SageMaker Studio Classic](#studio-features)
+ [Visão geral da interface do usuário do Amazon SageMaker Studio Classic](studio-ui.md)
+ [Inicie o Amazon SageMaker Studio Classic](studio-launch.md)
+ [JupyterLab Controle de versão no Amazon Studio Classic SageMaker](studio-jl.md)
+ [Use o Amazon SageMaker Studio Classic Launcher](studio-launcher.md)
+ [Use os notebooks Amazon SageMaker Studio Classic](notebooks.md)
+ [Personalize o Amazon SageMaker Studio Classic](studio-customize.md)
+ [Execute tarefas comuns no Amazon SageMaker Studio Classic](studio-tasks.md)
+ [Preços do Amazon SageMaker Studio Classic](studio-pricing.md)
+ [Solução de problemas do Amazon SageMaker Studio Classic](studio-troubleshooting.md)

## Características do Amazon SageMaker Studio Classic
<a name="studio-features"></a>

O Studio inclui os seguintes recursos:
+ [SageMaker Piloto automático](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-automate-model-development.html)
+ [SageMaker Esclareça](https://docs.aws.amazon.com/sagemaker/latest/dg/model-explainability.html)
+ [SageMaker Organizador de dados](https://docs.aws.amazon.com/sagemaker/latest/dg/data-wrangler.html)
+ [SageMaker Debugger (Depurador)](https://docs.aws.amazon.com/sagemaker/latest/dg/debugger-on-studio.html)
+ [SageMaker Experimentos](https://docs.aws.amazon.com/sagemaker/latest/dg/experiments.html)
+ [SageMaker Loja de recursos](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 Pipelines](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines-studio.html)
+ [SageMaker Registro de modelos](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry.html)
+ [SageMaker Projetos](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-projects.html)
+ [SageMakerNotebooks Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/notebooks.html)
+ [SageMaker Notebook Studio Universal](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-emr-cluster.html)

# Visão geral da interface do usuário do Amazon SageMaker Studio Classic
<a name="studio-ui"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

O Amazon SageMaker Studio Classic amplia os recursos JupyterLab com recursos personalizados que podem acelerar seu processo de Machine Learning (ML) aproveitando o poder da AWS computação. Usuários anteriores do JupyterLab notarão a semelhança da interface do usuário. As adições mais proeminentes estão detalhadas nas seções a seguir. Para obter uma visão geral da JupyterLab interface original, consulte [A JupyterLab interface](https://jupyterlab.readthedocs.io/en/latest/user/interface.html). 

A imagem a seguir mostra a visualização padrão ao iniciar o Amazon SageMaker Studio Classic. O painel de *navegação esquerdo* exibe todas as categorias de atributos de nível superior e um *[Página inicial do Amazon SageMaker Studio Classic](#studio-ui-home)* está aberto na *área de trabalho principal*. Volte a esse ponto central de orientação escolhendo o ícone de **Início** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/house.png)) a qualquer momento e, em seguida, selecionando o nó **Início** no menu de navegação.

Experimente o **caderno de introdução para obter** um guia prático no produto sobre como configurar e se familiarizar com os recursos do Amazon SageMaker Studio Classic. Na seção **Ações rápidas** da página inicial do Studio, escolha **Abrir o caderno de conceitos básicos**.

![\[SageMaker Página inicial do Studio Classic.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/studio-home.png)


**nota**  
Este capítulo é baseado na interface de usuário (UI) atualizada do Studio Classic, disponível na versão JupyterLab 3 `v5.38.x` e superior.  
Para recuperar sua versão do Studio UI, no [inicializador do Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launcher.html), abra um Terminal do Sistema e, em seguida,  
Executar `conda activate studio`
Executar `jupyter labextension list`
Pesquise a versão exibida após `@amzn/sagemaker-ui version` na saída.
Para obter informações sobre a atualização do Amazon SageMaker Studio Classic, consulte[Desligue e atualize o Amazon SageMaker Studio Classic](studio-tasks-update-studio.md).

**Topics**
+ [Página inicial do Amazon SageMaker Studio Classic](#studio-ui-home)
+ [Layout clássico do Amazon SageMaker Studio](#studio-ui-layout)

## Página inicial do Amazon SageMaker Studio Classic
<a name="studio-ui-home"></a>

A página Início fornece acesso a tarefas e fluxos de trabalho comuns. Em particular, inclui uma lista de **ações rápidas** para tarefas comuns, como o **Abrir o inicializador** para criar cadernos e outros recursos e **importar e preparar dados visualmente** para criar um novo fluxo no Data Wrangler. A página **Início** também oferece dicas de ferramentas sobre os principais controles na interface do usuário.

As **soluções pré-construídas e automatizadas** ajudam você a começar rapidamente com as soluções low-code da SageMaker AI, como Amazon SageMaker JumpStart e Autopilot.

Em **Fluxos de trabalho e tarefas**, você pode encontrar uma lista de tarefas relevantes para cada etapa do seu fluxo de trabalho de ML que leva você à ferramenta certa para o trabalho. Por exemplo, **Transformar, analisar e exportar dados** leva você para o Amazon SageMaker Data Wrangler e abre o fluxo de trabalho para criar um novo fluxo de dados, ou **Exibir todos os experimentos** leva você para Experimentos e abre a SageMaker visualização da lista de experimentos.

Após a inicialização do Studio, a página **Início** é aberta na área de trabalho principal. Você pode personalizar sua página **inicial** de SageMaker IA escolhendo o ícone **Personalizar layout** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/layout.png)) no canto superior direito da guia **Início**.

## Layout clássico do Amazon SageMaker Studio
<a name="studio-ui-layout"></a>

A interface do Amazon SageMaker Studio Classic consiste em uma *barra de menu* na parte superior, uma *barra lateral esquerda* dobrável exibindo uma variedade de ícones, como o ícone **Início** e o **Navegador de Arquivos**, uma *barra de status* na parte inferior da tela e uma *área central* dividida horizontalmente em dois painéis. O painel esquerdo é um *painel de navegação* recolhível. O painel direito, ou área de trabalho principal, contém uma ou mais abas para recursos como inicializadores, cadernos, terminais, métricas e gráficos, e pode ser dividido ainda mais.

**Relate um bug** no Studio Classic ou escolha o ícone de notificação (![\[Red circle icon with white exclamation mark, indicating an alert or warning.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/Notification.png)) para ver as notificações do Studio Classic, como novas versões do Studio Classic e novos recursos de SageMaker IA, no canto direito da barra de menu. Para atualizar para uma nova versão do Studio, consulte [Desligue e atualize o Amazon SageMaker Studio Classic e os aplicativos](studio-tasks-update.md).

As seções a seguir descrevem as principais áreas da interface de usuário do Studio.

### Barra lateral esquerda
<a name="studio-ui-nav-bar"></a>

A *barra lateral esquerda* inclui os ícones a seguir. Quando o mouse passa sobre um ícone, uma dica de ferramenta exibe o nome do ícone. Um único clique em um ícone abre o painel de navegação esquerdo com a funcionalidade descrita. Um clique duplo minimiza o painel de navegação esquerdo.


| Ícone | Description | 
| --- | --- | 
|  ![\[O ícone Início.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/house@2x.png)  | **Início** Escolha o ícone **Início** para abrir um menu de navegação de nível superior no *painel de navegação à esquerda*. Usando o menu de navegação **Início**, você pode descobrir e navegar até as ferramentas certas para cada etapa do seu fluxo de trabalho de ML. O menu também fornece atalhos para soluções de início rápido e recursos de aprendizado, como documentação e tutoriais guiados. As categorias do menu agrupam atributos relevantes. A escolha **de dados**, por exemplo, expande os recursos de SageMaker IA relevantes para suas tarefas de preparação de dados. A partir daqui, você pode preparar seus dados com o Data Wrangler, criar e armazenar recursos de ML com o Amazon SageMaker Feature Store e gerenciar clusters do Amazon EMR para processamento de dados em grande escala. As categorias são ordenadas de acordo com um fluxo de trabalho típico de ML, desde a preparação de dados até a criação, o treinamento e a implantação de modelos de ML (dados, pipelines, modelos e implantações). Quando você escolhe um nó específico (como o Data Wrangler), uma página correspondente é aberta na área de trabalho principal. Escolha **Início** no menu de navegação para abrir o [Página inicial do Amazon SageMaker Studio Classic](#studio-ui-home) | 
|  ![\[O ícone do Navegador de arquivos.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/folder@2x.png)  |  **Navegador de arquivos** O **navegador de arquivos** exibe listas de cadernos, experimentos, testes, teste de componentes, endpoints e soluções de baixo código. Estar em um espaço pessoal ou compartilhado determina quem tem acesso aos seus arquivos. Você pode identificar em que tipo de espaço está olhando no canto superior direito. Se você estiver em um aplicativo pessoal, verá um ícone de usuário seguido por *[user\$1name]* **/Personal Studio** e, se estiver em um espaço colaborativo, verá um ícone de globo seguido por "*[user\$1name] ***/***[space\$1name].*” [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/studio-ui.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/studio-ui.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/studio-ui.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/studio-ui.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/studio-ui.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/studio-ui.html) Para entradas hierárquicas, uma navegação estrutural na parte superior do navegador mostra a localização na hierarquia.  | 
|  ![\[O ícone Property Inspector.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/gears@2x.png)  |  **Inspetor de Propriedades** O Inspetor de Propriedades é um inspetor de ferramentas de célula de caderno que exibe configurações de propriedades contextuais quando aberto.  | 
|  ![\[O ícone Terminais e kernels em execução.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/running-terminals-kernels@2x.png)  |  **Terminais e kernels em execução** Você pode verificar a lista de todos os *kernels* e *terminais* atualmente em execução em todos os cadernos, consoles de código e diretórios. Você pode encerrar recursos individuais, incluindo cadernos, terminais, kernels, aplicações e instâncias. Você também pode encerrar todos os recursos em uma dessas categorias ao mesmo tempo. Para obter mais informações, consulte [Encerre os recursos do Amazon SageMaker Studio Classic](notebooks-run-and-manage-shut-down.md).  | 
|  ![\[O ícone Git.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/git@2x.png)  |  **Git** É possível se conectar a um repositório do Git e acessar uma gama completa de ferramentas e operações do Git. Para obter mais informações, consulte [Clone um repositório Git no SageMaker Amazon Studio Classic](studio-tasks-git.md).  | 
|  ![\[O ícone Índice.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/table-of-contents@2x.png)  | **Índice**Você pode navegar pela estrutura de um documento quando um caderno ou arquivos Python estão abertos. Um sumário é gerado automaticamente no painel de navegação à esquerda quando você tem um caderno, arquivos Markdown ou arquivos Python abertos. As entradas são clicáveis e role o documento até o título em questão. | 
|  ![\[O ícone Extensões.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/extensions@2x.png)  |  **Extensões** Você pode ativar e gerenciar JupyterLab extensões de terceiros. Você pode verificar as extensões já instaladas e pesquisar extensões digitando o nome na barra de pesquisa. Quando você encontrar a extensão que deseja instalar, escolha **Instalar**. Depois de instalar suas novas extensões, não se esqueça de reiniciar JupyterLab atualizando seu navegador. Para obter mais informações, consulte a [documentação JupyterLab de extensões](https://jupyterlab.readthedocs.io/en/stable/user/extensions.html).  | 

### Painel de navegação esquerdo
<a name="studio-ui-browser"></a>

O conteúdo do painel de navegação esquerdo varia de acordo com o ícone selecionado na barra lateral esquerda.

Por exemplo, escolher o ícone **Início** exibe o menu de navegação. Escolher **Navegador de arquivos** lista todos os arquivos e diretórios disponíveis em seu espaço de trabalho (cadernos, experimentos, fluxos de dados, testes, componentes de teste, endpoints ou soluções de baixo código).

No menu de navegação, escolher um nó exibe a página de atributo correspondente na área de trabalho principal. Por exemplo, escolher **Data Wrangler** no menu **Dados** abre a aba **Data Wrangler** listando todos os fluxos existentes.

### Área de trabalho principal
<a name="studio-ui-work"></a>

A área de trabalho principal consiste em várias abas que contêm seus cadernos e terminais abertos, além de informações detalhadas sobre seus experimentos e endpoints. Na área de trabalho principal, você pode organizar documentos (como cadernos e arquivos de texto) e outras atividades (como terminais e consoles de código) em painéis de abas que podem ser redimensionados ou subdivididos. Arraste uma aba para o centro de um painel de abas para mover a aba para o painel. Subdivida um painel de abas arrastando uma aba para a esquerda, direita, parte superior ou inferior do painel. A aba da atividade atual é marcada com uma borda superior colorida (azul por padrão).

**nota**  
Todas as páginas de atributos fornecem ajuda contextual no produto. Para acessar a ajuda, escolha **Mostrar informações**. A interface de ajuda fornece uma breve introdução à ferramenta e links para recursos adicionais, como vídeos, tutoriais ou blogs.

# Inicie o Amazon SageMaker Studio Classic
<a name="studio-launch"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Depois de se integrar a um domínio do Amazon SageMaker AI, você pode iniciar um aplicativo Amazon SageMaker Studio Classic a partir do console de SageMaker IA ou do. AWS CLI Para obter mais informações sobre a integração em um domínio, consulte [Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md).

**Topics**
+ [Inicie o Amazon SageMaker Studio Classic usando o Amazon SageMaker AI Console](#studio-launch-console)
+ [Inicie o Amazon SageMaker Studio Classic usando o AWS CLI](#studio-launch-cli)

## Inicie o Amazon SageMaker Studio Classic usando o Amazon SageMaker AI Console
<a name="studio-launch-console"></a>

O processo para navegar até o Studio Classic a partir do Amazon SageMaker AI Console difere dependendo se o Studio Classic ou o Amazon SageMaker Studio estão definidos como a experiência padrão para seu domínio. Para obter mais informações sobre como configurar a experiência padrão para seu domínio, consulte[Migração do Amazon SageMaker Studio Classic](studio-updated-migrate.md).

**Topics**
+ [Pré-requisito](#studio-launch-console-prerequisites)

### Pré-requisito
<a name="studio-launch-console-prerequisites"></a>

 Para concluir esse procedimento, você deve se conectar a um domínio seguindo as etapas em Integrar ao [domínio Amazon SageMaker AI](https://docs.aws.amazon.com//sagemaker/latest/dg/gs-studio-onboard.html). 

### Execute o Studio Classic se o Studio for sua experiência padrão
<a name="studio-launch-console-updated"></a>

1. Navegue até o Studio seguindo as etapas em[Inicie o Amazon SageMaker Studio](studio-updated-launch.md).

1. Na interface do usuário do Studio, encontre o painel de aplicações no lado esquerdo.

1. No painel de aplicações, selecione **Studio Classic**.

1. Na página inicial do Studio Classic, selecione a instância do Studio Classic a ser aberta.

1. Escolha “Abrir”.

## Inicie o Amazon SageMaker Studio Classic usando o AWS CLI
<a name="studio-launch-cli"></a>

Você pode usar o AWS Command Line Interface (AWS CLI) para iniciar o Amazon SageMaker Studio Classic criando uma URL de domínio pré-assinada.

 **Pré-requisitos** 

 Antes de começar, conclua os seguintes pré-requisitos: 
+  Integre-se ao domínio Amazon SageMaker AI. Para obter mais informações, consulte [Onboard to Amazon SageMaker AI domain](https://docs.aws.amazon.com//sagemaker/latest/dg/gs-studio-onboard.html). 
+  Atualize o AWS CLI seguindo as etapas em [Instalando a AWS CLI versão atual](https://docs.aws.amazon.com//cli/latest/userguide/install-cliv1.html#install-tool-bundled). 
+  Em sua máquina local, execute `aws configure` e forneça suas AWS credenciais. Para obter informações sobre AWS credenciais, consulte [Entendendo e obtendo suas AWS credenciais](https://docs.aws.amazon.com//general/latest/gr/aws-sec-cred-types.html). 

O trecho de código a seguir demonstra como iniciar o Amazon SageMaker Studio Classic AWS CLI usando uma URL de domínio pré-assinada. Para obter mais informações, consulte [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 Controle de versão no Amazon Studio Classic SageMaker
<a name="studio-jl"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

A interface do Amazon SageMaker Studio Classic é baseada em JupyterLab, que é um ambiente de desenvolvimento interativo baseado na web para notebooks, códigos e dados. O Studio Classic suporta apenas o uso de JupyterLab 3.

Se você criou seu domínio e perfil de usuário usando Console de gerenciamento da AWS antes de 31/08/2022 ou usando antes de 22/02/23, sua AWS Command Line Interface instância do Studio Classic adotou como padrão 1. JupyterLab Depois de 07/01/2024, você não pode criar nenhum aplicativo Studio Classic que execute 1. JupyterLab 

## JupyterLab 3
<a name="jl3"></a>

JupyterLab 3 inclui os seguintes recursos que não estão disponíveis nas versões anteriores. Para obter mais informações sobre esses recursos, consulte [Lançamento da JupyterLab versão 3.0\$1](https://blog.jupyter.org/jupyterlab-3-0-is-out-4f58385e25bb) . 
+ Depurador visual ao usar os kernels Base Python 2.0 e Ciência de dados 2.0.
+ Filtro de navegador de arquivos 
+ Índice 
+ Compatibilidade com vários idiomas 
+ Modo simples 
+ Modo de interface única 

### Mudanças importantes em JupyterLab 3
<a name="jl3-changes"></a>

 Considere o seguinte ao usar JupyterLab 3: 
+ Ao definir a JupyterLab versão usando o AWS CLI, selecione a imagem correspondente para sua região e JupyterLab versão na lista de imagens em[Do AWS CLI](#studio-jl-set-cli).
+ Em JupyterLab 3, você deve ativar o ambiente `studio` conda antes de instalar as extensões. Para obter mais informações, consulte [Instalação JupyterLab e extensões do Jupyter Server](#studio-jl-install).
+ O Depurador só é aceito quando as imagens a seguir são usadas: 
  + Base Python 2.0
  + Data Science 2.0
  + Base Python 3.0
  + Data Science 3.0

## Restringindo a JupyterLab versão padrão usando uma chave de condição de política do IAM
<a name="iam-policy"></a>

Você pode usar as chaves de condição da política do IAM para restringir a versão JupyterLab que seus usuários podem iniciar.

A política a seguir mostra como limitar a JupyterLab versão no nível do domínio. 

------
#### [ 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"
                }
            }
        }
    ]
}
```

------

A política a seguir mostra como limitar a JupyterLab versão no nível do perfil do usuário. 

------
#### [ 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"
                }
            }
        }
    ]
}
```

------

A política a seguir mostra como limitar a JupyterLab versão no nível do aplicativo. A solicitação `CreateApp` deve incluir o ARN da imagem para que essa política seja aplicada.

------
#### [ 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"
                }
            }
        }
    ]
}
```

------

## Definindo uma JupyterLab versão padrão
<a name="studio-jl-set"></a>

As seções a seguir mostram como definir uma JupyterLab versão padrão para o Studio Classic usando o console ou AWS CLI o.  

### No console
<a name="studio-jl-set-console"></a>

 Você pode selecionar a JupyterLab versão padrão para usar no domínio ou no nível do perfil do usuário durante a criação do recurso. Para definir a JupyterLab versão padrão usando o console, consulte[Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md).  

### Do AWS CLI
<a name="studio-jl-set-cli"></a>

 Você pode selecionar a JupyterLab versão padrão a ser usada no domínio ou no nível do perfil do usuário usando AWS CLI o.  

 Para definir a JupyterLab versão padrão usando o AWS CLI, você deve incluir o ARN da JupyterLab versão padrão desejada como parte de um AWS CLI comando. Esse ARN difere com base na versão e na região do domínio de SageMaker IA.  

A tabela a seguir ARNs lista as JupyterLab versões disponíveis para cada região:


|  Região  |  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  | 

#### Criar ou atualizar o domínio
<a name="studio-jl-set-cli-domain"></a>

 Você pode definir uma JupyterServer versão padrão no nível do domínio invocando [CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html)ou [UpdateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateDomain.html)passando o `UserSettings.JupyterServerAppSettings.DefaultResourceSpec.SageMakerImageArn` campo. 

 Veja a seguir como criar um domínio com JupyterLab 3 como padrão, usando o 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"
    }
  }
}'
```

 Veja a seguir como atualizar um domínio para usar JupyterLab 3 como padrão, usando o 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"
    }
  }
}'
```

#### Criar ou atualizar o perfil do usuário
<a name="studio-jl-set-cli-user"></a>

 Você pode definir uma JupyterServer versão padrão no nível do perfil do usuário invocando [CreateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html)ou [UpdateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateUserProfile.html)passando o `UserSettings.JupyterServerAppSettings.DefaultResourceSpec.SageMakerImageArn` campo. 

 Veja a seguir como criar um perfil de usuário com JupyterLab 3 como padrão em um domínio existente, usando o 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"
    }
  }
}'
```

 Veja a seguir como atualizar um perfil de usuário para usar JupyterLab 3 como padrão, usando o 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"
    }
  }
}'
```

## Visualize e atualize a JupyterLab versão de um aplicativo no console
<a name="studio-jl-view"></a>

 Veja a seguir como visualizar e atualizar a JupyterLab versão de um aplicativo. 

1.  Navegue até a página de **domínios** de SageMaker IA. 

1.  Selecione um domínio para ver seus perfis de usuário. 

1.  Selecione um usuário para ver suas aplicações. 

1.  Para visualizar a JupyterLab versão de um aplicativo, selecione o nome do aplicativo. 

1.  Para atualizar a JupyterLab versão, selecione **Ação**. 

1.  No menu suspenso, selecione ** JupyterLab Alterar** versão. 

1.  Na página de **configurações do Studio Classic**, selecione a JupyterLab versão no menu suspenso. 

1.  Depois que a JupyterLab versão do perfil do usuário for atualizada com êxito, reinicie o JupyterServer aplicativo para que as alterações de versão sejam efetivas. Para obter mais informações sobre como reiniciar um JupyterServer aplicativo, consulte[Desligue e atualize o Amazon SageMaker Studio Classic](studio-tasks-update-studio.md).

## Instalação JupyterLab e extensões do Jupyter Server
<a name="studio-jl-install"></a>

Em JupyterLab 3, você deve ativar o ambiente `studio` conda antes de instalar as extensões. O método para isso é diferente se você estiver instalando as extensões de dentro do Studio Classic ou usando um script de configuração do ciclo de vida.

### Instalar a extensão de dentro do Studio Classic
<a name="studio-jl-install-studio"></a>

Para instalar extensões de dentro do Studio Classic, você deve ativar o `studio`ambiente do antes de instalar as extensões. 

```
# Before installing extensions
conda activate studio

# Install your extensions
pip install <JUPYTER_EXTENSION>

# After installing extensions
conda deactivate
```

### Instalar extensões usando um script de configuração do ciclo de vida
<a name="studio-jl-install-lcc"></a>

Se você estiver instalando JupyterLab extensões do Jupyter Server em seu script de configuração de ciclo de vida, você deve modificar seu script para que ele funcione com 3. JupyterLab As seções a seguir mostram o código necessário para scripts de configuração de ciclo de vida novos e existentes.

#### Script de configuração do ciclo de vida existente
<a name="studio-jl-install-lcc-existing"></a>

Se você estiver reutilizando um script de configuração de ciclo de vida existente que deve funcionar com as duas versões do JupyterLab, use o código a seguir em seu 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;
```

#### Novo script de configuração do ciclo de vida
<a name="studio-jl-install-lcc-new"></a>

Se você estiver escrevendo um novo script de configuração do ciclo de vida que usa apenas JupyterLab 3, você pode usar o seguinte código em seu script:

```
# Before installing extension
eval "$(conda shell.bash hook)"
conda activate studio


# Install your extensions
pip install <JUPYTER_EXTENSION>


conda deactivate
```

# Use o Amazon SageMaker Studio Classic Launcher
<a name="studio-launcher"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Você pode usar o Amazon SageMaker Studio Classic Launcher para criar cadernos e arquivos de texto e para iniciar terminais e shells Python interativos.

Você pode abrir o Inicializador do Studio Classic das seguintes maneiras:
+ Escolha **Amazon SageMaker Studio Classic** no canto superior esquerdo da interface do Studio Classic.
+ Use o atalho de teclado `Ctrl + Shift + L`.
+ No menu do Studio Classic, escolha **Arquivo** e, em seguida, escolha **Novo inicializador**.
+ Se o navegador de arquivos SageMaker AI estiver aberto, escolha o sinal de adição (**\$1**) no menu do navegador de arquivos Studio Classic.
+ Na seção **Ações rápidas** da aba **Início**, escolha **Abrir o inicializador**. O iniciador é aberto em uma nova aba. A seção **Ações rápidas** está visível por padrão, mas pode ser desativada. Escolha **Personalizar layout** para ativar essa seção novamente.

![\[SageMaker Lançador Studio Classic.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/studio-new-launcher.png)


O Launcher consiste nas duas seguintes seções:

**Topics**
+ [Cadernos e recursos computacionais](#studio-launcher-launch)
+ [Utilitários e arquivos](#studio-launcher-other)

## Cadernos e recursos computacionais
<a name="studio-launcher-launch"></a>

Nesta seção, você pode criar um caderno, abrir um terminal de imagem ou abrir um console de Python.

Para criar ou iniciar um desses itens:

1. Escolha **Alterar ambiente** para selecionar uma SageMaker imagem, um kernel, um tipo de instância e, opcionalmente, adicionar um script de configuração do ciclo de vida que é executado na inicialização da imagem. Para obter mais informações sobre scripts de configuração do ciclo de vida, consulte [Use configurações de ciclo de vida para personalizar o Amazon Studio Classic SageMaker](studio-lcc.md). Para obter mais informações sobre atualizações de kernel, consulte [Alterar a imagem ou o kernel de um notebook Amazon SageMaker Studio Classic](notebooks-run-and-manage-change-image.md).

1. Selecione um item.

**nota**  
Ao escolher um item desta seção, você pode incorrer em cobranças adicionais de uso. Para obter mais informações, consulte [Medição de uso para notebooks Amazon SageMaker Studio Classic](notebooks-usage-metering.md).

Os seguintes tipos estão disponíveis:
+ **Caderno**

  Inicia o notebook em uma sessão do kernel na SageMaker imagem escolhida.

  Cria o caderno na pasta que você selecionou atualmente no navegador de arquivos. Para exibir o navegador de arquivos, na barra lateral à esquerda do Studio Classic, escolha o ícone **Navegador de arquivos**.
+ **Console**

  Inicia o shell em uma sessão do kernel na SageMaker imagem escolhida.

  Cria o shell na pasta que você selecionou atualmente no navegador de arquivos.
+ **Terminal de imagem**

  Inicia o terminal em uma sessão de terminal na SageMaker imagem escolhida.

  Abre o terminal na pasta raiz para o usuário (conforme mostrado na pasta **Início** no navegador de arquivos).

**nota**  
Por padrão, as instâncias de CPU são iniciadas em uma instância `ml.t3.medium`, enquanto as instâncias de GPU são iniciadas em uma instância `ml.g4dn.xlarge`.

## Utilitários e arquivos
<a name="studio-launcher-other"></a>

Nesta seção, você pode adicionar ajuda contextual em um caderno, criar arquivos Python, Markdown e de texto, e abrir um terminal do sistema.

**nota**  
Os itens desta seção são executados no contexto do Amazon SageMaker Studio Classic e não incorrem em taxas de uso.

Os seguintes tipos estão disponíveis:
+ **Mostrar ajuda contextual**

  Abre uma nova aba que exibe ajuda contextual para funções em um caderno do Studio Classic. Para exibir a ajuda, escolha uma função em um caderno ativo. Para facilitar a visualização da ajuda no contexto, arraste a aba de ajuda para que fique adjacente à guia do caderno. Para abrir a aba de ajuda de dentro de um caderno, pressione `Ctrl + I`.

  A captura de tela a seguir mostra a ajuda contextual do método `Experiment.create`.  
![\[SageMaker Ajuda contextual do Studio Classic.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/studio-context-help.png)
+ **Terminal do sistema**

  Abre um shell `bash` na pasta raiz para o usuário (conforme mostrado na pasta **Início** no navegador de arquivos).
+ **Arquivo de texto** e **arquivo Markdown**

  Cria um arquivo do tipo associado na pasta que você selecionou atualmente no navegador de arquivos. Para exibir o navegador de arquivos, na barra lateral à esquerda, escolha o ícone do **navegador de arquivos** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/folder.png)).

# Use os notebooks Amazon SageMaker Studio Classic
<a name="notebooks"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Os notebooks Amazon SageMaker Studio Classic são notebooks colaborativos que você pode iniciar rapidamente porque não precisa configurar instâncias computacionais e armazenamento de arquivos com antecedência. Os cadernos do Studio Classic fornecem armazenamento persistente, o que permite que você visualize e compartilhe cadernos mesmo que as instâncias em que os cadernos são executados estejam desligadas.

É possível compartilhar os cadernos com outras pessoas na organização, para que elas possam reproduzir facilmente os resultados e colaborar ao criarem modelos e explorarem os dados. Você fornece acesso a uma cópia somente leitura do caderno por meio de um URL seguro. As dependências do seu caderno estão incluídas nos metadados do caderno. Quando seus colegas copiam o caderno, ele é aberto no mesmo ambiente do caderno original.

Um caderno do Studio Classic é executado em um ambiente definido pelo seguinte:
+ Tipo de instância do Amazon EC2: a configuração de hardware em que o caderno é executado. A configuração inclui o número e o tipo de processadores (vCPU e GPU) e a quantidade e o tipo de memória. O tipo de instância determina a taxa da definição de preço.
+ SageMaker image — Uma imagem de contêiner compatível com o SageMaker Studio Classic. A imagem consiste nos kernels, pacotes de idiomas e outros arquivos necessários para executar um caderno no Studio Classic. Pode haver várias imagens em uma instância. Para obter mais informações, consulte [Imagens personalizadas no Amazon SageMaker Studio Classic](studio-byoi.md).
+ KernelGateway aplicativo — Uma SageMaker imagem é executada como um KernelGateway aplicativo. A aplicação fornece acesso aos kernels na imagem. Há uma one-to-one correspondência entre uma imagem de SageMaker IA e um KernelGateway aplicativo.
+ Kernel: o processo que inspeciona e executa o código contido no caderno. Um kernel é definido por uma *especificação de kernel* na imagem. Pode haver vários kernels em uma imagem.

Você pode alterar qualquer um desses recursos dentro do caderno.

O diagrama a seguir descreve como o kernel de um notebook é executado em relação ao KernelGateway aplicativo, ao usuário e ao domínio.

![\[Como o kernel de um notebook é executado em relação ao KernelGateway aplicativo, ao usuário e ao domínio.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/studio-components.png)


[Os notebooks Sample SageMaker Studio Classic estão disponíveis na pasta [aws\$1sagemaker\$1studio](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/aws_sagemaker_studio) do repositório de exemplos da Amazon. SageMaker GitHub ](https://github.com/awslabs/amazon-sagemaker-examples) Cada notebook vem com a SageMaker imagem necessária que abre o notebook com o kernel apropriado.

Recomendamos que você se familiarize com a interface do SageMaker Studio Classic e com a barra de ferramentas do notebook Studio Classic antes de criar ou usar um notebook Studio Classic. Para obter mais informações, consulte [Visão geral da interface do usuário do Amazon SageMaker Studio Classic](studio-ui.md) e [Como usar a barra de ferramentas do Caderno do Studio Classic](notebooks-menu.md).

**Topics**
+ [Como os notebooks Amazon SageMaker Studio Classic são diferentes das instâncias de notebooks?](notebooks-comparison.md)
+ [Comece a usar os notebooks Amazon SageMaker Studio Classic](notebooks-get-started.md)
+ [Tour clássico do Amazon SageMaker Studio](gs-studio-end-to-end.md)
+ [Crie ou abra um notebook Amazon SageMaker Studio Classic](notebooks-create-open.md)
+ [Como usar a barra de ferramentas do Caderno do Studio Classic](notebooks-menu.md)
+ [Instale bibliotecas e kernels externos no Amazon Studio Classic SageMaker](studio-notebooks-add-external.md)
+ [Compartilhe e use um notebook Amazon SageMaker Studio Classic](notebooks-sharing.md)
+ [Obtenha metadados do notebook e do aplicativo Amazon SageMaker Studio Classic](notebooks-run-and-manage-metadata.md)
+ [Veja as diferenças dos notebooks no Amazon SageMaker Studio Classic](notebooks-diff.md)
+ [Gerencie recursos para notebooks Amazon SageMaker Studio Classic](notebooks-run-and-manage.md)
+ [Medição de uso para notebooks Amazon SageMaker Studio Classic](notebooks-usage-metering.md)
+ [Recursos disponíveis para notebooks Amazon SageMaker Studio Classic](notebooks-resources.md)

# Como os notebooks Amazon SageMaker Studio Classic são diferentes das instâncias de notebooks?
<a name="notebooks-comparison"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Ao iniciar um novo notebook, recomendamos que você crie o notebook no Amazon SageMaker Studio Classic em vez de iniciar uma instância de notebook a partir do console Amazon SageMaker AI. Há muitos benefícios em usar um caderno do Studio, incluindo o seguinte:
+ **Mais rápido:** iniciar um caderno do Studio Classic é mais rápido do que executar um caderno baseado em instância. Normalmente, é de 5 a 10 vezes mais rápido do que os cadernos baseados em instância.
+ **Fácil compartilhamento do caderno:** o compartilhamento do caderno é um atributo integrado no Studio Classic. Os usuários podem gerar um link compartilhável que reproduz o código do notebook e também a SageMaker imagem necessária para executá-lo, em apenas alguns cliques.
+ **SDK mais recente para Python:** [os notebooks Studio Classic vêm pré-instalados com o SDK mais recente do Amazon Python. SageMaker ](https://sagemaker.readthedocs.io/en/stable)
+ **Acessar todos os atributos do Studio:** os cadernos do Studio Classic são acessados de dentro do Studio Classic. Isso permite que você crie, treine, depure, rastreie e monitore seus modelos sem sair do Studio Classic.
+ **Diretórios de usuários persistentes:** cada membro de uma equipe do Studio recebe seu próprio diretório base para armazenar seus cadernos e outros arquivos. O diretório é montado automaticamente em todas as instâncias e kernels conforme são iniciados, para que seus cadernos e outros arquivos estejam sempre disponíveis. Os diretórios base são armazenados no Amazon Elastic File System (Amazon EFS) para que você possa acessá-los de outros serviços.
+ **Acesso direto:** ao usar o Centro de Identidade do IAM, você usa suas credenciais do Centro de Identidade do IAM por meio de um URL exclusivo para acessar diretamente o Studio. Você não precisa interagir com o Console de gerenciamento da AWS para executar seus notebooks.
+ **Imagens otimizadas:** os notebooks Studio Classic são equipados com um conjunto de configurações de SageMaker imagem predefinidas para você começar mais rápido.

**nota**  
Os cadernos do Studio Classic não são compatíveis com o *modo local*. No entanto, é possível usar uma instância de cadernos para treinar uma amostra do conjunto de dados localmente e, depois, usar o mesmo código em um caderno do Studio Classic para treinar no conjunto de dados completo.

Quando você abre um notebook no SageMaker Studio Classic, a visualização é uma extensão da JupyterLab interface. Os recursos principais são os mesmos, então você encontrará os recursos típicos de um notebook Jupyter e. JupyterLab Para obter mais informações sobre a interface do Studio Classic, consulte [Visão geral da interface do usuário do Amazon SageMaker Studio Classic](studio-ui.md).

# Comece a usar os notebooks Amazon SageMaker Studio Classic
<a name="notebooks-get-started"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Para começar, você ou o administrador da sua organização precisam concluir o processo de integração do domínio de SageMaker IA. Para obter mais informações, consulte [Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md).

Você pode acessar um caderno do Studio Classic de qualquer uma das seguintes maneiras:
+ Você recebe um convite por e-mail para acessar o Studio Classic por meio do IAM Identity Center da sua organização, que inclui um link direto para fazer login no Studio Classic sem precisar usar o console Amazon SageMaker AI. Você pode prosseguir para [Próximas etapas](#notebooks-get-started-next-steps).
+ Você recebe um link para um notebook compartilhado do Studio Classic, que inclui um link direto para fazer login no Studio Classic sem precisar usar o console de SageMaker IA. Você pode prosseguir para [Próximas etapas](#notebooks-get-started-next-steps). 
+ Você se integra a um domínio e, em seguida, faz login no console de SageMaker IA. Para obter mais informações, consulte [Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md).

## Inicie o Amazon SageMaker AI
<a name="notebooks-get-started-log-in"></a>

Conclua as etapas em [Inicie o Amazon SageMaker Studio Classic](studio-launch.md) para executar o Studio Classic.

## Próximas etapas
<a name="notebooks-get-started-next-steps"></a>

Agora que você está no Studio Classic, tente qualquer uma das seguintes opções:
+ Para criar um caderno Studio Classic ou explorar os cadernos end-to-end tutoriais do Studio Classic, consulte [Tour clássico do Amazon SageMaker Studio](gs-studio-end-to-end.md) na próxima seção.
+ Para se familiarizar com a interface do Studio Classic, consulte [Visão geral da interface do usuário do Amazon SageMaker Studio Classic](studio-ui.md) ou tente o **caderno de conceitos básicos** selecionando **Abrir o caderno de conceitos básicos** na seção **Ações rápidas** da página inicial do Studio.

# Tour clássico do Amazon SageMaker Studio
<a name="gs-studio-end-to-end"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

[Para ver um tutorial que leva você a conhecer os principais recursos do Amazon SageMaker Studio Classic, consulte o caderno de amostra [xgboost\$1customer\$1churn\$1studio.ipynb](https://sagemaker-examples.readthedocs.io/en/latest/aws_sagemaker_studio/getting_started/xgboost_customer_churn_studio.html) do repositório aws/. amazon-sagemaker-examples](https://github.com/aws/amazon-sagemaker-examples) GitHub O código no notebook treina vários modelos e configura o SageMaker Debugger e SageMaker o Model Monitor. A demonstração mostra como visualizar os testes, comparar os modelos resultantes, mostrar os resultados do depurador e implantar o melhor modelo usando a interface do usuário do Studio Classic. Não é necessário entender o código para seguir esta demonstração.

**Pré-requisitos**

Para executar o caderno neste tour, é necessário:
+ Uma conta do IAM ou fazer login no Studio. Para mais informações, consulte [Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md).
+ Familiaridade básica com a interface de usuário do Studio e com cadernos Jupyter. Para mais informações, consulte [Visão geral da interface do usuário do Amazon SageMaker Studio Classic](studio-ui.md).
+ Uma cópia do amazon-sagemaker-examples repositório [aws/](https://github.com/aws/amazon-sagemaker-examples) em seu ambiente Studio.

**Como clonar o repositório**

1. Execute o Studio Classic seguindo os passos em [Inicie o Amazon SageMaker Studio Classic](studio-launch.md) Para usuários do Centro de Identidade do IAM, faça login usando o URL no e-mail de convite.

1. No menu superior, escolha **Arquivo**, depois **Novo**, depois **Terminal**.

1. No prompt de comando, execute o comando a seguir para clonar o repositório [aws/ amazon-sagemaker-examples](https://github.com/aws/amazon-sagemaker-examples) GitHub .

   ```
   $ git clone https://github.com/aws/amazon-sagemaker-examples.git
   ```

**Para navegar até a amostra de caderno**

1. No **Navegador de arquivos** no menu à esquerda, selecione **amazon-sagemaker-examples**.

1. Navegue até o exemplo de caderno com o seguinte caminho:

   `~/amazon-sagemaker-examples/aws_sagemaker_studio/getting_started/xgboost_customer_churn_studio.ipynb`

1. Siga o caderno para conhecer os principais atributos do Studio Classic.

**nota**  
Se você encontrar um erro ao executar o amostra de caderno e tiver passado algum tempo desde a clonagem do repositório, revise o caderno no repositório remoto para obter atualizações.

# Crie ou abra um notebook Amazon SageMaker Studio Classic
<a name="notebooks-create-open"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Ao usar [Criar um caderno a partir do menu Arquivo](#notebooks-create-file-menu) o Amazon SageMaker Studio Classic ou [Abrir um caderno do Studio Classic](#notebooks-open) pela primeira vez, você é solicitado a configurar seu ambiente escolhendo uma SageMaker imagem, um kernel, um tipo de instância e, opcionalmente, um script de configuração do ciclo de vida que é executado na inicialização da imagem. SageMaker A IA inicia o notebook em uma instância do tipo escolhido. Por padrão, o tipo de instância é definido como `ml.t3.medium` (disponível como parte do [AWS nível gratuito](https://aws.amazon.com/free)) para imagens baseadas na CPU. Para imagens baseadas em GPU, o tipo de instância padrão é `ml.g4dn.xlarge`.

Se você criar ou abrir cadernos adicionais que usam o mesmo tipo de instância, independentemente de os cadernos usarem ou não o mesmo kernel, os cadernos serão executados na mesma instância desse tipo de instância.

Depois de iniciar um notebook, você pode alterar o tipo de instância, a SageMaker imagem e o kernel de dentro do notebook. Para obter mais informações, consulte [Alterar o tipo de instância de um notebook Amazon SageMaker Studio Classic](notebooks-run-and-manage-switch-instance-type.md) e [Alterar a imagem ou o kernel de um notebook Amazon SageMaker Studio Classic](notebooks-run-and-manage-change-image.md).

**nota**  
Você pode ter somente uma instância de cada tipo de instância. Cada instância pode ter várias SageMaker imagens em execução nela. Cada SageMaker imagem pode executar vários kernels ou instâncias de terminal. 

O faturamento ocorre por tipo de instância e começa quando a primeira instância de um determinado tipo de instância é executada. Para criar ou abrir um caderno sem o risco de incorrer em cobranças, abra o caderno no menu **Arquivo** e escolha **Sem Kernel** a partir da caixa de diálogo **Selecionar Kernel**. Você pode ler e editar um caderno sem um kernel em execução, mas não pode executar células.

O faturamento termina quando a SageMaker imagem da instância é encerrada. Para obter mais informações, consulte [Medição de uso para notebooks Amazon SageMaker Studio Classic](notebooks-usage-metering.md).

Para obter informações sobre como encerrar o caderno, consulte [Encerrar recursos](notebooks-run-and-manage-shut-down.md#notebooks-run-and-manage-shut-down-sessions).

**Topics**
+ [Abrir um caderno do Studio Classic](#notebooks-open)
+ [Criar um caderno a partir do menu Arquivo](#notebooks-create-file-menu)
+ [Criar um caderno a partir do inicializador](#notebooks-create-launcher)
+ [Lista dos tipos de instância, imagens e kernels disponíveis](#notebooks-instance-image-kernels)

## Abrir um caderno do Studio Classic
<a name="notebooks-open"></a>

O Amazon SageMaker Studio Classic só pode abrir cadernos listados no navegador de arquivos Studio Classic. Para obter instruções sobre como adicionar um caderno ao navegador, consulte [Carregar arquivos para o Amazon SageMaker Studio Classic](studio-tasks-files.md) ou [Clone um repositório Git no SageMaker Amazon Studio Classic](studio-tasks-git.md).

**Como abrir um caderno**

1. Na barra lateral à esquerda, escolha o ícone **File Browser (Navegador de arquivos)** ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/folder.png)) para exibir o navegador de arquivos.

1. Navegue e clique duas vezes em um arquivo de caderno para abri-lo em uma nova aba.

## Criar um caderno a partir do menu Arquivo
<a name="notebooks-create-file-menu"></a>

**Como criar um caderno a partir do menu Arquivo**

1. No menu do Studio, escolha **Arquivo**, escolha **Novo** e **Caderno**.

1. Na caixa de diálogo **Alterar ambiente**, use os menus suspensos para selecionar sua **imagem**, **kernel**, **tipo de instância** e **script de inicialização** e escolha **Selecionar**. Seu caderno é iniciado e aberto em uma nova aba Studio.  
![\[Configuração do ambiente do caderno Studio Classic.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/studio-notebook-environment-setup.png)

## Criar um caderno a partir do inicializador
<a name="notebooks-create-launcher"></a>

**Como criar um caderno a partir do inicializador**

1. Para abrir o Launcher, escolha **Amazon SageMaker Studio Classic** no canto superior esquerdo da interface do Studio Classic ou use o atalho `Ctrl + Shift + L` de teclado.

   Para saber mais sobre todas as formas disponíveis parar abrir o Inicializador, consulte [Use o Amazon SageMaker Studio Classic Launcher](studio-launcher.md).

1. No inicializador, na seção **Cadernos e recursos de computação**, escolha **Alterar ambiente**.  
![\[SageMaker Ambiente de notebook configurado pelo Studio Classic.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/studio-launcher-notebook-creation.png)

1. Na caixa de diálogo **Alterar ambiente**, use os menus suspensos para selecionar sua **imagem**, **kernel**, **tipo de instância** e **script de inicialização** e escolha **Selecionar**.

1. No inicializador, escolha **Criar caderno**. Seu caderno é iniciado e aberto em uma nova aba Studio.

Para visualizar a sessão do kernel do caderno, na barra lateral esquerda, escolha o ícone **Terminais e kernels em execução** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/running-terminals-kernels.png)). Você pode interromper a sessão do kernel do caderno nessa visualização.

## Lista dos tipos de instância, imagens e kernels disponíveis
<a name="notebooks-instance-image-kernels"></a>

Para obter uma lista de todos os recursos disponíveis, consulte:
+ [Tipos de instância disponíveis para uso com notebooks Amazon SageMaker Studio Classic](notebooks-available-instance-types.md)
+ [SageMaker Imagens da Amazon disponíveis para uso com notebooks Studio Classic](notebooks-available-images.md)

# Como usar a barra de ferramentas do Caderno do Studio Classic
<a name="notebooks-menu"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Os notebooks Amazon SageMaker Studio Classic ampliam a JupyterLab interface. Para obter uma visão geral da JupyterLab interface original, consulte [A JupyterLab interface](https://jupyterlab.readthedocs.io/en/latest/user/interface.html).

A imagem a seguir mostra a barra de ferramentas e uma célula vazia de um caderno do Studio Classic.

![\[SageMaker Menu do notebook Studio Classic.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/studio-notebook-menu.png)


Quando você faz uma pausa sobre um ícone da barra de ferramentas, uma dica de ferramenta exibe a função do ícone. Há comandos adicionais do caderno no menu principal do Studio Classic. A barra de ferramentais inclui os ícones a seguir:


| Ícone | Description | 
| --- | --- | 
|  ![\[O ícone Salvar e verificar.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/notebook-save-and-checkpoint.png)  |  **Salvar e ponto de verificação** Salva o caderno e atualiza o arquivo do ponto de verificação. Para obter mais informações, consulte [Conheça as diferenças entre o último ponto de verificação](notebooks-diff.md#notebooks-diff-checkpoint).  | 
|  ![\[O ícone Inserir célula.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/notebook-insert-cell.png)  |  **Inserir célula** Insere uma célula de código abaixo da célula atual. A célula atual é indicada pelo marcador vertical azul na margem esquerda.  | 
|  ![\[Os ícones Recortar, copiar e colar células.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/notebook-cut-copy-paste.png)  |  **Recortar, copiar e colar células** Corta, copia e cola as células selecionadas.  | 
|  ![\[O ícone Executar células.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/notebook-run.png)  |  **Executar células** Executa as células selecionadas e torna a célula seguinte à última célula selecionada a nova célula selecionada:  | 
|  ![\[O ícone Interromper o kernel.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/notebook-interrupt-kernel.png)  |  **Interromper o kernel** Interrompe o kernel que cancela a operação em execução atualmente. O kernel permanece ativo.  | 
|  ![\[O ícone Reiniciar o kernel.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/notebook-restart-kernel.png)  |  **Reiniciar o kernel** Reinicia o kernel. As variáveis são redefinidas. As informações não salvas não são efetivadas.  | 
|  ![\[O ícone Reinicie o kernel e execute todas as células.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/notebook-restart-kernel-run-all-cells.png)  |  **Reinicie o kernel e execute todas as células** Reinicia o kernel e, em seguida, executa todas as células do caderno.  | 
|  ![\[O ícone do tipo de célula.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/notebook-cell-type.png)  |  **Tipo de célula** Exibe ou altera o tipo de célula atual. Os tipos de células são: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/notebooks-menu.html)  | 
|  ![\[O ícone do Iniciar terminal.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/notebook-launch-terminal.png)  |  **Iniciar terminal** Inicia um terminal na SageMaker imagem que hospeda o notebook. Para ver um exemplo, consulte [Obter metadados da aplicação](notebooks-run-and-manage-metadata.md#notebooks-run-and-manage-metadata-app).  | 
|  ![\[O ícone Diferença de pontos de verificação.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/notebook-checkpoint-diff.png)  |  **Diferença de pontos de verificação** Abre uma nova aba que exibe a diferença entre o caderno e o arquivo de ponto de verificação. Para obter mais informações, consulte [Conheça as diferenças entre o último ponto de verificação](notebooks-diff.md#notebooks-diff-checkpoint).  | 
|  ![\[O ícone de diferença do Git.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/notebook-git-diff.png)  |  **Diferença do Git** Somente habilitado se o caderno for aberto a partir de um repositório Git. Abre uma nova aba que exibe a diferença entre o caderno e a última confirmação do Git. Para obter mais informações, consulte [Conheça as diferenças entre a última confirmação](notebooks-diff.md#notebooks-diff-git).  | 
|  **2 vCPU \$1 4 GiB**  |  **Tipo de instância** Exibe ou altera o tipo de instância no qual o caderno é executado. O formato é o seguinte: `number of vCPUs + amount of memory + number of GPUs` `Unknown` indica que o caderno foi aberto sem especificar um kernel. O notebook é executado na instância do SageMaker Studio e não acumula cobranças de tempo de execução. Não é possível atribuir o caderno a um tipo de instância. É necessário especificar um kernel e o Studio atribuirá o caderno a um tipo padrão. Para obter mais informações, consulte [Crie ou abra um notebook Amazon SageMaker Studio Classic](notebooks-create-open.md) e [Alterar o tipo de instância de um notebook Amazon SageMaker Studio Classic](notebooks-run-and-manage-switch-instance-type.md).  | 
|  ![\[O ícone Cluster.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/notebook-cluster.png)  |  **Cluster** Conecte seu caderno a um cluster do Amazon EMR e escale suas tarefas de ETL ou execute treinamento de modelos em grande escala usando Apache Spark, Hive ou Presto. Para obter mais informações, consulte [Preparação de dados usando o Amazon EMR](studio-notebooks-emr-cluster.md).  | 
|  **Python 3 (Ciência de Dados)**  |  **Kernel e imagem SageMaker ** Exibe ou altera o kernel que processa as células no caderno. O formato é o seguinte: `Kernel (SageMaker Image)` `No Kernel` indica que o caderno foi aberto sem especificar um kernel. É possível editar o caderno, mas não é possível executar nenhuma célula. Para obter mais informações, consulte [Alterar a imagem ou o kernel de um notebook Amazon SageMaker Studio Classic](notebooks-run-and-manage-change-image.md).  | 
|  ![\[O ícone de status ocupado do Kernel.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/notebook-kernel-status.png)  |  **Status de ocupado do kernel** Exibe o status de ocupado do kernel. Quando a borda do círculo e seu interior são da mesma cor, o kernel está ocupado. O kernel está ocupado quando está iniciando e quando está processando células. Estados adicionais do kernel são exibidos na barra de status no canto inferior esquerdo do Studio. SageMaker   | 
|  ![\[O ícone Compartilhar caderno.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/notebook-share.png)  |  **Compartilhar caderno** Compartilha o caderno. Para obter mais informações, consulte [Compartilhe e use um notebook Amazon SageMaker Studio Classic](notebooks-sharing.md).  | 

Para selecionar várias células, clique na margem esquerda fora de uma célula. Mantenha pressionada a tecla `Shift` e use a tecla `K` ou `Up` para selecionar células anteriores, ou use a tecla `J` ou `Down` para selecionar as células seguintes:

# Instale bibliotecas e kernels externos no Amazon Studio Classic SageMaker
<a name="studio-notebooks-add-external"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Os notebooks Amazon SageMaker Studio Classic vêm com várias imagens já instaladas. Essas imagens contêm kernels e pacotes Python, incluindo scikit-learn, Pandas,,, e. NumPy TensorFlow PyTorch MXNet Você também pode instalar suas próprias imagens que contenham pacotes e kernels de sua escolha. Para obter mais informações sobre instalação de sua própria imagem, consulte [Imagens personalizadas no Amazon SageMaker Studio Classic](studio-byoi.md).

Os diferentes kernels do Jupyter nos notebooks SageMaker Amazon Studio Classic são ambientes conda separados. Para obter mais informações sobre ambientes conda, consulte [Gerenciar ambientes](https://conda.io/docs/user-guide/tasks/manage-environments.html).

## Ferramentas de instalação do pacote
<a name="studio-notebooks-external-tools"></a>

**Importante**  
Atualmente, todos os pacotes nos SageMaker notebooks da Amazon são licenciados para uso com o Amazon SageMaker AI e não exigem licenças comerciais adicionais. No entanto, isso pode estar sujeito a alterações no futuro. Por isso, recomendamos que consulte regularmente os termos de licenciamento para verificar se existem atualizações.

O método usado para instalar pacotes Python a partir do terminal varia de acordo com a imagem. O Studio Classic é compatível com as seguintes ferramentas de instalação de pacotes:
+ **Cadernos**: os seguintes comandos são compatíveis. Se uma das opções a seguir não funcionar na sua imagem, tente a outra.
  + `%conda install`
  + `%pip install`
+ **O terminal Jupyter**: você pode instalar pacotes usando pip e conda diretamente. Você também pode usar `apt-get install` para instalar pacotes do sistema a partir do terminal.

**nota**  
Não recomendamos o uso de `pip install -u` ou`pip install --user`, porque esses comandos instalam pacotes no volume Amazon EFS do usuário e podem potencialmente bloquear a reinicialização JupyterServer do aplicativo. Em vez disso, use uma configuração de ciclo de vida para reinstalar os pacotes necessários na reinicialização da aplicação, conforme mostrado em [Instale pacotes usando configurações de ciclo de vida](#nbi-add-external-lcc).

Recomendamos usar `%pip` e `%conda` para instalar pacotes de dentro de um caderno porque eles levam corretamente em conta o ambiente ativo ou o intérprete que está sendo usado. Para obter mais informações, consulte [Adicionar funções mágicas %pip e %conda](https://github.com/ipython/ipython/pull/11524). Você também pode usar a sintaxe de comando do sistema (linhas começando com \$1) para instalar pacotes. Por exemplo, `!pip install` e `!conda install`. 

### Conda
<a name="studio-notebooks-add-external-tools-conda"></a>

O Conda é um sistema de gerenciamento de pacotes e sistema de gerenciamento de ambiente de código aberto que pode instalar pacotes e suas dependências. SageMaker A IA suporta o uso de conda com o canal conda-forge. Para obter mais informações, consulte [Canais conda](https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/channels.html). O canal conda-forge é um canal comunitário onde os colaboradores podem fazer upload de pacotes.

**nota**  
A instalação de pacotes do conda-forge pode levar até 10 minutos. O tempo está relacionado à forma como o conda resolve o gráfico de dependências.

Todos os ambientes fornecidos pela SageMaker IA são funcionais. Os pacotes instalados pelo usuário podem não funcionar corretamente.

O Conda tem dois métodos para ativar ambientes: `conda activate` e `source activate`. Para obter mais informações, consulte [Gerenciar ambiente](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html).

**Operações conda compatíveis**
+ `conda install` de um pacote em um único ambiente
+ `conda install` de um pacote em todos os ambientes
+ Instalar um pacote do repositório principal do conda
+ Instalar um pacote do conda-forge
+ Alterar o local de instalação do conda para usar o Amazon EBS
+ Compatível com `conda activate` e `source activate`

### Pip
<a name="studio-notebooks-add-external-tools-pip"></a>

Pip é a ferramenta para instalar e gerenciar pacotes Python. O Pip pesquisa pacotes no Python Package Index (PyPI) por padrão. Ao contrário do conda, o pip não tem compatibilidade ambiental integrada. Portanto, o pip não é tão completo quanto o conda quando se trata de pacotes com dependências nativas ou de bibliotecas do sistema. O Pip pode ser usado para instalar pacotes em ambientes conda. Você pode usar repositórios de pacotes alternativos com pip em vez do PyPI.

**Operações pip compatíveis**
+ Usar pip para instalar um pacote sem um ambiente conda ativo
+ Usar pip para instalar um pacote em um ambiente conda
+ Usar pip para instalar um pacote em todos os ambientes conda
+ Alterar o local de instalação do pip para usar o Amazon EBS
+ Usar um repositório alternativo para instalar pacotes com pip

### Sem compatibilidade
<a name="studio-notebooks-add-external-tools-misc"></a>

SageMaker A IA visa oferecer suporte ao maior número possível de operações de instalação de pacotes. No entanto, se os pacotes foram instalados pela SageMaker IA e você usa as seguintes operações nesses pacotes, isso pode tornar seu ambiente instável:
+ Desinstalação
+ Rebaixamento
+ Atualizar

Devido a possíveis problemas com as condições ou configurações da rede, ou a disponibilidade do conda ou PyPi, os pacotes podem não ser instalados em um período de tempo fixo ou determinístico.

**nota**  
A tentativa de instalar um pacote em um ambiente com dependências incompatíveis pode resultar em uma falha. Se ocorrerem problemas, você pode entrar em contato com o mantenedor da biblioteca sobre a atualização das dependências do pacote. Quando você modifica o ambiente, como remover ou atualizar pacotes existentes, isso pode resultar na instabilidade desse ambiente.

## Instale pacotes usando configurações de ciclo de vida
<a name="nbi-add-external-lcc"></a>

Instale imagens e kernels personalizados no volume Amazon EBS da instância do Studio Classic para que eles persistam quando você parar e reiniciar o notebook e que as bibliotecas externas instaladas não sejam atualizadas pela IA. SageMaker Para fazer isso, use uma configuração de ciclo de vida que inclua um script que é executado quando você cria o caderno (`on-create)` e um script executado sempre que você reinicia o caderno (`on-start`). Para obter informações sobre como usar configurações de ciclo de vida do Studio Classic, consulte [Use configurações de ciclo de vida para personalizar o Amazon Studio Classic SageMaker](studio-lcc.md). Para exemplos de scripts de configuração do ciclo de vida, consulte [SageMaker Amostras de configuração do ciclo de vida do AI Studio Classic](https://github.com/aws-samples/sagemaker-studio-lifecycle-config-examples).

# Compartilhe e use um notebook Amazon SageMaker Studio Classic
<a name="notebooks-sharing"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Você pode compartilhar seus cadernos Amazon SageMaker Studio Classic com seus colegas. O caderno compartilhado é uma cópia. Após compartilhar seu caderno, as alterações feitas no caderno original não são refletidas no caderno compartilhado e as alterações feitas por seu colega nas cópias compartilhadas do caderno não serão refletidas no caderno original. Se quiser compartilhar a versão mais recente, crie um snapshot e compartilhe-o.

**Topics**
+ [Compartilhar um caderno](#notebooks-sharing-share)
+ [Usar um caderno compartilhado](#notebooks-sharing-using)
+ [Espaços compartilhados e colaboração em tempo real](#notebooks-sharing-rtc)

## Compartilhar um caderno
<a name="notebooks-sharing-share"></a>

A captura de tela a seguir mostra o menu de um caderno do Studio.

![\[A localização do ícone Compartilhar em um caderno Studio Classic.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/studio-notebook-menu-share.png)


**Como compartilhar um caderno**

1. No canto superior direito do caderno, escolha **Share (Compartilhar)**.

1. (Opcional) Em **Create shareable snapshot (Criar snapshot compartilhável)**, escolha qualquer um dos seguintes itens:
   + **Incluir informações de repositório Git**: inclui um link para o repositório Git que contém o caderno. Isso permite que você e seu colega colaborem e contribuam com o mesmo repositório Git.
   + **Incluir saída**: inclui toda a saída do caderno que foi salva.
**nota**  
Se você for um usuário do Centro de Identidade do IAM e não vir essas opções, o administrador do Centro de Identidade do IAM provavelmente desabilitou o atributo. Entre em contato com o administrador.

1. Escolha **Criar**.

1. Após a criação do snapshot, escolha **Copy link (Copiar link)** e **Close (Fechar)**.

1. Compartilhe o link com seu colega.

Após selecionar as opções de compartilhamento, você receberá um URL. Você pode compartilhar esse link com usuários que têm acesso ao Amazon SageMaker Studio Classic. Quando o usuário abre o URL, é solicitado que ele faça login usando o Centro de Identidade do IAM ou a autenticação do IAM. Esse caderno compartilhado se torna uma cópia, portanto, as alterações feitas pelo destinatário não serão reproduzidas no caderno original.

## Usar um caderno compartilhado
<a name="notebooks-sharing-using"></a>

Você usa um caderno compartilhado da mesma forma como faria com qualquer caderno que você mesmo criou. Você deve primeiro fazer login na sua conta e depois abrir o link compartilhado. Caso você não tenha uma sessão ativa, receberá um erro.

Ao clicar em um link para um caderno compartilhado pela primeira vez, é aberta uma versão somente leitura do caderno. Para editar o caderno compartilhado, escolha **Create a Copy (Criar uma cópia)**. Isto copia o caderno compartilhado em seu armazenamento pessoal.

O notebook copiado é executado em uma instância do tipo de instância e da SageMaker imagem que o notebook estava usando quando o remetente o compartilhou. Se você não estiver executando uma instância desse tipo no momento, uma nova instância será iniciada. A personalização da SageMaker imagem não é compartilhada. Também é possível inspecionar o snapshot do caderno selecionando **Snapshot Details (Detalhes do snapshot)**.

Veja a seguir algumas considerações importantes sobre compartilhamento e autenticação:
+ Se você tiver uma sessão ativa, verá uma visualização somente leitura do caderno até selecionar **Create a Copy (Criar uma cópia)**.
+ Se você não tiver uma sessão ativa, será necessário fazer login.
+ Se você usar o IAM para fazer login, após fazer o login, selecione seu perfil de usuário e selecione **Abrir Studio Classic**. Depois, é necessário escolher o link que você recebeu.
+ Se você usar o Centro de Identidade do IAM para fazer login, após fazer o login, o caderno compartilhado será aberto automaticamente no Studio.

## Espaços compartilhados e colaboração em tempo real
<a name="notebooks-sharing-rtc"></a>

Um espaço compartilhado consiste em um JupyterServer aplicativo compartilhado e um diretório compartilhado. Um dos principais benefícios de um espaço compartilhado é que ele facilita a colaboração entre os membros do espaço compartilhado em tempo real. Os usuários que colaboram em um espaço de trabalho têm acesso a uma aplicação compartilhada do Studio Classic, onde podem acessar, ler e editar seus cadernos em tempo real. A colaboração em tempo real só é suportada para JupyterServer aplicativos dentro de um espaço compartilhado. Os usuários com acesso a um espaço compartilhado podem simultaneamente abrir, visualizar, editar e executar cadernos Jupyter na aplicação do Studio compartilhada nesse espaço. Para obter mais informações sobre colaboração compartilhada, espaçada e em tempo real, consulte [Colaboração com espaços compartilhados](domain-space.md).

# Obtenha metadados do notebook e do aplicativo Amazon SageMaker Studio Classic
<a name="notebooks-run-and-manage-metadata"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Você pode acessar os metadados do notebook e os metadados do aplicativo usando a interface do usuário do Amazon SageMaker Studio Classic.

**Topics**
+ [Obter metadados do caderno do Studio Classic](#notebooks-run-and-manage-metadata-notebook)
+ [Obter metadados da aplicação](#notebooks-run-and-manage-metadata-app)

## Obter metadados do caderno do Studio Classic
<a name="notebooks-run-and-manage-metadata-notebook"></a>

Os notebooks Jupyter contêm metadados opcionais que você pode acessar por meio da interface do usuário do Amazon SageMaker Studio Classic.

**Para visualizar os metadados do caderno:**

1. Na barra lateral direita, escolha o ícone do **Inspetor de propriedades** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/gears.png)). 

1. Abra a seção **Ferramentas avançadas**.

Os metadados devem ser semelhantes aos seguintes:

```
{
    "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"
    }
}
```

## Obter metadados da aplicação
<a name="notebooks-run-and-manage-metadata-app"></a>

Quando você cria um notebook no Amazon SageMaker Studio Classic, os metadados do aplicativo são gravados em um arquivo nomeado `resource-metadata.json` na pasta`/opt/ml/metadata/`. Você pode obter os metadados da aplicação abrindo um terminal de imagem de dentro do caderno. Os metadados fornecem as seguintes informações, que incluem a SageMaker imagem e o tipo de instância em que o notebook é executado:
+ **AppType** – `KernelGateway` 
+ **DomainId**— O mesmo que o Studio ClassicID
+ **UserProfileName**— O nome do perfil do usuário atual
+ **ResourceArn**— O Amazon Resource Name (ARN) do aplicativo, que inclui o tipo de instância
+ **ResourceName**— O nome da SageMaker imagem

Metadados adicionais podem ser incluídos para uso interno do Studio Classic e estão sujeitos a alterações.

**Como obter os metadados da aplicação**

1. No centro do menu do caderno, escolha o ícone **Iniciar Terminal** (![\[Dollar sign icon representing currency or financial transactions.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/notebook-launch-terminal.png)). Isso abre um terminal na SageMaker imagem em que o notebook é executado.

1. Execute os seguintes comandos para exibir o conteúdo do arquivo `resource-metadata.json`:

   ```
   $ cd /opt/ml/metadata/
   cat resource-metadata.json
   ```

   O arquivo deverá ser semelhante ao seguinte:

   ```
   {
       "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":""
   }
   ```

# Veja as diferenças dos notebooks no Amazon SageMaker Studio Classic
<a name="notebooks-diff"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Você pode exibir a diferença entre o notebook atual e o último ponto de verificação ou o último commit do Git usando a interface de usuário do SageMaker Amazon AI.

A captura de tela a seguir mostra o menu de um caderno do Studio.

![\[A localização do menu relevante em um caderno Studio Classic.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/studio-notebook-menu-diffs.png)


**Topics**
+ [Conheça as diferenças entre o último ponto de verificação](#notebooks-diff-checkpoint)
+ [Conheça as diferenças entre a última confirmação](#notebooks-diff-git)

## Conheça as diferenças entre o último ponto de verificação
<a name="notebooks-diff-checkpoint"></a>

Quando você cria um caderno, um arquivo de ponto de verificação oculto que corresponde ao caderno é criado. Você pode visualizar as alterações entre o caderno e o arquivo de ponto de verificação ou reverter o caderno para corresponder ao arquivo de ponto de verificação.

Por padrão, um caderno é salvo automaticamente a cada 120 segundos e também quando o caderno é fechado. No entanto, o arquivo de ponto de verificação não é atualizado para corresponder ao caderno. Para salvar o caderno e atualizar o arquivo de ponto de verificação de correspondência, você deve escolher o ícone **Salvar caderno e criar ponto de verificação** (![\[Padlock icon representing security or access control in cloud services.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/notebook-save-and-checkpoint.png)) à esquerda do menu do caderno ou usar o atalho de teclado `Ctrl + S`.

Para visualizar as alterações entre o caderno e o arquivo do ponto de verificação, escolha o ícone **Diferenças do ponto de verificação** (![\[Clock icon representing time or duration in a user interface.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/notebook-checkpoint-diff.png)) no centro do menu do caderno.

Para reverter o caderno para o arquivo de ponto de verificação, no menu principal do Studio, escolha **Arquivo** e **Reverter o caderno para o ponto de verificação**.

## Conheça as diferenças entre a última confirmação
<a name="notebooks-diff-git"></a>

Se um caderno for aberto a partir de um repositório Git, será possível visualizar a diferença entre o caderno e a última confirmação do Git.

Para visualizar as alterações no caderno a partir da última confirmação do Git, escolha o ícone **Diferença do Git** (![\[Dark button with white text displaying "git" in lowercase letters.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/notebook-git-diff.png)) no centro do menu do caderno.

# Gerencie recursos para notebooks Amazon SageMaker Studio Classic
<a name="notebooks-run-and-manage"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Você pode alterar o tipo de instância, a SageMaker imagem e o kernel de dentro de um notebook Amazon SageMaker Studio Classic. Para criar um kernel personalizado para usar com seus cadernos, consulte [Imagens personalizadas no Amazon SageMaker Studio Classic](studio-byoi.md).

**Topics**
+ [Alterar o tipo de instância de um notebook Amazon SageMaker Studio Classic](notebooks-run-and-manage-switch-instance-type.md)
+ [Alterar a imagem ou o kernel de um notebook Amazon SageMaker Studio Classic](notebooks-run-and-manage-change-image.md)
+ [Encerre os recursos do Amazon SageMaker Studio Classic](notebooks-run-and-manage-shut-down.md)

# Alterar o tipo de instância de um notebook Amazon SageMaker Studio Classic
<a name="notebooks-run-and-manage-switch-instance-type"></a>

Quando você abre um novo caderno do Studio pela primeira vez, é atribuído a você um tipo de instância padrão do Amazon Elastic Compute Cloud (Amazon EC2) para executar o caderno. Quando você abre cadernos adicionais no mesmo tipo de instância, os cadernos são executados na mesma instância que o primeiro caderno, mesmo que eles usem kernels diferentes. 

Você pode alterar o tipo de instância em que o caderno do Studio é executado de dentro do caderno. 

As informações a seguir se aplicam somente aos cadernos do Studio. Para obter informações sobre como alterar o tipo de instância de uma instância de SageMaker notebook da Amazon, consulte[Atualizar uma instância de caderno](nbi-update.md).

**Importante**  
Se você alterar o tipo de instância, as informações não salvas e as configurações existentes do caderno serão perdidas, e os pacotes instalados deverão ser reinstalados.  
O tipo de instância anterior continua em execução mesmo se nenhuma sessão do kernel ou aplicação estiver ativo. Você deve interromper explicitamente a instância para interromper o acúmulo de cobranças. Para interromper a instância, consulte [Encerrar recursos](notebooks-run-and-manage-shut-down.md#notebooks-run-and-manage-shut-down-sessions).

A captura de tela a seguir mostra o menu de um caderno do Studio. O processador e a memória do tipo de instância que acionam o caderno são exibidos como **2 vCPU \$1 4 GiB**.

![\[A localização do processador e da memória do tipo de instância para o caderno Studio Classic.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/studio-notebook-menu-instance.png)


**Como alterar o tipo de instância**

1. Escolha o processador e a memória do tipo de instância que está alimentando o caderno. Isso abre uma janela pop-up.

1. Na janela pop-up **Configurar ambiente do caderno**, selecione o menu suspenso **Tipo de instância**.

1. No menu suspenso **Tipo de instância**, escolha um dos tipos de instância listados.

1. Após escolher um tipo, escolha **Selecionar**.

1. Aguarde até que a nova instância esteja habilitada, e as novas informações de tipo de instância serão exibidas.

Para obter uma lista dos tipos de instância disponíveis, consulte [Tipos de instância disponíveis para uso com notebooks Amazon SageMaker Studio Classic](notebooks-available-instance-types.md). 

# Alterar a imagem ou o kernel de um notebook Amazon SageMaker Studio Classic
<a name="notebooks-run-and-manage-change-image"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Com os notebooks Amazon SageMaker Studio Classic, você pode alterar a imagem ou o kernel do notebook de dentro do notebook.

A captura de tela a seguir mostra o menu de um caderno do Studio. O kernel e a imagem de SageMaker IA atuais são exibidos como **Python 3 (Data Science**), `Python 3` onde denota o kernel `Data Science` e denota a imagem de IA que contém SageMaker o kernel. A cor do círculo à direita indica o status ocioso ou ocupado do kernel. O kernel está ocupado quando o centro e a borda do círculo têm a mesma cor.

![\[A localização do kernel e da imagem atuais na barra de menu de um caderno Studio Classic.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/studio-notebook-menu-kernel.png)


**Para alterar a imagem ou kernel de um caderno**

1. Escolha o image/kernel nome no menu do caderno.

1. Na janela pop-up **Configurar ambiente do caderno**, selecione o menu suspenso **Imagem** ou **Kernel**.

1. A partir do menu suspenso, escolha uma das imagens ou kernels que estão listados.

1. Após escolher uma imagem ou um kernel, escolha **Selecionar**.

1. Aguarde até que o status do kernel apareça como inativo, o que indica que o kernel foi iniciado.

Para obter uma lista de SageMaker imagens e kernels disponíveis, consulte. [SageMaker Imagens da Amazon disponíveis para uso com notebooks Studio Classic](notebooks-available-images.md)

# Encerre os recursos do Amazon SageMaker Studio Classic
<a name="notebooks-run-and-manage-shut-down"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Você pode desligar recursos individuais de SageMaker IA da Amazon, incluindo notebooks, terminais, kernels, aplicativos e instâncias do Studio Classic. Você também pode encerrar todos os recursos em uma dessas categorias ao mesmo tempo. O Amazon SageMaker Studio Classic não oferece suporte ao desligamento de recursos de dentro de um notebook.

**nota**  
Quando você encerra uma instância do caderno Studio Classic, os recursos adicionais que você criou no Studio Classic não são excluídos. Por exemplo, recursos adicionais podem incluir endpoints de SageMaker IA, clusters do Amazon EMR e buckets do Amazon S3. Para interromper o acúmulo de cobranças, você deve excluir manualmente esses recursos. Para obter informações sobre como encontrar recursos que estão acumulando cobranças, consulte [Analisando seus custos com](https://docs.aws.amazon.com/cost-management/latest/userguide/ce-what-is.html). AWS Cost Explorer

Os tópicos a seguir demonstram como excluir esses recursos de SageMaker IA.

**Topics**
+ [Encerrar um caderno aberto](#notebooks-run-and-manage-shut-down-notebook)
+ [Encerrar recursos](#notebooks-run-and-manage-shut-down-sessions)

## Encerrar um caderno aberto
<a name="notebooks-run-and-manage-shut-down-notebook"></a>

Ao encerrar um caderno Studio Classic, o caderno não é excluído. O kernel no qual o caderno está sendo executado é encerrado e todas as informações não salvas no caderno são perdidas. Você pode encerrar um caderno aberto no menu **Arquivo** do Studio Classic ou no painel Terminal e kernels em execução. O procedimento a seguir mostra como encerrar um caderno aberto no menu **Arquivo** do Studio Classic.

**Como encerrar um caderno aberto no menu File (Arquivo)**

1. Execute o Studio Classic seguindo as etapas em[Inicie o Amazon SageMaker Studio Classic](studio-launch.md).

1. (Opcional) Salve o conteúdo do caderno escolhendo **Arquivo** e, em seguida, **Salvar Caderno**.

1. Escolha **Arquivo**.

1. Escolha **Fechar e Desligar o caderno**. Isso abre uma janela pop-up.

1. Na janela pop-up, escolha **OK**.

## Encerrar recursos
<a name="notebooks-run-and-manage-shut-down-sessions"></a>

Você pode acessar o painel **Running Terminals and Kernels** do Amazon SageMaker Studio Classic selecionando o ícone **Running Terminals and Kernels** (). ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/running-terminals-kernels.png) O painel **Terminal e kernels em execução** tem quatro seções. Cada seção lista todos os recursos daquele tipo. Você pode encerrar cada recurso individualmente ou encerrar todos os recursos em uma seção ao mesmo tempo.

Quando você escolhe encerrar todos os recursos em uma seção, ocorre o seguinte:
+ ** INSTANCES/RUNNING APLICATIVOS EM EXECUÇÃO** — Todas as instâncias, aplicativos, notebooks, sessões do kernel, consoles/shells e terminais de imagem estão desligados. Terminais do sistema não são encerrados.
+ **SESSÕES DO KERNEL** — Todos os kernels e consoles/shells notebooks estão desligados.
+ **SESSÕES DE TERMINAL**: todos os terminais de imagem e terminais do sistema são encerrados.

**Para encerrar recursos**

1. Execute o Studio Classic seguindo as etapas em[Inicie o Amazon SageMaker Studio Classic](studio-launch.md).

1. Escolha o ícone **Terminais e kernels em execução**.

1. Realize um dos procedimentos a seguir:
   + Para desligar um recurso específico, escolha **Encerrar** na mesma linha do recurso.

     Para instâncias em execução, uma caixa de diálogo de confirmação lista todos os recursos que a SageMaker IA encerrará. Uma caixa de diálogo de confirmação exibe todos as aplicações em execução. Escolha **Encerrar tudo** para continuar.
**nota**  
Nenhuma caixa de diálogo de confirmação é exibida para sessões de kernel ou sessões de terminal.
   + Para encerrar todos os recursos em uma seção, escolha **X**, à direita do rótulo da seção. Nenhuma caixa de diálogo de confirmação é exibida. Escolha **Encerrar todos** para continuar.
**nota**  
Quando você desliga esses recursos do Studio Classic, quaisquer recursos adicionais criados a partir do Studio Classic, como endpoints de SageMaker IA, clusters do Amazon EMR e buckets do Amazon S3, não são excluídos. Você deve excluir manualmente esses recursos para interromper o acúmulo de cobranças. Para obter informações sobre como encontrar recursos que estão acumulando cobranças, consulte [Analisando seus custos com](https://docs.aws.amazon.com/cost-management/latest/userguide/ce-what-is.html). AWS Cost Explorer

# Medição de uso para notebooks Amazon SageMaker Studio Classic
<a name="notebooks-usage-metering"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Não há cobrança adicional pelo uso do Amazon SageMaker Studio Classic. Os custos incorridos para executar notebooks, shells interativos, consoles e terminais do Amazon SageMaker Studio Classic são baseados no uso da instância do Amazon Elastic Compute Cloud (Amazon EC2).

Ao executar os seguintes recursos, você deve escolher uma SageMaker imagem e um kernel:

**No inicializador do Studio Classic**
+ Cadernos
+ Shell interativo
+ Terminal de imagem

**No menu **File (Arquivo)****
+ Cadernos
+ Console

Quando iniciado, o recurso é executado em uma instância do Amazon EC2 de um tipo de instância escolhido. Se uma instância desse tipo tiver sido iniciada anteriormente e estiver disponível, o recurso será executado nessa instância.

Para imagens baseadas em CPU, o tipo sugerido de instância padrão é `ml.t3.medium`. Para imagens baseadas em GPU, o tipo sugerido de instância padrão é `ml.g4dn.xlarge`.

Os custos incorridos baseiam-se no tipo de instância. Você será cobrado separadamente para cada instância.

A medição é iniciada quando uma instância é criada. A medição termina quando todas as aplicações na instância são encerradas ou a instância é encerrada. Para obter mais informações sobre como encerrar uma instância, consulte [Encerre os recursos do Amazon SageMaker Studio Classic](notebooks-run-and-manage-shut-down.md).

**Importante**  
Você deve encerrar a instância para não incorrer em cobranças. Se você encerrar o caderno em execução na instância, mas não encerrar a instância, você ainda incorrerá em cobranças. Quando você desliga as instâncias do notebook Studio Classic, quaisquer recursos adicionais, como endpoints de SageMaker IA, clusters do Amazon EMR e buckets do Amazon S3 criados a partir do Studio Classic, não são excluídos. Exclua esses recursos para interromper o acúmulo de cobranças.

Quando você abre vários cadernos no mesmo tipo de instância, os cadernos são executados na mesma instância, mesmo que estejam usando kernels diferentes. Você será cobrado somente pelo tempo em que uma instância estiver em execução.

Você pode alterar o tipo de instância de dentro do caderno depois de abri-lo. Para obter mais informações, consulte [Alterar o tipo de instância de um notebook Amazon SageMaker Studio Classic](notebooks-run-and-manage-switch-instance-type.md).

Para obter informações sobre faturamento e exemplos de preços, consulte [Amazon SageMaker Pricing](https://aws.amazon.com/sagemaker/pricing/).

# Recursos disponíveis para notebooks Amazon SageMaker Studio Classic
<a name="notebooks-resources"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

As seções a seguir listam os recursos disponíveis para os notebooks Amazon SageMaker Studio Classic.

**Topics**
+ [Tipos de instância disponíveis para uso com notebooks Amazon SageMaker Studio Classic](notebooks-available-instance-types.md)
+ [SageMaker Imagens da Amazon disponíveis para uso com notebooks Studio Classic](notebooks-available-images.md)

# Tipos de instância disponíveis para uso com notebooks Amazon SageMaker Studio Classic
<a name="notebooks-available-instance-types"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Os notebooks Amazon SageMaker Studio Classic são executados em instâncias do Amazon Elastic Compute Cloud (Amazon EC2). Os seguintes tipos de instância do Amazon EC2 estão disponíveis para uso com cadernos do Studio Classic: Para obter informações detalhadas sobre quais tipos de instância se adequam ao seu caso de uso e suas capacidades de desempenho, consulte [Tipos de instância do Amazon Elastic Compute Cloud](https://aws.amazon.com/ec2/instance-types/). Para obter mais informações sobre a precificação desses tipos de instância, consulte [Definição de preço do Amazon EC2](https://aws.amazon.com/ec2/pricing/).

Para obter informações sobre os tipos de instância do Amazon SageMaker Notebook disponíveis, consulte [CreateNotebookInstance](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateNotebookInstance.html#sagemaker-CreateNotebookInstance-request-InstanceType).

**nota**  
Para a maioria dos casos de uso, você deve usar um `ml.t3.medium`. Esse é o tipo de instância padrão para SageMaker imagens baseadas em CPU e está disponível como parte do nível [AWS gratuito](https://aws.amazon.com/free).

**Topics**
+ [Instâncias de CPU](#notebooks-resources-no-gpu)
+ [Instâncias com 1 ou mais GPUs](#notebooks-resources-gpu)

## Instâncias de CPU
<a name="notebooks-resources-no-gpu"></a>

A tabela a seguir lista os tipos de instância de CPU do Amazon EC2 sem GPU conectada que estão disponíveis para uso com cadernos do Studio Classic. Ela também lista informações sobre as especificações de cada tipo de instância. O tipo de instância padrão para imagens baseadas em CPU é `ml.t3.medium`. 

Para obter informações detalhadas sobre quais tipos de instância se adequam ao seu caso de uso e suas capacidades de desempenho, consulte [Tipos de instância do Amazon Elastic Compute Cloud](https://aws.amazon.com/ec2/instance-types/). Para obter mais informações sobre a precificação desses tipos de instância, consulte [Definição de preço do Amazon EC2](https://aws.amazon.com/ec2/pricing/).

Instâncias de CPU


| Instância | Caso de uso | Início rápido | vCPU | Memória (GiB) | Armazenamento da instância (GB) | 
| --- | --- | --- | --- | --- | --- | 
| ml.t3.medium | Uso geral | Sim | 2 | 4 | Somente Amazon EBS | 
| ml.t3.large | Uso geral | Não | 2 | 8 | Somente Amazon EBS | 
| ml.t3.xlarge | Uso geral | Não | 4 | 16 | Somente Amazon EBS | 
| ml.t3.2xlarge | Uso geral | Não | 8 | 32 | Somente Amazon EBS | 
| ml.m5.large | Uso geral | Sim | 2 | 8 | Somente Amazon EBS | 
| ml.m5.xlarge | Uso geral | Não | 4 | 16 | Somente Amazon EBS | 
| ml.m5.2xlarge | Uso geral | Não | 8 | 32 | Somente Amazon EBS | 
| ml.m5.4xlarge | Uso geral | Não | 16 | 64 | Somente Amazon EBS | 
| ml.m5.8xlarge | Uso geral | Não | 32 | 128 | Somente Amazon EBS | 
| ml.m5.12xlarge | Uso geral | Não | 48 | 192 | Somente Amazon EBS | 
| ml.m5.16xlarge | Uso geral | Não | 64 | 256 | Somente Amazon EBS | 
| ml.m5.24xlarge | Uso geral | Não | 96 | 384 | Somente Amazon EBS | 
| ml.m5d.large | Uso geral | Não | 2 | 8 | 1 x 75 NVMe SSD | 
| ml.m5d.xlarge | Uso geral | Não | 4 | 16 | 1 x 150 NVMe SSD | 
| ml.m5d.2xlarge | Uso geral | Não | 8 | 32 | 1 x 300 NVMe SSD | 
| ml.m5d.4xlarge | Uso geral | Não | 16 | 64 | 2 x 300 NVMe SSD | 
| ml.m5d.8xlarge | Uso geral | Não | 32 | 128 | 2 x 600 NVMe SSD | 
| ml.m5d.12xlarge | Uso geral | Não | 48 | 192 | 2 x 900 NVMe SSD | 
| ml.m5d.16xlarge | Uso geral | Não | 64 | 256 | 4 x 600 NVMe SSD | 
| ml.m5d.24xlarge | Uso geral | Não | 96 | 384 |  NVMe SSD 4 x 900 | 
| ml.c5.large | Otimizadas para computação | Sim | 2 | 4 | Somente Amazon EBS | 
| ml.c5.xlarge | Otimizadas para computação | Não | 4 | 8 | Somente Amazon EBS | 
| ml.c5.2xlarge | Otimizadas para computação | Não | 8 | 16 | Somente Amazon EBS | 
| ml.c5.4xlarge | Otimizadas para computação | Não | 16 | 32 | Somente Amazon EBS | 
| ml.c5.9xlarge | Otimizadas para computação | Não | 36 | 72 | Somente Amazon EBS | 
| ml.c5.12xlarge | Otimizadas para computação | Não | 48 | 96 | Somente Amazon EBS | 
| ml.c5.18xlarge | Otimizadas para computação | Não | 72 | 144 | Somente Amazon EBS | 
| ml.c5.24xlarge | Otimizadas para computação | Não | 96 | 192 | Somente Amazon EBS | 
| ml.r5.large | Otimizado para memória | Não | 2 | 16 | Somente Amazon EBS | 
| ml.r5.xlarge | Otimizado para memória | Não | 4 | 32 | Somente Amazon EBS | 
| ml.r5.2xlarge | Otimizado para memória | Não | 8 | 64 | Somente Amazon EBS | 
| ml.r5.4xlarge | Otimizado para memória | Não | 16 | 128 | Somente Amazon EBS | 
| ml.r5.8xlarge | Otimizado para memória | Não | 32 | 256 | Somente Amazon EBS | 
| ml.r5.12xlarge | Otimizado para memória | Não | 48 | 384 | Somente Amazon EBS | 
| ml.r5.16xlarge | Otimizado para memória | Não | 64 | 512 | Somente Amazon EBS | 
| ml.r5.24xlarge | Otimizado para memória | Não | 96 | 768 | Somente Amazon EBS | 

## Instâncias com 1 ou mais GPUs
<a name="notebooks-resources-gpu"></a>

A tabela a seguir lista os tipos de instância do Amazon EC2 com 1 ou mais GPUs anexos que estão disponíveis para uso com notebooks Studio Classic. Ela também lista informações sobre as especificações de cada tipo de instância. O tipo de instância padrão para imagens baseadas em GPU é `ml.g4dn.xlarge`. 

Para obter informações detalhadas sobre quais tipos de instância se adequam ao seu caso de uso e suas capacidades de desempenho, consulte [Tipos de instância do Amazon Elastic Compute Cloud](https://aws.amazon.com/ec2/instance-types/). Para obter mais informações sobre a precificação desses tipos de instância, consulte [Definição de preço do Amazon EC2](https://aws.amazon.com/ec2/pricing/).

Instâncias com 1 ou mais GPUs


| Instância | Caso de uso | Início rápido | GPUs | vCPU | Memória (GiB) | Memória de GPU (GiB) | Armazenamento da instância (GB) | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
| ml.p3.2xlarge | Computação acelerada | Não | 1 | 8 | 61 | 16 | Somente Amazon EBS | 
| ml.p3.8xlarge | Computação acelerada | Não | 4 | 32 | 244 | 64 | Somente Amazon EBS | 
| ml.p3.16xlarge | Computação acelerada | Não | 8 | 64 | 488 | 128 | Somente Amazon EBS | 
| ml.p3dn.24xlarge | Computação acelerada | Não | 8 | 96 | 768 | 256 | 2 x 900 NVMe SSD | 
| ml.p4d.24xlarge | Computação acelerada | Não | 8 | 96 | 1152 | 320 GB HBM2 | 8 x 1000 NVMe SSD | 
| ml.p4de.24xlarge | Computação acelerada | Não | 8 | 96 | 1152 | 640 GB HBM2e | 8 x 1000 NVMe SSD | 
| ml.g4dn.xlarge | Computação acelerada | Sim | 1 | 4 | 16 | 16 | 1 x 125 NVMe SSD | 
| ml.g4dn.2xlarge | Computação acelerada | Não | 1 | 8 | 32 | 16 | 1 x 225 NVMe SSD | 
| ml.g4dn.4xlarge | Computação acelerada | Não | 1 | 16 | 64 | 16 | 1 x 225 NVMe SSD | 
| ml.g4dn.8xlarge | Computação acelerada | Não | 1 | 32 | 128 | 16 | 1 x 900 NVMe SSD | 
| ml.g4dn.12xlarge | Computação acelerada | Não | 4 | 48 | 192 | 64 | 1 x 900 NVMe SSD | 
| ml.g4dn.16xlarge | Computação acelerada | Não | 1 | 64 | 256 | 16 | 1 x 900 NVMe SSD | 
| ml.g5.xlarge | Computação acelerada | Não | 1 | 4 | 16 | 24 | 1 x 250 NVMe SSD | 
| ml.g5.2xlarge | Computação acelerada | Não | 1 | 8 | 32 | 24 | 1 x 450 NVMe SSD | 
| ml.g5.4xlarge | Computação acelerada | Não | 1 | 16 | 64 | 24 | 1 x 600 NVMe SSD | 
| ml.g5.8xlarge | Computação acelerada | Não | 1 | 32 | 128 | 24 | 1 x 900 NVMe SSD | 
| ml.g5.12xlarge | Computação acelerada | Não | 4 | 48 | 192 | 96 | 1 x SSD 3800 NVMe  | 
| ml.g5.16xlarge | Computação acelerada | Não | 1 | 64 | 256 | 24 | 1 x 1900 NVMe SSD | 
| ml.g5.24xlarge | Computação acelerada | Não | 4 | 96 | 384 | 96 | 1 x SSD 3800 NVMe  | 
| ml.g5.48xlarge | Computação acelerada | Não | 8 | 192 | 768 | 192 | 2 SSDs 3800 NVMe  | 

# SageMaker Imagens da Amazon disponíveis para uso com notebooks Studio Classic
<a name="notebooks-available-images"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Esta página lista as SageMaker imagens e os kernels associados que estão disponíveis no Amazon SageMaker Studio Classic. Essa página também fornece informações sobre o formato necessário para criar o ARN para cada imagem. SageMaker as imagens contêm o [SDK mais recente do Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable) e a versão mais recente do kernel. Para obter mais informações, consulte as [Imagens de contêineres de aprendizado profundo](https://docs.aws.amazon.com/deep-learning-containers/latest/devguide/deep-learning-containers-images.html).

**Topics**
+ [Formato do ARN da imagem](#notebooks-available-images-arn)
+ [Tags de URI compatíveis](#notebooks-available-uri-tag)
+ [Imagens compatíveis](#notebooks-available-images-supported)
+ [Imagens programadas para depreciação](#notebooks-available-images-deprecation)
+ [Imagens obsoletas](#notebooks-available-images-deprecated)

## Formato do ARN da imagem
<a name="notebooks-available-images-arn"></a>

A tabela a seguir lista o formato de ARN da imagem para cada Região. Para criar o ARN completo para uma imagem, substitua o *resource-identifier* espaço reservado pelo identificador de recurso correspondente para a imagem. O identificador do recurso é encontrado na tabela de SageMaker imagens e kernels. Para criar o URI completo para uma imagem, substitua o *tag* espaço reservado pela tag cpu ou gpu correspondente. Para ver a lista de tags que você pode usar, consulte[Tags de URI compatíveis](#notebooks-available-uri-tag).

**nota**  
SageMaker As imagens de distribuição usam um conjunto distinto de imagens ARNs, listadas na tabela a seguir.


| Região | Formato do ARN da imagem | SageMaker Formato ARN da imagem de distribuição | SageMaker Formato URI de imagem de distribuição | 
| --- | --- | --- | --- | 
|  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 | 523751269255.dkr. 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 | 245090515133.dkr. 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 | 021081402939.dkr. 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 | 

## Tags de URI compatíveis
<a name="notebooks-available-uri-tag"></a>

A lista a seguir mostra as tags que você pode incluir no URI da imagem.
+ 1-cpu
+ 1-gpu
+ 0-cpu
+ 0-gpu

**Os exemplos a seguir são exibidos URIs com vários formatos de tag:**
+ 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

## Imagens compatíveis
<a name="notebooks-available-images-supported"></a>

A tabela a seguir fornece informações sobre as SageMaker imagens e os kernels associados que estão disponíveis no Amazon SageMaker Studio Classic. Ele também fornece informações sobre o identificador de recurso e a versão do Python incluídos na imagem.

SageMaker imagens e kernels


| SageMaker Imagem | Description | Identificador do recurso | Núcleos (e identificador) | Versão do Python | 
| --- | --- | --- | --- | --- | 
| Base Python 4.3 | Imagem oficial do Python 3.11 DockerHub com boto3 e incluída. AWS CLI  | sagemaker-base-python-v4 | Python 3 (python3) | Python 3.11 | 
| Base Python 4.2 | Imagem oficial do Python 3.11 DockerHub com boto3 e incluída. AWS CLI  | sagemaker-base-python-v4 | Python 3 (python3) | Python 3.11 | 
| Base Python 4.1 | Imagem oficial do Python 3.11 DockerHub com boto3 e incluída. AWS CLI  | sagemaker-base-python-v4 | Python 3 (python3) | Python 3.11 | 
| Base Python 4.0 | Imagem oficial do Python 3.11 DockerHub com boto3 e incluída. AWS CLI  | sagemaker-base-python-v4 | Python 3 (python3) | Python 3.11 | 
| Base Python 3.0 | Imagem oficial do Python 3.10 DockerHub com boto3 e incluída. AWS CLI  | sagemaker-base-python-310-v1 | Python 3 (python3) | Python 3.10 | 
| Data Science 5.3 | Data Science 5.3 é uma imagem [conda](https://docs.conda.io/projects/conda/en/latest/index.html) do Python 3.11 baseada na versão jammy-20240212 do Ubuntu. Ele inclui os pacotes e bibliotecas Python mais usados, como NumPy o Learn. SciKit  | sagemaker-data-science-v5 | Python 3 (python3) | Python 3.11 | 
| Data Science 5.2 | Data Science 5.2 é uma imagem [conda](https://docs.conda.io/projects/conda/en/latest/index.html) do Python 3.11 baseada na versão jammy-20240212 do Ubuntu. Ele inclui os pacotes e bibliotecas Python mais usados, como NumPy o Learn. SciKit  | sagemaker-data-science-v5 | Python 3 (python3) | Python 3.11 | 
| Data Science 5.1 | Data Science 5.1 é uma imagem [conda](https://docs.conda.io/projects/conda/en/latest/index.html) do Python 3.11 baseada na versão jammy-20240212 do Ubuntu. Ele inclui os pacotes e bibliotecas Python mais usados, como NumPy o Learn. SciKit  | sagemaker-data-science-v5 | Python 3 (python3) | Python 3.11 | 
| Data Science 5.0 | Data Science 5.0 é uma imagem [conda](https://docs.conda.io/projects/conda/en/latest/index.html) do Python 3.11 baseada na versão jammy-20240212 do Ubuntu. Ele inclui os pacotes e bibliotecas Python mais usados, como NumPy o Learn. SciKit  | sagemaker-data-science-v5 | Python 3 (python3) | Python 3.11 | 
| Data Science 4.0 | Data Science 4.0 é uma imagem [conda](https://docs.conda.io/projects/conda/en/latest/index.html) do Python 3.11 baseada na versão 22.04 do Ubuntu. Ele inclui os pacotes e bibliotecas Python mais usados, como NumPy o Learn. SciKit  | sagemaker-data-science-311-v1 | Python 3 (python3) | Python 3.11 | 
| Data Science 3.0 | Data Science 3.0 é uma imagem [conda](https://docs.conda.io/projects/conda/en/latest/index.html) do Python 3.10 baseada na versão 22.04 do Ubuntu. Ele inclui os pacotes e bibliotecas Python mais usados, como NumPy o Learn. SciKit  | sagemaker-data-science-310-v1 | Python 3 (python3) | Python 3.10 | 
| Geoespacial 1.0 | A Amazon SageMaker Geospatial é uma imagem Python que consiste em bibliotecas geoespaciais comumente usadas, como GDAL, Fiona GeoPandas, Shapley e Rasterio. Ele permite que você visualize dados geoespaciais dentro da SageMaker IA. Para obter mais informações, consulte [Amazon SageMaker Geospatial Notebook SDK](https://docs.aws.amazon.com/sagemaker/latest/dg/geospatial-notebook-sdk.html) | sagemaker-geospatial-1.0 | Python 3 (python3) | Python 3.10 | 
| SparkAnalytics 4.3 | A imagem SparkAnalytics 4.3 fornece opções de Spark e PySpark kernel no Amazon SageMaker Studio Classic, incluindo SparkMagic Spark, Glue Spark e SparkMagic PySpark Glue PySpark, permitindo o processamento flexível de dados distribuídos. | sagemaker-spark-analytics-v4 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/notebooks-available-images.html)  | Python 3.11 | 
| SparkAnalytics 4.2 | A imagem SparkAnalytics 4.2 fornece opções de Spark e PySpark kernel no Amazon SageMaker Studio Classic, incluindo SparkMagic Spark, Glue Spark e SparkMagic PySpark Glue PySpark, permitindo o processamento flexível de dados distribuídos. | sagemaker-spark-analytics-v4 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/notebooks-available-images.html)  | Python 3.11 | 
| SparkAnalytics 4.1 | A imagem SparkAnalytics 4.1 fornece opções de Spark e PySpark kernel no Amazon SageMaker Studio Classic, incluindo SparkMagic Spark, Glue Spark e SparkMagic PySpark Glue PySpark, permitindo o processamento flexível de dados distribuídos. | sagemaker-spark-analytics-v4 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/notebooks-available-images.html)  | Python 3.11 | 
| SparkAnalytics 4.0 | A imagem SparkAnalytics 4.0 fornece opções de Spark e PySpark kernel no Amazon SageMaker Studio Classic, incluindo SparkMagic Spark, Glue Spark e SparkMagic PySpark Glue PySpark, permitindo o processamento flexível de dados distribuídos. | sagemaker-spark-analytics-v4 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/notebooks-available-images.html)  | Python 3.11 | 
| SparkAnalytics 3.0 | A imagem SparkAnalytics 3.0 fornece opções de Spark e PySpark kernel no Amazon SageMaker Studio Classic, incluindo SparkMagic Spark, Glue Spark e SparkMagic PySpark Glue PySpark, permitindo o processamento flexível de dados distribuídos. | sagemaker-sparkanalytics-311-v1 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/notebooks-available-images.html) | Python 3.11 | 
| SparkAnalytics 2.0 | Edição individual Anaconda com grãos PySpark Spark. Para obter mais informações, consulte [sparkmagic](https://github.com/jupyter-incubator/sparkmagic). | sagemaker-sparkanalytics-310-v1 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/notebooks-available-images.html) | Python 3.10 | 
| PyTorch 2.4.0 Python 3.11 Otimizado para CPU | Os AWS Deep Learning Containers para PyTorch 2.4.0 com CUDA 12.4 incluem contêineres para treinamento em CPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [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 Otimizado para GPU | Os AWS Deep Learning Containers para PyTorch 2.4.0 com CUDA 12.4 incluem contêineres para treinamento em GPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [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 Otimizado para CPU | Os AWS Deep Learning Containers para PyTorch 2.3.0 com CUDA 12.1 incluem contêineres para treinamento em CPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [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 Python 3.11 Otimizado para GPU | Os AWS Deep Learning Containers para PyTorch 2.3.0 com CUDA 12.1 incluem contêineres para treinamento em GPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [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 Otimizado para CPU | Os AWS Deep Learning Containers for PyTorch 2.2 com CUDA 12.1 incluem contêineres para treinamento em CPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [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 Otimizado para GPU | Os AWS Deep Learning Containers for PyTorch 2.2 com CUDA 12.1 incluem contêineres para treinamento em GPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [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 Otimizado para CPU | Os AWS Deep Learning Containers for PyTorch 2.1 com CUDA 12.1 incluem contêineres para treinamento em CPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [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 Otimizado para GPU | Os AWS Deep Learning Containers for PyTorch 2.1 com CUDA 12.1 incluem contêineres para treinamento em GPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [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 Otimizado para neurônios | PyTorch Imagem 1.13 com HuggingFace pacotes Neuron instalados para treinamento em instâncias do Trainium otimizadas para desempenho e escalabilidade. AWS | pytorch-1.13-310 hf-neuron-py | Python 3 (python3) | Python 3.10 | 
| PyTorch 1.13 Python 3.10 Otimizado para neurônios | PyTorch Imagem 1.13 com pacotes Neuron instalados para treinamento em instâncias do Trainium otimizadas para desempenho e escalabilidade. AWS | pytorch-1.13-neuron-py310 | Python 3 (python3) | Python 3.10 | 
| TensorFlow 2.14.0 Python 3.10 Otimizado para CPU | Os AWS Deep Learning Containers for TensorFlow 2.14 com CUDA 11.8 incluem contêineres para treinamento em CPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [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 Otimizado para GPU | Os AWS Deep Learning Containers for TensorFlow 2.14 com CUDA 11.8 incluem contêineres para treinamento em GPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [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 | 

## Imagens programadas para depreciação
<a name="notebooks-available-images-deprecation"></a>

SageMaker A IA encerra o suporte para imagens um dia após o fim da vida útil de qualquer um dos pacotes na imagem pelo editor. As SageMaker imagens a seguir estão programadas para serem descontinuadas. 

As imagens baseadas no Python 3.8 chegaram [end-of-life](https://endoflife.date/python)em 31 de outubro de 2024. A partir de 1º de novembro de 2024, a SageMaker IA interromperá o suporte para essas imagens e elas não poderão ser selecionadas na interface do usuário do Studio Classic. Para evitar problemas de não conformidade, se você estiver usando qualquer uma dessas imagens, recomendamos que você mude para uma imagem com uma versão posterior.

SageMaker imagens programadas para descontinuação


| SageMaker Imagem | Data da substituição | Description | Identificador do recurso | Kernels | Versão do Python | 
| --- | --- | --- | --- | --- | --- | 
| SageMaker CPU de distribuição v0.12 | 1.º de novembro de 2024 | SageMaker Distribution v0 CPU é uma imagem do Python 3.8 que inclui frameworks mais conhecidos para machine learning, ciência de dados e visualização na CPU. Isso inclui estruturas de aprendizado profundo como PyTorch, TensorFlow e Keras; pacotes Python populares como numpy, scikit-learn e pandas; e como o Jupyter Lab. IDEs Para obter mais informações, consulte o repositório [Amazon SageMaker AI Distribution](https://github.com/aws/sagemaker-distribution).  | sagemaker-distribution-cpu-v0 | Python 3 (python3) | Python 3.8 | 
| SageMaker GPU de distribuição v0.12 | 1.º de novembro de 2024 | SageMaker Distribution v0 GPU é uma imagem do Python 3.8 que inclui frameworks conhecidos para machine learning, ciência de dados e visualização na GPU. Isso inclui estruturas de aprendizado profundo como PyTorch, TensorFlow e Keras; pacotes Python populares como numpy, scikit-learn e pandas; e como o Jupyter Lab. IDEs Para obter mais informações, consulte o repositório [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.º de novembro de 2024 | Imagem oficial do Python 3.8 DockerHub com boto3 e incluída. AWS CLI  | sagemaker-base-python-38 | Python 3 (python3) | Python 3.8 | 
| Data Science 2.0 | 1.º de novembro de 2024 | Data Science 2.0 é uma imagem [conda](https://docs.conda.io/projects/conda/en/latest/index.html) do Python 3.8 baseada no Ubuntu versão 22.04. Ele inclui os pacotes e bibliotecas Python mais usados, como NumPy o Learn. SciKit  | sagemaker-data-science-38 | Python 3 (python3) | Python 3.8 | 
| PyTorch 1.13 Python 3.9 Otimizado para CPU | 1.º de novembro de 2024 | Os AWS Deep Learning Containers for PyTorch 1.13 com CUDA 11.3 incluem contêineres para treinamento em CPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [Notas da versão dos Contêineres de aprendizado profundo](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 Otimizado para GPU | 1.º de novembro de 2024 | Os AWS Deep Learning Containers for PyTorch 1.13 com CUDA 11.7 incluem contêineres para treinamento em GPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [Notas da versão dos Contêineres de aprendizado profundo](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 Otimizado para CPU | 1.º de novembro de 2024 | Os AWS Deep Learning Containers for PyTorch 1.12 com CUDA 11.3 incluem contêineres para treinamento em CPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [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 Python 3.8 Otimizado para GPU | 1.º de novembro de 2024 | Os AWS Deep Learning Containers for PyTorch 1.12 com CUDA 11.3 incluem contêineres para treinamento em GPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [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 Otimizado para CPU | 1.º de novembro de 2024 | Os AWS Deep Learning Containers for PyTorch 1.10 incluem contêineres para treinamento em CPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [AWS Deep Learning Containers for PyTorch 1.10.2 em SageMaker IA](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-for-pytorch-1-10-2-on-sagemaker/). | pytorch-1.10-cpu-py38 | Python 3 (python3) | Python 3.8 | 
| PyTorch 1.10 Python 3.8 Otimizado para GPU | 1.º de novembro de 2024 | Os AWS Deep Learning Containers for PyTorch 1.10 com CUDA 11.3 incluem contêineres para treinamento em GPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [AWS Deep Learning Containers for PyTorch 1.10.2 em SageMaker IA](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-for-pytorch-1-10-2-on-sagemaker/). | pytorch-1.10-gpu-py38 | Python 3 (python3) | Python 3.8 | 
| SparkAnalytics 1,0 | 1.º de novembro de 2024 | Edição individual Anaconda com grãos PySpark Spark. Para obter mais informações, consulte [sparkmagic](https://github.com/jupyter-incubator/sparkmagic). | sagemaker-sparkanalytics-v1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/notebooks-available-images.html)  | Python 3.8 | 
| TensorFlow 2.13.0 Python 3.10 Otimizado para CPU | 1.º de novembro de 2024 | Os AWS Deep Learning Containers for TensorFlow 2.13 com CUDA 11.8 incluem contêineres para treinamento em CPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [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 Otimizado para GPU | 1.º de novembro de 2024 | Os AWS Deep Learning Containers for TensorFlow 2.13 com CUDA 11.8 incluem contêineres para treinamento em GPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [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 Otimizado para CPU | 1.º de novembro de 2024 | Os AWS Deep Learning Containers for TensorFlow 2.6 incluem contêineres para treinamento em CPU, otimizados para desempenho e escalabilidade AWS. Para obter mais informações, consulte [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 Otimizado para GPU | 1.º de novembro de 2024 | Os AWS Deep Learning Containers for TensorFlow 2.6 com CUDA 11.2 incluem contêineres para treinamento em GPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [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 Otimizado para CPU | 1.º de novembro de 2024 | Os AWS Deep Learning Containers for PyTorch 2.0.1 com CUDA 12.1 incluem contêineres para treinamento em CPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [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 Otimizado para GPU | 1.º de novembro de 2024 | Os AWS Deep Learning Containers for PyTorch 2.0.1 com CUDA 12.1 incluem contêineres para treinamento em GPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [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 Otimizado para CPU | 1.º de novembro de 2024 | Os AWS Deep Learning Containers para PyTorch 2.0.0 incluem contêineres para treinamento em CPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [Notas da versão dos Contêineres de aprendizado profundo](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 Otimizado para GPU | 1.º de novembro de 2024 | Os AWS Deep Learning Containers para PyTorch 2.0.0 com CUDA 11.8 incluem contêineres para treinamento em GPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [Notas da versão dos Contêineres de aprendizado profundo](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 Otimizado para CPU | 1.º de novembro de 2024 | Os AWS Deep Learning Containers para TensorFlow 2.12.0 com CUDA 11.2 incluem contêineres para treinamento em CPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [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 Otimizado para GPU | 1.º de novembro de 2024 | Os AWS Deep Learning Containers para TensorFlow 2.12.0 com CUDA 11.8 incluem contêineres para treinamento em GPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [Notas da versão dos Contêineres de aprendizado profundo](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 Otimizado para CPU | 1.º de novembro de 2024 | Os AWS Deep Learning Containers para TensorFlow 2.11.0 com CUDA 11.2 incluem contêineres para treinamento em CPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [Notas da versão dos Contêineres de aprendizado profundo](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 Otimizado para GPU | 1.º de novembro de 2024 | Os AWS Deep Learning Containers para TensorFlow 2.11.0 com CUDA 11.2 incluem contêineres para treinamento em GPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [Notas da versão dos Contêineres de aprendizado profundo](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 Otimizado para CPU | 1.º de novembro de 2024 | Os AWS Deep Learning Containers for TensorFlow 2.10 com CUDA 11.2 incluem contêineres para treinamento em CPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [Notas da versão dos Contêineres de aprendizado profundo](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 Otimizado para GPU | 1.º de novembro de 2024 | Os AWS Deep Learning Containers for TensorFlow 2.10 com CUDA 11.2 incluem contêineres para treinamento em GPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [Notas da versão dos Contêineres de aprendizado profundo](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 | 

## Imagens obsoletas
<a name="notebooks-available-images-deprecated"></a>

SageMaker A IA encerrou o suporte para as imagens a seguir. A descontinuação ocorre um dia após o fim da vida útil de qualquer um dos pacotes na imagem pelo publicador.

SageMaker imagens programadas para descontinuação


| SageMaker Imagem | Data da substituição | Description | Identificador do recurso | Kernels | Versão do Python | 
| --- | --- | --- | --- | --- | --- | 
| Ciência de dados | 30 de outubro de 2023 | Data Science é uma imagem [conda](https://docs.conda.io/projects/conda/en/latest/index.html) do Python 3.7 com os pacotes e bibliotecas Python mais usados, como o Learn. NumPy SciKit  | datascience-1.0 | Python 3 | Python 3.7 | 
| SageMaker JumpStart Ciência de dados 1.0 | 30 de outubro de 2023 | SageMaker JumpStart O Data Science 1.0 é uma JumpStart imagem que inclui pacotes e bibliotecas comumente usados. | sagemaker-jumpstart-data-science-1,0 | Python 3 | Python 3.7 | 
| SageMaker JumpStart MXNet 1,0 | 30 de outubro de 2023 | SageMaker JumpStart MXNet 1.0 é uma JumpStart imagem que inclui MXNet. | sagemaker-jumpstart-mxnet-1,0 | Python 3 | Python 3.7 | 
| SageMaker JumpStart PyTorch 1,0 | 30 de outubro de 2023 | SageMaker JumpStart PyTorch 1.0 é uma JumpStart imagem que inclui PyTorch. | sagemaker-jumpstart-pytorch-1,0 | Python 3 | Python 3.7 | 
| SageMaker JumpStart TensorFlow 1,0 | 30 de outubro de 2023 | SageMaker JumpStart TensorFlow 1.0 é uma JumpStart imagem que inclui TensorFlow. | sagemaker-jumpstart-tensorflow-1,0 | Python 3 | Python 3.7 | 
| SparkMagic | 30 de outubro de 2023 | Edição individual Anaconda com grãos PySpark Spark. Para obter mais informações, consulte [sparkmagic](https://github.com/jupyter-incubator/sparkmagic). | sagemaker-sparkmagic |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/notebooks-available-images.html)  | Python 3.7 | 
| TensorFlow 2.3 Python 3.7 Otimizado para CPU | 30 de outubro de 2023 | Os AWS Deep Learning Containers for TensorFlow 2.3 incluem contêineres para treinamento em CPU, otimizados para desempenho e escalabilidade AWS. Para obter mais informações, consulte [AWS Deep Learning Containers com 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 Otimizado para GPU | 30 de outubro de 2023 | Os AWS Deep Learning Containers for TensorFlow 2.3 com CUDA 11.0 incluem contêineres para treinamento em GPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [AWS Deep Learning Containers for TensorFlow 2.3.1 com 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 Otimizado para CPU | 30 de outubro de 2023 | Os AWS Deep Learning Containers for TensorFlow 1.15 incluem contêineres para treinamento em CPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [AWS Deep Learning Containers v7.0](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-v7-0-for-tensorflow/) for. TensorFlow | tensorflow-1.15-cpu-py37-ubuntu18.04-v7 | Python 3 | Python 3.7 | 
| TensorFlow 1.15 Python 3.7 Otimizado para GPU | 30 de outubro de 2023 | Os AWS Deep Learning Containers for TensorFlow 1.15 com CUDA 11.0 incluem contêineres para treinamento em GPU, otimizados para desempenho e escalabilidade. AWS Para obter mais informações, consulte [AWS Deep Learning Containers v7.0](https://aws.amazon.com/releasenotes/aws-deep-learning-containers-v7-0-for-tensorflow/) for. TensorFlow | tensorflow-1.15-gpu-py37-cu110-ubuntu18.04-v8 | Python 3 | Python 3.7 | 

# Personalize o Amazon SageMaker Studio Classic
<a name="studio-customize"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Há quatro opções para personalizar seu ambiente Amazon SageMaker Studio Classic. Você traz sua própria SageMaker imagem, usa um script de configuração do ciclo de vida, anexa repositórios Git sugeridos ao Studio Classic ou cria kernels usando ambientes persistentes do Conda no Amazon EFS. Use cada opção individualmente ou em conjunto. 
+ **Traga sua própria SageMaker imagem:** uma SageMaker imagem é um arquivo que identifica os kernels, pacotes de idiomas e outras dependências necessárias para executar um notebook Jupyter no Amazon Studio Classic. SageMaker A Amazon SageMaker AI fornece muitas imagens integradas para você usar. Se precisar de uma funcionalidade diferente, você pode trazer suas próprias imagens personalizadas para o Studio.
+ **Use configurações de ciclo de vida com o Amazon SageMaker Studio Classic:** as configurações de ciclo de vida são scripts de shell acionados por eventos do ciclo de vida do Amazon SageMaker Studio Classic, como iniciar um novo notebook Studio Classic. Você pode usar configurações de ciclo de vida para automatizar a personalização do seu ambiente Studio. Por exemplo, você pode instalar pacotes personalizados, configurar extensões de caderno, pré-carregar conjuntos de dados e configurar repositórios de código-fonte.
+ **Anexe repositórios Git sugeridos ao Studio Classic:** você pode anexar um repositório Git sugerido no nível do domínio URLs do Amazon SageMaker AI ou do perfil do usuário. Em seguida, você pode selecionar o URL do repositório na lista de sugestões e cloná-lo em seu ambiente usando a extensão Git no Studio. 
+ **Ambientes Conda persistentes para o volume Studio Classic Amazon EFS:** o Studio usa um volume do Amazon EFS como uma camada de armazenamento persistente. Você pode salvar seu ambiente Conda nesse volume do Amazon EFS e, em seguida, usar o ambiente salvo para criar kernels. O Studio Classic seleciona automaticamente todos os ambientes válidos salvos no Amazon EFS como KernelGateway kernels. Esses kernels persistem até a reinicialização do kernel, da aplicação e do Studio Classic. Para obter mais informações, consulte a seção **Ambientes Persist Conda para o volume EFS do Studio** Classic em [Quatro abordagens para gerenciar pacotes Python em notebooks Amazon SageMaker ](https://aws.amazon.com/blogs/machine-learning/four-approaches-to-manage-python-packages-in-amazon-sagemaker-studio-notebooks/) Studio Classic.

Os tópicos a seguir mostram como usar essas três opções para personalizar seu ambiente Amazon SageMaker Studio Classic.

**Topics**
+ [Imagens personalizadas no Amazon SageMaker Studio Classic](studio-byoi.md)
+ [Use configurações de ciclo de vida para personalizar o Amazon Studio Classic SageMaker](studio-lcc.md)
+ [Anexe repositórios Git sugeridos ao Amazon Studio Classic SageMaker](studio-git-attach.md)

# Imagens personalizadas no Amazon SageMaker Studio Classic
<a name="studio-byoi"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Uma SageMaker imagem é um arquivo que identifica os kernels, pacotes de idiomas e outras dependências necessárias para executar um notebook Jupyter no Amazon Studio Classic. SageMaker Essas imagens são usadas para criar um ambiente a partir do qual você executa os cadernos Jupyter. A Amazon SageMaker AI fornece muitas imagens integradas para você usar. Para ver a lista de imagens integradas, consulte [SageMaker Imagens da Amazon disponíveis para uso com notebooks Studio Classic](notebooks-available-images.md).

Se precisar de uma funcionalidade diferente, você pode trazer suas próprias imagens personalizadas para o Studio. Você pode criar imagens e versões de imagens e anexar versões de imagem ao seu domínio ou espaço compartilhado usando o painel de controle de SageMaker IA [AWS SDK para Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html), o e o [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/). Você também pode criar imagens e versões de imagens usando o console de SageMaker IA, mesmo que não tenha se integrado a um domínio de SageMaker IA. SageMaker A IA fornece exemplos de Dockerfiles para usar como ponto de partida para suas SageMaker imagens personalizadas no repositório [SageMaker Studio Classic Custom Image Samples](https://github.com/aws-samples/sagemaker-studio-custom-image-samples/).

Os tópicos a seguir explicam como trazer sua própria imagem usando o console de SageMaker IA ou AWS CLI, em seguida, iniciar a imagem no Studio Classic. Para um artigo de blog semelhante, consulte [Trazendo seu próprio ambiente de R para o Amazon SageMaker Studio Classic](https://aws.amazon.com/blogs/machine-learning/bringing-your-own-r-environment-to-amazon-sagemaker-studio/). Para cadernos que mostram como trazer sua própria imagem para uso em treinamento e inferência, consulte [Amazon SageMaker Studio Classic Container Build CLI](https://github.com/aws/amazon-sagemaker-examples/tree/main/aws_sagemaker_studio/sagemaker_studio_image_build).

## Terminologia básica
<a name="studio-byoi-basics"></a>

A seção a seguir define os principais termos para usar sua própria imagem com o Studio Classic.
+ **Dockerfile:** um Dockerfile é um arquivo que identifica os pacotes de idiomas e outras dependências da sua imagem do Docker.
+ **Imagem do Docker:** a imagem do Docker é um Dockerfile embutido. Essa imagem é verificada no Amazon ECR e serve como base para a imagem de SageMaker IA.
+ **SageMaker imagem:** uma SageMaker imagem é um suporte para um conjunto de versões de imagens de SageMaker IA com base em imagens do Docker. Cada versão da imagem é imutável.
+ **Versão da imagem:** uma versão de imagem de uma SageMaker imagem representa uma imagem do Docker e é armazenada em um repositório Amazon ECR. Cada versão da imagem é imutável. Essas versões da imagem podem ser anexadas a um domínio ou espaço compartilhado e usadas com o Studio Classic.

**Topics**
+ [Terminologia básica](#studio-byoi-basics)
+ [Especificações de SageMaker imagem personalizadas para o Amazon SageMaker Studio Classic](studio-byoi-specs.md)
+ [Pré-requisitos para imagens personalizadas no Amazon Studio Classic SageMaker](studio-byoi-prereq.md)
+ [Adicione uma imagem do Docker compatível com o Amazon SageMaker Studio Classic ao Amazon ECR](studio-byoi-sdk-add-container-image.md)
+ [Crie uma SageMaker imagem personalizada para o Amazon SageMaker Studio Classic](studio-byoi-create.md)
+ [Anexe uma SageMaker imagem personalizada no Amazon SageMaker Studio Classic](studio-byoi-attach.md)
+ [Inicie uma SageMaker imagem personalizada no Amazon SageMaker Studio Classic](studio-byoi-launch.md)
+ [Limpe os recursos para imagens personalizadas no Amazon SageMaker Studio Classic](studio-byoi-cleanup.md)

# Especificações de SageMaker imagem personalizadas para o Amazon SageMaker Studio Classic
<a name="studio-byoi-specs"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

As especificações a seguir se aplicam à imagem do contêiner representada por uma versão de imagem de SageMaker IA.

**Executando a imagem**  
`ENTRYPOINT`e `CMD` as instruções são substituídas para permitir que a imagem seja executada como um KernelGateway aplicativo.  
A porta 8888 na imagem está reservada para executar o servidor KernelGateway web.

**Interrompendo a imagem**  
A API `DeleteApp` emite o equivalente a um comando `docker stop`. Outros processos no contêiner não receberão os SIGKILL/SIGTERM sinais.

**Descoberta do kernel**  
SageMaker [A IA reconhece os kernels conforme definido pelas especificações do kernel do Jupyter.](https://jupyter-client.readthedocs.io/en/latest/kernels.html#kernelspecs)  
Você pode especificar uma lista de kernels a serem exibidos antes de executar a imagem. Se não for especificado, python3 será exibido. Use a [DescribeAppImageConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAppImageConfig.html)API para ver a lista de kernels.  
Os ambientes Conda são reconhecidos como especificações do kernel por padrão. 

**Sistema de arquivos**  
Os diretórios `/opt/.sagemakerinternal` e `/opt/ml` são reservados. Qualquer dado nesses diretórios pode não estar visível em runtime.

**Dados do usuário**  
Cada usuário em um domínio obtém um diretório de usuários em um volume compartilhado do Amazon Elastic File System na imagem. O local do diretório do usuário atual no volume do Amazon EFS é configurável. Por padrão, o local do diretório é `/home/sagemaker-user`.  
SageMaker O AI configura UID/GID mapeamentos POSIX entre a imagem e o host. O padrão é mapear o usuário root UID/GID (0/0) para o UID/GID no host.  
Você pode especificar esses valores usando a [CreateAppImageConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAppImageConfig.html)API.

**Limites de GID/UID**  
O Amazon SageMaker Studio Classic só oferece suporte ao seguinte `DefaultUID` e às `DefaultGID` combinações a seguir:   
+  DefaultUID: 1000 e DefaultGID: 100, que corresponde a um usuário sem privilégios.
+  DefaultUID: 0 e DefaultGID: 0, que corresponde ao acesso raiz.

**Metadados**  
Um arquivo de metadados está localizado em `/opt/ml/metadata/resource-metadata.json`. Nenhuma variável de ambiente adicional é incluída às variáveis definidas na imagem. Para obter mais informações, consulte [Obter metadados da aplicação](notebooks-run-and-manage-metadata.md#notebooks-run-and-manage-metadata-app).

**GPU**  
Em uma instância de GPU, a imagem é executada com a opção `--gpus`. Somente o kit de ferramentas CUDA deve ser incluído na imagem, não os drivers da NVIDIA. Para obter mais informações, consulte o [Guia do usuário do NVIDIA](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/user-guide.html).

**Métricas e registro em log**  
Os registros do KernelGateway processo são enviados para a Amazon CloudWatch na conta do cliente. O nome do grupo de logs é `/aws/sagemaker/studio`. O nome do fluxo de logs é `$domainID/$userProfileName/KernelGateway/$appName`.

**Tamanho da imagem**  
Limitado a 35 GB. Para ver o tamanho da sua imagem, execute `docker image ls`.  


## Exemplo de Dockerfile
<a name="studio-byoi-specs-sample"></a>

O exemplo de Dockerfile a seguir cria uma imagem baseada no Amazon Linux 2, instala pacotes de terceiros e o `python3` kernel e define o escopo para o usuário não privilegiado.

```
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}
```

# Pré-requisitos para imagens personalizadas no Amazon Studio Classic SageMaker
<a name="studio-byoi-prereq"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Você deve atender aos seguintes pré-requisitos para trazer seu próprio contêiner para uso com o Amazon SageMaker Studio Classic.
+ A aplicação do Docker. Para obter informações sobre como configurar o Docker, consulte [Orientação e configuração](https://docs.docker.com/get-started/).
+ Instale o AWS CLI seguindo as etapas em [Introdução ao AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html).
+ Uma cópia local de qualquer Dockerfile para criar uma imagem compatível com o Studio Classic. Para exemplos de imagens personalizadas, consulte o repositório de [amostras de imagens personalizadas do SageMaker AI Studio Classic](https://github.com/aws-samples/sagemaker-studio-custom-image-samples/).
+ Permissões de acesso ao serviço Amazon Elastic Container Registry (Amazon ECR). Para obter mais informações, consulte [Políticas gerenciadas do Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ecr_managed_policies.html).
+ Uma função AWS Identity and Access Management de execução que tem a [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)política anexada. Se você se integrou ao domínio Amazon SageMaker AI, pode obter a função na seção **Resumo do domínio** do painel de controle de SageMaker IA.
+ Instale a CLI de criação de imagem do Studio Classic seguindo as etapas no [SageMaker Docker](https://github.com/aws-samples/sagemaker-studio-image-build-cli) Build. Essa CLI permite que você crie um Dockerfile usando o. AWS CodeBuild

# Adicione uma imagem do Docker compatível com o Amazon SageMaker Studio Classic ao Amazon ECR
<a name="studio-byoi-sdk-add-container-image"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Você executa as seguintes etapas para adicionar uma imagem de contêiner ao Amazon ECR:
+ Crie um repositório do Amazon ECR.
+ Autentique no Amazon ECR.
+ Crie uma imagem do Docker compatível com o Studio Classic.
+ Empurre a imagem para o repositório do Amazon ECR.

**nota**  
O repositório Amazon ECR deve estar no mesmo repositório do Studio Região da AWS Classic.

**Para criar e adicionar uma imagem de contêiner ao Amazon ECR**

1. Crie um repositório do Amazon ECR usando a AWS CLI. Para criar o repositório usando o console do Amazon ECR, consulte [Criação de um repositório](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-create.html).

   ```
   aws ecr create-repository \
       --repository-name smstudio-custom \
       --image-scanning-configuration scanOnPush=true
   ```

   A resposta deve ser semelhante ao seguinte:

   ```
   {
       "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. Crie o `Dockerfile` usando a CLI de criação de imagem do Studio. O ponto (.) especifica que o Dockerfile deve estar no contexto do comando de compilação. Esse comando cria a imagem e carrega a imagem criada no repositório ECR. Em seguida, ele gera o URI da imagem.

   ```
   sm-docker build . --repository smstudio-custom:custom
   ```

   A resposta deve ser semelhante ao seguinte:

   ```
   Image URI: <acct-id>.dkr.ecr.<region>.amazonaws.com/<image_name>
   ```

# Crie uma SageMaker imagem personalizada para o Amazon SageMaker Studio Classic
<a name="studio-byoi-create"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Este tópico descreve como você pode criar uma SageMaker imagem personalizada usando o console SageMaker AI ou AWS CLI.

Quando você cria uma imagem no console, a SageMaker IA também cria uma versão inicial da imagem. A versão da imagem representa uma imagem de contêiner no [Registro de contêiner Amazon Elastic Container Registry (ECR)](https://console.aws.amazon.com/ecr/). A imagem do contêiner deve atender aos requisitos para ser usada no Amazon SageMaker Studio Classic. Para obter mais informações, consulte [Especificações de SageMaker imagem personalizadas para o Amazon SageMaker Studio Classic](studio-byoi-specs.md). Para obter informações sobre como testar sua imagem localmente e resolver problemas comuns, consulte o repositório [SageMaker Studio Classic Custom Image Samples](https://github.com/aws-samples/sagemaker-studio-custom-image-samples/blob/main/DEVELOPMENT.md).

Depois de criar sua SageMaker imagem personalizada, você deve anexá-la ao seu domínio ou espaço compartilhado para usá-la com o Studio Classic. Para obter mais informações, consulte [Anexe uma SageMaker imagem personalizada no Amazon SageMaker Studio Classic](studio-byoi-attach.md).

## Crie uma SageMaker imagem a partir do console
<a name="studio-byoi-create-console"></a>

A seção a seguir demonstra como criar uma SageMaker imagem personalizada no console de SageMaker IA.

**Criar uma imagem**

1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Imagens**. 

1. Na página **Imagens personalizadas**, escolha **Criar imagem**.

1. Em **Fonte da imagem**, insira o caminho do registro para a imagem de contêiner no Amazon ECR. O caminho é tem o seguinte formato:

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

1. Escolha **Próximo**.

1. Em **Propriedades da imagem**, insira o seguinte:
   + Nome da imagem: O nome deve ser exclusivo para a sua conta Região da AWS atual.
   + (Opcional) Nome de exibição: O nome exibido na interface de usuário do Studio Classic. Quando não fornecido, `Image name` é exibido.
   + (Opcional) Descrição: uma descrição da imagem.
   + Função do IAM — A função deve ter a [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)política anexada. Use a lista suspensa para escolher uma das seguintes opções:
     + Criar um novo perfil: Especifique quaisquer buckets adicionais do Amazon Simple Storage Service (Amazon S3) aos quais você deseja que os usuários dos cadernos tenham acesso. Se não quiser permitir acesso a buckets adicionais, escolha **Nenhum**.

       SageMaker A IA atribui a `AmazonSageMakerFullAccess` política à função. A função permite que os usuários de seus cadernos tenham acesso aos buckets do S3 listados ao lado das marcas de seleção.
     + Insira um ARN do perfil do IAM personalizado: Insira o nome do recurso da Amazon (ARN) da perfil do IAM.
     + Uso da função existente: Escolha uma das suas funções existentes na lista.
   + (Opcional) Tags de imagem: Escolha **Adicionar nova tag**. É possível adicionar até 50 tags. As tags podem ser pesquisadas usando a interface de usuário do Studio Classic, o console de SageMaker IA ou a `Search` API de SageMaker IA.

1. Escolha **Enviar**.

A nova imagem é exibida na lista de **imagens personalizadas** e destacada brevemente. Depois que a imagem for criada com êxito, você poderá escolher o nome da imagem para ver suas propriedades ou escolher **Criar versão** para criar outra versão.

**Para criar outra versão da imagem**

1. Escolha **Criar versão** na mesma linha da imagem.

1. Em **Fonte da imagem**, insira o caminho do registro para a imagem do contêiner no Amazon ECR. A imagem do contêiner não deve ser a mesma usada em uma versão anterior da SageMaker imagem.

## Crie uma SageMaker imagem a partir do AWS CLI
<a name="studio-byoi-sdk-create-image"></a>

Você executa as etapas a seguir para criar uma SageMaker imagem a partir da imagem do contêiner usando AWS CLI o.
+ Crie uma `Image`.
+ Crie uma `ImageVersion`.
+ Criar um arquivo de configuração.
+ Crie uma `AppImageConfig`.

**Para criar as entidades SageMaker de imagem**

1. Crie uma SageMaker imagem.

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

   A resposta deve ser semelhante ao seguinte:

   ```
   {
       "ImageArn": "arn:aws:sagemaker:us-east-2:acct-id:image/custom-image"
   }
   ```

1. Crie uma versão de SageMaker imagem a partir da imagem do contêiner.

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

   A resposta deve ser semelhante ao seguinte:

   ```
   {
       "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/custom-image/1"
   }
   ```

1. Verifique se a versão da imagem foi criada com sucesso.

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

   A resposta deve ser semelhante ao seguinte:

   ```
   {
       "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/custom-image/1",
       "ImageVersionStatus": "CREATED"
   }
   ```
**nota**  
Se a resposta for `"ImageVersionStatus": "CREATED_FAILED"`, ela também incluirá o motivo da falha. Um problema de permissão é uma causa comum de falha. Você também pode verificar seus CloudWatch registros da Amazon se tiver uma falha ao iniciar ou executar o KernelGateway aplicativo para obter uma imagem personalizada. O nome do grupo de logs é `/aws/sagemaker/studio`. O nome do fluxo de logs é `$domainID/$userProfileName/KernelGateway/$appName`.

1. Crie um arquivo de configuração denominado `app-image-config-input.json`. O valor `Name` de `KernelSpecs` deve corresponder ao nome do KernelSpec disponível na imagem associada a esse `AppImageConfig`. Esse valor diferencia maiúsculas de minúsculas. Você pode encontrar os KernelSpecs disponíveis em uma imagem executando `jupyter-kernelspec list` partir de um shell dentro do contêiner. `MountPath` é o caminho dentro da imagem para montar seu diretório inicial do Amazon Elastic File System (Amazon EFS). Ele precisa ser diferente do caminho que você usa dentro do contêiner porque esse caminho será substituído quando seu diretório inicial do Amazon EFS for montado.
**nota**  
Os seguintes valores `DefaultUID` e `DefaultGID` as combinações são os únicos valores aceitos:   
 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. Crie o AppImageConfig usando o arquivo criado na etapa anterior.

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

   A resposta deve ser semelhante ao seguinte:

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

# Anexe uma SageMaker imagem personalizada no Amazon SageMaker Studio Classic
<a name="studio-byoi-attach"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Para usar uma SageMaker imagem personalizada, você deve anexar uma versão da imagem ao seu domínio ou espaço compartilhado. Quando você anexa uma versão de imagem, ela aparece no SageMaker Studio Classic Launcher e está disponível na lista suspensa **Selecionar imagem**, que os usuários usam para iniciar uma atividade ou alterar a imagem usada por um notebook.

Para disponibilizar uma SageMaker imagem personalizada para todos os usuários em um domínio, você anexa a imagem ao domínio. Para disponibilizar uma imagem para todos os usuários em um espaço compartilhado, você pode anexar a imagem ao espaço compartilhado. Para disponibilizar uma imagem para um único usuário, você anexa a imagem ao perfil do usuário. Quando você anexa uma imagem, a SageMaker IA usa a versão mais recente da imagem por padrão. Você também pode anexar uma versão específica da imagem. Depois de anexar a versão, você pode escolher a versão no SageMaker AI Launcher ou no seletor de imagens ao iniciar um notebook.

Há um limite para o número de versões de imagem que podem ser anexadas a qualquer momento. Depois de atingir o limite, você deve desanexar uma versão para anexar outra versão da imagem.

As seções a seguir demonstram como anexar uma SageMaker imagem personalizada ao seu domínio usando o console de SageMaker IA ou AWS CLI o. Você só pode anexar uma imagem personalizada a um espaço compartilhado usando o AWS CLI.

## Anexar a SageMaker imagem a um domínio
<a name="studio-byoi-attach-domain"></a>

### Anexe a SageMaker imagem usando o console
<a name="studio-byoi-attach-existing"></a>

Este tópico descreve como você pode anexar uma versão de SageMaker imagem personalizada existente ao seu domínio usando o painel de controle do SageMaker AI. Você também pode criar uma SageMaker imagem personalizada e uma versão da imagem e, em seguida, anexar essa versão ao seu domínio. Para obter o procedimento para criar uma imagem e uma versão da imagem, consulte [Crie uma SageMaker imagem personalizada para o Amazon SageMaker Studio Classic](studio-byoi-create.md).

**Para anexar uma imagem existente**

1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Na página **Domínios**, selecione o Domínio ao qual anexar a imagem.

1. Na página de **Detalhes do domínio**, selecione a guia de **Ambiente**.

1. Na guia **Ambiente**, em **Imagens personalizadas do SageMaker Studio Classic anexadas ao domínio**, escolha **Anexar imagem**.

1. Em **Fonte da imagem**, escolha **Imagem existente**.

1. Escolha uma imagem existente na lista.

1. Escolha uma versão da imagem na lista.

1. Escolha **Próximo**.

1. Verifique os valores para **Nome da imagem**, **Nome de exibição da imagem** e **Descrição**.

1. Escolha o Perfil do IAM. Para obter mais informações, consulte [Crie uma SageMaker imagem personalizada para o Amazon SageMaker Studio Classic](studio-byoi-create.md).

1. (Opcional) Adicione tags para a imagem.

1. Especifique o caminho de montagem do EFS. Esse é o caminho dentro da imagem para montar o diretório inicial do Amazon Elastic File System (EFS) do usuário.

1. Em **Tipo de imagem**, selecione **Imagem de SageMaker estúdio**

1. Em **Nome do kernel**, insira o nome de um kernel existente na imagem. Para obter informações sobre como obter as informações do kernel da imagem, consulte [DEVELOPMENT](https://github.com/aws-samples/sagemaker-studio-custom-image-samples/blob/main/DEVELOPMENT.md) no repositório SageMaker Studio Classic Custom Image Samples. Para obter mais informações, consulte as seções **Descoberta do kernel** e **Dados do usuário** do [Especificações de SageMaker imagem personalizadas para o Amazon SageMaker Studio Classic](studio-byoi-specs.md).

1. (Opcional) Em **Nome de exibição do kernel**, insira o nome de exibição do kernel.

1. Escolha **Adicionar kernel**.

1. Escolha **Enviar**. 

   1. Aguarde até que a versão da imagem seja anexada ao domínio. Quando anexada, a versão é exibida na lista de **imagens personalizadas** e destacada brevemente.

### Anexe a SageMaker imagem usando o AWS CLI
<a name="studio-byoi-sdk-attach"></a>

As seções a seguir demonstram como anexar uma SageMaker imagem personalizada ao criar um novo domínio ou atualizar seu domínio existente usando AWS CLI o.

#### Anexar a SageMaker imagem a um novo domínio
<a name="studio-byoi-sdk-attach-new-domain"></a>

A seção a seguir demonstra como criar um novo domínio com a versão anexada. Estas etapas exigem que você especifique as informações e a função de execução da Nuvem privada virtual (VPC) da Amazon necessária para criar o domínio. Você executa as etapas a seguir para criar o domínio e anexar a SageMaker imagem personalizada:
+ Obtenha seu ID de VPC e sub-rede padrão. IDs
+ Crie o arquivo de configuração para o domínio, que especifica a imagem.
+ Crie um domínio com o arquivo de configuração.

**Para adicionar a SageMaker imagem personalizada ao seu domínio**

1. Obtenha seu ID de VPC padrão.

   ```
   aws ec2 describe-vpcs \
       --filters Name=isDefault,Values=true \
       --query "Vpcs[0].VpcId" --output text
   ```

   A resposta deve ser semelhante ao seguinte:

   ```
   vpc-xxxxxxxx
   ```

1. Obtenha sua sub-rede padrão IDs usando o ID da VPC da etapa anterior.

   ```
   aws ec2 describe-subnets \
       --filters Name=vpc-id,Values=<vpc-id> \
       --query "Subnets[*].SubnetId" --output json
   ```

   A resposta deve ser semelhante ao seguinte:

   ```
   [
       "subnet-b55171dd",
       "subnet-8a5f99c6",
       "subnet-e88d1392"
   ]
   ```

1. Crie um arquivo de configuração denominado `create-domain-input.json`. Insira o ID da VPC, a sub-rede IDs e `ImageName` as etapas `AppImageConfigName` anteriores. Como o `ImageVersionNumber` não está especificado, a versão mais recente da imagem é usada, que é a única versão nesse caso.

   ```
   {
       "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. Crie o domínio com a SageMaker imagem personalizada anexada.

   ```
   aws sagemaker create-domain \
       --cli-input-json file://create-domain-input.json
   ```

   A resposta deve ser semelhante ao seguinte:

   ```
   {
       "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx",
       "Url": "https://d-xxxxxxxxxxxx.studio.us-east-2.sagemaker.aws/..."
   }
   ```

#### Anexe a SageMaker imagem ao seu domínio atual
<a name="studio-byoi-sdk-attach-current-domain"></a>

Se você se integrou a um domínio de SageMaker IA, pode anexar a imagem personalizada ao seu domínio atual. Para obter mais informações sobre a integração em um domínio de SageMaker IA, consulte[Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md). Você não precisa especificar as informações sobre a VPC e o perfil de execução ao anexar uma imagem personalizada ao seu domínio atual. Depois de anexar a versão, você deve excluir todos as aplicações em seu domínio e reabrir o Studio Classic. Para obter informações sobre como excluir aplicações, consulte [Excluir um domínio da Amazon SageMaker AI](gs-studio-delete-domain.md).

Você executa as etapas a seguir para adicionar a SageMaker imagem ao seu domínio atual.
+ Obtenha seu `DomainID` do painel de controle SageMaker AI.
+ Use o `DomainID` para obter o `DefaultUserSettings` para o domínio.
+ Adicione o `ImageName` e `AppImageConfig` como uma `CustomImage` ao `DefaultUserSettings`.
+ Atualize seu domínio para incluir a imagem personalizada.

**Para adicionar a SageMaker imagem personalizada ao seu domínio**

1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Na página **Domínios**, selecione o Domínio ao qual anexar a imagem.

1. Na página de **detalhes do domínio**, selecione a guia **Configurações do domínio**.

1. Na guia **Configurações do domínio**, em **Configurações gerais**, encontre o `DomainId`. O ID está no seguinte formato: `d-xxxxxxxxxxxx`.

1. Use o ID do domínio para obter a descrição do domínio.

   ```
   aws sagemaker describe-domain \
       --domain-id <d-xxxxxxxxxxxx>
   ```

   A resposta deve ser semelhante ao seguinte:

   ```
   {
       "DomainId": "d-xxxxxxxxxxxx",
       "DefaultUserSettings": {
         "KernelGatewayAppSettings": {
           "CustomImages": [
           ],
           ...
         }
       }
   }
   ```

1. Salve a seção de configurações padrão do usuário da resposta em um arquivo chamado `default-user-settings.json`.

1. Insira o `ImageName` e o `AppImageConfigName` das etapas anteriores como uma imagem personalizada. Como o `ImageVersionNumber` não está especificado, a versão mais recente da imagem é usada, que é a única versão nesse caso.

   ```
   {
       "DefaultUserSettings": {
           "KernelGatewayAppSettings": { 
              "CustomImages": [ 
                 { 
                    "ImageName": "string",
                    "AppImageConfigName": "string"
                 }
              ],
              ...
           }
       }
   }
   ```

1. Use o ID do domínio e o arquivo de configurações padrão do usuário para atualizar seu domínio.

   ```
   aws sagemaker update-domain \
       --domain-id <d-xxxxxxxxxxxx> \
       --cli-input-json file://default-user-settings.json
   ```

   A resposta deve ser semelhante ao seguinte:

   ```
   {
       "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx"
   }
   ```

## Anexe a SageMaker imagem a um espaço compartilhado
<a name="studio-byoi-attach-shared-space"></a>

Você só pode anexar a SageMaker imagem a um espaço compartilhado usando AWS CLI o. Depois de anexar a versão, você deve excluir todos as aplicações em seu espaço compartilhado e reabrir o Studio Classic. Para obter informações sobre como excluir aplicações, consulte [Excluir um domínio da Amazon SageMaker AI](gs-studio-delete-domain.md).

Você executa as etapas a seguir para adicionar a SageMaker imagem a um espaço compartilhado.
+ Obtenha seu `DomainID` do painel de controle SageMaker AI.
+ Use o `DomainID` para obter o `DefaultSpaceSettings` para o domínio.
+ Adicione o `ImageName` e `AppImageConfig` como uma `CustomImage` ao `DefaultSpaceSettings`.
+ Atualize seu domínio para incluir a imagem personalizada com o espaço compartilhado.

**Para adicionar a SageMaker imagem personalizada ao seu espaço compartilhado**

1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Na página **Domínios**, selecione o Domínio ao qual anexar a imagem.

1. Na página de **detalhes do domínio**, selecione a guia **Configurações do domínio**.

1. Na guia **Configurações do domínio**, em **Configurações gerais**, encontre o `DomainId`. O ID está no seguinte formato: `d-xxxxxxxxxxxx`.

1. Use o ID do domínio para obter a descrição do domínio.

   ```
   aws sagemaker describe-domain \
       --domain-id <d-xxxxxxxxxxxx>
   ```

   A resposta deve ser semelhante ao seguinte:

   ```
   {
       "DomainId": "d-xxxxxxxxxxxx",
       ...
       "DefaultSpaceSettings": {
         "KernelGatewayAppSettings": {
           "CustomImages": [
           ],
           ...
         }
       }
   }
   ```

1. Salve a seção de configurações padrão do espaço da resposta em um arquivo chamado `default-space-settings.json`.

1. Insira o `ImageName` e o `AppImageConfigName` das etapas anteriores como uma imagem personalizada. Como o `ImageVersionNumber` não está especificado, a versão mais recente da imagem é usada, que é a única versão nesse caso.

   ```
   {
       "DefaultSpaceSettings": {
           "KernelGatewayAppSettings": { 
              "CustomImages": [ 
                 { 
                    "ImageName": "string",
                    "AppImageConfigName": "string"
                 }
              ],
              ...
           }
       }
   }
   ```

1. Use o ID do domínio e o arquivo de configurações padrão do espaço para atualizar seu domínio.

   ```
   aws sagemaker update-domain \
       --domain-id <d-xxxxxxxxxxxx> \
       --cli-input-json file://default-space-settings.json
   ```

   A resposta deve ser semelhante ao seguinte:

   ```
   {
       "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx"
   }
   ```

## Veja a imagem anexada em SageMaker AI
<a name="studio-byoi-sdk-view"></a>

Depois de criar a SageMaker imagem personalizada e anexá-la ao seu domínio, a imagem aparece na guia **Ambiente** do domínio. Você só pode visualizar as imagens anexadas para espaços compartilhados AWS CLI usando o comando a seguir.

```
aws sagemaker describe-domain \
    --domain-id <d-xxxxxxxxxxxx>
```

# Inicie uma SageMaker imagem personalizada no Amazon SageMaker Studio Classic
<a name="studio-byoi-launch"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Depois de criar sua SageMaker imagem personalizada e anexá-la ao seu domínio ou espaço compartilhado, a imagem personalizada e o kernel aparecem nos seletores na caixa de diálogo **Alterar ambiente** do Studio Classic Launcher.

**Para executar e selecionar sua imagem personalizada e kernel**

1. No Amazon SageMaker Studio Classic, abra o Launcher. Para abrir o Launcher, escolha **Amazon SageMaker Studio Classic** no canto superior esquerdo da interface do Studio Classic ou use o atalho `Ctrl + Shift + L` de teclado.

   Para saber mais sobre todas as formas disponíveis para abrir o Inicializador, consulte [Use o Amazon SageMaker Studio Classic Launcher](studio-launcher.md).  
![\[SageMaker Lançador Studio Classic.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/studio-new-launcher.png)

1. No inicializador, na seção **Cadernos e recursos de computação**, escolha **Alterar ambiente**.

1. Na caixa de diálogo **Alterar ambiente**, use os menus suspensos para selecionar sua **imagem** na seção **Imagem personalizada** e seu **Kernel**, depois escolha **Selecionar**.

1. No Inicializador, escolha **Criar caderno** ou **Abrir terminal de imagem**. Seu caderno ou terminal é iniciado na Imagem personalizada e kernel selecionados.

Para alterar sua imagem ou kernel em um caderno aberto, consulte [Alterar a imagem ou o kernel de um notebook Amazon SageMaker Studio Classic](notebooks-run-and-manage-change-image.md).

**nota**  
Se você encontrar um erro ao iniciar a imagem, verifique seus CloudWatch registros da Amazon. O nome do grupo de logs é `/aws/sagemaker/studio`. O nome do fluxo de logs é `$domainID/$userProfileName/KernelGateway/$appName`.

# Limpe os recursos para imagens personalizadas no Amazon SageMaker Studio Classic
<a name="studio-byoi-cleanup"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

As seções a seguir mostram como limpar os recursos que você criou nas seções anteriores no console de SageMaker IA ou AWS CLI. Você executa as seguintes etapas para limpar os recursos:
+ Separe a imagem e as versões da imagem do seu domínio.
+ Exclua a imagem, a versão da imagem e a configuração da imagem da aplicação.
+ Exclua a imagem de contêiner e o repositório do Amazon ECR. Para obter mais informações, consulte [Excluir um repositório](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-delete.html).

## Limpe os recursos do console de SageMaker IA
<a name="studio-byoi-detach"></a>

A seção a seguir mostra como limpar recursos do console de SageMaker IA.

Quando você separa uma imagem de um domínio, todas as versões da imagem são separadas. Quando uma imagem é separada, todos os usuários do domínio perdem o acesso às versões da imagem. Um caderno em execução que tem uma sessão de kernel em uma versão da imagem quando a versão é desvinculada continua em execução. Quando o caderno é interrompido ou o kernel é encerrado, a versão da imagem fica indisponível.

**Para desassociar uma imagem**

1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Imagens**. 

1. Em **Imagens do Custom SageMaker Studio Classic anexadas ao domínio**, escolha a imagem e escolha **Desanexar**.

1. (Opcional) Para excluir a imagem e todas as versões do SageMaker AI, selecione **Também excluir as imagens selecionadas...** . Isso não exclui as imagens de contêiner associadas do Amazon ECR.

1. Escolha **Desassociar**.

## Limpe os recursos do AWS CLI
<a name="studio-byoi-sdk-cleanup"></a>

A seção a seguir mostra como limpar esses recursos do AWS CLI.

**Para limpar os recursos**

1. Separe a imagem e as versões da imagem do seu domínio passando uma lista vazia de imagens personalizadas para o domínio. Abra o arquivo `default-user-settings.json` que você criou em [Anexe a SageMaker imagem ao seu domínio atual](studio-byoi-attach.md#studio-byoi-sdk-attach-current-domain). Para desassociar a imagem e a versão da imagem de um espaço compartilhado, abra o arquivo `default-space-settings.json`.

1. Exclua as imagens personalizadas e salve o arquivo.

   ```
   "DefaultUserSettings": {
     "KernelGatewayAppSettings": {
        "CustomImages": [
        ],
        ...
     },
     ...
   }
   ```

1. Use o ID do domínio e o arquivo de configurações padrão do usuário para atualizar seu domínio. Para atualizar seu espaço compartilhado, use o arquivo de configurações de espaço padrão.

   ```
   aws sagemaker update-domain \
       --domain-id <d-xxxxxxxxxxxx> \
       --cli-input-json file://default-user-settings.json
   ```

   A resposta deve ser semelhante ao seguinte:

   ```
   {
       "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx"
   }
   ```

1. Exclua a configuração da imagem da aplicação.

   ```
   aws sagemaker delete-app-image-config \
       --app-image-config-name custom-image-config
   ```

1. Exclua a SageMaker imagem, o que também exclui todas as versões da imagem. As imagens de contêiner no ECR que são representadas pelas versões da imagem não são excluídas.

   ```
   aws sagemaker delete-image \
       --image-name custom-image
   ```

# Use configurações de ciclo de vida para personalizar o Amazon Studio Classic SageMaker
<a name="studio-lcc"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

O Amazon SageMaker Studio Classic aciona scripts de shell de configurações do ciclo de vida durante eventos importantes do ciclo de vida, como iniciar um novo notebook Studio Classic. Você pode usar configurações de ciclo de vida para automatizar a personalização do seu ambiente Studio. Essa personalização inclui a instalação de pacotes personalizados, a configuração de extensões do caderno, o pré-carregamento de conjuntos de dados e a configuração de repositórios de código-fonte.

O uso de configurações de ciclo de vida oferece flexibilidade e controle para configurar o Studio Classic para atender às suas necessidades específicas. Por exemplo, você pode usar imagens de contêiner personalizadas com scripts de configuração do ciclo de vida para modificar seu ambiente. Primeiro, crie um conjunto mínimo de imagens básicas de contêiner e, em seguida, instale os pacotes e bibliotecas mais usados nessas imagens. Depois de concluir suas imagens, use as configurações de ciclo de vida para instalar pacotes adicionais para casos de uso específicos. Isso oferece a flexibilidade de modificar seu ambiente em todas as equipes de ciência de dados e machine learning com base na necessidade.

Os usuários só podem selecionar scripts de configuração do ciclo de vida aos quais tenham acesso. Embora você possa dar acesso a vários scripts de configuração de ciclo de vida, você também pode definir scripts de configuração de ciclo de vida padrão para recursos. Com base no recurso para o qual a configuração padrão do ciclo de vida está definida, o padrão é executado automaticamente ou é a primeira opção mostrada.

Para ver exemplos de scripts de configuração do ciclo de vida, consulte o repositório de exemplos de configuração do [ciclo de vida do Studio Classic](https://github.com/aws-samples/sagemaker-studio-lifecycle-config-examples). GitHub Para um blog sobre a implementação da configuração do ciclo de vida, consulte Personalizar o [Amazon SageMaker Studio Classic usando configurações de ciclo de vida](https://aws.amazon.com/blogs/machine-learning/customize-amazon-sagemaker-studio-using-lifecycle-configurations/).

**nota**  
Cada script tem um limite de **16.384 caracteres**.

**Topics**
+ [Crie e associe uma configuração de ciclo de vida ao Amazon Studio Classic SageMaker](studio-lcc-create.md)
+ [Defina configurações de ciclo de vida padrão para o Amazon Studio Classic SageMaker](studio-lcc-defaults.md)
+ [Depurar configurações de ciclo de vida no Amazon Studio Classic SageMaker](studio-lcc-debug.md)
+ [Atualize e separe configurações de ciclo de vida no Amazon Studio Classic SageMaker](studio-lcc-delete.md)

# Crie e associe uma configuração de ciclo de vida ao Amazon Studio Classic SageMaker
<a name="studio-lcc-create"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

A Amazon SageMaker AI fornece aplicativos interativos que habilitam a interface visual, a criação de código e a experiência de execução do Studio Classic. Esta série mostra como criar uma configuração de ciclo de vida e associá-la a um domínio de SageMaker IA.

Os tipos de aplicações podem ser `JupyterServer` ou`KernelGateway`. 
+ **Aplicações do `JupyterServer`:** esse tipo de aplicação permite o acesso à interface visual do Studio Classic. Cada usuário e espaço compartilhado no Studio Classic recebem seu próprio JupyterServer aplicativo.
+ **Aplicações do `KernelGateway`:** esse tipo de aplicação permite o acesso ao ambiente de execução de código e aos kernels de seus cadernos e terminais do Studio Classic. Para obter mais informações, consulte [Jupyter Kernel Gateway](https://jupyter-kernel-gateway.readthedocs.io/en/latest/).

Para obter mais informações sobre a arquitetura do Studio Classic e os aplicativos do Studio Classic, consulte [Usar notebooks Amazon SageMaker Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/notebooks.html).

**Topics**
+ [Crie uma configuração de ciclo de vida a partir do para o AWS CLI Amazon Studio Classic SageMaker](studio-lcc-create-cli.md)
+ [Crie uma configuração de ciclo de vida a partir do console SageMaker AI para o Amazon Studio Classic SageMaker](studio-lcc-create-console.md)

# Crie uma configuração de ciclo de vida a partir do para o AWS CLI Amazon Studio Classic SageMaker
<a name="studio-lcc-create-cli"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

O tópico a seguir mostra como criar uma configuração de ciclo de vida usando o AWS CLI para automatizar a personalização do seu ambiente Studio Classic.

## Pré-requisitos
<a name="studio-lcc-create-cli-prerequisites"></a>

Antes de começar, conclua os seguintes pré-requisitos: 
+ Atualize o AWS CLI seguindo as etapas em [Instalando a AWS CLI versão atual](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled).
+ Em sua máquina local, execute `aws configure` e forneça suas credenciais da AWS . Para obter informações sobre AWS credenciais, consulte [Entendendo e obtendo suas AWS credenciais](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 
+ Integre-se ao domínio de SageMaker IA seguindo as etapas em[Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md).

## Etapa 1: criar uma configuração de ciclo de vida
<a name="studio-lcc-create-cli-step1"></a>

O procedimento a seguir mostra como criar um script de configuração do ciclo de vida que imprime `Hello World`.

**nota**  
Cada script pode ter até **16.384 caracteres**.

1. De sua máquina local, crie um arquivo denominado `my-script.sh` com o conteúdo a seguir.

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

1. Converter seu arquivo `my-script.sh` no formato base64. Esse requisito evita erros que ocorram devido à codificação de espaçamento e quebra de linha.

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

1. Crie uma configuração de ciclo de vida para uso com o Studio Classic. O comando a seguir cria uma configuração de ciclo de vida que é executada quando você inicia uma aplicação associada `KernelGateway`. 

   ```
   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
   ```

   Anote o ARN da configuração de ciclo de vida recém-criada que é retornada. Esse ARN é obrigatório para anexar a configuração do ciclo de vida ao seu aplicativo.

## Etapa 2: anexar a configuração do ciclo de vida ao seu domínio, perfil de usuário ou espaço compartilhado
<a name="studio-lcc-create-cli-step2"></a>

Para anexar a configuração do ciclo de vida, você deve atualizar as `UserSettings` de seu domínio ou perfil de usuário ou as `SpaceSettings` de um espaço compartilhado. Os scripts de configuração do ciclo de vida associados no nível do domínio são herdados por todos os usuários. No entanto, os scripts associados no nível do perfil do usuário têm como escopo um usuário específico, enquanto os scripts associados no nível do espaço compartilhado têm como escopo o espaço compartilhado. 

O exemplo a seguir mostra como criar um novo perfil de usuário com a configuração de ciclo de vida anexada. Você também pode criar um novo domínio ou espaço com uma configuração de ciclo de vida anexada usando os comandos [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), respectivamente.

Adicione o ARN da configuração do ciclo de vida da etapa anterior às configurações do tipo de aplicação apropriado. Por exemplo, coloque-o no `JupyterServerAppSettings` do usuário. É possível adicionar várias configurações de ciclo de vida ao mesmo tempo usando uma lista de configurações de ciclo de vida. Quando um usuário inicia um JupyterServer aplicativo com o AWS CLI, ele pode passar uma configuração de ciclo de vida para usar em vez da padrão. A configuração do ciclo de vida que o usuário passa deve pertencer à lista de configurações do ciclo de vida em `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]
  }
}'
```

O exemplo a seguir mostra como atualizar um espaço compartilhado existente para anexar a configuração de ciclo de vida. Você também pode atualizar um domínio ou perfil de usuário existente com uma configuração de ciclo de vida anexada usando o comando ou domínio [de atualização](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-domain.html). [update-user-profile](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sagemaker/update-user-profile.html) Ao atualizar a lista de configurações de ciclo de vida anexada, você deve passar todas as configurações de ciclo de vida como parte da lista. Se uma configuração de ciclo de vida não fizer parte dessa lista, ela não será anexada à aplicação.

```
aws sagemaker update-space --domain-id domain-id \
--space-name space-name \
--region region \
--space-settings '{
"JupyterServerAppSettings": {
  "LifecycleConfigArns":
    [lifecycle-configuration-arn-list]
  }
}'
```

Para obter informações sobre como definir uma configuração de ciclo de vida padrão para um recurso, consulte [Defina configurações de ciclo de vida padrão para o Amazon Studio Classic SageMaker](studio-lcc-defaults.md).

## Etapa 3: Iniciar aplicação com configuração de ciclo de vida
<a name="studio-lcc-create-cli-step3"></a>

Depois de anexar uma configuração de ciclo de vida a um domínio, perfil de usuário ou espaço, o usuário pode selecioná-la ao iniciar uma aplicação com o AWS CLI. Esta seção descreve como iniciar uma aplicação com uma configuração de ciclo de vida anexada. Para obter informações sobre como alterar a configuração padrão do ciclo de vida após iniciar um JupyterServer aplicativo, consulte. [Defina configurações de ciclo de vida padrão para o Amazon Studio Classic SageMaker](studio-lcc-defaults.md)

Inicie o tipo de aplicação desejado usando o comando `create-app` e especifique o ARN da configuração do ciclo de vida no argumento `resource-spec`. 
+ O exemplo a seguir mostra como criar uma aplicação `JupyterServer` com uma configuração do ciclo de vida associado. Ao criar o `JupyterServer`, o `app-name` deve ser `default`. O ARN da configuração do ciclo de vida passado como parte do `resource-spec` parâmetro deve fazer parte da lista de configuração do ciclo de vida ARNs especificada `UserSettings` para seu domínio ou perfil de usuário ou para um espaço compartilhado. `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
  ```
+ O exemplo a seguir mostra como criar uma aplicação `KernelGateway` com uma configuração do ciclo de vida associado.

  ```
  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
  ```

# Crie uma configuração de ciclo de vida a partir do console SageMaker AI para o Amazon Studio Classic SageMaker
<a name="studio-lcc-create-console"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

O tópico a seguir mostra como criar uma configuração de ciclo de vida a partir do console Amazon SageMaker AI para automatizar a personalização do seu ambiente Studio Classic.

## Pré-requisitos
<a name="studio-lcc-create-console-prerequisites"></a>

Antes que você possa começar este tutorial, conclua os seguintes pré-requisitos:
+ Faça parte do Amazon SageMaker Studio Classic. Para obter mais informações, consulte [Onboard to Amazon SageMaker Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-onboard.html).

## Etapa 1: Criar uma nova configuração de ciclo de vida
<a name="studio-lcc-create-console-step1"></a>

Você pode criar uma configuração de ciclo de vida inserindo um script no console do Amazon SageMaker AI.

**nota**  
Cada script pode ter até **16.384 caracteres**.

O procedimento a seguir mostra como criar um script de configuração do ciclo de vida que imprime `Hello World`.

1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações administrativas**, escolha **Configurações de ciclo de vida**. 

1. Escolha a guia **Studio**.

1. Escolha **Criar configuração**.

1. Em **Selecionar tipo de configuração**, selecione o tipo de aplicação ao qual a configuração do ciclo de vida deve ser anexada. Para obter mais informações sobre como selecionar a qual aplicação anexar a configuração do ciclo de vida, consulte [Defina configurações de ciclo de vida padrão para o Amazon Studio Classic SageMaker](studio-lcc-defaults.md).

1. Escolha **Próximo**.

1. Na seção chamada **Ajustes de configuração**, insira um nome para sua configuração de ciclo de vida.

1. Na seção **Scripts**, insira o conteúdo a seguir.

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

1. (Opcional) Crie uma tag para sua configuração de ciclo de vida.

1. Escolha **Enviar**.

## Etapa 2: Anexar a configuração do ciclo de vida a um domínio ou perfil de usuário
<a name="studio-lcc-create-console-step2"></a>

Os scripts de configuração do ciclo de vida associados no nível do domínio são herdados por todos os usuários. No entanto, os scripts associados no nível do perfil do usuário têm como escopo um usuário específico. 

Você pode anexar várias configurações de ciclo de vida a um domínio ou perfil de usuário para ambos JupyterServer e aplicativos. KernelGateway 

**nota**  
Para anexar uma configuração de ciclo de vida a um espaço compartilhado, você deve usar o AWS CLI. Para obter mais informações, consulte [Crie uma configuração de ciclo de vida a partir do para o AWS CLI Amazon Studio Classic SageMaker](studio-lcc-create-cli.md).

As seções a seguir mostram como anexar uma configuração de ciclo de vida para seu domínio ou perfil de usuário.

### Anexar a um domínio
<a name="studio-lcc-create-console-step2-domain"></a>

Veja a seguir como anexar uma configuração de ciclo de vida ao seu domínio existente a partir do console de SageMaker IA.

1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Na lista de domínios, selecione o domínio ao qual anexar a configuração do ciclo de vida.

1. Em **Detalhes do domínio**, escolha a guia de **Ambiente**.

1. Em **Configurações de duração para aplicações pessoais do Studio**, escolha **Anexar**.

1. Em **Origem**, escolha **Configuração existente**.

1. Em **Configurações de ciclo de vida do Studio**, selecione a configuração de ciclo de vida que você criou na etapa anterior.

1. Selecione **Anexar a domínio**.

### Anexar ao seu perfil de usuário
<a name="studio-lcc-create-console-step2-userprofile"></a>

Veja a seguir como anexar uma configuração de ciclo de vida ao seu perfil de usuário existente.

1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Na lista de domínios, selecione o domínio que contém o perfil do usuário para anexar a configuração do ciclo de vida.

1. Em **Perfis de usuário**, selecione o perfil do usuário.

1. Na página **Detalhes do usuário**, escolha **Editar**.

1. No painel de navegação à esquerda, escolha **Configurações do Studio**.

1. Em **Configurações de ciclo de vida anexadas ao usuário**, escolha **Anexar**.

1. Em **Origem**, escolha **Configuração existente**.

1. Em **Configurações de ciclo de vida do Studio**, selecione a configuração de ciclo de vida que você criou na etapa anterior.

1. Escolha **Anexar ao perfil do usuário**.

## Etapa 3: Iniciar uma aplicação com configuração de ciclo de vida
<a name="studio-lcc-create-console-step3"></a>

Depois de anexar uma configuração de ciclo de vida a um domínio ou perfil de usuário, você pode iniciar uma aplicação com essa configuração de ciclo de vida anexada. A escolha da configuração de ciclo de vida com a qual iniciar depende do tipo de aplicação.
+ **JupyterServer**: ao iniciar um JupyterServer aplicativo a partir do console, a SageMaker IA sempre usa a configuração padrão do ciclo de vida. Você não pode usar uma configuração de ciclo de vida diferente ao iniciar a partir do console. Para obter informações sobre como alterar a configuração padrão do ciclo de vida após iniciar um JupyterServer aplicativo, consulte. [Defina configurações de ciclo de vida padrão para o Amazon Studio Classic SageMaker](studio-lcc-defaults.md)

  Para selecionar uma configuração de ciclo de vida anexada diferente, você deve iniciar com o AWS CLI. Para obter mais informações sobre como iniciar um JupyterServer aplicativo com uma configuração de ciclo de vida anexada a partir do AWS CLI, consulte. [Crie uma configuração de ciclo de vida a partir do para o AWS CLI Amazon Studio Classic SageMaker](studio-lcc-create-cli.md)
+ **KernelGateway**: você pode selecionar qualquer uma das configurações de ciclo de vida anexadas ao iniciar um KernelGateway aplicativo usando o Studio Classic Launcher.

O procedimento a seguir descreve como iniciar um KernelGateway aplicativo com uma configuração de ciclo de vida anexada a partir do console de SageMaker IA.

1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Execute o Studio Classic. Para obter mais informações, consulte [Inicie o Amazon SageMaker Studio Classic](studio-launch.md).

1. Na interface do usuário do Studio Classic, abra o Inicializador do Studio Classic. Para obter mais informações, consulte [Use o Amazon SageMaker Studio Classic Launcher](studio-launcher.md). 

1. No Inicializador do Studio Classic, navegue até a seção **Cadernos e recursos de computação.** 

1. Clique no botão **Criar ambiente**.

1. Na caixa de diálogo **Alterar ambiente**, use as listas suspensas para selecionar sua **imagem**, **kernel**, **tipo de instância** e um **script de inicialização**. Se não houver uma configuração padrão do ciclo de vida, o valor padrão do **script de inicialização** será `No script`. Caso contrário, o valor do **script de inicialização** é sua configuração de ciclo de vida padrão. Depois de selecionar uma configuração de ciclo de vida, será possível visualizar o script inteiro.

1. Clique em **Selecionar**.

1. De volta ao Inicializador, clique em **Criar caderno** para iniciar um novo kernel de caderno com a configuração de imagem e ciclo de vida selecionada.

## Etapa 4: visualizar logs de uma configuração de ciclo de vida
<a name="studio-lcc-create-console-step4"></a>

Você pode visualizar os logs da configuração do ciclo de vida depois que ela for anexada a um domínio ou perfil de usuário. 

1. Primeiro, forneça acesso CloudWatch à sua função AWS Identity and Access Management (IAM). Adicione permissões de leitura para o grupo de log e fluxos de log a seguir.
   + **Grupo de logs:**`/aws/sagemaker/studio`
   + **Fluxo de logs:**`domain/user-profile/app-type/app-name/LifecycleConfigOnStart`

    Para obter informações sobre como adicionar permissões, consulte [Habilitar o registro em determinados AWS serviços](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html).

1. No Studio Classic, navegue até o ícone **Executar terminais e kernels** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/running-terminals-kernels.png)) para monitorar sua configuração do ciclo de vida.

1. Selecione uma aplicação na lista de aplicações em execução. Aplicativos com configurações de ciclo de vida anexadas têm um ícone indicador anexado ![\[Code brackets symbol representing programming or markup languages.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/studio-lcc-indicator-icon.png).

1. Selecione o ícone indicador da sua aplicação. Isso abre um novo painel que lista a configuração do ciclo de vida.

1. No novo painel, selecione `View logs`. Isso abre uma nova guia que exibe os logs.

# Defina configurações de ciclo de vida padrão para o Amazon Studio Classic SageMaker
<a name="studio-lcc-defaults"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Embora você possa anexar vários scripts de configuração de ciclo de vida a um único recurso, você só pode definir uma configuração de ciclo de vida padrão para cada aplicativo. JupyterServer KernelGateway O comportamento da configuração padrão do ciclo de vida depende se ela está definida para JupyterServer ou KernelGateway para aplicativos. 
+ **JupyterServer aplicativos:** quando definido como o script de configuração de ciclo de vida padrão para JupyterServer aplicativos, o script de configuração do ciclo de vida é executado automaticamente quando o usuário entra no Studio Classic pela primeira vez ou reinicia o Studio Classic. Use essa configuração de ciclo de vida padrão para automatizar ações de configuração únicas para o ambiente de desenvolvedor do Studio Classic, como instalar extensões de notebook ou configurar um repositório. GitHub Para ver um exemplo disso, consulte [Personalizar o Amazon SageMaker Studio usando configurações de ciclo de vida](https://aws.amazon.com/blogs/machine-learning/customize-amazon-sagemaker-studio-using-lifecycle-configurations/).
+ **KernelGateway aplicativos:** quando definida como o script de configuração de ciclo de vida padrão para KernelGateway aplicativos, a configuração do ciclo de vida é selecionada por padrão no inicializador do Studio Classic. Os usuários podem iniciar um caderno ou terminal com o script padrão selecionado, ou podem selecionar um diferente na lista de configurações de ciclo de vida.

SageMaker A IA suporta a definição de uma configuração de ciclo de vida padrão para os seguintes recursos:
+ Domínios
+ Perfis de usuário
+ Espaços compartilhados

Embora domínios e perfis de usuário suportem a definição de uma configuração de ciclo de vida padrão no console Amazon SageMaker AI e AWS Command Line Interface, os espaços compartilhados suportam apenas a definição de uma configuração de ciclo de vida padrão a partir do. AWS CLI

Você pode definir uma configuração de ciclo de vida como padrão ao criar um novo recurso ou atualizar um recurso existente. Os tópicos a seguir demonstram como definir uma configuração de ciclo de vida padrão usando o console de SageMaker IA e. AWS CLI

## Herança de configuração de ciclo de vida padrão
<a name="studio-lcc-defaults-inheritance"></a>

As configurações padrão do ciclo de vida definidas no nível do *domínio* são herdadas por todos os usuários e espaços compartilhados. As configurações padrão do ciclo de vida definidas no nível do *usuário* e do *espaço compartilhado* têm como escopo somente esse usuário ou espaço compartilhado. Os padrões de usuário e espaço substituem os padrões definidos no nível do domínio.

Um conjunto de configurações de KernelGateway ciclo de vida padrão para um domínio se aplica a todos os KernelGateway aplicativos lançados no domínio. A menos que o usuário selecione uma configuração de ciclo de vida diferente da lista apresentada no inicializador do Studio Classic, a configuração de ciclo de vida padrão será usada. O script padrão também é executado se `No Script` for selecionado pelo usuário. Para obter mais informações sobre a seleção de um script, consulte [Etapa 3: Iniciar uma aplicação com configuração de ciclo de vida](studio-lcc-create-console.md#studio-lcc-create-console-step3).

**Topics**
+ [Herança de configuração de ciclo de vida padrão](#studio-lcc-defaults-inheritance)
+ [Defina os padrões do para o AWS CLI Amazon Studio Classic SageMaker](studio-lcc-defaults-cli.md)
+ [Defina padrões do console SageMaker AI para o Amazon Studio Classic SageMaker](studio-lcc-defaults-console.md)

# Defina os padrões do para o AWS CLI Amazon Studio Classic SageMaker
<a name="studio-lcc-defaults-cli"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Você pode definir scripts de configuração de ciclo de vida padrão a partir do AWS CLI para os seguintes recursos:
+ Domínios
+ Perfis de usuário
+ Espaços compartilhados

As seções a seguir descrevem como definir scripts de configuração de ciclo de vida padrão a partir do AWS CLI.

**Topics**
+ [Pré-requisitos](#studio-lcc-defaults-cli-prereq)
+ [Defina uma configuração de ciclo de vida padrão ao criar um novo recurso](#studio-lcc-defaults-cli-new)
+ [Definir uma configuração de ciclo de vida padrão para um recurso existente](#studio-lcc-defaults-cli-existing)

## Pré-requisitos
<a name="studio-lcc-defaults-cli-prereq"></a>

Antes de começar, conclua os seguintes pré-requisitos:
+ Atualize o AWS CLI seguindo as etapas em [Instalando a AWS CLI versão atual](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled).
+ Em sua máquina local, execute `aws configure` e forneça suas credenciais da AWS . Para obter informações sobre AWS credenciais, consulte [Entendendo e obtendo suas AWS credenciais](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 
+ Integre-se ao domínio de SageMaker IA seguindo as etapas em[Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md).
+ Crie uma configuração de ciclo de vida seguindo as etapas em [Crie e associe uma configuração de ciclo de vida ao Amazon Studio Classic SageMaker](studio-lcc-create.md).

## Defina uma configuração de ciclo de vida padrão ao criar um novo recurso
<a name="studio-lcc-defaults-cli-new"></a>

Para definir uma configuração de ciclo de vida padrão ao criar um novo domínio, perfil de usuário ou espaço, transmita o ARN da configuração de ciclo de vida criada anteriormente como parte de um dos seguintes comandos: 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)

Você deve passar o ARN da configuração do ciclo de vida para os seguintes valores nas KernelGateway configurações padrão: JupyterServer 
+ `DefaultResourceSpec`:`LifecycleConfigArn` - Isso especifica a configuração padrão do ciclo de vida para o tipo de aplicação.
+ `LifecycleConfigArns` - Essa é a lista de todas as configurações de ciclo de vida anexadas ao tipo de aplicação. A configuração padrão do ciclo de vida também deve fazer parte dessa lista.

Por exemplo, a chamada de API a seguir cria um novo perfil de usuário com uma configuração de ciclo de vida padrão.

```
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]
  }
}'
```

## Definir uma configuração de ciclo de vida padrão para um recurso existente
<a name="studio-lcc-defaults-cli-existing"></a>

Para definir ou atualizar a configuração padrão do ciclo de vida de um recurso existente, passe o ARN da configuração de ciclo de vida criada anteriormente como parte de um dos seguintes comandos: 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)

Você deve passar o ARN da configuração do ciclo de vida para os seguintes valores nas KernelGateway configurações padrão: JupyterServer 
+ `DefaultResourceSpec`:`LifecycleConfigArn` - Isso especifica a configuração padrão do ciclo de vida para o tipo de aplicação.
+ `LifecycleConfigArns` - Essa é a lista de todas as configurações de ciclo de vida anexadas ao tipo de aplicação. A configuração padrão do ciclo de vida também deve fazer parte dessa lista.

Por exemplo, a chamada de API a seguir atualiza um perfil de usuário com uma configuração de ciclo de vida padrão.

```
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]
  }
}'
```

A chamada de API a seguir atualiza um domínio para definir uma nova configuração de ciclo de vida padrão.

```
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]
  }
}'
```

# Defina padrões do console SageMaker AI para o Amazon Studio Classic SageMaker
<a name="studio-lcc-defaults-console"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Você pode definir scripts de configuração de ciclo de vida padrão no console de SageMaker IA para os seguintes recursos.
+ Domínios
+ Perfis de usuário

Você não pode definir scripts de configuração de ciclo de vida padrão para espaços compartilhados no console de SageMaker IA. Para obter informações sobre como definir padrões para espaços compartilhados, consulte [Defina os padrões do para o AWS CLI Amazon Studio Classic SageMaker](studio-lcc-defaults-cli.md).

As seções a seguir descrevem como definir scripts de configuração de ciclo de vida padrão no SageMaker console de IA.

**Topics**
+ [Pré-requisitos](#studio-lcc-defaults-cli-prerequisites)
+ [Definir uma configuração de ciclo de vida padrão para um domínio](#studio-lcc-defaults-cli-domain)
+ [Definir uma configuração de ciclo de vida padrão para um perfil do usuário](#studio-lcc-defaults-cli-user-profile)

## Pré-requisitos
<a name="studio-lcc-defaults-cli-prerequisites"></a>

Antes de começar, conclua os seguintes pré-requisitos:
+ Integre-se ao domínio de SageMaker IA seguindo as etapas em[Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md).
+ Crie uma configuração de ciclo de vida seguindo as etapas em [Crie e associe uma configuração de ciclo de vida ao Amazon Studio Classic SageMaker](studio-lcc-create.md).

## Definir uma configuração de ciclo de vida padrão para um domínio
<a name="studio-lcc-defaults-cli-domain"></a>

O procedimento a seguir mostra como definir uma configuração de ciclo de vida padrão para um domínio a partir do console de SageMaker IA.

1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Na lista de domínios, selecione o nome do domínio para o qual definir a configuração de ciclo de vida padrão.

1. Na página **Detalhes do domínio**, escolha a guia de **Ambiente**.

1. Em **Configurações de ciclo de vida para aplicações pessoais do Studio**, selecione a configuração de ciclo de vida que você deseja definir como padrão para o domínio. Você pode definir padrões distintos para aplicativos JupyterServer e KernelGateway aplicativos.

1. Escolha **Definir como padrão**. Isso abre uma janela pop-up que lista os padrões atuais JupyterServer e KernelGateway os aplicativos.

1. Escolha **Definir como padrão** para definir a configuração do ciclo de vida como padrão para seu respectivo tipo de aplicação.

## Definir uma configuração de ciclo de vida padrão para um perfil do usuário
<a name="studio-lcc-defaults-cli-user-profile"></a>

O procedimento a seguir mostra como definir uma configuração de ciclo de vida padrão para um perfil de usuário no console de SageMaker IA.

1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Na lista de domínios, selecione o nome do domínio que contém o perfil de usuário para o qual você deseja definir a configuração padrão do ciclo de vida.

1. Da página **Detalhes do Domínio**, escolha a guia **Perfis de usuário**.

1. Selecione o nome do perfil do usuário para o qual definir a configuração padrão do ciclo de vida. Isso abre uma página de **Detalhes do usuário**.

1. Na página **Detalhes do usuário**, escolha **Editar**. Isso abre uma página **Editar perfil de usuário**.

1. Na página **Editar perfil de usuário**, escolha **Etapa 2 Configurações do Studio**.

1. Em **Configurações de ciclo de vida anexadas ao usuário**, selecione a configuração de ciclo de vida que você deseja definir como padrão para o perfil do usuário. Você pode definir padrões distintos para aplicativos JupyterServer e KernelGateway aplicativos.

1. Escolha **Definir como padrão**. Isso abre uma janela pop-up que lista os padrões atuais JupyterServer e KernelGateway os aplicativos.

1. Escolha **Definir como padrão** para definir a configuração do ciclo de vida como padrão para seu respectivo tipo de aplicação.

# Depurar configurações de ciclo de vida no Amazon Studio Classic SageMaker
<a name="studio-lcc-debug"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Os tópicos a seguir mostram como obter informações e depurar as configurações de ciclo de vida.

**Topics**
+ [Verifique o processo de configuração do ciclo de vida a partir do Logs CloudWatch](#studio-lcc-debug-logs)
+ [JupyterServer falha no aplicativo](#studio-lcc-debug-jupyterserver)
+ [KernelGateway falha no aplicativo](#studio-lcc-debug-kernel)
+ [Tempo limite de configuração do ciclo de vida](#studio-lcc-debug-timeout)

## Verifique o processo de configuração do ciclo de vida a partir do Logs CloudWatch
<a name="studio-lcc-debug-logs"></a>

Somente as configurações de ciclo de vida registram `STDOUT` e `STDERR`.

`STDOUT` é a saída padrão para scripts bash. Você pode escrever em `STDERR` anexando `>&2` ao final de um comando bash. Por exemplo, .`echo 'hello'>&2` 

Os registros de suas configurações de ciclo de vida são publicados para você usando Conta da AWS a Amazon. CloudWatch Esses registros podem ser encontrados no fluxo de `/aws/sagemaker/studio` registros no CloudWatch console.

1. Abra o CloudWatch console em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Escolha **Registros em log** no lado esquerdo. No menu suspenso, selecione **Grupo de logs**.

1. Na página **Grupos de logs**, pesquise por `aws/sagemaker/studio`. 

1. Selecione o grupo de logs .

1. Na página **Detalhes do grupo de logs**, escolha a guia **Fluxo de logs**.

1. Para encontrar os logs de uma aplicação específica, pesquise os fluxos de logs usando o seguinte formato:

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

   Por exemplo, para encontrar os logs de configuração de ciclo de vida para domínio `d-m85lcu8vbqmz`, o nome de espaço `i-sonic-js` e o tipo de aplicação `JupyterLab`, use a seguinte string de pesquisa:

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

## JupyterServer falha no aplicativo
<a name="studio-lcc-debug-jupyterserver"></a>

Se seu JupyterServer aplicativo falhar devido a um problema com a configuração do ciclo de vida anexada, o Studio Classic exibirá a seguinte mensagem de erro na tela de inicialização do Studio Classic. 

```
Failed to create SageMaker Studio due to start-up script failure
```

Selecione o `View script logs` link para ver os CloudWatch registros do seu JupyterServer aplicativo.

Caso a configuração do ciclo de vida com defeito seja especificada no `DefaultResourceSpec` do seu domínio, perfil do usuário ou espaço compartilhado, o Studio continua usando a configuração do ciclo de vida mesmo depois de reiniciar o Studio Classic. 

Para resolver esse erro, siga as etapas em [Defina configurações de ciclo de vida padrão para o Amazon Studio Classic SageMaker](studio-lcc-defaults.md) para remover o script de configuração do ciclo de vida do `DefaultResourceSpec` ou selecionar outro script como padrão. Em seguida, inicie um novo JupyterServer aplicativo.

## KernelGateway falha no aplicativo
<a name="studio-lcc-debug-kernel"></a>

Se seu KernelGateway aplicativo falhar devido a um problema com a configuração do ciclo de vida anexada, o Studio Classic exibirá a mensagem de erro em seu notebook Studio Classic. 

Escolha `View script logs` ver os CloudWatch registros do seu KernelGateway aplicativo.

Nesse caso, sua configuração do ciclo de vida é especificada no Inicializador do Studio Classic ao iniciar um novo Caderno do Studio Classic. 

Para resolver esse erro, use o inicializador do Studio Classic para selecionar uma configuração de ciclo de vida diferente ou selecionar `No script`.

**nota**  
Uma configuração de KernelGateway ciclo de vida padrão especificada em `DefaultResourceSpec` se aplica a todas as KernelGateway imagens no domínio, perfil de usuário ou espaço compartilhado, a menos que o usuário selecione um script diferente da lista apresentada no inicializador do Studio Classic. O script padrão também é executado se `No Script` for selecionado pelo usuário. Para obter mais informações sobre a seleção de um script, consulte [Etapa 3: Iniciar uma aplicação com configuração de ciclo de vida](studio-lcc-create-console.md#studio-lcc-create-console-step3).

## Tempo limite de configuração do ciclo de vida
<a name="studio-lcc-debug-timeout"></a>

Há um limite de tempo limite de configuração do ciclo de vida de 5 minutos. Se um script de configuração do ciclo de vida demorar mais de 5 minutos para ser executado, o Studio Classic gerará um erro.

Para resolver esse erro, certifique-se de que seu script de configuração do ciclo de vida seja concluído em menos de 5 minutos. 

Para ajudar a diminuir o tempo de execução de scripts, tente o seguinte:
+ Reduza as etapas necessárias. Por exemplo, limite os ambientes conda nos quais instalar pacotes grandes.
+ Execute tarefas em processos paralelos.
+ Use o comando `nohup` em seu script para garantir que os sinais de desligamento sejam ignorados e não interrompam a execução do script.

# Atualize e separe configurações de ciclo de vida no Amazon Studio Classic SageMaker
<a name="studio-lcc-delete"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Não é possível alterar um script de configuração de ciclo de vida depois de criado. Para atualizar seu script, você deve criar um novo script de configuração do ciclo de vida e anexá-lo ao respectivo domínio, perfil de usuário ou espaço compartilhado. Para obter mais informações sobre criar e gerenciar a configuração de ciclo de vida, consulte [Crie e associe uma configuração de ciclo de vida ao Amazon Studio Classic SageMaker](studio-lcc-create.md).

O tópico a seguir mostra como separar uma configuração de ciclo de vida usando o console AWS CLI e SageMaker o AI.

**Topics**
+ [Pré-requisitos](#studio-lcc-delete-pre)
+ [Desconecte usando o AWS CLI](#studio-lcc-delete-cli)

## Pré-requisitos
<a name="studio-lcc-delete-pre"></a>

Antes de desanexar uma configuração de ciclo de vida, você deve preencher o pré-requisito a seguir.
+ Para separar com sucesso uma configuração de ciclo de vida, nenhuma aplicação em execução pode estar usando a configuração de ciclo de vida. Você deve primeiro encerrar as aplicações em execução, conforme mostrado em [Desligue e atualize o Amazon SageMaker Studio Classic e os aplicativos](studio-tasks-update.md).

## Desconecte usando o AWS CLI
<a name="studio-lcc-delete-cli"></a>

Para separar uma configuração de ciclo de vida usando o AWS CLI, remova a configuração de ciclo de vida desejada da lista de configurações de ciclo de vida anexada ao recurso e passe a lista como parte do respectivo 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)

Por exemplo, o comando a seguir remove todas as configurações de ciclo de vida KernelGateways anexadas ao domínio.

```
aws sagemaker update-domain --domain-id domain-id \
--region region \
--default-user-settings '{
"KernelGatewayAppSettings": {
  "LifecycleConfigArns":
    []
  }
}'
```

# Anexe repositórios Git sugeridos ao Amazon Studio Classic SageMaker
<a name="studio-git-attach"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

O Amazon SageMaker Studio Classic oferece uma extensão Git para você inserir a URL de um repositório Git (repo), cloná-lo em seu ambiente, enviar alterações e visualizar o histórico de commits. Além dessa extensão do Git, você também pode anexar um repositório Git sugerido no domínio do SageMaker Amazon AI ou URLs no nível do perfil do usuário. Em seguida, você pode selecionar o URL do repositório na lista de sugestões e cloná-lo em seu ambiente usando a extensão Git no Studio. 

Os tópicos a seguir mostram como anexar o repositório Git URLs a um domínio ou perfil de usuário a partir do console AWS CLI e SageMaker do AI. Você também aprenderá como desanexar esses repositórios URLs.

**Topics**
+ [Anexe um repositório Git do para AWS CLI Amazon Studio Classic SageMaker](studio-git-attach-cli.md)
+ [Anexe um repositório Git do console SageMaker AI para o Amazon Studio Classic SageMaker](studio-git-attach-console.md)
+ [Separe os repositórios Git do SageMaker Amazon Studio Classic](studio-git-detach.md)

# Anexe um repositório Git do para AWS CLI Amazon Studio Classic SageMaker
<a name="studio-git-attach-cli"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

O tópico a seguir mostra como anexar uma URL do repositório Git usando o AWS CLI, para que o Amazon SageMaker Studio Classic a sugira automaticamente para clonagem. Depois de anexar a URL do repositório Git, você pode cloná-la seguindo as etapas em [Clone um repositório Git no SageMaker Amazon Studio Classic](studio-tasks-git.md).

## Pré-requisitos
<a name="studio-git-attach-cli-prerequisites"></a>

Antes de começar, conclua os seguintes pré-requisitos: 
+ Atualize o AWS CLI seguindo as etapas em [Instalando a versão atual da AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled).
+ Em sua máquina local, execute `aws configure` e forneça suas credenciais da AWS . Para obter informações sobre AWS credenciais, consulte [Entendendo e obtendo suas AWS credenciais](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 
+ Integre-se ao domínio Amazon SageMaker AI. Para obter mais informações, consulte [Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md).

## Anexar o repositório Git a um domínio ou perfil de usuário
<a name="studio-git-attach-cli-attach"></a>

O repositório Git URLs associado no nível do domínio é herdado por todos os usuários. No entanto, os URLs repositórios Git associados no nível do perfil do usuário têm como escopo um usuário específico. Você pode anexar vários repositórios Git URLs a um domínio ou perfil de usuário passando uma lista de repositórios. URLs

As seções a seguir mostram como anexar uma URL do repositório Git ao seu domínio e perfil de usuário.

### Anexar a um domínio
<a name="studio-git-attach-cli-attach-domain"></a>

O comando a seguir anexa uma URL do repositório Git a um domínio existente.

```
aws sagemaker update-domain --region region --domain-id domain-id \
    --default-user-settings JupyterServerAppSettings={CodeRepositories=[{RepositoryUrl="repository"}]}
```

### Anexar ao uma perfil de usuário
<a name="studio-git-attach-cli-attach-userprofile"></a>

Veja a seguir como anexar uma URL do repositório Git a um perfil de usuário existente.

```
aws sagemaker update-user-profile --domain-id domain-id --user-profile-name user-name\
    --user-settings JupyterServerAppSettings={CodeRepositories=[{RepositoryUrl="repository"}]}
```

# Anexe um repositório Git do console SageMaker AI para o Amazon Studio Classic SageMaker
<a name="studio-git-attach-console"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

O tópico a seguir mostra como associar uma URL do repositório Git do console Amazon SageMaker AI para cloná-la em seu ambiente Studio Classic. Depois de associar a URL do repositório Git, você pode cloná-la seguindo as etapas em [Clone um repositório Git no SageMaker Amazon Studio Classic](studio-tasks-git.md).

## Pré-requisitos
<a name="studio-git-attach-console-prerequisites"></a>

Antes de começar este tutorial, você deve se integrar ao domínio Amazon SageMaker AI. Para obter mais informações, consulte [Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md).

## Anexar o repositório Git a um domínio ou perfil de usuário
<a name="studio-git-attach-console-attach"></a>

O repositório Git URLs associado no nível do domínio é herdado por todos os usuários. No entanto, a URL do repositório Git associadas no nível do perfil do usuário têm como escopo um usuário específico. 

As seções a seguir mostram como anexar uma URL do repositório Git a um domínio e perfil de usuário.

### Anexar a um domínio
<a name="studio-git-attach-console-attach-domain"></a>

**Para anexar uma URL do repositório Git a um domínio existente**

1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Selecione o domínio ao qual anexar o repositório Git.

1. Na página de **Detalhes do domínio**, escolha a guia **Ambiente**.

1. Na guia **Repositórios de código sugeridos para o domínio**, escolha **Anexar**.

1. Em **Fonte**, insira a URL do repositório Git.

1. Selecione **Anexar a domínio**.

### Anexar ao uma perfil de usuário
<a name="studio-git-attach-console-attach-userprofile"></a>

Veja a seguir como anexar uma URL do repositório Git a um perfil de usuário existente.

**Para anexar a URL do repositório Git a um perfil de usuário**

1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Selecione o domínio que inclui o perfil do usuário ao qual anexar o repositório Git.

1. Na página **Detalhes do Domínio**, escolha a aba **Perfis de usuário**.

1. Selecione o perfil do usuário ao qual anexar a URL do repositório Git.

1. Na página **Detalhes do usuário**, selecione **Editar**.

1. Na página de **configurações do Studio**, escolha **Anexar** na seção **Repositórios de código sugeridos para o usuário**.

1. Em **Fonte**, insira a URL do repositório Git.

1. Escolha **Anexar ao usuário**.

# Separe os repositórios Git do SageMaker Amazon Studio Classic
<a name="studio-git-detach"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Este guia mostra como separar o URLs repositório Git de um domínio ou perfil de usuário do SageMaker Amazon AI usando o AWS CLI console do Amazon SageMaker AI.

**Topics**
+ [Separe um repositório Git usando o AWS CLI](#studio-git-detach-cli)
+ [Separe o repositório Git usando o console AI SageMaker](#studio-git-detach-console)

## Separe um repositório Git usando o AWS CLI
<a name="studio-git-detach-cli"></a>

Para separar todo o URLs repositório Git de um domínio ou perfil de usuário, você deve passar uma lista vazia de repositórios de código. Essa lista é passada como parte do parâmetro `JupyterServerAppSettings` em um comando `update-domain` ou `update-user-profile`. Para desassociar somente uma URL do repositório Git, passe a lista de repositórios de código sem a URL desejada do repositório Git. Esta seção mostra como desanexar todo o URLs repositório Git do seu domínio ou perfil de usuário usando o AWS Command Line Interface ().AWS CLI

### Desanexar de um domínio
<a name="studio-git-detach-cli-domain"></a>

O comando a seguir separa todo o URLs repositório Git de um domínio.

```
aws sagemaker update-domain --region region --domain-name domain-name \
    --domain-settings JupyterServerAppSettings={CodeRepositories=[]}
```

### Desanexar de um perfil de usuário
<a name="studio-git-detach-cli-userprofile"></a>

O comando a seguir separa todo o URLs repositório Git de um perfil de usuário.

```
aws sagemaker update-user-profile --domain-name domain-name --user-profile-name user-name\
    --user-settings JupyterServerAppSettings={CodeRepositories=[]}
```

## Separe o repositório Git usando o console AI SageMaker
<a name="studio-git-detach-console"></a>

As seções a seguir mostram como separar uma URL do repositório Git de um domínio ou perfil de usuário usando SageMaker o console de IA.

### Desanexar de um domínio
<a name="studio-git-detach-console-domain"></a>

Use as etapas a seguir para desassociar uma URL de repositório do Git de um domínio existente.

**Para desassociar um URL do repositório Git de um domínio existente**

1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Selecione o domínio com o URL do repositório Git que você deseja desassociar.

1. Na página de **Detalhes do domínio**, escolha a guia **Ambiente**.

1. Na guia **Repositórios de código sugeridos para o domínio**, selecione a URL do repositório Git para desassociar.

1. Escolha **Desassociar**.

1. Da nova janela, escolha **Desassociar**.

### Desassociar de um perfil de usuário
<a name="studio-git-detach-console-userprofile"></a>

Use as etapas a seguir para desassociar uma URL de repositório do Git de um perfil de usuário.

**Para desassociar uma URL do repositório Git de um perfil de usuário**

1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Selecione o domínio que inclua o Perfil do usuário do URL do repositório Git que você deseja desassociar.

1. Na página **Detalhes do Domínio**, escolha a aba **Perfis de usuário**.

1. Selecione o perfil do usuário do URL do repositório Git que você deseja desassociar.

1. Na página **Detalhes do usuário**, selecione **Editar**.

1. Na página de **Configurações do Studio**, selecione a URL do repositório Git a ser desanexada da guia **Repositórios de código sugeridos** para o usuário.

1. Escolha **Desassociar**.

1. Da nova janela, escolha **Desassociar**.

# Execute tarefas comuns no Amazon SageMaker Studio Classic
<a name="studio-tasks"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

As seções a seguir descrevem como realizar tarefas comuns no Amazon SageMaker Studio Classic. Para obter uma visão geral da interface do Studio Classic, consulte [Visão geral da interface do usuário do Amazon SageMaker Studio Classic](studio-ui.md).

**Topics**
+ [Carregar arquivos para o Amazon SageMaker Studio Classic](studio-tasks-files.md)
+ [Clone um repositório Git no SageMaker Amazon Studio Classic](studio-tasks-git.md)
+ [Pare um Training Job no Amazon SageMaker Studio Classic](studio-tasks-stop-training-job.md)
+ [Use TensorBoard no Amazon SageMaker Studio Classic](studio-tensorboard.md)
+ [Use o Amazon Q Developer com o Amazon SageMaker Studio Classic](sm-q.md)
+ [Gerencie seu volume de armazenamento do Amazon EFS no Amazon SageMaker Studio Classic](studio-tasks-manage-storage.md)
+ [Forneça feedback sobre o Amazon SageMaker Studio Classic](studio-tasks-provide-feedback.md)
+ [Desligue e atualize o Amazon SageMaker Studio Classic e os aplicativos](studio-tasks-update.md)

# Carregar arquivos para o Amazon SageMaker Studio Classic
<a name="studio-tasks-files"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Quando você se integra ao Amazon SageMaker Studio Classic, um diretório inicial é criado para você no volume do Amazon Elastic File System (Amazon EFS) que foi criado para sua equipe. O Studio Classic só pode abrir arquivos que foram enviados para o seu diretório. O navegador de arquivos Studio Classic é mapeado para seu diretório inicial.

**nota**  
O Studio Classic não é compatível com o upload de pastas. Embora você só possa fazer upload de arquivos individuais, você pode carregar vários arquivos ao mesmo tempo.

**Para fazer o upload de arquivos para o diretório inicial**

1. Na barra lateral à esquerda, escolha o ícone **Navegador de arquivos** ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/folder.png)).

1. No navegador de arquivos, escolha o ícone **Fazer upload de arquivos** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/File_upload_squid.png)).

1. Selecione os arquivos que você quer fazer upload e escolha **Abrir**.

1. Clique duas vezes em um arquivo para abri-lo em uma nova guia no Studio Classic.

# Clone um repositório Git no SageMaker Amazon Studio Classic
<a name="studio-tasks-git"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

O Amazon SageMaker Studio Classic só pode se conectar a um repositório Git local (repo). Isso significa que você deve clonar o repositório Git de dentro do Studio Classic para acessar os arquivos no repositório. O Studio Classic oferece uma extensão do Git para você inserir a URL de um repositório Git, cloná-lo em seu ambiente, enviar alterações e visualizar o histórico de confirmações. Se o repositório for privado e requer credenciais para ser acessado, você será solicitado a inserir suas credenciais do usuário. Isso inclui seu nome de usuário e o token de acesso pessoal. Para obter mais informações sobre token de acesso pessoal, consulte [Gerenciar seus tokens de acesso pessoal](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens).

Os administradores também podem anexar um repositório Git sugerido no domínio SageMaker Amazon AI URLs ou no nível do perfil do usuário. Os usuários podem então selecionar o URL do repositório na lista de sugestões e cloná-lo no Studio Classic. Para obter mais informações sobre como anexar repositórios sugeridos, consulte [Anexe repositórios Git sugeridos ao Amazon Studio Classic SageMaker](studio-git-attach.md).

O procedimento a seguir mostra como clonar um GitHub repositório do Studio Classic. 

**Para clonar o repositório**

1. Na barra lateral à esquerda, escolha o ícone **Git** ( ![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/git.png)).

1. Escolha **Clonar um repositório**. Essa ação abre uma nova janela.

1. Na janela **Clonar repositório Git**, insira a URL no seguinte formato para o repositório Git que você deseja clonar ou selecione um repositório na lista de **Repositórios sugeridos**:

   ```
   https://github.com/path-to-git-repo/repo.git
   ```

1. Se você inseriu a URL do repositório Git manualmente, selecione **Clonar "*git-url*" no menu** suspenso.

1. Em **Diretório do projeto para clonar**, insira o caminho para o diretório local no qual você deseja clonar o repositório Git. Se esse valor for deixado em branco, o Studio Classic clona o repositório no diretório JupyterLab raiz.

1. Escolha **Clonar**. Isso abre uma nova janela do terminal.

1. Se o repositório requer credenciais, você será solicitado que insira seu nome de usuário e token de acesso pessoal. Esse prompt não aceita senhas, você deve usar um token de acesso pessoal. Para obter mais informações sobre token de acesso pessoal, consulte [Gerenciar seus tokens de acesso pessoal](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens).

1. Aguarde o término do download. Depois que o repositório for clonado, o **Navegador de arquivos** é aberto para exibir o repositório clonado.

1. Clique duas vezes no repositório para abri-lo.

1. Escolha o ícone do **Git** para ver a interface de usuário do Git, que agora rastreia o repositório.

1. Para rastrear um repositório diferente, abra o repositório no navegador de arquivos e escolha o ícone do **Git**.

# Pare um Training Job no Amazon SageMaker Studio Classic
<a name="studio-tasks-stop-training-job"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Você pode interromper um trabalho de treinamento com a interface do usuário do Amazon SageMaker Studio Classic. Quando você interrompe um trabalho de treinamento, o status muda para `Stopping`, no qual o tempo de cobrança cessa. Um algoritmo pode atrasar o término para salvar artefatos do modelo e, depois disso, o status do trabalho mudará para `Stopped`. Para obter mais informações, consulte o método [stop\$1training\$1job](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.stop_training_job) no AWS SDK para Python (Boto3).

**Como interromper um trabalho de treinamento**

1. Siga o procedimento [Visualizar experimentos e execuções](experiments-view-compare.md) nesta página até que a guia **Descrever componentes de teste** seja aberta.

1. No lado superior direito da guia, escolha **Interromper trabalho de treinamento**. O **Status** no canto superior esquerdo da guia será alterado para **Parado**.

1. Para visualizar o tempo de treinamento e o tempo de faturamento, escolha **Configurações da AWS **.

# Use TensorBoard no Amazon SageMaker Studio Classic
<a name="studio-tensorboard"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

 O documento a seguir descreve como instalar e executar TensorBoard no Amazon SageMaker Studio Classic. 

**nota**  
Este guia mostra como abrir o TensorBoard aplicativo por meio de um servidor de notebook SageMaker Studio Classic de um perfil de usuário de domínio de SageMaker IA individual. Para uma TensorBoard experiência mais abrangente integrada ao SageMaker treinamento e às funcionalidades de controle de acesso do domínio de SageMaker IA, consulte[TensorBoard na Amazon SageMaker AI](tensorboard-on-sagemaker.md).

## Pré-requisitos
<a name="studio-tensorboard-prereq"></a>

Este tutorial exige um domínio de SageMaker IA. Para obter mais informações, consulte [Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md).

## Configurar o `TensorBoardCallback`
<a name="studio-tensorboard-setup"></a>

1. Execute o Studio Classic e abra o Inicializador. Para obter mais informações, consulte [Use o Amazon SageMaker Studio Classic Launcher](studio-launcher.md).

1. No Amazon SageMaker Studio Classic Launcher, em`Notebooks and compute resources`, escolha o botão **Alterar ambiente**.

1. Na caixa de diálogo **Alterar ambiente**, use as listas suspensas para selecionar a **imagem** do `TensorFlow 2.6 Python 3.8 CPU Optimized` Studio Classic.

1. De volta ao Inicializador, clique no quadro **Criar caderno**. Seu caderno é iniciado e aberto em uma nova aba Studio.

1. Execute esse código de dentro das células do seu caderno.

1. Importe os pacotes necessários. 

   ```
   import os
   import datetime
   import tensorflow as tf
   ```

1. Crie um modelo 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. Crie um diretório para seus TensorBoard registros

   ```
   LOG_DIR = os.path.join(os.getcwd(), "logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S"))
   ```

1. Execute o treinamento com 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. Gere o caminho do EFS para os TensorBoard registros. Você usa esse caminho para configurar seus logs a partir do terminal.

   ```
   EFS_PATH_LOG_DIR = "/".join(LOG_DIR.strip("/").split('/')[1:-1])
   print (EFS_PATH_LOG_DIR)
   ```

   Recupere o `EFS_PATH_LOG_DIR`. Você precisará dele na seção TensorBoard de instalação.

## Instalar TensorBoard
<a name="studio-tensorboard-install"></a>

1. Clique no `Amazon SageMaker Studio Classic` botão no canto superior esquerdo do Studio Classic para abrir o Amazon SageMaker Studio Classic Launcher. Esse Inicializador deve ser aberto a partir do seu diretório raiz. Para obter mais informações, consulte [Use o Amazon SageMaker Studio Classic Launcher](studio-launcher.md).

1. No Inicializador, em `Utilities and files`, clique em `System terminal`. 

1. No terminal, execute os comandos a seguir. Copie `EFS_PATH_LOG_DIR` do caderno Jupyter. Você pode fazer isso executando o diretório raiz `/home/sagemaker-user`.

   ```
   pip install tensorboard
   tensorboard --logdir <EFS_PATH_LOG_DIR>
   ```

## Lançamento TensorBoard
<a name="studio-tensorboard-launch"></a>

1. Para iniciar TensorBoard, copie seu URL do Studio Classic e `lab?` substitua-o pelo `proxy/6006/` seguinte. É necessário incluir o caractere antecedente `/`.

   ```
   https://<YOUR_URL>.studio.region.sagemaker.aws/jupyter/default/proxy/6006/
   ```

1. Navegue até o URL para examinar seus resultados. 

# Use o Amazon Q Developer com o Amazon SageMaker Studio Classic
<a name="sm-q"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

O Amazon SageMaker Studio Classic é um ambiente de aprendizado de máquina integrado no qual você pode criar, treinar, implantar e analisar seus modelos, tudo no mesmo aplicativo. Você pode gerar recomendações de código e sugerir melhorias relacionadas a problemas de código usando o Amazon Q Developer com o Amazon SageMaker AI.

O Amazon Q Developer é um assistente de conversação com inteligência artificial generativa (IA) que pode ajudar você a entender, criar, ampliar e operar AWS aplicativos. No contexto de um ambiente de AWS codificação integrado, o Amazon Q pode gerar recomendações de código com base no código dos desenvolvedores, bem como em seus comentários em linguagem natural. 

O Amazon Q tem o maior suporte para Java, Python,,, C\$1 JavaScript, Go TypeScript, PHP, Rust, Kotlin e SQL, bem como as linguagens de infraestrutura como código (IaC) JSON (), YAML (), HCL (Terraform CloudFormation) e CDK (CloudFormation Typescript, Python). Ele também é compatível com geração de código para Ruby, C\$1\$1, C, Shell e Scala. Para exemplos de como o Amazon Q se integra com o Amazon SageMaker AI e exibe sugestões de código no Amazon SageMaker Studio Classic IDE, consulte [Exemplos de código](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/inline-suggestions-code-examples.html) no *Guia do usuário do desenvolvedor do Amazon Q.*

Para obter mais informações sobre como usar o Amazon Q com o Amazon SageMaker Studio Classic, consulte o [Amazon Q Developer User Guide](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/sagemaker-setup.html).

# Gerencie seu volume de armazenamento do Amazon EFS no Amazon SageMaker Studio Classic
<a name="studio-tasks-manage-storage"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Na primeira vez que um usuário da sua equipe se integra ao Amazon SageMaker Studio Classic, o Amazon SageMaker AI cria um volume do Amazon Elastic File System (Amazon EFS) para a equipe. Um diretório inicial é criado no volume para cada usuário que se integra ao Studio Classic como parte de sua equipe. Os arquivos de cadernos e de dados são armazenados nesses diretórios. Os usuários não têm acesso aos diretórios de base de outros membros da equipe. O domínio Amazon SageMaker AI não suporta a montagem de volumes personalizados ou adicionais do Amazon EFS.

**Importante**  
Não exclua o volume do Amazon EFS. Se você excluí-lo, o domínio não funcionará mais, e todos os usuários perderão seus trabalhos.

**Para encontrar seu volume do Amazon EFS**

1. Abra o [console de SageMaker IA](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Na página **Domínios**, selecione o domínio para o qual encontrar o ID.

1. Na página de **detalhes do domínio**, selecione a guia **Configurações do domínio**.

1. Em **Configurações gerais**, encontre o **ID do domínio**. O ID estará no seguinte formato: `d-xxxxxxxxxxxx`.

1. Passe o `Domain ID`, os `DomainId`, para o método [describe\$1domain](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.describe_domain).

1. Na resposta do `describe_domain`, anote o valor para a chave `HomeEfsFileSystemId`. Este é o ID do sistema de arquivos do Amazon EFS.

1. Abra o [Console do Amazon EFS ](https://console.aws.amazon.com/efs#/file-systems/). Certifique-se de que a AWS região seja a mesma usada pelo Studio Classic.

1. Em **Sistemas de arquivos**, escolha o ID do sistema de arquivos da etapa anterior.

1. Para verificar se você escolheu o sistema de arquivos correto, selecione o cabeçalho **Tags**. O valor correspondente à chave `ManagedByAmazonSageMakerResource` deve corresponder ao `Studio Classic ID`.

Para obter informações sobre como acessar o volume do Amazon EFS, consulte [Uso de sistemas de arquivos no Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/using-fs.html).

Para excluir o volume do Amazon EFS, consulte [Excluir um sistema de arquivos do Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/delete-efs-fs.html).

# Forneça feedback sobre o Amazon SageMaker Studio Classic
<a name="studio-tasks-provide-feedback"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

A Amazon SageMaker AI leva seus comentários a sério. Recomendamos que você envie seu feedback.

**Como fornecer feedback**

1. À direita do SageMaker Studio Classic, encontre o ícone **Feedback** (![\[Speech bubble icon representing messaging or communication functionality.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/feedback.png)).

1. Escolha um emoji sorridente para nos dizer o quanto você está satisfeito com o SageMaker Studio Classic e adicione qualquer feedback que queira compartilhar conosco.

1. Decida se deseja compartilhar sua identidade conosco e escolha **Enviar**.

# Desligue e atualize o Amazon SageMaker Studio Classic e os aplicativos
<a name="studio-tasks-update"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Os tópicos a seguir mostram como desligar e atualizar os aplicativos SageMaker Studio Classic e Studio Classic.

O Studio Classic fornece um ícone de notificação (![\[Red circle icon with white exclamation mark, indicating an alert or warning.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/Notification.png)) no canto superior direito da interface do Studio. Esse ícone de notificação exibe o número de avisos não lidos. Para ler os avisos, selecione o ícone.

O Studio Classic fornece dois tipos de notificações:
+ Atualização: Exibida quando o Studio Classic ou um das aplicações do Studio Classic lançam uma nova versão. Para atualizar o Studio Classic, consulte [Desligue e atualize o Amazon SageMaker Studio Classic](studio-tasks-update-studio.md). Para atualizar as aplicações do Studio Classic, consulte[Encerre e atualize os aplicativos do Amazon SageMaker Studio Classic](studio-tasks-update-apps.md).
+ Informações: Exibidas para novos atributos e outras informações.

Para redefinir o ícone de notificação, você deve selecionar o link em cada aviso. As notificações de leitura ainda podem ser exibidas no ícone. Isso não indica que as atualizações ainda sejam necessárias após a atualização do Studio e do Studio Classic Apps.

Para saber como atualizar o [Amazon SageMaker Data Wrangler, consulte](https://docs.aws.amazon.com/sagemaker/latest/dg/data-wrangler.html). [Encerre e atualize os aplicativos do Amazon SageMaker Studio Classic](studio-tasks-update-apps.md)

Para garantir que você tenha as atualizações de software mais recentes, atualize o Amazon SageMaker Studio Classic e seus aplicativos Studio Classic usando os métodos descritos nos tópicos a seguir.

**Topics**
+ [Desligue e atualize o Amazon SageMaker Studio Classic](studio-tasks-update-studio.md)
+ [Encerre e atualize os aplicativos do Amazon SageMaker Studio Classic](studio-tasks-update-apps.md)

# Desligue e atualize o Amazon SageMaker Studio Classic
<a name="studio-tasks-update-studio"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Para atualizar o Amazon SageMaker Studio Classic para a versão mais recente, você deve desligar o JupyterServer aplicativo. Você pode desligar o JupyterServer aplicativo no console de SageMaker IA, no Amazon SageMaker Studio ou no Studio Classic. Depois que o JupyterServer aplicativo for encerrado, você deverá reabrir o Studio Classic por meio do console de SageMaker IA ou do Studio, que cria uma nova versão do JupyterServer aplicativo. 

Você não pode excluir o JupyterServer aplicativo enquanto a interface do Studio Classic ainda estiver aberta no navegador. Se você excluir o JupyterServer aplicativo enquanto a interface do Studio Classic ainda estiver aberta no navegador, a SageMaker IA recriará automaticamente o JupyterServer aplicativo.

Todas as informações do caderno não salvas são perdidas no processo. Os dados do usuário no volume do Amazon EFS não são afetados.

Alguns dos serviços do Studio Classic, como o Data Wrangler, são executados em sua própria aplicação. Para atualizar esses serviços, você deve excluir a aplicação desse serviço. Para saber mais, consulte [Encerre e atualize os aplicativos do Amazon SageMaker Studio Classic](studio-tasks-update-apps.md).

**nota**  
Um JupyterServer aplicativo está associado a um único usuário do Studio Classic. Quando você atualiza a aplicação para um usuário, isso não afeta outros usuários.

A página a seguir mostra como atualizar o JupyterServer aplicativo a partir do console de SageMaker IA, do Studio ou de dentro do Studio Classic.

## Desligue e atualize a partir do console de SageMaker IA
<a name="studio-tasks-update-studio-console"></a>

1. Acesse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Selecione o domínio que inclui a aplicação Studio Classic que você deseja atualizar.

1. Em **Perfis de usuário**, selecione seu nome de usuário.

1. Em **Aplicativos**, na linha exibida **JupyterServer**, escolha **Ação** e, em seguida, escolha **Excluir**.

1. Escolha **Sim, excluir aplicação**.

1. Digite **delete** na caixa de confirmação.

1. Escolha **Excluir**.

1. Depois que a aplicação for excluído, inicie um nova aplicação Studio Classic para obter a versão mais recente.

## Encerrar e atualizar o Studio
<a name="studio-tasks-update-studio-updated"></a>

1. Navegue até o Studio seguindo as etapas em[Inicie o Amazon SageMaker Studio](studio-updated-launch.md).

1. Na interface do usuário do Studio, encontre o painel de aplicações no lado esquerdo.

1. No painel de aplicações, selecione **Studio Classic**.

1. Na página inicial do Studio Classic, selecione a instância do Studio Classic a ser interrompida.

1. Escolha **Parar**.

1. Depois que a aplicação for interrompido, selecione **Executar** para usar a versão mais recente.

## Encerrar e atualizar de dentro do Studio Classic
<a name="studio-tasks-update-studio-classic"></a>

1. Execute o Studio Classic.

1. No menu superior, escolha **Arquivo** e **Encerrar**.

1. Escolha uma das seguintes opções:
   + **Desligar servidor** — Encerra o JupyterServer aplicativo. Sessões de terminal, sessões de kernel, SageMaker imagens e instâncias não são encerradas. Esses recursos continuam acumulando cobranças.
   + **Desligar tudo** — Encerra todos os aplicativos, sessões de terminal, sessões de kernel, SageMaker imagens e instâncias. Esses recursos não acumulam mais cobranças.

1. Fechar a janela.

1. Depois que a aplicação for excluído, inicie um nova aplicação Studio Classic para usar a versão mais recente.

# Encerre e atualize os aplicativos do Amazon SageMaker Studio Classic
<a name="studio-tasks-update-apps"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Para atualizar um aplicativo Amazon SageMaker Studio Classic para a versão mais recente, você deve primeiro desligar o KernelGateway aplicativo correspondente do console de SageMaker IA. Depois que o KernelGateway aplicativo for encerrado, você deverá reabri-lo por meio do SageMaker Studio Classic executando um novo kernel. O kernel é atualizado automaticamente. Todas as informações do caderno não salvas são perdidas no processo. Os dados do usuário no volume do Amazon EFS não são afetados.

Depois que um aplicativo é encerrado por 24 horas, a SageMaker IA exclui todos os metadados do aplicativo. Para serem considerados uma atualização e reterem os metadados da aplicação, elas devem ser reiniciadas dentro de 24 horas após o encerramento da aplicação anterior. Após essa janela de tempo, a criação de uma aplicação é considerada um nova aplicação em vez de uma atualização da aplicação anterior.

**nota**  
Um KernelGateway aplicativo está associado a um único usuário do Studio Classic. Quando você atualiza a aplicação para um usuário, isso não tem efeito em outros usuários.

**Para atualizar o KernelGateway aplicativo**

1. Acesse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Selecione o domínio que inclui a aplicação que você deseja atualizar.

1. Em **Perfis de usuário**, selecione seu nome de usuário.

1. Em **Aplicações**, na linha que exibe o **Nome da aplicação**, escolha **Ação** e **Excluir** 

   Para atualizar o Data Wrangler, exclua o aplicativo que começa com. **sagemaker-data-wrang**

1. Escolha **Sim, excluir aplicação**.

1. Digite **delete** na caixa de confirmação.

1. Escolha **Excluir**.

1. Depois que a aplicação for excluído, inicie um novo kernel no Studio Classic para usar a versão mais recente.

# Preços do Amazon SageMaker Studio Classic
<a name="studio-pricing"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

Quando o primeiro membro da sua equipe se integra ao Amazon SageMaker Studio Classic, a Amazon SageMaker AI cria um volume do Amazon Elastic File System (Amazon EFS) para a equipe. Quando esse membro, ou qualquer membro da equipe, abre o Studio Classic, um diretório inicial é criado no volume para o membro. Uma cobrança de armazenamento é gerada para esse diretório. Posteriormente, cobranças adicionais de armazenamento são geradas para os cadernos e arquivos de dados armazenados no diretório de base do membro. Para obter informações sobre preços do Amazon EFS , consulte [Definição de preço do Amazon EFS](https://aws.amazon.com/efs/pricing/).

Custos adicionais podem incorrer quando outras operações forem executadas no Studio, por exemplo, a execução de um caderno, a execução de trabalhos de treinamento e a hosting de um modelo.

Para obter informações sobre os custos associados ao uso de cadernos do Studio Classic, consulte [Medição de uso para notebooks Amazon SageMaker Studio Classic](notebooks-usage-metering.md).

Para obter informações sobre faturamento e exemplos de preços, consulte [Amazon SageMaker Pricing](https://aws.amazon.com/sagemaker/pricing/).

Se o Amazon SageMaker Studio for sua experiência padrão, consulte [Preços do Amazon SageMaker Studio](studio-updated-cost.md) para obter mais informações sobre preços.

# Solução de problemas do Amazon SageMaker Studio Classic
<a name="studio-troubleshooting"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Este tópico descreve como solucionar problemas comuns do Amazon SageMaker Studio Classic durante a configuração e o uso. A seguir estão os erros comuns que podem ocorrer ao usar o Amazon SageMaker Studio Classic. Cada erro é seguido por sua solução.

## Problemas de aplicações do Studio Classic
<a name="studio-troubleshooting-ui"></a>

 Os problemas a seguir ocorrem ao iniciar e usar a aplicação Studio Classic.
+ **A tela não carrega: limpar o espaço de trabalho e esperar não ajuda**

  Ao iniciar a aplicação Studio Classic, um pop-up exibe a seguinte mensagem: Independentemente da opção selecionada, o Studio Classic não carrega. 

  ```
  Loading...
  The loading screen is taking a long time. Would you like to clear the workspace or keep waiting?
  ```

  A aplicação Studio Classic pode ter um atraso na inicialização se várias guias estiverem abertas no espaço de trabalho do Studio ou se vários arquivos estiverem no Amazon EFS. Esse pop-up deve desaparecer em alguns segundos depois que a área de trabalho do Studio Classic estiver pronta. 

  Se você continuar vendo uma tela de carregamento com um botão giratório depois de selecionar qualquer uma das opções, pode haver problemas de conectividade com a Nuvem privada virtual da Amazon usada pelo Studio Classic.  

  Para resolver problemas de conectividade com a Amazon Virtual Private Cloud (Amazon VPC) usada pelo Studio Classic, verifique as seguintes configurações de rede:
  + Se o seu domínio estiver configurado no `VpcOnly` modo: verifique se há um endpoint Amazon VPC ou um gateway NAT para AWS STS tráfego de saída, incluindo tráfego pela Internet. Para isso, siga as etapas em [Conectar os cadernos do Studio em uma VPC para recursos externos](studio-notebooks-and-internet-access.md). 
  + Se sua Amazon VPC estiver configurada com um DNS personalizado em vez do DNS fornecido pela Amazon: verifique se as rotas estão configuradas usando o Protocolo de Configuração Dinâmica de Host (DHCP) para cada endpoint da Amazon VPC adicionado ao Amazon endpoint da VPC Usado pelo Studio Classic. Para obter mais informações sobre como definir conjuntos de opções de DHCP padrão e personalizados, consulte [Conjuntos de opções de DHCP na Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html). 
+ ****Falha interna** ao iniciar o Studio**

  Ao iniciar o Studio Classic, você não consegue visualizar a interface do usuário do Studio Classic. Você também vê um erro semelhante ao seguinte, com **Falha interna** como detalhe do erro: 

  ```
  Amazon SageMaker Studio
  The JupyterServer app default encountered a problem and was stopped.
  ```

  Esse erro pode ser causado por vários fatores. Se a conclusão dessas etapas não resolver seu problema, crie um problema com https://aws.amazon.com/premiumsupport/.  
  + **Alvo de montagem ausente do Amazon EFS**: o Studio usa o Amazon EFS para armazenamento. O volume do Amazon EFS precisa de um destino de montagem para cada sub-rede na qual o domínio Amazon SageMaker AI é criado. Se esse destino de montagem do Amazon EFS for excluído acidentalmente, a aplicação Studio Classic não poderá ser carregado porque não poderá montar o diretório de arquivos do usuário. Para resolver esse problema, siga as etapas a seguir. 

**Para verificar ou criar destinos de montagem.**

    1. Encontre o volume do Amazon EFS associado ao domínio usando a chamada de [DescribeDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeDomain.html)API.  

    1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon EFS em [ https://console.aws.amazon.com/efs/](https://console.aws.amazon.com/efs/).

    1. Na lista de volumes do Amazon EFS, selecione o volume do Amazon EFS associado ao domínio. 

    1. Na página de detalhes do Amazon EFS, selecione a guia **Rede**. Verifique se há destinos de montagem para todas as sub-redes nas quais o domínio está configurado. 

    1. Se os destinos de montagem estiverem ausentes, adicione os alvos de montagem ausentes do Amazon EFS. Para obter instruções, consulte [Criar e gerenciar destinos de montagem e grupos de segurança](https://docs.aws.amazon.com/efs/latest/ug/accessing-fs.html). 

    1. Depois que os destinos de montagem ausentes forem criados, inicie a aplicação do Studio Classic. 
  + **Arquivos conflitantes na `.local` pasta do usuário**: se você estiver usando a JupyterLab versão 1 no Studio Classic, bibliotecas conflitantes na sua `.local` pasta podem causar problemas ao iniciar o aplicativo Studio Classic. Para resolver isso, atualize a JupyterLab versão padrão do seu perfil de usuário para JupyterLab 3.0. Para obter mais informações sobre como visualizar e atualizar a JupyterLab versão, consulte[JupyterLab Controle de versão no Amazon Studio Classic SageMaker](studio-jl.md). 
+ ****ConfigurationError: LifecycleConfig** ao iniciar o Studio Classic**

  Você não pode ver a interface do usuário do Studio Classic ao iniciar o Studio Classic. Isso é causado por problemas com o script de configuração do ciclo de vida padrão anexado ao domínio.

**Para resolver problemas de configuração do ciclo de vida**

  1. Veja os Amazon CloudWatch Logs da configuração do ciclo de vida para rastrear o comando que causou a falha. Para ver o log, siga as etapas em [Verifique o processo de configuração do ciclo de vida a partir do Logs CloudWatch](studio-lcc-debug.md#studio-lcc-debug-logs). 

  1. Desassocie o script padrão do perfil ou domínio do usuário. Para obter mais informações, consulte [Atualize e separe configurações de ciclo de vida no Amazon Studio Classic SageMaker](studio-lcc-delete.md). 

  1. Inicie a aplicação Studio Classic. 

  1. Depure seu script de configuração do ciclo de vida. Você pode executar o script de configuração do ciclo de vida no terminal do sistema para solucionar problemas. Quando o script é executado com êxito no terminal, você pode anexar o script ao perfil do usuário ou ao domínio. 
+ **SageMaker As funcionalidades principais do Studio Classic não estão disponíveis.**

  Se você receber essa mensagem de erro ao abrir o Studio Classic, pode ser devido a conflitos de versão do pacote Python. Isso ocorre se você usou os seguintes comandos em um notebook ou terminal para instalar pacotes Python que têm conflitos de versão com dependências de pacotes de SageMaker IA.

  ```
  !pip install
  ```

  ```
  pip install --user
  ```

  Para resolver esse problema, siga as seguintes etapas:

  1. Desinstale os pacotes Python instalados recentemente. Se você não tiver certeza de qual pacote desinstalar, crie um problema com https://aws.amazon.com/premiumsupport/. 

  1. Reiniciar o Studio Classic:

     1. Encerre o Studio Classic no menu **Arquivo**.

     1. Aguarde um minuto.

     1. Reabra o Studio Classic atualizando a página ou abrindo-a a partir do Console de gerenciamento da AWS.

  O problema deve ser resolvido se você tiver desinstalado o pacote que causou o conflito. Para instalar pacotes sem causar esse problema novamente, use `%pip install` sem o sinalizador `--user`.

  Se o problema persistir, crie um novo perfil de usuário e configure seu ambiente com esse perfil de usuário.

  Se essas soluções não resolverem o problema, crie um problema com https://aws.amazon.com/premiumsupport/. 
+ **Não é possível abrir o Studio Classic a partir do Console de gerenciamento da AWS.**

  Se você não conseguir abrir o Studio Classic e não conseguir criar uma nova instância em execução com todas as configurações padrão, crie um problema com https://aws.amazon.com/premiumsupport/. 

## KernelGateway problemas de aplicação
<a name="studio-troubleshooting-kg"></a>

 Os problemas a seguir são específicos KernelGateway dos aplicativos lançados no Studio Classic. 
+ **Não é possível acessar a sessão do Kernel**

  Quando o usuário inicia um novo caderno, ele não consegue se conectar à sessão do caderno. Se o status do KernelGateway aplicativo for`In Service`, você poderá verificar o seguinte para resolver o problema. 
  + **Verifique as configurações do grupo de segurança**

    Se o domínio estiver configurado no `VPCOnly` modo, o grupo de segurança associado ao domínio deverá permitir o tráfego entre as portas no intervalo `8192-65535` para conectividade entre os KernelGateway aplicativos JupyterServer e.

**Para verificar as regras de grupos de segurança**

    1. Obtenha os grupos de segurança associados ao domínio usando a chamada de [DescribeDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeDomain.html)API.

    1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon VPC em. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)

    1. No painel de navegação esquerdo, em **Segurança**, escolha **Grupos de Segurança**.

    1. Filtre pelos IDs grupos de segurança associados ao domínio.

    1. Para cada grupo de segurança: 

       1. Selecione o grupo de segurança . 

       1. Na página de detalhes do grupo de segurança, veja as **regras de entrada**. Verifique se o tráfego é permitido entre as portas no intervalo `8192-65535`. 

    Para mais informações sobre regras de grupos de segurança, consulte [Controle o tráfego para recursos usando grupos de segurança](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#working-with-security-group-rules). Para obter mais informações sobre os requisitos para usar o Studio Classic no modo `VPCOnly`, consulte [Conectar os cadernos do Studio em uma VPC para recursos externos](studio-notebooks-and-internet-access.md).
  + **Verifique o firewall e WebSocket as conexões**

    Se os KernelGateway aplicativos tiverem um `InService` status e o usuário não conseguir se conectar à sessão do notebook Studio Classic, verifique o firewall e WebSocket as configurações. 

    1. Inicie a aplicação Studio Classic. Para obter mais informações, consulte [Inicie o Amazon SageMaker Studio Classic](studio-launch.md). 

    1. Abra as ferramentas de desenvolvedor do seu navegador da Web. 

    1. Escolha a guia **Redes**. 

    1. Procure uma entrada que corresponda ao formato a seguir.

       ```
       wss://<domain-id>.studio.<region>.sagemaker.aws/jupyter/default/api/kernels/<unique-code>/channels?session_id=<unique-code>
       ```

       Se o status ou o código de resposta da entrada for diferente de`101`, suas configurações de rede estão impedindo a conexão entre o aplicativo Studio Classic e os KernelGateway aplicativos.

       Para resolver esse problema, entre em contato com a equipe que gerencia suas configurações de rede para permitir listar o URL do Studio Classic e ativar WebSocket conexões.  
+ **Não é possível iniciar uma aplicação devido ao excesso de cotas de recursos**

  Quando um usuário tenta iniciar um novo caderno, a criação do caderno falha com um dos seguintes erros: Isso é causado pela superação das cotas de recursos. 
  + 

    ```
    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
    ```

    O Studio Classic suporta até quatro KernelGateway aplicativos em execução na mesma instância. Para resolver esse problema, você pode realizar um dos seguintes procedimentos:
    + Exclua um KernelGateway aplicativo existente em execução na instância e reinicie o novo notebook.
    + Inicie o novo caderno em um tipo de instância diferente

     Para obter mais informações, consulte [Alterar o tipo de instância de um notebook Amazon SageMaker Studio Classic](notebooks-run-and-manage-switch-instance-type.md).
  + 

    ```
    An error occurred (ResourceLimitExceeded) when calling the CreateApp operation
    ```

    Nesse caso, a conta não tem limites suficientes para criar uma aplicação Studio Classic no tipo de instância especificado. Para resolver isso, navegue até o Service Quotas console em [https://console.aws.amazon.com/servicequotas/](https://console.aws.amazon.com/servicequotas/). Nesse console, solicite o aumento do limite do `Studio KernelGateway Apps running on instance-type instance`. Para obter mais informações, consulte as [Service Quotas do AWS](https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html). 

# SageMaker JupyterLab
<a name="studio-updated-jl"></a>

Crie um JupyterLab espaço no Amazon SageMaker Studio para iniciar o JupyterLab aplicativo. Um JupyterLab espaço é um espaço privado ou compartilhado no Studio que gerencia os recursos de armazenamento e computação necessários para executar o JupyterLab aplicativo. O JupyterLab aplicativo é um ambiente de desenvolvimento interativo (IDE) baseado na Web para notebooks, códigos e dados. Use a interface flexível e abrangente do JupyterLab aplicativo para configurar e organizar fluxos de trabalho de aprendizado de máquina (ML).

Por padrão, o JupyterLab aplicativo vem com a imagem SageMaker de distribuição. A imagem de distribuição tem pacotes bastante conhecidos, como os seguintes:
+ PyTorch
+ TensorFlow
+ Keras
+ NumPy
+ Pandas
+ Scikit-learn

Você pode usar espaços compartilhados para colaborar em seus cadernos Jupyter com outros usuários em tempo real. Para obter mais informações sobre espaços compartilhados, consulte [Colaboração com espaços compartilhados](domain-space.md).

Dentro do JupyterLab aplicativo, você pode usar o Amazon Q Developer, um companheiro de código generativo baseado em IA para gerar, depurar e explicar seu código. Para mais informações a respeito de como usar o Amazon Q Developer, consulte [JupyterLab guia do usuário](studio-updated-jl-user-guide.md). Para mais informações sobre a configuração do Amazon Q Developer, consulte [JupyterLab guia do administrador](studio-updated-jl-admin-guide.md).

Crie analytics unificadas e fluxos de trabalho de ML no mesmo caderno Jupyter. Execute Spark trabalhos interativos no Amazon EMR e na infraestrutura AWS Glue sem servidor, diretamente do seu notebook. Monitore e depure trabalhos com mais rapidez usando a interface de usuário embutida Spark. Em algumas etapas, você pode automatizar sua preparação de dados agendando o caderno como um trabalho.

O JupyterLab aplicativo ajuda você a trabalhar em colaboração com seus colegas. Use a integração Git embutida no JupyterLab IDE para compartilhar e criar uma versão do código. Traga seu próprio sistema de armazenamento de arquivos se você tiver um volume do Amazon EFS.

O JupyterLab aplicativo é executado em uma única instância do Amazon Elastic Compute Cloud (Amazon EC2) e usa um único volume do Amazon Elastic Block Store (Amazon EBS) para armazenamento. Você pode alternar instâncias mais rapidamente ou aumentar o tamanho do volume do Amazon EBS de acordo com suas necessidades.

O aplicativo JupyterLab 4 é executado em um JupyterLab espaço dentro do Studio. O Studio Classic usa o aplicativo JupyterLab 3. JupyterLab 4 oferece os seguintes benefícios:
+ Um IDE mais rápido que o Amazon SageMaker Studio Classic, especialmente com notebooks grandes
+ Pesquisa aprimorada de documentos
+ Um editor de texto mais acessível e com melhor desempenho

Para obter mais informações sobre JupyterLab, consulte a [JupyterLabdocumentação](https://jupyterlab.readthedocs.io/en/stable/#).

**Topics**
+ [JupyterLab guia do usuário](studio-updated-jl-user-guide.md)
+ [JupyterLab guia do administrador](studio-updated-jl-admin-guide.md)

# JupyterLab guia do usuário
<a name="studio-updated-jl-user-guide"></a>

Este guia mostra JupyterLab aos usuários como executar fluxos de trabalho de análise e aprendizado de máquina no SageMaker Studio. Você pode obter armazenamento rápido e escalar sua computação para cima ou para baixo, dependendo de suas necessidades.

JupyterLab suporta espaços privados e compartilhados. Os espaços privados têm como escopo um único usuário em um domínio. Os espaços compartilhados permitem que outros usuários em seu domínio colaborem com você em tempo real. Para ter informações sobre como usar espaços do Studio, consulte [Espaços do Amazon SageMaker Studio](studio-updated-spaces.md).

Para começar a usar JupyterLab, crie um espaço e inicie seu JupyterLab aplicativo. O espaço que executa seu JupyterLab aplicativo é um JupyterLab espaço. O JupyterLab espaço usa uma única instância do Amazon EC2 para sua computação e um único volume do Amazon EBS para seu armazenamento. Tudo em seu espaço, como seu código, perfil git e variáveis de ambiente, é armazenado no mesmo volume do Amazon EBS. O volume tem 3.000 IOPS e uma taxa de transferência de 125 megabytes por segundo (). MBps Você pode usar o armazenamento rápido para abrir e executar vários cadernos Jupyter na mesma instância. Você também pode trocar os kernels em um caderno muito rapidamente.

Seu administrador definiu as configurações padrão de armazenamento do Amazon EBS para o seu espaço. O tamanho de armazenamento padrão é 5 GB, mas você pode aumentar a quantidade de espaço disponível. Você pode falar com seu administrador para fornecer diretrizes.

Você pode alternar o tipo de instância do Amazon EC2 que você está usando para executar JupyterLab, aumentando ou diminuindo sua computação de acordo com suas necessidades. As instâncias de **Início Rápido** iniciam muito mais rápido do que as outras instâncias.

Seu administrador pode fornecer uma configuração de ciclo de vida que personalize seu ambiente. É possível especificar a configuração do ciclo de vida ao criar o espaço.

Se seu administrador lhe der acesso a um Amazon EFS, você poderá configurar seu JupyterLab espaço para acessá-lo.

Por padrão, o JupyterLab aplicativo usa a imagem SageMaker de distribuição. Isso inclui compatibilidade com vários pacotes de machine learning, analytics e aprendizado profundo. No entanto, se você precisar de uma imagem personalizada, seu administrador poderá ajudar a fornecer acesso às imagens personalizadas.

O volume do Amazon EBS persiste independentemente da vida útil de uma instância. Você não perderá seus dados ao alterar as instâncias. Use as bibliotecas de gerenciamento de pacotes conda e pip para criar ambientes personalizados reproduzíveis que persistem mesmo quando você alterna os tipos de instância.

Depois de abrir JupyterLab, você pode configurar seu ambiente usando o terminal. Para abrir o terminal, navegue até o **Iniciador** e escolha **Terminal**.

Veja a seguir exemplos de diferentes maneiras pelas quais você pode configurar um ambiente JupyterLab.

**nota**  
No Studio, você pode usar configurações de ciclo de vida para personalizar seu ambiente, mas recomendamos usar um gerenciador de pacotes. Usar configurações de ciclo de vida é um método mais propenso a erros. É mais fácil adicionar ou remover dependências do que depurar um script de configuração do ciclo de vida. Também pode aumentar o tempo de JupyterLab inicialização.  
Para informações sobre a configuração de ciclo de vida, consulte [Configurações de ciclo de vida com JupyterLab](jl-lcc.md).

**Topics**
+ [Criar um espaço](studio-updated-jl-user-guide-create-space.md)
+ [Configurar um espaço](studio-updated-jl-user-guide-configure-space.md)
+ [Personalize seu ambiente usando um gerenciador de pacotes](studio-updated-jl-user-guide-customize-package-manager.md)
+ [Limpe o ambiente de um conda](studio-updated-jl-clean-up-conda.md)
+ [Compartilhe ambientes conda entre tipos de instância](studio-updated-jl-create-conda-share-environment.md)
+ [Use o Amazon Q para agilizar seus fluxos de trabalho de Machine Learning](studio-updated-jl-user-guide-use-amazon-q.md)

# Criar um espaço
<a name="studio-updated-jl-user-guide-create-space"></a>

Para começar a usar JupyterLab, crie um espaço ou escolha o espaço que seu administrador criou para você e abra JupyterLab.

Use o procedimento a seguir para criar um espaço e abrir JupyterLab.

**Para criar um espaço e abrir JupyterLab**

1. Abra o Studio. Para informações sobre como abrir o Studio, consulte [Inicie o Amazon SageMaker Studio](studio-updated-launch.md).

1. Selecione **JupyterLab**.

1. Escolha **Criar JupyterLab espaço**.

1. Em **Nome**, especifique o nome do espaço.

1. (Opcional) Selecione **Compartilhar com meu domínio** para criar um espaço compartilhado.

1. Selecione **Criar espaço**.

1. (Opcional) Por **exemplo**, especifique a instância do Amazon EC2 que executa o espaço.

1. (Opcional) Para **Imagem**, especifique uma imagem fornecida pelo administrador para personalizar seu ambiente.
**Importante**  
As políticas do IAM personalizadas que permitem que os usuários do Studio criem espaços devem conceder permissões também para listar imagens (`sagemaker: ListImage`) para visualizar imagens personalizadas. Para adicionar a permissão, consulte [Adicionar ou remover permissões de identidade](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) no Guia do usuário do *AWS Identity and Access Management*.   
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar recursos de SageMaker IA já incluem permissões para listar imagens ao criar esses recursos.

1. (Opcional) Para **Configurações de espaço**, especifique o seguinte:
   + **Armazenamento (GB)**: Até 100 GB ou a quantidade especificada pelo administrador.
   + **Configuração do ciclo de vida**: Uma configuração de ciclo de vida que seu administrador especifica.
   + **Anexe um sistema de arquivos EFS personalizado**: Um Amazon EFS ao qual seu administrador fornece acesso.

1. Escolha **Executar espaço**.

1. Escolha **Open (Abrir) JupyterLab**.

# Configurar um espaço
<a name="studio-updated-jl-user-guide-configure-space"></a>

Depois de criar um JupyterLab espaço, você pode configurá-lo para fazer o seguinte:
+ Alterar o tipo de instância.
+ Alterar o volume de armazenamento.
+ (É necessária a configuração do administrador) Use uma imagem personalizada.
+ (É necessária a configuração do administrador) Use uma configuração de ciclo de vida.
+ (É necessária a configuração do administrador.) Anexe um Amazon EFS personalizado.

**Importante**  
Você deve parar o JupyterLab espaço toda vez que configurá-lo. Siga o procedimento a seguir para configurar o espaço.

**Para configurar um espaço**

1. No Studio, navegue até a página do JupyterLab aplicativo.

1. Escolha o nome do espaço.

1. (Opcional) Para **Imagem**, especifique uma imagem fornecida pelo administrador para personalizar seu ambiente.
**Importante**  
As políticas do IAM personalizadas que permitem que os usuários do Studio criem espaços devem conceder permissões também para listar imagens (`sagemaker: ListImage`) para visualizar imagens personalizadas. Para adicionar a permissão, consulte [Adicionar ou remover permissões de identidade](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) no Guia do usuário do *AWS Identity and Access Management*.   
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar recursos de SageMaker IA já incluem permissões para listar imagens ao criar esses recursos.

1. (Opcional) Para **Configurações de espaço**, especifique o seguinte:
   + **Armazenamento (GB)**: Até 100 GB ou a quantidade que seu administrador configurou para o espaço.
   + **Configuração do ciclo de vida: Uma configuração** de ciclo de vida fornecida pelo administrador.
   + **Anexe um sistema de arquivos EFS personalizado**: Um Amazon EFS ao qual seu administrador fornece acesso.

1. Escolha **Executar espaço**.

Quando você abre o JupyterLab aplicativo, seu espaço tem a configuração atualizada.

# Personalize seu ambiente usando um gerenciador de pacotes
<a name="studio-updated-jl-user-guide-customize-package-manager"></a>

Use pip ou conda para personalizar seu ambiente. Recomendamos usar gerenciadores de pacotes em vez de scripts de configuração do ciclo de vida. 

## Crie e ative seu ambiente personalizado
<a name="studio-updated-jl-create-basic-conda"></a>

Esta seção fornece exemplos de maneiras diferentes de configurar um ambiente em JupyterLab.

Um ambiente conda básico tem o número mínimo de pacotes necessários para seus fluxos de trabalho em SageMaker IA. Use o seguinte modelo para criar um ambiente conda básico:

```
# 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
```

A imagem a seguir mostra a localização do ambiente que você criou.

![\[O ambiente test-env é exibido no canto superior direito da tela.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/juptyer-notebook-environment-location.png)


Para alterar seu ambiente, escolha-o e selecione uma opção no menu suspenso.

![\[A marca de seleção e o texto correspondente mostram um exemplo de ambiente que você criou anteriormente.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/jupyter-notebook-select-env.png)


Escolha **Selecionar** para selecionar um kernel para o ambiente.

## Crie um ambiente conda com uma versão específica do Python
<a name="studio-updated-jl-create-conda-version"></a>

Limpar ambientes conda que você não está usando pode ajudar a liberar espaço em disco e melhorar o desempenho. Use o seguinte modelo para limpar um 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
```

## Crie um ambiente conda com um conjunto específico de pacotes
<a name="studio-updated-jl-create-conda-specific-packages"></a>

Use o seguinte modelo para criar um ambiente conda com uma versão específica do Python e um conjunto de pacotes:

```
# 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
```

## Clone conda de um ambiente existente
<a name="studio-updated-jl-create-conda-clone"></a>

Clone seu ambiente conda para preservar seu estado de funcionamento. Você testa no ambiente clonado sem precisar se preocupar em introduzir alterações significativas em seu ambiente de teste.

Use o seguinte comando para clonar um 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
```

## Clone conda de um arquivo YAML de referência
<a name="studio-updated-jl-create-conda-yaml"></a>

Crie um ambiente conda a partir de um arquivo YAML de referência. A seguir, um exemplo de um arquivo YAML que você pode usar.

```
# 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
```

Em `pip`, recomendamos especificar apenas as dependências que não estão disponíveis com o conda.

Use os comandos a seguir para criar um ambiente conda a partir de um arquivo YAML.

```
# create your conda environment 
conda env create -f environment.yml

# activate your env
conda activate py311-new-env
```

# Limpe o ambiente de um conda
<a name="studio-updated-jl-clean-up-conda"></a>

Limpar ambientes conda que você não está usando pode ajudar a liberar espaço em disco e melhorar o desempenho. Use o seguinte modelo para limpar um 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
```

# Compartilhe ambientes conda entre tipos de instância
<a name="studio-updated-jl-create-conda-share-environment"></a>

Você pode compartilhar ambientes conda salvando-os em um diretório do Amazon EFS fora do seu volume do Amazon EBS. Outro usuário pode acessar o ambiente no diretório em que você o salvou.

**Importante**  
Há limitações no compartilhamento de seus ambientes. Por exemplo, não recomendamos um ambiente destinado a ser executado em uma instância de GPU do Amazon EC2 em vez de um ambiente executado em uma instância de CPU.

Use os comandos a seguir como modelo para especificar o diretório de destino em que você está criando um ambiente personalizado. Você está criando um conda dentro de um caminho específico. Você o cria dentro do diretório Amazon EFS. Você pode criar uma nova instância e fazer o caminho de ativação do conda e fazê-lo dentro do 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
```

# Use o Amazon Q para agilizar seus fluxos de trabalho de Machine Learning
<a name="studio-updated-jl-user-guide-use-amazon-q"></a>

O Amazon Q Developer é seu companheiro baseado em IA para o desenvolvimento de machine learning. Com o Amazon Q Developer, você pode:
+ Receba step-by-step orientações sobre como usar os recursos de SageMaker IA de forma independente ou em combinação com outros AWS serviços.
+ Obtenha um código de amostra para começar suas tarefas de ML, como preparação de dados, treinamento, inferência e. MLOps
+ Receber assistência na solução de problemas para depurar e resolver erros encontrados durante a execução do código.

O Amazon Q Developer se integra perfeitamente ao seu JupyterLab ambiente. Para usar o Amazon Q Developer, escolha o **Q** na navegação à esquerda do seu JupyterLab ambiente ou do ambiente do Editor de código.

Se você não vê o ícone **Q**, seu administrador precisa configurá-lo para você. Para mais informações sobre a configuração do Amazon Q Developer, consulte [Configurar o Amazon Q Developer para seus usuários](studio-updated-amazon-q-admin-guide-set-up.md).

O Amazon Q fornece sugestões automaticamente para ajudar você a escrever seu código. Você também pode pedir sugestões por meio da interface de bate-papo.

# JupyterLab guia do administrador
<a name="studio-updated-jl-admin-guide"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Este guia para administradores descreve JupyterLab recursos de SageMaker IA, como os do Amazon Elastic Block Store (Amazon EBS) e do Amazon Elastic Compute Cloud (Amazon EC2). Os tópicos também mostram como fornecer acesso ao usuário e alterar o tamanho do armazenamento. 

Um JupyterLab espaço de SageMaker IA é composto pelos seguintes recursos:
+ Um volume distinto do Amazon EBS que armazena todos os dados, como o código e as variáveis de ambiente. 
+ A instância do Amazon EC2 usada para executar o espaço.
+ A imagem usada para ser executada JupyterLab.

**nota**  
As aplicações não têm acesso ao volume do EBS de outras aplicações. Por exemplo, o Code Editor, baseado em Code-OSS, Visual Studio Code - Open Source não tem acesso ao volume do EBS para. JupyterLab Para mais informações, consulte [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html).

Você pode usar a SageMaker API da Amazon para fazer o seguinte:
+ Alterar o tamanho de armazenamento padrão do volume do EBS para seus usuários.
+ Alterar o tamanho máximo do armazenamento do EBS
+ Especifique as configurações do usuário para a aplicação. Por exemplo, você pode especificar se o usuário está usando uma imagem personalizada ou um repositório de código.
+ Especifique o tipo de aplicação de apoio.

O tamanho padrão do volume do Amazon EBS é de 5 GB. Você pode aumentar o tamanho do volume para um máximo de 16.384 GB. Se você não fizer nada, seus usuários poderão aumentar o tamanho do volume para 100 GB. O tamanho do volume só pode ser alterado uma vez em um período de seis horas.

Os kernels associados ao JupyterLab aplicativo são executados na mesma instância do Amazon EC2 que é executada. JupyterLab Quando você cria um espaço, a versão mais recente da Imagem de SageMaker Distribuição é usada por padrão. Para obter mais informações sobre imagens SageMaker de distribuição, consulte[SageMaker Política de suporte de imagem do Studio](sagemaker-distribution.md).

**Importante**  
Para obter informações sobre como atualizar o espaço para usar a versão mais recente da SageMaker AI Distribution Image, consulte[Atualizar a imagem SageMaker de distribuição](studio-updated-jl-update-distribution-image.md).

O diretório de trabalho de seus usuários dentro do volume de armazenamento é `/home/sagemaker-user`. Se você especificar sua própria AWS KMS chave para criptografar o volume, tudo no diretório de trabalho será criptografado usando sua chave gerenciada pelo cliente. Se você não especificar uma AWS KMS chave, os dados internos `/home/sagemaker-user` serão criptografados com uma chave AWS gerenciada. Independentemente de você especificar uma AWS KMS chave, todos os dados fora do diretório de trabalho são criptografados com uma chave AWS gerenciada.

As seções a seguir o instruem ao longo das configurações que você precisa executar como administrador.

**Topics**
+ [Conceda aos seus usuários acesso aos espaços](studio-updated-jl-admin-guide-permissions.md)
+ [Altere o tamanho de armazenamento padrão para seus JupyterLab usuários](studio-updated-jl-admin-guide-storage-size.md)
+ [Configurações de ciclo de vida com JupyterLab](jl-lcc.md)
+ [Repositórios Git em JupyterLab](studio-updated-jl-admin-guide-git-attach.md)
+ [Imagens personalizadas](studio-updated-jl-admin-guide-custom-images.md)
+ [Atualizar a imagem SageMaker de distribuição](studio-updated-jl-update-distribution-image.md)
+ [Excluir recursos não utilizados](studio-updated-jl-admin-guide-clean-up.md)
+ [Cotas](studio-updated-jl-admin-guide-quotas.md)

# Conceda aos seus usuários acesso aos espaços
<a name="studio-updated-jl-admin-guide-permissions"></a>

Para dar aos usuários acesso a espaços privados ou compartilhados, você deve anexar uma política de permissões aos perfis de IAM. Você também pode usar a política de permissões para restringir espaços privados e suas aplicações associados a um perfil de usuário específico.

A política de permissões a seguir concede acesso a espaços privados e compartilhados. Isso permite que os usuários criem seu próprio espaço e listem outros espaços em seu domínio. Um usuário com essa política não pode acessar o espaço privado de outro usuário. Para ter informações sobre como usar espaços do Studio, consulte [Espaços do Amazon SageMaker Studio](studio-updated-spaces.md).

A política fornece aos usuários permissões para o seguinte:
+ Espaços privados ou espaços compartilhados.
+ Um perfil de usuário para acessar esses espaços.

Para fornecer permissões, você pode definir o escopo das permissões da política a seguir e adicioná-las aos perfis do IAM de seus usuários. Você também pode usar essa política para restringir seus espaços e suas aplicações associados a um perfil de usuário específico.

------
#### [ 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"
          ]
        }
      }
    }
  ]
}
```

------

# Altere o tamanho de armazenamento padrão para seus JupyterLab usuários
<a name="studio-updated-jl-admin-guide-storage-size"></a>

Você pode alterar as configurações de armazenamento padrão para seus usuários. Você pode alterar também as configurações de armazenamento padrão com base nos requisitos organizacionais e nas necessidades dos seus usuários.

Para alterar o tamanho do armazenamento, esta seção fornece comandos para fazer o seguinte:

1. Atualize as configurações de armazenamento do Amazon EBS no domínio Amazon SageMaker AI (domínio).

1. Crie um perfil de usuário e especifique as configurações de armazenamento dentro dele.

Use os seguintes comandos AWS Command Line Interface (AWS CLI) para alterar o tamanho de armazenamento padrão.

Use o AWS CLI comando a seguir para atualizar o domínio:

```
aws --region Região da AWS sagemaker update-domain \
--domain-id domain-id \
--default-user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":5,
            "MaximumEbsVolumeSizeInGb":100
        }
    }
}'
```

Use o AWS CLI comando a seguir para criar o perfil do usuário e especificar as configurações de armazenamento padrão:

```
aws --region Região da AWS sagemaker create-user-profile \
--domain-id domain-id \
--user-profile-name user-profile-name \
--user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":5,
            "MaximumEbsVolumeSizeInGb":100
        }
    }
}'
```

Use os AWS CLI comandos a seguir para atualizar as configurações de armazenamento padrão no perfil do usuário:

```
aws --region Região da AWS sagemaker update-user-profile \
--domain-id domain-id \
--user-profile-name user-profile-name \
--user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":25,
            "MaximumEbsVolumeSizeInGb":200
        }
    }
}'
```

# Configurações de ciclo de vida com JupyterLab
<a name="jl-lcc"></a>

As configurações do ciclo de vida são scripts de shell que são acionados por eventos JupyterLab do ciclo de vida, como iniciar um novo notebook. JupyterLab Você pode usar configurações de ciclo de vida para automatizar a personalização do seu ambiente. JupyterLab Essa personalização inclui a instalação de pacotes personalizados, a configuração de extensões do caderno, o pré-carregamento de conjuntos de dados e a configuração de repositórios de código-fonte.

O uso de configurações de ciclo de vida oferece flexibilidade e controle de configuração para atender JupyterLab às suas necessidades específicas. Por exemplo, você pode criar um conjunto mínimo de imagens básicas de contêiner com os pacotes e bibliotecas mais usados. Em seguida, use a configuração de ciclo de vida para instalar pacotes adicionais para casos de uso específicos em suas equipes de ciência de dados e machine learning.

**nota**  
Cada script tem um limite de **16.384 caracteres**.

**Topics**
+ [Criação de configuração do ciclo de vida](jl-lcc-create.md)
+ [Configuração de depuração do ciclo de vida](jl-lcc-debug.md)
+ [Desassociar as configurações de ciclo de vida](jl-lcc-delete.md)

# Criação de configuração do ciclo de vida
<a name="jl-lcc-create"></a>

Este tópico inclui instruções para criar e associar uma configuração de ciclo de vida com. JupyterLab Você usa o AWS Command Line Interface (AWS CLI) ou o Console de gerenciamento da AWS para automatizar a personalização do seu JupyterLab ambiente.

As configurações do ciclo de vida são scripts de shell acionados por eventos JupyterLab do ciclo de vida, como iniciar um novo notebook. JupyterLab Para obter mais informações sobre a configuração de ciclo de vida, consulte [Configurações de ciclo de vida com JupyterLab](jl-lcc.md).

## Criar uma configuração de ciclo de vida (AWS CLI)
<a name="jl-lcc-create-cli"></a>

Saiba como criar uma configuração de ciclo de vida usando o AWS Command Line Interface (AWS CLI) para automatizar a personalização do seu ambiente Studio.

### Pré-requisitos
<a name="jl-lcc-create-cli-prerequisites"></a>

Antes de começar, conclua os seguintes pré-requisitos: 
+ Atualize o AWS CLI seguindo as etapas em [Instalando a AWS CLI versão atual](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled).
+ Em sua máquina local, execute `aws configure` e forneça suas credenciais da AWS . Para obter informações sobre AWS credenciais, consulte [Entendendo e obtendo suas AWS credenciais](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 
+ Integre-se ao domínio Amazon SageMaker AI. Para obter informações conceituais, consulte [Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md). Para obter um guia de início rápido, consulte [Use a configuração rápida para Amazon SageMaker AI](onboard-quick-start.md).

### Etapa 1: criar uma configuração de ciclo de vida
<a name="jl-lcc-create-cli-step1"></a>

O procedimento a seguir mostra como criar um script de configuração do ciclo de vida que imprime `Hello World`.

**nota**  
Cada script pode ter até **16.384 caracteres**.

1. De sua máquina local, crie um arquivo denominado `my-script.sh` com o seguinte conteúdo:

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

1. Use o seguinte para converter seu arquivo `my-script.sh` no formato base64: Esse requisito evita erros que ocorram devido à codificação de espaçamento e quebra de linha.

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

1. Crie uma configuração de ciclo de vida para uso com o Studio. O comando a seguir cria uma configuração de ciclo de vida que é executada quando você inicia uma aplicação associada `JupyterLab`.

   ```
   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
   ```

   Anote o ARN da configuração de ciclo de vida recém-criada que é retornada. Esse ARN é necessário para anexar a configuração do ciclo de vida ao seu aplicativo.

### Etapa 2: anexar a configuração do ciclo de vida ao seu domínio (domínio) e perfil de usuário do Amazon SageMaker AI
<a name="jl-lcc-create-cli-step2"></a>

Para anexar a configuração do ciclo de vida, é necessário atualizar as `UserSettings` do seu domínio ou perfil de usuário. Os scripts de configuração do ciclo de vida associados no nível do domínio são herdados por todos os usuários. No entanto, os scripts associados no nível do perfil do usuário têm como escopo um usuário específico. 

Você pode criar um novo perfil de usuário, domínio ou espaço com uma configuração de ciclo de vida anexada usando os seguintes comandos:
+ [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)

O comando a seguir cria um perfil de usuário com uma configuração de ciclo de vida. Adicione o ARN da configuração do ciclo de vida da etapa anterior às `JupyterLabAppSettings` do usuário. É possível adicionar várias configurações de ciclo de vida ao mesmo tempo usando uma lista de configurações de ciclo de vida. Quando um usuário inicia um JupyterLab aplicativo com o AWS CLI, ele pode especificar uma configuração de ciclo de vida em vez de usar a configuração padrão. A configuração de ciclo de vida que o usuário passa deve pertencer à lista de configurações de ciclo de vida em `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]
  }
}'
```

## Criar uma configuração de ciclo de vida (console)
<a name="jl-lcc-create-console"></a>

Aprenda a criar uma configuração de ciclo de vida usando o Console de gerenciamento da AWS para automatizar a personalização do seu ambiente Studio.

### Etapa 1: criar uma configuração de ciclo de vida
<a name="jl-lcc-create-console-step1"></a>

O procedimento a seguir mostra como criar um script de configuração do ciclo de vida que imprime `Hello World`.

**Para criar uma configuração de ciclo de vida**

1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações administrativas**, escolha **Configurações de ciclo de vida**. 

1. Escolha a guia **JupyterLab**.

1. Escolha **Criar configuração**.

1. Para **Nome**, especifique o nome da configuração do ciclo de vida.

1. Para a caixa de texto em **Scripts**, especifique a seguinte configuração de ciclo de vida:

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

1. Escolha **Criar configuração**.

### Etapa 2: anexar a configuração do ciclo de vida ao seu domínio (domínio) e perfil de usuário do Amazon SageMaker AI
<a name="jl-lcc-create-console-step2"></a>

Os scripts de configuração do ciclo de vida associados no nível do domínio são herdados por todos os usuários. No entanto, os scripts associados no nível do perfil do usuário têm como escopo um usuário específico.

Você pode anexar várias configurações de ciclo de vida a um domínio ou perfil de usuário para. JupyterLab

Use o procedimento a seguir para anexar uma configuração de ciclo de vida a um domínio.

**Para anexar uma configuração de ciclo de vida a um domínio**

1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Na lista de domínios, selecione o domínio ao qual anexar a configuração do ciclo de vida.

1. Em **Detalhes do domínio**, escolha a guia de **Ambiente**.

1. Em **Configurações de duração para aplicações pessoais do Studio**, escolha **Anexar**.

1. Em **Origem**, escolha **Configuração existente**.

1. Em **Configurações de ciclo de vida do Studio**, selecione a configuração de ciclo de vida que você criou na etapa anterior.

1. Selecione **Anexar a domínio**.

Use o seguinte procedimento para anexar uma configuração de ciclo de vida para um perfil de usuário:

**Para anexar a configuração do ciclo de vida a um perfil de usuário**

1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Na lista de domínios, selecione o domínio que contém o perfil do usuário para anexar a configuração do ciclo de vida.

1. Em **Perfis de usuário**, selecione o perfil do usuário.

1. Na página **Detalhes do usuário**, escolha **Editar**.

1. No painel de navegação à esquerda, escolha **Configurações do Studio**.

1. Em **Configurações de ciclo de vida anexadas ao usuário**, escolha **Anexar**.

1. Em **Origem**, escolha **Configuração existente**.

1. Em **Configurações de ciclo de vida do Studio**, selecione a configuração de ciclo de vida que você criou na etapa anterior.

1. Escolha **Anexar ao perfil do usuário**.

# Configuração de depuração do ciclo de vida
<a name="jl-lcc-debug"></a>

Os tópicos a seguir mostram como obter informações e depurar as configurações de ciclo de vida.

**Topics**
+ [Verifique o processo de configuração do ciclo de vida a partir do Logs CloudWatch](#jl-lcc-debug-logs)
+ [Tempo limite de configuração do ciclo de vida](#jl-lcc-debug-timeout)

## Verifique o processo de configuração do ciclo de vida a partir do Logs CloudWatch
<a name="jl-lcc-debug-logs"></a>

Somente as configurações de ciclo de vida registram `STDOUT` e `STDERR`.

`STDOUT` é a saída padrão para scripts bash. Você pode escrever em `STDERR` anexando `>&2` ao final de um comando bash. Por exemplo, .`echo 'hello'>&2` 

Os registros de suas configurações de ciclo de vida são publicados para você usando Conta da AWS a Amazon. CloudWatch Esses registros podem ser encontrados no fluxo de `/aws/sagemaker/studio` registros no CloudWatch console.

1. Abra o CloudWatch console em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Selecione **Logs** no painel de navegação esquerdo. No menu suspenso, selecione **Grupo de logs**.

1. Na página **Grupos de logs**, pesquise por `aws/sagemaker/studio`. 

1. Selecione o grupo de logs .

1. Na página **Detalhes do grupo de logs**, escolha a guia **Fluxo de logs**.

1. Para encontrar os logs de um espaço específico, pesquise os fluxos de logs usando o seguinte formato:

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

   Por exemplo, para encontrar os logs de configuração de ciclo de vida para o ID de domínio `d-m85lcu8vbqmz`, o nome de espaço `i-sonic-js` e o tipo de aplicação `JupyterLab`, use a seguinte string de pesquisa:

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

## Tempo limite de configuração do ciclo de vida
<a name="jl-lcc-debug-timeout"></a>

Há um limite de tempo limite de configuração do ciclo de vida de 5 minutos. Se um script de configuração do ciclo de vida demorar mais de 5 minutos para ser executado, será gerado um erro.

Para resolver esse erro, certifique-se de que seu script de configuração do ciclo de vida seja concluído em menos de 5 minutos. 

Para ajudar a diminuir o runtime de scripts, tente o seguinte:
+ Reduza as etapas desnecessárias. Por exemplo, limite os ambientes conda nos quais instalar pacotes grandes.
+ Execute tarefas em processos paralelos.
+ Use o comando nohup em seu script para garantir que os sinais de desligamento sejam ignorados para que o script seja executado sem interrupção.

# Desassociar as configurações de ciclo de vida
<a name="jl-lcc-delete"></a>

Para atualizar seu script, você deve criar um novo script de configuração do ciclo de vida e anexá-lo ao respectivo domínio (domínio), perfil de usuário ou espaço compartilhado da Amazon SageMaker AI. Não é possível alterar um script de configuração de ciclo de vida depois de criado. Para obter mais informações sobre criar e gerenciar a configuração de ciclo de vida, consulte [Criação de configuração do ciclo de vida](jl-lcc-create.md).

A seção a seguir mostra como desassociar uma configuração de ciclo de vida usando a AWS Command Line Interface (AWS CLI).

## Desconecte usando o AWS CLI
<a name="jl-lcc-delete-cli"></a>

Para desassociar uma configuração de ciclo de vida usando a (AWS CLI), remova a configuração de ciclo de vida desejada da lista de configurações de ciclo de vida anexada ao recurso. Em seguida, passe a lista como parte do respectivo 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)

Por exemplo, o comando a seguir remove todas as configurações do ciclo de vida do JupyterLab aplicativo que está anexado ao domínio.

```
aws sagemaker update-domain --domain-id domain-id \
--region region \
--default-user-settings '{
"JupyterLabAppSettings": {
  "LifecycleConfigArns":
    []
  }
}'
```

# Repositórios Git em JupyterLab
<a name="studio-updated-jl-admin-guide-git-attach"></a>

JupyterLab oferece uma extensão Git para inserir a URL de um repositório Git (repo), cloná-lo em um ambiente, enviar alterações e visualizar o histórico de commits. Você também pode anexar URLs um repositório Git sugerido a um domínio (domínio) ou perfil de usuário do Amazon SageMaker AI.

As seções a seguir mostram como anexar ou desanexar o repositório URLs Git.

**Topics**
+ [Anexar um repositório Git (AWS CLI)](studio-updated-git-attach-cli.md)
+ [Desanexar o repositório Git URLs](studio-updated-git-detach.md)

# Anexar um repositório Git (AWS CLI)
<a name="studio-updated-git-attach-cli"></a>

Esta seção mostra como anexar uma URL do repositório Git (repo) usando o. AWS CLI Depois de anexar a URL do repositório Git, você pode cloná-la seguindo as etapas em [Clone um repositório Git no Amazon Studio SageMaker](#studio-updated-tasks-git).

## Pré-requisitos
<a name="studio-updated-git-attach-cli-prerequisites"></a>

Antes de começar, conclua os seguintes pré-requisitos: 
+ Atualize o AWS CLI seguindo as etapas em [Instalando a AWS Command Line Interface versão atual](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled).
+ Em sua máquina local, execute `aws configure` e forneça suas credenciais da AWS . Para obter informações sobre AWS credenciais, consulte [Entendendo e obtendo suas AWS credenciais](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 
+ Integre-se ao domínio Amazon SageMaker AI. Para obter mais informações, consulte [Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md).

## Anexe o repositório Git a um domínio (domínio) ou perfil de usuário do Amazon SageMaker AI
<a name="studio-updated-git-attach-cli-attach"></a>

Os URLs repositórios Git associados no nível do domínio são herdados por todos os usuários. No entanto, os URLs repositórios Git associados no nível do perfil do usuário têm como escopo um usuário específico. Você pode anexar vários repositórios Git a URLs um domínio Amazon SageMaker AI ou a um perfil de usuário passando uma lista de repositórios. URLs

As seções a seguir mostram como anexar uma URL do repositório Git ao seu domínio e perfil de usuário.

### Anexar a um domínio Amazon SageMaker AI
<a name="studio-updated-git-attach-cli-attach-domain"></a>

O seguinte comando anexa uma URL do repositório Git a um domínio existente: 

```
aws sagemaker update-domain --region region --domain-id domain-id \
    --default-user-settings JupyterLabAppSettings={CodeRepositories=[{RepositoryUrl="repository"}]}
```

### Anexar ao uma perfil de usuário
<a name="studio-updated-git-attach-cli-attach-userprofile"></a>

O seguinte comando anexa uma URL do repositório Git a um usuário existente:

```
aws sagemaker update-user-profile --domain-id domain-id --user-profile-name user-name\
    --user-settings JupyterLabAppSettings={CodeRepositories=[{RepositoryUrl="repository"}]}
```

## Clone um repositório Git no Amazon Studio SageMaker
<a name="studio-updated-tasks-git"></a>

O Amazon SageMaker Studio se conecta somente a um repositório Git local. Para acessar os arquivos no repositório, clone o repositório Git a partir do Studio. Para fazer isso, o Studio oferece uma extensão do Git para você inserir a URL de um repositório Git, cloná-lo em seu ambiente, enviar alterações e visualizar o histórico de confirmações. 

Se o repositório for privado e exigir credenciais de acesso, você receberá uma solicitação para inserir suas credenciais de usuário. Suas credenciais incluem o nome de usuário e o token de acesso pessoal. Para obter mais informações sobre token de acesso pessoal, consulte [Gerenciar seus tokens de acesso pessoal](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens).

Os administradores também podem anexar um repositório Git sugerido no domínio SageMaker Amazon AI URLs ou no nível do perfil do usuário. Os usuários podem então selecionar o URL do repositório na lista de sugestões e cloná-lo no Studio. Para obter mais informações sobre como anexar repositórios sugeridos, consulte [Anexe repositórios Git sugeridos ao Amazon Studio Classic SageMaker](studio-git-attach.md).

# Desanexar o repositório Git URLs
<a name="studio-updated-git-detach"></a>

Esta seção mostra como separar o URLs repositório Git de um domínio (domínio) do SageMaker Amazon AI ou de um perfil de usuário. Você pode desanexar o repositório URLs usando o AWS Command Line Interface (AWS CLI) ou o console Amazon SageMaker AI.

## Separe um repositório Git usando o AWS CLI
<a name="studio-updated-git-detach-cli"></a>

Para separar todo o URLs repositório Git de um domínio ou perfil de usuário, você deve passar uma lista vazia de repositórios de código. Essa lista é passada como parte do parâmetro `JupyterLabAppSettings` em um comando `update-domain` ou `update-user-profile`. Para desassociar somente uma URL do repositório Git, passe a lista de repositórios de código sem a URL desejada do repositório Git. 

### Desconecte-se de um domínio da Amazon SageMaker AI
<a name="studio-updated-git-detach-cli-domain"></a>

O comando a seguir separa todo o URLs repositório Git de um domínio:

```
aws sagemaker update-domain --region region --domain-name domain-name \
    --domain-settings JupyterLabAppSettings={CodeRepositories=[]}
```

### Desanexar de um perfil de usuário
<a name="studio-updated-git-detach-cli-userprofile"></a>

O comando a seguir separa todo o URLs repositório Git de um perfil de usuário:

```
aws sagemaker update-user-profile --domain-name domain-name --user-profile-name user-name\
    --user-settings JupyterLabAppSettings={CodeRepositories=[]}
```

# Imagens personalizadas
<a name="studio-updated-jl-admin-guide-custom-images"></a>

Se precisar de uma funcionalidade diferente da fornecida pela SageMaker distribuição, você pode trazer sua própria imagem com suas extensões e pacotes personalizados. Você também pode usá-lo para personalizar a JupyterLab interface de usuário de acordo com suas próprias necessidades de marca ou conformidade.

A página a seguir fornecerá informações e modelos JupyterLab específicos para criar suas próprias imagens personalizadas de SageMaker IA. Isso serve para complementar as informações e instruções do Amazon SageMaker Studio sobre como criar sua própria imagem de SageMaker IA e trazer sua própria imagem para o Studio. Para saber mais sobre imagens personalizadas de SageMaker IA da Amazon e como trazer sua própria imagem para o Studio, consulte[Traga sua própria imagem (BYOI)](studio-updated-byoi.md). 

**Topics**
+ [Verificação de integridade e URL de aplicações](#studio-updated-jl-admin-guide-custom-images-app-healthcheck)
+ [Exemplos de Dockerfile](#studio-updated-jl-custom-images-dockerfile-templates)

## Verificação de integridade e URL de aplicações
<a name="studio-updated-jl-admin-guide-custom-images-app-healthcheck"></a>
+ `Base URL`: O URL base para a aplicação BYOI deve ser `jupyterlab/default`. Você só pode ter uma aplicação e ele deve sempre ter um nome `default`.
+ `HealthCheck API`— A SageMaker IA usa o endpoint de verificação de integridade na porta `8888` para verificar a integridade do JupyterLab aplicativo. `jupyterlab/default/api/status`é o endpoint para a verificação de saúde.
+ `Home/Default URL`— Os `/opt/ml` diretórios `/opt/.sagemakerinternal` e que são usados por AWS. O arquivo de metadados em `/opt/ml` contém metadados sobre recursos como `DomainId`.
+ Autenticação: Para habilitar a autenticação para seus usuários, desative a autenticação baseada em token ou senha dos cadernos Jupyter e permita todas as origens.

## Exemplos de Dockerfile
<a name="studio-updated-jl-custom-images-dockerfile-templates"></a>

Os exemplos a seguir são arquivos `Dockerfile` que atendem às informações e [Especificações de imagem personalizadas](studio-updated-byoi-specs.md) acima.

**nota**  
Se você estiver trazendo sua própria imagem para o SageMaker Unified Studio, precisará seguir as [especificações do Dockerfile](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html) no Guia do *usuário do Amazon SageMaker Unified Studio*.  
`Dockerfile`exemplos do SageMaker Unified Studio podem ser encontrados no [exemplo do Dockerfile no Guia do](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example) *usuário do Amazon SageMaker Unified Studio*.

------
#### [ Example AL2023 Dockerfile ]

A seguir é apresentado o exemplo AL2023 de Dockerfile que atende às informações e [Especificações de imagem personalizadas](studio-updated-byoi-specs.md) acima.

```
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 Distribuição da Amazon Dockerfile ]

A seguir é apresentado o exemplo de Dockerfile da Amazon SageMaker Distribution que atende às informações e [Especificações de imagem personalizadas](studio-updated-byoi-specs.md) acima.

```
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"]
```

------

# Atualizar a imagem SageMaker de distribuição
<a name="studio-updated-jl-update-distribution-image"></a>

**Importante**  
Este tópico pressupõe que você tenha criado um espaço e concedido ao usuário acesso a ele. Para obter mais informações, consulte [Conceda aos seus usuários acesso aos espaços](studio-updated-jl-admin-guide-permissions.md).

Atualize os JupyterLab espaços que você já criou para usar a versão mais recente da Imagem de SageMaker Distribuição e acessar os recursos mais recentes. Você pode usar a interface do usuário do Studio ou a AWS Command Line Interface (AWS CLI) para atualizar a imagem.

As seções a seguir fornecem informações atualização de imagem.

## Atualizar a imagem (IU)
<a name="studio-updated-jl-update-distribution-image-ui"></a>

Atualizar a imagem envolve reiniciar o JupyterLab espaço do seu usuário. Use o procedimento a seguir para atualizar o JupyterLab espaço do usuário com a imagem mais recente.

**Para atualizar a imagem (IU)**

1. Abra o Studio. Para informações sobre como abrir o Studio, consulte [Inicie o Amazon SageMaker Studio](studio-updated-launch.md).

1. Selecione **JupyterLab**.

1. Selecione o JupyterLab espaço do seu usuário.

1. Escolha **Parar espaço**.

1. Para **Imagem**, selecione uma versão atualizada da imagem de distribuição de SageMaker IA. Para a imagem mais recente, escolha **Mais recente**.

1. Escolha **Executar espaço**.

## Atualize a imagem (AWS CLI)
<a name="studio-updated-jl-update-distribution-image-cli"></a>

Esta seção pressupõe que você tenha o AWS Command Line Interface (AWS CLI) instalado. Para obter informações sobre a instalação do AWS CLI, consulte [Instalar ou atualizar para a versão mais recente do AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

Para atualizar a imagem, você deve fazer o seguinte para o espaço do seu usuário:

1. Excluir o JupyterLab aplicativo

1. Atualizar o espaço

1. Criar a aplicação

**Importante**  
É necessário ter as seguintes informações em mãos antes de começar a atualizar a imagem:  
ID do domínio — O ID do domínio Amazon SageMaker AI do seu usuário.
Tipo de aplicativo — JupyterLab.
Nome da aplicação: padrão.
Nome do espaço: O nome especificado para o espaço.
Tipo de instância: o tipo de instância do Amazon EC2 que você está usando para executar a aplicação. Por exemplo, .`ml.t3.medium`
SageMaker ARN da imagem — O nome de recurso da Amazon (ARN) da imagem de distribuição de IA. SageMaker Você pode fornecer a versão mais recente da imagem de distribuição de SageMaker IA especificando um `sagemaker-distribution-cpu` ou `sagemaker-distribution-gpu` como o identificador do recurso.

Para excluir o JupyterLab aplicativo, execute o seguinte 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
```

Para atualizar o espaço do usuário, execute o seguinte comando:

```
aws sagemaker update-space \
--space-name name-of-your-user's-space \
--domain-id your-user's-domain-id
```

Se você atualizou o espaço com sucesso, verá o ARN do espaço na resposta:

```
{
"SpaceArn": "arn:aws:sagemaker:Região da AWS:111122223333:space/your-user's-domain-id/name-of-your-user's-space"
}
```

Para executar a aplicação, execute o seguinte comando:

```
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:Região da AWS:555555555555:image/sagemaker-distribution-resource-identifier"
```

# Excluir recursos não utilizados
<a name="studio-updated-jl-admin-guide-clean-up"></a>

Para evitar custos adicionais de execução JupyterLab, recomendamos excluir os recursos não utilizados na seguinte ordem:

1. JupyterLab aplicações

1. Espaços

1. Perfis de usuário

1. domínios

Use os seguintes comandos AWS Command Line Interface (AWS CLI) para excluir recursos em um domínio:

------
#### [ Delete a JupyterLab application ]

```
aws --region Região da 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 você excluir um espaço, excluirá o volume do Amazon EBS associado a ele. Recomendamos fazer backup de todos os dados valiosos antes de excluir seu espaço.

```
aws --region Região da AWS sagemaker delete-space --domain-id example-domain-id  --space-name example-space-name
```

------
#### [ Delete a user profile ]

```
aws --region Região da AWS sagemaker delete-user-profile --domain-id example-domain-id --user-profile example-user-profile
```

------

# Cotas
<a name="studio-updated-jl-admin-guide-quotas"></a>

JupyterLab, tem cotas para o seguinte:
+ A soma de todos os volumes do Amazon EBS em uma Conta da AWS.
+ Os tipos de instância disponíveis para seus usuários.
+ O número de instâncias de uma determinada instância que seus usuários podem iniciar.

Para mais armazenamento e computação para seus usuários, solicite um aumento em suas cotas da AWS . Para obter mais informações sobre como solicitar um aumento de cota, consulte os [endpoints e cotas do Amazon SageMaker AI](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html).

# Instâncias de SageMaker notebook da Amazon
<a name="nbi"></a>

Uma instância de SageMaker notebook da Amazon é uma instância computacional de aprendizado de máquina (ML) que executa o aplicativo Jupyter Notebook. Uma das melhores maneiras de os profissionais de machine learning (ML) usarem a Amazon SageMaker AI é treinar e implantar modelos de ML usando instâncias de SageMaker notebook. As instâncias do SageMaker notebook ajudam a criar o ambiente iniciando os servidores Jupyter no Amazon Elastic Compute Cloud (Amazon EC2) e fornecendo kernels pré-configurados com os seguintes pacotes: SageMaker Amazon AWS SDK para Python (Boto3) Python AWS Command Line Interface SDK,, (), Conda, Pandas AWS CLI, bibliotecas de estruturas de aprendizado profundo e outras bibliotecas para ciência de dados e aprendizado de máquina.

Use os cadernos Jupyter em sua instância de caderno para:
+ preparar e processar dados;
+ escrever código para treinar modelos;
+ implantar modelos SageMaker na hospedagem
+ testar ou validar modelos.

Para obter informações sobre preços com a instância de SageMaker notebook da Amazon, consulte [Amazon SageMaker Pricing](https://aws.amazon.com/sagemaker/pricing/).

## Manutenção
<a name="nbi-maintenance"></a>

SageMaker A IA atualiza o software subjacente para Amazon SageMaker Notebook Instances pelo menos uma vez a cada 90 dias. Algumas atualizações de manutenção, como atualizações do sistema operacional, podem exigir que sua aplicação fique offline por um curto período de tempo. Não é possível realizar nenhuma operação durante esse período enquanto o software subjacente está sendo atualizado. Recomendamos que você reinicie seus cadernos pelo menos uma vez a cada 30 dias para consumir automaticamente os patches.

Se a instância do notebook não estiver atualizada e estiver executando um software não seguro, a SageMaker IA poderá atualizar periodicamente a instância como parte da manutenção regular. Durante essas atualizações, os dados fora da pasta `/home/ec2-user/SageMaker` não são mantidos.

Para obter mais informações, entre em contato com o [AWS Support](https://aws.amazon.com/premiumsupport/).

## Machine Learning com o SageMaker Python SDK
<a name="gs-ml-with-sagemaker-pysdk"></a>

Para treinar, validar, implantar e avaliar um modelo de ML em uma instância de SageMaker notebook, use o SDK do SageMaker Python. Os resumos AWS SDK para Python (Boto3) e as operações de SageMaker API do SDK do Python. SageMaker Ele permite que você integre e orquestre outros AWS serviços, como o Amazon Simple Storage Service (Amazon S3) para salvar dados e artefatos do modelo, o Amazon Elastic Container Registry (ECR) para importar e fazer a manutenção dos modelos de ML e o Amazon Elastic Compute Cloud (Amazon EC2) para treinamento e inferência.

Você também pode aproveitar os recursos de SageMaker IA que ajudam você a lidar com cada estágio de um ciclo completo de ML: rotulagem de dados, pré-processamento de dados, treinamento de modelos, implantação de modelos, avaliação do desempenho de previsão e monitoramento da qualidade do modelo em produção.

Se você é um usuário de SageMaker IA pela primeira vez, recomendamos que você use o SDK do SageMaker Python, seguindo end-to-end o tutorial de ML. Para encontrar a documentação de código aberto, consulte o [Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable) SDK.

**Topics**
+ [Manutenção](#nbi-maintenance)
+ [Machine Learning com o SageMaker Python SDK](#gs-ml-with-sagemaker-pysdk)
+ [Tutorial para criar modelos com instâncias de caderno](gs-console.md)
+ [AL2023 instâncias de notebook](nbi-al2023.md)
+ [Instâncias de caderno do Amazon Linux 2](nbi-al2.md)
+ [JupyterLab controle de versão](nbi-jl.md)
+ [Crie uma instância de SageMaker notebook da Amazon](howitworks-create-ws.md)
+ [Acessar instâncias de caderno](howitworks-access-ws.md)
+ [Atualizar uma instância de caderno](nbi-update.md)
+ [Personalização de uma instância de SageMaker notebook usando um script LCC](notebook-lifecycle-config.md)
+ [Definir o kernel do caderno](howitworks-set-kernel.md)
+ [Repositórios Git com SageMaker instâncias do AI Notebook](nbi-git-repo.md)
+ [Metadados de instância de caderno](nbi-metadata.md)
+ [Monitore os registros do Jupyter no Amazon Logs CloudWatch](jupyter-logs.md)

# Tutorial para criar modelos com instâncias de caderno
<a name="gs-console"></a>

Este tutorial de introdução explica como criar uma instância de notebook, abrir um SageMaker notebook Jupyter com um kernel pré-configurado com o ambiente Conda para aprendizado de máquina e iniciar uma sessão de SageMaker IA para executar um ciclo de ML. end-to-end Você aprenderá a salvar um conjunto de dados em um bucket padrão do Amazon S3 emparelhado automaticamente com SageMaker a sessão de IA, enviar um trabalho de treinamento de um modelo de ML para o Amazon EC2 e implantar o modelo treinado para previsão por hospedagem ou inferência em lote por meio do Amazon EC2. 

Este tutorial mostra explicitamente um fluxo completo de ML de treinamento do XGBoost modelo a partir do pool de modelos integrado de SageMaker IA. Você usa o [conjunto de dados do Censo de Adultos dos EUA](https://archive.ics.uci.edu/ml/datasets/adult) e avalia o desempenho do XGBoost modelo de SageMaker IA treinado na previsão da renda dos indivíduos.
+ [SageMaker AI XGBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html) — O [XGBoost](https://xgboost.readthedocs.io/en/latest/)modelo é adaptado ao ambiente de SageMaker IA e pré-configurado como contêineres Docker. SageMaker A IA fornece um conjunto de [algoritmos integrados](https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html) que estão preparados para usar os recursos de SageMaker IA. Para saber mais sobre quais algoritmos de ML são adaptados à SageMaker IA, consulte [Escolha um algoritmo](https://docs.aws.amazon.com/sagemaker/latest/dg/algorithms-choose.html) e [use os algoritmos SageMaker integrados da Amazon](https://docs.aws.amazon.com/sagemaker/latest/dg/algos.html). Para as operações de API do algoritmo integrado de SageMaker IA, consulte [Algoritmos primários](https://sagemaker.readthedocs.io/en/stable/algorithms/index.html) no SDK do [Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable).
+ [Conjunto de dados do Censo de Adultos](https://archive.ics.uci.edu/ml/datasets/adult): O conjunto de dados do [banco de dados do Censo de 1994](http://www.census.gov/en.html), de Ronny Kohavi e Barry Becker (Mineração de dados e Visualização, Gráficos do chip). O XGBoost modelo de SageMaker IA é treinado usando esse conjunto de dados para prever se um indivíduo ganha mais de \$150.000 por ano ou menos.

**Topics**
+ [Crie uma instância do Amazon SageMaker Notebook para o tutorial](gs-setup-working-env.md)
+ [Crie um notebook Jupyter na instância do SageMaker notebook](ex1-prepare.md)
+ [Preparar conjuntos de dados](ex1-preprocess-data.md)
+ [Treinar um modelo](ex1-train-model.md)
+ [Implantar o modelo do Amazon EC2](ex1-model-deployment.md)
+ [Como avaliar o modelo](ex1-test-model.md)
+ [Limpe os recursos da instância de SageMaker notebook da Amazon](ex1-cleanup.md)

# Crie uma instância do Amazon SageMaker Notebook para o tutorial
<a name="gs-setup-working-env"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Uma instância de SageMaker notebook da Amazon é uma instância de computação totalmente gerenciada de aprendizado de máquina (ML) do Amazon Elastic Compute Cloud (Amazon EC2). Uma instância de SageMaker notebook da Amazon executa o aplicativo Jupyter Notebook. Use a instância de caderno para criar e gerenciar os cadernos Jupyter e para processar dados e treinar e implantar modelos de ML.

**Para criar uma instância de SageMaker notebook**  
![\[Captura de tela animada que mostra como criar uma instância de SageMaker notebook.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/get-started-ni/gs-ni-create-instance.gif)

1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Escolha **Instâncias de caderno** e, em seguida, escolha **Criar instância de caderno**.

1. Na página **Criar instância de caderno**, forneça as seguintes informações (se um campo não for mencionado, deixe os valores padrão):

   1. Em **Nome da instância de caderno**, digite um nome para a sua instância de caderno.

   1. Em **Tipo de instância de caderno**, escolha `ml.t2.medium`. Esse é o tipo de instância mais barato com compatibilidade com as instâncias do caderno, e é suficiente para este exercício. Se um tipo de instância `ml.t2.medium` não estiver disponível na sua região atual da AWS , escolha `ml.t3.medium`.

   1. Em **Identificador da Plataforma**, escolha um tipo de plataforma para criar a instância do caderno. Esse tipo de plataforma define o sistema operacional e a JupyterLab versão com a qual sua instância do notebook é criada. A versão mais recente e recomendada é `notebook-al2023-v1` para uma instância de notebook Amazon Linux 2023. Para obter informações sobre os tipos de identificadores de plataforma, consulte [AL2023 instâncias de notebook](nbi-al2023.md) [Instâncias de caderno do Amazon Linux 2](nbi-al2.md) e. Para obter informações sobre JupyterLab versões, consulte[JupyterLab controle de versão](nbi-jl.md).

   1. Para o perfil** do IAM**, escolha **Criar uma nova função** e, em seguida, escolha **Criar função**. Esse perfil do IAM recebe automaticamente permissões para acessar qualquer bucket do S3 que tenha `sagemaker` no nome. Ela obtém essas permissões por meio da `AmazonSageMakerFullAccess` política, que a SageMaker IA atribui à função. 
**nota**  
Se você quiser conceder permissão ao perfil do IAM para acessar buckets do S3 sem `sagemaker` no nome, você precisa anexar a `S3FullAccess` política. Você também pode limitar as permissões para buckets S3 específicos para o perfil do IAM. Para obter mais informações e exemplos de como adicionar políticas de bucket à perfil do IAM, consulte [Exemplos de políticas de bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies.html).

   1. Escolha **Criar instância de caderno**. 

      Em alguns minutos, a SageMaker IA inicia uma instância de notebook e anexa um volume de armazenamento de 5 GB do Amazon EBS a ela. A instância do notebook tem um servidor de notebook Jupyter pré-configurado, bibliotecas de SageMaker IA e AWS SDK e um conjunto de bibliotecas Anaconda.

      Para obter mais informações sobre como criar uma instância de SageMaker notebook, consulte [Criar uma instância de notebook](https://docs.aws.amazon.com/sagemaker/latest/dg/howitworks-create-ws.html). 

## (Opcional) Alterar as configurações da instância do SageMaker notebook
<a name="gs-change-ni-settings"></a>

Para alterar o tipo de instância de computação de ML ou o tamanho do armazenamento Amazon EBS de uma instância de notebook com SageMaker IA, edite as configurações da instância do notebook.

**Para alterar e atualizar o tipo de instância do SageMaker Notebook e o volume do EBS**

1. Na página de **instâncias do Notebook** no console SageMaker AI, escolha sua instância do notebook.

1. Escolha **Ações**, escolha **Interromper** e aguarde até que a instância de caderno pare totalmente.

1. Depois que o status da instância de caderno mudar para **Parada**, escolha **Ações** e, em seguida, selecione **Atualizar configurações**.  
![\[Captura de tela animada que mostra como atualizar as configurações da instância do SageMaker notebook.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/get-started-ni/gs-ni-update-instance.gif)

   1. Para o **tipo de instância de caderno**, escolha um tipo de instância de ML diferente.

   1. Para **Tamanho do volume em GB**, digite um número inteiro diferente para especificar um novo tamanho do volume do EBS.
**nota**  
Os volumes de armazenamento do EBS são criptografados, então a SageMaker IA não pode determinar a quantidade de espaço livre disponível no volume. Por isso, você pode aumentar o tamanho do volume ao atualizar uma instância do caderno, mas não pode diminuir o tamanho do volume. Se você deseja diminuir o tamanho do volume de armazenamento do ML em uso, crie uma nova instância do caderno com o tamanho desejado. 

1. Na parte inferior da página, escolha **Atualizar instância de caderno**. 

1. Quando a atualização estiver concluída, **inicie** a instância de caderno com as novas configurações.

Para obter mais informações sobre como atualizar as configurações da instância do SageMaker notebook, consulte [Atualizar uma instância do notebook](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi-update.html). 

## (Opcional) Configurações avançadas para instâncias de SageMaker notebook
<a name="gs-ni-advanced-settings"></a>

O vídeo tutorial a seguir mostra como configurar e usar instâncias de SageMaker notebook por meio do console de SageMaker IA. Ele inclui opções avançadas, como configuração do ciclo de vida da SageMaker IA e importação GitHub de repositórios. (Duração: 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)


Para obter a documentação completa sobre a instância de SageMaker notebook, consulte [Usar instâncias de SageMaker notebook da Amazon](https://docs.aws.amazon.com/sagemaker/latest/dg/nbi.html).

# Crie um notebook Jupyter na instância do SageMaker notebook
<a name="ex1-prepare"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Para começar a criar scripts para treinar e implantar seu modelo, crie um notebook Jupyter na instância do notebook. SageMaker Usando o notebook Jupyter, você pode executar experimentos de aprendizado de máquina (ML) para treinamento e inferência enquanto usa os recursos de SageMaker IA e a infraestrutura. AWS 

**Como criar um caderno Jupyter**  
![\[Captura de tela animada que mostra como criar um notebook Jupyter na instância do notebook SageMaker AI.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/get-started-ni/gs-ni-create-notebook.gif)

1. Abra a instância de caderno como segue:

   1. Faça login no console de SageMaker IA em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

   1. Na página **Instâncias do Caderno**, abra sua instância do caderno escolhendo uma das seguintes opções:
      + **Aberto JupyterLab** para a JupyterLab interface
      + **Abra o Jupyter** para a visualização clássica do Jupyter
**nota**  
Se o status da Instância de cadernos mostrar **Pendente** na coluna **Status**, seu caderno ainda está sendo criado. O status mudará para **InService**quando a instância do notebook estiver pronta para uso. 

1. Crie um caderno da seguinte forma: 
   + Se você abriu o notebook na JupyterLab exibição, no menu **Arquivo**, escolha **Novo** e, em seguida, escolha **Notebook**. Em **Selecionar Kernel**, escolha **conda\$1python3**. Este ambiente pré-instalado inclui a instalação padrão da Anaconda e o Python 3.
   + Se você abriu o caderno no modo de exibição clássico do Jupyter, na guia **Arquivos**, escolha **Novo** e, em seguida, escolha **conda\$1python3**. Este ambiente pré-instalado inclui a instalação padrão da Anaconda e o Python 3.

1. Salve os cadernos da seguinte forma:
   + Na JupyterLab exibição, escolha **Arquivo**, escolha **Salvar caderno como...** e, em seguida, renomeie o notebook.
   + Na visualização clássica do Jupyter, escolha **Arquivo**, escolha **Salvar caderno como...** e, em seguida, renomeie o caderno.

# Preparar conjuntos de dados
<a name="ex1-preprocess-data"></a>

Nesta etapa, você carrega o [conjunto de dados do Adult Census](https://archive.ics.uci.edu/ml/datasets/adult) em sua instância de notebook usando a biblioteca SHAP (SHapley Additive Explanations), analisa o conjunto de dados, o transforma e o carrega no Amazon S3. O SHAP é uma abordagem teórica dos jogos para explicar o resultado de qualquer modelo de machine learning. Para obter mais informações sobre o SHAP, consulte a [documentação de boas-vindas ao SHAP](https://shap.readthedocs.io/en/latest/).

Para executar o exemplo a seguir, cole o código de amostra em uma célula na sua instância de caderno.

## Carregar conjunto de dados do censo de adultos usando SHAP
<a name="ex1-preprocess-data-pull-data"></a>

Usando a biblioteca SHAP, importe o conjunto de dados do Censo de Adultos conforme mostrado a seguir:

```
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 o kernel atual do Jupyter não tiver a biblioteca SHAP, instale-a executando o seguinte comando `conda`:  

```
%conda install -c conda-forge shap
```
Se estiver usando JupyterLab, você deve atualizar manualmente o kernel após a conclusão da instalação e das atualizações. Execute o IPython script a seguir para desligar o kernel (o kernel será reiniciado automaticamente):  

```
import IPython
IPython.Application.instance().kernel.do_shutdown(True)
```

O objeto de lista `feature_names` deve retornar a seguinte lista de atributos: 

```
['Age',
 'Workclass',
 'Education-Num',
 'Marital Status',
 'Occupation',
 'Relationship',
 'Race',
 'Sex',
 'Capital Gain',
 'Capital Loss',
 'Hours per week',
 'Country']
```

**dica**  
Se você está começando com dados não rotulados, você pode usar o Amazon SageMaker Ground Truth para criar um fluxo de trabalho de rotulagem de dados em minutos. Para saber mais, consulte [Dados de rótulos](https://docs.aws.amazon.com/sagemaker/latest/dg/data-label.html). 

## Visão geral do conjunto de dados
<a name="ex1-preprocess-data-inspect"></a>

Execute o script a seguir para exibir a visão geral estatística do conjunto de dados e os histogramas dos atributos numéricos.

```
display(X.describe())
hist = X.hist(bins=30, sharey=True, figsize=(20, 10))
```

![\[Visão geral do conjunto de dados do Censo de Adultos.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/get-started-ni/gs-ni-prepare-data-1.png)


**dica**  
Se você quiser usar um conjunto de dados que precisa ser limpo e transformado, você pode simplificar e agilizar o pré-processamento de dados e a engenharia de recursos usando o Amazon SageMaker Data Wrangler. Para saber mais, consulte [Preparar dados de ML com o Amazon SageMaker Data Wrangler](https://docs.aws.amazon.com/sagemaker/latest/dg/data-wrangler.html).

## Divida o conjunto de dados em treinamento, validação e teste
<a name="ex1-preprocess-data-transform"></a>

Usando o Sklearn, divida o conjunto de dados em um conjunto de treinamento e um conjunto de testes. O conjunto de treinamento é usado para treinar o modelo, enquanto o conjunto de teste é usado para avaliar o desempenho do modelo final treinado. O conjunto de dados é classificado aleatoriamente com a semente aleatória fixa: 80% do conjunto de dados para o conjunto de treinamento e 20% para um conjunto de teste.

```
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]
```

Divida o conjunto de treinamento para separar um conjunto de validação. O conjunto de validação é usado para avaliar o desempenho do modelo treinado enquanto ajusta os hiperparâmetros do modelo. 75% do conjunto de treinamento se torna o conjunto de treinamento final e o restante é o conjunto de validação.

```
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]
```

Usando o pacote pandas, alinhe explicitamente cada conjunto de dados concatenando os atributos numéricos com os rótulos verdadeiros.

```
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)
```

Verifique se o conjunto de dados está dividido e estruturado conforme o esperado:

```
train
```

![\[O conjunto de dados de treinamento de exemplo.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/get-started-ni/gs-ni-prepare-data-2-train.png)


```
validation
```

![\[O conjunto de dados de validação.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/get-started-ni/gs-ni-prepare-data-2-validation.png)


```
test
```

![\[O conjunto de dados de teste de exemplo.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/get-started-ni/gs-ni-prepare-data-2-test.png)


## Converter os conjuntos de dados de treinamento e validação em arquivos CSV
<a name="ex1-preprocess-data-transform-2"></a>

Converta os objetos `train` e o `validation` dataframe em arquivos CSV para corresponder ao formato do arquivo de entrada do 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)
```

## Carregar os conjuntos de dados no Amazon S3
<a name="ex1-preprocess-data-transform-4"></a>

Usando a SageMaker IA e o Boto3, faça o upload dos conjuntos de dados de treinamento e validação para o bucket padrão do Amazon S3. Os conjuntos de dados no bucket do S3 serão usados por uma instância otimizada para computação no SageMaker Amazon EC2 para treinamento. 

O código a seguir configura o URI padrão do bucket do S3 para sua sessão atual de SageMaker IA, cria uma nova `demo-sagemaker-xgboost-adult-income-prediction` pasta e carrega os conjuntos de dados de treinamento e validação na subpasta. `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')
```

Execute o seguinte AWS CLI para verificar se os arquivos CSV foram carregados com sucesso no bucket do S3.

```
! aws s3 ls {bucket}/{prefix}/data --recursive
```

Essa saída deve retornar o seguinte resultado:

![\[Saída do comando da CLI para verificar os conjuntos de dados no bucket do S3.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/get-started-ni/gs-ni-prepare-data-3.png)


# Treinar um modelo
<a name="ex1-train-model"></a>

Nesta etapa, você escolhe um algoritmo de treinamento e executa um trabalho de treinamento para o modelo. O [Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) fornece estimadores de estrutura e estimadores genéricos para treinar seu modelo enquanto orquestra o ciclo de vida do aprendizado de máquina (ML), acessando os SageMaker recursos de IA para treinamento e as infraestruturas, como Amazon AWS Elastic Container Registry (Amazon ECR), Amazon Elastic Compute Cloud (Amazon EC2), Amazon Simple Storage Service (Amazon Simple Storage Service (Amazon S3). Para obter mais informações sobre estimadores de estrutura integrados de SageMaker IA, consulte [Frameworks](https://sagemaker.readthedocs.io/en/stable/frameworks/index.html) na documentação do Amazon [Python SageMaker SDK](https://sagemaker.readthedocs.io/en/stable). Para obter mais informações sobre algoritmos integrados, consulte [Algoritmos integrados e modelos pré-treinados na Amazon SageMaker](algos.md).

**Topics**
+ [Escolha do algoritmo de treinamento](#ex1-train-model-select-algorithm)
+ [Criar e executar um trabalho de treinamento](#ex1-train-model-sdk)

## Escolha do algoritmo de treinamento
<a name="ex1-train-model-select-algorithm"></a>

Para escolher o algoritmo certo para seu conjunto de dados, você normalmente precisa avaliar modelos diferentes para encontrar os modelos mais adequados aos seus dados. Para simplificar, o algoritmo [XGBoost algoritmo com Amazon SageMaker AI](xgboost.md) integrado de SageMaker IA é usado ao longo deste tutorial sem a pré-avaliação dos modelos.

**dica**  
Se você quiser que a SageMaker IA encontre um modelo apropriado para seu conjunto de dados tabular, use o Amazon SageMaker Autopilot, que automatiza uma solução de aprendizado de máquina. Para obter mais informações, consulte [SageMaker Piloto automático](autopilot-automate-model-development.md).

## Criar e executar um trabalho de treinamento
<a name="ex1-train-model-sdk"></a>

Depois de descobrir qual modelo usar, comece a criar um estimador de SageMaker IA para treinamento. Este tutorial usa o algoritmo XGBoost incorporado para o estimador genérico de SageMaker IA.

**Como executar uma tarefa de treinamento de modelo**

1. Importe o [SDK do Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable) e comece recuperando as informações básicas da sua sessão atual de IA. SageMaker 

   ```
   import sagemaker
   
   region = sagemaker.Session().boto_region_name
   print("AWS Region: {}".format(region))
   
   role = sagemaker.get_execution_role()
   print("RoleArn: {}".format(role))
   ```

   Isso retorna as informações a seguir:
   + `region`— A AWS região atual em que a instância do notebook SageMaker AI está sendo executada.
   + `role`: o perfil do IAM usada pela instância de caderno.
**nota**  
Verifique a versão do SDK do SageMaker Python executando. `sagemaker.__version__` Este tutorial é baseado em `sagemaker>=2.20`. Se o SDK estiver desatualizado, instale a versão mais recente executando o seguinte comando:   

   ```
   ! pip install -qU sagemaker
   ```
Se você executar essa instalação nas instâncias existentes do SageMaker Studio ou do notebook, precisará atualizar manualmente o kernel para concluir a aplicação da atualização da versão.

1. Crie um XGBoost estimador usando a `sagemaker.estimator.Estimator` classe. No código de exemplo a seguir, o XGBoost estimador é nomeado. `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())
       ]
   )
   ```

   Para construir o estimador de SageMaker IA, especifique os seguintes parâmetros:
   + `image_uri`: especifique o URI da imagem de contêiner de treinamento. Neste exemplo, o URI do contêiner de XGBoost treinamento de SageMaker IA é especificado usando`sagemaker.image_uris.retrieve`.
   + `role`— A função AWS Identity and Access Management (IAM) que a SageMaker IA usa para realizar tarefas em seu nome (por exemplo, ler resultados de treinamento, chamar artefatos de modelos do Amazon S3 e gravar resultados de treinamento no Amazon S3). 
   + `instance_count` e `instance_type`: o tipo e o número de instâncias de computação ML do Amazon EC2 a serem usadas no treinamento de modelo. Para este exercício de treinamento, você usa uma única instância `ml.m4.xlarge`, que tem 4 CPUs, 16 GB de memória, um armazenamento Amazon Elastic Block Store (Amazon EBS) e um alto desempenho de rede. Para obter mais informações sobre os tipos de instância de computação EC2, consulte [Tipos de instância do Amazon EC2](https://aws.amazon.com/ec2/instance-types/). Para obter mais informações sobre faturamento, consulte os [ SageMaker preços da Amazon](https://aws.amazon.com/sagemaker/pricing/). 
   + `volume_size`: o tamanho, em GB, do volume de armazenamento do EBS para anexar à instância de treinamento. Ela deve ser grande o suficiente para armazenar dados de treinamento se você usar o modo `File` (o modo `File` está ligado por padrão). Se você não especificar esse parâmetro, o seu valor será 30 por padrão.
   + `output_path`— O caminho para o bucket S3, onde a SageMaker IA armazena o artefato do modelo e os resultados do treinamento.
   + `sagemaker_session`— O objeto de sessão que gerencia as interações com as operações SageMaker da API e outros AWS serviços que o trabalho de treinamento usa.
   + `rules`— Especifique uma lista de regras integradas do SageMaker Debugger. Neste exemplo, a `create_xgboost_report()` regra cria um XGBoost relatório que fornece informações sobre o progresso e os resultados do treinamento, e a `ProfilerReport()` regra cria um relatório sobre a utilização dos recursos computacionais do EC2. Para obter mais informações, consulte [SageMaker Relatório interativo do depurador para XGBoost](debugger-report-xgboost.md).
**dica**  
Se você quiser executar um treinamento distribuído de modelos de aprendizado profundo de grande porte, como modelos de redes neurais convolucionais (CNN) e de processamento de linguagem natural (NLP), use o SageMaker AI Distributed para paralelismo de dados ou paralelismo de modelos. Para obter mais informações, consulte [Treinamento distribuído na Amazon SageMaker AI](distributed-training.md).

1. Defina os hiperparâmetros do XGBoost algoritmo chamando o `set_hyperparameters` método do estimador. Para obter uma lista completa dos XGBoost hiperparâmetros, consulte[XGBoost hiperparâmetros](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
   )
   ```
**dica**  
Você também pode ajustar os hiperparâmetros usando o recurso de otimização de hiperparâmetros de SageMaker IA. Para obter mais informações, consulte [Ajuste automático do modelo com SageMaker IA](automatic-model-tuning.md). 

1. Use a classe `TrainingInput` para configurar um fluxo de entrada de dados para treinamento. O código de exemplo a seguir mostra como configurar objetos `TrainingInput` para usar os conjuntos de dados de treinamento e validação que você enviou para o Amazon S3 na seção [Divida o conjunto de dados em treinamento, validação e teste](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. Para iniciar o treinamento do modelo, chame o método `fit` do estimador com os conjuntos de dados de treinamento e validação. Ao configurar `wait=True`, o método `fit` exibe os logs de progresso e aguarda o treinamento ser concluído para retornar os resultados.

   ```
   xgb_model.fit({"train": train_input, "validation": validation_input}, wait=True)
   ```

   Para obter mais informações sobre treinamento de modelo, consulte [Treine um modelo com a Amazon SageMaker](how-it-works-training.md). Esse trabalho de treinamento tutorial pode levar até 10 minutos.

   Depois que o trabalho de treinamento for concluído, você poderá baixar um relatório de XGBoost treinamento e um relatório de criação de perfil gerados pelo SageMaker Debugger. O relatório de XGBoost treinamento oferece informações sobre o progresso e os resultados do treinamento, como a função de perda em relação à iteração, importância do recurso, matriz de confusão, curvas de precisão e outros resultados estatísticos do treinamento. Por exemplo, você pode encontrar a seguinte curva de perda no relatório de XGBoost treinamento, que indica claramente que há um problema de sobreajuste.  
![\[O gráfico no relatório XGBoost de treinamento.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/get-started-ni/gs-ni-train-loss-curve-validation-overfitting.png)

   Execute o código a seguir para especificar o URI do bucket do S3 em que os relatórios de treinamento do Depurador são gerados e verifique se os relatórios existem.

   ```
   rule_output_path = xgb_model.output_path + "/" + xgb_model.latest_training_job.job_name + "/rule-output"
   ! aws s3 ls {rule_output_path} --recursive
   ```

   Baixe os relatórios de XGBoost treinamento e criação de perfil do Debugger para o espaço de trabalho atual:

   ```
   ! aws s3 cp {rule_output_path} ./ --recursive
   ```

   Execute o IPython script a seguir para obter o link do arquivo do relatório de XGBoost treinamento:

   ```
   from IPython.display import FileLink, FileLinks
   display("Click link below to view the XGBoost Training report", FileLink("CreateXgboostReport/xgboost_report.html"))
   ```

   O script IPython a seguir retorna o link do arquivo do relatório de criação de perfil do Depurador, que mostra resumos e detalhes da utilização de recursos da instância EC2, dos resultados da detecção de gargalos do sistema e dos resultados da criação de perfil da operação do 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"))
   ```
**dica**  
Se os relatórios HTML não renderizarem gráficos na JupyterLab exibição, você deverá escolher **Confiar em HTML** na parte superior dos relatórios.  
Para identificar problemas de treinamento, como sobreajuste, redução de gradientes e outros problemas que impedem a convergência do modelo, use o SageMaker Debugger e execute ações automatizadas ao criar protótipos e treinar seus modelos de ML. Para obter mais informações, consulte [SageMaker Depurador Amazon](train-debugger.md). Para encontrar uma análise completa dos parâmetros do modelo, consulte o caderno de exemplo de [explicabilidade com o 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). 

Agora você tem um XGBoost modelo treinado. SageMaker A IA armazena o artefato do modelo em seu bucket do S3. Para encontrar a localização do artefato do modelo, execute o código a seguir para imprimir o atributo model\$1data do estimador `xgb_model`:

```
xgb_model.model_data
```

**dica**  
Para medir os vieses que podem ocorrer durante cada estágio do ciclo de vida do ML (coleta de dados, treinamento e ajuste de modelos e monitoramento de modelos de ML implantados para previsão), use o Clarify. SageMaker Para obter mais informações, consulte [Explicabilidade do modelo](clarify-model-explainability.md). Para ver um end-to-end exemplo, consulte o caderno de exemplo [Fairness and Explicability with SageMaker Clarify](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-clarify/fairness_and_explainability/fairness_and_explainability.html).

# Implantar o modelo do Amazon EC2
<a name="ex1-model-deployment"></a>

Para obter previsões, implante seu modelo no Amazon EC2 usando o Amazon SageMaker AI.

**Topics**
+ [Implante o modelo nos serviços de hospedagem de SageMaker IA](#ex1-deploy-model)
+ [(Opcional) Use o SageMaker AI Predictor para reutilizar o endpoint hospedado](#ex1-deploy-model-sdk-use-endpoint)
+ [(Opcional) Faça predições com o Transformador de Lotes](#ex1-batch-transform)

## Implante o modelo nos serviços de hospedagem de SageMaker IA
<a name="ex1-deploy-model"></a>

Para hospedar um modelo por meio do Amazon EC2 usando o Amazon SageMaker AI, implante o modelo no qual você treinou [Criar e executar um trabalho de treinamento](ex1-train-model.md#ex1-train-model-sdk) chamando o `deploy` método do `xgb_model` estimador. Ao chamar o método `deploy`, você deve especificar o número e o tipo de instâncias EC2 ML que você deseja usar para hospedar o 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): O número de instâncias para implantar o modelo.
+ `instance_type` (str): O tipo de instância em que você deseja operar seu modelo implantado.
+ `serializer`(int) — Serializa dados de entrada de vários formatos (uma NumPy matriz, lista, arquivo ou buffer) em uma string formatada em CSV. Usamos isso porque o XGBoost algoritmo aceita arquivos de entrada no formato CSV.

O `deploy` método cria um modelo implantável, configura o endpoint dos serviços de hospedagem de SageMaker IA e inicia o endpoint para hospedar o modelo. Para obter mais informações, consulte o [método de classe de implantação do Estimator genérico de SageMaker IA no SDK](https://sagemaker.readthedocs.io/en/stable/estimators.html#sagemaker.estimator.Estimator.deploy) do Amazon [Python SageMaker ](https://sagemaker.readthedocs.io/en/stable). Para recuperar o nome do endpoint gerado pelo método `deploy`, execute o seguinte código:

```
xgb_predictor.endpoint_name
```

Isso deve retornar o nome do endpoint do `xgb_predictor`. O formato do nome do endpoint é `"sagemaker-xgboost-YYYY-MM-DD-HH-MM-SS-SSS"`. Esse endpoint permanece ativo na instância de ML e você pode fazer predições instantâneas a qualquer momento, a menos que o desligue posteriormente. Copie o nome desse endpoint e salve-o para reutilizá-lo e fazer previsões em tempo real em outros lugares nas instâncias do SageMaker Studio ou do notebook SageMaker AI.

**dica**  
Para saber mais sobre como compilar e otimizar seu modelo para implantação em instâncias ou dispositivos de borda do Amazon EC2, consulte [Compilar e implantar modelos com o Neo](https://docs.aws.amazon.com/sagemaker/latest/dg/neo.html).

## (Opcional) Use o SageMaker AI Predictor para reutilizar o endpoint hospedado
<a name="ex1-deploy-model-sdk-use-endpoint"></a>

Depois de implantar o modelo em um endpoint, você pode configurar um novo preditor de SageMaker IA emparelhando o endpoint e fazendo previsões em tempo real continuamente em qualquer outro notebook. O código de exemplo a seguir mostra como usar a classe SageMaker AI Predictor para configurar um novo objeto preditor usando o mesmo endpoint. Reutilize o nome do endpoint que você usou para o `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()
)
```

O preditor `xgb_predictor_reuse` se comporta exatamente da mesma forma que o `xgb_predictor` original. Para obter mais informações, consulte a classe [SageMaker AI Predictor](https://sagemaker.readthedocs.io/en/stable/predictors.html#sagemaker.predictor.RealTimePredictor) no SDK do [Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable).

## (Opcional) Faça predições com o Transformador de Lotes
<a name="ex1-batch-transform"></a>

Em vez de hospedar um endpoint em produção, você pode executar um trabalho único de inferência em lote para fazer previsões em um conjunto de dados de teste usando a transformação em lote da IA. SageMaker Depois que o treinamento do modelo for concluído, você poderá estender o estimador a um `transformer` objeto, que se baseia na classe [SageMaker AI Transformer](https://sagemaker.readthedocs.io/en/stable/api/inference/transformer.html). O transformador em lote lê os dados de entrada de um bucket do S3 especificado e faz predições.

**Para executar um trabalho de transformação em lote**

1. Execute o código a seguir para converter as colunas de atributos do conjunto de dados de teste em um arquivo CSV e fazer o upload para o bucket do 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. Especifique o bucket S3 URIs de entrada e saída para o trabalho de transformação em lote, conforme mostrado a seguir:

   ```
   # 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. Crie um objeto transformador especificando o número mínimo de parâmetros: os parâmetros `instance_count` e `instance_type` para executar o trabalho de transformação em lote e `output_path` para salvar os dados de predição, conforme mostrado a seguir: 

   ```
   transformer = xgb_model.transformer(
       instance_count=1, 
       instance_type='ml.m4.xlarge', 
       output_path=batch_output
   )
   ```

1. Inicie o trabalho de transformação em lote executando o método `transform()` do objeto `transformer` conforme mostrado a seguir:

   ```
   transformer.transform(
       data=batch_input, 
       data_type='S3Prefix',
       content_type='text/csv', 
       split_type='Line'
   )
   transformer.wait()
   ```

1. Quando o trabalho de transformação em lote é concluído, a SageMaker IA cria os dados de `test.csv.out` previsão salvos no `batch_output` caminho, que devem estar no seguinte formato:`s3://sagemaker-<region>-111122223333/demo-sagemaker-xgboost-adult-income-prediction/batch-prediction`. Execute o seguinte AWS CLI para baixar os dados de saída do trabalho de transformação em lote:

   ```
   ! aws s3 cp {batch_output} ./ --recursive
   ```

   Isso deve criar o arquivo `test.csv.out` no diretório de trabalho atual. Você poderá ver os valores flutuantes que são previstos com base na regressão logística do trabalho de treinamento. XGBoost 

# Como avaliar o modelo
<a name="ex1-test-model"></a>

Agora que você treinou e implantou um modelo usando o Amazon SageMaker AI, avalie o modelo para garantir que ele gere previsões precisas sobre novos dados. Para avaliação de modelos, use o conjunto de dados de teste que você criou em [Preparar conjuntos de dados](ex1-preprocess-data.md).

## Avalie o modelo implantado nos serviços de hospedagem de SageMaker IA
<a name="ex1-test-model-endpoint"></a>

Para avaliar o modelo e usá-lo na produção, invoque o endpoint com o conjunto de dados de teste e verifique se as inferências obtidas retornam a precisão de destino que você deseja alcançar.

**Como avaliar o modelo**

1. Configure a função a seguir para prever cada linha do conjunto de teste. No código de exemplo a seguir, o argumento `rows` é especificar o número de linhas a serem previstas por vez. Você pode alterar o valor para realizar uma inferência em lote que utilize totalmente o recurso de hardware da instância.

   ```
   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. Execute o código a seguir para fazer predições do conjunto de dados de teste e traçar um histograma. Você precisa usar somente as colunas de atributos do conjunto de dados de teste, excluindo a 0ª coluna para os valores reais.

   ```
   import matplotlib.pyplot as plt
   
   predictions=predict(test.to_numpy()[:,1:])
   plt.hist(predictions)
   plt.show()
   ```  
![\[Um histograma dos valores previstos.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/get-started-ni/gs-ni-eval-predicted-values-histogram.png)

1. Os valores previstos são do tipo flutuante. Para determinar `True` ou `False` com base nos valores flutuantes, você precisa definir um valor limite. Conforme mostrado no código de exemplo a seguir, use a biblioteca Scikit-learn para retornar as métricas de confusão de saída e o relatório de classificação com um limite de 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)))
   ```

   Isso deve retornar a seguinte matriz de confusão:  
![\[Um exemplo de matriz de confusão e estatística após obter a inferência do modelo implantado.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/get-started-ni/gs-ni-evaluate-confusion-matrix.png)

1. Para encontrar o melhor ponto de corte com o conjunto de testes fornecido, calcule a função de perda de log da regressão logística. A função de perda de logs é definida como a probabilidade logarítmica negativa de um modelo logístico que retorna probabilidades de predição para seus rótulos de verdade básica. O código de exemplo a seguir calcula numericamente e iterativamente os valores de perda de log (`-(y*log(p)+(1-y)log(1-p)`), onde `y` está o rótulo verdadeiro e `p` é uma estimativa de probabilidade da amostra de teste correspondente. Ele retorna um gráfico de perda de logs versus corte.

   ```
   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()
   ```

   Isso deve retornar a seguinte: curva de perda de logs.  
![\[Exemplo de seguir a curva de perda de logs.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/get-started-ni/gs-ni-evaluate-logloss-vs-cutoff.png)

1. Encontre os pontos mínimos da curva de erro usando as `min` funções NumPy `argmin` e:

   ```
   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)
   )
   ```

   Isso deve retornar: `Log loss is minimized at a cutoff of 0.53, and the log loss value at the minimum is 4.348539186773897`.

   Em vez de computar e minimizar a função de perda de log, você pode estimar uma função de custo como alternativa. Por exemplo, se você quiser treinar um modelo para realizar uma classificação binária para um problema empresarial, como um problema de Predição de fragmentos de clientes, você pode definir pesos para os elementos da matriz de confusão e calcular a função de custo adequadamente.

Agora você treinou, implantou e avaliou seu primeiro modelo em SageMaker IA.

**dica**  
Para monitorar a qualidade do modelo, a qualidade dos dados e o desvio de tendências, use o Amazon SageMaker Model Monitor e o SageMaker AI Clarify. Para saber mais, consulte [Amazon SageMaker Model Monitor, Monitore](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor.html) [Data Quality, Monitore](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-data-quality.html) [Model Quality](https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality.html), [Monitore Bias Drift](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-model-monitor-bias-drift.html) e [Monitore Feature Attribution](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-model-monitor-feature-attribution-drift.html) Drift.

**dica**  
Para obter uma análise humana de predições de ML de baixa confiança ou uma amostra aleatória de predições, use os fluxos de trabalho de análise humana com IA aumentada da Amazon. Para obter mais informações, consulte [Usando o Amazon IA aumentada para análise humana](https://docs.aws.amazon.com/sagemaker/latest/dg/a2i-use-augmented-ai-a2i-human-review-loops.html).

# Limpe os recursos da instância de SageMaker notebook da Amazon
<a name="ex1-cleanup"></a>

Para evitar cobranças desnecessárias, use o Console de gerenciamento da AWS para excluir os endpoints e os recursos que você criou ao executar os exercícios. 

**nota**  
Os trabalhos e logs de treinamento não podem ser excluídos e são retidos indefinidamente.

**nota**  
Se pretende explorar outros exercícios deste guia, convém manter alguns desses recursos, como a instância de caderno, o bucket do S3 e o perfil do IAM.

 

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)e exclua os seguintes recursos:
   + O endpoint. A exclusão do endpoint também exclui a instância de computação de ML ou as instâncias que oferecem apoio a ele.

     1. Em **Inferência**, escolha **Endpoints**.

     1. Escolha o endpoint que você criou no exemplo, escolha **Ações** e em seguida, escolha **Excluir**.
   + A configuração de endpoint.

     1. Em **Inferência**, escolha **Configurações de endpoint**.

     1. Escolha a configuração de endpoint que você criou no exemplo, escolha **Ações** e em seguida, escolha **Excluir**.
   + O modelo.

     1. Em **Inferência**, escolha **Modelos**.

     1. Escolha o modelo que você criou no exemplo, escolha **Ações** e em seguida, escolha **Excluir**.
   + A instância de caderno. Antes de excluir a instância do caderno, interrompa a instância.

     1. Em **Caderno**, escolha **Instâncias de caderno**.

     1. Escolha a instância de caderno que você criou no exemplo e escolha **Ações**, e em seguida, escolha **Parar**. A instância de caderno leva até vários minutos para ser interrompida. Quando o **Status** for alterado para **Interrompida**, passe para a próxima etapa.

     1. Escolha **Ações** e, em seguida, escolha **Excluir**.

1. Abra o console do Amazon S3 em e [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/), em seguida, exclua o bucket que você criou para armazenar artefatos do modelo e o conjunto de dados de treinamento. 

1. Abra o CloudWatch console da Amazon em e [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/), em seguida, exclua todos os grupos de registros que têm nomes começando com`/aws/sagemaker/`.

# AL2023 instâncias de notebook
<a name="nbi-al2023"></a>

Atualmente, as instâncias de SageMaker notebooks da Amazon oferecem suporte a sistemas AL2023 operacionais. AL2023agora é o sistema operacional mais recente e recomendado para instâncias de notebooks. Você pode selecionar o sistema operacional no qual sua instância de caderno se baseia ao criar a instância de caderno.

SageMaker A IA oferece suporte a instâncias de notebook com base nos seguintes sistemas AL2023 operacionais.
+ **notebook-al2023-v1**: essas instâncias de notebook oferecem suporte à versão 4. JupyterLab Para obter informações sobre JupyterLab versões, consulte[JupyterLab controle de versão](nbi-jl.md).

**Topics**
+ [Tipos de instâncias compatíveis](#nbi-al2023-instances)
+ [Kernels disponíveis](#nbi-al2023-kernel)

## Tipos de instâncias compatíveis
<a name="nbi-al2023-instances"></a>

AL2023 oferece suporte aos tipos de instância listados em **Instâncias de Notebook** no [SageMaker AI Pricing](https://aws.amazon.com/sagemaker/pricing/), com a exceção de que AL2023 não oferece suporte a`ml.p2`,`ml.p3`, `ml.g3` instâncias.

## Kernels disponíveis
<a name="nbi-al2023-kernel"></a>

A tabela a seguir fornece informações sobre os kernels disponíveis para instâncias de SageMaker notebook. Todas essas imagens são suportadas em instâncias de notebook com base no sistema `notebook-al2023-v1` operacional.


| Nome do kernel | Description | 
| --- | --- | 
| R | Um kernel usado para realizar análise e visualização de dados usando o código R de um caderno Jupyter. | 
| Sparkmagic () PySpark | Um kernel usado para fazer ciência de dados com clusters Spark remotos de cadernos Jupyter usando a linguagem de programação Python. Esse kernel vem com o Python 3.10. | 
| Sparkmagic (Spark) | Um kernel usado para fazer ciência de dados com clusters Spark remotos de cadernos Jupyter usando a linguagem de programação Scala. Esse kernel vem com o Python 3.10. | 
| Sparkmagic (SparkR) | Um kernel usado para fazer ciência de dados com clusters Spark remotos de cadernos Jupyter usando a linguagem de programação R. Esse kernel vem com o Python 3.10. | 
| conda\$1python3 | Um ambiente conda que vem pré-instalado com pacotes mais conhecidos para ciência de dados e machine learning. Esse kernel vem com o Python 3.10. | 
| conda\$1pytorch | Um ambiente conda que vem pré-instalado com a PyTorch versão 2.7.0, bem como pacotes populares de ciência de dados e aprendizado de máquina. Esse kernel vem com o Python 3.10. | 

# Instâncias de caderno do Amazon Linux 2
<a name="nbi-al2"></a>

**Importante**  
JupyterLab 1 e JupyterLab 3 não são mais compatíveis desde 30 de junho de 2025. Não é mais possível criar ou reiniciar instâncias de caderno interrompidas usando essas versões. As instâncias em serviço existentes podem continuar funcionando, mas não receberão atualizações de segurança ou correções de bug. Migre para JupyterLab 4 instâncias de notebook para obter suporte contínuo. Para obter mais informações, consulte [JupyterLab manutenção da versão](nbi-jl.md#nbi-jl-version-maintenance).

**nota**  
AL2023 é o sistema operacional mais recente e recomendado disponível para instâncias de notebooks. Para saber mais, consulte [AL2023 instâncias de notebook](nbi-al2023.md).

Atualmente, as instâncias de SageMaker notebooks da Amazon oferecem suporte aos sistemas operacionais Amazon Linux 2 (AL2). Você pode selecionar o sistema operacional no qual sua instância de caderno se baseia ao criar a instância de caderno.

SageMaker A IA oferece suporte a instâncias de notebook com base nos seguintes sistemas operacionais Amazon Linux 2.
+ **notebook-al2-v1** (obsoleto): essas instâncias de notebook oferecem suporte à versão 1. JupyterLab Desde 30 de junho de 2025 não é possível criar instâncias com esse identificador de plataforma. Para obter informações sobre JupyterLab versões, consulte[JupyterLab controle de versão](nbi-jl.md).
+ **notebook-al2-v2** (obsoleto): essas instâncias de notebook são compatíveis com a versão 3. JupyterLab Desde 30 de junho de 2025 não é possível criar instâncias com esse identificador de plataforma. Para obter informações sobre JupyterLab versões, consulte[JupyterLab controle de versão](nbi-jl.md).
+ **notebook-al2-v3**: essas instâncias de notebook oferecem suporte à versão 4. JupyterLab Para obter informações sobre JupyterLab versões, consulte[JupyterLab controle de versão](nbi-jl.md).

As instâncias de notebook criadas antes de 18/08/2021 são executadas automaticamente no Amazon Linux (). AL1 As instâncias de notebook baseadas em AL1 entraram em uma fase de manutenção em 12/01/2022 e não estão mais disponíveis para a criação de novas instâncias de notebook a partir de 02/01/2023. Para substituir AL1, agora você tem a opção de criar instâncias de SageMaker notebook da Amazon com AL2. Para obter mais informações, consulte [AL1 Plano da fase de manutenção](#nbi-al2-deprecation).

**Topics**
+ [Tipos de instâncias compatíveis](#nbi-al2-instances)
+ [Kernels disponíveis](#nbi-al2-kernel)
+ [AL1 Plano da fase de manutenção](#nbi-al2-deprecation)

## Tipos de instâncias compatíveis
<a name="nbi-al2-instances"></a>

O Amazon Linux 2 oferece suporte aos tipos de instância listados em **Instâncias de Notebook** na [Amazon SageMaker Pricing](https://aws.amazon.com/sagemaker/pricing/), com a exceção de que o Amazon Linux 2 não oferece suporte a `ml.p2` instâncias.

## Kernels disponíveis
<a name="nbi-al2-kernel"></a>

A tabela a seguir fornece informações sobre os kernels disponíveis para instâncias de SageMaker notebook. Todas essas imagens são compatíveis com instâncias de caderno com base nos sistemas operacionais `notebook-al2-v1`, `notebook-al2-v2` e `notebook-al2-v3`.

SageMaker kernels de instância de notebook


| Nome do kernel | Description | 
| --- | --- | 
| R | Um kernel usado para realizar análise e visualização de dados usando o código R de um caderno Jupyter. | 
| Sparkmagic () PySpark | Um kernel usado para fazer ciência de dados com clusters Spark remotos de cadernos Jupyter usando a linguagem de programação Python. Esse kernel vem com o Python 3.10. | 
| Sparkmagic (Spark) | Um kernel usado para fazer ciência de dados com clusters Spark remotos de cadernos Jupyter usando a linguagem de programação Scala. Esse kernel vem com o Python 3.10. | 
| Sparkmagic (SparkR) | Um kernel usado para fazer ciência de dados com clusters Spark remotos de cadernos Jupyter usando a linguagem de programação R. Esse kernel vem com o Python 3.10. | 
| conda\$1python3 | Um ambiente conda que vem pré-instalado com pacotes mais conhecidos para ciência de dados e machine learning. Esse kernel vem com o Python 3.10. | 
| conda\$1pytorch\$1p310 |  Um ambiente conda que vem pré-instalado com a PyTorch versão 2.2.0, bem como pacotes populares de ciência de dados e aprendizado de máquina. Esse kernel vem com o Python 3.10. | 
| conda\$1tensorflow2\$1p310 | Um ambiente conda que vem pré-instalado com a TensorFlow versão 2.16.0, bem como pacotes populares de ciência de dados e aprendizado de máquina. Esse kernel vem com o Python 3.10. | 

## AL1 Plano da fase de manutenção
<a name="nbi-al2-deprecation"></a>

A tabela a seguir é um cronograma de quando AL1 entrou na fase de manutenção estendida. A fase AL1 de manutenção também coincide com a descontinuação do Python 2 e do Chainer. Os notebooks baseados em AL2 não têm kernels gerenciados do Python 2 e do Chainer.


|  Data  |  Description  | 
| --- | --- | 
|  18/08/2021  |  Instâncias de notebook baseadas em AL2 são lançadas. As instâncias de notebook recém-lançadas ainda são padronizadas AL1. AL1 é compatível com patches e atualizações de segurança, mas sem novos recursos. Você pode escolher entre os dois sistemas operacionais ao iniciar uma nova instância de caderno.  | 
|  31/10/2022  |  O identificador de plataforma padrão para instâncias de SageMaker notebook muda do Amazon Linux (al1-v1) para o Amazon Linux 2 (al2-v2). Você pode escolher entre os dois sistemas operacionais ao iniciar uma nova instância de caderno.  | 
|  12/01/2022  |  AL1 não é mais compatível com patches e atualizações de segurança não essenciais. AL1 ainda recebe correções para problemas [críticos](https://nvd.nist.gov/vuln-metrics/cvss#) relacionados à segurança. Você ainda pode iniciar instâncias em AL1, mas assumir os riscos associados ao uso de um sistema operacional sem suporte.  | 
|  02/01/2023  |  AL1 não é mais uma opção disponível para a criação de novas instâncias de notebook. Após essa data, os clientes podem criar instâncias de notebook com os identificadores da AL2 plataforma. Os notebooks existentes com um `INSERVICE` status devem ser migrados para a plataforma mais recente, pois a disponibilidade contínua das instâncias do AL1 notebook não pode ser garantida.  | 
|  31/03/2024  |  AL1 chega ao fim da vida útil em instâncias de notebooks em 31 de março de 2024. Após essa data, não AL1 receberá mais atualizações de segurança, correções de bugs ou estará disponível para a criação de novas instâncias de notebook.  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/nbi-al2.html)  | 

### Migração para o Amazon Linux 2
<a name="nbi-al2-upgrade"></a>

Sua instância de AL1 notebook existente não é migrada automaticamente para o Amazon Linux 2. Para atualizar sua instância de AL1 notebook para o Amazon Linux 2, você deve criar uma nova instância de notebook, replicar seu código e ambiente e excluir sua instância de notebook antiga. Para obter mais informações, consulte o [blog da migração do Amazon Linux 2](https://aws.amazon.com/blogs/machine-learning/migrate-your-work-to-amazon-sagemaker-notebook-instance-with-amazon-linux-2/ ).

# JupyterLab controle de versão
<a name="nbi-jl"></a>

**Importante**  
JupyterLab 1 e JupyterLab 3 não são mais compatíveis desde 30 de junho de 2025. Não é mais possível criar ou reiniciar instâncias de caderno interrompidas usando essas versões. As instâncias em serviço existentes podem continuar funcionando, mas não receberão atualizações de segurança ou correções de bug. Migre para JupyterLab 4 instâncias de notebook para obter suporte contínuo. Para obter mais informações, consulte [JupyterLab manutenção da versão](#nbi-jl-version-maintenance).

A interface de instância de SageMaker notebook da Amazon é baseada em JupyterLab, que é um ambiente de desenvolvimento interativo baseado na web para notebooks, códigos e dados. Os notebooks agora suportam o uso de JupyterLab 1, JupyterLab 3 ou JupyterLab 4. Uma única instância do notebook pode executar uma única instância de JupyterLab (no máximo). Você pode ter várias instâncias de notebook com JupyterLab versões diferentes. 

Você pode configurar seu notebook para executar sua JupyterLab versão preferida selecionando o identificador de plataforma apropriado. Use o console AWS CLI ou o SageMaker AI ao criar sua instância de notebook. Para obter mais informações sobre identificadores de plataforma, consulte [AL2023 instâncias de notebook](nbi-al2023.md) e. [Instâncias de caderno do Amazon Linux 2](nbi-al2.md) Se você não configurar explicitamente um identificador de plataforma, sua instância do notebook usará como padrão a execução de 1. JupyterLab 

**Topics**
+ [JupyterLab manutenção da versão](#nbi-jl-version-maintenance)
+ [JupyterLab 4](#nbi-jl-4)
+ [JupyterLab 3](#nbi-jl-3)
+ [Crie um caderno com sua JupyterLab versão](nbi-jl-create.md)
+ [Veja a JupyterLab versão de um notebook no console](nbi-jl-view.md)

## JupyterLab manutenção da versão
<a name="nbi-jl-version-maintenance"></a>

JupyterLab As plataformas 1 e JupyterLab 3 atingiram o fim do suporte padrão em 30 de junho de 2025. A partir dessa data:
+ Você não pode mais criar novas ou reiniciar instâncias de JupyterLab 1 e JupyterLab 3 notebooks interrompidas.
+ As instâncias de JupyterLab 1 e JupyterLab 3 notebooks existentes em serviço podem continuar funcionando, mas não receber mais atualizações de segurança de SageMaker IA ou correções de bugs críticos.
+ Você é responsável por gerenciar a segurança dessas instâncias obsoletas.
+ Se surgirem problemas com JupyterLab 1 ou JupyterLab 3 instâncias de notebook existentes, a SageMaker IA não pode garantir sua disponibilidade contínua. Você deve migrar sua carga de trabalho para uma instância de JupyterLab 4 notebooks.

Migre seu trabalho para JupyterLab 4 instâncias de notebook (o identificador de plataforma da versão mais recente é [notebook-al2023-v1](nbi-al2023.md)) para garantir que você tenha um ambiente seguro e com suporte. Isso permite que você aproveite as versões mais recentes dos notebooks Jupyter e de outras JupyterLab bibliotecas de ML. Para obter instruções, consulte [migrar seu trabalho para uma instância de notebook de SageMaker IA com o 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 O suporte 4 está disponível somente na plataforma do sistema operacional Amazon Linux 2. JupyterLab 4 inclui os seguintes recursos que não estão disponíveis em JupyterLab 3:
+ Renderização otimizada para oferecer uma experiência mais rápida.
+ Configurações opcionais para troca mais rápida de guias e melhor desempenho com cadernos longos. Para obter mais informações, consulte a postagem do blog [ JupyterLab 4.0 is Here](https://blog.jupyter.org/jupyterlab-4-0-is-here-388d05e03442).
+ Editor de texto atualizado.
+ Novo gerenciador de extensões instalado por meio do PyPi.
+ Melhorias adicionadas à interface de usuário, como aprimoramentos na pesquisa de documentos e na acessibilidade.

Você pode executar JupyterLab 4 especificando [notebook-al2023-v1 (a versão mais recente e recomendada) ou notebook-al2-v3](nbi-al2023.md) [como o identificador da plataforma ao criar sua instância de notebook](nbi-al2.md).

**nota**  
Se você tentar migrar de outra JupyterLab versão para uma instância de JupyterLab 4 notebooks, as mudanças na versão do pacote entre JupyterLab 3 e JupyterLab 4 podem interromper qualquer configuração ou extensão de ciclo de vida existente. Jupyter/JupyterLab 

**Alterações na versão do pacote**

JupyterLab 4 tem as seguintes alterações de versão do pacote em relação à JupyterLab 3:
+ JupyterLab foi atualizado de 3.x para 4.x.
+ O caderno Jupyter foi atualizado de 6.x para 7.x.
+ jupyterlab-git foi atualizado para a versão 0.50.0.

## JupyterLab 3
<a name="nbi-jl-3"></a>

**Importante**  
JupyterLab 1 e JupyterLab 3 não são mais compatíveis desde 30 de junho de 2025. Não é mais possível criar ou reiniciar instâncias de caderno interrompidas usando essas versões. As instâncias em serviço existentes podem continuar funcionando, mas não receberão atualizações de segurança ou correções de bug. Migre para JupyterLab 4 instâncias de notebook para obter suporte contínuo. Para obter mais informações, consulte [JupyterLab manutenção da versão](#nbi-jl-version-maintenance).

 JupyterLab O suporte 3 está disponível somente na plataforma do sistema operacional Amazon Linux 2. JupyterLab 3 inclui os seguintes recursos que não estão disponíveis em JupyterLab 1. Para obter mais informações sobre esses recursos, consulte [Lançamento da JupyterLab versão 3.0\$1](https://blog.jupyter.org/jupyterlab-3-0-is-out-4f58385e25bb) . 
+  Depurador visual ao usar os seguintes kernels: 
  +  conda\$1pytorch\$1p38 
  +  conda\$1tensorflow2\$1p38 
  +  conda\$1amazonei\$1pytorch\$1latest\$1p37 
+ Filtro de navegador de arquivos
+ Índice
+ Compatibilidade com vários idiomas
+ Modo simples
+ Modo de interface única
+ Edição ao vivo de arquivos SVG com renderização atualizada
+ Interface de usuário para etiquetas de células de caderno

### Mudanças importantes em JupyterLab 3
<a name="nbi-jl-3-changes"></a>

 Para obter informações sobre mudanças importantes ao usar o JupyterLab 3, consulte os seguintes registros de JupyterLab alterações: 
+  [v2.0.0](https://github.com/jupyterlab/jupyterlab/releases) 
+  [v3.0.0](https://jupyterlab.readthedocs.io/en/stable/getting_started/changelog.html#for-developers) 

 **Alterações na versão do pacote** 

 JupyterLab 3 tem as seguintes alterações de versão do pacote a partir de JupyterLab 1: 
+  JupyterLab foi atualizado de 1.x para 3.x.
+  O caderno Jupyter foi atualizado de 5.x para 6.x.
+  jupyterlab-git foi atualizado para a versão 0.37.1.
+  O nbserverproxy 0.x (0.3.2) foi substituído pelo 3.x (3.2.1). jupyter-server-proxy

# Crie um caderno com sua JupyterLab versão
<a name="nbi-jl-create"></a>

**Importante**  
JupyterLab 1 e JupyterLab 3 não são mais compatíveis desde 30 de junho de 2025. Não é mais possível criar ou reiniciar instâncias de caderno interrompidas usando essas versões. As instâncias em serviço existentes podem continuar funcionando, mas não receberão atualizações de segurança ou correções de bug. Migre para JupyterLab 4 instâncias de notebook para obter suporte contínuo. Para obter mais informações, consulte [JupyterLab manutenção da versão](nbi-jl.md#nbi-jl-version-maintenance).

 Você pode selecionar a JupyterLab versão ao criar sua instância de notebook no console seguindo as etapas em[Crie uma instância de SageMaker notebook da Amazon](howitworks-create-ws.md). 

 Você também pode selecionar a JupyterLab versão passando o `platform-identifier` parâmetro ao criar sua instância do notebook usando o AWS CLI seguinte: 

```
create-notebook-instance --notebook-instance-name <NEW_NOTEBOOK_NAME> \
--instance-type <INSTANCE_TYPE> \
--role-arn <YOUR_ROLE_ARN> \
--platform-identifier notebook-al2-v3
```

# Veja a JupyterLab versão de um notebook no console
<a name="nbi-jl-view"></a>

**Importante**  
JupyterLab 1 e JupyterLab 3 não são mais compatíveis desde 30 de junho de 2025. Não é mais possível criar ou reiniciar instâncias de caderno interrompidas usando essas versões. As instâncias em serviço existentes podem continuar funcionando, mas não receberão atualizações de segurança ou correções de bug. Migre para JupyterLab 4 instâncias de notebook para obter suporte contínuo. Para obter mais informações, consulte [JupyterLab manutenção da versão](nbi-jl.md#nbi-jl-version-maintenance).

 Você pode visualizar a JupyterLab versão de um notebook usando o procedimento a seguir: 

1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, selecione **Caderno**.

1.  No menu suspenso, selecione **Instâncias do caderno** para navegar até a página **Instâncias do caderno**. 

1.  Na lista de instâncias do caderno, selecione o nome da instância do caderno. 

1.  Na página de **configurações da instância do Notebook**, visualize o **Identificador da Plataforma** para ver a JupyterLab versão do notebook. 

# Crie uma instância de SageMaker notebook da Amazon
<a name="howitworks-create-ws"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Uma instância de SageMaker notebook da Amazon é uma instância de computação de ML executando o aplicativo Jupyter Notebook. SageMaker A IA gerencia a criação da instância e dos recursos relacionados. Use os cadernos Jupyter em sua instância de caderno para:
+ preparar e processar dados;
+ escrever código para treinar modelos;
+ implante modelos na hospedagem de SageMaker IA
+ testar ou validar modelos.

Para criar uma instância de notebook, use o console de SageMaker IA ou o [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateNotebookInstance.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateNotebookInstance.html)API.

O tipo de instância de caderno que você escolher depende de como você a usa. Verifique se a instância de caderno não está vinculada à memória, CPU ou IO. Se você planeja carregar um conjunto de dados na memória na instância de caderno para explorar ou pré-processar, recomendamos optar pelo tipo de instância com memória RAM suficiente para o conjunto de dados. Isso exigiria uma instância com pelo menos 16 GB de memória (.xlarge ou superior). Se você planeja usar o caderno para pré-processamento intensivo de computação, recomendamos optar por uma instância otimizada para computação, como c4 ou c5.

Uma prática recomendada ao usar um SageMaker notebook é usar a instância do notebook para orquestrar outros AWS serviços. Por exemplo, você pode usar a instância de caderno para gerenciar o processamento de grandes conjuntos de dados. Para fazer isso, faça chamadas para o AWS Glue for ETL (extrair, transformar e carregar) ou para o Amazon EMR para mapeamento e redução de dados usando o Hadoop. Você pode usar AWS serviços como formas temporárias de computação ou armazenamento para seus dados.

Você pode armazenar e recuperar seus dados de treinamento e teste usando um bucket do Amazon Simple Storage Service. Em seguida, você pode usar a SageMaker IA para treinar e criar seu modelo. Como resultado, o tipo de instância do seu caderno não teria influência na velocidade do treinamento e teste do seu modelo.

Depois de receber a solicitação, a SageMaker IA faz o seguinte:
+ **Cria uma interface de rede** — se você escolher a configuração opcional de VPC SageMaker , a IA criará a interface de rede em sua VPC. Ele usa o ID da sub-rede que você fornece na solicitação para determinar em qual zona de disponibilidade criar a sub-rede. SageMaker A IA associa o grupo de segurança que você fornece na solicitação à sub-rede. Para obter mais informações, consulte [Conectar uma instância de caderno em uma VPC aos recursos externos](appendix-notebook-and-internet-access.md). 
+ **Lança uma instância de computação de ML** — a SageMaker IA inicia uma instância de computação de ML em uma SageMaker VPC de IA. SageMaker A IA executa as tarefas de configuração que permitem gerenciar sua instância do notebook. Se você especificou sua VPC, a SageMaker IA habilita o tráfego entre sua VPC e a instância do notebook.
+ **Instala pacotes e bibliotecas do Anaconda para plataformas comuns de aprendizado profundo** — a SageMaker IA instala todos os pacotes do Anaconda incluídos no instalador. Para obter mais informações, consulte a lista de [pacotes do Anaconda](https://docs.anaconda.com/free/anaconda/pkg-docs/). SageMaker A IA também instala as bibliotecas de aprendizado MXNet profundo TensorFlow e do Apache. 
+ **Anexa um volume de armazenamento de ML** — a SageMaker AI anexa um volume de armazenamento de ML à instância de computação de ML. Você pode usar o volume como uma área de trabalho para limpar o conjunto de dados de treinamento ou armazenar temporariamente a validação, o teste ou outros dados. Escolha qualquer tamanho entre 5 GB e 16384 GB, em incrementos de 1 GB, para o volume. O padrão é 5 GB. Os volumes de armazenamento de ML são criptografados, então a SageMaker IA não pode determinar a quantidade de espaço livre disponível no volume. Por isso, você pode aumentar o tamanho do volume ao atualizar uma instância do caderno, mas não pode diminuir o tamanho do volume. Se você deseja diminuir o tamanho do volume de armazenamento do ML em uso, crie uma nova instância do caderno com o tamanho desejado.

  Somente os arquivos e dados salvos na pasta `/home/ec2-user/SageMaker` persistem entre sessões de instância de caderno. Os arquivos e dados salvos fora desse diretório são sobrescritos quando a instância de caderno é interrompida e reiniciada. O `/tmp` diretório de cada instância do notebook fornece um mínimo de 10 GB de armazenamento em um armazenamento de instâncias. Um armazenamento de instância é um armazenamento ao nível do bloco temporário e não persistente. Quando a instância é interrompida ou reiniciada, a SageMaker IA exclui o conteúdo do diretório e todas as personalizações do sistema operacional. Esse armazenamento temporário faz parte do volume raiz da instância de caderno.

  Se a instância do notebook não estiver atualizada e estiver executando um software não seguro, a SageMaker IA poderá atualizar periodicamente a instância como parte da manutenção regular. Durante essas atualizações, os dados fora da pasta `/home/ec2-user/SageMaker` não são mantidos. Para obter mais informações sobre patches de manutenção e segurança, consulte[Manutenção](nbi.md#nbi-maintenance).

  Se o tipo de instância usado pela instância do notebook tiver NVMe suporte, os clientes poderão usar os volumes de armazenamento de NVMe instâncias disponíveis para esse tipo de instância. Para instâncias com volumes de NVMe armazenamento, todos os volumes de armazenamento de instâncias são automaticamente anexados à instância na inicialização. Para obter mais informações sobre os tipos de instância e seus volumes de NVMe armazenamento associados, consulte os [detalhes do tipo de instância do Amazon Elastic Compute Cloud](https://aws.amazon.com/ec2/instance-types/).

  Para disponibilizar o volume de NVMe armazenamento anexado para sua instância de notebook, conclua as etapas em [Disponibilizar volumes de armazenamento de instâncias em sua instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/add-instance-store-volumes.html#making-instance-stores-available-on-your-instances). Conclua as etapas com acesso root ou usando um script de configuração do ciclo de vida.
**nota**  
NVMe volumes de armazenamento de instâncias não são armazenamento persistente. Esse armazenamento dura pouco com a instância e deve ser reconfigurado sempre que uma instância com esse armazenamento for iniciada.

**Para criar uma instância de notebook de SageMaker IA:**

1. Abra o console de SageMaker IA em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/). 

1. Escolha **Instâncias de caderno** e **Criar instância de caderno**.

1. Na página **Criar instância de caderno**, forneça as seguintes informações: 

   1. Em **Nome da instância de caderno**, digite um nome para a sua instância de caderno.

   1. Para o **tipo de instância do caderno** (caderno), escolha um tamanho de instância adequado ao seu caso de uso. Para obter uma lista dos tipos e cotas de instância compatíveis, consulte [Amazon SageMaker AI Service](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html#limits_sagemaker) Quotas.

   1. Em **Identificador da Plataforma**, escolha um tipo de plataforma para criar a instância do caderno. Esse tipo de plataforma determina o sistema operacional e a JupyterLab versão com a qual sua instância do notebook é criada. A versão mais recente e recomendada é `notebook-al2023-v1` para uma instância de notebook Amazon Linux 2023. Em 30 de junho de 2025, apenas JupyterLab 4 eram compatíveis com novas instâncias. Para obter informações sobre os tipos de identificadores de plataforma, consulte [AL2023 instâncias de notebook](nbi-al2023.md) [Instâncias de caderno do Amazon Linux 2](nbi-al2.md) e. Para obter informações sobre JupyterLab versões, consulte[JupyterLab controle de versão](nbi-jl.md).
**Importante**  
JupyterLab 1 e JupyterLab 3 não são mais compatíveis desde 30 de junho de 2025. Não é mais possível criar ou reiniciar instâncias de caderno interrompidas usando essas versões. As instâncias em serviço existentes podem continuar funcionando, mas não receberão atualizações de segurança ou correções de bug. Migre para JupyterLab 4 instâncias de notebook para obter suporte contínuo. Para obter mais informações, consulte [JupyterLab manutenção da versão](nbi-jl.md#nbi-jl-version-maintenance).

   1. (Opcional) A **Additional configuration (Configuração adicional)** permite que os usuários avançados criem um script shell que pode ser executado quando você cria ou inicia a instância. Esse script, chamado de script de configuração do ciclo de vida, pode ser usado para definir o ambiente do caderno ou para executar outras funções. Para mais informações, consulte [Personalização de uma instância de SageMaker notebook usando um script LCC](notebook-lifecycle-config.md).

   1. (Opcional) A **Additional configuration (Configuração adicional)** também permite especificar o tamanho, em GB, do volume de armazenamento ML anexado à instância de caderno. Você pode escolher um tamanho entre 5 GB e 16.384 GB, em incrementos de 1 GB. É possível usar o volume para limpar o conjunto de dados de treinamento ou para armazenar temporariamente a validação ou outros dados.

   1. (Opcional) Para **Versão mínima do IMDS**, selecione uma versão na lista suspensa. Se esse valor for definido como v1, as duas versões poderão ser usadas com a instância do caderno. Se a opção v2 for selecionada, ela só IMDSv2 poderá ser usada com a instância do notebook. Para obter informações sobre IMDSv2, consulte [Uso IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html).
**nota**  
A partir de 31 de outubro de 2022, a versão mínima padrão do IMDS para instâncias de SageMaker notebook muda de IMDSv1 para IMDSv2.   
A partir de 1º de fevereiro de 2023, IMDSv1 não estará mais disponível para a criação de novas instâncias de notebook. Após essa data, você pode criar instâncias de caderno com uma versão mínima do IMDS de 2.

   1. Para o **papel do IAM**, escolha um papel do IAM existente em sua conta com as permissões necessárias para acessar os recursos de SageMaker IA ou **crie um novo papel**. Se você escolher **Criar uma nova função**, a SageMaker AI criará uma função do IAM chamada`AmazonSageMaker-ExecutionRole-YYYYMMDDTHHmmSS`. A política AWS gerenciada `AmazonSageMakerFullAccess` é anexada à função. A função fornece permissões que permitem que a instância do notebook chame a SageMaker IA e o Amazon S3.

   1. Em **Acesso Root**, para habilitar o acesso root a todos os usuários da instância do caderno, escolha **Habilitar**. Para desabilitar o acesso raiz de usuários, escolha **Desabilitar**. Se você habilitar o acesso raiz, todos os usuários da instância do caderno terão privilégios de administrador e poderão acessar e editar todos os arquivos. 

   1. (Opcional) A **Encryption key (Chave de criptografia)** permite criptografar dados no volume de armazenamento ML anexado à instância de caderno usando uma chave do AWS Key Management Service (AWS KMS). Para armazenar informações confidenciais no volume de armazenamento de ML, considere criptografar as informações. 

   1. (Opcional) A **Network (Rede)** permite que você coloque sua instância de caderno dentro de uma nuvem privada virtual (VPC). Uma VPC fornece segurança adicional e restringe o acesso a recursos na VPC por origens fora da VPC. Para obter mais informações sobre VPCs, consulte o Guia do [usuário da Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/).

      **Para adicionar sua instância de caderno a uma VPC:**

      1. Escolha o **VPC** e um. **SubnetId**

      1. Em **Grupo de segurança**, escolha o security group padrão da sua VPC. 

      1. Se você precisar que sua instância de caderno tenha acesso à Internet, habilite o acesso direto à Internet. Em **Acesso direito à internet**, escolha **Habilitar**. O acesso à Internet pode tornar sua instância de caderno menos segura. Para obter mais informações, consulte [Conectar uma instância de caderno em uma VPC aos recursos externos](appendix-notebook-and-internet-access.md). 

   1. (Opcional) Para associar repositórios Git à instâncias de caderno, escolha um repositório padrão e até três repositórios adicionais. Para obter mais informações, consulte [Repositórios Git com SageMaker instâncias do AI Notebook](nbi-git-repo.md).

   1. Escolha **Criar instância de caderno**. 

      Em alguns minutos, a Amazon SageMaker AI lança uma instância de computação de ML — nesse caso, uma instância de notebook — e anexa um volume de armazenamento de ML a ela. A instância de caderno conta com a pré-configuração de um servidor de cadernos Jupyter e de um conjunto de bibliotecas da Anaconda. Para obter mais informações, consulte a API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateNotebookInstance.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateNotebookInstance.html). 

1. Quando o status da instância de caderno é `InService`, no console, a instância de caderno está pronta para ser usada. Escolha **Open Jupyter (Abrir o Jupyter)** ao lado do nome do caderno para abrir o painel clássico do Jupyter.
**nota**  
Para aumentar a segurança da sua instância de SageMaker notebook da Amazon, todos os `notebook.region.sagemaker.aws` domínios regionais são registrados na [Lista Pública de Sufixos (](https://publicsuffix.org/)PSL) da Internet. Para maior segurança, recomendamos que você use cookies com um `__Host-` prefixo para definir cookies confidenciais para os domínios das instâncias do seu SageMaker notebook. Isso ajuda a defender seu domínio contra tentativas de falsificação de solicitação entre sites (CSRF). Para mais informações, consulte a página [Set-Cookie](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie#cookie_prefixes) no site de documentação do desenvolvedor [mozilla.org](https://www.mozilla.org/en-GB/?v=1).

    Você pode escolher **Abrir JupyterLab** para abrir o JupyterLab painel. O painel oferece acesso à sua instância de caderno.

   Para obter mais informações sobre cadernos Jupyter, consulte [O caderno Jupyter](https://jupyter-notebook.readthedocs.io/en/stable/).

# Acessar instâncias de caderno
<a name="howitworks-access-ws"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Para acessar suas instâncias de SageMaker notebook da Amazon, escolha uma das seguintes opções: 
+ Use o console do .

  Escolha **Instância de caderno**. O console exibirá uma lista de instâncias de caderno na sua conta. Para abrir uma instância de caderno com uma interface Jupyter padrão, escolha **Abrir Jupyter** para essa instância. Para abrir uma instância do notebook com uma JupyterLab interface, escolha **Abrir JupyterLab** para essa instância.  
![\[Exemplo de seção de instâncias do Notebook no console.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/ws-notebook-10.png)

  O console usa suas credenciais de login para enviar um [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html)Solicitação de API para a SageMaker IA. SageMaker A IA retorna a URL da instância do seu notebook, e o console abre a URL em outra guia do navegador e exibe o painel do notebook Jupyter. 
**nota**  
O URL que você obtém de uma chamada para [  `CreatePresignedNotebookInstanceUrl`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html) é válido somente por 5 minutos. Se você tentar usar o URL após o limite de 5 minutos expirar, você será direcionado para a página de Console de gerenciamento da AWS login.
+ Use a API.

  Para obter o URL da instância de caderno, chame a API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreatePresignedNotebookInstanceUrl.html) e use o URL retornado pela API para abrir a instância de caderno.

Use o painel de cadernos Jupyter para criar e gerenciar cadernos e para escrever o código. Para obter mais informações sobre cadernos Jupyter, consulte [http://jupyter.org/documentation.html](http://jupyter.org/documentation.html).

# Atualizar uma instância de caderno
<a name="nbi-update"></a>

Depois de criar uma instância do notebook, você pode atualizá-la usando o console de SageMaker IA e a operação [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateNotebookInstance.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateNotebookInstance.html)da API.

Você pode atualizar as tags de uma instância do caderno, ou seja `InService`. Para atualizar qualquer outro atributo de uma instância do caderno, seu status deve ser `Stopped`.

**Para atualizar uma instância do notebook no console de SageMaker IA:**

1. Abra o console de SageMaker IA em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/). 

1. Escolha **Instância de caderno**.

1. Escolha a instância do caderno que você deseja atualizar selecionando o **Nome** da instância do caderno na lista.

1. Se o **status** do caderno não for `Stopped`, selecione o botão **Parar** para interromper a instância do caderno. 

   Quando você faz isso, o status da instância do caderno muda para `Stopping`. Espere até que o status mude para `Stopped` para concluir as etapas a seguir. 

1. Selecione o botão **Editar** para abrir a página **Editar instância do caderno**. Para obter informações sobre as propriedades do caderno que você pode atualizar, consulte [Crie uma instância de SageMaker notebook da Amazon](howitworks-create-ws.md).

1. Atualize sua instância do caderno e selecione o botão **Atualizar instância do caderno** na parte inferior da página quando terminar para retornar à página de instâncias do caderno. O status da instância do seu caderno muda para **Atualizando**. 

   Quando a atualização da instância do caderno estiver concluída, o status será alterado para `Stopped`.

# Personalização de uma instância de SageMaker notebook usando um script LCC
<a name="notebook-lifecycle-config"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Uma *configuração de ciclo de vida* (LCC) fornece scripts de shell que são executados apenas quando você cria ou inicia a instância de caderno. Ao criar uma instância de caderno, você pode criar uma nova LCC ou anexar uma LCC que você já tenha. Os scripts de configuração do ciclo de vida são úteis para os seguintes casos de uso:
+ Instalando pacotes ou cadernos de amostra em uma instância de caderno
+ Configurar rede e segurança para uma instância de caderno
+ Usar um script shell para personalizar uma instância de caderno

Você também pode usar um script de configuração do ciclo de vida para acessar os AWS serviços do seu notebook. Por exemplo, você pode criar um script que permite usar seu notebook para controlar outros AWS recursos, como uma instância do Amazon EMR.

[Mantemos um repositório público de scripts de configuração do ciclo de vida do notebook que abordam casos de uso comuns para personalizar instâncias do notebook em -. 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**  
Cada script tem um limite de 16.384 caracteres.  
O valor da variável de ambiente `$PATH` que está disponível para ambos os scripts é `/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin`. O diretório de trabalho, que é o valor da variável de ambiente `$PWD` é `/`.  
Visualize CloudWatch os registros das configurações do ciclo de vida da instância do notebook no grupo `/aws/sagemaker/NotebookInstances` de registros no fluxo de registros. `[notebook-instance-name]/[LifecycleConfigHook]`  
Scripts não podem ser executados por mais de 5 minutos. Se um script for executado por mais de 5 minutos, haverá falha e a instância de caderno não será criada nem iniciada. Para ajudar a diminuir o tempo de execução de scripts, tente o seguinte:  
Reduza as etapas necessárias. Por exemplo, limite os ambientes conda nos quais instalar pacotes grandes.
Execute tarefas em processos paralelos.
Use o comando `nohup` no seu script.

Você pode ver uma lista das configurações do ciclo de vida da instância do notebook que você criou anteriormente escolhendo a **configuração do ciclo** de vida no console de IA. SageMaker Você pode anexar uma LCC de instância de caderno ao criar uma nova instância de caderno. Para ter mais informações sobre como criar uma instância de caderno, consulte [Crie uma instância de SageMaker notebook da Amazon](howitworks-create-ws.md).

# Criar uma configuração de ciclo de vida
<a name="notebook-lifecycle-config-create"></a>

O procedimento a seguir mostra como criar um script de configuração do ciclo de vida para uso com uma instância de SageMaker notebook da Amazon. Para ter mais informações sobre como criar uma instância de caderno, consulte [Crie uma instância de SageMaker notebook da Amazon](howitworks-create-ws.md).

**Para criar uma configuração de ciclo de vida**

1. Abra o console de SageMaker IA em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/). 

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações administrativas**, escolha **Configurações de ciclo de vida**. 

1. Na página **Configurações de ciclo de vida**, escolha a aba **Instância do caderno**.

1. Escolha **Criar configuração**.

1. Em **Nome**, digite um nome usando caracteres alfanuméricos e “-”, mas sem espaços. Um rótulo pode ter no máximo 63 caracteres.

1. (Opcional) Para criar um script que é executado na criação do caderno e toda vez que ele for iniciado, escolha **Iniciar caderno**.

1. No editor **Start caderno (Iniciar caderno)**, digite o script.

1. (Opcional) Para criar um script que é executado apenas uma vez, na criação do caderno, escolha **Criar caderno**.

1. No editor **Create caderno (Criar caderno)**, digite o script de configuração das redes.

1. Escolha **Criar configuração**.

## Práticas recomendadas para configuração do ciclo de vida
<a name="nbi-lifecycle-config-bp"></a>

Veja a seguir as melhores práticas para usar configurações de ciclo de vida:

**Importante**  
Não recomendamos armazenar informações confidenciais em seu script de configuração do ciclo de vida.

**Importante**  
Os scripts de configuração do ciclo de vida são executados com acesso raiz e os privilégios da função de execução do IAM da instância do notebook, independentemente da configuração de acesso raiz para usuários do notebook. Diretores com permissões para criar ou modificar configurações do ciclo de vida e atualizar instâncias do notebook podem executar código com as credenciais da função de execução. Consulte [Controle o acesso root a uma instância do SageMaker notebook](nbi-root-access.md) para obter mais informações.
+ As configurações de ciclo de vida são executadas como o usuário `root`. Se o seu script fizer alguma alteração no diretório `/home/ec2-user/SageMaker` (por exemplo, instalar um pacote com `pip`), use o comando `sudo -u ec2-user` para executar como o usuário `ec2-user`. Esse é o mesmo usuário com o qual o Amazon SageMaker AI é executado.
+ SageMaker As instâncias de notebooks de IA usam `conda` ambientes para implementar diferentes kernels para notebooks Jupyter. Se quiser instalar pacotes disponíveis para um ou mais kernels de caderno, coloque os comandos para instalar os pacotes com comandos de ambiente `conda` que ativam o ambiente conda que contém o kernel no qual você deseja instalar os pacotes.

  Por exemplo, para instalar um pacote somente para o ambiente do `python3`, use o seguinte código:

  ```
  #!/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
  ```

  Se você deseja instalar um pacote em todos os ambientes conda na instâncias de caderno, use o seguinte código:

  ```
  #!/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
  ```
+ Você deve armazenar todos os ambientes conda na pasta de ambientes padrão (/home/user/anaconda3/envs).

**Importante**  
Ao criar ou alterar um script, recomendamos usar um editor de texto que forneça quebras de linha de estilo UNIX, como o editor de texto disponível no console quando um caderno é criado. Copiar texto de um sistema operacional que não seja Linux pode incluir quebras de linha incompatíveis e resultar em um erro inesperado.

# Instalação externa da biblioteca e do kernel
<a name="nbi-add-external"></a>

**Importante**  
Atualmente, todos os pacotes em ambientes de instância de notebook são licenciados para uso com o Amazon SageMaker AI e não exigem licenças comerciais adicionais. No entanto, isso pode estar sujeito a alterações no futuro. Por isso, recomendamos que consulte regularmente os termos de licenciamento para verificar se existem atualizações.

As instâncias de SageMaker notebooks da Amazon vêm com vários ambientes já instalados. Esses ambientes contêm kernels Jupyter e pacotes Python, incluindo: scikit, Pandas,, e. NumPy TensorFlow MXNet Os ambientes, com todos os arquivos da pasta `sample-notebooks`, são atualizados quando você interrompe e inicia uma instância de caderno. Você também pode instalar seus próprios ambientes, com os pacotes e kernels de sua escolha.

Os diferentes kernels do Jupyter nas instâncias de notebooks da SageMaker Amazon são ambientes conda separados. Para obter mais informações sobre ambientes do Conda, consulte a seção de [gerenciamento de ambientes](https://conda.io/docs/user-guide/tasks/manage-environments.html) na documentação do *Conda*.

Instale kernels e ambientes personalizados no volume do Amazon EBS da instância do caderno. Isso garante que eles persistam quando você interrompe e reinicia a instância do notebook e que as bibliotecas externas instaladas não sejam atualizadas pela SageMaker IA. Para fazer isso, use uma configuração de ciclo de vida que inclua um script que é executado quando você cria a instância do caderno `on-create)` e um script que é executado toda vez que você reinicia a instância do caderno (`on-start`). Para obter informações sobre o uso das configurações de ciclo de vida da instância do caderno, consulte [Personalização de uma instância de SageMaker notebook usando um script LCC](notebook-lifecycle-config.md). Há um GitHub repositório que contém exemplos de scripts de configuração do ciclo de vida no [SageMaker AI Notebook Instance Lifecycle](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples) Config Samples.

Os exemplos em [https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/persistent-conda-ebs/on-create.sh](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-start.sh](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/persistent-conda-ebs/on-start.sh) mostram as melhores práticas para instalar ambientes e kernels em uma instância de notebook. O script `on-create` script instala a biblioteca `ipykernel` para criar ambientes personalizados como kernels do Jupyter e, em seguida, usa `pip install` e `conda install` para instalar bibliotecas. Você pode adaptar o script para criar ambientes personalizados e instalar as bibliotecas que desejar. SageMaker A IA não atualiza essas bibliotecas quando você interrompe e reinicia a instância do notebook, então você pode garantir que seu ambiente personalizado tenha as versões específicas das bibliotecas que você deseja. O script `on-start` instala todos os ambientes personalizados que você cria como kernels do Jupyter, para que eles apareçam na lista suspensa no menu **Novo** do Jupyter.

## Ferramentas de instalação do pacote
<a name="nbi-add-external-tools"></a>

SageMaker os notebooks suportam as seguintes ferramentas de instalação de pacotes:
+ instalação do conda
+ instalação do pip

Você pode instalar pacotes usando os métodos a seguir:
+ Scripts de configuração do ciclo de vida.

  Para ver exemplos de scripts, consulte [SageMaker Amostras de configuração do ciclo de vida da instância do AI Notebook](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples). Para obter mais informações sobre a configuração do ciclo de vida, consulte [Personalizar uma instância do caderno usando um script de configuração do ciclo de vida](https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html).
+ Cadernos: os seguintes comandos são compatíveis.
  + `%conda install`
  + `%pip install`
+ O terminal Jupyter: você pode instalar pacotes usando pip e conda diretamente.

De dentro de um caderno, você pode usar a sintaxe de comando do sistema (linhas começando com \$1) para instalar pacotes, por exemplo, `!pip install` e `!conda install`. Mais recentemente, novos comandos foram adicionados a IPython: `%pip` `%conda` e. Esses comandos são a forma recomendada de instalar pacotes de um caderno, pois eles levam corretamente em consideração o ambiente ativo ou o intérprete que está sendo usado. Para obter mais informações, consulte [Adicionar funções mágicas %pip e %conda](https://github.com/ipython/ipython/pull/11524).

### Conda
<a name="nbi-add-external-tools-conda"></a>

O Conda é um sistema de gerenciamento de pacotes e sistema de gerenciamento de ambiente de código aberto, que pode instalar pacotes e suas dependências. SageMaker A IA suporta o uso do Conda com qualquer um dos dois canais principais, o canal padrão e o canal conda-forge. Para obter mais informações, consulte [Canais conda](https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/channels.html). O canal conda-forge é um canal comunitário onde os colaboradores podem fazer upload de pacotes.

**nota**  
Devido à forma como o Conda resolve o gráfico de dependências, a instalação de pacotes do conda-forge pode levar muito mais tempo (nos piores casos, mais de 10 minutos).

A AMI de aprendizado profundo vem com muitos ambientes conda e muitos pacotes pré-instalados. Devido ao número de pacotes pré-instalados, é difícil encontrar um conjunto de pacotes com garantia de compatibilidade. Você pode ver um aviso “O ambiente é inconsistente, verifique o plano do pacote com cuidado”. Apesar desse aviso, a SageMaker IA garante que todos os ambientes fornecidos pela SageMaker IA estejam corretos. SageMaker A IA não pode garantir que nenhum pacote instalado pelo usuário funcione corretamente.

**nota**  
Os usuários da SageMaker IA AMIs de deep learning da AWS e do Amazon EMR podem acessar o repositório comercial do Anaconda sem obter uma licença comercial até 1º de fevereiro de 2024 ao usar o Anaconda nesses serviços. Para qualquer uso do repositório comercial do Anaconda após 1.º de fevereiro de 2024, os clientes são responsáveis por determinar seus próprios requisitos de licença do Anaconda.

O Conda tem dois métodos para ativar ambientes: conda. activate/deactivate, and source activate/deactivate Para obter mais informações, consulte [Devo usar 'conda activate' ou 'source activate' no Linux?](https://stackoverflow.com/questions/49600611/python-anaconda-should-i-use-conda-activate-or-source-activate-in-linux).

SageMaker A IA suporta a migração de ambientes Conda para o volume do Amazon EBS, que persiste quando a instância é interrompida. Os ambientes não persistem quando são instalados no volume raiz, que é o comportamento padrão. Para obter um exemplo de script de ciclo de vida, consulte. [persistent-conda-ebs](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/tree/master/scripts/persistent-conda-ebs)

**Operações conda compatíveis (consulte a nota na parte inferior deste tópico)**
+ instalação conda de um pacote em um único ambiente
+ instalação conda de um pacote em todos os ambientes
+ instalação conda de um pacote R no ambiente R
+ Instalar um pacote do repositório principal do conda
+ Instalar um pacote do conda-forge
+ Alterar o local de instalação do conda para usar o EBS
+ Compatibilidade com conda activate e source activate

### Pip
<a name="nbi-add-external-tools-pip"></a>

O pip é a ferramenta de fato para instalar e gerenciar pacotes Python. O Pip pesquisa pacotes no Python Package Index (PyPI) por padrão. Ao contrário do Conda, o pip não tem suporte de ambiente integrado e não é tão completo quanto o Conda quando se trata de pacotes com native/system dependências de biblioteca. O pip pode ser usado para instalar pacotes em ambientes conda.

Você pode usar repositórios de pacotes alternativos com pip em vez do PyPI. Para ver um exemplo de script de ciclo de vida, consulte [on-start.sh](https://github.com/aws-samples/amazon-sagemaker-notebook-instance-lifecycle-config-samples/blob/master/scripts/add-pypi-repository/on-start.sh).

**Operações conda compatíveis (consulte a nota na parte inferior deste tópico)**
+ Usar pip para instalar um pacote sem um ambiente conda ativo (instalar pacotes em todo o sistema)
+ Usar pip para instalar um pacote em um ambiente conda
+ Usar pip para instalar um pacote em todos os ambientes conda
+ Alterar o local de instalação do pip para usar o EBS
+ Usar um repositório alternativo para instalar pacotes com pip

### Sem compatibilidade
<a name="nbi-add-external-tools-misc"></a>

SageMaker A IA visa oferecer suporte ao maior número possível de operações de instalação de pacotes. No entanto, se os pacotes foram instalados por SageMaker AI ou DLAMI e você usa as seguintes operações nesses pacotes, isso pode tornar sua instância do notebook instável:
+ Desinstalação
+ Rebaixamento
+ Atualizar

Não fornecemos compatibilidade com instalação de pacotes via instalação yum ou instalação de pacotes R do CRAN.

Devido a possíveis problemas com as condições ou configurações da rede, ou com a disponibilidade do Conda ou PyPi, não podemos garantir que os pacotes serão instalados em um período de tempo fixo ou determinístico.

**nota**  
Não podemos garantir que a instalação de um pacote será bem-sucedida. A tentativa de instalar um pacote em um ambiente com dependências incompatíveis pode resultar em uma falha. Nesse caso, você deve entrar em contato com o mantenedor da biblioteca para ver se é possível atualizar as dependências do pacote. Como alternativa, você pode tentar modificar o ambiente de forma a permitir a instalação. No entanto, essa modificação provavelmente significará remover ou atualizar os pacotes existentes, o que significa que não podemos mais garantir a estabilidade desse ambiente.

# Atualizações de software de instâncias de caderno
<a name="nbi-software-updates"></a>

A Amazon SageMaker AI testa e lança periodicamente software instalado em instâncias de notebooks. Isso inclui:
+ Atualizações do kernel
+ Patches de segurança
+ AWS Atualizações do SDK
+ Atualizações do SDK do [Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable)
+ Atualizações de software de código aberto

Para garantir que você tenha as atualizações de software mais recentes, pare e reinicie sua instância do notebook, seja no console de SageMaker IA ou ligando [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopNotebookInstance.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopNotebookInstance.html).

Você também pode atualizar manualmente o software instalado em sua instância de caderno enquanto ela estiver em execução usando comandos de atualização em um terminal ou em um caderno.

**nota**  
A atualização de kernels e alguns pacotes pode depender se o acesso raiz está habilitado para a instância de caderno. Para obter mais informações, consulte [Controle o acesso root a uma instância do SageMaker notebook](nbi-root-access.md).

Você pode verificar se há atualizações no [Painel de integridade pessoal](https://aws.amazon.com/premiumsupport/technology/personal-health-dashboard/) ou no boletim de segurança em [Security Bulletins](https://aws.amazon.com/security/security-bulletins/).

# Controlar uma instância do Amazon EMR Spark usando um caderno
<a name="nbi-lifecycle-config-emr"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Você pode usar uma instância de notebook criada com um script de configuração de ciclo de vida personalizado para acessar AWS serviços do seu notebook. Por exemplo, é possível criar um script que permite usar seu caderno com o Sparkmagic para controlar outros recursos da AWS , como uma instância do Amazon EMR. Depois, você poderá usar a instância do Amazon EMR para processar seus dados em vez de executar a análise de dados em seu caderno. Isso permite que você crie uma instância de caderno menor porque você não usará a instância para processar dados. Isso é útil quando você tem conjuntos de dados grandes, que exigem uma instância de caderno grande para processar os dados.

O processo requer três procedimentos usando o console Amazon SageMaker AI:
+ Criar a instância do Amazon EMR Spark
+ Criar o caderno Jupyter
+ Teste a conexão do notebook-to-Amazon EMR

**Para criar uma instância do Amazon EMR Spark que pode ser controlada de um caderno usando o Sparkmagic**

1. Abra o console do Amazon EMR em [https://console.aws.amazon.com/elasticmapreduce/](https://console.aws.amazon.com/elasticmapreduce/).

1. No painel de navegação, escolha **Criar cluster**.

1. Na página **Criar Cluster: Opções rápidas** em **Configuração de software**, escolha **Spark: Spark 2.4.4 no Hadoop 2.8.5 YARN com Ganglia 3.7.2 e Zeppelin 0.8.2**.

1. Defina parâmetros adicionais na página e escolha **Create cluster (Criar cluster)**.

1. Na página **Cluster** escolha o nome do cluster que você criou. Observe o **DNS público principal**, o **Grupo de segurança do EMR principal**, e o nome da VPC e o ID da sub-rede onde o cluster do EMR foi criado. Você usará esses valores quando criar um caderno.

**Para criar um caderno que usa o Sparkmagic para controlar uma instância do Amazon EMR Spark**

1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação, em **Instâncias de caderno**, escolha **Criar caderno**.

1. Insira o nome da instância de caderno e escolha o tipo de instância.

1. Escolha **Configuração adicional** e, em **Configuração do ciclo de vida**, escolha **Criar uma configuração do ciclo de vida**.

1. Adicione o seguinte código ao script de configuração do ciclo de vida:

   ```
   # 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. Na seção `PARAMETERS` do script, substitua `your.emr.master.ip` pelo nome do DNS público principal da instância do Amazon EMR.

1. Escolha **Criar configuração**.

1. Na página **Criar caderno**, selecione **Rede - opcional**.

1. Escolha a VPC e a sub-rede onde a instância do Amazon EMR está localizada.

1. Escolha o grupo de segurança usado pelo nó principal do Amazon EMR.

1. Escolha **Criar instância de caderno**.

Enquanto a instância de caderno estiver sendo criada, o status será **Pending**. Depois que a instância for criada e o script de configuração do ciclo de vida for executado com sucesso, o status será. **InService**

**nota**  
Se a instância do notebook não conseguir se conectar à instância do Amazon EMR, a SageMaker IA não poderá criar a instância do notebook. Pode haver falha na conexão se a instância do Amazon EMR e o caderno não estiverem na mesma VPC e sub-rede, se o grupo de segurança principal do Amazon EMR não for usado pelo caderno ou se o nome do DNS público principal no script estiver incorreto. 

**Para testar a conexão entre a instância do Amazon EMR e o caderno**

1.  Quando o status do notebook for **InService**, escolha **Abrir o Jupyter** para abrir o notebook.

1. Escolha **Novo** e, em seguida, escolha **Sparkmagic () PySpark**.

1. Na célula de código, digite **%%info** e execute a célula.

   A saída deve ser semelhante ao seguinte:

   ```
   Current session configs: {'driverMemory': '1000M', 'executorCores': 2, 'kind': 'pyspark'}
                       No active sessions.
   ```

# Definir o kernel do caderno
<a name="howitworks-set-kernel"></a>

A Amazon SageMaker AI fornece vários kernels para o Jupyter que oferecem suporte para Python 2 e 3, Apache e. MXNet TensorFlow PySpark Para definir um kernel para um novo caderno no painel do caderno Jupyter, escolha **Novo** e escolha o kernel na lista. Para obter mais informações sobre os kernels disponíveis, consulte [Kernels disponíveis](nbi-al2.md#nbi-al2-kernel).

![\[Localização da lista suspensa Novo no painel do caderno Jupyter.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/nbi-set-kernel.png)


Você também pode criar um kernel personalizado que pode ser usado na sua instância de caderno. Para mais informações, consulte [Instalação externa da biblioteca e do kernel](nbi-add-external.md).

# Repositórios Git com SageMaker instâncias do AI Notebook
<a name="nbi-git-repo"></a>

Associe repositórios Git à sua instância de caderno para salvar seus cadernos em um ambiente de controle de fonte que persista mesmo se você parar ou excluir sua instância de caderno. Você pode associar um repositório padrão e até três repositórios adicionais a uma instância de caderno. Os repositórios podem ser hospedados em AWS CodeCommit GitHub, ou em qualquer outro servidor Git. Associar repositórios Git à sua instância de caderno pode ser útil para:
+ Persistência: os cadernos em uma instância de caderno são armazenados em volumes do Amazon EBS duráveis, mas não persistem além da duração da sua instância de caderno. Armazenar cadernos em um repositório Git permite armazenar e usar cadernos mesmo se você parar ou excluir sua instância de caderno.
+ Colaboração - Os membros de uma equipe geralmente trabalham juntos em projetos de machine learning. Armazenar seus cadernos em repositórios Git permite que os membros que trabalham em diferentes instâncias do caderno compartilhem cadernos e colaborem com eles em um ambiente de controle de origem.
+ Aprendizado - Muitos notebooks Jupyter que demonstram técnicas de aprendizado de máquina estão disponíveis em repositórios Git hospedados publicamente, como on. GitHub Você pode associar sua instância de caderno a um repositório para carregar facilmente os cadernos Jupyter contidos nesse repositório.

Existem duas maneiras de associar um repositório Git a uma instância de caderno:
+ Adicione um repositório Git como um recurso na sua conta Amazon SageMaker AI. Em seguida, para acessar o repositório, você pode especificar um segredo do AWS Secrets Manager que contenha credenciais. Dessa forma, você pode acessar repositórios que exigem autenticação.
+ Associe um repositório Git público que não seja um recurso na sua conta. Se você fizer isso, não poderá especificar credenciais para acessar o repositório.

**Topics**
+ [Adicione um repositório Git à sua conta Amazon AI SageMaker](nbi-git-resource.md)
+ [Criar uma instância de Caderno com um repositório Git associado](nbi-git-create.md)
+ [Associar um CodeCommit repositório em uma AWS conta diferente a uma instância do Notebook](nbi-git-cross.md)
+ [Usar repositórios Git em uma instância de caderno](git-nbi-use.md)

# Adicione um repositório Git à sua conta Amazon AI SageMaker
<a name="nbi-git-resource"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Para gerenciar seus GitHub repositórios, associá-los facilmente às instâncias do seu notebook e associar credenciais a repositórios que exigem autenticação, adicione os repositórios como recursos em sua conta Amazon AI. SageMaker Você pode ver uma lista de repositórios armazenados em sua conta e detalhes sobre cada repositório no console de SageMaker IA e usando a API.

Você pode adicionar repositórios Git à sua conta de SageMaker IA no console de SageMaker IA ou usando o. AWS CLI

**nota**  
Você pode usar a API de SageMaker IA [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCodeRepository.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCodeRepository.html)para adicionar repositórios Git à sua conta de SageMaker IA, mas step-by-step as instruções não são fornecidas aqui.

## Adicione um repositório Git à sua conta de SageMaker IA (console)
<a name="nbi-git-resource-console"></a>

**Para adicionar um repositório Git como um recurso em sua conta de IA SageMaker**

1. Abra o console de SageMaker IA em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Em **Caderno**, escolha **Repositórios Git**, depois escolha **Adicionar repositório**.

1. Para adicionar um CodeCommit repositório, escolha **AWS CodeCommit**. Para adicionar um GitHub ou outro repositório baseado em Git, escolha **GitHub/Outro** repositório baseado em Git.

**Para adicionar um CodeCommit repositório existente**

1. Escolha **Usar repositório existente**.

1. Em **Repositório**, escolha um repositório na lista.

1. Insira um nome para usar para o repositório no SageMaker AI. O nome deve ter de 1 a 63 caracteres. Os caracteres válidos são a-z, A-Z, 0-9 e hífen (-).

1. Escolha **Adicionar repositório**.

**Para criar um novo CodeCommit repositório**

1. Escolha **Criar novo repositório**.

1. Insira um nome para o repositório que você pode usar tanto no AI CodeCommit quanto no SageMaker AI. O nome deve ter de 1 a 63 caracteres. Os caracteres válidos são a-z, A-Z, 0-9 e hífen (-).

1. Escolha **Criar repositório**.

**Para adicionar um repositório Git hospedado em algum lugar diferente de CodeCommit**

1. Escolha **GitHub/Outro repositório baseado em Git**.

1. Insira um nome de até 63 caracteres. Os caracteres válidos incluem caracteres alfanuméricos, um hífen (-) e 0-9.

1. Digite a URL do repositório. Não forneça um nome de usuário no URL. Adicione as credenciais de login AWS Secrets Manager conforme descrito na próxima etapa.

1. Para **Credenciais do Git**, escolha as credenciais a serem usadas para autenticação no repositório. Isso será necessário apenas se o repositório Git for privado.
**nota**  
Se você tiver habilitado a autenticação de dois fatores para o seu repositório Git, use um token de acesso pessoal gerado pelo seu provedor de serviços Git no campo `password`.

   1. Para usar um segredo existente do AWS Secrets Manager, escolha **Usar segredo existente** e escolha um segredo na lista. Para obter informações sobre como criar e armazenar um segredo, consulte [Criar um segredo básico](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html), no *Guia do usuário do AWS Secrets Manager*. O nome do segredo que você usa deve conter a string `sagemaker`.
**nota**  
O segredo deve ter um rótulo de preparação de `AWSCURRENT` e deve estar no seguinte formato:  
`{"username": UserName, "password": Password}`  
Para GitHub repositórios, recomendamos usar um token de acesso pessoal no `password` campo. Para obter informações, consulte [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. Para criar um novo segredo do AWS Secrets Manager, escolha **Criar segredo**, insira um nome para o segredo e, em seguida, insira as credenciais de login a serem usadas na autenticação no repositório. O nome do segredo deve conter a string `sagemaker`.
**nota**  
A função do perfil do IAM que você usar para criar o segredo deve ter a permissão `secretsmanager:GetSecretValue` em sua política do IAM.  
O segredo deve ter um rótulo de preparação de `AWSCURRENT` e deve estar no seguinte formato:  
`{"username": UserName, "password": Password}`  
Para GitHub repositórios, recomendamos usar um token de acesso pessoal.

   1. Para não usar credenciais, escolha **Sem segredo**.

1. Escolha **Criar segredo**.

# Adicione um repositório Git à sua conta Amazon SageMaker AI (CLI)
<a name="nbi-git-resource-cli"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Use o `create-code-repository` AWS CLI comando para adicionar um repositório Git ao Amazon SageMaker AI para dar aos usuários acesso a recursos externos. Especifique um nome para o repositório como o valor do argumento `code-repository-name`. O nome deve ter de 1 a 63 caracteres. Os caracteres válidos são a-z, A-Z, 0-9 e hífen (-). Especifique também o seguinte:
+ A ramificação padrão
+ A URL do repositório Git
**nota**  
Não forneça um nome de usuário no URL. Adicione as credenciais de login AWS Secrets Manager conforme descrito na próxima etapa.
+ O Amazon Resource Name (ARN) de um segredo do AWS Secrets Manager que contém as credenciais a serem usadas para autenticar o repositório como o valor do argumento `git-config`

Para obter informações sobre como criar e armazenar um segredo, consulte [Criar um segredo básico](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html), no *Guia do usuário do AWS Secrets Manager*. O comando a seguir cria um novo repositório nomeado `MyRespository` na sua conta Amazon SageMaker AI que aponta para um repositório Git hospedado em. `https://github.com/myprofile/my-repo"`

Para Linux, OS X ou 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
```

Para 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**  
O segredo deve ter um rótulo de preparação de `AWSCURRENT` e deve estar no seguinte formato:  
`{"username": UserName, "password": Password}`  
Para GitHub repositórios, recomendamos usar um token de acesso pessoal.

# Criar uma instância de Caderno com um repositório Git associado
<a name="nbi-git-create"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Você pode associar repositórios Git a uma instância do notebook ao criar a instância do notebook usando o Console de gerenciamento da AWS, ou o. AWS CLI Se você quiser usar um CodeCommit repositório que esteja em uma AWS conta diferente da instância do notebook, configure o acesso entre contas para o repositório. Para mais informações, consulte [Associar um CodeCommit repositório em uma AWS conta diferente a uma instância do Notebook](nbi-git-cross.md).

**Topics**
+ [Criar uma instância de caderno com um repositório Git associado (console)](#nbi-git-create-console)
+ [Criar uma instância de caderno com um repositório Git associado (CLI)](nbi-git-create-cli.md)

## Criar uma instância de caderno com um repositório Git associado (console)
<a name="nbi-git-create-console"></a>

**Para criar uma instância de notebook e associar repositórios Git no console Amazon AI SageMaker**

1. Siga as instruções em [Crie uma instância do Amazon SageMaker Notebook para o tutorial](gs-setup-working-env.md).

1. Para **Repositórios Git**, escolha repositórios Git a serem associados a instância de caderno.

   1. Em **Repositório padrão**, escolha um repositório que você deseja usar como seu repositório padrão. SageMaker O AI clona esse repositório como um subdiretório no diretório de inicialização do Jupyter em. `/home/ec2-user/SageMaker` Quando você abrir sua instância de caderno, ela será aberta nesse repositório. Para escolher um repositório armazenado como um recurso na sua conta, escolha seu nome na lista. Para adicionar um novo repositório como recurso em sua conta, escolha **Adicionar um repositório ao SageMaker AI (abre o fluxo Adicionar repositório em uma nova janela)** e siga as instruções em. [Criar uma instância de caderno com um repositório Git associado (console)](#nbi-git-create-console) Para clonar um repositório público que não esteja armazenado na sua conta, escolha **Clonar repositório Git público apenas para essa instância de caderno** e especifique o URL desse repositório.

   1. Em **Repositório adicional 1**, escolha um repositório que você deseja adicionar como um diretório adicional. SageMaker O AI clona esse repositório como um subdiretório no diretório de inicialização do Jupyter em. `/home/ec2-user/SageMaker` Para escolher um repositório armazenado como um recurso na sua conta, escolha seu nome na lista. Para adicionar um novo repositório como recurso em sua conta, escolha **Adicionar um repositório ao SageMaker AI (abre o fluxo Adicionar repositório em uma nova janela)** e siga as instruções em. [Criar uma instância de caderno com um repositório Git associado (console)](#nbi-git-create-console) Para clonar um repositório que não esteja armazenado na sua conta, escolha **Clonar repositório Git público apenas para essa instância de caderno** e especifique a URL desse repositório.

      Repita essa etapa até três vezes para adicionar até três repositórios adicionais à sua instância de caderno.

# Criar uma instância de caderno com um repositório Git associado (CLI)
<a name="nbi-git-create-cli"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Para criar uma instância de caderno e associar repositórios Git usando a AWS CLI, utilize o comando `create-notebook-instance` da seguinte forma:
+ Especifique o repositório que você deseja usar como seu repositório padrão como o valor do argumento `default-code-repository`. O Amazon SageMaker AI clona esse repositório como um subdiretório no diretório de inicialização do Jupyter em. `/home/ec2-user/SageMaker` Quando você abrir sua instância de caderno, ela será aberta nesse repositório. Para usar um repositório armazenado como um recurso em sua conta de SageMaker IA, especifique o nome do repositório como o valor do `default-code-repository` argumento. Para usar um repositório que não esteja armazenado na sua conta, especifique a URL do repositório como o valor do argumento `default-code-repository`.
+ Especifique até três repositórios adicionais como o valor do `additional-code-repositories` argumento. SageMaker O AI clona esse repositório como um subdiretório no diretório de inicialização do Jupyter em`/home/ec2-user/SageMaker`, e o repositório é excluído do repositório padrão ao adicioná-lo ao diretório do repositório padrão. `.git/info/exclude` Para usar repositórios armazenados como recursos em sua conta de SageMaker IA, especifique os nomes dos repositórios como o valor do `additional-code-repositories` argumento. Para usar repositórios que não estão armazenados em sua conta, especifique o URLs dos repositórios como o valor do `additional-code-repositories` argumento.

Por exemplo, o comando a seguir cria uma instância de notebook que tem um repositório chamado`MyGitRepo`, que é armazenado como um recurso em sua conta de SageMaker IA, como um repositório padrão e um repositório adicional hospedado em: 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 você usar um AWS CodeCommit repositório que não contenha "SageMaker" em seu nome, adicione as `codecommit:GitPush` permissões `codecommit:GitPull` e à função que você passa como `role-arn` argumento para o `create-notebook-instance` comando. Para obter informações sobre como adicionar permissões a um perfil, consulte [Adicionar e remover políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html), no *Guia do Usuário do AWS Identity and Access Management *. 

# Associar um CodeCommit repositório em uma AWS conta diferente a uma instância do Notebook
<a name="nbi-git-cross"></a>

Para associar um CodeCommit repositório em uma AWS conta diferente à sua instância do notebook, configure o acesso entre contas para o CodeCommit repositório.

**Para configurar o acesso entre contas a um CodeCommit repositório e associá-lo a uma instância do notebook:**

1. Na AWS conta que contém o CodeCommit repositório, crie uma política do IAM que permita o acesso dos usuários ao repositório na conta que contém a instância do seu notebook. Para obter mais informações, consulte [Etapa 1: Criar uma política para acesso ao repositório na ContaA](https://docs.aws.amazon.com/codecommit/latest/userguide/cross-account-administrator-a.html#cross-account-create-policy-a) no *Guia do usuário do CodeCommit *.

1. Na AWS conta que contém o CodeCommit repositório, crie uma função do IAM e anexe a política que você criou na etapa anterior a essa função. Para obter mais informações, consulte [Etapa 2: Criar uma função para acesso ao repositório na ContaA](https://docs.aws.amazon.com/codecommit/latest/userguide/cross-account-administrator-a.html#cross-account-create-role-a) no *Guia do usuário do CodeCommit *.

1. Crie um perfil na instância de caderno que use a função que você criou na etapa anterior:

   1. Abra a instância de caderno.

   1. Abra um terminal na instância de caderno.

   1. Edite um novo perfil, digitando o seguinte no terminal:

      ```
      vi /home/ec2-user/.aws/config
      ```

   1. Edite o arquivo com as seguintes informações de perfil:

      ```
      [profile CrossAccountAccessProfile]
      region = us-west-2
      role_arn = arn:aws:iam::CodeCommitAccount:role/CrossAccountRepositoryContributorRole
      credential_source=Ec2InstanceMetadata
      output = json
      ```

      Onde *CodeCommitAccount* está a conta que contém o CodeCommit repositório, *CrossAccountAccessProfile* o nome do novo perfil e *CrossAccountRepositoryContributorRole* o nome da função que você criou na etapa anterior.

1. Na instância de caderno, configure o git para usar o perfil que você criou na etapa anterior:

   1. Abra a instância de caderno.

   1. Abra um terminal na instância de caderno.

   1. Edite o arquivo de configuração do Git digitando o seguinte no terminal:

      ```
      vi /home/ec2-user/.gitconfig
      ```

   1. Edite o arquivo com as seguintes informações de perfil:

      ```
      [credential]
              helper = !aws codecommit credential-helper --profile CrossAccountAccessProfile $@
              UseHttpPath = true
      ```

      Onde *CrossAccountAccessProfile* está o nome do perfil que você criou na etapa anterior.

# Usar repositórios Git em uma instância de caderno
<a name="git-nbi-use"></a>

Quando você abre uma instância de caderno que possui repositórios Git associados, ela é aberta no repositório padrão, que é instalado diretamente na sua instância de caderno, em `/home/ec2-user/SageMaker`. Você pode abrir e criar cadernos e executar manualmente os comandos do Git em uma célula do caderno. Por exemplo:

```
!git pull origin master
```

Para abrir qualquer um dos repositórios adicionais, navegue até uma pasta. Os repositórios adicionais também são instalados como diretórios em `/home/ec2-user/SageMaker`.

Se você abrir a instância do notebook com uma JupyterLab interface, a extensão jupyter-git será instalada e estará disponível para uso. [Para obter informações sobre a extensão jupyter-git para, consulte jupyterlab-git. JupyterLab https://github.com/jupyterlab/](https://github.com/jupyterlab/jupyterlab-git)

Ao abrir uma instância do notebook no JupyterLab, você vê os repositórios git associados a ela no menu à esquerda:

![\[Exemplo de navegador de arquivos em JupyterLab.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/git-notebook.png)


É possível usar a extensão jupyter-git para gerenciar o git visualmente, em vez de usar a linha de comando:

![\[Exemplo da extensão jupyter-git em. JupyterLab\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/jupyterlab-git.png)


# Metadados de instância de caderno
<a name="nbi-metadata"></a>

Quando você cria uma instância do notebook, o Amazon SageMaker AI cria um arquivo JSON na instância no local `/opt/ml/metadata/resource-metadata.json` que contém a extremidade `ResourceName` `ResourceArn` da instância do notebook. Você pode acessar esses metadados de qualquer lugar na instância do caderno, inclusive nas configurações de ciclo de vida. Para obter informações sobre as configurações de ciclo de vida da instância do caderno, consulte [Personalização de uma instância de SageMaker notebook usando um script LCC](notebook-lifecycle-config.md).

**nota**  
O arquivo `resource-metadata.json` pode ser modificado com acesso raiz.

O arquivo `resource-metadata.json` tem a seguinte estrutura:

```
{
    "ResourceArn": "NotebookInstanceArn",
    "ResourceName": "NotebookInstanceName"
}
```

Você pode usar esses metadados na instância do caderno para obter outras informações sobre a instância do caderno. Por exemplo, os seguintes comandos obtêm as tags associadas à instância do caderno:

```
NOTEBOOK_ARN=$(jq '.ResourceArn'
            /opt/ml/metadata/resource-metadata.json --raw-output)
aws sagemaker list-tags --resource-arn $NOTEBOOK_ARN
```

A saída será exibida como a seguir:

```
{
    "Tags": [
        {
            "Key": "test",
            "Value": "true"
        }
    ]
}
```

# Monitore os registros do Jupyter no Amazon Logs CloudWatch
<a name="jupyter-logs"></a>

Os registros do Jupyter incluem informações importantes, como eventos, métricas e informações de saúde, que fornecem insights acionáveis ao executar notebooks da Amazon. SageMaker Ao importar registros do Jupyter para o CloudWatch Logs, os clientes podem usar o CloudWatch Logs para detectar comportamentos anômalos, definir alarmes e descobrir insights para manter os notebooks de IA funcionando com mais tranquilidade. SageMaker Você pode acessar os logs mesmo quando a instância do Amazon EC2 que hospeda o caderno não responder e usar os logs para solucionar problemas no caderno que não responde. Informações confidenciais, como AWS conta IDs, chaves secretas e tokens de autenticação pré-assinados, URLs são removidas para que os clientes possam compartilhar registros sem vazar informações privadas. 

**Para visualizar logs do Jupyter para uma instância de caderno:**

1. Faça login no Console de gerenciamento da AWS e abra o console de SageMaker IA em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/). 

1. Escolha **Instância de caderno**.

1. Na lista de instâncias de caderno, escolha a instância de caderno para a qual você deseja visualizar os logs do Jupyter, selecionando o **Nome** da instância do Caderno.

   Você irá para a página de detalhes da instância do caderno.

1. Em **Monitor (Monitorar)** na página de detalhes da instância de caderno, escolha **View logs (Visualizar logs)**.

1. No CloudWatch console, escolha o fluxo de registros para sua instância do notebook. O nome está no formato `NotebookInstanceName/jupyter.log`.

Para obter mais informações sobre CloudWatch registros de monitoramento para SageMaker IA, consulte[CloudWatch Registros para Amazon SageMaker AI](logging-cloudwatch.md).

# Laboratório Amazon SageMaker Studio
<a name="studio-lab"></a>

**nota**  
Em 8 de agosto de 2025, o Amazon SageMaker Studio Lab usa JupyterLab 4 em vez de JupyterLab 3. Se você encontrar problemas de dependência, reinstale todas as extensões que adicionou aos seus ambientes.

 O Amazon SageMaker Studio Lab é um serviço gratuito que oferece aos clientes acesso a recursos AWS computacionais, em um ambiente baseado em código aberto 4 JupyterLab . Ele é baseado na mesma arquitetura e interface de usuário do Amazon SageMaker Studio Classic, mas com um subconjunto de recursos do Studio Classic.

Com o Studio Lab, você pode usar recursos AWS computacionais para criar e executar seus notebooks Jupyter sem se inscrever em uma conta. AWS Como o Studio Lab é baseado em código aberto JupyterLab, você pode aproveitar as extensões de código aberto do Jupyter para executar seus notebooks Jupyter.

 **Studio Lab em comparação com o Amazon SageMaker Studio Classic**

Embora o Studio Lab ofereça acesso gratuito aos recursos AWS computacionais, o Amazon SageMaker Studio Classic fornece os seguintes recursos avançados de aprendizado de máquina que o Studio Lab não oferece suporte.
+ Integração contínua e entrega contínua (pipelines)
+ Previsões em tempo real
+ Treinamento distribuído em grande escala
+ Preparação de dados (Amazon SageMaker Data Wrangler)
+ Rotulagem de dados (Amazon SageMaker Ground Truth)
+ Feature Store
+ Análise de desvio (Clarify)
+ Implantação de modelos
+ Monitoramento de modelos

O Studio Classic também oferece suporte a controle de acesso e segurança refinados usando AWS Identity and Access Management (IAM), Amazon Virtual Private Cloud (Amazon VPC) e (). AWS Key Management Service AWS KMS O Studio Lab não oferece suporte a esses recursos do Studio Classic, nem ao uso de estimadores e algoritmos de SageMaker IA integrados.

Para exportar seus projetos do Studio Lab para uso com o Studio Classic, consulte [Exportar um ambiente do Amazon SageMaker Studio Lab para o Amazon SageMaker Studio Classic](studio-lab-use-migrate.md).

Os tópicos a seguir fornecem informações sobre o Studio Lab e como usá-lo

**Topics**
+ [Visão geral dos componentes do Amazon SageMaker Studio Lab](studio-lab-overview.md)
+ [Faça parte do Amazon SageMaker Studio Lab](studio-lab-onboard.md)
+ [Gerenciar sua conta](studio-lab-manage-account.md)
+ [Inicie o tempo de execução do seu projeto Amazon SageMaker Studio Lab](studio-lab-manage-runtime.md)
+ [Use os ativos iniciais do Amazon SageMaker Studio Lab](studio-lab-integrated-resources.md)
+ [Ambientes pré-instalados do Studio Lab](studio-lab-environments.md)
+ [Use o tempo de execução do projeto Amazon SageMaker Studio Lab](studio-lab-use.md)
+ [Solução de problemas](studio-lab-troubleshooting.md)

# Visão geral dos componentes do Amazon SageMaker Studio Lab
<a name="studio-lab-overview"></a>

O Amazon SageMaker Studio Lab consiste nos seguintes componentes. Os tópicos a seguir apresentam mais detalhes sobre esses componentes. 

**Topics**
+ [Página de destino](#studio-lab-overview-landing)
+ [Conta do Studio Lab](#studio-lab-overview-account)
+ [Página de visão geral do projeto](#studio-lab-overview-project-overview)
+ [Página de pré-visualização](#studio-lab-overview-preview)
+ [Projeto](#studio-lab-overview-project)
+ [Tipo de instância de computação](#studio-lab-overview-project-compute)
+ [Tempo de execução do projeto](#studio-lab-overview-runtime)
+ [Sessão](#studio-lab-overview-session)

## Página de destino
<a name="studio-lab-overview-landing"></a>

Você pode solicitar uma conta e fazer login em uma conta existente na sua página de destino. Para navegar até a página inicial, consulte o [site do Amazon SageMaker Studio Lab](https://studiolab.sagemaker.aws/). Para obter mais informações sobre como criar uma conta Studio Lab, consulte [Faça parte do Amazon SageMaker Studio Lab](studio-lab-onboard.md).

A captura de tela a seguir mostra a interface da página de destino do Studio Lab para solicitar uma conta de usuário e fazer login.

![\[O layout da página inicial do Amazon SageMaker Studio Lab.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio-lab-landing.png)


## Conta do Studio Lab
<a name="studio-lab-overview-account"></a>

Sua conta do Studio Lab dá acesso ao Studio Lab. Para mais informações sobre como criar uma conta de usuário, consulte [Faça parte do Amazon SageMaker Studio Lab](studio-lab-onboard.md).

## Página de visão geral do projeto
<a name="studio-lab-overview-project-overview"></a>

Você pode executar uma instância de computação e exibir informações sobre seu projeto nesta página. Para navegar até essa página, você deve fazer login no [site do Amazon SageMaker Studio Lab](https://studiolab.sagemaker.aws/). A URL assumirá o seguinte formato:

```
https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
```

A captura de tela a seguir mostra uma visão geral do projeto na interface de usuário do Studio Lab.

![\[O layout da interface de usuário da visão geral do projeto.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio-lab-overview.png)


## Página de pré-visualização
<a name="studio-lab-overview-preview"></a>

Nesta página, você pode acessar uma pré-visualização somente leitura de um caderno Jupyter. Você não pode executar o caderno a partir da pré-visualização, mas você pode copiar esse caderno para o seu projeto. Para muitos clientes, essa pode ser a primeira página do Studio Lab que os clientes veem, pois eles podem estar abrindo um caderno a partir do GitHub notebook. Para obter mais informações sobre como usar GitHub os recursos, consulte[Use GitHub recursos](studio-lab-use-external.md#studio-lab-use-external-clone-github). 

Para copiar a pré-visualização do caderno para seu projeto do Studio Lab:

1.  Faça login na sua conta do Studio Lab. Para obter mais informações sobre como criar uma conta Studio Lab, consulte [Faça parte do Amazon SageMaker Studio Lab](studio-lab-onboard.md). 

1.  Na **Instância de computação de Cadernos**, escolha um tipo de instância de computação. Para obter mais informações sobre os tipos de instâncias de computação, consulte [Tipo de instância de computação](#studio-lab-overview-project-compute). 

1.  Escolha **Iniciar runtime**. Você pode ser solicitado a resolver um quebra-cabeça de CAPTCHA. Para obter mais informações sobre CAPTCHA, consulte [O que é um quebra-cabeça CAPTCHA](https://docs.aws.amazon.com/waf/latest/developerguide/waf-captcha-puzzle.html)? 

1.  Configuração única, para iniciar pela primeira vez o runtime usando sua conta do Studio Lab: 

   1.  Insira um número de celular para associar à sua conta do Amazon SageMaker Studio Lab e escolha **Continuar**. 

      Para obter informações sobre países e regiões com suporte, consulte [Países e regiões compatíveis (canal de SMS)](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-countries.html).

   1.  Insira o código de 6 dígitos enviado para o número de telefone celular associado e escolha **Verificar.** 

1.  Escolha **Copiar para o projeto**. 

## Projeto
<a name="studio-lab-overview-project"></a>

Seu projeto contém todos os seus arquivos e pastas, incluindo seus blocos de anotação Jupyter. Você tem controle total sobre os arquivos do seu projeto. Seu projeto também inclui a interface de usuário JupyterLab baseada. A partir dessa interface, você pode interagir com seus notebooks Jupyter, editar seus arquivos de código-fonte, integrar-se e conectar-se ao Amazon S3. GitHub Para obter mais informações, consulte [Use o tempo de execução do projeto Amazon SageMaker Studio Lab](studio-lab-use.md). 

A captura de tela a seguir mostra o projeto Studio Lab com o navegador de arquivos aberto e o inicializador do Studio Lab exibido.

![\[O layout da interface do usuário do projeto.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio-lab-ui.png)


## Tipo de instância de computação
<a name="studio-lab-overview-project-compute"></a>

 O tempo de execução do projeto do Amazon SageMaker Studio Lab é baseado em uma instância EC2. Você tem 15 GB de armazenamento e 16 GB de RAM. A disponibilidade das instâncias de computação não é garantida e está sujeita à demanda. Se você precisar de armazenamento adicional ou de recursos de computação, considere mudar para o Studio.  

O Amazon SageMaker Studio Lab oferece a opção de uma CPU (Unidade Central de Processamento) e uma GPU (Unidade de Processamento Gráfico). As seções a seguir fornecem informações sobre essas duas opções, incluindo orientação de seleção. 

 **CPU** 

Uma unidade central de processamento (CPU) foi projetada para processar um grande intervalo de tarefas de forma eficiente, mas é limitada na quantidade de tarefas que pode executar simultaneamente. Para machine learning, uma CPU é recomendada para algoritmos de computação intensiva, como séries temporais, previsões e dados tabulares.  

O tipo de computação da CPU tem até 4 horas por vez, com um limite de 8 horas em um período de 24 horas.

 **GPU** 

Uma unidade de processamento gráfico (GPU) foi projetada para renderizar imagens e vídeos de alta resolução simultaneamente. Uma GPU é recomendada para tarefas de aprendizado profundo, especialmente para transformadores e visão computacional. 

O tipo de computação da GPU tem até 4 horas por vez, com um limite de 4 horas em um período de 24 horas.

 **Tempo de computação** 

Quando o tempo de computação do Studio Lab atinge seu limite de tempo, a instância interrompe todos os cálculos em execução. O Studio Lab não é compatível com aumentos de limite de tempo.

O Studio Lab salva automaticamente seu ambiente quando você atualiza seu ambiente e sempre que cria um novo arquivo. Extensões instaladas e pacotes personalizados persistem mesmo após o fim do runtime.

As edições dos arquivos são salvas periodicamente, mas não são salvas quando o runtime termina. Para garantir que você não perca seu andamento, salve seu trabalho manualmente. Se você tem conteúdo em seu projeto do Studio Lab que não quer perder, recomendamos que faça backup do seu conteúdo em outro lugar. Para obter mais informações sobre como exportar seu ambiente e seus arquivos, consulte [Exportar um ambiente do Amazon SageMaker Studio Lab para o Amazon SageMaker Studio Classic](studio-lab-use-migrate.md).

Durante a computação longa, você não precisa manter seu projeto aberto. Por exemplo, você pode começar o treinamento de um modelo e fechar seu navegador. A instância continua em execução até o limite do tipo de computação em um período de 24 horas. Em seguida, você pode fazer login mais tarde para continuar seu trabalho.  

Recomendamos que você use o ponto de verificação em seus trabalhos de aprendizado profundo. Você pode usar pontos de verificação salvos para reiniciar um trabalho a partir do ponto de verificação salvo anteriormente. Para obter mais informações, consulte o arquivo [I/O](https://d2l.ai/chapter_deep-learning-computation/read-write.html?highlight=checkpointing).

## Tempo de execução do projeto
<a name="studio-lab-overview-runtime"></a>

O runtime do projeto é o período em que sua instância de computação está em execução.

## Sessão
<a name="studio-lab-overview-session"></a>

Uma sessão de usuário começa toda vez que você inicia seu projeto. 

# Faça parte do Amazon SageMaker Studio Lab
<a name="studio-lab-onboard"></a>

Para se integrar ao Amazon SageMaker Studio Lab, siga as etapas deste guia. Nas seções a seguir, você aprenderá como solicitar uma conta do Studio Lab, criar sua conta e fazer login.

**Topics**
+ [Solicite uma conta do Studio Lab](#studio-lab-onboard-request)
+ [Crie uma conta do Studio Lab](#studio-lab-onboard-register)
+ [Faça login no Studio Lab.](#studio-lab-onboard-signin)

## Solicite uma conta do Studio Lab
<a name="studio-lab-onboard-request"></a>

Para usar o Studio Lab, você deve primeiro solicitar aprovação para criar uma conta do Studio Lab. Uma AWS conta não pode ser usada para integração no Studio Lab. 

As etapas a seguir mostram como solicitar uma conta do Studio Lab.

1. Navegue até a [página inicial do Studio Lab](https://studiolab.sagemaker.aws).

1. Selecione **Solicitar conta**.

1. Insira as informações necessárias no formulário.

1. Selecione **Enviar solicitação**.

1. Se o seu endereço de e-mail for confirmado, siga as instruções no e-mail para concluir essa etapa.

Sua solicitação de conta deve ser aprovada antes que você possa se registrar em uma conta do Studio Lab. Sua solicitação será analisada em até cinco dias úteis. Quando sua solicitação de conta for aprovada, você receberá um e-mail com um link para a página de registro da conta do Studio Lab. Esse link expira sete dias após a aprovação da solicitação. Se o link expirar, você deverá enviar uma nova solicitação de conta. 

Observação: sua solicitação de conta será negada se o seu e-mail tiver sido associado a uma atividade que viole nossos [Termos de Serviço](https://aws.amazon.com/service-terms/) ou outros acordos. 

### Códigos de referência
<a name="studio-lab-onboard-request-referral"></a>

Os códigos de referência do Studio Lab permitem que novas solicitações de conta sejam aprovadas automaticamente para apoiar eventos de machine learning, como workshops, hackathons e aulas. Com um código de referência, um anfitrião confiável pode fazer com que seus participantes tenham acesso imediato ao Studio Lab. Depois que uma conta é criada usando um código de referência, a conta continua existindo após a expiração do código.

Para obter um código de referência, entre em contato com o [Suporte de Vendas](https://aws.amazon.com/contact-us/sales-support/). Para usar um código de referência, insira o código como parte do formulário de solicitação de conta.

## Crie uma conta do Studio Lab
<a name="studio-lab-onboard-register"></a>

Depois que sua solicitação for aprovada, siga as etapas a seguir para criar sua conta do Studio Lab.

1. Selecione **Criar conta** no e-mail de aprovação da solicitação de conta para abrir uma nova página.

1. Na nova página, insira seu **e-mail**, uma **senha** e um **nome de usuário**. 

1. Selecione **Criar conta**. 

   Você pode ser solicitado a resolver um quebra-cabeça de CAPTCHA. Para obter mais informações sobre CAPTCHA, consulte [O que é um quebra-cabeça de CAPTCHA?](https://docs.aws.amazon.com/waf/latest/developerguide/waf-captcha-puzzle.html)

## Faça login no Studio Lab.
<a name="studio-lab-onboard-signin"></a>

Depois de criar sua conta, você poderá fazer login no Studio Lab.

1. Navegue até a [página inicial do Studio Lab](https://studiolab.sagemaker.aws).

1. Selecione **Entrar** para abrir uma nova página.

1. Digite seu **e-mail** ou **nome de usuário** e **senha**. 

1. Selecione **Entrar** para abrir uma nova página. 

   Você pode ser solicitado a resolver um quebra-cabeça de CAPTCHA. Para obter mais informações sobre CAPTCHA, consulte [O que é um quebra-cabeça CAPTCHA](https://docs.aws.amazon.com/waf/latest/developerguide/waf-captcha-puzzle.html)?

# Gerenciar sua conta
<a name="studio-lab-manage-account"></a>

 O tópico a seguir fornece informações sobre como gerenciar sua conta, incluindo alterar sua senha, excluir sua conta e obter as informações que coletamos. Esses tópicos exigem que você faça login na sua conta do Amazon SageMaker Studio Lab. Para obter mais informações, consulte [Faça login no Studio Lab.](studio-lab-onboard.md#studio-lab-onboard-signin).

## Alterar a senha
<a name="studio-lab-manage-change-password"></a>

 Siga estas etapas para alterar sua senha do Amazon SageMaker Studio Lab. 

1.  Navegue até a página de visão geral do projeto do Studio Lab. O URL assumirá o seguinte formato.

   ```
   https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
   ```

1.  No canto superior direito, selecione seu nome de usuário para abrir um menu suspenso. 

1.  No menu suspenso, selecione **Alterar senha** para abrir uma nova página. 

1.  Digite sua senha atual no campo **Digite sua senha atual**.

1.  Insira sua nova senha nos campos **Criar uma nova senha** e **Confirmar sua nova senha**.

1.  Selecione **Submit (Enviar)**. 

## Excluir sua conta
<a name="studio-lab-manage-delete"></a>

 Siga estas etapas para excluir sua conta do Studio Lab.  

1.  Navegue até a página de visão geral do projeto do Studio Lab. O URL assumirá o seguinte formato.

   ```
   https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
   ```

1.  No canto superior direito, selecione seu nome de usuário para abrir um menu suspenso. 

1.  No menu suspenso, selecione **Excluir conta** para abrir uma nova página. 

1.  Digite sua senha para confirmar a exclusão da sua conta do Studio Lab. 

1.  Selecione **Excluir**. 

## Informações do cliente
<a name="studio-lab-manage-information"></a>

 O Studio Lab coleta seu endereço de e-mail, nome de usuário, senha criptografada, arquivos de projeto e metadados. Ao solicitar uma conta, você pode optar por fornecer seu nome e sobrenome, país, nome da organização, ocupação e o motivo do seu interesse neste produto. Protegemos todos os dados pessoais dos clientes com criptografia. Para obter mais informações sobre como suas informações pessoais são tratadas, consulte o [Aviso de Privacidade](https://aws.amazon.com//privacy/). 

Quando você exclui sua conta, todas as suas informações são excluídas imediatamente. Se você tiver alguma dúvida sobre isso, envie o [formulário Amazon SageMaker Studio Lab](https://pages.awscloud.com/GLOBAL_PM_PA_amazon-sagemaker_20211116_7014z000000rjq2-registration.html). Para obter informações e suporte relacionados à AWS conformidade, consulte [Suporte de conformidade](https://aws.amazon.com//contact-us/compliance-support/).

# Inicie o tempo de execução do seu projeto Amazon SageMaker Studio Lab
<a name="studio-lab-manage-runtime"></a>

O tempo de execução do projeto Amazon SageMaker Studio Lab permite que você escreva e execute código diretamente do seu navegador. Ele é baseado JupyterLab e possui um terminal e console integrados. Para obter mais informações sobre JupyterLab, consulte a [JupyterLabdocumentação](https://jupyterlab.readthedocs.io/en/stable/).

O tópico a seguir fornece informações sobre como gerenciar o runtime do projeto. Esses tópicos exigem que você faça login na sua conta do Amazon SageMaker Studio Lab. Para obter mais informações sobre como fazer login, consulte [Faça login no Studio Lab.](studio-lab-onboard.md#studio-lab-onboard-signin). Para obter mais informações sobre o seu projeto, consulte [Visão geral dos componentes do Amazon SageMaker Studio Lab](studio-lab-overview.md). 

**Topics**
+ [Inicie o runtime do projeto](#studio-lab-manage-runtime-start)
+ [Interrompa o runtime do projeto](#studio-lab-manage-runtime-stop)
+ [Exibir o tempo de computação restante](#studio-lab-manage-runtime-view)
+ [Alterar seu tipo de computação](#studio-lab-manage-runtime-change)

## Inicie o runtime do projeto
<a name="studio-lab-manage-runtime-start"></a>

Para usar o Studio Lab, você deve iniciar o runtime do projeto. Esse tempo de execução fornece acesso ao JupyterLab ambiente.

1. Navegue até a página de visão geral do projeto do Studio Lab. O URL assumirá o seguinte formato.

   ```
   https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
   ```

1. Em **Meu projeto**, selecione um tipo de computação. Para obter informações sobre tipos de dados, consulte [Tipo de instância de computação](studio-lab-overview.md#studio-lab-overview-project-compute).

1. Selecione **Iniciar runtime**. 

   Você pode ser solicitado a resolver um quebra-cabeça de CAPTCHA. Para obter mais informações sobre CAPTCHA, consulte [O que é um quebra-cabeça CAPTCHA](https://docs.aws.amazon.com/waf/latest/developerguide/waf-captcha-puzzle.html)?

1. Configuração única, para iniciar pela primeira vez o runtime usando sua conta do Studio Lab: 

   1. Insira um número de celular para associar à sua conta do Amazon SageMaker Studio Lab e escolha **Continuar**. 

      Para obter informações sobre países e regiões com suporte, consulte [Países e regiões compatíveis (canal de SMS)](https://docs.aws.amazon.com/pinpoint/latest/userguide/channels-sms-countries.html).

   1. Insira o código de 6 dígitos enviado para o número de celular associado e escolha **Verificar.** 

1. Depois que o runtime estiver em execução, selecione **Abrir projeto** para abrir o ambiente de execução do projeto em uma nova guia do navegador. 

## Interrompa o runtime do projeto
<a name="studio-lab-manage-runtime-stop"></a>

Quando você interrompe o runtime do projeto, seus arquivos não são salvos automaticamente. Para garantir que você não perca seu trabalho, salve todas as alterações antes de interromper o runtime do projeto.
+ Em **Meu projeto**, selecione **Interromper o runtime**. 

## Exibir o tempo de computação restante
<a name="studio-lab-manage-runtime-view"></a>

O runtime do seu projeto tem tempo de computação limitado com base no tipo de computação selecionado. Para obter mais informações sobre o tempo de computação no Studio Lab, consulte [Tipo de instância de computação](studio-lab-overview.md#studio-lab-overview-project-compute).
+ Em **Meu projeto**, veja **Tempo restante**. 

## Alterar seu tipo de computação
<a name="studio-lab-manage-runtime-change"></a>

Você pode alternar seu tipo de computação com base no seu fluxo de trabalho. Para obter informações sobre tipos de dados, consulte [Tipo de instância de computação](studio-lab-overview.md#studio-lab-overview-project-compute).

1. Salve todos os arquivos do projeto antes de alterar o tipo de computação. 

1. Navegue até a página de visão geral do projeto do Studio Lab. O URL assumirá o seguinte formato.

   ```
   https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
   ```

1. Em **Meu projeto**, selecione o tipo de computação desejado (CPU ou GPU). 

1. Confirme sua escolha selecionando **Reiniciar** na caixa de diálogo **Reinicia o runtime do projeto?**. O Studio Lab interrompe o runtime do projeto atual e, em seguida, inicia um novo runtime do projeto com seu tipo de computação atualizado.

1. Depois que o runtime do seu projeto for iniciado, selecione **Abrir projeto**. Isso abre o ambiente de execução do projeto em uma nova guia do navegador. Para obter mais informações sobre usar o ambiente de runtime do projeto, consulte [Use o tempo de execução do projeto Amazon SageMaker Studio Lab](studio-lab-use.md).

# Use os ativos iniciais do Amazon SageMaker Studio Lab
<a name="studio-lab-integrated-resources"></a>

O Amazon SageMaker Studio Lab oferece suporte aos seguintes ativos para ajudar os profissionais de aprendizado de máquina (ML) a começarem. Este guia mostra como clonar cadernos para o seu projeto. 

**Comece a usar o bloco de anotações** 

O Studio Lab vem com um caderno inicial que fornece informações gerais e orienta você nos principais fluxos de trabalho. Quando você inicia o tempo de execução do seu projeto pela primeira vez, esse caderno é aberto automaticamente.

**Mergulhe no aprendizado profundo** 

“Dive into Deep Learning” (D2L) é um livro interativo e de código aberto que ensina as ideias, a teoria matemática e o código que impulsionam o machine learning. Com mais de 150 blocos de anotações Jupyter, o D2L fornece uma visão geral abrangente dos princípios de aprendizado profundo. Para obter mais informações sobre D2L, consulte o [site do D2L](https://d2l.ai/).

O procedimento a seguir mostra como clonar os blocos de anotações Jupyter D2L na sua instância. 

1. Inicie e abra o ambiente de tempo de execução do projeto Studio Lab seguindo [Inicie o runtime do projeto](studio-lab-manage-runtime.md#studio-lab-manage-runtime-start).

1. Depois que o Studio Lab estiver aberto, escolha a guia Git (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/git.png)) na barra lateral esquerda. 

1. Escolha **Clonar um repositório**.

   Se você não vir a opção **Clonar um repositório**, pode ser que, no momento, você esteja em um repositório do Git. Em vez disso, use as subetapas a seguir.

   1. Escolha o ícone de pasta (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/folder.png)) na barra lateral à esquerda.

   1. Abaixo da barra de pesquisa de arquivos, escolha o ícone de pasta à esquerda do repositório selecionado no momento. Ao passar o mouse sobre o ícone de pasta, você verá o diretório do usuário (`/home/studio-lab-user`).

   1. Quando estiver no diretório do usuário, escolha a guia Git na barra lateral esquerda.

   1. Escolha **Clonar um repositório**.

1. Em **URL do repositório Git (.git),** você deverá fornecer um URL.

1. Em uma nova guia do navegador, acesse a página de visão geral do projeto do Studio Lab. A URL assumirá o seguinte formato:

   ```
   https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
   ```

1. Em **Novo em machine learning?** , escolha **Mergulhar no aprendizado profundo**. 

1. Na nova guia do navegador **Dive into Deep Learning**, escolha **GitHub**abrir uma nova página com os exemplos de cadernos.

1. Escolha **Código** e copie a URL do GitHub repositório na guia **HTTPS**.

1. Volte para a guia do navegador do projeto aberto do Studio Lab, cole a URL do repositório D2L e clone o repositório.

**AWS Universidade de Machine Learning** 

A AWS Machine Learning University (MLU) fornece acesso aos cursos de aprendizado de máquina usados para treinar os próprios desenvolvedores da Amazon. Com o AWS MLU, qualquer desenvolvedor pode aprender a usar o aprendizado de máquina com a série de aprendizado learn-at-your-own -pace MLU Accelerator. A série do Acelerador MLU foi projetada para ajudar os desenvolvedores a iniciarem sua jornada de ML. Ela oferece cursos básicos de três dias sobre esses três assuntos: processamento de linguagem natural, dados tabulares e visão computacional. Para obter mais informações, consulte a [Machine learning University](https://aws.amazon.com//machine-learning/mlu/). 

O procedimento a seguir mostra como clonar os notebooks AWS MLU Jupyter na sua instância. 

1. Inicie e abra o ambiente de tempo de execução do projeto Studio Lab seguindo [Inicie o runtime do projeto](studio-lab-manage-runtime.md#studio-lab-manage-runtime-start).

1. Depois que o Studio Lab estiver aberto, escolha a guia Git (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/git.png)) na barra lateral esquerda. 

1. Escolha **Clonar um repositório**.

   Se você não vir a opção **Clonar um repositório**, pode ser que, no momento, você esteja em um repositório do Git. Em vez disso, use as subetapas a seguir.

   1. Escolha o ícone de pasta (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/folder.png)) na barra lateral à esquerda.

   1. Abaixo da barra de pesquisa de arquivos, escolha o ícone de pasta à esquerda do repositório selecionado no momento. Ao passar o mouse sobre o ícone de pasta, você verá o diretório do usuário (`/home/studio-lab-user`).

   1. Quando estiver no diretório do usuário, escolha a guia Git na barra lateral esquerda.

   1. Escolha **Clonar um repositório**.

1. Em **URL do repositório Git (.git),** você deverá fornecer um URL.

1. Em uma nova guia do navegador, acesse a página de visão geral do projeto do Studio Lab. A URL assumirá o seguinte formato:

   ```
   https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
   ```

1. Em **Novo no machine learning?**, escolha **AWS Machine Learning University**. 

1. Na nova guia do navegador **da AWS Machine Learning University**, encontre um curso que lhe interessa lendo o **resumo** de cada curso.

1. Escolha o GitHub repositório de interesse correspondente em **Conteúdo do curso** para abrir uma nova página com os exemplos de cadernos.

1. Escolha **Código** e copie a URL do GitHub repositório na guia **HTTPS**.

1. Volte para a guia do navegador de projeto aberto do Studio Lab, cole o URL do repositório MLU e escolha **Clonar** para clonar o repositório.

**Roboflow** 

O Roboflow fornece as ferramentas para treinar, ajustar e rotular objetos para aplicativos de visão computacional. Para obter mais informações, consulte [https://roboflow.com/](https://roboflow.com/).

O procedimento a seguir mostra como clonar os blocos de anotações Jupyter Roboflow na sua instância.

1. Navegue até a página de visão geral do projeto do Studio Lab. A URL assumirá o seguinte formato.

   ```
   https://studiolab.sagemaker.aws/users/<YOUR_USER_NAME>
   ```

1. Em **Recursos e comunidade**, encontre **Criar imagens geradas por IA**.

1. Em **Criar imagens geradas por IA**, escolha **Abrir caderno**.

1. Siga o tutorial na pré-visualização do Caderno.

# Ambientes pré-instalados do Studio Lab
<a name="studio-lab-environments"></a>

O Amazon SageMaker Studio Lab usa ambientes conda para gerenciar pacotes (ou bibliotecas) para seus projetos. Este guia explica o que são ambientes conda, como interagir com eles e os diferentes ambientes pré-instalados disponíveis no Studio Lab.

Um ambiente conda é um diretório que contém uma coleção de pacotes que você instalou. Ele permite criar ambientes isolados com versões específicas de pacotes, evitando conflitos entre projetos com dependências diferentes.

Você pode interagir com ambientes conda no Studio Lab de duas maneiras:
+ Terminal: use o terminal para criar, ativar e gerenciar ambientes.
+ JupyterLab Notebook: Ao abrir um JupyterLab notebook, selecione o kernel com o nome do ambiente que você deseja usar para usar os pacotes instalados nesse ambiente.

Para uma explicação passo a passo a respeito de como gerenciar seus ambientes, consulte [Gerenciar seu ambiente](studio-lab-use-manage.md).

O Studio Lab vem com vários ambientes pré-instalados que são ambientes de memória persistente ou não persistente. Todas as alterações feitas nos ambientes de memória persistente permanecerão para sua próxima sessão. Qualquer alteração nos ambientes de memória não persistente não permanecerá para suas próximas sessões, mas os pacotes contidos nele serão atualizados e testados quanto à compatibilidade pela Amazon SageMaker AI. A seguir, uma visão geral de cada ambiente e seu caso de uso:
+ `sagemaker-distribution`: Um ambiente não persistente gerenciado pela Amazon SageMaker AI. Contém pacotes amplamente conhecidos para machine learning, ciência de dados e visualização. Esse ambiente é atualizado e testado regularmente quanto à compatibilidade. Use esse ambiente se quiser uma configuração totalmente gerenciada com pacotes comuns pré-instalados. 

  O `sagemaker-distribution` ambiente está intimamente relacionado ao ambiente usado no Amazon SageMaker Studio Classic, portanto, depois de passar do Studio Lab para o Studio Classic, os notebooks devem funcionar da mesma forma. Para informações sobre como exportar seu ambiente do Studio Lab para o Studio Classic, consulte [Exportar um ambiente do Amazon SageMaker Studio Lab para o Amazon SageMaker Studio Classic](studio-lab-use-migrate.md).
+ `default`: Um ambiente persistente com pacotes mínimos pré-instalados. Use esse ambiente se quiser personalizá-lo significativamente instalando pacotes adicionais. 
+ `studiolab`: Um ambiente persistente em que JupyterLab pacotes relacionados são instalados. Use esse ambiente para configurar a interface do JupyterLab usuário e instalar as extensões do servidor Jupyter.
+ `studiolab-safemode`: um ambiente não persistente ativado automaticamente quando há um problema como runtime do seu projeto. Use esse ambiente para fins de solução de problemas. Para obter mais informações sobre solução de problemas, consulte [Solução de problemas](studio-lab-troubleshooting.md). 
+ `base`: um ambiente não persistente usado para ferramentas do sistema. Esse ambiente não se destina ao uso do cliente.

Para visualizar os pacotes em um ambiente, execute o comando `conda list`.

Para obter mais informações sobre a instalação de pacotes em seu ambiente, consulte [Personalizar seu ambiente](studio-lab-use-manage.md#studio-lab-use-manage-conda-default-customize).

Se você planeja passar do Studio Lab para o Amazon SageMaker Studio Classic, consulte[Exportar um ambiente do Amazon SageMaker Studio Lab para o Amazon SageMaker Studio Classic](studio-lab-use-migrate.md).

Para obter informações sobre SageMaker imagens e suas versões, consulte[SageMaker Imagens da Amazon disponíveis para uso com notebooks Studio Classic](notebooks-available-images.md).

# Use o tempo de execução do projeto Amazon SageMaker Studio Lab
<a name="studio-lab-use"></a>

 Os tópicos a seguir fornecem informações sobre o uso do tempo de execução do projeto Amazon SageMaker Studio Lab. Antes de usar o tempo de execução do projeto Studio Lab, você deve se integrar ao Studio Lab seguindo as etapas em[Faça parte do Amazon SageMaker Studio Lab](studio-lab-onboard.md).

**Topics**
+ [Visão geral da interface do usuário do Amazon SageMaker Studio Lab](studio-lab-use-ui.md)
+ [Crie ou abra um caderno do Amazon SageMaker Studio Lab](studio-lab-use-create.md)
+ [Use a barra de ferramentas do notebook Amazon SageMaker Studio Lab](studio-lab-use-menu.md)
+ [Gerenciar seu ambiente](studio-lab-use-manage.md)
+ [Use recursos externos no Amazon SageMaker Studio Lab](studio-lab-use-external.md)
+ [Obter diferenças dos cadernos](studio-lab-use-diff.md)
+ [Exportar um ambiente do Amazon SageMaker Studio Lab para o Amazon SageMaker Studio Classic](studio-lab-use-migrate.md)
+ [Encerre os recursos do Studio Lab](studio-lab-use-shutdown.md)

# Visão geral da interface do usuário do Amazon SageMaker Studio Lab
<a name="studio-lab-use-ui"></a>

O Amazon SageMaker Studio Lab estende a JupyterLab interface. Usuários anteriores do JupyterLab notarão semelhanças entre a interface do usuário JupyterLab e do Studio Lab, incluindo o espaço de trabalho. Para obter uma visão geral da JupyterLab interface básica, consulte [A JupyterLab interface](https://jupyterlab.readthedocs.io/en/latest/user/interface.html).

A imagem a seguir mostra o Studio Lab com o navegador de arquivos aberto e a página do Studio Lab Launcher exibida.

![\[O layout da interface do usuário do projeto.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio-lab-ui.png)


Você encontrará a *barra de menus* na parte superior da tela. À *barra lateral esquerda* contém ícones para abrir diferentes navegadores de arquivos, recursos e ferramentas. A *barra de status* está localizada no canto inferior esquerdo do Studio Lab.

A área de trabalho principal é dividida horizontalmente em dois painéis. O painel esquerdo é o *navegador de arquivos e recursos*. O painel direito contém uma ou mais guias para recursos como cadernos e terminais.

**Topics**
+ [Barra lateral esquerda](#studio-lab-use-ui-nav-bar)
+ [Navegador de arquivos e recursos](#studio-lab-use-ui-browser)
+ [Área de trabalho principal](#studio-lab-use-ui-work)

## Barra lateral esquerda
<a name="studio-lab-use-ui-nav-bar"></a>

A barra lateral esquerda inclui os ícones a seguir. Quando você passa o mouse sobre um ícone, uma dica de ferramenta exibe o nome do ícone. Quando você escolhe um ícone, o navegador de arquivos e recursos exibe a funcionalidade descrita. Para entradas hierárquicas, uma navegação estrutural na parte superior do navegador mostra a localização na hierarquia.


| Ícone | Description | 
| --- | --- | 
|  ![\[O ícone do Navegador de arquivos\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/File_browser_squid@2x.png)  |  **Navegador de arquivos** Selecione o ícone **Fazer upload de arquivos** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/File_upload_squid.png)) para adicionar arquivos ao Studio Lab. Clique duas vezes em um arquivo para abri-lo em uma nova guia. Para abrir arquivos adjacentes, escolha uma guia que contenha um caderno, Python ou arquivo de texto e, em seguida, escolha **Nova visualização de arquivo**. Selecione o sinal de mais (**\$1**) no menu da parte superior do navegador de arquivos para abrir o Studio Lab Launcher.  | 
|  ![\[O ícone Terminais e kernels em execução\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/Running_squid@2x.png)  |  **Terminais e kernels em execução** Você pode ver uma lista de todos os Execução de terminais e kernels em seu projeto. Para obter mais informações, consulte [Encerre os recursos do Studio Lab](studio-lab-use-shutdown.md).  | 
|  ![\[O ícone Git\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/Git_squid@2x.png)  |  **Git** É possível se conectar a um repositório do Git e acessar uma gama completa de ferramentas e operações do Git. Para obter mais informações, consulte [Use recursos externos no Amazon SageMaker Studio Lab](studio-lab-use-external.md).  | 
|  ![\[O ícone Índice\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/studio-lab-toc.png)  |  **Índice** Você pode acessar o Índice do seu caderno Jupyter atual.  | 
|  ![\[O ícone do Gerente de Extensão\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/studio-lab-extension.png)  |  **Gerenciador de extensões** Você pode ativar e gerenciar JupyterLab extensões de terceiros.  | 

## Navegador de arquivos e recursos
<a name="studio-lab-use-ui-browser"></a>

O navegador de arquivos e recursos mostra as listas de seus cadernos e arquivos. No menu, na parte superior do navegador de arquivos, escolha o sinal de adição (**\$1**) para abrir o Studio Lab Launcher. O Launcher permite criar um caderno ou abrir um terminal.

## Área de trabalho principal
<a name="studio-lab-use-ui-work"></a>

A área de trabalho principal tem várias guias que contêm seus cadernos e terminais abertos.

# Crie ou abra um caderno do Amazon SageMaker Studio Lab
<a name="studio-lab-use-create"></a>

Ao criar um notebook no Amazon SageMaker Studio Lab ou abrir um notebook no Studio Lab, você deve selecionar um kernel para o notebook. Os tópicos a seguir descrevem como criar e abrir cadernos no Studio Lab.

Para obter informações sobre como encerrar o caderno, consulte [Encerre os recursos do Studio Lab](studio-lab-use-shutdown.md).

**Topics**
+ [Abra um caderno do Studio Lab](#studio-lab-use-create-open)
+ [Criar um caderno no menu File (Arquivo)](#studio-lab-use-create-file)
+ [Criar um caderno a partir do inicializador](#studio-lab-use-create-launcher)

## Abra um caderno do Studio Lab
<a name="studio-lab-use-create-open"></a>

O Studio Lab só pode abrir os cadernos listados no navegador de arquivos do Studio Lab. Para clonar um caderno em seu navegador de arquivos a partir de um repositório externo, consulte [Use recursos externos no Amazon SageMaker Studio Lab](studio-lab-use-external.md).

**Como abrir um caderno**

1. Na barra lateral à esquerda, escolha o ícone **Navegador de arquivos** (![\[Dark blue square icon with a white outline of a cloud and an arrow pointing upward.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/File_browser_squid.png)) para exibir o navegador de arquivos.

1. Navegue e clique duas vezes em um arquivo de caderno para abri-lo em uma nova aba.

## Criar um caderno no menu File (Arquivo)
<a name="studio-lab-use-create-file"></a>

**Como criar um caderno a partir do menu Arquivo**

1. No menu do Studio Lab, escolha **Arquivo**, escolha **Novo** e **Caderno**.

1. Para usar o kernel padrão, na caixa de diálogo **Selecionar kernel**, escolha **Selecionar.** Caso contrário, para selecionar um kernel diferente, use o menu suspenso.

## Criar um caderno a partir do inicializador
<a name="studio-lab-use-create-launcher"></a>

**Como criar um caderno a partir do inicializador**

1. Abra o Launcher usando o atalho do teclado `Ctrl + Shift + L`.

   Como alternativa, você pode abrir o Launcher na barra lateral esquerda: escolha o ícone **Navegador de arquivos** e, em seguida, escolha o ícone de adição (**\$1**).

1. Para usar o kernel padrão do Launcher, em **Caderno**, escolha **default:Python**. Caso contrário, selecione um kernel diferente.

Depois que você escolher o kernel, o caderno será iniciado e aberto em uma nova guia do Studio Lab. 

Para visualizar a sessão do kernel do caderno, na barra lateral esquerda, escolha o ícone **Terminals e kernels em execução** (![\[Square icon with a white outline of a cloud on a dark blue background.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/Running_squid.png)). Você pode interromper a sessão do kernel do caderno nessa visualização.

# Use a barra de ferramentas do notebook Amazon SageMaker Studio Lab
<a name="studio-lab-use-menu"></a>

Os notebooks do Amazon SageMaker Studio Lab ampliam a JupyterLab interface. Para obter uma visão geral da JupyterLab interface básica, consulte [A JupyterLab interface](https://jupyterlab.readthedocs.io/en/latest/user/interface.html).

A imagem a seguir mostra a barra de menus e uma célula vazia de um caderno do Studio.

![\[O layout da barra de ferramentas do caderno, incluindo os ícones da barra de ferramentas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio-lab-menu.png)


Ao passar o mouse sobre um ícone de barra de ferramentas, uma dica de ferramenta exibe a função do ícone. Há comandos adicionais do caderno no menu principal do Studio. A barra de ferramentais inclui os ícones a seguir:


| Ícone | Description | 
| --- | --- | 
|  ![\[O ícone Salvar e verificar.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/studio-lab-save-and-checkpoint.png)  |  **Salvar e ponto de verificação** Salva o caderno e atualiza o arquivo do ponto de verificação.  | 
|  ![\[O ícone Inserir célula.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/studio-lab-insert-cell.png)  |  **Inserir célula** Insere uma célula de código abaixo da célula atual. A célula atual é indicada pelo marcador vertical azul na margem esquerda.  | 
|  ![\[O ícone Cortar, copiar e colar células.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/studio-lab_cut_copy_paste.png)  |  **Recortar, copiar e colar células** Corta, copia e cola as células selecionadas.  | 
|  ![\[O ícone Executar células.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/studio-lab-run.png)  |  **Executar células** Executa as células selecionadas. A célula que segue a última célula selecionada se torna a nova célula selecionada.  | 
|  ![\[O ícone Interromper o kernel.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/studio-lab-interrupt-kernel.png)  |  **Interromper o kernel** Interrompe o kernel que cancela a operação em execução. O kernel permanece ativo.  | 
|  ![\[O ícone Reiniciar o kernel.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/studio-lab-restart-kernel.png)  |  **Reiniciar o kernel** Reinicia o kernel. As variáveis são redefinidas. As informações não salvas não são efetivadas.  | 
|  ![\[Ícone Reiniciar o kernel e executar novamente o caderno.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/studio-lab-restart-rerun-kernel.png)  |  **Reinicie o kernel e execute novamente o caderno** Reinicia o kernel. As variáveis são redefinidas. As informações não salvas não são efetivadas. Em seguida, executa novamente o caderno inteiro.  | 
|  ![\[O ícone do tipo de célula.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/studio-lab_cell.png)  |  **Tipo de célula** Exibe ou altera o tipo de célula atual. Os tipos de células são: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/studio-lab-use-menu.html)  | 
|  ![\[O ícone Diferença de pontos de verificação.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/studio-lab-checkpoint-diff.png)  |  **Diferença de pontos de verificação** Abre uma nova aba que exibe a diferença entre o caderno e o arquivo de ponto de verificação. Para obter mais informações, consulte [Obter diferenças dos cadernos](studio-lab-use-diff.md).  | 
|  ![\[O ícone de diferença do Git.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/studio-lab-git-diff.png)  |  **Diferença do Git** Somente habilitado se o caderno for aberto a partir de um repositório Git. Abre uma nova aba que exibe a diferença entre o caderno e a última confirmação do Git. Para obter mais informações, consulte [Obter diferenças dos cadernos](studio-lab-use-diff.md).  | 
|  **padrão**  |  **Kernel** Exibe ou altera o kernel que processa as células no caderno. `No Kernel` indica que o caderno foi aberto sem especificar um kernel. É possível editar o caderno, mas não é possível executar nenhuma célula.  | 
|  ![\[O ícone de status ocupado do Kernel.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/studio-lab-kernel.png)  |  **Status de ocupado do kernel** Exibe o status ocupado de um kernel mostrando a borda e o interior do círculo com a mesma cor. O kernel está ocupado quando está iniciando e quando está processando células. Estados adicionais do kernel são exibidos na barra de status no canto inferior esquerdo do Studio Lab.  | 

# Gerenciar seu ambiente
<a name="studio-lab-use-manage"></a>

O Amazon SageMaker Studio Lab fornece ambientes pré-instalados para suas instâncias de notebook Studio Lab. Os ambientes permitem que você inicie uma instância de caderno do Studio Lab com os pacotes que você deseja usar. Isso é feito instalando-se pacotes no ambiente e selecionando-se o ambiente como um Kernel. 

O Studio Lab tem vários ambientes pré-instalados para você. Normalmente, você vai preferir usar o ambiente `sagemaker-distribution` se quiser usar um ambiente totalmente gerenciado que já contenha muitos pacotes mais conhecidos usados por engenheiros de machine learning (ML) e cientistas de dados. Caso contrário, você pode usar o ambiente `default` se quiser personalização persistente para o seu ambiente. Para obter mais informações sobre os ambientes do Studio Lab pré-instalados disponíveis, consulte [Ambientes pré-instalados do Studio Lab](studio-lab-environments.md).

Você pode personalizar seu ambiente adicionando novos pacotes (ou bibliotecas) a ele. Você também pode criar novos ambientes no Studio Lab, importar ambientes compatíveis, redefinir seu ambiente para criar espaço e muito mais. 

Os comandos a seguir são para execução em um terminal do Studio Lab. No entanto, ao instalar pacotes, é altamente recomendável instalá-los em seu Studio caderno Jupyter. Isso garante que os pacotes sejam instalados no ambiente pretendido. Para executar os comandos em um Caderno Jupyter, prefixe o comando com um `%` antes de executar a célula. Por exemplo, o trecho de código `pip list` em um terminal é o mesmo que `%pip list` em um Caderno Jupyter.

As seções a seguir fornecem informações sobre seu ambiente conda `default`, como personalizá-lo e como adicionar e remover ambientes conda. Para obter uma lista de ambientes de amostra que você pode instalar no Studio Lab, consulte [Criação de ambientes conda personalizados](https://github.com/aws/studio-lab-examples/tree/main/custom-environments). Para usar esses arquivos YAML de ambiente de amostra com o Studio Lab, consulte [Etapa 4: Instale os ambientes conda do Studio Lab no Studio Classic](studio-lab-use-migrate.md#studio-lab-use-migrate-step4). 

**Topics**
+ [Seu ambiente padrão](#studio-lab-use-manage-conda-default)
+ [Visualizar ambientes](#studio-lab-use-view-conda-envs)
+ [Criar, ativar e usar novos ambientes conda](#studio-lab-use-manage-conda-new-conda)
+ [Usar exemplos de ambientes do Studio Lab](#studio-lab-use-manage-conda-sample)
+ [Personalizar seu ambiente](#studio-lab-use-manage-conda-default-customize)
+ [Atualizar Studio Lab](#studio-lab-use-manage-conda-reset)

## Seu ambiente padrão
<a name="studio-lab-use-manage-conda-default"></a>

O Studio Lab usa ambientes conda para encapsular os pacotes de software necessários para executar caderno. Seu projeto contém um ambiente conda padrão, chamado`default`, com o [IPython kernel](https://ipython.readthedocs.io/en/stable/). Esse ambiente serve como o kernel padrão para seus cadernos Jupyter.

## Visualizar ambientes
<a name="studio-lab-use-view-conda-envs"></a>

Para visualizar os ambientes no Studio Lab, você pode usar um terminal ou Caderno Jupyter. O comando a seguir será para execução em um terminal do Studio Lab. Se você deseja executar os comandos correspondentes em um caderno Jupyter, consulte [Gerenciar seu ambiente](#studio-lab-use-manage).

Abra o terminal do Studio Lab no painel **Navegador de arquivos** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/folder.png)), escolha o sinal de adição (**\$1**) no menu na parte superior do navegador de arquivos para abrir o **Inicializador** e escolha **Terminal**. No terminal do Studio Lab, liste os ambientes conda executando o seguinte:

```
conda env list
```

Esse comando gera uma lista dos ambientes conda e suas localizações no sistema de arquivos. Ao se integrar ao Studio Lab, você ativa automaticamente o ambiente `studiolab` conda. Veja a seguir um exemplo de ambientes listados após a integração.

```
# 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
```

`*` marca o ambiente ativado.

## Criar, ativar e usar novos ambientes conda
<a name="studio-lab-use-manage-conda-new-conda"></a>

Se quiser manter vários ambientes para diferentes casos de uso, você pode criar novos ambientes conda em seu projeto. As seções a seguir mostram como criar e ativar novos ambientes conda. Para um notebook Jupyter que mostra como criar um ambiente personalizado, consulte [Configurando um ambiente personalizado no SageMaker Studio](https://github.com/aws/studio-lab-examples/blob/main/custom-environments/custom_environment.ipynb) Lab.

**nota**  
A manutenção de vários ambientes conta com a memória disponível do Studio Lab.

 **Criar ambiente conda** 

Para criar um ambiente conda, execute o seguinte comando conda em seu terminal: Este exemplo cria um novo ambiente com o Python 3.9: 

```
conda create --name <ENVIRONMENT_NAME> python=3.9
```

Depois que o ambiente conda é criado, você pode visualizar o ambiente na sua lista de ambientes. Para obter mais informações sobre como visualizar sua lista de ambientes, consulte [Visualizar ambientes](#studio-lab-use-view-conda-envs).

 **Ativar um ambiente conda** 

Para ativar qualquer ambiente conda, execute o comando a seguir no terminal.

```
conda activate <ENVIRONMENT_NAME>
```

Quando você executa esse comando, todos os pacotes instalados usando conda ou pip são instalados no ambiente. Para obter mais informações sobre a instalação ou atualização de pacotes, consulte [Personalizar seu ambiente](#studio-lab-use-manage-conda-default-customize).

 **Usar um ambiente conda** 

1. Para usar seus novos ambientes conda com cadernos, certifique-se de que o pacote `ipykernel` esteja instalado no ambiente.

   ```
   conda install ipykernel
   ```

1. Depois que o pacote `ipykernel` estiver instalado no ambiente, você poderá selecionar o ambiente como o kernel do seu caderno. 

   Talvez seja necessário reiniciar JupyterLab para ver o ambiente disponível como um kernel. Isso pode ser feito escolhendo **Amazon SageMaker Studio Lab** no menu superior do seu projeto aberto do Studio Lab e escolhendo **Reiniciar JupyterLab...** . 

1. Você pode escolher o kernel para um caderno existente ou ao criar um caderno.
   + Para um caderno existente: abra o caderno e escolha o kernel atual no lado direito do menu superior. É possível escolher o kernel que deseja usar no menu suspenso.
   + Para um novo caderno: abra o inicializador do Studio Lab e escolha o kernel em **Caderno**. Isso abrirá o caderno com o kernel que você escolher.

     Para obter uma visão geral da interface de usuário do Studio Lab, consulte [Visão geral da interface do usuário do Amazon SageMaker Studio Lab](studio-lab-use-ui.md).

## Usar exemplos de ambientes do Studio Lab
<a name="studio-lab-use-manage-conda-sample"></a>

O Studio Lab fornece exemplos de ambientes personalizados por meio do repositório [SageMaker Studio Lab Examples](https://github.com/aws/studio-lab-examples). Veja a seguir como clonar e criar esses ambientes.

1. Clone o GitHub repositório SageMaker Studio Lab Examples seguindo as instruções em. [Use GitHub recursos](studio-lab-use-external.md#studio-lab-use-external-clone-github)

1. No Studio Lab, selecione o ícone **Navegador de arquivos** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/folder.png)) no menu à esquerda, para que o painel **Navegador de arquivos** seja exibido à esquerda.

1. Navegue até o diretório `studio-lab-examples/custom-environments` no Navegador de arquivos.

1. Abra o diretório do ambiente que deseja criar.

1. Clique com o botão direito do mouse no arquivo `.yml` na pasta e selecione **Criar ambiente conda.**

1. Agora você pode usar o ambiente como um kernel após a conclusão da construção do ambiente conda. Para obter instruções sobre como usar um ambiente existente como kernel, consulte [Criar, ativar e usar novos ambientes conda](#studio-lab-use-manage-conda-new-conda)

## Personalizar seu ambiente
<a name="studio-lab-use-manage-conda-default-customize"></a>

Você pode personalizar seu ambiente instalando e removendo extensões e pacotes conforme necessário. O Studio Lab traz ambientes com pacotes pré-instalados e o uso de um ambiente existente pode economizar tempo e memória, pois os pacotes pré-instalados não contam com a memória disponível do Studio Lab. Para obter mais informações sobre os ambientes do Studio Lab pré-instalados disponíveis, consulte [Ambientes pré-instalados do Studio Lab](studio-lab-environments.md).

Todas as extensões e pacotes instalados em seu ambiente `default` persistirão em seu projeto. Ou seja, você não precisa instalar seus pacotes para cada sessão de tempo de runtime. No entanto, extensões e pacotes instalados em seu ambiente `sagemaker-distribution` não persistirão, então você precisará instalar novos pacotes durante sua próxima sessão. No entanto, quando instalar pacotes, é altamente recomendável instalá-los em seu caderno para garantir que os pacotes sejam instalados no ambiente pretendido.

Para visualizar seus ambientes, execute o comando `conda env list`.

Para visualizar seu ambiente, execute o comando `conda activate <ENVIRONMENT_NAME>`.

Para visualizar os pacotes em um ambiente, execute o comando `conda list`.

 **Instalar pacotes** 

É altamente recomendável instalar seus pacotes no seu caderno Jupyter para garantir que os pacotes sejam instalados no ambiente pretendido. Para instalar pacotes adicionais em seu ambiente a partir de um caderno Jupyter, execute um dos seguintes comandos em uma célula dentro do seu caderno Jupyter: Esses comandos instalam pacotes no ambiente atualmente ativado. 
+  `%conda install <PACKAGE>` 
+  `%pip install <PACKAGE>` 

Não recomendamos o uso dos comandos `!pip` ou `!conda` porque eles podem se comportar de maneiras inesperadas quando você tem vários ambientes. 

Depois de instalar novos pacotes em seu ambiente, talvez seja necessário reiniciar o kernel para garantir que os pacotes funcionem em seu caderno. Isso pode ser feito escolhendo **Amazon SageMaker Studio Lab** no menu superior do seu projeto aberto do Studio Lab e escolhendo **Reiniciar JupyterLab...** . 

 **Remover pacotes** 

Para remover um pacote, execute o comando

```
%conda remove <PACKAGE_NAME>
```

Esse comando também removerá qualquer pacote que dependa de `<PACKAGE_NAME>`, a menos que um substituto possa ser encontrado sem essa dependência. 

Para visualizar os pacotes em um ambiente, execute o comando

```
conda deactivate
&& conda env remove --name
<ENVIRONMENT_NAME>
```

## Atualizar Studio Lab
<a name="studio-lab-use-manage-conda-reset"></a>

Para atualizar o Studio Lab, remova todos os seus ambientes e arquivos. 

1. Liste todos os ambientes do conda.

   ```
   conda env list
   ```

1. Ative o ambiente básico.

   ```
   conda activate base
   ```

1. Remova cada ambiente da lista de ambientes conda, além do básico.

   ```
   conda remove --name <ENVIRONMENT_NAME> --all
   ```

1. Exclua todos os arquivos do seu Studio Lab.

   ```
   rm -rf *.*
   ```

# Use recursos externos no Amazon SageMaker Studio Lab
<a name="studio-lab-use-external"></a>

Com o Amazon SageMaker Studio Lab, você pode integrar recursos externos, como notebooks e dados Jupyter, dos repositórios Git e do Amazon S3. Você também pode adicionar um botão **Abrir no Studio Lab** ao seu GitHub repositório e cadernos. Esse botão permite clonar seus cadernos diretamente do Studio Lab.

Os tópicos a seguir mostram como integrar recursos externos.

**Topics**
+ [Use GitHub recursos](#studio-lab-use-external-clone-github)
+ [Adicione um botão **Abrir no Studio Lab** ao seu caderno](#studio-lab-use-external-add-button)
+ [Importe arquivos do seu computador](#studio-lab-use-external-import)
+ [Conectar-se ao Amazon S3](#studio-lab-use-external-s3)

## Use GitHub recursos
<a name="studio-lab-use-external-clone-github"></a>

O Studio Lab oferece integração com GitHub. Com essa integração, você pode clonar cadernos e repositórios diretamente no seu projeto do Studio Lab. 

Os tópicos a seguir fornecem informações sobre como usar GitHub recursos com o Studio Lab.

### Cadernos de exemplo do Studio Lab
<a name="studio-lab-use-external-clone-examples"></a>

Para começar com um repositório de cadernos de exemplos personalizados para o Studio Lab, consulte [Cadernos de Exemplo do Studio Lab](https://github.com/aws/studio-lab-examples#sagemaker-studio-lab-sample-notebooks).

Esse repositório fornece cadernos para os seguintes casos de uso e outros.
+ Visão computacional
+ Conectando-se a AWS
+ Criar ambientes personalizados
+ Análise de dados geoespaciais
+ Processamento de linguagem natural
+ Usando R

### Clonar um repositório GitHub
<a name="studio-lab-use-external-clone-repo"></a>

Para clonar um GitHub repositório em seu projeto do Studio Lab, siga estas etapas. 

1. Inicie o runtime do seu projeto do Studio Lab. Para obter mais informações sobre como iniciar o tempo de execução do projeto Studio Lab, consulte [Inicie o runtime do projeto](studio-lab-manage-runtime.md#studio-lab-manage-runtime-start). 

1. No Studio Lab, escolha o ícone **Navegador de arquivos** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/folder.png)) no menu esquerdo para que o painel **Navegador de arquivos** seja exibido à esquerda. 

1. Navegue até seu diretório de usuário escolhendo o ícone de arquivo abaixo da barra de pesquisa de arquivos. 

1. Selecione o ícone do **Git** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/git.png)) no menu à esquerda para abrir um novo menu suspenso. 

1. Escolha **Clonar um repositório**. 

1. Cole a URL do repositório na **URL do repositório Git (.git)**. 

1. Selecione **Clonar**. 

### Clone cadernos individuais de GitHub
<a name="studio-lab-use-external-clone-individual"></a>

Para abrir um caderno no Studio Lab, você deve ter acesso ao repositório no qual o caderno está. Os exemplos a seguir descrevem o comportamento relacionado à permissão do Studio Lab em várias situações.
+ Se um repositório for público, você poderá clonar automaticamente o caderno em seu projeto a partir da página de pré-visualização do Studio Lab.
+ Se um repositório for privado, você será solicitado a entrar na página de pré-visualização GitHub do Studio Lab. Se você tiver acesso a um repositório privado, poderá clonar o caderno em seu projeto.
+ Se você não tiver acesso a um repositório privado, não poderá clonar o caderno na página de pré-visualização do Studio Lab.

As seções a seguir mostram duas opções para você copiar um GitHub caderno em seu projeto do Studio Lab. Essas opções dependem se o caderno tem um botão **Abrir no Studio Lab**. 

#### Opção 1: Copiar caderno com um botão **Abrir no Studio Lab**
<a name="studio-lab-use-external-clone-individual-button"></a>

O procedimento a seguir mostra como copiar um caderno que tenha um botão **Abrir no Studio Lab**. Se você quiser adicionar esse botão ao seu caderno, consulte [Adicione um botão **Abrir no Studio Lab** ao seu caderno](#studio-lab-use-external-add-button).

1. Faça login no Studio Lab seguindo as etapas em [Faça login no Studio Lab.](studio-lab-onboard.md#studio-lab-onboard-signin).

1. Em uma nova guia do navegador, navegue até o GitHub notebook que você deseja clonar. 

1. No caderno, selecione o botão **Abrir no Studio Lab** para abrir uma nova página no Studio Lab com uma prévia do caderno.

1. Se o tempo de execução do seu projeto ainda não estiver em execução, inicie-o escolhendo o botão **Iniciar tempo de execução** na parte superior da página de pré-visualização. Aguarde até que o tempo de execução come antes de prosseguir para a próxima etapa.

1. Depois que o tempo de execução do seu projeto for iniciado, selecione **Copiar para o projeto** para abrir o tempo de execução do seu projeto em uma nova guia do navegador. 

1. Na **cópia de GitHub?** caixa de diálogo, selecione **Copiar somente caderno**. Isso copia o arquivo do caderno para o seu projeto.

#### Opção 2: clonar qualquer notebook GitHub
<a name="studio-lab-use-external-clone-individual-general"></a>

O procedimento a seguir mostra como copiar qualquer notebook do GitHub. 

1. Navegue até o notebook em GitHub. 

1. Na barra de endereço do navegador, modifique a URL do caderno da seguinte forma.

   ```
   # Original URL
   https://github.com/<PATH_TO_NOTEBOOK>
   
   # Modified URL 
   https://studiolab.sagemaker.aws/import/github/<PATH_TO_NOTEBOOK>
   ```

1. Navegue até a URL modificada. Isso abre uma prévia do caderno no Studio Lab. 

1. Se o tempo de execução do seu projeto ainda não estiver em execução, inicie-o escolhendo o botão **Iniciar tempo de execução** na parte superior da página de pré-visualização. Aguarde até que o tempo de execução come antes de prosseguir para a próxima etapa. 

1. Depois que o tempo de execução do seu projeto for iniciado, selecione **Copiar para o projeto** para abrir o tempo de execução do seu projeto em uma nova guia do navegador. 

1. Na **cópia de GitHub?** caixa de diálogo, selecione **Copiar caderno somente** para copiar o arquivo do caderno para o seu projeto.

## Adicione um botão **Abrir no Studio Lab** ao seu caderno
<a name="studio-lab-use-external-add-button"></a>

Quando você adiciona o botão **Abrir no Studio Lab** aos seus cadernos, outras pessoas podem clonar seus cadernos ou repositórios diretamente para projetos do Studio Lab delas. Se você estiver compartilhando seu caderno em um GitHub repositório público, seu conteúdo será legível publicamente. Não compartilhe conteúdo privado, como chaves de AWS acesso ou AWS Identity and Access Management credenciais, em seu notebook.

Para adicionar o botão de funcionalidade **Abrir no Studio Lab** ao seu caderno ou repositório Jupyter, adicione o seguinte markdown na parte superior do seu caderno ou repositório. 

```
[![Open In SageMaker Studio Lab](https://studiolab.sagemaker.aws/studiolab.svg)](https://studiolab.sagemaker.aws/import/github/<PATH_TO_YOUR_NOTEBOOK_ON_GITHUB>)
```

## Importe arquivos do seu computador
<a name="studio-lab-use-external-import"></a>

As etapas a seguir mostram como importar arquivos do seu computador para o projeto do Studio Lab.  

1. Abra o runtime do projeto do Studio Lab 

1. Abra o painel **Navegador de arquivos**. 

1. Na barra de ações do painel **Navegador de arquivos**, selecione o botão **Carregar arquivos**. 

1. Selecione os arquivos que deseja carregar da sua máquina local. 

1. Selecione **Abrir**. 



Como alternativa, é possível arrastar e soltar arquivos do computador para o painel do **Navegador de arquivos**. 

## Conectar-se ao Amazon S3
<a name="studio-lab-use-external-s3"></a>

 AWS CLI Isso permite a AWS integração em seu projeto do Studio Lab. Com essa integração, você pode extrair recursos do Amazon S3 para usar com seus blocos de anotação Jupyter.

Para usar AWS CLI com o Studio Lab, conclua as etapas a seguir. Para um notebook que descreve essa integração, consulte [Usando o Studio Lab com AWS recursos](https://github.com/aws/studio-lab-examples/blob/main/connect-to-aws/Access_AWS_from_Studio_Lab.ipynb).

1. Instale as etapas a AWS CLI seguir em [Instalando ou atualizando a versão mais recente do AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html). 

1. Configure suas AWS credenciais seguindo as etapas em [Configuração rápida](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html). A função da sua AWS conta deve ter permissões para acessar o bucket do Amazon S3 do qual você está copiando dados. 

1. Do seu bloco de anotações Jupyter, clone recursos do bucket do Amazon S3, conforme necessário. O comando a seguir mostra como clonar todos os recursos de um caminho do Amazon S3 para seu projeto. Para obter mais informações, consulte [Referência de comandos da 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
   ```

# Obter diferenças dos cadernos
<a name="studio-lab-use-diff"></a>

Você pode exibir a diferença entre o notebook atual e o último ponto de verificação, ou o último commit do Git, usando a interface do projeto do SageMaker Amazon Studio Lab.

**Topics**
+ [Obter diferenças desde o último ponto de verificação](#studio-lab-use-diff-checkpoint)
+ [Obter diferenças desde a última confirmação](#studio-lab-use-diff-git)

## Obter diferenças desde o último ponto de verificação
<a name="studio-lab-use-diff-checkpoint"></a>

Quando você cria um caderno, um arquivo de ponto de verificação oculto que corresponde ao caderno é criado. Você pode visualizar as alterações entre o caderno e o arquivo de ponto de verificação ou reverter o caderno para corresponder ao arquivo de ponto de verificação.

Para salvar o caderno do Studio Lab e atualizar o arquivo do ponto de verificação para que corresponda: escolha o ícone **Salvar caderno e criar ponto de verificação** (![\[Icon of a cloud with an arrow pointing upward, representing cloud upload functionality.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/Notebook_save.png)). Ele está localizado no lado esquerdo do menu do Studio Lab. O atalho do teclado para **Salvar caderno e criar ponto de verificação** é `Ctrl + s`.

Para visualizar as alterações entre o caderno e o arquivo do ponto de verificação, escolha o ícone **Diferenças do ponto de verificação** (![\[Camera icon representing image capture or photo functionality.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/Checkpoint_diff.png)) localizado no centro do menu do Studio Lab.

Para reverter o caderno do Studio Lab para o arquivo de ponto de verificação: no menu principal do Studio Lab, escolha **Arquivo** e, então, **Reverter o caderno para o ponto de verificação**.

## Obter diferenças desde a última confirmação
<a name="studio-lab-use-diff-git"></a>

Se um caderno for aberto a partir de um repositório Git, será possível visualizar a diferença entre o caderno e a última confirmação do Git.

Para visualizar as alterações no caderno a partir da última confirmação do Git: escolha o ícone **Git diff** (![\[GitHub icon representing version control and source code management.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/Git_diff.png)) no centro do menu do caderno.

# Exportar um ambiente do Amazon SageMaker Studio Lab para o Amazon SageMaker Studio Classic
<a name="studio-lab-use-migrate"></a>

O Amazon SageMaker Studio Classic oferece muitos recursos para fluxos de trabalho de aprendizado de máquina e aprendizado profundo que não estão disponíveis no Amazon SageMaker Studio Lab. Esta página mostra como migrar um ambiente do Studio Lab para o Studio para aproveitar mais capacidade computacional, armazenamento e atributos. No entanto, talvez você queira se familiarizar com os contêineres predefinidos do Studio Classic, que são otimizados para o pipeline MLOP completo. Para obter mais informações, consulte [Laboratório Amazon SageMaker Studio](studio-lab.md).

Para migrar seu ambiente do Studio Lab para o Studio Classic, você deve primeiro integrar-se ao Studio Classic seguindo as etapas apresentadas em [Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md). 

**Topics**
+ [Etapa 1: exportar seu ambiente conda do Studio Lab](#studio-lab-use-migrate-step1)
+ [Etapa 2: Salve seus artefatos do Studio Lab](#studio-lab-use-migrate-step2)
+ [Etapa 3: importar seus artefatos do Studio Lab para o Studio Classic](#studio-lab-use-migrate-step3)
+ [Etapa 4: Instale os ambientes conda do Studio Lab no Studio Classic](#studio-lab-use-migrate-step4)

## Etapa 1: exportar seu ambiente conda do Studio Lab
<a name="studio-lab-use-migrate-step1"></a>

Você pode exportar um ambiente conda e adicionar bibliotecas ou pacotes ao ambiente seguindo as etapas em[Gerenciar seu ambiente](studio-lab-use-manage.md). O exemplo a seguir demonstra o uso do ambiente `default` a ser exportado para o Studio Classic. 

1. Abra o terminal do Studio Lab no painel **Navegador de arquivos** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/folder.png)), escolha o sinal de adição (**\$1**) no menu na parte superior do navegador de arquivos para abrir o **Inicializador** e escolha **Terminal**. No terminal do Studio Lab, liste os ambientes conda executando o seguinte:

   ```
   conda env list
   ```

   Esse comando gera uma lista dos ambientes conda e suas localizações no sistema de arquivos. Ao se integrar ao Studio Lab, você ativa automaticamente o ambiente `studiolab` conda.

   ```
   # 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
   ```

   Recomendamos que você não exporte os ambientes `studiolab`, `studiolab-safemode`, e `base`. Esses ambientes não são utilizáveis no Studio Classic pelos seguintes motivos: 
   +  `studiolab`: Isso configura o JupyterLab ambiente para o Studio Lab. O Studio Lab executa uma versão principal diferente JupyterLab do Studio Classic, portanto, não pode ser usado no Studio Classic. 
   +  `studiolab-safemode`: Isso também configura o JupyterLab ambiente para o Studio Lab. O Studio Lab executa uma versão principal diferente JupyterLab do Studio Classic, portanto, não pode ser usado no Studio Classic. 
   +  `base`: Esse ambiente vem com conda por padrão. O ambiente `base` no Studio Lab e o ambiente `base` no Studio Classic têm versões incompatíveis de versões de muitos pacotes. 

1. Para o ambiente conda que você deseja migrar para o Studio Classic, primeiro ative o ambiente conda. O ambiente `default` é então alterado quando novas bibliotecas são instaladas ou removidas dele. Para obter o estado exato do ambiente, exporte-o para um arquivo YAML usando a linha de comando. As linhas de comando a seguir exportam o ambiente padrão para um arquivo YAML, criando um arquivo chamado `myenv.yml`.

   ```
   conda activate default
   conda env export > ~/myenv.yml
   ```

## Etapa 2: Salve seus artefatos do Studio Lab
<a name="studio-lab-use-migrate-step2"></a>

Agora que você salvou seu ambiente em um arquivo YAML, você pode mover o arquivo de ambiente para qualquer plataforma. 

------
#### [ Save to a local machine using Studio Lab GUI ]

**nota**  
Faça download de um diretório da GUI do Studio Lab clicando com o botão direito do mouse no diretório que está indisponível no momento. Se você quiser exportar um diretório, siga as etapas usando a aba **Salvar no repositório Git**. 

Uma opção é salvar o ambiente em sua máquina local. Para fazer isso, use o procedimento a seguir.

1. No Studio Lab, selecione o ícone **Navegador de arquivos** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/folder.png)) no menu à esquerda, para que o painel **Navegador de arquivos** seja exibido à esquerda. 

1. Navegue até seu diretório de usuário escolhendo o ícone de arquivo abaixo da barra de pesquisa de arquivos. 

1. Escolha (clique com o botão direito do mouse) o arquivo `myenv.yml` e escolha **Download**. Você pode repetir esse processo para outros arquivos que você deseja importar para o Studio Classic. 

------
#### [ Save to a Git repository ]

Outra opção é salvar seu ambiente em um repositório Git. Essa opção usa GitHub como exemplo. Essas etapas exigem uma GitHub conta e um repositório. Para obter mais informações, acesse [GitHub](https://github.com/). O procedimento a seguir mostra como sincronizar seu conteúdo GitHub usando o terminal do Studio Lab. 

1. No terminal do Studio Lab, navegue até seu diretório de usuário e crie um novo diretório para conter os arquivos que você deseja exportar. 

   ```
   cd ~
   mkdir <NEW_DIRECTORY_NAME>
   ```

1. Depois de criar um novo diretório, copie qualquer arquivo ou diretório que você deseja exportar para `<NEW_DIRECTORY_NAME>`. 

   Copie um arquivo usando o seguinte formato de código:

   ```
   cp <FILE_NAME> <NEW_DIRECTORY_NAME>
   ```

   Por exemplo, substituindo `<FILE_NAME>` por `myenv.yml`. 

   Copie um diretório usando o seguinte formato de código:

   ```
   cp -r <DIRECTORY_NAME> <NEW_DIRECTORY_NAME>
   ```

   Por exemplo, substitua `<DIRECTORY_NAME>` por qualquer nome de diretório em seu diretório de usuário.

1. Navegue até o novo diretório e inicialize o diretório como um repositório Git usando o comando a seguir. Para obter mais informações, consulte a [documentação de git-init](https://git-scm.com/docs/git-init). 

   ```
   cd <NEW_DIRECTORY_NAME>
   git init
   ```

1. Usando o Git, adicione todos os arquivos relevantes e, em seguida, confirme suas alterações. 

   ```
   git add .
   git commit -m "<COMMIT_MESSAGE>"
   ```

   Por exemplo, substituindo `<COMMIT_MESSAGE>` por `Add Amazon SageMaker Studio Lab artifacts to GitHub repository to migrate to Amazon SageMaker Studio Classic `.

1. Envie a confirmação para o repositório remoto. Esse repositório tem o formato `https://github.com/<GITHUB_USERNAME>/ <REPOSITORY_NAME>.git` em que `<GITHUB_USERNAME>` está seu nome de GitHub usuário e o `<REPOSITORY_NAME>` nome do seu repositório remoto. Crie uma ramificação `<BRANCH_NAME>` para enviar o conteúdo para o GitHub repositório.

   ```
   git branch -M <BRANCH_NAME>
   git remote add origin https://github.com/<GITHUB_USERNAME>/<REPOSITORY_NAME>.git
   git push -u origin <BRANCH_NAME>
   ```

------

## Etapa 3: importar seus artefatos do Studio Lab para o Studio Classic
<a name="studio-lab-use-migrate-step3"></a>

O procedimento a seguir mostra como importar artefatos para o Studio Classic. As instruções sobre como usar o Feature Store por meio do console dependem de você ter habilitado o Studio ou o Studio Classic como sua experiência padrão. Para informações a respeito de como acessar o Studio Classic por meio do console, consulte [Execute o Studio Classic se o Studio for sua experiência padrão](studio-launch.md#studio-launch-console-updated).

No Studio Classic, você pode importar arquivos da sua máquina local ou de um repositório Git. É possível fazer isso usando a GUI do Studio Classic ou o terminal. O procedimento a seguir usa os exemplos de [Etapa 2: Salve seus artefatos do Studio Lab](#studio-lab-use-migrate-step2). 

------
#### [ Import using the Studio Classic GUI ]

Se você salvou os arquivos em sua máquina local, poderá importá-los para o Studio Classic usando as etapas a seguir.

1. Abra o painel **Navegador de arquivos** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/folder.png)) no canto superior esquerdo do Studio Classic. 

1. Escolha o ícone **Carregar arquivos** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/File_upload_squid.png)) no menu na parte superior do painel **Navegador de arquivos**. 

1. Navegue até o arquivo que você deseja importar e escolha **Abrir**. 

**nota**  
Se você quiser importar um diretório para o Studio Classic, primeiro compacte o diretório na sua máquina local em um arquivo. Em um Mac, clique com o botão direito do mouse no diretório e escolha **Compactar "” *<DIRECTORY\$1NAME>***. No Windows, clique com o botão direito do mouse no diretório e escolha **Enviar para** e, então, selecione **Pasta compactada (zipada)**. Depois que o diretório for compactado, importe o arquivo compactado usando as etapas anteriores. Descompacte o arquivo compactado navegando até o terminal do Studio e executando o comando `<DIRECTORY_NAME>.zip`. 

------
#### [ Import using a Git repository ]

Este exemplo fornece duas opções de como clonar um GitHub repositório no Studio Classic. Você pode usar a GUI do Studio Classic escolhendo a guia **Git** (![\[Black square icon representing a placeholder or empty image.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/git.png)) no lado esquerdo do Studio Classic. Escolha **Clonar um repositório** e cole a URL do seu GitHub repositório. [Etapa 2: Salve seus artefatos do Studio Lab](#studio-lab-use-migrate-step2) Outra opção é usar o terminal do Studio Classic usando o procedimento a seguir. 

1. Abra o **Inicializador** do Studio Classic. Para obter mais informações sobre como abrir o **Launcher**, consulte [Amazon SageMaker Studio Classic Launcher](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launcher.html). 

1. No **Inicializador**, na seção **Cadernos e recursos de computação**, escolha **Alterar ambiente**.

1. No Studio Classic, abra o **Inicializador**. Para abrir o **Launcher**, escolha **Amazon SageMaker Studio Classic** no canto superior esquerdo do Studio Classic. 

   Para saber mais sobre todas as formas disponíveis para abrir o **Inicializador**, consulte [Use o Amazon SageMaker Studio Classic Launcher](studio-launcher.md).

1. Na caixa de diálogo **Alterar ambiente**, use a lista suspensa **Imagem** para selecionar a imagem da **Ciência de Dados** e escolha **Selecionar.** Essa imagem vem com o conda pré-instalado. 

1. No **Inicializador** do Studio Classic, escolha **Abrir terminal de imagem**.

1. No terminal de imagem, execute o seguinte comando para clonar o repositório: Esse comando cria um diretório com o nome `<REPOSITORY_NAME>` de sua instância do Studio Classic e clona seus artefatos nesse repositório.

   ```
   git clone https://github.com/<GITHUB_USERNAME>/<REPOSITORY_NAME>.git
   ```

------

## Etapa 4: Instale os ambientes conda do Studio Lab no Studio Classic
<a name="studio-lab-use-migrate-step4"></a>

Agora você pode recriar seu ambiente conda usando seu arquivo YAML na sua instância do Studio Classic. Abra o **Inicializador** do Studio Classic. Para obter mais informações sobre como abrir o **Launcher**, consulte [Amazon SageMaker Studio Classic Launcher](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launcher.html). No **Inicializador**, escolha **Abrir terminal de imagem**. No terminal, navegue até o diretório que contém o arquivo YAML e execute os seguintes comandos: 

```
conda env create --file <ENVIRONMENT_NAME>.yml
conda activate <ENVIRONMENT_NAME>
```

Depois que esses comandos forem concluídos, você poderá selecionar seu ambiente como o kernel para suas instâncias de cadernos do Studio Classic. Para ver o ambiente disponível, execute `conda env list`. Para ativar seu ambiente, execute `conda activate <ENVIRONMENT_NAME>`.



# Encerre os recursos do Studio Lab
<a name="studio-lab-use-shutdown"></a>

Você pode visualizar e encerrar seus recursos do Amazon SageMaker Studio Lab em execução em um único local em seu ambiente Studio Lab. Os tipos de recursos em execução incluem terminais e kernels. Você também pode encerrar todos os recursos em uma dessas categorias ao mesmo tempo.

Ao encerrar todos os recursos pertencentes a um tipo de recurso, ocorre o seguinte:
+ **KERNELS**: todos os kernels, cadernos e consoles são encerrados.
+ **TERMINAIS**: todos os terminais são encerrados.

**Encerre os recursos do Studio Lab**

1. Inicie o runtime do seu projeto do Studio Lab. Para obter mais informações sobre como iniciar o runtime do projeto Studio Lab, consulte [Inicie o runtime do projeto](studio-lab-manage-runtime.md#studio-lab-manage-runtime-start).

1. Escolha o ícone **Terminais e Kernels em execução** (![\[Square icon with a white outline of a cloud on a dark blue background.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/icons/Running_squid.png)) no painel de navegação à esquerda.

1. Escolha o símbolo **X** à direita do recurso que você deseja encerrar. Você pode ver o símbolo **X** passando o cursor sobre um recurso.

1. (Opcional) Você pode encerrar todos os recursos de um determinado tipo de recurso escolhendo **Encerrar todos** à direita do nome do tipo de recurso.

# Solução de problemas
<a name="studio-lab-troubleshooting"></a>

O guia mostra erros comuns que podem ocorrer ao usar o Amazon SageMaker Studio Lab (Studio Lab). Cada erro contém uma descrição, bem como uma solução para o erro.

**nota**  
Você não pode compartilhar sua senha com vários usuários e nem usar o Studio Lab para minerar criptomoedas. Não recomendamos o uso do Studio Lab para tarefas de produção devido aos limites de runtime.

 **Problemas de dependência** 

Em 8 de agosto de 2025, o Studio Lab migrou de JupyterLab 3 para JupyterLab 4. Para obter informações sobre JupyterLab 4, consulte [4.0.0 - Destaques](https://jupyterlab.readthedocs.io/en/4.0.x/getting_started/changelog.html#highlights) no JupyterLab Changelog. Se você instalou JupyterLab extensões em seu ambiente Studio Lab antes de 8 de agosto de 2025, talvez seja necessário reinstalá-las no ambiente JupyterLab 4.

 **Não consigo acessar a conta** 

Se você não conseguir acessar sua conta, verifique se está usando o e-mail e senha corretos. Se você esqueceu sua senha, use as etapas a seguir para redefinir sua senha. Se você ainda não conseguir acessar sua conta, deverá solicitar e registrar uma nova conta usando as instruções em[Faça parte do Amazon SageMaker Studio Lab](studio-lab-onboard.md). 

 **Esqueci a senha** 

Se você esquecer sua senha, deverá redefini-la usando as etapas a seguir. 

1. Navegue até a [página de destino do Studio Lab](https://studiolab.sagemaker.aws).

1. Selecione **Fazer login**.

1. Selecione **Esqueci a senha** para abrir uma nova página. 

1. Insira o endereço de e-mail que você usou para cadastrar uma conta. 

1. Selecione **Enviar link de redefinição** para enviar um e-mail com um link de redefinição de senha. 

1. No e-mail de redefinição de senha, selecione **Redefinir sua senha**. 

1. Insira sua nova senha. 

1. Selecione **Submit (Enviar)**. 

 **Não é possível iniciar o runtime do projeto** 

Se o runtime do projeto Studio Lab não for iniciado, tente iniciá-lo novamente. Se isso não funcionar, mude o tipo de instância de CPU para GPU (ou vice-versa). Para obter mais informações, consulte [Alterar seu tipo de computação](studio-lab-manage-runtime.md#studio-lab-manage-runtime-change).

 **O runtime parou de funcionar inesperadamente** 

Se houver um problema com o ambiente usado para execução JupyterLab, o Studio Lab recriará automaticamente o ambiente. O Studio Lab não oferece apoio à ativação manual desse processo. 

 **Versões em conflito** 

Como você pode adicionar pacotes e modificar seu ambiente conforme necessário, você pode se deparar com conflitos entre pacotes em seu ambiente. Se houver conflitos entre pacotes em seu ambiente, você deverá remover o pacote em conflito.

 **Falha na compilação do ambiente** 

Quando você compila um ambiente a partir de um arquivo YAML, um conflito de versão de pacote ou problema de arquivo pode causar falha na compilação. Para resolver isso, remova o ambiente executando o comando a seguir. Faça isso antes de tentar compilá-lo novamente. 

```
conda remove --name <YOUR_ENVIRONMENT> --all
```

 **Mensagem de erro sobre a permissão para fazer download do script do domínio \$1.awswaf.com** 

O Studio Classic usa o serviço de firewall de aplicativos da web AWS WAF para proteger seus recursos, que usa JavaScript. Se você estiver usando um plug-in de segurança do navegador que JavaScript impede o download, esse erro pode aparecer. Para usar o Studio Classic, permita o JavaScript download de \$1.awswaf.com como um domínio confiável. Para obter mais informações sobre AWS WAF AWS WAF, consulte [AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html)no AWS Firewall Manager, AWS Shield Advanced e. Guia do desenvolvedor 

 **O espaço em disco está cheio** 

Se você receber uma notificação mencionando que seu espaço em disco está cheio ou **erro de carregamento de arquivo *<FILE\$1NAME>*** ao tentar abrir um arquivo, você pode remover arquivos, diretórios, bibliotecas ou ambientes para aumentar o espaço. Para mais informações sobre o gerenciamento de suas bibliotecas e ambientes, consulte [Gerenciar seu ambiente](studio-lab-use-manage.md).

 ****O runtime do projeto está na notificação do modo de segurança**** 

Se você receber uma notificação de que o **runtime do projeto está no modo de segurança**, você deve liberar espaço em disco para retomar o uso do runtime do projeto do Studio Lab. Siga as instruções no item de solução de problemas anterior, o **espaço em disco está cheio**. Depois que pelo menos 500 MB de espaço forem apagados, você poderá reiniciar o runtime do projeto para usar o Studio Lab. Isso pode ser feito escolhendo **Amazon SageMaker Studio Lab** no menu superior do Studio Lab e escolhendo **Reiniciar JupyterLab...** .

git Não é **possível importar `cv2`** 

Se você encontrar um erro ao importar `cv2` após a instalação de `opencv-python`, deverá desinstalar `opencv-python` e instalar da `opencv-python-headless` seguinte maneira:

```
%pip uninstall opencv-python --yes
%pip install opencv-python-headless
```

Em seguida, você pode importar `cv2` conforme o esperado.

 **O Studio Lab fica não responsivo ao abrir arquivos grandes** 

O IDE do Studio Lab pode falhar ao renderizar quando arquivos grandes são abertos, resultando no acesso bloqueado aos recursos do Studio Lab. Para resolver isso, redefina o workspace do Studio Lab usando o procedimento a seguir.

1. Depois de abrir o IDE, copie a URL na barra de endereço do seu navegador. Esta deve ser uma URL no formato `https://xxxxxx.studio.us-east-2.sagemaker.aws/studiolab/default/jupyter/lab`. Feche a guia.

1. Em uma nova guia, cole a URL e remova o que estiver depois de `https://xxxxxx.studio.us-east-2.sagemaker.aws/studiolab/default/jupyter/lab`.

1. Adicione `?reset` ao final da URL para que tenha o formato `https://xxxxxx.studio.us-east-2.sagemaker.aws/studiolab/default/jupyter/lab?reset`.

1. Navegue até o URL atualizado. Isso redefine o estado da interface do usuário salvo e torna o IDE do Studio Lab responsivo.

# Amazon SageMaker Canvas
<a name="canvas"></a>

O Amazon SageMaker Canvas oferece a capacidade de usar o aprendizado de máquina para gerar previsões sem precisar escrever nenhum código. A seguir estão alguns casos de uso em que você pode usar o SageMaker Canvas:
+ Prever a rotatividade de clientes
+ Planejar o inventário com eficiência
+ Otimizar o preço e a receita
+ Melhorar as entregas dentro do prazo
+ Classificar texto ou imagens com base em categorias personalizadas
+ Identificar objetos e texto em imagens
+ Extrair informações de documentos

Com o Canvas, você pode conversar com modelos populares de linguagem grande (LLMs), acessar Ready-to-use modelos ou criar um modelo personalizado treinado com base em seus dados.

O Canvas Chat é uma funcionalidade que utiliza o código aberto e LLMs a Amazon para ajudar você a aumentar sua produtividade. Você pode solicitar que os modelos obtenham ajuda em tarefas como gerar conteúdo, resumir ou categorizar documentos e responder perguntas. Para saber mais, consulte [Modelos básicos de IA generativa no Canvas SageMaker](canvas-fm-chat.md).

Os [Ready-to-use modelos](canvas-ready-to-use-models.md) no Canvas podem extrair insights de seus dados para uma variedade de casos de uso. [Você não precisa criar um modelo para usar Ready-to-use modelos porque eles são alimentados pelos serviços de IA da Amazon, incluindo Amazon [Rekognition](https://docs.aws.amazon.com/rekognition/latest/dg/what-is.html)[,](https://docs.aws.amazon.com/textract/latest/dg/what-is.html) Amazon Textract e Amazon Comprehend.](https://docs.aws.amazon.com/comprehend/latest/dg/what-is.html) Você só precisa importar seus dados e começar a usar uma solução para gerar predições.

Se você quiser um modelo personalizado para seu caso de uso e treinado com seus dados, você pode [criar um modelo](canvas-custom-models.md). É possível obter predições personalizadas para seus dados fazendo o seguinte:

1. Importe seus dados de uma ou mais fontes de dados.

1. Crie um modelo preditivo.

1. Avalie o desempenho do modelo.

1. Gere predições com o modelo.

O Canvas é compatível com os seguintes tipos de modelos personalizados:
+ Previsão numérica (também conhecida como *regressão*)
+ Previsão categórica para 2 e 3 categorias ou mais (também conhecida como classificação *binária* e de *várias classes*)
+ Previsão de séries temporais
+ Previsão de imagem de rótulo único (também conhecida como *classificação de imagens*)
+ Previsão de texto em várias categorias (também conhecida como classificação de *texto em várias classes*)

Para saber mais sobre preços, consulte a [página de preços do SageMaker Canvas](https://aws.amazon.com/sagemaker/canvas/pricing/). Para obter mais informações, consulte também [Cobrança e custo no Canvas SageMaker](canvas-manage-cost.md).

SageMaker Atualmente, o Canvas está disponível nas seguintes regiões:
+ Leste dos EUA (Ohio)
+ Leste dos EUA (Norte da Virgínia)
+ Oeste dos EUA (N. da Califórnia)
+ Oeste dos EUA (Oregon)
+ Ásia-Pacífico (Mumbai)
+ Ásia-Pacífico (Seul)
+ Ásia-Pacífico (Singapura)
+ Ásia-Pacífico (Sydney)
+ Ásia-Pacífico (Tóquio)
+ Canadá (Central)
+ Europa (Frankfurt)
+ Europa (Irlanda)
+ Europa (Londres)
+ Europa (Paris)
+ Europa (Estocolmo)
+ América do Sul (São Paulo)

**Topics**
+ [Você é usuário do SageMaker Canvas pela primeira vez?](#canvas-first-time-user)
+ [Começando a usar o Amazon SageMaker Canvas](canvas-getting-started.md)
+ [Tutorial: Crie um fluxo de trabalho end-to-end de aprendizado de máquina no SageMaker Canvas](canvas-end-to-end-machine-learning-workflow.md)
+ [Configuração e gerenciamento de permissões do Amazon SageMaker Canvas (para administradores de TI)](canvas-setting-up.md)
+ [Assistência de IA generativa para resolver problemas de ML no Canvas usando o Amazon Q Developer](canvas-q.md)
+ [importar dados](canvas-importing-data.md)
+ [preparação de dados](canvas-data-prep.md)
+ [Modelos básicos de IA generativa no Canvas SageMaker](canvas-fm-chat.md)
+ [Ready-to-use modelos](canvas-ready-to-use-models.md)
+ [Modelos personalizados](canvas-custom-models.md)
+ [Sair do Amazon SageMaker Canvas](canvas-log-out.md)
+ [Limitações e solução de problemas](canvas-limits.md)
+ [Cobrança e custo no Canvas SageMaker](canvas-manage-cost.md)

## Você é usuário do SageMaker Canvas pela primeira vez?
<a name="canvas-first-time-user"></a>

Se você é um usuário iniciante do SageMaker Canvas, recomendamos que comece lendo as seguintes seções:
+ Para administradores de TI: [Configuração e gerenciamento de permissões do Amazon SageMaker Canvas (para administradores de TI)](canvas-setting-up.md)
+ Para analistas e usuários individuais: [Começando a usar o Amazon SageMaker Canvas](canvas-getting-started.md)
+ Para um exemplo de um fluxo de trabalho de ponta a ponta: [Tutorial: Crie um fluxo de trabalho end-to-end de aprendizado de máquina no SageMaker Canvas](canvas-end-to-end-machine-learning-workflow.md)

# Começando a usar o Amazon SageMaker Canvas
<a name="canvas-getting-started"></a>

Este guia explica como começar a usar o SageMaker Canvas. Se você é administrador de TI e gostaria de obter detalhes mais detalhados, consulte como configurar [Configuração e gerenciamento de permissões do Amazon SageMaker Canvas (para administradores de TI)](canvas-setting-up.md) o SageMaker Canvas para seus usuários.

**Topics**
+ [Pré-requisitos para configurar o Amazon Canvas SageMaker](#canvas-prerequisites)
+ [Etapa 1: Faça login no SageMaker Canvas](#canvas-getting-started-step1)
+ [Etapa 2: Use o SageMaker Canvas para obter previsões](#canvas-getting-started-step2)

## Pré-requisitos para configurar o Amazon Canvas SageMaker
<a name="canvas-prerequisites"></a>

Para configurar um aplicativo SageMaker Canvas, integre-o usando um dos seguintes métodos de configuração:

1. **Integrado com o AWS console.** Para fazer a integração por meio do AWS console, primeiro você cria um domínio Amazon SageMaker AI. SageMaker Os domínios de IA oferecem suporte a vários ambientes de aprendizado de máquina (ML), como Canvas e [SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html). Para obter mais informações sobre Domínios, consulte [Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md).

   1. (Rápido) [Use a configuração rápida para Amazon SageMaker AI](onboard-quick-start.md): Escolha essa opção se quiser configurar rapidamente um domínio. Isso concede ao usuário todas as permissões padrão do Canvas e funcionalidades básicas. Quaisquer atributos adicionais, como a [consulta de documentos](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-fm-chat.html#canvas-fm-chat-query), podem ser ativados posteriormente por um administrador. Se quiser configurar permissões mais granulares, recomendamos que você escolha a opção Avançado.

   1. (Padrão) [Use a configuração personalizada para Amazon SageMaker AI](onboard-custom.md): Escolha essa opção se quiser concluir uma configuração mais avançada do seu domínio. Mantenha um controle granular sobre as permissões do usuário, como acesso a atributos de preparação de dados, funcionalidade de IA generativa e implantações de modelos. 

1. **A bordo com CloudFormation.** [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)automatiza o provisionamento de recursos e configurações para que você possa configurar o Canvas para um ou mais perfis de usuário ao mesmo tempo. Use essa opção se quiser automatizar o processo de integração em grande escala e garantir que suas aplicações sejam sempre configurados da mesma forma. O [CloudFormation modelo](https://github.com/aws-samples/cloudformation-studio-domain) a seguir fornece uma maneira simplificada de se integrar ao Canvas, garantindo que todos os componentes necessários sejam configurados adequadamente e permitindo que você se concentre na criação e implantação de seus modelos de aprendizado de máquina.

A seção a seguir descreve como se integrar ao Canvas usando o AWS console para criar um domínio.

**Importante**  
Para você configurar o Amazon SageMaker Canvas, sua versão do Amazon SageMaker Studio deve ser 3.19.0 ou posterior. Para obter informações sobre a atualização do Amazon SageMaker Studio, consulte[Desligue e atualize o Amazon SageMaker Studio Classic](studio-tasks-update-studio.md).

### Integrado com o console AWS
<a name="canvas-prerequisites-domain"></a>

Se você estiver fazendo a configuração rápida do domínio, siga as instruções em [Use a configuração rápida para Amazon SageMaker AI](onboard-quick-start.md), pule o restante desta seção e prossiga para [Etapa 1: Faça login no SageMaker Canvas](#canvas-getting-started-step1).

Se você estiver fazendo a configuração de domínio padrão, poderá especificar os atributos do Canvas aos quais gostaria de conceder acesso aos seus usuários. Use o restante desta seção ao concluir a configuração de domínio padrão para ajudá-lo a configurar as permissões específicas do Canvas.

Nas instruções de [Use a configuração personalizada para Amazon SageMaker AI](onboard-custom.md) configuração, para a **Etapa 2: Usuários e atividades de ML**, você deve selecionar as permissões do Canvas que deseja conceder. Na seção de **atividades de ML**, você pode selecionar as seguintes políticas de permissões para conceder acesso aos atributos do Canvas: Você só pode selecionar até 8 **atividades de ML** no total ao configurar seu domínio. As duas primeiras permissões na lista a seguir são necessárias para usar o Canvas, enquanto as demais são para atributos adicionais.
+ **Executar aplicações do Studio**: Essas permissões são necessárias para iniciar a aplicação Canvas.
+ **[Canvas Core Access](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)**: Essas permissões concedem acesso à aplicação Canvas e às funcionalidades básicas do Canvas, como criar conjuntos de dados, usar transformações básicas de dados e construir e analisar modelos.
+ (Opcional) **[Preparação de dados do Canvas (desenvolvido pelo Data Wrangler)](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasDataPrepFullAccess.html)**: Essas permissões concedem acesso para criar fluxos de dados e usar transformações avançadas para preparar seus dados no Canvas. Essas permissões também são necessárias para criar trabalhos de processamento de dados e cronogramas de trabalhos de preparação de dados.
+ (Opcional) **[Canvas AI Services](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasAIServicesAccess.html)** — Essas permissões concedem acesso aos Ready-to-use modelos, modelos básicos e recursos do Chat with Data no Canvas.
+ (Opcional) Acesso ao **Kendra**: Essa permissão concede acesso ao atributos de consulta de [documentos](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-fm-chat.html#canvas-fm-chat-query), no qual você pode consultar documentos armazenados em um índice do Amazon Kendra usando modelos básicos no Canvas.

  Se você selecionar essa opção, na seção Acesso ao **Canvas Kendra, insira** os índices IDs do Amazon Kendra aos quais você deseja conceder acesso.
+ (Opcional) **[Canvas MLOps](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasDirectDeployAccess.html)** — Essa permissão concede acesso ao recurso de [implantação de modelos](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-deploy-model.html) no Canvas, onde você pode implantar modelos para uso na produção.

Na seção **Etapa 3: Aplicações** da configuração do domínio, escolha **Configurar o Canvas** e faça o seguinte:

1.  Para a **configuração de armazenamento do Canvas**, especifique onde você deseja que o Canvas armazene os dados da aplicação, como artefatos do modelo, conjuntos de dados e logs. SageMaker A IA cria uma `Canvas/` pasta dentro desse bucket para armazenar os dados. Para obter mais informações, consulte [Configurar seu armazenamento do Amazon S3](canvas-storage-configuration.md). Nesta seção, faça o seguinte:

   1. Selecione **Sistema gerenciado** se quiser definir o local como o bucket padrão SageMaker criado pela IA que segue o padrão. `s3://sagemaker-{Region}-{your-account-id}`

   1. Selecione **Custom S3** para especificar seu próprio bucket do Amazon S3 como local de armazenamento. Em seguida, insira o URI do Amazon S3.

   1. (Opcional) Para **Chave de criptografia**, especifique uma chave do KMS para criptografar artefatos do Canvas armazenados no local especificado.

1. (Opcional) Para o **Amazon Q Developer**, faça o seguinte:

   1. **Ative o Amazon Q Developer in SageMaker Canvas para ML em linguagem natural** para dar aos usuários permissões para aproveitar a assistência generativa de IA durante o fluxo de trabalho de ML no Canvas. Essa opção só concede permissões para consultar o Amazon Q Developer para obter ajuda com tarefas predeterminadas que podem ser concluídas na aplicação do Canvas.

   1. **Ative o bate-papo do Amazon Q Developer para AWS perguntas gerais** para dar aos usuários permissões para fazer consultas generativas de IA relacionadas aos AWS serviços.

1. (Opcional) Configure a seção **Processamento de dados grandes** se seus usuários planejam processar conjuntos de dados acima de 5 GB no Canvas. Para ter informações mais detalhadas sobre como configurar essas opções, consulte [Conceda aos usuários permissões para usar grandes volumes de dados em todo o ciclo de vida do ML](canvas-large-data-permissions.md).

1. (Opcional) Na seção de **configuração de permissões de ML Ops**, faça o seguinte:

   1. Deixe a opção **Habilitar implantação direta de modelos do Canvas** ativada para dar aos usuários permissões para implantar seus modelos do Canvas em um endpoint de SageMaker IA. Para obter mais informações sobre a implantação de modelos no Canvas, consulte [Implantar seus modelos em um endpoint](canvas-deploy-model.md).

   1. Deixe a opção **Ativar permissões de registro do registro de modelo para todos os usuários** ativada para dar aos usuários permissões para registrar a versão do modelo no registro do modelo de SageMaker IA (ela está ativada por padrão). Para obter mais informações, consulte [Registre uma versão do modelo no registro de modelos de SageMaker IA](canvas-register-model.md).

   1. Se você deixou a opção **Habilitar permissões de registro de modelo para todos os usuários** ativada, selecione **Registrar somente no Registro de modelos ou Registrar** **e aprovar modelo no Registro** de modelos.

1. (Opcional) Para a seção **Configuração de upload de arquivo local**, ative a opção **Habilitar upload de arquivo local** para dar aos usuários permissões para fazer upload de arquivos para o Canvas a partir de suas máquinas locais. Ativar essa opção anexa uma política de compartilhamento de recursos de origem cruzada (CORS) ao bucket do Amazon S3 especificado na **configuração de armazenamento do Canvas** (e substitui qualquer política CORS existente). Para saber mais sobre as permissões de upload de arquivos locais, consulte [Conceder aos seus usuários permissões para fazer upload de arquivos locais](canvas-set-up-local-upload.md).

1. (Opcional) Para a seção de **OAuth configurações**, faça o seguinte:

   1. Escolha **Adicionar OAuth configuração**.

   1. Em **Fonte de dados**, selecione sua fonte de dados.

   1. Em **Configuração secreta**, selecione **Criar um novo segredo** e insira as informações que você tem do seu provedor de identidade. Se você ainda não fez a OAuth configuração inicial com sua fonte de dados, consulte[Configure conexões com fontes de dados com OAuth](canvas-setting-up-oauth.md).

1. (Opcional) Para a **configuração dos Ready-to-use modelos Canvas**, faça o seguinte:

   1. Deixe a opção **Ativar Ready-to-use modelos do Canvas** ativada para dar aos usuários permissões para gerar previsões com Ready-to-use modelos no Canvas (ela está ativada por padrão). Essa opção também oferece permissões para conversar com modelos alimentados por IA generativa. Para obter mais informações, consulte [Modelos básicos de IA generativa no Canvas SageMaker](canvas-fm-chat.md).

   1. Deixe a opção **Habilitar consulta de documentos usando o Amazon Kendra** ativada para permitir que seus usuários usem modelos de base para consultar documentos armazenados em um índice do Amazon Kendra. Em seguida, insira os índices existentes aos quais você deseja conceder acesso. Para obter mais informações, consulte [Modelos básicos de IA generativa no Canvas SageMaker](canvas-fm-chat.md).

   1. Para a **função Amazon Bedrock**, selecione **Criar e use uma nova função de execução** para criar uma nova função de execução do IAM que tenha uma relação de confiança com o Amazon Bedrock. Essa função do IAM é assumida pelo Amazon Bedrock para ajustar grandes modelos de linguagem (LLMs) no Canvas. Se você já tiver uma função de execução com uma relação de confiança, selecione **Usar uma função de execução existente** e escolha sua função no menu suspenso. Para obter mais informações sobre como configurar manualmente as permissões para sua própria função de execução, consulte[Conceda aos usuários permissões para usar o Amazon Bedrock e os atributos de IA generativa no Canvas](canvas-fine-tuning-permissions.md).

1. Conclua a configuração do restante das configurações do domínio usando os [Use a configuração personalizada para Amazon SageMaker AI](onboard-custom.md) procedimentos.

**nota**  
Se você encontrar algum problema ao conceder permissões por meio do console, como permissões para Ready-to-use modelos, consulte o tópico[Solução de problemas com a concessão de permissões por meio do console de SageMaker IA](canvas-limits.md#canvas-troubleshoot-trusted-services).

Agora você deve ter um domínio de SageMaker IA configurado e todas as permissões do Canvas configuradas.

Você pode editar as permissões do Canvas para um domínio ou um usuário específico após a configuração inicial do domínio. As configurações individuais do usuário substituem as configurações do domínio. Para saber como editar suas permissões do Canvas nas configurações do domínio, consulte[Editar configurações de domínio](domain-edit.md).

### Dar a si mesmo permissões para usar atributos específicos no Canvas
<a name="canvas-prerequisites-permissions"></a>

As informações a seguir descrevem as permissões que você pode conceder a um usuário do Canvas permitir o uso de vários atributos e funcionalidades dentro do Canvas: Algumas dessas permissões podem ser concedidas durante a configuração do domínio, mas algumas exigem permissões ou configurações adicionais. Consulte as informações de permissões específicas para cada atributo que você quiser habilitar:
+ **Upload de arquivo local.** As permissões para upload de arquivos locais são ativadas por padrão nas permissões básicas do Canvas ao configurar seu Domínio. Se você não conseguir carregar arquivos locais da sua máquina para o SageMaker Canvas, você pode anexar uma política de CORS ao bucket do Amazon S3 que você especificou na configuração de armazenamento do Canvas. Se você permitiu que a SageMaker IA usasse o bucket padrão, o bucket seguiria o padrão `s3://sagemaker-{Region}-{your-account-id}` de nomenclatura. Para obter mais informações, consulte [Conceder permissões aos usuários para fazer upload de arquivos locais](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-set-up-local-upload.html).
+ **Modelos personalizados de predição de imagem e texto.** As permissões para criar modelos personalizados de predição de imagem e texto são ativadas por padrão nas permissões básicas do Canvas ao configurar seu Domínio. No entanto, se você tiver uma configuração personalizada do IAM e não quiser anexar a [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess)política à função de execução do IAM do seu usuário, deverá conceder explicitamente ao usuário as permissões necessárias. Para obter mais informações, consulte [Conceder aos seus usuários permissões para criar modelos personalizados de predição de imagens e textos](canvas-set-up-cv-nlp.md).
+ **Ready-to-use modelos e modelos de fundação.** Talvez você queira usar os Ready-to-use modelos do Canvas para fazer previsões para seus dados. Com as permissões dos Ready-to-use modelos, você também pode conversar com modelos generativos alimentados por IA. As permissões são ativadas por padrão ao configurar seu Domínio, ou você pode editar as permissões de um Domínio que você já criou. A opção de permissões Ready-to-use dos modelos Canvas adiciona a política de [AmazonSageMakerCanvasAIServicesacesso](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess) à sua função de execução. Para obter mais informações, consulte a [Conceitos básicos](canvas-ready-to-use-models.md#canvas-ready-to-use-get-started) seção da documentação dos Ready-to-use modelos.

  Para obter mais informações sobre como começar a usar modelos básicos de IA generativa, consulte[Modelos básicos de IA generativa no Canvas SageMaker](canvas-fm-chat.md).
+ **Ajuste os modelos de base.** Se quiser ajustar os modelos básicos no Canvas, você pode adicionar as permissões ao configurar seu domínio ou editar as permissões do domínio ou perfil do usuário após criar seu domínio. Você deve adicionar a política de [AmazonSageMakerCanvasAIServicesacesso](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess) à função do AWS IAM que você escolheu ao configurar o perfil do usuário e também deve adicionar uma relação de confiança com o Amazon Bedrock à função. Para obter instruções sobre como conceder essas permissões ao perfil do IAM, consulte [Conceda aos usuários permissões para usar o Amazon Bedrock e os atributos de IA generativa no Canvas](canvas-fine-tuning-permissions.md). 
+ **Envie previsões em lote para o Quick.** Talvez você queira [enviar *previsões em lote*](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-send-predictions.html) ou conjuntos de dados de previsões que você gera a partir de um modelo personalizado para o Quick for analysis. Em [QuickSight](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html), você pode criar e publicar painéis preditivos com seus resultados de previsão. Para obter instruções sobre como adicionar essas permissões à função do IAM do seu usuário do Canvas, consulte [Conceder a seus usuários permissões para enviar previsões para o Quick](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-quicksight-permissions.html).
+ **Implante modelos do Canvas em um endpoint de SageMaker IA.** SageMaker O AI Hosting oferece *endpoints* que você pode usar para implantar seu modelo para uso na produção. Você pode implantar modelos integrados no Canvas em um endpoint de SageMaker IA e, em seguida, fazer previsões programaticamente em um ambiente de produção. Para obter mais informações, consulte [Implantar seus modelos em um endpoint](canvas-deploy-model.md).
+ **Registre as versões do modelo no registro de modelos.** Talvez você queira registrar *versões* do seu modelo no [registro de modelos de SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry.html), que é um repositório para rastrear o status das versões atualizadas do seu modelo. Um cientista de dados ou uma MLOps equipe que trabalha no Registro de SageMaker Modelos pode visualizar as versões do seu modelo que você criou e aprová-las ou rejeitá-las. Em seguida, eles podem implantar sua versão do modelo na produção ou iniciar um fluxo de trabalho automatizado. As permissões de registro de modelos são ativadas por padrão para seu Domínio. Você pode gerenciar permissões no nível do perfil do usuário e conceder ou remover permissões para usuários específicos. Para obter mais informações, consulte [Registre uma versão do modelo no registro de modelos de SageMaker IA](canvas-register-model.md).
+ **Importe dados do Amazon Redshift.** Se quiser importar dados do Amazon Redshift, você deve dar a si mesmo permissões adicionais. Você deve adicionar a política `AmazonRedshiftFullAccess` gerenciada à função AWS do IAM escolhida ao configurar o perfil do usuário. Para obter instruções sobre como adicionar a política ao perfil, consulte [Conceder permissões aos usuários para importar dados do Amazon Redshift](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-redshift-permissions.html).

**nota**  
As permissões necessárias para importar por meio de outras fontes de dados, como Amazon Athena e plataformas SaaS, estão incluídas nas políticas 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 você seguiu as instruções de configuração padrão, essas políticas já devem estar anexadas ao seu perfil de execução. Para obter mais informações sobre essas fontes de dados e suas permissões, consulte [Conectar-se à fonte de dados](canvas-connecting-external.md).

## Etapa 1: Faça login no SageMaker Canvas
<a name="canvas-getting-started-step1"></a>

Quando a configuração inicial estiver concluída, você poderá acessar o SageMaker Canvas com qualquer um dos seguintes métodos, dependendo do seu caso de uso:
+ No [console do SageMaker AI](https://console.aws.amazon.com/sagemaker/), escolha o **Canvas** no painel de navegação esquerdo. Em seguida, na página **Canvas**, selecione seu usuário no menu suspenso e inicie a aplicação Canvas.
+ Abra o [SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html) e, na interface do Studio, acesse a página Canvas e inicie o aplicativo Canvas.
+ Use os métodos de SSO baseados em SAML 2.0 da sua organização, como o Okta ou o IAM Identity Center.

Quando você entra no SageMaker Canvas pela primeira vez, a SageMaker IA cria o aplicativo e um *espaço* de SageMaker IA para você. Os dados da aplicação do Canvas são armazenados no espaço. Para saber mais sobre espaços, consulte [Colaboração com espaços compartilhados](domain-space.md). O espaço consiste nas aplicações do seu perfil de usuário e em um diretório compartilhado para todos os dados das suas aplicações. Se você não quiser usar o espaço padrão criado pela SageMaker IA e preferir criar seu próprio espaço para armazenar dados do aplicativo, consulte a página[Armazene dados do aplicativo SageMaker Canvas em seu próprio espaço de SageMaker IA](canvas-spaces-setup.md).

## Etapa 2: Use o SageMaker Canvas para obter previsões
<a name="canvas-getting-started-step2"></a>

Após fazer login no Canvas, você pode começar a criar modelos e gerar predições para seus dados.

Você pode usar Ready-to-use modelos do Canvas para fazer previsões sem criar um modelo ou criar um modelo personalizado para seu problema comercial específico. Analise as informações a seguir para decidir se Ready-to-use os modelos ou modelos personalizados são os melhores para seu caso de uso.
+ **Ready-to-use modelos.** Com Ready-to-use modelos, você pode usar modelos pré-criados para extrair insights de seus dados. Os Ready-to-use modelos abrangem uma variedade de casos de uso, como detecção de linguagem e análise de documentos. Para começar a fazer previsões com Ready-to-use modelos, consulte[Ready-to-use modelos](canvas-ready-to-use-models.md).
+ **Modelos personalizados.** Com modelos personalizados, você pode criar uma variedade de tipos de modelos personalizados para fazer predições para seus dados. Use modelos personalizados se quiser criar um modelo treinado com base nos dados específicos da sua empresa e se quiser usar determinados recursos, [como avaliar o desempenho do seu modelo](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-evaluate-model.html). Para começar a criar um modelo personalizado, consulte [Modelos personalizados](canvas-custom-models.md).

# Tutorial: Crie um fluxo de trabalho end-to-end de aprendizado de máquina no SageMaker Canvas
<a name="canvas-end-to-end-machine-learning-workflow"></a>

Este tutorial orienta você em um fluxo de trabalho end-to-end de aprendizado de máquina (ML) usando o Amazon SageMaker Canvas. SageMaker O Canvas é uma interface visual sem código que você pode usar para preparar dados e treinar e implantar modelos de ML. Para o tutorial, você usa um conjunto de dados de táxi de Nova York para treinar um modelo que prevê o valor da tarifa para uma determinada viagem. Você obtém experiência prática com as principais tarefas de ML, como avaliar a qualidade dos dados e resolver problemas de dados, dividir os dados em conjuntos de treinamento e teste, treinamento e avaliação de modelos, fazer previsões e implantar seu modelo treinado — tudo dentro do aplicativo Canvas. SageMaker 

**Importante**  
Este tutorial pressupõe que você ou seu administrador tenham criado uma AWS conta. Para obter informações sobre como criar uma AWS conta, consulte [Introdução: Você é um AWS usuário iniciante?](https://docs.aws.amazon.com/accounts/latest/reference/welcome-first-time-user.html)

## Configurar
<a name="canvas-tutorial-setting-up"></a>

Um domínio da Amazon SageMaker AI é um local centralizado para gerenciar todos os seus ambientes e recursos de SageMaker IA da Amazon. Um domínio atua como um limite virtual para seu trabalho em SageMaker IA, fornecendo isolamento e controle de acesso para seus recursos de aprendizado de máquina (ML). 

Para começar a usar o Amazon SageMaker Canvas, você ou seu administrador devem navegar até o console de SageMaker IA e criar um domínio do Amazon SageMaker AI. Um domínio tem os recursos de armazenamento e computação necessários para você executar o SageMaker Canvas. Dentro do domínio, você configura o SageMaker Canvas para acessar seus buckets do Amazon S3 e implantar modelos. Use o procedimento a seguir para configurar um domínio rápido e criar um aplicativo SageMaker Canvas.

**Para configurar o SageMaker Canvas**

1. Navegue até o [console de SageMaker IA](https://console.aws.amazon.com/sagemaker).

1. Na navegação à esquerda, escolha SageMaker Canvas.

1. Escolha **Criar um domínio de SageMaker IA**.

1. Escolha **Configurar**. Pode levar alguns minutos para configurar o domínio.

O procedimento anterior usou uma configuração rápida de domínio. Você pode realizar uma configuração avançada para controlar todos os aspectos da configuração da conta, incluindo permissões, integrações e criptografia. Para obter mais informações sobre a configuração personalizada, consulte [Use a configuração personalizada para Amazon SageMaker AI](onboard-custom.md).

Por padrão, a configuração rápida do domínio fornece permissões para implantar modelos. Se você tiver permissões personalizadas configuradas por meio de um domínio padrão e precisar conceder manualmente as permissões de implantação do modelo, consulte[Gerenciamento de permissões](canvas-deploy-model.md#canvas-deploy-model-prereqs).

## Criação de fluxo
<a name="canvas-tutorial-flow-creation"></a>

O Amazon SageMaker Canvas é uma plataforma de aprendizado de máquina que permite aos usuários criar, treinar e implantar modelos de aprendizado de máquina sem grande experiência em programação ou aprendizado de máquina. Um dos recursos poderosos do Amazon SageMaker Canvas é a capacidade de importar e trabalhar com grandes conjuntos de dados de várias fontes, como o Amazon S3.

Para este tutorial, estamos usando o conjunto de dados de táxi de Nova York para prever o valor da tarifa para cada viagem usando um fluxo de dados do Amazon SageMaker Canvas Data Wrangler. O procedimento a seguir descreve as etapas para importar uma versão modificada do conjunto de dados de táxi de Nova York em um fluxo de dados.

**nota**  
Para melhorar o processamento, o SageMaker Canvas importa uma amostra dos seus dados. Por padrão, ele coleta amostras aleatoriamente de 50.000 linhas.

**Para importar o conjunto de dados de táxis de Nova York**

1. Na página inicial do SageMaker Canvas, escolha **Data Wrangler**.

1. Escolha **Importar dados**.

1. Selecione **Tabular**.

1. Escolha a caixa de ferramentas ao lado da fonte de dados.

1. Selecione **Amazon S3** no menu suspenso.

1. Para o **endpoint S3 de entrada**, especifique `s3://amazon-sagemaker-data-wrangler-documentation-artifacts/canvas-single-file-nyc-taxi-dataset.csv`

1. Escolha **Ir**.

1. Marque a caixa de seleção ao lado do conjunto de dados.

1. Escolha **Visualizar dados**.

1. Escolha **Salvar**.

## Relatório 1 de qualidade de dados e insights (amostra)
<a name="canvas-tutorial-data-quality-insights-report-1"></a>

Depois de importar um conjunto de dados para o Amazon SageMaker Canvas, você pode gerar um relatório de qualidade de dados e insights sobre uma amostra dos dados. Use-o para fornecer informações valiosas sobre o conjunto de dados. O relatório faz o seguinte:
+ Avalia a integridade do conjunto de dados
+ Identifica valores ausentes e valores discrepantes

Ele pode identificar outros possíveis problemas que podem afetar o desempenho do modelo. Ele também avalia o poder preditivo de cada atributo em relação à variável alvo, permitindo que você identifique os atributos mais relevantes para o problema que você está tentando resolver.

Podemos usar as informações do relatório para prever o valor da tarifa. Ao especificar a coluna **Valor da tarifa** como a variável-alvo e selecionar **Regressão** como o tipo de problema, o relatório analisará a adequação do conjunto de dados para prever valores contínuos, como preços de tarifas. O relatório deve revelar que atributos como **ano** e **hora\$1do\$1dia** têm baixo poder preditivo para a variável-alvo escolhida, fornecendo informações valiosas.

Use o procedimento a seguir para obter um relatório de Qualidade dos Dados e Insights sobre uma amostra de 50.000 linhas do conjunto de dados.

**Para obter um relatório sobre uma amostra**

1. Escolha **Obter informações de dados** na janela pop-up ao lado do nó **Tipos de dados**.

1. Em **Nome da análise**, especifique um nome para o relatório de insights.

1. Em **Tipo de problema**, escolha **Regressão.**

1. **Na coluna Alvo**, escolha **Valor da tarifa**.

1. Escolha **Criar**.

É possível revisar o relatório de Qualidade dos Dados e Insights em uma amostra de seus dados. O relatório indica que os atributos do **ano** e da **hora do dia** não são preditivos da variável-alvo, **valor da tarifa.**

Na parte superior da navegação, escolha o nome do fluxo de dados para voltar para ele.

## Exclua o ano e a hora do dia
<a name="canvas-tutorial-drop-year-and-hour-of-day"></a>

Estamos usando os insights do relatório para eliminar as colunas **ano** e **hora\$1do\$1dia** para otimizar o espaço de atributos e potencialmente melhorar o desempenho do modelo.

O Amazon SageMaker Canvas fornece uma interface e ferramentas fáceis de usar para realizar essas transformações de dados.

Use o procedimento a seguir para remover as colunas **ano** e **hora\$1do\$1dia do conjunto de** dados de táxis de Nova York usando a ferramenta Data Wrangler no Amazon Canvas. SageMaker 

1. Escolha o ícone ao lado de **Tipos de dados**.

1. Escolha **Adicionar etapa**.

1. Na barra de pesquisa, escreva **Excluir Coluna**.

1. Escolha **Gerenciar colunas**.

1. Escolha **Excluir coluna**.

1. Em **Colunas a serem excluídas**, selecione as colunas **ano** e **hora\$1do\$1dia**.

1. Escolha **Pré-Visualizar** para ver como sua transformação altera seus dados.

1. Escolha **Adicionar**.

Você pode usar o procedimento anterior como base para adicionar todas as outras transformações no SageMaker Canvas.

## Relatório de Qualidade de Dados e Insights 2 (conjunto de dados completo)
<a name="canvas-tutorial-data-quality-insights-report-2"></a>

Para o relatório de insights anterior, usamos uma amostra do conjunto de dados de táxis de Nova York. Para nosso segundo relatório, estamos realizando uma análise abrangente de todo o conjunto de dados para identificar possíveis problemas que afetam o desempenho do modelo.

Use o procedimento a seguir para criar um relatório de Qualidade de Dados e Insights sobre um conjunto de dados inteiro.

**Para obter um relatório sobre o conjunto de dados inteiro**

1. Escolha o ícone ao lado do nó **Eliminar colunas**.

1. Selecione **Obter insights de dados**.

1. Em **Nome da análise**, especifique um nome para o relatório de insights.

1. Em **Tipo de problema**, escolha **Regressão.**

1. **Na coluna Alvo**, escolha **Valor da tarifa**.

1. Em **Tamanho dos dados**, escolha Conjunto de **dados completo.**

1. Escolha **Criar**.

A seguir está uma imagem do relatório de insights:

![\[Linhas duplicadas, alvo distorcido e pontuação muito baixa do modelo rápido estão listadas como insightsP\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/canvas-tutorial-dqi-insights.png)


Ele mostra os seguintes problemas:
+ Linhas duplicadas
+ Alvo distorcido

Linhas duplicadas podem levar ao vazamento de dados, onde o modelo é exposto aos mesmos dados durante o treinamento e o teste. Eles podem levar a métricas de desempenho excessivamente otimistas. A remoção de linhas duplicadas garante que o modelo seja treinado em instâncias exclusivas, reduzindo o risco de vazamento de dados e melhorando a capacidade de generalização do modelo.

Uma distribuição distorcida da variável-alvo, nesse caso, a coluna **Valor da tarifa**, pode causar classes desequilibradas, em que o modelo pode se tornar tendencioso para a classe majoritária. Isso pode levar a um desempenho ruim em classes minoritárias, o que é particularmente problemático em cenários em que é importante prever com precisão instâncias raras ou sub-representadas.

## Lidar com problemas de qualidade de dados
<a name="canvas-tutorial-addressing-data-quality-issues"></a>

Para resolver esses problemas e preparar o conjunto de dados para modelagem, você pode pesquisar as seguintes transformações e aplicá-las:

1. Elimine duplicatas usando a transformação **Gerenciar linhas**.

1. **Lide com valores discrepantes** na coluna **Valor da tarifa** usando os **valores discrepantes numéricos de desvio padrão robusto**.

1. **Gerencie valores discrepantes** nas colunas **Distância da viagem** e **Duração da viagem** usando os **valores atípicos numéricos do desvio padrão**.

1. Use a **categoria Codificar** para codificar as colunas **Código de tarifa ID**, **Tipo de pagamento**, **Sinalizador extra** e **Sinalizador de pedágio** como flutuantes.

Se você não tiver certeza sobre como aplicar uma transformação, consulte [Exclua o ano e a hora do dia](#canvas-tutorial-drop-year-and-hour-of-day)

Ao abordar esses problemas de qualidade de dados e aplicar as transformações apropriadas, você pode melhorar a adequação do conjunto de dados para modelagem.

## Verificando a qualidade dos dados e a precisão rápida do modelo
<a name="canvas-tutorial-verifying-data-quality-and-quick-model-accuracy"></a>

Depois de aplicar as transformações para resolver problemas de qualidade de dados, como remover linhas duplicadas, criamos nosso relatório final de Qualidade de Dados e Insights. Esse relatório ajuda a verificar se as transformações aplicadas resolveram os problemas e se o conjunto de dados agora está em um estado adequado para modelagem.

Ao revisar o relatório final de qualidade de dados e insights, você não deve esperar que nenhum problema importante de qualidade de dados seja sinalizado. O relatório deve indicar que:
+ A variável alvo não está mais distorcida
+ Não há valores atípicos ou linhas duplicadas

Além disso, o relatório deve fornecer uma pontuação rápida do modelo com base em um modelo de linha de base treinado no conjunto de dados transformado. Essa pontuação serve como um indicador inicial da precisão e desempenho potenciais do modelo.

Use o procedimento a seguir para criar um relatório de Qualidade dos Dados e Insights.

**Para criar um relatório de Qualidade dos Dados e Insights**

1. Escolha o ícone ao lado do nó **Eliminar colunas**.

1. Selecione **Obter insights de dados**.

1. Em **Nome da análise**, especifique um nome para o relatório de insights.

1. Em **Tipo de problema**, escolha **Regressão.**

1. **Na coluna Alvo**, escolha **Valor da tarifa**.

1. Em **Tamanho dos dados**, escolha Conjunto de **dados completo.**

1. Escolha **Criar**.

## Divida os dados em conjuntos de dados de treinamento, teste e validação.
<a name="canvas-tutorial-split-data"></a>

Para treinar um modelo e avaliar seu desempenho, usamos a transformação de **dados Split** para dividir os dados em conjuntos de treinamento e teste.

Por padrão, o SageMaker Canvas usa uma divisão aleatória, mas você também pode usar os seguintes tipos de divisões:
+ Ordenada
+ Estratificado
+ Dividir por chave

Você pode alterar a **porcentagem de divisão** ou adicionar divisões.

Para este tutorial, use as configurações padrão. Você precisa clicar duas vezes no conjunto de dados para ver seu nome. O conjunto de dados de treinamento tem o nome **Conjunto de dados (treinamento)**.

Ao lado do nó de **Codificação ordinal**, aplique a transformação de **dados Split**.

## Modelos de treinamento
<a name="canvas-tutorial-train-model"></a>

Depois de dividir seus dados, você pode treinar um modelo. Esse modelo aprende com os padrões em seus dados. Você pode usá-lo para fazer predições ou descobrir insights.

SageMaker O Canvas tem compilações rápidas e compilações padrão. Use uma versão padrão para treinar o modelo de melhor desempenho em seus dados.

Antes de começar a treinar um modelo, você deve primeiro exportar o conjunto de dados de treinamento como um conjunto de dados do SageMaker Canvas.

**Para importar seus conjuntos de dados**

1. Ao lado do nó do conjunto de dados de treinamento, escolha o ícone e selecione **Exportar**.

1. Selecione o conjunto de **dados do SageMaker Canvas.**

1. Escolha **Exportar** para exportar o conjunto de dados.

Depois de criar um conjunto de dados, você pode treinar um modelo no conjunto de dados SageMaker Canvas que você criou. Para obter informações sobre como treinar um modelo, consulte [Criar um modelo personalizado de predição numérica ou categórica](canvas-build-model-how-to.md#canvas-build-model-numeric-categorical).

## Avalie o modelo e faça predições
<a name="canvas-tutorial-evaluate-model-and-make-predictions"></a>

Depois de treinar seu modelo de machine learning, é fundamental avaliar seu desempenho para garantir que ele atenda aos seus requisitos e tenha um bom desempenho em dados não vistos. O Amazon SageMaker Canvas fornece uma interface fácil de usar para avaliar a precisão do seu modelo, revisar suas previsões e obter informações sobre seus pontos fortes e fracos. Você pode usar os insights para tomar decisões informadas sobre sua implantação e possíveis áreas de melhoria.

Use o procedimento a seguir para avaliar um modelo antes de implantá-lo.

**Como avaliar um modelo**

1. Escolha **Meus modelos**.

1. Escolha o modelo que você criou.

1. Em **Versões**, selecione a versão correspondente ao modelo.

Agora é possível visualizar as métricas de avaliação do modelo.

Depois de compilar o modelo, você pode fazer predições sobre novos dados. Estamos usando o conjunto de dados de teste que criamos.

Para usar o conjunto de dados de teste para previsões, precisamos convertê-lo em um conjunto de dados do SageMaker Canvas. O conjunto de dados do SageMaker Canvas está em um formato que o modelo pode interpretar.

Use o procedimento a seguir para criar um conjunto de dados do SageMaker Canvas a partir do conjunto de dados de teste.

**Para criar um conjunto de dados do SageMaker Canvas**

1. Ao lado do **conjunto de dados (Teste)**, escolha o ícone do rádio.

1. Selecione **Exportar**.

1. Selecione o conjunto de **dados do SageMaker Canvas.**

1. Em **nome do conjunto de dados**, especifique o nome do conjunto de dados.

1. Escolha **Exportar**.

Use o procedimento a seguir para fazer predições. Isso pressupõe que você ainda esteja na página **Analisar**.

**Para fazer predições no conjunto de dados de teste**

1. Escolha **Prever**.

1. Escolha **Manual**.

1. Selecione o conjunto de dados que você exportou.

1. Em seguida, escolha **Gerar predições**.

1. Quando o SageMaker Canvas terminar de gerar as previsões, selecione o ícone à direita do conjunto de dados.

1. Escolha **Visualizar** para visualizar a alteração.

## Implantar um modelo
<a name="canvas-tutorial-deploy-a-model"></a>

Depois de avaliar seu modelo, você pode implantá-lo em um endpoint. Você pode enviar solicitações ao endpoint para obter predições.

Use o procedimento a seguir para implantar um visual. Isso pressupõe que você ainda esteja na página **Predict**.

**Para implantar o modelo**

1. Escolha **Implantar**.

1. Escolha **Criar implantação**.

1. Escolha **Implantar**.

## Limpeza
<a name="canvas-tutorial-cleaning-up"></a>

Você concluiu o tutorial com êxito. Para evitar cobranças adicionais, exclua os recursos que você não está mais usando.

Use o procedimento a seguir para excluir um endpoint que você criou. Isso pressupõe que você ainda esteja na página **Implantar**.

**Para excluir um endpoint**

1. Escolha o botão de opção à direita da sua implantação.

1. Selecione **Excluir implantação**.

1. Escolha **Excluir**.

Depois de excluir a implantação, exclua os conjuntos de dados que você criou no SageMaker Canvas. Use o procedimento a seguir para excluir um conjunto de dados.

**Para excluir os conjuntos de dados**

1. No painel de navegação à esquerda, escolha **Conjunto de Dados**.

1. Selecione o conjunto de dados que você analisou e o conjunto de dados sintético usado para predições.

1. Escolha **Excluir**.

Para evitar cobranças adicionais, você deve sair do SageMaker Canvas. Para obter mais informações, consulte [Sair do Amazon SageMaker Canvas](canvas-log-out.md).

# Configuração e gerenciamento de permissões do Amazon SageMaker Canvas (para administradores de TI)
<a name="canvas-setting-up"></a>

As páginas a seguir explicam como os administradores de TI podem configurar o Amazon SageMaker Canvas e conceder permissões aos usuários em suas organizações. Você aprende a definir a configuração de armazenamento, gerenciar a criptografia de dados e controlar o acesso a recursos específicos VPCs, como modelos básicos de IA generativos, integrar-se a outros AWS serviços, como o Amazon Redshift e muito mais. Seguindo essas etapas, você pode personalizar o SageMaker Canvas para seus usuários com base nos requisitos específicos da sua organização.

Você também pode configurar o SageMaker Canvas para seus usuários com AWS CloudFormation. Para obter mais informações, consulte [AWS:: SageMaker AI: :App](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-app.html) no *Guia do AWS CloudFormation usuário*.

**Topics**
+ [Conceder aos seus usuários permissões para fazer upload de arquivos locais](canvas-set-up-local-upload.md)
+ [Configure o SageMaker Canvas para seus usuários](setting-up-canvas-sso.md)
+ [Configurar seu armazenamento do Amazon S3](canvas-storage-configuration.md)
+ [Conceder permissões para armazenamento do Amazon S3 entre contas](canvas-permissions-cross-account.md)
+ [Conceda aos usuários permissões para usar grandes volumes de dados em todo o ciclo de vida do ML](canvas-large-data-permissions.md)
+ [Criptografe seus dados do SageMaker Canvas com AWS KMS](canvas-kms.md)
+ [Armazene dados do aplicativo SageMaker Canvas em seu próprio espaço de SageMaker IA](canvas-spaces-setup.md)
+ [Conceder aos seus usuários permissões para criar modelos personalizados de predição de imagens e textos](canvas-set-up-cv-nlp.md)
+ [Conceda aos usuários permissões para usar o Amazon Bedrock e os atributos de IA generativa no Canvas](canvas-fine-tuning-permissions.md)
+ [Atualize o SageMaker Canvas para seus usuários](canvas-update.md)
+ [Solicitar um aumento da cota](canvas-requesting-quota-increases.md)
+ [Conceder permissões aos usuários para importar dados do Amazon Redshift](canvas-redshift-permissions.md)
+ [Conceda a seus usuários permissões para enviar previsões para o Quick](canvas-quicksight-permissions.md)
+ [Gerenciamento de aplicações](canvas-manage-apps.md)
+ [Configurar o Amazon SageMaker Canvas em uma VPC sem acesso à Internet](canvas-vpc.md)
+ [Configure conexões com fontes de dados com OAuth](canvas-setting-up-oauth.md)

# Conceder aos seus usuários permissões para fazer upload de arquivos locais
<a name="canvas-set-up-local-upload"></a>

Se seus usuários estiverem fazendo upload de arquivos de suas máquinas locais para o SageMaker Canvas, você deve anexar uma configuração CORS (compartilhamento de recursos de origem cruzada) ao bucket do Amazon S3 que eles estão usando. Ao configurar ou editar o domínio SageMaker AI ou perfil de usuário, você pode especificar uma localização personalizada do Amazon S3 ou a localização padrão, que é um bucket Amazon S3 criado por SageMaker IA com um nome que usa o seguinte padrão:. `s3://sagemaker-{Region}-{your-account-id}` SageMaker O Canvas adiciona os dados dos seus usuários ao bucket sempre que eles fazem upload de um arquivo.

Para conceder aos usuários permissões para fazer upload de arquivos locais no bucket, você pode anexar uma configuração de CORS a ele usando um dos procedimentos a seguir. Você pode usar o primeiro método ao editar as configurações do seu domínio, permitindo que a SageMaker IA anexe a configuração do CORS ao bucket para você. Você também pode usar o primeiro método para editar um perfil de usuário em um domínio. O segundo método é o método manual, no qual você mesmo pode anexar a configuração do CORS ao bucket.

## SageMaker Método de configurações de domínio AI
<a name="canvas-set-up-local-upload-domain"></a>

Para conceder aos seus usuários permissões para fazer upload de arquivos locais, você pode editar a configuração da aplicação Canvas nas configurações do domínio. Isso anexa uma configuração Cross-Origin Resource Sharing (CORS) ao bucket Amazon S3 da configuração de armazenamento do Canvas e concede a todos os usuários no domínio permissão para carregar arquivos locais no Canvas. SageMaker Por padrão, a opção de permissões é ativada quando você configura um novo domínio, mas você pode ativá-la e desativá-la conforme necessário.

**nota**  
Se você tiver uma configuração CORS existente no bucket do Amazon S3 de configuração de armazenamento, ativar a opção de upload de arquivo local substituirá a configuração existente pela nova configuração.

O procedimento a seguir mostra como você pode ativar essa opção editando as configurações do domínio no console do SageMaker AI.

1. Acesse o console de SageMaker IA em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, selecione **Domínios**.

1. A partir da lista de Domínios, escolha o seu Domínio.

1. Na página de detalhes do domínio, selecione a guia **Configuração de aplicações**.

1. Vá para a seção **Canvas** e escolha **Editar**.

1. Ative a opção **Habilitar upload de arquivo local**. Isso anexa a configuração do CORS e concede permissões de upload de arquivos locais.

1. Selecione **Enviar**.

Os usuários no domínio especificado agora devem ter permissões locais de upload de arquivos.

Você também pode conceder permissões a perfis de usuário específicos em um domínio seguindo o procedimento anterior e acessando as configurações do perfil do usuário em vez das configurações gerais do domínio.

## Método de bucket do Amazon S3
<a name="canvas-set-up-local-upload-s3"></a>

Se você quiser anexar manualmente a configuração do CORS ao bucket SageMaker AI Amazon S3, use o procedimento a seguir.

1. Faça login na [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. Escolha o bucket. Se seu domínio usa o bucket padrão criado pela SageMaker IA, o nome do bucket usa o seguinte padrão:`s3://sagemaker-{Region}-{your-account-id}`.

1. Escolha **Permissões**.

1. Navegue para **Compartilhamento de recursos de origem cruzada (CORS)**.

1. Escolha **Editar**.

1. Adicione a política do CORS a seguir:

   ```
   [
       {
           "AllowedHeaders": [
               "*"
           ],
           "AllowedMethods": [
               "POST"
           ],
           "AllowedOrigins": [
               "*"
           ],
           "ExposeHeaders": []
       }
   ]
   ```

1. Escolha **Salvar alterações**.

No procedimento anterior, a política do CORS deve ter `"POST"` listado sob `AllowedMethods`.

Após passar pelo procedimento, você deve ter:
+ Um perfil do IAM atribuído a cada um dos seus usuários.
+ Permissões de tempo de execução do Amazon SageMaker Studio Classic para cada um dos seus usuários. SageMaker O Canvas usa o Studio Classic para executar os comandos de seus usuários.
+ Se os usuários estiverem fazendo upload de arquivos de suas máquinas locais, uma política de CORS será anexada ao bucket do Amazon S3.

Se seus usuários ainda não conseguirem carregar os arquivos locais após a atualização da política do CORS, o navegador pode estar armazenando em cache as configurações do CORS de uma tentativa anterior de upload. Se eles tiverem problemas, instrua-os a limpar o cache do navegador e tentar novamente.

# Configure o SageMaker Canvas para seus usuários
<a name="setting-up-canvas-sso"></a>

Para configurar o Amazon SageMaker Canvas, faça o seguinte:
+ Crie um domínio Amazon SageMaker AI.
+ Crie perfis de usuário para o domínio
+ Configure a autenticação única do Okta (Okta SSO, Single Sign On) para seus usuários.
+ Ative o compartilhamento de links para modelos.

Use o Okta Single-Sign On (Okta SSO) para conceder aos seus usuários acesso ao Amazon Canvas. SageMaker SageMaker O Canvas oferece suporte aos métodos SAML 2.0 SSO. As seções a seguir orientam você pelos procedimentos para configurar o Okta SSO.

Para configurar um domínio, consulte [Use a configuração personalizada para Amazon SageMaker AI](onboard-custom.md) e siga as instruções para configurar seu domínio usando a autenticação do IAM. Você pode usar as seguintes informações para ajudar a concluir o procedimento na seção:
+ Você pode ignorar a etapa de criação de projetos.
+ Não é necessário fornecer acesso a buckets adicionais do Amazon S3. Seus usuários podem usar o bucket padrão que fornecemos quando criamos uma função.
+ Para conceder aos usuários acesso para compartilhar seus cadernos com cientistas de dados, ative a **Configuração de compartilhamento do caderno**.
+ Use o Amazon SageMaker Studio Classic versão 3.19.0 ou posterior. Para obter informações sobre a atualização do Amazon SageMaker Studio Classic, consulte[Desligue e atualize o Amazon SageMaker Studio Classic](studio-tasks-update-studio.md).

Utilize o procedimento a seguir para configurar o Okta. Para todos os procedimentos a seguir, você especifica a mesmo perfil do IAM para `IAM-role`.

## Adicione o aplicativo SageMaker Canvas ao Okta
<a name="canvas-set-up-okta"></a>

Configure o método de login para o Okta.

1. Faça login no painel de administração do Okta.

1. Escolha **Adicionar aplicação**. Pesquise por **Federação de contas da AWS **.

1. Escolha **Adicionar**.

1. Opcional: altere o nome para **Amazon SageMaker Canvas**.

1. Escolha **Próximo**.

1. Escolha **SAML 2.0** como o método de **autenticação**.

1. Escolha **Metadados do provedor de identidade** para abrir o arquivo XML de metadados. Salve o arquivo localmente.

1. Selecione **Concluído**.

## Configurar federação de ID no IAM
<a name="set-up-id-federation-IAM"></a>

AWS Identity and Access Management (IAM) é o AWS serviço que você usa para obter acesso à sua AWS conta. Você obtém acesso AWS por meio de uma conta do IAM.

1. Faça login no AWS console.

1. Escolha **AWS Identity and Access Management (IAM)**.

1. Escolha **Provedores de identidades**.

1. Escolha **Criar provedor**.

1. Para **Configurar provedor**, especifique o seguinte:
   + **Tipo de provedor**: na lista suspensa, escolha **SAML**.
   + **Nome do provedor**: especifique **Okta**.
   + **Documento de metadados**: faça o upload do documento XML que você salvou localmente a partir da etapa 7 de [Adicione o aplicativo SageMaker Canvas ao Okta](#canvas-set-up-okta).

1. Encontre seu provedor de identidades em **Provedores de identidades**. Copie o valor do **ARN do provedor**.

1. Em **Perfis**, escolha o perfil do IAM que você está usando para acessar o Okta SSO.

1. Sob **Relações de confiança** do perfil do IAM, escolha **Editar relação de confiança**.

1. Modifique a política de relacionamento de confiança do IAM especificando o valor do **ARN do provedor** que você copiou e adicione a seguinte política:

------
#### [ 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. Para **Permissões**, adicione a seguinte política:

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

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "AmazonSageMakerPresignedUrlPolicy",
              "Effect": "Allow",
              "Action": [
                   "sagemaker:CreatePresignedDomainUrl"
              ],
              "Resource": "*"
         }
     ]
   }
   ```

------

## Configurar o SageMaker Canvas no Okta
<a name="canvas-configure-okta"></a>

Configure o Amazon SageMaker Canvas no Okta usando o procedimento a seguir.

Para configurar o Amazon SageMaker Canvas para usar o Okta, siga as etapas nesta seção. Você deve especificar nomes de usuário exclusivos para cada **SageMakerStudioProfileName**campo. Por exemplo, você pode usar `user.login` como um valor. Se o nome de usuário for diferente do nome do perfil do SageMaker Canvas, escolha um atributo de identificação exclusivo diferente. Por exemplo, você pode usar o número de identificação de um funcionário para o nome do perfil.

Para ver um exemplo de valores que você pode definir para **Atributos**, consulte o código a seguir ao procedimento.

1. Em **Diretório**, escolha **Grupos**.

1. Adicione um grupo com o seguinte padrão: `sagemaker#canvas#IAM-role#AWS-account-id`.

1. No Okta, abra a configuração de integração da aplicação **Federação de contas da AWS **.

1. Selecione **Entrar no** aplicativo de Federação de AWS Contas.

1. Escolha **Editar** e especifique o seguinte:
   + SAML 2.0
   + **Estado de retransmissão padrão** — https://*Region*.console.aws.amazon. com/sagemaker/home? região = *Region* studio/canvas/open \$1//. *StudioId* Você pode encontrar a ID do Studio Classic no console: [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)

1. Selecione **Atributos**.

1. Nos **SageMakerStudioProfileName**campos, especifique valores exclusivos para cada nome de usuário. Os nomes de usuário devem corresponder aos nomes de usuário que você criou no console da 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. Selecione **Tipo de ambiente**. Escolha ** AWS Regular**.
   + Se o tipo de ambiente não estiver listado, você poderá definir o URL do ACS no campo **URL do ACS**. Se o tipo de ambiente estiver listado, não será preciso inserir o URL do ACS

1. Para o **ARN do provedor de identidades**, especifique o ARN usado na etapa 6 do procedimento anterior.

1. Especifique a **Duração da sessão**.

1. Escolha **Participar de todos os perfis**.

1. Ative a **Usar mapeamento de grupos** especificando os seguintes campos:
   + **Filtro de aplicações**: `okta`
   + **Filtro de grupo**: `^aws\#\S+\#(?IAM-role[\w\-]+)\#(?accountid\d+)$`
   + **Padrão de valor do perfil**: `arn:aws:iam::$accountid:saml-provider/Okta,arn:aws:iam::$accountid:role/IAM-role`

1. Escolha **Salvar/Próximo**.

1. Em **Atribuições**, atribua a aplicação ao grupo que você criou.

## Adicione políticas opcionais sobre controle de acesso no IAM
<a name="canvas-optional-access"></a>

No IAM, você pode aplicar a política a seguir ao usuário administrador que cria os perfis de usuário.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateSageMakerStudioUserProfilePolicy",
            "Effect": "Allow",
            "Action": "sagemaker:CreateUserProfile",
            "Resource": "*",
            "Condition": {
                "ForAnyValue:StringEquals": {
                    "aws:TagKeys": [
                        "studiouserid"
                    ]
                }
            }
        }
    ]
}
```

------

Se você optar por adicionar a política anterior ao usuário administrador, deverá usar as seguintes permissões de [Configurar federação de ID no 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}"
                 }
            }
      }
  ]
}
```

------

# Configurar seu armazenamento do Amazon S3
<a name="canvas-storage-configuration"></a>

Quando você configura seu aplicativo SageMaker Canvas, o local de armazenamento padrão para artefatos do modelo, conjuntos de dados e outros dados do aplicativo é um bucket do Amazon S3 criado pelo Canvas. Esse bucket padrão do Amazon S3 segue o padrão de nomenclatura `s3://sagemaker-{Region}-{your-account-id}` e existe na mesma região da aplicação do Canvas. No entanto, você pode personalizar o local de armazenamento e especificar seu próprio bucket do Amazon S3 para armazenar dados da aplicação do Canvas. Talvez você queira usar seu próprio bucket do Amazon S3 para armazenar dados de aplicações por qualquer um dos seguintes motivos:
+ Sua organização tem convenções de nomenclatura internas para buckets do Amazon S3.
+ Você deseja habilitar o acesso entre contas a artefatos do modelo ou outros dados do Canvas.
+ Você quer estar em conformidade com as diretrizes de segurança internas, como restringir os usuários a buckets ou artefatos de modelo específicos do Amazon S3.
+ Você quer maior visibilidade e acesso aos registros produzidos pelo Canvas, independentemente do AWS console ou do SageMaker Studio Classic.

Ao especificar seu próprio bucket do Amazon S3, você pode ter maior controle sobre seu próprio armazenamento e estar em conformidade com sua organização. 

Para começar, você pode criar um novo domínio de SageMaker IA ou perfil de usuário ou atualizar um domínio ou perfil de usuário existente. Observe que as configurações do perfil do usuário substituem as configurações no nível do domínio. Por exemplo, você pode usar a configuração padrão do bucket no nível do domínio, mas você pode especificar um bucket personalizado do Amazon S3 para um usuário individual. Após especificar seu próprio bucket do Amazon S3 para o domínio ou perfil de usuário, o Canvas cria uma subpasta chamada `Canvas/<UserProfileName>` sob o URI de entrada do Amazon S3 e salva todos os artefatos gerados na aplicação do Canvas nessa subpasta.

**Importante**  
Se você atualizar um domínio ou perfil de usuário existente, não terá mais acesso aos artefatos do Canvas do local anterior. Seus arquivos ainda estão na antiga localidade do Amazon S3, mas você não pode mais visualizá-los no Canvas. A nova configuração entrará em vigor na próxima vez que você fizer login na aplicação.

Para obter mais informações sobre a concessão de acesso entre contas ao seu bucket do Amazon S3, consulte [Conceder permissões de objetos entre contas](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access-example4.html#access-policies-walkthrough-example4-overview) no *Guia do usuário do Amazon S3*.

As seções a seguir descrevem como especificar um bucket personalizado do Amazon S3 para sua configuração de armazenamento do Canvas. Se você estiver configurando um novo domínio de SageMaker IA (ou um novo usuário em um domínio), use o [Novo método de configuração de domínio](#canvas-storage-configuration-new-domain) ou [Novo método de configuração de perfil de usuário](#canvas-storage-configuration-new-user) o. Se você tem um perfil de usuário do Canvas existente e gostaria de atualizar a configuração de armazenamento do perfil, use [Método de usuário existente](#canvas-storage-configuration-existing-user).

## Antes de começar
<a name="canvas-storage-configuration-prereqs"></a>

Se você estiver especificando um URI do Amazon S3 de uma conta AWS diferente ou se estiver usando um bucket criptografado AWS KMS com, deverá configurar as permissões antes de continuar. Você deve conceder permissões AWS do IAM para garantir que o Canvas possa baixar e carregar objetos de e para o seu bucket. Para obter informações detalhadas sobre como conceder as permissões necessárias, consulte [Conceder permissões para armazenamento do Amazon S3 entre contas](canvas-permissions-cross-account.md).

Além disso, o URI final do Amazon S3 para a pasta de treinamento em seu local de armazenamento do Canvas deve ter 128 caracteres ou menos. O URI final do Amazon S3 consiste no caminho do seu bucket `s3://<your-bucket-name>/<folder-name>/` mais o caminho que o Canvas adiciona ao seu bucket: `Canvas/<user-profile-name>/Training`. Por exemplo, um caminho aceitável com menos de 128 caracteres é `s3://<amzn-s3-demo-bucket>/<machine-learning>/Canvas/<user-1>/Training`.

## Novo método de configuração de domínio
<a name="canvas-storage-configuration-new-domain"></a>

Se você estiver configurando um novo Domínio e aplicação do Canvas, use esta seção para configurar o local de armazenamento no nível do domínio. Essa configuração se aplica a todos os novos usuários que você cria no Domínio, a menos que você especifique um local de armazenamento diferente para perfis de usuário individuais.

Ao fazer uma **configuração padrão** para seu domínio, na página **Etapa 3: configurar aplicações - Opcional**, use o seguinte procedimento para a seção **Canvas**:

1. Para a **configuração de armazenamento do Canvas**, faça o seguinte:

   1. Selecione **Sistema gerenciado** se quiser definir o local como o bucket de SageMaker IA padrão que segue o padrão`s3://sagemaker-{Region}-{your-account-id}`.

   1. Selecione **Custom S3** para especificar seu próprio bucket do Amazon S3 como local de armazenamento. Em seguida, insira o URI do Amazon S3.

   1. (Opcional) Para **Chave de criptografia**, especifique uma chave do KMS para criptografar artefatos do Canvas armazenados no local especificado. 

1. Conclua a configuração do domínio e escolha **Enviar**.

Seu domínio agora está configurado para usar a localização do Amazon S3 que você especificou para o armazenamento do aplicativo SageMaker Canvas.

## Novo método de configuração de perfil de usuário
<a name="canvas-storage-configuration-new-user"></a>

Se você estiver configurando um novo perfil de usuário em seu domínio, use esta seção para configurar o local de armazenamento do usuário. Essa configuração substitui a configuração no nível do domínio.

Ao adicionar um perfil de usuário ao seu domínio, para a **Etapa 2: Configurar aplicações**, use o seguinte procedimento para a seção **Canvas**:

1. Para a **configuração de armazenamento do Canvas**, faça o seguinte:

   1. Selecione **Sistema gerenciado** se quiser definir o local como o bucket padrão criado pela SageMaker IA que segue o padrão`s3://sagemaker-{Region}-{your-account-id}`.

   1. Selecione **Custom S3** para especificar seu próprio bucket do Amazon S3 como local de armazenamento. Em seguida, insira o URI do Amazon S3.

   1. (Opcional) Para **Chave de criptografia**, especifique uma chave do KMS para criptografar artefatos do Canvas armazenados no local especificado. 

1. Conclua a configuração do perfil de usuário e escolha **Enviar**.

Seu perfil de usuário agora está configurado para usar a localização do Amazon S3 que você especificou para o armazenamento do aplicativo SageMaker Canvas.

## Método de usuário existente
<a name="canvas-storage-configuration-existing-user"></a>

Se você tem um perfil de usuário do Canvas existente e gostaria de atualizar o local de armazenamento do Amazon S3, você pode editar o domínio SageMaker AI ou as configurações do perfil do usuário. A alteração entrará em vigor na próxima vez que você fizer login na aplicação do Canvas.

**nota**  
Quando você altera o local de armazenamento de uma aplicação do Canvas existente, você perde o acesso aos artefatos do Canvas do local de armazenamento anterior. Seus arquivos ainda estão no antigo local do Amazon S3, mas você não pode mais visualizá-los no Canvas.

Lembre-se de que as configurações do perfil do usuário substituem as configurações gerais do domínio, portanto, você pode atualizar o local de armazenamento do Amazon S3 para perfis de usuário específicos sem alterá-lo para todos os usuários. Você pode atualizar a configuração de armazenamento de um domínio ou usuário existente usando os procedimentos a seguir.

------
#### [ Update an existing domain ]

Use o procedimento a seguir para atualizar a configuração de armazenamento de um domínio.

1. Abra o console de SageMaker IA em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. A partir da lista de Domínios, escolha o seu Domínio.

1. Na página de **Detalhes do domínio**, selecione a guia **Configurações da aplicação**.

1. Role para baixo até a seção **Canvas** e depois escolha **Editar**.

1. A página de **configurações do Edit Canvas** é aberta. Para a **configuração de armazenamento do Canvas**, faça o seguinte:

   1. Selecione **Sistema gerenciado** se quiser definir o local como o bucket padrão criado pela SageMaker IA que segue o padrão`s3://sagemaker-{Region}-{your-account-id}`.

   1. Selecione **Custom S3** para especificar seu próprio bucket do Amazon S3 como local de armazenamento. Em seguida, insira o URI do Amazon S3.

   1. (Opcional) Para **Chave de criptografia**, especifique uma chave do KMS para criptografar artefatos do Canvas armazenados no local especificado. 

1. Conclua todas as outras modificações que você deseja fazer no domínio e escolha **Enviar** para salvar suas alterações.

------
#### [ Update an existing user profile ]

Use o procedimento a seguir para atualizar a configuração de armazenamento de um perfil de usuário.

1. Abra o console de SageMaker IA em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. A partir da lista de **Domínios**, escolha o seu Domínio.

1. A partir da lista de usuários no Domínio, selecione o usuário cuja configuração você deseja editar.

1. Na página **Detalhes do usuário**, selecione **Editar**.

1. No painel de navegação, escolha **Configurações do Canvas**.

1. Para a **configuração de armazenamento do Canvas**, faça o seguinte:

   1. Selecione **Sistema gerenciado** se quiser definir o local como o bucket de SageMaker IA padrão que segue o padrão`s3://sagemaker-{Region}-{your-account-id}`.

   1. Selecione **Custom S3** para especificar seu próprio bucket do Amazon S3 como local de armazenamento. Em seguida, insira o URI do Amazon S3.

   1. (Opcional) Para **Chave de criptografia**, especifique uma chave do KMS para criptografar artefatos do Canvas armazenados no local especificado. 

1. Conclua todas as outras modificações que você deseja fazer no perfil do usuário e escolha **Enviar** para salvar suas alterações.

------

O local de armazenamento do seu perfil de usuário do Canvas agora deve estar atualizado. Na próxima vez que você fizer login na aplicação do Canvas, receberá uma notificação de que o local de armazenamento foi atualizado. Você perde o acesso a quaisquer artefatos anteriores que você criou no Canvas. Você ainda pode acessar os arquivos no Amazon S3, mas não pode mais visualizá-los no Canvas.

# Conceder permissões para armazenamento do Amazon S3 entre contas
<a name="canvas-permissions-cross-account"></a>

Ao configurar seu domínio de SageMaker IA ou perfil de usuário para que os usuários acessem o SageMaker Canvas, você especifica um local de armazenamento do Amazon S3 para artefatos do Canvas. Esses artefatos incluem cópias salvas de seus conjuntos de dados de entrada, artefatos de modelo, predições e outros dados da aplicação. Você pode usar o bucket Amazon S3 padrão criado por SageMaker IA ou pode personalizar o local de armazenamento e especificar seu próprio bucket para armazenar dados do aplicativo Canvas.

Você pode especificar um bucket do Amazon S3 em outra AWS conta para armazenar seus dados do Canvas, mas primeiro você deve conceder permissões entre contas para que o Canvas possa acessar o bucket.

As seções a seguir descrevem como conceder permissões ao Canvas para carregar e baixar objetos de e para um bucket do Amazon S3 em outra conta. Há permissões adicionais para quando seu bucket é criptografado com AWS KMS.

## Requisitos
<a name="canvas-permissions-cross-account-prereqs"></a>

Antes de começar, reveja os seguintes requisitos:
+ Os buckets do Amazon S3 entre contas (e quaisquer chaves AWS KMS associadas) devem estar na AWS mesma região do domínio de usuário ou perfil de usuário do Canvas.
+ O URI final do Amazon S3 para a pasta de treinamento em seu local de armazenamento do Canvas deve ter 128 caracteres ou menos. O URI final do S3 consiste no caminho do seu bucket `s3://<your-bucket-name>/<folder-name>/` mais o caminho que o Canvas adiciona ao seu bucket: `Canvas/<user-profile-name>/Training`. Por exemplo, um caminho aceitável com menos de 128 caracteres é `s3://<amzn-s3-demo-bucket>/<machine-learning>/Canvas/<user-1>/Training`.

## Permissões para buckets do Amazon S3 entre contas
<a name="canvas-permissions-cross-account-s3"></a>

A seção a seguir descreve as etapas básicas para conceder as permissões necessárias para que o Canvas possa acessar seu bucket do Amazon S3 em outra conta. Para obter instruções mais detalhadas, consulte o [Exemplo 2: Concessão de permissões de bucket entre contas](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access-example2.html) no *Guia do usuário do Amazon S3*.

1. Crie um bucket do Amazon S3, `bucketA`, na Conta A.

1. O usuário do Canvas existe em outra conta chamada Conta B. Nas etapas a seguir, nos referimos ao perfil do IAM do usuário do Canvas como `roleB` na Conta B.

   Dê permissão ao perfil do IAM `roleB` na Conta B para baixar (`GetObject`) e carregar (`PutObject`) objetos de e para `bucketA` na Conta A anexando uma política do IAM.

   Para limitar o acesso a uma pasta de bucket específica, defina o nome da pasta no elemento de recurso, como `arn:aws:s3:::<bucketA>/FolderName/*`. Para obter mais informações, consulte [Como posso usar as políticas do IAM para conceder acesso específico ao usuário a pastas específicas?](https://aws.amazon.com/premiumsupport/knowledge-center/iam-s3-user-specific-folder/)
**nota**  
Ações no nível do bucket, como `GetBucketCors` e `GetBucketLocation`, devem ser adicionadas aos recursos no nível do bucket, não às pastas.

   O exemplo de política do IAM a seguir concede as permissões necessárias para `roleB` acessar objetos em`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. Configure a política de bucket para `bucketA` na Conta A para conceder permissões ao perfil do IAM `roleB` na Conta B.
**nota**  
Os administradores também devem desativar o **Bloqueio de todo o acesso público** na seção **Permissões** do bucket.

   Veja a seguir um exemplo de política de bucket para `bucketA` conceder as permissões necessárias para `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"
           }
       ]
   }
   ```

------

Após configurar as permissões anteriores, seu perfil de usuário do Canvas na Conta B agora pode usar o bucket do Amazon S3 na Conta A como local de armazenamento para artefatos do Canvas.

## Permissões para buckets Amazon S3 de várias contas criptografados com AWS KMS
<a name="canvas-permissions-cross-account-s3-kms"></a>

O procedimento a seguir mostra como conceder as permissões necessárias para que o Canvas possa acessar seu bucket do Amazon S3 em outra conta criptografada com. AWS KMS As etapas são semelhantes ao procedimento acima, mas com permissões adicionais. Para obter mais informações sobre como conceder acesso a uma chave do KMS, consulte [Permitir que usuários de outras contas usem uma chave do KMS](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html) no *Guia do desenvolvedor do AWS KMS *.

1. Crie um bucket do Amazon S3 `bucketA` e uma chave do KMS do Amazon S3 `s3KmsInAccountA` na Conta A.

1. O usuário do Canvas existe em outra conta chamada Conta B. Nas etapas a seguir, nos referimos ao perfil do IAM do usuário do Canvas como `roleB` na Conta B.

   Dê permissão ao perfil do IAM `roleB` na Conta B para fazer o seguinte:
   + Fazer download (`GetObject`) e upload (`PutObject`) de objetos do `bucketA` na Conta A.
   + Acesse a AWS KMS chave `s3KmsInAccountA` na Conta A.

   O exemplo de política do IAM a seguir concede as permissões necessárias para `roleB` acessar objetos no `bucketA` e usar a chave do 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. Configure a política de bucket `bucketA` e a política de chave do `s3KmsInAccountA` na Conta A para conceder permissões ao perfil do IAM `roleB` na Conta B.

   Veja a seguir um exemplo de política de bucket para `bucketA` conceder as permissões necessárias para `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"
           }
       ]
   }
   ```

------

   O exemplo a seguir é uma política de chave que você anexa à chave do KMS `s3KmsInAccountA` na Conta A para conceder acesso a `roleB`. Para obter mais informações sobre como criar e anexar uma declaração de política de chave, consulte [Criar uma política de chave](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-overview.html) no *Guia do desenvolvedor do AWS KMS *.

   ```
   {
     "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": "*"
   }
   ```

Após configurar as permissões anteriores, seu perfil de usuário do Canvas na Conta B agora pode usar o bucket do Amazon S3 na Conta A como local de armazenamento para artefatos do Canvas.

# Conceda aos usuários permissões para usar grandes volumes de dados em todo o ciclo de vida do ML
<a name="canvas-large-data-permissions"></a>

Os usuários do Amazon SageMaker Canvas que trabalham com conjuntos de dados maiores que 10 GB no formato CSV ou 2,5 GB no formato Parquet exigem permissões específicas para o processamento de grandes dados. Essas permissões são essenciais para gerenciar dados em grande escala em todo o ciclo de vida do machine learning. Quando os conjuntos de dados excedem os limites estabelecidos ou a capacidade de memória local do aplicativo, o SageMaker Canvas usa o Amazon EMR Serverless para um processamento eficiente. Isso se aplica a:
+ Importação de dados: importação de grandes conjuntos de dados com amostragem randomizada ou estratificada.
+ Preparação de dados: exportação de dados processados do Data Wrangler no Canvas para o Amazon S3, para um novo conjunto de dados do Canvas ou para um modelo do Canvas.
+ Construção de modelos: modelos de treinamento em grandes conjuntos de dados.
+ Inferência: fazer predições em grandes conjuntos de dados.

Por padrão, o SageMaker Canvas usa o EMR Serverless para executar essas tarefas remotas com as seguintes configurações do aplicativo:
+ Capacidade pré-inicializada: não configurada
+ Limites de aplicação: capacidade máxima de 400 vCPUs, máximo simultâneo de 16 v CPUs por conta, 3000 GB de memória, 20000 GB de disco
+ Configuração do Metastore: AWS Glue Data Catalog
+ Registros do aplicativo: armazenamento AWS gerenciado (ativado), usando uma AWS chave de criptografia própria
+ Comportamento da aplicação: inicia automaticamente no envio do trabalho e para automaticamente após a aplicação ficar inativo por 15 minutos

Para habilitar esses grandes recursos de processamento de dados, os usuários precisam das permissões necessárias, que podem ser concedidas por meio das configurações de domínio do Amazon SageMaker AI. O método para conceder essas permissões depende de como seu domínio Amazon SageMaker AI foi configurado inicialmente. Abordaremos três cenários principais:
+ Configuração rápida de domínio
+ Configuração de domínio personalizada (com access/without VPC de Internet pública)
+ Configuração de domínio personalizada (com VPC e sem acesso público à Internet)

Cada cenário requer etapas específicas para garantir que os usuários tenham as permissões necessárias para utilizar o EMR Serverless para processamento de grandes dados em todo o ciclo de vida do aprendizado de máquina no Canvas. SageMaker 

## Cenário 1: configuração rápida do domínio
<a name="canvas-large-data-quick-setup"></a>

Se você usou a opção **Configuração rápida** ao criar seu domínio de SageMaker IA, siga estas etapas:

1. Navegue até as configurações de domínio do Amazon SageMaker AI:

   1. Abra o console Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

   1. No painel de navegação à esquerda, selecione **Domínios**.

   1. Selecione o seu domínio.

   1. Escolha a guia **Configurações da aplicação**.

   1. Role até a seção **Canvas** e escolha **Editar**.

1. Habilite o processamento de grandes dados:

   1. Na seção **Configuração de processamento de dados grandes**, ative **Habilitar o EMR com tecnologia sem servidor para processamento de dados grandes.**

   1. Crie ou selecione uma função EMR com tecnologia sem servidor:

      1. Escolha **Criar e usar uma nova função de execução** para criar um novo perfil do IAM que tenha uma relação de confiança com o EMR com tecnologia sem servidor e a [AWS política gerenciada: AmazonSageMakerCanvas EMRServerless ExecutionRolePolicy](security-iam-awsmanpol-canvas.md#security-iam-awsmanpol-AmazonSageMakerCanvasEMRServerlessExecutionRolePolicy) política anexada. Essa função do perfil do IAM é assumida pelo Canvas para criar trabalhos EMR sem servidor.

      1. Como alternativa, se você já tiver um perfil de execução com uma relação de confiança no EMR com tecnologia sem servidor, selecione **Usar uma função de execução existente** e escolha sua função no menu suspenso.
         + A função existente deve ter um nome que comece com o prefixo`AmazonSageMakerCanvasEMRSExecutionAccess-`.
         + A função selecionada também deve ter pelo menos as permissões descritas na [AWS política gerenciada: AmazonSageMakerCanvas EMRServerless ExecutionRolePolicy](security-iam-awsmanpol-canvas.md#security-iam-awsmanpol-AmazonSageMakerCanvasEMRServerlessExecutionRolePolicy) política.
         + A função deve ter uma política de confiança EMR com tecnologia sem servidor, conforme mostrado abaixo:

------
#### [ 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. (Opcional) Adicione permissões do Amazon S3 para buckets personalizados do Amazon S3:

   1. A política gerenciada pela Canvas concede automaticamente permissões de leitura e gravação para buckets do Amazon S3 com `sagemaker` ou `SageMaker AI` em seus nomes. Ele também concede permissões de leitura para objetos em buckets personalizados do Amazon S3 com a tag `"SageMaker": "true"`.

   1. Para buckets personalizados do Amazon S3 sem a tag necessária, adicione a seguinte política à sua função do EMR com tecnologia sem servidor:

   1. 

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "s3:GetObject",
                      "s3:PutObject",
                      "s3:DeleteObject"
                  ],
                  "Resource": [
                      "arn:aws:s3:::*"
                  ]
              }
          ]
      }
      ```

------

   1. Recomendamos que você defina o escopo das permissões para buckets específicos do Amazon S3 que você deseja que o Canvas acessem.

1. Salve suas alterações e reinicie seu aplicativo SageMaker Canvas.

## Cenário 2: configuração de domínio personalizado (com access/without VPC de Internet pública)
<a name="canvas-large-data-custom-no-vpc"></a>

Se você criou ou usa um domínio personalizado, siga as etapas 1 a 3 do Cenário 1 e, em seguida, execute estas etapas adicionais:

1. Adicione permissões para a `DescribeImages` operação do Amazon ECR à sua função de execução do Amazon SageMaker AI, pois o Canvas utiliza imagens públicas do Amazon ECR Docker para preparação de dados e treinamento de modelos:

   1. Faça login no AWS console e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. Escolha **Perfis**.

   1. Na caixa de pesquisa, pesquise sua função de execução de SageMaker IA pelo nome e selecione-a.

   1. Adicione a política a seguir à sua função de execução de SageMaker IA. Isso pode ser feito adicionando-a como uma nova política embutida ou anexando a declaração de política a uma existente. Observe que um perfil do IAM pode ter, no máximo, dez políticas anexadas.

------
#### [ 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. Salve suas alterações e reinicie seu aplicativo SageMaker Canvas.

## Cenário 3: configuração de domínio personalizado (com VPC e sem acesso público à Internet)
<a name="canvas-large-data-custom-vpc"></a>

Se você criou ou usa um domínio personalizado, siga todas as etapas do Cenário 2 e, em seguida, siga estas etapas adicionais:

1. Certifique-se de que suas sub-redes VPC sejam privadas:

   1. Verifique se a tabela de rotas de suas sub-redes não tem um mapeamento de entrada `0.0.0.0/0` para um Gateway da Internet.

1. Adicione permissões para criar interfaces de rede:

   1. Ao usar o SageMaker Canvas com o EMR Serverless para processamento de dados em grande escala, o EMR Serverless exige a capacidade de criar o Amazon ENIs EC2 para permitir a comunicação de rede entre os aplicativos do EMR Serverless e seus recursos de VPC.

   1. Adicione a política a seguir à sua função de execução do Amazon SageMaker AI. Isso pode ser feito adicionando-a como uma nova política embutida ou anexando a declaração de política a uma existente. Observe que um perfil do IAM pode ter, no máximo, dez políticas anexadas.

------
#### [ 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. (Opcional) Restrinja a criação de ENI a sub-redes específicas:

   1. Para proteger ainda mais sua configuração, restringindo a criação de ENIs a determinadas sub-redes em sua VPC, você pode marcar cada sub-rede com condições específicas.

   1. Use a seguinte política do IAM para garantir que os aplicativos EMR Serverless só possam criar o Amazon EC2 ENIs dentro das sub-redes e grupos de segurança permitidos:

      ```
      {
          "Sid": "AllowEC2ENICreationInSubnetAndSecurityGroupWithEMRTags",
          "Effect": "Allow", 
          "Action": [
              "ec2:CreateNetworkInterface"
          ],
          "Resource": [
              "arn:aws:ec2:*:*:subnet/*",
              "arn:aws:ec2:*:*:security-group/*"
          ],
          "Condition": {
              "StringEquals": {
                  "aws:ResourceTag/KEY": "VALUE"
              }
          }
      }
      ```

1. Siga as etapas na página [Configurar o Amazon SageMaker Canvas em uma VPC sem acesso à Internet](canvas-vpc.md) para definir o VPC endpoint para o Amazon S3, que é exigido pelo EMR Serverless e outros serviços usados pelo Canvas. AWS SageMaker 

1. Salve suas alterações e reinicie seu aplicativo SageMaker Canvas.

Seguindo essas etapas, você pode habilitar o processamento de grandes dados no SageMaker Canvas para várias configurações de domínio, incluindo aquelas com configurações personalizadas de VPC. Lembre-se de reiniciar seu aplicativo SageMaker Canvas depois de fazer essas alterações para aplicar as novas permissões.

# Criptografe seus dados do SageMaker Canvas com AWS KMS
<a name="canvas-kms"></a>

Você pode ter dados que deseja criptografar ao usar o Amazon SageMaker Canvas, como informações privadas da sua empresa ou dados de clientes. SageMaker O Canvas usa AWS Key Management Service para proteger seus dados. AWS KMS é um serviço que você pode usar para criar e gerenciar chaves criptográficas para criptografar seus dados. Para obter mais informações sobre AWS KMS, consulte [AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)o *Guia do AWS KMS desenvolvedor*.

O Amazon SageMaker Canvas oferece várias opções para criptografar seus dados. SageMaker O Canvas fornece criptografia padrão dentro do aplicativo para tarefas como criar seu modelo e gerar insights. Você também pode optar por criptografar os dados armazenados no Amazon S3 para proteger seus dados em repouso. SageMaker O Canvas suporta a importação de conjuntos de dados criptografados, para que você possa estabelecer um fluxo de trabalho criptografado. As seções a seguir descrevem como você pode usar a AWS KMS criptografia para proteger seus dados ao criar modelos com o SageMaker Canvas.

## Criptografe seus dados no Canvas SageMaker
<a name="canvas-kms-app-data"></a>

Com o SageMaker Canvas, você pode usar duas chaves de AWS KMS criptografia diferentes para criptografar seus dados no SageMaker Canvas, que você pode especificar ao [configurar seu domínio](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-onboard.html) usando a configuração de domínio padrão. Essas chaves são especificadas nas seguintes etapas de configuração do domínio:
+ **Etapa 3: configurar aplicações - (opcional)** - Ao configurar a seção de **configuração de armazenamento do Canvas**, você pode especificar uma **chave de criptografia**. Essa é uma chave KMS que o SageMaker Canvas usa para armazenamento a longo prazo de objetos de modelo e conjuntos de dados, que são armazenados no bucket Amazon S3 fornecido para seu domínio. Se estiver criando um aplicativo Canvas com a [CreateApp](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateApp.html)API, use o `S3KMSKeyId` campo para especificar essa chave.
+ **Etapa 6: Configurar o armazenamento** — O SageMaker Canvas usa uma chave para criptografar o espaço privado do Amazon SageMaker Studio criado para seu aplicativo Canvas, que inclui armazenamento temporário de aplicativos, visualizações e trabalhos computacionais (como criar modelos). Você pode usar a chave AWS gerenciada padrão ou especificar a sua própria. Se você especificar sua AWS KMS chave, os dados armazenados no `/home/sagemaker-user` diretório serão criptografados com sua chave. Se você não especificar uma AWS KMS chave, os dados internos `/home/sagemaker-user` serão criptografados com uma chave AWS gerenciada. Independentemente de você especificar uma AWS KMS chave, todos os dados fora do diretório de trabalho são criptografados com uma chave AWS gerenciada. Para saber mais sobre o espaço do Studio e o armazenamento da sua aplicação Canvas, consulte[Armazene dados do aplicativo SageMaker Canvas em seu próprio espaço de SageMaker IA](canvas-spaces-setup.md). Se estiver criando um aplicativo Canvas com a [CreateApp](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateApp.html)API, use o `KmsKeyID` campo para especificar essa chave.

As chaves anteriores podem ser iguais ou diferentes chaves KMS.

### Pré-requisitos
<a name="canvas-kms-app-data-prereqs"></a>

Para usar sua própria chave do KMS para qualquer uma das finalidades descritas anteriormente, você deve primeiro conceder permissão ao perfil do IAM do usuário para usar a chave. Em seguida, você pode especificar a chave do KMS ao configurar seu domínio.

A maneira mais simples de conceder permissão à sua função para usar a chave é modificar a política de chave. Use o procedimento a seguir para conceder ao seu perfil as permissões necessárias.

1. Abra o [console do AWS KMS](https://console.aws.amazon.com/kms/).

1. Na seção **Política de chave**, selecione **Alternar para visualização de política**.

1. Modifique a política da chave para conceder permissões para as ações `kms:GenerateDataKey` e `kms:Decrypt` ao perfil do IAM. Além disso, se você estiver modificando a política de chaves que criptografa o armazenamento da sua aplicação Canvas no espaço do Studio, conceda a `kms:CreateGrant` ação. É possível adicionar uma instrução semelhante à seguinte:

   ```
   {
     "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. Escolha **Salvar alterações**.

O método menos preferido é modificar o perfil do IAM do usuário para conceder ao usuário permissões para usar ou gerenciar a chave do KMS. Se você usar esse método, a política de chave do KMS também deverá permitir o gerenciamento de acesso por meio do IAM. Para saber como conceder permissão a uma chave do KMS por meio do perfil do IAM do usuário, consulte [Especificar chaves do KMS nas declarações de política do IAM](https://docs.aws.amazon.com/kms/latest/developerguide/cmks-in-iam-policies.html) no *Guia do desenvolvedor do AWS KMS .*

### Criptografe seus dados no aplicativo SageMaker Canvas
<a name="canvas-kms-app-data-app"></a>

A primeira chave KMS que você pode usar no SageMaker Canvas é usada para criptografar dados de aplicativos armazenados nos volumes do Amazon Elastic Block Store (Amazon EBS) e no Amazon Elastic File System SageMaker que a IA cria em seu domínio. SageMaker O Canvas criptografa seus dados com essa chave no aplicativo subjacente e nos sistemas de armazenamento temporário criados ao usar instâncias de computação para criar modelos e gerar insights. SageMaker O Canvas passa a chave para outros AWS serviços, como o Autopilot, sempre que o SageMaker Canvas inicia trabalhos com eles para processar seus dados.

Você pode especificar essa chave definindo o `KmsKeyID` na chamada de API `CreateDomain` ou ao fazer a configuração do domínio padrão no console. Se você não especificar sua própria chave KMS, a SageMaker AI usa uma chave KMS AWS gerenciada padrão para criptografar seus dados no SageMaker aplicativo Canvas.

Para especificar sua própria chave KMS para uso no aplicativo SageMaker Canvas por meio do console, primeiro configure seu domínio Amazon SageMaker AI usando a **configuração padrão**. Use o procedimento a seguir para concluir a **Seção de rede e armazenamento** do domínio.

1. Preencha as configurações desejadas da Amazon VPC.

1. Em **Chave de criptografia**, escolha **Inserir um ARN da chave do KMS**.

1. Para **ARN do KMS**, insira o ARN da sua chave do KMS, que deve ter um formato semelhante ao seguinte: `arn:aws:kms:example-region-1:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd`

### Criptografe seus dados do SageMaker Canvas salvos no Amazon S3
<a name="canvas-kms-app-data-s3"></a>

A segunda chave KMS que você pode especificar é usada para dados que o SageMaker Canvas armazena no Amazon S3. Essa chave KMS é especificada no `S3KMSKeyId` campo na chamada da `CreateDomain` API ou ao fazer a configuração de domínio padrão no console de SageMaker IA. SageMaker O Canvas salva duplicatas de seus conjuntos de dados de entrada, dados de aplicativos e modelos e dados de saída no bucket SageMaker AI S3 padrão da região para sua conta. O padrão de nomenclatura para esse bucket é`s3://sagemaker-{Region}-{your-account-id}`, e o SageMaker Canvas armazena dados na `Canvas/` pasta.





1. Ative a opção **Habilitar compartilhamento de recursos do caderno**.

1. Para **Local do S3 para recursos compartilháveis do caderno**, deixe o caminho padrão do Amazon S3. Observe que o SageMaker Canvas não usa esse caminho do Amazon S3; esse caminho do Amazon S3 é usado para notebooks Studio Classic.

1. Em **Chave de criptografia**, escolha **Inserir um ARN da chave do KMS**.

1. Para **ARN do KMS**, insira o ARN da sua chave do KMS, que deve ter um formato semelhante ao seguinte: `arn:aws:kms:us-east-1:111122223333:key/111aa2bb-333c-4d44-5555-a111bb2c33dd`

## Importar conjuntos de dados criptografados do Amazon S3
<a name="canvas-kms-datasets"></a>

Seus usuários podem ter conjuntos de dados criptografados com uma chave do KMS. Embora a seção anterior mostre como criptografar dados no SageMaker Canvas e dados armazenados no Amazon S3, você deve conceder permissões adicionais à função IAM do seu usuário se quiser importar dados do Amazon S3 que já estejam criptografados com. AWS KMS

Para conceder permissões ao usuário para importar conjuntos de dados criptografados do Amazon S3 SageMaker para o Canvas, adicione as seguintes permissões à função de execução do IAM que você usou para o perfil do usuário.

```
      "kms:Decrypt",
      "kms:GenerateDataKey"
```

Para saber como editar as permissões do IAM para um perfil, consulte [Adicionar e remover permissões de identidade do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) no *Guia do usuário do IAM*. Para obter mais informações sobre chaves do KMS, consulte [Políticas de chave no AWS Key Management Service](https://docs.aws.amazon.com//kms/latest/developerguide/key-policies.html) no *Guia do desenvolvedor do AWS KMS *.

## FAQs
<a name="canvas-kms-faqs"></a>

Consulte os seguintes itens de perguntas frequentes para obter respostas às perguntas mais frequentes sobre o AWS KMS suporte do SageMaker Canvas.

### P: O SageMaker Canvas retém minha chave KMS?
<a name="canvas-kms-faqs-1"></a>

R: Não. SageMaker O Canvas pode armazenar temporariamente sua chave em cache ou passá-la para outros AWS serviços (como o Autopilot), mas o SageMaker Canvas não retém sua chave KMS.

### P: Eu especifiquei uma chave do KMS ao configurar meu domínio. Por que meu conjunto de dados não foi importado no SageMaker Canvas?
<a name="canvas-kms-faqs-2"></a>

R: O perfil do IAM do seu usuário pode não ter permissões para usar essa chave do KMS. Para conceder permissões de usuário, consulte os [Pré-requisitos](#canvas-kms-app-data-prereqs). Outro possível erro é que você tem uma política de bucket em seu bucket do Amazon S3 que exige o uso de uma chave do KMS específica que não corresponde à chave do KMS especificada em seu domínio. Certifique-se de especificar a mesma chave do KMS para seu bucket Amazon S3 e seu domínio.

### P: Como faço para encontrar o bucket Amazon S3 de SageMaker IA padrão da região para minha conta?
<a name="canvas-kms-faqs-3"></a>

R: O bucket padrão do Amazon S3 segue o padrão de nomenclatura `s3://sagemaker-{Region}-{your-account-id}`. A `Canvas/` pasta nesse bucket armazena os dados do seu aplicativo SageMaker Canvas.

### P: Posso alterar o bucket SageMaker AI Amazon S3 padrão usado para armazenar dados do SageMaker Canvas?
<a name="canvas-kms-faqs-4"></a>

R: Não, a SageMaker IA cria esse bucket para você.

### P: O que o SageMaker Canvas armazena no bucket de SageMaker IA padrão do Amazon S3?
<a name="canvas-kms-faqs-5"></a>

R: O SageMaker Canvas usa o bucket SageMaker AI Amazon S3 padrão para armazenar duplicatas de seus conjuntos de dados de entrada, artefatos do modelo e saídas do modelo.

### P: Quais casos de uso são compatíveis com o uso de chaves KMS com o SageMaker Canvas?
<a name="canvas-kms-faqs-6"></a>

R: Com o SageMaker Canvas, você pode usar suas próprias chaves de criptografia AWS KMS para criar modelos de regressão, classificação binária e multiclasse e previsão de séries temporais, bem como para inferência em lote com seu modelo.

# Armazene dados do aplicativo SageMaker Canvas em seu próprio espaço de SageMaker IA
<a name="canvas-spaces-setup"></a>

Os dados do seu aplicativo Amazon SageMaker Canvas, como conjuntos de dados que você importa e artefatos do seu modelo, são armazenados em um espaço *privado do Amazon SageMaker Studio*. O espaço consiste em um volume de armazenamento para os dados da sua aplicação com 100 GB de armazenamento por perfil de usuário, o tipo do espaço (nesse caso, uma aplicação Canvas) e a imagem do contêiner da sua aplicação. Quando você configura o Canvas e inicia seu aplicativo pela primeira vez, a SageMaker IA cria um espaço privado padrão que é atribuído ao seu perfil de usuário e armazena seus dados do Canvas. Você não precisa fazer nenhuma configuração adicional para configurar o espaço porque a SageMaker IA cria automaticamente o espaço em seu nome. No entanto, se você não quiser usar o espaço padrão, você tem a opção de especificar um espaço criado por você mesmo. Isso pode ser útil se você quiser isolar seus dados. A página a seguir mostra como criar e configurar seu próprio espaço do Studio para armazenar dados da aplicação Canvas.

**nota**  
Você só pode configurar um espaço de estúdio personalizado para novas aplicações Canvas. Não é possível modificar a configuração do espaço para aplicações Canvas existentes.

## Antes de começar
<a name="canvas-spaces-setup-prereqs"></a>

Seu domínio ou perfil de usuário do Amazon SageMaker AI deve ter pelo menos 100 GB de armazenamento para criar e usar o aplicativo SageMaker Canvas.

Se você criou seu domínio por meio do console de SageMaker IA, armazenamento suficiente é provisionado por padrão e você não precisa realizar nenhuma ação adicional. Se você criou seu domínio ou perfil de usuário com o [CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html)ou [ CreateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html) APIs, certifique-se de definir o `MaximumEbsVolumeSizeInGb` valor como 100 GB ou mais. Para definir um valor maior de armazenamento, você pode criar um novo domínio ou perfil de usuário ou atualizar um domínio ou perfil de usuário existente usando o [UpdateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateDomain.html)ou [ UpdateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateUserProfile.html) APIs. 

## Criar um novo espaço
<a name="canvas-spaces-setup-new-space"></a>

Primeiro, crie um novo espaço do Studio configurado para armazenar dados da aplicação Canvas. Esse é o espaço que você especifica ao criar um nova aplicação Canvas na próxima etapa.

Para criar um espaço, você pode usar o AWS SDK para Python (Boto3) ou AWS CLI o.

------
#### [ SDK for Python (Boto3) ]

O exemplo a seguir mostra como usar o AWS SDK para Python (Boto3) `create_space` método para criar um espaço que você pode usar para aplicativos Canvas. Especifique esses parâmetros:
+ `DomainId`: especifique o ID do seu domínio de SageMaker IA. Para encontrar seu ID, você pode acessar o console de SageMaker IA em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)e localizar seu domínio na seção **Domínios**.
+ `SpaceName`: especifique um nome para o novo espaço.
+ `EbsVolumeSizeinGb`: especifique o tamanho do volume de armazenamento do seu espaço (em GB). O valor mínimo é `5` e o valor máximo é `16384`.
+ `SharingType`: especifique esse campo como `Private`. Para obter mais informações, consulte [Espaços do Amazon SageMaker Studio](studio-updated-spaces.md).
+ `OwnerUserProfileName`: especifique o nome do perfil do usuário. Para encontrar nomes de perfil de usuário associados a um domínio, você pode acessar o console de SageMaker IA em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)e localizar seu domínio na seção **Domínios**. Nas configurações do domínio, você pode ver os perfis de usuário.
+ `AppType`: especifique esse campo como `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 ]

O exemplo a seguir mostra como usar o AWS CLI `create-space` método para criar um espaço que você pode usar para aplicativos Canvas. Especifique esses parâmetros:
+ `domain-id`: Especifique o ID do seu domínio. Para encontrar seu ID, você pode acessar o console de SageMaker IA em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)e localizar seu domínio na seção **Domínios**.
+ `space-name`: especifique um nome para o novo espaço.
+ `EbsVolumeSizeinGb`: especifique o tamanho do volume de armazenamento do seu espaço (em GB). O valor mínimo é `5` e o valor máximo é `16384`.
+ `SharingType`: especifique esse campo como `Private`. Para obter mais informações, consulte [Espaços do Amazon SageMaker Studio](studio-updated-spaces.md).
+ `OwnerUserProfileName`: especifique o nome do perfil do usuário. Para encontrar nomes de perfil de usuário associados a um domínio, você pode acessar o console de SageMaker IA em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)e localizar seu domínio na seção **Domínios**. Nas configurações do domínio, você pode ver os perfis de usuário.
+ `AppType`: especifique esse campo como `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"}'
```

------

Agora você deve ter um espaço. Analise o nome do seu espaço para a próxima etapa.

## Criar um nova aplicação
<a name="canvas-spaces-setup-new-app"></a>

Depois de criar um espaço, crie um nova aplicação Canvas que especifique o espaço como seu local de armazenamento.

Para criar um novo aplicativo Canvas, você pode usar o AWS SDK para Python (Boto3) ou AWS CLI o.

**Importante**  
Você deve usar o AWS SDK para Python (Boto3) ou o AWS CLI para criar seu aplicativo Canvas. A especificação de um espaço personalizado ao criar aplicativos Canvas por meio do console SageMaker AI não é suportada.

------
#### [ SDK for Python (Boto3) ]

O exemplo a seguir mostra como usar o AWS SDK para Python (Boto3) `create_app` método para criar um novo aplicativo Canvas. Especifique esses parâmetros:
+ `DomainId`: especifique o ID do seu domínio de SageMaker IA.
+ `SpaceName`: use o nome do espaço que você criou na etapa anterior.
+ `AppType`: especifique esse campo como `Canvas`.
+ `AppName`: especifique `default` como o nome da aplicação.

```
response = client.create_app(  
    DomainId='<your-domain-id>',
    SpaceName='<your-space-name>',
    AppType='Canvas', 
    AppName='default'  
)
```

------
#### [ AWS CLI ]

O exemplo a seguir mostra como usar o AWS CLI `create-app` método para criar um novo aplicativo Canvas. Especifique esses parâmetros:
+ `DomainId`: especifique o ID do seu domínio de SageMaker IA. 
+ `SpaceName`: use o nome do espaço que você criou na etapa anterior.
+ `AppType`: especifique esse campo como `Canvas`.
+ `AppName`: especifique `default` como o nome da aplicação.

```
create-app
--domain-id <your-domain-id>
--space-name <your-space-name>
--app-type Canvas
--app-name default
```

------

Agora você deve ter um nova aplicação Canvas que usa um espaço personalizado do Studio como local de armazenamento para os dados da aplicação.

**Importante**  
Sempre que você excluir a aplicação Canvas (ou sair) e precisar recriar a aplicação, você deve fornecer seu espaço no `SpaceName` campo para garantir que o Canvas use seu espaço.

O espaço é anexado ao perfil de usuário que você especificou na configuração do espaço. Você pode excluir sua aplicação Canvas sem excluir o espaço, e os dados armazenados no espaço permanecem. Os dados armazenados em seu espaço só serão excluídos se você excluir seu perfil de usuário ou se excluir diretamente o espaço.

# Conceder aos seus usuários permissões para criar modelos personalizados de predição de imagens e textos
<a name="canvas-set-up-cv-nlp"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

No Amazon SageMaker Canvas, você pode criar [modelos personalizados](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html) para atender às suas necessidades comerciais específicas. Dois desses tipos de modelos personalizados são a predição de imagem com rótulo único e a predição de texto com várias categorias. As permissões para criar esses tipos de modelo estão incluídas na política AWS Identity and Access Management (IAM) chamada [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess), que a SageMaker IA atribui por padrão à função de execução do IAM do seu usuário se você deixar [as permissões básicas do Canvas ativadas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html#canvas-prerequisites). No entanto, se você estiver usando uma configuração personalizada do IAM, deverá adicionar explicitamente permissões à função de execução do IAM do seu usuário para que ele possa criar tipos personalizados de modelos de predição de imagens e textos. Para conceder as permissões necessárias para criar modelos de predição de imagens e textos, leia a seção a seguir para saber como anexar uma política de permissões mínimas ao seu perfil.

Para adicionar as permissões ao perfil do IAM do usuário, faça o seguinte:

1. Acesse o [console do IAM](https://console.aws.amazon.com/iamv2).

1. Escolha **Perfis**.

1. Na caixa de pesquisa, busque o perfil do IAM do usuário pelo nome e selecione-o.

1. Na página de perfilo do usuário, em **Permissões**, escolha **Adicionar permissões**.

1. Escolha **Criar política em linha**.

1. Selecione a guia JSON e, em seguida, cole a seguinte política de permissões mínimas no editor:

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

****  

   ```
   {
   "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "sagemaker:CreateAutoMLJobV2",
                   "sagemaker:DescribeAutoMLJobV2"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Escolha **Revisar política**.

1. Insira um **Nome** para a política.

1. Escolha **Criar política**.

Para obter mais informações sobre políticas AWS gerenciadas, consulte [Políticas gerenciadas e políticas em linha](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) no *Guia do usuário do IAM*.

# Conceda aos usuários permissões para usar o Amazon Bedrock e os atributos de IA generativa no Canvas
<a name="canvas-fine-tuning-permissions"></a>

Os recursos de IA generativa no Amazon SageMaker Canvas são baseados nos modelos básicos do Amazon Bedrock, que são grandes modelos de linguagem (LLMs) que têm a capacidade de entender e gerar texto semelhante ao humano. Esta página descreve como conceder as permissões necessárias para os seguintes recursos no SageMaker Canvas:
+ [Converse e compare modelos do Amazon Bedrock](canvas-fm-chat.md): Acesse e inicie bate-papos conversacionais com modelos do Amazon Bedrock por meio do Canvas. SageMaker 
+ [Use o atributo Chat para preparação de dados no Data Wrangler](canvas-chat-for-data-prep.md): use linguagem natural para explorar, visualizar e transformar seus dados. Esse atributo é desenvolvido pelo Anthropic Claude 2.
+ [Ajuste os modelos de base da Amazon Bedrock](canvas-fm-chat-fine-tune.md): ajuste um modelo de base da Amazon Bedrock em seus próprios dados para receber respostas personalizadas.

Para usar esses atributos, você deve primeiro solicitar acesso ao modelo específico do Amazon Bedrock que deseja usar. Em seguida, adicione as permissões necessárias AWS do IAM e uma relação de confiança com o Amazon Bedrock à função de execução do usuário. Para conceder as permissões para a função, é possível escolher um destes métodos:
+ Crie um novo domínio ou perfil de usuário do Amazon SageMaker AI e ative as permissões do Amazon Bedrock. Para obter mais informações, consulte [Começando a usar o Amazon SageMaker Canvas](canvas-getting-started.md).
+ Edite as configurações de um domínio ou perfil de usuário existente do Amazon SageMaker AI.
+ Adicione manualmente permissões e uma relação de confiança ao perfil do IAM de um domínio ou usuário.

## Etapa 1: adicionar acesso ao modelo Amazon Bedrock
<a name="canvas-bedrock-access"></a>

O acesso aos modelos do Amazon Bedrock não é concedido por padrão, então você deve acessar o console do Amazon Bedrock para solicitar acesso aos modelos da sua AWS conta.

Para saber como solicitar acesso a um modelo específico do Amazon Bedrock, siga o procedimento para **Adicionar acesso ao modelo** na página [Gerenciar o acesso aos modelos de base da Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html) no *Guia do usuário do Amazon Bedrock*.

## Etapa 2: atribuir permissões ao usuário do perfil do IAM
<a name="canvas-bedrock-iam-permissions"></a>

Ao configurar seu domínio ou perfil de usuário do Amazon SageMaker AI, a função de execução do IAM do usuário deve ter a [ AmazonSageMakerCanvasBedrockAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasBedrockAccess.html)política anexada, bem como uma relação de confiança com o Amazon Bedrock, para que seu usuário possa acessar os modelos do Amazon Bedrock a partir do SageMaker Canvas.

Você pode modificar as configurações do domínio e criar uma nova função de execução (à qual a SageMaker IA atribui as permissões necessárias para você) ou especificar uma função existente.

Como alternativa, você pode modificar manualmente as permissões de um perfil existente do IAM por meio do console do IAM.

Ambos os métodos estão descritos nas seções a seguir.

### Conceda permissões por meio das configurações do domínio
<a name="canvas-fine-tuning-permissions-console"></a>

Você pode editar suas configurações de domínio ou perfil de usuário para ativar a **configuração dos Ready-to-use modelos Canvas** e especificar uma função do Amazon Bedrock.

Para editar suas configurações de domínio e conceder acesso aos modelos Amazon Bedrock para usuários do Canvas no domínio, faça o seguinte:

1. Acesse o console de SageMaker IA em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, selecione **Domínios**.

1. A partir da lista de Domínios, escolha o seu Domínio.

1. Escolha a guia **Configurações da aplicação**.

1. Na seção **Logs**, selecione **Editar**.

1. A página de **configurações do Edit Canvas** é aberta. Para a seção de **configuração Ready-to-use dos modelos Canvas**, faça o seguinte:

   1. Ative a **opção Ativar Ready-to-use modelos do Canvas**.

   1. Para a **função Amazon Bedrock**, selecione **Criar e use uma nova função de execução para criar uma nova função** de execução do IAM que tenha a [ AmazonSageMakerCanvasBedrockAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasBedrockAccess.html)política anexada e uma relação de confiança com o Amazon Bedrock. Esse perfil do IAM é presumido pelo Amazon Bedrock quando você acessa os modelos do Amazon Bedrock, usa o atributo de chat para preparação de dados ou ajustar os modelos do Amazon Bedrock no Canvas. Se você já tiver uma função de execução com uma relação de confiança, selecione **Usar uma função de execução existente** e escolha sua função no menu suspenso.

1. Escolha **Enviar** para salvar as alterações.

Seus usuários devem ter as permissões necessárias para acessar os modelos do Amazon Bedrock, usar o atributo de chat para preparação de dados e ajustar os modelos do Amazon Bedrock no Canvas.

Você pode usar o mesmo procedimento acima para editar as configurações de um usuário individual, exceto acessar o perfil do usuário individual na página do domínio e editar as configurações do usuário. As permissões concedidas a um usuário individual não se aplicam a outros usuários no domínio, enquanto as permissões concedidas por meio das configurações do domínio se aplicam a todos os perfis de usuário no domínio.

Para obter instruções sobre como editar suas configurações de Domínio, consulte [Visualizar e editar Domínios](https://docs.aws.amazon.com/sagemaker/latest/dg/domain-view-edit.html).

### Conceda permissões manualmente por meio do IAM
<a name="canvas-fine-tuning-permissions-manual"></a>

Você pode conceder manualmente aos usuários permissões para acessar e ajustar modelos do Amazon Bedrock no Canvas adicionando permissões ao perfil do IAM especificado para o domínio ou perfil do usuário. A função do IAM deve ter a [ AmazonSageMakerCanvasBedrockAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasBedrockAccess.html)política anexada e uma relação de confiança com o Amazon Bedrock.

A seção a seguir mostra como anexar a política ao seu perfil do IAM e criar uma relação de confiança com o Amazon Bedrock.

Primeiro, anote o perfil do IAM do seu domínio ou perfil de usuário. Observe que as permissões concedidas a um usuário individual não se aplicam a outros usuários no domínio, enquanto as permissões concedidas por meio do domínio se aplicam a todos os perfis de usuário no domínio.

Para configurar o perfil do IAM e conceder permissões para ajustar os modelos básicos no Canvas, faça o seguinte:

1. Acesse o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação à esquerda, selecione **Perfis**.

1. Pesquise o perfil do IAM do usuário pelo nome na lista de perfis e selecione-o.

1. Na guia **Permissões**, escolha **Adicionar permissões**. Da lista suspensa, escolha **Anexar políticas**.

1. Pesquise a política `AmazonSageMakerCanvasBedrockAccess` gerenciada e selecione-a.

1. Escolha **Adicionar permissões**.

1. Na página Detalhes do perfil do IAM, escolha a guia **Relações de confiança**.

1. Selecione **Edit trust policy** (Editar política de confiança).

1. No editor de políticas, encontre a opção **Adicionar uma opção de entidade principal** no painel direito e escolha **Adicionar**.

1. Na caixa de diálogo, em **Tipo de entidade principal**, selecione **AWS serviços**.

1. Para **ARN**, insira. **bedrock.amazonaws.com**

1. Selecione **Adicionar entidade principal**.

1. Escolha **Atualizar política**.

Agora você deve ter uma função do IAM que tenha a [ AmazonSageMakerCanvasBedrockAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasBedrockAccess.html)política anexada e uma relação de confiança com o Amazon Bedrock. Para obter informações sobre políticas AWS gerenciadas, consulte [Políticas gerenciadas e políticas em linha](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) no *Guia do usuário do IAM*.

# Atualize o SageMaker Canvas para seus usuários
<a name="canvas-update"></a>

Você pode atualizar para a versão mais recente do Amazon SageMaker Canvas como usuário ou administrador de TI. Você pode atualizar o Amazon SageMaker Canvas para um único usuário por vez.

Para atualizar o aplicativo Amazon SageMaker Canvas, você deve excluir a versão anterior.

**Importante**  
A exclusão da versão anterior do Amazon SageMaker Canvas não exclui os dados ou modelos que os usuários criaram.

Use o procedimento a seguir para fazer login AWS, abrir o domínio do Amazon SageMaker AI e atualizar o Amazon SageMaker Canvas. Os usuários podem começar a usar o aplicativo SageMaker Canvas quando fizerem login novamente.

1. Faça login no console do Amazon SageMaker AI no [Amazon SageMaker Runtime](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Na página **Domínios**, escolha o seu Domínio.

1. Na lista de **Perfis de usuário**, escolha um perfil de usuário.

1. Para a lista **Aplicações**, encontre a aplicação do Canvas (o **Tipo de aplicação** indica **Canvas**) e escolha **Excluir aplicação**.

1. Preencha a caixa de diálogo e escolha **Confirmar ação**.

A imagem a seguir mostra a página de perfil do usuário e destaca a ação **Excluir aplicação** do procedimento anterior.

![\[Captura de tela do perfil de usuário com a ação de Excluir aplicação destacada.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-update-app-1.png)


# Solicitar um aumento da cota
<a name="canvas-requesting-quota-increases"></a>

Seus usuários podem usar AWS recursos em quantidades que excedam as especificadas por suas cotas. Se seus usuários tiverem recursos limitados e encontrarem erros no SageMaker Canvas, você pode solicitar um aumento de cota para eles.

[Para obter mais detalhes sobre cotas de SageMaker IA e como solicitar um aumento de cota, consulte Cotas.](https://docs.aws.amazon.com/sagemaker/latest/dg/regions-quotas.html#regions-quotas-quotas)

O Amazon SageMaker Canvas usa os seguintes serviços para processar as solicitações de seus usuários:
+ Piloto SageMaker automático da Amazon
+ Domínio Amazon SageMaker Studio Classic

Para obter uma lista das cotas disponíveis para operações do SageMaker Canvas, consulte os [endpoints e cotas do Amazon SageMaker AI](https://docs.aws.amazon.com//general/latest/gr/sagemaker.html).

## Solicitar um aumento de instâncias para criar modelos personalizados
<a name="canvas-requesting-quota-increases-instances"></a>

Ao criar um modelo personalizado, se você encontrar um erro durante a análise pós-criação que exija que você aumente sua cota para instâncias `ml.m5.2xlarge`, use as informações a seguir para resolver o problema.

Você deve aumentar a cota de endpoint do SageMaker AI Hosting para o tipo de `ml.m5.2xlarge` instância para um valor diferente de zero em sua conta. AWS Depois de criar um modelo, o SageMaker Canvas hospeda o modelo em um endpoint de hospedagem de SageMaker IA e usa o endpoint para gerar a análise pós-construção. Se você não aumentar a cota de conta padrão de 0 para `ml.m5.2xlarge` instâncias, o SageMaker Canvas não poderá concluir essa etapa e gerará um erro durante a análise pós-construção.

Para solicitar um aumento da cota, consulte [Solicitar um aumento de cota](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) no *Guia do usuário do Service Quotas*.

# Conceder permissões aos usuários para importar dados do Amazon Redshift
<a name="canvas-redshift-permissions"></a>

Seus usuários podem ter conjuntos de dados armazenados no Amazon Redshift. Antes que os usuários possam importar dados do Amazon Redshift para o SageMaker Canvas, você deve adicionar a política `AmazonRedshiftFullAccess` gerenciada à função de execução do IAM que você usou para o perfil do usuário e adicionar o Amazon Redshift como principal de serviço à política de confiança da função. Você também deve associar a função de execução do IAM ao seu cluster do Amazon Redshift. Conclua os procedimentos nas seções a seguir para dar aos usuários as permissões necessárias para importar dados do Amazon Redshift.

## Adicionar permissões do Amazon Redshift ao seu perfil do IAM
<a name="canvas-redshift-permissions-iam-role"></a>

Você deve conceder permissões do Amazon Redshift ao perfil do IAM especificado em seu perfil de usuário.

Para adicionar a política `AmazonRedshiftFullAccess` ao perfil do IAM do usuário, faça o seguinte:

1. Faça login no console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Escolha **Perfis**.

1. Na caixa de pesquisa, busque o perfil do IAM do usuário pelo nome e selecione-o.

1. Na página de perfilo do usuário, em **Permissões**, escolha **Adicionar permissões**.

1. Escolha **Anexar políticas**.

1. Pesquise a política `AmazonRedshiftFullAccess` gerenciada e selecione-a.

1. Escolha **Anexar políticas** para anexar a política ao perfil.

Depois de anexar a política, a seção **Permissões** do perfil agora deve incluir `AmazonRedshiftFullAccess`.

Para adicionar o Amazon Redshift como entidade principal de serviço ao perfil do IAM, faça o seguinte:

1. Na mesma página do perfil do IAM, em **Relações de confiança**, escolha **Editar política de confiança**.

1. No editor **Editar política de confiança**, atualize a política de confiança para adicionar o Amazon Redshift como entidade principal de serviço. Um novo perfil do IAM que permite ao Amazon Redshift acessar outros serviços da AWS em seu nome tem uma relação de confiança da seguinte maneira:

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

****  

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

------

1. Depois de editar a política de confiança, escolha **Atualizar política**.

Agora você deve ter uma função do IAM que tenha a política `AmazonRedshiftFullAccess` associada a ela e uma relação de confiança estabelecida com o Amazon Redshift, dando aos usuários permissão para importar dados do Amazon Redshift para o Canvas. SageMaker Para obter mais informações sobre políticas AWS gerenciadas, consulte [Políticas gerenciadas e políticas em linha](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) no *Guia do usuário do IAM*.

## Associar o perfil do IAM ao seu cluster do Amazon Redshift
<a name="canvas-redshift-permissions-cluster"></a>

Nas configurações do seu cluster do Amazon Redshift, você deve associar o perfil do IAM ao qual você concedeu permissões na seção anterior.

Para associar um perfil do IAM ao cluster, faça o seguinte:

1. Faça login no console do Amazon Redshift em. [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)

1. No menu de navegação, escolha **Clusters** e escolha o nome do cluster que você deseja atualizar.

1. No menu suspenso **Ações**, escolha **Gerenciar perfis do IAM**. A página de **Permissões do cluster** será exibida.

1. Em **Perfis do IAM disponíveis**, insira o ARN ou o nome do perfil do IAM, ou escolha o perfil do IAM na lista.

1. Depois, escolha **Associar perfil do IAM ** para adicioná-lo à lista de **Perfis do IAM associados**.

1. Escolha **Concluído** para associar o perfil do IAM ao cluster.

O Amazon Redshift modifica o cluster para concluir a alteração, e o perfil do IAM para o qual você concedeu anteriormente as permissões do Amazon Redshift agora está associado ao seu cluster do Amazon Redshift. Seus usuários agora têm as permissões necessárias para importar dados do Amazon Redshift para o Canvas SageMaker .

# Conceda a seus usuários permissões para enviar previsões para o Quick
<a name="canvas-quicksight-permissions"></a>

Você deve conceder aos seus usuários do SageMaker Canvas permissões para enviar previsões em lote para o Quick. No Quick, os usuários podem criar análises e relatórios com um conjunto de dados e preparar painéis para compartilhar seus resultados. Para obter mais informações sobre o envio de previsões QuickSight para análise, consulte[Envie previsões para o Quick](canvas-send-predictions.md).

Para conceder as permissões necessárias para compartilhar previsões em lote com os usuários em QuickSight, você deve adicionar uma política de permissões à função de execução AWS Identity and Access Management (IAM) que você usou para o perfil do usuário. A seção a seguir mostra como anexar uma política de permissões mínimas ao seu perfil.

**Adicione a política de permissões ao seu perfil do IAM**

**Para adicionar a política de permissões, use o seguinte procedimento:**

1. Faça login no console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Escolha **Perfis**.

1. Na caixa de pesquisa, busque o perfil do IAM do usuário pelo nome e selecione-o.

1. Na página de perfilo do usuário, em **Permissões**, escolha **Adicionar permissões**.

1. Escolha **Criar política em linha**.

1. Selecione a guia JSON e, em seguida, cole a seguinte política de permissões mínimas no editor: Substitua os espaços reservados `<your-account-number>` pelo número da sua conta da 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. Escolha **Revisar política**.

1. Insira um **Nome** para a política.

1. Escolha **Criar política**.

Agora você deve ter uma política de IAM gerenciada pelo cliente anexada à sua função de execução que conceda aos usuários do Canvas as permissões necessárias para enviar previsões em lote aos usuários em. QuickSight

# Gerenciamento de aplicações
<a name="canvas-manage-apps"></a>

As seções a seguir descrevem como você pode gerenciar seus aplicativos SageMaker Canvas. Você pode visualizar, excluir ou reiniciar seus aplicativos na seção **Domínios** do console de IA. SageMaker 

**Topics**
+ [Verificar se há aplicações ativos](canvas-manage-apps-active.md)
+ [Deleta a aplicação](canvas-manage-apps-delete.md)
+ [Reiniciar uma aplicação](canvas-manage-apps-relaunch.md)

# Verificar se há aplicações ativos
<a name="canvas-manage-apps-active"></a>

Para verificar se você tem algum aplicativo SageMaker Canvas em execução ativa, use o procedimento a seguir.

1. Abra o [console de SageMaker IA](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação esquerdo, escolha **Painel**.

1. Na seção **LCNC**, há uma linha para o Canvas que informa quantos aplicativos ativos estão sendo executados. Escolha o número para ver a lista de aplicativos.

A coluna **Status** exibe o status da aplicação, como **Pronto**, **Pendente** ou **Excluído**. Se o aplicativo estiver **pronto**, sua instância de espaço de trabalho do SageMaker Canvas estará ativa. Você pode excluir o aplicativo do console ou reabrir o Canvas e sair.

# Deleta a aplicação
<a name="canvas-manage-apps-delete"></a>

Se você quiser encerrar sua instância do espaço de trabalho do SageMaker Canvas, você pode sair do aplicativo SageMaker Canvas ou excluir seu aplicativo do console SageMaker AI. Uma *instância de espaço de trabalho* é dedicada para seu uso desde o momento em que você começa a usar o SageMaker Canvas até o ponto em que você para de usá-lo. A exclusão da aplicação só encerra a instância do espaço de trabalho e interrompe as cobranças da instância do espaço de trabalho. Modelos e conjuntos de dados não são afetados, mas as tarefas de criação rápida são reiniciadas automaticamente quando você faz login novamente.

Para excluir seu aplicativo Canvas pelo AWS console, primeiro feche a guia do navegador na qual seu aplicativo Canvas foi aberto. Em seguida, use o procedimento a seguir para excluir seu aplicativo SageMaker Canvas.

1. Abra o [console de SageMaker IA](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Na página **Domínios**, escolha o seu Domínio.

1. Na página de **detalhes do domínio**, escolha **Recursos**.

1. Em **Aplicativos**, encontre o aplicativo que diz **Canvas** na coluna **Tipo de aplicativo**.

1. Marque a caixa de seleção ao lado do aplicativo Canvas e escolha **Parar**.

Agora você interrompeu o aplicativo com sucesso e encerrou a instância do espaço de trabalho.

Você também pode encerrar a instância do espaço de trabalho [saindo](canvas-log-out.md) do aplicativo SageMaker Canvas.

# Reiniciar uma aplicação
<a name="canvas-manage-apps-relaunch"></a>

Se você excluir ou sair do seu aplicativo SageMaker Canvas e quiser reiniciar o aplicativo, use o procedimento a seguir.

1. Navegue até o [console de SageMaker IA](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação, selecione **Canvas**.

1. Na página inicial do SageMaker Canvas, na caixa **Get Started**, selecione seu perfil de usuário no menu suspenso.

1. Escolha **Abrir o Canvas** para abrir a aplicação.

SageMaker O Canvas começa a iniciar o aplicativo.

Você também pode usar o procedimento secundário a seguir se encontrar algum problema com o procedimento anterior.

1. Abra o [console de SageMaker IA](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Na página **Domínios**, escolha o seu Domínio.

1. Na página de **detalhes do domínio**, em **Perfis de usuário**, selecione o nome do perfil de usuário para o aplicativo SageMaker Canvas que você deseja visualizar.

1. Escolha **Iniciar** e selecione **Canvas** na lista suspensa.

SageMaker O Canvas começa a iniciar o aplicativo.

# Configurar o Amazon SageMaker Canvas em uma VPC sem acesso à Internet
<a name="canvas-vpc"></a>

O aplicativo Amazon SageMaker Canvas é executado em um contêiner em uma Amazon Virtual Private Cloud (VPC) AWS gerenciada. Se você quiser controlar ainda mais o acesso aos seus recursos ou executar o SageMaker Canvas sem acesso público à Internet, você pode definir seu domínio Amazon SageMaker AI e as configurações de VPC. Em sua própria VPC, você pode definir configurações como grupos de segurança (firewalls virtuais que controlam o tráfego de entrada e saída das instâncias do Amazon EC2) e sub-redes (intervalos de endereços IP em sua VPC). Para saber mais VPCs, consulte [Como a Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/how-it-works.html) funciona.

Quando o aplicativo SageMaker Canvas está sendo executado na VPC AWS gerenciada, ele pode interagir com outros AWS serviços usando uma conexão com a Internet ou por meio de endpoints de VPC criados em uma VPC gerenciada pelo cliente (sem acesso público à Internet). SageMaker Os aplicativos Canvas podem acessar esses VPC endpoints por meio de uma interface de rede criada pelo Studio Classic que fornece conectividade à VPC gerenciada pelo cliente. O comportamento padrão do aplicativo SageMaker Canvas é ter acesso à internet. Ao usar uma conexão com a Internet, os contêineres dos trabalhos anteriores acessam recursos AWS pela Internet, como os buckets do Amazon S3, nos quais você armazena dados de treinamento e artefatos do modelo.

No entanto, se você tiver requisitos de segurança para controlar o acesso aos seus contêineres de dados e tarefas, recomendamos que você configure o SageMaker Canvas e sua VPC para que seus dados e contêineres não sejam acessíveis pela Internet. SageMaker A IA usa as configurações de VPC que você especifica ao configurar seu domínio para SageMaker o Canvas.

Se quiser configurar seu aplicativo SageMaker Canvas sem acesso à Internet, você deve definir suas configurações de VPC ao se integrar ao [domínio Amazon SageMaker AI](gs-studio-onboard.md), configurar endpoints de VPC e conceder as permissões necessárias. AWS Identity and Access Management Para obter informações sobre como configurar uma VPC na SageMaker Amazon AI, consulte. [Escolha uma Amazon VPC](onboard-vpc.md) As seções a seguir descrevem como executar o SageMaker Canvas em uma VPC sem acesso público à Internet.

## Configurar o Amazon SageMaker Canvas em uma VPC sem acesso à Internet
<a name="canvas-vpc-configure"></a>

Você pode enviar tráfego do SageMaker Canvas para outros AWS serviços por meio de sua própria VPC. Se sua própria VPC não tiver acesso público à Internet e você tiver configurado seu domínio no modo **somente VPC**, o SageMaker Canvas também não terá acesso público à Internet. Isso inclui todas as solicitações, como acesso a conjuntos de dados no Amazon S3 ou trabalhos de treinamento para criações padrão, e as solicitações passam por endpoints da VPC em sua VPC em vez da Internet pública. Ao se integrar ao Domínio e [Escolha uma Amazon VPC](onboard-vpc.md), você pode especificar sua própria VPC como a VPC padrão para o Domínio, junto com o grupo de segurança e as configurações de sub-rede desejadas. Em seguida, a SageMaker IA cria uma interface de rede em sua VPC que o SageMaker Canvas usa para acessar endpoints de VPC em sua VPC.

Certifique-se de configurar um ou mais grupos de segurança em sua VPC com regras de entrada e saída que permitam [tráfego TCP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-other-instances) dentro do grupo de segurança. Isso é necessário para a conectividade entre a aplicação Jupyter Server e as aplicações de gateway de kernel. Você deve permitir o acesso pelo menos às portas no intervalo `8192-65535`. Crie um grupo de segurança distinto para cada perfil de usuário e adicione acesso de entrada desse mesmo grupo de segurança. Não recomendamos reutilizar um grupo de segurança no nível de domínio para perfis de usuário. Se o grupo de segurança no nível de domínio permitir acesso de entrada a si mesmo, todas as aplicações no domínio terão acesso a todas as outras aplicações no domínio. Observe que as configurações do grupo de segurança e da sub-rede são definidas após a conclusão da integração no Domínio.

Ao integrar o domínio, se você escolher **Internet pública somente** como o tipo de acesso à rede, a VPC SageMaker será gerenciada por IA e permitirá o acesso à Internet.

Você pode alterar esse comportamento escolhendo **somente a VPC** para que a SageMaker IA envie todo o tráfego para uma interface de rede criada pela SageMaker IA na sua VPC especificada. Ao escolher essa opção, você deve fornecer as sub-redes, os grupos de segurança e os endpoints VPC necessários para se comunicar com a SageMaker API e o SageMaker AI Runtime, além de vários AWS serviços, como Amazon S3 e CloudWatch Amazon, que são usados pelo Canvas. SageMaker Observe que você só pode importar dados de buckets do Amazon S3 localizados na mesma Região da sua VPC.

Os procedimentos a seguir mostram como você pode definir essas configurações para usar o SageMaker Canvas sem a internet.

### Etapa 1: Integração ao domínio Amazon SageMaker AI
<a name="canvas-vpc-configure-onboard"></a>

[Para enviar tráfego do SageMaker Canvas para uma interface de rede em sua própria VPC em vez de pela Internet, especifique a VPC que você deseja usar ao fazer a integração ao domínio Amazon AI. SageMaker ](gs-studio-onboard.md) Você também deve especificar pelo menos duas sub-redes em sua VPC que SageMaker a IA possa usar. Escolha **Configuração padrão** e siga o procedimento a seguir ao configurar a **Seção Rede e armazenamento** do Domínio.

1. Selecione a **VPC** desejada.

1. Escolha duas ou mais **sub-redes**. Se você não especificar as sub-redes, a SageMaker IA usará todas as sub-redes na VPC.

1. Escolha um ou mais **Grupos de segurança**.

1. Escolha **VPC Only** para desativar o acesso direto à Internet na AWS VPC gerenciada em que o Canvas está SageMaker hospedado.

Depois de desativar o acesso à Internet, conclua o processo de integração para configurar seu Domínio. Para obter mais informações sobre as configurações de VPC para o domínio Amazon SageMaker AI, consulte. [Escolha uma Amazon VPC](onboard-vpc.md)

### Etapa 2: configurar endpoints da VPC e acesso
<a name="canvas-vpc-configure-endpoints"></a>

**nota**  
Para configurar o Canvas em sua própria VPC, você deve habilitar nomes de host DNS privados para seus endpoints da VPC. Para obter mais informações, consulte [Conecte-se à SageMaker IA por meio de um endpoint de interface VPC](https://docs.aws.amazon.com/sagemaker/latest/dg/interface-vpc-endpoint.html).

SageMaker O Canvas só acessa outros AWS serviços para gerenciar e armazenar dados para sua funcionalidade. Por exemplo, ele se conecta ao Amazon Redshift se seus usuários acessarem um banco de dados do Amazon Redshift. Ele pode se conectar a um AWS serviço como o Amazon Redshift usando uma conexão com a Internet ou um VPC endpoint. Use VPC endpoints se quiser configurar conexões da sua VPC com AWS serviços que não usam a Internet pública.

Um VPC endpoint cria uma conexão privada com um AWS serviço que usa um caminho de rede isolado da Internet pública. Por exemplo, se você configurar o acesso ao Amazon S3 usando um endpoint VPC de sua própria VPC, o aplicativo Canvas SageMaker poderá acessar o Amazon S3 passando pela interface de rede em sua VPC e depois pelo endpoint VPC que se conecta ao Amazon S3. A comunicação entre o SageMaker Canvas e o Amazon S3 é privada.

Para obter mais informações sobre como configurar endpoints da VPC, consulte [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/what-is-privatelink.html). Se você estiver usando modelos do Amazon Bedrock no Canvas com uma VPC, para obter mais informações sobre como controlar o acesso aos seus dados, consulte [Proteger trabalhos usando uma VPC](https://docs.aws.amazon.com/bedrock/latest/userguide/usingVPC.html#configureVPC) no *Guia do usuário do Amazon Bedrock*.

A seguir estão os endpoints de VPC para cada serviço que você pode usar com o Canvas: SageMaker 


| Serviço | Endpoint | Endpoint type | 
| --- | --- | --- | 
|  AWS Application Auto Scaling  |  com.amazonaws. *Region*.escalonamento automático de aplicativos  | Interface | 
|  Amazon Athena  |  com.amazonaws. *Region*.atena  | Interface | 
|   SageMaker Inteligência Artificial da Amazon  |  com.amazonaws. *Region*.sagemaker.api com.amazonaws. *Region*.sagemaker.runtime com.amazonaws. *Region*.caderno  | Interface | 
|  Assistente de ciência de dados com SageMaker IA da Amazon  |  com.amazonaws. *Region*. sagemaker-data-science-assistant  | Interface | 
|  AWS Security Token Service  |  com.amazonaws. *Region*.sts  | Interface | 
|  Amazon Elastic Container Registry (Amazon ECR)  |  com.amazonaws. *Region*.ecr.api com.amazonaws. *Region*.ecr.dkr  | Interface | 
|  Amazon Elastic Compute Cloud (Amazon EC2)  |  com.amazonaws. *Region*.ec2  | Interface | 
|  Amazon Simple Storage Service (Amazon S3)  |  com.amazonaws. *Region*.s3  | Gateway | 
|  banco de dados de origem  |  com.amazonaws. *Region*.redshift - dados  | Interface | 
|  AWS Secrets Manager  |  com.amazonaws. *Region*.gerente de segredos  | Interface | 
|  AWS Systems Manager  |  com.amazonaws. *Region*.sms  | Interface | 
|  Amazon CloudWatch  |  com.amazonaws. *Region*.monitoramento  | Interface | 
|   CloudWatch Registros da Amazon  |  com.amazonaws. *Region*.registros  | Interface | 
|  Amazon Forecast  |  com.amazonaws. *Region*.previsão com.amazonaws. *Region*.consulta de previsão  | Interface | 
|  Amazon Textract  |  com.amazonaws. *Region*.extrair  | Interface | 
|  Amazon Comprehend  |  com.amazonaws. *Region*.compreender  | Interface | 
|  Amazon Rekognition  |  com.amazonaws. *Region*.reconhecimento  | Interface | 
|  AWS Glue  |  com.amazonaws. *Region*.cola  | Interface | 
|  AWS Application Auto Scaling  |  com.amazonaws. *Region*.escalonamento automático de aplicativos  | Interface | 
|  Amazon Relational Database Service (Amazon RDS)  |  com.amazonaws. *Region*.rds  | Interface | 
|  Amazon Bedrock (veja a observação após a tabela)  |  com.amazonaws. *Region*.bedrock-runtime  | Interface | 
|  Amazon Kendra  |  com.amazonaws. *Region*.kendra  | Interface | 
|  Amazon EMR Sem Servidor  |  com.amazonaws. *Region*.emr-sem servidor  | Interface | 
|  Amazon Q Developer (veja a observação após a tabela)  |  com.amazonaws. *Region*.q  | Interface | 

**nota**  
No momento, o endpoint da VPC do Amazon Q Developer está disponível apenas na região Leste dos EUA (Norte da Virgínia). Para se conectar a ele de outras regiões, você pode escolher uma das seguintes opções com base nas suas preferências de segurança e infraestrutura:  
**Configure um gateway NAT.** Configure um gateway NAT na sub-rede privada da VPC para habilitar a conectividade com a internet para o endpoint do Q Developer. Para ter mais informações, consulte [Como configurar um gateway NAT em uma sub-rede privada na VPC](https://repost.aws/knowledge-center/nat-gateway-vpc-private-subnet).
**Habilite o acesso a endpoints da VPC entre regiões.** Configure o acesso a endpoints da VPC entre regiões para o Q Developer. Use essa opção para se conectar com segurança sem precisar de acesso à internet. Para ter mais informações, consulte [Como configurar endpoints de interface da Amazon VPC entre regiões para acessar recursos](https://repost.aws/knowledge-center/vpc-endpoints-cross-region-aws-services).

**nota**  
Para o Amazon Bedrock, o nome do serviço de endpoint da interface `com.amazonaws.Region.bedrock` foi descontinuado. Crie um novo endpoint da VPC com o nome do serviço listado na tabela anterior.  
Além disso, você não pode ajustar os modelos de base do Canvas VPCs sem acesso à Internet. Isso ocorre porque o Amazon Bedrock não oferece suporte a endpoints VPC para personalização de modelos. APIs Para saber mais sobre como ajustar os modelos de base no Canvas, consulte. [Ajustar modelos de base](canvas-fm-chat-fine-tune.md)

Você também deve adicionar uma política de endpoint para que o Amazon S3 AWS controle o acesso principal ao seu VPC endpoint. Para obter informações sobre como atualizar sua política de endpoint da VPC, consulte [Controlar o acesso a endpoints da VPC usando políticas de endpoint](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html).

A seguir estão duas políticas de endpoint da VPC que você pode usar. Use a primeira política se quiser conceder acesso apenas às funcionalidades básicas do Canvas, como importação de dados e criação de modelos. Use a segunda política se quiser conceder acesso aos [atributos adicionais de IA generativa](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-fm-chat.html) no Canvas.

------
#### [ Basic VPC endpoint policy ]

A política a seguir concede o acesso necessário ao seu endpoint da VPC para operações básicas no 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 ]

A política a seguir concede o acesso necessário ao seu endpoint da VPC para operações básicas no Canvas, além de usar modelos básicos de 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": "*"
        }
```

------

### Etapa 3: conceder permissões do IAM
<a name="canvas-vpc-configure-permissions"></a>

O usuário do SageMaker Canvas deve ter as AWS Identity and Access Management permissões necessárias para permitir a conexão com os endpoints da VPC. A função do IAM para a qual você concede permissões deve ser a mesma usada na integração com o domínio Amazon SageMaker AI. Você pode anexar a `AmazonSageMakerFullAccess` política gerenciada de SageMaker IA à função do IAM para que o usuário conceda ao usuário as permissões necessárias. Se você precisar de permissões mais restritivas do IAM e usar políticas personalizadas, dê a `ec2:DescribeVpcEndpointServices` permissão ao papel do usuário. SageMaker O Canvas exige essas permissões para verificar a existência dos endpoints VPC necessários para trabalhos de construção padrão. Se ele detectar esses endpoints da VPC, os trabalhos de criação padrão serão executados por padrão em sua VPC. Caso contrário, eles serão executados na VPC AWS gerenciada padrão.

Para obter instruções sobre como anexar a política do IAM `AmazonSageMakerFullAccess` ao perfil do IAM do seu usuário, consulte [Adicionar e remover permissões de identidade do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).

Para conceder ao perfil do IAM do seu usuário a permissão `ec2:DescribeVpcEndpointServices` granular, use o procedimento a seguir.

1. Faça login no Console de gerenciamento da AWS e abra o [console do IAM](https://console.aws.amazon.com/iam/).

1. No painel de navegação, escolha **Perfis**.

1. Na lista, escolha o nome do perfil para o qual você deseja conceder permissões.

1. Escolha a aba **Permissões**.

1. Escolha **Adicionar permissões** e depois **Criar política em linha**.

1. Escolha a guia **JSON** e insira a seguinte política, que concede a permissão `ec2:DescribeVpcEndpointServices`:

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": "ec2:DescribeVpcEndpointServices",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Escolha **Revisar política** e, em seguida, insira um **Nome** para a política (por exemplo, `VPCEndpointPermissions`).

1. Escolha **Criar política**.

O perfil do IAM do usuário agora deve ter permissões para acessar os endpoints da VPC configurados na sua VPC.

### (Opcional) Etapa 4: substituir configurações de grupo de segurança para usuários específicos
<a name="canvas-vpc-configure-override"></a>

Se você for administrador, talvez queira que usuários diferentes tenham configurações de VPC diferentes ou configurações de VPC específicas do usuário. Quando você substitui as configurações padrão do grupo de segurança da VPC para um usuário específico, essas configurações são passadas para o aplicativo SageMaker Canvas desse usuário.

Você pode substituir os grupos de segurança aos quais um usuário específico tem acesso na sua VPC ao configurar um novo perfil de usuário no Studio. Você pode usar a chamada de [CreateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html) SageMaker API (ou [create\$1user\$1profile](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_user_profile) com o [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)) e, em seguida, no`UserSettings`, você pode especificar o para o usuário. `SecurityGroups`

# Configure conexões com fontes de dados com OAuth
<a name="canvas-setting-up-oauth"></a>

A seção a seguir descreve as etapas que você deve seguir para configurar OAuth conexões com fontes de dados do SageMaker Canvas. [OAuth](https://oauth.net/2/)é uma plataforma de autenticação comum para conceder acesso a recursos sem compartilhar senhas. Com OAuth, você pode se conectar rapidamente aos seus dados do Canvas e importá-los para criar modelos. Atualmente, o Canvas oferece suporte OAuth para Snowflake e Salesforce Data Cloud. 

**nota**  
Você só pode estabelecer uma OAuth conexão para cada fonte de dados.

## Configuração OAuth para o Salesforce Data Cloud
<a name="canvas-setting-up-oauth-salesforce"></a>

 OAuth Para configurar o Salesforce Data Cloud, siga estas etapas gerais:

1. Faça login no Salesforce Data Cloud.

1. No Salesforce Data Cloud, crie uma nova conexão de aplicação e faça o seguinte:

   1. Ative OAuth as configurações.

   1. Quando solicitado a fornecer um URL de retorno de chamada (ou o URL do recurso acessando seus dados), especifique o URL para sua aplicação Canvas. O URL da aplicação Canvas segue este formato: `https://<domain-id>.studio.<region>.sagemaker.aws/canvas/default`

   1. Copie a chave e o segredo do consumidor.

   1. Copie o URL de autorização e o URL do token.

Para obter instruções mais detalhadas sobre como realizar as tarefas anteriores no Salesforce Data Cloud, consulte [Importar dados do Salesforce Data Cloud](data-wrangler-import.md#data-wrangler-import-salesforce-data-cloud) na documentação do Data Wrangler para importar dados do Salesforce Data Cloud.

Depois de habilitar o acesso do Salesforce Data Cloud e obter suas informações de conexão, você deve criar um [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)segredo para armazenar as informações e adicioná-las ao seu domínio ou perfil de usuário do Amazon SageMaker AI. Observe que você pode adicionar um segredo ao Domínio e ao perfil do usuário, mas o Canvas procura os segredos no perfil do usuário primeiro.

Para adicionar um segredo ao seu Domínio ou perfil de usuário, faça o seguinte:

1. Acesse o [console Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker).

1. No painel de navegação, escolha **Domínios**.

1. A partir da lista de **Domínios**, escolha o seu Domínio.

   1. Para adicionar seu segredo ao Domínio, faça o seguinte:

      1. Escolha o Domínio.

      1. Na página **Configurações do Domínio**, escolha a guia **Configurações do Domínio**.

      1. Escolha **Editar**.

   1. Para adicionar um segredo ao seu perfil de usuário, faça o seguinte:

      1. Escolha o Domínio do usuário.

      1. Na página de **Configurações do Domínio**, escolha o perfil do usuário.

      1. Na página **Detalhes do usuário**, selecione **Editar**.

1. No painel de navegação, escolha **Configurações do Canvas**.

1. Para **OAuth configurações**, escolha **Adicionar OAuth configuração**.

1. Em **Fonte de dados**, selecione **Salesforce Data Cloud**.

1. Em **Configuração do segredo**, selecione **Criar novo segredo**. Como alternativa, se você já criou um AWS Secrets Manager segredo com suas credenciais, insira o ARN do segredo. Para criar um novo segredo, faça o seguinte:

   1. Em **Provedor de identidade**, selecione **SALESFORCE**.

   1. Para **ID do cliente**, **Segredo do cliente**, **URL de autorização** e **URL do token**, insira todas as informações que você coletou do Salesforce Data Cloud no procedimento anterior.

1. Salve suas configurações de Domínio ou perfil de usuário.

Agora você será capaz de criar uma conexão com seus dados no Salesforce Data Cloud a partir do Canvas.

## Configuração OAuth para Snowflake
<a name="canvas-setting-up-oauth-snowflake"></a>

Para configurar a autenticação para o Snowflake, o Canvas oferece apoio a provedores de identidade que você pode usar em vez de fazer com que os usuários insiram diretamente suas credenciais no Canvas.

A seguir estão os links para a documentação do Snowflake para os provedores de identidade compatíveis com o 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)

As seguintes etapas descrevem o processo geral que você deve adotar: Para obter instruções mais detalhadas sobre como executar essas etapas, consulte a seção [Configurando o Snowflake Access OAuth](data-wrangler-import.md#data-wrangler-snowflake-oauth-setup) na documentação do Data Wrangler para importar dados do Snowflake.

 OAuth Para configurar o Snowflake, faça o seguinte:

1. Registre o Canvas como uma aplicação com o provedor de identidade. Isso requer a especificação de um URL de redirecionamento para o Canvas, que deve seguir este formato: `https://<domain-id>.studio.<region>.sagemaker.aws/canvas/default`

1. Dentro do provedor de identidade, crie um servidor ou API que envie OAuth tokens para o Canvas para que o Canvas possa acessar o Snowflake. Ao configurar o servidor, use o código de autorização e os tipos de concessão do token de atualização, especifique a vida útil do token de acesso e defina uma política de token de atualização. Além disso, na Integração de OAuth Segurança Externa do Snowflake, ative. `external_oauth_any_role_mode`

1. Obtenha as seguintes informações do provedor de identidade: URL do token, URL de autorização, ID do cliente, segredo do cliente. Para o Azure AD, também recupere as credenciais do OAuth escopo.

1. Armazene as informações recuperadas na etapa anterior em AWS Secrets Manager segredo.

   1. Para Okta e Ping Federate, o segredo deve ter o seguinte 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. Para o Azure AD, o segredo também deve incluir as credenciais do OAuth escopo como `datasource_oauth_scope` campo.

Depois de configurar o provedor de identidade e o segredo, você deve criar um [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)segredo para armazenar as informações e adicioná-las ao seu domínio ou perfil de usuário do Amazon SageMaker AI. Observe que você pode adicionar um segredo ao Domínio e ao perfil do usuário, mas o Canvas procura os segredos no perfil do usuário primeiro.

Para adicionar um segredo ao seu Domínio ou perfil de usuário, faça o seguinte:

1. Acesse o [console Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker).

1. No painel de navegação, escolha **Domínios**.

1. A partir da lista de **Domínios**, escolha o seu Domínio.

   1. Para adicionar seu segredo ao Domínio, faça o seguinte:

      1. Escolha o Domínio.

      1. Na página **Configurações do Domínio**, escolha a guia **Configurações do Domínio**.

      1. Escolha **Editar**.

   1. Para adicionar um segredo ao seu perfil de usuário, faça o seguinte:

      1. Escolha o Domínio do usuário.

      1. Na página de **Configurações do Domínio**, escolha o perfil do usuário.

      1. Na página **Detalhes do usuário**, selecione **Editar**.

1. No painel de navegação, escolha **Configurações do Canvas**.

1. Para **OAuth configurações**, escolha **Adicionar OAuth configuração**.

1. Em **Fonte de dados**, selecione **Snowflake**.

1. Em **Configuração do segredo**, selecione **Criar novo segredo**. Como alternativa, se você já criou um AWS Secrets Manager segredo com suas credenciais, insira o ARN do segredo. Para criar um novo segredo, faça o seguinte:

   1. Em **Provedor de identidade**, selecione **SNOWFLAKE**.

   1. Para **ID do cliente**, **Segredo do cliente**, **URL de autorização** e **URL do token**, insira todas as informações que você coletou do provedor de identidade no procedimento anterior.

1. Salve suas configurações de Domínio ou perfil de usuário.

Agora você será capaz de criar uma conexão com seus dados no Snowflake a partir do Canvas.

# Assistência de IA generativa para resolver problemas de ML no Canvas usando o Amazon Q Developer
<a name="canvas-q"></a>

Ao usar o Amazon SageMaker Canvas, você pode conversar com o Amazon Q Developer em linguagem natural para aproveitar a IA generativa e resolver problemas. O Q Developer é um assistente que ajuda você a traduzir suas metas em tarefas de machine learning (ML) e descreve cada etapa do fluxo de trabalho de ML. Ele ajuda os usuários do Canvas a reduzir a quantidade de tempo, esforço e experiência em ciência de dados necessários para utilizar o ML e tomar decisões orientada por dados para suas organizações. 

Por meio de uma conversa com o Q Developer, você pode iniciar ações no Canvas, como preparar dados, criar um modelo de ML, fazer predições e implantar um modelo. O Q Developer faz sugestões para as próximas etapas e fornece contexto à medida que você conclui cada etapa. Ele também informa sobre os resultados; por exemplo, o Canvas pode transformar seu conjunto de dados de acordo com as práticas recomendadas e o Q Developer pode listar as transformações que foram usadas e por que foram usadas.

O Amazon Q Developer está disponível no SageMaker Canvas sem custo adicional para usuários do Amazon Q Developer Pro e do nível gratuito. No entanto, cobranças padrão se aplicam a recursos como a instância do espaço de trabalho do SageMaker Canvas e quaisquer recursos usados para criar ou implantar modelos. Para obter mais informações sobre preços, consulte os [preços do Amazon SageMaker Canvas](https://aws.amazon.com/sagemaker-ai/canvas/pricing/).

O uso do Amazon Q é licenciado para você sob a [Licença MIT-0](https://github.com/aws/mit-0) e está sujeito à [política de IA responsável da AWS](https://aws.amazon.com/machine-learning/responsible-ai/policy/). Quando você usa o Q Developer fora dos EUA, o Q Developer processa dados em todas as regiões dos EUA. Para ter mais informações, consulte [Cross region inference in Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/cross-region-inference.html).

**nota**  
O Amazon Q Developer in SageMaker Canvas não usa o conteúdo do usuário para melhorar o serviço, independentemente de você usar a assinatura gratuita ou a assinatura profissional. Para finalidades de telemetria de serviços, o Amazon Q Developer pode rastrear seu uso, como o número de perguntas feitas e se as recomendações foram aceitas ou rejeitadas. Esses dados de telemetria não incluem informações de identificação pessoal, como o endereço IP.

## Como funciona
<a name="canvas-q-how-it-works"></a>

O Amazon Q Developer é um assistente generativo baseado em IA disponível no SageMaker Canvas que você pode consultar usando linguagem natural. Ele faz sugestões para cada etapa do fluxo de trabalho de machine learning, explicando conceitos e fornecendo opções e mais detalhes conforme necessário. Você pode usá-lo para regressão, classificação binária e casos de uso de classificação multiclasse.

Por exemplo, para prever a rotatividade de clientes, faça upload de um conjunto de dados com informações históricas de rotatividade de clientes no Canvas por meio do Q Developer. O Q Developer sugere um tipo de modelo de ML apropriado e as devidas etapas para corrigir problemas no conjunto de dados, criar um modelo e fazer predições.

**Importante**  
O Amazon Q Developer é destinado a conversas sobre problemas de aprendizado de máquina no SageMaker Canvas. Ele orienta os usuários sobre as ações do Canvas e, opcionalmente, responde a perguntas sobre Serviços da AWS. O Q Developer processa as entradas do modelo somente em inglês. Para ter informações sobre como você pode usar o Q Developer, consulte [ Amazon Q Developer features](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/features.html) no *Guia do usuário do Amazon Q Developer*.

## Regiões compatíveis
<a name="canvas-q-regions"></a>

O Amazon Q Developer está disponível no SageMaker Canvas da seguinte forma Regiões da AWS:
+ Leste dos EUA (Norte da Virgínia)
+ Leste dos EUA (Ohio)
+ Oeste dos EUA (Oregon)
+ Ásia-Pacífico (Mumbai)
+ Ásia-Pacífico (Seul)
+ Ásia-Pacífico (Singapura)
+ Ásia-Pacífico (Sydney)
+ Ásia-Pacífico (Tóquio)
+ Europa (Frankfurt)
+ Europa (Irlanda)
+ Europa (Paris)

## Recursos do Amazon Q Developer disponíveis no Canvas
<a name="canvas-q-capabilities"></a>

A lista a seguir resume as tarefas do Canvas às quais o Q Developer pode oferecer assistência:
+ **Descrever seu objetivo**: o Q Developer pode sugerir um tipo de modelo de ML e uma abordagem geral para resolver seu problema.
+ **Importar e analisar conjuntos de dados**: informe ao Q Developer onde seu conjunto de dados está armazenado ou faça upload de um arquivo para salvá-lo como um conjunto de dados do Canvas. Solicite ao Q Developer que identifique todos os problemas em seu conjunto de dados, como valores discrepantes ou ausentes. O Q Developer fornece estatísticas resumidas sobre seu conjunto de dados e lista todos os problemas identificados.

  Ele permite consultas sobre as seguintes estatísticas para colunas individuais:
  + Colunas numéricas: `number of valid values`, `feature type`, `mean`, `median`, `minimum`, `maximum`, `standard deviation`, `25th percentile`, `75th percentile` e `number of outliers`.
  + Colunas categóricas: `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` e `categories`.
+ **Corrigir problemas do conjunto de dados**: solicite ao Q Developer que use os recursos de transformação de dados do Canvas para criar uma versão revisada do seu conjunto de dados. O Canvas cria um fluxo de dados do Data Wrangler e aplica as transformações de acordo com as práticas recomendadas de ciência de dados. Para obter mais informações, consulte [preparação de dados](canvas-data-prep.md).

  Se você quiser realizar tarefas mais avançadas de análise ou preparação de dados do que aquelas que você pode realizar com o Q Developer, recomendamos que acesse a interface de fluxo de dados do Data Wrangler.
+ **Treinar um modelo**: o Q Developer informa o tipo de modelo de ML recomendado para seu problema e propõe uma configuração para a criação do modelo. Você pode usar as configurações padrão sugeridas para fazer uma compilação rápida ou modificar a configuração e fazer uma compilação padrão. Quando tudo estiver pronto, solicite que o Q Developer crie seu modelo do Canvas.

  Todos os tipos de modelos personalizados são permitidos. Para ter mais informações sobre os tipos de modelo e as compilações rápidas versus padrão, consulte [Como os modelos personalizados funcionam](canvas-build-model.md).
+ **Avaliar a precisão do modelo**: após a criação do modelo, o Q Developer fornece um resumo da pontuação do modelo em várias métricas. Essas métricas ajudam você a determinar a utilidade e a precisão do modelo. O Q Developer pode explicar qualquer conceito ou métrica em detalhes.

  Para ver todos os detalhes e visualizações, abra o modelo no chat ou na página **Meus modelos** do Canvas. Para obter mais informações, consulte [Avaliação de modelos](canvas-evaluate-model.md).
+ **Obter predições para novos dados**: você pode fazer upload de um novo conjunto de dados e solicitar que o Q Developer ajude a abrir o recurso de predição do Canvas. 

  O Q Developer abre uma nova janela na aplicação para você fazer uma única predição ou fazer predições em lote com um novo conjunto de dados. Para obter mais informações, consulte [Previsões com modelos personalizados](canvas-make-predictions.md).
+ **Implantar um modelo**: para implantar seu modelo para produção, peça ao Q Developer para ajudar você a implantá-lo por meio do Canvas. O Q Developer abre uma nova janela para você configurar sua implantação. 

  Após a implantação, visualize os detalhes em um dos seguintes locais: 1) na página **Meus modelos** do Canvas, na guia **Implantar** do modelo ou 2) na página **MLOPs**, na guia **Implantações.** Para obter mais informações, consulte [Implantar seus modelos em um endpoint](canvas-deploy-model.md).

## Pré-requisitos
<a name="canvas-q-prereqs"></a>

Para usar o Amazon Q Developer para criar modelos de ML no SageMaker Canvas, preencha os seguintes pré-requisitos:

**Configurar uma aplicação do Canvas**

Verifique se você tem uma aplicação do Canvas configurada. Para ter informações sobre como configurar uma aplicação do Canvas, consulte [Começando a usar o Amazon SageMaker Canvas](canvas-getting-started.md).

**Conceder permissões ao Q Developer**

Para acessar o Q Developer enquanto usa o Canvas, você deve anexar as permissões necessárias à função AWS do IAM usada para seu domínio de SageMaker IA ou perfil de usuário. É possível fazer isso por meio do console descrito nesta seção. Se você encontrar algum problema de permissão devido ao uso do método do console, anexe manualmente a política AWS gerenciada [ AmazonSageMakerCanvasSMDataScienceAssistantAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasSMDataScienceAssistantAccess)à função do IAM.

As permissões anexadas em nível de domínio se aplicam a todos os perfis de usuário no domínio, a menos que permissões individuais sejam concedidas ou revogadas em nível de perfil de usuário.

------
#### [ SageMaker AI console method ]

Você pode conceder permissões editando as configurações do domínio do SageMaker AI ou do perfil do usuário.

Para conceder permissões por meio das configurações de domínio no console do SageMaker AI, faça o seguinte:

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**.

1. A partir da lista de Domínios, escolha o seu Domínio.

1. Na página **Detalhes do domínio**, selecione **Configurações do aplicativo**.

1. Na seção **Logs**, selecione **Editar**.

1. Na página **Editar configurações do Canvas**, acesse a seção **Amazon Q Developer** e faça o seguinte:

   1. Ative a **opção Habilitar Amazon Q Developer in SageMaker Canvas para ML em linguagem natural** para adicionar as permissões para conversar com Q Developer in Canvas à função de execução do seu domínio.

   1. (Opcional) **Ative o bate-papo do Amazon Q Developer para AWS perguntas gerais** se quiser fazer perguntas ao Q Developer sobre várias Serviços da AWS (por exemplo: Descreva como o Athena funciona).
**nota**  
Ao fazer AWS consultas gerais ao Q Developer, suas solicitações são encaminhadas pelo Leste dos EUA (Norte da Virgínia) Região da AWS. Para evitar que seus dados sejam roteados por meio da região Leste dos EUA (Norte da Virgínia), desative a opção **Habilitar o chat do Amazon Q Developer para dúvidas gerais sobre a AWS **.

------
#### [ Manual method ]

Anexe a [ AmazonSageMakerCanvasSMDataScienceAssistantAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasSMDataScienceAssistantAccess)política à função do AWS IAM usada para seu domínio ou perfil de usuário. Para ter informações sobre como fazer isso, consulte [Adicionar e remover permissões de identidade do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) no *AWS Guia do usuário do IAM*.

------

**(Opcional) Configurar o acesso ao Q Developer por meio da VPC**

Se você tiver uma VPC configurada sem acesso público à internet, poderá adicionar um endpoint da VPC para o Q Developer. Para obter mais informações, consulte [Configurar o Amazon SageMaker Canvas em uma VPC sem acesso à Internet](canvas-vpc.md).

## Introdução
<a name="canvas-q-get-started"></a>

Para usar o Amazon Q Developer para criar modelos de ML no SageMaker Canvas, faça o seguinte:

1. Abra seu aplicativo SageMaker Canvas.

1. No painel de navegação à esquerda, escolha **Amazon Q**.

1. Escolha **Iniciar uma nova conversa** para abrir uma nova conversa.

Quando você inicia um novo chat, o Q Developer solicita que você exponha seu problema ou forneça um conjunto de dados.

![\[A saudação do Q Developer ao iniciar um novo chat.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/amazon-q-greeting.png)


Depois de importar seus dados, você pode pedir ao Q Developer que forneça estatísticas resumidas sobre seu conjunto de dados ou você pode fazer perguntas sobre colunas específicas. Para ver uma lista das diferentes estatísticas que o Q Developer oferece, consulte a seção [Recursos do Amazon Q Developer disponíveis no Canvas](#canvas-q-capabilities) anterior. A captura de tela a seguir mostra um exemplo de solicitação de estatísticas do conjunto de dados e da categoria mais frequente em uma coluna de categoria de produto.

![\[Caixa de diálogo de chat solicitando que o Q Developer forneça estatísticas do conjunto de dados e a estatística da categoria mais frequente.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/amazon-q-dataset-statistics.png)


O Q Developer rastreia todos os artefatos do Canvas que você importa ou cria durante a conversa, como conjuntos de dados e modelos transformados. Você pode acessá-los no chat ou em outras guias da aplicação do Canvas. Por exemplo, se o Q Developer corrigir problemas em seu conjunto de dados, você poderá acessar o novo conjunto de dados transformado nos seguintes locais:
+ A barra lateral de artefatos na interface de chat do Q Developer.
+ A página **Conjuntos de dados** do Canvas, onde você pode visualizar seus conjuntos de dados originais e transformados. O conjunto de dados transformado tem o rótulo **Criado pelo Amazon Q** adicionado a ele.
+ A página **Data Wrangler** do Canvas, onde o Q Developer cria um fluxo de dados para seu conjunto de dados.

A captura de tela a seguir mostra o conjunto de dados original e o conjunto de dados transformado na barra lateral de um chat.

![\[Os artefatos, que são um conjunto de dados e um conjunto de dados transformado, são exibidos na barra lateral de um chat do Q Developer.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/amazon-q-artifacts.png)


Quando seus dados estiverem prontos, peça ao Q Developer para ajudar a criar um modelo do Canvas. O Q Developer pode solicitar que você confirme alguns campos e analise a configuração da compilação. Se você usar a configuração de compilação padrão, seu modelo será criado por meio de uma compilação rápida. Se você quiser personalizar qualquer parte da configuração da compilação, como selecionar os algoritmos usados ou alterar a métrica objetiva, seu modelo será criado com uma compilação padrão.

A captura de tela a seguir mostra como você pode solicitar que o Q Developer inicie a criação de modelo do Canvas com apenas alguns prompts. Este exemplo usa a configuração padrão para iniciar uma compilação rápida.

![\[Uma conversa com o Q Developer em que o usuário solicitou o início da criação de um modelo do Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/amazon-q-training-chat.png)


Depois de criar seu modelo, você pode realizar ações adicionais usando linguagem natural no chat ou no menu da barra lateral de artefatos. Por exemplo, você pode visualizar detalhes e métricas do modelo, fazer predições ou implantar o modelo. A captura de tela a seguir mostra a barra lateral na qual é possível escolher essas opções adicionais.

![\[Um menu de reticências de conversa do Q Developer foi expandido, mostrando opções para visualizar detalhes, predições e a implantação do modelo.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/amazon-q-ellipsis-menu.png)


Também é possível realizar qualquer uma dessas ações acessando a página **Meus modelos** do Canvas e selecionando seu modelo. Na página do seu modelo, você pode navegar até as guias **Analisar**, **Prever** e **Implantar** para ver métricas e visualizações do modelo, fazer predições e gerenciar implantações, respectivamente.

# Registrando conversas do Q Developer com AWS CloudTrail
<a name="canvas-q-cloudtrail"></a>

AWS CloudTrail é um serviço que registra ações realizadas por usuários, funções ou Serviços da AWS na Amazon SageMaker AI. CloudTrail captura chamadas de API resultantes de suas interações com o Amazon Q Developer (um assistente de IA conversacional) enquanto usa o SageMaker Canvas (uma interface de ML sem código). CloudTrail os dados mostram os detalhes da solicitação, o endereço IP do solicitante, quem fez a solicitação e quando.

Suas interações com o Q Developer são enviadas como chamadas de `SendConversation` API para o serviço SageMaker AI Data Science Assistant, que é um serviço interno que o Canvas utiliza no back-end. A origem do evento para chamadas de API `SendConversation` é `sagemaker-data-science-assistant.amazonaws.com`.

**nota**  
Por motivos de privacidade e segurança, o conteúdo de suas conversas fica oculto nos logs, aparecendo como `HIDDEN_DUE_TO_SECURITY_REASONS` nos elementos de solicitação e resposta.

Para saber mais sobre isso CloudTrail, consulte o [https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html). Para saber mais sobre CloudTrail SageMaker IA, consulte[Registrando chamadas da API Amazon SageMaker AI usando AWS CloudTrail](logging-using-cloudtrail.md).

Este é um exemplo de entrada de log para a 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"
    }
}
```

# importar dados
<a name="canvas-importing-data"></a>

O Amazon SageMaker Canvas oferece suporte à importação de dados tabulares, de imagens e documentos. Você pode importar conjuntos de dados da sua máquina local, de serviços da Amazon, como Amazon S3 e Amazon Redshift, e de fontes de dados externas. Ao importar conjuntos de dados do Amazon S3, você pode trazer um conjunto de dados de qualquer tamanho. Use os conjuntos de dados que você importa para criar modelos e fazer predições para outros conjuntos de dados.

Cada caso de uso para o qual você pode criar um modelo personalizado aceita diferentes tipos de entrada. Por exemplo, se você quiser criar um modelo de classificação de imagem de rótulo único, deverá importar dados de imagem. Para obter mais informações sobre os diversos tipos diferentes de modelo e os dados que eles aceitam, consulte [Como os modelos personalizados funcionam](canvas-build-model.md). Você pode importar dados e criar modelos personalizados no SageMaker Canvas para os seguintes tipos de dados:
+ **Tabular** (CSV, parquet ou tabelas)
  + Categórico: Use dados categóricos para criar modelos personalizados de predição categórica para predição de 2 e 3 ou mais categorias.
  + Numérico: Use dados numéricos para criar modelos personalizados de predição numérica.
  + Texto: Use dados de texto para criar modelos personalizados de predição de texto em várias categorias.
  + Séries temporais: Use dados de séries temporais para criar modelos personalizados de previsão de séries temporais.
+ **Imagem** (JPG ou PNG): Use dados de imagem para criar modelos personalizados de predição de imagem com rótulo único.
+ **Documento** (PDF, JPG, PNG, TIFF) — Os dados do documento são suportados somente para Ready-to-use modelos do SageMaker Canvas. Para saber mais sobre Ready-to-use modelos que podem fazer previsões para dados de documentos, consulte[Ready-to-use modelos](canvas-ready-to-use-models.md).

Você pode importar dados para o Canvas a partir das seguintes fontes de dados:
+ Arquivos locais no seu computador
+ Buckets do Amazon S3
+ Clusters provisionados pelo Amazon Redshift (não do Amazon Redshift sem servidor)
+ AWS Glue Data Catalog por meio da Amazon Athena
+ Amazon Aurora
+ Amazon Relational Database Service (Amazon RDS)
+ Salesforce Data Cloud
+ Snowflake
+ Databricks, SQLServer MariaDB e outros bancos de dados populares por meio de conectores JDBC
+ Mais de 40 plataformas SaaS externas, como SAP OData

Para obter uma lista completa de fontes de dados das quais você pode importar, consulte a tabela a seguir:


| Fonte | Tipo | Tipos de dados compatíveis | 
| --- | --- | --- | 
| Upload de arquivo local | Local | Tabular, Imagem, Documento | 
| Amazon Aurora | Internos da Amazon | Tabular | 
| Bucket do Amazon S3. | Internos da Amazon | Tabular, Imagem, Documento | 
| Amazon RDS | Internos da Amazon | Tabular | 
| Clusters provisionados do Amazon Redshift (não do Redshift sem servidor) | Internos da Amazon | Tabular | 
| AWS Glue Data Catalog (por meio da Amazon Athena) | Internos da Amazon | Tabular | 
| [Databricks](https://www.databricks.com/) | Externo | Tabular | 
| Snowflake | Externo | Tabular | 
| [Salesforce Data Cloud](https://www.salesforce.com/products/genie/overview/) | Externo | Tabular | 
| SQLServer | Externo | Tabular | 
| MySQL | Externo | Tabular | 
| PostgreSQL | Externo | Tabular | 
| MariaDB | Externo | Tabular | 
| [Amplitude](https://docs.aws.amazon.com/appflow/latest/userguide/amplitude.html) | Plataforma SaaS externa | Tabular | 
| [CircleCI](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-circleci.html) | Plataforma SaaS externa | Tabular | 
| [DocuSign Monitorar](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-docusign-monitor.html) | Plataforma SaaS externa | Tabular | 
| [Domo](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-domo.html) | Plataforma SaaS externa | Tabular | 
| [Datadog](https://docs.aws.amazon.com/appflow/latest/userguide/datadog.html) | Plataforma SaaS externa | Tabular | 
| [Dynatrace](https://docs.aws.amazon.com/appflow/latest/userguide/dynatrace.html) | Plataforma SaaS externa | Tabular | 
| [Facebook Ads](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-facebook-ads.html) | Plataforma SaaS externa | Tabular | 
| [Facebook Page Insights](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-facebook-page-insights.html) | Plataforma SaaS externa | Tabular | 
| [Google Ads](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-google-ads.html) | Plataforma SaaS externa | Tabular | 
| [Google Analytics 4](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-google-analytics-4.html) | Plataforma SaaS externa | Tabular | 
| [Google Search Console](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-google-search-console.html) | Plataforma SaaS externa | Tabular | 
| [GitHub](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-github.html) | Plataforma SaaS externa | Tabular | 
| [GitLab](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-gitlab.html) | Plataforma SaaS externa | Tabular | 
| [Infor Nexus](https://docs.aws.amazon.com/appflow/latest/userguide/infor-nexus.html) | Plataforma SaaS externa | Tabular | 
| [Instagram Ads](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-instagram-ads.html) | Plataforma SaaS externa | Tabular | 
| [Jira Cloud](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-jira-cloud.html) | Plataforma SaaS externa | Tabular | 
| [LinkedIn Anúncios](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-linkedin-ads.html) | Plataforma SaaS externa | Tabular | 
| [LinkedIn Anúncios](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-linkedin-ads.html) | Plataforma SaaS externa | Tabular | 
| [Mailchimp](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-mailchimp.html) | Plataforma SaaS externa | Tabular | 
| [Marketo](https://docs.aws.amazon.com/appflow/latest/userguide/marketo.html) | Plataforma SaaS externa | Tabular | 
| [Microsoft Teams](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-microsoft-teams.html) | Plataforma SaaS externa | Tabular | 
| [Mixpanel](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-mixpanel.html) | Plataforma SaaS externa | Tabular | 
| [Okta](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-okta.html) | Plataforma SaaS externa | Tabular | 
| [Salesforce](https://docs.aws.amazon.com/appflow/latest/userguide/salesforce.html) | Plataforma SaaS externa | Tabular | 
| [Salesforce Marketing Cloud](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-salesforce-marketing-cloud.html) | Plataforma SaaS externa | Tabular | 
| [Salesforce Pardot](https://docs.aws.amazon.com/appflow/latest/userguide/pardot.html) | Plataforma SaaS externa | Tabular | 
| [SAP OData](https://docs.aws.amazon.com/appflow/latest/userguide/sapodata.html) | Plataforma SaaS externa | Tabular | 
| [SendGrid](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-sendgrid.html) | Plataforma SaaS externa | Tabular | 
| [ServiceNow](https://docs.aws.amazon.com/appflow/latest/userguide/servicenow.html) | Plataforma SaaS externa | Tabular | 
| [Singular](https://docs.aws.amazon.com/appflow/latest/userguide/singular.html) | Plataforma SaaS externa | Tabular | 
| [Slack](https://docs.aws.amazon.com/appflow/latest/userguide/slack.html) | Plataforma SaaS externa | Tabular | 
| [Stripe](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-stripe.html) | Plataforma SaaS externa | Tabular | 
| [Trend Micro](https://docs.aws.amazon.com/appflow/latest/userguide/trend-micro.html) | Plataforma SaaS externa | Tabular | 
| [Typeform](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-typeform.html) | Plataforma SaaS externa | Tabular | 
| [Veeva](https://docs.aws.amazon.com/appflow/latest/userguide/veeva.html) | Plataforma SaaS externa | Tabular | 
| [Zendesk](https://docs.aws.amazon.com/appflow/latest/userguide/zendesk.html) | Plataforma SaaS externa | Tabular | 
| [Zendesk Chat](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-zendesk-chat.html) | Plataforma SaaS externa | Tabular | 
| [Zendesk Sell](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-zendesk-sell.html) | Plataforma SaaS externa | Tabular | 
| [Zendesk Sunshine](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-zendesk-sunshine.html) | Plataforma SaaS externa | Tabular | 
| [Zoom Meetings](https://docs.aws.amazon.com/appflow/latest/userguide/connectors-zoom.html) | Plataforma SaaS externa | Tabular | 

Para obter instruções sobre como importar dados e informações sobre os requisitos de dados de entrada, como o tamanho máximo do arquivo para imagens, consulte [Criar um conjunto de dados](canvas-import-dataset.md).

O Canvas também fornece vários conjuntos de dados de amostra em sua aplicação para ajudá-lo a começar. Para saber mais sobre os conjuntos de dados SageMaker de amostra fornecidos pela IA que você pode experimentar, consulte [Usar](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-sample-datasets.html) conjuntos de dados de amostra.

Depois de importar um conjunto de dados para o Canvas, você pode atualizar o conjunto de dados a qualquer momento. Você pode fazer uma atualização manual ou configurar um cronograma para atualizações automáticas do conjunto de dados. Para obter mais informações, consulte [Atualizar um conjunto de dados](canvas-update-dataset.md).

Para obter mais informações específicas para cada tipo de conjunto de dados, consulte as seguintes seções:

**Tabular**

Para importar dados de uma fonte de dados externa (como um banco de dados Snowflake ou uma plataforma SaaS), você deve se autenticar e se conectar à fonte de dados na aplicação Canvas. Para obter mais informações, consulte [Conectar-se à fonte de dados](canvas-connecting-external.md).

Se você quiser importar conjuntos de dados maiores que 5 GB do Amazon S3 para o Canvas, você pode obter uma amostragem mais rápida usando o Amazon Athena para consultar e amostrar os dados do Amazon S3.

Depois de criar conjuntos de dados no Canvas, você pode preparar e transformar seus dados usando a funcionalidade de preparação de dados do Data Wrangler. Você pode usar o Data Wrangler para manipular valores ausentes, transformar seus atributos, unir vários conjuntos de dados em um único conjunto de dados e muito mais. Para obter mais informações, consulte [preparação de dados](canvas-data-prep.md).

**dica**  
Desde que seus dados estejam organizados em tabelas, você pode unir conjuntos de dados de várias fontes, como Amazon Redshift, Amazon Athena ou Snowflake.

**Imagem**

Para obter informações sobre como editar um conjunto de dados de imagem e realizar tarefas como atribuir ou reatribuir rótulos, adicionar imagens ou excluir imagens, consulte [Editar um conjunto de dados de imagem](canvas-edit-image.md).

# Criar um conjunto de dados
<a name="canvas-import-dataset"></a>

**nota**  
Se você estiver importando conjuntos de dados maiores que 5 GB para o Amazon SageMaker Canvas, recomendamos que você use o [recurso Data Wrangler](canvas-data-prep.md) no Canvas para criar um fluxo de dados. O Data Wrangler oferece apoio a atributos avançados de preparação de dados, como [junção](canvas-transform.md#canvas-transform-join) e [concatenação](canvas-transform.md#canvas-transform-concatenate) de dados. Depois de criar um fluxo de dados, você pode exportar seu fluxo de dados como um conjunto de dados do Canvas e começar a criar um modelo. Para obter mais informações, consulte [Exportar para criar um modelo](canvas-processing-export-model.md).

As seções a seguir descrevem como criar um conjunto de dados no Amazon SageMaker Canvas. Para modelos personalizados, você pode criar conjuntos de dados para dados tabulares e de imagem. Para Ready-to-use modelos, você pode usar conjuntos de dados tabulares e de imagem, bem como conjuntos de dados de documentos. Escolha seu fluxo de trabalho com base nas informações a seguir:
+ Para dados categóricos, numéricos, de texto e de séries temporais, consulte [Importar dados tabulares](#canvas-import-dataset-tabular).
+ Para dados de imagem, consulte [Importar dados de imagem](#canvas-import-dataset-image).
+ Para obter dados do documento, consulte[Importar dados do documento](#canvas-ready-to-use-import-document).

Um conjunto de dados pode consistir em vários arquivos. Por exemplo, você pode ter vários arquivos de dados de inventário no formato CSV. Você pode carregar esses arquivos juntos como um conjunto de dados, desde que o esquema (ou os nomes das colunas e os tipos de dados) dos arquivos correspondam.

O Canvas também é compatível com o gerenciamento de várias versões do seu conjunto de dados. Quando você cria um conjunto de dados, a primeira versão é rotulada como `V1`. Você pode criar uma nova versão do seu conjunto de dados atualizando seu conjunto de dados. Você pode fazer uma atualização manual ou configurar um cronograma automatizado para atualizar seus conjuntos de dados com dados novos. Para obter mais informações, consulte [Atualizar um conjunto de dados](canvas-update-dataset.md).

Ao importar seus dados para o Canvas, certifique-se de que eles atendam aos requisitos da tabela a seguir. As limitações são específicas para o tipo de modelo que você está criando.


| Limite | Modelos de 2 categorias, 3 ou mais categorias, numéricos e de séries temporais | Modelos de predição de texto | Modelos de predição de imagem | \$1Documentar dados para modelos Ready-to-use | 
| --- | --- | --- | --- | --- | 
| Tipos de arquivos compatíveis |  CSV e Parquet (upload local, Amazon S3 ou bancos de dados) JSON (bancos de dados)  |  CSV e Parquet (upload local, Amazon S3 ou bancos de dados) JSON (bancos de dados)  | JPG, PNG | PDF, JPG, PNG, TIFF | 
| Tamanho máximo do arquivo |  Upload local: 5 GB Fontes de dados: PBs  |  Upload local: 5 GB Fontes de dados: PBs  | 30 MB por imagem | 5 MB por documento | 
| Número máximo de arquivos que você pode carregar por vez | 30 | 30 | N/D | N/D | 
| Número máximo de colunas | 1.000 | 1.000 | N/D | N/D | 
| Número máximo de entradas (linhas, imagens ou documentos) para **Criações rápidas** | N/D | 7.500 linhas | 5.000 imagens | N/D | 
| Número máximo de entradas (linhas, imagens ou documentos) para **Criações padrão** | N/D | 150.000 linhas | 180.000 imagens | N/D | 
| Número mínimo de entradas (linhas) para **Criações rápidas** |  2 categorias: 500 linhas 3 ou mais categorias, numéricas, séries temporais: N/D  | N/D | N/D | N/D | 
| Número mínimo de entradas (linhas, imagens ou documentos) para **Criações padrão** | 250 linhas | 50 linhas | 50 imagens | N/D | 
|  Número mínimo de entradas (linhas ou imagens) por rótulo | N/D | 25 linhas | 25 linhas | N/D | 
| Número mínimo de rótulos |  2 categorias: 2 3 ou mais categorias: 3 Numérico, série temporal: N/D  | 2 | 2 | N/D | 
|  Tamanho mínimo da amostra para amostragem aleatória | 500 | N/D | N/D | N/D | 
|  Tamanho máximo da amostra para amostragem aleatória | 200.000 | N/D | N/D | N/D | 
| Número máximo de rótulos |  2 categorias: 2 3 ou mais categorias, numéricas, séries temporais: N/D  | 1000 | 1000 | N/D | 

\$1Atualmente, os dados do documento são compatíveis apenas com [Ready-to-use modelos](canvas-ready-to-use-models.md) que aceitam dados do documento. Você não pode criar um modelo personalizado com dados do documento.

Observe, também, as seguintes restrições:
+ Ao importar dados de um bucket do Amazon S3, verifique se há um `.` no nome do bucket do Amazon S3. Se o nome do bucket contiver um `.`, você poderá receber erros ao tentar importar dados para o Canvas.
+ Para dados tabulares, o Canvas não permite selecionar qualquer arquivo com extensões diferentes de .csv, .parquet, .parq e .pqt para upload local e importação do Amazon S3. Os arquivos CSV devem ser delimitados por vírgula e não ter caracteres de nova linha, exceto quando denotam uma nova linha.
+ Para dados tabulares usando arquivos Parquet, observe o seguinte:
  + Os arquivos Parquet não podem incluir tipos complexos, como mapas e listas.
  + Os nomes das colunas dos arquivos do Parquet não podem conter espaços.
  + Se estiver usando compactação, os arquivos Parquet devem usar os tipos de compactação gzip ou snappy. Para obter mais informações sobre os tipos de compactação anteriores, consulte a [documentação do gzip](https://www.gzip.org/) e a [documentação do snappy](https://github.com/google/snappy).
+ Para dados de imagem, se você tiver imagens não rotuladas, deverá rotulá-las antes de criar seu modelo. Para obter informações sobre como atribuir rótulos a imagens dentro da aplicação Canvas, consulte [Editar um conjunto de dados de imagem](canvas-edit-image.md).
+ Se você configurar atualizações automáticas de conjuntos de dados ou configurações automáticas de predição em lote, só poderá criar um total de 20 configurações em sua aplicação Canvas. Para obter mais informações, consulte [Como gerenciar automações](canvas-manage-automations.md).

Depois de importar um conjunto de dados, você pode visualizá-lo na página **Conjuntos de dados** a qualquer momento.

## Importar dados tabulares
<a name="canvas-import-dataset-tabular"></a>

Com os conjuntos de dados tabulares, você pode criar modelos de predição categóricos, numéricos, de séries temporais e de texto. Revise as limitações na seção anterior **Importar conjunto de dados** para garantir que o conjunto de dados de imagem atenda aos requisitos de dados da imagem.

Use o seguinte procedimento para importar um conjunto de dados tabular para o Canvas:

1. Abra seu aplicativo SageMaker Canvas.

1. No painel de navegação à esquerda, selecione **Conjunto de dados**.

1. Escolha **Importar dados**.

1. No menu suspenso, escolha **Tabular**.

1. Na caixa de diálogo pop-up, no campo **Nome do conjunto de dados**, insira um nome para o conjunto de dados e escolha **Criar**.

1. Na página **Criar conjunto de dados tabular**, abra o menu suspenso **Fonte de dados**.

1. Selecione sua fonte de dados:
   + Para fazer upload de arquivos do seu computador, selecione **Upload local**.
   + Para importar dados de outra fonte, como um bucket do Amazon S3 ou um banco de dados Snowflake, pesquise sua fonte de dados na **barra de pesquisa de fonte de dados**. Em seguida, escolha o bloco para a fonte de dados desejada.
**nota**  
Você só pode importar dados dos blocos que têm uma conexão ativa. Se você quiser se conectar a uma fonte de dados que não está disponível para você, entre em contato com o administrador. Se você for administrador, consulte [Conectar-se à fonte de dados](canvas-connecting-external.md).

   A captura de tela a seguir mostra o menu suspenso **Fonte de dados**.  
![\[Captura de tela mostrando o menu suspenso Fonte de dados e uma busca por uma fonte de dados na barra de pesquisa.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/import-data-choose-source.png)

1. (Opcional) Se você estiver se conectando a um banco de dados Amazon Redshift ou Snowflake pela primeira vez, uma caixa de diálogo será exibida para criar uma conexão. Preencha a caixa de diálogo com suas credenciais e escolha **Criar conexão**. Se você já tiver uma conexão, escolha sua conexão.

1. Na sua fonte de dados, selecione os arquivos a serem importados. Para upload e importação locais do Amazon S3, você pode selecionar arquivos. Somente para o Amazon S3, você também tem a opção de inserir diretamente o URI, o alias ou o ARN do S3 do seu bucket ou ponto de acesso do S3 no campo **Entrada do S3 endpoint** e, em seguida, escolher os arquivos a serem importados. Para fontes de banco de drag-and-drop dados, você pode usar tabelas de dados no painel de navegação esquerdo.

1. (Opcional) Para fontes de dados tabulares compatíveis com consultas SQL (como Amazon Redshift, Amazon Athena ou Snowflake), você pode escolher **Editar em SQL** para fazer consultas SQL e unir tabelas antes de importá-las.

   A captura de tela a seguir mostra a visualização **Editar SQL** de uma fonte de dados do Amazon Athena.  
![\[Captura de tela mostrando uma consulta SQL na visualização Editar SQL para dados do Amazon Athena.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/import-data-edit-sql.png)

1. Selecione **Visualizar conjunto de dados** para visualizar seus dados antes de importá-los.

1. Nas **Configurações de importação**, insira o **nome do conjunto de dados** ou use o nome padrão do conjunto de dados.

1. (Opcional) Para dados que você importa do Amazon S3, você vê as configurações **avançadas** e pode preencher os seguintes campos:

   1. Ative a opção **Usar primeira linha como cabeçalho** se quiser usar a primeira linha do seu conjunto de dados como os nomes das colunas. Se você selecionou vários arquivos, isso se aplica a cada arquivo.

   1. Se você estiver importando um arquivo CSV, no menu **Codificação de arquivo (CSV)**, selecione a codificação do arquivo do conjunto de dados. `UTF-8` é o padrão.

   1. No menu suspenso **Delimitador**, selecione o delimitador que separa cada célula em seus dados. O delimitador padrão é `,`. Você também pode especificar um delimitador personalizado.

   1. Selecione **Detecção de várias linhas** se quiser que o Canvas analise manualmente todo o seu conjunto de dados para células de várias linhas. Por padrão, essa opção não está selecionada e o Canvas determina se deve ou não usar a compatibilidade com várias linhas tirando uma amostra dos seus dados. No entanto, o Canvas pode não detectar nenhuma célula de várias linhas na amostra. Se você tiver células de várias linhas, recomendamos que você selecione a opção **Detecção de várias linhas** para forçar o Canvas a verificar todo o conjunto de dados em busca de células com várias linhas.

1. Quando você estiver pronto para importar seus dados, escolha **Criar conjunto de dados**.

Enquanto seu conjunto de dados está sendo importado para o Canvas, você pode ver seus conjuntos de dados listados na página **Conjuntos de dados**. Nesta página, você pode [Visualizar os detalhes do conjunto de dados](#canvas-view-dataset-details).

Quando o **Status** do seu conjunto de dados é exibido como `Ready`, o Canvas importou seus dados com sucesso e você pode continuar com a [construção de um modelo](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html).

Se você tiver uma conexão com uma fonte de dados, como um banco de dados do Amazon Redshift ou um conector SaaS, poderá retornar a essa conexão. Para o Amazon Redshift e o Snowflake, você pode adicionar outra conexão criando outro conjunto de dados, retornando à página **Importar dados** e escolhendo o bloco da **fonte de dados** para essa conexão. No menu suspenso, você pode abrir a conexão anterior ou escolher **Adicionar conexão**.

**nota**  
Para plataformas SaaS, você só pode ter uma conexão por fonte de dados.

## Importar dados de imagem
<a name="canvas-import-dataset-image"></a>

Com conjuntos de dados de imagem, você pode criar modelos personalizados de predição de imagem de rótulo único que preveem um rótulo para uma imagem. Revise as limitações na seção anterior **Importar conjunto de dados** para garantir que o conjunto de dados de imagem atenda aos requisitos de dados da imagem.

**nota**  
Você só pode importar conjuntos de dados de imagens por upload de arquivo local ou de um bucket do Amazon S3. Além disso, para conjuntos de dados de imagens, você deve ter pelo menos 25 imagens por rótulo.

Use o seguinte procedimento para importar um conjunto de dados de imagem para o Canvas:

1. Abra seu aplicativo SageMaker Canvas.

1. No painel de navegação à esquerda, selecione **Conjunto de dados**.

1. Escolha **Importar dados**.

1. No menu suspenso, escolha **Imagem**.

1. Na caixa de diálogo pop-up, no campo **Nome do conjunto de dados**, insira um nome para o conjunto de dados e escolha **Criar**.

1. Na página **Importar**, abra o menu suspenso **Fonte de dados**.

1. Selecione sua fonte de dados. Para fazer upload de arquivos do seu computador, selecione **Upload local**. Para importar arquivos do Amazon S3, escolha **Amazon S3**.

1. No seu computador ou bucket do Amazon S3, selecione as imagens ou pastas de imagens que você deseja carregar.

1. Quando você estiver pronto para importar seus dados, escolha **Importar dados**.

Enquanto seu conjunto de dados está sendo importado para o Canvas, você pode ver seus conjuntos de dados listados na página **Conjuntos de dados**. Nesta página, você pode [Visualizar os detalhes do conjunto de dados](#canvas-view-dataset-details).

Quando o **Status** do seu conjunto de dados é exibido como `Ready`, o Canvas importou seus dados com sucesso e você pode continuar com a [construção de um modelo](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html).

Ao criar seu modelo, você pode editar seu conjunto de dados de imagem e atribuir ou reatribuir rótulos, adicionar imagens ou excluir imagens do seu conjunto de dados. Para obter mais informações sobre como editar seu conjunto de dados de imagens, consulte [Editar um conjunto de dados de imagem](canvas-edit-image.md).

## Importar dados do documento
<a name="canvas-ready-to-use-import-document"></a>

Os Ready-to-use modelos para análise de despesas, análise de documentos de identidade, análise de documentos e consultas de documentos oferecem suporte aos dados do documento. Você não pode criar um modelo personalizado com dados do documento.

Com conjuntos de dados de documentos, você pode gerar previsões para modelos de análise de despesas, análise de documentos de identidade, análise de documentos e consultas Ready-to-use de documentos. Revise a tabela de limitações na seção [Criar um conjunto de dados](#canvas-import-dataset) para garantir que o conjunto de dados do documento atenda aos requisitos de dados do documento.

**nota**  
Você só pode importar conjuntos de dados de documentos por upload de arquivo local ou de um bucket do Amazon S3.

Use o seguinte procedimento para importar um conjunto de dados do documento para o Canvas:

1. Abra seu aplicativo SageMaker Canvas.

1. No painel de navegação à esquerda, selecione **Conjunto de dados**.

1. Escolha **Importar dados**.

1. No menu suspenso, escolha **Documento**.

1. Na caixa de diálogo pop-up, no campo **Nome do conjunto de dados**, insira um nome para o conjunto de dados e escolha **Criar**.

1. Na página **Importar**, abra o menu suspenso **Fonte de dados**.

1. Selecione sua fonte de dados. Para fazer upload de arquivos do seu computador, selecione **Upload local**. Para importar arquivos do Amazon S3, escolha **Amazon S3**.

1. No seu computador ou bucket do Amazon S3, selecione os arquivos de documentos que você deseja carregar.

1. Quando você estiver pronto para importar seus dados, escolha **Importar dados**.

Enquanto seu conjunto de dados está sendo importado para o Canvas, você pode ver seus conjuntos de dados listados na página **Conjuntos de dados**. Nesta página, você pode [Visualizar os detalhes do conjunto de dados](#canvas-view-dataset-details).

Quando o **Status** do seu conjunto de dados é exibido como `Ready`, o Canvas importou seus dados com sucesso.

Na página **Conjuntos de dados**, você pode escolher seu conjunto de dados para visualizá-lo, o que mostra até os primeiros 100 documentos do seu conjunto de dados.

## Visualizar os detalhes do conjunto de dados
<a name="canvas-view-dataset-details"></a>



Para cada um dos seus conjuntos de dados, você pode visualizar todos os arquivos em um conjunto de dados, o histórico de versões do conjunto de dados e todas as configurações de atualização automática do conjunto de dados. Na página **Conjunto de dados**, você também pode iniciar ações como [Atualizar um conjunto de dados](canvas-update-dataset.md) ou [Como os modelos personalizados funcionam](canvas-build-model.md).

Para visualizar os detalhes de um conjunto de dados, faça o seguinte:

1. Abra o aplicativo SageMaker Canvas.

1. No painel de navegação à esquerda, selecione **Conjunto de dados**.

1. Na lista de conjuntos de dados, escolha seu conjunto de dados.

Na guia **Dados**, você pode ver uma prévia dos seus dados. Se você escolher **Detalhes do conjunto de dados**, poderá ver todos os arquivos que fazem parte do seu conjunto de dados. Escolha um arquivo para ver somente os dados desse arquivo na visualização. Para conjuntos de dados de imagens, a visualização mostra apenas as 100 primeiras imagens do seu conjunto de dados.

Na guia **Histórico de versões**, você pode ver uma lista de todas as versões do seu conjunto de dados. Uma nova versão é criada sempre que você atualiza um conjunto de dados. Para saber mais sobre como atualizar um conjunto de dados, consulte [Atualizar um conjunto de dados](canvas-update-dataset.md). A captura de tela a seguir mostra a guia **Histórico de versões** na aplicação Canvas.

![\[Captura de tela da guia Histórico de versões de um conjunto de dados, com uma lista das versões do conjunto de dados.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-version-history.png)


Na guia **Atualizações automáticas**, você pode habilitar as atualizações automáticas para o conjunto de dados e definir uma configuração para atualizar seu conjunto de dados regularmente. Para saber mais sobre como configurar atualizações automáticas para um conjunto de dados, consulte [Configurar atualizações automáticas para um conjunto de dados](canvas-update-dataset-auto.md). A captura de tela a seguir mostra a guia **Atualizações automáticas** com as atualizações automáticas ativadas e uma lista dos trabalhos de atualização automática que foram executados no conjunto de dados.

![\[A Atualizações automáticas para um conjunto de dados mostrando as atualizações automáticas habilitadas e uma lista dos trabalhos de atualização automática.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-auto-updates.png)


# Atualizar um conjunto de dados
<a name="canvas-update-dataset"></a>

Depois de importar seu conjunto de dados inicial para o Amazon SageMaker Canvas, você pode ter dados adicionais que deseja adicionar ao seu conjunto de dados. Por exemplo, você pode obter dados de inventário no final de cada semana que deseja adicionar ao seu conjunto de dados. Em vez de importar seus dados várias vezes, você pode atualizar seu conjunto de dados existente e adicionar ou remover arquivos dele.

**nota**  
Você só pode atualizar conjuntos de dados importados por meio de upload local ou do Amazon S3.

Você pode atualizar seu conjunto de dados manual ou automaticamente. Para obter mais informações sobre como configurar a atualizações automáticas de conjuntos de dados, consulte [Configurar atualizações automáticas para um conjunto de dados](canvas-update-dataset-auto.md).

Toda vez que você atualiza seu conjunto de dados, o Canvas cria uma nova versão dele. Você pode usar somente a versão mais recente do seu conjunto de dados para criar um modelo ou gerar predições. Para obter mais informações sobre como visualizar o histórico de versões do seu conjunto de dados, consulte [Visualizar os detalhes do conjunto de dados](canvas-import-dataset.md#canvas-view-dataset-details).

Você também pode usar atualizações de conjuntos de dados com predições de lote automatizadas, o que inicia um trabalho de predição em lote sempre que você atualiza seu conjunto de dados. Para obter mais informações, consulte [Previsões em lote no Canvas SageMaker](canvas-make-predictions-batch.md).

As seções a seguir descrevem como fazer atualizações manuais e automáticas em seu conjunto de dados.

## Atualizar manualmente um conjunto de dados
<a name="canvas-update-dataset-manual"></a>

Para fazer uma atualização manual, faça o seguinte:

1. Abra o aplicativo SageMaker Canvas.

1. No painel de navegação à esquerda, selecione **Conjunto de dados**.

1. Na lista de conjuntos de dados, escolha o conjunto de dados que você deseja atualizar.

1. Escolha o menu suspenso **Atualizar conjunto de dados** e escolha **Atualização manual**. Você será direcionado ao fluxo de trabalho de importação de dados.

1. No menu suspenso **Fonte de dados**, escolha **Upload local** ou **Amazon S3**.

1. A página mostra uma prévia dos seus dados. A partir daqui, você pode adicionar ou remover arquivos do conjunto de dados. Se você estiver importando dados tabulares, o esquema dos novos arquivos (nomes de colunas e tipos de dados) deverá corresponder ao esquema dos arquivos existentes. Além disso, seus novos arquivos não devem exceder o tamanho máximo do conjunto de dados ou do arquivo. Para obter mais informações sobre essas limitações, consulte [Importar conjunto de dados](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-import-dataset.html).
**nota**  
Se você adicionar um arquivo com o mesmo nome de um arquivo existente no seu conjunto de dados, o novo arquivo substituirá a versão antiga do arquivo.

1. Quando estiver pronto para salvar suas alterações, escolha **Atualizar conjunto de dados**.

Agora você tem uma nova versão do conjunto de dados.

Na página **Conjuntos de dados**, você pode escolher a guia **Histórico da versões** para ver todas as versões do seu conjunto de dados e o histórico das atualizações manuais e automáticas que você fez.

# Configurar atualizações automáticas para um conjunto de dados
<a name="canvas-update-dataset-auto"></a>

Depois de importar seu conjunto de dados inicial para o Amazon SageMaker Canvas, você pode ter dados adicionais que deseja adicionar ao seu conjunto de dados. Por exemplo, você pode obter dados de inventário no final de cada semana que deseja adicionar ao seu conjunto de dados. Em vez de importar seus dados várias vezes, você pode atualizar seu conjunto de dados existente e adicionar ou remover arquivos dele.

**nota**  
Você só pode atualizar conjuntos de dados importados por meio de upload local ou do Amazon S3.

Com as atualizações automáticas de conjunto de dados, você especifica um local onde o Canvas verifica os arquivos na frequência especificada por você. Se você importar novos arquivos durante a atualização, o esquema dos arquivos deverá corresponder exatamente ao conjunto de dados existente.

Toda vez que você atualiza seu conjunto de dados, o Canvas cria uma nova versão dele. Você pode usar somente a versão mais recente do seu conjunto de dados para criar um modelo ou gerar predições. Para obter mais informações sobre como visualizar o histórico de versões do seu conjunto de dados, consulte [Visualizar os detalhes do conjunto de dados](canvas-import-dataset.md#canvas-view-dataset-details).

Você também pode usar atualizações de conjuntos de dados com predições de lote automatizadas, o que inicia um trabalho de predição em lote sempre que você atualiza seu conjunto de dados. Para obter mais informações, consulte [Previsões em lote no Canvas SageMaker](canvas-make-predictions-batch.md).

As seções a seguir descrevem como fazer atualizações manuais e automáticas em seu conjunto de dados.

Uma atualização automática é quando você define uma configuração para o Canvas atualizar seu conjunto de dados em uma determinada frequência. Recomendamos que você use essa opção se receber regularmente novos arquivos de dados que deseja adicionar ao seu conjunto de dados.

Ao definir a configuração de atualização automática, você especifica um local do Amazon S3 para carregar seus arquivos e uma frequência na qual o Canvas verifica o local e importa arquivos. Cada instância do Canvas que atualiza seu conjunto de dados é chamada de *trabalho*. Para cada trabalho, o Canvas importa todos os arquivos no local do Amazon S3. Se você adicionar novos arquivos com o mesmo nome de arquivos existentes no seu conjunto de dados, o Canvas substituirá os arquivos antigos pelos novos.

Para atualizações automáticas do conjunto de dados, o Canvas não realiza a validação do esquema. Se o esquema dos arquivos importados durante uma atualização automática não corresponder ao esquema dos arquivos existentes ou exceder as limitações de tamanho (consulte [Importar conjunto de dados](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-import-dataset.html) para obter uma tabela de limitações de tamanho de arquivo), você receberá erros quando seus trabalhos forem executados.

**nota**  
Você só pode definir no máximo 20 configurações automáticas no sua aplicação Canvas. Além disso, o Canvas só faz atualizações automáticas enquanto você está conectado à sua aplicação Canvas. Se você se desconectar da sua aplicação Canvas, as atualizações automáticas serão pausadas até que você faça login novamente.

Para configurar atualizações automáticas para seu conjunto de dados, faça o seguinte:

1. Abra o aplicativo SageMaker Canvas.

1. No painel de navegação à esquerda, selecione **Conjunto de dados**.

1. Na lista de conjuntos de dados, escolha o conjunto de dados que você deseja atualizar.

1. Escolha o menu suspenso **Atualizar conjunto de dados** e escolha **Atualização automática**. Você será direcionado para a guia **Atualizações automáticas** do conjunto de dados.

1. Ative o botão **Habilitar atualização automática**.

1. Em **Especificar uma fonte de dados**, insira o caminho do Amazon S3 da pasta na qual você planeja fazer upload de arquivos regularmente.

1. Em **Escolher uma frequência**, selecione **Por hora**, **Semanalmente** ou **Diariamente**.

1. Em **Especificar um horário de início**, use o calendário e o seletor de horário para selecionar quando você deseja que o primeiro trabalho de atualização automática seja iniciado.

1. Quando estiver pronto para criar a configuração de atualização automática, selecione **Salvar**.

O Canvas iniciará o primeiro trabalho de sua cadência de atualização automática no horário de início especificado.

# Visualizar seus trabalhos de atualização automática do conjunto de dados
<a name="canvas-update-dataset-auto-view"></a>

Para visualizar o histórico de trabalhos das atualizações automáticas do conjunto de dados no Amazon SageMaker Canvas, na página de detalhes do conjunto de dados, escolha a guia **Atualizações automáticas**.

Cada atualização automática de um conjunto de dados é exibida como um trabalho na guia **Atualizações automáticas**, na seção **Histórico de trabalhos**. Para cada trabalho, você verá o seguinte:
+ **Trabalho criado**: O carimbo de data-hora de quando o Canvas começou a atualizar o conjunto de dados.
+ **Arquivos**: O número de arquivos no conjunto de dados.
+ **Células (colunas x linhas)**: O número de colunas e linhas no conjunto de dados.
+ **Status**: O status do conjunto de dados após a atualização. Se o trabalho tiver sido bem-sucedido, o status será **Pronto**. Se o trabalho falhar por algum motivo, o status será **Com falha** e você poderá passar o mouse sobre o status para obter mais detalhes.

# Editar sua configuração de atualização automática do conjunto de dados
<a name="canvas-update-dataset-auto-edit"></a>

É possível fazer alterações na configuração de atualização automática de um conjunto de dados, como alterar a frequência das atualizações. Você também pode desativar sua configuração de atualização automática para pausar as atualizações do seu conjunto de dados.

Para fazer alterações na configuração de atualização automática de um conjunto de dados, acesse a guia **Atualizações automáticas** do seu conjunto de dados e escolha **Editar** para fazer alterações na configuração.

Para pausar as atualizações do conjunto de dados, desative sua configuração automática. Você pode desativar as atualizações automáticas acessando a guia **Atualizações automáticas** do seu conjunto de dados e desativando a opção **Habilitar atualizações automáticas**. Você pode reativar essa opção a qualquer momento para retomar o cronograma de atualizações.

Para saber como excluir sua configuração, consulte [Excluir uma configuração automática](canvas-manage-automations-delete.md).

# Conectar-se à fonte de dados
<a name="canvas-connecting-external"></a>

No Amazon SageMaker Canvas, você pode importar dados de um local fora do seu sistema de arquivos local por meio de um AWS serviço, uma plataforma SaaS ou outros bancos de dados usando conectores JDBC. Por exemplo, para importar tabelas de um data warehouse no Amazon Redshift ou para importar dados do Google Analytics.

Ao passar pelo fluxo de trabalho de **Importação** para importar dados na aplicação Canvas, você pode escolher sua fonte de dados e, em seguida, selecionar os dados que deseja importar. Para determinadas fontes de dados, como o Snowflake e o Amazon Redshift, você deve especificar suas credenciais e adicionar uma conexão à fonte de dados.

A captura de tela a seguir mostra a barra de ferramentas das fontes de dados no fluxo de trabalho de **Importação**, com todas as fontes de dados disponíveis destacadas. Você só pode importar dados das fontes de dados que estão disponíveis para você. Entre em contato com o administrador se a fonte de dados desejada não estiver disponível.

![\[Menu suspenso Fonte de dados da página Importar dados no Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/data-sources.png)


As seções a seguir fornecem informações sobre como estabelecer conexões com fontes de dados externas e importar dados delas. Analise primeiro a seção a seguir para determinar quais permissões você precisa para importar dados da sua fonte de dados.

## Permissões
<a name="canvas-connecting-external-permissions"></a>

Analise as informações a seguir para garantir que você tenha as permissões necessárias para importar dados da sua fonte de dados:
+ **Amazon S3:** você pode importar dados de qualquer bucket do Amazon S3, desde que seu usuário tenha permissões para acessar o bucket. *Para obter mais informações sobre o uso AWS do IAM para controlar o acesso aos buckets do Amazon S3, consulte [Gerenciamento de identidade e acesso no Amazon S3 no Guia do usuário do](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html) Amazon S3.*
+ **Amazon Athena:** Se você tiver a [AmazonSageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html)política e a [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)política vinculadas à função de execução do seu usuário, poderá consultá-la AWS Glue Data Catalog com o Amazon Athena. Se você faz parte de um grupo de trabalho do Athena, certifique-se de que o usuário do Canvas tenha as permissões para executar consultas do Athena nos dados. Para obter mais informações, consulte [Usar grupos de trabalho para executar consultas](https://docs.aws.amazon.com/athena/latest/ug/workgroups.html) no *Manual do usuário do Amazon Athena*.
+ **Amazon DocumentDB:** você pode importar dados de qualquer banco de dados do Amazon DocumentDB, desde que tenha as credenciais (nome de usuário e senha) para se conectar ao banco de dados e tenha as permissões básicas mínimas do Canvas associadas perfil de execução do usuário. Para obter mais informações sobre as permissões do Canvas, consulte [Pré-requisitos para configurar o Amazon Canvas SageMaker](canvas-getting-started.md#canvas-prerequisites).
+ **Amazon Redshift:** para dar a si mesmo as permissões necessárias para importar dados do Amazon Redshift, consulte [Conceder permissões aos usuários para importar dados do Amazon Redshift](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-redshift-permissions.html).
+ **Amazon RDS:** Se você tiver a [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)política anexada à função de execução do seu usuário, poderá acessar seus bancos de dados do Amazon RDS a partir do Canvas.
+ **Plataformas SaaS:** se você tiver a [AmazonSageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html)política e a [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)política vinculadas à função de execução do seu usuário, terá as permissões necessárias para importar dados das plataformas SaaS. Consulte [Usar conectores SaaS com o Canvas](#canvas-connecting-external-appflow) para obter mais informações sobre como se conectar-se a um conector SaaS específico.
+ **Conectores JDBC:** para fontes de banco de dados como Databricks, MySQL ou MariaDB, você deve habilitar a autenticação de nome de usuário e senha no banco de dados de origem antes de tentar se conectar a partir do Canvas. Se você estiver se conectando a um banco de dados do Databricks, deverá ter o URL do JDBC que contém as credenciais necessárias.

## Conecte-se a um banco de dados armazenado em AWS
<a name="canvas-connecting-internal-database"></a>

Talvez você queira importar os dados que você armazenou AWS. Você pode importar dados do Amazon S3, usar o Amazon Athena para consultar um banco de dados no, importar dados AWS Glue Data Catalog do [Amazon RDS ou fazer uma conexão com um banco de dados provisionado do Amazon](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) Redshift (não com o Redshift Serverless).

Você pode criar várias conexões com o Amazon Redshift. No Amazon Athena, você pode acessar qualquer banco de dados existente em seu [AWS Glue Data Catalog](https://docs.aws.amazon.com/prescriptive-guidance/latest/serverless-etl-aws-glue/aws-glue-data-catalog.html). No Amazon S3, você pode importar dados de um bucket, desde que tenha as permissões necessárias.

Para obter mais informações, verifique as seções a seguir.

### Conectar-se aos dados no Amazon S3, Amazon Athena ou Amazon RDS
<a name="canvas-connecting-internal-database-s3-athena"></a>

No Amazon S3, você pode importar dados de qualquer bucket do Amazon S3, desde que tenha permissões para acessar o bucket.

Para o Amazon Athena, você pode acessar bancos de dados em seu, AWS Glue Data Catalog desde que tenha permissões por meio do seu grupo de trabalho do [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/manage-queries-control-costs-with-workgroups.html).

Para o Amazon RDS, se você tiver a [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)política anexada à sua função de usuário, poderá importar dados de seus bancos de dados do Amazon RDS para o Canvas.

Para importar dados de um bucket do Amazon S3 ou para executar consultas e importar tabelas de dados com o Amazon Athena, consulte [Criar um conjunto de dados](canvas-import-dataset.md). Você pode importar somente dados tabulares do Amazon Athena e pode importar dados tabulares e de imagem do Amazon S3.

### Conecte-se a um conjunto de dados Amazon DocumentDB
<a name="canvas-connecting-docdb"></a>

O Amazon DocumentDB é um serviço de banco de dados de documentos totalmente gerenciado e com tecnologia sem servidor. Você pode importar dados de documentos não estruturados armazenados em um banco de dados Amazon DocumentDB SageMaker para o Canvas como um conjunto de dados tabular e, em seguida, criar modelos de aprendizado de máquina com os dados.

**Importante**  
Seu domínio de SageMaker IA deve ser configurado **somente no modo VPC** para adicionar conexões ao Amazon DocumentDB. Você só pode acessar clusters do Amazon DocumentDB na mesma Amazon VPC da sua aplicação Canvas. Além disso, o Canvas só pode se conectar a clusters Amazon DocumentDB habilitados para TLS. Para obter mais informações sobre como configurar o Canvas no modo **somente VPC**, consulte. [Configurar o Amazon SageMaker Canvas em uma VPC sem acesso à Internet](canvas-vpc.md)

Para importar dados dos bancos de dados do Amazon DocumentDB, você deve ter credenciais para acessar o banco de dados do Amazon DocumentDB e especificar o nome de usuário e a senha ao criar uma conexão com o banco de dados. Você pode configurar permissões mais granulares e restringir o acesso modificando as permissões de usuário do Amazon DocumentDB. Para saber mas sobre o controle de acesso no Amazon DocumentDB, consulte [Acesso ao banco de dados usando controle de acesso baseado em funções](https://docs.aws.amazon.com/documentdb/latest/developerguide/role_based_access_control.html) no *Guia do desenvolvedor do Amazon DocumentDB.*

Quando você importa do Amazon DocumentDB, o Canvas converte seus dados não estruturados em um conjunto de dados tabular mapeando os campos em colunas em uma tabela. Tabelas adicionais são criadas para cada campo complexo (ou estrutura aninhada) nos dados, onde as colunas correspondem aos subcampos do campo complexo. Para obter informações mais detalhadas sobre esse processo e exemplos de conversão de esquema, consulte a página [Amazon DocumentDB JDBC Driver](https://github.com/aws/amazon-documentdb-jdbc-driver/blob/develop/src/markdown/schema/schema-discovery.md) Schema Discovery. GitHub 

O Canvas só pode fazer uma conexão com um único banco de dados no Amazon DocumentDB. Para importar dados de um banco de dados diferente, crie uma nova conexão.

É possível importar dados do Amazon DocumentDB para o Canvas usando os seguintes métodos:
+ [Criar um conjunto de dados](canvas-import-dataset.md). Você pode importar seus dados do Amazon DocumentDB e criar um conjunto de dados tabular no Canvas. Se você escolher esse método, siga o procedimento [Importar dados tabulares](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-import-dataset.html#canvas-import-dataset-tabular).
+ [Criar um conjunto de dados](canvas-data-flow.md). Você pode criar um pipeline de preparação de dados no Canvas e adicionar seu banco de dados Amazon DocumentDB como fonte de dados.

Para continuar com a importação de seus dados, siga o procedimento de um dos métodos vinculados na lista anterior.

Ao chegar à etapa em qualquer fluxo de trabalho para escolher uma fonte de dados (Etapa 6 para criar um conjunto de dados ou Etapa 8 para criar um fluxo de dados), faça o seguinte:

1. Em **Fonte de dados**, abra o menu suspenso e escolha **DocumentDB**.

1. Escolha **Adicionar conexão**.

1. Na caixa de diálogo, especifique suas credenciais do Amazon DocumentDB:

   1. Insira um **Nome de conexão**. Isso é um nome usado pelo Canvas para identificar esta conexão.

   1. Para **Cluster**, selecione o cluster no Amazon DocumentDB que armazena seus dados. O Canvas preenche automaticamente o menu suspenso com clusters Amazon DocumentDB na mesma VPC da sua aplicação Canvas.

   1. Insira o **nome de usuário** do seu cluster do Amazon DocumentDB.

   1. Insira a **senh**a para seu cluster do Amazon DocumentDB.

   1. Insira o nome do **conjunto de dados** ao qual deseja se conectar.

   1. A opção de **Preferência de leitura** determina de quais tipos de instâncias no seu cluster Canvas lê os dados. Selecione um dos seguintes:
      + **Preferencial secundário**: O Canvas usa como padrão a leitura das instâncias secundárias do cluster, mas se uma instância secundária não estiver disponível, o Canvas lê a partir de uma instância primária.
      + **Secundário**: O Canvas lê somente as instâncias secundárias do cluster, o que impede que as operações de leitura interfiram nas operações regulares de leitura e gravação do cluster.

   1. Escolha **Adicionar conexão**. A imagem a seguir mostra a caixa de diálogo com os campos anteriores para uma conexão do Amazon DocumentDB.  
![\[Captura de tela da caixa de diálogo Adicionar uma nova conexão do DocumentDB no Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/add-docdb-connection.png)

Agora você deve ter uma conexão com o Amazon DocumentDB e pode usar seus dados do Amazon DocumentDB no Canvas para criar um conjunto de dados ou um fluxo de dados.

### Conectar-se a um banco de dados do Amazon Redshift
<a name="canvas-connecting-redshift"></a>

Você pode importar dados do Amazon Redshift, um data warehouse onde sua organização guarda seus dados. Antes de importar dados do Amazon Redshift, a função do AWS IAM que você usa deve ter a política `AmazonRedshiftFullAccess` gerenciada anexada. Para obter instruções sobre como anexar esta política, consulte [Conceder permissões aos usuários para importar dados do Amazon Redshift](canvas-redshift-permissions.md). 

Para importar dados do Amazon Redshift, faça o seguinte:

1. Crie uma conexão com um banco de dados do Amazon Redshift.

1. Alterar os dados que você quer importar.

1. Importe os dados.

Você pode usar o editor Amazon Redshift para arrastar conjuntos de dados para o painel de importação e importá-los para o Canvas. SageMaker Para obter mais controle sobre os valores retornados no conjunto de dados, use o seguinte:
+ Consultas SQL
+ Junções

As consultas SQL permitem que você personalize a forma como você importa os valores no conjunto de dados. Por exemplo, você pode especificar as colunas retornadas no conjunto de dados ou o intervalo de valores de uma coluna.

Você pode usar junções para combinar vários conjuntos de dados do Amazon Redshift em um único conjunto de dados. Você pode arrastar seus conjuntos de dados do Amazon Redshift para o painel que permite juntar os conjuntos de dados.

Você pode usar o editor SQL para editar o conjunto de dados que você juntou e converter o conjunto de dados associado em um único nó. Você pode juntar outro conjunto de dados ao nó. Você pode importar os dados que você selecionou para o SageMaker Canvas.

Use o procedimento a seguir para importar dados do Amazon Redshift.

1. No aplicativo SageMaker Canvas, acesse a página **Conjuntos de dados**.

1. Escolha **Criar** e, no menu suspenso, escolha **Tabular**.

1. Insira um nome para o conjunto de dados e escolha **Criar**.

1. Em **Fonte de dados**, abra o menu suspenso e escolha **Redshift**.

1. Escolha **Adicionar conexão**.

1. Na caixa de diálogo, especifique suas credenciais do Amazon Redshift:

   1. Em **Método de autenticação**, escolha **IAM**.

   1. Insira o **Identificador de cluster** para especificar a qual cluster você deseja se conectar. Insira somente o identificador do cluster e não o endpoint completo do cluster do Amazon Redshift.

   1. Insira o **Nome do banco de dados** ao qual deseja se conectar.

   1. Insira um **Usuário do banco de dados** para identificar o usuário que você deseja usar para se conectar ao banco de dados.

   1. Para o **ARN**, insira o ARN do perfil do IAM da função que o cluster do Amazon Redshift deve assumir para mover e gravar dados no Amazon S3. Para obter mais informações sobre essa função, consulte [Autorizar o Amazon Redshift a acessar AWS outros serviços em seu nome no Guia](https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html) de gerenciamento do *Amazon Redshift*.

   1. Insira um **Nome de conexão**. Isso é um nome usado pelo Canvas para identificar esta conexão.

1. Na guia que tem o nome da sua conexão, arraste o arquivo .csv que você está importando para o painel **Arrastar e soltar tabela para importar**.

1. Opcional: arraste tabelas adicionais para o painel de importação. Você pode usar a GUI para juntar as tabelas. Para obter mais especificidade em suas junções, escolha **Editar em SQL**.

1. Opcional: se você estiver usando SQL para consultar os dados, poderá escolher **Contexto** para adicionar contexto à conexão especificando valores para o seguinte:
   + **Warehouse**
   + **Banco de dados**
   + **Schema**

1. Escolha **Importar dados**.

A imagem a seguir mostra um exemplo de campos especificados para uma conexão do Amazon Redshift.

![\[Captura de tela da caixa de diálogo Adicionar uma nova conexão com o Redshift no Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-redshift-add-connection.png)


A imagem a seguir mostra a página usada para juntar conjuntos de dados no Amazon Redshift.

![\[Captura de tela da página de importar no Canvas, mostrando dois conjuntos de dados sendo unidos.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-redshift-join.png)


A imagem a seguir mostra uma consulta SQL sendo usada para editar uma junção no Amazon Redshift.

![\[Captura de tela de uma consulta SQL no editor Editar SQL na página Importar no Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-redshift-edit-sql.png)


## Conectar-se aos seus dados com conectores JDBC
<a name="canvas-connecting-jdbc"></a>

Com o JDBC, você pode se conectar aos seus bancos de dados a partir de fontes como Databricks, SQLServer MySQL, PostgreSQL, MariaDB, Amazon RDS e Amazon Aurora.

Você deve se certificar de que tem as credenciais e permissões necessárias para criar a conexão a partir do Canvas.
+ Para o Databricks, você deve fornecer um URL do JDBC. A formatação do URL pode variar entre as instâncias do Databricks. Para obter informações sobre como encontrar o URL e especificar os parâmetros dentro dele, consulte os [Parâmetros de configuração e conexão do JDBC](https://docs.databricks.com/integrations/bi/jdbc-odbc-bi.html#jdbc-configuration-and-connection-parameters) na documentação do Databricks. Veja a seguir um exemplo de como um URL pode ser formatado: `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`
+ Para outras fontes de banco de dados, você deve configurar a autenticação de nome de usuário e senha e, em seguida, especificar essas credenciais ao se conectar ao banco de dados a partir do Canvas. 

Além disso, sua fonte de dados deve estar acessível pela Internet pública ou, se sua aplicação Canvas estiver sendo executada no modo **somente VPC**, a fonte de dados deverá ser executada na mesma VPC. *Para obter mais informações sobre a configuração de um banco de dados do Amazon RDS em uma VPC, consulte Amazon [VPC VPCs e Amazon RDS no Guia do usuário do Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_VPC.html).*

Depois de configurar suas credenciais da fonte de dados, você pode entrar na aplicação Canvas e criar uma conexão com a fonte de dados. Especifique suas credenciais (ou, para o Databricks, o URL) ao criar a conexão.

## Conecte-se às fontes de dados com OAuth
<a name="canvas-connecting-oauth"></a>

O Canvas suporta o uso OAuth como método de autenticação para se conectar aos seus dados no Snowflake e no Salesforce Data Cloud. [OAuth](https://oauth.net/2/)é uma plataforma de autenticação comum para conceder acesso a recursos sem compartilhar senhas.

**nota**  
Você só pode estabelecer uma OAuth conexão para cada fonte de dados.

Para autorizar a conexão, você deve seguir a configuração inicial descrita em [Configure conexões com fontes de dados com OAuth](canvas-setting-up-oauth.md).

Depois de configurar OAuth as credenciais, você pode fazer o seguinte para adicionar uma conexão do Snowflake ou do Salesforce Data Cloud com: OAuth

1. Faça login na aplicação Canvas.

1. Crie um conjunto de dados tabular. Quando solicitado a carregar dados, escolha Snowflake ou Salesforce Data Cloud como sua fonte de dados.

1. Crie uma nova conexão com sua fonte de dados do Snowflake ou do Salesforce Data Cloud. Especifique OAuth como método de autenticação e insira os detalhes da sua conexão.

Agora você conseguirá importar dados dos seus bancos de dados no Snowflake ou no Salesforce Data Cloud.

## Conectar-se a uma plataforma SaaS
<a name="canvas-connecting-saas"></a>

Você pode importar dados do Snowflake e de mais de 40 outras plataformas SaaS externas. Para obter uma lista completa de conectores, consulte a tabela em [importar dados](canvas-importing-data.md).

**nota**  
Você pode importar somente dados tabulares, como tabelas de dados, de plataformas SaaS.

### Usar o Snowflake com o Canvas
<a name="canvas-using-snowflake"></a>

O Snowflake é um serviço de armazenamento e análise de dados, e você pode importar seus dados do Snowflake para o Canvas. SageMaker Para obter mais informações sobre o Snowflake, consulte a [Documentação do Snowflake](https://www.snowflake.com/en/).

É possível importar dados da sua conta do Snowflake da seguinte forma:

1. Crie uma conexão com o banco de dados do Snowflake.

1. Escolha os dados a serem importados arrastando e soltando a tabela do menu de navegação esquerdo para o editor.

1. Importe os dados.

Você pode usar o editor Snowflake para arrastar conjuntos de dados para o painel de importação e importá-los para o Canvas. SageMaker Para obter mais controle sobre os valores retornados no conjunto de dados, use o seguinte:
+ Consultas SQL
+ Junções

As consultas SQL permitem que você personalize a forma como você importa os valores no conjunto de dados. Por exemplo, você pode especificar as colunas retornadas no conjunto de dados ou o intervalo de valores de uma coluna.

Você pode juntar vários conjuntos de dados do Snowflake em um único conjunto de dados antes de importá-los para o Canvas usando SQL ou a interface Canvas. Você pode arrastar seus conjuntos de dados do Snowflake para o painel que permite juntar os conjuntos de dados ou pode editar as junções em SQL e converter o SQL em um único nó. Você pode juntar outros nós ao nó que você converteu. Em seguida, você pode combinar os conjuntos de dados juntados em um único nó e juntar os nós a um conjunto de dados diferente do Snowflake. Finalmente, você pode importar os dados selecionados para o Canvas.

Use o procedimento a seguir para importar dados do Snowflake para o Amazon SageMaker Canvas.

1. No aplicativo SageMaker Canvas, acesse a página **Conjuntos de dados**.

1. Escolha **Criar** e, no menu suspenso, escolha **Tabular**.

1. Insira um nome para o conjunto de dados e escolha **Criar**.

1. Em **Fonte de dados**, abra o menu suspenso e escolha **Snowflake**.

1. Escolha **Adicionar conexão**.

1. Na caixa de diálogo **Adicionar uma nova conexão do Snowflake**, especifique suas credenciais do Snowflake. Em **Método de autenticação**, escolha uma das seguintes opções:
   + **Básico - nome de usuário e senha**: Forneça seu ID de conta, nome de usuário e senha do Snowflake.
   + **ARN** — Para melhorar a proteção de suas credenciais do Snowflake, forneça o ARN de um segredo que contenha suas credenciais. AWS Secrets Manager Para obter mais informações, consulte [Criar um AWS Secrets Manager segredo](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html) no *Guia AWS Secrets Manager do usuário*.

     Seu segredo deve ter suas credenciais do Snowflake armazenadas no seguinte formato JSON:

     ```
     {"accountid": "ID",
     "username": "username",
     "password": "password"}
     ```
   + **OAuth**— OAuth permite que você se autentique sem fornecer uma senha, mas requer configuração adicional. Para obter mais informações sobre como configurar OAuth credenciais para o Snowflake, consulte. [Configure conexões com fontes de dados com OAuth](canvas-setting-up-oauth.md)

1. Escolha **Adicionar conexão**.

1. Na guia que tem o nome da sua conexão, arraste o arquivo .csv que você está importando para o painel **Arrastar e soltar tabela para importar**.

1. Opcional: arraste tabelas adicionais para o painel de importação. Você pode usar a interface de usuário para juntar as tabelas. Para obter mais especificidade em suas junções, escolha **Editar em SQL**.

1. Opcional: se você estiver usando SQL para consultar os dados, poderá escolher **Contexto** para adicionar contexto à conexão especificando valores para o seguinte:
   + **Warehouse**
   + **Banco de dados**
   + **Schema**

   Adicionar contexto a uma conexão facilita a especificação de futuras consultas.

1. Escolha **Importar dados**.

A imagem a seguir mostra um exemplo de campos especificados para uma conexão do Snowflake.

![\[Captura de tela da caixa de diálogo Adicionar uma nova conexão do Snowflake no Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-snowflake-connection.png)


A imagem a seguir mostra a página usada para adicionar contexto a uma conexão.

![\[Captura de tela da página de importação no Canvas, mostrando a caixa de diálogo Contexto.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-connection-context.png)


A imagem a seguir mostra a página usada para juntar conjuntos de dados no Snowflake.

![\[Captura de tela da página de importação no Canvas, mostrando conjuntos de dados sendo unidos.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-snowflake-join.png)


A imagem a seguir mostra uma consulta SQL sendo usada para editar uma junção no Snowflake.

![\[Captura de tela de uma consulta SQL no editor Editar SQL na página Importar no Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-snowflake-edit-sql.png)


### Usar conectores SaaS com o Canvas
<a name="canvas-connecting-external-appflow"></a>

**nota**  
Para plataformas SaaS além do Snowflake, você só pode ter uma conexão por fonte de dados.

Antes de importar dados de uma plataforma SaaS, seu administrador deve se autenticar e criar uma conexão com a fonte de dados. Para obter mais informações sobre como os administradores podem criar uma conexão com uma plataforma SaaS, consulte [Gerenciamento de conexões da AppFlow Amazon](https://docs.aws.amazon.com/appflow/latest/userguide/connections.html) no Guia do usuário da * AppFlow Amazon*.

Se você é um administrador que está começando a usar a Amazon AppFlow pela primeira vez, consulte [Introdução](https://docs.aws.amazon.com/appflow/latest/userguide/getting-started.html) no *Guia do AppFlow usuário da Amazon*.

Para importar dados de uma plataforma SaaS, você pode seguir o procedimento [Importar dados tabulares](canvas-import-dataset.md#canvas-import-dataset-tabular) padrão, que mostra como importar conjuntos de dados tabulares para o Canvas.

# Conjunto de dados de amostra no Canvas
<a name="canvas-sample-datasets"></a>

SageMaker O Canvas fornece conjuntos de dados de amostra abordando casos de uso exclusivos para que você possa começar a criar, treinar e validar modelos rapidamente sem escrever nenhum código. Os casos de uso associados a esses conjuntos de dados destacam os recursos do SageMaker Canvas, e você pode aproveitar esses conjuntos de dados para começar a criar modelos. Você pode encontrar os conjuntos de dados de amostra na página **Conjuntos de dados** do seu aplicativo SageMaker Canvas.

Os conjuntos de dados a seguir são os exemplos que o SageMaker Canvas fornece por padrão. Esses conjuntos de dados abrangem casos de uso, como predição de preços imobiliários, inadimplência de empréstimos e readmissão de pacientes diabéticos; predição de vendas; predição de falhas de máquinas para agilizar a manutenção preditiva em unidades de fabricação; e geração de predições da cadeia de suprimentos para transporte e logística. Os conjuntos de dados são armazenados na `sample_dataset` pasta no bucket padrão do Amazon S3 SageMaker que a IA cria para sua conta em uma região.
+ **canvas-sample-diabetic-readmission.csv:** Esse conjunto de dados contém dados históricos, incluindo mais de quinze recursos com resultados de pacientes e hospitais. Você pode usar esse conjunto de dados para prever se pacientes diabéticos de alto risco têm probabilidade de serem readmitidos no hospital dentro de 30 dias após a alta, após 30 dias ou se não serão readmitidos. Use a coluna **readmitido** como coluna de destino e use o tipo de modelo de predição de 3 ou mais categorias com esse conjunto de dados. Para saber mais sobre como criar um modelo com esse conjunto de dados, consulte a [página do workshop do SageMaker Canvas](https://catalog.us-east-1.prod.workshops.aws/workshops/80ba0ea5-7cf9-4b8c-9d3f-1cd988b6c071/en-US/zzz-legacy/1-use-cases/5-hcls). Esse conjunto de dados foi obtido do [UCI Machine Learning Repository](https://archive.ics.uci.edu/ml/datasets/diabetes+130-us+hospitals+for+years+1999-2008). 
+ **canvas-sample-housing.csv:** Esse conjunto de dados contém dados sobre as características vinculadas a um determinado preço de habitação. Você pode usar esse conjunto de dados para prever os preços de imóveis residenciais. Use a coluna **median\$1house\$1value** como coluna de destino e use o tipo de modelo de predição numérica com esse conjunto de dados. Para saber mais sobre como criar um modelo com esse conjunto de dados, consulte a [página do workshop do SageMaker 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). Este é o conjunto de dados habitacionais da Califórnia obtido do [StatLib repositório](https://www.dcc.fc.up.pt/~ltorgo/Regression/cal_housing.html).
+ **canvas-sample-loans.csv:** esse conjunto de dados contém dados completos de todos os empréstimos emitidos de 2007 a 2011, incluindo o status atual do empréstimo e as informações de pagamento mais recentes. Você pode usar esse conjunto de dados para prever se um cliente pagará um empréstimo. Use a coluna **loan\$1status** como coluna de destino e use o tipo de modelo de predição de 3 ou mais categorias com esse conjunto de dados. Para saber mais sobre como criar um modelo com esse conjunto de dados, consulte a [página do workshop do SageMaker Canvas](https://catalog.us-east-1.prod.workshops.aws/workshops/80ba0ea5-7cf9-4b8c-9d3f-1cd988b6c071/en-US/zzz-legacy/1-use-cases/4-finserv). Esses dados usam os LendingClub dados obtidos do [Kaggle](https://www.kaggle.com/datasets/wordsforthewise/lending-club).
+ **canvas-sample-maintenance.csv:** esse conjunto de dados contém dados sobre as características vinculadas a um determinado tipo de falha de manutenção. Você pode usar esse conjunto de dados para prever quais falhas ocorrerão no futuro. Use a coluna **Tipo de falha** como coluna de destino e use o tipo de modelo de predição de 3 ou mais categorias com esse conjunto de dados. Para saber mais sobre como criar um modelo com esse conjunto de dados, consulte a [página do workshop do SageMaker Canvas](https://catalog.us-east-1.prod.workshops.aws/workshops/80ba0ea5-7cf9-4b8c-9d3f-1cd988b6c071/en-US/zzz-legacy/1-use-cases/6-manufacturing). Esse conjunto de dados foi obtido do [UCI Machine Learning Repository](https://archive.ics.uci.edu/ml/datasets/AI4I+2020+Predictive+Maintenance+Dataset).
+ **canvas-sample-shipping-logs.csv:** esse conjunto de dados contém dados completos de envio de todos os produtos entregues, incluindo tempo estimado, prioridade de envio, transportadora e origem. Você pode usar esse conjunto de dados para prever o tempo estimado de chegada da remessa em número de dias. Use a **ActualShippingDays**coluna como a coluna de destino e use o tipo de modelo de predição numérica com esse conjunto de dados. Para saber mais sobre como criar um modelo com esses dados, consulte a [página do workshop do 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). Este é um conjunto de dados sintético criado pela Amazon.
+ **canvas-sample-sales-forecasting.csv:** esse conjunto de dados contém dados históricos de vendas de séries temporais para lojas de varejo. Você pode usar esse conjunto de dados para prever as vendas de uma determinada loja de varejo. Use a coluna **vendas** como a coluna de destino e use o tipo de modelo de previsão de séries temporais com esse conjunto de dados. Para saber mais sobre como criar um modelo com esse conjunto de dados, consulte a [página do workshop do SageMaker Canvas](https://catalog.us-east-1.prod.workshops.aws/workshops/80ba0ea5-7cf9-4b8c-9d3f-1cd988b6c071/en-US/zzz-legacy/1-use-cases/3-retail). Este é um conjunto de dados sintético criado pela Amazon.

# Reimportar um conjunto de dados de amostra excluído
<a name="canvas-sample-datasets-reimport"></a>

O Amazon SageMaker Canvas fornece conjuntos de dados de amostra para vários casos de uso que destacam os recursos do Canvas. Para saber mais sobre os conjuntos de dados de amostra que estão disponíveis, consulte[Conjunto de dados de amostra no Canvas](canvas-sample-datasets.md). Se você não quiser mais usar os conjuntos de dados de amostra, você pode excluí-los da página **Conjuntos de dados** do seu aplicativo SageMaker Canvas. No entanto, esses conjuntos de dados ainda estarão armazenados no bucket do Amazon S3 que você especificou como [local de armazenamento do Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-storage-configuration.html), para que você sempre possa acessá-los posteriormente. 

Se você usou o bucket padrão do Amazon S3, o nome do bucket segue o padrão `sagemaker-{region}-{account ID}`. Você pode encontrar os conjuntos de dados de amostra no caminho `Canvas/sample_dataset` do diretório.

Se você excluir um conjunto de dados de amostra do seu aplicativo SageMaker Canvas e quiser acessar o conjunto de dados de amostra novamente, use o procedimento a seguir.

1. Navegue até a página **de conjuntos de dados** em seu aplicativo SageMaker Canvas.

1. Escolha **Importar dados**.

1. Na lista de buckets do Amazon S3, selecione o bucket que é seu local de armazenamento do Canvas. Se estiver usando o bucket Amazon S3 padrão SageMaker criado pela IA, ele segue o padrão de nomenclatura. `sagemaker-{region}-{account ID}`

1. Selecione a pasta **Canvas**.

1. Selecione a pasta **sample\$1dataset**, que contém todos os conjuntos de dados de amostra para o Canvas. SageMaker 

1. Selecione o conjunto de dados que você deseja importar e escolha **Importar dados**.

# preparação de dados
<a name="canvas-data-prep"></a>

**nota**  
Anteriormente, o Amazon SageMaker Data Wrangler fazia parte da experiência do SageMaker Studio Classic. Agora, se você atualizar para usar a nova experiência do Studio, deverá usar o SageMaker Canvas para acessar o Data Wrangler e receber as atualizações de recursos mais recentes. Se você usa o Data Wrangler no Studio Classic até agora e deseja migrar para o Data Wrangler no Canvas, talvez seja necessário conceder permissões adicionais para poder criar e usar uma aplicação Canvas. Para obter mais informações, consulte [(Opcional) Migrar do Data Wrangler no Studio Classic para o Canvas SageMaker](studio-updated-migrate-ui.md#studio-updated-migrate-dw).  
Para saber como migrar seus fluxos de dados do Data Wrangler no Studio Classic, consulte. [(Opcional) Migrar dados do Studio Classic para o Studio](studio-updated-migrate-data.md)

Use o Amazon SageMaker Data Wrangler no Amazon SageMaker Canvas para preparar, destacar e analisar seus dados. Você pode integrar um fluxo de preparação de dados do Data Wrangler aos seus fluxos de trabalho de machine learning (ML) para simplificar e agilizar o pré-processamento de dados e a engenharia de atributos usando pouca ou nenhuma codificação. Você também pode adicionar seus próprios scripts e transformações em Python para personalizar os fluxos de trabalho.
+ **Fluxo de dados**: crie um fluxo de dados para definir uma série de etapas de preparação de dados de ML. Você pode usar um fluxo para combinar conjuntos de dados de diferentes fontes de dados, identificar o número e os tipos de transformações que você deseja aplicar aos conjuntos de dados e definir um fluxo de trabalho de preparação de dados que possa ser integrado a um pipeline de ML. 
+ **Transforme**: limpe e transforme seu conjunto de dados usando *transformações* padrão, como ferramentas de formatação de dados numéricos, vetoriais e de sequência de caracteres. Destaque seus dados usando transformações como texto, date/time incorporação e codificação categórica.
+ **Gere insights de dados**: verifique automaticamente a qualidade dos dados e detecte anomalias em seus dados com o Data Wrangler Data Insights e o Quality Report. 
+ **Analise**: analise os atributos do seu conjunto de dados em qualquer ponto do fluxo. O Data Wrangler inclui ferramentas de visualização de dados integradas, como gráficos de dispersão e histogramas, bem como ferramentas de análise de dados, como análise de vazamento de alvos e modelagem rápida para entender a correlação de atributos. 
+ **Exportar**: exporte seu fluxo de trabalho de preparação de dados para um local diferente. Estes são locais de exemplo: 
  + Bucket do Amazon Simple Storage Service (Amazon S3)
  + Amazon SageMaker Feature Store — Armazene os recursos e seus dados em uma loja centralizada.
+ **Automatize a preparação de dados**: Crie fluxos de trabalho de machine learning a partir do seu fluxo de dados.
  + Amazon SageMaker Pipelines — Crie fluxos de trabalho que gerenciam suas tarefas de preparação de dados de SageMaker IA, treinamento de modelos e implantação de modelos.
  + Pipeline de inferência serial: Crie um pipeline de inferência serial a partir do seu fluxo de dados. Use-o para fazer predições sobre novos dados.
  + Script Python: armazene os dados e suas transformações em um script Python para seus fluxos de trabalho personalizados.

# Criar um conjunto de dados
<a name="canvas-data-flow"></a>

Use um fluxo do Data Wrangler no SageMaker Canvas, ou *fluxo de dados*, para criar e modificar um pipeline de preparação de dados. Recomendamos que você use o Data Wrangler para conjuntos de dados maiores que 5 GB.

Para começar a usar, siga o procedimento apresentado a seguir para importar seus dados para um fluxo de dados.

1. Abra SageMaker a tela.

1. No painel de navegação à esquerda, selecione **Data Wrangler**.

1. Escolha **Importar e preparar**.

1. No menu suspenso, escolha **Tabular** ou **Imagem**.

1. Em **Selecionar uma fonte de dados**, escolha sua fonte de dados e os dados que você deseja importar. Você tem a opção de selecionar até 30 arquivos ou uma pasta. Se você já tiver um conjunto de dados importado para o Canvas, escolha o **conjunto de dados Canvas** como sua fonte. Caso contrário, conecte-se a uma fonte de dados como Amazon S3 ou Snowflake e navegue pelos seus dados. Para obter informações sobre como se conectar a uma fonte de dados ou importar dados, consulte as páginas a seguir:
   + [importar dados](canvas-importing-data.md)
   + [Conectar-se à fonte de dados](canvas-connecting-external.md)

1. Depois de selecionar os dados que você deseja importar, escolha **Avançar**.

1. (Opcional) Para a seção **Configurações de importação** ao importar um conjunto de dados tabular, expanda o menu suspenso **Avançado**. Você pode especificar as seguintes configurações avançadas para importações de fluxo de dados:
   + **Método de amostragem**: Selecione o método de amostragem e o tamanho da amostra que você gostaria de usar. Para obter mais informações sobre como alterar a sua amostra ,consulte [Edite a configuração de amostragem do fluxo de dados](canvas-data-flow-edit-sampling.md).
   + **Codificação de arquivo (CSV)**: Selecione a codificação do arquivo do seu conjunto de dados. `UTF-8` é o padrão.
   + **Pular as primeiras linhas**: insira o número de linhas que você gostaria de ignorar a importação se tiver linhas redundantes no início do seu conjunto de dados.
   + **Delimitador**: Selecione o delimitador que separa cada item em seus dados. Você também pode especificar um delimitador personalizado.
   + **Detecção de várias linhas**: Selecione essa opção se quiser que o Canvas analise manualmente todo o seu conjunto de dados para células de várias linhas. O Canvas determina se deve ou não usar a compatibilidade com várias linhas coletando uma amostra de seus dados, mas o Canvas pode não detectar nenhuma célula de várias linhas na amostra. Nesse caso, recomendamos que você selecione a opção **Detecção de várias linhas** para forçar o Canvas a verificar todo o conjunto de dados em busca de células com várias linhas.

1. Escolha **Importar**.

Agora você deve ter um novo fluxo de dados e começar a adicionar etapas e análises de transformação.

# Como a interface do usuário do fluxo de dados funciona
<a name="canvas-data-flow-ui"></a>

Para ajudá-lo a navegar pelo fluxo de dados, o Data Wrangler tem as seguintes guias no painel de navegação superior:
+ **Fluxo de dados**: Essa guia fornece uma visão visual da etapa do fluxo de dados, na qual você pode adicionar ou remover transformações e exportar dados.
+ **Dados**: Essa guia fornece uma prévia dos seus dados para que você possa verificar os resultados de suas transformações. Você também pode ver uma lista ordenada das etapas do fluxo de dados e editar ou reordenar as etapas.
**nota**  
Nessa guia, você só pode visualizar visualizações de dados (como a distribuição de valores por coluna) das fontes de dados do Amazon S3. Não há compatibilidade com visualizações para outras fontes de dados, como o Amazon Athena, não são compatíveis.
+ **Análises**: Nessa guia, você pode ver subguias separadas para cada análise criada. Por exemplo, se você criar um histograma e um relatório de Data Quality and Insights (DQI), o Canvas cria uma guia para cada um.

**Quando você importa um conjunto de dados, o conjunto de dados original aparece no fluxo de dados e é chamado de Fonte.** SageMaker **O Canvas infere automaticamente os tipos de cada coluna em seu conjunto de dados e cria um novo quadro de dados chamado Tipos de dados.** Você pode selecionar esse quadro para atualizar os tipos de dados inferidos.

Os conjuntos de dados, as transformações e as análises que você usa no fluxo de dados são representados como* etapas*. Cada vez que você adiciona uma etapa de transformação, você cria um novo dataframe. Quando várias etapas de transformação (exceto **Unir** ou **Concatenar**) são adicionadas ao mesmo conjunto de dados, elas são empilhadas.

Na opção **Combinar dados**, **Unir** e **Concatenar** criam-se etapas autônomas que contêm o novo conjunto de dados unido ou concatenado.

# Edite a configuração de amostragem do fluxo de dados
<a name="canvas-data-flow-edit-sampling"></a>

Ao importar dados tabulares para um fluxo de dados do Data Wrangler, você pode optar por coletar uma amostra do seu conjunto de dados para acelerar o processo de exploração e limpeza de dados. Executar transformações exploratórias em uma amostra do seu conjunto de dados geralmente é mais rápido do que executar transformações em todo o conjunto de dados, e quando você estiver pronto para exportar seu conjunto de dados e criar um modelo, poderá aplicar as transformações ao conjunto de dados completo.

O Canvas oferece apoio aos seguintes métodos de amostragem:
+ **FirstK**: O Canvas seleciona os primeiros *K* itens do seu conjunto de dados, onde *K* é um número que você especifica. Esse método de amostragem é simples, mas pode introduzir um desvio se o conjunto de dados não for ordenado aleatoriamente.
+ **Aleatório**: O Canvas seleciona itens do conjunto de dados aleatoriamente, com cada item tendo a mesma probabilidade de ser escolhido. Esse método de amostragem ajuda a garantir que a amostra seja representativa de todo o conjunto de dados.
+ **Estratificado**: O Canvas divide o conjunto de dados em grupos (ou *estratos*) com base em um ou mais atributos (por exemplo, idade e nível de renda). Em seguida, um número proporcional de itens é selecionado aleatoriamente de cada grupo. Esse método garante que todos os subgrupos relevantes sejam adequadamente representados na amostra.

Você pode editar sua configuração de amostragem a qualquer momento para alterar o tamanho da amostra usada para exploração de dados.

Para fazer alterações na configuração de amostragem automática, faça o seguinte:

1. Em seu gráfico de fluxo de dados, selecione o nó da fonte de dados.

1. Escolha **Amostragem** na barra de navegação inferior.

1. A caixa de diálogo **Amostragem** é exibida. No menu suspenso **Método de amostragem**, selecione o método de amostragem desejado.

1. Em **Tamanho máximo da amostra**, insira o número de linhas que você deseja amostrar.

1. Escolha **Atualizar** para salvar suas alterações.

As alterações em sua configuração de amostragem agora devem ser aplicadas.

# Adicione uma etapa ao seu fluxo de dados
<a name="canvas-data-flow-add-step"></a>

Em seus fluxos de dados do Data Wrangler, você pode adicionar etapas que representam as transformações e análises de dados.

Para adicionar uma etapa ao fluxo de dados, selecione **\$1** ao lado de qualquer nó do conjunto de dados ou etapa adicionada anteriormente. Selecione uma das seguintes opções:
+ **Editar tipos de dados** (somente para uma etapa de **tipos de dados**): se você não tiver adicionado nenhuma transformação a uma etapa de **tipos de dados**, clique duas vezes na etapa **Tipos de dados** em seu fluxo para abrir a guia **Dados** e editar os tipos de dados que o Data Wrangler inferiu ao importar seu conjunto de dados. 
+ **Adicionar transformação**: adiciona uma nova etapa de transformação. Consulte [transformar dados](canvas-transform.md) para saber mais sobre as transformações de dados que você pode adicionar. 
+ **Obtenha insights de dados**: adicione análises, como histogramas ou visualizações personalizadas. Você pode usar essa opção para analisar seus dados em qualquer ponto do fluxo de dados. Consulte [Realizar análise exploratória de dados (EDA)](canvas-analyses.md) para saber mais sobre as análises que você pode adicionar. 
+ **Unir**: encontre essa opção em **Combinar dados** para unir dois conjuntos de dados e adicionar o conjunto de dados resultante ao fluxo de dados. Para saber mais, consulte [Unir conjuntos de dados](canvas-transform.md#canvas-transform-join).
+ **Concatenar**: encontre essa opção em **Combinar dados** para concatenar dois conjuntos de dados e adicionar o conjunto de dados resultante ao fluxo de dados. Para saber mais, consulte [Concatenar conjuntos de dados](canvas-transform.md#canvas-transform-concatenate).

# Editar etapas do fluxo de dados
<a name="canvas-data-flow-edit-steps"></a>

No Amazon SageMaker Canvas, você pode editar etapas individuais em seus fluxos de dados para transformar seu conjunto de dados sem precisar criar um novo fluxo de dados. A página a seguir aborda como editar etapas de junção e concatenação, bem como etapas da fonte de dados.

## Editar etapas de junção e concatenação
<a name="canvas-data-flow-edit-join-concat"></a>

Em seus fluxos de dados, você tem a flexibilidade de editar suas etapas de junção e concatenação. Você pode fazer os ajustes necessários em seu fluxo de trabalho de processamento de dados, garantindo que seus dados sejam combinados e transformados adequadamente sem precisar refazer todo o fluxo de dados.

Para editar uma etapa de junção ou concatenação no fluxo de dados, faça o seguinte:

1. Salve seu fluxo de dados.

1. Escolha o ícone de adição (**\$1**) ao lado do nó de junção ou concatenação que você deseja editar.

1. No menu contextual, escolha **Editar**.

1. Um painel lateral é aberto, onde você pode editar os detalhes da sua junção ou concatenação. Modifique seus campos de etapa, como o tipo de junção. Para trocar um nó de dados e selecionar outro para unir ou concatenar, escolha o ícone de exclusão ao lado do nó e, na visualização do fluxo de dados, selecione o novo nó que você deseja incluir em sua transformação.
**nota**  
Ao trocar um nó durante o processo de edição, você só pode selecionar etapas que ocorram antes da operação de junção ou concatenação. Você pode trocar o nó esquerdo ou direito, mas só pode trocar um nó por vez. Além disso, você não pode selecionar um nó de origem como substituto.

1. Escolha **Visualizar** para ver o resultado da operação de combinação.

1. Escolha **Atualizar** para salvar suas alterações.

Seu fluxo de dados agora deve estar atualizado.

## Editar ou substituir uma etapa da fonte de dados
<a name="canvas-data-flow-edit-source"></a>

Talvez seja necessário fazer alterações na fonte de dados ou no conjunto de dados sem excluir as transformações e as etapas do fluxo de dados aplicadas aos dados originais. No Data Wrangler, você pode editar ou substituir a configuração da fonte de dados enquanto mantém as etapas do fluxo de dados. Ao editar uma fonte de dados, você pode alterar as configurações de importação, como o tamanho ou o método de amostragem e quaisquer configurações avançadas. Você também pode adicionar mais arquivos com o mesmo esquema ou, para fontes de dados baseadas em consultas, como o Amazon Athena, você pode editar a consulta. Ao substituir uma fonte de dados, você tem a opção de selecionar um conjunto de dados diferente ou até mesmo importar os dados de uma fonte de dados totalmente diferente, desde que o esquema dos novos dados corresponda aos dados originais.

Para editar a configuração de uma fonte de dados, siga os seguintes passos:

1. Na aplicação do Canvas, acesse a página **Conjuntos de dados**.

1. Escolha seu fluxo de dados para visualizá-lo.

1. Na guia **Fluxo de dados** que mostra as etapas do fluxo de dados, localize o nó **Fonte** que você deseja editar.

1. **Escolha o ícone de elipse ao lado do nó Fonte.**

1. No menu contextual, escolha **Editar**.

1. Para fontes de dados do Amazon S3 e upload local, você tem a opção de selecionar ou fazer upload de mais arquivos com o mesmo esquema dos seus dados originais. Para fontes de dados baseadas em consultas, como o Amazon Athena, você pode remover e selecionar tabelas diferentes no criador de consultas visuais ou editar a consulta SQL diretamente. Quando concluir, selecione **Próximo**.

1. Para as **configurações de importação**, faça as alterações desejadas.

1. Após terminar, escolha **Salvar alterações**.

Sua fonte de dados agora deve estar atualizada.

Para substituir uma fonte de dados, faça o seguinte:

1. Na aplicação do Canvas, acesse a página **Conjuntos de dados**.

1. Escolha seu fluxo de dados para visualizá-lo.

1. Na guia **Fluxo de dados** que mostra as etapas do fluxo de dados, localize o nó **Fonte** que você deseja editar.

1. **Escolha o ícone de elipse ao lado do nó Fonte.**

1. No menu de contexto, escolha **Substituir**.

1. Vá até a [experiência de criar um fluxo de dados](canvas-data-flow.md) para selecionar outra fonte de dados e outros dados.

1. Quando você tiver selecionado seus dados e estiver pronto para atualizar o nó de origem, escolha **Salvar**.

Agora você deve ver o nó **Fonte** atualizado em seu fluxo de dados.

# Reordenar etapas em seu fluxo de dados
<a name="canvas-data-flow-reorder-steps"></a>

Depois de adicionar etapas ao seu fluxo de dados, você tem a opção de reordenar as etapas em vez de excluí-las e adicioná-las novamente na ordem correta. Por exemplo, você pode decidir mover uma transformação para imputar valores ausentes antes de uma etapa para formatar cadeias de caracteres.

**nota**  
Você não pode alterar a ordem de determinados tipos de etapas, como definir sua fonte de dados, alterar tipos de dados, unir, concatenar ou dividir. As etapas que não podem ser reordenadas ficam acinzentadas na interface da aplicação Canvas.

Para reordenar suas etapas de fluxo de dados, faça o seguinte:

1. Ao editar um fluxo de dados no Data Wrangler, escolha a guia **Dados**. Um painel lateral chamado **Etapas** lista as etapas do fluxo de dados em ordem.

1. Passe o mouse sobre uma etapa de transformação e escolha o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) ao lado dessa etapa.

1. No menu de contexto, escolha **Reordenar**.

1. Arraste e solte as etapas do fluxo de dados na ordem desejada.

1. Quando terminar, escolha **Salvar**.

As etapas e o gráfico do fluxo de dados agora devem refletir as alterações que você fez.

# Excluir uma etapa do seu fluxo de dados
<a name="canvas-data-flow-delete-step"></a>

Em seus fluxos de dados, você tem a flexibilidade de excluir suas etapas de junção e concatenação e escolher se deseja ou não aplicar as transformações subsequentes aos seus dados.

Para excluir uma etapa de junção ou concatenação do seu fluxo de dados, faça o seguinte:

1. Salve seu fluxo de dados.

1. Escolha o ícone de adição (**\$1**) ao lado do nó de junção ou concatenação que você deseja excluir.

1. No menu de contexto, escolha **Delete**.

1. (Opcional) Se você tiver etapas de transformação após a etapa de junção ou concatenação, poderá escolher se deseja ou não manter as etapas de transformação subsequentes e adicioná-las separadamente a cada nó de dados. No painel lateral **Excluir junção**, escolha um nó para desmarcá-lo e remover todas as etapas de transformação subsequentes. Você pode deixar os dois nós selecionados para manter todas as etapas de transformação ou pode desmarcar os dois nós para descartar todas as etapas de transformação.

   A captura de tela a seguir mostra essa etapa com apenas o segundo dos dois nós de dados selecionados. Quando a junção é excluída com sucesso, a transformação subsequente da **coluna Renomear** é mantida somente pelo segundo nó de dados.  
![\[Captura de tela de um fluxo de dados no Data Wrangler mostrando a visualização de exclusão de junção.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-data-flow-delete-step.png)

1. Escolha **Excluir**.

A etapa de junção ou concatenação agora deve ser removida do seu fluxo de dados.

# Realizar análise exploratória de dados (EDA)
<a name="canvas-analyses"></a>

O Wrangler inclui análises integradas que ajudam você a gerar visualizações e análises de dados com apenas alguns cliques. Você também pode criar análises personalizadas usando seu próprio código. 

Você adiciona uma análise a um quadro de dados selecionando uma etapa em seu fluxo de dados e, em seguida, escolhendo **Adicionar análise**. Para acessar uma análise que você criou, selecione a etapa que contém a análise e selecione a análise. 

As análises são geradas usando uma amostra de até 200.000 linhas do seu conjunto de dados, e você pode configurar o tamanho da amostra. Para obter mais informações sobre como alterar o tamanho da amostra do fluxo de dados, consulte[Edite a configuração de amostragem do fluxo de dados](canvas-data-flow-edit-sampling.md).

**nota**  
As análises são otimizadas para dados com 1000 colunas ou menos. Você pode sentir alguma latência ao gerar análises de dados com colunas adicionais.

Você pode adicionar a seguinte análise a um quadro de dados:
+ Visualizações de dados, incluindo histogramas e gráficos de dispersão. 
+ Um resumo rápido do seu conjunto de dados, incluindo número de entradas, valores mínimos e máximos (para dados numéricos) e categorias mais e menos frequentes (para dados categóricos).
+ Um modelo rápido do conjunto de dados, que pode ser usado para gerar uma pontuação de importância para cada atributo. 
+ Um relatório de vazamento de destino, que você pode usar para determinar se um ou mais atributos estão fortemente correlacionadas com seu atributo de destino.
+ Uma visualização personalizada usando seu próprio código. 

Use as seguintes seções para saber mais sobre essas opções:

## Obtenha insights sobre dados e qualidade dos dados
<a name="canvas-data-insights"></a>

Use o **Relatório de qualidade dos dados e insights** para realizar uma análise dos dados que você importou para o Data Wrangler. Recomendamos que você crie o relatório após importar o conjunto de dados. Você pode usar o relatório para ajudar você a limpar e processar seus dados. Ele fornece informações como o número de valores ausentes e o número de valores atípicos. Caso tenha problemas com seus dados, como vazamento ou desequilíbrio de destino, o relatório de insights pode chamar sua atenção para esses problemas.

Use o procedimento a seguir para criar um relatório de qualidade dos dados e insights. Ele pressupõe que você já tenha importado um conjunto de dados para o fluxo do Data Wrangler.

**Para criar um relatório de qualidade dos dados e insights**

1. Escolha o ícone de reticências ao lado de um nó no seu fluxo do Data Wrangler.

1. Selecione **Obter insights de dados**.

1. Para **Tipo de análise**, selecione **Relatório de qualidade de dados e insights**.

1. Em **Nome da análise**, especifique um nome para o relatório de insights.

1. Para **Tipo de problema**, especifique **Regressão** ou **Classificação**.

1. Para a **Coluna de destino**, especifique a coluna de destino.

1. Para **Tamanho dos dados**, especifique uma das seguintes opções:
   + **Conjunto de dados amostrado**: usa a amostra interativa do seu fluxo de dados, que pode conter até 200.000 linhas do seu conjunto de dados. Para obter informações sobre como editar o tamanho da amostra, consulte[Edite a configuração de amostragem do fluxo de dados](canvas-data-flow-edit-sampling.md).
   + **Conjunto de dados completo**: usa o conjunto de dados completo da sua fonte de dados para criar o relatório.
**nota**  
A criação de um relatório de qualidade de dados e insights sobre o conjunto de dados completo usa um trabalho de SageMaker processamento da Amazon. Um trabalho SageMaker de processamento provisiona os recursos computacionais adicionais necessários para obter insights sobre todos os seus dados. Para obter mais informações sobre trabalhos SageMaker de processamento, consulte[Cargas de trabalho de transformação de dados com processamento SageMaker](processing-job.md).

1. Escolha **Criar**.

Os tópicos a seguir mostram as seções do relatório:

**Topics**
+ [Resumo](#canvas-data-insights-summary)
+ [Coluna de destino](#canvas-data-insights-target-column)
+ [Modelo rápido](#canvas-data-insights-quick-model)
+ [Resumo de atributos](#canvas-data-insights-feature-summary)
+ [Amostras](#canvas-data-insights-samples)
+ [Definições](#canvas-data-insights-definitions)

Você pode fazer download do relatório ou visualizá-lo online. Para fazer download do relatório, escolha o botão de download no canto superior direito da tela. 

### Resumo
<a name="canvas-data-insights-summary"></a>

O relatório de insights tem um breve resumo dos dados que inclui informações gerais, como valores ausentes, valores inválidos, tipos de atributos, contagens de valores atípicos e muito mais. Ele também pode incluir avisos de severidade alta que apontam para prováveis problemas com os dados. Recomendamos que você investigue os avisos.

### Coluna de destino
<a name="canvas-data-insights-target-column"></a>

Quando você cria o relatório de Qualidade dos Dados e Insights, o Data Wrangler oferece a opção de selecionar uma coluna de destino. Uma coluna de destino é uma coluna que você está tentando prever. Quando você escolhe uma coluna de destino, o Data Wrangler cria automaticamente uma análise da coluna de destino. Ele também classifica os atributos na ordem de seu poder preditivo. Ao selecionar uma coluna de destino, você deve especificar se está tentando resolver um problema de regressão ou classificação.

Para classificação, o Data Wrangler mostra uma tabela e um histograma das classes mais comuns. Uma classe é uma categoria. Ele também apresenta observações, ou linhas, com um valor de destino ausente ou inválido.

Para regressão, o Data Wrangler mostra um histograma de todos os valores na coluna de destino. Ele também apresenta observações, ou linhas, com um valor de destino ausente, inválido ou atípico.

### Modelo rápido
<a name="canvas-data-insights-quick-model"></a>

O **modelo rápido** fornece uma estimativa da qualidade prevista esperada de um modelo que você treina em seus dados.

O Data Wrangler divide seus dados em folds de treinamento e validação. Ele usa 80% das amostras para treinamento e 20% dos valores para validação. Para classificação, a amostra é dividida estratificada. Para uma divisão estratificada, cada partição de dados tem a mesma proporção de rótulos. Para problemas de classificação, é importante ter a mesma proporção de rótulos entre os folds de treinamento e classificação. O Data Wrangler treina o XGBoost modelo com os hiperparâmetros padrão. Ele aplica a interrupção antecipada dos dados de validação e executa o mínimo de pré-processamento de atributos.

Para modelos de classificação, o Data Wrangler retorna um resumo do modelo e uma matriz de confusão.

 Para saber mais sobre as informações que o resumo do modelo de classificação retorna, consulte[Definições](#canvas-data-insights-definitions).

Uma matriz de confusão fornece as seguintes informações:
+ O número de vezes que o rótulo previsto corresponde ao rótulo verdadeiro.
+ O número de vezes que o rótulo previsto não corresponde ao rótulo verdadeiro.

O rótulo verdadeiro representa uma observação real em seus dados. Por exemplo, se você está usando um modelo para detectar transações fraudulentas, o rótulo verdadeiro representa uma transação que é realmente fraudulenta ou não fraudulenta. O rótulo previsto representa o rótulo que seu modelo atribui aos dados.

Você pode usar a matriz de confusão para ver o quão bem o modelo prevê a presença ou a ausência de uma condição. Se você está prevendo transações fraudulentas, pode usar a matriz de confusão para ter uma ideia da sensibilidade e da especificidade do modelo. A sensibilidade se refere à capacidade do modelo de detectar transações fraudulentas. A especificidade se refere à capacidade do modelo de evitar a detecção de transações não fraudulentas como fraudulentas.

### Resumo de atributos
<a name="canvas-data-insights-feature-summary"></a>

Quando você especifica uma coluna de destino, o Data Wrangler ordena os atributos de acordo com seu poder de predição. O poder de predição é medido nos dados após serem divididos em 80% de treinamento e 20% de validação. O Data Wrangler ajusta um modelo para cada atributo separadamente no fold de treinamento. Ele aplica o mínimo de pré-processamento de atributos e mede o desempenho da predição nos dados de validação.

Ele normaliza as pontuações para o intervalo [0,1]. Pontuações de predição mais altas indicam colunas mais úteis para prever o destino sozinhas. Pontuações mais baixas apontam para colunas não preditivas da coluna de destino.

É incomum que uma coluna que não seja preditiva por si só seja preditiva quando usada em conjunto com outras colunas. Você pode usar com confiança as pontuações de predição para determinar se um atributo em seu conjunto de dados é preditivo.

Uma pontuação baixa geralmente indica que o atributo é redundante. Uma pontuação de 1 indica habilidades preditivas perfeitas, o que geralmente indica vazamento do destino. O vazamento do destino geralmente ocorre quando o conjunto de dados contém uma coluna que não está disponível no momento da predição. Por exemplo, pode ser uma duplicata da coluna de destino.

### Amostras
<a name="canvas-data-insights-samples"></a>

O Data Wrangler fornece informações sobre se suas amostras são anômalas ou se há duplicatas em seu conjunto de dados.

O Data Wrangler detecta amostras anômalas usando o *algoritmo de floresta de isolamento*. A floresta de isolamento associa uma pontuação de anomalias a cada amostra (linha) do conjunto de dados. Pontuações de anomalias baixas indicam amostras anômalas. Pontuações altas estão associadas a amostras não anômalas. Amostras com pontuação de anomalias negativas geralmente são consideradas anômalas, e amostras com pontuação de anomalias positivas são consideradas não anômalas.

Ao analisar uma amostra que pode ser anômala, recomendamos que você preste atenção aos valores incomuns. Por exemplo, você pode ter valores anômalos resultantes de erros na coleta e no processamento dos dados. A seguir está um exemplo das amostras mais anômalas de acordo com a implementação do algoritmo de floresta de isolamento do Data Wrangler. Recomendamos usar o conhecimento do domínio e a lógica de negócios ao examinar as amostras anômalas.

O Data Wrangler detecta linhas duplicadas e calcula a proporção de linhas duplicadas em seus dados. Algumas fontes de dados podem incluir duplicatas válidas. Outras fontes de dados podem ter duplicatas que apontam para problemas na coleta de dados. Amostras duplicadas resultantes de uma coleta de dados incorreta podem interferir nos processos de machine learning que dependem da divisão dos dados em folds de treinamento e validação independentes.

A seguir estão os elementos do relatório de insights que podem ser impactados por amostras duplicadas:
+ Modelo rápido
+ Estimativa do poder de predição
+ Ajuste automático de hiperparâmetros

Você pode remover amostras duplicadas do conjunto de dados usando a transformação **Descartar duplicata** em **Gerenciar linhas.** O Data Wrangler mostra as linhas duplicadas com mais frequência.

### Definições
<a name="canvas-data-insights-definitions"></a>

Estas são as definições dos termos técnicos usados no relatório de insights de dados.

------
#### [ Feature types ]

A seguir estão as definições para cada um dos tipos de atributos:
+ **Numérico**: Os valores numéricos podem ser flutuantes ou inteiros, como idade ou renda. Os modelos de machine learning pressupõem que os valores numéricos são ordenados e uma distância é definida sobre eles. Por exemplo, 3 está mais próximo de 4 do que de 10 e 3 < 4 < 10.
+ **Categórico**: as entradas da coluna pertencem a um conjunto de valores exclusivos, que geralmente é muito menor do que o número de entradas na coluna. Por exemplo, uma coluna de comprimento 100 pode conter os valores exclusivos `Dog`, `Cat` e `Mouse`. Os valores poderiam ser numéricos, de texto ou uma combinação de ambos. `Horse`, `House`, `8`, `Love` e `3.1` seriam todos valores válidos e poderiam ser encontrados na mesma coluna categórica. O modelo de machine learning não pressupõe ordem ou distância nos valores dos atributos categóricos, ao contrário dos atributos numéricos, mesmo quando todos os valores são números.
+ **Binário**: Os atributos binários são um tipo especial de atributo categórico no qual a cardinalidade do conjunto de valores exclusivos é 2.
+ **Texto**: Uma coluna de texto contém muitos valores exclusivos não numéricos. Em casos extremos, todos os elementos da coluna são exclusivos. Em um caso extremo, não há duas entradas iguais.
+ **Datetime**: Uma coluna de datetime contém informações sobre a data ou a hora. Ela pode ter informações de data e hora.

------
#### [ Feature statistics ]

A seguir estão as definições para cada uma das estatísticas dos atributos:
+ **Poder de predição**: O poder de predição mede o quão útil a coluna na predição do destino.
+ **Valores atípicos** (em colunas numéricas): O Data Wrangler detecta valores atípicos usando duas estatísticas que são robustas aos valores atípicos: mediana e desvio padrão robusto (RSTD). O RSTD é derivado recortando os valores dos atributos no intervalo [5 percentil, 95 percentil] e calculando o desvio padrão do vetor recortado. Todos os valores maiores que a mediana \$1 5 \$1 RSTD ou menores que a mediana - 5 \$1 RSTD são considerados atípicos.
+ **Distorção** (em colunas numéricas): A distorção mede a simetria da distribuição e é definida como o terceiro momento da distribuição dividido pela terceira potência do desvio padrão. A assimetria da distribuição normal ou de qualquer outra distribuição simétrica é zero. Valores positivos implicam que a cauda direita da distribuição é maior que a cauda esquerda. Valores positivos implicam que a cauda direita da distribuição é maior que a cauda direita. Como regra geral, uma distribuição é considerada distorcida quando o valor absoluto da distorção é maior que 3.
+ **Curtose** (em colunas numéricas): A curtose de Pearson mede o peso da cauda da distribuição. Ela é definida como o quarto momento da distribuição dividido pelo quadrado do segundo momento. A curtose da distribuição normal é 3. Valores de curtose menores que 3 implicam que a distribuição está concentrada em torno da média e as caudas são mais claras do que as caudas da distribuição normal. Valores de curtose maiores que 3 implicam caudas mais pesadas ou valores atípicos.
+ **Valores ausentes**: Objetos semelhantes a Nulo, strings vazias e compostas somente por espaços em branco são considerados ausentes.
+ **Valores válidos para atributos numéricos ou destino de regressão**: Todos os valores que você pode converter em flutuantes finitos são válidos. Valores ausentes não são válidos.
+ **Valores válidos para atributos categóricos, binários ou de texto, ou para destino de classificação**: Todos os valores que não são ausentes são válidos.
+ **Atributos de datetime**: Todos os valores que você pode converter em um objeto de datetime são válidos. Valores ausentes não são válidos.
+ **Valores inválidos**: Valores que são ausentes ou que você não pode converter corretamente. Por exemplo, em uma coluna numérica, você não pode converter a string `"six"` ou um valor nulo.

------
#### [ Quick model metrics for regression ]

A seguir estão as definições para as métricas de modelo rápido:
+ R2 ou coeficiente de determinação: R2 é a proporção da variação no destino prevista pelo modelo. R2 está no intervalo de [-infty, 1]. 1 é a pontuação do modelo que prevê o destino perfeitamente, e 0 é a pontuação do modelo trivial que sempre prevê a média de destino.
+ MSE ou erro quadrático médio: MSE está no intervalo [0, infty]. 0 é a pontuação do modelo que prevê o destino perfeitamente.
+ MAE ou erro absoluto médio: MAE está no intervalo [0, infty] em que 0 é a pontuação do modelo que prevê o destino perfeitamente.
+ RMSE ou raiz do erro quadrático médio: RMSE está no intervalo [0, infty]. em que 0 é a pontuação do modelo que prevê o destino perfeitamente.
+ Erro máximo: O valor absoluto máximo do erro no conjunto de dados. O erro máximo está no intervalo [0, infty]. 0 é a pontuação do modelo que prevê o destino perfeitamente.
+ Erro absoluto médio: O erro absoluto médio está no intervalo [0, infty]. 0 é a pontuação do modelo que prevê o destino perfeitamente.

------
#### [ Quick model metrics for classification ]

A seguir estão as definições para as métricas de modelo rápido:
+ **Precisão**: Precisão é a proporção de amostras que são previstas com precisão. A precisão está no intervalo [0, 1]. 0 é a pontuação do modelo que prevê todas as amostras incorretamente, e 1 é a pontuação do modelo perfeito.
+ **Precisão balanceada**: A precisão balanceada é a proporção de amostras que são previstas com precisão quando os pesos da classe são ajustados para equilibrar os dados. Todas as classes têm a mesma importância, independentemente da frequência. A precisão balanceada está no intervalo [0, 1]. 0 é a pontuação do modelo que prevê todas as amostras incorretamente, e 1 é a pontuação do modelo perfeito.
+ **AUC (classificação binária)**: Essa é a área sob a curva característica de operação do receptor. AUC está no intervalo [0, 1] em que um modelo aleatório retorna uma pontuação de 0,5, e o modelo perfeito retorna uma pontuação de 1.
+ **AUC (OVR)**: Para classificação multiclasse, esta é a área sob a curva característica de operação do receptor calculada separadamente para cada rótulo usando um versus rest. O Data Wrangler relata a média das áreas. AUC está no intervalo [0, 1] em que um modelo aleatório retorna uma pontuação de 0,5, e o modelo perfeito retorna uma pontuação de 1.
+ **Precisão**: A precisão é definida para uma classe específica. Precisão é a fração de positivos verdadeiros de todas as instâncias que o modelo classificou como essa classe. A precisão está no intervalo [0, 1]. 1 é a pontuação do modelo que não tem falsos-positivos para a classe. Para classificação binária, o Data Wrangler relata a precisão da classe positiva.
+ **Recall**: O recall é definido para uma classe específica. Recall é a fração das instâncias de classe relevantes que são recuperadas com sucesso. Recall está no intervalo [0, 1]. 1 é a pontuação do modelo que classifica todas as instâncias da classe corretamente. Para classificação binária, o Data Wrangler relata o recall da classe positiva.
+ **F1**: F1 é definido para uma classe específica. Ele é a média harmônica da precisão e do recall. F1 está no intervalo [0, 1]. 1 é a pontuação do modelo perfeito. Para classificação binária, o Data Wrangler relata o F1 da classe com valores positivos.

------
#### [ Textual patterns ]

**Padrões** descrevem o formato textual de uma string usando um formato fácil de ler. Estes são exemplos de padrões textuais:
+ “\$1digits:4-7\$1” descreve uma sequência de dígitos com um comprimento entre 4 e 7.
+ “\$1alnum:5\$1” descreve uma string alfanumérica com um comprimento de exatamente 5.

O Data Wrangler infere os padrões examinando amostras de strings não vazias de seus dados. Ele pode descrever muitos dos padrões comumente usados. A **confiança** expressa como uma porcentagem indica qual é a estimativa da correspondência dos dados ao padrão. Usando o padrão textual, é possível ver quais linhas de seus dados precisam ser corrigidas ou descartadas.

A seguir, descrevemos os padrões que o Data Wrangler pode reconhecer:


| Padrão | Formato textual | 
| --- | --- | 
|  \$1alnum\$1  |  Strings alfanuméricas  | 
|  \$1any\$1  |  Qualquer string de caracteres de palavras  | 
|  \$1digits\$1  |  Uma sequência de dígitos  | 
|  \$1lower\$1  |  Uma palavra minúscula  | 
|  \$1mixed\$1  |  Uma palavra com maiúsculas e minúsculas  | 
|  \$1name\$1  |  Uma palavra que começa com uma letra maiúscula  | 
|  \$1upper\$1  |  Uma palavra maiúscula  | 
|  \$1whitespace\$1  |  Caracteres de espaço em branco  | 

Um caractere de palavra é um sublinhado ou um caractere que pode aparecer em uma palavra em qualquer idioma. Por exemplo, as strings `'Hello_word'` e `'écoute'` ambas consistem em caracteres de palavras. “H” e “é” são exemplos de caracteres de palavras.

------

## Relatório de desvio
<a name="canvas-bias-report"></a>

SageMaker O Canvas fornece o relatório de viés no Data Wrangler para ajudar a descobrir possíveis vieses em seus dados. O relatório de desvio analisa a relação entre a coluna de destino (rótulo) e uma coluna que você acredita que possa conter desvio (variável facetária). Por exemplo, se você está tentando prever a conversão de clientes, a sua faceta pode ser a idade do cliente. O relatório de desvio pode ajudá-lo a determinar se seus dados são tendenciosos para uma determinada faixa etária.

Para gerar um relatório de desvio no Canvas, faça o seguinte:

1. Em seu fluxo de dados no Data Wrangler, escolha o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) ao lado de um nó no fluxo.

1. No menu de contexto, escolha **Obter insights de dados**.

1. O painel lateral **Criar análise** é aberto. No menu suspenso **Tipo de análise**, selecione **Relatório de desvio**.

1.  No campo **Nome da análise**, insira um nome para o relatório de desvio.

1. No menu suspenso **Selecione a coluna que seu modelo prevê (alvo)**, selecione sua coluna de destino.

1. Para **Sua coluna prevista é um valor ou limite?**, selecione **Valor** se sua coluna de destino tiver valores categóricos ou **Limite** se tiver valores numéricos.

1. Em **Valor previsto** (ou **Limite previsto**, dependendo da sua seleção na etapa anterior), insira o valor ou valores da coluna alvo que correspondem a um resultado positivo. Por exemplo, ao prever a conversão do cliente, seu valor pode ser `yes` para indicar que um cliente foi convertido.

1. No menu suspenso **Selecionar a coluna a ser analisada quanto ao desvio**, selecione a coluna que você acredita que possa conter desvio, também conhecida como variável facetária.

1. Para **Sua coluna é um valor ou limite?**, selecione **Valor** se a variável facetária tiver valores categóricos ou **Limite** se tiver valores numéricos.

1. Em **Valor(es) da coluna a serem analisados quanto ao desvio** (ou **Limite da coluna para analisar o desvio**, dependendo da sua seleção na etapa anterior), insira o valor ou os valores que você deseja analisar quanto ao possível desvio. Por exemplo, se você estiver verificando desvio contra clientes acima de uma certa idade, use o início dessa faixa etária como seu limite.

1. Em **Escolher métricas de desvio**, selecione as métricas de desvio que você gostaria de incluir em seu relatório de desvio. Passe o mouse sobre os ícones de informações para obter mais informações sobre cada métrica.

1. (Opcional) Quando solicitado com a opção **Você gostaria de analisar métricas adicionais?**, selecione **Sim** para visualizar e incluir mais métricas de desvio.

1. Quando estiver pronto para criar o relatório de desvio, selecione **Adicionar**.

Depois de gerado, o relatório fornece uma visão geral das métricas de desvio que você selecionou. Você pode visualizar o relatório de desvio a qualquer momento na guia **Análises** do seu fluxo de dados.

## Histograma
<a name="canvas-visualize-histogram"></a>

Use histogramas para ver as contagens dos valores de um atributo específico. Você pode inspecionar as relações entre os atributos usando a opção **Colorir por**.

Você pode usar **Facetar por** atributo para criar histogramas de uma coluna, para cada valor em outra coluna. 

## Gráfico de dispersão
<a name="canvas-visualize-scatter-plot"></a>

Use o atributo **Gráfico de dispersão** para inspecionar a relação entre os atributos. Para criar um gráfico de dispersão, selecione um atributo para plotar no **eixo X** e no **eixo Y.** Ambas as colunas devem ser colunas de tipo numérico. 

Você pode colorir gráficos de dispersão usando uma coluna adicional. 

Além disso, você pode facetar gráficos de dispersão por atributos.

## Resumo da tabela
<a name="canvas-table-summary"></a>

Use a análise de **Resumo da tabela** para resumir rapidamente seus dados.

Para colunas com dados numéricos, incluindo dados de log e flutuantes, um resumo da tabela relata o número de entradas (contagem), mínimo (mínimo), máximo (máximo), média e desvio padrão (stddev) para cada coluna.

Para colunas com dados não numéricos, incluindo colunas com string, booleano ou date/time dados, um resumo da tabela relata o número de entradas (contagem), o valor menos frequente (mínimo) e o valor mais frequente (máximo). 

## Modelo rápido
<a name="canvas-quick-model"></a>

Use a visualização do **Modelo rápido** para avaliar rapidamente seus dados e produzir pontuações de importância para cada atributo. Uma [pontuação de importância de um atributo](http://spark.apache.org/docs/2.1.0/api/python/pyspark.ml.html#pyspark.ml.classification.DecisionTreeClassificationModel.featureImportances) indica a utilidade de um atributo na previsão de um rótulo de destino. A pontuação de importância do atributo está entre [0, 1] e um número maior indica que o atributo é mais importante para todo o conjunto de dados. Na parte superior do gráfico rápido do modelo, há uma pontuação do modelo. Um problema de classificação mostra uma pontuação na F1. Um problema de regressão tem uma pontuação de erro quadrático médio (MSE).

Ao criar um gráfico de modelo rápido, você seleciona um conjunto de dados que deseja avaliar e um rótulo de destino com o qual deseja comparar a importância do atributo. O Data Wrangler faz o seguinte:
+ Infere os tipos de dados para o rótulo de destino e cada atributo no conjunto de dados selecionado. 
+ Determina o tipo de problema. Com base no número de valores distintos na coluna do rótulo, o Data Wrangler determina se esse é um tipo de problema de regressão ou classificação. O Data Wrangler define um limite categórico para 100. Se houver mais de 100 valores distintos na coluna do rótulo, o Data Wrangler o classifica como um problema de regressão; caso contrário, ele é classificado como um problema de classificação. 
+ Pré-processa os atributos e os dados de rótulos para treinamento. O algoritmo usado necessita codificar os atributos em tipo vetorial e rótulos de codificação em tipo duplo. 
+ Treina um algoritmo de floresta aleatório com 70% dos dados. O Spark's [RandomForestRegressor](https://spark.apache.org/docs/latest/ml-classification-regression.html#random-forest-regression)é usado para treinar um modelo para problemas de regressão. O [RandomForestClassifier](https://spark.apache.org/docs/latest/ml-classification-regression.html#random-forest-classifier)é usado para treinar um modelo para problemas de classificação.
+ Avalia um modelo de floresta aleatória com os 30% restantes dos dados. O Data Wrangler avalia modelos de classificação usando uma pontuação F1 e avalia modelos de regressão usando uma pontuação MSE.
+ Calcula a importância do atributo para cada atributo usando o método de importância de Gini. 

## Vazamento do destino
<a name="canvas-analysis-target-leakage"></a>

O vazamento de destino ocorre quando há dados em um conjunto de dados de treinamento de machine learning que estão fortemente correlacionados com o rótulo de destino, mas não estão disponíveis em dados do mundo real. Por exemplo, você pode ter uma coluna em seu conjunto de dados que serve como proxy para a coluna que você deseja prever com seu modelo. 

Ao usar a análise **Vazamento do destino**, você especifica o seguinte:
+ **Destino**: esse é o atributo sobre o qual você deseja que seu modelo de ML seja capaz de fazer predições.
+ **Tipo de problema**: esse é o tipo de problema de ML no qual você está processando. O tipo de problema pode ser **classificação** ou **regressão.** 
+  (Opcional) **Máximo de atributos**: esse é o número máximo de atributos a serem apresentados na visualização, que mostra os atributos classificados de acordo com o risco de serem vazamentos de destino.

Para classificação, a análise de vazamento destino usa a área sob o atributo de operação do receptor ou a curva AUC - ROC para cada coluna, até os **Recursos máximos**. Para regressão, ele usa um coeficiente de determinação ou métrica R2.

A curva AUC-ROC fornece uma métrica preditiva, calculada individualmente para cada coluna usando validação cruzada, em uma amostra de aproximadamente até 1000 linhas. Uma pontuação de 1 indica habilidades preditivas perfeitas, o que geralmente indica vazamento do destino. Uma pontuação de 0,5 ou menos indica que as informações na coluna não poderiam fornecer, por si só, nenhuma informação útil para prever o destino. Embora seja possível que uma coluna seja pouco informativa por si só, mas seja útil na previsão do destino quando usada em conjunto com outros atributos, uma pontuação baixa pode indicar que o atributo é redundante.

## Multicolinearidade
<a name="canvas-multicollinearity"></a>

A multicolinearidade é uma circunstância em que duas ou mais variáveis preditoras estão relacionadas entre si. As variáveis preditoras são os atributos do seu conjunto de dados que você está usando para prever uma variável destino. Quando você tem multicolinearidade, as variáveis preditoras não são apenas preditivas da variável destino, mas também preditivas umas das outras.

Você pode usar o **Fator de inflação de variância (VIF)**, a **Análise de componentes principais (PCA)** ou a **seleção de atributos Lasso** como medidas para a multicolinearidade em seus dados. Para obter mais informações, consulte.

------
#### [ Variance Inflation Factor (VIF) ]

O Fator de inflação de variância (VIF) é uma medida de colinearidade entre pares de variáveis. O Data Wrangler retorna uma pontuação VIF como uma medida de quão estreitamente as variáveis estão relacionadas entre si. Uma pontuação de VIF é um número positivo que é maior ou igual a 1.

Uma pontuação de 1 significa que a variável não está correlacionada com as outras variáveis. Pontuações maiores que 1 indicam maior correlação.

Teoricamente, você pode ter uma pontuação de VIF com um valor infinito. O Data Wrangler reduz as pontuações mais altas para 50. Se você tiver uma pontuação de VIF maior que 50, o Data Wrangler define a pontuação como 50.

Você pode usar as seguintes diretrizes para interpretar suas pontuações de VIF:
+ Uma pontuação de VIF menor ou igual a 5 indica que as variáveis estão moderadamente correlacionadas com as outras variáveis.
+ Uma pontuação de VIF menor ou igual a 5 indica que as variáveis estão moderadamente correlacionadas com as outras variáveis.

------
#### [ Principle Component Analysis (PCA) ]

A Análise de Componentes Principais (PCA) mede a variação dos dados em diferentes direções no espaço de atributos. O espaço de atributos consiste em todas as variáveis preditoras que você usa para prever a variável destino em seu conjunto de dados.

Por exemplo, se você está tentando prever quem sobreviveu no *RMS Titanic* depois que ele atingiu um iceberg, seu espaço especial pode incluir a idade, o gênero e a tarifa que os passageiros pagaram.

A partir do espaço de atributos, o PCA gera uma lista ordenada de variações. Essas variações também são conhecidas como valores singulares. Os valores na lista de variâncias são maiores ou iguais a 0. Podemos usá-los para determinar quanta multicolinearidade existe em nossos dados.

Quando os números são aproximadamente uniformes, os dados têm pouquíssimas instâncias de multicolinearidade. Quando há muita variabilidade entre os valores, temos muitas instâncias de multicolinearidade. Antes de executar o PCA, o Data Wrangler normaliza cada atributo para ter uma média de 0 e um desvio padrão de 1.

**nota**  
O PCA nessa circunstância também pode ser chamado de Decomposição de Valor Singular (SVD).

------
#### [ Lasso feature selection ]

A seleção de atributos do Lasso usa a técnica de regularização L1 para incluir apenas os atributos mais preditivos em seu conjunto de dados.

Tanto para classificação quanto para regressão, a técnica de regularização gera um coeficiente para cada atributo. O valor absoluto do coeficiente fornece uma pontuação de importância para o atributo. Uma pontuação de importância mais alta indica que é mais preditiva da variável-destino. Um método comum de seleção de atributos é utilizar todas os atributos que têm um coeficiente lasso não nulo.

------

## Detectar anomalias em dados de séries temporais
<a name="canvas-time-series-anomaly-detection"></a>

Você pode usar a visualização de detecção de anomalias para ver valores discrepantes em seus dados de séries temporais. Para entender o que determina uma anomalia, você precisa entender que decompomos a série temporal em um termo previsto e um termo de erro. Tratamos a sazonalidade e a tendência da série temporal como o termo previsto. Tratamos os resíduos como o termo de erro.

Para o termo de erro, você especifica um limite como o número de desvios padrão que o resíduo pode afastar da média para que seja considerado uma anomalia. Por exemplo, é possível especificar um limite como sendo 3 desvios padrão. Qualquer resíduo maior que 3 desvios padrão da média é uma anomalia.

Você pode usar o procedimento a seguir para realizar uma análise de **detecção de anomalias**.

1. Abra seu fluxo de dados do Data Wrangler.

1. No seu fluxo de dados, em **Tipos de dados**, escolha o **\$1** e selecione **Adicionar análise**.

1. Para **Tipo de análise**, escolha **Séries temporais**.

1. Para **Visualização**, escolha **Detecção de anomalias**.

1. Em **Limite de anomalia**, escolha o limite em que um valor é considerado uma anomalia.

1. Escolha **Visualizar** para gerar uma visualização prévia da análise.

1. Escolha **Adicionar** para adicionar a transformação ao fluxo de dados do Data Wrangler.

## Decomposição de tendências sazonais em dados de séries temporais
<a name="canvas-seasonal-trend-decomposition"></a>

Você pode determinar se há sazonalidade em seus dados de séries temporais usando a visualização de Decomposição de tendências sazonais. Usamos o método STL (Decomposição de tendência sazonal usando LOESS) para realizar a decomposição. Decompomos a série temporal em seus componentes sazonais, de tendência e residuais. A tendência reflete a progressão a longo prazo da série. O componente sazonal é um sinal que se repete em um período de tempo. Depois de remover a tendência e os componentes sazonais da série temporal, você tem o resíduo.

Você pode usar o procedimento a seguir para realizar uma análise de decomposição de **tendência sazonal**.

1. Abra seu fluxo de dados do Data Wrangler.

1. No seu fluxo de dados, em **Tipos de dados**, escolha o **\$1** e selecione **Adicionar análise**.

1. Para **Tipo de análise**, escolha **Séries temporais**.

1. Para **Visualização**, escolha **Decomposição de tendências sazonais**.

1. Em **Limite de anomalia**, escolha o limite em que um valor é considerado uma anomalia.

1. Escolha **Visualizar** para gerar uma visualização prévia da análise.

1. Escolha **Adicionar** para adicionar a transformação ao fluxo de dados do Data Wrangler.

## Criar visualizações personalizadas
<a name="canvas-visualize-custom"></a>

Você pode adicionar uma análise ao seu fluxo do Data Wrangler para criar uma visualização personalizada. [Seu conjunto de dados, com todas as transformações que você aplicou, está disponível como Pandas. DataFrame](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html) O Data Wrangler usa a variável `df` para armazenar o quadro de dados. Você acessa o quadro de dados chamando a variável.

Você deve fornecer a variável de saída, `chart`, para armazenar um gráfico de saída do [Altair](https://altair-viz.github.io/). Por exemplo, você pode usar o seguinte bloco de código para criar um histograma personalizado usando o conjunto de dados do 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
```

**Para criar uma visualização personalizada:**

1. Ao lado do nó que contém a transformação que você gostaria de visualizar, escolha o **\$1**.

1. Escolha **Adicionar análise**.

1. Em **Tipo de análise**, escolha **Visualização personalizada**.

1. Em **Nome da análise**, especifique um nome.

1. Insira seu código na caixa do código. 

1. Escolha **Visualizar** para visualizar sua visualização.

1. Escolha **Salvar** para adicionar sua visualização.

Se você não souber como usar o pacote de visualização Altair em Python, você pode usar trechos de código personalizados para ajudá-lo a começar.

Data Wrangler possui uma coleção pesquisável de trechos de código de visualização. Para usar um trecho de visualização, escolha **Pesquisar trechos de exemplo** e especifique uma consulta na barra de pesquisa.

O exemplo a seguir usa o trecho de código para um **gráfico de dispersão com bins**. Traça um histograma para 2 dimensões.

Os trechos de código possuem comentários para ajudar você a entender as alterações que precisa fazer no código. Normalmente, é necessário especificar os nomes das colunas do seu conjunto de dados no código.

```
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
```

# transformar dados
<a name="canvas-transform"></a>

O Amazon SageMaker Data Wrangler fornece várias transformações de dados de ML para simplificar a limpeza e a caracterização de seus dados. Usando as ferramentas interativas de preparação de dados no Data Wrangler, você pode amostrar conjuntos de dados de qualquer tamanho com uma variedade de técnicas de amostragem e começar a explorar seus dados em questão de minutos. Depois de finalizar suas transformações de dados nos dados amostrados, você pode escalar o fluxo de dados para aplicar essas transformações a todo o conjunto de dados.

Quando você adiciona uma transformação, ela adiciona uma etapa ao fluxo de dados. Cada transformação que você adiciona modifica seu conjunto de dados e gera um novo dataframe. Todas as transformações subsequentes se aplicam ao dataframe resultante.

O Data Wrangler inclui transformações embutidas, que você pode usar para transformar colunas sem a necessidade de código. Se você sabe como quer preparar seus dados, mas não sabe como começar ou quais transformações usar, você pode usar o atributo de chat para preparação de dados para interagir conversacionalmente com o Data Wrangler e aplicar transformações usando linguagem natural. Para obter mais informações, consulte [Chat para preparação de dados](canvas-chat-for-data-prep.md). 

Você também pode adicionar transformações personalizadas usando PySpark Python (função definida pelo usuário), pandas e SQL. PySpark Algumas transformações operam no local, enquanto outras criam uma nova coluna de saída no seu conjunto de dados.

Você pode aplicar transformações em várias colunas ao mesmo tempo. Por exemplo, você pode excluir várias colunas em uma única etapa.

Você pode aplicar o **processo numérico** e **lidar com as transformações ausentes** somente em uma única coluna.

Use esta página para saber mais sobre essas transformações integradas e personalizadas.

## Unir conjuntos de dados
<a name="canvas-transform-join"></a>

Você pode unir conjunto de dados diretamente em seu fluxo de dados. Quando você associa dois conjuntos de dados, o conjunto resultante aparece no seu fluxo. Os seguintes tipos de união são compatíveis com o Data Wrangler:
+ **Externo esquerdo** - Inclua todas as linhas da tabela esquerda. Se o valor para a coluna na qual a associação foi feita em uma linha da tabela da esquerda não corresponder a nenhum valor nas linhas da tabela da direita, essa linha conterá valores nulos para todas as colunas da tabela da direita na tabela resultante.
+ **Anti esquerdo**: Inclui linhas da tabela à esquerda que não contêm valores na tabela à direita para a coluna unida.
+ **Semi esquerda**: Inclui uma única linha da tabela à esquerda para todas as linhas idênticas que atendem aos critérios na instrução de união. Isso exclui linhas duplicadas da tabela à esquerda que correspondam aos critérios da união.
+ **Externo direito**: Inclua todas as linhas da tabela à direita. Se o valor da coluna unida em uma linha direita da tabela não corresponder a nenhum valor da linha esquerda da tabela, essa linha conterá valores nulos para todas as colunas da tabela esquerda na tabela unida.
+ **Interno** - Inclua linhas das tabelas esquerda e direita que contêm valores correspondentes na coluna unida. 
+ **Exterior completo**: Inclua todas as linhas das tabelas esquerda e direita. Se o valor da linha para a coluna de união em qualquer uma das tabelas não coincidir, linhas separadas são criadas na tabela resultante da união. Se uma linha não tiver um valor para uma coluna na tabela unida, será inserido um valor nulo para essa coluna.
+ **Produto Cartesiano** - Inclui as linhas que combinam cada linha da primeira tabela com cada linha da segunda tabela. Esse é um [produto cartesiano](https://en.wikipedia.org/wiki/Cartesian_product) de linhas de tabelas na união. O resultado desse produto é o tamanho da tabela da esquerda multiplicado pelo tamanho da tabela da direita. Portanto, recomendamos cautela ao usar essa união entre conjuntos de dados muito grandes. 

Use o procedimento a seguir para unir dois conjuntos de dados. Você já deve ter importado duas fontes de dados para o seu fluxo de dados.

1. Selecione o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) ao lado do nó esquerdo que você deseja unir. O primeiro nó que você seleciona é sempre a tabela à esquerda em sua união. 

1. Passe o mouse sobre **Combinar dados** e escolha **Unir**.

1. Selecione o nó correto. O segundo nó que você seleciona é sempre a tabela à direita em sua união.

1. O campo **Tipo de união** é definido como **Associação interna** por padrão. Selecione o menu suspenso para alterar o tipo de união.

1. Em **Chaves de união**, verifique as colunas das tabelas esquerda e direita que você deseja usar para unir os dados. É possível adicionar ou remover chaves de junção adicionais.

1. Em **Nome da junção**, insira um nome para os dados unidos ou use o nome padrão.

1. (Opcional) Escolha **Visualizar** para visualizar os dados unidos.

1. Escolha **Adicionar** para concluir a união.

**nota**  
Se você receber um aviso de que o Canvas não identificou nenhuma linha correspondente ao unir seus dados, recomendamos que você verifique se selecionou as colunas corretas ou atualize sua amostra para tentar encontrar linhas correspondentes. Você pode escolher uma estratégia de amostragem diferente ou alterar o tamanho da amostra. Para obter informações sobre como editar a amostra, consulte [Edite a configuração de amostragem do fluxo de dados](canvas-data-flow-edit-sampling.md).

Agora você deve ver um nó de junção adicionado ao seu fluxo de dados.

## Concatenar conjuntos de dados
<a name="canvas-transform-concatenate"></a>

A concatenação combina dois conjuntos de dados anexando as linhas de um conjunto de dados a outro.

Use o procedimento a seguir para se conectar aos dois conjuntos de dados. Você já deve ter importado duas fontes de dados para o seu fluxo de dados.

**Concatenar dois conjuntos de dados:**

1. Selecione o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) ao lado do nó esquerdo que você deseja unir. O primeiro nó que você seleciona é sempre a tabela à esquerda em sua união. 

1. Passe o mouse sobre **Combinar dados** e escolha **Concatenar**.

1. Selecione o nó correto. O segundo nó que você seleciona é sempre a tabela à direita em sua união.

1. (Opcional) Marque a caixa de seleção ao lado de **Remover duplicatas após a concatenação** para remover colunas duplicadas. 

1. (Opcional) Marque a caixa de seleção ao lado de **Adicionar coluna para indicar o dataframe de origem** para adicionar uma coluna ao dataframe resultante que lista o conjunto de dados de origem para cada registro.

   1. Em **Nome da coluna Indicador**, insira um nome para a coluna adicionada.

   1. **Em Primeiro conjunto de dados indicando a sequência de caracteres**, insira o valor que você deseja usar para marcar registros do primeiro conjunto de dados (ou do nó esquerdo).

   1. Para **Segundo conjunto de dados indicando string**, insira o valor que você deseja usar para marcar registros do segundo conjunto de dados (ou do nó direito).

1. Em **Nome da concatenação**, insira um nome para a concatenação.

1. (Opcional) Escolha **Visualizar** para visualizar os dados concatenados.

1. Escolha **Adicionar** para adicionar um novo conjunto de dados ao seu fluxo de dados. 

Agora você deve ver um nó concatenado adicionado ao seu fluxo de dados.

## Dados da balança
<a name="canvas-transform-balance-data"></a>

Você pode equilibrar os dados dos conjuntos de dados com uma categoria sub-representada. O balanceamento de um conjunto de dados pode ajudar você a criar modelos melhores para classificação binária.

**nota**  
Você não pode balancear conjuntos de dados contendo vetores de coluna.

Você pode usar a operação **Balancear dados** para equilibrar seus dados usando um dos seguintes operadores:
+ *Sobreamostragem aleatória*: Duplica aleatoriamente amostras na categoria minoritária. Por exemplo, se você está tentando detectar fraudes, talvez só tenha casos de fraude em 10% dos seus dados. Para uma proporção igual de casos fraudulentos e não fraudulentos, esse operador duplica aleatoriamente os casos de fraude no conjunto de dados 8 vezes.
+ *Subamostragem aleatória*: Aproximadamente equivalente à sobreamostragem aleatória. Remove aleatoriamente amostras da categoria super-representada para obter a proporção de amostras desejada.
+ *Técnica de Oversampling Sintético de Minorias (SMOTE)*: Usa amostras da categoria sub-representada para interpolar novas amostras sintéticas de minorias. Para obter mais informações sobre o SMOTE, consulte a descrição a seguir.

Você pode usar todas as transformações para conjuntos de dados contendo atributos numéricos e não numéricos. O SMOTE interpola valores usando amostras vizinhas. O Data Wrangler utiliza a distância R-quadrado para determinar o entorno no qual interpolar as amostras adicionais. O Data Wrangler usa somente atributos numéricos para calcular as distâncias entre amostras no grupo sub-representado.

Para dois exemplos reais no grupo sub-representado, o Data Wrangler interpola os atributos numéricos usando uma média ponderada. Ele atribui pesos aleatoriamente a essas amostras na faixa de [0, 1]. Para atributos numéricos, o Data Wrangler interpola amostras usando uma média ponderada das amostras. Para as amostras A e B, o Data Wrangler pode atribuir aleatoriamente um peso de 0,7 a A e 0,3 a B. A amostra interpolada tem um valor de 0,7A \$1 0,3B.

O Data Wrangler interpola atributos não numéricos copiando de qualquer uma das amostras reais interpoladas. Ele copia as amostras com uma probabilidade que é atribuída aleatoriamente a cada amostra. Para as amostras A e B, ele pode atribuir probabilidades de 0,8 a A e 0,2 a B. Para as probabilidades atribuídas, ele copia A 80% das vezes.

## Transformações personalizadas
<a name="canvas-transform-custom"></a>

O grupo **Transformações personalizadas** permite que você use Python (função definida pelo usuário) PySpark, pandas PySpark ou (SQL) para definir transformações personalizadas. Para todas as três opções, você usa a variável `df` para acessar o dataframe ao qual deseja aplicar a transformação. Para aplicar seu código personalizado ao seu dataframe, atribua ao dataframe as transformações que você fez na variável `df`. Se você não estiver usando Python (função definida pelo usuário), você não precisará incluir uma instrução de retorno. Escolha **Visualizar** para visualizar o resultado da transformação personalizada. Escolha **Adicionar** para adicionar a transformação personalizada à sua lista de **etapas anteriores**.

Você pode importar as bibliotecas mais conhecidas com uma `import` instrução no bloco de código de transformação personalizado, como a seguinte:
+ NumPy versão 1.19.0
+ scikit-learn versão 0.23.2
+ SciPy versão 1.5.4
+ pandas versão 1.0.3
+ PySpark versão 3.0.0

**Importante**  
A opção **Personalizar transformação** não é compatível com colunas com espaços ou caracteres especiais no nome. Recomendamos que você especifique nomes de colunas que tenham somente caracteres alfanuméricos e sublinhados. Você pode usar a transformação **Renomear coluna** no grupo **Gerenciar transformação de colunas** para remover espaços do nome de uma coluna. Você também pode adicionar uma **transformação personalizada** em **Python (Pandas)** semelhante à seguinte para remover espaços de várias colunas em uma única etapa: Este exemplo altera as colunas nomeadas `A column` e `B column` para `A_column` e `B_column` respectivamente.   

```
df.rename(columns={"A column": "A_column", "B column": "B_column"})
```

Se você incluir instruções de impressão no bloco de código, o resultado será exibido quando você selecionar **Visualizar**. Você pode redimensionar o painel do transformador de código personalizado. O redimensionamento do painel fornece mais espaço para escrever código. 

As seções a seguir fornecem contexto adicional e exemplos para escrever código de transformação personalizado.

**Python (função definida pelo usuário)**

A função Python oferece a capacidade de escrever transformações personalizadas sem precisar conhecer o Apache Spark ou os pandas. O Data Wrangler é otimizado para executar seu código personalizado rapidamente. Você obtém desempenho semelhante usando código Python personalizado e um plug-in Apache Spark.

Para usar o bloco de código Python (função definida pelo usuário), você especifica o seguinte:
+ **Coluna de entrada**: A coluna de entrada na qual você está aplicando a transformação.
+ **Modo**: O modo de script, pandas ou Python.
+ **Tipo de retorno**: O tipo de dados do valor que você está retornando.

Usar o modo pandas oferece melhor desempenho. O modo Python facilita a escrita de transformações ao permitir o uso de funções puramente em Python.

**PySpark**

O exemplo a seguir extrai data e hora de um 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**

O exemplo a seguir fornece uma visão geral do dataframe ao qual você está adicionando transformações. 

```
df.info()
```

**PySpark (SQL)**

O seguinte exemplo cria um novo dataframe com quatro colunas: *nome*, *tarifa*, *classe*, *sobreviveu*.

```
SELECT name, fare, pclass, survived FROM df
```

Se você não sabe como usar PySpark, pode usar trechos de código personalizados para ajudar você a começar.

O Data Wrangler tem uma coleção que pode ser pesquisada de trechos de código. Você pode usar trechos de código para realizar tarefas como descartar colunas, agrupar por colunas ou modelar.

Para usar um trecho de código, escolha **Pesquisar trechos de exemplo** e especifique uma consulta na barra de pesquisa. O texto especificado na consulta não precisa corresponder exatamente ao nome do trecho de código.

O exemplo a seguir mostra um trecho de código Excluir **linhas duplicadas** que pode excluir linhas com dados semelhantes no seu conjunto de dados. Você pode encontrar o trecho de código pesquisando uma das seguintes opções:
+ Duplica
+ Idêntico
+ Remover

O trecho a seguir tem comentários para ajudar você a entender as alterações que você precisa fazer. Para a maioria dos trechos, você deve especificar os nomes das colunas do seu conjunto de dados no código.

```
# 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()
```

Para usar um trecho, copie e cole seu conteúdo no campo **Transformação personalizada**. Você pode copiar e colar vários trechos de código no campo de transformação personalizado.

## Personalizar fórmula
<a name="canvas-transform-custom-formula"></a>

Use a opção **Personalizar fórmula** para definir uma nova coluna usando uma expressão do Spark SQL para consultar dados no dataframe atual. A consulta deve usar as convenções das expressões SQL do Spark.

**Importante**  
A opção **Personalizar transformação** não é compatível com colunas com espaços ou caracteres especiais no nome. Recomendamos que você especifique nomes de colunas que tenham somente caracteres alfanuméricos e sublinhados. Você pode usar a transformação **Renomear coluna** no grupo **Gerenciar transformação de colunas** para remover espaços do nome de uma coluna. Você também pode adicionar uma **transformação personalizada** em **Python (Pandas)** semelhante à seguinte para remover espaços de várias colunas em uma única etapa: Este exemplo altera as colunas nomeadas `A column` e `B column` para `A_column` e `B_column` respectivamente.   

```
df.rename(columns={"A column": "A_column", "B column": "B_column"})
```

Você pode usar essa transformação para realizar operações em colunas, referenciando as colunas pelo nome. Por exemplo, supondo que o dataframe atual contenha colunas chamadas *col\$1a* e *col\$1b*, você pode usar a operação a seguir para produzir uma **coluna de saída** que seja o produto dessas duas colunas com o código a seguir:

```
col_a * col_b
```

Outras operações comuns incluem as seguintes, supondo que um dataframe contenha `col_a` colunas: `col_b`
+ Concatene duas colunas: `concat(col_a, col_b)`
+ Adicione duas colunas: `col_a + col_b`
+ Subtraia duas colunas: `col_a - col_b`
+ Divida duas colunas: `col_a / col_b`
+ Pegue o valor absoluto de uma coluna: `abs(col_a)`

Para obter mais informações, consulte a [documentação do Spark](http://spark.apache.org/docs/latest/api/python) sobre a seleção de dados. 

## Reduza a dimensionalidade em um conjunto de dados
<a name="canvas-transform-dimensionality-reduction"></a>

Reduza a dimensionalidade em seus dados usando a Análise de Componentes Principais (PCA). A dimensionalidade do seu conjunto de dados corresponde ao número de atributos. Ao usar a redução de dimensionalidade no Data Wrangler, você obtém um novo conjunto de atributos chamados componentes. Cada componente é responsável por alguma variabilidade nos dados.

O primeiro componente é responsável pela maior quantidade de variação nos dados. O segundo componente é responsável pela segunda maior variação nos dados e assim por diante.

Você pode usar a redução de dimensionalidade para diminuir o tamanho dos conjuntos de dados usados para treinar modelos. Em vez de usar os atributos do seu conjunto de dados, você pode usar os componentes principais.

Para realizar o PCA, o Data Wrangler cria eixos para seus dados. Um eixo é uma combinação afim de colunas no seu conjunto de dados. O primeiro componente principal é o valor no eixo que tem a maior quantidade de variância. O segundo componente principal é o valor no eixo que possui a segunda maior quantidade de variação. O enésimo componente principal é o valor no eixo que possui a enésima maior quantidade de variação.

Você pode configurar o número de componentes principais que o Data Wrangler retorna. Você pode especificar diretamente o número de componentes principais ou especificar a porcentagem do limite de variação. Cada componente principal explica uma quantidade de variação nos dados. Por exemplo, você pode ter um componente principal com um valor de 0,5. O componente explicaria 50% da variação nos dados. Quando você especifica uma porcentagem de limite de variação, o Data Wrangler retorna o menor número de componentes que atendem à porcentagem especificada.

A seguir estão exemplos de componentes principais com a quantidade de variação que eles explicam nos dados.
+ Componente 1: 0,5
+ Componente 2: 0,45
+ Componente 3: 0,05

Se você especificar uma porcentagem de limite de variação de `94` ou `95`, o Data Wrangler retornará o Componente 1 e o Componente 2. Se você especificar uma porcentagem de limite de variação de `96`, o Data Wrangler retornará todos os três componentes principais.

É possível usar o procedimento a seguir para executar o PCA em seu conjunto de dados.

Para executar o PCA em seu conjunto de dados, faça o seguinte:

1. Abra seu fluxo de dados do Data Wrangler.

1. Escolha o **\$1** e selecione **Adicionar transformação**.

1. Escolha **Adicionar etapa**.

1. Escolha **Redução de Dimensionalidade.**

1. Em **Colunas de entrada**, escolha os atributos que você está reduzindo aos componentes principais.

1. (Opcional) Em **Número de componentes principais**, escolha o número de componentes principais que o Data Wrangler retorna em seu conjunto de dados. Se especificar um valor para o campo, você não poderá especificar um valor para a porcentagem do **limite de variação**.

1. (Opcional) Para **Porcentagem do limite de variação**, especifique a porcentagem de variação nos dados que você deseja explicar pelos componentes principais. O Data Wrangler usará o valor padrão de `95` se você não especificar um valor para o limite de variância. Você não pode especificar uma porcentagem de limite de variação se tiver especificado um valor para **Número de componentes principais**.

1. (Opcional) Desmarque a opção **Centralizar** para não usar a média das colunas como centro dos dados. Por padrão, o Data Wrangler centraliza os dados com a média antes do escalonamento.

1. (Opcional) Desmarque a opção **Escalar** para não dimensionar os dados com o desvio padrão da unidade.

1. (Opcional) Escolha **Colunas** para produzir os componentes em colunas separadas. Escolha **Vetor** para gerar os componentes como um único vetor.

1. (Opcional) Em **Coluna de saída**, especifique um nome para uma coluna de saída. Se você estiver enviando os componentes em colunas separadas, o nome especificado será um prefixo. Se você estiver enviando os componentes para um vetor, o nome especificado será o nome da coluna vetorial.

1. (Opcional) Selecione **Manter colunas de entrada**. Não recomendamos selecionar essa opção se você planeja usar apenas os componentes principais para treinar seu modelo.

1. Escolha **Pré-visualizar**.

1. Escolha **Adicionar**.

## Codificar categórico
<a name="canvas-transform-cat-encode"></a>

Os dados categóricos geralmente são compostos por um número finito de categorias, onde cada categoria é representada por um segmento. Por exemplo, se você tiver uma tabela de dados de clientes, uma coluna que indica o país em que a pessoa mora é categórica. As categorias seriam *Afeganistão*, *Albânia*, *Argélia* e assim por diante. Os dados categóricos podem ser *nominais* ou *ordinais*. As categorias ordinais têm uma ordem inerente e as categorias nominais não. O grau mais *alto obtido (ensino médio*, *bacharelado*, *mestrado*, etc.) é um exemplo de categorias ordinais. 

A codificação de dados categóricos é o processo de criação de uma representação numérica para categorias. Por exemplo, se suas categorias são *Cachorro* e *Gato*, você pode codificar essas informações em dois vetores, `[1,0]` para representar *Cachorro* e `[0,1]` para representar *Gato*.

Ao codificar categorias ordinais, talvez seja necessário traduzir a ordem natural das categorias em sua codificação. Por exemplo, você pode representar o grau mais alto obtido com o seguinte mapa: `{"High school": 1, "Bachelors": 2, "Masters":3}`.

Use codificação categórica para codificar dados categóricos que estão no formato de segmento em matrizes de números inteiros. 

Os codificadores categóricos do Data Wrangler criam codificações para todas as categorias que existem em uma coluna no momento em que a etapa é definida. Se novas categorias foram adicionadas a uma coluna quando você inicia uma tarefa do Data Wrangler para processar seu conjunto de dados no momento *t*, e essa coluna foi a entrada para uma transformação da codificação categórica do Data Wrangler no momento *t*-1, essas novas categorias serão consideradas *ausentes* na tarefa do Data Wrangler. A opção selecionada para **Estratégia de tratamento inválida** é aplicada a esses valores ausentes. Exemplos de quando isso pode ocorrer são: 
+ Quando você usa um arquivo.flow para criar uma tarefa do Data Wrangler para processar um conjunto de dados que foi atualizado após a criação do fluxo de dados. Por exemplo, você pode usar um fluxo de dados para processar regularmente os dados de vendas a cada mês. Se esses dados de vendas forem atualizados semanalmente, novas categorias poderão ser introduzidas em colunas para as quais uma etapa categórica de codificação é definida. 
+ Quando você seleciona **Amostragem** ao importar seu conjunto de dados, algumas categorias podem ser deixadas de fora da amostra. 

Nessas situações, essas novas categorias são consideradas valores ausentes no trabalho do Data Wrangler.

Você pode escolher e configurar uma codificação *ordinal* e uma codificação *única.* Use as seguintes seções para saber mais sobre essas opções: 

Ambas as transformações criam uma nova coluna chamada **Nome da coluna de saída**. Você especifica o formato de saída dessa coluna com o **estilo de saída**:
+ Selecione **Vetor** para produzir uma única coluna com um vetor esparso. 
+ Selecione **Colunas** para criar uma coluna para cada categoria com uma variável indicadora para determinar se o texto na coluna original contém um valor igual a essa categoria.

### Codificação ordinal
<a name="canvas-transform-cat-encode-ordinal"></a>

Selecione Codificação **ordinal para codificar** categorias em um número inteiro entre 0 e o número total de categorias na coluna de **entrada** selecionada.

**Estratégia de tratamento inválida**: selecione um método para lidar com valores inválidos ou ausentes. 
+ Escolha **Ignorar** se quiser omitir as linhas com valores ausentes.
+ Escolha **Manter** para reter os valores ausentes como a última categoria.
+ Escolha **Erro** se quiser que o Data Wrangler gere um erro se forem encontrados valores ausentes na **coluna de entrada**.
+ Escolha **Substituir por NaN** para substituir o ausente por NaN. Essa opção é recomendada se seu algoritmo de ML puder processar valores ausentes. Caso contrário, as três primeiras opções dessa lista podem produzir melhores resultados.

### Codificação One-Hot
<a name="canvas-transform-cat-encode-onehot"></a>

Selecione **Codificação única** para **Transformar** para usar a codificação única. Configure essa transformação usando o seguinte: 
+ **Eliminar a última categoria**: se `True` a última categoria não tiver um índice correspondente na codificação one-hot. Quando valores ausentes são possíveis, uma categoria ausente é sempre a última e definir isso `True` significa que um valor ausente resulta em um vetor totalmente zero.
+ **Estratégia de tratamento inválida**: selecione um método para lidar com valores inválidos ou ausentes. 
  + Escolha **Ignorar** se quiser omitir as linhas com valores ausentes.
  + Escolha **Manter** para reter os valores ausentes como a última categoria.
  + Escolha **Erro** se quiser que o Data Wrangler gere um erro se forem encontrados valores ausentes na **coluna de entrada**.
+ **A entrada é codificada ordinalmente**: selecione essa opção se o vetor de entrada contiver dados codificados ordinais. Essa opção exige que os dados de entrada contenham números inteiros não negativos. Se **Verdadeiro**, a entrada *i* é codificada como um vetor com um valor diferente de zero no *local i.* 

### Codificação de similaridade
<a name="canvas-transform-cat-encode-similarity"></a>

Use a codificação de similaridade quando você tiver o seguinte:
+ Um grande número de variáveis categóricas
+ Dados ruidosos

O codificador de similaridade cria incorporações para colunas com dados categóricos. Uma incorporação é uma correspondência de objetos discretos, como palavras, para vetores de números reais. Codifica segmentos semelhantes em vetores contendo valores semelhantes. Por exemplo, ele cria codificações muito semelhantes para “California” e “Calfornia”.

O Data Wrangler converte cada categoria em seu conjunto de dados em um conjunto de tokens usando um tokenizador de 3 gramas. Ele converte os tokens em uma incorporação usando a codificação min-hash.

As codificações de similaridade que o Data Wrangler cria:
+ Têm baixa dimensionalidade
+ São escaláveis para um grande número de categorias
+ São robustos e resistentes ao ruído

Pelas razões anteriores, a codificação por similaridade é mais versátil do que a codificação one-hot.

Para adicionar a transformação de codificação de similaridade ao seu conjunto de dados, use o procedimento a seguir.

Para usar a codificação de similaridade, faça o seguinte:

1. Faça login no [Amazon SageMaker AI Console](https://console.aws.amazon.com/sagemaker/).

1. Escolha **Abrir Studio Classic**.

1. Escolha **Iniciar aplicação**.

1. Escolha **Studio**.

1. Especifique seu fluxo de dados.

1. Escolha uma etapa com uma transformação.

1. Escolha **Adicionar etapa**.

1. Escolha **Codificar categórico**.

1. Especifique o seguinte:
   + **Transformação**: **Codificação por similaridade**
   + **Coluna de entrada**: A coluna que contém os dados categóricos que você está codificando.
   + **Dimensão de destino**: (Opcional) A dimensão do vetor de incorporação categórica. O valor padrão é 30. Recomendamos usar uma dimensão alvo maior se você tiver um grande conjunto de dados com muitas categorias.
   + **Estilo de saída**: Escolha **Vetor** para um único vetor com todos os valores codificados. Escolha **Coluna** para ter os valores codificados em colunas separadas.
   + **Coluna de saída**: (Opcional) O nome da coluna de saída para uma saída codificada em vetor. Para uma saída codificada em coluna, esse é o prefixo dos nomes das colunas seguido pelo número listado.

## Caracterizar texto
<a name="canvas-transform-featurize-text"></a>

Use o grupo de transformação **Caracterizar texto** para inspecionar colunas digitadas por segmento e use a incorporação de texto para destacar essas colunas. 

Esse grupo de atributos contém dois atributos, *estatísticas de caracteres* e *vetorização*. Use as seções a seguir para saber mais sobre essas transformações. Para ambas as opções, a **coluna de entrada** deve conter dados de texto (tipo segmento).

### Estatísticas de personagens
<a name="canvas-transform-featurize-text-character-stats"></a>

Use **estatísticas de caracteres** para gerar estatísticas para cada linha em uma coluna contendo dados de texto. 

Essa transformação calcula as seguintes proporções e contagens para cada linha e cria uma nova coluna para relatar o resultado: A nova coluna é nomeada usando o nome da coluna de entrada como um prefixo e um sufixo específico da proporção ou contagem. 
+ **Número de palavras**: o número total de palavras nessa linha. O sufixo dessa coluna de saída é`-stats_word_count`.
+ **Número de caracteres**: o número total de caracteres nessa linha. O sufixo dessa coluna de saída é`-stats_char_count`.
+ **Proporção maior**: o número de caracteres maiúsculos, de A a Z, dividido por todos os caracteres na coluna. O sufixo dessa coluna de saída é`-stats_capital_ratio`.
+ **Proporção menor**: o número de caracteres minúsculos, de a a z, dividido por todos os caracteres da coluna.​ O sufixo dessa coluna de saída é `-stats_lower_ratio`.
+ **Proporção de dígitos**: A proporção de dígitos em uma única linha sobre a soma dos dígitos na coluna de entrada. O sufixo dessa coluna de saída é`-stats_digit_ratio`.
+ **Proporção de caracteres especiais**: a proporção de caracteres não alfanuméricos (como \$1\$1&%:@) em relação à soma de todos os caracteres na coluna de entrada. O sufixo dessa coluna de saída é `-stats_special_ratio`.

### Vetorizar
<a name="canvas-transform-featurize-text-vectorize"></a>

A incorporação de texto envolve o mapeamento de palavras ou frases de um vocabulário para vetores de números reais. Use a transformação de incorporação de texto do Data Wrangler para tokenizar e vetorizar dados de texto em vetores de frequência de documento inversa de frequência de termo (TF-IDF). 

Quando o TF-IDF é calculado para uma coluna de dados de texto, cada palavra de cada frase é convertida em um número real que representa sua importância semântica. Números mais altos estão associados a palavras menos frequentes, que tendem a ser mais significativas. 

Quando você define uma etapa de transformação **Vetorizar**, o Data Wrangler usa os dados em seu conjunto de dados para definir o vetorizador de contagem e os métodos TF-IDF. A execução de um trabalho do Data Wrangler usa esses mesmos métodos.

Você configura essa transformação usando o seguinte: 
+ **Nome da coluna de saída**: essa transformação cria uma nova coluna com a incorporação do texto. Use esse campo para especificar um nome para essa coluna de saída. 
+ **Tokenizador**: um tokenizador converte a frase em uma lista de palavras ou *tokens*. 

  Escolha **Padrão** para usar um tokenizador que divide por espaço em branco e converte cada palavra em minúsculas. Por exemplo, `"Good dog"` é tokenizado para `["good","dog"]`.

  Escolha **Personalizar** para usar um tokenizador personalizado. Se você escolher **Personalizar**, poderá usar os seguintes campos para configurar o tokenizador:
  + **Tamanho mínimo do token**: o tamanho mínimo, em caracteres, para que um token seja válido. O padrão é `1`. Por exemplo, se você especificar `3` o tamanho mínimo do token, palavras como `a, at, in` são retiradas da frase tokenizada. 
  + O **regex deve ser dividido em lacunas**: Se selecionado, o **regex** divide em lacunas. Caso contrário, ele corresponderá aos tokens. O padrão é `True`. 
  + **Padrão Regex**: o padrão que define o processo de tokenização. O padrão é `' \\ s+'`.
  + **Para minúsculas**: se escolhido, o Data Wrangler converte todos os caracteres em minúsculas antes da tokenização. O padrão é `True`.

  Para saber mais, consulte a documentação do Spark sobre o [Tokenizer](https://spark.apache.org/docs/latest/ml-features#tokenizer).
+ **Vetorizador**: o vetorizador converte a lista de tokens em um vetor numérico esparso. Cada token corresponde a um índice no vetor e um valor diferente de zero indica a existência do token na frase de entrada. Você pode escolher entre duas opções de vetorização, *Count* e *Hashing*.
  + A **vetorização de contagem** permite personalizações que filtram tokens pouco frequentes ou muito comuns. Os **parâmetros de vetorização de contagem** incluem o seguinte: 
    + **Frequência mínima do termo**: em cada linha, os termos (tokens) com menor frequência são filtrados. Se você especificar um número inteiro, este será um limite absoluto (inclusivo). Se você especificar uma fração entre 0 (inclusive) e 1, o limite será relativo à contagem total de termos. O padrão é `1`.
    + **Frequência mínima do documento**: número mínimo de linhas nas quais um termo (token) deve aparecer para ser incluído. Se você especificar um número inteiro, este será um limite absoluto (inclusivo). Se você especificar uma fração entre 0 (inclusive) e 1, o limite será relativo à contagem total de termos. O padrão é `1`.
    + **Frequência máxima de documentos**: Número máximo de documentos (linhas) nos quais um termo (token) pode aparecer incluído. Se você especificar um número inteiro, este será um limite absoluto (inclusivo). Se você especificar uma fração entre 0 (inclusive) e 1, o limite será relativo à contagem total de termos. O padrão é `0.999`.
    + **Tamanho máximo do vocabulário**: tamanho máximo do vocabulário. O vocabulário é composto por todos os termos (tokens) em todas as linhas da coluna. O padrão é `262144`.
    + **Saídas binárias**: se selecionadas, as saídas vetoriais não incluem o número de aparições de um termo em um documento, mas são um indicador binário de sua aparência. O padrão é `False`.

    Para saber mais sobre essa opção, consulte a documentação do Spark em [CountVectorizer](https://spark.apache.org/docs/latest/ml-features#countvectorizer).
  + O **hashing** é computacionalmente mais rápido. Os **parâmetros de vetorização de hashing** incluem o seguinte:
    + **Número de atributos durante o hash**: um vetorizador de hash mapeia tokens para um índice vetorial de acordo com seu valor de hash. Esse atributo determina o número de valores de hash possíveis. Valores grandes resultam em menos colisões entre valores de hash, mas em um vetor de saída de maior dimensão.

    Para saber mais sobre essa opção, consulte a documentação do Spark em [FeatureHasher](https://spark.apache.org/docs/latest/ml-features#featurehasher)
+ O **Apply IDF** aplica uma transformação IDF, que multiplica a frequência do termo pela frequência inversa padrão do documento usada para incorporação TF-IDF. Os **parâmetros IDF** incluem o seguinte: 
  + **Frequência mínima do documento**: número mínimo de documentos (linhas) nos quais um termo (token) deve aparecer para ser incluído. Se **count\$1vectorize** for o vetorizador escolhido, recomendamos que você mantenha o valor padrão e modifique somente o campo **min\$1doc\$1freq** nos **parâmetros de vetorização de contagem.** O padrão é `5`.
+ **Formato de saída**: o formato de saída de cada linha. 
  + Selecione **Vetor** para produzir uma única coluna com um vetor esparso. 
  + Selecione **Nivelado** para criar uma coluna para cada categoria com uma variável indicadora para saber se o texto na coluna original contém um valor igual a essa categoria. Você só pode escolher achatado quando **Vetorizador** é definido como **vetorizador de contagem.**

## Séries temporais de transformações
<a name="canvas-transform-time-series"></a>

No Data Wrangler, você pode transformar dados de séries temporais. Os valores em um conjunto de dados de série temporal são indexados em um horário específico. Por exemplo, um conjunto de dados que mostra o número de clientes em uma loja para cada hora do dia é um conjunto de dados de séries temporais. A tabela a seguir mostra um exemplo de um conjunto de dados de séries temporais.

Número horário de clientes em uma loja


| Número de clientes | Hora (hora) | 
| --- | --- | 
| 4 | 09:00 | 
| 10 | 10:00 | 
| 14 | 11:00 | 
| 25 | 12:00 | 
| 20 | 13:00 | 
| 18 | 14:00 | 

Para a tabela anterior, a coluna **Número de clientes** contém os dados de séries temporais. Os dados da série temporal são indexados nos dados horários na coluna **Tempo (hora)**.

Talvez seja necessário realizar uma série de transformações em seus dados para obtê-los em um formato que possa ser usado em sua análise. Use o grupo de transformação de **séries temporais** para transformar seus dados de séries temporais. Para obter mais informações sobre as transformações que você pode executar, consulte as seções a seguir.

**Topics**
+ [Agrupar por uma série temporal](#canvas-group-by-time-series)
+ [Reamostragem de dados de séries temporais](#canvas-resample-time-series)
+ [Lidar com dados de séries temporais ausentes](#canvas-transform-handle-missing-time-series)
+ [Valide o timestamp de seus dados de séries temporais](#canvas-transform-validate-timestamp)
+ [Padronizando a duração da série temporal](#canvas-transform-standardize-length)
+ [Extrair atributos de seus dados de séries temporais](#canvas-transform-extract-time-series-features)
+ [Use atributos atrasados de seus dados de séries temporais](#canvas-transform-lag-time-series)
+ [Crie um intervalo de data e hora em sua série temporal](#canvas-transform-datetime-range)
+ [Use uma janela contínua em sua série temporal](#canvas-transform-rolling-window)

### Agrupar por uma série temporal
<a name="canvas-group-by-time-series"></a>

Você pode usar a operação agrupar por para agrupar dados de séries temporais para valores específicos em uma coluna.

Por exemplo, você tem a tabela a seguir que monitora o uso médio diário de eletricidade em uma residência.

Uso médio diário de eletricidade doméstica


| ID da residência | Timestamp diário | Uso de eletricidade (kWh) | Número de ocupantes da residência | 
| --- | --- | --- | --- | 
| household\$10 | 1/1/2020 | 30 | 2 | 
| household\$10 | 1/2/2020 | 40 | 2 | 
| household\$10 | 1/4/2020 | 35 | 3 | 
| household\$11 | 1/2/2020 | 45 | 3 | 
| household\$11 | 1/3/2020 | 55 | 4 | 

Se optar por agrupar por ID, você obterá a tabela a seguir.

Uso de eletricidade agrupado por identificação residencial


| ID da residência | Série de uso de eletricidade (kWh) | Série do número de ocupantes da residência | 
| --- | --- | --- | 
| household\$10 | [30, 40, 35] | [2, 2, 3] | 
| household\$11 | [45, 55] | [3, 4] | 

Cada entrada na sequência da série temporal é ordenada pelo timestamp correspondente. O primeiro elemento da sequência corresponde ao primeiro timestamp da série. Para `household_0`, `30` é o primeiro valor da **Série de uso de eletricidade**. O valor de `30` corresponde ao primeiro timestamp de `1/1/2020`.

Você pode incluir o timestamp inicial e o timestamp final. A tabela a seguir mostra como essas informações aparecem.

Uso de eletricidade agrupado por identificação residencial


| ID da residência | Série de uso de eletricidade (kWh) | Série do número de ocupantes da residência | Start\$1time | End\$1time | 
| --- | --- | --- | --- | --- | 
| household\$10 | [30, 40, 35] | [2, 2, 3] | 1/1/2020 | 1/4/2020 | 
| household\$11 | [45, 55] | [3, 4] | 1/2/2020 | 1/3/2020 | 

Você pode usar o procedimento a seguir para agrupar por uma coluna de série temporal. 

1. Abra seu fluxo de dados do Data Wrangler.

1. No seu fluxo de dados, em **Tipos de dados**, escolha o **\$1** e selecione **Adicionar transformação**.

1. Escolha **Adicionar etapa**.

1. Escolha **Séries temporais**.

1. Em **Transformação**, escolha **Agrupar por**.

1. Especifique uma coluna em **Agrupar por esta coluna**.

1. Em **Aplicar às colunas**, especifique um valor.

1. Escolha **Visualizar** para gerar uma visualização prévia da transformação.

1. Escolha **Adicionar** para adicionar a transformação ao fluxo de dados do Data Wrangler.

### Reamostragem de dados de séries temporais
<a name="canvas-resample-time-series"></a>

Os dados de séries temporais geralmente têm observações que não são feitas em intervalos regulares. Por exemplo, um conjunto de dados pode ter algumas observações que são registradas de hora em hora e outras observações que são registradas a cada duas horas.

Muitas análises, como algoritmos de previsão, exigem que as observações sejam feitas em intervalos regulares. A reamostragem permite estabelecer intervalos regulares para as observações em seu conjunto de dados.

Você pode aumentar ou diminuir a resolução de uma série temporal. O downsampling (redução da taxa de amostragem) aumenta o intervalo entre as observações no conjunto de dados. Por exemplo, se você reduzir a resolução de observações feitas a cada hora ou a cada duas horas, cada observação em seu conjunto de dados será feita a cada duas horas. As observações horárias são agregadas em um único valor usando um método de agregação, como média ou mediana.

O upsampling (aumento da taxa de amostragem) reduz o intervalo entre as observações no conjunto de dados. Por exemplo, se você transformar observações feitas a cada duas horas em observações de hora em hora, poderá usar um método de interpolação para inferir observações de hora em hora daquelas que foram feitas a cada duas horas. [Para obter informações sobre métodos de interpolação, consulte pandas. DataFrame.interpolar](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.interpolate.html).

Você pode reamostrar dados numéricos e não numéricos.

Use a operação **Reamostrar** para reamostrar seus dados de séries temporais. Se você tiver várias séries temporais em seu conjunto de dados, o Data Wrangler padronizará o intervalo de tempo para cada série temporal.

A tabela a seguir mostra um exemplo de redução da amostragem de dados de séries temporais usando a média como método de agregação. Os dados são reduzidos de duas em duas horas para cada hora.

Leituras de temperatura de hora em hora durante um dia antes da redução da amostragem


| Timestamp | Temperatura (Celsius) | 
| --- | --- | 
| 12:00 | 30 | 
| 1:00 | 32 | 
| 2:00 | 35 | 
| 3:00 | 32 | 
| 4:00 | 30 | 

Leituras de temperatura reduzidas para cada duas horas


| Timestamp | Temperatura (Celsius) | 
| --- | --- | 
| 12:00 | 30 | 
| 2:00 | 33.5 | 
| 4:00 | 35 | 

Você pode usar o procedimento a seguir para reamostrar dados de série temporal.

1. Abra seu fluxo de dados do Data Wrangler.

1. No seu fluxo de dados, em **Tipos de dados**, escolha o **\$1** e selecione **Adicionar transformação**.

1. Escolha **Adicionar etapa**.

1. Escolha **Reamostrar**.

1. Em **Timestamp**, escolha a coluna de timestamp.

1. Em **Unidade de frequência**, especifique a frequência com a qual você está reamostrando.

1. (Opcional) Especifique um valor para a **quantidade de frequência**.

1. Configure a transformação especificando os campos restantes.

1. Escolha **Visualizar** para gerar uma visualização prévia da transformação.

1. Escolha **Adicionar** para adicionar a transformação ao fluxo de dados do Data Wrangler.

### Lidar com dados de séries temporais ausentes
<a name="canvas-transform-handle-missing-time-series"></a>

Se você tiver valores ausentes em seu conjunto de dados, realize um dos seguintes procedimentos:
+ Para conjuntos de dados com várias séries temporais, elimine as séries temporais com valores ausentes maiores que o limite especificado por você.
+ Impute os valores ausentes em uma série temporal usando outros valores na série temporal.

A imputação de um valor ausente envolve a substituição dos dados especificando um valor ou usando um método inferencial. A seguir estão os métodos que você pode usar para imputação:
+ Valor constante: Substitua todos os dados ausentes em seu conjunto de dados por um valor especificado por você.
+ Valor mais comum: Substitua todos os dados ausentes pelo valor que tem a maior frequência no conjunto de dados.
+ Preenchimento futuro: Use um preenchimento futuro para substituir os valores ausentes pelo valor não faltante que precede os valores ausentes. Para a sequência: [2, 4, 7, NaN, NaN, NaN, 8], todos os valores ausentes são substituídos por 7. A sequência resultante do uso de um preenchimento direto é [2, 4, 7, 7, 7, 7, 7, 8].
+ Preenchimento reverso: Use um preenchimento reverso para substituir os valores ausentes pelo valor não omisso que segue os valores ausentes. Para a sequência: [2, 4, 7, NaN, NaN, NaN, 8], todos os valores ausentes são substituídos por 8. A sequência resultante do uso de preenchimento reverso é [2, 4, 7, 8, 8, 8, 8]. 
+ Interpolar: Usa uma função de interpolação para imputar os valores ausentes. [Para obter mais informações sobre as funções que você pode usar para interpolação, consulte pandas. DataFrame.interpolar](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.interpolate.html).

Alguns dos métodos de imputação podem não conseguir imputar todos os valores ausentes em seu conjunto de dados. Por exemplo, um **Preenchimento direto** não pode imputar um valor ausente que aparece no início da série temporal. Você pode imputar os valores usando um preenchimento direto ou um preenchimento reverso.

Você pode imputar valores ausentes em uma célula ou em uma coluna.

O exemplo a seguir mostra como os valores são imputados dentro de uma célula.

Uso de eletricidade com valores faltantes


| ID da residência | Série de uso de eletricidade (kWh) | 
| --- | --- | 
| household\$10 | [30, 40, 35, NaN, NaN] | 
| household\$11 | [45, NaN, 55] | 

Uso de eletricidade com valores imputados usando um preenchimento direto


| ID da residência | Série de uso de eletricidade (kWh) | 
| --- | --- | 
| household\$10 | [30, 40, 35, 35, 35] | 
| household\$11 | [45, 45, 55] | 

O exemplo a seguir mostra como os valores são imputados em uma coluna.

Uso médio diário de eletricidade doméstica com valores faltantes


| ID da residência | Uso de eletricidade (kWh) | 
| --- | --- | 
| household\$10 | 30 | 
| household\$10 | 40 | 
| household\$10 | NaN | 
| household\$11 | NaN | 
| household\$11 | NaN | 

Consumo médio diário de eletricidade doméstica com valores imputados usando um preenchimento direto


| ID da residência | Uso de eletricidade (kWh) | 
| --- | --- | 
| household\$10 | 30 | 
| household\$10 | 40 | 
| household\$10 | 40 | 
| household\$11 | 40 | 
| household\$11 | 40 | 

Você pode usar o procedimento a seguir para processar valores ausentes.

1. Abra seu fluxo de dados do Data Wrangler.

1. No seu fluxo de dados, em **Tipos de dados**, escolha o **\$1** e selecione **Adicionar transformação**.

1. Escolha **Adicionar etapa**.

1. Escolha **Processar ausentes**.

1. Para o **tipo de entrada de série temporal**, escolha se você deseja processar valores ausentes dentro de uma célula ou ao longo de uma coluna.

1. Em **Imputar valores ausentes para esta coluna**, especifique a coluna que tem os valores ausentes.

1. Em **Método para imputar valores**, selecione um método.

1. Configure a transformação especificando os campos restantes.

1. Escolha **Visualizar** para gerar uma visualização prévia da transformação.

1. Se você tiver valores ausentes, poderá especificar um método para imputá-los em **Método para imputar valores**.

1. Escolha **Adicionar** para adicionar a transformação ao fluxo de dados do Data Wrangler.

### Valide o timestamp de seus dados de séries temporais
<a name="canvas-transform-validate-timestamp"></a>

Você pode ter dados de timestamps inválidos. Você pode usar a função **Validate timestamp** para determinar se os timestamps no seu conjunto de dados são válidos. Seu timestamp pode ser inválido por um ou mais dos seguintes motivos:
+ Sua coluna de timestamp tem valores ausentes.
+ Os valores na coluna de timestamp não estão formatados corretamente.

Se você tiver timestamps inválidos em seu conjunto de dados, não poderá realizar sua análise com êxito. Você pode usar o Data Wrangler para identificar timestamps inválidos e entender onde você precisa limpar seus dados.

A validação da série temporal funciona de uma das duas maneiras:

Você pode configurar o Data Wrangler para executar uma das seguintes ações se ele encontrar valores ausentes em seu conjunto de dados:
+ Elimine as linhas que têm os valores ausentes ou inválidos.
+ Elimine as linhas que têm os valores ausentes ou inválidos.
+ Lance um erro se encontrar algum valor ausente ou inválido no seu conjunto de dados.

Você pode validar os timestamps em colunas que tenham o tipo `timestamp` ou o tipo `string`. Se a coluna tiver o tipo `string`, o Data Wrangler converterá o tipo da coluna em `timestamp` e executará a validação.

É possível usar o procedimento a seguir para validar os timestamps em seu conjunto de dados.

1. Abra seu fluxo de dados do Data Wrangler.

1. No seu fluxo de dados, em **Tipos de dados**, escolha o **\$1** e selecione **Adicionar transformação**.

1. Escolha **Adicionar etapa**.

1. Escolha **Validar timestamps**.

1. Na **Coluna timestamp**, escolha a coluna Timestamp.

1. Em **Política**, escolha se você deseja lidar com timestamps ausentes.

1. (Opcional) Em **Coluna de saída**, especifique um nome para a coluna de saída.

1. Se a coluna de data e hora estiver formatada para o tipo de segmento, escolha **Transmitir para data e hora**.

1. Escolha **Visualizar** para gerar uma visualização prévia da transformação.

1. Escolha **Adicionar** para adicionar a transformação ao fluxo de dados do Data Wrangler.

### Padronizando a duração da série temporal
<a name="canvas-transform-standardize-length"></a>

Se você tiver dados de séries temporais armazenados como matrizes, poderá padronizar cada série temporal com o mesmo tamanho. Padronizar o tamanho da matriz de séries temporais pode facilitar a realização da análise dos dados.

Você pode padronizar suas séries temporais para transformações de dados que exigem que o tamanho dos dados seja corrigido.

Muitos algoritmos de ML exigem que você nivele seus dados de séries temporais antes de usá-los. Nivelar os dados da série temporal é separar cada valor da série temporal em sua própria coluna em um conjunto de dados. O número de colunas em um conjunto de dados não pode mudar, então os comprimentos das séries temporais precisam ser padronizados entre você e nivelar cada matriz em um conjunto de atributos.

Cada série temporal é definida com o comprimento que você especifica como um quantil ou percentil do conjunto de séries temporais. Por exemplo, você pode ter três sequências com os seguintes comprimentos:
+ 3
+ 4
+ 5

Você pode definir o comprimento de todas as sequências como o comprimento da sequência que tem o comprimento do 50º percentil.

Matrizes de séries temporais menores do que o comprimento especificado têm valores ausentes adicionados. A seguir está um exemplo de formato de padronização da série temporal para um comprimento maior: [2, 4, 5, NaN, NaN, NaN].

Você pode usar abordagens diferentes para lidar com os valores ausentes. Para obter mais informações sobre essas abordagens, consulte [Lidar com dados de séries temporais ausentes](#canvas-transform-handle-missing-time-series).

As matrizes de séries temporais maiores que o comprimento especificado são truncadas.

É possível usar o procedimento a seguir para padronizar a duração da série temporal.

1. Abra seu fluxo de dados do Data Wrangler.

1. No seu fluxo de dados, em **Tipos de dados**, escolha o **\$1** e selecione **Adicionar transformação**.

1. Escolha **Adicionar etapa**.

1. Escolha **Padronizar comprimento.**

1. Para **Padronizar o comprimento da série temporal da coluna**, escolha uma coluna.

1. (Opcional) Em **Coluna de saída**, especifique um nome para a coluna de saída. Se você não especificar um nome, a transformação será feita no local.

1. Se a coluna de data e hora estiver formatada para o tipo de segmento, escolha **Transmitir para data e hora**.

1. Escolha **Quantil de corte** e especifique um quantil para definir o comprimento da sequência.

1. Escolha **Nivelar a saída** para gerar os valores da série temporal em colunas separadas.

1. Escolha **Visualizar** para gerar uma visualização prévia da transformação.

1. Escolha **Adicionar** para adicionar a transformação ao fluxo de dados do Data Wrangler.

### Extrair atributos de seus dados de séries temporais
<a name="canvas-transform-extract-time-series-features"></a>

Se você estiver executando uma classificação ou um algoritmo de regressão em seus dados de série temporal, recomendamos extrair atributos da série temporal antes de executar o algoritmo. A extração de atributos pode melhorar o desempenho do seu algoritmo.

Use as seguintes opções para escolher como você deseja extrair os atributos dos seus dados:
+ Use o **Subconjunto mínimo** para especificar a extração de 8 atributos que você sabe que são úteis em análises posteriores. Você pode usar um subconjunto mínimo quando precisar realizar cálculos rapidamente. Você também pode usá-lo quando seu algoritmo de ML tem um alto risco de sobreajuste e você deseja fornecer menos atributos.
+ Use o **subconjunto eficiente** para especificar a extração do maior número possível de atributos sem extrair atributos que são computacionalmente intensivos em suas análises.
+ Use **Todos os atributos** para especificar a extração de todos os atributos da série de músicas.
+ Use o **Subconjunto manual** para escolher uma lista de atributos que você acha que explicam bem a variação em seus dados.

Use o procedimento a seguir para extrair atributos de seus dados de séries temporais.

1. Abra seu fluxo de dados do Data Wrangler.

1. No seu fluxo de dados, em **Tipos de dados**, escolha o **\$1** e selecione **Adicionar transformação**.

1. Escolha **Adicionar etapa**.

1. Escolha **Extrair atributos**.

1. Em **Extrair atributos para esta coluna**, escolha uma coluna.

1. (Opcional) Selecione **Nivelado** para gerar os atributos em colunas separadas.

1. Em **Estratégia**, escolha uma estratégia para extrair os atributos.

1. Escolha **Visualizar** para gerar uma visualização prévia da transformação.

1. Escolha **Adicionar** para adicionar a transformação ao fluxo de dados do Data Wrangler.

### Use atributos atrasados de seus dados de séries temporais
<a name="canvas-transform-lag-time-series"></a>

Para muitos casos de uso, a melhor maneira de prever o comportamento futuro de sua série temporal é usar o comportamento mais recente.

Os usos mais comuns de atributos atrasados são os seguintes:
+ Coletando um punhado de valores passados. Por exemplo, para o tempo, t \$1 1, você coleta t, t - 1, t - 2 e t - 3.
+ Coletando valores que correspondem ao comportamento sazonal nos dados. Por exemplo, para prever a ocupação em um restaurante às 13h, convém usar os atributos a partir das 13h do dia anterior. Usar os atributos a partir das 12h ou 11h no mesmo dia pode não ser tão preditivo quanto usar os atributos dos dias anteriores.

1. Abra seu fluxo de dados do Data Wrangler.

1. No seu fluxo de dados, em **Tipos de dados**, escolha o **\$1** e selecione **Adicionar transformação**.

1. Escolha **Adicionar etapa**.

1. Selecione os **Atributos com atraso**.

1. Em **Gerar atributos de atraso para essa coluna**, escolha uma coluna.

1. Na **Coluna timestamp**, escolha a coluna contendo timestamps.

1. Para **Lag**, especifique a duração do atraso.

1. (Opcional) Configure a saída usando uma das seguintes opções:
   + **Incluir toda a janela de atraso**
   + **Nivelar a saída**
   + **Eliminar linhas sem histórico**

1. Escolha **Visualizar** para gerar uma visualização prévia da transformação.

1. Escolha **Adicionar** para adicionar a transformação ao fluxo de dados do Data Wrangler.

### Crie um intervalo de data e hora em sua série temporal
<a name="canvas-transform-datetime-range"></a>

Talvez você tenha dados de séries temporais que não tenham timestamps. Se você sabe que as observações foram feitas em intervalos regulares, você pode gerar timestamps para a série temporal em uma coluna separada. Para gerar timestamps, você especifica o valor do carimbo de data/hora inicial e a frequência dos timestamps.

Por exemplo, você pode ter os seguintes dados de séries temporais para o número de clientes em um restaurante:

Dados de séries temporais sobre o número de clientes em um restaurante


| Número de clientes | 
| --- | 
| 10 | 
| 14 | 
| 24 | 
| 40 | 
| 30 | 
| 20 | 

Se você souber que o restaurante abriu às 17h e que as observações são feitas de hora em hora, você pode adicionar uma coluna de timestamp que corresponda aos dados da série temporal. É possível ver a coluna de timestamp na tabela a seguir.

Dados de séries temporais sobre o número de clientes em um restaurante


| Número de clientes | Timestamp | 
| --- | --- | 
| 10 | 13:00h | 
| 14 | 14:00h | 
| 24 | 15:00h | 
| 40 | 16:00h | 
| 30 | 17:00h | 
| 20 | 18:00h | 

Use o procedimento a seguir para adicionar um intervalo de data e hora aos seus dados.

1. Abra seu fluxo de dados do Data Wrangler.

1. No seu fluxo de dados, em **Tipos de dados**, escolha o **\$1** e selecione **Adicionar transformação**.

1. Escolha **Adicionar etapa**.

1. Escolha **Intervalo de data e hora**.

1. Em **Tipo de frequência**, escolha a unidade usada para medir a frequência de timestamps.

1. Em **Começando o timestamp**, especifique o início do timestamp.

1. Em **Coluna de saída**, especifique um nome para a coluna de saída.

1. (Opcional) Configure a saída usando os campos restantes.

1. Escolha **Visualizar** para gerar uma visualização prévia da transformação.

1. Escolha **Adicionar** para adicionar a transformação ao fluxo de dados do Data Wrangler.

### Use uma janela contínua em sua série temporal
<a name="canvas-transform-rolling-window"></a>

Você pode extrair atributos ao longo de um período de tempo. Por exemplo, para o tempo, *t*, e uma janela de tempo de comprimento 3, e para a linha que indica o timestamp *t*, anexamos os atributos extraídas da série temporal nos momentos *t* - 3, *t* - 2 e *t* - 1. Para obter informações sobre como extrair atributos, consulte [Extrair atributos de seus dados de séries temporais](#canvas-transform-extract-time-series-features). 

É possível usar o procedimento a seguir para extrair atributos em um período.

1. Abra seu fluxo de dados do Data Wrangler.

1. No seu fluxo de dados, em **Tipos de dados**, escolha o **\$1** e selecione **Adicionar transformação**.

1. Escolha **Adicionar etapa**.

1. Escolha **Atributos da janela contínua**.

1. Em **Gerar atributos de janela contínua para esta coluna**, escolha uma coluna.

1. Na **Coluna timestamp**, escolha a coluna contendo timestamps.

1. (Opcional) Em **Coluna de saída**, especifique o nome da coluna de saída.

1. Em **Tamanho da janela**, especifique o tamanho da janela.

1. Em **Estratégia**, escolha uma estratégia para extrair os atributos.

1. Escolha **Visualizar** para gerar uma visualização prévia da transformação.

1. Escolha **Adicionar** para adicionar a transformação ao fluxo de dados do Data Wrangler.

## Destacar data e hora
<a name="canvas-transform-datetime-embed"></a>

Use **Destacar data/hora** para criar uma incorporação vetorial representando um campo de data e hora. Para usar essa transformação, os dados de data e hora devem estar em um dos seguintes formatos: 
+ Segmentos que descrevem a data e hora: Por exemplo, `"January 1st, 2020, 12:44pm"`. 
+ Um timestamp Unix: um timestamp Unix descreve o número de segundos, milissegundos, microssegundos ou nanossegundos a partir de 1/1/1970. 

Você pode escolher **inferir o formato de data e hora** e fornecer um **formato de data e hora**. Se você fornecer um formato de data e hora, deverá usar os códigos descritos na [documentação do Python](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes). As opções selecionadas para essas duas configurações têm implicações na velocidade da operação e nos resultados finais.
+ A opção mais manual e computacionalmente mais rápida é especificar um **Formato de data e hora** e selecionar **Não** para **Inferir formato de data e hora**.
+ Para reduzir o trabalho manual, você pode escolher **Inferir formato de data e hora** e não especificar um formato de data e hora. É também uma operação computacionalmente rápida; entretanto, o primeiro formato de data e hora encontrado na coluna de entrada é considerado o formato da coluna inteira. Se houver outros formatos na coluna, esses valores serão NaN na saída final. Inferir o formato de data e hora pode fornecer segmentos não analisados. 
+ Se você não especificar um formato e selecionar **Não** para **Inferir formato de data e hora**, obterá os resultados mais robustos. Todos os segmentos de data e hora válidos são analisados. No entanto, essa operação pode ser uma ordem de magnitude mais lenta do que as duas primeiras opções dessa lista. 

Ao usar essa transformação, você especifica uma **coluna de entrada** que contém dados de data e hora em um dos formatos listados acima. A transformação cria uma coluna de saída chamada **Nome da coluna de saída**. O formato da coluna de saída depende da sua configuração usando o seguinte:
+ **Vetor**: gera uma única coluna como vetor. 
+ **Colunas**: cria uma nova coluna para cada atributo. Por exemplo, se a saída tiver um ano, mês e dia, três colunas separadas serão criadas para ano, mês e dia. 

Além disso, você deve escolher um **modo de incorporação**. Para modelos lineares e redes profundas, recomendamos escolher o **cíclico**. **Para algoritmos baseados em árvore, recomendamos escolher ordinal.**

## Formatar segmento
<a name="canvas-transform-format-string"></a>

As transformações **Formatar segmento** contêm operações de formatação de segmento padrão. Por exemplo, você pode usar essas operações para remover caracteres especiais, normalizar comprimentos de segmentos e atualizar maiúsculas e minúsculas.

Esse grupo de atributos contém as seguintes transformações: Todas as transformações retornam cópias de segmentos na **coluna Entrada** e adicionam o resultado a uma nova coluna de saída.


| Nome | Função | 
| --- | --- | 
| Almofada esquerda |  Pressione com o botão esquerdo o segmento com um determinado **caractere de preenchimento** até a **largura especificada.** Se o segmento for maior que a **largura**, o valor de retorno será reduzido para caracteres de **largura**.  | 
| Almofada direita |  Preencha com o botão direito o segmento com um determinado **caractere de preenchimento** até a **largura** especificada. Se o segmento for maior que a **largura**, o valor de retorno será reduzido para caracteres de **largura**.  | 
| Centro (almofadas em ambos os lados) |  Coloque o segmento no centro (adicione preenchimento nos dois lados do segmento) com um determinado **caractere de preenchimento** até a **largura** especificada. Se o segmento for maior que a **largura**, o valor de retorno será reduzido para caracteres de **largura**.  | 
| Acrescentar zeros à esquerda |  Preencha à esquerda um segmento numérico com zeros, até uma determinada **largura**. Se o segmento for maior que a **largura**, o valor de retorno será reduzido para caracteres de **largura**.  | 
| Remova à esquerda e à direita |  Retorna uma cópia do segmento com os caracteres iniciais e finais removidos.  | 
| Remova os caracteres da esquerda |  Retorna uma cópia de segmento com os caracteres iniciais removidos.  | 
| Remova os caracteres da direita |  Retorna uma cópia do segmento com os caracteres finais removidos.  | 
| Letras minúsculas |  Converta todas as letras do texto em letras minúsculas.  | 
| Letras maiúsculas |  Converta todas as letras do texto em letras maiúsculas.  | 
| Capitalizar |  Coloque a primeira letra em maiúscula em cada frase.   | 
| Alternar letra maiúscula e minúscula | Converte todos os caracteres maiúsculos em minúsculos e todos os caracteres minúsculos em caracteres maiúsculos de segmento fornecida e o retorna. | 
| Adicionar prefixo ou sufixo |  Adiciona um prefixo e um sufixo à coluna do segmento. Você deve especificar pelo menos um dos **Prefixos** e **Sufixos**.   | 
| Remover símbolos |  Remove os símbolos fornecidos de um segmento. Todos os caracteres listados são removidos. O padrão é espaço em branco.   | 

## Lidar com valores discrepantes
<a name="canvas-transform-handle-outlier"></a>

Os modelos de machine learning são sensíveis à distribuição e ao alcance dos valores de seus atributos. Valores discrepantes, ou valores raros, podem afetar negativamente a precisão do modelo e levar a tempos de treinamento mais longos. Use esse grupo de atributos para detectar e atualizar valores discrepantes em seu conjunto de dados. 

Quando você define uma etapa de transformação **Lidar com valores discrepantes**, as estatísticas usadas para detectar valores discrepantes são geradas nos dados disponíveis no Data Wrangler ao definir essa etapa. Essas mesmas estatísticas são usadas ao executar um trabalho do Data Wrangler. 

Use as seções a seguir para saber mais sobre as transformações que este grupo contém. Você especifica um **nome de saída** e cada uma dessas transformações gera uma coluna de saída com os dados resultantes. 

### Valores discrepantes numéricos robustos de desvio padrão
<a name="canvas-transform-handle-outlier-rstdev"></a>

Essa transformação detecta e corrige valores discrepantes em atributos numéricos usando estatísticas que são robustas a valores discrepantes.

Você deve definir um **quantil superior** e um **quantil inferior** para as estatísticas usadas para calcular valores discrepantes. Você também deve especificar o número de **desvios padrão** dos quais um valor deve variar da média para ser considerado um valor atípico. Por exemplo, se você especificar 3 para **desvios padrão**, um valor deve ser de mais de 3 desvios padrão da média para ser considerado um valor atípico. 

O **Método Fix** é o método usado para lidar com valores discrepantes quando eles são detectados. Você pode escolher entre as seguintes opções:
+ **Clipe**: use essa opção para recortar os valores discrepantes no limite de detecção de valores discrepantes correspondente.
+ **Remover**: use essa opção para remover linhas com valores discrepantes do dataframe.
+ **Invalidar**: use essa opção para substituir valores discrepantes por valores inválidos.

### Valores atípicos numéricos de desvio padrão
<a name="canvas-transform-handle-outlier-sstdev"></a>

Essa transformação detecta e corrige valores discrepantes em atributos numéricos usando a média e o desvio padrão.

Você especifica o número de **desvios padrão** dos quais um valor deve variar da média para ser considerado um valor atípico. Por exemplo, se você especificar 3 para **desvios padrão**, um valor deve ser de mais de 3 desvios padrão da média para ser considerado um valor atípico. 

O **Método Fix** é o método usado para lidar com valores discrepantes quando eles são detectados. Você pode escolher entre as seguintes opções:
+ **Clipe**: use essa opção para recortar os valores discrepantes no limite de detecção de valores discrepantes correspondente.
+ **Remover**: use essa opção para remover linhas com valores discrepantes do dataframe.
+ **Invalidar**: use essa opção para substituir valores discrepantes por valores inválidos.

### Valores atípicos numéricos quantílicos
<a name="canvas-transform-handle-outlier-quantile-numeric"></a>

Use esta transformação para detectar e corrigir valores discrepantes em atributos numéricos usando quantis. Você pode definir um **quantil superior** e um **quantil inferior**. Todos os valores que ficam acima do quantil superior ou abaixo do quantil inferior são considerados discrepantes. 

O **Método Fix** é o método usado para lidar com valores discrepantes quando eles são detectados. Você pode escolher entre as seguintes opções:
+ **Clipe**: use essa opção para recortar os valores discrepantes no limite de detecção de valores discrepantes correspondente.
+ **Remover**: use essa opção para remover linhas com valores discrepantes do dataframe.
+ **Invalidar**: use essa opção para substituir valores discrepantes por valores inválidos. 

### Valores discrepantes numéricos mínimo-máximos
<a name="canvas-transform-handle-outlier-minmax-numeric"></a>

Essa transformação detecta e corrige valores discrepantes em atributos numéricos usando limites superiores e inferiores. Use esse método se você conhece valores limite que demarcam valores discrepantes.

Você especifica um **limite superior** e um **limite inferior** e, se os valores ficarem acima ou abaixo desses limites, respectivamente, eles serão considerados valores discrepantes. 

O **Método Fix** é o método usado para lidar com valores discrepantes quando eles são detectados. Você pode escolher entre as seguintes opções:
+ **Clipe**: use essa opção para recortar os valores discrepantes no limite de detecção de valores discrepantes correspondente.
+ **Remover**: use essa opção para remover linhas com valores discrepantes do dataframe.
+ **Invalidar**: use essa opção para substituir valores discrepantes por valores inválidos. 

### Substituir valores raros
<a name="canvas-transform-handle-outlier-replace-rare"></a>

Ao usar a transformação **Substituir valores raros**, você especifica um limite e o Data Wrangler localiza todos os valores que atendem a esse limite e os substitui por um segmento especificado por você. Por exemplo, talvez você queira usar essa transformação para categorizar todos os valores atípicos em uma coluna em uma categoria “Outros”. 
+ **Segmento de substituição**: a sequência com a qual substituir valores discrepantes.
+ **Limite absoluto**: uma categoria é rara se o número de instâncias for menor ou igual a esse limite absoluto.
+ **Limite de fração**: uma categoria é rara se o número de instâncias for menor ou igual a esse limite de fração multiplicado pelo número de linhas.
+ **Máximo de categorias comuns**: máximo de categorias não raras que permanecem após a operação. Se o limiar não filtrar categorias suficientes, aquelas com o maior número de ocorrências são classificadas como não raras. Se definido como 0 (padrão), não há limite rígido para o número de categorias.

## Processamento de valores ausentes
<a name="canvas-transform-handle-missing"></a>

Valores ausentes são uma ocorrência comum em conjuntos de dados de machine learning. Em algumas situações, é apropriado imputar aos dados faltantes um valor calculado, como um valor médio ou categoricamente comum. Você pode processar valores ausentes usando o grupo de transformação **Processar valores ausentes**. Esse grupo contém as seguintes transformações: 

### Preencher valores ausentes
<a name="canvas-transform-fill-missing"></a>

Use a transformação **Preencher valores ausentes** para substituir valores ausentes por um **valor do preenchimento** definido por você. 

### Imputar valores ausentes
<a name="canvas-transform-impute"></a>

Use a transformação de **Imputar valores ausentes** para criar uma nova coluna que contenha valores imputados onde valores ausentes foram encontrados nos dados de entrada categóricos e numéricos. A configuração depende do seu tipo de dados.

Para dados numéricos, escolha uma estratégia de imputação, a estratégia usada para determinar o novo valor a ser imputado. Você pode optar por imputar a média ou a mediana sobre os valores que estão presentes no seu conjunto de dados. O Data Wrangler usa o valor que ele computa para imputar os valores ausentes.

Para dados categóricos, o Data Wrangler imputa valores ausentes usando o valor mais frequente na coluna. Para imputar um segmento personalizado, use a transformação **Preenchimento ausente** em vez disso.

### Adicionar indicador de valores ausentes
<a name="canvas-transform-missing-add-indicator"></a>

Use a transformação **Adicionar indicador para valores ausentes** para criar uma nova coluna indicadora, que contém um booleano `"false"` se uma linha contiver um valor e `"true"` se uma linha contiver um valor ausente. 

### Eliminar valores ausentes
<a name="canvas-transform-drop-missing"></a>

Use a opção **Eliminar valores ausentes** para remover linhas que contêm valores ausentes da **Coluna de entrada**.

## Gerenciar colunas
<a name="canvas-manage-columns"></a>

Você pode usar as seguintes transformações para atualizar e gerenciar rapidamente as colunas no seu conjunto de dados: 


****  

| Nome | Função | 
| --- | --- | 
| Soltar coluna | Exclua uma coluna.  | 
| Duplicar coluna | Duplique uma coluna. | 
| Renomear coluna | Renomeie uma coluna. | 
| Mover coluna |  Mova a localização de uma coluna no conjunto de dados. Escolha mover sua coluna para o início ou o final do conjunto de dados, antes ou depois de uma coluna de referência ou para um índice específico.   | 

## Gerenciar linhas
<a name="canvas-transform-manage-rows"></a>

Use esse grupo de transformação para executar rapidamente as operações de classificação e reprodução aleatória nas linhas. Este grupo contém o seguinte:
+ **Classificar**: classifique todo o dataframe por uma determinada coluna. Marque a caixa de seleção ao lado de **Ordem crescente** para essa opção; caso contrário, desmarque a caixa de seleção e a ordem decrescente será usada para a classificação. 
+ **Embaralhar**: embaralhe aleatoriamente todas as linhas no conjunto de dados. 

## Gerenciar vetores
<a name="canvas-transform-manage-vectors"></a>

Use esse grupo de transformação para combinar ou nivelar colunas vetoriais. Esse grupo contém as seguintes transformações: 
+ **Montar**: use essa transformação para combinar vetores e dados numéricos do Spark em uma única coluna. Por exemplo, você pode combinar três colunas: duas contendo dados numéricos e uma contendo vetores. Adicione todas as colunas que você deseja combinar nas **colunas de entrada** e especifique um **nome de coluna de saída** para os dados combinados. 
+ **Nivelar**: use essa transformação para nivelar uma única coluna contendo dados vetoriais. A coluna de entrada deve conter PySpark vetores ou objetos semelhantes a matrizes. Você pode controlar o número de colunas criadas especificando um **método para detectar o número de saídas**. Por exemplo, se você selecionar **Comprimento do primeiro vetor**, o número de elementos no primeiro vetor ou matriz válido encontrado na coluna determinará o número de colunas de saída criadas. Todos os outros vetores de entrada com muitos itens serão truncados. As entradas com poucos itens são preenchidas com NaNs.

  Você também especifica um **prefixo de saída**, que é usado como prefixo para cada coluna de saída. 

## Processo numérico
<a name="canvas-transform-process-numeric"></a>

Use o grupo de atributos **Processar numérico** para processar dados numéricos. Cada escalar desse grupo é definido usando a biblioteca Spark. Os seguintes escalares são compatíveis:
+ **Escalonador padrão**: padronize a coluna de entrada subtraindo a média de cada valor e dimensionando para a variação unitária. Para saber mais, consulte a documentação do Spark para [StandardScaler](https://spark.apache.org/docs/latest/ml-features#standardscaler).
+ **Escalonador robusto**: escale a coluna de entrada usando estatísticas que são robustas a valores discrepantes. Para saber mais, consulte a documentação do Spark para [RobustScaler](https://spark.apache.org/docs/latest/ml-features#robustscaler).
+ **Escalonador mínimo máximo**: transforme a coluna de entrada escalando cada atributo para um determinado intervalo. Para saber mais, consulte a documentação do Spark para [MinMaxScaler](https://spark.apache.org/docs/latest/ml-features#minmaxscaler).
+ **Escalonador absoluto máximo**: escale a coluna de entrada dividindo cada valor pelo valor absoluto máximo. Para saber mais, consulte a documentação do Spark para [MaxAbsScaler](https://spark.apache.org/docs/latest/ml-features#maxabsscaler).

## Amostragem
<a name="canvas-transform-sampling"></a>

Depois de importar seus dados, você pode usar o transformador de **amostragem** para coletar uma ou mais amostras deles. Quando você usa o transformador de amostragem, o Data Wrangler coleta amostras do seu conjunto de dados original.

Você pode escolher um dos seguintes métodos de amostra:
+ **Limite**: faça uma amostra do conjunto de dados a partir da primeira linha até o limite que você especificar.
+ **Aleatório**: obtém uma amostra aleatória de um tamanho especificado por você.
+ **Estratificado**: obtém uma amostra aleatória estratificada.

Você pode estratificar uma amostra aleatória para garantir que ela represente a distribuição original do conjunto de dados.

Você pode estar realizando a preparação de dados para vários casos de uso. Para cada caso de uso, você pode pegar uma amostra diferente e aplicar um conjunto diferente de transformações.

O procedimento a seguir descreve o processo de criar uma amostra aleatória. 

Para obter uma amostra aleatória dos seus dados.

1. Escolha o **\$1** à direita do conjunto de dados que você importou. O nome do seu conjunto de dados está localizado abaixo do **\$1**.

1. Escolha **Adicionar transformação**.

1. Escolha **Amostragem**.

1. Para **Método de amostragem**, escolha o método de amostragem.

1. Em **Tamanho aproximado da amostra**, escolha o número aproximado de observações que você deseja em sua amostra.

1. (Opcional) Especifique um número inteiro para **Semente aleatória** para criar uma amostra reproduzível.

O procedimento a seguir descreve o processo de criação de uma amostra estratificada.

Para obter uma amostra estratificada de seus dados.

1. Escolha o **\$1** à direita do conjunto de dados que você importou. O nome do seu conjunto de dados está localizado abaixo do **\$1**.

1. Escolha **Adicionar transformação**.

1. Escolha **Amostragem**.

1. Para **Método de amostragem**, escolha o método de amostragem.

1. Em **Tamanho aproximado da amostra**, escolha o número aproximado de observações que você deseja em sua amostra.

1. Em **Estratificar coluna**, especifique o nome da coluna na qual você deseja estratificar.

1. (Opcional) Especifique um número inteiro para **Semente aleatória** para criar uma amostra reproduzível.

## Pesquisar e editar
<a name="canvas-transform-search-edit"></a>

Use esta seção para pesquisar e editar padrões específicos em segmentos. Por exemplo, você pode localizar e atualizar segmentos em frases ou documentos, dividir segmentos por delimitadores e localizar ocorrências de segmentos específicos. 

As seguintes transformações são compatíveis com **Pesquisar e editar**: Todas as transformações retornam cópias de segmentos na **Coluna Entrada** e adicionam o resultado a uma nova coluna de saída.


****  

| Nome | Função | 
| --- | --- | 
|  Encontre um sub-segmento  |  Retorna o índice da primeira ocorrência do **Sub-segmento** pela qual você pesquisou. Você pode iniciar e terminar a pesquisa no **Início** e no **Fim**, respectivamente.   | 
|  Encontre um sub-segmento (da direita)  |  Retorna o índice da última ocorrência do **Sub-segmento** que você pesquisou. Você pode iniciar e finalizar a pesquisa no **Início** e no **Fim**, respectivamente.   | 
|  Corresponde ao prefixo  |  Retorna um valor booleano se o segmento tiver um determinado **padrão**. Um padrão pode ser uma sequência de caracteres ou uma expressão regular. Opcionalmente, você pode diferenciar o padrão de maiúsculas e minúsculas.   | 
|  Encontre todas as ocorrências  |  Retorna uma matriz com todas as ocorrências de um determinado padrão. Um padrão pode ser uma sequência de caracteres ou uma expressão regular.   | 
|  Extrair usando regex  |  Retorna um segmento que corresponde a um determinado padrão regex.  | 
|  Extrair entre delimitadores  |  Retorna um segmento com todos os caracteres encontrados entre o **delimitador esquerdo** e o **delimitador direito**.   | 
|  Extrair da posição  |  Retorna um segmento, começando da **posição inicial** no segmento de entrada, que contém todos os caracteres até a posição inicial mais o **comprimento**.   | 
|  Encontre e substitua a sub-segmento  |  Retorna um segmento com todas as correspondências de um determinado **padrão** (expressão regular) substituída pelo **segmento de substituição**.  | 
|  Substituir entre delimitadores  |  Retorna um segmento com a sub-segmento encontrada entre a primeira aparição de um **delimitador esquerdo** e a última aparição de um **delimitador direito** substituída pelo **segmento de substituição**. Se nenhuma correspondência for encontrada, nada é substituído.   | 
|  Substituir da posição  |  Retorna um segmento com a sub-segmento entre a **posição inicial** e a **posição inicial** mais o **comprimento** substituída pelo **segmento de substituição**. Se a **posição inicial** mais o **comprimento** for maior que o comprimento de segmento de substituição, a saída conterá**...**.  | 
|  Converter regex para ausente  |  Converte um segmento em `None` se for inválido e retorna o resultado. A validade é definida com uma expressão regular em **Padrão**.  | 
|  Dividir segmento por delimitador  |  Retorna uma matriz de srtrings da string de entrada, dividida por **Delimitador**, com até o **Número máximo de divisões** (opcional). O delimitador usa como padrão o espaço em branco.   | 

## Dividir dados
<a name="canvas-transform-split-data"></a>

Use a transformação **Dividir dados** para dividir seu conjunto de dados em dois ou três conjuntos de dados. Por exemplo, você pode dividir seu conjunto de dados em um conjunto de dados usado para treinar seu modelo e um conjunto de dados usado para testá-lo. Você pode determinar a proporção do conjunto de dados que entra em cada divisão. Por exemplo, se você estiver dividindo um conjunto de dados em dois conjuntos, o conjunto de treinamento pode ter 80% dos dados, enquanto o conjunto de teste terá 20%.

A divisão de seus dados em três conjuntos de dados permite criar conjuntos de dados de treinamento, validação e teste. Você pode ver o desempenho do modelo no conjunto de dados de teste eliminando a coluna de destino.

Seu caso de uso determina quanto do conjunto de dados original cada um de seus conjuntos de dados obtém e o método usado para dividir os dados. Por exemplo, você pode querer usar uma divisão estratificada para garantir que a distribuição das observações na coluna alvo seja a mesma em todos os conjuntos de dados. Você pode usar as seguintes transformações divididas:
+ Divisão aleatória: Cada divisão é uma amostra aleatória e não sobreposta do conjunto de dados original. Para conjuntos de dados maiores, utilizar uma divisão aleatória pode ser computacionalmente custoso e levar mais tempo do que uma divisão ordenada.
+ Divisão ordenada: divide o conjunto de dados com base na ordem sequencial das observações. Por exemplo, em uma divisão de treino/teste de 80/20, as primeiras observações que compõem 80% do conjunto de dados são destinadas ao conjunto de treinamento. Os últimos 20% das observações vão para o conjunto de dados de teste. As divisões ordenadas são eficazes para manter a ordem existente dos dados entre as divisões.
+ Divisão estratificada: divide o conjunto de dados para garantir que o número de observações na coluna de entrada tenha representação proporcional. Para uma coluna de entrada que possui as observações 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, uma divisão de 80/20 nessa coluna significaria que aproximadamente 80% dos 1s, 80% dos 2s e 80% dos 3s iriam para o conjunto de treinamento. Cerca de 20% de cada tipo de observação vai para o conjunto de testes.
+ Dividir por chave: evita que dados com a mesma chave ocorram em mais de uma divisão. Por exemplo, se você tiver um conjunto de dados com a coluna “customer\$1id” e o estiver usando como chave, nenhum ID de cliente estará em mais de uma divisão.

Depois de dividir os dados, você pode aplicar transformações adicionais a cada conjunto de dados. Para a maioria dos casos de uso, eles não são necessários.

O Data Wrangler calcula as proporções das divisões para desempenho. Você pode escolher um limite de erro para definir a precisão das divisões. Limites de erro mais baixos refletem de forma mais precisa as proporções que você especifica para as divisões. Se você definir um limite de erro mais alto, obterá melhor desempenho, mas menor precisão.

Para dividir perfeitamente os dados, defina o limite de erro como 0. Você pode especificar um limite entre 0 e 1 para melhorar o desempenho. Se você especificar um valor maior que 1, o Data Wrangler interpretará esse valor como 1.

Se você tiver 10.000 linhas em seu conjunto de dados e especificar uma divisão 80/20 com um erro de 0,001, obterá observações que se aproximam de um dos seguintes resultados:
+ 8010 observações no conjunto de treinamento e 1990 no conjunto de testes
+ 7990 observações no conjunto de treinamento e 2010 no conjunto de testes

O número de observações para o conjunto de testes no exemplo anterior está no intervalo entre 8010 e 7990.

Por padrão, o Data Wrangler usa uma semente aleatória para tornar as divisões reproduzíveis. Você pode especificar um valor diferente para a semente para criar uma divisão reproduzível diferente.

------
#### [ Randomized split ]

Use o procedimento a seguir para realizar uma divisão aleatória em seu conjunto de dados.

Para dividir seu conjunto de dados aleatoriamente, faça o seguinte

1. Escolha o **\$1** ao lado do nó que contém o conjunto de dados que você está dividindo.

1. Escolha **Adicionar transformação**.

1. Escolha **Dividir dados**.

1. (Opcional) Para **Divisões**, especifique os nomes e as proporções de cada divisão. As proporções devem somar 1.

1. (Opcional) Escolha o **\$1** para criar uma divisão adicional.

   1. Especifique os nomes e as proporções de todas as divisões. As proporções devem somar 1.

1. (Opcional) Especifique um valor para o **Limite de erro** diferente do valor padrão.

1. (Opcional) Especifique um valor para a **Semente aleatória**.

1. Escolha **Pré-visualizar**.

1. Escolha **Adicionar**.

------
#### [ Ordered split ]

Use o procedimento a seguir para realizar uma divisão ordenada em seu conjunto de dados.

Para fazer uma divisão ordenada em seu conjunto de dados, faça o seguinte:

1. Escolha o **\$1** ao lado do nó que contém o conjunto de dados que você está dividindo.

1. Escolha **Adicionar transformação**.

1. Em **Transformação**, escolha **Divisão ordenada**.

1. Escolha **Dividir dados**.

1. (Opcional) Para **Divisões**, especifique os nomes e as proporções de cada divisão. As proporções devem somar 1.

1. (Opcional) Escolha o **\$1** para criar uma divisão adicional.

   1. Especifique os nomes e as proporções de todas as divisões. As proporções devem somar 1.

1. (Opcional) Especifique um valor para o **Limite de erro** diferente do valor padrão.

1. (Opcional) Para **Coluna de entrada**, especifique uma coluna com valores numéricos. Usa os valores das colunas para inferir quais registros estão em cada divisão. Os valores menores estão em uma divisão com os valores maiores nas outras divisões.

1. (Opcional) Selecione **Lidar com duplicatas** para adicionar ruído aos valores duplicados e criar um conjunto de dados com valores totalmente exclusivos.

1. (Opcional) Especifique um valor para a **Semente aleatória**.

1. Escolha **Pré-visualizar**.

1. Escolha **Adicionar**.

------
#### [ Stratified split ]

Use o procedimento a seguir para realizar uma divisão estratificada em seu conjunto de dados.

Para realizar uma divisão estratificada no seu conjunto de dados, faça o seguinte:

1. Escolha o **\$1** ao lado do nó que contém o conjunto de dados que você está dividindo.

1. Escolha **Adicionar transformação**.

1. Escolha **Dividir dados**.

1. Em **Transformação**, escolha **Divisão estratificada.**

1. (Opcional) Para **Divisões**, especifique os nomes e as proporções de cada divisão. As proporções devem somar 1.

1. (Opcional) Escolha o **\$1** para criar uma divisão adicional.

   1. Especifique os nomes e as proporções de todas as divisões. As proporções devem somar 1.

1. Para **Coluna de entrada**, especifique uma coluna com até 100 valores exclusivos. O Data Wrangler não pode estratificar uma coluna com mais de 100 valores exclusivos.

1. (Opcional) Especifique um valor para o **Limite de erro** diferente do valor padrão.

1. (Opcional) Especifique um valor para **Semente aleatória** para especificar uma semente diferente.

1. Escolha **Pré-visualizar**.

1. Escolha **Adicionar**.

------
#### [ Split by column keys ]

Use o procedimento a seguir para dividir pelas chaves de coluna em seu conjunto de dados.

Para dividir pelas chaves de coluna em seu conjunto de dados, faça o seguinte:

1. Escolha o **\$1** ao lado do nó que contém o conjunto de dados que você está dividindo.

1. Escolha **Adicionar transformação**.

1. Escolha **Dividir dados**.

1. Em **Transformação**, escolha **Dividir por chave**.

1. (Opcional) Para **Divisões**, especifique os nomes e as proporções de cada divisão. As proporções devem somar 1.

1. (Opcional) Escolha o **\$1** para criar uma divisão adicional.

   1. Especifique os nomes e as proporções de todas as divisões. As proporções devem somar 1.

1. Para **Colunas-chave**, especifique as colunas com valores que você não deseja que apareçam nos dois conjuntos de dados.

1. (Opcional) Especifique um valor para o **Limite de erro** diferente do valor padrão.

1. Escolha **Pré-visualizar**.

1. Escolha **Adicionar**.

------

## Analisar valor como tipo
<a name="canvas-transform-cast-type"></a>

Use essa transformação para converter uma coluna em um novo tipo. Os tipos de dados do Data Wrangler compatíveis são:
+ Longo
+ Float
+ Booleano
+ Data, no formato dd-MM-yyyy, representando dia, mês e ano, respectivamente. 
+ String

## Validar segmento
<a name="canvas-transform-validate-string"></a>

Use as transformações **Validar segmento** para criar uma nova coluna que indica que uma linha de dados de texto atende a uma condição especificada. Por exemplo, você pode usar uma transformação **Validar segmento** para verificar se um segmento contém somente caracteres minúsculos. As seguintes transformações são compatíveis com **Validar segmento**: 

As seguintes transformações estão incluídas nesse grupo de transformações: Se uma transformação gerar um valor booleano, `True` é representada com a `1` e `False` é representada com a `0`.


****  

| Nome | Função | 
| --- | --- | 
|  Tamanho da segmento  |  Retorna `True` se o comprimento de um segmento for igual ao comprimento especificado. Caso contrário, gera `False`.   | 
|  Inicia com  |  Retorna `True` se um segmento começar com um prefixo especificado. Caso contrário, gera `False`.  | 
|  Termina com  |  Retorna `True` se o comprimento de um segmento for igual ao comprimento especificado. Caso contrário, gera `False`.  | 
|  É alfanumérico  |  Retorna `True` se um segmento tiver apenas números e letras. Caso contrário, gera `False`.  | 
|  É alfa (letras)  |  Retorna `True` se um segmento tiver apenas letras. Caso contrário, gera `False`.  | 
|  É dígito  |  Retorna `True` se um segmento tiver apenas dígitos. Caso contrário, gera `False`.  | 
|  É espaço  |  Retorna `True` se um segmento tiver apenas números e letras. Caso contrário, gera `False`.  | 
|  É título  |  Retorna `True` se um segmento tiver algum espaço em branco. Caso contrário, gera `False`.  | 
|  Está em letra minúscula  |  Retorna `True` se um segmento tiver apenas letras minúsculas. Caso contrário, gera `False`.  | 
|  Está em letra maiúscula  |  Retorna `True` se um segmento tiver apenas letras maiúsculas. Caso contrário, gera `False`.  | 
|  É numérico  |  Retorna `True` se um segmento tiver apenas números. Caso contrário, gera `False`.  | 
|  É decimal  |  Retorna `True` se um segmento tiver apenas números decimais. Caso contrário, gera `False`.  | 

## Desaninhar dados JSON
<a name="canvas-transform-flatten-column"></a>

Se você tiver um arquivo.csv, talvez tenha valores em seu conjunto de dados que sejam segmentos JSON. Da mesma forma, você pode ter dados aninhados em colunas de um arquivo Parquet ou de um documento JSON.

Use o operador **estruturado nivelado** para separar as chaves de primeiro nível em colunas separadas. Uma chave de primeiro nível é uma chave que não está aninhada em um valor.

Por exemplo, você pode ter um conjunto de dados que tenha uma coluna *pessoa* com informações demográficas de cada pessoa armazenadas como segmentos JSON. Seu segmento JSON pode ser semelhante à seguinte:

```
 "{"seq": 1,"name": {"first": "Nathaniel","last": "Ferguson"},"age": 59,"city": "Posbotno","state": "WV"}"
```

O operador **estruturado nivelado** converte as seguintes chaves de primeiro nível em colunas adicionais no seu conjunto de dados:
+ seq
+ name
+ idade
+ cidade
+ estado

O Data Wrangler coloca os valores das chaves como valores abaixo das colunas. Veja a seguir os nomes e valores das colunas do JSON.

```
seq, name,                                    age, city, state
1, {"first": "Nathaniel","last": "Ferguson"}, 59, Posbotno, WV
```

Para cada valor em seu conjunto de dados contendo JSON, o operador **estruturado nivelado** cria colunas para as chaves de primeiro nível. Para criar colunas para chaves aninhadas, chame o operador novamente. Para o exemplo anterior, chamar o operador cria as colunas:
+ name\$1first
+ name\$1last

O exemplo a seguir mostra o conjunto de dados resultante de chamar a operação novamente.

```
seq, name,                                    age, city, state, name_first, name_last
1, {"first": "Nathaniel","last": "Ferguson"}, 59, Posbotno, WV, Nathaniel, Ferguson
```

Escolha **Teclas para nivelar** para especificar as chaves de primeiro nível que você deseja extrair como colunas separadas. Se você não especificar nenhuma chave, o Data Wrangler extrairá todas as chaves por padrão.

## Explodir matriz
<a name="canvas-transform-explode-array"></a>

Use **Explode matriz** para expandir os valores da matriz em linhas de saída separadas. Por exemplo, a operação pode pegar cada valor na matriz, [[1, 2, 3,], [4, 5, 6], [7, 8, 9]] e criar uma nova coluna com as seguintes linhas:

```
                [1, 2, 3]
                [4, 5, 6]
                [7, 8, 9]
```

O Data Wrangler nomeia a nova coluna como input\$1column\$1name\$1flatten.

Você pode chamar a operação **Explodir matriz** várias vezes para colocar os valores aninhados da matriz em colunas de saída separadas. O exemplo a seguir mostra o resultado de chamar a operação várias vezes em um conjunto de dados com uma matriz aninhada.

Colocando os valores de uma matriz aninhada em colunas separadas


| id | array | id | array\$1items | id | array\$1items\$1items | 
| --- | --- | --- | --- | --- | --- | 
| 1 | [[gato, cachorro], [morcego, sapo]] | 1 | [gato, cachorro] | 1 | cat | 
| 2 |  [[rosa, petúnia], [lírio, margarida]]  | 1 | [morcego, sapo] | 1 | dog | 
|  |  | 2 | [rosa, petúnia] | 1 | bat | 
|  |  | 2 | [lírio, margarida] | 1 | sapo | 
|  |  |  | 2 | 2 | rose | 
|  |  |  | 2 | 2 | petúnia | 
|  |  |  | 2 | 2 | lírio | 
|  |  |  | 2 | 2 | margarida | 

## Transformar dados de imagem
<a name="canvas-transform-image"></a>

Use o Data Wrangler para importar e transformar as imagens que você está usando para seus pipelines de machine learning (ML). Depois de preparar os dados de imagem, você pode exportá-los do fluxo do Data Wrangler para o pipeline de ML.

Você pode usar as informações fornecidas aqui para se familiarizar com a importação e transformação de dados de imagem no Data Wrangler. O Data Wrangler usa o OpenCV para importar imagens. Para obter mais informações sobre os formatos de imagem compatíveis, consulte [Leitura e gravação de arquivos de imagem](https://docs.opencv.org/3.4/d4/da8/group__imgcodecs.html#ga288b8b3da0892bd651fce07b3bbd3a56).

Depois de se familiarizar com os conceitos de transformação de seus dados de imagem, leia o tutorial a seguir, [Preparar dados de imagem com o Amazon SageMaker Data Wrangler](https://aws.amazon.com/blogs/machine-learning/prepare-image-data-with-amazon-sagemaker-data-wrangler/).

Os setores e casos de uso a seguir são exemplos nos quais a aplicação de machine learning a dados de imagem transformados pode ser útil:
+ Fabricação - Identificação de defeitos em itens da linha de montagem
+ Alimentação - Identificação de alimentos estragados ou deteriorados
+ Medicina - Identificação de lesões nos tecidos

Ao trabalhar com dados de imagem no Data Wrangler, você passa pelo seguinte processo:

1. Importar - Selecione as imagens escolhendo o diretório que as contém em seu bucket do Amazon S3.

1. Transformar - Use as transformações integradas para preparar as imagens para seu pipeline de machine learning.

1. Exportar: Exporte as imagens que você transformou para um local que possa ser acessado a partir do pipeline.

Use o seguinte procedimento para importar seus dados de imagem:

**Para importar seus dados de imagem**

1. Navegue até a página **Criar conexão**.

1. Escolha **Amazon S3**.

1. Especifique o caminho do arquivo do Amazon S3 que contém os dados de imagem.

1. Em **Tipo de arquivo**, escolha **Imagem**.

1. (Opcional) Escolha **Importar diretórios aninhados** para importar imagens de vários caminhos do Amazon S3.

1. Escolha **Importar**.

O Data Wrangler usa a biblioteca [imgaug](https://imgaug.readthedocs.io/en/latest/) de código aberto para suas transformações de imagem integradas. É possível usar as seguintes transformações internas:
+ **ResizeImage**
+ **EnhanceImage**
+ **CorruptImage**
+ **SplitImage**
+ **DropCorruptedImages**
+ **DropImageDuplicates**
+ **Brightness**
+ **ColorChannels**
+ **Grayscale**
+ **Rotate**

Use o procedimento a seguir para transformar suas imagens sem escrever código.

**Para transformar os dados de imagem sem escrever código**

1. No fluxo do Data Wrangler, escolha o **\$1** ao lado do nó que representa as imagens que você importou.

1. Escolha **Adicionar transformação**.

1. Escolha **Adicionar etapa**.

1. Escolha a transformação e configure-a.

1. Escolha **Pré-visualizar**.

1. Escolha **Adicionar**.

Além de usar as transformações fornecidas pelo Data Wrangler, você também pode usar seus próprios trechos de código personalizados. Para obter mais informações sobre como usar snippets de código personalizados, consulte [Transformações personalizadas](#canvas-transform-custom). Você pode importar as bibliotecas OpenCV e imgaug em seus trechos de código e usar as transformações associadas a elas. O seguinte exemplo mostra um de um snippet de código que detecta bordas nas imagens:

```
# 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)))
```

Ao aplicar transformações em seu fluxo do Data Wrangler, o Data Wrangler as aplica somente a uma amostra das imagens em seu conjunto de dados. Para otimizar sua experiência com a aplicação, o Data Wrangler não aplica as transformações em todas as suas imagens.

## Filtrar dados
<a name="canvas-transform-filter-data"></a>

Use o Data Wrangler para filtrar os dados em suas colunas. Ao filtrar os dados em uma coluna, você especifica os seguintes campos:
+ **Nome da coluna**: O nome da coluna que você está usando para filtrar os dados.
+ **Condição**: O tipo de filtro que você está aplicando aos valores na coluna.
+ **Valor**: O valor ou a categoria na coluna à qual você está aplicando o filtro.

Você pode filtrar nas seguintes condições:
+ **=**: Retorna valores que correspondem ao valor ou categoria que você especifica.
+ **\$1=**: Retorna valores que correspondem ao valor ou categoria que você especifica.
+ **>=**: Para dados **longos** ou **flutuantes**, filtra valores maiores ou iguais ao valor especificado.
+ **<=**: Para dados **longos** ou **flutuantes**, filtra valores menores ou iguais ao valor especificado.
+ **>**: Para dados **longos** ou **flutuantes**, filtra valores maiores que o valor especificado.
+ **<**: Para dados **longos** ou **flutuantes**, filtra valores menores que o valor especificado.

Para uma coluna que tem as categorias `male` e `female`, você pode filtrar todos os valores `male`. Você também pode filtrar todos os valores `female`. Como há somente valores `male` e `female` na coluna, o filtro retorna uma coluna que só tem valores `female`.

Você também pode adicionar vários filtros. Os filtros podem ser aplicados em várias colunas ou na mesma coluna. Por exemplo, se você estiver criando uma coluna que só tem valores dentro de um determinado intervalo, você adiciona dois filtros diferentes. Um filtro especifica que a coluna deve ter valores maiores do que o valor fornecido. O outro filtro especifica que a coluna deve ter valores menores que o valor fornecido.

Use o procedimento a seguir para adicionar a transformação de filtro aos seus dados.

**Para filtrar seus dados**

1. No fluxo do Data Wrangler, escolha o **\$1** ao lado do nó com os dados que você está filtrando.

1. Escolha **Adicionar transformação**.

1. Escolha **Adicionar etapa**.

1. Escolha **Filtrar dados**.

1. Especifique os seguintes campos:
   + **Nome da coluna**: A coluna que você está filtrando.
   + **Condição**: A condição do filtro.
   + **Valor**: O valor ou a categoria na coluna à qual você está aplicando o filtro.

1. (Opcional) Escolha **\$1** seguindo o filtro que você criou.

1. Configure o filtro.

1. Escolha **Pré-visualizar**.

1. Escolha **Adicionar**.

# Chat para preparação de dados
<a name="canvas-chat-for-data-prep"></a>

**Importante**  
Para administradores:  
O bate-papo para preparação de dados exige a política `AmazonSageMakerCanvasAIServicesAccess`. Para obter mais informações, consulte [AWS política gerenciada: AmazonSageMakerCanvas AIServices Acesso](security-iam-awsmanpol-canvas.md#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess).
O bate-papo para preparação de dados requer acesso ao Amazon Bedrock e ao modelo **Anthropic Claude** dentro dele. Para obter mais informações, consulte [Adicionar acesso ao modelo](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html#add-model-access).
Você deve executar SageMaker a preparação de dados do Canvas na Região da AWS mesma região em que está executando seu modelo. O chat para preparação de dados está disponível no Leste dos EUA (Norte da Virgínia), Oeste dos EUA (Oregon) e Europa (Frankfurt). Regiões da AWS

Além de usar as transformações e análises integradas, você pode usar a linguagem natural para explorar, visualizar e transformar seus dados em uma interface conversacional. Na interface conversacional, você pode usar consultas em linguagem natural para entender e preparar seus dados para criar modelos de ML.

Veja a seguir exemplos de alguns prompts que você pode usar:
+ Resumir meus dados
+ Remover coluna `example-column-name`
+ Substituir valores ausentes por mediana
+ Traçar o histograma dos preços
+ Qual é o item mais caro vendido?
+ Quantos itens distintos foram vendidos?
+ Classificar dados por região

Ao transformar seus dados usando seus prompts, você pode ver uma prévia que mostra como os dados estão sendo transformados. Você pode optar por adicioná-la como etapa em seu fluxo do Data Wrangler com base no que você vê na pré-visualização.

As respostas os seus prompts geram código para suas transformações e análises. Você pode modificar o código para atualizar a saída a partir do prompt. Por exemplo, você pode modificar o código de uma análise para alterar os valores dos eixos de um gráfico.

Use o seguinte procedimento para começar a conversar com seus dados:

**Conversar com seus dados**

1. Abra o fluxo de dados do SageMaker Canvas.

1. Escolher o balão de fala.  
![\[O bate-papo para preparação de dados está na parte superior da tela\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/chat-for-data-prep-welcome-step.png)

1. Especifique um prompt.

1. (Opcional) Se uma análise tiver sido gerada pela sua consulta, escolha **Adicionar às análises** para referenciá-la posteriormente.  
![\[A visualização de um bloco de código editável e copiável.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/encanto-query-for-visualization.png)

1. (Opcional) Se você transformou seus dados usando um prompt, faça o seguinte:

   1. Selecione **Pré-visualizar** para visualizar os resultados.

   1. (Opcional) Modifique o código na transformação e escolha **Atualizar**.

   1. (Opcional) Se você estiver satisfeito com os resultados da transformação, escolha **Adicionar às etapas** para adicioná-la ao painel de etapas na navegação à direita.  
![\[Adicionado às etapas mostra a confirmação de que a transformação foi adicionada ao fluxo.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/transform-added-to-steps-panel.png)

Depois de preparar seus dados usando linguagem natural, você pode criar um modelo usando seus dados transformados. Para obter mais informações sobre a criação de um modelo, consulte [Como os modelos personalizados funcionam](canvas-build-model.md).

# Como o processamento de dados funciona no Data Wrangler
<a name="canvas-data-processing"></a>

Ao trabalhar com dados de forma interativa em um fluxo de SageMaker dados do Amazon Data Wrangler, o Amazon SageMaker Canvas só aplica as transformações a um conjunto de dados de amostra para você visualizar. Depois de terminar seu fluxo de dados no SageMaker Canvas, você pode processar todos os seus dados e salvá-los em um local adequado para seus fluxos de trabalho de aprendizado de máquina.

Há várias opções de como proceder depois de terminar de transformar seus dados no Data Wrangler:
+ [Criar um modelo](canvas-processing-export-model.md). Você pode criar um modelo Canvas, onde você começa diretamente a criar um modelo com seus dados preparados. Você pode criar um modelo depois de processar todo o conjunto de dados ou exportando apenas os dados de amostra com os quais você trabalhou no Data Wrangler. O Canvas salva seus dados processados (o conjunto de dados inteiro ou os dados de amostra) como um conjunto de dados do Canvas.

  Recomendamos que você use seus dados de amostra para iterações rápidas, mas use todos os dados quando quiser treinar seu modelo final. Ao criar modelos tabulares, conjuntos de dados maiores que 5 GB são automaticamente reduzidos para 5 GB e, para modelos de previsão de séries temporais, conjuntos de dados maiores que 30 GB são reduzidos para 30 GB.

  Para saber mais sobre como criar um modelo, consulte [Como os modelos personalizados funcionam](canvas-build-model.md).
+ [Exportar os dados](canvas-export-data.md). Você pode exportar seus dados para uso em fluxos de trabalho de machine learning. Ao escolher exportar seus dados, você tem várias opções:
  + Você pode salvar seus dados na aplicação Canvas como um conjunto de dados. Para obter mais informações sobre os tipos de arquivo compatíveis com conjuntos de dados do Canvas e requisitos adicionais ao importar dados para o Canvas, consulte. [Criar um conjunto de dados](canvas-import-dataset.md)
  + Você pode salvar seus dados no Amazon S3. Dependendo da disponibilidade de memória do Canvas, seus dados são processados na aplicação e depois exportados para o Amazon S3. Se o tamanho do seu conjunto de dados exceder o que o Canvas pode processar, então, por padrão, o Canvas usa um trabalho do EMR com tecnologia sem servidor para escalar para várias instâncias de computação, processar seu conjunto de dados completo e exportá-lo para o Amazon S3. Você também pode configurar manualmente um trabalho SageMaker de processamento para ter um controle mais granular sobre os recursos computacionais usados para processar seus dados.
+ [Exportar um fluxo de dados](canvas-export-data-flow.md). Talvez você queira salvar o código do seu fluxo de dados para poder modificar ou executar suas transformações fora do Canvas. O Canvas oferece a opção de salvar suas transformações de fluxo de dados como código Python em um caderno Jupyter, que você pode então exportar para o Amazon S3 para uso em qualquer lugar em seus fluxos de trabalho de machine learning.

Quando você exporta seus dados de um fluxo de dados e os salva como um conjunto de dados do Canvas ou para o Amazon S3, o Canvas cria um novo nó de destino em seu fluxo de dados, que é um nó final que mostra onde seus dados processados estão armazenados. Você pode adicionar outros nós de destino ao seu fluxo se quiser realizar várias operações de exportação. Por exemplo, você pode exportar os dados de diferentes pontos em seu fluxo de dados para aplicar apenas algumas das transformações, ou você pode exportar dados transformados para diferentes locais do Amazon S3. Para obter mais informações sobre como adicionar ou editar um nó de destino, consulte [Adicionar nós de destino](canvas-destination-nodes-add.md) e [Editar um nó de destino](canvas-destination-nodes-edit.md) .

Para obter mais informações sobre como configurar um cronograma com EventBridge a Amazon para processar e exportar automaticamente seus dados de acordo com um cronograma, consulte[Crie um cronograma para processar automaticamente novos dados](canvas-data-export-schedule-job.md).

# Exportar para criar um modelo
<a name="canvas-processing-export-model"></a>

Com apenas alguns cliques do seu fluxo de dados, você pode exportar seus dados transformados e começar a criar um modelo de ML no Canvas. O Canvas salva seus dados como um conjunto de dados do Canvas e você é direcionado para a página de configuração de construção do modelo para um novo modelo.

Para criar um modelo Canvas com seus dados transformados:

1. Navegue até o fluxo de dados.

1. Escolha o ícone de reticências ao lado do nó que você está exportando.

1. No menu de contexto, escolha **Criar modelo**.

1. No painel lateral **Exportar para criar um modelo**, insira o **nome do conjunto de dados** para o novo conjunto de dados.

1. Deixe a opção **Processar todo o conjunto** de dados selecionada para processar e exportar todo o conjunto de dados antes de continuar com a criação de um modelo. Desative essa opção para treinar seu modelo usando os dados de amostra interativos com os quais você está trabalhando em seu fluxo de dados.

1. Insira o **nome do modelo** para nomear o novo modelo.

1. Selecione um **tipo de problema** ou o tipo de modelo que você deseja criar. Para obter mais informações sobre os tipos de modelos suportados no SageMaker Canvas, consulte[Como os modelos personalizados funcionam](canvas-build-model.md).

1. Selecione a **coluna Alvo** ou o valor que você deseja que o modelo preveja.

1. Escolha **Exportar e criar modelo**.

A guia **Construir** para um novo modelo do Canvas deve ser aberta e você pode concluir a configuração e o treinamento do seu modelo. Para obter mais informações sobre a criação de um modelo, consulte [Criar um modelo](canvas-build-model-how-to.md).

# Exportar dados
<a name="canvas-export-data"></a>

Exporte dados para aplicar as transformações do seu fluxo de dados ao conjunto de dados importado completo. Você pode exportar qualquer nó em seu fluxo de dados para os seguintes locais:
+ SageMaker Conjunto de dados Canvas
+ Amazon S3

Se você quiser treinar modelos no Canvas, você pode exportar seu conjunto de dados completo e transformado como um conjunto de dados do Canvas. Se você quiser usar seus dados transformados em fluxos de trabalho de aprendizado de máquina externos ao SageMaker Canvas, você pode exportar seu conjunto de dados para o Amazon S3.

## Exportar para um conjunto de dados do Canvas
<a name="canvas-export-data-canvas"></a>

Use o procedimento a seguir para exportar um conjunto de dados do SageMaker Canvas de um nó em seu fluxo de dados.

**Para exportar um nó em seu fluxo como um conjunto de dados do SageMaker Canvas**

1. Navegue até o fluxo de dados.

1. Escolha o ícone de reticências ao lado do nó que você está exportando.

1. No menu de contexto, passe o mouse sobre **Exportar** e selecione **Exportar dados para o conjunto de dados do Canvas**.

1. No painel lateral **Exportar para o conjunto de dados do Canvas**, insira um **nome de conjunto de dados** para o novo conjunto de dados.

1. Deixe a opção **Processar todo o conjunto** de dados selecionada se quiser que o SageMaker Canvas processe e salve seu conjunto de dados completo. Desative essa opção para aplicar somente as transformações aos dados de amostra com os quais você está trabalhando no seu fluxo de dados.

1. Escolha **Exportar**.

Agora você deve poder acessar a página de **conjuntos de dados** da aplicação Canvas e ver seu novo conjunto de dados.

## Exportar para o Amazon S3.
<a name="canvas-export-data-s3"></a>

Ao exportar dados para o Amazon S3, você pode escalar para transformar e processar dados de qualquer tamanho. O Canvas processa automaticamente seus dados localmente se a memória da aplicação puder lidar com o tamanho do seu conjunto de dados. Se o tamanho do seu conjunto de dados exceder a capacidade de memória local de 5 GB, o Canvas iniciará um trabalho remoto em seu nome para provisionar recursos computacionais adicionais e processar os dados mais rapidamente. Por padrão, o Canvas usa o Amazon EMR Sem Servidor para executar esses trabalhos remotos. No entanto, você pode configurar manualmente o Canvas para usar o EMR Serverless ou um trabalho de SageMaker processamento com suas próprias configurações.

**nota**  
Ao executar um trabalho do EMR com tecnologia sem servidor, por padrão, o trabalho herda o perfil do IAM, as configurações da chave do KMS e as tags da sua aplicação Canvas.

Segue um resumo das opções de trabalho remoto no Canvas:
+ **EMR com tecnologia sem servidor**: Essa é a opção padrão que o Canvas usa para trabalhos remotos. O EMR com tecnologia sem servidor provisiona e escala automaticamente os recursos de computação para processar seus dados, de forma que você não precise se preocupar em escolher os recursos computacionais certos para seu workload. Para obter mais informações sobre o EMR com tecnologia sem servidor, consulte o [Guia do usuário do EMR com tecnologia sem servidor.](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/emr-serverless.html)
+ **SageMaker Processamento**: os trabalhos de SageMaker processamento oferecem opções mais avançadas e controle granular sobre os recursos computacionais usados para processar seus dados. Por exemplo, você pode especificar o tipo e a contagem das instâncias de computação, configurar o trabalho em sua própria VPC e controlar o acesso à rede, automatizar trabalhos de processamento e muito mais. Para obter mais informações sobre esses processos, consulte [Crie um cronograma para processar automaticamente novos dados](canvas-data-export-schedule-job.md). Para obter mais informações gerais sobre trabalhos SageMaker de processamento, consulte[Cargas de trabalho de transformação de dados com processamento SageMaker](processing-job.md).

Os seguintes tipos de arquivo são compatíveis ao exportar para o Amazon S3:
+ CSV
+ Parquet

Para começar, revise os pré-requisitos a seguir.

### Pré-requisitos para tarefas do EMR com tecnologia sem servidor
<a name="canvas-export-data-emr-prereqs"></a>

Para criar um trabalho remoto que usa recursos do EMR com tecnologia sem servidor, você deve ter as permissões necessárias. Você pode conceder permissões por meio das configurações de domínio ou perfil de usuário do Amazon SageMaker AI, ou pode configurar manualmente a função do AWS IAM do usuário. Para obter instruções sobre como conceder aos usuários permissões para realizar grandes processamentos de dados, consulte[Conceda aos usuários permissões para usar grandes volumes de dados em todo o ciclo de vida do ML](canvas-large-data-permissions.md).

Se você não quiser configurar essas políticas, mas ainda precisar processar grandes conjuntos de dados por meio do Data Wrangler, você pode usar uma SageMaker tarefa de processamento como alternativa.

Se quiser armazenar seus dados exportados no Amazon S3, use o procedimento a seguir. Para configurar um trabalho remoto, siga as etapas avançadas opcionais.

**Para exportar um nó em seu fluxo para o Amazon S3**

1. Navegue até o fluxo de dados.

1. Escolha o ícone de reticências ao lado do nó que você está exportando.

1. No menu de contexto, passe o mouse sobre **Exportar** e selecione **Exportar dados para o Amazon S3**.

1. No painel lateral **Exportar para o Amazon S3**, você pode alterar o **nome do conjunto de dados** para o novo conjunto de dados.

1. Para a **localização do S3**, insira a localização do Amazon S3 para a qual você deseja exportar o conjunto de dados. Você pode inserir o URI, o alias ou o ARN do S3 da localização do S3 ou do ponto de acesso do S3. Para obter mais informações, consulte [Gerenciando o acesso a dados com o recurso Pontos de Acesso Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html) no *Guia do usuário do Amazon S3*.

1. (Opcional) Para as **configurações avançadas**, especifique valores para os seguintes campos:

   1. **Tipo de arquivo**: o formato de arquivo dos dados exportados.

   1. **Delimitador**: o delimitador utilizado para separar valores no arquivo.

   1. **Compressão**: o método de compactação usado para reduzir o tamanho do arquivo.

   1. **Número de partições**: o número de arquivos de conjunto de dados que o Canvas grava como saída do trabalho.

   1. **Escolher colunas**: você pode escolher um subconjunto de colunas dos dados para incluir nas partições.

1. Deixe a opção **Processar todo o conjunto** de dados selecionada se quiser que o Canvas aplique suas transformações de fluxo de dados em todo o conjunto de dados e exporte o resultado. Se você desmarcar essa opção, o Canvas aplicará somente as transformações à amostra do seu conjunto de dados usado no fluxo de dados interativo do Data Wrangler.
**nota**  
Se você exportar apenas uma amostra dos seus dados, o Canvas processa seus dados na aplicação e não cria um trabalho remoto para você.

1. Deixe a opção **Configuração automática da tarefa** selecionada se quiser que o Canvas determine automaticamente se a tarefa deve ser executada usando a memória da aplicação Canvas ou uma tarefa do EMR Sem Servidor. Se você desmarcar essa opção e configurar manualmente sua tarefa, poderá optar por usar uma tarefa EMR Serverless ou Processing. SageMaker Para obter instruções sobre como configurar um EMR Serverless ou um trabalho de SageMaker processamento, consulte a seção após esse procedimento antes de exportar seus dados.

1. Escolha **Exportar**.

Os procedimentos a seguir mostram como definir manualmente as configurações de trabalho remoto para o EMR Serverless ou SageMaker Processing ao exportar seu conjunto de dados completo para o Amazon S3.

------
#### [ EMR Serverless ]

Para configurar um trabalho do EMR com tecnologia sem servidor durante a exportação para o Amazon S3, faça o seguinte:

1. No painel lateral Exportar para o Amazon S3, desative a opção **Configuração automática de tarefas**.

1. Selecione **EMR com tecnologia sem servidor**.

1. Em **Nome do trabalho**, insira um nome para o seu trabalho EMR com tecnologia sem servidor. O nome só pode conter letras, números, hifens e sublinhado.

1. Para a **função IAM**, insira a função de execução do IAM do usuário. Essa função deve ter as permissões necessárias para executar aplicações EMR com tecnologia sem servidor. Para obter mais informações, consulte [Conceda aos usuários permissões para usar grandes volumes de dados em todo o ciclo de vida do ML](canvas-large-data-permissions.md).

1. (Opcional) Para a **chave KMS**, especifique o ID da chave ou o ARN de AWS KMS key um para criptografar os registros do trabalho. Se você não inserir uma chave, o Canvas utilizará uma chave padrão para o EMR com tecnologia sem servidor.

1. (Opcional) Para **configuração de monitoramento**, insira o nome de um grupo de CloudWatch logs do Amazon Logs no qual você deseja publicar seus registros.

1. (Opcional) Para **tags, adicione tags** de metadados à tarefa do EMR com tecnologia sem servidor que consiste em pares de valores-chave. Essas tags podem ser usadas para categorizar e pesquisar empregos.

1. Selecione **Export** para iniciar o trabalho.

------
#### [ SageMaker Processing ]

Para configurar um trabalho SageMaker de processamento durante a exportação para o Amazon S3, faça o seguinte:

1. No painel lateral **Exportar para o Amazon S3**, desative a opção **Configuração automática de tarefas**.

1. Selecione **SageMaker Processamento**.

1. Em **Nome do trabalho**, insira um nome para seu trabalho de processamento de SageMaker IA.

1. Em **Tipo de instância**, selecione o tipo de instância de computação para executar o trabalho de processamento.

1. Para **Contagem de instâncias**, especifique o número de instâncias de computação a serem iniciadas.

1. Para a **função IAM**, insira a função de execução do IAM do usuário. Essa função deve ter as permissões necessárias para que a SageMaker IA crie e execute trabalhos de processamento em seu nome. Essas permissões são concedidas se você tiver a [AmazonSageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html)política anexada à sua função do IAM.

1. Em **Tamanho do volume**, insira o tamanho do armazenamento em GB para o volume de armazenamento de ML que está anexado a cada instância de processamento. Escolha o tamanho com base no tamanho esperado dos dados de entrada e saída.

1. (Opcional) Para a **chave KMS de volume**, especifique uma chave do KMS para criptografar o volume de armazenamento. Se você não especificar uma chave, a chave de criptografia Amazon EBS padrão será usada.

1. (Opcional) Para a **chave do KMS**, especifique uma chave do KMS para criptografar as fontes de dados de entrada e saída do Amazon S3 usadas pelo trabalho de processamento.

1. (Opcional) Em **Configuração de memória Spark**, faça o seguinte:

   1. Insira a **memória do driver em MB** para o nó do driver do Spark que gerencia a coordenação e o agendamento do trabalho.

   1. Insira a **memória do executor em MB** para os nós executores do Spark que executam tarefas individuais na tarefa.

1. (Opcional) Para **configuração de rede**, faça o seguinte:

   1. Em **Configuração de sub-rede**, insira as IDs sub-redes VPC nas quais as instâncias de processamento serão iniciadas. Por padrão, o trabalho usa as configurações da sua VPC padrão.

   1. Em **Configuração do grupo de segurança**, insira os grupos IDs de segurança para controlar as regras de conectividade de entrada e saída.

   1. Ative a opção **Habilitar criptografia de tráfego entre contêineres** para criptografar a comunicação de rede entre contêineres de processamento durante o trabalho.

1. (Opcional) Para **agendas de associados**, você pode escolher criar uma EventBridge programação da Amazon para que o trabalho de processamento seja executado em intervalos recorrentes. Escolha **Criar nova programação** e preencha a caixa de diálogo. [Crie um cronograma para processar automaticamente novos dados](canvas-data-export-schedule-job.md): tenha uma visão geral do ciclo de vida de ML e conheça as soluções oferecidas.

1. (Opcional) Adicione **tags** como pares de valores-chave para que você possa categorizar e pesquisar trabalhos de processamento.

1. Selecione **Export** para iniciar o trabalho.

------

Depois de exportar os dados, você deve encontrar o conjunto de dados totalmente processado na localização especificada do Amazon S3.

# Exportar um fluxo de dados
<a name="canvas-export-data-flow"></a>

Exportar seu fluxo de dados traduz as operações que você fez no Data Wrangler e as exporta para um caderno Jupyter com código Python que você pode modificar e executar. Isso pode ser útil para integrar o código para suas transformações de dados em seus pipelines de machine learning.

Você pode escolher qualquer nó de dados em seu fluxo de dados e exportá-lo. A exportação do nó de dados exporta a transformação que o nó representa e as transformações que a precedem.

**Para exportar um fluxo de dados como um caderno Jupyter**

1. Navegue até o fluxo de dados.

1. Selecione o ícone de reticências ao lado do nó que você deseja exportar.

1. No menu de contexto, passe o mouse sobre **Exportar** e, em seguida, passe o mouse sobre **Exportar via caderno Jupyter**.

1. Escolha uma das seguintes opções:
   + **SageMaker Pipelines**
   + **Amazon S3**
   + **SageMaker Pipeline de inferência de IA**
   + **SageMaker Loja de recursos de IA**
   + **Código Python**

1. A caixa de diálogo **Exportar fluxo de dados como caderno** é aberta. Selecione um dos seguintes:
   + **Baixar uma cópia local**
   + **Exportar para o local do S3**

1. Se você selecionou **Exportar para o local do S3**, insira o local do Amazon S3 para o qual deseja exportar o caderno.

1. Escolha **Exportar**.

Seu caderno Jupyter deve ser baixado para sua máquina local ou você pode encontrá-lo salvo no local do Amazon S3 que você especificou.

# Adicionar nós de destino
<a name="canvas-destination-nodes-add"></a>

Um nó de destino no SageMaker Canvas especifica onde armazenar seus dados processados e transformados. Quando você escolhe exportar seus dados transformados para o Amazon S3, o Canvas usa a localização do nó de destino especificado, aplicando todas as transformações que você configurou em seu fluxo de dados. Para obter mais informações sobre trabalhos de exportação para o Amazon S3, consulte a seção anterior. [Exportar para o Amazon S3.](canvas-export-data.md#canvas-export-data-s3)

Por padrão, escolher exportar os dados para o Amazon S3 adiciona um nó de destino ao fluxo de dados. No entanto, você pode adicionar vários nós de destino ao seu fluxo, permitindo que você exporte simultaneamente diferentes conjuntos de transformações ou variações de seus dados para diferentes locais do Amazon S3. Por exemplo, você pode criar um nó de destino que exporta os dados depois de aplicar todas as transformações e outro nó de destino que exporta os dados somente após determinadas transformações iniciais, como uma operação de junção. Essa flexibilidade permite que você exporte e armazene diferentes versões ou subconjuntos de seus dados transformados em locais separados do S3 para vários casos de uso.

Use o procedimento a seguir para adicionar um nó de destino ao seu fluxo de dados.

**Adicionar um novo nó de destino**

1. Navegue até o fluxo de dados.

1. Escolha o ícone de reticências ao lado do nó em que você deseja colocar o nó de destino.

1. No menu de contexto, passe o mouse sobre **Exportar** e selecione **Adicionar destino**.

1. No painel lateral **Destino da exportação**, insira um **nome do conjunto de dados** para nomear a saída.

1. Para a **localização do Amazon S3**, insira a localização do Amazon S3 para a qual você deseja exportar a saída. Você pode inserir o URI, o alias ou o ARN do S3 da localização do S3 ou do ponto de acesso do S3. Para obter mais informações, consulte [Gerenciando o acesso a dados com o recurso Pontos de Acesso Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html) no *Guia do usuário do Amazon S3*.

1. Para **Configurações de exportação**, especifique os seguintes campos:

   1. **Tipo de arquivo**: O formato do arquivo dos dados exportados.

   1. **Delimitador**: o delimitador utilizado para separar valores no arquivo.

   1. **Compressão**: o método de compactação usado para reduzir o tamanho do arquivo.

1. Para **particionamento**, especifique os seguintes campos:

   1. **Número de partições** — O número de arquivos do conjunto de dados que o SageMaker Canvas grava como saída do trabalho.

   1. **Escolher colunas**: você pode escolher um subconjunto de colunas dos dados para incluir nas partições.

1. Escolha **Adicionar** se quiser simplesmente adicionar um nó de destino ao seu fluxo de dados, ou escolha **Adicionar** e, em seguida, escolha **Exportar** se quiser adicionar o nó e iniciar um trabalho de exportação.

Agora você deve ver um novo nó de destino em seu fluxo.

# Editar um nó de destino
<a name="canvas-destination-nodes-edit"></a>

Um *nó de destino* em um fluxo de dados do Amazon SageMaker Canvas especifica o local do Amazon S3 onde seus dados processados e transformados são armazenados, aplicando todas as transformações configuradas em seu fluxo de dados. Você pode editar a configuração de um nó de destino existente e, em seguida, optar por executar novamente o trabalho para sobrescrever os dados no local especificado do Amazon S3. Para obter mais informações sobre a adição de um novo nó de destino, consulte [Adicionar nós de destino](canvas-destination-nodes-add.md).

Use o procedimento a seguir para editar um nó de destino em seu fluxo de dados e iniciar um trabalho de exportação.

**Editar um nó de destino**

1. Navegue até o fluxo de dados.

1. Escolha o ícone de reticências ao lado do nó de destino que você deseja editar.

1. No menu contextual, escolha **Editar**.

1. O painel lateral **Editar destino** é aberto. Nesse painel, você pode editar detalhes como o nome do conjunto de dados, a localização do Amazon S3 e as configurações de exportação e particionamento.

1. (Opcional) Em **Nós adicionais para exportar**, você pode selecionar mais nós de destino para processar ao executar o trabalho de exportação.

1. Deixe a opção **Processar todo o conjunto** de dados selecionada se quiser que o Canvas aplique suas transformações de fluxo de dados em todo o conjunto de dados e exporte o resultado. Se você desmarcar essa opção, o Canvas aplicará somente as transformações à amostra do seu conjunto de dados usado no fluxo de dados interativo do Data Wrangler.

1. Deixe a opção **Configuração automática da tarefa** selecionada se quiser que o Canvas determine automaticamente se a tarefa deve ser executada usando a memória da aplicação Canvas ou uma tarefa do EMR Sem Servidor. Se você desmarcar essa opção e configurar manualmente sua tarefa, poderá optar por usar uma tarefa EMR Serverless ou Processing. SageMaker Para obter instruções sobre como configurar um EMR Serverless ou um trabalho de SageMaker processamento, consulte a seção anterior. [Exportar para o Amazon S3.](canvas-export-data.md#canvas-export-data-s3)

1. Quando terminar de fazer alterações, escolha **Atualizar**.

Salvar alterações na configuração do nó de destino não executa automaticamente uma tarefa nem substitui dados que já foram processados e exportados. Exporte seus dados novamente para executar um trabalho com a nova configuração. Se você decidir exportar seus dados novamente com um trabalho, o Canvas usa a configuração atualizada do nó de destino para transformar e enviar os dados para o local especificado, sobrescrevendo quaisquer dados existentes.

# Crie um cronograma para processar automaticamente novos dados
<a name="canvas-data-export-schedule-job"></a>

**nota**  
A seção a seguir se aplica somente aos trabalhos SageMaker de processamento. Se você usou as configurações padrão do Canvas ou o EMR com tecnologia sem servidor para criar um trabalho remoto para aplicar transformações em seu conjunto de dados completo, esta seção não se aplica.

Se você estiver processando dados periodicamente, poderá criar um cronograma para executar o trabalho de processamento automaticamente. Por exemplo, você pode criar uma programação que execute um trabalho de processamento automaticamente quando você obtiver novos dados. Para obter mais informações sobre o processamento de trabalhos, consulte [Exportar para o Amazon S3.](canvas-export-data.md#canvas-export-data-s3).

Ao criar um trabalho, você deve especificar um perfil do IAM que tenha permissões para criar o trabalho. Você pode usar a [AmazonSageMakerCanvasDataPrepFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasDataPrepFullAccess.html)política para adicionar permissões.

Adicione a seguinte política de confiança à função para permitir que você EventBridge a assuma.

```
{
    "Effect": "Allow",
    "Principal": {
        "Service": "events.amazonaws.com"
    },
    "Action": "sts:AssumeRole"
}
```

**Importante**  
Quando você cria uma agenda, o Data Wrangler cria uma `eventRule` entrada. EventBridge Você incorre em cobranças pelas regras de eventos que você cria e pelas instâncias usadas para executar o trabalho de processamento.  
Para obter informações sobre EventBridge preços, consulte [ EventBridge Preços da Amazon](https://aws.amazon.com/eventbridge/pricing/). Para obter informações sobre o processamento de preços de trabalhos, consulte [Amazon SageMaker Pricing](https://aws.amazon.com/sagemaker/pricing/).

É possível criar uma programação usando um dos seguintes métodos:
+ [Expressões CRON](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html)
**nota**  
O Data Wrangler não é compatível com as seguintes expressões:  
LW\$1
Abreviações para dias
Abreviações para meses
+ [Expressões RATE](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-create-rule-schedule.html#eb-rate-expressions)
+ Recorrente: defina um intervalo de hora em hora ou diário para executar o trabalho.
+ Horário específico: defina dias e horários específicos para executar o trabalho.

As seções a seguir fornecem procedimentos sobre o agendamento de trabalhos ao preencher as configurações do trabalho de processamento de SageMaker IA ao [exportar seus dados para o Amazon S3](canvas-export-data.md#canvas-export-data-s3). Todas as instruções a seguir começam na seção **Agendamentos associados** das configurações do trabalho de SageMaker processamento.

------
#### [ CRON ]

Use o procedimento a seguir para criar uma agenda com uma expressão CRON.

1. **No painel lateral **Exportar para o Amazon S3**, verifique se você desativou a opção **Configuração automática de tarefas** e selecionou a SageMaker opção Processamento.**

1. Nas configurações do trabalho **SageMaker de processamento**, abra a seção **Associar agendamentos** e escolha **Criar novo agendamento**.

1. A caixa de diálogo **Criar um novo perfil** é aberta. Em **Nome do agendamento**, especifique o nome do agendamento.

1. Em **Frequência de execução**, escolha **CRON.**

1. Para cada um dos campos **Minutos**, **Horas**, **Dias do mês****, Mês** e **Dia da semana**, insira valores de expressão CRON válidos.

1. Escolha **Criar**.

1. (Opcional) Escolha **Adicionar outro agendamento** para executar o trabalho em um agendamento adicional.
**nota**  
Você pode associar no máximo duas programações. Os horários são independentes e não se afetam, a menos que os horários se sobreponham.

1. Escolha uma das seguintes opções:
   + **Agende e execute agora**: o trabalho é executado imediatamente e, posteriormente, executado de acordo com os cronogramas.
   + **Somente agendamento**: o trabalho só é executado nas programações que você especificar.

1. Escolha **Exportar** depois de preencher o restante das configurações do trabalho de exportação.

------
#### [ RATE ]

Use o procedimento a seguir para criar uma programação com uma expressão RATE.

1. **No painel lateral **Exportar para o Amazon S3**, verifique se você desativou a opção **Configuração automática de tarefas** e selecionou a SageMaker opção Processamento.**

1. Nas configurações do trabalho **SageMaker de processamento**, abra a seção **Associar agendamentos** e escolha **Criar novo agendamento**.

1. A caixa de diálogo **Criar um novo perfil** é aberta. Em **Nome do agendamento**, especifique o nome do agendamento.

1. Em **Frequência de execução**, escolha **Taxa**.

1. Em **Valor**, especifique um valor inteiro.

1. Em **Unidade**, selecione uma das seguintes opções:
   + **Minutos**
   + **Horas**
   + **Dias**

1. Escolha **Criar**.

1. (Opcional) Escolha **Adicionar outro agendamento** para executar o trabalho em um agendamento adicional.
**nota**  
Você pode associar no máximo duas programações. Os horários são independentes e não se afetam, a menos que os horários se sobreponham.

1. Escolha uma das seguintes opções:
   + **Agende e execute agora**: o trabalho é executado imediatamente e, posteriormente, executado de acordo com os cronogramas.
   + **Somente agendamento**: o trabalho só é executado nas programações que você especificar.

1. Escolha **Exportar** depois de preencher o restante das configurações do trabalho de exportação.

------
#### [ Recurring ]

Use o procedimento a seguir para criar um cronograma que execute um trabalho de forma recorrente.

1. **No painel lateral **Exportar para o Amazon S3**, verifique se você desativou a opção **Configuração automática de tarefas** e selecionou a SageMaker opção Processamento.**

1. Nas configurações do trabalho **SageMaker de processamento**, abra a seção **Associar agendamentos** e escolha **Criar novo agendamento**.

1. A caixa de diálogo **Criar um novo perfil** é aberta. Em **Nome do agendamento**, especifique o nome do agendamento.

1. Em **Frequência de execução**, escolha **Recorrente.**

1. Para **Cada x horas**, especifique a frequência horária com que o trabalho é executado durante o dia. Os valores válidos são números inteiros no intervalo inclusivo de **1** e **23**.

1. Para **Em dias**, escolha uma das seguintes opções:
   + **Todos os dias**
   + **Finais de semana**
   + **Dias da semana**
   + **Selecionar dias**

   1. (Opcional) Se você selecionou **Selecionar dias**, escolha os dias da semana para executar o trabalho.
**nota**  
A programação é reiniciada todos os dias. Se você agendar um trabalho para ser executado a cada cinco horas, ele será executado nos seguintes horários do dia:  
00:00
05:00
10:00
15:00
20:00

1. Escolha **Criar**.

1. (Opcional) Escolha **Adicionar outro agendamento** para executar o trabalho em um agendamento adicional.
**nota**  
Você pode associar no máximo duas programações. Os horários são independentes e não se afetam, a menos que os horários se sobreponham.

1. Escolha uma das seguintes opções:
   + **Agende e execute agora**: o trabalho é executado imediatamente e, posteriormente, executado de acordo com os cronogramas.
   + **Somente agendamento**: o trabalho só é executado nas programações que você especificar.

1. Escolha **Exportar** depois de preencher o restante das configurações do trabalho de exportação.

------
#### [ Specific time ]

Use o procedimento a seguir para criar uma programação que execute um trabalho em horários específicos.

1. **No painel lateral **Exportar para o Amazon S3**, verifique se você desativou a opção **Configuração automática de tarefas** e selecionou a SageMaker opção Processamento.**

1. Nas configurações do trabalho **SageMaker de processamento**, abra a seção **Associar agendamentos** e escolha **Criar novo agendamento**.

1. A caixa de diálogo **Criar um novo perfil** é aberta. Em **Nome do agendamento**, especifique o nome do agendamento.

1. Em **Frequência de execução**, escolha **Hora de início**.

1. Em **Hora de início**, insira uma hora no formato UTC (por exemplo, **09:00**). O horário de início é padronizado para o fuso horário em que você está localizado.

1. Para **Em dias**, escolha uma das seguintes opções:
   + **Todos os dias**
   + **Finais de semana**
   + **Dias da semana**
   + **Selecionar dias**

   1. (Opcional) Se você selecionou **Selecionar dias**, escolha os dias da semana para executar o trabalho.

1. Escolha **Criar**.

1. (Opcional) Escolha **Adicionar outro agendamento** para executar o trabalho em um agendamento adicional.
**nota**  
Você pode associar no máximo duas programações. Os horários são independentes e não se afetam, a menos que os horários se sobreponham.

1. Escolha uma das seguintes opções:
   + **Agende e execute agora**: o trabalho é executado imediatamente e, posteriormente, executado de acordo com os cronogramas.
   + **Somente agendamento**: o trabalho só é executado nas programações que você especificar.

1. Escolha **Exportar** depois de preencher o restante das configurações do trabalho de exportação.

------

Você pode usar a SageMaker IA Console de gerenciamento da AWS para visualizar os trabalhos que estão programados para execução. Seus trabalhos de processamento são executados dentro do Pipelines. Cada trabalho de processamento tem seu próprio pipeline. Ele é executado como uma etapa de processamento dentro do pipeline. Você pode ver as agendas que você criou em um funil. Para obter informações sobre como visualizar um pipeline, consulte [Visualizar os detalhes de um pipeline](pipelines-studio-list.md).

Use o procedimento a seguir para visualizar os trabalhos que você programou.

Para obter os trabalhos que você programou, faça o seguinte:

1. Abra o Amazon SageMaker Studio Classic.

1. Abra o Pipelines

1. Veja os pipelines dos trabalhos que você criou.

   O pipeline que executa o trabalho usa o nome do trabalho como prefixo. Por exemplo, se você criou um trabalho chamado `housing-data-feature-enginnering`, o nome do pipeline é `canvas-data-prep-housing-data-feature-engineering`.

1. Escolha o pipeline que contém seu trabalho.

1. Visualize o status dos pipelines. Pipelines com **status** de **Bem-sucedido** executaram o trabalho de processamento com êxito.

Para interromper a execução do trabalho de processamento, faça o seguinte:

Para interromper a execução de um trabalho de processamento, exclua a regra de evento que especifica a programação. A exclusão de uma regra de evento interrompe a execução de todos os trabalhos associados à programação. Para obter informações sobre como excluir uma regra, consulte Como [desativar ou excluir uma regra da Amazon](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-delete-rule.html). EventBridge 

Você também pode interromper e excluir os pipelines associados aos agendamentos. Para obter informações sobre como interromper um pipeline, consulte [StopPipelineExecution](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopPipelineExecution.html). Para obter informações sobre como excluir um pipeline, consulte [DeletePipeline](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeletePipeline.html#API_DeletePipeline_RequestSyntax).

# Automatize a preparação de dados no Canvas SageMaker
<a name="canvas-data-export"></a>

Depois de transformar seus dados em fluxo de dados, você pode exportar as transformações para seus fluxos de trabalho de machine learning. Quando você exporta suas transformações, o SageMaker Canvas cria um caderno Jupyter. Você deve executar o notebook no Amazon SageMaker Studio Classic. Para obter informações sobre como começar a usar o Studio Classic, entre em contato com seu administrador.

## Automatize a preparação de dados usando pipelines
<a name="canvas-data-export-pipelines"></a>

Quando quiser criar e implantar fluxos de trabalho de aprendizado de máquina (ML) em grande escala, você pode usar o Pipelines para criar fluxos de trabalho que gerenciam e implantam trabalhos de IA. SageMaker Com o Pipelines, você pode criar fluxos de trabalho que gerenciam suas tarefas de preparação de dados de SageMaker IA, treinamento de modelos e implantação de modelos. Você pode usar os algoritmos primários que a SageMaker IA oferece usando Pipelines. Para obter mais informações sobre pipelines, consulte [SageMaker Pipelines](https://docs.aws.amazon.com/sagemaker/latest/dg/pipelines.html).

Quando você exporta uma ou mais etapas do seu fluxo de dados para o Pipelines, o Data Wrangler cria um caderno Jupyter que você pode usar para definir, instanciar, executar e gerenciar um pipeline.

### Use um caderno Jupyter para criar um pipeline
<a name="canvas-pipelines-notebook"></a>

Use o procedimento a seguir para criar um caderno Jupyter para exportar seu fluxo do Data Wrangler para o Pipelines.

Use o procedimento a seguir para gerar um caderno Jupyter e executá-lo para exportar seu fluxo do Data Wrangler para o Pipelines.

1. Escolha o **\$1** próximo ao nó que você deseja separar.

1. Escolha **Exportar dados**.

1. Escolha **Pipelines (via caderno Jupyter)**.

1. Faça o download do caderno Jupyter ou copie-o para um local do Amazon S3. Recomendamos copiá-lo para um local do Amazon S3 que você possa acessar no Studio Classic. Entre em contato com seu administrador se precisar de orientação sobre um local adequado.

1. Executar o caderno Jupyter.

Você pode usar o caderno Jupyter que o Data Wrangler produz para definir um pipeline. O pipeline inclui as etapas de processamento de dados que são definidas pelo fluxo do Data Wrangler. 

Você pode adicionar etapas adicionais ao seu pipeline adicionando etapas à lista `steps` no código a seguir no caderno:

```
pipeline = Pipeline(
    name=pipeline_name,
    parameters=[instance_type, instance_count],
    steps=[step_process], #Add more steps to this list to run in your Pipeline
)
```

Para obter mais informações sobre a definição de pipelines, consulte [Definir o SageMaker AI Pipeline](https://docs.aws.amazon.com/sagemaker/latest/dg/define-pipeline.html).

## Automatize a preparação de dados usando um endpoint de inferência
<a name="canvas-data-export-inference"></a>

Use seu fluxo do Data Wrangler para processar dados no momento da inferência criando um pipeline de inferência serial de SageMaker IA a partir do seu fluxo do Data Wrangler. Um pipeline de inferência é uma série de etapas que resulta em um modelo treinado fazendo predições sobre novos dados. Um pipeline de inferência serial no Data Wrangler transforma os dados brutos e os fornece ao modelo de machine learning para uma predição. Você cria, executa e gerencia o pipeline de inferência por meio de um caderno Jupyter no Studio Classic. Para obter mais informações sobre o acesso ao caderno, consulte [Use um caderno Jupyter para criar um endpoint de inferência](#canvas-inference-notebook).

No caderno, você pode treinar um modelo de machine learning ou especificar um que já tenha treinado. Você pode usar o Amazon SageMaker Autopilot ou XGBoost treinar o modelo usando os dados que você transformou em seu fluxo do Data Wrangler.

O pipeline fornece a capacidade de realizar inferências em lote ou em tempo real. Você também pode adicionar o fluxo do Data Wrangler ao SageMaker Model Registry. Para obter mais informações sobre modelos de host, consulte [Endpoints multimodelo](multi-model-endpoints.md).

**Importante**  
Você não pode exportar seu fluxo do Data Wrangler para um endpoint de inferência se ele tiver as seguintes transformações:  
Ingressar
concatenar
Agrupar por
Se você precisar usar as transformações anteriores para preparar seus dados, use o procedimento a seguir.  
Crie um fluxo do Data Wrangler.
Aplique as transformações anteriores que não são compatíveis.
Exportar os dados para um bucket do Amazon S3.
Crie um fluxo de Data Wrangler separado.
Importe os dados que você exportou do fluxo anterior.
Aplique as transformações restantes.
Crie um pipeline de inferência serial usando o caderno Jupyter que fornecemos.
Para obter informações sobre como exportar dados para um bucket do Amazon S3, consulte [Exportar dados](canvas-export-data.md). Para obter informações sobre como abrir o caderno Jupyter usado para criar o pipeline de inferência serial, consulte [Use um caderno Jupyter para criar um endpoint de inferência](#canvas-inference-notebook).

O Data Wrangler ignora as transformações que removem dados no momento da inferência. Por exemplo, o Data Wrangler ignora a transformação [Processamento de valores ausentes](canvas-transform.md#canvas-transform-handle-missing) se você usar a configuração **Drop missing**.

Se você reajustou as transformações em todo o seu conjunto de dados, as transformações são transferidas para seu pipeline de inferência. Por exemplo, se você usou o valor mediano para imputar valores ausentes, o valor médio do reajuste da transformação será aplicado às suas solicitações de inferência. Você pode reajustar as transformações do seu fluxo do Data Wrangler ao usar o caderno Jupyter ou ao exportar seus dados para um pipeline de inferência.

O pipeline de inferência serial é compatível com os seguintes tipos de dados para as cadeias de caracteres de entrada e saída: Cada tipo de dados tem um conjunto de requisitos.

**Tipos de dados compatíveis**
+ `text/csv`: o tipo de dados para cadeias de caracteres CSV
  + A string não pode ter um cabeçalho.
  + Os atributos usados para o pipeline de inferência devem estar na mesma ordem dos atributos no conjunto de dados de treinamento.
  + Deve haver um delimitador de vírgula entre os atributos.
  + Os registros devem ser delimitados por um caractere de nova linha.

  Veja a seguir um exemplo de uma string CSV com formatação válida que você pode fornecer em uma solicitação de inferência.

  ```
  abc,0.0,"Doe, John",12345\ndef,1.1,"Doe, Jane",67890                    
  ```
+ `application/json`: o tipo de dados para strings JSON
  + Os atributos usados no conjunto de dados para o pipeline de inferência devem estar na mesma ordem dos atributos no conjunto de dados de treinamento.
  + Os dados devem ter um esquema específico. Você define o esquema como um único objeto `instances` que tem um conjunto de `features`. Cada objeto `features` representa uma observação.

  Veja a seguir um exemplo de uma string JSON formatada validamente que você pode fornecer em uma solicitação de inferência.

  ```
  {
      "instances": [
          {
              "features": ["abc", 0.0, "Doe, John", 12345]
          },
          {
              "features": ["def", 1.1, "Doe, Jane", 67890]
          }
      ]
  }
  ```

### Use um caderno Jupyter para criar um endpoint de inferência
<a name="canvas-inference-notebook"></a>

Use o procedimento a seguir para exportar seu fluxo do Data Wrangler para criar um pipeline de inferência.

Para criar um pipeline de inferência usando um caderno Jupyter, faça o seguinte:

1. Escolha o **\$1** próximo ao nó que você deseja separar.

1. Escolha **Exportar dados**.

1. Escolha o **SageMaker AI Inference Pipeline (via Jupyter** Notebook).

1. Faça o download do caderno Jupyter ou copie-o para um local do Amazon S3. Recomendamos copiá-lo para um local do Amazon S3 que você possa acessar no Studio Classic. Entre em contato com seu administrador se precisar de orientação sobre um local adequado.

1. Executar o caderno Jupyter.

Quando você executa o caderno Jupyter, ele cria um artefato de fluxo de inferência. Um artefato de fluxo de inferência é um arquivo de fluxo do Data Wrangler com metadados adicionais usados para criar o pipeline de inferência serial. O nó que você está exportando abrange todas as transformações dos nós anteriores.

**Importante**  
O Data Wrangler precisa do artefato do fluxo de inferência para executar o pipeline de inferência. Você não pode usar seu próprio arquivo de fluxo como artefato. Você deve criá-lo usando o procedimento anterior.

## Automatize a preparação de dados usando o código Python
<a name="canvas-data-export-python-code"></a>

Para exportar todas as etapas do fluxo de dados para um arquivo Python que você possa integrar manualmente a qualquer fluxo de trabalho de processamento de dados, use o procedimento a seguir.

Use o procedimento a seguir para gerar um caderno Jupyter e executá-lo para exportar seu fluxo do Data Wrangler para o código Python.

1. Escolha o **\$1** próximo ao nó que você deseja separar.

1. Escolha **Exportar dados**.

1. Escolha **Python Code**.

1. Faça o download do caderno Jupyter ou copie-o para um local do Amazon S3. Recomendamos copiá-lo para um local do Amazon S3 que você possa acessar no Studio Classic. Entre em contato com seu administrador se precisar de orientação sobre um local adequado.

1. Executar o caderno Jupyter.

Pode ser necessário configurar o script Python para que seja executado no seu pipeline. Por exemplo, se você estiver executando um ambiente Spark, certifique-se de executar o script em um ambiente que tenha permissão para acessar AWS recursos.

# Modelos básicos de IA generativa no Canvas SageMaker
<a name="canvas-fm-chat"></a>

O Amazon SageMaker Canvas fornece modelos básicos de IA generativos que você pode usar para iniciar bate-papos conversacionais. Esses modelos de geração de conteúdo são treinados em grandes quantidades de dados de texto para aprender os padrões estatísticos e as relações entre as palavras, e podem produzir um texto coerente que seja estatisticamente semelhante ao texto no qual foram treinados. É possível usar esse recurso para aumentar sua produtividade da seguinte maneira:
+ Gerar conteúdo, como esboços de documentos, relatórios e blogs
+ Resumir o texto de grandes corpus de texto, como transcrições de teleconferências, relatórios anuais ou capítulos de manuais do usuário
+ Extrair informações e conclusões importantes de grandes passagens de texto, como notas de reuniões ou narrativas
+ Melhorar o texto e capturar erros gramaticais ou de digitação

Os modelos básicos são uma combinação dos modelos de linguagem grande da [Amazon SageMaker JumpStart e do Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-service.html) (LLMs). O Canvas oferece os seguintes modelos:


| Modelo | Tipo | Description | 
| --- | --- | --- | 
|  Titã da Amazon  | Modelo Amazon Bedrock |  O Amazon Titan é um modelo de linguagem poderoso e de uso geral que você pode usar para tarefas como resumo, geração de texto (como criar uma postagem no blog), classificação, perguntas e respostas abertas e extração de informações. Ele é pré-treinado em grandes conjuntos de dados, o que o torna adequado para tarefas e raciocínios complexos. Para continuar apoiando as melhores práticas no uso responsável da IA, os modelos básicos do Amazon Titan são criados para detectar e remover conteúdo prejudicial nos dados, rejeitar conteúdo impróprio na entrada do usuário e filtrar saídas de modelos que contêm conteúdo impróprio (como discurso de ódio, palavrões e violência).  | 
|  Anthropic Claude Instant  | Modelo Amazon Bedrock |  O Claude Instant da Anthropic é um modelo mais rápido e econômico, mas ainda assim muito capaz. Esse modelo pode lidar com uma variedade de tarefas, incluindo diálogo casual, análise de texto, resumo e resposta a perguntas de documentos. Assim como o Claude-2, o Claude Instant é compatível com até 100.000 tokens em cada prompt, o equivalente a cerca de 200 páginas de informações.  | 
|  Anthropic Claude-2  | Modelo Amazon Bedrock |  O Claude-2 é o modelo mais poderoso da Anthropic, que se destaca em uma ampla variedade de tarefas, desde diálogos sofisticados e geração de conteúdo criativo até o acompanhamento detalhado de instruções. O Claude-2 é compatível com até 100.000 tokens em cada prompt, o equivalente a cerca de 200 páginas de informações. Ele pode gerar respostas mais longas em comparação com a versão anterior. Ele oferece apoio a casos de uso como resposta a perguntas, extração de informações, remoção de PII, geração de conteúdo, classificação de múltipla escolha, dramatização, comparação de texto, resumo e perguntas e respostas sobre documentos com citação.  | 
|  Falcon-7B-Instruct  | JumpStart modelo |  O Falcon-7B-Instruct tem 7 bilhões de parâmetros e foi ajustado em uma mistura de conjuntos de dados de chat e instruct. Ele serve como assistente virtual e tem melhor desempenho ao seguir instruções ou iniciar uma conversa. Como o modelo foi treinado em grandes quantidades de dados da web em inglês, ele carrega os estereótipos e vieses comumente encontrados online e não é adequado para outros idiomas além do inglês. Comparado ao Falcon-40B-Instruct, o Falcon-7B-Instruct é um modelo um pouco menor e mais compacto.  | 
|  Falcon-40B-Instruct  | JumpStart modelo |  O Falcon-40B-Instruct tem 40 bilhões de parâmetros e foi ajustado em uma mistura de conjuntos de dados de chat e instruct. Ele serve como assistente virtual e tem melhor desempenho ao seguir instruções ou iniciar uma conversa. Como o modelo foi treinado em grandes quantidades de dados da web em inglês, ele carrega os estereótipos e vieses comumente encontrados online e não é adequado para outros idiomas além do inglês. Comparado ao Falcon-7B-Instruct, o Falcon-40B-Instruct é um modelo um pouco maior e mais poderoso.  | 
|  Jurassic-2 Mid  | Modelo Amazon Bedrock |  O Jurassic-2 Mid é um modelo de geração de texto de alto desempenho treinado em um grande corpus de texto (atual até meados de 2022). É altamente versátil, de uso geral e capaz de compor textos semelhantes aos humanos e resolver tarefas complexas, como responder a perguntas, classificar textos e muitas outras. Esse modelo oferece recursos de instrução zero, permitindo que ele seja direcionado apenas com linguagem natural e sem o uso de exemplos. Seu desempenho é até 30% mais rápido do que o do seu antecessor, o modelo Jurassic-1. O Jurassic-2 Mid AI21 é um modelo de tamanho médio, cuidadosamente projetado para encontrar o equilíbrio certo entre qualidade excepcional e preço acessível.  | 
|  Jurassic-2 Ultra  | Modelo Amazon Bedrock |  O Jurassic-2 Ultra é um modelo de geração de texto de alto desempenho treinado em um grande corpus de texto (atual até meados de 2022). É altamente versátil, de uso geral e capaz de compor textos semelhantes aos humanos e resolver tarefas complexas, como responder a perguntas, classificar textos e muitas outras. Esse modelo oferece recursos de instrução zero, permitindo que ele seja direcionado apenas com linguagem natural e sem o uso de exemplos. Seu desempenho é até 30% mais rápido do que o do seu antecessor, o modelo Jurassic-1. Comparado ao Jurassic-2 Mid, o Jurassic-2 Ultra é um modelo um pouco maior e mais poderoso.  | 
|  Llama-2-7b-Chat  | JumpStart modelo |  O Llama-2-7b-Chat é um modelo básico da Meta que é adequado para se envolver em conversas significativas e coerentes, gerar novos conteúdos e extrair respostas de notas existentes. Como o modelo foi treinado em grandes quantidades de dados da web em inglês, ele carrega os estereótipos e vieses comumente encontrados online e não é adequado para outros idiomas além do inglês.  | 
|  Llama-2-13B-Chat  | Modelo Amazon Bedrock |  O Llama-2-13B-Chat da Meta foi ajustado em relação aos dados de conversação após o treinamento inicial em dados da internet. Ele é otimizado para diálogos naturais e habilidades envolventes de bate-papo, o que o torna adequado como agente de conversação. Em comparação com o Llama-2-7b-Chat menor, o Llama-2-13B-Chat tem quase o dobro de parâmetros, permitindo que ele se lembre de mais contexto e produza respostas conversacionais com mais nuances. Assim como o Llama-2-7b-Chat, o Llama-2-13B-Chat foi treinado em dados em inglês e é mais adequado para tarefas em inglês.  | 
|  Llama-2-70B-Chat  | Modelo Amazon Bedrock |  Assim como o Llama-2-7b-Chat e o Llama-2-13B-Chat, o modelo Llama-2-70B-Chat da Meta é otimizado para engajar um diálogo natural e significativo. Com 70 bilhões de parâmetros, esse grande modelo conversacional pode lembrar um contexto mais extenso e produzir respostas altamente coerentes quando comparado às versões mais compactas do modelo. No entanto, isso tem o custo de respostas mais lentas e maiores requisitos de recursos. O Llama-2-70B-Chat foi treinado em grandes quantidades de dados da Internet em inglês e é mais adequado para tarefas em inglês.  | 
|  Mistral-7B  | JumpStart modelo |  O Mistral-7B da Mistral.AI é um excelente modelo de linguagem de uso geral adequado para uma ampla variedade de tarefas de linguagem natural (PNL), como geração de texto, resumo e resposta a perguntas. Ele utiliza atenção de consulta agrupada (GQA), que permite velocidades de inferência mais rápidas, fazendo com que tenha um desempenho comparável a modelos com duas ou três vezes mais parâmetros. Ele foi treinado em uma mistura de dados de texto, incluindo livros, sites e artigos científicos no idioma inglês, por isso é mais adequado para tarefas em inglês.  | 
|  Mistral-7B-Chat  | JumpStart modelo |  O Mistral-7B-Chat é um modelo conversacional da Mistral.AI baseado no Mistral-7B. Embora o Mistral-7B seja o melhor para tarefas gerais de PNL, o Mistral-7B-Chat foi ajustado ainda mais nos dados de conversação para otimizar suas habilidades de bate-papo natural e envolvente. Como resultado, o Mistral-7B-Chat gera respostas mais humanas e lembra o contexto das respostas anteriores. Como o Mistral-7B, esse modelo é mais adequado para tarefas em inglês.  | 
|  MPT-7B-Instruct  | JumpStart modelo |  O MPT-7B-Instruct é um modelo para tarefas de seguimento de instruções de formato longo e pode ajudá-lo a escrever tarefas, incluindo resumo de texto e respostas a perguntas, para economizar tempo e esforço. Esse modelo foi treinado em grandes quantidades de dados ajustados e pode lidar com entradas maiores, como documentos complexos. Use esse modelo quando quiser processar grandes corpos de texto ou quiser que o modelo gere respostas longas.  | 

Os modelos básicos da Amazon Bedrock atualmente só estão disponíveis nas regiões Leste dos EUA (Norte da Virgínia) e Oeste dos EUA (Oregon). Além disso, ao usar modelos básicos do Amazon Bedrock, você é cobrado com base no volume de tokens de entrada e tokens de saída, conforme especificado por cada fornecedor de modelo. Para obter mais informações, consulte a página de [preços do Amazon Bedrock](https://aws.amazon.com/bedrock/pricing/). Os modelos JumpStart básicos são implantados em instâncias do SageMaker AI Hosting, e você é cobrado pela duração do uso com base no tipo de instância usada. Para obter mais informações sobre o custo de diferentes tipos de instância, consulte a seção Amazon SageMaker AI Hosting: inferência em tempo real na [página de SageMaker preços](https://aws.amazon.com/sagemaker/pricing/).

A consulta de documentos é um atributo adicional que você pode usar para consultar e obter informações de documentos armazenados em índices usando o Amazon Kendra. Com essa funcionalidade, você pode gerar conteúdo a partir do contexto desses documentos e receber respostas específicas para seu caso de uso comercial, em vez de respostas genéricas às grandes quantidades de dados nos quais os modelos básicos foram treinados. Para obter mais informações sobre índices no Amazon Kendra, consulte o [Guia do desenvolvedor do Amazon Kendra](https://docs.aws.amazon.com/kendra/latest/dg/what-is-kendra.html).

Se você quiser obter respostas de qualquer um dos modelos básicos personalizados para seus dados e caso de uso, você pode ajustar os modelos básicos. Para saber mais, consulte [Ajustar modelos de base](canvas-fm-chat-fine-tune.md).

Se você quiser obter previsões de um modelo da Amazon SageMaker JumpStart Foundation por meio de um aplicativo ou site, você pode implantar o modelo em um *endpoint* de SageMaker IA. SageMaker Os endpoints de IA hospedam seu modelo e você pode enviar solicitações ao endpoint por meio do código do aplicativo para receber previsões do modelo. Para obter mais informações, consulte [Implantar seus modelos em um endpoint](canvas-deploy-model.md).

# Preencha os pré-requisitos para modelos de base no Canvas SageMaker
<a name="canvas-fm-chat-prereqs"></a>

As seções a seguir descrevem os pré-requisitos para interagir com modelos básicos e usar o atributo de consulta de documentos no Canvas. O restante do conteúdo desta página pressupõe que você atendeu aos pré-requisitos para modelos básicos. O atributo de consulta de documentos requer permissões adicionais.

## Pré-requisitos para modelos básicos
<a name="canvas-fm-chat-prereqs-fm"></a>

As permissões que você precisa para interagir com os modelos estão incluídas nas permissões dos Ready-to-use modelos do Canvas. Para usar os modelos generativos baseados em IA no Canvas, você deve ativar as permissões de **configuração dos Ready-to-use modelos do Canvas** ao configurar seu domínio Amazon SageMaker AI. Para obter mais informações, consulte [Pré-requisitos para configurar o Amazon Canvas SageMaker](canvas-getting-started.md#canvas-prerequisites). A **configuração dos Ready-to-use modelos Canvas** anexa a política de [AmazonSageMakerCanvasAIServicesacesso](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess) à função de execução do seu usuário do Canvas AWS Identity and Access Management (IAM). Se você encontrar algum problema com a concessão de permissões, consulte o tópico [Solução de problemas com a concessão de permissões por meio do console de SageMaker IA](canvas-limits.md#canvas-troubleshoot-trusted-services).

Se você já configurou seu Domínio, você pode editar suas configurações de Domínio e ativar as permissões. Para obter instruções sobre como editar suas configurações de Domínio, consulte [Editar configurações de domínio](domain-edit.md). Ao editar as configurações do seu domínio, acesse as **configurações do Canvas** e ative a opção **Ativar Ready-to-use modelos do Canvas**.

Alguns modelos JumpStart básicos também exigem que você solicite um aumento na cota de instâncias de SageMaker IA. O Canvas hospeda os modelos com os quais você está interagindo atualmente nessas instâncias, mas a cota padrão para sua conta pode ser insuficiente. Se você encontrar um erro ao executar qualquer um dos modelos a seguir, solicite um aumento de cota para os tipos de instância associados:
+ 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`

Para os tipos de instâncias anteriores, solicite um aumento de 0 para 1 para a cota de uso do endpoint. Para obter mais informações como aumentar uma cota de instância para sua conta, consulte [Solicitar um aumento da cota](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) no *Guia do usuário do Service Quotas*.

## Pré-requisitos para a consulta de documentos
<a name="canvas-fm-chat-prereqs-kendra"></a>

**nota**  
A consulta de documentos é suportada no seguinte Regiões da AWS: Leste dos EUA (Norte da Virgínia), Leste dos EUA (Ohio), Oeste dos EUA (Oregon), Europa (Irlanda), Ásia-Pacífico (Cingapura), Ásia-Pacífico (Sydney), Ásia-Pacífico (Tóquio) e Ásia-Pacífico (Mumbai).

O atributo de consulta de documentos exige que você já tenha um índice do Amazon Kendra que armazene seus documentos e metadados do documento. Para obter mais informações sobre o Amazon Kendra, consulte o [Guia do desenvolvedor do Amazon Kendra](https://docs.aws.amazon.com/kendra/latest/dg/what-is-kendra.html). Para saber mais sobre as cotas para consultar índices, consulte [Cotas](https://docs.aws.amazon.com/kendra/latest/dg/quotas.html) no *Guia do desenvolvedor do Amazon Kendra*.

Você também deve se certificar de que seu perfil de usuário do Canvas tenha as permissões necessárias para a consulta de documentos. A [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)política deve ser anexada à função de execução do AWS IAM para o domínio de SageMaker IA que hospeda seu aplicativo Canvas (essa política é anexada por padrão a todos os perfis de usuário novos e existentes do Canvas). Você também deve conceder especificamente permissões de consulta de documentos e especificar o acesso a um ou mais índices do Amazon Kendra.

Se o administrador do Canvas estiver configurando um novo Domínio ou perfil de usuário, faça com que ele configure o Domínio seguindo as instruções em [Pré-requisitos para configurar o Amazon Canvas SageMaker](canvas-getting-started.md#canvas-prerequisites). Ao configurar o domínio, eles podem ativar as permissões de consulta do documento por meio da **configuração dos Ready-to-use modelos Canvas**.

O administrador do Canvas também pode gerenciar as permissões de consulta de documentos no nível do perfil do usuário. Por exemplo, se o administrador quiser conceder permissões de consulta de documentos a alguns perfis de usuário, mas remover permissões para outros, ele poderá editar as permissões para um usuário específico.

O seguinte procedimento mostra como ativar permissões de consulta de documentos para um perfil de usuário específico:

1. Abra o console de SageMaker IA em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**.

1. Na lista de Domínios, selecione o Domínio do perfil do usuário.

1. Na página de **Detalhes do domínio**, escolha o **Perfil do usuário** cujas permissões você deseja editar.

1. Na página **Detalhes do usuário**, selecione **Editar**.

1. No painel de navegação à esquerda, selecione **Configurações do Canvas**.

1. Na seção de **configuração de Ready-to-use modelos do Canvas**, ative o botão **Habilitar consulta de documentos usando o Amazon Kendra**.

1. No menu suspenso, selecione um ou mais índices do Amazon Kendra aos quais você deseja conceder acesso.

1. Escolha **Enviar** para salvar as alterações nas configurações do seu Domínio.

Agora você será capaz de usar os modelos básicos do Canvas para consultar documentos nos índices especificados do Amazon Kendra.

# Iniciar uma nova conversa para gerar, extrair ou resumir conteúdo
<a name="canvas-fm-chat-new"></a>

Para começar a usar modelos básicos de IA generativa no Canvas, você pode iniciar uma nova sessão de chat com um dos modelos. Para JumpStart modelos, você é cobrado enquanto o modelo está ativo, então você deve inicializar os modelos quando quiser usá-los e desligá-los quando terminar de interagir. Se você não desligar um JumpStart modelo, o Canvas o desligará após 2 horas de inatividade. Para modelos da Amazon Bedrock (como o Amazon Titan), você é cobrado por prompt; os modelos já estão ativos e não precisam ser inicializados ou encerrados. Você é cobrado diretamente pelo uso desses modelos pela Amazon Bedrock.

Para abrir um chat com uma modelo, faça o seguinte:

1. Abra o aplicativo SageMaker Canvas.

1. No painel de navegação esquerdo, escolha **eady-to-usemodelos R.**

1. Escolha **Gerar, extrair e resumir conteúdo**.

1. Na página de boas-vindas, você receberá uma recomendação para iniciar o modelo padrão. Você pode iniciar o modelo recomendado ou escolher **Selecionar outro modelo** no menu suspenso para escolher um diferente.

1. Se você selecionou um modelo de JumpStart base, precisará iniciá-lo antes que ele esteja disponível para uso. Escolha **Iniciar o modelo** e, em seguida, o modelo será implantado em uma instância de SageMaker IA. A conclusão dessa operação pode levar vários minutos. Quando o modelo estiver pronto, você poderá inserir prompts e fazer perguntas ao modelo.

   Se você selecionou um modelo básico do Amazon Bedrock, pode começar a usá-lo instantaneamente inserindo um prompt e fazendo perguntas.

Dependendo do modelo, você pode realizar várias tarefas. Por exemplo, você pode inserir uma passagem de texto e pedir ao modelo que a resuma. Ou você pode pedir ao modelo que apresente um breve resumo das tendências do mercado em seu Domínio.

As respostas do modelo em um chat são baseadas no contexto de seus prompts anteriores. Se você quiser fazer uma nova pergunta no chat que não esteja relacionada ao tópico da conversa anterior, recomendamos que você inicie um novo chat com o modelo.

# Extrair informações de documentos com a consulta de documentos
<a name="canvas-fm-chat-query"></a>

**nota**  
Esta seção pressupõe que você concluiu a seção [Pré-requisitos para a consulta de documentos](canvas-fm-chat-prereqs.md#canvas-fm-chat-prereqs-kendra) acima.

A consulta de documentos é um atributo que você pode usar ao interagir com modelos básicos no Canvas. Com a consulta de documentos, você pode acessar um corpus de documentos armazenados em um *índice* Amazon Kendra, que contém o conteúdo dos seus documentos e é estruturado de forma a tornar os documentos pesquisáveis. Você pode fazer perguntas específicas direcionadas aos dados do seu índice Amazon Kendra, e o modelo básico responderá às suas perguntas. Por exemplo, você pode consultar uma base de conhecimento interna de informações de TI e fazer perguntas como “Como faço para me conectar à rede da minha empresa?” Para obter mais informações sobre um índice, consulte o [Guia do desenvolvedor do Amazon Kendra](https://docs.aws.amazon.com/kendra/latest/dg/what-is-kendra.html).

Ao usar o atributo de consulta de documentos, os modelos básicos restringem suas respostas ao conteúdo dos documentos em seu índice com uma técnica chamada geração aumentada via recuperação (RAG). Essa técnica agrupa as informações mais relevantes do índice junto com o prompt do usuário e as envia ao modelo básico para obter uma resposta. As respostas são limitadas ao que pode ser encontrado em seu índice, evitando que o modelo forneça respostas incorretas com base em dados externos. Para obter mais informações sobre esse processo, consulte a postagem do blog [Crie rapidamente aplicações de IA generativa de alta precisão em dados corporativos](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/).

Para começar, em um chat com um modelo básico no Canvas, ative o botão **Consulta de documentos** na parte superior da página. No menu suspenso, selecione o índice do Amazon Kendra que você deseja consultar. Em seguida, você pode começar a fazer perguntas relacionadas aos documentos em seu índice.

**Importante**  
A consulta de documentos é compatível com o atributo [Comparar saídas do modelo](canvas-fm-chat-compare.md). Qualquer histórico de chat existente é sobrescrito quando você inicia um novo chat para comparar as saídas do modelo.

# Modelos de inicialização
<a name="canvas-fm-chat-manage"></a>

**nota**  
A seção a seguir descreve os modelos de inicialização, que se aplicam somente aos modelos JumpStart básicos, como o Falcon-40B-Instruct. Você pode acessar os modelos Amazon Bedrock, como o Amazon Titan, instantaneamente a qualquer momento.

Você pode iniciar quantos JumpStart modelos quiser. Cada JumpStart modelo ativo gera cobranças em sua conta, por isso recomendamos que você não inicie mais modelos do que os que está usando atualmente.

Para iniciar outro modelo, faça o seguinte:

1. Na página **Gerar, extrair e resumir conteúdo**, escolha **Novo chat**.

1. Escolha o modelo no menu suspenso. Se você quiser escolher um modelo não exibido no menu suspenso, escolha **Iniciar outro modelo** e, em seguida, selecione o modelo que você deseja inicializar.

1. Escolha **Inicializar modelo**.

O modelo começará a ser inicializado e, em alguns minutos, você poderá conversar com o modelo.

# Encerrar modelos
<a name="canvas-fm-chat-shut-down"></a>

É altamente recomendável que você encerre os modelos que não está usando. Os modelos são encerrados automaticamente após 2 horas de inatividade. No entanto, para encerrar manualmente um modelo, faça o seguinte:

1. Na página **Gerar, extrair e resumir conteúdo**, abra o chat do modelo que você deseja encerrar.

1. Na página de chat, escolha o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. Escolha **Encerrar o modelo**.

1. Na caixa de confirmação de **Encerrar o modelo**, escolha **Encerrar**.

O modelo começará a ser encerrado. Se seu chat comparar dois ou mais modelos, você pode encerrar um modelo individual na página de chat escolhendo o ícone **Mais opções** do modelo (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) e, em seguida, escolhendo **Encerrar o modelo**.

# Comparar saídas do modelo
<a name="canvas-fm-chat-compare"></a>

Você pode querer comparar a saída de diferentes modelos lado a lado para ver qual saída de modelo você prefere. Isso pode ajudar você a decidir qual modelo melhor se adequa ao seu caso de uso. Você pode comparar até três modelos em chats.

**nota**  
Cada modelo individual incorre em cobranças em sua conta.

Você deve iniciar um novo chat para adicionar modelos para comparação. Para comparar a saída dos modelos lado a lado em um chat, faça o seguinte:

1. Em um chat, escolha **Novo chat**.

1. Escolha **Comparar** e use o menu suspenso para selecionar o modelo que você deseja adicionar. Para adicionar um terceiro modelo, escolha **Comparar** novamente para adicionar outro modelo.
**nota**  
Se você quiser usar um JumpStart modelo que não está ativo no momento, você será solicitado a inicializar o modelo.

Quando os modelos estão ativos, você verá os dois modelos lado a lado no chat. Você pode enviar seu prompt e cada modelo responderá no mesmo chat, conforme mostrado na captura de tela a seguir.

![\[Captura de tela da interface do Canvas com a saída de dois modelos mostrados lado a lado.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-chat-compare-outputs.png)


Quando terminar de interagir, certifique-se de desligar todos JumpStart os modelos individualmente para evitar cobranças adicionais.

# Ajustar modelos de base
<a name="canvas-fm-chat-fine-tune"></a>

Os modelos básicos que você pode acessar por meio do Amazon SageMaker Canvas podem ajudá-lo com uma variedade de tarefas de uso geral. No entanto, se você tiver um caso de uso específico e quiser respostas personalizadas com base em seus próprios dados, poderá *ajustar* um modelo básico.

Para ajustar um modelo básico, você fornece um conjunto de dados que consiste em exemplos de prompts e respostas do modelo. Em seguida, você treina o modelo básico com base nos dados. Por fim, o modelo básico ajustado é capaz de fornecer respostas mais específicas.

A seguinte lista contém os modelos básicos que você pode ajustar no Canvas:
+ Titan Express
+ Falcon-7B
+ Falcon-7B-Instruct
+ Falcon-40B-Instruct
+ Falcon-40B
+ FLAN-T5-Grande
+ Flan-T5-Xl
+ Flan-T5-Xxl
+ MPT-7B
+ MPT-7B-Instruct

Você pode acessar informações mais detalhadas sobre cada modelo básico na aplicação Canvas enquanto ajusta um modelo. Para obter mais informações, consulte [Ajuste o modelo](#canvas-fm-chat-fine-tune-procedure-model).

Este tópico descreve como ajustar os modelos de base no Canvas.

## Antes de começar
<a name="canvas-fm-chat-fine-tune-prereqs"></a>

Antes de ajustar um modelo básico, certifique-se de ter as permissões para Ready-to-use modelos no Canvas e uma função de AWS Identity and Access Management execução que tenha uma relação de confiança com o Amazon Bedrock, o que permite que o Amazon Bedrock assuma sua função enquanto ajusta os modelos básicos.

Ao configurar ou editar seu domínio do Amazon SageMaker AI, você deve 1) ativar as permissões de configuração dos Ready-to-use modelos Canvas e 2) criar ou especificar uma função do Amazon Bedrock, que é uma função de execução do IAM à qual a SageMaker IA atribui uma relação de confiança com o Amazon Bedrock. Para obter mais informações sobre como definir essas configurações, consulte [Pré-requisitos para configurar o Amazon Canvas SageMaker](canvas-getting-started.md#canvas-prerequisites).

Você pode configurar a função Amazon Bedrock manualmente se preferir usar sua própria função de execução do IAM (em vez de permitir que a SageMaker IA crie uma em seu nome). Para obter mais informações sobre como configurar a relação de confiança de sua própria função de execução do IAM com o Amazon Bedrock, consulte. [Conceda aos usuários permissões para usar o Amazon Bedrock e os atributos de IA generativa no Canvas](canvas-fine-tuning-permissions.md)

Você também deve ter um conjunto de dados formatado para ajustar modelos de linguagem grandes (). LLMs Veja a seguir uma lista de requisitos para seu conjunto de dados:
+ O conjunto de dados deve ser tabular e conter pelo menos duas colunas de dados de texto: uma coluna de entrada (que contém exemplos de prompt para o modelo) e uma coluna de saída (que contém exemplos de respostas do modelo).

  Um exemplo é o seguinte:     
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/canvas-fm-chat-fine-tune.html)
+ Recomendamos que o conjunto de dados tenha pelo menos 100 pares de texto (linhas de itens de entrada e saída correspondentes). Isso garante que o modelo básico tenha dados suficientes para o ajuste fino e aumente a precisão de suas respostas.
+ Cada item de entrada e saída deve conter no máximo 512 caracteres. Qualquer coisa maior é reduzida para 512 caracteres ao ajustar o modelo básico.

Ao ajustar um modelo do Amazon Bedrock, você deve aderir às cotas do Amazon Bedrock. Para obter mais informações, consulte [Cotas de personalização de modelos](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html#model-customization-quotas) no *Guia do usuário do Amazon Bedrock*.

Para obter mais informações sobre os requisitos e limitações gerais do conjunto de dados no Canvas, consulte [Criar um conjunto de dados](canvas-import-dataset.md).

## Ajuste um modelo de base
<a name="canvas-fm-chat-fine-tune-procedure"></a>

Você pode ajustar um modelo básico usando qualquer um dos seguintes métodos na aplicação Canvas:
+ Em um bate-papo **Gerar, extrair e resumir conteúdo** com um modelo básico, escolha o ícone **Ajuste fino do modelo** (![\[Magnifying glass icon with a plus sign, indicating a search or zoom-in function.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/wrench-icon-small.png)).
+ Durante um bate-papo com um modelo básico, se você gerou novamente a resposta duas ou mais vezes, o Canvas oferece a opção de **ajustar o modelo**. A captura de tela a seguir mostra um exemplo de como essa tela se parece.  
![\[Captura de tela da opção de Ajuste do modelo básico mostrada em um bate-papo.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/fine-tuning-ingress.png)
+ Na página **Meus modelos**, você pode criar um novo modelo escolhendo **Novo modelo** e, em seguida, selecionando o modelo **Ajustar o modelo básico**.
+ Na página inicial dos **Ready-to-use modelos**, você pode escolher **Criar seu próprio modelo** e, em seguida, na caixa de diálogo **Criar novo modelo**, escolher **Ajustar o modelo básico**.
+ Ao navegar pelos conjuntos de dados na guia **Data Wrangler**, você pode selecionar um conjunto de dados e escolher **Criar um modelo.** Em seguida, escolha o **Ajustar o modelo básico**.

Depois de começar a ajustar um modelo, faça o seguinte:

### Defina um conjunto de dados.
<a name="canvas-fm-chat-fine-tune-procedure-select"></a>

Na guia **Selecionar** do ajuste fino de um modelo, você escolhe os dados nos quais gostaria de treinar o modelo básico.

Selecione um conjunto de dados existente ou crie um novo que atenda aos requisitos listados na [Antes de começar](#canvas-fm-chat-fine-tune-prereqs) seção. Para obter mais informações sobre como criar um conjunto de dados, consulte [Criar um conjunto de dados](canvas-import-dataset.md).

Quando você tiver selecionado ou criado um conjunto de dados e estiver pronto para seguir em frente, escolha **Selecionar conjunto de dados**.

### Ajuste o modelo
<a name="canvas-fm-chat-fine-tune-procedure-model"></a>

Depois de selecionar seus dados, agora você está pronto para começar a treinar e ajustar o modelo.

Na guia **Ajustar**, faça o seguinte:

1. (Opcional) Escolha **Saiba mais sobre nossos modelos básicos** para acessar mais informações sobre cada modelo e ajudá-lo a decidir qual modelo ou modelos básicos implantar.

1. Para **selecionar até 3 modelos básicos**, abra o menu suspenso e verifique até 3 modelos básicos (até 2 JumpStart modelos e 1 modelo Amazon Bedrock) que você gostaria de ajustar durante o trabalho de treinamento. Ao ajustar vários modelos básicos, você pode comparar seu desempenho e, por fim, escolher o mais adequado ao seu caso de uso como modelo padrão. Para obter mais informações sobre modelos, consulte [Veja os candidatos a modelo na tabela de classificação de modelos](canvas-evaluate-model-candidates.md).

1. Em **Selecionar coluna de entrada**, selecione a coluna de dados de texto em seu conjunto de dados que contém os prompts do modelo de exemplo.

1. Em **Selecionar coluna de saída**, selecione a coluna de dados de texto em seu conjunto de dados que contém as respostas do modelo de exemplo.

1. (Opcional) Para definir configurações avançadas para o trabalho de treinamento, escolha **Configurar modelo**. Para obter mais informações sobre as configurações avançadas de modelo, consulte [Configurações avançadas de construção de modelos](canvas-advanced-settings.md).

   Na janela pop up **Configurar modelo**, faça o seguinte:

   1. Para **hiperparâmetros**, você pode ajustar a **contagem de Epoch**, o **tamanho do lote**, a **taxa de aprendizado** **e as etapas de aquecimento da taxa de aprendizado** para cada modelo selecionado. Para obter mais informações sobre esses parâmetros, consulte a [seção Hiperparâmetros na JumpStart documentação](https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-fine-tune.html#jumpstart-hyperparameters).

   1. Para **Divisão de dados**, você pode especificar porcentagens de como dividir seus dados entre o **conjunto de treinamento** e o **conjunto de validação**.

   1. Para o **runtime do trabalho máximo**, você pode definir a quantidade máxima de tempo em que o Canvas executa o trabalho de construção. Esse recurso está disponível somente para modelos de JumpStart base.

   1. Depois de definir as configurações, escolha **Salvar**.

1. Escolha **Ajustar** para começar a treinar os modelos básicos que você selecionou.

Depois que o trabalho de ajuste fino começar, você poderá sair da página. Quando o modelo aparece como **Pronto** na página **Meus modelos**, ele está pronto para uso e agora você pode analisar o desempenho do seu modelo básico ajustado.

### Analisar o modelo básico ajustado
<a name="canvas-fm-chat-fine-tune-procedure-analyze"></a>

Na guia **Analisar** do seu modelo básico ajustado, você pode ver o desempenho do modelo.

A guia **Visão geral** desta página mostra as pontuações de perplexidade e perda, junto com análises que visualizam a melhoria do modelo ao longo do tempo durante o treinamento. A captura de tela a seguir mostra a guia **Visão geral**.

![\[A guia Analisar de um modelo de base ajustado no Canvas, mostrando as curvas de perplexidade e perda.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-fine-tune-analyze-2.png)


Nessa página, você pode ver as seguintes visualizações:
+ A **curva de perplexidade** mede quão bem o modelo prevê a próxima palavra em uma sequência ou quão gramatical é a saída do modelo. Idealmente, à medida que o modelo melhora durante o treinamento, a pontuação diminui e resulta em uma curva que diminui e se achata com o tempo.
+ A **curva de perda** quantifica a diferença entre a saída correta e a saída prevista do modelo. Uma curva de perda que diminui e se achata com o tempo indica que o modelo está melhorando sua capacidade de fazer predições precisas.

A guia **Métricas avançadas** mostra os hiperparâmetros e métricas adicionais do seu modelo. A aparência é a seguinte:

![\[Captura de tela da guia Métricas avançadas de um modelo básico ajustado no Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-fine-tune-metrics.png)


A guia **Métricas avançadas** contém as seguintes informações:
+ A seção **Explicabilidade** contém os **hiperparâmetros**, que são os valores definidos antes do trabalho para orientar o ajuste fino do modelo. Se você não especificou hiperparâmetros personalizados nas configurações avançadas do modelo na [Ajuste o modelo](#canvas-fm-chat-fine-tune-procedure-model) seção, o Canvas seleciona os hiperparâmetros padrão para você.

  Para JumpStart modelos, você também pode ver a métrica avançada [ROUGE (Recall-Oriented Understudy for Gisting Evaluation)](https://en.wikipedia.org/wiki/ROUGE_(metric)), que avalia a qualidade dos resumos gerados pelo modelo. Ele mede o quão bem o modelo pode resumir os pontos principais de uma passagem.
+ A seção **Artefatos** fornece links para artefatos gerados durante o trabalho de ajuste fino. Você pode acessar os dados de treinamento e validação salvos no Amazon S3, bem como o link para o relatório de avaliação do modelo (para saber mais, consulte o parágrafo a seguir).

Para obter mais informações sobre a avaliação do modelo, você pode baixar um relatório gerado usando o [SageMaker Clarify](https://docs.aws.amazon.com/sagemaker/latest/dg/clarify-configure-processing-jobs.html), que é um recurso que pode ajudá-lo a detectar vieses em seu modelo e dados. Primeiro, gere o relatório escolhendo **Gerar relatório de avaliação** na parte inferior da página. Depois que o relatório for gerado, você poderá baixar o relatório completo escolhendo **Baixar relatório** ou retornando à seção **Artefatos**.

Você também pode acessar um caderno Jupyter que mostra como replicar seu trabalho de ajuste fino no código Python. Você pode usar isso para replicar ou fazer alterações programáticas em seu trabalho de ajuste fino ou obter uma compreensão mais profunda de como o Canvas ajusta seu modelo. Para saber mais sobre modelos de cadernos e como acessá-los, consulte[Baixe um modelo de caderno](canvas-notebook.md).

Para obter mais informações sobre como interpretar as informações na guia **Analisar** do seu modelo de base ajustado, consulte o tópico. [Avaliação de modelos](canvas-evaluate-model.md)

Depois de analisar as guias **Visão geral** e **Métricas avançadas**, você também pode optar por abrir a tabela de **classificação do modelo**, que mostra a lista dos modelos básicos treinados durante a criação. O modelo com a pontuação de perda mais baixa é considerado o modelo de melhor desempenho e é selecionado como o **Modelo padrão**, que é o modelo cuja análise você vê na guia **Analisar**. Você só pode testar e implantar o modelo padrão. Para obter mais informações sobre a tabela de classificação dos modelos e como alterar o modelo padrão, consulte. [Veja os candidatos a modelo na tabela de classificação de modelos](canvas-evaluate-model-candidates.md)

### Teste um modelo básico ajustado em um bate-papo
<a name="canvas-fm-chat-fine-tune-procedure-test"></a>

Depois de analisar o desempenho de um modelo básico ajustado, talvez você queira testá-lo ou comparar suas respostas com o modelo básico. Você pode testar um modelo básico ajustado em um bate-papo no atributo **Gerar, extrair e resumir conteúdo**.

Inicie um bate-papo com um modelo ajustado escolhendo um dos seguintes métodos:
+ Na guia **Analisar** do modelo ajustado, escolha **Testar em Ready-to-use** modelos básicos.
+ Na página de **Ready-to-use modelos** do Canvas, escolha **Gerar, extrair e resumir conteúdo**. Em seguida, escolha **Novo bate-papo** e selecione a versão do modelo que você deseja testar.

O modelo é iniciado em um bate-papo e você pode interagir com ele como qualquer outro modelo básico. Você pode adicionar mais modelos ao chat e comparar suas saídas. Para obter mais informações sobre a funcionalidade dos chats, consulte [Modelos básicos de IA generativa no Canvas SageMaker](canvas-fm-chat.md).

## Operacionalize modelos básicos ajustados
<a name="canvas-fm-chat-fine-tune-mlops"></a>

Depois de ajustar seu modelo no Canvas, faça o seguinte:
+ Registre o SageMaker modelo no Registro de Modelos para integração com MLOps os processos de sua organização. Para obter mais informações, consulte [Registre uma versão do modelo no registro de modelos de SageMaker IA](canvas-register-model.md).
+ Implante o modelo em um endpoint de SageMaker IA e envie solicitações para o modelo a partir do seu aplicativo ou site para obter previsões (ou *inferências*). Para obter mais informações, consulte [Implantar seus modelos em um endpoint](canvas-deploy-model.md).

**Importante**  
Você só pode registrar e implantar modelos de JumpStart base ajustados e baseados em modelos baseados no Amazon Bedrock.

# Ready-to-use modelos
<a name="canvas-ready-to-use-models"></a>

Com Ready-to-use os modelos do Amazon SageMaker Canvas, você pode fazer previsões em seus dados sem escrever uma única linha de código ou ter que criar um modelo — tudo o que você precisa trazer são seus dados. Os Ready-to-use modelos usam modelos pré-criados para gerar previsões sem exigir que você gaste o tempo, a experiência ou o custo necessários para criar um modelo, e você pode escolher entre uma variedade de casos de uso, desde detecção de linguagem até análise de despesas.

O Canvas se integra a AWS serviços existentes, como [Amazon Textract, Amazon](https://docs.aws.amazon.com/textract/latest/dg/what-is.html) [Rekognition e Amazon [Comprehend](https://docs.aws.amazon.com/comprehend/latest/dg/what-is.html), para analisar seus dados](https://docs.aws.amazon.com/rekognition/latest/dg/what-is.html) e fazer previsões ou extrair insights. Você pode usar o poder preditivo desses serviços de dentro da aplicação Canvas para obter predições de alta qualidade para seus dados.

O Canvas é compatível com os seguintes tipos de Ready-to-use modelos:


| Ready-to-use modelo | Description | Tipos de dados compatíveis | 
| --- | --- | --- | 
| Análise de sentimento | Detecte sentimentos em linhas de texto, que podem ser positivos, negativos, neutros ou mistos. No momento, só é possível fazer análises de sentimentos para textos em inglês. | Texto simples ou tabular (CSV, Parquet) | 
| Extração de entidades | Extraia entidades, que são objetos do mundo real, como pessoas, lugares e itens comerciais, ou unidades, como datas e quantidades, do texto. | Texto simples ou tabular (CSV, Parquet) | 
| Detecção de idioma | Determine o idioma dominante em textos como inglês, francês ou alemão. | Texto simples ou tabular (CSV, Parquet) | 
| Detecção de informações pessoais | Detecte informações pessoais que possam ser usadas para identificar um indivíduo, como endereços, números de contas bancárias e números de telefone, a partir de texto. | Texto simples ou tabular (CSV, Parquet) | 
| Detecção de objetos em imagens | Detecte objetos, conceitos, cenas e ações em suas imagens. | Imagem (JPG, PNG) | 
| Detecção de texto em imagens | Detecte textos em suas imagens. | Imagem (JPG, PNG) | 
| Análise de despesas | Extraia informações de faturas e recibos, como data, número, preços dos itens, valor total e condições de pagamento. | Documento (PDF, JPG, PNG, TIFF) | 
| Análise de documento de identidade | Extraia informações de passaportes, carteiras de motorista e outros documentos de identidade emitidos pelo governo dos EUA. | Documento (PDF, JPG, PNG, TIFF) | 
| Análise de documentos | Analise documentos e formulários em busca de relações entre o texto detectado. | Documento (PDF, JPG, PNG, TIFF) | 
| Consultas de documentos | Extraia informações de documentos estruturados, como recibos de pagamento, extratos bancários, formulários W-2 e formulários de solicitação de hipoteca, fazendo perguntas com o uso de linguagem natural. | Documento (PDF) | 

## Conceitos básicos
<a name="canvas-ready-to-use-get-started"></a>

Para começar a usar os Ready-to-use modelos, revise as informações a seguir.

**Pré-requisitos**

Para usar Ready-to-use modelos no Canvas, você deve ativar as permissões de **configuração dos Ready-to-use modelos do Canvas** ao [configurar seu domínio Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html#canvas-prerequisites). A **configuração dos Ready-to-use modelos Canvas** anexa a política de [AmazonSageMakerCanvasAIServicesacesso](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess) à função de execução do seu usuário do Canvas AWS Identity and Access Management (IAM). Se você encontrar algum problema com a concessão de permissões, consulte o tópico [Solução de problemas com a concessão de permissões por meio do console de SageMaker IA](canvas-limits.md#canvas-troubleshoot-trusted-services).

Se você já configurou seu Domínio, você pode editar suas configurações de Domínio e ativar as permissões. Para obter instruções sobre como editar suas configurações de domínio, consulte [Editar configurações de domínio](https://docs.aws.amazon.com/sagemaker/latest/dg/domain-edit.html). Ao editar as configurações do seu domínio, acesse as **configurações do Canvas** e ative a opção **Ativar Ready-to-use modelos do Canvas**.

**(Opcional) Desativar o armazenamento de dados dos serviços de IA**

Alguns serviços de AWS IA armazenam e usam seus dados para fazer melhorias no serviço. Você pode optar por não ter o seu conteúdo armazenado nem utilizado para melhorias no serviço. Para obter mais informações sobre como optar por não participar, consulte as [Políticas de Exclusão dos Serviços de IA](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_ai-opt-out.html) no *AWS Organizations Guia do usuário do*.

**Como usar Ready-to-use modelos**

Para começar a usar Ready-to-use modelos, faça o seguinte:

1. **(Opcional) Importe seus dados.** Você pode importar um conjunto de dados tabular, de imagem ou documento para gerar previsões em lote ou um conjunto de dados de previsões com modelos. Ready-to-use Para começar a importar um conjunto de dados, consulte [Criar um conjunto de dados](canvas-data-flow.md).

1. **Gere predições.** Você pode gerar previsões únicas ou em lote com o Ready-to-use modelo escolhido. Para começar a fazer predições, consulte [Fazer predições para dados de texto](canvas-ready-to-use-predict-text.md).

# Fazer predições para dados de texto
<a name="canvas-ready-to-use-predict-text"></a>

Os procedimentos a seguir descrevem como fazer predições únicas e em lote para conjuntos de dados de texto. Cada Ready-to-use modelo suporta **previsões únicas e previsões** **em lote** para seu conjunto de dados. Uma **predição única** é quando você só precisa fazer uma predição. Por exemplo, você tem uma imagem da qual deseja extrair texto ou um parágrafo de texto e deseja detectar seu idioma dominante. Uma **predição em lote** é quando você quer fazer predições para um conjunto de dados inteiro. Por exemplo, você pode ter um arquivo CSV de avaliações de clientes para o qual gostaria de analisar o sentimento do cliente ou pode ter arquivos de imagem nos quais gostaria de detectar objetos.

Você pode usar esses procedimentos para os seguintes tipos de Ready-to-use modelo: análise de sentimentos, extração de entidades, detecção de idioma e detecção de informações pessoais.

**nota**  
Para a análise de sentimentos, só é possível usar textos em inglês.

## Previsões únicas
<a name="canvas-ready-to-use-predict-text-single"></a>

Para fazer uma única previsão para Ready-to-use modelos que aceitam dados de texto, faça o seguinte:

1. No painel de navegação esquerdo do aplicativo Canvas, escolha **eady-to-usemodelos R.**

1. Na página de **Ready-to-use modelos**, escolha o Ready-to-use modelo para seu caso de uso. Para dados de texto, ele deve ser uma das seguintes opções: **Análise de sentimentos**, **Extração de entidades**, **Detecção de idioma** ou **Detecção de informações pessoais**.

1. Na página **Executar previsões** do Ready-to-use modelo escolhido, escolha **Predição única**.

1. Em **Campo de texto**, insira o texto para o qual você gostaria de obter uma predição.

1. Escolha **Gerar resultados de predição** para obter sua predição.

No painel à direita **Resultados da predição**, você receberá uma análise do seu texto, além de uma pontuação de **Confiança** para cada resultado ou rótulo. Por exemplo, se você escolher a detecção de idioma e inserir uma passagem de texto em francês, poderá obter francês com uma pontuação de confiança de 95% e traços de outros idiomas, como inglês, com uma pontuação de confiança de 5%.

A captura de tela a seguir mostra os resultados de uma única predição usando a detecção de idioma, em que o modelo tem 100% de certeza de que a passagem é em inglês.

![\[Captura de tela dos resultados de uma única previsão com o Ready-to-use modelo de detecção de idioma.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-ready-to-use/ai-solutions-text-prediction.png)


## Previsões em lote
<a name="canvas-ready-to-use-predict-text-batch"></a>

Para fazer previsões em lote para Ready-to-use modelos que aceitam dados de texto, faça o seguinte:

1. No painel de navegação esquerdo do aplicativo Canvas, escolha **eady-to-usemodelos R.**

1. Na página de **Ready-to-use modelos**, escolha o Ready-to-use modelo para seu caso de uso. Para dados de texto, ele deve ser uma das seguintes opções: **Análise de sentimentos**, **Extração de entidades**, **Detecção de idioma** ou **Detecção de informações pessoais**.

1. Na página **Executar previsões** do Ready-to-use modelo escolhido, escolha **Previsão em lote**.

1. Escolha **Selecionar conjunto de dados** se você já tiver importado seu conjunto de dados. Caso contrário, escolha **Importar novo conjunto de dados** e, em seguida, você será direcionado pelo fluxo de trabalho de importação de dados.

1. Na lista de conjuntos de dados disponíveis, selecione seu conjunto de dados e escolha **Gerar predições** para obter suas predições.

Depois que a execução do trabalho de predição for concluída, na página **Executar predições**, você verá um conjunto de dados de saída listado em **Previsões**. Esse conjunto de dados contém seus resultados e, se você selecionar o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), poderá **Visualizar** os dados de saída. Em seguida, você pode escolher **Download** para baixar os resultados.

# Fazer predições para dados de imagem
<a name="canvas-ready-to-use-predict-image"></a>

Os procedimentos a seguir descrevem como fazer predições únicas e em lote para conjuntos de dados de imagem. Cada Ready-to-use modelo suporta **previsões únicas e previsões** **em lote** para seu conjunto de dados. Uma **predição única** é quando você só precisa fazer uma predição. Por exemplo, você tem uma imagem da qual deseja extrair texto ou um parágrafo de texto e deseja detectar seu idioma dominante. Uma **predição em lote** é quando você quer fazer predições para um conjunto de dados inteiro. Por exemplo, você pode ter um arquivo CSV de avaliações de clientes para o qual gostaria de analisar o sentimento do cliente ou pode ter arquivos de imagem nos quais gostaria de detectar objetos.

Você pode usar esses procedimentos para os seguintes tipos de Ready-to-use modelo: imagens de detecção de objetos e detecção de texto em imagens.

## Previsões únicas
<a name="canvas-ready-to-use-predict-image-single"></a>

Para fazer uma única previsão para Ready-to-use modelos que aceitam dados de imagem, faça o seguinte:

1. No painel de navegação esquerdo do aplicativo Canvas, escolha **eady-to-usemodelos R.**

1. Na página de **Ready-to-use modelos**, escolha o Ready-to-use modelo para seu caso de uso. Para dados de imagem, ele deve ser uma das seguintes opções: **Imagens de detecção de objetos** ou **Detecção de texto em imagens**.

1. Na página **Executar previsões** do Ready-to-use modelo escolhido, escolha **Predição única**.

1. Escolha **Fazer upload de imagens**.

1. Será solicitado que você selecione uma imagem para carregar do seu computador local. Selecione a imagem dos seus arquivos locais e, em seguida, os resultados da predição serão gerados.

No painel à direita **Resultados da predição**, você receberá uma análise da sua imagem, além de uma pontuação de **Confiança** para cada objeto ou texto detectado. Por exemplo, se você escolher a detecção de objetos em imagens, receberá uma lista de objetos na imagem junto com uma pontuação de confiança de quão certo o modelo está de que cada objeto foi detectado com precisão, como 93%.

A captura de tela a seguir mostra os resultados de uma predição única usando a solução de detecção de objetos em imagens, na qual o modelo prevê objetos como uma torre de relógio e um ônibus com 100% de confiança.

![\[Os resultados de uma única previsão com a solução de detecção de objetos no Ready-to-use modelo de imagens.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-ready-to-use/ai-solutions-image-prediction.png)


## Previsões em lote
<a name="canvas-ready-to-use-predict-image-batch"></a>

Para fazer previsões em lote para Ready-to-use modelos que aceitam dados de imagem, faça o seguinte:

1. No painel de navegação esquerdo do aplicativo Canvas, escolha **eady-to-usemodelos R.**

1. Na página de **Ready-to-use modelos**, escolha o Ready-to-use modelo para seu caso de uso. Para dados de imagem, ele deve ser uma das seguintes opções: **Imagens de detecção de objetos** ou **Detecção de texto em imagens**.

1. Na página **Executar previsões** do Ready-to-use modelo escolhido, escolha **Previsão em lote**.

1. Escolha **Selecionar conjunto de dados** se você já tiver importado seu conjunto de dados. Caso contrário, escolha **Importar novo conjunto de dados** e, em seguida, você será direcionado pelo fluxo de trabalho de importação de dados.

1. Na lista de conjuntos de dados disponíveis, selecione seu conjunto de dados e escolha **Gerar predições** para obter suas predições.

Depois que a execução do trabalho de predição for concluída, na página **Executar predições**, você verá um conjunto de dados de saída listado em **Previsões**. Esse conjunto de dados contém seus resultados e, se você selecionar o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), poderá escolher **Exibir resultados de predição** para visualizar os dados de saída. Em seguida, você pode escolher **Baixar predição** para fazer baixar os resultados como um arquivo CSV ou ZIP.

# Fazer predições para dados de documento
<a name="canvas-ready-to-use-predict-document"></a>

Os procedimentos a seguir descrevem como fazer predições únicas e em lote para conjuntos de dados de documento. Cada Ready-to-use modelo suporta **previsões únicas e previsões** **em lote** para seu conjunto de dados. Uma **predição única** é quando você só precisa fazer uma predição. Por exemplo, você tem uma imagem da qual deseja extrair texto ou um parágrafo de texto e deseja detectar seu idioma dominante. Uma **predição em lote** é quando você quer fazer predições para um conjunto de dados inteiro. Por exemplo, você pode ter um arquivo CSV de avaliações de clientes para o qual gostaria de analisar o sentimento do cliente ou pode ter arquivos de imagem nos quais gostaria de detectar objetos.

Você pode usar esses procedimentos para os seguintes tipos de Ready-to-use modelo: análise de despesas, análise de documentos de identidade e análise de documentos.

**nota**  
Para consultas de documentos, somente predições únicas são compatíveis atualmente.

## Previsões únicas
<a name="canvas-ready-to-use-predict-document-single"></a>

Para fazer uma única previsão para Ready-to-use modelos que aceitam dados de documentos, faça o seguinte:

1. No painel de navegação esquerdo do aplicativo Canvas, escolha **eady-to-usemodelos R.**

1. Na página de **Ready-to-use modelos**, escolha o Ready-to-use modelo para seu caso de uso. Para dados de documentos, ele deve ser uma das seguintes opções: **Análise de despesas**, **Análise de documentos de identidade** ou **Análise de documentos**.

1. Na página **Executar previsões** do Ready-to-use modelo escolhido, escolha **Predição única**.

1. Se seu Ready-to-use modelo for análise de documentos de identidade ou análise de documentos, conclua as ações a seguir. Se você estiver fazendo análises de despesas ou consultas de documentos, pule esta etapa e vá para a Etapa 5 ou a Etapa 6, respectivamente.

   1. Escolha **Upload de documento**.

   1. Será solicitado que você carregue um arquivo PDF, JPG ou PNG do seu computador local. Selecione o documento dos seus arquivos locais e, em seguida, os resultados da predição serão gerados.

1. Se seu Ready-to-use modelo for análise de despesas, faça o seguinte:

   1. Escolha **Upload de fatura ou recibo**.

   1. Será solicitado que você carregue um arquivo PDF, JPG, PNG ou TIFF do seu computador local. Selecione o documento dos seus arquivos locais e, em seguida, os resultados da predição serão gerados.

1. Se seu Ready-to-use modelo for uma consulta de documentos, faça o seguinte:

   1. Escolha **Upload de documento**.

   1. Será solicitado que você carregue um arquivo PDF do seu computador local. Selecione o documento em seus arquivos locais. Seu PDF deve ter de 1 a 100 páginas.
**nota**  
Se você estiver nas regiões Ásia-Pacífico (Seul), Ásia-Pacífico (Singapura), Ásia-Pacífico (Sydney) ou Europa (Frankfurt), o tamanho máximo do PDF para consultas de documentos é de 20 páginas.

   1. No painel à direita, insira consultas para pesquisar informações no documento. O número de caracteres que você pode inserir em uma única consulta é de 1 a 200. Você pode adicionar até 15 consultas por vez.

   1. Escolha **Enviar consultas** e, em seguida, os resultados serão gerados com as respostas às suas consultas. Você será cobrado uma vez por cada envio de consultas que fizer.

No painel à direita **Resultados da predição**, você receberá uma análise do seu documento.

As informações a seguir descrevem os resultados de cada tipo de solução:
+ Para análise de despesas, os resultados são categorizados em **Campos de resumo**, que incluem campos como o total em um recibo, e **Campos de item de linha**, que incluem campos como itens individuais em um recibo. Os campos identificados são destacados na imagem do documento na saída.
+ Para análise de documentos de identidade, a saída mostra os campos que o Ready-to-use modelo identificou, como nome e sobrenome, endereço ou data de nascimento. Os campos identificados são destacados na imagem do documento na saída.
+ Para análise de documentos, os resultados são categorizados em **Texto simples**, **Formulários**, **Tabelas** e **Assinaturas**. O **Texto simples** inclui todo o texto extraído, enquanto os **Formulários**, **Tabelas** e **Assinaturas** incluem apenas informações no formato que se enquadram nessas categorias. Por exemplo, as **Tabelas** incluem somente informações extraídas das tabelas no documento. Os campos identificados são destacados na imagem do documento na saída.
+ Para consultas de documentos, o Canvas apresenta respostas para cada uma de suas consultas. Você pode abrir o menu suspenso expansível de consulta para ver um resultado, junto com uma pontuação de confiança para a predição. Se o Canvas encontrar várias respostas no documento, você poderá ter mais de um resultado para cada consulta.

A captura de tela a seguir mostra os resultados de uma única predição usando a solução de análise de documentos.

![\[Captura de tela dos resultados de uma única previsão com o Ready-to-use modelo de análise de documentos.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-ready-to-use/ai-solutions-document-analysis.png)


## Previsões em lote
<a name="canvas-ready-to-use-predict-document-batch"></a>

Para fazer previsões em lote para Ready-to-use modelos que aceitam dados do documento, faça o seguinte:

1. No painel de navegação esquerdo do aplicativo Canvas, escolha **eady-to-usemodelos R.**

1. Na página de **Ready-to-use modelos**, escolha o Ready-to-use modelo para seu caso de uso. Para dados de imagem, ele deve ser uma das seguintes opções: **Análise de despesas**, **Análise de documentos de identidade** ou **Análise de documentos**.

1. Na página **Executar previsões** do Ready-to-use modelo escolhido, escolha **Previsão em lote**.

1. Escolha **Selecionar conjunto de dados** se você já tiver importado seu conjunto de dados. Caso contrário, escolha **Importar novo conjunto de dados** e, em seguida, você será direcionado pelo fluxo de trabalho de importação de dados.

1. Na lista de conjuntos de dados disponíveis, selecione seu conjunto de dados e escolha **Gerar predições**. Se seu caso de uso for análise de documentos, prossiga para a Etapa 6.

1. (Opcional) Se seu caso de uso for Análise de documentos, outra caixa de diálogo chamada **Selecionar atributos a serem incluídos na predição em lote** será exibida. Você pode selecionar **Formulários**, **Tabelas** e **Assinaturas** para agrupar os resultados por esses atributos. Em seguida, escolha **Gerar predições**.

Depois que a execução do trabalho de predição for concluída, na página **Executar predições**, você verá um conjunto de dados de saída listado em **Previsões**. Esse conjunto de dados contém seus resultados e, se você selecionar o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), poderá escolher **Exibir resultados da predição** para visualizar a análise dos dados do seu documento.

As informações a seguir descrevem os resultados de cada tipo de solução:
+ Para análise de despesas, os resultados são categorizados em **Campos de resumo**, que incluem campos como o total em um recibo, e **Campos de item de linha**, que incluem campos como itens individuais em um recibo. Os campos identificados são destacados na imagem do documento na saída.
+ Para análise de documentos de identidade, a saída mostra os campos que o Ready-to-use modelo identificou, como nome e sobrenome, endereço ou data de nascimento. Os campos identificados são destacados na imagem do documento na saída.
+ Para análise de documentos, os resultados são categorizados em **Texto simples**, **Formulários**, **Tabelas** e **Assinaturas**. O **Texto simples** inclui todo o texto extraído, enquanto os **Formulários**, **Tabelas** e **Assinaturas** incluem apenas informações no formato que se enquadram nessas categorias. Por exemplo, as **Tabelas** incluem somente informações extraídas das tabelas no documento. Os campos identificados são destacados na imagem do documento na saída.

Depois de visualizar seus resultados, você pode escolher **Baixar predição** e baixar os resultados como um arquivo ZIP.

# Modelos personalizados
<a name="canvas-custom-models"></a>

No Amazon SageMaker Canvas, você pode treinar modelos personalizados de aprendizado de máquina adaptados aos seus dados e casos de uso específicos. Ao treinar um modelo personalizado em seus dados, você pode capturar características e tendências específicas e mais representativas de seus dados. Por exemplo, talvez você queira criar um modelo personalizado de previsão de séries temporais que você treine com base nos dados de inventário do seu armazém e que permita gerenciar suas operações logísticas.

O Canvas é compatível com o treinamento de vários tipos de modelos. Depois de treinar um modelo personalizado, é possível avaliar o desempenho e a precisão do modelo. Quando estiver satisfeito com um modelo, você pode fazer previsões sobre novos dados e também tem a opção de compartilhar o modelo personalizado com cientistas de dados para análise posterior ou implantá-lo em um endpoint hospedado por SageMaker IA para inferência em tempo real, tudo de dentro do aplicativo Canvas.

Você pode treinar um modelo personalizado do Canvas nos seguintes tipos de conjuntos de dados:
+ Tabulares (incluindo dados Numéricos, Categóricos, de Séries temporais e de Texto)
+ Imagem

A tabela a seguir mostra os tipos de modelos personalizados que você pode criar no Canvas, juntamente com os tipos de dados e fontes de dados compatíveis.


| Tipo do modelo | Exemplo de caso de uso | Tipos de dados compatíveis | Fontes de dados compatíveis | 
| --- | --- | --- | --- | 
| Previsão numérica | Previsão de preços de casas com base em atributos como metragem quadrada | Numérico | Upload local, Amazon S3, conectores SaaS | 
| Previsão de 2 categorias | Prever se é provável que um cliente se afaste ou não | Binário ou Categórico | Upload local, Amazon S3, conectores SaaS | 
| Previsão de 3 categorias | Prever os resultados do paciente após a alta hospitalar | Categóricos | Upload local, Amazon S3, conectores SaaS | 
| Previsão de séries temporais | Prever seu inventário para o próximo trimestre | Séries temporais | Upload local, Amazon S3, conectores SaaS | 
| Predição de imagem de rótulo único | Prever tipos de defeitos de fabricação em imagens | Imagem (JPG, PNG) | Upload local, Amazon S3 | 
| Previsão de texto de várias categorias | Prever categorias de produtos, como roupas, eletrônicos ou utensílios domésticos, com base nas descrições dos produtos |  Coluna de origem: Texto Coluna de destino: Binária ou Categórica | Upload local, Amazon S3 | 

**Conceitos básicos**

Para começar a criar e gerar predições a partir de um modelo personalizado, faça o seguinte:
+ Determine seu caso de uso e o tipo de modelo que você deseja criar. Para obter mais informações sobre os tipos de modelo personalizado, consulte [Como os modelos personalizados funcionam](canvas-build-model.md). Para obter mais informações sobre tipos de dados e fontes compatíveis, consulte a seção [importar dados](canvas-importing-data.md).
+ [Importar seus dados](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-importing-data.html) para o Canvas. Você pode criar um modelo personalizado com qualquer conjunto de dados tabular ou de imagem que atenda aos requisitos de entrada. Para obter mais informações sobre os requisitos de entrada, consulte [Criar um conjunto de dados](canvas-import-dataset.md).

  Para saber mais sobre conjuntos de dados de amostra fornecidos pela SageMaker IA com os quais você pode experimentar, consulte[Conjunto de dados de amostra no Canvas](canvas-sample-datasets.md).
+ [Criar](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html) seu modelo personalizado. Você pode fazer uma **Criação rápida** para obter seu modelo e começar a fazer predições mais rapidamente, ou pode fazer uma **Criação padrão** para obter maior precisão.

  Para tipos de modelos de previsão numéricos, categóricos e de séries temporais, você pode limpar e preparar seus dados como [atributo Data Wrangler](canvas-data-prep.md). No Data Wrangler, você pode criar um fluxo de dados e usar várias técnicas de preparação de dados, como aplicar transformações avançadas ou unir conjuntos de dados. Para modelos de predição de imagens, você pode [Editar um conjunto de dados de imagem](canvas-edit-image.md) atualizar seus rótulos ou adicionar e excluir imagens. Observe que você não pode usar esses atributos para modelos de predição de texto de várias categorias.
+ [Avalie o desempenho do seu modelo](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-evaluate-model.html) e determine o desempenho dele em dados do mundo real.
+ [Fazer predições únicas ou em lote](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-make-predictions.html) com seu modelo.

# Como os modelos personalizados funcionam
<a name="canvas-build-model"></a>

Use o Amazon SageMaker Canvas para criar um modelo personalizado no conjunto de dados que você importou. Use o modelo que você criou para fazer previsões sobre novos dados. SageMaker O Canvas usa as informações do conjunto de dados para criar até 250 modelos e escolher aquele com melhor desempenho.

Quando você começa a criar um modelo, o Canvas recomenda automaticamente um ou mais *tipos de modelo*. Os tipos de modelo se enquadram em uma das seguintes categorias:
+ **Previsão numérica** - conhecida como *regressão* no machine learning. Use o tipo de modelo de predição numérica quando quiser fazer predições para dados numéricos. Por exemplo, talvez você queira prever o preço das casas com base em atributos como a metragem quadrada da casa.
+ **Previsão categórica** - conhecida como *classificação* no machine learning. Quando quiser categorizar os dados em grupos, use os tipos de modelo de predição categórica:
  + **Previsão de 2 categorias**: use o tipo de modelo de predição de 2 categorias (também conhecido como *classificação binária* no machine learning) quando você tiver duas categorias que deseja prever para seus dados. Por exemplo, para determinar se é provável que um cliente se afaste.
  + **Previsão de mais de 3 categorias**: use o tipo de modelo de predição de mais de 3 categorias (também conhecido como *classificação de várias classes* no machine learning) quando você tiver três ou mais categorias que deseja prever para seus dados. Por exemplo, para prever o status do empréstimo de um cliente com base em atributos como pagamentos anteriores.
+ **Previsão de séries temporais** - use predições de séries temporais quando quiser fazer predições em um período de tempo. Por exemplo, para prever o número de itens que você venderá no próximo trimestre. Para obter informações sobre previsões de séries temporais, consulte [Previsões de séries temporais no Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-time-series.html).
+ **Previsão de imagem** - use o tipo de modelo de predição de imagem com rótulo único (também conhecido como *classificação de imagem com rótulo único* no machine learning) quando quiser atribuir rótulos às imagens. Por exemplo, para classificar tipos diferentes de defeitos de fabricação em imagens do seu produto.
+ **Previsão de texto** - use o tipo de modelo de predição de texto de várias categorias (também conhecido como *classificação de texto de várias classes* no machine learning) quando quiser atribuir rótulos a passagens de texto. Por exemplo, você pode ter um conjunto de dados de avaliações de clientes sobre um produto e deseja determinar se os clientes gostaram ou não do produto. Você pode fazer com que seu modelo preveja se uma determinada passagem de texto é `Positive`, `Negative` ou `Neutral`.

Para obter uma tabela dos tipos de dados de entrada compatíveis com cada tipo de modelo, consulte [Modelos personalizados](canvas-custom-models.md).

Para cada modelo de dados tabular que você cria (que inclui modelos numéricos, categóricos, de predição de séries temporais e de predição de texto), você escolhe a **Coluna de destino.** A **Coluna de destino** é a coluna que contém as informações que você deseja prever. Por exemplo, se você estiver criando um modelo para prever se as pessoas cancelaram suas assinaturas, a **Coluna de destino** contém pontos de dados que indicam `yes` ou `no` em relação ao status de cancelamento de alguém.

Para modelos de predição de imagem, você cria o modelo com um conjunto de dados de imagens às quais rótulos foram atribuídos. Para as imagens sem rótulos que você fornece, o modelo prevê um rótulo. Por exemplo, se você estiver criando um modelo para prever se uma imagem é um gato ou um cachorro, você fornece imagens rotuladas como gatos ou cachorros ao criar o modelo. Então, o modelo pode aceitar imagens não rotuladas e predizê-las como cães ou gatos.

**O que acontece quando você cria um modelo**

Para criar seu modelo, você pode escolher uma **Criação rápida** ou uma **Criação padrão**. A **Criação rápida** tem um tempo de criação menor, mas a **Criação padrão** geralmente tem uma precisão maior.

Para modelos de previsão tabular e de séries temporais, o Canvas usa a *redução da resolução* para reduzir o tamanho dos conjuntos de dados maiores que 5 GB ou 30 GB, respectivamente. A tela reduz a resolução com o método de amostragem estratificada. A tabela abaixo lista o tamanho da redução de amostragem por tipo de modelo. Para controlar o processo de amostragem, você pode usar o Data Wrangler no Canvas para obter amostras usando sua técnica de amostragem preferida. Para dados de séries temporais, você pode reamostrar para agregar pontos de dados. Para obter mais informações sobre tabelas de exemplo, consulte [Amostragem](canvas-transform.md#canvas-transform-sampling). Para obter mais informações sobre como reamostrar dados de séries temporais, consulte. [Reamostragem de dados de séries temporais](canvas-transform.md#canvas-resample-time-series)

Se você optar por fazer uma **construção rápida** em um conjunto de dados com mais de 50.000 linhas, o Canvas amostrará seus dados em até 50.000 linhas para um tempo menor de treinamento do modelo.

A tabela a seguir resume as principais características do processo de criação de modelos, incluindo os tempos médios de criação para cada modelo e tipo de criação, o tamanho da redução da amostra ao criar modelos com grandes conjuntos de dados e o número mínimo e máximo de pontos de dados que você deve ter para cada tipo de criação.


| Limite | Previsão numérica e categórica | Previsão de séries temporais | Previsão de imagem | Previsão de texto | 
| --- | --- | --- | --- | --- | 
| Tempo de ** Criação rápida** | De 2 a 20 minutos | De 2 a 20 minutos | De 15 a 30 minutos | De 15 a 30 minutos | 
| Tempo de **Criação padrão** | De 2 a 4 horas | De 2 a 4 horas | De 2 a 5 horas | De 2 a 5 horas | 
| Diminuir o tamanho da amostra (o tamanho reduzido de um grande conjunto de dados após a redução da resolução do Canvas) | 5 GB | 30 GB | N/D | N/D | 
| Número mínimo de entradas (linhas) para **Criações rápidas** |  2 categorias: 500 linhas 3 ou mais categorias, numéricas, séries temporais: N/D  | N/D | N/D | N/D | 
| Número mínimo de entradas (linhas, imagens ou documentos) para **Criações padrão** | 250 | 50 | 50 | N/D | 
| Número máximo de entradas (linhas, imagens ou documentos) para **Criações rápidas** | N/D | N/D | 5000 | 7500 | 
| Número máximo de entradas (linhas, imagens ou documentos) para **Criações padrão** | N/D | 150.000 | 180.000 | N/D | 
| Número máximo de colunas | 1.000 | 1.000 | N/D | N/D | 

O Canvas prevê valores usando as informações no restante do conjunto de dados, dependendo do tipo de modelo:
+ Para a predição categórica, o Canvas coloca cada linha em uma das categorias listadas na **Coluna de destino**.
+ Para a predição numérica, o Canvas usa as informações no conjunto de dados para prever os valores numéricos na **Coluna de destino**.
+ Para a previsão de séries temporais, o Canvas usa dados históricos para prever valores para a **Coluna de destino** no futuro.
+ Para a predição de imagens, o Canvas usa imagens que receberam rótulos para prever rótulos para imagens não rotuladas.
+ Para a predição de texto, o Canvas analisa dados de texto aos quais foram atribuídos rótulos para prever rótulos para passagens de texto não rotuladas.

**Atributos adicionais para ajudar você a criar seu modelo**

Antes de criar seu modelo, você pode usar o Data Wrangler no Canvas para preparar seus dados usando mais de 300 transformações e operadores integrados. O Data Wrangler é compatível com transformações para conjuntos de dados tabulares e de imagem. Além disso, você pode se conectar a fontes de dados fora do Canvas, criar trabalhos para aplicar transformações em todo o seu conjunto de dados e exportar seus dados totalmente preparados e limpos para uso em fluxos de trabalho de ML fora do Canvas. Para obter mais informações, consulte [preparação de dados](canvas-data-prep.md).

Para ver visualizações e analytics para explorar seus dados e determinar quais os melhores atributos a serem incluídos em seu modelo, você pode usar as analytics integradas do Data Wrangler. Você também pode acessar um **relatório de qualidade de dados e insights** que destaca possíveis problemas com seu conjunto de dados e fornece recomendações sobre como corrigi-los. Para obter mais informações, consulte [Realizar análise exploratória de dados (EDA)](canvas-analyses.md).

Além da funcionalidade mais avançada de preparação e exploração de dados fornecida pelo Data Wrangler, o Canvas fornece alguns atributos básicos que você pode usar:
+ Para filtrar seus dados e acessar um conjunto de transformações básicas de dados, consulte[Preparar dados para a criação de modelos](canvas-prepare-data.md).
+ Para acessar visualizações e analytics simples para exploração de atributos, consulte[Exploração e análise de dados](canvas-explore-data.md).
+ Para saber mais sobre atributos adicionais, como visualizar seu modelo, validar seu conjunto de dados e alterar o tamanho da amostra aleatória usada para criar seu modelo, consulte [Visualizar seu modelo](canvas-preview-model.md).

Para conjuntos de dados tabulares com várias colunas (como conjuntos de dados para criar tipos de modelos de previsão categórica, numérica ou de séries temporais), você pode ter linhas com pontos de dados ausentes. Enquanto o Canvas constrói o modelo, ele adiciona automaticamente os valores ausentes. O Canvas usa os valores do seu conjunto de dados para realizar uma aproximação matemática dos valores ausentes. Para obter a maior precisão do modelo, recomendamos adicionar os dados ausentes, se você puder encontrá-los. Observe que o atributo de dados ausentes não é compatível com modelos de predição de texto ou de predição de imagem.

**Conceitos básicos**

Para começar a criar um modelo personalizado, consulte [Criar um modelo](canvas-build-model-how-to.md) e siga o procedimento para o tipo de modelo que você deseja criar.

# Visualizar seu modelo
<a name="canvas-preview-model"></a>

**nota**  
As funcionalidades a seguir estão disponíveis somente para modelos personalizados criados com conjuntos de dados tabulares. Modelos de predição de texto de várias categorias também são excluídos.

SageMaker O Canvas fornece uma ferramenta para visualizar seu modelo antes de começar a construir. Isso fornece uma pontuação de precisão estimada e também uma ideia preliminar de como cada coluna pode impactar o modelo. 

Para visualizar a pontuação do modelo, quando você estiver na guia **Criar** do seu modelo, escolha **Visualizar modelo**.

A visualização do modelo gera uma predição de **Precisão estimada** de quão bem o modelo pode analisar seus dados. A precisão de uma **Criação rápida** ou **Criação padrão** representa o desempenho do modelo em dados reais e geralmente é maior do que a **Precisão estimada**.

A visualização prévia do modelo também fornece as pontuações de **impacto da coluna**, que podem indicar a importância de cada coluna para as predições do modelo.

A captura de tela a seguir mostra uma visualização do modelo na aplicação Canvas.

![\[Captura de tela da guia Criar para um modelo no Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-build/canvas-build-preview-model.png)


O Amazon SageMaker Canvas processa automaticamente os valores ausentes em seu conjunto de dados enquanto constrói o modelo. Ele infere os valores ausentes usando valores adjacentes que estão presentes no conjunto de dados.

Se você estiver satisfeito com a pré-visualização do seu modelo e quiser continuar com a criação de um modelo, consulte [Criar um modelo](canvas-build-model-how-to.md).

# Validação de dados
<a name="canvas-dataset-validation"></a>

Antes de criar seu modelo, o SageMaker Canvas verifica seu conjunto de dados em busca de problemas que possam fazer com que sua construção falhe. Se o SageMaker Canvas encontrar algum problema, ele o avisará na página **Build** antes de você tentar criar um modelo.

Você pode escolher **Validar dados** para obter uma lista dos problemas com seu conjunto de dados. Em seguida, você pode usar os [recursos de preparação de dados do SageMaker Canvas Data Wrangler](canvas-data-prep.md), ou suas próprias ferramentas, para corrigir seu conjunto de dados antes de iniciar uma construção. Se você não corrigir os problemas com seu conjunto de dados, sua criação falhará.

Se você fizer alterações em seu conjunto de dados para corrigir os problemas, você terá a opção de revalidar seu conjunto de dados antes de tentar uma criação. Recomendamos revalidar seu conjunto de dados antes de criar.

A tabela a seguir mostra os problemas que o SageMaker Canvas verifica em seu conjunto de dados e como resolvê-los.


| Problema | Resolução | 
| --- | --- | 
|  Tipo de modelo errado para seus dados  |  Experimente outro tipo de modelo ou use um conjunto de dados diferente.  | 
|  Valores ausentes na sua coluna de destino  |  Substitua os valores ausentes, elimine as linhas com valores ausentes ou use um conjunto de dados diferente.  | 
|  Muitos rótulos exclusivos em sua coluna de destino  |  Verifique se você usou a coluna correta para sua coluna de destino ou use um conjunto de dados diferente.  | 
|  Muitos valores não numéricos em sua coluna de destino  |  Escolha uma coluna de destino diferente, selecione outro tipo de modelo ou use um conjunto de dados diferente.  | 
|  Um ou mais nomes de coluna contêm sublinhados duplos  |  Renomeie as colunas para remover sublinhados duplos e tente novamente.  | 
|  Nenhuma das linhas no seu conjunto de dados está completa  |  Substitua os valores ausentes ou use um conjunto de dados diferente.  | 
|  Muitos rótulos exclusivos para o número de linhas em seus dados  |  Verifique se você está usando a coluna de destino correta, aumente o número de linhas no seu conjunto de dados, consolide rótulos semelhantes ou use um conjunto de dados diferente.  | 

# Amostra aleatória
<a name="canvas-random-sample"></a>

SageMaker O Canvas usa o método de amostragem aleatória para amostrar seu conjunto de dados. O método de amostra aleatória significa que cada linha tem a mesma chance de ser escolhida para a amostra. Você pode escolher uma coluna na visualização prévia para obter estatísticas resumidas para a amostra aleatória, como a média e o modo.

Por padrão, o SageMaker Canvas usa um tamanho de amostra aleatório de 20.000 linhas do seu conjunto de dados para conjuntos de dados com mais de 20.000 linhas. Para conjuntos de dados menores que 20.000 linhas, o tamanho padrão da amostra será o número de linhas no seu conjunto de dados. Você pode aumentar ou diminuir o tamanho da amostra escolhendo **Amostra aleatória** na guia **Criar** do aplicativo SageMaker Canvas. Você pode usar o controle deslizante para selecionar o tamanho da amostra desejada e, em seguida, escolher **Atualizar** para alterar o tamanho da amostra. O tamanho máximo da amostra que você pode escolher para um conjunto de dados é de 40.000 linhas e o tamanho mínimo da amostra é de 500 linhas. Se você escolher uma amostra grande, a visualização prévia do conjunto de dados e as estatísticas resumidas podem levar alguns minutos para serem recarregadas.

A página de **Criação** mostra uma visualização prévia de 100 linhas do seu conjunto de dados. Se o tamanho da amostra for do mesmo tamanho do seu conjunto de dados, a visualização prévia usará as primeiras 100 linhas do seu conjunto de dados. Caso contrário, a visualização prévia usa as primeiras 100 linhas da amostra aleatória.

# Criar um modelo
<a name="canvas-build-model-how-to"></a>

As seções a seguir mostram como criar um modelo para cada um dos principais tipos de modelos personalizados.
+ Para criar modelos de predição numérica, predição de 2 categorias ou de predição de mais de 3 categorias, consulte [Criar um modelo personalizado de predição numérica ou categórica](#canvas-build-model-numeric-categorical).
+ Para criar modelos de predição de imagem com rótulo único, consulte [Criar um modelo personalizado de predição de imagem](#canvas-build-model-image).
+ Para criar modelos de predição de texto de várias categorias, consulte [Criar um modelo personalizado de predição de texto](#canvas-build-model-text).
+ Para criar modelos de previsão de séries temporais, consulte [Crie um modelo de previsão de séries temporais](#canvas-build-model-forecasting).

**nota**  
Se você encontrar um erro durante a análise pós-criação que solicita que você aumente sua cota para instâncias `ml.m5.2xlarge`, consulte [Solicitar um aumento de cota](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-requesting-quota-increases.html).

## Criar um modelo personalizado de predição numérica ou categórica
<a name="canvas-build-model-numeric-categorical"></a>

Os modelos de predição numérica e categórica são compatíveis com as **Criações rápidas** e as **Criações padrão**.

Para criar um modelo de predição numérica ou categórica, use o seguinte procedimento:

1. Abra o aplicativo SageMaker Canvas.

1. No painel de navegação à esquerda, selecione **Meus modelos**.

1. Escolha **Novo modelo**.

1. Na caixa de diálogo **Criar novo modelo**, faça o seguinte:

   1. Insira um nome no campo **Nome do modelo**.

   1. Selecione o tipo de problema de **análise preditiva**.

   1. Escolha **Criar**.

1. Em **Selecionar conjunto de dados**, selecione seu conjunto de dados na lista de conjuntos de dados. Se você ainda não importou seus dados, escolha **Importar** para ser direcionado pelo fluxo de trabalho de importação de dados.

1. Quando estiver pronto para começar a criar seu modelo, escolha **Selecionar conjunto de dados**.

1. Na guia **Criar**, na lista suspensa da **Coluna de destino**, selecione o destino do modelo que você gostaria de prever.

1. Para o **Tipo de modelo**, o Canvas detecta automaticamente o tipo de problema para você. Se você quiser alterar o tipo ou definir configurações avançadas do modelo, escolha **Configurar modelo**.

   Quando a caixa de diálogo **Configurar modelo** abrir, faça o seguinte:

   1. Para **Tipo de modelo**, escolha o tipo de modelo que deseja criar.

   1. Depois de escolher o tipo de modelo, há **configurações avançadas** adicionais. Para obter mais informações sobre configurações da hora do dia, consulte [Configurações avançadas de construção de modelos](canvas-advanced-settings.md). Para configurar as configurações avançadas, faça o seguinte:

      1. No menu suspenso **Métrica objetiva**, selecione a métrica que você deseja que o Canvas otimize ao criar seu modelo. Se você não selecionar uma métrica, o Canvas escolherá uma para você por padrão. Para obter descrições das métricas disponíveis, consulte [Referência de métricas](canvas-metrics.md).

      1. Para o **método de treinamento**, escolha o modo **Auto**, **Conjunto** ou **Otimização de hiperparâmetros (HPO)**.

      1. Em **Algoritmos**, selecione os algoritmos que você deseja incluir para criar candidatos a modelos.

      1. Em **Divisão de dados**, especifique em porcentagens como você deseja dividir seus dados entre o **conjunto de treinamento** e o **conjunto de validação**. O conjunto de treinamento é usado para criar o modelo, enquanto o conjunto de validação é usado para testar a precisão dos candidatos a modelos.

      1. Para **candidatos máximos e runtime**, faça o seguinte:

         1. Defina o valor **máximo de candidatos** ou o número máximo de candidatos a modelos que o Canvas pode gerar. Observe que o **número máximo de candidatos** está disponível apenas no modo HPO.

         1. Defina os valores de hora e minuto para o tempo **runtime do trabalho máximo** ou a quantidade máxima de tempo que o Canvas pode gastar construindo seu modelo. Após o tempo máximo, o Canvas para de construir e seleciona o melhor candidato a modelo.

   1. Depois de definir as configurações avançadas, escolha **Salvar**.

1. Marque ou desmarque colunas em seus dados para incluí-las ou eliminá-las da sua criação.
**nota**  
Se você fizer predições em lote com seu modelo após a criação, o Canvas adicionará colunas descartadas aos resultados da predição. No entanto, o Canvas não adicionará as colunas eliminadas às suas predições em lote para modelos de séries temporais.

1. (Opcional) Use as ferramentas de visualização e analytics que o Canvas fornece para visualizar seus dados e determinar quais atributos você deseja incluir em seu modelo. Para obter mais informações, consulte [Explorar e analisar seus dados](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-explore-data.html).

1. (Opcional) Use transformações de dados para limpar, transformar e preparar seus dados para a criação de modelos. Para obter mais informações, consulte [Preparar seus dados com transformações avançadas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-prepare-data.html). Você pode visualizar e remover suas transformações escolhendo **Fórmula de modelo** para abrir o painel lateral **Fórmula de modelo**.

1. (Opcional) Para atributos adicionais, como visualizar a precisão do seu modelo, validar seu conjunto de dados e alterar o tamanho da amostra aleatória que o Canvas coleta do seu conjunto de dados, consulte [Visualizar seu modelo](canvas-preview-model.md).

1. Depois de analisar seus dados e fazer qualquer alteração em seu conjunto de dados, escolha **Criação rápida** ou **Criação padrão** para começar a criar seu modelo. A captura de tela a seguir mostra a página de **Criação** e as opções de **Criação rápida** e **Criação padrão**.  
![\[A página de Criação de um modelo de 2 categorias mostrando as opções de Criação rápida e Criação padrão.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/build-page-tabular-quick-standard-options.png)

Depois que seu modelo começar a ser criado, você poderá sair da página. Quando o modelo aparecer como **Pronto** na página **Meus modelos**, ele estará pronto para análise e predições.

## Criar um modelo personalizado de predição de imagem
<a name="canvas-build-model-image"></a>

Os modelos de predição de imagem de rótulo único são compatíveis com as **Criações rápidas** e as **Criações padrão**.

Para criar um modelo de predição de imagem de rótulo único, use o seguinte procedimento:

1. Abra o aplicativo SageMaker Canvas.

1. No painel de navegação à esquerda, selecione **Meus modelos**.

1. Escolha **Novo modelo**.

1. Na caixa de diálogo **Criar novo modelo**, faça o seguinte:

   1. Insira um nome no campo **Nome do modelo**.

   1. Selecione o tipo de problema **de análise de imagem**.

   1. Escolha **Criar**.

1. Em **Selecionar conjunto de dados**, selecione seu conjunto de dados na lista de conjuntos de dados. Se você ainda não importou seus dados, escolha **Importar** para ser direcionado pelo fluxo de trabalho de importação de dados.

1. Quando estiver pronto para começar a criar seu modelo, escolha **Selecionar conjunto de dados**.

1. Na guia **Criar**, é possível ver a **Distribuição de rótulos** para as imagens em seu conjunto de dados. O **Tipo de modelo** está definido como **Predição de imagem de rótulo único**.

1. Nessa página, você pode visualizar suas imagens e editar o conjunto de dados. Se você tiver alguma imagem sem rótulo, escolha **Editar conjunto de dados** e [Atribuir rótulos a imagens não rotuladas](canvas-edit-image.md#canvas-edit-image-assign). Você também pode realizar outras tarefas junto com [Editar um conjunto de dados de imagem](canvas-edit-image.md), como renomear rótulos e adicionar imagens ao conjunto de dados.

1. Depois de analisar seus dados e fazer qualquer alteração em seu conjunto de dados, escolha **Criação rápida** ou **Criação padrão** para começar a criar seu modelo. A captura de tela a seguir mostra a página de **Criação** de um modelo de predição de imagem que está pronto para ser criado.  
![\[Página de Criação de um modelo de predição de imagem de rótulo único.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/build-page-image-model.png)

Depois que seu modelo começar a ser criado, você poderá sair da página. Quando o modelo aparecer como **Pronto** na página **Meus modelos**, ele estará pronto para análise e predições.

## Criar um modelo personalizado de predição de texto
<a name="canvas-build-model-text"></a>

Os modelos de predição numérica e de várias categorias são compatíveis com as **Criações rápidas** e as **Criações padrão**.

Para criar um modelo de predição de texto, use o seguinte procedimento:

1. Abra o aplicativo SageMaker Canvas.

1. No painel de navegação à esquerda, selecione **Meus modelos**.

1. Escolha **Novo modelo**.

1. Na caixa de diálogo **Criar novo modelo**, faça o seguinte:

   1. Insira um nome no campo **Nome do modelo**.

   1. Selecione o tipo de problema de **Análise de texto**.

   1. Escolha **Criar**.

1. Em **Selecionar conjunto de dados**, selecione seu conjunto de dados na lista de conjuntos de dados. Se você ainda não importou seus dados, escolha **Importar** para ser direcionado pelo fluxo de trabalho de importação de dados.

1. Quando estiver pronto para começar a criar seu modelo, escolha **Selecionar conjunto de dados**.

1. Na guia **Criar**, na lista suspensa da **Coluna de destino**, selecione o destino do modelo que você gostaria de prever. A coluna de destino deve ter um tipo de dados binário ou categórico e deve haver pelo menos 25 entradas (ou linhas de dados) para cada rótulo exclusivo na coluna de destino.

1. Em **Tipo de modelo**, confirme se o tipo de modelo está automaticamente definido como **Previsão de texto de várias categorias**.

1. Para a coluna de treinamento, selecione sua coluna de origem de dados de texto. Essa deve ser a coluna que contém o texto que você deseja analisar.

1. Escolha **Criação rápida** ou **Criação padrão** para começar a criar seu modelo. A captura de tela a seguir mostra a página de **Criação** de um modelo de predição de texto que está pronto para ser criado.  
![\[Página de Criação para um modelo de predição de texto de várias categorias.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/build-page-text-model.png)

Depois que seu modelo começar a ser criado, você poderá sair da página. Quando o modelo aparecer como **Pronto** na página **Meus modelos**, ele estará pronto para análise e predições.

## Crie um modelo de previsão de séries temporais
<a name="canvas-build-model-forecasting"></a>

Os modelos de previsão de séries temporais oferecem apoio tanto para **compilações rápidas** quanto para **compilações padrão**.

Use o procedimento a seguir para fazer uma previsão de séries temporais.

1. Abra o aplicativo SageMaker Canvas.

1. No painel de navegação à esquerda, selecione **Meus modelos**.

1. Escolha **Novo modelo**.

1. Na caixa de diálogo **Criar novo modelo**, faça o seguinte:

   1. Insira um nome no campo **Nome do modelo**.

   1. Selecione o tipo de problema **de previsão de séries temporais**.

   1. Escolha **Criar**.

1. Em **Selecionar conjunto de dados**, selecione seu conjunto de dados na lista de conjuntos de dados. Se você ainda não importou seus dados, escolha **Importar** para ser direcionado pelo fluxo de trabalho de importação de dados.

1. Quando estiver pronto para começar a criar seu modelo, escolha **Selecionar conjunto de dados**.

1. Na guia **Criar**, na lista suspensa da **Coluna de destino**, selecione o destino do modelo que você gostaria de prever.

1. Na seção **Tipo de modelo**, escolha **Configurar modelo**.

1. A caixa **Configurar modelo** é aberta. Para a seção **Configuração de séries temporais**, preencha os seguintes campos:

   1. Para a **coluna ID do item**, escolha uma coluna em seu conjunto de dados que identifique cada linha de forma exclusiva. A coluna deve ter o tipo de dados `Text`.

   1. (Opcional) Em **Coluna de grupo**, escolha uma ou mais colunas categóricas (com o tipo de dados `Text`) que você deseja usar para agrupar seus valores de predição.

   1. Em **Coluna de carimbo de data e hora**, selecione a coluna com carimbos de data e hora (no formato de data e hora). Para obter mais informações sobre os formatos de data/hora aceitos, consulte[Previsões de séries temporais no Amazon Canvas SageMaker](canvas-time-series.md).

   1. No campo **Duração da previsão**, insira o período de tempo para o qual você deseja prever valores. O Canvas detecta automaticamente as unidades de tempo em seus dados.

   1. (Opcional) Ative a opção **Usar agenda de feriados** para selecionar uma agenda de feriados de vários países e tornar suas previsões com dados de feriados mais precisas.

1. Na caixa **Configurar modelo**, há configurações adicionais na seção **Avançado**. Para obter mais informações sobre configurações da hora do dia, consulte [Configurações avançadas de construção de modelos](canvas-advanced-settings.md). Para configurar as configurações **avançadas**, faça o seguinte:

   1. No menu suspenso **Métrica objetiva**, selecione a métrica que você deseja que o Canvas otimize ao criar seu modelo. Se você não selecionar uma métrica, o Canvas escolherá uma para você por padrão. Para obter descrições das métricas disponíveis, consulte [Referência de métricas](canvas-metrics.md).

   1. Se você estiver executando uma compilação padrão, verá a seção **Algoritmos**. Esta seção é para selecionar os algoritmos de previsão de séries temporais que você gostaria de usar para criar seu modelo. Você pode selecionar um subconjunto dos algoritmos disponíveis ou selecionar todos eles se não tiver certeza de quais deles tentar.

      Quando você executa sua compilação padrão, o Canvas cria um modelo de conjunto que combina todos os algoritmos para otimizar a precisão da predição.
**nota**  
Se você estiver executando uma compilação rápida, o Canvas usa um único algoritmo de aprendizado baseado em árvore para treinar seu modelo, e você não precisa selecionar nenhum algoritmo.

   1. Para **quantis de previsão**, insira até 5 valores de quantil separados por vírgula para especificar os limites superior e inferior da sua previsão.

   1. Depois de definir as configurações **avançadas**, escolha **Salvar**.

1. Marque ou desmarque colunas em seus dados para incluí-las ou eliminá-las da sua criação.
**nota**  
Se você fizer predições em lote com seu modelo após a criação, o Canvas adicionará colunas descartadas aos resultados da predição. No entanto, o Canvas não adicionará as colunas eliminadas às suas predições em lote para modelos de séries temporais.

1. (Opcional) Use as ferramentas de visualização e analytics que o Canvas fornece para visualizar seus dados e determinar quais atributos você deseja incluir em seu modelo. Para obter mais informações, consulte [Explorar e analisar seus dados](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-explore-data.html).

1. (Opcional) Use transformações de dados para limpar, transformar e preparar seus dados para a criação de modelos. Para obter mais informações, consulte [Preparar seus dados com transformações avançadas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-prepare-data.html). Você pode visualizar e remover suas transformações escolhendo **Fórmula de modelo** para abrir o painel lateral **Fórmula de modelo**.

1. (Opcional) Para atributos adicionais, como visualizar a precisão do seu modelo, validar seu conjunto de dados e alterar o tamanho da amostra aleatória que o Canvas coleta do seu conjunto de dados, consulte [Visualizar seu modelo](canvas-preview-model.md).

1. Depois de analisar seus dados e fazer qualquer alteração em seu conjunto de dados, escolha **Criação rápida** ou **Criação padrão** para começar a criar seu modelo.

Depois que seu modelo começar a ser criado, você poderá sair da página. Quando o modelo aparecer como **Pronto** na página **Meus modelos**, ele estará pronto para análise e predições.

# Configurações avançadas de construção de modelos
<a name="canvas-advanced-settings"></a>

O Amazon SageMaker Canvas oferece suporte a várias configurações avançadas que você pode configurar ao criar um modelo. A página a seguir lista todas as configurações avançadas junto com informações adicionais sobre suas opções e configurações.

**nota**  
Atualmente, as configurações avançadas a seguir são compatíveis somente com tipos de modelo de previsão numéricos, categóricos e de séries temporais.

## Modelos de predição numérica e categórica
<a name="canvas-advanced-settings-predictive"></a>

O Canvas é compatível com as seguintes configurações avançadas para tipos de modelos de predição numéricos e categóricos:

### Métrica objetiva
<a name="canvas-advanced-settings-predictive-obj-metric"></a>

A métrica objetiva é a métrica que você deseja que o Canvas otimize ao criar seu modelo. Se você não selecionar uma métrica, o Canvas escolherá uma para você por padrão. Para obter descrições das métricas disponíveis, consulte [Referência de métricas](canvas-metrics.md).

### modo de treinamento
<a name="canvas-advanced-settings-predictive-method"></a>

O Canvas pode selecionar automaticamente o método de treinamento com base no tamanho do conjunto de dados, ou você pode selecioná-lo manualmente. Os seguintes métodos de treinamento estão disponíveis para você escolher:
+ **Ensembling** — A SageMaker IA aproveita a AutoGluon biblioteca para treinar vários modelos básicos. Para encontrar a melhor combinação para seu conjunto de dados, o modo ensemble executa 5 a 10 ensaios com diferentes configurações de modelo e meta-parâmetros. Em seguida, esses modelos são combinados usando um método de empilhamento de conjunto para criar um modelo preditivo ideal. Para obter uma lista de algoritmos compatíveis com o modo de agrupamento para dados tabulares, consulte a seção [Algoritmos](#canvas-advanced-settings-predictive-algos) a seguir.
+ **Otimização de hiperparâmetros (HPO)** — A SageMaker IA encontra a melhor versão de um modelo ajustando hiperparâmetros usando otimização bayesiana ou otimização multifidelidade enquanto executa trabalhos de treinamento em seu conjunto de dados. O modo HPO seleciona os algoritmos mais relevantes para seu conjunto de dados e seleciona a melhor variedade de hiperparâmetros para ajustar seus modelos. Para ajustar seus modelos, o modo HPO executa até 100 testes (padrão) para encontrar as configurações ideais de hiperparâmetros dentro da faixa selecionada. Se o tamanho do seu conjunto de dados for menor que 100 MB, a SageMaker IA usa a otimização bayesiana. SageMaker A IA escolhe a otimização de multifidelidade se seu conjunto de dados for maior que 100 MB.

  Para obter uma lista de algoritmos compatíveis com o modo HPO para dados tabulares, consulte a seção[Algoritmos](#canvas-advanced-settings-predictive-algos) a seguir.
+ **Automático** — A SageMaker IA escolhe automaticamente o modo de agrupamento ou o modo HPO com base no tamanho do seu conjunto de dados. Se seu conjunto de dados for maior que 100 MB, a SageMaker IA escolherá o modo HPO. Caso contrário, ele escolhe o modo de agrupamento.

### Algoritmos
<a name="canvas-advanced-settings-predictive-algos"></a>

No **combinação de modelos**, o Canvas oferece apoio aos seguintes tipos de algoritmos de machine learning:
+ [LightGBM](https://docs.aws.amazon.com/sagemaker/latest/dg/lightgbm.html): Uma estrutura otimizada que usa algoritmos baseados em árvore com aumento de gradiente. Esse algoritmo usa árvores que crescem em largura, em vez de profundidade, e é altamente otimizado para velocidade.
+ [CatBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/catboost.html)— Uma estrutura que usa algoritmos baseados em árvore com aumento de gradiente. Otimizado para lidar com variáveis categóricas.
+ [XGBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html)— Uma estrutura que usa algoritmos baseados em árvore com aumento de gradiente que cresce em profundidade, em vez de amplitude.
+ [Random Forest](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html): Um algoritmo baseado em árvore que usa várias árvores de decisão em subamostras aleatórias dos dados com substituição. As árvores são divididas em nós ideais em cada nível. As decisões de cada árvore são calculadas em conjunto para evitar ajustes excessivos e melhorar as predições.
+ [Árvores extras](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.ExtraTreesClassifier.html#sklearn.ensemble.ExtraTreesClassifier): Um algoritmo baseado em árvore que usa várias árvores de decisão em todo o conjunto de dados. As árvores são divididas aleatoriamente em cada nível. As decisões de cada árvore são calculadas para evitar ajustes excessivos e melhorar as predições. Árvores extras adicionam um grau de randomização em comparação com o algoritmo de floresta aleatória.
+ [Modelos lineares](https://scikit-learn.org/stable/modules/classes.html#module-sklearn.linear_model): Uma estrutura que usa uma equação linear para modelar a relação entre duas variáveis nos dados observados.
+ Tocha de rede neural: Um modelo de rede neural implementado usando [PyTorch](https://pytorch.org/).
+ Rede neural fast.ai: Um modelo de rede neural implementado usando [fast.ai](https://www.fast.ai/).

No **modo HPO**, o Canvas oferece apoio aos seguintes tipos de algoritmos de machine learning:
+ [XGBoost](https://docs.aws.amazon.com/sagemaker/latest/dg/xgboost.html)— Um algoritmo de aprendizado supervisionado que tenta prever com precisão uma variável alvo combinando um conjunto de estimativas de um conjunto de modelos mais simples e mais fracos.
+ Algoritmo de aprendizado profundo: Um perceptron multicamada (MLP) e uma rede neural artificial de feedback. Esse algoritmo pode lidar com dados que não são linearmente separáveis.

### Dividir dados
<a name="canvas-advanced-settings-predictive-split"></a>

Você tem a opção de especificar como deseja dividir seu conjunto de dados entre o conjunto de treinamento (a parte do conjunto de dados usada para criar o modelo) e o conjunto de validação (a parte do conjunto de dados usada para verificar a precisão do modelo). Por exemplo, uma taxa de divisão comum é 80% de treinamento e 20% de validação, em que 80% dos seus dados são usados para criar o modelo, enquanto 20% são salvos para medir o desempenho do modelo. Se você não especificar uma proporção personalizada, o Canvas dividirá seu conjunto de dados automaticamente.

### Máximo de candidatos
<a name="canvas-advanced-settings-predictive-candidates"></a>

**nota**  
Este atributo só está disponível no modo de treinamento HPO.

Você pode especificar o número máximo de candidatos a modelos que o Canvas gera ao construir seu modelo. Recomendamos usar o número padrão de candidatos, que é 100, para criar modelos mais precisos. O número máximo de pilhas que você pode especificar é 250. Diminuir o número de candidatos a modelos pode afetar a precisão do seu modelo.

### Runtime do trabalho máximo
<a name="canvas-advanced-settings-predictive-runtime"></a>

Você pode especificar o runtime máximo de trabalho ou a quantidade máxima de tempo que o Canvas gasta construindo seu modelo. Após o limite de tempo, o Canvas interrompe a compilação e seleciona o melhor modelo candidato.

O tempo máximo que você pode especificar é 720 horas. É altamente recomendável que você mantenha o runtime máximo de trabalho superior a 30 minutos para garantir que o Canvas tenha tempo suficiente para gerar candidatos a modelos e concluir a construção do seu modelo.

## Configurações avançadas do modelo de previsão de séries temporais
<a name="canvas-advanced-settings-time-series"></a>

Para modelos de previsão de séries temporais, o Canvas é compatível com a métrica Objetivo, que está listada na seção anterior.

Os modelos de previsão de séries temporais também oferecem apoio à seguinte configuração avançada:

### Seleção de algoritmos
<a name="canvas-advanced-settings-time-series-algos"></a>

Quando você cria um modelo de previsão de séries temporais, o Canvas usa um *conjunto* (ou uma combinação) de algoritmos estatísticos e de machine learning para fornecer previsões de séries temporais altamente precisas. Por padrão, o Canvas seleciona a combinação ideal de todos os algoritmos disponíveis com base na série temporal em seu conjunto de dados. No entanto, você tem a opção de especificar um ou mais algoritmos para usar em seu modelo de previsão. Nesse caso, o Canvas determina a melhor combinação usando somente os algoritmos selecionados. Se você não tiver certeza sobre qual algoritmo selecionar para treinar seu modelo, recomendamos que escolha todos os algoritmos disponíveis.

**nota**  
A seleção de algoritmos só é compatível com compilações padrão. Se você não selecionar nenhum algoritmo nas configurações avançadas, por padrão, a SageMaker IA executa uma criação rápida e treina candidatos a modelo usando um único algoritmo de aprendizado baseado em árvore. Para obter mais informações sobre a diferença entre as compilações rápidas e padrão, consulte. [Como os modelos personalizados funcionam](canvas-build-model.md)

O Canvas é compatível com os seguintes algoritmos de previsão de séries temporais:
+ [Média móvel integrada autorregressiva (ARIMA)](https://en.wikipedia.org/wiki/Autoregressive_integrated_moving_average): Um modelo estocástico simples de série temporal que usa análise estatística para interpretar os dados e fazer predições futuras. Esse algoritmo é útil para conjuntos de dados simples com menos de 100 séries temporais.
+ [Rede Neural Convolucional: Regressão Quantílica (CNN-QR)](https://docs.aws.amazon.com/forecast/latest/dg/aws-forecast-algo-cnnqr.html): Um algoritmo de aprendizado supervisionado e proprietário que treina um modelo global de uma grande coleção de séries temporais e usa um decodificador quantílico para fazer predições. O CNN-QR funciona melhor com grandes conjuntos de dados contendo centenas de séries temporais.
+ [DeepAr\$1](https://docs.aws.amazon.com/forecast/latest/dg/aws-forecast-recipe-deeparplus.html) — Um algoritmo de aprendizado supervisionado proprietário para prever séries temporais escalares usando redes neurais recorrentes (RNNs) para treinar um único modelo em conjunto em todas as séries temporais. O DeepAR\$1 funciona melhor com grandes conjuntos de dados contendo centenas de séries temporais de atributos.
+ [Séries Temporais Não Paramétricas (NPTS)](https://docs.aws.amazon.com/forecast/latest/dg/aws-forecast-recipe-npts.html): Um previsor de linha de base probabilístico e escalável que prevê a distribuição de um valor futuro de uma determinada série temporal por amostragem de observações passadas. O NPTS é útil ao trabalhar com séries temporais esparsas ou intermitentes (por exemplo, prever a demanda de itens individuais em que a série temporal tem muitos 0s ou contagens baixas).
+ [Suavização exponencial (ETS)](https://en.wikipedia.org/wiki/Exponential_smoothing): Um método de previsão que produz previsões que são médias ponderadas de observações passadas em que os pesos das observações mais antigas diminuem exponencialmente. O algoritmo é especialmente útil para conjuntos de dados simples com menos de 100 séries temporais e conjuntos de dados com padrões de sazonalidade.
+ [Profeta](https://facebook.github.io/prophet/): Um modelo de regressão aditiva que funciona melhor com séries temporais que tenham fortes efeitos sazonais e várias temporadas de dados históricos. O algoritmo é útil para conjuntos de dados com tendências de crescimento não lineares que se aproximam de um limite.

### Quantis de previsão
<a name="canvas-advanced-settings-time-series-quantiles"></a>

Para previsão de séries temporais, a SageMaker IA treina 6 candidatos modelo com sua série temporal alvo. Em seguida, a SageMaker IA combina esses modelos usando um método de conjunto de empilhamento para criar um modelo de previsão ideal para uma determinada métrica objetiva. Cada modelo de previsão gera uma previsão probabilística produzindo previsões em quantis entre P1 e P99. Esses quantis são usados para contabilizar a incerteza da previsão. Por padrão, as previsões serão geradas para 0,1 (`p10`), 0,5 (`p50`) e 0,9 (`p90`). Você pode escolher especificar até cinco de seus próprios quantis de 0,01 (`p1`) a 0,99 (`p99`), por incrementos de 0,01 ou mais.

# Editar um conjunto de dados de imagem
<a name="canvas-edit-image"></a>

No Amazon SageMaker Canvas, você pode editar seus conjuntos de dados de imagens e revisar suas etiquetas antes de criar um modelo. É possível realizar tarefas como atribuir rótulos a imagens não rotuladas ou adicionar mais imagens ao conjunto de dados. Todas essas tarefas podem ser realizadas na aplicação Canvas, que fornece um único local para modificar seu conjunto de dados e criar um modelo.

**nota**  
Antes de criar um modelo, você deve atribuir rótulos a todas as imagens no seu conjunto de dados. Além disso, você deve ter pelo menos 25 imagens por rótulo e no mínimo dois rótulos. Para obter mais informações sobre como atribuir rótulos, consulte a seção desta página chamada **Atribuir rótulos a imagens não rotuladas**. Se você não conseguir determinar um rótulo para uma imagem, exclua-a do seu conjunto de dados. Para obter mais informações sobre a exclusão de imagens, consulte a seção da página [Adicionar ou excluir imagens do conjunto de dados](#canvas-edit-image-add-delete).

Para começar a editar seu conjunto de dados de imagem, você deve estar na guia **Criar** ao criar seu modelo de predição de imagem de rótulo único.

Uma nova página é aberta, mostrando as imagens em seu conjunto de dados junto com seus rótulos. Esta página categoriza seu conjunto de dados de imagens em **Total de imagens**, **Imagens rotuladas** e **Imagens não rotuladas**. Você também pode revisar o **guia de preparação do conjunto de dados** para consultar as melhores práticas na criação de um modelo de predição de imagem mais preciso.

A captura de tela a seguir mostra a página de edição do seu conjunto de dados de imagens.

![\[Captura de tela da página de gerenciamento do conjunto de dados de imagens no Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/dataset-management-page.png)


Nesta página, você pode executar as seguintes ações:

## Visualizar as propriedades de cada imagem (rótulo, tamanho, dimensões)
<a name="canvas-edit-image-view"></a>

Para visualizar uma imagem individual, você pode procurá-la pelo nome do arquivo na barra de pesquisa. Em seguida, escolha a imagem para abrir a visualização completa. Você pode visualizar as propriedades da imagem e reatribuir o rótulo da imagem. Escolha **Salvar** ao terminar de visualizar a imagem.

## Adicionar, renomear ou excluir rótulos no conjunto de dados
<a name="canvas-edit-image-labels"></a>

O Canvas lista os rótulos do conjunto de dados no painel de navegação à esquerda. Você pode adicionar novos rótulos ao conjunto de dados inserindo um rótulo no campo de texto **Adicionar rótulo**.

Para renomear ou excluir um rótulo do seu conjunto de dados, escolha o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) ao lado do rótulo e selecione **Renomear** ou **Excluir**. Se você renomear o rótulo, poderá inserir o novo nome do rótulo e escolher **Confirmar**. Se você excluir o rótulo, ele será removido de todas as imagens em seu conjunto de dados que tenham esse rótulo. Todas as imagens com esse rótulo se tornarão não rotuladas.

## Atribuir rótulos a imagens não rotuladas
<a name="canvas-edit-image-assign"></a>

Para visualizar as imagens não rotuladas em seu conjunto de dados, escolha **Não rotulada** no painel de navegação à esquerda. Selecione cada imagem, abra o rótulo intitulado **Não rotulada** e selecione um rótulo a ser atribuído à imagem na lista suspensa. Você também pode selecionar mais de uma imagem e realizar essa ação, e todas as imagens selecionadas receberão o rótulo que você escolheu.

## Reatribuir rótulos às imagens
<a name="canvas-edit-image-reassign"></a>

Você pode reatribuir rótulos às imagens selecionando a imagem (ou várias imagens ao mesmo tempo) e abrindo a lista suspensa intitulada com o rótulo atual. Selecione o rótulo desejado e a imagem ou imagens serão atualizadas com o novo rótulo.

## Classificar suas imagens por rótulo
<a name="canvas-edit-image-sort"></a>

Você pode visualizar todas as imagens de um determinado rótulo escolhendo o rótulo no painel de navegação à esquerda.

## Adicionar ou excluir imagens do conjunto de dados
<a name="canvas-edit-image-add-delete"></a>

Você pode adicionar mais imagens ao seu conjunto de dados escolhendo **Adicionar imagens** no painel de navegação superior. Você será direcionado para o fluxo de trabalho para importar mais imagens. As imagens que você importar serão adicionadas ao seu conjunto de dados existente.

Você pode excluir imagens do seu conjunto de dados selecionando-as e escolhendo **Excluir** no painel de navegação superior.

**nota**  
Depois de fazer qualquer alteração no seu conjunto de dados, escolha **Salvar conjunto de dados** para garantir que você não perca suas alterações.

# Exploração e análise de dados
<a name="canvas-explore-data"></a>

**nota**  
Você só pode usar visualizações e análises do SageMaker Canvas para modelos criados em conjuntos de dados tabulares. Modelos de predição de texto de várias categorias também são excluídos.

No Amazon SageMaker Canvas, você pode explorar as variáveis em seu conjunto de dados usando visualizações e análises e criar visualizações e análises no aplicativo. Você pode usar essas explorações para descobrir relações entre suas variáveis antes de criar seu modelo.

Para obter mais informações sobre técnicas de visualização no Canvas, consulte [Explorar dados usando técnicas de visualização](canvas-explore-data-visualization.md).

Para obter mais informações sobre analytics no Canvas, consulte [Explorar seus dados usando a analytics](canvas-explore-data-analytics.md).

# Explorar dados usando técnicas de visualização
<a name="canvas-explore-data-visualization"></a>

**nota**  
Você só pode usar visualizações do SageMaker Canvas para modelos criados em conjuntos de dados tabulares. Modelos de predição de texto de várias categorias também são excluídos.

Com o Amazon SageMaker Canvas, você pode explorar e visualizar seus dados para obter insights avançados sobre seus dados antes de criar seus modelos de ML. Você pode visualizar usando gráficos de dispersão, gráficos de barras e gráficos de caixa, que podem ajudá-lo a entender seus dados e descobrir as relações entre os atributos que podem afetar a precisão do modelo.

Na guia **Criar** do aplicativo SageMaker Canvas, escolha **Visualizador de dados** para começar a criar suas visualizações.

Você pode alterar o tamanho da amostra de visualização para ajustar o tamanho da amostra aleatória retirada do seu conjunto de dados. Um tamanho de amostra muito grande pode afetar o desempenho das suas visualizações de dados, por isso recomendamos que você escolha um tamanho de amostra adequado. Para alterar o tamanho da amostra, use o procedimento a seguir.

1. Escolha **Amostra de visualização**.

1. Use o controle deslizante para selecionar o tamanho de amostra desejado.

1. Escolha **Atualizar** para confirmar a alteração no tamanho da amostra.

**nota**  
Certas técnicas de visualização exigem colunas de um tipo de dados específico. Por exemplo, você só pode usar colunas numéricas para os eixos x e y dos gráficos de dispersão.

## Gráfico de dispersão
<a name="canvas-explore-data-scatterplot"></a>

Para criar um gráfico de dispersão com seu conjunto de dados, escolha **Gráfico de dispersão** no painel de **Visualização**. Em seguida, você pode escolher os atributos que deseja traçar nos eixos x e y na seção **Colunas**. Você pode arrastar e soltar as colunas nos eixos ou, depois que um eixo for solto, você pode escolher uma coluna na lista de colunas compatíveis.

Você pode usar **Colorir por** para colorir os pontos de dados no gráfico com um terceiro atributo. Você também pode usar **Agrupar por** para agrupar os dados em gráficos separados com base em um quarto atributo.

A imagem a seguir mostra um gráfico de dispersão que usa **Colorir por** e **Agrupar por**. Neste exemplo, cada ponto de dados é colorido pelo atributo `MaritalStatus`, e o agrupamento pelo atributo `Department` resulta em um gráfico de dispersão para os pontos de dados de cada departamento.

![\[Captura de tela de um gráfico de dispersão na visualização do Visualizador de dados da aplicação Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-eda-scatter-plot.png)


## Gráfico de barras
<a name="canvas-explore-data-barchart"></a>

Para criar um gráfico de barras com seu conjunto de dados, escolha **Gráfico de barras** no painel de **Visualização**. Em seguida, você pode escolher os atributos que deseja traçar nos eixos x e y na seção **Colunas**. Você pode arrastar e soltar as colunas nos eixos ou, depois que um eixo for solto, você pode escolher uma coluna na lista de colunas compatíveis.

Você pode usar **Agrupar por** para agrupar o gráfico de barras por um terceiro atributo. Você pode usar **Empilhar por** para sombrear verticalmente cada barra com base nos valores exclusivos de um quarto atributo.

A imagem a seguir mostra um gráfico de barras que usa **Agrupar por** e **Empilhar por**. Neste exemplo, o gráfico de barras é agrupado pelo atributo `MaritalStatus` e empilhado pelo atributo `JobLevel`. Para cada `JobRole` no eixo x, há uma barra separada para as categorias exclusivas no atributo `MaritalStatus`, e cada barra é empilhada verticalmente pelo atributo `JobLevel`.

![\[Captura de tela de um gráfico de barras na visualização do Visualizador de dados da aplicação Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-eda-bar-chart.png)


## Gráfico de caixa
<a name="canvas-explore-data-boxplot"></a>

Para criar um gráfico de caixa com seu conjunto de dados, escolha **Gráfico de caixa** no painel de **Visualização**. Em seguida, você pode escolher os atributos que deseja traçar nos eixos x e y na seção **Colunas**. Você pode arrastar e soltar as colunas nos eixos ou, depois que um eixo for solto, você pode escolher uma coluna na lista de colunas compatíveis.

Você pode usar **Agrupar por** para agrupar os gráficos de caixa por um terceiro atributo.

A imagem a seguir mostra um gráfico de caixa que usa **Agrupar por**. Neste exemplo, os eixos x e y mostram `JobLevel` e`JobSatisfaction`, respectivamente, e os gráficos de caixa coloridos são agrupados pelo atributo `Department`.

![\[Captura de tela de um gráfico de caixa na visualização do Visualizador de dados da aplicação Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-eda-box-plot.png)


# Explorar seus dados usando a analytics
<a name="canvas-explore-data-analytics"></a>

**nota**  
Você só pode usar a análise do SageMaker Canvas para modelos criados em conjuntos de dados tabulares. Modelos de predição de texto de várias categorias também são excluídos.

Com a análise no Amazon SageMaker Canvas, você pode explorar seu conjunto de dados e obter informações sobre todas as suas variáveis antes de criar um modelo. Você pode determinar as relações entre os atributos em seu conjunto de dados usando matrizes de correlação. Você pode usar essa técnica para resumir seu conjunto de dados em uma matriz que mostra as correlações entre dois ou mais valores. Isso ajuda você a identificar e visualizar padrões em um determinado conjunto de dados para análise de dados avançada.

A matriz mostra a correlação entre cada atributo como positiva, negativa ou neutra. Você pode incluir atributos que tenham uma alta correlação entre si ao criar seu modelo. Atributos que têm pouca ou nenhuma correlação podem ser irrelevantes para seu modelo, e você pode descartar esses atributos ao criar seu modelo.

Para começar com matrizes de correlação no SageMaker Canvas, consulte a seção a seguir.

## Criar uma matriz de correlação
<a name="canvas-explore-data-analytics-correlation-matrix"></a>

Você pode criar uma matriz de correlação ao se preparar para criar um modelo na guia **Construir** do aplicativo SageMaker Canvas.

Para obter instruções sobre como começar a criar um modelo, consulte [Criar um modelo](canvas-build-model-how-to.md).

Depois de começar a preparar um modelo no aplicativo SageMaker Canvas, faça o seguinte:

1. Na guia **Criar**, escolha **Visualizador de dados**.

1. Em seguida, **Análise**.

1. Escolha **Matriz de correlação**.

Você deve obter uma visualização semelhante à captura de tela a seguir, que mostra até 15 colunas do conjunto de dados organizadas em uma matriz de correlação.

![\[Captura de tela de uma matriz de correlação na aplicação Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-correlation-matrix-2.png)


Depois de criar a matriz de correlação, você poderá personalizá-la fazendo o seguinte:

### 1. Escolha suas colunas
<a name="canvas-explore-data-analytics-correlation-matrix-columns"></a>

Em **Colunas**, você pode selecionar as colunas que deseja incluir na matriz. Você pode comparar até 15 colunas do seu conjunto de dados.

**nota**  
Você pode usar tipos de coluna numérica, categórica ou binária para uma matriz de correlação. A matriz de correlação não é compatível com tipos de coluna de dados de data e hora nem de texto.

Para adicionar ou remover colunas da matriz de correlação, marque e desmarque as colunas no painel **Colunas**. Você também pode arrastar e soltar colunas do painel diretamente na matriz. Se seu conjunto de dados tiver muitas colunas, você poderá pesquisar as colunas desejadas na barra de **Pesquisar colunas**.

Para filtrar as colunas por tipo de dados, escolha o menu suspenso e selecione **Tudo**, **Numérico** ou **Categórico**. Selecionar **Tudo** mostra todas as colunas do seu conjunto de dados, enquanto os filtros **Numérico** e **Categórico** mostram apenas as colunas numéricas ou categóricas no seu conjunto de dados. Observe que os tipos de colunas binárias estão incluídos nos filtros numéricos ou categóricos.

Para obter as melhores informações de dados, inclua sua coluna de destino na matriz de correlação. Quando você inclui sua coluna de destino na matriz de correlação, ela aparece como o último atributo na matriz com um símbolo de destino.

### 2. Escolha seu tipo de correlação
<a name="canvas-explore-data-analytics-correlation-matrix-cor-type"></a>

SageMaker O Canvas suporta diferentes *tipos de correlação* ou métodos para calcular a correlação entre suas colunas.

Para alterar o tipo de correlação, use o filtro **Colunas** mencionado na seção anterior para filtrar o tipo de coluna e as colunas desejados. Você deve ver o **Tipo de correlação** no painel lateral. Para comparações numéricas, você tem a opção de selecionar **Pearson** ou **Spearman**. Para comparações categóricas, o tipo de correlação é definido como **MI**. Para comparações categóricas e mistas, o tipo de correlação é definido como **Spearman e MI**.

Para matrizes que comparam somente colunas numéricas, o tipo de correlação é Pearson ou Spearman. A medida Pearson avalia a relação linear entre duas variáveis contínuas. A medida Spearman avalia a relação monotônica entre duas variáveis. Tanto para Pearson quanto para Spearman, a escala de correlação varia de -1 a 1, com cada extremidade da escala indicando uma correlação perfeita (uma relação direta de 1:1) e 0 indicando nenhuma correlação. Você pode selecionar Pearson se seus dados tiverem mais relações lineares (conforme revelado por uma [visualização do gráfico de dispersão](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-explore-data.html#canvas-explore-data-scatterplot)). Se seus dados não forem lineares ou contiverem uma mistura de relações lineares e monotônicas, você pode selecionar Spearman.

Para matrizes que comparam somente colunas categóricas, o tipo de correlação é definido como Classificação de Informações Mútuas (MI). O valor da MI é uma medida da dependência mútua entre duas variáveis aleatórias. A medida da MI está em uma escala de 0 a 1, com 0 indicando nenhuma correlação e 1 indicando uma correlação perfeita.

Para matrizes que comparam uma mistura de colunas numéricas e categóricas, o tipo de correlação **Spearman & MI** é uma combinação dos tipos de correlação Spearman e MI. Para correlações entre duas colunas numéricas, a matriz mostra o valor de Spearman. Para correlações entre uma coluna numérica e categórica ou duas colunas categóricas, a matriz mostra o valor MI.

Por fim, lembre-se de que a correlação não indica necessariamente causalidade. Um valor de correlação forte indica apenas que há um relacionamento entre duas variáveis, mas as variáveis podem não ter um relacionamento causal. Analise cuidadosamente suas colunas de interesse para evitar distorções ao compilar seu modelo.

### 3. Filtrar suas correlações
<a name="canvas-explore-data-analytics-correlation-matrix-filter"></a>

No painel lateral, você pode usar o atributo **Filtrar correlações** para filtrar o intervalo de valores de correlação que você deseja incluir na matriz. Por exemplo, se você quiser filtrar por atributos que têm apenas correlação positiva ou neutra, você pode configurar o **Min** como 0 e o **Max** como 1 (os valores válidos são -1 a 1).

Para comparações de Spearman e Pearson, você pode definir o intervalo de **correlações de filtro** em qualquer ponto entre de -1 a 1, com 0 significando que não há correlação. -1 e 1 significam que as variáveis têm uma forte correlação negativa ou positiva, respectivamente.

Para comparações de MI, o intervalo de correlação vai apenas de 0 a 1, com 0 significando que não há correlação e 1 significando que as variáveis têm uma forte correlação, positiva ou negativa.

Cada atributo tem uma correlação perfeita (1) consigo mesmo. Portanto, você pode notar que a linha superior da matriz de correlação é sempre 1. Se quiser excluir esses valores, você pode usar o filtro para configurar o **Max** menor que 1.

Tenha em mente que, se sua matriz comparar um mix de colunas numéricas e categóricas e usar o tipo de correlação **Spearman & MI**, as correlações *categóricas x numéricas* e *categóricas x categóricas* (que usam a medida MI) estão em uma escala de 0 a 1, enquanto as correlações *numéricas x numéricas* (que usam a medida de Spearman) estão em uma escala de -1 a 1. Revise cuidadosamente suas correlações de interesse para garantir que você conheça o tipo de correlação que está sendo usado para calcular cada valor.

### 4. Escolha o método de visualização
<a name="canvas-explore-data-analytics-correlation-matrix-viz-method"></a>

No painel lateral, você pode usar **Visualizar por** para alterar o método de visualização da matriz. Escolha o método de visualização **Numérico** para mostrar o valor da correlação (Pearson, Spearman ou MI), enquanto a escolha do método de visualização de **Tamanho** exibe a correlação com pontos de tamanhos e cores diferentes. Se você escolher **Tamanho**, poderá passar o mouse sobre um ponto específico na matriz para ver o valor real da correlação.

### 5. Escolha uma paleta de cores
<a name="canvas-explore-data-analytics-correlation-matrix-color"></a>

No painel lateral, você pode usar a **Seleção de cores** para alterar a paleta de cores usada para a escala de correlação negativa para positiva na matriz. Selecione uma das paletas de cores alternativas para alterar as cores usadas na matriz.

# Preparar dados para a criação de modelos
<a name="canvas-prepare-data"></a>

**nota**  
Agora você pode fazer a preparação avançada de dados no SageMaker Canvas com o Data Wrangler, que fornece uma interface de linguagem natural e mais de 300 transformações integradas. Para obter mais informações, consulte [preparação de dados](canvas-data-prep.md).

Seu conjunto de dados de machine learning pode exigir preparação de dados antes de você compilar seu modelo. Talvez você queira limpar seus dados devido a vários problemas, que podem incluir valores ausentes ou valores atípicos, e realizar engenharia de atributos para melhorar a precisão do seu modelo. O Amazon SageMaker Canvas fornece transformações de dados de ML com as quais você pode limpar, transformar e preparar seus dados para a criação de modelos. Você pode usar essas transformações em seus conjuntos de dados sem nenhum código. SageMaker O Canvas adiciona as transformações que você usa à **receita do modelo**, que é um registro da preparação de dados feita em seus dados antes de criar o modelo. Qualquer transformação de dados que você usa apenas modifica os dados de entrada para a compilação do modelo e não modifica sua fonte de dados original.

A pré-visualização do seu conjunto de dados mostra as primeiras 100 linhas do conjunto de dados. Se seu conjunto de dados tiver mais de 20.000 linhas, o Canvas pega uma amostra aleatória de 20.000 linhas e pré-visualiza as primeiras 100 linhas dessa amostra. Você só pode pesquisar e especificar valores das linhas pré-visualizadas e a funcionalidade de filtro somente filtra as linhas pré-visualizadas e não o conjunto de dados inteiro.

As seguintes transformações estão disponíveis no SageMaker Canvas para você preparar seus dados para a construção.

**nota**  
Você só pode usar transformações avançadas para modelos criados em conjuntos de dados tabulares. Modelos de predição de texto de várias categorias também são excluídos.

## Destacar coluna
<a name="canvas-prepare-data-drop"></a>

Você pode excluir uma coluna da construção do seu modelo soltando-a na guia **Construir** do aplicativo SageMaker Canvas. Desmarque a coluna que você deseja descartar e ela não será incluída ao compilar o modelo.

**nota**  
Se você soltar colunas e, em seguida, fizer [previsões em lote](canvas-make-predictions.md) com seu modelo, o SageMaker Canvas adicionará as colunas descartadas de volta ao conjunto de dados de saída disponível para download. No entanto, o SageMaker Canvas não adiciona as colunas descartadas para modelos de séries temporais.

## Filtrar linhas
<a name="canvas-prepare-data-filter"></a>

A funcionalidade de filtro filtra as linhas pré-visualizadas (as primeiras 100 linhas do seu conjunto de dados) de acordo com as condições que você especificar. A filtragem de linhas cria uma pré-visualização temporária dos dados e não afeta a compilação do modelo. Você pode filtrar para visualizar linhas que tenham valores ausentes, contenham valores atípicos ou atendam às condições personalizadas em uma coluna de sua escolha.

### Filtrar linhas por valores ausentes
<a name="canvas-prepare-data-filter-missing"></a>

Valores ausentes são uma ocorrência comum em conjuntos de dados de machine learning. Se você tiver linhas com valores nulos ou vazios em determinadas colunas, talvez queira filtrar e pré-visualizar essas linhas.

Para filtrar os valores ausentes dos dados pré-visualizados, faça o seguinte:

1. Na guia **Criar** do aplicativo SageMaker Canvas, escolha **Filtrar por linhas** (![\[Filter icon in the SageMaker Canvas application.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/filter-icon.png)).

1. Escolha a **Coluna** em que você deseja verificar se há valores ausentes.

1. Para a **Operação**, escolha **Está ausente**.

SageMaker O Canvas filtra as linhas que contêm valores ausentes na **coluna** que você selecionou e fornece uma visualização prévia das linhas filtradas.

![\[Captura de tela do filtro pela operação de valores ausentes no aplicativo SageMaker Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-filter-missing.png)


### Filtrar linhas por valores atípicos
<a name="canvas-prepare-data-filter-outliers"></a>

Valores discrepantes, ou valores raros na distribuição e no alcance de seus dados, podem afetar negativamente a precisão do modelo e levar a tempos de construção mais longos. SageMaker O Canvas permite detectar e filtrar linhas que contêm valores discrepantes em colunas numéricas. Você pode escolher definir valores atípicos com desvios padrão ou com um intervalo personalizado.

Para filtrar valores atípicos em seus dados, faça o seguinte:

1. Na guia **Criar** do aplicativo SageMaker Canvas, escolha **Filtrar por linhas** (![\[Filter icon in the SageMaker Canvas application.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/filter-icon.png)).

1. Escolha a **Coluna** em que você deseja verificar se há valores atípicos.

1. Para a **Operação**, escolha **É valor atípico**.

1. Configure o **Intervalo de valores atípicos** como **Desvio padrão** ou **Intervalo personalizado**.

1. Se você escolher **Desvio padrão**, especifique um valor **SD** (desvio padrão) de 1–3. Se você escolher **Intervalo personalizado**, selecione **Percentil** ou **Número** e, em seguida, especifique os valores **Mínimo** e **Máximo**.

A opção **Desvio padrão** detecta e filtra valores atípicos em colunas numéricas usando a média e o desvio padrão. Você especifica o número de desvios padrão dos quais um valor deve variar da média para ser considerado um valor atípico. Por exemplo, se você especificar `3` para **SD**, um valor deve ter queda maior que 3 desvios padrão da média para ser considerado um valor atípico.

A opção de **Intervalo personalizado** detecta e filtra valores atípicos em colunas numéricas usando valores mínimos e máximos. Use esse método se você conhece seus valores limite que delimitam valores atípicos. Você pode definir o **Tipo** do intervalo como **Percentil** ou **Número**. Se você escolher **Percentil**, os valores **Mínimo** e **Máximo** deverão ser o mínimo e o máximo do intervalo de percentis (0-100) que você deseja permitir. Se você escolher **Número**, os valores **Mínimo** e **Máximo** devem ser os valores numéricos mínimo e máximo que você deseja filtrar nos dados.

![\[Captura de tela da operação de filtragem por valores discrepantes no aplicativo Canvas. SageMaker\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-filter-outlier.png)


### Filtrar linhas por valores personalizados
<a name="canvas-prepare-data-filter-custom"></a>

Você pode filtrar por linhas com valores que atendam às condições personalizadas. Por exemplo, talvez você queira pré-visualizar linhas com um valor de preço maior que 100 antes de removê-las. Com essa funcionalidade, você pode filtrar linhas que excedam o limite definido e pré-visualizar os dados filtrados.

Para usar a funcionalidade de filtro personalizado, faça o seguinte:

1. Na guia **Criar** do aplicativo SageMaker Canvas, escolha **Filtrar por linhas** (![\[Filter icon in the SageMaker Canvas application.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/filter-icon.png)).

1. Escolha a **Coluna** que você deseja verificar.

1. Selecione o tipo de **Operação** que você deseja usar e, em seguida, especifique os valores para a condição selecionada.

Para a **Operação**, escolha uma das opções a seguir. Observe que as operações disponíveis dependem do tipo de dados da coluna que você escolher. Por exemplo, não é possível criar uma operação `is greater than` para uma coluna contendo valores de texto.


| Operation | Tipos de dados compatíveis | Tipo de atributo compatível | Função | 
| --- | --- | --- | --- | 
|  É igual a  |  Numérico, Texto  | Binário, Categóricos |  Filtra as linhas em que o valor na **Coluna** é igual aos valores que você especifica.  | 
|  Não é igual a  |  Numérico, Texto  | Binário, Categóricos |  Filtra linhas em que o valor na **Coluna** não é igual aos valores que você especifica.  | 
|  É menor que  |  Numérico  | N/D |  Filtra linhas em que o valor na **Coluna** é menor que o valor especificado.  | 
|  É menor que ou igual a  |  Numérico  | N/D |  Filtra linhas em que o valor em **Coluna** é menor que ou igual ao valor especificado por você.  | 
|  É maior que  |  Numérico  | N/D |  Filtra as linhas em que o valor na **Coluna** é maior do que o valor especificado por você.  | 
|  É maior ou igual a  |  Numérico  | N/D |  Filtra linhas em que o valor na **Coluna** é maior que ou igual ao valor especificado por você.  | 
|  Está entre  |  Numérico  | N/D |  Filtra linhas em que o valor na **Coluna** está entre ou é igual a dois valores que você especifica.  | 
|  Contém  |  Texto  | Categóricos |  Filtra as linhas em que o valor na **Coluna** contém valores que você especifica.  | 
|  Inicia com  |  Texto  | Categóricos |  Filtra as linhas em que o valor na **Coluna** começa com um valor especificado por você.  | 
|  Termina com  |  Categóricos  | Categóricos |  Filtra as linhas em que o valor na **Coluna** termina com um valor especificado por você.  | 

Depois de definir a operação de filtro, o SageMaker Canvas atualiza a visualização do conjunto de dados para mostrar os dados filtrados.

![\[Captura de tela da operação de filtro por valores personalizados no aplicativo SageMaker Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-filter-custom.png)


## Funções e operadores
<a name="canvas-prepare-data-custom-formula"></a>

Você pode usar funções e operadores matemáticos para explorar e distribuir seus dados. Você pode usar as funções suportadas pelo SageMaker Canvas ou criar sua própria fórmula com seus dados existentes e criar uma nova coluna com o resultado da fórmula. Por exemplo, você pode adicionar os valores correspondentes de duas colunas e salvar o resultado em uma nova coluna.

Você pode agrupar instruções para criar funções mais complexas. Veja a seguir alguns exemplos de funções agrupadas que você pode usar.
+ Para calcular o BMI, você pode usar a função `weight / (height ^ 2)`.
+ Para classificar as idades, você pode usar a função `Case(age < 18, 'child', age < 65, 'adult', 'senior')`.

Você pode especificar funções no estágio de preparação de dados antes de compilar seu modelo. Para usar uma função, faça o seguinte:
+ Na guia **Criar** do aplicativo SageMaker Canvas, escolha **Exibir tudo** e, em seguida, escolha **Fórmula personalizada** para abrir o painel **Fórmula personalizada**.
+ No painel **Fórmula personalizada**, você pode escolher uma **Fórmula** para adicionar à sua **Fórmula Modelo**. Cada fórmula é aplicada a todos os valores nas colunas que você especificar. Para fórmulas que aceitam duas ou mais colunas como argumentos, use colunas com tipos de dados correspondentes; caso contrário, você receberá um erro ou valores `null` na nova coluna. 
+ Depois de especificar uma **fórmula**, adicione um nome de coluna no campo **Nome da nova coluna**. SageMaker O Canvas usa esse nome para a nova coluna que é criada.
+ (Opcional) Escolha **Pré-Visualizar** para ver sua transformação.
+ Para adicionar a função à sua **fórmula modelo**, escolha **Adicionar**.

SageMaker O Canvas salva o resultado da sua função em uma nova coluna usando o nome que você especificou em **Nome da nova coluna**. Você pode visualizar ou remover funções do painel **Fórmula modelo**.

SageMaker O Canvas suporta os seguintes operadores para funções. Você pode usar o formato de texto ou o formato em linha para especificar sua função.


| Operador | Description | Tipos de dados compatíveis | Formato de texto | Formato em linha | 
| --- | --- | --- | --- | --- | 
|  Adicionar  |  Retorna a soma dos valores  |  Numérico  | Add(sales1, sales2) | sales1 \$1 sales2 | 
|  Subtrair  |  Retorna a diferença entre os valores  |  Numérico  | Subtract(sales1, sales2) | sales1 ‐ sales2 | 
|  Multiplicar  |  Retorna o produto dos valores  |  Numérico  | Multiply(sales1, sales2) | sales1 \$1 sales2 | 
|  Dividir  |  Retorna o quociente dos valores  |  Numérico  | Divide(sales1, sales2) | sales1 / sales2 | 
|  Mod  |  Retorna o resultado do operador do módulo (o restante após a divisão dos dois valores)  |  Numérico  | Mod(sales1, sales2) | sales1 % sales2 | 
|  Abs  | Retorna o valor absoluto do valor. |  Numérico  | Abs(sales1) | N/D | 
|  Negar  | Retorna o negativo do valor |  Numérico  | Negar (c1) | -c1 | 
|  Exp  |  Retorna e (número de Euler) elevado à potência do valor  |  Numérico  | Exp(sales1) | N/D | 
|  Log  |  Retorna o logaritmo (base 10) do valor.  |  Numérico  | Log(sales1) | N/D | 
|  Ln  |  Retorna o logaritmo natural (base e) do valor  |  Numérico  | Ln(sales1) | N/D | 
|  Pow  |  Retorna o valor elevado a uma potência  |  Numérico  | Pow(sales1, 2) | vendas1 ^ 2 | 
|  If (Se)  |  Retorna um rótulo verdadeiro ou falso com base em uma condição especificada por você  |  Booleano, numérico, texto  | If(sales1>7000, 'truelabel, 'falselabel') | N/D | 
|  Ou  |  Retorna um valor booleano se um dos valores/condições especificados for verdadeiro ou não  |  Booleano  | Ou (preço integral, desconto) | preço integral \$1\$1 desconto | 
|  E  |  Retorna um valor booleano se dois dos valores/condições especificados são verdadeiros ou não  |  Booleano  | And(sales1,sales2) | sales1 && sales2 | 
|  Não  |  Retorna um valor booleano que é o oposto do valor/condições especificados  |  Booleano  | Not(sales1) | \$1sales1 | 
|  Caso  |  Retorna um valor booleano com base em declarações condicionais (retorna c1 se cond1 for verdadeiro, retorna c2 se cond2 for verdadeiro, senão retorna c3)  |  Booleano, numérico, texto  | Caso (cond1, c1, cond2, c2, c3) | N/D | 
|  Equal  |  Retorna um valor booleano de se dois valores forem iguais  |  Booleano, numérico, texto  | N/D | c1 = c2c1 == c2 | 
|  Not equal  |  Retorna um valor booleano de se dois valores não forem iguais  |  Booleano, numérico, texto  | N/D | c1\$1 = c2 | 
|  Menor que  |  Retorna um valor booleano se c1 é menor que c2  |  Booleano, numérico, texto  | N/D | c1 < c2 | 
|  Maior que  |  Retorna um valor booleano se c1 é maior que c2  |  Booleano, numérico, texto  | N/D | c1 > c2 | 
|  Menor ou igual a  |  Retorna um valor booleano se c1 é menor ou igual a c2  |  Booleano, numérico, texto  | N/D | c1 <= c2 | 
|  Maior ou igual a  |  Retorna um valor booleano se c1 é maior ou igual a c2  |  Booleano, numérico, texto  | N/D | c1 >= c2 | 

SageMaker O Canvas também suporta operadores agregados, que podem realizar operações como calcular a soma de todos os valores ou encontrar o valor mínimo em uma coluna. Você pode usar operadores agregados em combinação com operadores padrão em suas funções. Por exemplo, para calcular a diferença de valores em relação à média, você pode usar a função`Abs(height – avg(height))`. SageMaker O Canvas suporta os seguintes operadores agregados.


| Operador de agregação | Description | Formato | Exemplo | 
| --- | --- | --- | --- | 
|  soma  |  Retorna a soma de todos os valores em uma coluna  | soma | soma (c1) | 
|  mínimo  |  Retorna o valor mínimo de uma coluna  | min | minuto (c2) | 
|  máximo  |  Retorna o valor máximo de uma coluna  | max | max(c3) | 
|  média  |  Retorna o valor médio de uma coluna  | avg | avg(c4) | 
|  std  | Retorna o desvio padrão da amostra de uma coluna | std | std(c1) | 
|  stddev  | Retorna o desvio padrão dos valores em uma coluna | stddev | stddev(c1) | 
|  variância  | Retorna a variância imparcial dos valores em uma coluna | variância | variância (c1) | 
|  approx\$1count\$1distinct  | Retorna o número aproximado de itens distintos em uma coluna | approx\$1count\$1distinct | approx\$1count\$1distinct(c1) | 
|  contagem  | Retorna o número de itens em uma coluna | contagem | count(c1) | 
|  first  |  Retorna o primeiro valor de uma coluna  | first | first(c1) | 
|  last  |  Retorna o último valor de uma coluna  | last | last(c1) | 
|  stddev\$1pop  | Retorna o desvio padrão da população de uma coluna | stddev\$1pop | stddev\$1pop(c1) | 
|  variance\$1pop  |  Retorna a variância populacional dos valores em uma coluna  | variance\$1pop | variance\$1pop(c1) | 

## Gerenciar linhas
<a name="canvas-prepare-data-manage"></a>

Com a transformação Gerenciar linhas, você pode realizar a classificação, a reprodução aleatória e remover linhas de dados do conjunto de dados.

### Classificar linhas
<a name="canvas-prepare-data-manage-sort"></a>

Para classificar as linhas em um conjunto de dados por uma determinada coluna, faça o seguinte:

1. Na guia **Criar** do aplicativo SageMaker Canvas, escolha **Gerenciar linhas** e, em seguida, escolha **Classificar linhas**.

1. Em **Classificar coluna**, escolha a coluna pela qual você deseja classificar.

1. Em **Ordem de classificação**, escolha **Crescente** ou **Decrescente**.

1. Escolha **Adicionar** para adicionar a transformação à **Receita do modelo**.

### Embaralhar linhas
<a name="canvas-prepare-data-manage-shuffle"></a>

Para embaralhar aleatoriamente as linhas em um conjunto de dados, faça o seguinte:

1. Na guia **Construir** do aplicativo SageMaker Canvas, escolha **Gerenciar linhas** e, em seguida, escolha **Misturar linhas**.

1. Escolha **Adicionar** para adicionar a transformação à **Receita do modelo**.

### Descartar linhas duplicadas
<a name="canvas-prepare-data-manage-drop-duplicate"></a>

Para remover linhas duplicadas em um conjunto de dados, faça o seguinte:

1. Na guia **Criar** do aplicativo SageMaker Canvas, escolha **Gerenciar linhas** e, em seguida, escolha **Eliminar linhas duplicadas**.

1. Escolha **Adicionar** para adicionar a transformação à **Receita do modelo**.

### Remover linhas por valores ausentes
<a name="canvas-prepare-data-remove-missing"></a>

Valores ausentes são uma ocorrência comum em conjuntos de dados de machine learning e podem afetar a precisão do modelo. Use essa transformação se quiser eliminar linhas com valores nulos ou vazios em determinadas colunas.

Para remover linhas que contêm valores ausentes em uma coluna especificada, faça o seguinte:

1. Na guia **Construir** do aplicativo SageMaker Canvas, escolha **Gerenciar linhas**.

1. Escolha **Eliminar linhas por valores ausentes**.

1. Escolha **Adicionar** para adicionar a transformação à **Receita do modelo**.

SageMaker O Canvas remove as linhas que contêm valores ausentes na **coluna** que você selecionou. Depois de remover as linhas do conjunto de dados, o SageMaker Canvas adiciona a transformação na seção **Receita do modelo**. Se você remover a transformação da seção **Fórmula modelo**, as linhas retornarão ao seu conjunto de dados.

![\[Captura de tela da operação de remoção de linhas por valores ausentes no aplicativo SageMaker Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-remove-missing.png)


### Remover linhas por valores atípicos
<a name="canvas-prepare-data-remove-outliers"></a>

Valores atípicos, ou valores raros na distribuição e no intervalo de seus dados podem afetar negativamente a precisão do modelo e levar a tempos de compilação mais longos. Com o SageMaker Canvas, você pode detectar e remover linhas que contêm valores discrepantes em colunas numéricas. Você pode escolher definir valores atípicos com desvios padrão ou com um intervalo personalizado.

Para remover valores atípicos de seus dados, faça o seguinte:

1. Na guia **Construir** do aplicativo SageMaker Canvas, escolha **Gerenciar linhas**.

1. Escolha **Eliminar linhas por valores atípicos**.

1. Escolha a **Coluna** em que você deseja verificar se há valores atípicos.

1. Defina o **operador** para **desvio padrão**, intervalo **numérico personalizado** ou **intervalo quantil personalizado**.

1. Se você escolher **Desvio padrão**, especifique um valor de **Desvios padrão** (desvio padrão) de 1 a 3. Se você escolher **Intervalo numérico personalizado** ou **Intervalo de quantil personalizado**, especifique os valores **mínimo** e **máximo** (números para intervalos numéricos ou percentis entre 0 e 100% para intervalos de quantil).

1. Escolha **Adicionar** para adicionar a transformação à **Receita do modelo**.

A opção **Desvio padrão** detecta e remove as discrepâncias em colunas numéricas usando a média e o desvio padrão. Você especifica o número de desvios padrão dos quais um valor deve variar da média para ser considerado um valor atípico. Por exemplo, se você especificar `3` para **Desvios padrão**, um valor deve estar em valor maior que 3 desvios padrão da média para ser considerado um valor atípico.

As opções **Intervalo numérico** e **Intervalo quantil personalizado** detectam e removem as discrepâncias em colunas numéricas usando valores mínimos e máximos. Use esse método se você conhece seus valores limite que delimitam valores atípicos. Se você escolher um intervalo numérico, os valores **Min** e **Max** devem ser os valores numéricos mínimo e máximo que você deseja permitir nos dados. Se você escolher um intervalo de quantil, os valores **Min** e **Max** devem ser o mínimo e o máximo do intervalo de percentis (0 a 100) que você deseja permitir.

Depois de remover as linhas do conjunto de dados, o SageMaker Canvas adiciona a transformação na seção **Receita do modelo**. Se você remover a transformação da seção **Fórmula modelo**, as linhas retornarão ao seu conjunto de dados.

![\[Captura de tela da operação de remoção de linhas por valores discrepantes no aplicativo Canvas. SageMaker\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-remove-outlier.png)


### Remover linhas por valores personalizados
<a name="canvas-prepare-data-remove-custom"></a>

Você pode remover linhas com valores que atendam às condições personalizadas. Por exemplo, talvez você queira excluir todas as linhas com um valor de preço maior que 100 ao compilar seu modelo. Com essa transformação, você pode criar uma regra que remove todas as linhas que excedem o limite que você definiu.

Para usar a transformação de remoção personalizada, faça o seguinte:

1. Na guia **Construir** do aplicativo SageMaker Canvas, escolha **Gerenciar linhas**.

1. Escolha **Descartar linhas por fórmula**.

1. Escolha a **Coluna** que você deseja verificar.

1. Selecione o tipo de **Operação** que você deseja usar e, em seguida, especifique os valores para a condição selecionada.

1. Escolha **Adicionar** para adicionar a transformação à **Receita do modelo**.

Para a **Operação**, escolha uma das opções a seguir. Observe que as operações disponíveis dependem do tipo de dados da coluna que você escolher. Por exemplo, não é possível criar uma operação `is greater than` para uma coluna contendo valores de texto.


| Operation | Tipos de dados compatíveis | Tipo de atributo compatível | Função | 
| --- | --- | --- | --- | 
|  É igual a  |  Numérico, Texto  |  Binário, Categóricos  |  Remove as linhas em que o valor em **Coluna** é igual aos valores que você especifica.  | 
|  Não é igual a  |  Numérico, Texto  |  Binário, Categóricos  |  Remove as linhas em que o valor em **Coluna** não é igual aos valores que você especifica.  | 
|  É menor que  |  Numérico  | N/D |  Remove as linhas em que o valor em **Coluna** é menor que o valor especificado.  | 
|  É menor que ou igual a  |  Numérico  | N/D |  Remove linhas em que o valor em **Coluna** é menor que ou igual ao valor especificado por você.  | 
|  É maior que  |  Numérico  | N/D |  Remove as linhas em que o valor em **Coluna** é maior do que o valor especificado por você.  | 
|  É maior ou igual a  | Numérico | N/D |  Remove linhas em que o valor em **Coluna** é maior que ou igual ao valor especificado por você.  | 
|  Está entre  | Numérico | N/D |  Remove as linhas em que o valor na **Coluna** está entre ou é igual a dois valores que você especifica.  | 
|  Contém  |  Texto  | Categóricos |  Remove as linhas nas quais o valor na **Coluna** contém os valores especificados por você.  | 
|  Inicia com  |  Texto  | Categóricos |  Remove as linhas nas quais o valor na **Coluna** começa com um valor especificado por você.  | 
|  Termina com  |  Texto  | Categóricos |  Remove as linhas nas quais o valor na **Coluna** termina com um valor especificado por você.  | 

Depois de remover as linhas do conjunto de dados, o SageMaker Canvas adiciona a transformação na seção **Receita do modelo**. Se você remover a transformação da seção **Fórmula modelo**, as linhas retornarão ao seu conjunto de dados.

![\[Captura de tela da operação de remoção de linhas por valores personalizados no aplicativo SageMaker Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-remove-custom.png)


## Renomear colunas
<a name="canvas-prepare-data-rename"></a>

Com a transformação renomear colunas, você pode renomear colunas em seus dados. Quando você renomeia uma coluna, o SageMaker Canvas altera o nome da coluna na entrada do modelo.

Você pode renomear uma coluna em seu conjunto de dados clicando duas vezes no nome da coluna na guia **Construir** do aplicativo SageMaker Canvas e inserindo um novo nome. Pressionar a tecla **Enter** envia a alteração e clicar em qualquer lugar fora da entrada cancela a alteração. Você também pode renomear uma coluna clicando no ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), localizado no final da linha na visualização em lista ou no final da célula do cabeçalho na visualização em grade e escolhendo **Renomear**.

O nome da coluna não pode ter mais de 32 caracteres nem ter sublinhados duplos (\$1\$1) e você não pode renomear uma coluna com o mesmo nome de outra coluna. Você também não pode renomear uma coluna descartada.

A captura de tela a seguir mostra como renomear uma coluna clicando duas vezes no nome da coluna.

![\[Captura de tela da renomeação de uma coluna com o método de clique duplo no SageMaker aplicativo Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-rename-column.png)


Quando você renomeia uma coluna, o SageMaker Canvas adiciona a transformação na seção **Receita do modelo**. Se você remover a transformação da seção **Fórmula modelo**, a coluna retornará ao nome original.

## Gerenciar colunas
<a name="canvas-prepare-data-manage-cols"></a>

Com as transformações a seguir, você pode alterar o tipo de dados das colunas e substituir valores ausentes ou valores discrepantes por colunas específicas. SageMaker O Canvas usa os tipos ou valores de dados atualizados ao criar seu modelo, mas não altera seu conjunto de dados original. Observe que, se você descartou uma coluna do seu conjunto de dados usando a transformação [Destacar coluna](#canvas-prepare-data-drop), não poderá substituir valores nessa coluna.

### Substituir valores ausentes
<a name="canvas-prepare-data-replace-missing"></a>

Valores ausentes são uma ocorrência comum em conjuntos de dados de machine learning e podem afetar a precisão do modelo. Você pode optar por descartar linhas com valores ausentes, mas seu modelo será mais preciso se você escolher substituir os valores ausentes. Com essa transformação, você pode substituir valores ausentes nas colunas numéricas pela média ou mediana dos dados em uma coluna, ou também pode especificar um valor personalizado com o qual substituir valores ausentes. Para colunas não numéricas, você pode substituir valores ausentes com o modo (valor mais comum) da coluna ou por um valor personalizado.

Use essa transformação se quiser substituir os valores nulos ou vazios em determinadas colunas. Para substituir valores ausentes em uma coluna especificada, faça o seguinte: 

1. Na guia **Criar** do aplicativo SageMaker Canvas, escolha **Gerenciar colunas**.

1. Escolha **Substituir valores ausentes**.

1. Escolha a **Coluna** na qual você deseja substituir valores ausentes.

1. Defina o **Modo** como **Manual** para substituir valores ausentes pelos valores especificados por você. Com a configuração **Automática (padrão)**, o SageMaker Canvas substitui os valores ausentes pelos valores imputados que melhor se ajustam aos seus dados. Esse método de atribuição é feito automaticamente para cada construção de modelo, a menos que você especifique o modo **Manual**.

1. Defina o valor **Substituir por valor**:
   + Se sua coluna for numérica, selecione **Média**, **Mediana** ou **Personalizada**. A **Média** substitui valores ausentes pela média da coluna e a **Mediana** substitui valores ausentes pela mediana da coluna. Se você escolher **Personalizado**, deverá especificar um valor personalizado que deseja usar para substituir valores ausentes.
   + Se sua coluna for numérica, selecione **Modo** ou **Personalizada**. O **Modo** substitui valores ausentes pelo modo ou pelo valor mais comum da coluna. Em **Personalizado**, especifique um valor personalizado que você deseja usar para substituir valores ausentes.

1. Escolha **Adicionar** para adicionar a transformação à **Receita do modelo**.

Depois de substituir os valores ausentes no conjunto de dados, o SageMaker Canvas adiciona a transformação na seção **Receita do modelo**. Se você remover a transformação da seção **Fórmula modelo**, os valores ausentes retornarão ao conjunto de dados.

![\[Captura de tela da operação de substituição de valores ausentes no aplicativo SageMaker Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-replace-missing.png)


### Substituir valores atípicos
<a name="canvas-prepare-data-replace-outliers"></a>

Valores discrepantes, ou valores raros na distribuição e no alcance de seus dados, podem afetar negativamente a precisão do modelo e levar a tempos de construção mais longos. SageMaker O Canvas permite que você detecte valores discrepantes em colunas numéricas e substitua os valores discrepantes por valores que estejam dentro de um intervalo aceito em seus dados. Você pode optar por definir valores atípicos com desvios padrão ou com um intervalo personalizado e pode substituir os valores atípicos pelos valores mínimo e máximo no intervalo aceito.

Para substituir valores atípicos em seus dados, faça o seguinte:

1. Na guia **Criar** do aplicativo SageMaker Canvas, escolha **Gerenciar colunas**.

1. Escolha **Substituir valores atípicos**.

1. Escolha a **Coluna** na qual você deseja substituir valores atípicos.

1. Em **Definir valores atípicos**, escolha **Desvio padrão**, **Intervalo numérico personalizado** ou **Intervalo quantil personalizado.**

1. Se você escolher **Desvio padrão**, especifique um valor de **Desvios padrão** (desvio padrão) de 1 a 3. Se você escolher **Intervalo numérico personalizado** ou **Intervalo de quantil personalizado**, especifique os valores **mínimo** e **máximo** (números para intervalos numéricos ou percentis entre 0 e 100% para intervalos de quantil).

1. Em **Substituir por**, selecione **Intervalo mínimo/máximo**.

1. Escolha **Adicionar** para adicionar a transformação à **Receita do modelo**.

A opção **Desvio padrão** detecta valores atípicos em colunas numéricas usando a média e o desvio padrão. Você especifica o número de desvios padrão dos quais um valor deve variar da média para ser considerado um valor atípico. Por exemplo, se você especificar 3 para **desvios padrão**, um valor deve cair mais de 3 desvios padrão da média para ser considerado um valor atípico. SageMaker O Canvas substitui os valores atípicos pelo valor mínimo ou máximo no intervalo aceito. Por exemplo, se você configurar os desvios padrão para incluir apenas valores de 200 a 300, o SageMaker Canvas alterará um valor de 198 para 200 (o mínimo).

As opções de **Intervalo numérico personalizado** e **Intervalo quantil personalizado** detectam valores atípicos em colunas numéricas usando valores mínimos e máximos. Use esse método se você conhece seus valores limite que delimitam valores atípicos. Se você escolher um intervalo numérico, os valores **mínimo** e **máximo** devem ser os valores numéricos mínimo e máximo que você deseja permitir. SageMaker O Canvas substitui quaisquer valores que estejam fora do mínimo e máximo pelos valores mínimo e máximo. Por exemplo, se seu intervalo permitir apenas valores de 1 a 100, o SageMaker Canvas alterará um valor de 102 para 100 (o máximo). Se você escolher um intervalo de quantil, os valores **Min** e **Max** devem ser o mínimo e o máximo do intervalo de percentis (0 a 100) que você deseja permitir.

Depois de substituir os valores no conjunto de dados, o SageMaker Canvas adiciona a transformação na seção **Receita do modelo**. Se você remover a transformação da seção **Fórmula modelo**, os valores originais retornarão ao conjunto de dados.

![\[Captura de tela da operação de substituição de valores atípicos no aplicativo Canvas. SageMaker\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-replace-outlier.png)


### Alterar tipo de dados
<a name="canvas-prepare-data-change-type"></a>

SageMaker O Canvas fornece a capacidade de alterar o *tipo de dados* de suas colunas entre numérico, texto e data e hora, além de exibir o tipo de *recurso associado a esse tipo de* dados. Um *tipo de dados* refere-se ao formato dos dados e o modo como eles são armazenados, enquanto o *tipo de atributo* refere-se à característica dos dados usados em algoritmos de machine learning, como binário ou categórico. Isso dá a você a flexibilidade de alterar manualmente o tipo de dados em suas colunas com base nas funcionalidades. A capacidade de escolher o tipo de dados certo garante a integridade e a precisão dos dados antes da compilação de modelos. Esses tipos de dados são usados na compilação de modelos.

**nota**  
Atualmente, a alteração do tipo de atributo (por exemplo, de binário para categórico) não é compatível.

A tabela a seguir lista todos os tipos de dados compatíveis com o Canvas.


| Tipo de dados | Description | Exemplo | 
| --- | --- | --- | 
| Numérico | Os dados numéricos representam valores numéricos | 1, 2, 31.1, 1.2. 1.3 | 
| Texto | Os dados de texto representam sequências de caracteres, como nomes ou descrições | A, B, C, Dmaçã, banana, laranja1A\$1 , 2A\$1 , 3A\$1 | 
| Datetime | Os dados de datetime representam datas e horas no formato da data e hora. | 2019-07-01 01:00:00, 2019-07-01 02:00:00, 2019-07-01 03:00:00 | 

A tabela a seguir lista todos os tipos de atributo compatíveis com o Canvas.


| Tipo de atributo | Description | Exemplo | 
| --- | --- | --- | 
| Binário | Os atributos binários representam dois valores possíveis | 0, 1, 0, 1, 0 (2 valores distintos)verdadeiro, falso, verdadeiro (2 valores distintos) | 
| Categóricos | Atributos categóricos representam categorias ou grupos distintos | maçã, banana, laranja, maçã (3 valores distintos)A, B, C, D, E, A, D, C (5 valores distintos) | 

Para modificar o tipo de dados de uma coluna em um conjunto de dados, faça o seguinte:

1. Na guia **Criar** do aplicativo SageMaker Canvas, vá para a Visualização em **coluna ou Visualização** em **grade** e selecione a lista suspensa **Tipo de dados** para a coluna específica.

1. Na lista suspensa **Tipo de dados**, escolha o tipo de dados para o qual converter. A captura de tela a seguir mostra a lista suspensa.  
![\[O menu suspenso de conversão de tipo de dados para uma coluna, mostrado na guia Compilar\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-prepare-data-change.png)

1. Em **Coluna**, escolha ou verifique a coluna para a qual você deseja alterar o tipo de dados.

1. Em **Novo tipo de dados**, escolha ou verifique o novo tipo de dados para o qual você deseja converter.

1. Se o **Novo tipo de dados** for `Datetime` ou `Numeric`, escolha uma das seguintes opções em **Identificar valores inválidos**:

   1. **Substituir por valor vazio**: Valores inválidos são substituídos por um valor em branco

   1. **Excluir linhas**: As linhas com um valor inválido são removidas do conjunto de dados

   1. **Substituir por valor personalizado**: Valores inválidos são substituídos pelo **valor personalizado** que você especificar.

1. Escolha **Adicionar** para adicionar a transformação à **Receita do modelo**.

O tipo de dados da sua coluna agora deve estar atualizado.

## Preparar dados de séries temporais
<a name="canvas-prepare-data-timeseries"></a>

Use as seguintes funcionalidades para preparar seus dados de séries temporais para criar modelos de previsão de séries temporais:

### Reamostragem de dados de séries temporais
<a name="canvas-prepare-data-resample"></a>

Ao reamostrar dados de séries temporais, você pode estabelecer intervalos regulares para as observações em seu conjunto de dados de séries temporais. Isso é particularmente útil ao trabalhar com dados de séries temporais contendo observações com espaçamento irregular. Por exemplo, você pode usar a reamostragem para transformar um conjunto de dados com observações registradas em intervalos de uma hora, duas horas e três horas em um intervalo regular de uma hora entre as observações. Algoritmos de previsão exigem que as observações sejam feitas em intervalos regulares.

Para reamostrar dados de séries temporais, faça o seguinte:

1. Na guia **Construir** do aplicativo SageMaker Canvas, escolha **Série temporal**.

1. Escolha **Reamostrar**.

1. Para a **Coluna de data e hora**, escolha a coluna à qual você deseja aplicar a transformação. Você só pode selecionar colunas do tipo **Datetime**.

1. Na seção **Configurações de frequência**, escolha uma **Frequência** e uma **Taxa**. **Frequência** é a unidade de frequência e **Taxa** é o intervalo da unidade de frequência a ser aplicada à coluna. Por exemplo, escolher `Calendar Day` entre **Valor de frequência** e `1` para a **Taxa** define o intervalo a ser aumentado a cada 1 dia do calendário, como `2023-03-26 00:00:00`, `2023-03-27 00:00:00` e `2023-03-28 00:00:00`. Consulte a tabela após esse procedimento para obter uma lista completa dos **Valores de frequência**. 

1. Escolha **Adicionar** para adicionar a transformação à **Fórmula do modelo**.

A tabela a seguir lista todos os tipos de **frequência** que você pode selecionar ao reamostrar dados de séries temporais.


| Frequência | Description | Valores de exemplo (supondo que a taxa seja 1) | 
| --- | --- | --- | 
|  Dia útil  |  Reamostre as observações na coluna datetime para 5 dias úteis da semana (Segunda-feira, Terça-feira, Quarta-feira, Quinta-feira e Sexta-feira)  |  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  | 
|  Dia do calendário  |  Reamostre as observações na coluna datetime para todos os 7 dias da semana (Segunda-feira, Terça-feira, Quarta-feira, Quinta-feira, Sexta-feira, Sábado e Domingo)  |  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  | 
|  Semana  |  Observações de reamostragem na coluna de datetime para o primeiro dia de cada semana  |  2023-03-13 00:00:00 2023-03-20 00:00:00 2023-03-27 00:00:00 2023-04-03 00:00:00  | 
|  Mês  |  Observações de reamostragem na coluna datetime para o primeiro dia de cada mês  |  2023-03-01 00:00:00 2023-04-01 00:00:00 2023-05-01 00:00:00 2023-06-01 00:00:00  | 
|  Trimestre anual  |  Observações de reamostragem na coluna datetime para o primeiro dia de cada 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  | 
|  Ano  |  Observações de reamostragem na coluna datetime para o último dia de cada ano  |  2022-12-31 0:00:00 2023-12-31 00:00:00 2024-12-31 00:00:00  | 
|  Hora  |  Observações de reamostragem na coluna datetime para o cada hora de cada dia  |  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  |  Observações de reamostragem na coluna datetime para o cada minuto de cada hora  |  2023-03-24 00:00:00 2023-03-24 00:01:00 2023-03-24 00:02:00 2023-03-24 00:03:00  | 
|  Segunda  |  Observações de reamostragem na coluna datetime para o cada segundo de cada 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  | 

Ao aplicar a transformação de reamostragem, você pode usar a opção **Avançada** para especificar como os valores resultantes do restante das colunas (exceto a coluna de data e hora) em seu conjunto de dados são modificados. Isso pode ser obtido especificando a metodologia de reamostragem, que pode ser a redução ou o aumento de amostras para colunas numéricas e não numéricas.

O *downsampling* (redução da taxa de amostragem) aumenta o intervalo entre as observações no conjunto de dados. Por exemplo, se você reduzir a resolução de observações feitas a cada hora ou a cada duas horas, cada observação em seu conjunto de dados será feita a cada duas horas. Os valores de outras colunas das observações por hora são agregados em um valor único usando um método de combinação. A tabela a seguir mostra um exemplo de redução da amostragem de dados de séries temporais usando a média como método de combinação. Os dados são reduzidos de duas em duas horas para cada hora.

A tabela a seguir mostra as leituras de temperatura por hora durante um dia antes da redução da amostragem.


| Timestamp | Temperatura (Celsius) | 
| --- | --- | 
| 12:00h | 30 | 
| 1:00 am | 32 | 
| 2:00 am | 35 | 
| 3:00 am | 32 | 
| 4:00 am | 30 | 

A tabela a seguir mostra as leituras de temperatura após a redução da amostragem para cada duas horas.


| Timestamp | Temperatura (Celsius) | 
| --- | --- | 
| 12:00h | 30 | 
| 2:00 am | 33.5 | 
| 2:00 am | 35 | 
| 4:00 am | 32,5 | 

Para reduzir a resolução dos dados de série temporal, faça o seguinte:

1. Expanda a seção **Avançado** na transformação **Resample**.

1. Escolha **combinação não numérica** para especificar o método de combinação para colunas não numéricas. Consulte a tabela a seguir para obter uma lista completa de métodos de combinação.

1. Escolha **Combinação numérica** para especificar o método de combinação para colunas numéricas. Consulte a tabela a seguir para obter uma lista completa de métodos de combinação.

Se você não especificar métodos de combinação, os valores padrão são `Most Common` para **combinação não numérica** e `Mean` para **combinação numérica**. A tabela a seguir lista os métodos para combinação numérica e não numérica.


| Metodologia de redução da amostragem | Método de combinação | Description | 
| --- | --- | --- | 
| Combinação não numérica | Mais comum | Agregue valores na coluna não numérica pelo valor que ocorre com mais frequência | 
| Combinação não numérica | Last | Valores agregados na coluna não numérica pelo último valor na coluna | 
| Combinação não numérica | First | Valores agregados na coluna não numérica pelo último valor na coluna | 
| Combinação numérica | Média | Agregue valores na coluna numérica tomando a média de todos os valores na coluna | 
| Combinação numérica | Mediana | Agregue valores na coluna numérica tomando a média de todos os valores na coluna | 
| Combinação numérica | Mín. | Agregue valores na coluna numérica tomando o valor mínimo de todos os valores na coluna | 
| Combinação numérica | Máx | Agregue valores na coluna numérica tomando o valor máximo de todos os valores na coluna | 
| Combinação numérica | Soma | Agregue valores na coluna numérica adicionando todos os valores na coluna | 
| Combinação numérica | Quantil | Agregue valores na coluna numérica tomando o quantil de todos os valores na coluna | 

O *upsampling* (aumento da taxa de amostragem) reduz o intervalo entre as observações no conjunto de dados. Por exemplo, se você aumentar as observações de amostragem feitas a cada duas horas em observações de hora em hora, os valores de outras colunas das observações de hora em hora são interpoladas a partir daquelas que foram feitas a cada duas horas.

Para aumentar a amostragem de dados de séries temporais, faça o seguinte:

1. Expanda a seção **Avançado** na transformação **Resample**.

1. Escolha **Estimativa não numérica** para especificar o método de estimativa para colunas não numéricas. Consulte a tabela após esse procedimento para obter uma lista completa dos métodos.

1. Escolha **Estimativa numérica** para especificar o método de estimativa para colunas numéricas. Consulte a tabela a seguir para obter uma lista completa de métodos.

1. (Opcional) Escolha **Coluna ID** para especificar a IDs coluna que contém as observações da série temporal. Especifique essa opção se seu conjunto de dados tiver duas séries temporais. Se você tiver uma coluna representando somente uma série temporal, não especifique um valor para esse campo. Por exemplo, você pode ter um conjunto de dados com as colunas `id` e `purchase`. A coluna `id` tem os seguintes valores: `[1, 2, 2, 1]`. A coluna `purchase` tem os seguintes valores `[$2, $3, $4, $1]`: Portanto, o conjunto de dados tem duas séries temporais: uma série temporal é: `1: [$2, $1]` e a outra série temporal é `2: [$3, $4]`.

Se você não especificar métodos de estimativa, os valores padrão são `Forward Fill` para **estimativa não numérica** e `Linear` para **estimativa numérica**. A tabela a seguir lista os métodos de estimativa.


| Metodologia de aumento da amostragem | Método de estimativa | Description | 
| --- | --- | --- | 
| Estimativa não numérica | Preenchimento de avanço | Interpole valores na coluna não numérica tomando os valores consecutivos depois de todos os valores na coluna | 
| Estimativa não numérica | Preenchimento retroativo | Interpole valores na coluna não numérica tomando os valores consecutivos antes de todos os valores na coluna | 
| Estimativa não numérica | Continuar ausente | Interpole valores na coluna não numérica mostrando valores vazios | 
| Estimativa numérica | Linear, Tempo, Índice, Zero, S-Linear, Mais Próximo, Quadrático, Cúbico, Baricêntrico, Polinômio, Krogh, Polinômio por Partes, Spline, P-chip, Akima, Spline Cúbico, a partir de Derivadas | Interpole valores na coluna numérica usando o interpolador especificado. [Para obter informações sobre métodos de interpolação, consulte pandas. DataFrame.interpolate na documentação do](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.interpolate.html) pandas. | 

A captura de tela a seguir mostra as configurações **avançadas** com os campos para redução e aumento da amostragem preenchidos.

![\[Captura de tela da aplicação Canvas, com o painel lateral de reamostragem de séries temporais mostrando as opções avançadas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-prepare-data-resampling.png)


### Use a extração datetime
<a name="canvas-prepare-data-datetime"></a>

Com a transformação de extração datetime, você pode extrair valores de uma coluna de datetime para uma coluna separada. Por exemplo, se você tiver uma coluna contendo datas de compras, você poderá extrair o valor do mês em uma coluna separada e usar a nova coluna ao compilar seu modelo. Você também pode extrair vários valores para separar colunas com uma única transformação.

Sua coluna datetime deve usar um formato da data e hora compatível. Para obter uma lista dos formatos que o SageMaker Canvas suporta, consulte[Previsões de séries temporais no Amazon Canvas SageMaker](canvas-time-series.md). Se seu conjunto de dados não usar um dos formatos compatíveis, atualize-o para usar um formato de carimbo de data/hora compatível e reimporte-o para o SageMaker Amazon Canvas antes de criar seu modelo.

Para realizar uma extração de datetime, faça o seguinte:

1. Na guia **Criar** do aplicativo SageMaker Canvas, na barra de transformações, escolha **Exibir tudo**.

1. Escolha **Extrair atributos**.

1. Escolha a **coluna de data e hora** da qual você deseja extrair valores.

1. Em **Valores**, selecione um ou mais valores para extrair da coluna. Os valores que você pode extrair de uma coluna de data e hora são **Ano**, **Mês**, **Dia**, **Hora**, **Semana do ano**, **Dia do ano** e **Trimestre.**

1. (Opcional) Escolha **Pré-Visualização** para pré-visualizar os resultados da transformação.

1. Escolha **Adicionar** para adicionar a transformação à **Receita do modelo**.

SageMaker O Canvas cria uma nova coluna no conjunto de dados para cada um dos valores que você extrai. Com exceção dos valores de **ano**, o SageMaker Canvas usa uma codificação baseada em 0 para os valores extraídos. Por exemplo, se você extrair o valor do **Mês**, Janeiro será extraído como 0 e Fevereiro será extraído como 1.

![\[Captura de tela da caixa de extração de data e hora no aplicativo SageMaker Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-datetime-extract.png)


Você pode ver a transformação listada na seção **Fórmula modelo**. Se você remover a transformação da seção **Fórmula modelo**, as novas colunas serão removidas do conjunto de dados.

# Avaliação de modelos
<a name="canvas-evaluate-model"></a>

Depois de criar seu modelo, você pode avaliar o desempenho do modelo em seus dados antes de usá-lo para fazer predições. Você pode usar informações, como a precisão do modelo na predição de rótulos e métricas avançadas para determinar se seu modelo pode fazer predições suficientemente precisas para seus dados.

A seção [Avalie o desempenho do seu modelo.](canvas-scoring.md) descreve como visualizar e interpretar as informações na página **Analisar** do seu modelo. A seção [Use métricas avançadas em suas análises](canvas-advanced-metrics.md) contém informações mais detalhadas sobre **métricas avançadas** usadas para quantificar a precisão do seu modelo.

Você também pode visualizar informações mais avançadas para *candidatos de modelos* específicos, que são todas as iterações de modelo pelas quais o Canvas executa ao criar seu modelo. Com base nas métricas avançadas de um determinado candidato a modelo, você pode selecionar um candidato diferente para ser o padrão ou a versão usada para fazer predições e implantar. Para cada candidato a modelo, você pode visualizar as informações de **métricas avançadas** para ajudá-lo a decidir qual candidato a modelo você gostaria de selecionar como padrão. Você pode ver essas informações selecionando o candidato a modelo na tabela de **classificação de modelos**. Para obter mais informações, consulte [Veja os candidatos a modelo na tabela de classificação de modelos](canvas-evaluate-model-candidates.md).

O Canvas também oferece a opção de baixar um caderno Jupyter para que você possa visualizar e executar o código usado para criar seu modelo. Isso é útil se você quiser fazer ajustes no código ou saber mais sobre como seu modelo foi compilado. Para obter mais informações, consulte [Baixe um modelo de caderno](canvas-notebook.md).

# Avalie o desempenho do seu modelo.
<a name="canvas-scoring"></a>

O Amazon SageMaker Canvas fornece informações gerais e de pontuação para os diferentes tipos de modelo. A pontuação do seu modelo pode ajudar você a determinar a precisão do seu modelo ao fazer predições. Os insights adicionais de pontuação podem ajudá-lo a quantificar as diferenças entre os valores reais e previstos.

Para visualizar a análise do modelo, faça o seguinte:

1. Abra o aplicativo SageMaker Canvas.

1. No painel de navegação à esquerda, selecione **Meus modelos**.

1. Escolha o modelo que você construiu.

1. No painel de navegação, escolha a guia **Analisar**.

1. Na guia **Analisar**, você pode ver a visão geral e as informações de pontuação do seu modelo.

As seções a seguir descrevem como interpretar a pontuação para cada tipo de modelo.

## Avalie modelos de predição categórica
<a name="canvas-scoring-categorical"></a>

A guia **Visão geral** mostra o impacto da coluna para cada coluna. O **Impacto da coluna** é uma pontuação percentual que indica quanto peso uma coluna tem ao fazer predições em relação às outras colunas. Para um impacto de 25% na coluna, o Canvas avalia a predição como 25% para a coluna e 75% para as outras colunas.

A captura de tela a seguir mostra a pontuação de **Precisão** do modelo, junto com a **métrica de otimização**, que é a métrica que você escolhe otimizar ao compilar o modelo. Nesse caso, a **métrica de otimização** é **Precisão**. Você pode especificar uma métrica de otimização diferente se compilar uma nova versão do seu modelo.

![\[Captura de tela da pontuação de precisão e da métrica de otimização na guia Analisar no Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/analyze-tab-2-category.png)


A guia **Pontuação** de um modelo de predição categórica permite que você visualize todas as predições. Os segmentos de linha se estendem da esquerda da página, indicando todas as predições feitas pelo modelo. No meio da página, os segmentos de linha convergem em um segmento perpendicular para indicar a proporção de cada predição em uma única categoria. Da categoria prevista, os segmentos se ramificam para a categoria real. Você pode ter uma noção visual do quão precisas foram as predições seguindo cada segmento de linha da categoria prevista até a categoria real.

A imagem a seguir fornece um exemplo da seção de **pontuação** para um modelo de **predição de 3\$1 categorias**.

![\[Captura de tela da guia Pontuação para um modelo de predição de 3+ categorias.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-analyze/canvas-multiclass-classification.png)


Você também pode visualizar a guia **Métricas avançadas** para obter informações mais detalhadas sobre o desempenho do seu modelo, como métricas avançadas, gráficos de densidade de erros ou matrizes de confusão. Para saber mais sobre a guia **Métricas avançadas**, consulte [Use métricas avançadas em suas análises](canvas-advanced-metrics.md).

## Avalie modelos de predição numérica
<a name="canvas-scoring-numeric"></a>

A guia **Visão geral** mostra o impacto da coluna para cada coluna. O **Impacto da coluna** é uma pontuação percentual que indica quanto peso uma coluna tem ao fazer predições em relação às outras colunas. Para um impacto de 25% na coluna, o Canvas avalia a predição como 25% para a coluna e 75% para as outras colunas.

A captura de tela a seguir mostra a pontuação **RMSE** do modelo na guia **Visão geral** que, nesse caso, é a **métrica de otimização.** A **métrica de otimização** é a métrica que você escolhe otimizar ao compilar o modelo. Você pode especificar uma métrica de otimização diferente se compilar uma nova versão do seu modelo.

![\[Captura de tela da métrica de otimização RMSE na guia Analisar no Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/analyze-tab-2-numeric.png)


A guia **Pontuação** para predição numérica exibe uma linha para indicar o valor previsto do modelo em relação aos dados usados para fazer predições. Os valores da predição numérica geralmente são \$1/- o valor RMSE (erro quadrático médio). O valor que o modelo prevê geralmente está dentro do intervalo do RMSE. A largura da faixa roxa ao redor da linha indica o intervalo RMSE. Os valores previstos geralmente estão dentro do intervalo.

A imagem a seguir mostra a seção **Pontuação** para predição numérica.

![\[Captura de tela da guia Pontuação para um modelo de predição numérica.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-analyze/canvas-analyze-regression-scoring.png)


Você também pode visualizar a guia **Métricas avançadas** para obter informações mais detalhadas sobre o desempenho do seu modelo, como métricas avançadas, gráficos de densidade de erros ou matrizes de confusão. Para saber mais sobre a guia **Métricas avançadas**, consulte [Use métricas avançadas em suas análises](canvas-advanced-metrics.md).

## Avalie modelos de previsão de séries temporais
<a name="canvas-scoring-time-series"></a>

Na página **Analisar** dos modelos de previsão de séries temporais, você obtém uma visão geral das métricas do modelo. Você pode passar o mouse sobre cada métrica para obter mais informações ou pode ver [Use métricas avançadas em suas análises](canvas-advanced-metrics.md) para obter mais informações sobre cada métrica.

Na seção **Impacto da coluna**, você pode ver a pontuação de cada coluna. O **Impacto da coluna** é uma pontuação percentual que indica quanto peso uma coluna tem ao fazer predições em relação às outras colunas. Para um impacto de 25% na coluna, o Canvas avalia a predição como 25% para a coluna e 75% para as outras colunas.

A captura de tela a seguir mostra a pontuação da precisão do modelo, junto com a **métrica de otimização**, que é a métrica que você escolhe otimizar ao compilar o modelo. Nesse caso, a **métrica de otimização** é **RMSE**. Você pode especificar uma métrica de otimização diferente se compilar uma nova versão do seu modelo. Essas pontuações métricas são retiradas dos resultados do backtest, que estão disponíveis para download na guia **Artefatos**.

![\[Captura de tela da métrica de otimização RMSE na guia Analisar no Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/analyze-tab-2-time-series.png)


A guia **Artefatos** fornece acesso a vários recursos importantes que você pode usar para se aprofundar no desempenho do seu modelo e continuar a iterá-lo:
+ **Divisões aleatórias de treinamento e validação**: Esta seção inclui links para os artefatos gerados quando seu conjunto de dados foi dividido em conjuntos de treinamento e validação, permitindo que você revise a distribuição de dados e possíveis vieses.
+ **Resultados do backtest**: Esta seção inclui um link para os valores previstos para seu conjunto de dados de validação, que é usado para gerar métricas de precisão e dados de avaliação para seu modelo.
+ **Métricas de precisão**: Esta seção lista as métricas avançadas que avaliam o desempenho do seu modelo, como Erro quadrático médio (RMSE). Para obter mais informações sobre cada método, consulte [Métricas para previsões de séries temporais](canvas-metrics.md#canvas-time-series-forecast-metrics).
+ **Relatório de explicabilidade**: Esta seção fornece um link para baixar o relatório de explicabilidade, que oferece informações sobre o processo de tomada de decisão do modelo e a importância relativa das colunas de entrada. Esse relatório pode ajudá-lo a identificar possíveis áreas de melhoria.

Na página **Analisar**, você também pode escolher o botão **Download para baixar** diretamente os resultados do backtest, as métricas de precisão e os artefatos do relatório de explicabilidade para sua máquina local.

## Avalie os modelos de predição de imagem
<a name="canvas-scoring-image"></a>

A guia **Visão geral** mostra o **desempenho por rótulo**, que fornece uma pontuação geral de precisão para as imagens previstas para cada rótulo. Você pode escolher um rótulo para ver detalhes mais específicos, como as imagens **previstas corretamente** e as imagens **previstas incorretamente** para a etiqueta.

Você pode ativar o botão **Mapa de calor** para ver um mapa de calor para cada imagem. O mapa de calor mostra as áreas de interesse que têm maior impacto quando seu modelo está fazendo predições. Para obter mais informações sobre mapas de calor e como usá-los para melhorar seu modelo, escolha o ícone **Mais informações** ao lado do botão **Mapa de calor**.

A guia **Pontuação** para modelos de predição de imagem de rótulo único mostra uma comparação entre o que o modelo previu como rótulo e o que era o rótulo real. É possível selecionar até 10 rótulos por vez. Você pode alterar os rótulos na visualização escolhendo a lista suspensa de rótulos e selecionando ou desmarcando os rótulos.

Você também pode visualizar insights de rótulos individuais ou grupos de rótulos, como os três rótulos com maior ou menor precisão, escolhendo a lista suspensa **Exibir pontuações** na seção **Informações de precisão do modelo**.

A captura de tela a seguir mostra as informações de **pontuação** para um modelo de predição de imagem de rótulo único.

![\[Captura de tela dos rótulos reais versus previstos na página de pontuação para um modelo de predição de texto de várias categorias.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/analyze-image-scoring.png)


## Avalie modelos de predição de texto
<a name="canvas-scoring-text"></a>

A guia **Visão geral** mostra o **desempenho por rótulo**, que fornece uma pontuação geral de precisão para as passagens de texto previstas para cada rótulo. Você pode escolher um rótulo para ver detalhes mais específicos, como as imagens **previstas corretamente** e as imagens **previstas incorretamente** para o rótulo.

A guia **Pontuação** para modelos de predição de texto de múltiplas categorias mostra uma comparação entre o que o modelo previu como rótulo e o que era o rótulo real.

Na seção **Insights sobre a precisão do modelo**, você pode ver a **categoria mais frequente**, que informa a categoria que o modelo previu com mais frequência e a precisão dessas predições. Se seu modelo prevê um rótulo **Positivo** corretamente em 99% das vezes, você pode ter certeza de que seu modelo é bom em prever sentimentos positivos em texto.

A captura de tela a seguir mostra as informações de **pontuação** de um modelo de predição de texto com várias categorias.

![\[Captura de tela dos rótulos reais versus rótulos previstos na página de pontuação para um modelo de predição de imagem com um único rótulo.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/analyze-text-scoring.png)


# Use métricas avançadas em suas análises
<a name="canvas-advanced-metrics"></a>

A seção a seguir descreve como encontrar e interpretar as métricas avançadas do seu modelo no Amazon SageMaker Canvas.

**nota**  
As métricas avançadas estão disponíveis atualmente somente para modelos de predição numérica e categórica.

Para encontrar a guia **Métricas avançadas**, faça o seguinte:

1. Abra o aplicativo SageMaker Canvas.

1. No painel de navegação à esquerda, selecione **Meus modelos**.

1. Escolha o modelo que você construiu.

1. No painel de navegação, escolha a guia **Analisar**.

1. Na guia **Analisar**, escolha a guia **Métricas avançadas**.

Na guia **Métricas avançadas**, você pode encontrar a guia **Desempenho**. A tela deve ser algo semelhante ao exibido a seguir.

![\[Captura de tela da guia de métricas avançadas para um modelo de predição categórica.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-analyze-performance.png)


Na parte superior, você pode ver uma visão geral das pontuações métricas, incluindo a **métrica de otimização**, que é a métrica que você selecionou (ou a que o Canvas selecionou por padrão) para otimizar ao criar o modelo.

As seções a seguir descrevem informações mais detalhadas da guia **Desempenho** nas **métricas avançadas**.

## desempenho
<a name="canvas-advanced-metrics-performance"></a>

Na guia **Desempenho**, você verá uma **tabela de métricas**, junto com as visualizações que o Canvas cria com base no seu tipo de modelo. Para modelos de predição categórica, o Canvas fornece uma *matriz de confusão*, enquanto para modelos de predição numérica, o Canvas fornece gráficos de *resíduos* e *densidade de erros*.

Na **tabela Métricas**, você recebe uma lista completa das pontuações do seu modelo para cada métrica avançada, que é mais abrangente do que a visão geral das pontuações na parte superior da página. As métricas mostradas aqui dependem do seu tipo de modelo. Para obter uma referência para ajudá-lo a entender e interpretar cada métrica, consulte[Referência de métricas](canvas-metrics.md).

Para entender as visualizações que podem aparecer com base no seu tipo de modelo, consulte as seguintes opções:
+ **Matriz de confusão**: O Canvas usa matrizes de confusão para ajudar você a visualizar quando um modelo faz predições corretamente. Em uma matriz de confusão, seus resultados são organizados para comparar os valores previstos com os valores reais. O seguinte exemplo explica como uma matriz de confusão funciona para um modelo de predição de 2 categorias que prevê rótulos positivos e negativos:
  + Positivo verdadeiro: O modelo previu corretamente o positivo quando o rótulo verdadeiro era positivo.
  + Negativo verdadeiro: O modelo previu corretamente o negativo quando o rótulo verdadeiro era negativo.
  + Falso-positivo: O modelo previu incorretamente o positivo previsto quando o rótulo verdadeiro era negativo.
  + Falso-negativo: O modelo previu incorretamente o negativo previsto quando o rótulo verdadeiro era positivo.
+ **Curva de recuperação de precisão**: A curva de recuperação de precisão é uma visualização da pontuação de precisão do modelo traçada em relação à pontuação de recuperação do modelo. Geralmente, um modelo que pode fazer predições perfeitas teria pontuações de precisão e recall que são ambas 1. A curva de recuperação de precisão para um modelo decentemente preciso é bastante alta em precisão e recuperação.
+ **Resíduos**: Resíduos são a diferença entre os valores reais e os valores previstos pelo modelo. Um gráfico de resíduos representa graficamente os resíduos em relação aos valores correspondentes para visualizar sua distribuição e quaisquer padrões ou valores discrepantes. Uma distribuição normal de resíduos em torno de zero indica que o modelo é adequado para os dados. No entanto, se os resíduos estiverem significativamente distorcidos ou apresentarem valores discrepantes, isso pode indicar que o modelo está ajustando demais os dados ou que há outros problemas que precisam ser resolvidos.
+ **Densidade de erro**: Um gráfico de densidade de erro é uma representação da distribuição dos erros cometidos por um modelo. Ele mostra a densidade de probabilidade dos erros em cada ponto, ajudando você a identificar quaisquer áreas onde o modelo pode estar com ajuste excessivo ou cometendo erros sistemáticos.

# Veja os candidatos a modelo na tabela de classificação de modelos
<a name="canvas-evaluate-model-candidates"></a>

Quando você faz uma [compilação padrão](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html) para modelos de previsão tabulares e de séries temporais no Amazon SageMaker Canvas, a SageMaker IA treina vários *candidatos* a modelos (diferentes iterações do modelo) e, por padrão, seleciona aquele com o maior valor para a métrica de otimização. Para modelos tabulares, o Canvas cria até 250 candidatos a modelos diferentes usando vários algoritmos e configurações de hiperparâmetros. Para modelos de predição de séries temporais, o Canvas cria 7 modelos diferentes: um para cada um dos [algoritmos de predição compatíveis](canvas-advanced-settings.md#canvas-advanced-settings-time-series) e um modelo de conjunto que calcula a média das predições dos outros modelos para tentar otimizar a precisão.

O modelo candidato padrão é a única versão que você pode usar no Canvas para ações como fazer predições, registrar-se no registro do modelo ou implantar em um endpoint. No entanto, talvez você queira analisar todos os candidatos a modelo e selecionar um candidato diferente para ser o modelo padrão. Você pode ver todos os candidatos a modelo e mais detalhes sobre cada candidato na tabela de **classificação de modelos** no Canvas.

Para ver a tabela de **classificação do modelo**, faça o seguinte:

1. Abra o aplicativo SageMaker Canvas.

1. No painel de navegação à esquerda, selecione **Meus modelos**.

1. Escolha o modelo que você construiu.

1. No painel de navegação, escolha a guia **Analisar**.

1. Na guia **Analisar**, escolha Tabela de **classificação do modelo**.

A página da tabela de **classificação de modelos** é aberta, que, para modelos tabulares, se parece com a captura de tela a seguir.

![\[A tabela de classificação de modelos, que lista todos os candidatos a modelos que o Canvas treinou.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-model-leaderboard.png)


Para modelos de previsão de séries temporais, você vê 7 modelos, que incluem um para cada um dos algoritmos de previsão de séries temporais compatíveis com o Canvas e um modelo de conjunto. Para obter mais informações sobre os algoritmos, consulte [Configurações avançadas do modelo de previsão de séries temporais](canvas-advanced-settings.md#canvas-advanced-settings-time-series).

Na captura de tela anterior, você pode ver que o primeiro candidato a modelo listado está marcado como o **modelo padrão**. Esse é o modelo candidato com o qual você pode fazer predições ou implantar em endpoints.

Para visualizar informações métricas mais detalhadas sobre os candidatos ao modelo para compará-los, você pode escolher o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) e escolher **Exibir detalhes do modelo**.

**Importante**  
 O carregamento dos detalhes do modelo para candidatos a modelos não padrão pode levar alguns minutos (normalmente menos de 10 minutos), e as taxas de hospedagem de SageMaker IA se aplicam. Para obter mais informações, consulte [Preços de SageMaker IA](https://aws.amazon.com/sagemaker/pricing/).

O candidato ao modelo é aberto na guia **Analisar** e as métricas mostradas são específicas desse candidato ao modelo. Quando terminar de revisar as métricas do candidato a modelo, você pode voltar ou sair da visualização para retornar à tabela de **classificação do modelo**.

Se quiser definir o **modelo padrão** para um candidato diferente, você pode escolher o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) e selecionar **Alterar para modelo padrão**. A alteração do modelo padrão para um treinamento de modelo usando o modo HPO pode levar alguns minutos.

**nota**  
Se seu modelo já estiver implantado em produção, [registrado no registro do modelo](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-register-model.html) ou tiver [automações configuradas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-manage-automations.html), você deverá excluir a implantação, o registro do modelo ou as automações antes de alterar o modelo padrão.

# Referência de métricas
<a name="canvas-metrics"></a>

As seções a seguir descrevem as métricas que estão disponíveis no Amazon SageMaker Canvas para cada tipo de modelo.

## Métricas para predição numérica
<a name="canvas-numeric-metrics"></a>

A lista a seguir define as métricas para previsão numérica no SageMaker Canvas e fornece informações sobre como você pode usá-las.
+ InferenceLatency — O tempo aproximado entre fazer uma solicitação de previsão do modelo e recebê-la de um endpoint em tempo real no qual o modelo é implantado. Essa métrica é medida em segundos e está disponível somente para modelos criados com o modo **Ensembling**.
+ MAE: Erro absoluto médio. Em média, a predição para a coluna de destino é \$1/- \$1MAE\$1 a partir do valor real.

  Mede a diferença entre os valores previstos e reais quando são calculadas a média de todos os valores. O MAE é comumente usado na predição numérica para entender o erro de predição dos modelos. Se as predições forem lineares, o MAE representa a distância média de uma linha prevista até o valor real. O MAE é definido como a soma dos erros absolutos dividida pelo número de observações. Os valores variam de 0 a infinito, com números menores indicando um melhor ajuste do modelo aos dados.
+ MAPE: Erro percentual absoluto médio. Em média, a predição para a coluna de destino é \$1/- \$1MAPE\$1 % a partir do valor real.

  MAPE é a média das diferenças absolutas entre os valores reais e os valores previstos ou estimados, dividida pelos valores reais e expressos em porcentagem. Um MAPE menor indica melhor desempenho, pois significa que os valores previstos ou estimados estão mais próximos dos valores reais.
+ MSE: Erro quadrático médio, ou a média das diferenças quadradas entre os valores previstos e reais.

  Os valores do MSE são sempre positivos. Quanto melhor for o modelo em prever os valores reais, menor será o valor do MSE.
+ R2: A porcentagem da diferença na coluna de destino que pode ser explicada pela coluna de entrada.

  Quantifica o quanto um modelo pode explicar a variância de uma variável dependente. Os valores variam de um (1) a menos um (-1). Números maiores indicam uma fração mais alta da variabilidade explicada. Valores próximos a zero (0) indicam que muito pouco da variável dependente pode ser explicado pelo modelo. Valores negativos indicam um ajuste ruim, e que o modelo é superado por uma função constante (ou uma linha horizontal).
+ RMSE: Raiz do erro quadrático médio ou o desvio padrão dos erros.

  Mede a raiz quadrada da diferença quadrada entre os valores previstos e reais e é calculada a média de todos os valores. É usado para entender o erro da predição de modelo e é uma métrica importante para indicar a presença de grandes erros e valores atípicos no modelo. Os valores variam de zero (0) ao infinito, com números menores indicando um melhor ajuste do modelo aos dados. O RMSE depende da escala e não deve ser usado para comparar conjuntos de dados de tamanhos diferentes.

## Métricas para predição categórica, de imagem e de texto
<a name="canvas-categorical-metrics"></a>

Esta seção define as métricas para previsão categórica no SageMaker Canvas e fornece informações sobre como você pode usá-las.

A seguir está uma lista das métricas disponíveis para a predição de 2 categorias.
+ Precisão: A porcentagem de predições corretas.

  A proporção do número de predições corretas para o número total de predições feitas. A precisão mede o quão próximos estão os valores de classe previstos dos valores reais. Os valores das métricas de precisão variam entre zero (0) e um (1). Um valor de 1 indica precisão perfeita e 0 indica imprecisão perfeita.
+ AUC: Um valor entre 0 e 1 que indica o quão bem seu modelo é capaz de separar as categorias em seu conjunto de dados. Um valor de 1 indica que ele foi capaz de separar as categorias perfeitamente.
+ BalancedAccuracy — Mede a proporção entre previsões precisas e todas as previsões.

  Essa razão é calculada após a normalização de positivos verdadeiros (TP) e negativos verdadeiros (TN) pelo número total de valores positivos (P) e negativos (N). É definido da seguinte forma: `0.5*((TP/P)+(TN/N))`, com valores que variam de 0 a 1. A métrica de precisão equilibrada fornece uma melhor medida de precisão quando o número de positivos ou negativos difere muito um do outro em um conjunto de dados não equilibrado, como quando apenas 1% dos e-mails são spam.
+ F1: uma medida equilibrada de precisão que leva em consideração o saldo para a conta.

  Ele é a média harmônica das pontuações de precisão e recall, definida da seguinte forma: `F1 = 2 * (precision * recall) / (precision + recall)`. As pontuações F1 variam entre 0 e 1. Uma pontuação de 1 indica o melhor desempenho possível, e 0 indica o pior.
+ InferenceLatency — O tempo aproximado entre fazer uma solicitação de previsão do modelo e recebê-la de um endpoint em tempo real no qual o modelo é implantado. Essa métrica é medida em segundos e está disponível somente para modelos criados com o modo **Ensembling**.
+ LogLoss — A perda de log, também conhecida como perda de entropia cruzada, é uma métrica usada para avaliar a qualidade das saídas de probabilidade, em vez das saídas em si. A perda de log é uma métrica importante para indicar quando um modelo faz predições incorretas com altas probabilidades. Os valores variam de 0 a infinito. Um valor de 0 representa um modelo que prevê perfeitamente os dados.
+ Precisão: de todas as vezes em que \$1category x\$1 foi prevista, a predição estava correta em \$1precision\$1% das vezes.

  A precisão mede o quão bem um algoritmo prevê os positivos verdadeiros (TP) de todos os positivos que ele identifica. Ela é definida da seguinte forma: `Precision = TP/(TP+FP)`, com valores que variam de zero (0) a um (1). A precisão é uma métrica importante quando o custo de um falso-positivo é alto. Por exemplo, o custo de um falso-positivo é muito alto se o sistema de segurança de um avião for considerado falsamente seguro para voar. Um falso-positivo (FP) reflete uma predição positiva que, na verdade, é negativa nos dados.
+ Recall: o modelo previu corretamente que \$1recall\$1% seria \$1category x\$1 quando \$1target\$1column\$1 era na verdade \$1category x\$1.

  O recall mede o quão bem um algoritmo prevê corretamente todos os positivos verdadeiros (TP) em um conjunto de dados. Um positivo verdadeiro é uma predição positiva que também é um valor positivo real nos dados. O recall é definido da seguinte forma: `Recall = TP/(TP+FN)`, com valores que variam de 0 a 1. Pontuações mais altas refletem uma melhor capacidade do modelo de prever positivos verdadeiros (TP) nos dados. Frequentemente, é insuficiente medir somente o recall, porque prever cada saída como um positivo verdadeiro produz uma pontuação de recall perfeita.

A seguir está uma lista das métricas disponíveis para a predição de 3 categorias.
+ Precisão: A porcentagem de predições corretas.

  A proporção do número de predições corretas para o número total de predições feitas. A precisão mede o quão próximos estão os valores de classe previstos dos valores reais. Os valores das métricas de precisão variam entre zero (0) e um (1). Um valor de 1 indica precisão perfeita e 0 indica imprecisão perfeita.
+ BalancedAccuracy — Mede a proporção entre previsões precisas e todas as previsões.

  Essa razão é calculada após a normalização de positivos verdadeiros (TP) e negativos verdadeiros (TN) pelo número total de valores positivos (P) e negativos (N). É definido da seguinte forma: `0.5*((TP/P)+(TN/N))`, com valores que variam de 0 a 1. A métrica de precisão equilibrada fornece uma melhor medida de precisão quando o número de positivos ou negativos difere muito um do outro em um conjunto de dados não equilibrado, como quando apenas 1% dos e-mails são spam.
+ F1macro: A pontuação F1macro aplica a pontuação F1 calculando a precisão e o recall e, em seguida, tomando sua média harmônica para calcular a pontuação F1 para cada classe. Em seguida, o F1macro calcula a média das pontuações individuais para obter a pontuação F1macro. As pontuações do F1macro variam entre 0 e 1. Uma pontuação de 1 indica o melhor desempenho possível, e 0 indica o pior.
+ InferenceLatency — O tempo aproximado entre fazer uma solicitação de previsão do modelo e recebê-la de um endpoint em tempo real no qual o modelo é implantado. Essa métrica é medida em segundos e está disponível somente para modelos criados com o modo **Ensembling**.
+ LogLoss — A perda de log, também conhecida como perda de entropia cruzada, é uma métrica usada para avaliar a qualidade das saídas de probabilidade, em vez das saídas em si. A perda de log é uma métrica importante para indicar quando um modelo faz predições incorretas com altas probabilidades. Os valores variam de 0 a infinito. Um valor de 0 representa um modelo que prevê perfeitamente os dados.
+ PrecisionMacro — Mede a precisão calculando a precisão para cada classe e calculando a média das pontuações para obter precisão para várias classes. As pontuações variam de zero (0) a um (1). Pontuações mais altas refletem a capacidade do modelo de prever positivos verdadeiros (TP) a partir de todos os positivos identificados, com a média de várias classes.
+ RecallMacro — Mede a recordação calculando a recordação para cada classe e calculando a média das pontuações para obter a recordação de várias classes. As pontuações variam de 0 a 1. Pontuações mais altas refletem a capacidade do modelo de prever positivos verdadeiros (TP) em um conjunto de dados, enquanto um positivo verdadeiro reflete uma predição positiva que também é um valor positivo real nos dados. Frequentemente, é insuficiente medir apenas o recall, porque prever cada saída como um positivo verdadeiro produzirá uma pontuação de recall perfeita.

Observe que, para a predição de mais de 3 categorias, você também recebe as métricas médias de F1, Exatidão, Precisão e Recall. As pontuações dessas métricas são apenas a média das pontuações métricas de todas as categorias.

## Métricas para predição categórica, de imagem e de texto
<a name="canvas-cv-nlp-metrics"></a>

A seguir está uma lista de métricas disponíveis para predição de imagem e predição de texto.
+ Precisão: A porcentagem de predições corretas.

  A proporção do número de predições corretas para o número total de predições feitas. A precisão mede o quão próximos estão os valores de classe previstos dos valores reais. Os valores das métricas de precisão variam entre zero (0) e um (1). Um valor de 1 indica precisão perfeita e 0 indica imprecisão perfeita.
+ F1: uma medida equilibrada de precisão que leva em consideração o saldo para a conta.

  Ele é a média harmônica das pontuações de precisão e recall, definida da seguinte forma: `F1 = 2 * (precision * recall) / (precision + recall)`. As pontuações F1 variam entre 0 e 1. Uma pontuação de 1 indica o melhor desempenho possível, e 0 indica o pior.
+ Precisão: de todas as vezes em que \$1category x\$1 foi prevista, a predição estava correta em \$1precision\$1% das vezes.

  A precisão mede o quão bem um algoritmo prevê os positivos verdadeiros (TP) de todos os positivos que ele identifica. Ela é definida da seguinte forma: `Precision = TP/(TP+FP)`, com valores que variam de zero (0) a um (1). A precisão é uma métrica importante quando o custo de um falso-positivo é alto. Por exemplo, o custo de um falso-positivo é muito alto se o sistema de segurança de um avião for considerado falsamente seguro para voar. Um falso-positivo (FP) reflete uma predição positiva que, na verdade, é negativa nos dados.
+ Recall: o modelo previu corretamente que \$1recall\$1% seria \$1category x\$1 quando \$1target\$1column\$1 era na verdade \$1category x\$1.

  O recall mede o quão bem um algoritmo prevê corretamente todos os positivos verdadeiros (TP) em um conjunto de dados. Um positivo verdadeiro é uma predição positiva que também é um valor positivo real nos dados. O recall é definido da seguinte forma: `Recall = TP/(TP+FN)`, com valores que variam de 0 a 1. Pontuações mais altas refletem uma melhor capacidade do modelo de prever positivos verdadeiros (TP) nos dados. Frequentemente, é insuficiente medir somente o recall, porque prever cada saída como um positivo verdadeiro produz uma pontuação de recall perfeita.

Observe que, para modelos de predição de imagem e texto em que você está prevendo 3 ou mais categorias, você também recebe as métricas *médias* de F1, Exatidão, Precisão e Recall. As pontuações dessas métricas são apenas a média das pontuações métricas de todas as categorias.

## Métricas para previsões de séries temporais
<a name="canvas-time-series-forecast-metrics"></a>

O seguinte define as métricas avançadas para previsões de séries temporais no Amazon SageMaker Canvas e fornece informações sobre como você pode usá-las.
+ Perda Quantílica Média Ponderada (wQl): Avalia a previsão calculando a média da precisão nos quantis P10, P50 e P90. Um valor mais baixo indica um modelo mais preciso.
+ Erro percentual absoluto ponderado (WAPE): A soma do erro absoluto normalizado pela soma da meta absoluta, que mede o desvio geral dos valores previstos dos valores observados. Um valor menor indica um modelo mais preciso, onde WAPE = 0 é um modelo sem erros.
+ Root Mean Square Error (RMSE): A raiz quadrada dos erros quadráticos médios. Um RMSE mais baixo indica um modelo mais preciso, onde RMSE = 0 é um modelo sem erros.
+ Erro percentual absoluto médio (MAPE): O erro percentual (diferença percentual do valor médio previsto versus o valor real) calculado em média em todos os pontos temporais. Um valor menor indica um modelo mais preciso, onde MAPE = 0 é um modelo sem erros.
+ Erro médio absoluto em escala (MASE): O erro médio absoluto da previsão normalizado pelo erro médio absoluto de um método simples de previsão de linha de base. Um valor mais baixo indica um modelo mais preciso, onde MASE < 1 é estimado como melhor do que a linha de base e MASE > 1 é estimado como pior do que a linha de base.

# Previsões com modelos personalizados
<a name="canvas-make-predictions"></a>

Use o modelo personalizado que você criou no SageMaker Canvas para fazer previsões para seus dados. As seções a seguir mostram como fazer predições para modelos de predição numéricos categóricos, modelos de predição de imagem e modelos de predição de texto.

Modelos personalizados de predição numérica e categórica,predição de imagem e predição de texto permitem fazer os seguintes tipos de predições para seus dados:
+ **Previsões únicas**: Uma **predição única** é quando você só precisa fazer uma predição. Por exemplo, você tem uma imagem ou passagem de texto que deseja classificar.
+ **Previsões em lote**: Uma **predição em lote** é quando você gostaria de fazer predições para um conjunto de dados inteiro. Você pode fazer predições em lote para conjuntos de dados com mais de 1 TB. Por exemplo, você pode ter um arquivo CSV de revisões de clientes para as quais gostaria de prever o sentimento do cliente ou ter arquivos de imagem que gostaria de classificar. Você deve fazer predições com um conjunto de dados que corresponda ao seu conjunto de dados de entrada. O Canvas oferece a capacidade de fazer predições manuais em lote ou você pode configurar predições automáticas em lote que são executadas sempre que você atualiza um conjunto de dados.

Para cada previsão ou conjunto de previsões, o SageMaker Canvas retorna o seguinte:
+ Os valores previstos
+ A probabilidade de o valor previsto estar correto

**Conceitos básicos**

Escolha um dos fluxos de trabalho a seguir para fazer predições com seu modelo personalizado:
+ [Previsões em lote no Canvas SageMaker](canvas-make-predictions-batch.md)
+ [Faça predições únicas](canvas-make-predictions-single.md)

Depois de gerar predições com seu modelo, você também pode fazer o seguinte:
+ [Atualize seu modelo adicionando versões.](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-update-model.html) Se quiser tentar melhorar a precisão da predição do seu modelo, você pode criar novas versões do seu modelo. Você pode optar por clonar a configuração e o conjunto de dados originais da construção do modelo ou alterar sua configuração e selecionar um conjunto de dados diferente. Depois de adicionar uma nova versão, você pode revisar e comparar versões para escolher a melhor.
+ [Registre uma versão do modelo no registro de modelos de SageMaker IA](canvas-register-model.md). Você pode registrar versões do seu SageMaker modelo no Registro de Modelos, que é um recurso para rastrear e gerenciar o status das versões do modelo e dos pipelines de aprendizado de máquina. Um cientista de dados ou usuário MLOps da equipe com acesso ao Registro de SageMaker Modelos pode revisar as versões do seu modelo e aprová-las ou rejeitá-las antes de implantá-las na produção.
+ [Envie suas previsões em lote para o Quick.](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-send-predictions.html) No Quick, você pode criar e publicar painéis com seus conjuntos de dados de previsão em lote. Isso pode ajudar você a analisar e compartilhar os resultados gerados pelo seu modelo personalizado.

# Faça predições únicas
<a name="canvas-make-predictions-single"></a>

**nota**  
Esta seção descreve como obter predições únicas do seu modelo dentro da aplicação Canvas. Para obter informações sobre como fazer invocações em tempo real em um ambiente de produção implantando seu modelo em um endpoint, consulte [Implantar seus modelos em um endpoint](canvas-deploy-model.md).

Faça predições únicas se quiser obter uma predição para um único ponto de dados. Você pode usar esse atributo para obter predições em tempo real ou experimentar a alteração de valores individuais para ver como eles afetam o resultado da predição. Observe que predições únicas dependem de um endpoint de inferência assíncrona, que é desligado após ficar inativo (ou não receber nenhuma solicitação de predição) por duas horas.

Escolha um dos procedimentos a seguir com base no tipo de modelo.

## Faça predições únicas com modelos de predição numéricos e categóricos
<a name="canvas-make-predictions-numeric-categorical"></a>

Para fazer uma única predição para um modelo de predição numérica ou categórica, faça o seguinte:

1. No painel de navegação à esquerda da aplicação Canvas, selecione **Meus modelos**.

1. Na página **Meus modelos**, selecione o seu modelo.

1. Depois de abrir seu modelo, escolha a guia **Previsão**.

1. Na página **Executar predições**, escolha **Previsão única**.

1. Para cada campo **Coluna**, que representa as colunas dos seus dados de entrada, você pode alterar o **Valor**. Selecione a lista suspensa **Valor** que você deseja alterar. Para campos numéricos, você pode inserir um novo número. Para campos com rótulos, você pode selecionar um rótulo diferente.

1. Quando você estiver pronto para gerar a predição, no painel de **Previsão** à direita, escolha **Atualizar**.

No painel de **Previsão** à direita, você verá o resultado da predição. Você pode **copiar** o gráfico de resultados da predição ou também pode escolher fazer o **Download** do gráfico de resultados da predição como uma imagem ou baixar os valores e a predição como um arquivo CSV.

## Faça predições únicas com modelos de predição de séries temporais
<a name="canvas-make-predictions-forecast"></a>

Para fazer uma predição única para um modelo de predição de séries temporais, faça o seguinte:

1. No painel de navegação à esquerda da aplicação Canvas, selecione **Meus modelos**.

1. Na página **Meus modelos**, selecione o seu modelo.

1. Depois de abrir seu modelo, escolha a guia **Previsão**.

1. Escolha **Predição única**.

1. Em **Item**, selecione o item para o qual você deseja prever valores.

1. Se você usou um grupo por coluna para treinar o modelo, selecione o grupo por categoria para o item.

O resultado da predição é carregado no painel abaixo, mostrando um gráfico com a predição para cada quantil. Escolha **Visualização do esquema** para ver os valores numéricos previstos. Você também pode escolher **Baixar** para baixar os resultados da predição como uma imagem ou um arquivo CSV.

## Faça predições únicas com modelos de predição de imagem
<a name="canvas-make-predictions-image"></a>

Para fazer uma predição única para um modelo de predição de imagem de rótulo único, faça o seguinte:

1. No painel de navegação à esquerda da aplicação Canvas, selecione **Meus modelos**.

1. Na página **Meus modelos**, selecione o seu modelo.

1. Depois de abrir seu modelo, escolha a guia **Previsão**.

1. Na página **Executar predições**, escolha **Previsão única**.

1. Escolha **Importar imagem**.

1. Você será solicitado a carregar uma imagem. É possível carregar uma imagem do seu computador local ou de um bucket do Amazon S3.

1. Escolha **Importar** para importar sua imagem e gerar a predição.

No painel direito de **Resultados da predição**, o modelo lista os rótulos possíveis para a imagem junto com uma pontuação de **Confiança** para cada rótulo. Por exemplo, o modelo pode prever o rótulo **Sea** para uma imagem com uma pontuação de confiança de 96%. O modelo pode ter previsto a imagem como um **Glacier** com apenas uma pontuação de confiança de 4%. Portanto, você pode determinar se seu modelo está bastante confiante na previsão de imagens do mar.

## Faça predições únicas com modelos de predição de texto
<a name="canvas-make-predictions-text"></a>

Para fazer uma única predição para um modelo de predição de texto com várias categorias, faça o seguinte:

1. No painel de navegação à esquerda da aplicação Canvas, selecione **Meus modelos**.

1. Na página **Meus modelos**, selecione o seu modelo.

1. Depois de abrir seu modelo, escolha a guia **Previsão**.

1. Na página **Executar predições**, escolha **Previsão única**.

1. Em **Campo de texto**, insira o texto para o qual você gostaria de obter uma predição.

1. Escolha **Gerar resultados de predição** para obter sua predição.

No painel à direita **Resultados da predição**, você receberá uma análise do seu texto, além de uma pontuação de **Confiança** para cada resultado ou rótulo possível. Por exemplo, se você inseriu uma boa avaliação de um produto, você pode obter **Positiva** com uma pontuação de confiança de 85%, enquanto a pontuação de confiança de **Neutro** pode ser de 10% e a pontuação de confiança **Negativa** pode se de apenas 5%.

# Previsões em lote no Canvas SageMaker
<a name="canvas-make-predictions-batch"></a>

Faça predições em lote quando tiver um conjunto de dados inteiro para o qual gostaria de gerar predições. O Amazon SageMaker Canvas oferece suporte a previsões em lote para conjuntos de dados de até 5 tamanhos PBs .

Há dois tipos de predições em lote que você pode fazer:
+ As predições [manuais](canvas-make-predictions-batch-manual.md) em lote ocorrem quando você tem um conjunto de dados para o qual deseja fazer predições únicas.
+ Previsões [automáticas](canvas-make-predictions-batch-auto.md) em lote ocorrem quando você define uma configuração que é executada sempre que um conjunto de dados específico é atualizado. Por exemplo, se você configurou atualizações semanais em um conjunto de dados de inventário do SageMaker Canvas, você pode configurar previsões automáticas em lote que são executadas sempre que você atualiza o conjunto de dados. Depois de configurar um fluxo de trabalho automatizado de predições em lote, consulte [Como gerenciar automações](canvas-manage-automations.md) para obter mais informações sobre como visualizar e editar os detalhes da sua configuração. Para obter mais informações sobre como configurar a atualizações automáticas de conjuntos de dados, consulte [Configurar atualizações automáticas para um conjunto de dados](canvas-update-dataset-auto.md).

**nota**  
Os modelos de previsão de séries temporais não permitem previsões em lote automáticas.  
Você só pode configurar predições automáticas em lote para conjuntos de dados importados por meio de upload local ou do Amazon S3. Além disso, as predições em lote automáticas só podem ser executadas enquanto você estiver logado na aplicação Canvas. Se você sair do Canvas, os trabalhos de predição automática em lote serão retomados quando você fizer login novamente.

Para começar, revise [Requisitos do conjunto de dados de predição em lote](canvas-make-predictions-batch-preqreqs.md) e escolha um dos seguintes fluxos de trabalho de predição de lotes manuais ou automáticos:

**Topics**
+ [Requisitos do conjunto de dados de predição em lote](canvas-make-predictions-batch-preqreqs.md)
+ [Faça predições em lote manuais](canvas-make-predictions-batch-manual.md)
+ [Faça predições automáticas em lote](canvas-make-predictions-batch-auto.md)
+ [Edite sua configuração automática de predição de lote](canvas-make-predictions-batch-auto-edit.md)
+ [Exclua sua configuração automática de predição em lote](canvas-make-predictions-batch-auto-delete.md)
+ [Visualize seus trabalhos de predição em lotes](canvas-make-predictions-batch-auto-view.md)

# Requisitos do conjunto de dados de predição em lote
<a name="canvas-make-predictions-batch-preqreqs"></a>

Para predições em lote, certifique-se de que seus conjuntos de dados atendam aos requisitos descritos em [Criar um conjunto de dados](canvas-import-dataset.md). Se seu conjunto de dados for maior que 5 GB, o Canvas usa o Amazon EMR Sem Servidor para processar seus dados e dividi-los em lotes menores. Depois que seus dados forem divididos, o Canvas usa o SageMaker AI Batch Transform para fazer previsões. Você pode ver cobranças desses dois serviços depois de executar predições em lote. Para mais informações, consulte [Preços do Canvas](https://aws.amazon.com/sagemaker/canvas/pricing/).

Talvez você não consiga fazer predições em alguns conjuntos de dados porque eles têm *esquemas* incompatíveis. Um *esquema* é uma estrutura organizacional. Para um conjunto de dados tabulares, o esquema envolve os nomes das colunas e o tipo de dados dos dados nas colunas. Um esquema incompatível pode ocorrer por um dos seguintes motivos:
+ O conjunto de dados que você está usando para fazer predições tem menos colunas do que o conjunto de dados que você está usando para criar o modelo.
+ Os tipos de dados nas colunas que você usou para criar o conjunto de dados podem ser diferentes dos tipos de dados no conjunto de dados que você está usando para fazer predições.
+ O conjunto de dados que você está usando para fazer predições e o conjunto de dados que você usou para compilar o modelo têm nomes de colunas que não coincidem. Os nomes das colunas diferenciam letras maiúsculas. `Column1` não é o mesmo que `column1`.

Para garantir que você possa gerar predições em lote com êxito, combine o esquema do seu conjunto de dados de predições em lote com o conjunto de dados que você usou para treinar o modelo.

**nota**  
Para predições em lote, se você eliminou alguma coluna ao ao compilar seu modelo, o Canvas adiciona as colunas eliminadas de volta aos resultados da predição. No entanto, o Canvas não adicionará as colunas eliminadas às suas predições em lote para modelos de séries temporais.

# Faça predições em lote manuais
<a name="canvas-make-predictions-batch-manual"></a>

Escolha um dos seguintes procedimentos para fazer predições manuais de lote com base no tipo do seu modelo:

## Faça predições manuais em lote com modelos de predição numéricos, categóricos e de séries temporais
<a name="canvas-make-predictions-batch-numeric-categorical"></a>

Para fazer predições manuais em lote para tipos de modelos de predição numéricos, categóricos e de séries temporais, faça o seguinte:

1. No painel de navegação à esquerda da aplicação Canvas, selecione **Meus modelos**.

1. Na página **Meus modelos**, selecione o seu modelo.

1. Depois de abrir seu modelo, escolha a guia **Previsão**.

1. Na página **Executar predições**, escolha **Previsão em lote**.

1. Escolha **Selecionar conjunto de dados** para escolher um conjunto de dados para gerar predições.

1. Na lista de conjuntos de dados disponíveis, selecione seu conjunto de dados e escolha **Gerar predições** para obter suas predições.

Depois que a execução do trabalho de predição for concluída, haverá um conjunto de dados de saída listado na mesma página na seção **Previsões**. Esse conjunto de dados contém seus resultados e, se você selecionar o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), poderá escolher **Pré-visualizar** os dados de saída. Você pode ver os dados de entrada correspondentes à predição e a probabilidade de que a predição esteja correta. Em seguida, você pode escolher **Baixar predição** para baixar os resultados como um arquivo.

## Faça predições em lote manuais com modelos de predição de imagem
<a name="canvas-make-predictions-batch-image"></a>

Para fazer predições em lote manuais para um modelo de predição de rotulagem de imagens únicas, faça o seguinte:

1. No painel de navegação à esquerda da aplicação Canvas, selecione **Meus modelos**.

1. Na página **Meus modelos**, selecione o seu modelo.

1. Depois de abrir seu modelo, escolha a guia **Previsão**.

1. Na página **Executar predições**, escolha **Previsão em lote**.

1. Escolha **Selecionar conjunto de dados** se você já tiver importado seu conjunto de dados. Caso contrário, escolha **Importar novo conjunto de dados** e, em seguida, você será direcionado pelo fluxo de trabalho de importação de dados.

1. Na lista de conjuntos de dados disponíveis, selecione seu conjunto de dados e escolha **Gerar predições** para obter suas predições.

Depois que a execução do trabalho de predição for concluída, na página **Executar predições**, você verá um conjunto de dados de saída listado em **Previsões**. Esse conjunto de dados contém seus resultados e, se você selecionar o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), poderá escolher **Exibir resultados de predição** para visualizar os dados de saída. Você pode ver as imagens junto com seus rótulos previstos e pontuações de confiança. Em seguida, você pode escolher **Baixar predição** para baixar os resultados como um arquivo CSV ou ZIP.

## Faça predições em lote manuais com modelos de predição de texto
<a name="canvas-make-predictions-batch-text"></a>

Para fazer predições manuais em lote para um modelo de predição de texto em múltiplas categorias, faça o seguinte:

1. No painel de navegação à esquerda da aplicação Canvas, selecione **Meus modelos**.

1. Na página **Meus modelos**, selecione o seu modelo.

1. Depois de abrir seu modelo, escolha a guia **Previsão**.

1. Na página **Executar predições**, escolha **Previsão em lote**.

1. Escolha **Selecionar conjunto de dados** se você já tiver importado seu conjunto de dados. Caso contrário, escolha **Importar novo conjunto de dados** e, em seguida, você será direcionado pelo fluxo de trabalho de importação de dados. O conjunto de dados escolhido deve ter a mesma coluna de origem do conjunto de dados com o qual você criou o modelo.

1. Na lista de conjuntos de dados disponíveis, selecione seu conjunto de dados e escolha **Gerar predições** para obter suas predições.

Depois que a execução do trabalho de predição for concluída, na página **Executar predições**, você verá um conjunto de dados de saída listado em **Previsões**. Esse conjunto de dados contém seus resultados e, se você selecionar o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), poderá escolher **Pré-visualizar** para ver os dados de saída. Você pode ver as imagens junto com seus rótulos previstos e pontuações de confiança. Em seguida, você pode escolher **Baixar predição** para baixar os resultados.

# Faça predições automáticas em lote
<a name="canvas-make-predictions-batch-auto"></a>

**nota**  
Os modelos de previsão de séries temporais não permitem previsões em lote automáticas.

Para configurar uma programação para predições automáticas em lote, faça o seguinte:

1. No painel de navegação à esquerda do Canvas, selecione **Meus modelos**.

1. Escolha seu modelo.

1. Escolha a guia **Prever**.

1. Escolha **Previsões em lote**.

1. Em **Gerar predições**, escolha **Automático**.

1. A caixa de diálogo **Automatizar predições em lote** é exibida. Escolha **Selecionar conjunto de dados** e escolha o conjunto de dados para o qual você deseja automatizar as predições. Observe que você só pode selecionar um conjunto de dados que foi importado por meio de upload local ou do Amazon S3.

1. Depois de selecionar um conjunto de dados, escolha **Configurar**.

O Canvas executa um trabalho de predições em lote para o conjunto de dados depois que você define a configuração. Então, toda vez que você [Atualizar um conjunto de dados](canvas-update-dataset.md), manual ou automaticamente, outro trabalho de predição em lote é executado.

Depois que a execução do trabalho de predição for concluída, na página **Executar predições**, você verá um conjunto de dados de saída listado em **Previsões**. Esse conjunto de dados contém seus resultados e, se você selecionar o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), poderá escolher **Pré-visualizar** os dados de saída. Você pode ver os dados de entrada correspondentes à predição e a probabilidade de que a predição esteja correta. Em seguida, você pode escolher **Download** para baixar os resultados.

As seções a seguir descrevem como visualizar, atualizar e excluir sua configuração automática de predição em lote por meio da página **Conjuntos de dados** na aplicação Canvas. Você só pode configurar o máximo de 20 configurações automáticas no Canvas. Para obter mais informações sobre como visualizar suas predições em lote automatizadas, histórico de trabalhos ou fazer alterações em sua configuração automática por meio da página **Automações**, consulte [Como gerenciar automações](canvas-manage-automations.md).

# Edite sua configuração automática de predição de lote
<a name="canvas-make-predictions-batch-auto-edit"></a>

É possível fazer alterações na configuração de atualização automática de um conjunto de dados, como alterar a frequência das atualizações. Você também pode desativar sua configuração de atualização automática para pausar as atualizações do seu conjunto de dados.

Ao editar uma configuração de predição em lote, você pode alterar o conjunto de dados de destino, mas não a frequência (já que as predições em lote automáticas ocorrem sempre que o conjunto de dados é atualizado).

Para editar sua configuração atualizada automática, faça o seguinte:

1. Vá até a guia **Previsão** do seu modelo.

1. Em **Previsões**, selecione a guia **Configuração**.

1. Encontre sua configuração e escolha o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. Na lista suspensa, escolha **Atualizar configuração**.

1. A caixa de diálogo **Automatizar predição em lote** é aberta. Você pode selecionar outro conjunto de dados e escolher **Configurar** para salvar suas alterações.

Sua configuração automática de predições em lote agora está atualizada.

Para pausar suas predições em lote automáticas, desative sua configuração automática fazendo o seguinte:

1. Vá até a guia **Previsão** do seu modelo.

1. Em **Previsões**, selecione a guia **Configuração**.

1. Encontre sua configuração na lista e desative o botão de **atualização automática**.

As predições em lote automáticas agora estão pausadas. Você pode alternar essa opção novamente a qualquer momento para retomar a atualização agendada.

# Exclua sua configuração automática de predição em lote
<a name="canvas-make-predictions-batch-auto-delete"></a>

Para saber como excluir sua configuração automática de predição em lote, consulte [Excluir uma configuração automática](canvas-manage-automations-delete.md).

Você também pode excluir sua configuração da seguinte maneira:

1. Vá até a guia **Previsão** do seu modelo.

1. Em **Previsões**, selecione a guia **Configuração**.

1. Encontre sua configuração na lista e escolha o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. Na lista suspensa, escolha **Excluir configurações**.

Sua configuração agora deve ser excluída.

# Visualize seus trabalhos de predição em lotes
<a name="canvas-make-predictions-batch-auto-view"></a>

Para visualizar seu histórico de trabalhos para suas predições em lote automáticas, acesse a guia **Previsão** do seu modelo.

Cada tarefa automática de predição em lote aparece na guia **Previsões** do seu modelo. Em **Previsões**, você pode ver a guia **Todos os trabalhos** e as guias de **Configuração**:
+ **Todos os trabalhos**: Nessa guia, você pode ver todas as tarefas de predição em lote desse modelo. Você pode filtrar os trabalhos por nome de configuração: Para cada trabalho, você verá o seguinte:
  + **Status**: O status atual do seu trabalho de predição em lote. Se o status for **Falha** ou **Falha parcial**, você poderá passar o mouse sobre o status para ver uma mensagem de erro mais detalhada para ajudá-lo a solucionar o problema.
  + **Conjunto de dados de entrada**: O nome do seu conjunto de dados de entrada do Canvas, incluindo a versão do conjunto de dados.
  + **Tipo de predição**: se o trabalho de predição foi automático ou manual.
  + **Linhas**: O número de linhas previsto.
  + **Nome da configuração**: O nome da configuração do trabalho de predição em lote.
  + **QuickSight**— Descreve se você enviou as previsões em lote para o Quick.
  + **Criado**: O horário de criação do trabalho de predição em lote.

  Se você escolher o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), poderá escolher **Exibir detalhes**, **Visualizar previsão**, **Baixar previsão** ou **Enviar para o Quick**. Se você escolher **Exibir detalhes**, uma página será aberta mostrando os detalhes completos do trabalho de previsão em lote, incluindo o status, as configurações de dados de entrada e saída, informações sobre as instâncias usadas para concluir o trabalho e o acesso aos CloudWatch registros da Amazon. A tela deve ser algo semelhante ao exibido a seguir.  
![\[Página de detalhes do trabalho de predição em lote mostrando todos os detalhes adicionais sobre um trabalho.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-view-batch-prediction-job-details.png)
+ **Configuração**: Nessa guia, você pode ver todas as configurações automáticas de predição em lotes que você criou para esse modelo. Para cada configuração, você pode ver campos como o registro de data e hora de quando ela foi **Criada**, o **conjunto de dados de entrada** que ele rastreia para atualizações e o **Próximo trabalho agendado**, que é o horário em que o próximo trabalho de predição automática está agendado para começar. Se você escolher o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)), poderá escolher **Visualizar todos os trabalhos** para ver o histórico de trabalhos e os trabalhos em andamento para a configuração.



# Envie previsões para o Quick
<a name="canvas-send-predictions"></a>

**nota**  
Você pode enviar previsões em lote para o Quick para modelos de previsão numérica e categórica e de previsão de séries temporais. Os modelos de predição de imagem com rótulo único e predição de texto com várias categorias são excluídos.

Depois de gerar previsões em lote com modelos tabulares personalizados no SageMaker Canvas, você pode enviar essas previsões como arquivos CSV para o Quick, que é um serviço de business intelligence (BI) para criar e publicar painéis preditivos.

Por exemplo, se você criou um modelo de previsão de 2 categorias para determinar se um cliente abandonará, poderá criar um painel visual e preditivo no Quick para mostrar a porcentagem de clientes que se espera que abandonem. Para saber mais sobre o Quick, consulte o [Guia rápido do usuário](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html).

As seções a seguir mostram como enviar suas previsões em lote para análise no Quick.

## Antes de começar
<a name="canvas-send-predictions-prereqs"></a>

Seu usuário deve ter as permissões necessárias AWS Identity and Access Management (IAM) para enviar suas previsões para o Quick. Seu administrador pode configurar as permissões do IAM para seu usuário. Para obter mais informações, consulte [Conceda a seus usuários permissões para enviar previsões para o Quick](canvas-quicksight-permissions.md).

Sua conta do Quick deve conter o `default` namespace, que é configurado quando você cria sua conta do Quick pela primeira vez. Entre em contato com seu administrador para ajudá-lo a obter acesso ao Quick. Para obter mais informações, consulte [Configurando o Quick](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html) no *Guia rápido do usuário*.

Sua conta Quick deve ser criada na mesma região do seu aplicativo Canvas. Se a região inicial da sua conta Quick for diferente da região do seu aplicativo Canvas, você deve [fechar](https://docs.aws.amazon.com/quicksight/latest/user/closing-account.html) e recriar sua conta Quick ou [configurar um aplicativo Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html#canvas-prerequisites) na mesma região da sua conta Quick. Você pode verificar sua região inicial rápida fazendo o seguinte (supondo que você já tenha uma conta rápida):

1. Abra seu [console Quick](https://quicksight.aws.amazon.com/).

1. Quando a página carrega, sua região inicial rápida é anexada ao URL no seguinte formato:`https://<your-home-region>.quicksight.aws.amazon.com/`.

Você deve saber os nomes de usuário dos usuários do Quick para os quais deseja enviar suas previsões. Você pode enviar predições para si mesmo ou para outros usuários que tenham as permissões corretas. Todos os usuários para os quais você envia previsões devem estar no `default` [namespace](https://docs.aws.amazon.com/quicksight/latest/user/namespaces.html) da sua conta do Quick e ter a `Admin` função `Author` or no Quick.

Além disso, o Quick deve ter acesso ao bucket Amazon S3 padrão de SageMaker IA para seu domínio, que é nomeado com o seguinte formato:. `sagemaker-{REGION}-{ACCOUNT_ID}` A região deve ser a mesma que a região inicial da sua conta Quick e a região do seu aplicativo Canvas. *Para saber como fornecer acesso rápido às previsões de lote armazenadas em seu bucket do Amazon S3, consulte o [tópico Não consigo me conectar ao Amazon S3](https://docs.aws.amazon.com/quicksight/latest/user/troubleshoot-connect-S3.html) no Guia rápido do usuário.*

## Formatos de dados compatíveis
<a name="canvas-send-predictions-formatting"></a>

Antes de enviar suas previsões, verifique se o formato de dados de suas previsões em lote é compatível com o Quick.
+ Para saber mais sobre os formatos de dados aceitos para dados de séries temporais, consulte [Formatos de data compatíveis](https://docs.aws.amazon.com/quicksight/latest/user/supported-date-formats.html) no Guia *rápido do usuário*.
+ Para saber mais sobre valores de dados que podem impedir o envio para o Quick, consulte [Valores não suportados nos dados no](https://docs.aws.amazon.com/quicksight/latest/user/unsupported-data-values.html) *Guia Rápido do Usuário*.

Observe também que o Quick usa o caractere `"` como um qualificador de texto, portanto, se seus dados do Canvas contiverem algum `"` caractere, certifique-se de fechar todas as aspas correspondentes. Quaisquer cotações incompatíveis podem causar problemas ao enviar seu conjunto de dados para o Quick.

## Envie suas previsões em lote para o Quick
<a name="canvas-send-predictions-send"></a>

Use o procedimento a seguir para enviar suas previsões para o Quick:

1. Abra o aplicativo SageMaker Canvas.

1. No painel de navegação à esquerda, selecione **Meus modelos**.

1. Na página **Meus modelos**, selecione o seu modelo.

1. Escolha a guia **Prever**.

1. Em **Previsões**, selecione o conjunto de dados (ou conjuntos de dados) das predições em lote que você gostaria de compartilhar. Você pode compartilhar até 5 conjuntos de dados de predições em lote por vez.

1. Depois de selecionar seu conjunto de dados, escolha **Enviar para o Quick**.
**nota**  
O botão **Enviar para o Quick** não é ativado a menos que você selecione um ou mais conjuntos de dados.

   Como alternativa, você pode visualizar suas predições escolhendo o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) e, depois, **Exibir os resultados das predições**. Na visualização prévia do conjunto de dados, você pode escolher **Enviar para o Quick**. A captura de tela a seguir mostra o botão **Enviar para o Quick** em uma visualização prévia do conjunto de dados.  
![\[Captura de tela de uma visualização prévia do conjunto de dados com o botão Enviar para o Quick na parte inferior.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/send-to-quicksight-preview.png)

1. Na caixa de diálogo **Enviar para Rápido**, faça o seguinte:

   1. Para **QuickSight usuários**, insira o nome dos usuários do Quick para os quais você deseja enviar suas previsões. Se você quiser enviá-los para si mesmo, digite seu próprio nome de usuário. Você só pode enviar previsões para usuários no `default` namespace da conta Quick, e o usuário deve ter a `Admin` função `Author` or no Quick.

   1. Selecione **Enviar**.

   A captura de tela a seguir mostra a caixa de diálogo **Enviar para o Quick**:  
![\[A caixa de diálogo Enviar para o Quick.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/send-to-quicksight.png)

Depois de enviar suas previsões em lote, o **QuickSight**campo dos conjuntos de dados que você enviou é exibido como. `Sent` Na caixa de confirmação que confirma que suas previsões foram enviadas, você pode escolher **Abrir Rápido para abrir** seu aplicativo Rápido. Se você terminou de usar o Canvas, você deve fazer [logout](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-log-out.html) da aplicação Canvas.

Os usuários do Quick para os quais você enviou conjuntos de dados podem abrir o aplicativo Quick e visualizar os conjuntos de dados do Canvas que foram compartilhados com eles. Em seguida, eles podem criar painéis preditivos com os dados. Para obter mais informações, consulte [Introdução à análise rápida de dados](https://docs.aws.amazon.com/quicksight/latest/user/getting-started.html) no *Guia rápido do usuário*.

Por padrão, todos os usuários para os quais você envia previsões têm permissões de proprietário para o conjunto de dados no Quick. Os proprietários podem criar análises, atualizar, editar, excluir e compartilhar novamente conjuntos de dados. As alterações que os proprietários fazem em um conjunto de dados alteram o conjunto de dados de todos os usuários com acesso. Para alterar as permissões, acesse o conjunto de dados no Quick e gerencie suas permissões. Para obter mais informações, consulte [Visualização e edição das permissões dos usuários com os quais um conjunto de dados é compartilhado](https://docs.aws.amazon.com/quicksight/latest/user/sharing-data-sets.html#view-users-data-set) no *Guia rápido do usuário*.

# Baixe um modelo de caderno
<a name="canvas-notebook"></a>

**nota**  
O atributo de caderno de modelos está disponível para modelos tabulares de construção rápida e padrão, além de modelos de base ajustados. Os cadernos de modelo não são compatíveis com modelos de predição de imagem, de texto ou de séries temporais.  
Se quiser gerar um modelo de caderno para um modelo tabular criado antes do lançamento desse atributo, você deve reconstruir o modelo para gerar um caderno.

Para modelos elegíveis que você cria com sucesso no Amazon SageMaker Canvas, um notebook Jupyter contendo um relatório de todas as etapas de construção do modelo é gerado. Esse notebook Jupyter contém código Python que você pode executar localmente ou em um ambiente como o Amazon SageMaker Studio Classic para replicar as etapas necessárias para criar seu modelo. O caderno pode ser útil se você quiser experimentar o código ou ver os detalhes do backend de como o Canvas cria modelos.

Para acessar ao modelo do caderno, faça o seguinte:

1. Abra o aplicativo SageMaker Canvas.

1. No painel de navegação à esquerda, selecione **Meus modelos**.

1. Escolha o modelo e a versão que você construiu.

1. Na página da versão do modelo, escolha o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) no cabeçalho.

1. No menu suspenso, escolha **Exibir caderno**.

1. Um pop-up aparece com o conteúdo do caderno. Você pode escolher **Baixar** e, em seguida, fazer o seguinte:

   1. Escolha **Baixar** para salvar o conteúdo do caderno em seu dispositivo local.

   1. Escolha **Copiar URI do S3** para copiar o local do Amazon S3 onde o caderno está armazenado. O caderno é armazenado no bucket do Amazon S3 especificado em sua **configuração de armazenamento do Canvas**, que está configurada na [Pré-requisitos para configurar o Amazon Canvas SageMaker](canvas-getting-started.md#canvas-prerequisites) seção.

Agora você deve ser capaz de visualizar o caderno localmente ou como um objeto no Amazon S3. Você pode carregar o caderno em um IDE para editar e executar o código, ou você pode compartilhar o caderno com outras pessoas em sua organização para revisar.

# Envie seu modelo para o Quick
<a name="canvas-send-model-to-quicksight"></a>

Se você usa o Quick e deseja aproveitar o SageMaker Canvas em suas visualizações do Quick, você pode criar um modelo do Amazon SageMaker Canvas e usá-lo como um *campo preditivo* em seu conjunto de dados do Quick. Um *campo preditivo* é um campo em seu conjunto de dados Quick que pode fazer previsões para uma determinada coluna em seu conjunto de dados, semelhante à forma como os usuários do Canvas fazem previsões únicas ou em lote com um modelo. Para saber mais sobre como integrar as habilidades preditivas do Canvas em seus conjuntos de dados do Quick, consulte [Integração com o SageMaker Canvas no Guia](https://docs.aws.amazon.com/quicksight/latest/user/sagemaker-canvas-integration.html) [Rápido do Usuário](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html).

As etapas a seguir explicam como você pode adicionar um campo preditivo ao seu conjunto de dados do Quick usando um modelo Canvas:

1. Abra a aplicação Canvas e crie um modelo com o seu conjunto de dados.

1. Depois de criar o modelo no Canvas, envie o modelo para o Quick. Um arquivo de esquema é baixado automaticamente para sua máquina local quando você envia o modelo para o Quick. Você carrega esse arquivo de esquema para o Quick na próxima etapa.

1. Abra o Quick e escolha um conjunto de dados com o mesmo esquema do conjunto de dados que você usou para criar seu modelo. Adicione um campo preditivo ao conjunto de dados e faça o seguinte:

   1. Especifique o modelo enviado do Canvas.

   1. Faça upload do arquivo de esquema que foi baixado na Etapa 2.

1. Salve e publique suas alterações e, em seguida, gere predições para o novo conjunto de dados. O Quick usa o modelo para preencher a coluna de destino com previsões.

Para enviar um modelo do Canvas para o Quick, você deve atender aos seguintes pré-requisitos:
+ Você deve ter o Canvas e o Quick configurados. Sua conta Quick deve ser criada da Região da AWS mesma forma que seu aplicativo Canvas. Se a região inicial da sua conta Quick for diferente da região do seu aplicativo Canvas, você deve [fechar](https://docs.aws.amazon.com/quicksight/latest/user/closing-account.html) e recriar sua conta Quick ou [configurar um aplicativo Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html#canvas-prerequisites) na mesma região da sua conta Quick. Sua conta do Quick também deve conter o namespace padrão, que você configurou ao criar sua conta do Quick pela primeira vez. Entre em contato com seu administrador para ajudá-lo a obter acesso ao Quick. Para obter mais informações, consulte [Configurando o Quick](https://docs.aws.amazon.com/quicksight/latest/user/setting-up.html) no *Guia rápido do usuário*.
+ Seu usuário deve ter as permissões necessárias AWS Identity and Access Management (IAM) para enviar suas previsões para o Quick. Seu administrador pode configurar as permissões do IAM para seu usuário. Para obter mais informações, consulte [Conceder a seus usuários permissões para enviar previsões para o Quick](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-quicksight-permissions.html).
+ O Quick deve ter acesso ao bucket do Amazon S3 que você especificou para o armazenamento do aplicativo Canvas. Para obter mais informações, consulte [Configurar seu armazenamento do Amazon S3](canvas-storage-configuration.md).

# Previsões de séries temporais no Amazon Canvas SageMaker
<a name="canvas-time-series"></a>

**nota**  
Os modelos de previsão de séries temporais são compatíveis somente com conjuntos de dados tabulares.

O Amazon SageMaker Canvas oferece a capacidade de usar previsões de séries temporais de aprendizado de máquina. As predições de séries temporais permitem que você faça predições que podem variar com o tempo.

Você pode fazer uma previsão de série temporal para os seguintes exemplos:
+ Prevendo seu inventário nos próximos meses.
+ O número de itens vendidos nos próximos quatro meses.
+ O efeito da redução do preço nas vendas durante as festas de fim de ano.
+ Inventário de itens nos próximos 12 meses.
+ O número de clientes que entrarão em uma loja nas próximas horas.
+ Prever como uma redução de 10% no preço de um produto afeta as vendas em um período de tempo.

Para fazer uma previsão de séries temporais, seu conjunto de dados deve ter o seguinte:
+ Uma coluna de data e hora com todos os valores do tipo `datetime`.
+ Uma coluna de destino que tem os valores que você está usando para prever valores futuros.
+ Uma coluna de ID do item que contém identificadores exclusivos para cada item no seu conjunto de dados, como números de SKU.

Os valores `datetime` na coluna de data e hora devem usar um dos seguinte formatos:
+ `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`

Você pode fazer previsões para os seguintes intervalos:
+ 1 min
+ 5 min
+ 15 min
+ 30 min
+ 1 hora
+ 1 dia
+ 1 semana
+ 1 mês
+ 1 ano

## Valores futuros em seu conjunto de dados de entrada
<a name="canvas-time-series-future"></a>

O Canvas detecta automaticamente colunas em seu conjunto de dados que podem conter valores futuros. Se presentes, esses valores podem aumentar a precisão das predições. O Canvas marca essas colunas específicas com um rótulo `Future values`. O Canvas infere a relação entre os dados nessas colunas e a coluna de destino que você está tentando prever e utiliza essa relação para gerar previsões mais precisas.

Por exemplo, você pode prever a quantidade de sorvete vendida por um supermercado. Para fazer uma previsão, você deve ter uma coluna de data e hora e uma coluna que indique a quantidade de sorvete que o supermercado vendeu. Para uma previsão mais precisa, seu conjunto de dados também pode incluir o preço, a temperatura ambiente, o sabor do sorvete ou um identificador exclusivo do sorvete.

As vendas de sorvetes podem aumentar quando o clima está mais quente. Uma diminuição no preço do sorvete pode resultar em mais unidades vendidas. Ter uma coluna com dados de temperatura ambiente e uma coluna com dados de preços pode melhorar sua capacidade de prever o número de unidades de sorvete que o supermercado vende.

Embora fornecer valores futuros seja opcional, isso ajuda você a realizar análises hipotéticas diretamente na aplicação Canvas, mostrando como mudanças nos valores futuros podem alterar suas predições.

## Processando valores ausentes
<a name="canvas-time-series-missing"></a>

Você pode ter dados ausentes por diferentes motivos. O motivo da sua falta de dados pode informar como você deseja que o Canvas os impute. Por exemplo, sua organização pode usar um sistema automático que só monitora quando uma venda acontece. Se você estiver usando um conjunto de dados proveniente desse tipo de sistema automático, há valores ausentes na coluna de destino.

**Importante**  
Se você tiver valores ausentes na coluna de destino, recomendamos usar um conjunto de dados que não os tenha. SageMaker O Canvas usa a coluna de destino para prever valores futuros. Valores ausentes na coluna de destino podem reduzir consideravelmente a precisão da previsão.

Para valores ausentes no conjunto de dados, o Canvas atribui automaticamente os valores ausentes para você, preenchendo a coluna de destino com `0` e outras colunas numéricas com o valor médio da coluna.

No entanto, você pode selecionar sua própria lógica de preenchimento para a coluna de destino e outras colunas numéricas em seus conjuntos de dados. As colunas de destino têm diretrizes e restrições de preenchimento diferentes das demais colunas numéricas. As colunas de destino são preenchidas até o fim do período histórico, enquanto as colunas numéricas são preenchidas nos períodos histórico e futuro até o final do horizonte de previsão. O Canvas só preenche valores futuros em uma coluna numérica se seus dados tiverem, pelo menos, um registro com um timestamp futuro e um valor para essa coluna específica.

Você pode escolher uma das seguintes opções de lógica para atribuir valores ausentes em seus dados:
+ `zero`: Preencha com `0`.
+ `NaN`: Preencha com NaN, ou não é um número. Isso só é compatível com a coluna de destino.
+ `mean`: Preencha com o valor médio da série de dados.
+ `median`: Preencha com o valor mediano da série de dados.
+ `min`: Preencha com o valor mínimo da série de dados.
+ `max`: Preencha com o valor máximo da série de dados.

Ao escolher uma lógica de preenchimento, você deve considerar como a lógica será interpretada pelo seu modelo. Por exemplo, em um cenário de varejo, registrar zero vendas de um item disponível é diferente de registrar zero vendas de um item indisponível, pois esse último não implica necessariamente em uma falta de interesse no cliente no item indisponível. Nesse caso, preencher com `0` a coluna de destino do conjunto de dados pode fazer que o modelo seja subestimado em suas predições e deduza a falta de interesse do cliente em itens indisponíveis. Por outro lado, o preenchimento com `NaN` pode fazer com que o modelo ignore ocorrências reais de zero itens vendidos de itens disponíveis.

## Tipos de previsões
<a name="canvas-time-series-types"></a>

É possível fazer um dos tipos de previsões a seguir:
+ **Item único**
+ **Todos os itens**

Para uma previsão de todos os itens em seu conjunto de dados, o SageMaker Canvas retorna uma previsão para os valores futuros de cada item em seu conjunto de dados.

Para uma previsão de um único item, você especifica o item e o SageMaker Canvas retorna uma previsão para os valores futuros. A previsão inclui um gráfico de linhas que representa graficamente os valores previstos ao longo do tempo.

**Topics**
+ [Valores futuros em seu conjunto de dados de entrada](#canvas-time-series-future)
+ [Processando valores ausentes](#canvas-time-series-missing)
+ [Tipos de previsões](#canvas-time-series-types)
+ [Opções adicionais para informações de previsão](canvas-additional-insights.md)

# Opções adicionais para informações de previsão
<a name="canvas-additional-insights"></a>

No Amazon SageMaker Canvas, você pode usar os seguintes métodos opcionais para obter mais informações sobre sua previsão:
+ Coluna de grupo
+ Programação de feriados
+ Cenário hipotético

Você pode especificar uma coluna no seu conjunto de dados como uma **coluna de grupo**. O Amazon SageMaker Canvas agrupa a previsão por cada valor na coluna. Por exemplo, você pode agrupar a previsão em colunas contendo dados de preços ou identificadores de itens exclusivos. O agrupamento de uma previsão por uma coluna permite que você faça previsões mais específicas. Por exemplo, se você agrupar uma previsão em uma coluna contendo identificadores de itens, poderá ver a previsão para cada item.

As vendas gerais de itens podem ser afetadas pela presença de feriados. Por exemplo, nos Estados Unidos, o número de itens vendidos em novembro e dezembro pode ser muito diferente do número de itens vendidos em janeiro. Se você usar os dados de novembro e dezembro para prever as vendas em janeiro, seus resultados podem ser imprecisos. Usar uma programação de feriados evita que você obtenha resultados imprecisos. Você pode usar uma programação de feriados para 251 países.

Para uma previsão de um único item em seu conjunto de dados, você pode usar cenários hipotéticos. Um cenário hipotético permite que você altere os valores em seus dados e altere a previsão. Por exemplo, você pode responder às seguintes perguntas usando um cenário hipotético: “E se eu baixasse os preços? Como isso afetaria o número de itens vendidos?”

# Adicionar versões de modelo no Amazon SageMaker Canvas
<a name="canvas-update-model"></a>

No Amazon SageMaker Canvas, você pode atualizar os modelos que você criou adicionando *versões*. Cada modelo que você cria tem um número da versão. O primeiro modelo é a versão 1, ou `V1`. Você pode usar as versões do modelo para ver as alterações na precisão da predição ao atualizar seus dados ou usar [transformações avançadas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-prepare-data.html).

Ao visualizar seu modelo, o SageMaker Canvas mostra o histórico do modelo para que você possa comparar todas as versões do modelo que você construiu. Você também pode excluir versões que não são mais úteis para você. Ao criar várias versões do modelo e avaliar sua precisão, você pode melhorar iterativamente o desempenho do seu modelo.

**nota**  
Os modelos de predição de texto e predição de imagem oferecem apoio apenas a uma versão do modelo.

Para adicionar uma versão de modelo, você pode clonar uma versão existente ou criar uma nova versão. 

A clonagem de uma versão existente copia a configuração atual do modelo, incluindo a fórmula do modelo e o conjunto de dados de entrada. Como alternativa, você pode criar uma nova versão se quiser configurar uma nova fórmula de modelo ou escolher um conjunto de dados diferente. 

Se você criar uma nova versão e selecionar um conjunto de dados diferente, deverá escolher um conjunto de dados com a mesma coluna de destino e esquema do conjunto de dados da versão 1.

Antes de adicionar uma nova versão, você deve criar com êxito pelo menos uma versão do modelo. Em seguida, você pode [registrar uma versão do SageMaker modelo no Registro](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-register-model.html) de modelos. Use o registro para rastrear as versões do modelo e colaborar com os usuários do Studio Classic na aprovação do modelo de produção.

Se você fez uma compilação rápida para sua primeira versão do modelo, você tem a opção de executar uma compilação padrão ao adicionar uma versão. As compilações padrão geralmente têm maior precisão. Portanto, se você se sentir confiante em sua configuração de compilação rápida, poderá executar uma compilação padrão para criar uma versão final do seu modelo. Para saber mais sobre as diferenças entre compilações rápidas e compilações padrão, consulte. [Como os modelos personalizados funcionam](canvas-build-model.md)

Os procedimentos a seguir mostram como adicionar versões do modelo; o procedimento é diferente dependendo se você está adicionando uma versão do mesmo tipo de compilação ou de um tipo de compilação diferente (rápida ou padrão). Use o procedimento **Para adicionar uma nova versão do modelo** para adicionar versões do mesmo tipo de construção. Para adicionar uma versão do modelo de compilação padrão depois de executar uma compilação rápida, siga o procedimento **Para executar uma compilação padrão**.

**Para adicionar uma nova versão**

1. Abra seu aplicativo SageMaker Canvas. Para obter mais informações, consulte [Começando a usar o Amazon SageMaker Canvas](canvas-getting-started.md).

1. No painel de navegação à esquerda, selecione **Meus modelos**.

1. Na página **Meus modelos**, selecione o seu modelo. Para encontrar seu modelo, você pode escolher **Filtrar por tipo de problema**.

1. Depois que seu modelo abrir, escolha o botão **Adicionar versão** no painel superior.

1. Use o menu suspenso para escolher uma das seguintes opções:

   1. **Adicionar uma nova versão do zero**: Quando você seleciona essa opção, a guia **Criar** é aberta com o rascunho de uma nova versão do modelo. Você pode selecionar um conjunto de dados diferente (desde que o esquema corresponda ao esquema do conjunto de dados da primeira versão do modelo) e configurar uma nova fórmula de modelo. Para obter mais informações sobre a criação de um modelo, consulte [Criar um modelo](canvas-build-model-how-to.md).

   1. **Clonar uma versão existente com configurações:** uma caixa de diálogo solicita que você selecione a versão que deseja clonar. Depois de selecionar a versão desejada, escolha **Clonar**. A guia **Criar** é aberta com o rascunho de uma nova versão do modelo. Todas as configurações da fórmula do modelo são copiadas da versão clonada. Para obter mais informações sobre a criação de um modelo, consulte [Criar um modelo](canvas-build-model-how-to.md).

**Executar uma compilação padrão**

1. Abra seu aplicativo SageMaker Canvas. Para obter mais informações, consulte [Começando a usar o Amazon SageMaker Canvas](canvas-getting-started.md).

1. No painel de navegação à esquerda, selecione **Meus modelos**.

1. Na página **Meus modelos**, selecione o seu modelo. Você pode **filtrar por tipo de problema** para encontrar seu modelo com mais facilidade.

1. Depois que seu modelo for aberto, escolha a guia **Analisar**.

1. Escolha a **versão padrão**.  
![\[A guia Analisar de um modelo do Canvas mostrando o botão de construção padrão.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-add-version-quick-to-standard.png)

   Na página de rascunho do modelo que se abre na guia **Construir**, você pode modificar a configuração do modelo e iniciar uma construção. Para obter mais informações sobre a criação de um modelo, consulte [Criar um modelo](canvas-build-model-how-to.md).

Agora você deve ter uma nova versão do modelo em andamento. Para obter mais informações sobre a criação de um modelo, consulte [Como os modelos personalizados funcionam](canvas-build-model.md).

Depois de criar uma versão do modelo, você pode retornar à página de detalhes do modelo a qualquer momento para ver todas as versões ou adicionar mais versões. A imagem a seguir mostra a página **Versões** de um modelo.

![\[A página de versões do modelo para um modelo no Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/model-versions.png)


Na página **Versões**, você pode ver as seguintes informações para cada uma das versões do seu modelo:
+ **Status**: Esse campo informa se seu modelo está sendo compilado (`In building`), concluído (`Ready`), falhou na construção (`Failed`) ou ainda está sendo editado (`In draft`).
+ **Pontuação do modelo**, **F1**, **Precisão**, **Recall** e **AUC**: Se você ativar a opção alternar **Mostrar métricas avançadas** nesta página, poderá ver essas métricas do modelo. Essas métricas indicam a precisão e o desempenho do seu modelo. Para obter mais informações, consulte [Avaliação do seu modelo](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-evaluate-model.html).
+ **Compartilhado** — Esse campo indica se você compartilhou a versão do modelo com usuários do SageMaker Studio Classic.
+ **Registro de modelo**: Esse campo informa se você registrou ou não a versão em um registro de modelo. Para obter mais informações, consulte [Registre uma versão do modelo no registro de modelos de SageMaker IA](canvas-register-model.md).

# MLOps
<a name="canvas-mlops"></a>

Depois de criar um modelo no SageMaker Canvas em que você se sinta confiante, talvez você queira integrar seu modelo aos processos de operações (MLOps) de aprendizado de máquina em sua organização. MLOps inclui tarefas comuns, como implantar um modelo para uso na produção ou configurar pipelines de integração contínua e implantação contínua (CI/CD).

Os tópicos a seguir descrevem como você pode usar os atributos do Canvas para usar um modelo criado pelo Canvas na produção.

**Topics**
+ [Registre uma versão do modelo no registro de modelos de SageMaker IA](canvas-register-model.md)
+ [Implantar seus modelos em um endpoint](canvas-deploy-model.md)
+ [Veja suas implantações](canvas-deploy-model-view.md)
+ [Atualizar uma configuração de implantação](canvas-deploy-model-update.md)
+ [Teste sua implantação](canvas-deploy-model-test.md)
+ [Invoque seu endpoint](canvas-deploy-model-invoke.md)
+ [Excluindo um modelo de implantação](canvas-deploy-model-delete.md)

# Registre uma versão do modelo no registro de modelos de SageMaker IA
<a name="canvas-register-model"></a>

Com o SageMaker Canvas, você pode criar várias iterações ou versões do seu modelo para melhorá-lo ao longo do tempo. Talvez você queira criar uma nova versão do seu modelo se adquirir melhores dados de treinamento ou se quiser tentar melhorar a precisão do modelo. Para obter mais informações sobre como adicionar versões ao seu modelo, consulte [Atualizar um modelo](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-update-model.html).

Depois de criar [um modelo](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-build-model.html) no qual você se sinta confiante, talvez você queira avaliar seu desempenho e fazer com que ele seja revisado por um cientista ou MLOps engenheiro de dados em sua organização antes de usá-lo na produção. Para fazer isso, você pode registrar as versões do seu [SageMaker modelo no Registro](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry.html) de modelos. O Registro de SageMaker Modelos é um repositório que cientistas ou engenheiros de dados podem usar para catalogar modelos de aprendizado de máquina (ML) e gerenciar versões de modelos e seus metadados associados, como métricas de treinamento. Eles também podem gerenciar e registrar o status da aprovação de um modelo.

Depois de registrar suas versões de SageMaker modelo no Registro de Modelos, um cientista de dados ou sua MLOps equipe podem acessar o SageMaker Registro de Modelos por meio do [SageMaker Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html), que é um ambiente de desenvolvimento integrado (IDE) baseado na Web para trabalhar com modelos de aprendizado de máquina. Na interface do SageMaker Model Registry no Studio Classic, o cientista de dados ou a MLOps equipe podem avaliar seu modelo e atualizar seu status de aprovação. Se o modelo não atender aos requisitos, o cientista de dados ou a MLOps equipe podem atualizar o status para`Rejected`. Se o modelo atender aos requisitos, o cientista de dados ou a MLOps equipe poderão atualizar o status para`Approved`. Em seguida, eles podem [implantar seu modelo em um endpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/deploy-model.html#deploy-model-prereqs) ou [automatizar a implantação do modelo com CI/CD pipelines](https://aws.amazon.com/blogs/machine-learning/building-automating-managing-and-scaling-ml-workflows-using-amazon-sagemaker-pipelines/). Você pode usar o recurso de registro de modelos de SageMaker IA para integrar perfeitamente os modelos criados no Canvas aos MLOps processos da sua organização.

O diagrama a seguir resume um exemplo de registro de uma versão do modelo construída no Canvas no Registro de SageMaker Modelos para integração em um MLOps fluxo de trabalho.

![\[As etapas de registro de uma versão do modelo construída no Canvas para integração em um MLOps fluxo de trabalho.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-model-registration-diagram.jpg)


Você pode registrar versões de modelos tabulares, de imagem e de texto no Registro de SageMaker modelos. Isso inclui modelos de previsão de séries temporais e modelos de JumpStart base [ajustados](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-fm-chat-fine-tune.html) com base.

**nota**  
Atualmente, você não pode registrar modelos de base ajustados baseados no Amazon Bedrock construídos no Canvas no Registro de Modelos. SageMaker 

As seções a seguir mostram como registrar uma versão do modelo no Registro de SageMaker Modelos a partir do Canvas.

## Gerenciamento de permissões
<a name="canvas-register-model-prereqs"></a>

Por padrão, você tem permissões para registrar versões do SageMaker modelo no Registro de modelos. SageMaker A IA concede essas permissões para todos os perfis de usuário do Canvas novos e existentes por meio da [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)política, que é anexada à função de execução AWS do IAM para o domínio de SageMaker IA que hospeda seu aplicativo Canvas.

Se o administrador do Canvas estiver configurando um novo domínio ou perfil de usuário, ao configurar o domínio e seguir as instruções de pré-requisito no [guia de introdução](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html#canvas-prerequisites), a SageMaker AI ativa as permissões de registro do modelo por meio da opção de **configuração de permissões ML Ops**, que é ativada por padrão.

O administrador do Canvas também pode gerenciar as permissões registro de modelos no nível do perfil do usuário. Por exemplo, se o administrador quiser conceder permissões de registro de modelos a alguns perfis de usuário, mas remover permissões para outros, ele poderá editar as permissões para um usuário específico. O seguinte procedimento mostra como desativar permissões de registro de modelos para um perfil de usuário específico:

1. Abra o console de SageMaker IA em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Na lista de Domínios, selecione o Domínio do perfil do usuário.

1. Na página de **Detalhes do domínio**, escolha o **Perfil do usuário** cujas permissões você deseja editar.

1. Na página **Detalhes do usuário**, selecione **Editar**.

1. No painel de navegação à esquerda, selecione **Configurações do Canvas**.

1. Na seção de **configuração de permissões de operações de ML**, desative a opção **Habilitar permissões de registro do Model Registry**.

1. Escolha **Enviar** para salvar as alterações nas configurações do seu Domínio.

O perfil do usuário não deve mais ter permissões para registrar modelos.

## Registre uma versão do modelo no registro de modelos de SageMaker IA
<a name="canvas-register-model-register"></a>

SageMaker O Model Registry rastreia todas as versões do modelo que você cria para resolver um problema específico em um *grupo de modelos*. Quando você cria um modelo do SageMaker Canvas e o registra no SageMaker Model Registry, ele é adicionado a um grupo de modelos como uma nova versão do modelo. Por exemplo, se você criar e registrar quatro versões do seu modelo, um cientista de dados ou uma MLOps equipe trabalhando na interface do Registro de SageMaker Modelos poderá visualizar o grupo de modelos e revisar todas as quatro versões do modelo em um só lugar.

Ao registrar um modelo do Canvas no Registro de SageMaker Modelos, um grupo de modelos é automaticamente criado e nomeado de acordo com seu modelo do Canvas. Opcionalmente, você pode renomeá-lo para um nome de sua escolha ou usar um grupo de modelos existente no Registro de SageMaker modelos. Para obter mais informações sobre como criar um grupo de modelos, consulte [Criar um grupo de modelos](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry-model-group.html).

**nota**  
Atualmente, você só pode registrar modelos construídos no Canvas no Registro de SageMaker Modelos na mesma conta.

Para registrar uma versão do SageMaker modelo no Registro de Modelos a partir do aplicativo Canvas, use o seguinte procedimento:

1. Abra o aplicativo SageMaker Canvas.

1. No painel de navegação à esquerda, selecione **Meus modelos**.

1. Na página **Meus modelos**, selecione o seu modelo. Você pode **filtrar por tipo de problema** para encontrar seu modelo com mais facilidade.

1. Depois de escolher seu modelo, a página **Versões** é aberta, listando todas as versões do seu modelo. Você pode ativar o botão de alternância **Mostrar métricas avançadas** para visualizar as métricas avançadas, tais como **Recall** e **Precisão**, para comparar as versões do seu modelo e determinar qual delas você gostaria de registrar.

1. Na lista de versões do modelo, para a versão que você deseja registrar, escolha o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)). Como alternativa, você pode clicar duas vezes na versão que você precisa registrar e, na página de detalhes da versão, escolher o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. Na lista suspensa, escolha **Adicionar ao registro do modelo**. A caixa de diálogo **Adicionar ao registro do modelo** é aberta.

1. Na caixa de diálogo **Adicionar ao registro do modelo**, faça o seguinte:

   1. (Opcional) Na seção **Grupo de modelos do SageMaker Studio Classic**, no campo **Nome do grupo de modelos**, insira o nome do grupo de modelos no qual você deseja registrar sua versão. Você pode especificar o nome de um novo grupo de modelos que a SageMaker IA cria para você ou pode especificar um grupo de modelos existente. Se você não especificar esse campo, o Canvas registra sua versão em um grupo de modelos padrão com o mesmo nome do seu modelo.

   1. Escolha **Adicionar**.

A versão do seu modelo agora deve ser registrada no grupo de modelos no Registro de SageMaker modelos. Quando você registra uma versão do modelo em um grupo de modelos no Registro de SageMaker Modelos, todas as versões subsequentes do modelo Canvas são registradas no mesmo grupo de modelos (se você optar por registrá-las). Se você registrar suas versões em um grupo de modelos diferente, precisará acessar o Registro de SageMaker modelos e [excluir o grupo de modelos](https://docs.aws.amazon.com/sagemaker/latest/dg/model-registry-delete-model-group.html). Em seguida, você pode registrar novamente suas versões do modelo no novo grupo de modelos.

Para ver o status de seus modelos, você pode retornar à página **Versões** do seu modelo na aplicação Canvas. Esta página mostra o status do **Registro do Modelo** de cada versão. Se o status for `Registered`, o modelo foi registrado com sucesso.

Se você quiser ver os detalhes da versão do seu modelo registrado, para o status do **Registro do Modelo**, você pode passar o mouse sobre o campo **Registrado** para ver a caixa pop-up **Detalhes do Registro do Modelo**. Esses detalhes contêm mais informações, como as seguintes:
+ O **nome do grupo de pacotes** de modelos é o grupo de modelos no qual sua versão está registrada no Registro de SageMaker modelos.
+ O **status da aprovação**, que pode ser `Pending Approval`, `Approved` ou `Rejected`. Se um usuário do Studio Classic aprovar ou rejeitar sua versão no Registro de SageMaker modelos, esse status será atualizado na página de versões do modelo quando você atualizar a página.

A captura de tela a seguir mostra a caixa de **detalhes do registro do modelo**, juntamente com o **status da aprovação** dessa versão específica do modelo `Approved`.

![\[Captura de tela da caixa de detalhes do SageMaker Model Registry no aplicativo Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/approved-mr.png)


# Implantar seus modelos em um endpoint
<a name="canvas-deploy-model"></a>

No Amazon SageMaker Canvas, você pode implantar seus modelos em um endpoint para fazer previsões. SageMaker A IA fornece a infraestrutura de ML para você hospedar seu modelo em um endpoint com as instâncias de computação que você escolher. Em seguida, você pode *invocar* o endpoint (enviar uma solicitação de predição) e obter uma predição em tempo real do seu modelo. Com essa funcionalidade, você pode usar seu modelo na produção para responder às solicitações de entrada e integrar seu modelo aos fluxos de trabalho e aplicações existentes.

Para começar, você deve ter uma versão do modelo pronta para implantação. Você pode implantar versões personalizadas de modelos que você criou, modelos de SageMaker JumpStart fundação da Amazon e modelos de fundação ajustados. JumpStart Para obter mais informações sobre a criação de um modelo no Canvas, consulte [Como os modelos personalizados funcionam](canvas-build-model.md). Para obter mais informações sobre modelos de JumpStart base no Canvas, consulte[Modelos básicos de IA generativa no Canvas SageMaker](canvas-fm-chat.md).

Revise a seção **Gerenciamento de permissões** a seguir e comece a criar novas implantações na seção **Implantação de modelo**.

## Gerenciamento de permissões
<a name="canvas-deploy-model-prereqs"></a>

Por padrão, você tem permissões para implantar modelos nos endpoints do SageMaker AI Hosting. SageMaker A IA concede essas permissões para todos os perfis de usuário do Canvas novos e existentes por meio da [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerCanvasFullAccess.html)política, que é anexada à função de execução AWS do IAM para o domínio de SageMaker IA que hospeda seu aplicativo Canvas.

Se o administrador do Canvas estiver configurando um novo domínio ou perfil de usuário, ao configurar o domínio e seguir as instruções de pré-requisito no[Pré-requisitos para configurar o Amazon Canvas SageMaker](canvas-getting-started.md#canvas-prerequisites), o SageMaker AI ativa as permissões de implantação do modelo por meio da opção **Habilitar implantação direta de modelos do Canvas**, que é ativada por padrão.

O administrador do Canvas também pode gerenciar as permissões implantações de modelos no nível do perfil do usuário. Por exemplo, se o administrador não quiser conceder permissões de implantações de modelos a todos os perfis de usuário ao configurar um domínio, ele poderá conceder permissões a usuários específicos após criar o domínio.

O seguinte procedimento mostra como desativar permissões de implantações de modelos para um perfil de usuário específico:

1. Abra o console de SageMaker IA em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**.

1. Na lista de Domínios, selecione o Domínio do perfil do usuário.

1. Na página **Detalhes do Domínio**, escolha a aba **Perfis de usuário**.

1. Escolha seu **Perfil de usuário**.

1. Na página do perfil do usuário, selecione a aba **Configurações da aplicação**.

1. Na seção **Logs**, selecione **Editar**.

1. Na seção de **configuração do Operações**, ative a opção **Habilitar implantação direta de modelos do Canvas** para habilitar as permissões de implantação.

1. Escolha **Enviar** para salvar as alterações nas configurações do seu Domínio.

O perfil do usuário não deve mais ter permissões para implantações de modelos.

Depois de conceder permissões ao domínio ou perfil do usuário, certifique-se de que o usuário saia da aplicação Canvas e faça login novamente para aplicar as alterações de permissão.

## Implantar um modelo
<a name="canvas-deploy-model-deploy"></a>

Para começar a implantar seu modelo, você cria uma nova implantação no Canvas e especifica a versão do modelo que deseja implantar junto com a infraestrutura de ML, como o tipo e o número de instâncias de computação que você gostaria de usar para hospedar o modelo.

O Canvas sugere um tipo padrão e um número de instâncias com base no seu tipo de modelo, ou você pode aprender mais sobre os vários tipos de instância de SageMaker IA na [página de SageMaker preços da Amazon](https://aws.amazon.com/sagemaker/pricing/). Você é cobrado com base no preço da instância de SageMaker IA enquanto seu endpoint está ativo.

Ao implantar modelos JumpStart básicos, você também tem a opção de especificar a duração do tempo de implantação. Você pode implantar o modelo em um endpoint indefinidamente (o que significa que o endpoint está ativo até você excluir a implantação). Ou, se você precisar do endpoint apenas por um curto período de tempo e quiser reduzir custos, você pode implantar o modelo em um endpoint por um determinado período de tempo, após o qual a SageMaker IA desliga o endpoint para você.

**nota**  
Se você implantar um modelo por um período de tempo especificado, permaneça conectado à aplicação Canvas durante o endpoint. Se você sair ou excluir a aplicação, o Canvas não poderá encerrar o endpoint no horário especificado.

*Depois que seu modelo for implantado em um [endpoint de inferência em tempo real do SageMaker AI Hosting, você pode começar a fazer previsões invocando o endpoint](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints.html).*

Há várias maneiras diferentes de implantar uma versão de modelo a partir da aplicação Canvas. É possível acessar a opção de implantação do modelo usando qualquer um dos seguintes métodos:
+ Na página **Meus modelos** da aplicação Canvas, você pode escolher o modelo que deseja implantar. Em seguida, na página **Versões** do modelo, você pode escolher o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) ao lado da versão do modelo e selecionar **Implantar**.
+ Na página de detalhes de uma versão do modelo, na guia **Analisar**, você pode escolher a opção **Implantar**.
+ Na página de detalhes de uma versão do modelo, na guia **Prever**, você pode escolher o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) na parte superior da página e selecionar **Implantar**.
+ Na página **Operações** da aplicação Canvas, escolha a guia **Implantações** e, em seguida, escolha **Criar implantação**.
+ Para modelos de JumpStart fundação e modelos de fundação ajustados, acesse a página de **Ready-to-use modelos** do aplicativo Canvas. Escolha **Gerar, extrair e resumir conteúdo**. Em seguida, encontre o modelo de JumpStart base ou o modelo de fundação ajustado que você deseja implantar. Escolha o modelo e, na página de bate-papo do modelo, escolha o botão **Implantar**.

Todos esses métodos abrem o painel lateral **Implantar modelo**, onde você especifica a configuração de implantação do seu modelo. Para implantar o modelo a partir desse painel, faça o seguinte:

1. (Opcional) Se você estiver criando uma implantação na página **Operações**, você terá a opção de **Selecionar modelo e versão**. Use os menus suspensos para selecionar o modelo e a versão do modelo que você deseja implantar.

1. Insira um nome no campo **Nome da implantação**.

1. **(Somente para modelos de JumpStart base e modelos de base ajustados) Escolha um comprimento de implantação.** Selecione **Indefinido** para deixar o endpoint ativo até que você o desligue, ou selecione **Especificar comprimento** e, em seguida, insira o período durante o qual você deseja que o endpoint permaneça ativo.

1. Em **Tipo de instância**, a SageMaker IA detecta um tipo e número de instância padrão adequados ao seu modelo. No entanto, você pode alterar o tipo de instância que gostaria de usar para hospedar seu modelo.
**nota**  
Se você ficar sem a cota de instância para o tipo de instância escolhido em sua AWS conta, poderá solicitar um aumento de cota. Para obter mais informações sobre as cotas padrão e como solicitar um aumento, consulte os [endpoints e cotas do Amazon SageMaker AI no guia](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html) de referência *AWS geral*.

1. Em **Contagem de instâncias**, você pode definir o número de instâncias ativas que são usadas para seu endpoint. SageMaker A IA detecta um número padrão adequado ao seu modelo, mas você pode alterar esse número.

1. Quando estiver pronto para implantação do seu modelo, selecione **Implantar**.

Seu modelo agora deve ser implantado em um endpoint.

# Veja suas implantações
<a name="canvas-deploy-model-view"></a>

Talvez você queira verificar o status ou os detalhes da implantação de um modelo no Amazon SageMaker Canvas. Por exemplo, se tiver Falha na implantação, talvez você queira verificar os detalhes para solucionar o problema.

Você pode visualizar suas implantações do modelo Canvas a partir do aplicativo Canvas ou do console Amazon SageMaker AI.

Para visualizar detalhes da implantação do Canvas, escolha um dos seguintes procedimentos:

Para visualizar os detalhes da implantação na página **Operações**, faça o seguinte:

1. Abra o aplicativo SageMaker Canvas.

1. No painel de navegação à esquerda, selecione **Operações**.

1. Escolha a guia **Grupos de implantação**.

1. Escolha o seu estágio de implantação por nome da lista.

Para visualizar os detalhes da implantação na página versões do modelo, faça o seguinte:

1. No aplicativo SageMaker Canvas, acesse a página de detalhes da versão do seu modelo.

1. Escolha a guia **Implantar**.

1. Na seção **Implantações** que lista todas as configurações de implantação associadas a essa versão do modelo, encontre sua implantação.

1. Escolha o ícone **Mais opções** (![\[More options icon for the output CSV file.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) e, em seguida, selecione **Visualizar detalhes** para abrir a página de detalhes.

A página de detalhes da sua implantação é aberta e você pode visualizar informações como a hora da predição mais recente, o status e a configuração do endpoint e a versão do modelo atualmente implantada no endpoint.

Você também pode visualizar suas instâncias de espaço de trabalho do Canvas atualmente ativas e endpoints ativos no **painel de SageMaker IA** no console de [SageMaker IA](https://console.aws.amazon.com/sagemaker/). Seus endpoints do Canvas estão listados ao lado de quaisquer outros endpoints do SageMaker AI Hosting que você criou, e você pode filtrá-los pesquisando endpoints com a tag Canvas.

A captura de tela a seguir mostra o painel de SageMaker IA. Na seção **Canvas**, você pode ver que uma instância do workspace está em serviço e quatro endpoints estão ativos.

![\[Captura de tela do painel de SageMaker IA mostrando as instâncias e endpoints ativos do espaço de trabalho do Canvas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-sagemaker-dashboard.png)


# Atualizar uma configuração de implantação
<a name="canvas-deploy-model-update"></a>

Você pode atualizar a configuração de implantação dos modelos que você implantou em endpoints no Amazon SageMaker Canvas. Por exemplo, você pode implantar uma versão atualizada do modelo no endpoint ou atualizar o tipo de instância ou o número de instâncias atrás do endpoint com base nas suas necessidades de capacidade.

Há várias maneiras diferentes de atualizar sua implantação a partir da aplicação Canvas. É possível usar qualquer um dos seguintes métodos:
+ Na página **Operações** da aplicação Canvas, você pode escolher a guia **Implantações** e selecionar a implantação que você deseja atualizar. Em seguida, escolha **Atualizar configuração**.
+ Na página de detalhes de uma versão do modelo, na guia **Implantar**, você pode ver as implantações dessa versão. Ao lado da implantação, escolha o ícone **Mais opções** (![\[More options icon for the output CSV file.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) e, em seguida, escolha **Atualizar configuração**.

Os dois métodos anteriores abrem o painel lateral **Atualizar configuração**, onde você pode fazer alterações na configuração de implantação. Para atualizar sua configuração, siga um dos seguintes procedimentos:

1. Na lista suspensa **Selecionar versão**, você pode selecionar uma versão diferente do modelo para implantar no endpoint.
**nota**  
Ao atualizar uma configuração de implantação, você só pode escolher uma versão do modelo diferente para implantar. Para implantar um modelo diferente, crie uma nova implantação.

1. Em **Tipo de instância**, você pode selecionar um tipo de instância diferente para hospedar seu modelo.

1. Em **Contagem de instâncias**, você pode alterar o número de instâncias ativas que são usadas para seu endpoint.

1. Escolha **Salvar**.

Sua configuração de implantação agora deve ser atualizada.

# Teste sua implantação
<a name="canvas-deploy-model-test"></a>

Você pode testar a implantação de um modelo invocando o endpoint ou fazendo solicitações únicas de previsão por meio do aplicativo Amazon SageMaker Canvas. Você pode usar essa funcionalidade para confirmar se seu endpoint responde às solicitações antes de invocá-lo programaticamente em um ambiente de produção.

## Teste a implantação de um modelo personalizado
<a name="canvas-deploy-model-test-custom"></a>

Você pode testar a implantação de um modelo personalizado acessando-a por meio da página **Operações** e fazendo uma única invocação, que retorna uma predição junto com a probabilidade de que a predição esteja correta.

**nota**  
A duração da execução é uma estimativa do tempo necessário para invocar e obter uma resposta do endpoint no Canvas. Para métricas detalhadas de latência, consulte Métricas de [invocação de endpoints do SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/monitoring-cloudwatch.html#cloudwatch-metrics-endpoint-invocation).

Para testar seu endpoint por meio da aplicação Canvas, faça o seguinte:

1. Abra o aplicativo SageMaker Canvas.

1. No painel de navegação à esquerda, escolha **Perfis**.

1. Escolha a guia **Grupos de implantação**.

1. Na lista de implantações, escolha aquela com o endpoint que você deseja invocar.

1. Na página de detalhes da implantação, escolha a guia **Testar a implantação**.

1. Na página de teste de implantação, você pode modificar os campos de **Valor** para especificar um novo ponto de dados. Para modelos de previsão de séries temporais, você especifica a **ID do item** para a qual deseja fazer uma previsão.

1. Depois de modificar os valores, escolha **Atualizar** para obter o resultado da predição.

A predição é carregada, junto com os campos de **resultado da invocação**, que indicam se a invocação foi bem-sucedida ou não e quanto tempo a solicitação levou para ser processada.

A captura de tela a seguir mostra uma predição realizada na aplicação Canvas na guia **Testar a implantação**.

![\[Captura de tela da aplicação Canvas mostrando uma predição de teste para um modelo implantado.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/canvas-test-deployments.png)


Para todos os tipos de modelo, exceto a predição numérica, a predição retorna os seguintes campos:
+  **predicted\$1label**: a saída prevista
+  **probabilidade**: a probabilidade de que o rótulo previsto esteja correto
+  **rótulos**: a lista de todos os rótulos possíveis
+  **probabilidades**: as probabilidades correspondentes a cada rótulo (a ordem dessa lista corresponde à ordem dos rótulos)

Para modelos de predição numérica, a predição contém apenas o campo de **pontuação**, que é a saída prevista do modelo, como o preço previsto de uma casa.

Para modelos de predição de séries temporais, a predição é um gráfico que mostra as predições por quantil. Você pode escolher a **Visualizar Esquema** para ver os valores numéricos previstos para cada quantil.

Você pode continuar fazendo predições únicas por meio da página de testes de implantação ou pode ver a seção a seguir [Invoque seu endpoint](canvas-deploy-model-invoke.md) para saber como invocar seu endpoint programaticamente a partir de aplicações.

## Teste a implantação de um modelo JumpStart básico
<a name="canvas-deploy-model-test-js"></a>

Você pode conversar com um modelo JumpStart básico implantado por meio do aplicativo Canvas para testar sua funcionalidade antes de invocá-lo por meio de código.

Para conversar com um modelo JumpStart básico implantado, faça o seguinte:

1. Abra o aplicativo SageMaker Canvas.

1. No painel de navegação à esquerda, escolha **Perfis**.

1. Escolha a guia **Grupos de implantação**.

1. Na lista de implantações, localize a que pretende invocar e selecione o ícone **Mais opções** (![\[More options icon for a model deployment.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. No menu de contexto, escolha **Testar implantação**.

1. Um novo bate-papo **para gerar, extrair e resumir conteúdo** é aberto com o modelo JumpStart básico, e você pode começar a digitar instruções. Observe que as solicitações desse bate-papo são enviadas como solicitações ao seu endpoint do SageMaker AI Hosting.

# Invoque seu endpoint
<a name="canvas-deploy-model-invoke"></a>

**nota**  
Recomendamos que você [teste a implantação do seu modelo no Amazon SageMaker Canvas](canvas-deploy-model-test.md) antes de invocar programaticamente um endpoint de SageMaker IA.

Você pode usar seus modelos do Amazon SageMaker Canvas que você implantou em um endpoint de SageMaker IA em produção com seus aplicativos. [Invoque o endpoint programaticamente da mesma forma que você invoca qualquer outro endpoint de IA em tempo real. SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/realtime-endpoints.html) A invocação de um endpoint retorna programaticamente um objeto de resposta que contém os mesmos campos mencionados na seção anterior [Teste sua implantação](canvas-deploy-model-test.md).

Para obter mais informações detalhadas sobre como invocar endpoints de forma programática, consulte. [Invocar modelos para inferência em tempo real](realtime-endpoints-test-endpoints.md)

Os exemplos de Python a seguir mostram como invocar seu endpoint com base no tipo do modelo.

## JumpStart modelos de fundação
<a name="canvas-invoke-js-example"></a>

O exemplo a seguir mostra como invocar um modelo JumpStart básico que você implantou em um 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"
)
```

## Modelos de predição numérica e categórica
<a name="canvas-invoke-tabular-example"></a>

O exemplo a seguir mostra como invocar modelos de predição numérica ou categóricos.

```
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"
)
```

## Avalie modelos de previsão de séries temporais
<a name="canvas-invoke-forecast-example"></a>

O exemplo a seguir mostra como invocar modelos de previsão de séries temporais. Para obter um exemplo completo de como testar a invocação de um modelo de previsão de séries temporais, consulte Previsão de [séries temporais com o 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"
)
```

## Modelos de predição de imagem
<a name="canvas-invoke-cv-example"></a>

O exemplo a seguir mostra como invocar modelos de predição numérica ou categórica.

```
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"
    )
```

## Modelos de predição de texto
<a name="canvas-invoke-nlp-example"></a>

O exemplo a seguir mostra como invocar modelos de predição de texto.

```
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"
)
```

# Excluindo um modelo de implantação
<a name="canvas-deploy-model-delete"></a>

Você pode excluir suas implantações de modelo do aplicativo Amazon SageMaker Canvas. Essa ação também exclui o endpoint do console de SageMaker IA e desliga todos os recursos relacionados ao endpoint.

**nota**  
Opcionalmente, você pode excluir seu endpoint por meio do [console de SageMaker IA](https://console.aws.amazon.com/sagemaker/) ou usando a SageMaker API de IA`DeleteEndpoint`. Para obter mais informações, consulte [Excluir endpoints e recursos](realtime-endpoints-delete-resources.md). No entanto, quando você exclui o endpoint por meio do console SageMaker AI ou APIs em vez do aplicativo Canvas, a lista de implantações no Canvas não é atualizada automaticamente. Você também deve excluir a implantação da aplicação Canvas para removê-la da lista.

Para excluir uma implantação no Canvas, faça o seguinte:

1. Abra o aplicativo SageMaker Canvas.

1. No painel de navegação à esquerda, escolha **Perfis**.

1. Escolha a guia **Grupos de implantação**.

1. Na lista de implantações, escolha aquela que você deseja excluir.

1. Na parte superior da página de detalhes da implantação, escolha o ícone **Mais opções** (![\[More options icon for the output CSV file.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. Escolha **Excluir implantação**.

1. Na caixa de diálogo **Excluir implantação**, escolha **Excluir**.

Sua implantação e o endpoint de hospedagem de SageMaker IA agora devem ser excluídos do Canvas e do console de SageMaker IA.

# Como gerenciar automações
<a name="canvas-manage-automations"></a>

No SageMaker Canvas, você pode criar automações que atualizam seu conjunto de dados ou geram previsões do seu modelo em um cronograma. Por exemplo, você pode receber novos dados de envio diariamente. Você pode configurar uma atualização automática para seu conjunto de dados e predições automáticas em lote que são executadas sempre que o conjunto de dados é atualizado. Usando esses atributos, você pode configurar um fluxo de trabalho automatizado e reduzir o tempo gasto atualizando manualmente conjuntos de dados e fazendo predições.

**nota**  
Você só pode definir no máximo 20 configurações automáticas no sua aplicação Canvas. As automações só estão ativas enquanto você está conectado à aplicação Canvas. Se você se desconectar do Canvas, seus trabalhos são pausados automaticamente até que você faça login novamente.

As seções a seguir descrevem como visualizar, editar e excluir configurações de automações existentes. Para saber como configurar automações, consulte os tópicos a seguir:
+ Para configurar atualizações automáticas do conjunto de dados, consulte [Atualizar um conjunto de dados](canvas-update-dataset.md).
+ Para configurar predições automáticas em lote, consulte [Previsões em lote no Canvas SageMaker](canvas-make-predictions-batch.md).

**Topics**
+ [Visualize suas automações](canvas-manage-automations-view.md)
+ [Edite suas configurações automáticas](canvas-manage-automations-edit.md)
+ [Excluir uma configuração automática](canvas-manage-automations-delete.md)

# Visualize suas automações
<a name="canvas-manage-automations-view"></a>

Você também pode visualizar todos os seus trabalhos de atualização automática acessando o painel de navegação esquerdo do Canvas e escolhendo **Operações**. A página **Operações** combina automações para atualizações automáticas de conjuntos de dados e predições automáticas em lote. Na página **Automações**, você pode ver as seguintes guias:
+ **Todos os trabalhos**: Você pode ver todas as instâncias de uma **atualização de conjunto de dados** ou trabalho de **predições em lote** que o Canvas realizou. Para cada trabalho, você pode ver campos como o **conjunto de dados de entrada** associado, o **Nome da configuração** de atualização automática associada e o **Status** mostrando se o trabalho foi bem-sucedido ou não. Você pode filtrar os trabalhos por nome de configuração:
  + Para trabalhos de atualização do conjunto de dados, você pode escolher a versão mais recente do conjunto de dados ou o trabalho mais recente para visualizar o conjunto de dados.
  + Para trabalhos de predição em lote, você pode escolher o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) para visualizar ou baixar as predições para esse trabalho. Você também pode escolher **Exibir detalhes** para ver mais detalhes sobre seu trabalho de predição. Para obter mais informações sobre os detalhes do trabalho de predição em lotes, consulte[Visualize seus trabalhos de predição em lotes](canvas-make-predictions-batch-auto-view.md).
+ **Configuração**: Você pode ver todas as configurações de **atualização do conjunto de dados** e **predições em lote** que você criou. Para cada configuração, você pode ver campos como o **conjunto de dados de entrada** associado e a **frequência** dos trabalhos. Você também pode desativar ou ativar o botão **Atualização automática** para pausar ou retomar as atualizações automáticas. Se você escolher o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)) para uma configuração específica, poderá optar por **Visualizar todos os trabalhos** da configuração, **Atualizar configuração** ou **Excluir configuração**.

# Edite suas configurações automáticas
<a name="canvas-manage-automations-edit"></a>

Depois de definir uma configuração, você pode querer fazer alterações nela. Para atualizações automáticas do conjunto de dados, você pode atualizar a localização do Amazon S3 para o Canvas para importar dados, a frequência das atualizações e o horário de início. Para predições automáticas em lote, você pode alterar o conjunto de dados que a configuração rastreia para atualizações. Você também pode desativar a automação para pausar temporariamente as atualizações até optar por retomá-las.

As seções a seguir mostram como atualizar cada tipo de configuração.

**nota**  
Você não pode alterar a frequência das predições automáticas em lote porque as predições automáticas em lote são executadas sempre que o conjunto de dados de destino é atualizado.

**Topics**
+ [Editar sua configuração de atualização automática do conjunto de dados](canvas-manage-automations-edit-dataset.md)
+ [Edite sua configuração automática de predição de lote](canvas-manage-automations-edit-batch.md)

# Editar sua configuração de atualização automática do conjunto de dados
<a name="canvas-manage-automations-edit-dataset"></a>

É possível fazer alterações na configuração de atualização automática de um conjunto de dados, como alterar a frequência das atualizações. Você também pode desativar sua configuração de atualização automática para pausar as atualizações do seu conjunto de dados.

Para fazer alterações na configuração de atualização automática de um conjunto de dados, faça o seguinte:

1. No painel de navegação à esquerda do Canvas, selecione **Meus modelos**.

1. Escolha a guia **Alocações**.

1. Escolha a guia **Configuração**.

1. Para sua configuração de atualização automática, escolha o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. No menu suspenso, escolha **Atualizar** configuração. Você é direcionado para a guia **Atualizações automáticas** do conjunto de dados.

1. Faça as suas alterações na configuração. Quando terminar de fazer as alterações, selecione **Salvar**.

Para pausar as atualizações do conjunto de dados, desative sua configuração automática. Uma forma de desativar as atualizações automáticas é fazer o seguinte:

1. No painel de navegação à esquerda do Canvas, selecione **Meus modelos**.

1. Escolha a guia **Alocações**.

1. Escolha a guia **Configuração**.

1. Encontre sua configuração na lista e desative o botão de **atualização automática**.

As atualizações automáticas do seu conjunto de dados agora estão pausadas. Você pode reativar essa opção a qualquer momento para retomar o cronograma de atualizações.

# Edite sua configuração automática de predição de lote
<a name="canvas-manage-automations-edit-batch"></a>

Ao editar uma configuração de predição em lote, você pode alterar o conjunto de dados de destino, mas não a frequência (já que as predições em lote automáticas ocorrem sempre que o conjunto de dados é atualizado).

Para fazer alterações em sua configuração automática de predições em lote, faça o seguinte:

1. No painel de navegação à esquerda do Canvas, selecione **Meus modelos**.

1. Escolha a guia **Alocações**.

1. Escolha a guia **Configuração**.

1. Para sua configuração de atualização automática, escolha o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. No menu suspenso, escolha **Atualizar** configuração. Você é direcionado para a guia **Atualizações automáticas** do conjunto de dados.

1. A caixa de diálogo **Automatizar predição em lote** é aberta. Você pode selecionar outro conjunto de dados e escolher **Configurar** para salvar suas alterações.

Sua configuração automática de predições em lote agora está atualizada.

Para pausar suas predições automáticas em lote, desative sua configuração automática. Use o seguinte procedimento para desativar sua configuração:

1. No painel de navegação à esquerda do Canvas, selecione **Meus modelos**.

1. Escolha a guia **Alocações**.

1. Escolha a guia **Configuração**.

1. Encontre sua configuração na lista e desative o botão de **atualização automática**.

As predições automáticas em lote para seu conjunto de dados agora estão pausadas. Você pode reativar essa opção a qualquer momento para retomar o cronograma de atualizações.

# Excluir uma configuração automática
<a name="canvas-manage-automations-delete"></a>

Talvez você queira excluir uma configuração para interromper seu fluxo de trabalho automatizado no SageMaker Canvas.

Para excluir uma configuração para atualizações automáticas de conjuntos de dados ou predições automáticas em lote, faça o seguinte:

1. No painel de navegação à esquerda do Canvas, selecione **Meus modelos**.

1. Escolha a guia **Alocações**.

1. Escolha a guia **Configuração**.

1. Encontre sua configuração de atualização automática e escolha o ícone **Mais opções** (![\[Vertical ellipsis icon representing a menu or more options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/more-options-icon.png)).

1. Escolha **Excluir configuração**.

1. Na caixa de diálogo exibida, escolha **Excluir**.

Sua configuração de atualização automática agora está excluída.

# Sair do Amazon SageMaker Canvas
<a name="canvas-log-out"></a>

Depois de concluir seu trabalho no Amazon SageMaker Canvas, você pode sair ou configurar seu aplicativo para encerrar automaticamente a instância do *espaço de trabalho*. Uma instância de workspace é dedicada para seu uso toda vez que você executa uma aplicação Canvas, e você é cobrado pelo tempo em que a instância for executada. Sair ou encerrar a instância do espaço de trabalho interrompe o faturamento da instância de workspace. Para obter mais informações, consulte [SageMaker Preço](https://aws.amazon.com/sagemaker/pricing/).

As seções a seguir descrevem como sair de sua aplicação Canvas e como configurar sua aplicação para ser encerrado automaticamente de acordo com um cronograma.

## Encerre a sessão no Canvas
<a name="canvas-log-out-how-to"></a>

Quando você se desconecta, os modelos e conjuntos de dados não são afetados. Qualquer compilação padrão ou rápida do modelo ou [trabalho de processamento de dados grandes](canvas-export-data.md#canvas-export-data-s3) continua em execução mesmo que você se desconecte.

Para sair, escolha o botão **Sair** (![\[Filter icon in the SageMaker Canvas app.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/canvas/logout-icon.png)) no painel esquerdo do aplicativo SageMaker Canvas.

Você também pode sair do aplicativo SageMaker Canvas fechando a guia do navegador e [excluindo o aplicativo](canvas-manage-apps-delete.md) no console.

Depois de sair, o SageMaker Canvas solicita que você reinicie em uma guia diferente. O login leva cerca de 1 minuto. Se você tiver um administrador que configurou o SageMaker Canvas para você, use as instruções que eles lhe deram para entrar novamente. Se não tiver um administrador, consulte o procedimento para acessar o SageMaker Canvas em[Pré-requisitos para configurar o Amazon Canvas SageMaker](canvas-getting-started.md#canvas-prerequisites).

## Encerrar o Canvas automaticamente
<a name="canvas-auto-shutdown"></a>

Se você é administrador do Canvas, talvez queira encerrar aplicações regularmente para reduzir custos. Você pode criar um cronograma para encerrar as aplicações ativas do Canvas ou criar uma automação para encerrar as aplicações do Canvas assim que estiverem *ociosas* (o que significa que o usuário não está ativo há 2 horas).

Você pode criar essas soluções usando AWS Lambda funções que chamam a `DeleteApp` API e excluem aplicativos do Canvas em determinadas condições. Para obter mais informações sobre essas soluções e acesso aos CloudFormation modelos que você pode usar, consulte o blog [Otimizando custos para o Amazon SageMaker Canvas com o desligamento automático de aplicativos inativos](https://aws.amazon.com/blogs/machine-learning/optimizing-costs-for-amazon-sagemaker-canvas-with-automatic-shutdown-of-idle-apps/).

**nota**  
Você pode sentir a falta de CloudWatch métricas [da Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) se houver um erro ao configurar seu cronograma de desligamento ocioso ou um CloudWatch erro. Recomendamos que você adicione um CloudWatch alarme que monitore as métricas ausentes. Se você encontrar esse problema, entre em contato Suporte para obter ajuda.

# Limitações e solução de problemas
<a name="canvas-limits"></a>

A seção a seguir descreve a ajuda para solução de problemas e as limitações que se aplicam ao usar o Amazon SageMaker Canvas. Você pode usar esses tópicos para ajudar a solucionar quaisquer problemas encontrados.

## Solução de problemas com a concessão de permissões por meio do console de SageMaker IA
<a name="canvas-troubleshoot-trusted-services"></a>

Se você está tendo problemas para conceder permissões básicas ou permissões de Ready-to-use modelos do Canvas ao seu usuário, ele pode ter uma função de execução do AWS IAM com mais de uma relação de confiança com outros AWS serviços. Uma relação de confiança é uma política anexada à sua função que define quais entidades principais (usuários, funções, contas ou serviços) podem assumir a função. Por exemplo, você pode encontrar um problema ao conceder permissões adicionais do Canvas ao seu usuário se a função de execução dele tiver uma relação de confiança com o Amazon SageMaker AI e o Amazon Forecast.

Para corrigir esse problema, escolha uma das opções a seguir.

### 1. Remova todos os serviços confiáveis, exceto um, da função.
<a name="canvas-troubleshoot-trusted-services-remove"></a>

Essa solução exige que você edite a relação de confiança da função do IAM do seu perfil de usuário e remova todos os AWS serviços, exceto a SageMaker IA.

Para editar a relação de confiança da sua função de execução do IAM, faça o seguinte:

1. Acesse o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação do console do IAM, escolha **Perfis**. O console exibe as funções de sua conta.

1. Escolha o nome da função que você deseja modificar e selecione a guia **Relações de confiança** na página de detalhes.

1. Escolha **Editar política de confiança**.

1. No editor **Editar política de confiança**, cole o conteúdo a seguir e escolha **Atualizar política**.

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

****  

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

------

Também é possível atualizar este documento de política usando a CLI do IAM. Para obter mais informações, consulte [update-trust](https://docs.aws.amazon.com/cli/latest/reference/ds/update-trust.html) na *Referência de comandos da IAM*.

Agora você pode tentar conceder novamente as permissões básicas do Canvas ou as permissões dos Ready-to-use modelos ao seu usuário.

### 2. Use uma função diferente com um ou menos serviços confiáveis.
<a name="canvas-troubleshoot-trusted-services-alternate"></a>

Essa solução exige que você especifique uma função diferente do IAM para seu perfil de usuário. Use essa opção se você já tiver um perfil do IAM que você pode substituir.

Para especificar um perfil de execução diferente para seu usuário, faça o seguinte:

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Na lista de domínios, selecione o domínio cuja lista de perfis de usuário você deseja visualizar.

1. Na página **Detalhes do Domínio**, escolha a aba **Perfis de usuário**.

1. Escolha o usuário cujas permissões você deseja editar. Na página **Detalhes do usuário**, selecione **Editar**.

1. Na página **Configurações gerais**, escolha a lista suspensa **Perfil de execução** e selecione o perfil que você deseja usar.

1. Escolha **Enviar** para salvar suas alterações no perfil do usuário.

Agora, seu usuário deve estar usando uma função de execução com apenas um serviço confiável (SageMaker IA).

Você pode tentar conceder novamente as permissões básicas do Canvas ou as permissões dos Ready-to-use modelos ao seu usuário.

### 3. Anexe manualmente a política AWS gerenciada à função de execução em vez de usar o botão nas configurações do domínio de SageMaker IA.
<a name="canvas-troubleshoot-trusted-services-manual"></a>

Em vez de usar o botão de alternância nas configurações do domínio ou do perfil do usuário, você pode anexar manualmente as políticas gerenciadas pela AWS que concedem ao usuário as permissões corretas.

Para conceder permissões básicas do Canvas a um usuário, anexe a [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess)política. Para conceder permissões aos Ready-to-use modelos de usuário, anexe a política de [AmazonSageMakerCanvasAIServicesacesso](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess).

Use o procedimento a seguir para anexar uma política AWS gerenciada à sua função:

1. Acesse o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Escolha **Perfis**.

1. Na caixa de pesquisa, busque o perfil do IAM do usuário pelo nome e selecione-o.

1. Na página de perfilo do usuário, em **Permissões**, escolha **Adicionar permissões**.

1. Da lista suspensa, escolha **Anexar políticas**.

1. Pesquise e selecione a política ou políticas que você deseja anexar ao perfil de execução do usuário:

   1. Para conceder as permissões básicas do Canvas, pesquise e selecione a [AmazonSageMakerCanvasFullAccess](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasFullAccess)política.

   1. Para conceder permissões aos Ready-to-use modelos, pesquise e selecione a política de [AmazonSageMakerCanvasAIServicesacesso](https://docs.aws.amazon.com/sagemaker/latest/dg/security-iam-awsmanpol-canvas.html#security-iam-awsmanpol-AmazonSageMakerCanvasAIServicesAccess).

1. Escolha **Adicionar permissões** para anexar a política ao perfil.

Depois de anexar uma política AWS gerenciada à função do usuário por meio do console do IAM, seu usuário agora deve ter as permissões básicas ou as permissões de Ready-to-use modelos do Canvas.

## Solução de problemas com a criação de uma aplicação Canvas devido à falha de espaço
<a name="canvas-troubleshoot-spaces"></a>

Ao criar um novo aplicativo Canvas, se você encontrar um erro informando`Unable to create app <app-arn> because space <space-arn> is not in InService state`, isso indica que a criação do espaço subjacente do Amazon SageMaker Studio falhou. Um *espaço* Studio é o armazenamento subjacente que hospeda os dados da sua aplicação Canvas. Para obter mais informações gerais sobre os espaços do Studio, consulte [Espaços do Amazon SageMaker Studio](studio-updated-spaces.md). Para obter mais informações sobre como configurar espaços no Canvas, consulte [Armazene dados do aplicativo SageMaker Canvas em seu próprio espaço de SageMaker IA](canvas-spaces-setup.md).

Para determinar a causa raiz da falha na criação do espaço, você pode usar a [DescribeSpace](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeSpace.html)API para verificar o `FailureReason` campo. Para mais informações sobre os possíveis status dos espaços e o que eles significam, consulte [Entidades e status de domínio da Amazon SageMaker AI](sm-domain.md).

Para resolver esse problema, encontre seu domínio no console do SageMaker AI e exclua o espaço com falha listado na mensagem de erro que você recebeu. Para obter etapas detalhadas sobre como encontrar e excluir um espaço, consulte a página [Interromper e excluir aplicações e espaços em execução no Studio](studio-updated-running-stop.md) e siga as instruções para **Excluir um espaço do Studio**. A exclusão do espaço também exclui todos as aplicações associados ao espaço. Depois de excluir o espaço, você pode tentar criar sua aplicação Canvas novamente. O espaço agora deve ser provisionado com sucesso, permitindo que o Canvas seja lançado.

# Cobrança e custo no Canvas SageMaker
<a name="canvas-manage-cost"></a>

Para rastrear os custos associados ao seu aplicativo SageMaker Canvas, você pode usar o Gerenciamento de Faturamento e Custos da AWS serviço. O gerenciamento faturamento e custo fornece ferramentas para ajudar você a coletar informações relacionadas ao seu custo e uso, analisar o que eleva seus custos e as tendências de uso, e adotar medidas para controlar seus gastos. Para obter mais informações, consulte [O que é o Gerenciamento de Faturamento e Custos da AWS?](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-what-is.html)

O faturamento no SageMaker Canvas consiste nos seguintes componentes:
+ Cobranças de instância do Workspace — Você é cobrado pelo número de horas em que está conectado ou usando SageMaker o Canvas. Recomendamos que você saia ou crie um cronograma para encerrar qualquer aplicação Canvas que não esteja usando ativamente para reduzir custos. Para obter mais informações, consulte [Sair do Amazon SageMaker Canvas](canvas-log-out.md).
+ AWS taxas de serviço — Você é cobrado por criar e fazer previsões com modelos personalizados ou por fazer previsões com Ready-to-use modelos:
  + Taxas de treinamento: Para todos os tipos de modelo, você é cobrado com base no uso de recursos durante a criação do modelo. Esses recursos incluem todas as instâncias de computação que o Canvas gira. Você pode ver essas cobranças em sua conta como trabalhos de hospedagem, treinamento, processamento ou transformação em lote.
  + Cobranças de previsão — Você é cobrado pelos recursos usados para gerar previsões, dependendo do tipo de modelo personalizado que você criou ou do tipo de Ready-to-use modelo usado.

Os [Ready-to-use modelos](canvas-ready-to-use-models.md) no Canvas utilizam outros AWS serviços para gerar previsões. Ao usar um Ready-to-use modelo, você é cobrado pelo respectivo serviço, e suas condições de preço se aplicam:
+ Para análise de sentimentos, extração de entidades, detecção de idioma e detecção de informações pessoais, você é cobrado pelos preços do [Amazon Comprehend](https://aws.amazon.com/comprehend/pricing/).
+ Para detecção de objetos em imagens e detecção de texto em imagens, você é cobrado de acordo com os preços do [Amazon Rekognition.](https://aws.amazon.com/rekognition/pricing/)
+ Para análise de despesas, análise de documentos de identidade e análise de documentos, você é cobrado pelos preços do [Amazon Textract](https://aws.amazon.com/textract/pricing/).

Para mais informações, consulte [SageMaker Preços do Canvas](https://aws.amazon.com/sagemaker/canvas/pricing/).

Para ajudá-lo a controlar seus custos no Billing and Cost Management, você pode atribuir tags personalizadas ao SageMaker seu aplicativo Canvas e aos usuários. Você pode monitorar os custos incorridos por suas aplicações e, ao marcar perfis de usuário individuais, pode rastrear os custos com base no perfil do usuário. Para obter mais informações sobre tags, consulte [Uso de tags de alocação de custos](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html).

Você pode adicionar tags ao seu aplicativo SageMaker Canvas e aos usuários fazendo o seguinte:
+ Se você estiver configurando seu domínio Amazon SageMaker AI e o SageMaker Canvas pela primeira vez, siga as instruções de [introdução](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html) e adicione tags ao criar seu domínio ou usuários. Você pode adicionar tags por meio das **configurações gerais** na configuração do console do domínio ou por meio do APIs ([CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html)ou [CreateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html)). SageMaker A IA adiciona as tags especificadas no seu domínio ou UserProfile em qualquer aplicativo ou usuário do SageMaker Canvas que você criar depois de criar o domínio.
+ Se você quiser adicionar tags a aplicativos em um domínio existente, deverá adicionar tags ao domínio ou ao UserProfile. Você pode adicionar tags por meio do console ou da [AddTags](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddTags.html)API. Se você adicionar tags por meio do console, deverá excluir e reiniciar seu aplicativo SageMaker Canvas para que as tags se propaguem para o aplicativo. Se você usa a API, as tags são adicionadas diretamente à aplicação. [Para obter mais informações sobre como excluir e reiniciar um aplicativo SageMaker Canvas, consulte Gerenciar aplicativos.](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-manage-apps.html)

Depois de adicionar tags ao seu domínio, pode levar até 24 horas para que as tags apareçam no Gerenciamento de Faturamento e Custos da AWS console para ativação. Depois de aparecerem no console, as tags demoram mais 24 horas para serem ativadas.

Na página do **Explorador de custos**, você pode agrupar e filtrar seus custos por tags e tipos de uso para separar as cobranças da instância do Workspace das cobranças de treinamento. As cobranças de cada uma estão listadas da seguinte forma:
+ Cobranças de instâncias do Workspace: as cobranças aparecem abaixo do tipo de uso `REGION-Canvas:Session-Hrs (Hrs)`.
+ Taxas de treinamento: as cobranças aparecem abaixo dos tipos de uso para trabalhos de SageMaker AI Hosting, Training, Processing ou Batch Transform.

# Capacidades SageMaker geoespaciais da Amazon
<a name="geospatial"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. Se antes de 30 de novembro de 2023 você criou um domínio Amazon SageMaker AI, o Studio Classic continua sendo a experiência padrão. Os domínios criados após 30 de novembro de 2023 usam como padrão a nova experiência do Studio.  
Os recursos e recursos SageMaker geoespaciais da Amazon *só* estão disponíveis no Studio Classic. Para saber mais sobre como configurar um domínio e começar a usar o Studio, consulte[Começando a usar a Amazon SageMaker Geospatial](geospatial-getting-started.md).

Os recursos SageMaker geoespaciais da Amazon facilitam que cientistas de dados e engenheiros de aprendizado de máquina (ML) criem, treinem e implantem modelos de ML com mais rapidez usando dados geoespaciais. Você tem acesso a ferramentas de dados, processamento e visualização de código aberto e de terceiros para tornar mais eficiente a preparação de dados geoespaciais para ML. Você pode aumentar sua produtividade usando algoritmos específicos e modelos de ML pré-treinados para acelerar a criação e o treinamento de modelos, além de usar ferramentas de visualização integradas para explorar os resultados de predição em um mapa interativo e depois colaborar entre as equipes na obtenção de insights e resultados.

**nota**  
Atualmente, as capacidades SageMaker geoespaciais são suportadas somente na região Oeste dos EUA (Oregon).  
Se você não vê a interface SageMaker geoespacial disponível em sua instância atual do Studio Classic, verifique se você está atualmente na região Oeste dos EUA (Oregon).
<a name="why-use-geo"></a>
**Por que usar recursos SageMaker geoespaciais?**  
Você pode usar recursos SageMaker geoespaciais para fazer previsões em dados geoespaciais mais rapidamente do que soluções. do-it-yourself SageMaker os recursos geoespaciais facilitam o acesso a dados geoespaciais de seus lagos de dados de clientes, conjuntos de dados de código aberto e outros SageMaker provedores de dados geoespaciais existentes. SageMaker os recursos geoespaciais minimizam a necessidade de criar infraestrutura personalizada e funções de pré-processamento de dados, oferecendo algoritmos específicos para preparação eficiente de dados, treinamento de modelos e inferência. Você também pode criar e compartilhar visualizações e dados personalizados com sua empresa a partir do Amazon SageMaker Studio Classic. SageMaker as capacidades geoespaciais oferecem modelos pré-treinados para usos comuns em agricultura, imóveis, seguros e serviços financeiros.

## Como posso usar os recursos SageMaker geoespaciais?
<a name="how-use-geo"></a>

Você pode usar os recursos SageMaker geoespaciais de duas maneiras.
+ Por meio da interface SageMaker geoespacial, como parte da interface do usuário do Amazon SageMaker Studio Classic.
+ Por meio de uma instância do caderno Studio que usa a imagem **Geoespacial 1.0**.

**SageMaker A IA tem os seguintes recursos geoespaciais**
+ Use uma imagem SageMaker geoespacial criada especificamente que ofereça suporte a instâncias de notebook baseadas em CPU e GPU e também inclua bibliotecas de código aberto comumente usadas em fluxos de trabalho de aprendizado de máquina geoespacial.
+ Use o Amazon SageMaker Processing e o contêiner SageMaker geoespacial para executar cargas de trabalho em grande escala com seus próprios conjuntos de dados, incluindo solo, clima, LiDAR e imagens comerciais aéreas e de satélite.
+ Execute um [trabalho de Observação da Terra](https://docs.aws.amazon.com/sagemaker/latest/dg/geospatial-eoj.html) para processamento de dados raster.
+ Execute um [trabalho de enriquecimento de vetor](https://docs.aws.amazon.com/sagemaker/latest/dg/geospatial-vej.html) para converter latitude e longitude em endereços legíveis por humanos e combinar traços de GPS ruidosos com estradas específicas.
+ Use [ferramentas de visualização integradas diretamente no Studio para visualizar de forma interativa dados geoespaciais ou predições de modelos em um mapa.](https://docs.aws.amazon.com/sagemaker/latest/dg/geospatial-visualize.html)

Você também pode usar dados de uma coleção de provedores de dados geoespaciais. Atualmente, as coleções de dados disponíveis incluem:
+ [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/)

## Você é um usuário de SageMaker geoespacial pela primeira vez?
<a name="first-time-geospatial-data"></a>

Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. Novos domínios criados após 30 de novembro de 2023 usam como padrão a experiência do Studio. O acesso à SageMaker área geoespacial é limitado ao Studio Classic, para saber mais, consulte[Acessando SageMaker geoespaciais](access-studio-classic-geospatial.md).

Se você é um usuário iniciante do AWS Amazon SageMaker AI, recomendamos que você faça o seguinte:

1. **Crie um Conta da AWS.**

   Para saber mais sobre como configurar uma AWS conta e começar a usar a SageMaker IA, consulte[Pré-requisitos completos do Amazon SageMaker AI](gs-set-up.md).

1. **Crie uma função de usuário e uma função de execução que funcionem com SageMaker geoespacial**.

   Como um serviço gerenciado, os recursos SageMaker geoespaciais da Amazon realizam operações em seu nome no AWS hardware que a SageMaker IA gerencia. Uma função de execução de SageMaker IA pode realizar somente as operações que os usuários concedem. Para trabalhar com recursos SageMaker geoespaciais, você deve configurar uma função de usuário e uma função de execução. Para obter mais informações, consulte [SageMaker funções de capacidades geoespaciais](sagemaker-geospatial-roles.md).

1. **Atualize sua política de confiança para incluir informações SageMaker geoespaciais**.

   SageMaker geospatial define um principal de serviço adicional. Para saber como criar ou atualizar a política de confiança da sua função de execução de SageMaker IA, consulte[Adicionando  o principal do serviço SageMaker geoespacial a uma função de execução de SageMaker IA existente](sagemaker-geospatial-roles-pass-role.md).

1. **Configure um domínio do Amazon SageMaker AI para acessar o Amazon SageMaker Studio Classic.**

   Para usar SageMaker geoespacial, é necessário um domínio. Para domínios criados antes de 30 de novembro de 2023, a experiência padrão é o Studio Classic. domínios criados após 30 de novembro de 2023 usam como padrão a experiência Studio. Para saber mais sobre como acessar o Studio Classic a partir do Studio, consulte[Acessando SageMaker geoespaciais](access-studio-classic-geospatial.md).

1. **Lembre-se de fechar os recursos.**

   Quando você terminar de usar os recursos SageMaker geoespaciais, desligue a instância em que ela é executada para evitar cobranças adicionais. Para obter mais informações, consulte [Encerre os recursos do Amazon SageMaker Studio Classic](notebooks-run-and-manage-shut-down.md). 

**Topics**
+ [Como posso usar os recursos SageMaker geoespaciais?](#how-use-geo)
+ [Você é um usuário de SageMaker geoespacial pela primeira vez?](#first-time-geospatial-data)
+ [Começando a usar a Amazon SageMaker Geospatial](geospatial-getting-started.md)
+ [Usando trabalhos de processamento para workloads geoespaciais personalizadas](geospatial-custom-operations.md)
+ [Trabalhos de observação da terra](geospatial-eoj.md)
+ [Trabalhos de enriquecimento de vetor](geospatial-vej.md)
+ [Visualização usando recursos SageMaker geoespaciais](geospatial-visualize.md)
+ [SDK de mapas SageMaker geoespaciais da Amazon](geospatial-notebook-sdk.md)
+ [SageMaker Perguntas frequentes sobre capacidades geoespaciais](geospatial-faq.md)
+ [SageMaker Segurança e permissões geoespaciais](geospatial-security-general.md)
+ [Tipos de instâncias de computação](geospatial-instances.md)
+ [Coleções de dados](geospatial-data-collections.md)

# Começando a usar a Amazon SageMaker Geospatial
<a name="geospatial-getting-started"></a>

 SageMaker O geospatial fornece um **tipo de **imagem** e instância** criado especificamente para notebooks Amazon SageMaker Studio Classic. **Você pode usar notebooks habilitados para CPU ou GPU com a imagem SageMaker geoespacial.** Você também pode visualizar seus dados geoespaciais usando um visualizador criado especificamente. Além disso, o SageMaker setor geoespacial também permite APIs que você consulte coleções de dados rasterizados. Você também pode usar modelos pré-treinados para analisar dados geoespaciais, reverter a geocodificação e a correspondência de mapas.

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. Se antes de 30 de novembro de 2023 você criou um domínio Amazon SageMaker AI, o Studio Classic continua sendo a experiência padrão. Os domínios criados após 30 de novembro de 2023 usam como padrão a nova experiência do Studio.

Para acessar e começar a usar o Amazon SageMaker Geospatial, faça o seguinte:

**Topics**
+ [Acessando SageMaker geoespaciais](access-studio-classic-geospatial.md)
+ [Crie um notebook Amazon SageMaker Studio Classic usando a imagem geoespacial](geospatial-launch-notebook.md)
+ [Acesse a coleta de dados raster do Sentinel-2 e crie um trabalho de observação da terra para realizar a segmentação da terra](geospatial-demo.md)

# Acessando SageMaker geoespaciais
<a name="access-studio-classic-geospatial"></a>

**nota**  
Atualmente, os recursos SageMaker geoespaciais são suportados somente na região Oeste dos EUA (Oregon) e no Studio Classic.  
Se você não vê a interface SageMaker geoespacial disponível em sua instância atual do Studio Classic, verifique se você está atualmente na região Oeste dos EUA (Oregon).

É necessário um domínio para acessar a área SageMaker geoespacial. Se você criou um domínio antes de 30 de novembro de 2023, a experiência padrão é o Studio Classic.

Se você criou um domínio depois de 30 de novembro de 2023 ou se migrou para o Studio, você pode usar o procedimento a seguir para ativar o Studio Classic de dentro do Studio para usar recursos SageMaker geoespaciais.

Para saber mais sobre a criação de um domínio, consulte [Onboard to Amazon SageMaker AI domain](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-onboard.html).

**Para acessar o Studio Classic a partir do Studio**

1. Inicie o Amazon SageMaker Studio.

1. Em **Aplicações**, escolha **Studio Classic**.

1. Em seguida, escolha **Criar espaço Studio Classic**.

1. Na página do **Criar espaço Studio Classic**, insira um **Nome**.

1. Desative a opção **Compartilhar com meu domínio**. SageMaker geospatial não está disponível em domínios compartilhados.

1. Em seguida, selecione **Criar espaço**.

Quando bem-sucedido, o **status** muda para **Atualização**. Quando sua aplicação do Studio Classic estiver pronto para ser usado, o status mudará para **Interrompido**.

Para iniciar sua aplicação Studio Classic, escolha **Executar**.

# Crie um notebook Amazon SageMaker Studio Classic usando a imagem geoespacial
<a name="geospatial-launch-notebook"></a>

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da aplicação Studio Classic. Para obter informações sobre como usar a experiência atualizada do Studio, consulte [SageMaker Estúdio Amazon](studio-updated.md).  
O Studio Classic ainda é mantido para cargas de trabalho existentes, mas não está mais disponível para integração. Você só pode parar ou excluir aplicativos do Studio Classic existentes e não pode criar novos. Recomendamos que você [migre sua carga de trabalho para a nova experiência do Studio](studio-updated-migrate.md).

**nota**  
Atualmente, a SageMaker geoespacial só é suportada na região Oeste dos EUA (Oregon).  
Se você não vê a SageMaker localização geoespacial disponível em seu domínio atual ou instância de notebook, verifique se você está atualmente na região Oeste dos EUA (Oregon).

Use o procedimento a seguir para criar o notebook Studio Classic com a imagem SageMaker geoespacial. Se sua experiência de estúdio padrão for o Studio, consulte [Acessando SageMaker geoespaciais](access-studio-classic-geospatial.md) para saber como iniciar uma aplicação Studio Classic.

**Para criar um notebook Studio Classic com a imagem SageMaker geoespacial**

1. Execute o Studio Classic

1. Escolha **Início** na barra de menu.

1. Em **Ações rápidas**, escolha **Abrir inicializador**.

1. Quando a caixa de diálogo **Inicializador** é exibida. Escolha **Alterar ambiente** em **Cadernos e recursos de computação**.

1. Quando a caixa de diálogo **Alterar ambiente** é aberta. Escolha a lista suspensa **Imagem** e escolha ou digite **Geoespacial 1.0**.  
![\[Uma caixa de diálogo mostrando a imagem geoespacial correta e o tipo de instância selecionado.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/geospatial-environment-dialogue.png)

1. Em seguida, escolha um **tipo de instância** da lista suspensa.

   SageMaker O geospatial suporta dois tipos de instâncias de notebook: CPU e GPU. A instância de CPU compatível é chamada **ml.geospatial.interactive**. Qualquer instância de GPU da família G5 pode ser usada com a imagem Geoespacial 1.0.
**nota**  
Se você receber um ResourceLimitExceedederro ao tentar iniciar uma instância baseada em GPU, precisará solicitar um aumento de cota. Para iniciar uma solicitação de aumento da cota Service Quotas, consulte [Solicitar um aumento de cota](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) no *Guia do usuário do Service Quotas* 

1. Escolha **Selecionar**.

1. Escolha **Criar caderno**.

Depois de criar um notebook, para aprender mais sobre SageMaker geoespacial, experimente o tutorial [SageMaker geoespacial](geospatial-demo.md). Ele mostra como processar dados de imagem do Sentinel-2 e realizar a segmentação da terra usando a API de trabalhos de observação da terra. 

# Acesse a coleta de dados raster do Sentinel-2 e crie um trabalho de observação da terra para realizar a segmentação da terra
<a name="geospatial-demo"></a>

Este tutorial baseado em Python usa o SDK para Python (Boto3) e um notebook Amazon Studio Classic. SageMaker Para concluir esta demonstração com sucesso, verifique se você tem as permissões AWS Identity and Access Management (IAM) necessárias para usar SageMaker geospatial e o Studio Classic. SageMaker geospatial exige que você tenha um usuário, grupo ou função que possa acessar o Studio Classic. Você também deve ter uma função de execução de SageMaker IA que especifique o principal do serviço SageMaker geoespacial `sagemaker-geospatial.amazonaws.com` em sua política de confiança. 

Para saber mais sobre esses requisitos, consulte as [funções SageMaker geoespaciais do IAM](sagemaker-geospatial-roles.md).

Este tutorial mostra como usar a API SageMaker geoespacial para concluir as seguintes tarefas:
+ Encontre as coleções de dados raster disponíveis com `list_raster_data_collections`.
+ Pesquise uma coleção de dados raster especificada usando `search_raster_data_collection`.
+ Crie um trabalho de observação da terra (EOJ) usando o `start_earth_observation_job`.

## Usando `list_raster_data_collections` para encontrar coleções de dados disponíveis
<a name="demo-use-list-rdc"></a>

SageMaker geospatial suporta várias coleções de dados raster. Para saber mais sobre as coleções de dados disponíveis, consulte [Coleções de dados](geospatial-data-collections.md).

Esta demonstração usa dados de satélite coletados de satélites [GeoTIFF Sentinel-2 otimizados para nuvem](https://registry.opendata.aws/sentinel-2-l2a-cogs/). Esses satélites fornecem cobertura global da superfície terrestre da terra a cada cinco dias. Além de coletar imagens da superfície da terra, os satélites Sentinel-2 também coletam dados em uma variedade de bandas espectrais.

Para pesquisar uma área de interesse (AOI), você precisa do ARN associado aos dados do satélite Sentinel-2. Para encontrar as coleções de dados disponíveis e as associadas às ARNs suas Região da AWS, use a operação da `list_raster_data_collections` API.

Como a resposta pode ser paginada, você deve usar a operação `get_paginator` para retornar todos os dados relevantes:

```
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)
```

Este é um exemplo de resposta JSON da operação de API `list_raster_data_collections`. É truncado para incluir somente a coleta de dados (Sentinel-2) usada neste exemplo de código. Para obter mais detalhes sobre uma coleta de dados raster específica, use `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"
}
```

Depois de executar a amostra de código anterior, você obtém o ARN da coleção de dados raster do Sentinel-2, `arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8`. Na [próxima seção](#demo-search-raster-data), você pode consultar a coleta de dados do Sentinel-2 usando a API `search_raster_data_collection`.

## Pesquisando a coleta de dados Sentinel-2 raster usando `search_raster_data_collection`
<a name="demo-search-raster-data"></a>

Na seção anterior, você costumava obter o ARN `list_raster_data_collections` para Sentinel-2 a coleta de dados. Agora você pode usar esse ARN para pesquisar a coleta de dados em uma determinada área de interesse (AOI), intervalo de tempo, propriedades e as bandas UV disponíveis.

Para chamar a API `search_raster_data_collection`, você deve passar um Python dicionário para o parâmetro `RasterDataCollectionQuery`. Este exemplo usa `AreaOfInterest`, `TimeRangeFilter`, `PropertyFilters` e `BandFilter`. Para facilitar, você pode especificar o dicionário Python usando a variável **search\$1rdc\$1query** para armazenar os parâmetros de consulta de pesquisa:

```
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"
    ]
}
```

Neste exemplo, você consulta um `AreaOfInterest` que inclui [Lake Mead](https://en.wikipedia.org/wiki/Lake_Mead), em Utah. Além disso, o Sentinel-2 é compatível com vários tipos de bandas de imagem. Para medir a mudança na superfície da água, você só precisa da faixa `visual`.

Depois de criar os parâmetros de consulta, você pode usar a API `search_raster_data_collection` para fazer a solicitação. 

O exemplo de código a seguir implementa uma solicitação de API `search_raster_data_collection`. Essa API não oferece apoio à paginação usando a API `get_paginator`. Para garantir que a resposta completa da API tenha sido coletada, a amostra de código usa um loop `while` para verificar se `NextToken` existe. Em seguida, a amostra de código é usada `.extend()` para anexar a imagem de satélite URLs e outros metadados de resposta ao. `items_list` 

Para saber mais sobre o`search_raster_data_collection`, consulte [SearchRasterDataCollection](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_SearchRasterDataCollection.html)a *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))
```

O exemplo a seguir é a resposta JSON parcial da sua consulta. Foi truncado para maior clareza. Somente o **"BandFilter": ["visual"]** especificado na solicitação é retornado no par de valores-chave `Assets`:

```
{
    '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'
    }
}
```

Agora que você tem os resultados da consulta, na próxima seção, você pode visualizar os resultados usando o `matplotlib`. Isso serve para verificar se os resultados são da região geográfica correta. 

## Visualizando seu `search_raster_data_collection` usando `matplotlib`
<a name="demo-geospatial-visualize"></a>

Antes de começar o trabalho de observação da terra (EOJ), você pode visualizar um resultado de nossa consulta com  `matplotlib`. A amostra de código a seguir pega o primeiro item, `items_list[0]["Assets"]["visual"]["Href"]`, da variável `items_list` criada na amostra de código anterior e imprime uma imagem usando `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()
```

Depois de verificar se os resultados estão na região geográfica correta, você pode iniciar o trabalho de observação da terra (EOJ) na próxima etapa. Você usa o EOJ para identificar os corpos d'água a partir das imagens de satélite usando um processo chamado segmentação terrestre.

## Iniciando um trabalho de observação da terra (EOJ) que realiza a segmentação da terra em uma série de imagens de satélite
<a name="demo-start-eoj"></a>

SageMaker geospatial fornece vários modelos pré-treinados que você pode usar para processar dados geoespaciais de coleções de dados raster. Para saber mais sobre os modelos pré-treinados disponíveis e as operações personalizadas, consulte [Tipos de operações](geospatial-eoj-models.md).

Para calcular a mudança na área da superfície da água, você precisa identificar quais pixels nas imagens correspondem à água. A segmentação da cobertura da terra é um modelo de segmentação semântica compatível com a API `start_earth_observation_job`. Os modelos de segmentação semântica associam um rótulo a cada pixel em cada imagem. Nos resultados, cada pixel recebe um rótulo baseado no mapa de classes do modelo. A seguir está o mapa de classes para o modelo de segmentação de terras:

```
{
    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"
}
```

Para iniciar um trabalho de observação da terra, use a API `start_earth_observation_job`. Ao enviar sua solicitação, você deve especificar o seguinte:
+ `InputConfig` (*dict*): Usado para especificar as coordenadas da área que você deseja pesquisar e outros metadados associados à sua pesquisa.
+ `JobConfig` (*dict*): Usado para especificar o tipo de operação EOJ que você executou nos dados. Este exemplo usa **LandCoverSegmentationConfig**.
+ `ExecutionRoleArn`(*string*) — O ARN da função de execução da SageMaker IA com as permissões necessárias para executar o trabalho.
+ `Name` (*string*): Um nome para o trabalho de observação da terra.

O `InputConfig` é um dicionário Python. Use a variável **eoj\$1input\$1config** a seguir para manter os parâmetros de consulta de pesquisa. Use essa variável ao fazer a solicitação de API `start_earth_observation_job`. w.

```
# 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",
        },
    }
}
```

O `JobConfig` é um dicionário Python usado para especificar a operação EOJ que você deseja realizar em seus dados:

```
eoj_config = {"LandCoverSegmentationConfig": {}}
```

Com os elementos do dicionário agora especificados, você pode enviar sua solicitação de API `start_earth_observation_job` usando o seguinte exemplo de código:

```
# 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)
```

O início de um trabalho de observação da terra retorna um ARN junto com outros metadados.

Para obter uma lista de todos os trabalhos de observação da terra em andamento e atuais, use a API `list_earth_observation_jobs`. Para monitorar o status de um único trabalho de observação da Terra, use a API `get_earth_observation_job`. Para fazer essa solicitação, use o ARN criado após enviar sua solicitação de EOJ. Para saber mais, consulte [GetEarthObservationJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_GetEarthObservationJob.html)a *Amazon SageMaker AI API Reference*.

Para encontrar o ARNs associado ao seu, EOJs use a operação `list_earth_observation_jobs` da API. Para saber mais, consulte [ListEarthObservationJobs](https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_geospatial_ListEarthObservationJobs.html)a *Amazon SageMaker AI API Reference*.

```
# List all jobs in the account
sg_client.list_earth_observation_jobs()["EarthObservationJobSummaries"]
```

O seguinte é um exemplo de resposta 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': {}
}
```

Depois que o status de seu trabalho no EOJ mudar para `COMPLETED`, vá para a próxima seção para calcular a mudança na área da superfície do lago Mead's .

## Cálculo da mudança na área da superfície do Lago Mead
<a name="demo-geospatial-calc"></a>

Para calcular a mudança na área de superfície do Lago Mead, primeiro exporte os resultados do EOJ para o Amazon S3 usando `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,
)
```

Para ver o status da exportação, use `get_earth_observation_job`:

```
export_job_details = sm_geo_client.get_earth_observation_job(Arn=export_response["Arn"])
```

Para calcular as mudanças no nível da água do Lago Mead, baixe as máscaras de cobertura da terra para a instância local do SageMaker notebook e baixe as imagens de origem da nossa consulta anterior. No mapa de classes do modelo de segmentação de terras, o índice de classes da água é 6.

Para extrair a máscara de água de uma imagem Sentinel-2, siga estas etapas. Primeiro, conte o número de pixels marcados como água (índice de classe 6) na imagem. Segundo, multiplique a contagem pela área que cada pixel cobre. As bandas podem diferir em sua resolução espacial. Para o modelo de segmentação da cobertura do solo, todas as faixas são obtidas como amostra para uma resolução espacial igual a 60 metros.

```
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()
```

Usando `matplotlib`, você pode visualizar os resultados com um gráfico. O gráfico mostra que a área da superfície do Lago Mead diminuiu de janeiro de 2021 a julho de 2022.

![\[Um gráfico de barras mostrando a área da superfície do Lago Mead diminuiu de janeiro de 2021 a julho de 2022\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/lake-mead-decrease.png)


# Usando trabalhos de processamento para workloads geoespaciais personalizadas
<a name="geospatial-custom-operations"></a>

Com o [Amazon SageMaker Processing](processing-job.md), você pode usar uma experiência simplificada e gerenciada em SageMaker IA para executar suas cargas de trabalho de processamento de dados com o contêiner geoespacial criado especificamente.

 A infraestrutura subjacente para um trabalho SageMaker de processamento da Amazon é totalmente gerenciada pela SageMaker IA. Durante um trabalho de processamento, os recursos do cluster são provisionados para a duração do seu trabalho e limpos quando um trabalho é concluído.

![\[Execução de um trabalho de processamento.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/Processing-1.png)


O diagrama anterior mostra como a SageMaker IA acelera um trabalho de processamento geoespacial. SageMaker A IA pega seu script de carga de trabalho geoespacial, copia seus dados geoespaciais do Amazon Simple Storage Service (Amazon S3) e, em seguida, extrai o contêiner geoespacial especificado. A infraestrutura subjacente para o trabalho de processamento é totalmente gerenciada pela SageMaker IA. Os recursos do cluster são provisionados para a duração do seu trabalho e limpos quando um trabalho é concluído. A saída do trabalho de processamento é armazenada no bucket que você especificar. 

**Restrições de nomenclatura de path**  
Os caminhos locais dentro de um contêiner de trabalhos de processamento devem começar com **/opt/ml/processing/**.

SageMaker geospatial fornece um contêiner criado especificamente, `081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest` que pode ser especificado ao executar um trabalho de processamento.

**Topics**
+ [Visão geral: Execute trabalhos de processamento usando `ScriptProcessor` um SageMaker contêiner geoespacial](geospatial-custom-operations-overview.md)
+ [Usando `ScriptProcessor` para calcular o Índice de Vegetação por Diferença Normalizada (NDVI) usando dados do satélite Sentinel-2](geospatial-custom-operations-procedure.md)

# Visão geral: Execute trabalhos de processamento usando `ScriptProcessor` um SageMaker contêiner geoespacial
<a name="geospatial-custom-operations-overview"></a>

SageMaker geospatial fornece um contêiner de processamento específico,. `081189585635.dkr.ecr.us-west-2.amazonaws.com/sagemaker-geospatial-v1-0:latest` Você pode usar esse contêiner ao executar um trabalho com o Amazon SageMaker Processing. Ao criar uma instância da [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 que está disponível por meio do *Amazon SageMaker Python SDK for Processing*, especifique isso. `image_uri`

**nota**  
Se você receber um ResourceLimitExceedederro ao tentar iniciar um trabalho de processamento, precisará solicitar um aumento de cota. Para iniciar uma solicitação de aumento da cota Service Quotas, consulte [Solicitar um aumento de cota](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) no *Guia do usuário do Service Quotas* 

**Pré-requisitos para usar o `ScriptProcessor`**

1. Você criou um script Python que especifica sua workload geoespacial de ML.

1. Você concedeu à função de execução de SageMaker IA acesso a todos os buckets do Amazon S3 necessários.

1. Prepare seus dados para importação no contêiner. Os trabalhos SageMaker de processamento da Amazon oferecem suporte à definição de `s3_data_type` igual `"ManifestFile"` ou igual a`"S3Prefix"`.

O procedimento a seguir mostra como criar uma instância `ScriptProcessor` e enviar um trabalho de SageMaker processamento da Amazon usando o contêiner SageMaker geoespacial.

**Para criar uma `ScriptProcessor` instância e enviar um trabalho de SageMaker processamento da Amazon usando um contêiner SageMaker geoespacial**

1. Instancie uma instância da `ScriptProcessor` classe usando a imagem SageMaker geoespacial:

   ```
   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
   )
   ```

   *execution\$1role\$1arn*Substitua pelo ARN da função de execução de SageMaker IA que tem acesso aos dados de entrada armazenados no Amazon S3 e em qualquer AWS outro serviço que você queira chamar em seu trabalho de processamento. Você pode atualizar o `instance_count` e o `instance_type` para atender aos requisitos do seu trabalho de processamento.

1. Para iniciar um trabalho de processamento, use o método `.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
           )
       ]
   )
   ```
   + *preprocessing.py*Substitua pelo nome do seu próprio script de processamento de dados em Python.
   + Um trabalho de processamento oferece apoio a dois métodos para formatar seus dados de entrada. Você pode criar um arquivo manifesto que aponte para todos os dados de entrada do seu trabalho de processamento ou usar um prefixo comum em cada entrada de dados individual. Se você criou um conjunto de arquivos de manifesto `s3_manifest_uri` igual a `"ManifestFile"`. Se você usou um prefixo do arquivo definido `s3_manifest_uri` igual a `"S3Prefix"`. Você especifica o caminho para seus dados usando `source`.
   + Você pode distribuir os dados da tarefa de processamento de duas maneiras:
     + Distribua seus dados para todas as instâncias de processamento definindo `s3_data_distribution_type` igual a `FullyReplicated`.
     + Distribua seus dados em fragmentos com base na chave Amazon S3 definindo `s3_data_distribution_type` igual a `ShardedByS3Key`. Quando você usa `ShardedByS3Key`, um fragmento de dados é enviado para cada instância de processamento.

    Você pode usar um script para processar dados SageMaker geoespaciais. Esse script pode ser encontrado na [Etapa 3: Escrevendo um script que possa calcular o NDVI](geospatial-custom-operations-procedure.md#geospatial-custom-operations-script-mode). Para saber mais sobre a operação da `.run()` API, consulte [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)o *Amazon SageMaker Python SDK* for Processing.

Para monitorar o progresso do seu trabalho de processamento, a classe `ProcessingJobs` oferece apoio a um método [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). Esse método retorna uma resposta da chamada de API `DescribeProcessingJob`. Para saber mais, consulte [`DescribeProcessingJob`a *Amazon SageMaker AI API Reference*](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeProcessingJob.html).

O próximo tópico mostra como criar uma instância da `ScriptProcessor` classe usando o contêiner SageMaker geoespacial e, em seguida, como usá-lo para calcular o Índice de Vegetação por Diferença Normalizada (NDVI) com imagens. Sentinel-2



# Usando `ScriptProcessor` para calcular o Índice de Vegetação por Diferença Normalizada (NDVI) usando dados do satélite Sentinel-2
<a name="geospatial-custom-operations-procedure"></a>

Os exemplos de código a seguir mostram como calcular o índice de vegetação de diferença normalizada de uma área geográfica específica usando a imagem geoespacial criada especificamente em um notebook Studio Classic e executar uma carga de trabalho em grande escala com o Amazon Processing SageMaker usando o SDK AI Python. [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 

Essa demonstração também usa uma instância de notebook Amazon SageMaker Studio Classic que usa o kernel geoespacial e o tipo de instância. Para saber como criar uma instância de cadernos geoespaciais do Studio Classic, consulte [Crie um notebook Amazon SageMaker Studio Classic usando a imagem geoespacial](geospatial-launch-notebook.md).

Você pode acompanhar essa demonstração em sua própria instância de caderno copiando e colando os seguintes trechos de código:

1. [Use `search_raster_data_collection` para consultar uma área específica de interesse (AOI) em um determinado intervalo de tempo usando uma coleção de dados raster específica, Sentinel-2.](#geospatial-custom-operations-procedure-search)

1. [Crie um arquivo manifesto que especifique quais dados serão processados durante o trabalho de processamento.](#geospatial-custom-operations-procedure-manifest)

1. [Escreva um script Python de processamento de dados calculando o NDVI.](#geospatial-custom-operations-script-mode)

1. [Crie uma `ScriptProcessor` instância e inicie o trabalho SageMaker de processamento da Amazon](#geospatial-custom-operations-create).

1. [Visualizando os resultados do seu trabalho de processamento.](#geospatial-custom-operations-visual)

## Consultar a coleta de dados raster Sentinel-2 usando `SearchRasterDataCollection`
<a name="geospatial-custom-operations-procedure-search"></a>

Com `search_raster_data_collection` você pode consultar coleções de dados raster compatíveis. Este exemplo usa dados extraídos dos satélites Sentinel-2. A área de interesse (`AreaOfInterest`) especificada é a zona rural do norte de Iowa, e o intervalo de tempo (`TimeRangeFilter`) é de 1º de janeiro de 2022 a 30 de dezembro de 2022. Para ver as coleções de dados raster disponíveis em seu Região da AWS use `list_raster_data_collections`. Para ver um exemplo de código usando essa API, consulte [`ListRasterDataCollections`](geospatial-data-collections.md)o *Amazon SageMaker AI Developer Guide*.

Nos exemplos de código a seguir, você usa o ARN associado à coleta de dados raster do Sentinel-2, `arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8`.

Uma solicitação de API `search_raster_data_collection` requer dois parâmetros:
+ Você precisa especificar um parâmetro `Arn` que corresponda à coleção de dados raster que você deseja consultar.
+ Você também precisa especificar um parâmetro `RasterDataCollectionQuery`, que usa um dicionário Python.

O exemplo de código a seguir contém os pares de valores-chave necessários para o parâmetro `RasterDataCollectionQuery` salvo na variável `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"}
}
```

Para fazer a solicitação `search_raster_data_collection`, você deve especificar o ARN da coleção de dados raster Sentinel-2: `arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8`. Você também precisa passar o dicionário Python que foi definido anteriormente, que especifica os parâmetros de consulta. 

```
## 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
)
```

Os resultados dessa API não podem ser paginados. Para coletar todas as imagens de satélite retornadas pela operação `search_raster_data_collection`, você pode implementar um loop `while`. Isso é verificado para `NextToken` na resposta da 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']
    )
```

A resposta da API retorna uma lista URLs abaixo da `Assets` chave correspondente a faixas de imagem específicas. Veja a seguir uma versão truncada da resposta da API. Algumas das faixas da imagem foram removidas para maior clareza.

```
{
	'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'
    }
}
```

Na [próxima seção](#geospatial-custom-operations-procedure-manifest), você cria um arquivo manifesto usando a chave `'Id'` da resposta da API.

## Crie um arquivo manifesto de entrada usando a chave `Id` da resposta da API `search_raster_data_collection`
<a name="geospatial-custom-operations-procedure-manifest"></a>

Ao executar um trabalho de processamento, você deve especificar uma entrada de dados do Amazon S3. O tipo de dados de entrada pode ser um arquivo manifesto, que então aponta para os arquivos de dados individuais. Você também pode adicionar um prefixo a cada arquivo que você deseja processar. O exemplo de código a seguir define a pasta na qual seus arquivos manifesto serão gerados.

Use o SDK for Python (Boto3) para obter o bucket padrão e o ARN da função de execução associada à sua instância de caderno Studio:

```
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"
```

Em seguida, você cria um arquivo manifesto. Ele conterá as imagens URLs de satélite que você deseja processar ao executar seu trabalho de processamento posteriormente na etapa 4.

```
# Format of a manifest file
manifest_prefix = {}
manifest_prefix['prefix'] = 's3://' + s3_bucket + '/' + s3_folder + '/'
manifest = [manifest_prefix]

print(manifest)
```

O exemplo de código a seguir retorna o URI do S3 em que seus arquivos manifesto serão criados.

```
[{'prefix': 's3://sagemaker-us-west-2-111122223333/script-processor-input-manifest/'}]
```

Todos os elementos de resposta da resposta search\$1raster\$1data\$1collection não são necessários para executar a tarefa de processamento. 

O trecho de código a seguir remove os elementos desnecessários `'Properties'`, `'Geometry'` e `'DateTime'`. O par de valores-chave `'Id'`, `'Id': 'S2A_15TUH_20221230_0_L2A'`, contém o ano e o mês. O exemplo de código a seguir analisa esses dados para criar novas chaves no dicionário Python **dict\$1month\$1items**. Os valores são os ativos retornados da consulta `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)
```

Este exemplo de código  carrega o `dict_month_items` para o Amazon S3 como um objeto JSON usando a operação de 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)
```

Esse exemplo de código carrega um arquivo principal `manifest.json` que aponta para todos os outros manifestos enviados para o Amazon S3. Também salva o caminho para uma variável local: **s3\$1manifest\$1uri**. Você usará essa variável novamente para especificar a origem dos dados de entrada ao executar o trabalho de processamento na etapa 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'
```

Agora que você criou os arquivos manifesto de entrada e os carregou, você pode escrever um script que processe seus dados na tarefa de processamento. Ele processa os dados das imagens de satélite, calcula o NDVI e, em seguida, retorna os resultados para um local diferente do Amazon S3.

## Escreva um script que calcule o NDVI
<a name="geospatial-custom-operations-script-mode"></a>

O Amazon SageMaker Studio Classic suporta o uso do comando `%%writefile` cell magic. Depois de executar uma célula com esse comando, seu conteúdo será salvo no diretório local do Studio Classic. Esse é um código específico para calcular o NDVI. No entanto, o seguinte pode ser útil quando você escreve seu próprio script para uma tarefa de processamento:
+ Em seu contêiner de trabalho de processamento, os caminhos locais dentro do contêiner devem começar com `/opt/ml/processing/`. Neste exemplo, **input\$1data\$1path = '/opt/ml/processing/input\$1data/' ** e **processed\$1data\$1path = '/opt/ml/processing/output\$1data/'** são especificados dessa forma.
+ Com o Amazon SageMaker Processing, um  script executado por uma tarefa de processamento pode carregar seus dados processados diretamente para o Amazon S3. Para fazer isso, certifique-se de que o perfil de execução associada à sua instância `ScriptProcessor` tenha os requisitos necessários para acessar o bucket do S3. Você também pode especificar um parâmetro de saídas ao executar seu trabalho de processamento. Para saber mais, consulte a [operação da `.run()` API](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ScriptProcessor.run) no SDK do *Amazon SageMaker Python*. Neste exemplo de código, os resultados do processamento de dados são carregados diretamente para o Amazon S3.
+ Para gerenciar o tamanho da Amazon EBScontainer anexada ao seu processamento, use o `volume_size_in_gb` parâmetro. O tamanho padrão dos contêineres é 30 GB. Opcionalmente, você também pode usar [Coleta de resíduos](https://docs.python.org/3/library/gc.html) da biblioteca Python para gerenciar o armazenamento em seu contêiner do Amazon EBS.

  O exemplo de código a seguir carrega as matrizes no contêiner do trabalho de processamento. Quando as matrizes se acumulam e preenchem a memória, a tarefa de processamento falha. Para evitar essa falha, o exemplo a seguir contém comandos que removem as matrizes do contêiner do trabalho de processamento.

```
%%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)
```

Agora você tem um script que pode calcular o NDVI. Em seguida, você pode criar uma instância do ScriptProcessor e executar sua tarefa de processamento.

## Criando uma instância da classe `ScriptProcessor`
<a name="geospatial-custom-operations-create"></a>

Esta demonstração usa a [ScriptProcessor](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ScriptProcessor)classe que está disponível por meio do SDK do Amazon SageMaker Python. Primeiro, você precisa criar uma instância da classe e, em seguida, iniciar seu trabalho de processamento usando o método `.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.')
```

Ao iniciar seu trabalho de processamento, você precisa especificar um objeto [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). Nesse objeto, você especifica o seguinte:
+ O caminho para o arquivo manifesto que você criou na etapa 2, **s3\$1manifest\$1uri**. Essa é a fonte dos dados de entrada para o contêiner.
+ O caminho para onde você deseja que os dados de entrada sejam salvos no contêiner. Isso deve corresponder ao caminho que você especificou em seu script.
+ Use o parâmetro `s3_data_type` para especificar a entrada como `"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"
        )
    ]
)
```

O exemplo de código a seguir usa o [método `.describe()`](https://sagemaker.readthedocs.io/en/stable/api/training/processing.html#sagemaker.processing.ProcessingJob.describe) para obter detalhes do seu trabalho de processamento.

```
preprocessing_job_descriptor = processor.jobs[-1].describe()
s3_output_uri = preprocessing_job_descriptor["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"]
print(s3_output_uri)
```

## Visualizando seus resultados usando `matplotlib`
<a name="geospatial-custom-operations-visual"></a>

Com a biblioteca [Matplotlib](https://matplotlib.org/stable/index.html) Python, você pode traçar dados raster. Antes de traçar os dados, você precisa calcular o NDVI usando imagens de amostra dos satélites Sentinel-2. O exemplo de código a seguir abre as matrizes de imagens usando a operação de API `.open_rasterio()` e, em seguida, calcula o NDVI usando as bandas de imagem `nir` e `red` dos dados do satélite 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()
```

A saída do exemplo de código anterior é uma imagem de satélite com os valores de NDVI sobrepostos nela. Um valor de NDVI próximo a 1 indica que muita vegetação está presente e valores próximos a 0 indicam que nenhuma vegetação está presente.

![\[Uma imagem de satélite do norte de Iowa com o NDVI sobreposto na parte superior\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/ndvi-iowa.png)


Isso conclui a demonstração do uso de `ScriptProcessor`.

# Trabalhos de observação da terra
<a name="geospatial-eoj"></a>

Usando um trabalho de observação da terra (EOJ), você pode adquirir, transformar e visualizar dados geoespaciais para fazer predições. Você pode escolher uma operação com base no seu caso de uso a partir de uma ampla variedade de operações e modelos. Você tem a flexibilidade de escolher sua área de interesse, selecionar os provedores de dados e definir cloud-cover-percentage-based filtros e intervalos de tempo. Depois que a SageMaker IA criar um EOJ para você, você poderá visualizar as entradas e saídas do trabalho usando a funcionalidade de visualização. Um EOJ tem vários casos de uso que incluem comparar o desmatamento ao longo do tempo e diagnosticar a integridade das plantas. Você pode criar um EOJ usando um SageMaker notebook com uma imagem SageMaker geoespacial. Você também pode acessar a interface SageMaker geoespacial como parte da interface do usuário do Amazon SageMaker Studio Classic para ver a lista de todos os seus trabalhos. Você também pode usar a interface do usuário para pausar ou interromper um trabalho em andamento. Você pode escolher um trabalho na lista de EOJ disponíveis para ver o **resumo do trabalho**, os **detalhes do trabalho**, bem como visualizar a **saída do trabalho**.

**Topics**
+ [Crie um Job de observação da Terra usando um notebook Amazon SageMaker Studio Classic com uma imagem SageMaker geoespacial](geospatial-eoj-ntb.md)
+ [Tipos de operações](geospatial-eoj-models.md)

# Crie um Job de observação da Terra usando um notebook Amazon SageMaker Studio Classic com uma imagem SageMaker geoespacial
<a name="geospatial-eoj-ntb"></a>

**Para usar um notebook SageMaker Studio Classic com uma imagem SageMaker geoespacial:**

1. No **Inicializador**, escolha **Alterar ambiente** em **Cadernos e recursos de computação**.

1. Em seguida, o diálogo **Alterar ambiente** é aberto.

1. Selecione a lista suspensa **Imagem** e escolha ou **Geoespacial 1.0**. O **tipo de instância** deve ser **ml.geospatial.interactive.** Não altere os valores padrão das outras configurações.

1. Escolha **Selecionar**.

1. Escolha **Criar caderno**.

Você pode iniciar um EOJ usando um notebook Amazon SageMaker Studio Classic com uma imagem SageMaker geoespacial usando o código fornecido abaixo.

```
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")
```

O exemplo a seguir mostra como criar um EOJ na região Oeste dos EUA (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,
)
```

Depois que seu EOJ for criado, o `Arn` será devolvido a você. Você usa o `Arn` para identificar um trabalho e realizar outras operações. Para obter o status de uma tarefa, você pode executar `sg_client.get_earth_observation_job(Arn = response['Arn'])`.

O exemplo a seguir mostra como consultar o status de um EOJ até que seja concluído.

```
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"]
```

Depois que o EOJ for concluído, você poderá visualizar as saídas do EOJ diretamente no caderno. O exemplo a seguir mostra como um mapa interativo pode ser renderizado.

```
map = sagemaker_geospatial_map.create_map({
'is_raster': True
})
map.set_sagemaker_geospatial_client(sg_client)
# render the map
map.render()
```

O exemplo a seguir mostra como o mapa pode ser centralizado em uma área de interesse e a entrada e saída do EOJ podem ser renderizadas como camadas separadas dentro do mapa.

```
# 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
)
```

Você pode usar a função `export_earth_observation_job` para exportar os resultados do EOJ para o bucket do Amazon S3. A função de exportação facilita o compartilhamento dos resultados entre as equipes. SageMaker A IA também simplifica o gerenciamento de conjuntos de dados. Podemos simplesmente compartilhar os resultados do EOJ usando o ARN do trabalho, em vez de realizar crawling em milhares de arquivos no bucket do S3. Cada EOJ se torna um ativo no catálogo de dados, pois os resultados podem ser agrupados por ARN do trabalho. O exemplo a seguir mostra como exportar os resultados de um 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,
)
```

Monitore o status da tarefa de exportação usando o seguinte trecho de código:

```
# 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"]}
```

As taxas de armazenamento não são cobradas após a exclusão do EOJ.

Para ver um exemplo que mostra como executar um EOJ, consulte esta [postagem no blog](https://aws.amazon.com/blogs/machine-learning/monitoring-lake-mead-drought-using-the-new-amazon-sagemaker-geospatial-capabilities/).

[Para obter mais exemplos de notebooks sobre recursos SageMaker geoespaciais, consulte este GitHub repositório.](https://github.com/aws/amazon-sagemaker-examples/tree/main/sagemaker-geospatial)

# Tipos de operações
<a name="geospatial-eoj-models"></a>

Ao criar um EOJ, selecione uma operação com base no seu caso de uso. Os recursos SageMaker geoespaciais da Amazon oferecem uma combinação de operações específicas e modelos pré-treinados. Você pode usar essas operações para entender o impacto das mudanças ambientais e das atividades humanas ao longo do tempo ou identificar pixels de nuvem e sem nuvem.

**Mascaramento de nuvem**

Identificar nuvens em imagens de satélite é uma etapa essencial de pré-processamento na produção de dados geoespaciais de alta qualidade. Ignorar os pixels da nuvem pode levar a erros na análise, e a detecção excessiva dos pixels da nuvem pode diminuir o número de observações válidas. O mascaramento de nuvem tem a capacidade de identificar pixels com e sem nuvens em imagens de satélite. Uma máscara precisa de nuvem ajuda a obter imagens de satélite para processamento e melhora a geração de dados. A seguir está o mapa de classes para mascaramento de nuvem.

```
{
0: "No_cloud",
1: "cloud"
}
```

**Remoção de nuvem**

A remoção de nuvem para dados do Sentinel-2 usa um modelo de segmentação semântica baseado em ML para identificar nuvens na imagem. Pixels turvos podem ser substituídos por pixels de outros carimbos de data/hora. USGS Landsat os dados contêm metadados do landsat que são usados para remoção da nuvem.

**Estatísticas temporais**

As estatísticas temporais calculam estatísticas para dados geoespaciais ao longo do tempo. As estatísticas temporais atualmente compatíveis incluem média, mediana e desvio padrão. Você pode calcular essas estatísticas usando `GROUPBY` e configurá-las para `all` ou`yearly`. Você também pode mencionar o `TargetBands`.

**Estatísticas zonais**

As estatísticas zonais realizam operações estatísticas em uma área especificada na imagem. 

**Reamostragem**

A reamostragem é usada para aumentar e diminuir a resolução de uma imagem geoespacial. O atributo `value` na reamostragem representa o comprimento de um lado do pixel.

**Geomosaico**

O Geomosaic permite unir imagens menores em uma imagem grande.

**Empilhamento de bandas**

O empilhamento de bandas usa mais de uma banda de imagem como entrada e as empilha em um único GeoTIFF. O atributo `OutputResolution` determina a resolução da imagem de saída. Com base nas resoluções das imagens de entrada, você pode configurá-lo para `lowest`, `highest` ou `average`.

**Matemática da banda**

A matemática da banda, também conhecida como Índice Espectral, é um processo de transformar as observações de várias bandas espectrais em uma única banda, indicando a abundância relativa de atributos de interesse. Por exemplo, o Índice de Vegetação por Diferença Normalizada (NDVI) e o Índice de Vegetação Aprimorado (EVI) são úteis para observar a presença de atributos de vegetação verde.

**Segmentação da cobertura do solo**

A segmentação da cobertura do solo terra é um modelo de segmentação semântica que tem a capacidade de identificar o material físico, como vegetação, água e solo descoberto, na superfície da terra. Ter uma forma precisa de mapear os padrões de cobertura do solo ajuda você a entender o impacto das mudanças ambientais e das atividades humanas ao longo do tempo. A segmentação da cobertura do solo é frequentemente usada para planejamento de regiões, resposta a desastres, gestão ecológica e avaliação de impacto ambiental. A seguir está o mapa de classes para segmentação da cobertura do solo.

```
{
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"
}
```

## Disponibilidade das operações do EOJ
<a name="geospatial-eoj-models-avail"></a>

A disponibilidade das operações depende se você está usando a interface SageMaker geoespacial ou os notebooks Amazon SageMaker Studio Classic com uma imagem SageMaker geoespacial. Atualmente, os cadernos são compatíveis com todas as funcionalidades. Resumindo, as seguintes operações geoespaciais são suportadas pela SageMaker IA:


| Operações |  Description  |  Disponibilidade  | 
| --- | --- | --- | 
| Mascaramento de nuvem | Identifique pixels com e sem nuvem para obter imagens de satélite aprimoradas e precisas. | Interface do usuário, caderno | 
| Remoção de nuvem | Remova pixels contendo partes de uma nuvem das imagens de satélite. | Caderno | 
| Estatísticas temporais | Calcule estatísticas ao longo do tempo para um determinado GeoTIFF. | Caderno | 
| Estatísticas zonais | Calcule estatísticas em regiões definidas pelo usuário. | Caderno | 
| Reamostragem | Dimensione imagens para diferentes resoluções. | Caderno | 
| Geomosaico | Combine várias imagens para maior fidelidade. | Caderno | 
| Empilhamento de bandas | Combine várias bandas espectrais para criar uma única imagem. | Caderno | 
| Matemática de bandas/Índice espectral | Obtenha uma combinação de bandas espectrais que indiquem a abundância de atributos de interesse. | Interface do usuário, caderno | 
| Segmentação da cobertura do solo | Identifique os tipos de cobertura da terra, como vegetação e água, em imagens de satélite. | Interface do usuário, caderno | 

# Trabalhos de enriquecimento de vetor
<a name="geospatial-vej"></a>

Um Trabalho de enriquecimento de vetor (VEJ) executa operações em seus dados vetoriais. Atualmente, você pode usar um VEJ para fazer geocodificação reversa ou correspondência de mapas.
<a name="geospatial-vej-rev-geo"></a>
**Geocodificação reversa**  
Com um VEJ de geocodificação reversa, você pode converter coordenadas geográficas (latitude, longitude) em endereços legíveis por humanos desenvolvido por Amazon Location Service. Quando você carrega um arquivo CSV contendo as coordenadas de longitude e latitude, ele retorna o número do endereço, país, etiqueta, município, bairro, código postal e região desse local. O arquivo de saída consiste em seus dados de entrada junto com colunas contendo esses valores anexados no final. Esses trabalhos são otimizados para aceitar dezenas de milhares de rastreamentos de GPS. 
<a name="geospatial-vej-map-match"></a>
**Correspondência de mapas**  
A correspondência de mapas permite que você ajuste as coordenadas de GPS aos segmentos da estrada. A entrada deve ser um arquivo CSV contendo ID do rastreamento (rota), longitude, latitude e atributos do carimbo de data/hora. Pode haver várias coordenadas de GPS por rota. A entrada também pode conter várias rotas. A saída é um arquivo GeoJSON que contém links da rota prevista. Ela também contém os pontos de encaixe fornecidos na entrada. Esses trabalhos são otimizados para aceitar dezenas de milhares de unidades em uma solicitação. A correspondência de mapas é suportada por [OpenStreetMap](https://www.openstreetmap.org/). A correspondência de mapas vai falhar se os nomes no campo da fonte de entrada não corresponderem aos da `MapMatchingConfig`. A mensagem de erro que você recebe contém os nomes dos campos presentes no arquivo de entrada e o nome do campo esperado que não foi encontrado na `MapMatchingConfig`. 

O arquivo CSV de entrada para um VEJ deve conter o seguinte:
+ Uma linha de cabeçalho
+ Latitude e longitude em colunas separadas
+ As colunas de data e hora e ID podem estar no formato numérico ou de string. Todos os outros dados da coluna devem estar somente em formato numérico
+ Não perca as citações correspondentes

Para a coluna de carimbo de data/hora, os recursos SageMaker geoespaciais suportam o tempo de época em segundos e milissegundos (inteiro longo). Os formatos de string compatíveis são os seguintes:
+ "dd.MM.yyyy HH:mm:ss z"
+ "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
+ "yyyy-MM-dd'T'HH:mm:ss"
+ “yyyy-MM-dd hh:mm:ss a”
+ “yyyy-MM-dd HH: MM: SS”
+ “aaaa MMddHHmmss”

Embora você precise usar um notebook Amazon SageMaker Studio Classic para executar um VEJ, você pode visualizar todos os trabalhos criados usando a interface do usuário. Para usar a visualização no caderno, primeiro você precisa exportar sua saída para o bucket do S3. As ações do VEJ que você pode executar são as seguintes:
+ [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)

# Visualização usando recursos SageMaker geoespaciais
<a name="geospatial-visualize"></a>

Usando as funcionalidades de visualização fornecidas pela Amazon SageMaker Geospatial, você pode visualizar dados geoespaciais, as entradas para suas tarefas de EOJ ou VEJ, bem como as saídas exportadas do seu bucket do Amazon S3. A ferramenta de visualização é desenvolvida pelo [Foursquare Studio](https://studio.foursquare.com/home). A imagem a seguir mostra a ferramenta de visualização suportada por recursos SageMaker geoespaciais. 

![\[A ferramenta de visualização usando recursos SageMaker geoespaciais mostra um mapa da costa da Califórnia.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/geospatial_vis.png)


Você pode usar o painel de navegação à esquerda para adicionar dados, camadas, filtros e colunas. Você também pode fazer modificações na forma como você interage com o mapa.

**Conjunto de dados**

A fonte de dados usada para visualização é chamada de **conjunto de dados**. Para adicionar dados para visualização, escolha **Adicionar dados** no painel de navegação à esquerda. Você pode carregar os dados do seu bucket do Amazon S3 ou da sua máquina local. Os formatos de dados compatíveis são CSV, JSON e GeoJSON. Você pode adicionar vários conjuntos de dados ao seu mapa. Depois de carregar o conjunto de dados, você poderá vê-lo carregado na tela do mapa. 

**Camadas**

No painel de camadas, uma camada é criada e preenchida automaticamente quando você adiciona um conjunto de dados. Se seu mapa consistir em mais de um conjunto de dados, você poderá selecionar qual conjunto de dados pertence a uma camada. Você pode criar novas camadas e agrupá-las. SageMaker SageMaker os recursos geoespaciais oferecem suporte a vários tipos de camadas, incluindo ponto, arco, ícone e polígono. 

Você pode escolher qualquer ponto de dados em uma camada para ter um **Resumo**. Você também pode personalizar ainda mais os pontos de dados. Por exemplo, você pode escolher o tipo de camada como **Ponto** e depois **Cor de preenchimento** com base em qualquer coluna do seu conjunto de dados. Você também pode alterar o raio dos pontos. 

A imagem a seguir mostra o painel de camadas suportado pelos recursos SageMaker geoespaciais.

![\[O painel de camadas com pontos de dados em um mapa dos EUA, suportado por recursos SageMaker geoespaciais.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/geospatial_vis_layer.png)


**Columns**

É possível visualizar as colunas presentes no seu conjunto de dados usando a aba **Colunas** no painel de navegação à esquerda.

**Filtros**

Você pode usar filtros para limitar os pontos de dados exibidos no mapa.

**Interações**

No painel **Interações**, você pode personalizar a forma como você interage com o mapa. Por exemplo, você pode escolher quais métricas exibir ao passar o mouse sobre a dica de ferramenta de um ponto de dados.

**Mapa base**

Atualmente, a SageMaker IA suporta apenas o mapa base Amazon Dark.

**Modos de mapa dividido**

Você pode ter um **mapa único**, **mapas duplos** ou **mapas deslizantes**. Com o **Dual Maps**, você pode comparar o mesmo mapa side-by-side usando camadas diferentes. Use os **mapas deslizantes** para sobrepor dois mapas um ao outro e use o separador deslizante para compará-los. Você pode escolher o modo de mapa dividido escolhendo o botão **Modo dividido** no canto superior direito do seu mapa.

## Legendas para EOJ na interface SageMaker geoespacial
<a name="geo-legends-eoj"></a>

A visualização da saída de um EOJ depende da operação escolhida para criá-lo. A legenda é baseada na escala de cores padrão. É possível ver a legenda escolhendo o botão **Mostrar legenda** no canto superior direito do seu mapa.

**Índice espectral**

Ao visualizar a saída de um EOJ que usa a operação de índice espectral, você pode mapear a categoria com base na cor da legenda, conforme mostrado.

![\[Legenda do mapeamento do índice espectral.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/geo_spectral_index.png)


**Mascaramento de nuvem**

Ao visualizar a saída de um EOJ que usa a operação de mascaramento de nuvem, você pode mapear a categoria com base na cor da legenda, conforme mostrado.

![\[Lenda do mapeamento de mascaramento de nuvem.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/geo_cloud_masking.png)


**Segmentação da cobertura do solo**

Ao visualizar a saída de um EOJ que usa a operação de segmentação da cobertura do solo, você pode mapear a categoria com base na cor da legenda, conforme mostrado.

![\[Lenda do mapeamento da segmentação da cobertura do solo.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/geo_landcover_ss.png)


# SDK de mapas SageMaker geoespaciais da Amazon
<a name="geospatial-notebook-sdk"></a>

Você pode usar os recursos SageMaker geoespaciais da Amazon para visualizar mapas dentro da interface SageMaker geoespacial, bem como SageMaker cadernos com uma imagem geoespacial. Essas visualizações são compatíveis com a biblioteca de visualização de mapas chamada [Foursquare Studio](https://studio.foursquare.com/home).

Você pode usar o APIs fornecido pelo SDK do mapa SageMaker geoespacial para visualizar seus dados geoespaciais, incluindo a entrada, a saída e a AoI do 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>

Adiciona um objeto de conjunto de dados raster ou vetorial ao mapa.

**Sintaxe da solicitação**

```
Request = 
    add_dataset(
      self,
      dataset: Union[Dataset, Dict, None] = None,
      *,
      auto_create_layers: bool = True,
      center_map: bool = True,
      **kwargs: Any,
    ) -> Optional[Dataset]
```

**Parâmetros de solicitação**

A solicitação aceita os parâmetros a seguir.

Argumentos posicionais


| Argumento |  Tipo  |  Description  | 
| --- | --- | --- | 
| `dataset` | Union[Dataset, Dict, None] | Dados usados para criar um conjunto de dados, no formato CSV, JSON ou GeoJSON (para conjuntos de dados locais) ou uma string UUID. | 

Argumentos de palavras-chave


| Argumento |  Tipo  |  Descrição  | 
| --- | --- | --- | 
| `auto_create_layers` | Booleano | Se você deve tentar criar novas camadas ao adicionar um conjunto de dados. O valor padrão é `False`. | 
| `center_map` | Booleano | Se o mapa deve ser centralizado no conjunto de dados criado. O valor padrão é `True`. | 
| `id` | String | Um identificador exclusivo do conjunto de dados. Se você não fornecer um, uma ID aleatória será gerada. | 
| `label` | String | Rótulo do conjunto de dados que é exibido. | 
| `color` | Tuple[float, float, float] | Rótulo colorido do conjunto de dados. | 
| `metadata` | Dicionário | Objeto contendo metadados do conjunto de blocos (para conjuntos de dados lado a lado). | 

**Resposta**

Essa API retorna o objeto de [Conjunto de dados](https://location.foursquare.com/developer/docs/studio-map-sdk-types#dataset) que foi adicionado ao mapa.

## API update\$1dataset
<a name="geo-update-dataset"></a>

Atualiza as configurações do conjunto de dados existente.

**Sintaxe da solicitação**

```
Request = 
    update_dataset(
    self,
    dataset_id: str,
    values: Union[_DatasetUpdateProps, dict, None] = None,
    **kwargs: Any,
) -> Dataset
```

**Parâmetros de solicitação**

A solicitação aceita os parâmetros a seguir.

Argumentos posicionais


| Argumento |  Tipo  |  Description  | 
| --- | --- | --- | 
| `dataset_id` | String | Identificador do conjunto de dados a ser atualizado. | 
| `values` | União [[\$1 DatasetUpdateProps](https://location.foursquare.com/developer/docs/studio-map-sdk-types#datasetupdateprops), dict, None] | Valores a serem atualizados. | 

Argumentos de palavras-chave


| Argumento |  Tipo  |  Description  | 
| --- | --- | --- | 
| `label` | String | Rótulo do conjunto de dados que é exibido. | 
| `color` | [RGBColor](https://location.foursquare.com/developer/docs/studio-map-sdk-types#rgbcolor) | Rótulo colorido do conjunto de dados. | 

**Resposta**

Essa API retorna o objeto do conjunto de dados atualizado para mapas interativos ou `None` para ambientes HTML não interativos. 

## API add\$1layer
<a name="geo-add-layer"></a>

Adiciona uma nova camada ao mapa. Essa função requer pelo menos uma configuração de camada válida.

**Sintaxe da solicitação**

```
Request = 
    add_layer(
    self,
    layer: Union[LayerCreationProps, dict, None] = None,
    **kwargs: Any
) -> Layer
```

**Parâmetros de solicitação**

A solicitação aceita os parâmetros a seguir.

Argumentos


| Argumento |  Tipo  |  Description  | 
| --- | --- | --- | 
| `layer` | União [[LayerCreationProps](https://location.foursquare.com/developer/docs/studio-map-sdk-types#layercreationprops), ditado, nenhum] | Conjunto de propriedades usadas para criar uma camada. | 

**Resposta**

Objeto de camada que foi adicionado ao mapa.

## API update\$1layer
<a name="geo-update-layer"></a>

Atualize uma camada existente com determinados valores.

**Sintaxe da solicitação**

```
Request = 
    update_layer(
  self,
  layer_id: str,
  values: Union[LayerUpdateProps, dict, None],
  **kwargs: Any
) -> Layer
```

**Parâmetros de solicitação**

A solicitação aceita os parâmetros a seguir.

Argumentos


| Argumento posicional |  Tipo  |  Description  | 
| --- | --- | --- | 
| `layer_id` | String | ID da camada a ser atualizada. | 
| `values` | União [[LayerUpdateProps](https://location.foursquare.com/developer/docs/studio-map-sdk-types#layerupdateprops), ditado, nenhum] | Valores a serem atualizados. | 

Argumentos de palavras-chave


| Argumento |  Tipo  |  Description  | 
| --- | --- | --- | 
| `type` | [LayerType](https://location.foursquare.com/developer/docs/studio-map-sdk-types#layertype) | Tipo de erro. | 
| `data_id` | String | Identificador exclusivo do conjunto de dados que essa camada visualiza. | 
| `fields` | Dict [string, Optional[string]] | Dicionário que mapeia os campos que a camada exige para visualização nos campos apropriados do conjunto de dados. | 
| `label` | String | Rótulo canônico dessa camada. | 
| `is_visible` | Booleano | Se a camada está visível ou não. | 
| `config` | [LayerConfig](https://location.foursquare.com/developer/docs/studio-map-sdk-types#layerconfig) | Configuração de camada específica para seu tipo.  | 

**Resposta**

Retorna o objeto de camada atualizado.

## API visualize\$1eoj\$1aoi
<a name="geo-visualize-eoj-aoi"></a>

Visualize a AoI do ARN do trabalho fornecido.

**Parâmetros de solicitação**

A solicitação aceita os parâmetros a seguir.

Argumentos


| Argumento |  Tipo  |  Description  | 
| --- | --- | --- | 
|  `Arn`  |  String  |  ARN do trabalho.  | 
|  `config`  |  Dicionário config = \$1 label: <string> custom label of the added AoI layer, default AoI \$1  |  Opção para passar as propriedades da camada.  | 

**Resposta**

Referência do objeto de camada de entrada adicionado.

## API visualize\$1eoj\$1input
<a name="geo-visualize-eoj-input"></a>

Visualize a entrada do ARN do EOJ fornecido.

**Parâmetros de solicitação**

A solicitação aceita os parâmetros a seguir.

Argumentos


| Argumento |  Tipo  |  Description  | 
| --- | --- | --- | 
| `Arn` | String | ARN do trabalho. | 
| `time_range_filter` |  Dicionário time\$1range\$1filter = \$1 start\$1date: <string> data no formato ISO end\$1date: <string> data no formato ISO \$1  | Opção para fornecer o horário de início e término. O padrão é a data de início e término da pesquisa da coleta de dados raster. | 
| `config` |  Dicionário config = \$1 label: <string> custom label of the added output layer, default Input \$1  | Opção para passar as propriedades da camada. | 

**Resposta**

Referência do objeto de camada de entrada adicionado.

## API visualize\$1eoj\$1output
<a name="geo-visualize-eoj-output"></a>

Visualize a saída do ARN do EOJ fornecido.

**Parâmetros de solicitação**

A solicitação aceita os parâmetros a seguir.

Argumentos


| Argumento |  Tipo  |  Description  | 
| --- | --- | --- | 
|  `Arn`  |  String  |  ARN do trabalho.  | 
|  `time_range_filter`  |  Dicionário time\$1range\$1filter = \$1 start\$1date: <string> data no formato ISO end\$1date: <string> data no formato ISO \$1  | Opção para fornecer o horário de início e término. O padrão é a data de início e término da pesquisa da coleta de dados raster. | 
| `config` |  Dicionário config = \$1 rótulo: <string> rótulo personalizado da camada de saída adicionada, saída padrão predefinição: <string> singleBand ou trueColor, band\$1name: <string>, necessário apenas para a predefinição 'singleBand'. Bandas permitidas para um EOJ \$1  | Opção para passar as propriedades da camada. | 

**Resposta**

Referência do objeto de camada de saída adicionado.

Para saber mais sobre a visualização de seus dados geoespaciais, consulte [Visualização usando o Amazon](https://docs.aws.amazon.com/sagemaker/latest/dg/geospatial-visualize.html) Geospatial. SageMaker 

# SageMaker Perguntas frequentes sobre capacidades geoespaciais
<a name="geospatial-faq"></a>

Use os itens de perguntas frequentes a seguir para encontrar respostas às perguntas mais frequentes sobre recursos SageMaker geoespaciais.

1. **Em quais regiões os recursos SageMaker geoespaciais da Amazon estão disponíveis?**

   Atualmente, as capacidades SageMaker geoespaciais são suportadas somente na região Oeste dos EUA (Oregon). Para visualizar a área SageMaker geoespacial, escolha o nome da região atualmente exibida na barra de navegação do console. Em seguida, escolha a região Oeste dos EUA (Oregon).

1. **Quais AWS Identity and Access Management permissões e políticas são necessárias para usar a área SageMaker geoespacial?**

   Para usar a SageMaker tecnologia geoespacial, você precisa de um usuário, grupo ou função que possa acessar a SageMaker IA. Você também precisa criar uma função de execução de SageMaker IA para que o SageMaker setor geoespacial possa realizar operações em seu nome. Para saber mais, consulte [Funções de capacidades SageMaker geoespaciais](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-geospatial-roles.html).

1. **Já tenho uma função de execução de SageMaker IA. Preciso atualizá-lo?**

   Sim. Para usar SageMaker geoespacial, você deve especificar um principal de serviço adicional em sua política de confiança do IAM:`sagemaker-geospatial.amazonaws.com`. Para saber como especificar um diretor de serviço em uma relação de confiança, consulte [Adicionando  o principal do serviço SageMaker geoespacial a uma função de execução de SageMaker IA existente](sagemaker-geospatial-roles-pass-role.md) o *Amazon SageMaker AI Developer Guide*.

1. **Posso usar recursos SageMaker geoespaciais por meio do meu ambiente VPC?**

   Sim, você pode usar SageMaker geoespacial por meio de uma VPN. Para saber mais, consulte [Use os recursos SageMaker geoespaciais da Amazon em sua Amazon Virtual Private Cloud](geospatial-notebooks-and-internet-access-vpc-requirements.md).

1. **Por que não consigo ver o visualizador de mapa SageMaker geoespacial, a imagem ou o tipo de instância ao navegar até o Amazon SageMaker Studio Classic?**

   Verifique se você está lançando o Amazon SageMaker Studio Classic na região Oeste dos EUA (Oregon) e se não está usando um espaço compartilhado.

1. **Por que não consigo ver a imagem SageMaker geoespacial ou o tipo de instância quando tento criar uma instância de notebook no Studio Classic?**

   Verifique se você está lançando o Amazon SageMaker Studio Classic na região Oeste dos EUA (Oregon) e se não está usando um espaço compartilhado. Para saber mais, consulte [Crie um notebook Amazon SageMaker Studio Classic usando a imagem geoespacial](geospatial-launch-notebook.md).

1. **Quais bandas são compatíveis com várias coleções de dados raster?**

   Use a resposta da API `GetRasterDataCollection` e consulte o campo `ImageSourceBands` para encontrar as bandas compatíveis com essa coleta de dados específica.

# SageMaker Segurança e permissões geoespaciais
<a name="geospatial-security-general"></a>

Use os tópicos desta página para aprender sobre recursos de segurança de recursos SageMaker geoespaciais. Além disso, aprenda a usar recursos SageMaker geoespaciais em uma Amazon Virtual Private Cloud, bem como proteger seus dados em repouso usando criptografia.

Para obter mais informações sobre Usuários e funções do IAM, consulte [Identidades (Usuários, grupos e funções)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html) no Guia do usuário do IAM. 

Para saber mais sobre como usar o IAM com SageMaker IA, consulte[AWS Identity and Access Management para Amazon SageMaker AI](security-iam.md).

**Topics**
+ [Configuração e análise de vulnerabilidade em SageMaker geoespacial](geospatial-config-vulnerability.md)
+ [Melhores práticas de segurança para recursos SageMaker geoespaciais](geospatial-sec-best-practices.md)
+ [Use os recursos SageMaker geoespaciais da Amazon em sua Amazon Virtual Private Cloud](geospatial-notebooks-and-internet-access-vpc-requirements.md)
+ [AWS KMS Permissões de uso para recursos SageMaker geoespaciais da Amazon](geospatial-kms.md)

# Configuração e análise de vulnerabilidade em SageMaker geoespacial
<a name="geospatial-config-vulnerability"></a>

A configuração e os controles de TI são uma responsabilidade compartilhada entre você AWS e você, nosso cliente. AWS lida com tarefas básicas de segurança, como sistema operacional (SO) convidado e aplicação de patches em bancos de dados, configuração de firewall e recuperação de desastres. Esses procedimentos foram revisados e certificados por terceiros certificados. Para obter mais detalhes, consulte os seguintes recursos da : 
+ [Modelo de responsabilidade compartilhada](https://aws.amazon.com/compliance/shared-responsibility-model/).
+ [Amazon Web Services: visão geral dos processos de segurança](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf).

# Melhores práticas de segurança para recursos SageMaker geoespaciais
<a name="geospatial-sec-best-practices"></a>

Os recursos SageMaker geoespaciais da Amazon fornecem vários recursos de segurança a serem considerados ao desenvolver e implementar suas próprias políticas de segurança. As melhores práticas a seguir são diretrizes gerais e não representam uma solução completa de segurança. Como essas práticas recomendadas podem não ser adequadas ou suficientes para o seu ambiente, trate-as como considerações úteis em vez de prescrições.
<a name="geospatial-least-privilege"></a>
**Aplicação do princípio de privilégio mínimo**  
Os recursos SageMaker geoespaciais da Amazon fornecem uma política de acesso granular para aplicativos que usam funções do IAM. Recomendamos que as funções recebam somente o conjunto mínimo de privilégios exigido pelo cargo. Também recomendamos auditar regularmente as permissões dos trabalhos e após qualquer alteração no sua aplicação.
<a name="geospatial-role-access"></a>
**Permissões de controle de acesso por perfil (RBAC)**  
Os administradores devem controlar rigorosamente as permissões de controle de acesso baseado em funções (RBAC) para os recursos geoespaciais da Amazon. SageMaker 
<a name="geospatial-temp-creditentials"></a>
**Usar credenciais temporárias sempre que possível**  
Quando possível, use credenciais temporárias em vez de credenciais de longo prazo, como chaves de acesso. Para cenários em que você precise de usuários do IAM com acesso programático e credenciais de longo prazo, recomendamos alternar as chaves de acesso. A modificação regular de credenciais de longo prazo ajuda você a se familiarizar com o processo. Isso é útil caso você esteja em uma situação em que precise alternar credenciais, como quando um funcionário deixa sua empresa. Recomendamos que você use as últimas informações de acesso do IAM para alternar e remover chaves de acesso com segurança. Para obter mais informações, consulte [Chaves de acesso rotativas](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey) e [melhores práticas de segurança no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html).
<a name="geospatial-cloudtrail-log"></a>
**Use AWS CloudTrail para visualizar e registrar chamadas de API**  
AWS CloudTrail rastreia qualquer pessoa que faça chamadas de API em sua AWS conta. As chamadas de API são registradas sempre que alguém usa a API de capacidades SageMaker geoespaciais da Amazon, o console de capacidades SageMaker geoespaciais da Amazon ou os comandos da CLI de capacidades SageMaker geoespaciais da Amazon. AWS Ative o registro em log e especifique um bucket do Amazon S3 para armazenar os logs.

Sua confiança, privacidade e a segurança do seu conteúdo são nossas maiores prioridades. Implementamos controles técnicos e físicos que são responsáveis e avançados para impedir o acesso não autorizado ao seu conteúdo, bem como a sua divulgação, e garantir que o nosso uso esteja de acordo com os compromissos que firmamos com você. Para obter mais informações, consulte [AWS Perguntas frequentes sobre a privacidade de dados](https://aws.amazon.com/compliance/data-privacy-faq/).

# Use os recursos SageMaker geoespaciais da Amazon em sua Amazon Virtual Private Cloud
<a name="geospatial-notebooks-and-internet-access-vpc-requirements"></a>

O tópico a seguir fornece informações sobre como usar SageMaker notebooks com uma imagem SageMaker geoespacial em um domínio da Amazon SageMaker AI com o modo somente VPC. Para obter mais informações sobre VPCs o Amazon SageMaker Studio Classic, consulte [Escolha uma Amazon VPC](https://docs.aws.amazon.com/sagemaker/latest/dg/onboard-vpc.html).

## Comunicação da `VPC only` com a internet
<a name="studio-notebooks-and-internet-access-vpc-geospatial"></a>

Por padrão, o domínio SageMaker AI usa duas Amazon VPC. Uma das Amazon VPC é gerenciada pela Amazon SageMaker AI e fornece acesso direto à Internet. Você especifica a outra Amazon VPC, que fornece tráfego criptografado entre o domínio e o volume do Amazon Elastic File System (Amazon EFS).

Você pode alterar esse comportamento para que a SageMaker IA envie todo o tráfego pela Amazon VPC especificada. Se `VPC only` tiver sido escolhido como o modo de acesso à rede durante a criação do domínio de SageMaker IA, os seguintes requisitos precisam ser considerados para ainda permitir o uso dos notebooks SageMaker Studio Classic no domínio de IA criado SageMaker .

## Requisitos para usar o modo `VPC only`
<a name="studio-notebooks-and-internet-access-vpc-geospatial-requirements"></a>

**nota**  
Para usar os componentes de visualização dos recursos SageMaker geoespaciais, o navegador que você usa para acessar a interface do SageMaker Studio Classic precisa estar conectado à Internet.

Quando você escolher `VpcOnly`, siga estas etapas:

1. Você deve usar somente sub-redes privadas. Você não pode usar sub-redes públicas no modo `VpcOnly`.

1. Certifique-se de que suas sub-redes tenham o número exigido de endereços IP necessários. O número esperado de endereços IP necessários por usuário pode variar de acordo com o caso de uso. Recomendamos entre 2 e 4 endereços IP por usuário. A capacidade total do endereço IP de um domínio do Studio é a soma dos endereços IP disponíveis para cada sub-rede fornecida quando o domínio é criado. Certifique-se de que o uso estimado do endereço IP não exceda a capacidade compatível com o número de sub-redes que você fornece. Além disso, o uso de sub-redes distribuídas em várias zonas de disponibilidade pode ajudar na disponibilidade do endereço IP. Para obter mais informações, consulte [Dimensionamento de VPC e sub-rede](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#vpc-sizing-ipv4) para. IPv4
**nota**  
Você pode configurar somente sub-redes com uma VPC de locação padrão em que sua instância é executada em hardware compartilhado. Para obter mais informações sobre o atributo de locação para VPCs, consulte [Instâncias dedicadas](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html).

1. Configure um ou mais grupos de segurança com regras de entrada e saída que permitam juntas o seguinte tráfego:
   + [Tráfego NFS via TCP na porta 2049](https://docs.aws.amazon.com/efs/latest/ug/network-access.html) entre o domínio e o volume do Amazon EFS.
   + [Tráfego TCP dentro do grupo de segurança](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-other-instances). Isso é necessário para a conectividade entre o JupyterServer aplicativo e os KernelGateway aplicativos. Você deve permitir o acesso pelo menos às portas no intervalo `8192-65535`.

1. Se você quiser permitir o acesso à Internet, deverá usar um [gateway NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-working-with) com acesso à Internet, por exemplo, por meio de um [gateway da Internet](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html).

1. Se você não quiser permitir o acesso à Internet, [crie uma interface VPC endpoints](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html) (AWS PrivateLink) para permitir que o Studio Classic acesse os seguintes serviços com os nomes de serviço correspondentes. Você também deve associar os grupos de segurança da sua VPC a esses endpoints.
**nota**  
Atualmente, as capacidades SageMaker geoespaciais são suportadas somente na região Oeste dos EUA (Oregon).
   + SageMaker API: `com.amazonaws.us-west-2.sagemaker.api` 
   + SageMaker Tempo de execução da IA:`com.amazonaws.us-west-2.sagemaker.runtime`. Isso é necessário para executar notebooks Studio Classic com uma imagem SageMaker geoespacial.
   + Amazon S3: `com.amazonaws.us-west-2.s3`.
   + Para usar SageMaker projetos:`com.amazonaws.us-west-2.servicecatalog`.
   + SageMaker capacidades geoespaciais: `com.amazonaws.us-west-2.sagemaker-geospatial`

    Se você usa o [SDK do SageMaker Python](https://sagemaker.readthedocs.io/en/stable/) para executar trabalhos de treinamento remoto, também deve criar os seguintes endpoints da Amazon VPC.
   + AWS Security Token Service: `com.amazonaws.region.sts`
   + Amazon CloudWatch:`com.amazonaws.region.logs`. Isso é necessário para permitir que o SageMaker Python SDK obtenha o status do trabalho de treinamento remoto de. Amazon CloudWatch

**nota**  
Para um cliente que trabalha no modo VPC, os firewalls da empresa podem causar problemas de conexão com o SageMaker Studio Classic ou entre o. JupyterServer KernelGateway Faça as seguintes verificações se você encontrar um desses problemas ao usar o SageMaker Studio Classic por trás de um firewall.  
Verifique se o URL do Studio Classic está na lista de permissões da sua rede.
Verifique se as conexões do websocket não estão bloqueadas. O Jupyter usa um websocket dentro do sistema. Se o KernelGateway aplicativo estiver InService, JupyterServer talvez não consiga se conectar ao KernelGateway. Você também deve ver esse problema ao abrir o Terminal do Sistema. 

# AWS KMS Permissões de uso para recursos SageMaker geoespaciais da Amazon
<a name="geospatial-kms"></a>

Você pode proteger seus dados em repouso usando criptografia para recursos SageMaker geoespaciais. Por padrão, ele usa criptografia do lado do servidor com uma chave de propriedade SageMaker geoespacial da Amazon. SageMaker os recursos geoespaciais também oferecem suporte à opção de criptografia do lado do servidor com uma chave KMS gerenciada pelo cliente.

## Criptografia do lado do servidor com chave gerenciada SageMaker geoespacial da Amazon (padrão)
<a name="geospatial-managed-key"></a>

SageMaker os recursos geoespaciais criptografam todos os seus dados, incluindo resultados computacionais de seus trabalhos de Observação da Terra (EOJ) e trabalhos de Enriquecimento Vetorial (VEJ), juntamente com todos os metadados de seu serviço. Não há dados armazenados em recursos SageMaker geoespaciais sem criptografia. Ele usa uma chave AWS própria padrão para criptografar todos os seus dados.

## Criptografia do lado do servidor com chave do KMS gerenciada pelo cliente (Opcional)
<a name="geospatial-customer-managed-key"></a>

SageMaker os recursos geoespaciais suportam o uso de uma chave simétrica gerenciada pelo cliente que você cria, possui e gerencia para adicionar uma segunda camada de criptografia sobre a criptografia existente AWS . Como você tem controle total dessa camada de criptografia, você pode realizar tarefas como:
+ Estabelecer e manter as políticas de chave
+ Estabelecer e manter subsídios e IAM policies
+ Habilitar e desabilitar políticas de chaves
+ Alternar os materiais de criptografia de chave
+ Adicionar etiquetas
+ Criar réplicas de chaves
+ Chaves de agendamento para exclusão

Para obter mais informações, consulte [Chaves mestras do cliente (CMKs)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) no *AWS Key Management Service Guia do desenvolvedor*.

## Como os recursos SageMaker geoespaciais usam subsídios em AWS KMS
<a name="geospatial-grants-cmk"></a>

 SageMaker os recursos geoespaciais exigem uma concessão para usar sua chave gerenciada pelo cliente. Quando você cria um EOJ ou um VEJ criptografado com uma chave gerenciada pelo cliente, os recursos SageMaker geoespaciais criam uma concessão em seu nome enviando uma `CreateGrant` solicitação para. AWS KMS As concessões AWS KMS são usadas para dar aos recursos SageMaker geoespaciais acesso a uma chave KMS em uma conta de cliente. É possível revogar o acesso à concessão, ou remover o acesso do serviço à chave gerenciada pelo cliente a qualquer momento. Se você fizer isso, os recursos SageMaker geoespaciais não conseguirão acessar nenhum dos dados criptografados pela chave gerenciada pelo cliente, o que afeta as operações que dependem desses dados. 

## Criar uma chave gerenciada pelo cliente
<a name="geospatial-create-cmk"></a>

Você pode criar uma chave simétrica gerenciada pelo cliente usando o AWS Management Console ou o. AWS KMS APIs

**Para criar uma chave simétrica gerenciada pelo cliente**

Siga as etapas para [criar chaves KMS de criptografia simétrica](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) no Guia do AWS Key Management Service desenvolvedor.

**Política de chave**

As políticas de chaves controlam o acesso à chave gerenciada pelo cliente. Cada chave gerenciada pelo cliente deve ter exatamente uma política de chaves, que contém declarações que determinam quem pode usar a chave e como pode usá-la. Ao criar a chave gerenciada pelo cliente, é possível especificar uma política de chave. Para obter mais informações, consulte [Determinando o acesso às AWS KMS chaves](https://docs.aws.amazon.com/kms/latest/developerguide/determining-access.html) no *Guia do AWS Key Management Service desenvolvedor*.

Para usar sua chave gerenciada pelo cliente com seus recursos de recursos SageMaker geoespaciais, as seguintes operações de API devem ser permitidas na política de chaves. O principal para essas operações deve ser a função de execução que você fornece na solicitação de recursos SageMaker geoespaciais. SageMaker os recursos geoespaciais pressupõem a função de execução fornecida na solicitação para realizar essas operações do KMS.
+ `[kms:CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)`
+ `kms:GenerateDataKey`
+ `kms:Decrypt`
+ `kms:GenerateDataKeyWithoutPlaintext`

A seguir estão exemplos de declarações de política que você pode adicionar para recursos SageMaker geoespaciais:

**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" : "*",
    },
 ]
```

Para obter mais informações sobre como especificar permissões em uma política, consulte [Permissões do AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) no *Guia do Desenvolvedor do AWS Key Management Service *. Para obter mais informações sobre solução de problemas, consulte [Solucionar problemas de acesso à chave](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html) no *Guia do desenvolvedor do AWS Key Management Service *. 

Se sua política de chaves não tiver sua conta raiz como administrador de chaves, você precisará adicionar as mesmas permissões do KMS no ARN do seu perfil de execução. Aqui está um exemplo de política que você pode adicionar ao perfil de execução:

------
#### [ 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"
        }
    ]
}
```

------

## Monitorando suas chaves de criptografia para recursos SageMaker geoespaciais
<a name="geospatial-monitor-cmk"></a>

Ao usar uma chave gerenciada pelo AWS KMS cliente com seus recursos de capacidades SageMaker geoespaciais, você pode usar AWS CloudTrail o Amazon CloudWatch Logs para rastrear as solicitações que a SageMaker geospatial envia para. AWS KMS

Selecione uma guia na tabela a seguir para ver exemplos de AWS CloudTrail eventos para monitorar operações do KMS chamados por recursos SageMaker geoespaciais para acessar dados criptografados pela chave gerenciada pelo 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"
}
```

------

# Tipos de instâncias de computação
<a name="geospatial-instances"></a>

SageMaker os recursos geoespaciais oferecem três tipos de instâncias computacionais.
+ **SageMaker Instâncias de notebooks geoespaciais do Studio Classic** — o SageMaker geospatial oferece suporte a instâncias de notebook baseadas em CPU e GPU no Studio Classic. As instâncias do caderno são usadas para criar, treinar e implantar modelos de ML. Para obter uma lista dos tipos de instância de caderno disponíveis que funcionam com a imagem geoespacial, consulte [Tipos de instância de caderno compatíveis](#supported-geospatial-instances). 
+ **SageMaker instâncias de trabalhos geoespaciais** — Execute trabalhos de processamento para transformar dados de imagens de satélite.
+ **SageMaker tipos de inferência de modelos geoespaciais** — Faça previsões usando modelos de ML pré-treinados em imagens de satélite.

O tipo de instância é determinado pelas operações que você executa.

A tabela a seguir mostra as operações SageMaker geoespaciais específicas e os tipos de  instância disponíveis que você pode usar.


|  Operações  |  Instância  | 
| --- | --- | 
| Estatísticas temporais | ml.geospatial.jobs | 
| Estatísticas zonais | ml.geospatial.jobs | 
| Reamostragem | ml.geospatial.jobs | 
| Geomosaico | ml.geospatial.jobs | 
| Empilhamento de bandas | ml.geospatial.jobs | 
| Matemática da banda | ml.geospatial.jobs | 
| Remoção de nuvem com Landsat8 | ml.geospatial.jobs | 
| Remoção de nuvem com o Sentinel-2 | ml.geospatial.models | 
| Mascaramento de nuvem | ml.geospatial.models | 
| Segmentação da cobertura do solo | ml.geospatial.models | 

## SageMaker tipos de instância de notebook com suporte geoespacial
<a name="notebook-instances"></a>

SageMaker O geospatial oferece suporte a instâncias de notebook baseadas em CPU e GPU no Studio Classic. Se, ao iniciar uma instância de notebook habilitada para GPU, você receber um ResourceLimitExceedederro, precisará solicitar um aumento de cota. Para iniciar uma solicitação de aumento da cota Service Quotas, consulte [Solicitar um aumento de cota](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) no *Guia do usuário do Service Quotas*.

Tipos de instância de caderno Studio Classic compatíveis


|  Nome  |  Tipo de instância  | 
| --- | --- | 
| 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 | 

Taxas diferentes são cobradas para cada tipo de instância de computação que você usa. Para obter mais informações sobre preços, consulte [ML geoespacial com Amazon SageMaker AI](https://aws.amazon.com/sagemaker/geospatial).

## SageMaker bibliotecas geoespaciais
<a name="geospatial-notebook-libraries"></a>

O **tipo de instância SageMaker ** geoespacial específico **ml.geospatial.interactive** contém as seguintes bibliotecas Python.

Bibliotecas geoespaciais disponíveis no tipo de instância geoespacial


|  Nome da biblioteca  |  Versão disponível  | 
| --- | --- | 
| 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.4.7 | 
| 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 | 
| rede CDF4 | 1.6.3 | 
| xarray[complete] | 0.20.1 | 
| Orfeotoolbox | OTB-8.1.1 | 
| PyTorch | 2.0.1 | 
| PyTorch-cuda | 11.8 | 
| torchvision | 0.15.2 | 
| torchaudio | 2.0.2 | 
| PyTorch-lightning | 2.0.6 | 
| tensorflow | 2.13.0 | 

# Coleções de dados
<a name="geospatial-data-collections"></a>

A Amazon SageMaker Geospatial oferece suporte às seguintes coleções de dados raster. Das seguintes coleções de dados, você pode usar a USGS Landsat e as coleções de dados GeoTIFF otimizadas para nuvem Sentinel-2 ao iniciar um Trabalho de observação da Terra (EOJ): Para saber mais sobre o EOJs, consulte[Trabalhos de observação da 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)em AWS](https://registry.opendata.aws/naip/)
+ [https://registry.opendata.aws/usgs-landsat/](https://registry.opendata.aws/usgs-landsat/)

Para encontrar a lista de coleções de dados raster disponíveis em seu Regiões da AWS, use`ListRasterDataCollections`. Na [resposta da `ListRasterDataCollections`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_ListRasterDataCollections.html#API_geospatial_ListRasterDataCollections_ResponseSyntax), você obterá um objeto [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_ListRasterDataCollections.html#API_geospatial_ListRasterDataCollections_ResponseSyntax](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_geospatial_ListRasterDataCollections.html#API_geospatial_ListRasterDataCollections_ResponseSyntax) que contém detalhes sobre as coleções de dados raster disponíveis.

**Example Exemplo — Chamando a `ListRasterDataCollections` API usando o AWS SDK para Python (Boto3)**  <a name="list-raster-data-collections"></a>
Ao usar o SDK para Python ( SageMaker Boto3) e geoespacial, você deve criar um cliente geoespacial,. `geospatial_client` Use o seguinte trecho Python para fazer uma chamada para a 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)
```
Na resposta JSON, você receberá a seguinte informação, que foi truncada para maior clareza:  

```
{
    "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"
}
```

## Informações da banda de imagem das coleções de dados USGS Landsat e Sentinel-2
<a name="image-band-information"></a>

As informações da banda de imagem das coleções de dados USGS Landsat 8 e Sentinel-2 são fornecidas na tabela a seguir.

USGS Landsat


| Nome da banda | Faixa de comprimento de onda (nm) | Unidades | Intervalo válido | Valor de preenchimento | Resolução espacial | 
| --- | --- | --- | --- | --- | --- | 
| costeiro | 435-451 | Sem unidade | 1-65.455 | 0 (Sem dados) | 30 m | 
| azul | 452-512 | Sem unidade | 1-65.455 | 0 (Sem dados) | 30 m | 
| verde | 533-590 | Sem unidade | 1-65.455 | 0 (Sem dados) | 30 m | 
| vermelho | 636-673 | Sem unidade | 1-65.455 | 0 (Sem dados) | 30 m | 
| nir | 851-879 | Sem unidade | 1-65.455 | 0 (Sem dados) | 30 m | 
| swir16 | 1.566-1.651 | Sem unidade | 1-65.455 | 0 (Sem dados) | 30 m | 
| swir22 | 2.107-2.294 | Sem unidade | 1-65.455 | 0 (Sem dados) | 30 m | 
| qa\$1aerossol | NA | Índice de bits | 0-255 | 1 | 30 m | 
| qa\$1pixel | NA | Índice de bits | 1-65.455 | 1 (bit 0) | 30 m | 
| qa\$1radsat | NA | Índice de bits | 1-65.455 | NA | 30 m | 
| t | 10.600-11.190 | Kelvin dimensionado | 1-65.455 | 0 (Sem dados) | 30 m (dimensionado a partir de 100 m) | 
| atran | NA | Sem unidade | 0-10.000 | -9999 (Sem dados) | 30 m | 
| cdist | NA | Quilômetros | 0-24.000 | -9999 (Sem dados) | 30 m | 
| drad | NA | W/(m^2 sr µm)/DN | 0-28.000 | -9999 (Sem dados) | 30 m | 
| urad | NA | W/(m^2 sr µm)/DN | 0-28.000 | -9999 (Sem dados) | 30 m | 
| trad | NA | W/(m^2 sr µm)/DN | 0-28.000 | -9999 (Sem dados) | 30 m | 
| emis | NA | Coeficiente de emissividade | 1-10.000 | -9999 (Sem dados) | 30 m | 
| emsd | NA | Coeficiente de emissividade | 1-10.000 | -9999 (Sem dados) | 30 m | 

Sentinel-2


| Nome da banda | Faixa de comprimento de onda (nm) | Escala | Intervalo válido | Valor de preenchimento | Resolução espacial | 
| --- | --- | --- | --- | --- | --- | 
| costeiro | 443 | 0,0001 | NA | 0 (Sem dados) | 60 m | 
| azul | 490 | 0,0001 | NA | 0 (Sem dados) | 10 m | 
| verde | 560 | 0,0001 | NA | 0 (Sem dados) | 10 m | 
| vermelho | 665 | 0,0001 | NA | 0 (Sem dados) | 10 m | 
| rededge1 | 705 | 0,0001 | NA | 0 (Sem dados) | 20 m | 
| rededge2 | 740 | 0,0001 | NA | 0 (Sem dados) | 20 m | 
| rededge3 | 783 | 0,0001 | NA | 0 (Sem dados) | 20 m | 
| nir | 842 | 0,0001 | NA | 0 (Sem dados) | 10 m | 
| nir08 | 865 | 0,0001 | NA | 0 (Sem dados) | 20 m | 
| nir08 | 865 | 0,0001 | NA | 0 (Sem dados) | 20 m | 
| nir09 | 940 | 0,0001 | NA | 0 (Sem dados) | 60 m | 
| swir16 | 1610 | 0,0001 | NA | 0 (Sem dados) | 20 m | 
| swir22 | 2190 | 0,0001 | NA | 0 (Sem dados) | 20 m | 
| aot | Espessura óptica do aerossol | 0.001 | NA | 0 (Sem dados) | 10 m | 
| wvp | Vapor de água médio da cena | 0.001 | NA | 0 (Sem dados) | 10 m | 
| scl | Dados de classificação de cena | NA | 1-11 | 0 (Sem dados) | 20 m | 

# RStudio na Amazon SageMaker AI
<a name="rstudio"></a>

RStudio é um ambiente de desenvolvimento integrado para R, com um console, editor de destaque de sintaxe que oferece suporte à execução direta de código e ferramentas para plotagem, histórico, depuração e gerenciamento de espaço de trabalho. O Amazon SageMaker AI oferece suporte RStudio como um ambiente de desenvolvimento integrado (IDE) totalmente gerenciado e integrado ao domínio Amazon SageMaker AI por meio do Posit Workbench. RStudio permite que os clientes criem insights de ciência de dados usando um ambiente R. Com a RStudio integração, você pode iniciar um RStudio ambiente no domínio para executar seus RStudio fluxos de trabalho em recursos de SageMaker IA. Para obter mais informações sobre o Posit Workbench, consulte o [site do Posit](https://posit.co/products/enterprise/workbench/). Esta página fornece informações sobre RStudio conceitos importantes.

SageMaker A IA se integra RStudio por meio da criação de um RStudio ServerPro aplicativo.

 Os itens a seguir são suportados pelo RStudio on SageMaker AI. 
+ Os desenvolvedores de R usam a interface RStudio IDE com ferramentas de desenvolvedor populares do ecossistema R. Os usuários podem iniciar novas RStudio sessões, escrever código R, instalar dependências do RStudio Package Manager e publicar aplicativos Shiny usando o Connect RStudio . 
+ Os desenvolvedores de R podem escalar rapidamente os recursos de computação subjacentes para executar processamento de dados e análises estatísticas em grande escala.  
+ Os administradores da plataforma podem configurar identidades de usuário, autorização, rede, armazenamento e segurança para suas equipes de ciência de dados por meio Centro de Identidade do AWS IAM de integração. AWS Identity and Access Management Isso inclui a conexão com recursos privados da Amazon Virtual Private Cloud (Amazon VPC) e o modo sem internet com. AWS PrivateLink
+ Integração com AWS License Manager. 

 Para obter informações sobre as etapas de integração para criar um domínio com RStudio habilitado, consulte[Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md).

## Disponibilidade de regiões
<a name="rstudio-region"></a>

A tabela a seguir fornece informações sobre o Regiões da AWS que RStudio é suportado na SageMaker IA.


|  Nome da região  |  Região  | 
| --- | --- | 
|  Leste dos EUA (Ohio)  |  us-east-2  | 
|  Leste dos EUA (Norte da Virgínia)  |  us-east-1  | 
|  Oeste dos EUA (Norte da Califórnia)  |  us-west-1  | 
|  Oeste dos EUA (Oregon)  |  us-west-2  | 
|  Ásia-Pacífico (Mumbai)  |  ap-south-1  | 
|  Ásia-Pacífico (Seul)  |  ap-northeast-2  | 
|  Ásia-Pacífico (Singapura)  |  ap-southeast-1  | 
|  Ásia-Pacífico (Sydney)  |  ap-southeast-2  | 
|  Ásia-Pacífico (Tóquio)  |  ap-northeast-1  | 
|  Canadá (Central)  |  ca-central-1  | 
|  Europa (Frankfurt)  |  eu-central-1  | 
|  Europa (Irlanda)  |  eu-west-1  | 
|  Europa (Londres)  |  eu-west-2  | 
|  Europa (Paris)  |  eu-west-3  | 
|  Europa (Estocolmo)  |  eu-north-1  | 
|  América do Sul (São Paulo)  |  sa-east-1  | 

## RStudio componentes
<a name="rstudio-components"></a>
+ *RStudioServerPro*: o RStudio ServerPro aplicativo é um aplicativo multiusuário que é um recurso compartilhado entre todos os perfis de usuário no domínio. Depois que um RStudio aplicativo é criado em um domínio, o administrador pode conceder permissões aos usuários no domínio.  
+ *RStudio usuário*: RStudio usuários são usuários dentro do domínio que estão autorizados a usar a RStudio licença.
+ *RStudio admin*: Um administrador da RStudio Amazon SageMaker AI pode acessar o painel RStudio administrativo. RStudio na Amazon SageMaker AI, os administradores são diferentes dos administradores “normais” do Posit Workbench porque eles não têm acesso root à instância que executa o RStudio ServerPro aplicativo e não podem modificar o arquivo de configuração. RStudio 
+ *RStudio Servidor*: a instância RStudio do servidor é responsável por fornecer a RStudio interface do usuário a todos os usuários autorizados. Essa instância é executada em uma instância Amazon SageMaker AI.
+ *RSession*: An RSession é uma interface baseada em navegador para o RStudio IDE em execução em uma instância de SageMaker IA da Amazon. Os usuários podem criar e interagir com seus RStudio projetos por meio do RSession.
+ *RSessionGateway*: O aplicativo RSession Gateway é usado para oferecer suporte a um RSession. 
+ *RStudio painel administrativo*: esse painel fornece informações sobre os RStudio usuários no domínio Amazon SageMaker AI e suas sessões. Esse painel só pode ser acessado por usuários que tenham autorização de RStudio administrador.

## Diferenças do Posit Workbench
<a name="rstudio-differences"></a>

RStudio na Amazon, a SageMaker IA tem algumas diferenças significativas em relação ao [Posit Workbench.](https://posit.co/products/enterprise/workbench/)
+ Ao usar RStudio na SageMaker IA, os usuários não têm acesso aos arquivos RStudio de configuração. A Amazon SageMaker AI gerencia o arquivo de configuração e define padrões. Você pode modificar o RStudio Connect and RStudio Package Manager URLs ao criar seu domínio Amazon SageMaker AI RStudio habilitado.
+ Atualmente, o compartilhamento de projetos, a colaboração em tempo real e o Job Launcher não são suportados quando usados RStudio na Amazon SageMaker AI.
+ Ao ser usado RStudio na SageMaker IA, o RStudio IDE é executado em instâncias de SageMaker IA da Amazon para recursos computacionais em contêineres sob demanda. 
+ RStudio o on SageMaker AI suporta apenas o RStudio IDE e não oferece suporte a outros IDEs suportados por uma instalação do Posit Workbench.
+ RStudio no SageMaker AI suporta apenas a RStudio versão especificada em[RStudio Controle de versão](rstudio-version.md).

# RStudio no gerenciamento de SageMaker IA da Amazon
<a name="rstudio-manage"></a>

 Os tópicos a seguir fornecem informações sobre o gerenciamento RStudio na Amazon SageMaker AI. Isso inclui informações sobre a configuração do seu RStudio ambiente, sessões de usuário e recursos necessários. Para obter informações sobre como usar RStudio a SageMaker IA, consulte[RStudio no guia do usuário da Amazon SageMaker AI](rstudio-use.md). 

 Para obter informações sobre como criar um domínio Amazon SageMaker AI com RStudio habilitado, consulte[Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md).  

 Para obter informações sobre as AWS regiões RStudio nas quais a SageMaker IA é suportada, consulte[Regiões e cotas compatíveis](regions-quotas.md).  

**Topics**
+ [Obtenha uma RStudio licença](rstudio-license.md)
+ [RStudio Controle de versão](rstudio-version.md)
+ [Rede e armazenamento](rstudio-network.md)
+ [RStudioServerPro tipo de instância](rstudio-select-instance.md)
+ [Adicionar um URL do RStudio Connect](rstudio-configure-connect.md)
+ [Atualizar o URL RStudio do Package Manager](rstudio-configure-pm.md)
+ [Crie um domínio Amazon SageMaker AI RStudio usando o AWS CLI](rstudio-create-cli.md)
+ [Adicionar RStudio suporte a um domínio existente](rstudio-add-existing.md)
+ [Imagens personalizadas RStudio sem SageMaker IA](rstudio-byoi.md)
+ [Crie um usuário para usar RStudio](rstudio-create-user.md)
+ [Faça login RStudio como outro usuário](rstudio-login-another.md)
+ [Encerrar sessões para outro usuário](rstudio-terminate-another.md)
+ [Use o painel RStudio administrativo](rstudio-admin.md)
+ [Encerrar RStudio](rstudio-shutdown.md)
+ [Faturamento e custos](rstudio-billing.md)
+ [Diagnostique problemas e obtenha ajuda](rstudio-troubleshooting.md)

# Obtenha uma RStudio licença
<a name="rstudio-license"></a>

RStudio na Amazon, o SageMaker AI é um produto pago e exige que cada usuário seja licenciado adequadamente. As licenças do RStudio Amazon SageMaker AI podem ser obtidas diretamente da RStudio PBC ou comprando uma assinatura do Posit Workbench no Marketplace. AWS Para clientes existentes do Posit Workbench Enterprise, as licenças são emitidas sem custo adicional. Para usar uma RStudio licença com a Amazon SageMaker AI, você deve primeiro ter uma RStudio licença válida registrada na AWS License Manager. Para licenças adquiridas diretamente por meio do Rstudio PBC, uma concessão de licenças para sua AWS conta deve ser criada. Entre em contato RStudio para compras diretas de licenças ou para habilitar licenças existentes. AWS License Manager Para obter mais informações sobre como registrar uma licença com AWS License Manager, consulte [Licenças emitidas pelo vendedor em AWS License Manager](https://docs.aws.amazon.com/license-manager/latest/userguide/seller-issued-licenses.html). 

Os tópicos a seguir mostram como adquirir e validar uma licença concedida pela RStudio PBC.

 **Obtenha uma RStudio licença** 

1. Se você não tiver uma RStudio licença, poderá comprá-la diretamente no AWS Marketplace ou no RStudio PBC.
   + Para comprar uma assinatura no AWS Marketplace, conclua as etapas para [assinar um contrato de SaaS](https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-saas-products.html) pesquisando **Posit** Team. Para cumprir a licença, você será redirecionado para um formulário externo fora do AWS Marketplace. Você deve fornecer informações adicionais, incluindo o nome da sua empresa e endereço de e-mail. Se você não conseguir acessar esse formulário para fornecer o nome da empresa e um e-mail de contato, crie um ticket com o Posit Support em [https://support.posit. co/hc/en-us/requests/new](https://support.posit.co/hc/en-us/requests/new)com detalhes sobre sua compra.
   + Para comprar diretamente da RStudio PBC, navegue até [RStudio Preços](https://www.rstudio.com/pricing/) ou entre em contato com [sales@rstudio.com.](mailto:sales@rstudio.com) Ao comprar ou atualizar uma RStudio licença, você deve fornecer a AWS Conta que hospedará seu domínio Amazon SageMaker AI. 

   Se você tiver uma RStudio licença existente, entre em contato com seu representante de RStudio vendas ou [sales@rstudio.com](mailto:sales@rstudio.com) para adicionar o RStudio Amazon SageMaker AI à sua licença existente do Posit Workbench Enterprise ou para converter sua licença do Posit Workbench Standard. O representante RStudio de vendas enviará a você o formulário de pedido eletrônico apropriado.

1. RStudio concede uma licença Posit Workbench à sua AWS Conta AWS License Manager na Região Leste dos EUA (Norte da Virgínia). Embora a RStudio licença seja concedida na região Leste dos EUA (Norte da Virgínia), sua licença pode ser consumida em qualquer AWS região RStudio na qual a Amazon SageMaker AI seja suportada. Você pode esperar que o processo de concessão da licença seja concluído em até três dias úteis após compartilhar o ID AWS da sua conta com RStudio.

1. Quando essa licença for concedida, você receberá um e-mail do seu representante de RStudio vendas com instruções para aceitar a concessão da licença.

 **Valide sua RStudio licença para ser usada com a Amazon AI SageMaker ** 

1. Faça login no AWS License Manager console na mesma região do seu domínio Amazon SageMaker AI. Se você estiver usando AWS License Manager pela primeira vez, AWS License Manager solicita que você conceda permissão de uso AWS License Manager. 

1.  Selecione **Começar a usar o Gerenciador de AWS licenças**. 

1.  Selecione `I grant AWS License Manager the required permissions` e, em seguida, **Conceder permissões**. 

1. Navegue até **Licenças concedidas** no painel esquerdo. 

1. Selecione a concessão da licença com `RSW-SageMaker` como `Product name` e selecione **Visualizar**.

1. Na página de detalhes da licença, selecione **Aceitar e ativar a licença**. 

 **RStudio painel administrativo** 

Você pode usar o painel RStudio administrativo para ver o número de usuários na licença seguindo as etapas em[Use o painel RStudio administrativo](rstudio-admin.md).

# RStudio Controle de versão
<a name="rstudio-version"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Este guia fornece informações sobre a atualização da `2025.05.1+513.pro3` versão para RStudio o SageMaker AI. A partir de 31 de outubro de 2025, novos domínios com RStudio suporte são criados com a Posit Workbench versão`2025.05.1+513.pro3`. Isso é válido para aplicações `RStudioServerPro` e aplicações padrão `RSessionGateway`.

As seções a seguir fornecem informações sobre a `2025.05.1+513.pro3` versão.

## Atualizações da versão mais recente
<a name="rstudio-version-latest"></a>

A RStudio versão mais recente é`2025.05.1+513.pro3`. 
+ Versões do R compatíveis:
  + 4.5.1
  + 4.4.3
  + 4.4.0
  + 4.3.3
  + 4.2.3
  + 4.2.1
  + 4.1.3
  + 4.0.2

Para obter mais informações sobre as alterações nessa liberação, consulte [https://docs.posit.co/ide/news/](https://docs.posit.co/ide/news/). 

**nota**  
Para garantir a compatibilidade, recomendamos usar RSessions com um prefixo que corresponda à Posit Workbench versão atual.  
Se você ver o aviso a seguir, há uma incompatibilidade de versão entre a `RSession` e a Posit Workbench versão usada RStudio no SageMaker AI. Para resolver esse problema, atualize a RStudio versão do domínio. Para obter informações sobre como atualizar a RStudio versão, consulte[Atualizando para a nova versão](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.
```

## Versionamento
<a name="rstudio-version-new"></a>

Atualmente, existem duas versões do Posit Workbench compatível com SageMaker IA. 
+ Versão mais recente: `2025.05.1+513.pro3`

  Data de suspensão de uso: 5 de dezembro de 2026
+ Versão anterior: `2024.04.2+764.pro1`

  Data de suspensão de uso: 30 de abril de 2026

**nota**  
Embora você possa continuar criando novos domínios com a versão mais antiga `2024.04.2+764.pro1` até 30/04/2026 fixando explicitamente a versão ao criar o domínio usando a CLI, é altamente recomendável que os clientes comecem a usar a versão em todos os domínios. `2025.05` A POSIT deixou de fornecer correções de vulnerabilidade para. `2024.04.2+764.pro1`  
As versões `2023.03.2-547.pro5` e `2022.02.2-485.pro2` estão obsoletas e não são mais suportadas. Recomendamos que você atualize para o versão mais recente.

A Posit Workbench versão padrão que a SageMaker IA seleciona depende da data de criação do domínio. 
+ Para domínios criados após 31 de outubro de 2025, a versão `2025.05.1+513.pro3` é a versão padrão selecionada. 
+ Para domínios criados após 04 de setembro de 2024 e antes de 31 de outubro de 2025, a versão `2024.04.2+764.pro1` é a versão padrão selecionada. Você pode atualizar seus domínios para a versão mais recente (`2025.05.1+513.pro3`) configurando-a como a versão padrão do domínio. Para obter mais informações, consulte [Atualizando para a nova versão](rstudio-version-upgrade.md).

**nota**  
A versão padrão da aplicação `RSessionGateway` corresponde à versão atual da aplicação `RStudioServerPro`.

A tabela a seguir lista a imagem ARNs das duas versões de cada uma Região da AWS. Eles ARNs são passados como parte de um `update-domain` comando para definir a versão desejada.


|  Region | ARN da imagem `2024.04.2+764.pro1`  | ARN da imagem `2025.05.1+513.pro3`  | 
| --- | --- | --- | 
| 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  | 

### Alterações nas imagens BYOI
<a name="rstudio-version-byoi"></a>

Se você usar uma imagem BYOI com RStudio e atualizar sua `RStudioServerPro` versão para`2025.05.1+513.pro3`, deverá atualizar suas imagens personalizadas para usar a `2025.05.1+513.pro3` versão e reimplantar as existentes. RSessions Se você tentar carregar uma imagem não compatível em um domínio RSession de um domínio usando a `2025.05.1+513.pro3` versão, ocorrerá uma RSession falha porque não poderá analisar os parâmetros recebidos. Para evitar falhas, atualize todas as imagens personalizadas implantadas no sua aplicação `RStudioServerPro` existente. 

O `RSW_VERSION` in the Dockerfile deve ser consistente com a Posit Workbench versão usada RStudio na SageMaker IA. Você pode validar a versão atual em Posit Workbench. Para fazer isso, use o nome da versão que está localizado no canto inferior esquerdo da página do inicializador 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
```

# Atualizando para a nova versão
<a name="rstudio-version-upgrade"></a>

Os domínios existentes que usam a versão `2024.04.2+764.pro1` podem ser atualizados para a versão `2025.05.1+513.pro3` de duas maneiras:
+ Crie um novo domínio a partir do AWS CLI com RStudio ativado.
+ Atualizar um domínio existente para usar a versão `2025.05.1+513.pro3`.

O procedimento a seguir mostra como excluir o RStudio aplicativo de um domínio existente, definir a `2025.05.1+513.pro3` versão padrão como e criar um RStudio aplicativo.

1. Exclua a aplicação `RStudioServerPro` e todos as aplicações `RSessionGateway` associados ao seu domínio existente. Para obter informações sobre como encontrar sua ID do domínio, consulte [Visualizar domínios](domain-view.md). Para mais informações sobre como excluir aplicações, consulte [Encerrar 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 seu domínio estiver usando a RStudio versão`2024.04.2+764.pro1`, atualize o domínio para `2025.05.1+513.pro3` defini-lo como a Posit Workbench versão padrão. O `SageMakerImageArn` valor no `update-domain` comando a seguir especifica a RStudio `2025.05.1+513.pro3` versão como padrão. Essa ARN deve corresponder ao Region em que o seu domínio está. Para obter uma lista de todos os disponíveis ARNs, consulte[Versionamento](rstudio-version.md#rstudio-version-new).

   Aprove uma ARN da função de execução para o domínio que fornece permissões para atualizar o domínio. 

   ```
   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. Crie um nova aplicação `RStudioServerPro` no domínio existente.

   ```
   aws sagemaker create-app \
       --region region
       --domain-id domainId \
       --user-profile-name domain-shared \
       --app-type RStudioServerPro \
       --app-name default
   ```

Seu aplicação `RStudioServerPro` agora está atualizado para a versão `2025.05.1+513.pro3`. Agora você pode reexecutar suas aplicações `RSessionGateway`.

# Faça o downgrade para uma versão anterior
<a name="rstudio-version-downgrade"></a>

Você pode fazer o downgrade manualmente da versão do seu RStudio aplicativo existente para a `2024.04.2+764.pro1` versão. 

**Para fazer o downgrade para uma versão anterior**

1. Exclua a aplicação `RStudioServerPro` que está associado ao seu domínio existente. Para obter informações sobre como encontrar sua ID do domínio, consulte [Visualizar domínios](domain-view.md).

   ```
   aws sagemaker delete-app \
       --domain-id domainId \
       --user-profile-name domain-shared \
       --app-type RStudioServerPro \
       --app-name default
   ```

1. Passe a ARN `2024.04.2+764.pro1` correspondente para a sua Region como parte do comando `update-domain`. Para obter uma lista de todos os disponíveis ARNs, consulte[Versionamento](rstudio-version.md#rstudio-version-new). Você deve também aprovar uma ARN da função de execução para o domínio que fornece permissões para atualizar o domínio. 

   ```
   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. Crie um nova aplicação `RStudioServerPro` no domínio existente. O padrão da RStudio versão é. `2024.04.2+764.pro1`

   ```
   aws sagemaker create-app \
       --domain-id domainId \
       --user-profile-name domain-shared \
       --app-type RStudioServerPro \
       --app-name default
   ```

Seu aplicação `RStudioServerPro` agora está em downgrade para a versão `2024.04.2+764.pro1`. 

# Rede e armazenamento
<a name="rstudio-network"></a>

O tópico a seguir descreve as considerações sobre acesso à rede e armazenamento de dados para sua RStudio instância. Para obter informações gerais sobre acesso à rede e armazenamento de dados ao usar o Amazon SageMaker AI, consulte[Proteção de dados na Amazon SageMaker AI](data-protection.md).

 **Volume do Amazon EFS**

RStudio no Amazon SageMaker AI compartilha um volume do Amazon EFS com o aplicativo Amazon SageMaker Studio Classic no domínio. Quando o RStudio aplicativo é adicionado a um domínio, a SageMaker IA cria uma pasta chamada `shared` no diretório do Amazon EFS. Se essa `shared` pasta for excluída ou alterada manualmente, o RStudio aplicativo poderá não funcionar mais. Para obter mais informações sobre volume do Amazon EFS, consulte [Gerencie seu volume de armazenamento do Amazon EFS no Amazon SageMaker Studio Classic](studio-tasks-manage-storage.md).

 **Pacotes e scripts instalados**

Os pacotes que você instala de dentro RStudio têm como escopo o nível do perfil do usuário. Isso significa que o pacote instalado persiste durante o RSession desligamento, a reinicialização e a transição RSessions para cada perfil de usuário no qual ele está instalado. Os scripts R que são salvos em RSessions se comportam da mesma maneira. Tanto os pacotes quanto os scripts em R são salvos no volume Amazon EFS do usuário.

 **Criptografia**

 RStudio na Amazon, o SageMaker AI oferece suporte à criptografia em repouso.

 **Use RStudio no modo somente VPC**

RStudio na Amazon, a SageMaker IA oferece suporte [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-overview.html)à integração. Com essa integração, você pode usar a SageMaker IA RStudio no modo somente VPC sem acesso direto à Internet. Quando você usa RStudio no modo somente VPC, seus grupos de segurança são gerenciados automaticamente pelo serviço. Isso inclui conectividade entre você RServer e seu RSessions.

Os itens a seguir são necessários para uso somente RStudio no modo VPC. Para obter mais informações sobre como escolher uma VPC, consulte [Escolha uma Amazon VPC](onboard-vpc.md).
+ Uma sub-rede privada com acesso à Internet para fazer uma chamada para o Amazon SageMaker AI & License Manager ou endpoints da Amazon Virtual Private Cloud (Amazon VPC) para SageMaker Amazon AI e License Manager.
+ O domínio não pode ter mais do que dois grupos de segurança associados.
+ Um ID de grupo de segurança para uso com o domínio nas configurações do domínio. Isso deve permitir todo o acesso externo.
+ Um ID de grupo de segurança para uso com o endpoint da VPC da Amazon. Esse grupo de segurança deve permitir tráfego de entrada a partir da ID do grupo de segurança do domínio.
+ Amazon VPC Endpoint para e. `sagemaker.api` AWS License Manager Ele deve estar na mesma Amazon VPC que a sub-rede privada. 

# RStudioServerPro tipo de instância
<a name="rstudio-select-instance"></a>

Ao decidir qual tipo de instância do Amazon EC2 usar para RStudio ServerPro seu aplicativo, o principal fator a ser considerado é a largura de banda. A largura de banda é importante porque a RStudio ServerPro instância é responsável por fornecer a RStudio interface do usuário a todos os usuários. Isso inclui fluxos de trabalho pesados de interface de usuário, como geração de figuras, animações e exibição de várias linhas de dados. Portanto, pode haver alguma degradação do desempenho da interface do usuário, dependendo da workload de todos os usuários. A seguir estão os tipos de instância disponíveis para usar em seu RStudioServerPro. Para obter informações sobre preços sobre essas instâncias, consulte [Amazon SageMaker Pricing](https://aws.amazon.com/sagemaker/pricing/).
+ `system`: esse tipo de instância é recomendado para domínios com uso leve de interface do usuário.
**nota**  
O valor `system` é traduzido para `ml.t3.medium`.
+ `ml.c5.4xlarge`: esse tipo de instância é recomendado para domínios com uso moderado de interface do usuário.
+ `ml.c5.9xlarge`: esse tipo de instância é recomendado para domínios com uso pesado de interface do usuário.

 **Alteração do tipo de RStudio instância** 

Para alterar o tipo de instância da sua RStudioServerPro, transmita o novo tipo de instância como parte de uma chamada para o comando da `update-domain` CLI. Em seguida, você precisa excluir o RStudio ServerPro aplicativo existente usando o comando da `delete-app` CLI e criar um novo RStudio ServerPro aplicativo usando o comando da CLI`create-app`. 

# Adicionar um URL do RStudio Connect
<a name="rstudio-configure-connect"></a>

RStudio O Connect é uma plataforma de publicação para aplicativos Shiny, relatórios R Markdown, painéis, gráficos e muito mais. RStudio O Connect facilita a descoberta de insights sobre aprendizado de máquina e ciência de dados, tornando a hospedagem de conteúdo simples e escalável. Se você tiver um servidor RStudio Connect, poderá definir o servidor como o local padrão em que os aplicativos são publicados. Para obter mais informações sobre o RStudio Connect, consulte [RStudio Connect](https://www.rstudio.com/products/connect/).

Quando você se integra ao RStudio no domínio Amazon SageMaker AI, um servidor do RStudio Connect não é criado. Você pode criar um servidor RStudio Connect em uma instância do Amazon EC2 para usar o domínio Connect with SageMaker Amazon AI. Para obter informações sobre como configurar seu servidor RStudio Connect, consulte [Host RStudio Connect e Package Manager para desenvolvimento de ML RStudio na Amazon SageMaker AI](https://aws.amazon.com/blogs/machine-learning/host-rstudio-connect-and-package-manager-for-ml-development-in-rstudio-on-amazon-sagemaker/). 

 **Adicionar um URL do RStudio Connect** 

Se você tiver um RStudio Connect URL, poderá atualizar o URL padrão para que seus RStudio usuários possam publicar nele. 

1. Navegue até a página **domínios**. 

1. Selecione o domínio desejado.

1. Escolha **Configurações de domínio**.

1. Em **Configurações gerais**, selecione **Editar**.

1.  Na nova página, selecione **RStudio Configurações** no lado esquerdo.  

1.  Em **RStudio Connect URL**, insira o RStudio Connect URL a ser adicionado. 

1.  Selecione **Submit (Enviar)**. 

 **CLI** 

 Você pode definir um RStudio Connect URL padrão ao criar seu domínio. A única maneira de atualizar seu RStudio Connect URL a partir do AWS CLI é excluir seu domínio e criar um novo com o RStudio Connect URL atualizado. 

# Atualizar o URL RStudio do Package Manager
<a name="rstudio-configure-pm"></a>

RStudio O Package Manager é um servidor de gerenciamento de repositórios usado para organizar e centralizar pacotes em toda a organização. Para obter mais informações sobre o RStudio Package Manager, consulte [RStudio Package Manager](https://www.rstudio.com/products/package-manager/). Se você não fornecer sua própria URL do Package Manager, o domínio Amazon SageMaker AI usa o repositório padrão do Package Manager quando você se integra RStudio seguindo as etapas em. [Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md) Para obter mais informações, consulte [Host RStudio Connect and Package Manager para desenvolvimento de ML RStudio na Amazon SageMaker AI](https://aws.amazon.com/blogs/machine-learning/host-rstudio-connect-and-package-manager-for-ml-development-in-rstudio-on-amazon-sagemaker/). O procedimento a seguir mostra como atualizar a URL do Gerenciador de pacotes.

 **Atualizar URL do Gerenciador de pacotes** 

Você pode atualizar a URL do Package Manager usada para seu domínio RStudio habilitado da seguinte maneira.

1. Navegue até a página **domínios**. 

1. Selecione o domínio desejado.

1. Escolha **Configurações de domínio**.

1. Em **Configurações gerais**, selecione **Editar**.

1.  Na nova página, selecione **RStudio Configurações** no lado esquerdo.  

1.  Em **RStudio Package Manager**, insira sua URL RStudio do Package Manager. 

1.  Selecione **Submit (Enviar)**. 

 **CLI** 

A única maneira de atualizar a URL do Package Manager a partir do AWS CLI é excluir seu domínio e criar um novo com a URL atualizada do Package Manager. 

# Crie um domínio Amazon SageMaker AI RStudio usando o AWS CLI
<a name="rstudio-create-cli"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

O tópico a seguir mostra como fazer a integração com o domínio Amazon SageMaker AI com a RStudio habilitação usando o. AWS CLI Para fazer a integração usando o Console de gerenciamento da AWS, consulte[Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md). 

## Pré-requisitos
<a name="rstudio-create-cli-prerequisites"></a>
+  Instalar e configurar a [versão 2 do AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) 
+  Configure o [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config)com credenciais do IAM 

## Criar função do `DomainExecution`
<a name="rstudio-create-cli-domainexecution"></a>

Para iniciar o RStudio aplicativo, você deve fornecer uma `DomainExecution` função. Essa função é usada para determinar se RStudio precisa ser lançada como parte da criação do domínio Amazon SageMaker AI. Essa função também é usada pela Amazon SageMaker AI para acessar a RStudio licença e enviar RStudio registros.  

**nota**  
A `DomainExecution` função deve ter pelo menos AWS License Manager permissões para acessar a RStudio Licença e CloudWatch permissões para enviar registros em sua conta.

O procedimento a seguir mostra como criar a função `DomainExecution` com o AWS CLI. 

1.  Crie um arquivo chamado `assume-role-policy.json` com o conteúdo a seguir. 

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

****  

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

------

1.  Crie a função `DomainExecution`. `<REGION>` deve ser a região da AWS na qual lançar seu domínio. 

   ```
   aws iam create-role --region <REGION> --role-name DomainExecution --assume-role-policy-document file://assume-role-policy.json
   ```

1. Crie um arquivo chamado `domain-setting-policy.json` com o conteúdo a seguir. Essa política permite que o RStudio ServerPro aplicativo acesse os recursos necessários e permite que a Amazon SageMaker AI inicie automaticamente um RStudio ServerPro aplicativo quando o RStudio ServerPro aplicativo existente estiver em um `Failed` status `Deleted` ou.

------
#### [ 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.  Crie a política de configuração de domínio anexada à função `DomainExecution`. Fique atento ao `PolicyArn` da resposta, pois você precisará inserir esse ARN nas etapas a seguir. 

   ```
   aws iam create-policy --region <REGION> --policy-name domain-setting-policy --policy-document file://domain-setting-policy.json
   ```

1.  Anexe `domain-setting-policy` à função `DomainExecution`. Use o `PolicyArn` retornado na etapa anterior.

   ```
   aws iam attach-role-policy --role-name DomainExecution --policy-arn <POLICY_ARN>
   ```

## Crie um domínio Amazon SageMaker AI com o RStudio aplicativo
<a name="rstudio-create-cli-domain"></a>

O RStudio ServerPro aplicativo é iniciado automaticamente quando você cria um domínio Amazon SageMaker AI usando o comando `create-domain` CLI com o `RStudioServerProDomainSettings` parâmetro especificado. Ao iniciar o RStudio ServerPro aplicativo, a Amazon SageMaker AI verifica se há uma RStudio licença válida na conta e falha na criação do domínio se a licença não for encontrada. 

A criação de um domínio Amazon SageMaker AI difere com base no método de autenticação e no tipo de rede. Essas opções devem ser usadas em conjunto com um método de autenticação e um tipo de conexão de rede selecionados. Para obter mais informações sobre os requisitos para criar um novo domínio, consulte [CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html). 

Os seguintes métodos de autenticação são compatíveis:
+  `IAM Auth` 
+  `SSO Auth` 

Os seguintes tipos de conexão de rede são compatíveis:
+  `PublicInternet` 
+  `VPCOnly` 

### Métodos de autenticação
<a name="rstudio-create-cli-domain-auth"></a>

 **Modo de autenticação do IAM** 

A seguir, mostramos como criar um domínio Amazon SageMaker AI com RStudio habilitado e um tipo de `IAM Auth` rede. Para obter mais informações sobre AWS Identity and Access Management, consulte [O que é IAM?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) .
+ `DomainExecutionRoleArn` deve ser o ARN da função criada na etapa anterior.
+ `ExecutionRole`é o ARN da função atribuída aos usuários no domínio Amazon SageMaker AI.
+ `vpc-id`deve ser o ID da sua Amazon Virtual Private Cloud. `subnet-ids`deve ser uma lista de sub-rede separada por espaços. IDs Para obter informações sobre `vpc-id` e`subnet-ids`, consulte [VPCs e sub-redes](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html).
+ `RStudioPackageManagerUrl`e `RStudioConnectUrl` são opcionais e devem ser configurados como os URLs do seu servidor RStudio Package Manager e RStudio Connect, respectivamente.
+ `app-network-access-type` deve ser `PublicInternetOnly` ou `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>
```

 **Autenticação usando o IAM Identity Center** 

A seguir, mostramos como criar um domínio Amazon SageMaker AI com RStudio habilitado e um tipo de `SSO Auth` rede. Centro de Identidade do AWS IAM deve estar habilitado para a região em que o domínio foi lançado. Para obter mais informações sobre o IAM Identity Center, consulte [O que é Centro de Identidade do AWS IAM?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) .
+ `DomainExecutionRoleArn` deve ser o ARN da função criada na etapa anterior.
+ `ExecutionRole`é o ARN da função atribuída aos usuários no domínio Amazon SageMaker AI.
+ `vpc-id`deve ser o ID da sua Amazon Virtual Private Cloud. `subnet-ids`deve ser uma lista de sub-rede separada por espaços. IDs Para obter informações sobre `vpc-id` e`subnet-ids`, consulte [VPCs e sub-redes](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html).
+ `RStudioPackageManagerUrl`e `RStudioConnectUrl` são opcionais e devem ser configurados como os URLs do seu servidor RStudio Package Manager e RStudio Connect, respectivamente.
+ `app-network-access-type` deve ser `PublicInternetOnly` ou `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>
```

### Tipos de conexão
<a name="rstudio-create-cli-domain-connection"></a>

 **PublicInternet/Tipo de rede direta de Internet** 

A seguir, mostramos como criar um domínio Amazon SageMaker AI com RStudio habilitado e um tipo de `PublicInternet` rede.
+ `DomainExecutionRoleArn` deve ser o ARN da função criada na etapa anterior.
+ `ExecutionRole`é o ARN da função atribuída aos usuários no domínio Amazon SageMaker AI.
+ `vpc-id`deve ser o ID da sua Amazon Virtual Private Cloud. `subnet-ids`deve ser uma lista de sub-rede separada por espaços. IDs Para obter informações sobre `vpc-id` e`subnet-ids`, consulte [VPCs e sub-redes](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html).
+ `RStudioPackageManagerUrl`e `RStudioConnectUrl` são opcionais e devem ser configurados como os URLs do seu servidor RStudio Package Manager e RStudio Connect, respectivamente.
+ `auth-mode` deve ser `SSO` ou `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 modo** 

A seguir, mostramos como iniciar um domínio Amazon SageMaker AI com RStudio habilitado e um tipo de `VPCOnly` rede. Para obter mais informações sobre como usar o tipo `VPCOnly` de acesso à rede, consulte [Conectar os cadernos do Studio em uma VPC para recursos externos](studio-notebooks-and-internet-access.md).
+ `DomainExecutionRoleArn` deve ser o ARN da função criada na etapa anterior.
+ `ExecutionRole`é o ARN da função atribuída aos usuários no domínio Amazon SageMaker AI.
+ `vpc-id`deve ser o ID da sua Amazon Virtual Private Cloud. `subnet-ids`deve ser uma lista de sub-rede separada por espaços. IDs Sua sub-rede privada deve ser capaz de acessar a Internet para fazer uma chamada para a Amazon SageMaker AI AWS License Manager e/ou ter endpoints Amazon VPC para Amazon SageMaker AI e. AWS License Manager[Para obter informações sobre endpoints do Amazon VPC, consulte Interface dos endpoints do [Amazon VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html) Para obter informações sobre `vpc-id` e, consulte e sub-redes. `subnet-ids` VPCs ](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html) 
+ `SecurityGroups`deve permitir o acesso externo à SageMaker IA e aos AWS License Manager endpoints da Amazon.
+ `auth-mode` deve ser `SSO` ou `IAM`.

**nota**  
Ao usar endpoints da nuvem privada virtual da Amazon, o grupo de segurança anexado aos endpoints da sua nuvem privada virtual Amazon deve permitir o tráfego de entrada vindo do grupo de segurança que você passa como parte do parâmetro `domain-setting` da chamada da CLI `create-domain`.

Com RStudio, a Amazon SageMaker AI gerencia grupos de segurança para você. Isso significa que a Amazon SageMaker AI gerencia as regras do grupo de segurança para garantir RSessions o acesso aos RStudio ServerPro aplicativos. A Amazon SageMaker AI cria uma regra de grupo de segurança por perfil de usuário.

```
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
```

Observação: o RStudio ServerPro aplicativo é iniciado por um perfil de usuário especial chamado`domain-shared`. Como resultado, esse aplicação não é retornado como parte das chamadas de API `list-app` por nenhum outro perfil de usuário. 

Talvez seja necessário aumentar a cota do Amazon VPC em sua conta para aumentar o número de usuários. Para obter mais informações, consulte as [Amazon VPC cotas](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-security-groups). 

## Verifique a criação do domínio
<a name="rstudio-create-cli-domain-verify"></a>

Use o comando a seguir para verificar se seu domínio foi criado com um `Status` de `InService`. Seu `domain-id` é anexado ao ARN do domínio. Por exemplo, .`arn:aws:sagemaker:<REGION>:<ACCOUNT_ID>:domain/<DOMAIN_ID>`

```
aws sagemaker describe-domain --domain-id <DOMAIN_ID> --region <REGION>
```

# Adicionar RStudio suporte a um domínio existente
<a name="rstudio-add-existing"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

 Se você adicionou uma RStudio licença por meio de AWS License Manager, você pode criar um novo domínio Amazon SageMaker AI com suporte para RStudio SageMaker IA. Se você tiver um domínio existente que não ofereça suporte RStudio, poderá adicionar RStudio suporte a esse domínio sem precisar excluir e recriar o domínio.  

 O tópico a seguir descreve como adicionar essa compatibilidade. 

## Pré-requisitos
<a name="rstudio-add-existing-prerequisites"></a>

 Você deve concluir as etapas a seguir antes de atualizar seu domínio atual para adicionar suporte RStudio à SageMaker IA.  
+  Instalar e configurar a [versão 2 do AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) 
+  Configure o [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config)com credenciais do IAM 
+  Crie uma função de execução de domínio seguindo as etapas em [Criar um domínio de SageMaker IA RStudio usando AWS CLI](https://docs.aws.amazon.com/sagemaker/latest/dg/rstudio-create-cli.html#rstudio-create-cli-domainexecution) o. Essa função do IAM em nível de domínio é exigida pelo aplicativo. RStudio ServerPro A função requer acesso AWS License Manager para verificar uma licença válida do Posit Workbench e Amazon CloudWatch Logs para publicar registros do servidor.  
+  Traga sua RStudio licença para AWS License Manager seguir as etapas da [RStudiolicença](https://docs.aws.amazon.com/sagemaker/latest/dg/rstudio-license.html). 
+  (Opcional) Se você quiser usar RStudio no `VPCOnly` modo, conclua as etapas somente [RStudio em VPC](https://docs.aws.amazon.com/sagemaker/latest/dg/rstudio-network.html). 
+  Certifique-se de que os grupos de segurança que você configurou para cada um [UserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html)em seu domínio atendam às cotas no nível da conta. Ao configurar o perfil de usuário padrão durante a criação do domínio, você pode usar o `DefaultUserSettings` parâmetro da [CreateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateDomain.html)API para adicionar os `SecurityGroups` que são herdados por todos os perfis de usuário criados no domínio. Você também pode fornecer grupos de segurança adicionais para um usuário específico como parte do `UserSettings` parâmetro da [CreateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateUserProfile.html)API. Se você adicionou grupos de segurança dessa forma, deve garantir que o número total de grupos de segurança por perfil de usuário não exceda a cota máxima de 2 no modo `VPCOnly` e 4 no modo `PublicInternetOnly`. Se o resultado do número total de grupos de segurança para qualquer perfil de usuário exceder a cota, você poderá combinar as regras de vários grupos de segurança em um só grupo de segurança.  

## Adicionar RStudio suporte a um domínio existente
<a name="rstudio-add-existing-enable"></a>

Depois de concluir os pré-requisitos, você pode adicionar RStudio suporte ao seu domínio existente. As etapas a seguir descrevem como atualizar seu domínio existente para adicionar suporte ao. RStudio 

### Etapa 1: exclua todos as aplicações no domínio
<a name="rstudio-add-existing-enable-step1"></a>

Para adicionar suporte ao seu domínio, a SageMaker IA deve atualizar os grupos de segurança subjacentes para todos os perfis de usuário existentes. RStudio Para concluir isso, você deve excluir e recriar todos as aplicações existentes no domínio. O procedimento a seguir mostra como excluir todos as aplicações. 

1.  Liste todos as aplicações no domínio. 

   ```
   aws sagemaker \
      list-apps \
      --domain-id-equals <DOMAIN_ID>
   ```

1.  Exclua cada aplicação para cada perfil de usuário no domínio. 

   ```
   // 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>
   ```

### Etapa 2 - Atualize todos os perfis de usuário com a nova lista de grupos de segurança
<a name="rstudio-add-existing-enable-step2"></a>

 Esta é uma ação única que você deve concluir para todos os perfis de usuário existentes no seu domínio depois de refatorar seus grupos de segurança existentes. Isto impede que você atinja a cota para o número máximo de grupos de segurança. A chamada `UpdateUserProfile` da API falhará se o usuário tiver algum aplicativo com [InService](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeApp.html#sagemaker-DescribeApp-response-Status)status. Exclua todos as aplicações e chame a API `UpdateUserProfile` para atualizar os grupos de segurança. 

**nota**  
O seguinte requisito de `VPCOnly` modo descrito em [Connect Amazon SageMaker Studio Classic Notebooks in a VPC to External Resources](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-notebooks-and-internet-access.html#studio-notebooks-and-internet-access-vpc-only) não é mais necessário ao adicionar RStudio suporte porque `AppSecurityGroupManagement` é gerenciado pelo serviço de IA: SageMaker   
“[Tráfego TCP dentro do grupo de segurança](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-other-instances). Isso é necessário para a conectividade entre o JupyterServer aplicativo e os KernelGateway aplicativos. Você deve permitir o acesso pelo menos às portas no intervalo `8192-65535`.” 

```
aws sagemaker \
    update-user-profile \
    --domain-id <DOMAIN_ID>\
    --user-profile-name <USER_PROFILE> \
    --user-settings "{\"SecurityGroups\": [\"<SECURITY_GROUP>\", \"<SECURITY_GROUP>\"]}"
```

### Etapa 3 - Ative RStudio chamando a UpdateDomain API
<a name="rstudio-add-existing-enable-step3"></a>

1.  Chame a [UpdateDomain](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateDomain.html)API para adicionar suporte para RStudio SageMaker IA. O parâmetro `defaultusersettings` só é necessário se você tiver refatorado os grupos de segurança padrão para seus perfis de usuário. 
   +  Para o modo `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>\"]}"
     ```
   +  Para o modo `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. Verifique se o status do domínio é `InService`. Depois que o status do domínio for`InService`, o suporte para RStudio SageMaker inteligência artificial será adicionado.

   ```
   aws sagemaker \
       describe-domain \
       --domain-id <DOMAIN_ID>
   ```

1. Verifique se o status do RStudio ServerPro aplicativo está `InService` usando o comando a seguir.

   ```
   aws sagemaker list-apps --user-profile-name domain-shared
   ```

### Etapa 4 - Adicionar RStudio acesso para usuários existentes
<a name="rstudio-add-existing-enable-step4"></a>

 Como parte da atualização na Etapa 3, a SageMaker IA marca todos os perfis RStudio [AccessStatus](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_RStudioServerProAppSettings.html#sagemaker-Type-RStudioServerProAppSettings-AccessStatus)de usuário existentes no domínio como `DISABLED` padrão. Isso evita que você ultrapasse o número de usuários permitido pela sua licença atual. Para adicionar acesso aos usuários existentes, há uma etapa única de ingresso. Execute o opt-in chamando a [UpdateUserProfile](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateUserProfile.html)API com o seguinte: [RStudioServerProAppSettings](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UserSettings.html#sagemaker-Type-UserSettings-RStudioServerProAppSettings) 
+  `AccessStatus` = `ENABLED` 
+  *Opcional* - `UserGroup` = `R_STUDIO_USER` ou `R_STUDIO_ADMIN` 

```
aws sagemaker \
    update-user-profile \
    --domain-id <DOMAIN_ID>\
    --user-profile-name <USER_PROFILE> \
    --user-settings "{\"RStudioServerProAppSettings\": {\"AccessStatus\": \"ENABLED\"}}"
```

**nota**  
Por padrão, o número de usuários que podem ter acesso RStudio é 60.

### Etapa 5 — Desativar o RStudio acesso para novos usuários
<a name="rstudio-add-existing-enable-step5"></a>

 A menos que especificado de outra forma ao ligar`UpdateDomain`, o RStudio suporte é adicionado por padrão para todos os novos perfis de usuário criados após a adição do suporte para RStudio SageMaker IA. Para desativar o acesso a um novo perfil de usuário, você deve configurar explicitamente o parâmetro `AccessStatus` como `DISABLED`, como parte da chamada da API `CreateUserProfile`. Se o parâmetro `AccessStatus` não for especificado como parte da API `CreateUserProfile`, o status de acesso padrão será `ENABLED`. 

```
aws sagemaker \
    create-user-profile \
    --domain-id <DOMAIN_ID>\
    --user-profile-name <USER_PROFILE> \
    --user-settings "{\"RStudioServerProAppSettings\": {\"AccessStatus\": \"DISABLED\"}}"
```

# Imagens personalizadas RStudio sem SageMaker IA
<a name="rstudio-byoi"></a>

Uma SageMaker imagem é um arquivo que identifica pacotes de idiomas e outras dependências necessárias para execução RStudio na Amazon SageMaker AI. SageMaker A IA usa essas imagens para criar um ambiente onde você corre RStudio. A Amazon SageMaker AI fornece uma RStudio imagem integrada para você usar. Se precisar de uma funcionalidade diferente, você pode trazer suas próprias imagens personalizadas. Esta página fornece informações sobre os principais conceitos para usar imagens personalizadas com RStudio SageMaker IA. O processo para usar sua própria imagem RStudio na SageMaker IA envolve três etapas:

1. Crie uma imagem personalizada a partir de um Dockerfile e envie-a para um repositório no Amazon Elastic Container Registry (Amazon ECR).

1. Crie uma SageMaker imagem que aponte para uma imagem de contêiner no Amazon ECR e anexe-a ao seu domínio Amazon SageMaker AI.

1. Inicie uma nova sessão RStudio com sua imagem personalizada.

Você pode criar imagens e versões de imagens e anexar versões de imagem ao seu domínio usando o painel de controle de SageMaker IA [AWS SDK para Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html), o e o [AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/). Você também pode criar imagens e versões de imagens usando o console de SageMaker IA, mesmo que não tenha se integrado a um domínio.

Os tópicos a seguir mostram como trazer sua própria imagem para RStudio a SageMaker IA criando, anexando e lançando uma imagem personalizada.

## Terminologia básica
<a name="rstudio-byoi-basics"></a>

A seção a seguir define os principais termos para usar sua própria imagem RStudio na SageMaker IA.
+ **Dockerfile:** um Dockerfile é um arquivo que identifica os pacotes de idiomas e outras dependências da sua imagem do Docker.
+ **Imagem do Docker:** a imagem do Docker é um Dockerfile embutido. Essa imagem é verificada no Amazon ECR e serve como base para a imagem de SageMaker IA.
+ **SageMaker imagem:** uma SageMaker imagem é um suporte para um conjunto de versões de SageMaker imagem com base em imagens do Docker. 
+ **Versão da imagem:** uma versão de imagem de uma SageMaker imagem representa uma imagem do Docker que é compatível RStudio e armazenada em um repositório Amazon ECR. Cada versão da imagem é imutável. Essas versões de imagem podem ser anexadas a um domínio e usadas com RStudio SageMaker IA.

# Concluir os pré-requisitos
<a name="rstudio-byoi-prerequisites"></a>

Você deve preencher os seguintes pré-requisitos antes de usar sua própria imagem na RStudio Amazon AI. SageMaker 
+ Se você tem um domínio existente RStudio que foi criado antes de 7 de abril de 2022, você deve excluir seu RStudio ServerPro aplicativo e recriá-lo. Para obter informações sobre como excluir uma aplicação, consulte [Desligue e atualize o Amazon SageMaker Studio Classic](studio-tasks-update-studio.md).
+ Instale a aplicação Docker. Para obter informações sobre como configurar o Docker, consulte [Orientação e configuração](https://docs.docker.com/get-started/).
+ Crie uma cópia local de um Dockerfile RStudio compatível que funcione com IA. SageMaker Para obter informações sobre como criar um RStudio dockerfile de amostra, consulte [Usar uma imagem personalizada para trazer seu próprio ambiente de desenvolvimento para a RStudio 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/).
+ Use uma função AWS Identity and Access Management de execução que tenha a [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)política anexada. Se você se integrou ao domínio, pode obter a função na seção **Resumo do domínio** do painel de controle de SageMaker IA.

  Adicione as seguintes permissões de acesso ao serviço Amazon Elastic Container Registry (Amazon ECR) para seu perfil de execução:

------
#### [ 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": "*" 
          }
      ]
  }
  ```

------
+ Instale e configure AWS CLI com a seguinte versão (ou superior). Para obter informações sobre como instalar o AWS CLI, consulte [Instalando ou atualizando a versão mais recente do 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
  ```

# Especificações de RStudio imagem personalizadas
<a name="rstudio-byoi-specs"></a>

Neste guia, você aprenderá as especificações de RStudio imagem personalizadas para usar ao trazer sua própria imagem. Há dois conjuntos de requisitos que você deve satisfazer com sua RStudio imagem personalizada para usá-la com a Amazon SageMaker AI. Esses requisitos são impostos pelo RStudio PBC e pela plataforma Amazon SageMaker Studio Classic. Se algum desses conjuntos de requisitos não for satisfeito, sua imagem personalizada não funcionará corretamente.

## RStudio Requisitos de PBC
<a name="rstudio-byoi-specs-rstudio"></a>

RStudio Os requisitos de PBC estão descritos no artigo [Usando imagens do Docker com RStudio Workbench RStudio /Server Pro, Launcher](https://support.rstudio.com/hc/en-us/articles/360019253393-Using-Docker-images-with-RStudio-Server-Pro-Launcher-and-Kubernetes) e Kubernetes. Siga as instruções deste artigo para criar a base da sua RStudio imagem personalizada. 

Para obter instruções sobre como instalar várias versões do R em sua imagem personalizada, consulte [Instalando várias versões do R no Linux](https://support.rstudio.com/hc/en-us/articles/215488098).

## Requisitos do Amazon SageMaker Studio Classic
<a name="rstudio-byoi-specs-studio"></a>

O Amazon SageMaker Studio Classic impõe o seguinte conjunto de requisitos de instalação para sua RStudio imagem.
+ Você deve usar uma imagem RStudio base de pelo menos`2025.05.1+513.pro3`. Para obter mais informações, consulte [RStudio Controle de versão](rstudio-version.md).
+ Você deverá instalar os seguintes pacotes:

  ```
  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'
  ```
+ Você deve fornecer valores padrão para os valores do `RSTUDIO_CONNECT_URL` e do ambiente `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
  ```

As especificações gerais a seguir se aplicam à imagem representada por uma versão RStudio da imagem.

**Executando a imagem**  
`ENTRYPOINT`e `CMD` as instruções são substituídas para que a imagem seja executada como um RSession aplicativo.

**Interrompendo a imagem**  
A API `DeleteApp` emite o equivalente a um comando `docker stop`. Outros processos no contêiner não receberão os SIGKILL/SIGTERM sinais.

**Sistema de arquivos**  
Os diretórios `/opt/.sagemakerinternal` e `/opt/ml` são reservados. Qualquer dado nesses diretórios pode não estar visível em runtime.

**Dados do usuário**  
Cada usuário em um domínio de SageMaker IA obtém um diretório de usuários em um volume compartilhado do Amazon Elastic File System na imagem. A localização do diretório do usuário atual no volume do Amazon Elastic File System é `/home/sagemaker-user`.

**Metadados**  
Um arquivo de metadados está localizado em `/opt/ml/metadata/resource-metadata.json`. Nenhuma variável de ambiente adicional é incluída às variáveis definidas na imagem. Para obter mais informações, consulte [Obter metadados da aplicação](notebooks-run-and-manage-metadata.md#notebooks-run-and-manage-metadata-app).

**GPU**  
Em uma instância de GPU, a imagem é executada com a opção `--gpus`. Somente o kit de ferramentas CUDA deve ser incluído na imagem, não os drivers da NVIDIA. Para obter mais informações, consulte o [Guia do usuário do NVIDIA](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/user-guide.html).

**Métricas e registro em log**  
Os registros do RSession processo são enviados para a Amazon CloudWatch na conta do cliente. O nome do grupo de logs é `/aws/sagemaker/studio`. O nome do fluxo de logs é `$domainID/$userProfileName/RSession/$appName`.

**Tamanho da imagem**  
O tamanho da imagem é limitado a 25 GB. Para ver o tamanho da sua imagem, execute `docker image ls`.

# Crie uma RStudio imagem personalizada
<a name="rstudio-byoi-create"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Este tópico descreve como você pode criar uma RStudio imagem personalizada usando o console SageMaker AI e AWS CLI o. Se você usar o AWS CLI, deverá executar as etapas em sua máquina local. As etapas a seguir não funcionam no Amazon SageMaker Studio Classic.

Quando você cria uma imagem, a SageMaker IA também cria uma versão inicial da imagem. A versão da imagem representa uma imagem de contêiner no [Registro de contêiner Amazon Elastic Container Registry (ECR)](https://console.aws.amazon.com/ecr/). A imagem do contêiner deve atender aos requisitos a serem usados em RStudio. Para obter mais informações, consulte [Especificações de RStudio imagem personalizadas](rstudio-byoi-specs.md).

Para obter informações sobre como testar sua imagem localmente e resolver problemas comuns, consulte o [repositório SageMaker Studio Custom Image Samples](https://github.com/aws-samples/sagemaker-studio-custom-image-samples/blob/main/DEVELOPMENT.md).

**Topics**
+ [Adicione uma imagem de SageMaker contêiner RStudio Docker compatível com IA ao Amazon ECR](#rstudio-byoi-sdk-add-container-image)
+ [Crie uma SageMaker imagem a partir do console](#rstudio-byoi-create-console)
+ [Crie uma imagem a partir do AWS CLI](#rstudio-byoi-create-cli)

## Adicione uma imagem de SageMaker contêiner RStudio Docker compatível com IA ao Amazon ECR
<a name="rstudio-byoi-sdk-add-container-image"></a>

Use as seguintes etapas para adicionar uma imagem de contêiner do Docker ao Amazon ECR:
+ Crie um repositório do Amazon ECR.
+ Autentique no Amazon ECR.
+ Crie uma imagem RStudio Docker SageMaker compatível com IA.
+ Empurre a imagem para o repositório do Amazon ECR.

**nota**  
O repositório Amazon ECR deve estar no mesmo que seu Região da AWS domínio.

**Criar e adicionar uma imagem do Docker ao Amazon ECR**

1. Crie um repositório do Amazon ECR usando a AWS CLI. Para criar o repositório usando o console do Amazon ECR, consulte [Criação de um repositório](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-create.html).

   ```
   aws ecr create-repository \
       --repository-name rstudio-custom \
       --image-scanning-configuration scanOnPush=true
   ```

   Resposta:

   ```
   {
       "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. Autentique-se no Amazon ECR usando o URI do repositório retornado como resposta do comando `create-repository`. Certifique-se de que a aplicação Docker está em execução. Para obter mais informações, consulte [Autenticação de registro](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>
   ```

   Resposta:

   ```
   Login Succeeded
   ```

1. Crie a imagem do Docker. Execute o seguinte comando no diretório que inclui seu Dockerfile:

   ```
   docker build .
   ```

1. Marque sua imagem criada com uma tag exclusiva.

   ```
   docker tag <image-id> "<repository-uri>:<tag>"
   ```

1. Empurre a imagem de contêiner para o repositório do Amazon ECR. Para obter mais informações, consulte [ImagePush](https://docs.docker.com/engine/api/v1.40/#operation/ImagePush)[Enviar uma imagem](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html).

   ```
   docker push <repository-uri>:<tag>
   ```

   Resposta:

   ```
   The push refers to repository [<account-id>.dkr.ecr.us-east-2.amazonaws.com/rstudio-custom]
   r: digest: <digest> size: 3066
   ```

## Crie uma SageMaker imagem a partir do console
<a name="rstudio-byoi-create-console"></a>

**Criar uma imagem**

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Imagens**. 

1. Na página **Imagens personalizadas**, escolha **Criar imagem**.

1. Em **Fonte da imagem**, insira o caminho do registro para a imagem de contêiner no Amazon ECR. O caminho é tem o seguinte formato:

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

1. Escolha **Próximo**.

1. Em **Propriedades da imagem**, insira o seguinte:
   + Nome da imagem: O nome deve ser exclusivo para a sua conta Região da AWS atual.
   + (Opcional) Nome de exibição da imagem: O nome exibido na interface de usuário do domínio. Quando não fornecido, `Image name` é exibido.
   + (Opcional) Descrição: uma descrição da imagem.
   + Função do IAM — A função deve ter a [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)política anexada. Use a lista suspensa para escolher uma das seguintes opções:
     + Criar um novo perfil: Especifique quaisquer buckets adicionais do Amazon Simple Storage Service (Amazon S3) aos quais você deseja que os usuários dos cadernos tenham acesso. Se não quiser permitir acesso a buckets adicionais, escolha **Nenhum**.

       SageMaker A IA atribui a `AmazonSageMakerFullAccess` política à função. A função permite que os usuários de seus cadernos tenham acesso aos buckets do S3 listados ao lado das marcas de verificação.
     + Insira um ARN do perfil do IAM personalizado: Insira o nome do recurso da Amazon (ARN) da perfil do IAM.
     + Uso da função existente: Escolha uma das suas funções existentes na lista.
   + (Opcional) Tags de imagem: Escolha **Adicionar nova tag**. É possível adicionar até 50 tags. As tags podem ser pesquisadas usando o console de SageMaker IA ou a `Search` API de SageMaker IA.

1. Em **Tipo de imagem**, selecione RStudio imagem.

1. Escolha **Enviar**.

A nova imagem é exibida na lista de **imagens personalizadas** e destacada brevemente. Depois que a imagem for criada com êxito, você poderá escolher o nome da imagem para ver suas propriedades ou escolher **Criar versão** para criar outra versão.

**Para criar outra versão da imagem**

1. Escolha **Criar versão** na mesma linha da imagem.

1. Em **Fonte da imagem**, insira o caminho do registro para a imagem do Amazon ECR. A imagem não deve ser a mesma usada em uma versão anterior da imagem de SageMaker IA.

Para usar a imagem personalizada em RStudio, você deve anexá-la ao seu domínio. Para obter mais informações, consulte [Anexar uma SageMaker imagem personalizada](rstudio-byoi-attach.md).

## Crie uma imagem a partir do AWS CLI
<a name="rstudio-byoi-create-cli"></a>

Esta seção mostra como criar uma SageMaker imagem personalizada da Amazon usando AWS CLI o.

Use as etapas a seguir para criar uma SageMaker imagem:
+ Crie uma `Image`.
+ Crie uma `ImageVersion`.
+ Criar um arquivo de configuração.
+ Crie uma `AppImageConfig`.

**Para criar as entidades SageMaker de imagem**

1. Crie uma SageMaker imagem. O ARN do perfil deve ter pelo menos a política `AmazonSageMakerFullAccessPolicy` anexada.

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

   Resposta:

   ```
   {
       "ImageArn": "arn:aws:sagemaker:us-east-2:acct-id:image/rstudio-custom-image"
   }
   ```

1. Crie uma versão de SageMaker imagem a partir da imagem. Passe o valor de tag exclusivo que você escolheu ao enviar a imagem para o Amazon ECR.

   ```
   aws sagemaker create-image-version \
       --image-name rstudio-custom-image \
       --base-image <repository-uri>:<tag>
   ```

   Resposta:

   ```
   {
       "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/rstudio-image/1"
   }
   ```

1. Verifique se a versão da imagem foi criada com sucesso.

   ```
   aws sagemaker describe-image-version \
       --image-name rstudio-custom-image \
       --version 1
   ```

   Resposta:

   ```
   {
       "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/rstudio-custom-image/1",
       "ImageVersionStatus": "CREATED"
   }
   ```
**nota**  
Se a resposta for `"ImageVersionStatus": "CREATED_FAILED"`, ela também incluirá o motivo da falha. Um problema de permissão é uma causa comum de falha. Você também pode verificar seus Amazon CloudWatch Logs. O nome do grupo de logs é `/aws/sagemaker/studio`. O nome do fluxo de logs é `$domainID/$userProfileName/KernelGateway/$appName`.

1. Crie um arquivo de configuração denominado `app-image-config-input.json`. A configuração da imagem do aplicativo é usada para configurar a execução de uma SageMaker imagem como um aplicativo Kernel Gateway.

   ```
   {
       "AppImageConfigName": "rstudio-custom-config"
   }
   ```

1. Crie o AppImageConfig usando o arquivo que você criou na etapa anterior.

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

   Resposta:

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

# Anexar uma SageMaker imagem personalizada
<a name="rstudio-byoi-attach"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Este guia mostra como anexar uma RStudio imagem personalizada ao seu domínio Amazon SageMaker AI usando o console de SageMaker IA ou o AWS Command Line Interface (AWS CLI). 

Para usar uma SageMaker imagem personalizada, você deve anexar uma RStudio imagem personalizada ao seu domínio. Quando você anexa uma versão de imagem, ela aparece no RStudio Launcher e está disponível na lista suspensa **Selecionar imagem**. Você usa o menu suspenso para alterar a imagem usada por. RStudio

Há um limite para o número de versões de imagens que você pode anexar. Depois de atingir o limite, você deve primeiro separar uma versão para poder anexar uma versão diferente da imagem.

**Topics**
+ [Anexe uma versão da imagem ao seu domínio usando o console](#rstudio-byoi-attach-console)
+ [Anexe uma versão de imagem existente ao seu domínio usando o AWS CLI](#rstudio-byoi-attach-cli)

## Anexe uma versão da imagem ao seu domínio usando o console
<a name="rstudio-byoi-attach-console"></a>

Você pode anexar uma versão de SageMaker imagem personalizada ao seu domínio usando o painel de controle do console SageMaker AI. Você também pode criar uma SageMaker imagem personalizada e uma versão da imagem e, em seguida, anexar essa versão ao seu domínio.

**Para anexar uma imagem existente**

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Selecione o domínio desejado.

1. Escolha **Ambiente**.

1. Em **Imagens do Custom SageMaker Studio Classic anexadas ao domínio**, escolha **Anexar imagem**.

1. Em **Fonte da imagem**, escolha **Imagem existente** ou **Nova imagem**.

   Se você selecionar **Imagem existente**, escolha uma imagem na loja de SageMaker imagens da Amazon.

   Se você selecionar **Nova imagem**, forneça o caminho de registro do Amazon ECR para sua imagem do Docker. O caminho deve estar no mesmo Região da AWS que o domínio. O repositório Amazon ECR deve estar na mesma conta do seu domínio, ou as permissões entre contas para SageMaker IA devem estar habilitadas.

1. Escolha uma imagem existente na lista.

1. Escolha uma versão da imagem na lista.

1. Escolha **Próximo**.

1. Insira valores para **Nome da imagem**, **Nome de exibição da imagem** e **Descrição**.

1. Escolha o Perfil do IAM. Para obter mais informações, consulte [Crie uma RStudio imagem personalizada](rstudio-byoi-create.md).

1. (Opcional) Adicione tags à imagem.

1. (Opcional) Escolha **Adicionar nova tag** e, em seguida, adicione uma tag de configuração.

1. Em **Tipo de imagem**, selecione **RStudioImagem**.

1. Selecione **Enviar**.

Aguarde até que a versão da imagem seja anexada ao domínio. Depois que a versão é anexada, ela aparece na lista de **imagens personalizadas** e fica brevemente em destaque.

## Anexe uma versão de imagem existente ao seu domínio usando o AWS CLI
<a name="rstudio-byoi-attach-cli"></a>

Dois métodos são apresentados para anexar a versão da imagem ao seu domínio usando a AWS CLI. No primeiro método, você cria um novo domínio com a versão anexada. Esse método é mais simples, mas você deve especificar as informações e a função de execução da Amazon Virtual Private Cloud (Amazon VPC) necessárias para criar o domínio.

Se você já se integrou ao domínio, pode usar o segundo método para anexar a versão da imagem ao seu domínio atual. Nesse caso, você não precisa especificar as informações e a função de execução do Amazon VPC. Depois de anexar a versão, exclua todos os aplicativos em seu domínio e RStudio reinicie.

### Anexar a SageMaker imagem a um novo domínio
<a name="rstudio-byoi-cli-attach-new-domain"></a>

Para usar esse método, você deve especificar uma função de execução que tenha a [AmazonSageMakerFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonSageMakerFullAccess)política anexada.

Use as etapas a seguir para criar o domínio e anexar a imagem de SageMaker IA personalizada:
+ Obtenha seu ID de VPC e sub-rede padrão. IDs
+ Crie o arquivo de configuração para o domínio, que especifica a imagem.
+ Crie um domínio com o arquivo de configuração.

**Para adicionar a SageMaker imagem personalizada ao seu domínio**

1. Obtenha seu ID de VPC padrão.

   ```
   aws ec2 describe-vpcs \
       --filters Name=isDefault,Values=true \
       --query "Vpcs[0].VpcId" --output text
   ```

   Resposta:

   ```
   vpc-xxxxxxxx
   ```

1. Obtenha sua sub-rede padrão IDs usando o ID da VPC da etapa anterior.

   ```
   aws ec2 describe-subnets \
       --filters Name=vpc-id,Values=<vpc-id> \
       --query "Subnets[*].SubnetId" --output json
   ```

   Resposta:

   ```
   [
       "subnet-b55171dd",
       "subnet-8a5f99c6",
       "subnet-e88d1392"
   ]
   ```

1. Crie um arquivo de configuração denominado `create-domain-input.json`. Insira o ID da VPC, a sub-rede IDs e `ImageName` as etapas `AppImageConfigName` anteriores. Como o `ImageVersionNumber` não está especificado, a versão mais recente da imagem é usada, que é a única versão nesse caso. A função de execução deve atender aos requisitos em [Concluir os pré-requisitos](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. Crie o domínio com a SageMaker imagem personalizada anexada.

   ```
   aws sagemaker create-domain \
       --cli-input-json file://create-domain-input.json
   ```

   Resposta:

   ```
   {
       "DomainArn": "arn:aws:sagemaker:region:acct-id:domain/domain-id",
       "Url": "https://domain-id.studio.region.sagemaker.aws/..."
   }
   ```

### Anexar a SageMaker imagem a um domínio existente
<a name="rstudio-byoi-cli-attach-current-domain"></a>

Este método pressupõe que você já esteja integrado ao domínio. Para obter mais informações, consulte [Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md).

**nota**  
Você deve excluir todas as aplicações no seu domínio para atualizar o domínio com a nova versão de imagem. Para obter informações sobre como excluir esses aplicações, consulte [Excluir um domínio da Amazon SageMaker AI](gs-studio-delete-domain.md).

Use as etapas a seguir para adicionar a SageMaker imagem ao seu domínio atual.
+ Obtenha o seu no console `DomainID` de SageMaker IA.
+ Use o `DomainID` para obter o `DefaultUserSettings` para o domínio.
+ Adicione o `ImageName` e `AppImageConfig` como uma `CustomImage` ao `DefaultUserSettings`.
+ Atualize seu domínio para incluir a imagem personalizada.

**Para adicionar a SageMaker imagem personalizada ao seu domínio**

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Selecione o domínio desejado.

1. Escolha **Configurações de domínio**.

1. Em **Configurações gerais**, encontre o **ID do domínio**. O ID está no seguinte formato: `d-xxxxxxxxxxxx`.

1. Use o ID do domínio para obter a descrição do domínio.

   ```
   aws sagemaker describe-domain \
       --domain-id <d-xxxxxxxxxxxx>
   ```

   Resposta:

   ```
   {
       "DomainId": "d-xxxxxxxxxxxx",
       "DefaultUserSettings": {
         "KernelGatewayAppSettings": {
           "CustomImages": [
           ],
           ...
         }
       }
   }
   ```

1. Salve a seção `DefaultUserSettings` da resposta em um arquivo chamado `update-domain-input.json`.

1. Insira o `ImageName` e o `AppImageConfigName` das etapas anteriores como uma imagem personalizada. Como o `ImageVersionNumber` não está especificado, a versão mais recente da imagem é usada, que é a única versão nesse caso.

   ```
   {
       "DefaultUserSettings": {
           "RSessionAppSettings": { 
              "CustomImages": [ 
                 { 
                    "ImageName": "rstudio-custom-image",
                    "AppImageConfigName": "rstudio-custom-config"
                 }
              ]
           }
       }
   }
   ```

1. Use o ID do domínio e o arquivo de configurações padrão do usuário para atualizar seu domínio.

   ```
   aws sagemaker update-domain \
       --domain-id <d-xxxxxxxxxxxx> \
       --cli-input-json file://update-domain-input.json
   ```

   Resposta:

   ```
   {
       "DomainArn": "arn:aws:sagemaker:region:acct-id:domain/domain-id"
   }
   ```

1. Exclua a aplicação do `RStudioServerPro`. Você deve reiniciar o aplicativo de `RStudioServerPro` domínio compartilhado para a interface do usuário do RStudio Launcher para obter as alterações mais recentes.

   ```
   aws sagemaker delete-app \
       --domain-id <d-xxxxxxxxxxxx> --user-profile-name domain-shared \
       --app-type RStudioServerPro --app-name default
   ```

1. Para criar um nova aplicação `RStudioServerPro`. Você deve criar esse aplicação usando o AWS CLI.

   ```
   aws sagemaker create-app \
       --domain-id <d-xxxxxxxxxxxx> --user-profile-name domain-shared \
       --app-type RStudioServerPro --app-name default
   ```

# Inicie uma SageMaker imagem personalizada no RStudio
<a name="rstudio-byoi-launch"></a>

Você pode usar sua imagem personalizada ao iniciar um RStudio aplicativo a partir do console. Depois de criar sua SageMaker imagem personalizada e anexá-la ao seu domínio, a imagem aparece na caixa de diálogo do seletor de imagens do RStudio Launcher. Para iniciar um novo RStudio aplicativo, siga as etapas [Inicie RSessions a partir do RStudio Launcher](rstudio-launcher.md) e selecione sua imagem personalizada conforme mostrado na imagem a seguir.

![\[Captura de tela do RStudio lançador com menu suspenso de imagens.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/rstudio-launcher-custom.png)


# Limpeza do recurso de imagem
<a name="rstudio-byoi-sdk-cleanup"></a>

Este guia mostra como limpar os recursos de RStudio imagem que você criou nas seções anteriores. Para excluir uma imagem, conclua as etapas a seguir usando o console SageMaker AI ou o AWS CLI, conforme mostrado neste guia.
+ Separe a imagem e as versões da imagem do seu domínio Amazon SageMaker AI.
+ Exclua a imagem, a versão da imagem e a configuração da imagem da aplicação.

Depois de concluir essas etapas, você pode excluir a imagem de contêiner e o repositório do Amazon ECR. Para obter mais informações sobre como excluir a imagem de contêiner e o repositório, consulte [Excluir um repositório](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-delete.html).

## Limpe os recursos do console de SageMaker IA
<a name="rstudio-byoi-sdk-cleanup-console"></a>

Quando você separa uma imagem de um domínio, todas as versões da imagem são separadas. Quando uma imagem é separada, todos os usuários do domínio perdem o acesso às versões da imagem.

**Para desassociar uma imagem**

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Selecione o domínio desejado.

1. Escolha **Ambiente**.

1. Em **Imagens personalizadas anexadas ao domínio**, escolha a imagem e escolha **Desassociar**.

1. (Opcional) Para excluir a imagem e todas as versões do SageMaker AI, selecione **Também excluir as imagens selecionadas...** . Isso não exclui as imagens associadas do Amazon ECR.

1. Escolha **Desassociar**.

## Limpe os recursos do AWS CLI
<a name="rstudio-byoi-sdk-cleanup-cli"></a>

**Para limpar os recursos**

1. Separe a imagem e as versões da imagem do seu domínio passando uma lista vazia de imagens personalizadas para o domínio. Abra o arquivo `update-domain-input.json` que você criou em [Anexe a SageMaker imagem ao seu domínio atual](studio-byoi-attach.md#studio-byoi-sdk-attach-current-domain).

1. Exclua as imagens personalizadas `RSessionAppSettings` e salve o arquivo. Não modifique as imagens personalizadas `KernelGatewayAppSettings`.

   ```
   {
       "DomainId": "d-xxxxxxxxxxxx",
       "DefaultUserSettings": {
         "KernelGatewayAppSettings": {
            "CustomImages": [
            ],
            ...
         },
         "RSessionAppSettings": { 
           "CustomImages": [ 
           ],
           "DefaultResourceSpec": { 
           }
           ...
         }
       }
   }
   ```

1. Use o ID do domínio e o arquivo de configurações padrão do usuário para atualizar seu domínio.

   ```
   aws sagemaker update-domain \
       --domain-id <d-xxxxxxxxxxxx> \
       --cli-input-json file://update-domain-input.json
   ```

   Resposta:

   ```
   {
       "DomainArn": "arn:aws:sagemaker:us-east-2:acct-id:domain/d-xxxxxxxxxxxx"
   }
   ```

1. Exclua a configuração da imagem da aplicação.

   ```
   aws sagemaker delete-app-image-config \
       --app-image-config-name rstudio-image-config
   ```

1. Exclua a SageMaker imagem, o que também exclui todas as versões da imagem. As imagens de contêiner no Amazon ECR que são representadas pelas versões da imagem não são excluídas.

   ```
   aws sagemaker delete-image \
       --image-name rstudio-image
   ```

# Crie um usuário para usar RStudio
<a name="rstudio-create-user"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Depois que seu domínio Amazon SageMaker AI RStudio habilitado estiver em execução, você poderá adicionar perfis de usuário (UserProfiles) ao domínio. Os tópicos a seguir mostram como criar perfis de usuário autorizados a usar RStudio, bem como atualizar um perfil de usuário existente. Para obter informações sobre como excluir um RStudio aplicativo ou domínio UserProfile, siga as etapas em [Excluir um domínio da Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/gs-studio-delete-domain.html). 

**nota**  
O limite para o número total de UserProfiles em um domínio do Amazon SageMaker AI é 60.

 Há dois tipos de usuários: 
+ Não autorizado: esse usuário não pode acessar o RStudio aplicativo.
+ Autorizado: esse usuário pode acessar o RStudio aplicativo e usar uma das RStudio licenças. Por padrão, um novo usuário é `Authorized` se o domínio estiver habilitado para RStudio.

A alteração do status de autorização de um usuário só é válida de `Unauthorized` para `Authorized`. Se um usuário for autorizado, ele poderá receber um dos seguintes níveis de acesso RStudio a. 
+  RStudio Usuário: Este é um RStudio usuário padrão e pode acessar RStudio. 
+  RStudio Administrador: O administrador do seu domínio Amazon SageMaker AI tem a capacidade de criar usuários, adicionar usuários existentes e atualizar as permissões dos usuários existentes. Os administradores também podem acessar o painel RStudio administrativo. No entanto, esse administrador não consegue atualizar os parâmetros gerenciados pela Amazon SageMaker AI.

## Métodos para criar um usuário
<a name="rstudio-create-user-methods"></a>

Os tópicos a seguir mostram como criar um usuário em seu domínio Amazon SageMaker AI RStudio habilitado.

 **Criar console de usuário** 

Para criar um usuário em seu domínio RStudio habilitado do Amazon SageMaker AI a partir do console, conclua as etapas em[Adicionar perfis de usuário](domain-user-profile-add.md).

 **Criar CLI de usuário** 

 O comando a seguir mostra como adicionar usuários a um domínio do Amazon SageMaker AI com a autenticação do IAM. Um usuário pode pertencer ao grupo de usuários `R_STUDIO_USER` ou `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>}
```

O comando a seguir mostra como adicionar usuários a um domínio do Amazon SageMaker AI com autenticação usando o IAM Identity Center. Um usuário pode pertencer ao grupo de usuários `R_STUDIO_USER` ou `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>
```

# Faça login RStudio como outro usuário
<a name="rstudio-login-another"></a>

O tópico a seguir demonstra como fazer login RStudio no Amazon SageMaker AI como outro usuário.

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação à esquerda, escolha **Configurações do administrador**.

1. Em **Configurações do administrador**, escolha **Domínios**. 

1. Selecione o domínio que contém o perfil do usuário.

1.  Selecione um nome de usuário na lista de usuários. Isso abre uma nova página com detalhes sobre o perfil do usuário e as aplicações em execução. 

1.  Selecione **Iniciar**. 

1.  No menu suspenso, selecione **RStudio**para iniciar uma RStudio instância. 

# Encerrar sessões para outro usuário
<a name="rstudio-terminate-another"></a>

O tópico a seguir demonstra como encerrar sessões para outro usuário no RStudio Amazon SageMaker AI.

1.  Na lista de aplicações em execução, identifique a aplicação que você quer excluir. 

1.  Clique no botão **Excluir aplicação** correspondente à aplicação que você está excluindo. 

# Use o painel RStudio administrativo
<a name="rstudio-admin"></a>

 Este tópico mostra como acessar e usar o painel RStudio administrativo. Com o painel RStudio administrativo, os administradores podem gerenciar usuários e RSessions visualizar informações sobre a utilização da instância RStudio do servidor e o Amazon Logs. CloudWatch 

 

## Inicie o painel RStudio administrativo
<a name="rstudio-admin-launch"></a>

A `R_STUDIO_ADMIN` autorização permite que o usuário acesse o painel RStudio administrativo. Um `R_STUDIO_ADMIN` usuário pode acessar o painel RStudio administrativo `workspaces` substituindo manualmente por `admin` em seu RStudio URL. Veja a seguir como modificar a URL para acessar o painel RStudio administrativo.

Por exemplo, o seguinte RStudio URL: 

```
https://<DOMAIN-ID>.studio.us-east-2.sagemaker.aws/rstudio/default/s/<SESSION-ID>/workspaces
```

Pode ser convertido em: 

```
https://<DOMAIN-ID>.studio.us-east-2.sagemaker.aws/rstudio/default/s/<SESSION-ID>/admin
```

## Guia do Painel
<a name="rstudio-admin-dashboard"></a>

Essa guia fornece uma visão geral da utilização da sua instância RStudio do servidor, bem como informações sobre o número de ativos RSessions.

## Guia de Sessões
<a name="rstudio-admin-sessions"></a>

Essa guia fornece informações sobre os ativos RSessions, como o usuário que iniciou o RSessions, a hora em que eles estão sendo RSessions executados e a utilização de seus recursos.

## Guia de usuários
<a name="rstudio-admin-users"></a>

Essa guia fornece informações sobre os usuários RStudio autorizados no domínio, como a hora em que o último RSession foi lançado e a utilização dos recursos.

## Guia de Estatísticas
<a name="rstudio-admin-stats"></a>

Essa guia fornece informações sobre a utilização da sua instância do RStudio servidor.

## Guia de Registros
<a name="rstudio-admin-logs"></a>

Essa guia exibe Amazon CloudWatch Logs para a instância RStudio do servidor. Para obter mais informações sobre o registro de eventos com o Amazon CloudWatch Logs, consulte [O que é o Amazon CloudWatch Logs?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html) .

# Encerrar RStudio
<a name="rstudio-shutdown"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Para desligar e reiniciar o Posit Workbench e o RStudio ServerPro aplicativo associado, você deve primeiro desligar todos os existentes. RSessions Você pode desligar os aplicativos do RSession Gateway de dentro RStudio. Em seguida, você pode desligar o RStudio ServerPro aplicativo usando AWS CLI o. Depois que o RStudio ServerPro aplicativo for encerrado, você deverá reabri-lo RStudio por meio do console de SageMaker IA.

Todas as informações do caderno não salvas são perdidas no processo. Os dados do usuário no volume do Amazon EFS não são afetados.

**nota**  
Se você estiver usando uma imagem personalizada com RStudio, certifique-se de que sua imagem docker esteja usando uma RStudio versão compatível com a versão do Posit Workbench usada pela SageMaker IA depois de reiniciar seu aplicativo. RStudio ServerPro 

Os tópicos a seguir mostram como desligar o RSession Gateway e RStudio ServerPro os aplicativos e reiniciá-los.

## Suspenda seu RSessions
<a name="rstudio-suspend"></a>

Conclua o procedimento a seguir para suspender todos os seus RSessions.

1. No RStudio Launcher, identifique o RSession que você deseja suspender. 

1. Selecione **Suspender** para a sessão. 

1. Repita isso para todos RSessions.

## Exclua seu RSessions
<a name="rstudio-delete"></a>

Conclua o procedimento a seguir para desligar todos os seus RSessions.

1. No RStudio Launcher, identifique o RSession que você deseja excluir. 

1. Selecione **Sair** para a sessão. Isso abre uma nova janela **Sair da sessão**. 

1. Na janela **Sair da sessão**, selecione **Forçar o encerramento** para encerrar todos os processos secundários da sessão.

1. Selecione **Sair da sessão** para confirmar a exclusão da sessão.

1. Repita isso para todos RSessions.

## Exclua seu RStudio ServerPro aplicativo
<a name="rstudio-delete-restart"></a>

Execute os comandos a seguir a partir do AWS CLI para excluir e reiniciar seu RStudio ServerPro aplicativo.

1. Exclua o RStudio ServerPro aplicativo usando seu ID de domínio atual. 

   ```
   aws sagemaker delete-app \
       --domain-id <domainId> \
       --user-profile-name domain-shared \
       --app-type RStudioServerPro \
       --app-name default
   ```

1. Recrie o RStudio ServerPro aplicativo. 

   ```
   aws sagemaker create-app \
       --domain-id <domainId> \
       --user-profile-name domain-shared \
       --app-type RStudioServerPro \
       --app-name default
   ```

# Faturamento e custos
<a name="rstudio-billing"></a>

 Para monitorar os custos associados ao seu RStudio ambiente, você pode usar o Gerenciamento de Faturamento e Custos da AWS serviço.Gerenciamento de Faturamento e Custos da AWS fornece ferramentas úteis para ajudá-lo a reunir informações relacionadas ao seu custo e uso, analisar seus fatores de custo e tendências de uso e tomar medidas para orçar seus gastos. Para obter mais informações, consulte [O que é Gerenciamento de faturamento e custos da AWS](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-what-is.html)? A seguir, descrevemos os componentes necessários para serem executados RStudio na Amazon SageMaker AI e como cada componente influencia no faturamento da sua RStudio instância. 
+  RStudio Licença — Você deve comprar uma RStudio licença. Não há cobrança adicional pelo uso da sua RStudio licença com a Amazon SageMaker AI. Para obter mais informações sobre sua RStudio licença, consulte[Obtenha uma RStudio licença](rstudio-license.md).
+  RSession - São sessões RStudio de trabalho lançadas por usuários finais. Você é cobrado enquanto o RSession está em execução.
+  RStudio Servidor - Um servidor multilocatário gerencia todos os. RSessions Você pode escolher o tipo de instância na qual executar o RStudio servidor e pagar os custos relacionados. A instância padrão, “sistema”, é gratuita, mas você pode optar por pagar por níveis mais altos. Para obter mais informações sobre os tipos de instância disponíveis para seu RStudio servidor, consulte[RStudioServerPro tipo de instância](rstudio-select-instance.md). 

 **Monitorando o faturamento no nível do usuário** 

 Para monitorar o faturamento no nível do usuário usando tags de alocação de custos, consulte [Como usar tags de alocação de custos](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html).

# Diagnostique problemas e obtenha ajuda
<a name="rstudio-troubleshooting"></a>

 As seções a seguir descrevem como diagnosticar problemas com o RStudio Amazon SageMaker AI. Para obter suporte RStudio na Amazon SageMaker AI, entre em contato com o suporte da Amazon SageMaker AI. Para obter ajuda na compra de uma RStudio licença ou na modificação do número de licenças, entre em contato com [sales@rstudio.com.](mailto:sales@rstudio.com)

## Atualize sua versão
<a name="rstudio-troubleshooting-upgrade"></a>

Se você receber um aviso de que há uma incompatibilidade de versão entre o seu aplicativo RSession e o seu RStudio ServerPro aplicativo, você deve atualizar a versão do seu RStudio ServerPro aplicativo. Para obter mais informações, consulte [RStudio Controle de versão](rstudio-version.md).

## Visualizar métricas e logs
<a name="rstudio-troubleshooting-view"></a>

Você pode monitorar o desempenho do seu fluxo de trabalho enquanto estiver usando o RStudio Amazon SageMaker AI. Visualize registros de dados e informações sobre métricas com o painel RStudio administrativo ou com a Amazon CloudWatch. 

### Visualize seus RStudio registros no painel RStudio administrativo
<a name="rstudio-troubleshooting-logs"></a>

 Você pode visualizar métricas e registros diretamente do painel RStudio administrativo. 

1.  Faça login no seu **domínio Amazon SageMaker AI**. 

1.  Navegue até o painel RStudio administrativo seguindo as etapas em[Use o painel RStudio administrativo](rstudio-admin.md). 

1.  Escolha a guia **Logs**. 

### Veja seus RStudio registros do Amazon CloudWatch Logs
<a name="rstudio-troubleshooting-logs-cw"></a>

 A Amazon CloudWatch monitora seus AWS recursos e os aplicativos nos quais você executa AWS em tempo real. Você pode usar CloudWatch a Amazon para coletar e rastrear métricas, que são variáveis que você pode medir para seus recursos e aplicativos. Para garantir que seus RStudio aplicativos tenham permissões para a Amazon CloudWatch, você deve incluir as permissões descritas em[Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md). Você não precisa fazer nenhuma configuração para coletar Amazon CloudWatch Logs. 

 As etapas a seguir mostram como visualizar CloudWatch os Amazon Logs para seu RSession. 

Esses registros podem ser encontrados no fluxo de `/aws/sagemaker/studio` registros do AWS CloudWatch console.

1. Abra o CloudWatch console em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Selecione `Logs` no lado esquerdo. No menu suspenso, selecione `Log groups`.

1. Na tela, `Log groups` pesquise por `aws/sagemaker/studio`. Selecione o grupo de logs.

1. Na tela `aws/sagemaker/studio` `Log group`, navegue até a guia `Log streams`.

1. Para encontrar os logs do seu domínio, pesquise `Log streams` usando o seguinte formato:

   ```
   <DomainId>/domain-shared/rstudioserverpro/default
   ```

# RStudio no guia do usuário da Amazon SageMaker AI
<a name="rstudio-use"></a>

Com o RStudio suporte da Amazon SageMaker AI, você pode implementar seus fluxos de trabalho de produção e aproveitar os recursos de SageMaker IA. Os tópicos a seguir mostram como iniciar uma RStudio sessão e concluir os principais fluxos de trabalho. Para obter informações sobre o gerenciamento RStudio na SageMaker IA, consulte[RStudio no gerenciamento de SageMaker IA da Amazon](rstudio-manage.md). 

Para obter informações sobre as etapas de integração para criar um domínio Amazon SageMaker AI com RStudio habilitado, consulte[Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md).  

Para obter informações sobre as AWS regiões RStudio nas quais a SageMaker IA é suportada, consulte[Regiões e cotas compatíveis](regions-quotas.md).  

**Topics**
+ [Colabore em RStudio](#rstudio-collaborate)
+ [Imagem base no R](#rstudio-base-image)
+ [RSession colocation de aplicativos](#rstudio-colocation)
+ [Inicie RSessions a partir do RStudio Launcher](rstudio-launcher.md)
+ [Suspenda seu RSessions](rstudio-launcher-suspend.md)
+ [Exclua seu RSessions](rstudio-launcher-delete.md)
+ [RStudio Connect](rstudio-connect.md)
+ [Integração de recursos do Amazon SageMaker AI com o RStudio Amazon SageMaker AI](rstudio-sm-features.md)

## Colabore em RStudio
<a name="rstudio-collaborate"></a>

 Para compartilhar seu RStudio projeto, você pode se conectar RStudio ao seu repositório Git. Para obter informações sobre como configurar isso, consulte [Controle de versão com Git e SVN](https://support.rstudio.com/hc/en-us/articles/200532077-Version-Control-with-Git-and-SVN). 

 Observação: no momento, o compartilhamento de projetos e a colaboração em tempo real não são suportados quando usados RStudio na Amazon SageMaker AI.  

## Imagem base no R
<a name="rstudio-base-image"></a>

 Ao iniciar sua RStudio instância, a imagem Base R serve como base para sua instância. Essa imagem estende a imagem do [r-session-complete](https://hub.docker.com/r/rstudio/r-session-complete)Docker.  

 Essa imagem base no R inclui o seguinte: 
+  R v4.0 ou superior
+  Pacotes Python `awscli`, `sagemaker` e `boto3` 
+  Pacote [reticulado](https://rstudio.github.io/reticulate/) para integração com R SDK 

## RSession colocation de aplicativos
<a name="rstudio-colocation"></a>

Os usuários podem criar vários RSession aplicativos na mesma instância. Cada tipo de instância oferece suporte a até quatro RSession aplicativos alocados. Isso se aplica a cada usuário de forma independente. Por exemplo, se dois usuários criam aplicativos, a SageMaker IA aloca diferentes instâncias subjacentes para cada usuário. Cada uma dessas instâncias suportaria 4 RSession aplicativos.

Os clientes pagam apenas pelo tipo de instância usado, independentemente de quantas aplicações RSession estejam sendo executadas na instância. Se um usuário criar uma RSession com um tipo de instância associado diferente, uma nova instância subjacente será criada.

# Inicie RSessions a partir do RStudio Launcher
<a name="rstudio-launcher"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

 As seções a seguir mostram como usar o RStudio Launcher para iniciar RSessions. Eles também incluem informações sobre como abrir o RStudio Launcher ao usar RStudio na Amazon SageMaker AI.

## Abra o RStudio Launcher
<a name="rstudio-launcher-open"></a>

Abra o RStudio inicializador usando o conjunto de procedimentos a seguir que corresponde ao seu ambiente.

### Abra o RStudio Launcher no console Amazon SageMaker AI
<a name="rstudio-launcher-console"></a>

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1.  No painel de navegação à esquerda, selecione **RStudio**.

1.  Em **Começar**, selecione o domínio e o perfil de usuário a serem iniciados.

1.  Escolha **Executar RStudio**.

### Abra o RStudio Launcher do Amazon Studio SageMaker
<a name="rstudio-launcher-studio"></a>

1. Navegue até o Studio seguindo as etapas em[Inicie o Amazon SageMaker Studio](studio-updated-launch.md).

1. Em **Aplicativos**, selecione **RStudio**.

1. Na página RStudio inicial, escolha **Iniciar aplicativo**.

### Abra o RStudio Launcher a partir do AWS CLI
<a name="rstudio-launcher-cli"></a>

O procedimento para abrir o RStudio Launcher usando o AWS CLI difere dependendo do método usado para gerenciar seus usuários. 

 **Centro de Identidade do IAM** 

1.  Use o portal de AWS acesso para abrir seu domínio Amazon SageMaker AI. 

1.  Modifique o caminho do URL para “/rstudio/default” da seguinte forma: 

   ```
   #Studio URL
   https://<domain-id>.studio.<region>.sagemaker.aws/jupyter/default/lab
   
   #modified URL
   https://<domain-id>.studio.<region>.sagemaker.aws/rstudio/default
   ```

 **IAM** 

 Para abrir o RStudio Launcher AWS CLI no modo IAM, conclua o procedimento a seguir. 

1.  Crie um URL pré-assinado usando o comando a seguir. 

   ```
   aws sagemaker create-presigned-domain-url --region <REGION> \
       --domain-id <DOMAIN-ID> \
       --user-profile-name <USER-PROFILE-NAME>
   ```

1.  Anexe *RStudioServerPro&redirect=* ao URL gerado. 

1.  Navegue até o URL atualizado. 

## Lançamento RSessions
<a name="rstudio-launcher-launch"></a>

 Depois de lançar o RStudio Launcher, você pode criar um novo RSession. 

1.  Selecione **Nova sessão**. 

1.  Insira um **nome de sessão**. 

1.  Selecione um tipo de instância em que você RSession é executado. Isso é padronizado como `ml.t3.medium`.

1.  Selecione uma imagem que você RSession usa como kernel. 

1.  Selecione Start session (Iniciar sessão). 

1.  Após a criação da sessão, você pode iniciá-la selecionando o nome.  
**nota**  
Se você receber um aviso de que há uma incompatibilidade de versão entre o seu aplicativo RSession e o seu RStudio ServerPro aplicativo, você deve atualizar a versão do seu RStudio ServerPro aplicativo. Para obter mais informações, consulte [RStudio Controle de versão](rstudio-version.md).

# Suspenda seu RSessions
<a name="rstudio-launcher-suspend"></a>

O procedimento a seguir demonstra como suspender um RSession do RStudio Launcher ao usar no RStudio Amazon AI. SageMaker Para obter informações sobre como acessar o RStudio Launcher, consulte[Inicie RSessions a partir do RStudio Launcher](rstudio-launcher.md).

1. No RStudio Launcher, identifique o RSession que você deseja suspender. 

1. Selecione **Suspender** para a sessão. 

# Exclua seu RSessions
<a name="rstudio-launcher-delete"></a>

O procedimento a seguir demonstra como excluir um RSession do RStudio Launcher ao usar no RStudio Amazon SageMaker AI. Para obter informações sobre como acessar o RStudio Launcher, consulte[Inicie RSessions a partir do RStudio Launcher](rstudio-launcher.md).

1. No RStudio Launcher, identifique o RSession que você deseja excluir. 

1. Selecione **Sair** para a sessão. Isso abre uma nova janela **Sair da sessão**. 

1. Na janela **Sair da sessão**, selecione **Forçar o encerramento** para encerrar todos os processos secundários da sessão.

1. Selecione **Sair da sessão** para confirmar a exclusão da sessão.

# RStudio Connect
<a name="rstudio-connect"></a>

 RStudio O Connect permite que cientistas de dados publiquem insights, painéis e aplicativos web a partir da RStudio Amazon SageMaker AI. Para obter mais informações, consulte [Host RStudio Connect and Package Manager para desenvolvimento de ML RStudio na Amazon SageMaker AI](https://aws.amazon.com/blogs/machine-learning/host-rstudio-connect-and-package-manager-for-ml-development-in-rstudio-on-amazon-sagemaker/).

 Para obter mais informações sobre o RStudio Connect, consulte o [Guia do usuário do RStudio Connect](https://docs.rstudio.com/connect/user/). 

# Integração de recursos do Amazon SageMaker AI com o RStudio Amazon SageMaker AI
<a name="rstudio-sm-features"></a>

 Um dos benefícios de usar o RStudio Amazon SageMaker AI é a integração dos recursos do Amazon SageMaker AI. Isso inclui a integração com o Amazon SageMaker Studio Classic e o Reticulate. Veja a seguir informações sobre essas integrações e exemplos de como usá-las.

 **Use o Amazon SageMaker Studio Classic e o RStudio Amazon SageMaker AI** 

 Seu Amazon SageMaker Studio Classic e suas RStudio instâncias compartilham o mesmo sistema de arquivos do Amazon EFS. Isso significa que os arquivos que você importa e cria usando o Studio Classic podem ser acessados usando RStudio e vice-versa. Isso permite que você trabalhe nos mesmos arquivos usando o Studio Classic e RStudio sem precisar mover seus arquivos entre os dois. Para obter mais informações sobre esse fluxo de trabalho, consulte o 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).

 **Use o Amazon SageMaker SDK com reticulate** 

O pacote [reticulado](https://rstudio.github.io/reticulate) é usado como uma interface R para o [SDK do Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable/) para fazer chamadas de API para a Amazon. SageMaker O pacote reticulado traduz entre objetos R e Python, e a Amazon SageMaker AI fornece um ambiente de ciência de dados sem servidor para treinar e implantar modelos de Machine Learning (ML) em grande escala. Para ter informações gerais sobre o pacote reticulado, consulte [R Interface to Python](https://rstudio.github.io/reticulate/).

Para um blog que descreve como usar o pacote reticulado com o Amazon SageMaker AI, consulte Usando [R com o Amazon](https://aws.amazon.com/blogs/machine-learning/using-r-with-amazon-sagemaker/) AI. SageMaker 

Os exemplos a seguir mostram como usar a reticulação para casos de uso específicos.
+ Para um caderno que descreve como usar o reticulate para fazer transformações em lote para fazer previsões, consulte Batch Transform [Using R with Amazon AI. SageMaker ](https://sagemaker-examples.readthedocs.io/en/latest/r_examples/r_batch_transform/r_xgboost_batch_transform.html)
+ Para um caderno que descreve como usar o reticulate para realizar ajustes de hiperparâmetros e gerar previsões, consulte [Otimização de hiperparâmetros usando R](https://sagemaker-examples.readthedocs.io/en/latest/r_examples/r_xgboost_hpo_batch_transform/r_xgboost_hpo_batch_transform.html) com Amazon AI. SageMaker 

# Editor de código no Amazon SageMaker Studio
<a name="code-editor"></a>

O Editor de Código no [Code-OSS, Visual Studio Code - Open Source](https://github.com/microsoft/vscode#visual-studio-code---open-source-code---oss), ajuda você a escrever, testar, depurar e executar seu código de analytics e machine learning. O Code Editor se estende e é totalmente integrado ao Amazon SageMaker Studio. Compatível extensões de ambiente de desenvolvimento integrado (IDE) disponíveis também no [Open VSX Registry](https://open-vsx.org/). A página a seguir fornece informações sobre o Editor de Código e os principais detalhes para usá-lo.

O Code Editor tem a extensão [AWS Toolkit for VS](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html) Code pré-instalada, que Serviços da AWS permite conexões com um gerador de código de uso geral baseado em aprendizado de máquina que fornece recomendações de código em tempo real. [Amazon CodeWhisperer](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/codewhisperer.html) Para obter mais informações sobre extensões, consulte [Conexões e extensões do Editor de Código](code-editor-use-connections-and-extensions.md).

**Importante**  
Em 30 de novembro de 2023, a experiência anterior do Amazon SageMaker Studio agora se chama Amazon SageMaker Studio Classic. A seção a seguir é específica ao uso da experiência atualizada do Studio. Para obter informações sobre como usar a aplicação do Studio Classic, consulte [Amazon SageMaker Studio clássico](studio.md).

Para iniciar o Editor de Código, crie um espaço privado no Editor de Código. O espaço do Editor de Código usa uma única instância do Amazon Elastic Compute Cloud (Amazon EC2) para a computação e um único volume do Amazon Elastic Block Store (Amazon EBS) para o armazenamento. Tudo em seu espaço, como seu código, perfil Git e variáveis de ambiente, é armazenado no mesmo volume do Amazon EBS. O volume tem 3.000 IOPS e uma taxa de transferência de 125. MBps Seu administrador definiu as configurações padrão de armazenamento do Amazon EBS para o seu espaço.

O tamanho de armazenamento padrão é 5 GB, mas o administrador pode aumentar a quantidade de espaço que você recebe. Para obter mais informações, consulte [Alterar o tamanho de armazenamento padrão](code-editor-admin-storage-size.md).

O diretório de trabalho de seus usuários dentro do volume de armazenamento é `/home/sagemaker-user`. Se você especificar sua própria AWS KMS chave para criptografar o volume, tudo no diretório de trabalho será criptografado usando sua chave gerenciada pelo cliente. Se você não especificar uma AWS KMS chave, os dados internos `/home/sagemaker-user` serão criptografados com uma chave AWS gerenciada. Independentemente de você especificar uma AWS KMS chave, todos os dados fora do diretório de trabalho são criptografados com uma chave AWS gerenciada.

Você pode escalar sua computação acima ou abaixo com a alteração do tipo de instância do Amazon EC2 que executa sua aplicação de Editor de Código. Antes de alterar o tipo de instância associada, primeiro é necessário interromper o espaço do Editor de Código. Para obter mais informações, consulte [Instâncias e imagens da aplicação Editor de Código](code-editor-use-instances.md).

Seu administrador pode fornecer para você uma configuração de ciclo de vida para personalizar o seu ambiente. É possível especificar a configuração do ciclo de vida ao criar o espaço. Para obter mais informações, consulte [Configurações de ciclo de vida do Editor de Código](code-editor-use-lifecycle-configurations.md).

Você também pode trazer seu próprio sistema de armazenamento de arquivos se tiver um volume do Amazon EFS.

![\[A página de boas-vindas da interface do usuário da aplicação Editor de Código.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/code-editor/code-editor-home.png)


**Topics**
+ [Uso do Editor de Código](code-editor-use.md)
+ [Guia do administrador do Editor de Código](code-editor-admin.md)

# Uso do Editor de Código
<a name="code-editor-use"></a>

Os tópicos desta seção fornecem guias para usar o Editor de código, incluindo como iniciar, adicionar conexões Serviços da AWS, desligar recursos e muito mais. Depois de criar um espaço no Editor de Código, você pode acessar a sua sessão do Editor de Código diretamente pelo navegador.

No ambiente do Editor de Código, você pode fazer o seguinte: 
+ Acesse todos os artefatos persistentes em seu diretório inicial
+ Clone seus GitHub repositórios e confirme as alterações
+ Acesse o SageMaker Python SDK

Você pode retornar ao Studio para revisar todos os ativos criados em seu ambiente de Editor de Código, como experimentos, pipelines ou trabalhos de treinamento. 

**Topics**
+ [Verifique a versão do Editor de Código](code-editor-use-version.md)
+ [Instâncias e imagens da aplicação Editor de Código](code-editor-use-instances.md)
+ [Inicie a aplicação de Editor de Código no Studio](code-editor-use-studio.md)
+ [Inicie um aplicativo Editor de código usando o AWS CLI](code-editor-launch-cli.md)
+ [Clonar um repositório no Editor de Código](code-editor-use-clone-a-repository.md)
+ [Conexões e extensões do Editor de Código](code-editor-use-connections-and-extensions.md)
+ [Encerre os recursos do Editor de Código](code-editor-use-log-out.md)

# Verifique a versão do Editor de Código
<a name="code-editor-use-version"></a>

As etapas a seguir mostram como verificar a versão da sua aplicação do Editor de Código.

**Para verificar a versão da aplicação do Editor de Código**

1. Inicie e execute um espaço do Editor de Código e navegue até a interface do usuário da aplicação Editor de Código. Para obter mais informações, consulte [Inicie a aplicação de Editor de Código no Studio](code-editor-use-studio.md).

1. No canto superior esquerdo da interface do Editor de Código, selecione o botão de menu (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/code-editor/code-editor-menu-icon.png)). Em seguida, escolha **Ajuda**. Em seguida, escolha **Sobre**.

# Instâncias e imagens da aplicação Editor de Código
<a name="code-editor-use-instances"></a>

Somente algumas instâncias são compatíveis com as aplicações do Editor de Código. Você pode escolher o tipo de instância compatível com seu caso de uso no menu suspenso **Instância**. 

As instâncias de **Início Rápido** iniciam muito mais rápido do que as outras instâncias. Para obter mais informações sobre os tipos de instância de início rápido no Studio, [Tipos de instância disponíveis para uso com notebooks Amazon SageMaker Studio Classic](notebooks-available-instance-types.md).

**nota**  
Se você usar um tipo de instância de GPU na configuração da sua aplicação Editor de Código, também deverá usar uma imagem baseada em GPU. A interface do usuário do espaço do Editor de Código seleciona automaticamente uma imagem compatível quando você seleciona o seu tipo de instância.

Em um espaço, seus dados são armazenados em um volume do Amazon EBS que persiste independentemente da duração de uma instância. Você não perderá seus dados ao alterar as instâncias. Se seu espaço no Editor de Código for `Running`, você deverá interromper o seu espaço antes de fazer a alteração dos tipos de instância.

A tabela a seguir lista as imagens ARNs de CPU e GPU do Editor de Código disponíveis para cada região.


|  Região  |  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 encontrar limites de instância, entre em contato com o administrador. Para obter mais armazenamento e computação para um usuário, os administradores podem solicitar um aumento nas cotas de um usuário. AWS Para obter mais informações sobre como solicitar um aumento de cota, consulte os [endpoints e cotas do Amazon SageMaker AI](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html).

# Inicie a aplicação de Editor de Código no Studio
<a name="code-editor-use-studio"></a>

Para configurar e acessar seu ambiente de desenvolvimento integrado do Editor de Código por meio do Studio, você deve criar um espaço do Editor de Código. Para obter mais informações sobre espaços no Studio, consulte [Espaços do Amazon SageMaker Studio](studio-updated-spaces.md).

![\[O botão da aplicação Editor de Código e o quadro de visão geral na interface do usuário do Studio.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/code-editor/code-editor-studio-home.png)


O procedimento a seguir mostra como criar e executar um espaço do Editor de Código.

**Para criar e executar um espaço do Editor de Código**

1. Inicie a experiência atualizada do Studio. Para obter mais informações, consulte [Launch Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html).

1. Execute um destes procedimentos:
   + Na interface atualizada do Amazon SageMaker Studio, selecione **Editor de código** no menu **Aplicativos**.
   + Na interface atualizada do Amazon SageMaker Studio, escolha **Visualizar espaços do editor de código** na seção **Visão geral** da página inicial do Studio.

1. No canto superior direito da página inicial do Editor de Código, escolha **Criar espaço no Editor de Código**.

1. Insira um nome para o seu espaço no Editor de Código. O nome deve ter de 1 a 62 caracteres usando somente letras, números e traços.

1. Selecione **Criar espaço**.

1. Depois de criado o espaço, você terá algumas opções antes de optar por executar o espaço:
   + Você pode editar **Armazenamento (GB)**, **Configuração do ciclo de vida** ou **Anexar configurações personalizadas do sistema de arquivo EFS**. As opções para essas configurações estão disponíveis com base nas especificações do administrador.
   + No menu suspenso **Instância**, você pode escolher o tipo de instância mais compatível com seu caso de uso. No menu suspenso **Imagem**, você pode escolher uma imagem de SageMaker distribuição ou uma imagem personalizada fornecida pelo administrador.
**nota**  
Alternar entre imagens de distribuição do SageMaker altera a versão subjacente do Editor de Código que está sendo usada, o que pode causar incompatibilidades devido ao armazenamento em cache do navegador. Você deve limpar o cache do navegador ao alternar entre imagens.

     Se você usar um tipo de instância de GPU na configuração da sua aplicação Editor de Código, também deverá usar uma imagem baseada em GPU. Em um espaço, seus dados são armazenados em um volume do Amazon EBS que persiste independentemente da duração de uma instância. Você não perderá seus dados ao alterar as instâncias.
**Importante**  
As políticas do IAM personalizadas que permitem que os usuários do Studio criem espaços devem conceder permissões também para listar imagens (`sagemaker: ListImage`) para visualizar imagens personalizadas. Para adicionar a permissão, consulte [Adicionar ou remover permissões de identidade](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) no Guia do usuário do *AWS Identity and Access Management*.   
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar recursos de SageMaker IA já incluem permissões para listar imagens ao criar esses recursos.
**nota**  
Para atualizar as configurações de espaço, primeiro é necessário interromper o espaço. Se seu editor de código usa uma NVMe instância com armazenamentos de instâncias, todos os dados armazenados na NVMe loja são excluídos quando o espaço é interrompido.

1. Após a atualização de suas configurações, escolha **Executar Espaço** na página de detalhes do espaço.

1. Depois que o status do espaço for `Running`, escolha **Abrir Editor de Código** para iniciar a sua sessão do Editor de Código. 

![\[A página de detalhes do espaço para uma aplicação Editor de Código na interface do usuário do Studio.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/code-editor/code-editor-open.png)


# Inicie um aplicativo Editor de código usando o AWS CLI
<a name="code-editor-launch-cli"></a>

Para configurar e acessar seu ambiente de desenvolvimento integrado do Editor de Código por meio do AWS Command Line Interface (AWS CLI), você deve criar um espaço do Editor de Código. Certifique-se de conhecer o [Concluir os pré-requisitos](code-editor-admin-prerequisites.md) antes de seguir as etapas a seguir. Use o procedimento a seguir para criar e executar um espaço do Editor de Código.

**Para criar e executar um espaço do Editor de Código**

1. Acesse um espaço usando AWS Identity and Access Management (IAM) ou Centro de Identidade do AWS IAM autenticação. Para obter mais informações sobre como acessar espaços usando o AWS CLI, consulte *Acessando espaços usando o AWS Command Line Interface* in[Espaços do Amazon SageMaker Studio](studio-updated-spaces.md). 

1. Crie uma aplicação e especifique `CodeEditor` como `app-type` usando o comando a seguir.

   Se você usar um tipo de instância de GPU ao criar a aplicação Editor de Código também deverá usar uma imagem baseada em 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"
   ```

   Para obter mais informações sobre a imagem disponível do Editor de Código ARNs, consulte[Instâncias e imagens da aplicação Editor de Código](code-editor-use-instances.md).

1. Depois que a aplicação Editor de Código estiver em funcionamento, inicie a aplicação usando uma URL pré-assinada. Você pode usar a API `describe-app` para verificar se sua aplicação está em funcionamento. Use a API `create-presigned-domain-url` para criar uma URL pré-assinada:

   ```
   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. Abra a URL gerada para começar a trabalhar na aplicação Editor de Código.

# Clonar um repositório no Editor de Código
<a name="code-editor-use-clone-a-repository"></a>

Você pode navegar pelas pastas e clonar um repositório na janela **Explorer** da interface do usuário da aplicação Editor de Código. 

Para clonar um repositório, siga essas etapas:

**Para clonar um repositório**

1. Abra sua aplicação Editor de Código no navegador e escolha o botão **Exploração** (![\[Icon representing multiple documents or pages stacked on top of each other.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/code-editor/code-editor-exploration-icon.png)) no painel de navegação à esquerda.

1. Escolha **Clonar repositório** na janela **Explorer**. Em seguida, forneça uma URL do repositório ou escolha uma fonte de repositório no prompt.

1. Escolha uma pasta onde clonar o seu repositório. Observe que a pasta padrão do Editor de Código é `/home/sagemaker-user/`. A clonagem do repositório pode levar algum tempo.

1. Para abrir o repositório clonado, escolha **Abrir em nova janela** ou **Abrir**.

1.  Para retornar à página inicial da interface do usuário da aplicação Editor de Código, escolha **Cancelar**.

1. Dentro do repositório, um prompt pergunta se você confia nos autores dos arquivos no novo repositório. Você tem duas opções:

   1. Para confiar na pasta e ativar todos os atributos, escolha **Sim, confio nos autores**.

   1. Para navegar pelo conteúdo do repositório no *modo restrito*, escolha **Não, não confio nos autores**.

      No modo restrito, as tarefas não podem ser executadas, a depuração é desativada, as configurações do espaço de trabalho não são aplicadas e as extensões têm funcionalidade limitada.

      Para sair do modo restrito, confiar nos autores de todos os arquivos em sua pasta atual ou na pasta principal e habilitar todos os atributos, escolha **Gerenciar** no banner **Modo restrito**.

# Conexões e extensões do Editor de Código
<a name="code-editor-use-connections-and-extensions"></a>

O Code Editor suporta conexões IDE e extensões disponíveis no [Open VSX](https://open-vsx.org/) Registry. Serviços da AWS 

## Conexões com AWS
<a name="code-editor-use-connections"></a>

Os ambientes do Editor de Código são integrados ao [AWS Kit de ferramentas para VS Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/welcome.html) para adicionar conexões aos Serviços da AWS. Para começar a usar conexões com Serviços da AWS, você deve ter credenciais válidas AWS Identity and Access Management (IAM). Para obter mais informações, consulte [Autenticação e acesso ao AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/establish-credentials.html).

Em seu ambiente de Editor de Código, você pode adicionar conexões para: 
+  [AWS Explorer](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/aws-explorer.html) — Visualize, modifique e implante AWS recursos no Amazon S3 e muito mais. CloudWatch

  O acesso a determinados recursos no AWS Explorer requer certas AWS permissões. Para obter mais informações, consulte [Autenticação e acesso ao 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): crie aplicações mais rapidamente com sugestões de código baseadas em IA. 

  Para usar Amazon CodeWhisperer com o Editor de código, você deve adicionar as seguintes permissões à sua função de execução de SageMaker IA.

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

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Sid": "CodeWhispererPermissions",
        "Effect": "Allow",
        "Action": ["codewhisperer:GenerateRecommendations"],
        "Resource": "*"
      }
    ]
  }
  ```

------

  Para obter informações sobre como [Criar políticas do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) e [Adicionar e remover permissões de identidade do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) no *Guia do usuário do IAM*.

## Extensões
<a name="code-editor-use-extensions"></a>

O Editor de Código é compatível com extensões IDE disponíveis no [Open VSX Registry](https://open-vsx.org/). 

Para começar a usar extensões em seu ambiente do Editor de Código, escolha o ícone **Extensões** (![\[Icon showing two overlapping squares representing multiple windows or instances.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/code-editor/code-editor-extensions-icon.png)) no painel de navegação à esquerda. Aqui, você pode configurar as conexões com a AWS instalando o AWS Toolkit. Para obter mais informações, consulte [Instalar a AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setup-toolkit.html).

Na barra de pesquisa, você pode pesquisar diretamente extensões adicionais por meio do [Open VSX Registry](https://open-vsx.org/), como o AWS Toolkit, Jupyter, Python e muito mais.

# Encerre os recursos do Editor de Código
<a name="code-editor-use-log-out"></a>

Ao terminar de usar um espaço do Editor de Código, você pode usar o Studio para interrompê-lo. Dessa forma, você deixa de incorrer em custos com o espaço. 

Como alternativa, você pode excluir recursos não utilizados do Editor de Código com a AWS CLI.

## Parada no seu espaço no Editor de Código com o Studio
<a name="code-editor-use-log-out-stop-space"></a>

Para interromper seu espaço no Editor de Código no Studio, use as seguintes etapas:

**Para interromper seu espaço no Editor de Código no Studio**

1. Retorne à página inicial do Editor de Código fazendo o seguinte: 

   1. Na barra de navegação no canto superior esquerdo, escolha **Editor de Código**.

   1. Como alternativa, no painel de navegação esquerdo, selecione **Editor de Código** no menu **Aplicações**.

1. Encontre o nome do espaço do Editor de Código que você criou. Se o status do seu espaço for **Em execução**, escolha **Parar** na coluna **Ação**. Você também pode interromper o espaço diretamente na página de detalhes do espaço escolhendo **Interromper o espaço**. A interrupção do espaço pode levar algum tempo.

![\[Uma página de detalhes do espaço na interface do usuário da aplicação Editor de Código.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/code-editor/code-editor-stop-space.png)


Recursos adicionais, como endpoints de SageMaker IA, clusters do Amazon EMR (Amazon EMR) e buckets do Amazon Simple Storage Service (Amazon S3) criados a partir do Studio, não são excluídos automaticamente quando sua instância espacial é encerrada. Para parar de acumular cobranças dos recursos, exclua quaisquer recursos adicionais. Para obter mais informações, consulte [Exclusão de recursos não usados](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-jl-admin-guide-clean-up.html).

## Exclua os recursos do Editor de código usando o AWS CLI
<a name="code-editor-use-log-out-shut-down-resources"></a>

Você pode excluir o aplicativo e o espaço do Editor de Código usando o 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)

# Guia do administrador do Editor de Código
<a name="code-editor-admin"></a>

Você pode usar o Editor de Código com uma instância sob demanda para acelerar o tempo de inicialização e o armazenamento configurável. Você pode iniciar um aplicativo de editor de código por meio do Amazon SageMaker Studio ou do AWS CLI. Você também pode editar as configurações padrão do Editor de Código no console do domínio. Para obter mais informações, consulte [Editar configurações de domínio](domain-edit.md). Os tópicos a seguir descrevem como os administradores podem configurar o Editor de Código, com base no Code-OSS, Visual Studio Code - código aberto, alterando as opções de armazenamento, personalizando ambientes e gerenciando o acesso do usuário, além de fornecer informações sobre os pré-requisitos necessários para usar o Editor de Código.

**Topics**
+ [Concluir os pré-requisitos](code-editor-admin-prerequisites.md)
+ [Forneça acesso a espaços privados aos seus usuários](code-editor-admin-user-access.md)
+ [Alterar o tamanho de armazenamento padrão](code-editor-admin-storage-size.md)
+ [Configurações de ciclo de vida do Editor de Código](code-editor-use-lifecycle-configurations.md)
+ [Imagens personalizadas](code-editor-custom-images.md)

# Concluir os pré-requisitos
<a name="code-editor-admin-prerequisites"></a>

Para usar o Editor de Código, com base no Code-OSS, Visual Studio Code - código aberto, você deve preencher os seguintes pré-requisitos:

1. Primeiro, você deve se conectar ao domínio Amazon SageMaker AI e criar um perfil de usuário. Para obter mais informações, consulte [Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md).

1. Se você estiver interagindo com seu aplicativo Editor de código usando o AWS CLI, você também deverá preencher os seguintes pré-requisitos.

   1.  Atualize o AWS CLI seguindo as etapas em [Instalando a AWS CLI versão atual](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled). 

   1.  Em sua máquina local, execute `aws configure` e forneça suas credenciais da AWS . Para obter informações sobre AWS credenciais, consulte [Entendendo e obtendo suas AWS credenciais](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html). 

1. (Opcional) Para obter mais armazenamento e computação para seu aplicativo, você pode solicitar um aumento nas suas AWS cotas. Para obter mais informações sobre como solicitar um aumento de cota, consulte os [endpoints e cotas do Amazon SageMaker AI](https://docs.aws.amazon.com/general/latest/gr/sagemaker.html).

# Forneça acesso a espaços privados aos seus usuários
<a name="code-editor-admin-user-access"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Esta seção fornece uma política que concede acesso a espaços privados ao usuário. Você pode usar a política também para restringir espaços privados bem como as aplicações associados com eles do proprietário associado ao perfil do usuário. 

Para fornecer permissões aos seus usuários, siga os seguintes passos:
+ Espaços privados
+ O perfil de usuário necessário para acessar os espaços privados

Para dar permissões, adicione a seguinte política nos perfis do IAM dos seus usuários:

------
#### [ 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"
          ]
        }
      }
    }
  ]
}
```

------

# Alterar o tamanho de armazenamento padrão
<a name="code-editor-admin-storage-size"></a>

Você pode alterar as configurações padrão de armazenamento dos seus usuários. Você pode alterar também as configurações de armazenamento padrão com base nos requisitos organizacionais e nas necessidades dos seus usuários.

Para alterar o tamanho de armazenamento de seus usuários, faça o seguinte:

1. Atualização das configurações de armazenamento do Amazon EBS no domínio. 

1. Crie um perfil de usuário e especifique as configurações de armazenamento dentro dele.

Use o comando a seguir AWS Command Line Interface (AWS CLI) para atualizar o domínio.

```
aws --region $REGION sagemaker update-domain \
--domain-id $DOMAIN_ID \
--default-user-settings '{
    "SpaceStorageSettings": {
        "DefaultEbsStorageSettings":{
            "DefaultEbsVolumeSizeInGb":5,
            "MaximumEbsVolumeSizeInGb":100
        }
    }
}'
```

Use o AWS CLI comando a seguir para criar o perfil do usuário e especificar as configurações de armazenamento padrão.

```
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
        }
    }
}'
```

Use os AWS CLI comandos a seguir para atualizar as configurações de armazenamento padrão no perfil do usuário.

```
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
        }
    }
}'
```

# Configurações de ciclo de vida do Editor de Código
<a name="code-editor-use-lifecycle-configurations"></a>

Você pode usar configurações de ciclo de vida do Editor de Código para automatizar a personalização do ambiente Studio. Essa personalização inclui a instalação de pacotes personalizados, a configuração de extensões, o pré-carregamento de conjuntos de dados e a configuração de repositórios de código fonte.

As instruções a seguir usam o AWS Command Line Interface (AWS CLI) para criar, anexar, depurar e desanexar configurações de ciclo de vida para o tipo de aplicativo: `CodeEditor`
+ [Crie e anexe as configurações de ciclo de vida no Studio](code-editor-use-lifecycle-configurations-studio-create.md)
+ [Configurações de ciclo de vida de depuração no Studio](code-editor-use-lifecycle-configurations-studio-debug.md)
+ [Desassociação das configurações de ciclo de vida no Studio](code-editor-use-lifecycle-configurations-studio-detach.md)

# Crie e anexe as configurações de ciclo de vida no Studio
<a name="code-editor-use-lifecycle-configurations-studio-create"></a>

A seção a seguir fornece AWS CLI comandos para criar uma configuração de ciclo de vida, anexar uma configuração de ciclo de vida ao criar um novo perfil de usuário e anexar uma configuração de ciclo de vida ao atualizar um perfil de usuário. Para pré-requisitos e etapas gerais sobre como criar e anexar configurações de ciclo de vida no Studio, consulte [Criação de configuração do ciclo de vida](jl-lcc-create.md). 

Ao criar a sua configuração de ciclo de vida do Studio com o comando `create-studio-lifecycle-config`, certifique-se de especificar que `studio-lifecycle-config-app-type` é `CodeEditor`. O exemplo a seguir mostra como criar uma configuração nova do ciclo de vida para a sua aplicação no Editor de Código.

```
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
```

Anote o ARN da configuração de ciclo de vida recém-criada que é retornada. Ao anexar uma configuração de ciclo de vida, forneça esse ARN na lista `LifecycleConfigArns` de `CodeEditorAppSettings`. 

Você pode anexar uma configuração de ciclo de vida ao criar um perfil de usuário ou domínio. O exemplo a seguir mostra como criar um novo perfil de usuário com a configuração de ciclo de vida anexada. Você também pode criar um novo domínio com uma configuração de ciclo de vida anexada com o 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]
  }
}'
```

Como alternativa, você pode anexar uma configuração de ciclo de vida ao atualizar um perfil de usuário ou domínio. O exemplo a seguir mostra como atualizar um perfil de usuário com a configuração de ciclo de vida anexada. Você também pode atualizar um domínio novo com uma configuração de ciclo de vida anexada com o 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]
  }
}'
```

# Configurações de ciclo de vida de depuração no Studio
<a name="code-editor-use-lifecycle-configurations-studio-debug"></a>

Para depurar scripts de configuração do ciclo de vida do Editor de Código, você deve usar o Studio. Para obter instruções sobre como depurar as configurações de ciclo de vida no Studio, consulte [Configuração de depuração do ciclo de vida](jl-lcc-debug.md). Para encontrar os logs de uma aplicação específico, pesquise os fluxos de logs usando o seguinte formato:

```
domain-id/space-name/CodeEditor/default/LifecycleConfigOnStart
```

# Desassociação das configurações de ciclo de vida no Studio
<a name="code-editor-use-lifecycle-configurations-studio-detach"></a>

Para desassociar as configurações de ciclo de vida do Editor de Código, você pode usar o console ou a AWS CLI. Para ver as etapas sobre como desassociar as configurações de ciclo de vida do console do Studio, consulte [Desassociar as configurações de ciclo de vida](jl-lcc-delete.md).

Para separar uma configuração de ciclo de vida usando o AWS CLI, remova a configuração de ciclo de vida desejada da lista de configurações de ciclo de vida anexada ao recurso. Em seguida, passe a lista como parte do respectivo 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)

Por exemplo, o comando a seguir remove todas as configurações de ciclo de vida da aplicação Editor de Código anexadas ao domínio.

```
aws sagemaker update-domain --domain-id domain-id \
--default-user-settings '{
"CodeEditorAppSettings": {
  "LifecycleConfigArns":
    []
  }
}'
```

# Crie uma configuração de ciclo de vida para clonar repositórios em uma aplicação de Editor de Código
<a name="code-editor-use-lifecycle-configurations-repositories"></a>

Esta seção mostra como clonar um repositório e criar uma aplicação de Editor de Código com a configuração de ciclo de vida anexada.

1. De sua máquina local, crie um arquivo denominado `my-script.sh` com o conteúdo a seguir:

   ```
   #!/bin/bash
   set -eux
   ```

1. Clonar o repositório de sua escolha no script de configuração do ciclo de vida. 

   ```
   export REPOSITORY_URL="https://github.com/aws-samples/sagemaker-studio-lifecycle-config-examples.git"
   git -C /home/sagemaker-user clone $REPOSITORY_URL
   ```

1. Depois de finalizar seu script, crie e anexe sua configuração de ciclo de vida. Para obter mais informações, consulte [Crie e anexe as configurações de ciclo de vida no Studio](code-editor-use-lifecycle-configurations-studio-create.md).

1. Crie sua aplicação de Editor de Código com a configuração de ciclo de vida anexada.

   ```
   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"
   ```

   Para obter mais informações sobre a imagem disponível do Editor de Código ARNs, consulte[Instâncias e imagens da aplicação Editor de Código](code-editor-use-instances.md).

# Crie uma configuração de ciclo de vida para instalar extensões do Editor de Código
<a name="code-editor-use-lifecycle-configurations-extensions"></a>

Esta seção mostra como criar uma configuração de ciclo de vida para instalar extensões do [Open VSX Registry](https://open-vsx.org/) em seu ambiente de Editor de Código.

1. De sua máquina local, crie um arquivo denominado `my-script.sh` com o seguinte conteúdo:

   ```
   #!/bin/bash
   set -eux
   ```

1. Dentro do script, instale a extensão [Open VSX Registry](https://open-vsx.org/) de sua escolha:

   ```
   sagemaker-code-editor --install-extension AmazonEMR.emr-tools --extensions-dir /opt/amazon/sagemaker/sagemaker-code-editor-server-data/extensions
   ```

   Você pode recuperar o nome da extensão a partir da URL da extensão no [Open VSX Registry](https://open-vsx.org/). O nome da extensão a ser usado no comando `sagemaker-code-editor` deve conter todo o texto a seguir `https://open-vsx.org/extension/` na URL. Substitua todas as instâncias de uma barra (`/`) por um ponto (`.`). Por exemplo, `AmazonEMR/emr-tools` deveria ser `AmazonEMR.emr-tools`.  
![\[A página de extensão do Amazon EMR no Open VSX Registry.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/code-editor/code-editor-emr-extension.png)

1. Depois de finalizar seu script, crie e anexe sua configuração de ciclo de vida. Para obter mais informações, consulte [Crie e anexe as configurações de ciclo de vida no Studio](code-editor-use-lifecycle-configurations-studio-create.md).

1. Crie sua aplicação de Editor de Código com a configuração de ciclo de vida anexada:

   ```
   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"
   ```

   Para obter mais informações sobre a imagem disponível do Editor de Código ARNs, consulte[Instâncias e imagens da aplicação Editor de Código](code-editor-use-instances.md). Para ver mais informações sobre conexões e extensões, consulte [Conexões e extensões do Editor de Código](code-editor-use-connections-and-extensions.md).

# Imagens personalizadas
<a name="code-editor-custom-images"></a>

Se precisar de uma funcionalidade diferente da fornecida pela SageMaker distribuição, você pode trazer sua própria imagem com suas extensões e pacotes personalizados. Você também pode personalizar a interface de usuário do Editor de Código de acordo com sua própria marca ou necessidades de conformidade.

A página a seguir fornecerá informações e modelos específicos do Code Editor para criar suas próprias imagens personalizadas de SageMaker IA. Isso serve para complementar as informações e instruções do Amazon SageMaker Studio sobre como criar sua própria imagem de SageMaker IA e trazer sua própria imagem para o Studio. Para saber mais sobre imagens personalizadas de SageMaker IA da Amazon e como trazer sua própria imagem para o Studio, consulte[Traga sua própria imagem (BYOI)](studio-updated-byoi.md). 

**Topics**
+ [Verificação de integridade e URL de aplicações](#code-editor-custom-images-app-healthcheck)
+ [Exemplos de Dockerfile](#code-editor-custom-images-dockerfile-templates)

## Verificação de integridade e URL de aplicações
<a name="code-editor-custom-images-app-healthcheck"></a>
+ `Base URL`: O URL base para a aplicação BYOI deve ser `CodeEditor/default`. Você só pode ter uma aplicação e ele deve sempre ter um nome `default`.
+ Endpoint de verificação de integridade — Você deve hospedar seu servidor do Editor de Código na porta 0.0.0.0 8888 para que a SageMaker IA o detecte.
+  Autenticação — Você deve passar `--without-connection-token` ao abrir `sagemaker-code-editor` para permitir que a SageMaker IA autentique seus usuários.

**nota**  
Se você estiver usando a Amazon SageMaker Distribution como imagem base, esses requisitos já foram atendidos como parte do `entrypoint-code-editor` script incluído.

## Exemplos de Dockerfile
<a name="code-editor-custom-images-dockerfile-templates"></a>

Os exemplos a seguir são arquivos `Dockerfile` que atendem às informações e [Especificações de imagem personalizadas](studio-updated-byoi-specs.md) acima.

**nota**  
Se você estiver trazendo sua própria imagem para o SageMaker Unified Studio, precisará seguir as [especificações do Dockerfile](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html) no Guia do *usuário do Amazon SageMaker Unified Studio*.  
`Dockerfile`exemplos do SageMaker Unified Studio podem ser encontrados no [exemplo do Dockerfile no Guia do](https://docs.aws.amazon.com/sagemaker-unified-studio/latest/userguide/byoi-specifications.html#byoi-specifications-example) *usuário do Amazon SageMaker Unified Studio*.

------
#### [ Example micromamba Dockerfile ]

Veja o seguinte exemplo de Dockerfile para criar uma imagem do zero usando um ambiente [https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html](https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html) básico: 

```
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 ]

Veja a seguir um exemplo de Dockerfile para criar uma imagem com base na [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 ajuda você a provisionar clusters resilientes para executar cargas de trabalho de aprendizado de máquina (ML) e desenvolver state-of-the-art modelos como modelos de linguagem grande (LLMs), modelos de difusão e modelos básicos (). FMs Ele acelera o desenvolvimento ao remover o trabalho pesado indiferenciado envolvido na criação e manutenção de clusters de computação em grande escala, alimentados por milhares de aceleradores, como AWS Trainium e unidades de processamento gráfico NVIDIA A100 e H100 (). FMs GPUs Quando os aceleradores falham, os recursos de resiliência do SageMaker HyperPod monitor das instâncias do cluster detectam e substituem automaticamente o hardware defeituoso em tempo real, para que você possa se concentrar na execução de cargas de trabalho de ML.

Para começar, verifique [Pré-requisitos para usar SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md)[AWS Identity and Access Management para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md), configure e escolha uma das seguintes opções de orquestrador suportadas pelo. SageMaker HyperPod

**Suporte para Slurm em SageMaker HyperPod**

SageMaker HyperPod fornece suporte para executar cargas de trabalho de aprendizado de máquina em clusters resilientes por meio da integração com o Slurm, um gerenciador de carga de trabalho de código aberto. O suporte ao Slurm SageMaker HyperPod permite a orquestração perfeita do cluster por meio da configuração do cluster do Slurm, permitindo que você configure nós principais, de login e de trabalho nos SageMaker HyperPod clusters. Essa integração também facilita o agendamento de tarefas baseado no Slurm para executar cargas de trabalho de ML no cluster, bem como o acesso direto aos nós do cluster para agendamento de trabalhos. Com HyperPod o suporte à configuração do ciclo de vida, você pode personalizar o ambiente de computação dos clusters para atender às suas necessidades específicas. Além disso, ao aproveitar as bibliotecas de treinamento distribuídas da Amazon SageMaker AI, você pode otimizar o desempenho dos clusters em AWS recursos de computação e rede. Para saber mais, consulte [Orquestrando SageMaker HyperPod clusters com o Slurm](sagemaker-hyperpod-slurm.md). 

**Suporte ao Amazon EKS em SageMaker HyperPod**

SageMaker HyperPod também se integra ao Amazon EKS para permitir o treinamento em grande escala de modelos básicos em clusters computacionais resilientes e de longa duração. Isso permite que os usuários administradores do cluster provisionem HyperPod clusters e os conectem a um plano de controle EKS, permitindo o gerenciamento dinâmico da capacidade, acesso direto às instâncias do cluster e recursos de resiliência. Para cientistas de dados, o suporte do Amazon EKS HyperPod permite executar cargas de trabalho em contêineres para treinar modelos básicos, inferir no cluster EKS e aproveitar o recurso de retomada automática de trabalhos para treinamento em Kubeflow. PyTorch A arquitetura envolve um mapeamento 1 para 1 entre um cluster EKS (plano de controle) e um HyperPod cluster (nós de trabalho) em uma VPC, fornecendo uma solução totalmente integrada para executar cargas de trabalho de ML em grande escala. Para saber mais, consulte [Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md).

**UltraServers with HyperPod**

HyperPod com UltraServers fornece poder de computação de IA ao integrar superchips NVIDIA em uma infraestrutura coesa e de alto desempenho. Cada uma NVL72 UltraServer combina 18 instâncias com 72 NVIDIA Blackwell GPUs interconectadas via NVLink, permitindo inferência mais rápida e desempenho de treinamento mais rápido em comparação com instâncias da geração anterior. Essa arquitetura é particularmente valiosa para organizações que trabalham com modelos básicos de trilhões de parâmetros, pois a memória de GPU unificada permite que modelos inteiros permaneçam em um único NVLink domínio, eliminando gargalos de rede entre nós. HyperPod aprimora essa vantagem de hardware com agendamento inteligente com reconhecimento de topologia que otimiza o posicionamento da carga de trabalho, a substituição automática de instâncias para minimizar interrupções e opções flexíveis de implantação que oferecem suporte a configurações de recursos dedicados e compartilhados. Para equipes que ultrapassam os limites de tamanho e desempenho do modelo, essa integração oferece o alicerce computacional necessário para treinar e implantar os mais avançados modelos de IA com uma eficiência sem precedentes.

SageMaker HyperPod otimiza automaticamente o posicionamento da instância em todo o seu UltraServers. Por padrão, HyperPod prioriza todas as instâncias em uma UltraServer antes de usar uma diferente. Por exemplo, se você quiser 14 instâncias e tiver 2 UltraServers no seu plano, a SageMaker IA usa todas as instâncias da primeira UltraServer. Se você quiser 20 instâncias, a SageMaker IA usa todas as 18 instâncias na primeira UltraServer e depois usa mais 2 na segunda.

## Regiões da AWS apoiado por SageMaker HyperPod
<a name="sagemaker-hyperpod-available-regions"></a>

SageMaker HyperPod está disponível a seguir Regiões da 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**
+ [Regiões da AWS apoiado por SageMaker HyperPod](#sagemaker-hyperpod-available-regions)
+ [Início SageMaker HyperPod rápido da Amazon](sagemaker-hyperpod-quickstart.md)
+ [Pré-requisitos para usar SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md)
+ [AWS Identity and Access Management para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md)
+ [AWS KMS key Criptografia gerenciada pelo cliente para SageMaker HyperPod](smcluster-cmk.md)
+ [SageMaker HyperPod receitas](sagemaker-hyperpod-recipes.md)
+ [Orquestrando SageMaker HyperPod clusters com o Slurm](sagemaker-hyperpod-slurm.md)
+ [Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md)
+ [Usando o agendamento com reconhecimento de topologia na Amazon SageMaker HyperPod](sagemaker-hyperpod-topology.md)
+ [Implantação de modelos na Amazon SageMaker HyperPod](sagemaker-hyperpod-model-deployment.md)
+ [HyperPod em estúdio](sagemaker-hyperpod-studio.md)
+ [SageMaker HyperPod referências](sagemaker-hyperpod-ref.md)
+ [Notas SageMaker HyperPod de lançamento da Amazon](sagemaker-hyperpod-release-notes.md)
+ [Amazon SageMaker HyperPod AMI](sagemaker-hyperpod-release-ami.md)

# Início SageMaker HyperPod rápido da Amazon
<a name="sagemaker-hyperpod-quickstart"></a>

Este guia de início rápido orienta você na criação do seu primeiro HyperPod cluster com as orquestrações do Slurm e do Amazon EKS (EKS). Escolha a orquestração que melhor se adapta às suas necessidades de infraestrutura para começar. SageMaker HyperPod

**Topics**
+ [Crie um cluster orquestrado pelo SLURM SageMaker HyperPod](#sagemaker-hyperpod-quickstart-slurm)
+ [Crie um cluster orquestrado pelo EKS SageMaker HyperPod](#sagemaker-hyperpod-quickstart-eks)
+ [Enviar workloads](#sagemaker-hyperpod-quickstart-workload)

## Crie um cluster orquestrado pelo SLURM SageMaker HyperPod
<a name="sagemaker-hyperpod-quickstart-slurm"></a>

Siga estas etapas para criar seu primeiro SageMaker HyperPod cluster com a orquestração do Slurm.

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Escolha **HyperPod Clusters** no painel de navegação esquerdo e, em seguida, **Gerenciamento de Clusters**.

1. Na página **SageMaker HyperPod Clusters**, escolha **Criar HyperPod cluster**. 

1. No menu suspenso **Criar HyperPod cluster**, escolha **Orchestrated** by Slurm.

1. Na página de criação do cluster, escolha **Configuração rápida**. Com essa opção, você começa imediatamente com as configurações padrão. SageMaker A IA criará novos recursos, como VPC, sub-redes, grupos de segurança, bucket do Amazon S3, função do IAM e FSx para o Lustre no processo de criação do seu cluster.

1. Em **Configurações gerais**, especifique um nome para o novo cluster. Não é possível alterar o nome após a criação do cluster.

1. Em **Grupos de instâncias**, escolha **Adicionar grupo**. Cada grupo de instâncias pode ser configurado de forma diferente e você pode criar um cluster heterogêneo que consiste em vários grupos de instâncias com vários tipos de instância. Para implantar um cluster, você deve adicionar ao menos um grupo de instâncias. É possível adicionar um grupo de instâncias por vez. Para criar vários grupos de instâncias, repita o processo para cada grupo de instâncias.

   Siga as etapas abaixo para adicionar um grupo de instâncias.

   1. Em **Tipo de grupos de instâncias** escolha um tipo de grupo de instâncias. Para esse início rápido, escolha **Controlador (cabeça)** para `my-controller-group`, **Login** para `my-login-group` e **Computação (processamento)** para `worker-group-1`. 

   1. Em **Nome**, especifique um nome para o grupo de instâncias. Para este início rápido, crie três grupos de instâncias chamados `my-controller-group`, `my-login-group` e `worker-group-1`.

   1.  Em **Capacidade da instância**, escolha a capacidade sob demanda ou um plano de treinamento para reservar seus recursos de computação.

   1. Em **Selecionar tipo de instância**, escolha a instância para o grupo de instâncias. Para esse início rápido, selecione `ml.c5.xlarge` para `my-controller-group`, `ml.m5.4xlarge` para `my-login-group` e `ml.trn1.32xlarge` para `worker-group-1`. 

      Escolha o tipo de instância com cotas suficientes em sua conta ou solicite cotas adicionais seguindo as instruções em [SageMaker HyperPod cotas](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

   1. Em **Quantidade de instâncias**, especifique um número inteiro que não exceda a cota de instância para uso do cluster. Para este início rápido, insira **1** para todos os três grupos.

   1. Na lista **Zona de disponibilidade de destino**, selecione a zona de disponibilidade onde suas instâncias serão provisionadas. A zona de disponibilidade deve corresponder ao local da sua capacidade de computação acelerada.

   1. Em **Outros volumes de armazenamento por instância (GB)**, especifique um número inteiro entre 1 e 16.384 para definir o tamanho de um volume adicional do Elastic Block Store (EBS) em gigabytes (GB). O volume do EBS é anexado a cada instância do grupo de instâncias. O caminho de montagem padrão para o volume adicional do EBS é`/opt/sagemaker`. Depois que o cluster for criado com sucesso, você poderá entrar por SSH nas instâncias do cluster (nós) e verificar se o volume do EBS está montado corretamente executando o comando `df -h`. A anexação de um volume adicional do EBS fornece armazenamento estável, fora da instância e com persistência independente, conforme descrito na [seção de volumes do Amazon EBS](https://docs.aws.amazon.com//ebs/latest/userguide/ebs-volumes.html) no Guia do usuário do *Amazon Elastic* Block Store.

   1. Escolha **Adicionar grupo de instâncias**.

1.  Em **Padrões de configuração rápida**, analise as configurações padrão. Esta seção lista todas as configurações padrão para a criação do cluster, incluindo todos os novos AWS recursos que serão criados durante o processo de criação do cluster.

1. Selecione **Enviar**.

Para obter mais informações, consulte [Começando a SageMaker HyperPod usar o console de SageMaker IA](smcluster-getting-started-slurm-console.md).

## Crie um cluster orquestrado pelo EKS SageMaker HyperPod
<a name="sagemaker-hyperpod-quickstart-eks"></a>

Siga estas etapas para criar seu primeiro SageMaker HyperPod cluster com a orquestração do Amazon EKS.

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Escolha **HyperPod Clusters** no painel de navegação esquerdo e, em seguida, **Gerenciamento de Clusters**.

1. Na página **SageMaker HyperPod Clusters**, escolha **Criar HyperPod cluster**. 

1. No menu suspenso **Criar HyperPod cluster**, escolha **Orchestrated by** Amazon EKS.

1. Na página de criação de clusters, escolha **Configuração rápida**. Com essa opção, você pode começar imediatamente com as configurações padrão. SageMaker A IA criará novos recursos, como VPC, sub-redes, grupos de segurança, bucket do Amazon S3, função do IAM e FSx para o Lustre no processo de criação do seu cluster.

1. Em **Configurações gerais**, especifique um nome para o novo cluster. Não é possível alterar o nome após a criação do cluster. 

1. Em **Grupos de instâncias**, escolha **Adicionar grupo**. Cada grupo de instâncias pode ser configurado de forma diferente e você pode criar um cluster heterogêneo que consiste em vários grupos de instâncias com vários tipos de instância. Para implantar um cluster, você deve adicionar ao menos um grupo de instâncias. É possível adicionar um grupo de instâncias por vez. Para criar vários grupos de instâncias, repita o processo para cada grupo de instâncias.

   Siga as etapas abaixo para adicionar um grupo de instâncias.

   1. Em **Tipo de grupo de instâncias**, escolha **Padrão** ou **Grupo de instâncias restritas (RIG)**. Normalmente, você escolherá **Padrão**, que oferece um ambiente de computação de uso geral sem restrições adicionais de segurança. O **grupo de instâncias restritas (RIG)** é um ambiente especializado para personalização de modelos de base, como o Amazon Nova. Para obter mais informações sobre como configurar o RIG para personalização do modelo Amazon Nova, consulte Personalização do Amazon Nova no guia SageMaker HyperPod do usuário do [Amazon Nova 1.0 ou no guia do usuário](https://docs.aws.amazon.com//nova/latest/userguide/nova-hp.html) do [Amazon Nova 2.0](https://docs.aws.amazon.com//nova/latest/nova2-userguide/nova-hp.html).

   1. Em **Nome**, especifique um nome para o grupo de instâncias.

   1.  Em **Capacidade da instância**, escolha a capacidade sob demanda ou um plano de treinamento para reservar seus recursos de computação.

   1. Em **Selecionar tipo de instância**, escolha a instância para o grupo de instâncias. Escolha o tipo de instância com cotas suficientes em sua conta ou solicite cotas adicionais seguindo em [SageMaker HyperPod cotas](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

   1. Em **Quantidade de instâncias**, especifique um número inteiro que não exceda a cota de instância para uso do cluster. Para este início rápido, insira **1** para todos os três grupos.

   1. Na lista **Zona de disponibilidade de destino**, selecione a zona de disponibilidade onde suas instâncias serão provisionadas. A zona de disponibilidade deve corresponder ao local da sua capacidade de computação acelerada.

   1. Em **Outros volumes de armazenamento por instância (GB)**, especifique um número inteiro entre 1 e 16.384 para definir o tamanho de um volume adicional do Elastic Block Store (EBS) em gigabytes (GB). O volume do EBS é anexado a cada instância do grupo de instâncias. O caminho de montagem padrão para o volume adicional do EBS é`/opt/sagemaker`. Depois que o cluster for criado com sucesso, você poderá entrar por SSH nas instâncias do cluster (nós) e verificar se o volume do EBS está montado corretamente executando o comando `df -h`. A anexação de um volume adicional do EBS fornece armazenamento estável, fora da instância e com persistência independente, conforme descrito na [seção de volumes do Amazon EBS](https://docs.aws.amazon.com//ebs/latest/userguide/ebs-volumes.html) no Guia do usuário do *Amazon Elastic* Block Store.

   1. Em **Verificações de integridade profundas de instância**, escolha sua opção. As verificações de integridade profundas monitoram a integridade da instância durante a criação e após atualizações de software, recuperando automaticamente as instâncias defeituosas por meio de reinicializações ou substituições quando habilitadas.

   1. Escolha **Adicionar grupo de instâncias**.

1.  Em **Padrões de configuração rápida**, analise as configurações padrão. Esta seção lista todas as configurações padrão para a criação do cluster, incluindo todos os novos AWS recursos que serão criados durante o processo de criação do cluster.

1. Selecione **Enviar**.

Para obter mais informações, consulte [Criação de um SageMaker HyperPod cluster com a orquestração do Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md).

## Enviar workloads
<a name="sagemaker-hyperpod-quickstart-workload"></a>

Siga estes tutoriais de workshop para enviar amostras de workloads.
+ [Amazon SageMaker HyperPod para Slurm](https://catalog.workshops.aws/sagemaker-hyperpod/en-US)
+ [Amazon SageMaker HyperPod para Amazon EKS](https://catalog.workshops.aws/sagemaker-hyperpod-eks/en-US)

# Pré-requisitos para usar SageMaker HyperPod
<a name="sagemaker-hyperpod-prerequisites"></a>

As seções a seguir explicam os pré-requisitos antes de começar. SageMaker HyperPod

**Topics**
+ [SageMaker HyperPod cotas](#sagemaker-hyperpod-prerequisites-quotas)
+ [Configuração SageMaker HyperPod com uma Amazon VPC personalizada](#sagemaker-hyperpod-prerequisites-optional-vpc)
+ [Configurando SageMaker HyperPod clusters em vários AZs](#sagemaker-hyperpod-prerequisites-multiple-availability-zones)
+ [Configurando AWS Systems Manager e executando como para controle de acesso do usuário do cluster](#sagemaker-hyperpod-prerequisites-ssm)
+ [(Opcional) Configurando SageMaker HyperPod com o Amazon FSx for Lustre](#sagemaker-hyperpod-prerequisites-optional-fsx)

## SageMaker HyperPod cotas
<a name="sagemaker-hyperpod-prerequisites-quotas"></a>

Você pode criar SageMaker HyperPod clusters considerando as cotas de *uso do cluster* em sua AWS conta.

**Importante**  
Para saber mais sobre SageMaker HyperPod preços, consulte [SageMaker HyperPod preços](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-pricing) [Amazon SageMaker Pricing](https://aws.amazon.com/sagemaker/pricing/).

### Veja as SageMaker HyperPod cotas da Amazon usando o Console de gerenciamento da AWS
<a name="sagemaker-hyperpod-prerequisites-quotas-view"></a>

Procure os valores padrão e aplicados de uma *cota*, também conhecida como *limite*, para *uso do cluster*, que é usada para SageMaker HyperPod.

1. Abra o [console do Service Quotas](https://console.aws.amazon.com/servicequotas/).

1. No painel de navegação à esquerda, selecione **Serviços da AWS **.

1. Na lista de **AWS serviços**, pesquise e selecione **Amazon SageMaker AI**.

1. Na lista **de cotas de serviço**, você pode ver o nome da cota de serviço, o valor aplicado (se disponível), a cota AWS padrão e se o valor da cota é ajustável. 

1. Na barra de pesquisa, digite **uso do cluster**. Isso mostra as cotas para uso do cluster, as cotas aplicadas e as cotas padrão.

**Lista de cotas de serviços comuns para criar um HyperPod cluster e seus pré-requisitos**

Talvez você queira verificar se solicitou aumentos no limite da cota de serviço para as cotas a seguir para criar um novo HyperPod cluster junto com os pré-requisitos no console de IA. SageMaker Navegue até o console do **Service Quota** e pesquise os seguintes termos.


****  

| Não | Nome da cota | Termo de pesquisa | Description | 
| --- | --- | --- | --- | 
| 1 | Número máximo de instâncias permitidas por SageMaker HyperPod cluster | Em SageMaker AI, pesquise por “Número máximo de instâncias permitido por SageMaker HyperPod cluster” | O valor da cota no nível da conta deve ser maior do que o número de instâncias que você deseja adicionar ao seu cluster | 
| 2 | Tamanho máximo do volume do EBS em GB para uma instância de SageMaker HyperPod cluster |  Em SageMaker AI, pesquise por “Tamanho máximo do volume do EBS em GB para uma instância de HyperPod cluster”   |  O valor da cota em nível de conta deve ser maior do que o volume do EBS que você deseja adicionar ao seu cluster  | 
| 3 | Número total de instâncias permitidas em todos os SageMaker HyperPod clusters |  Em SageMaker AI, pesquise por “Número total de instâncias permitidas em SageMaker HyperPod clusters”   | O valor da cota no nível da conta deve ser maior do que o total de instâncias que você deseja adicionar em todos os clusters da sua conta em conjunto | 
| 4 |  Cotas de instância   |  Em SageMaker IA, pesquise por “ml”. <instance\$1type>para uso de cluster”, por exemplo: ml.p5.48xlarge para uso de cluster  | O valor da cota em nível de conta para o tipo de instância específico (por exemplo: ml.p5.48xlarge) deve ser maior que o número de instâncias a serem adicionadas em todos os clusters da sua conta em conjunto. | 
| 5 |  VPCs por região  | Em Amazon Virtual Private Cloud (Amazon VPC), pesquise VPCs por “por região” | O valor da cota no nível da conta deve ser suficiente para criar uma nova VPC na conta ao configurar seu cluster. HyperPod Verifique se você já esgotou esse limite de cota no console da VPC. Esse aumento de cota só é necessário se você criar uma nova VPC por meio da opção de configuração de cluster rápida ou personalizada no SageMaker HyperPod console. | 
| 6 |  Gateways da Internet por região  |  Em Amazon Virtual Private Cloud (Amazon VPC), pesquise por “Gateways de Internet por região”  | O valor da cota no nível da conta deve ser suficiente para criar um gateway de Internet adicional na conta ao configurar seu cluster. SageMaker HyperPod Esse aumento de cota só é necessário se você criar uma nova VPC por meio da opção de configuração de cluster rápida ou personalizada no SageMaker HyperPod console.  | 
| 7 | Interfaces de rede por região | Em Amazon Virtual Private Cloud (Amazon VPC), pesquise por “Interfaces de rede por região” |  O valor da cota no nível da conta deve ter interfaces de rede suficientes na conta ao configurar seu cluster. HyperPod   | 
| 8 | Elástico EC2-VPC IPs | Em Amazon Elastic Compute Cloud (Amazon EC2), pesquise por “EC2-VPC Elastic” IPs | O valor da cota no nível da conta deve ser suficiente para criar uma nova VPC na conta ao configurar seu cluster. HyperPod Verifique se você já esgotou esse limite de cota no console da VPC. Esse aumento de cota só é necessário se você criar uma nova VPC por meio da opção de configuração de cluster rápida ou personalizada no SageMaker HyperPod console. | 

### Solicite um aumento de SageMaker HyperPod cota da Amazon usando o Console de gerenciamento da AWS
<a name="sagemaker-hyperpod-prerequisites-quotas-increase"></a>

Aumente suas cotas no nível da conta ou do recurso.

1. Para aumentar a cota de instâncias para *uso do cluster*, selecione a cota que você deseja aumentar.

1. Se a cota for ajustável, você poderá solicitar um aumento de cota no nível da conta ou do recurso com base no valor listado na coluna **Ajustabilidade**.

1. Em **Alterar o valor da cota**, insira o novo valor. O novo valor deve ser maior que o valor atual.

1. Escolha **Solicitar**.

1. Para visualizar quaisquer solicitações pendentes ou resolvidas recentemente no console, navegue até a guia **Histórico de solicitações** na página de detalhes do serviço ou escolha **Painel no painel** de navegação. Para solicitações pendentes, escolha o status da solicitação para abrir o recibo da solicitação. O status inicial de uma solicitação é **Pending** (Pendente). Depois que o status mudar para **Cota solicitada**, você verá o número do caso com AWS Support. Escolha o número do caso para abrir o tíquete de sua solicitação.

Para informações sobre como solicitar o aumento da cota, consulte [Solicitar um aumento de cota](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html) no *Guia do usuário do AWS Service Quotas*.

## Configuração SageMaker HyperPod com uma Amazon VPC personalizada
<a name="sagemaker-hyperpod-prerequisites-optional-vpc"></a>

Para configurar um SageMaker HyperPod cluster com uma Amazon VPC personalizada, analise os seguintes pré-requisitos.

**nota**  
A configuração da VPC é obrigatória para a orquestração do Amazon EKS. Para a orquestração do Slurm, a configuração da VPC é opcional.
+  Valide a capacidade [da Elastic Network Interface](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) (ENI) em sua Conta da AWS antes de criar um SageMaker HyperPod cluster com uma VPC personalizada. O limite de ENI é controlado pelo Amazon EC2 e varia de acordo com. Região da AWS SageMaker HyperPod não pode solicitar automaticamente aumentos de cota. 

**Para verificar sua cota de ENI atual:**

  1. Abra o [console do Service Quotas](https://console.aws.amazon.com/servicequotas/).

  1. **Na seção **Gerenciar cotas**, use a lista suspensa ** AWS Serviços** para pesquisar VPC.** 

  1. Opte por visualizar as cotas da **Amazon Virtual Private Cloud (Amazon VPC)**. 

  1. Procure a cota de serviço, as **interfaces de rede por região** ou o **código de cota** `L-DF5E4CA3`.

  Se o limite atual de ENI for insuficiente para as necessidades SageMaker HyperPod do cluster, solicite um aumento de cota. Garantir previamente a capacidade de ENI adequada ajuda a evitar falhas na implantação do cluster.
+ Ao usar uma VPC personalizada para conectar um SageMaker HyperPod cluster com AWS recursos, forneça o nome, ID Região da AWS, sub-rede e grupo de segurança da VPC durante a IDs criação do cluster. IDs 
**nota**  
Quando sua Amazon VPC e sub-redes oferecem suporte IPv6 no nível do cluster ou no nível do grupo [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)de instâncias usando o `OverrideVPCConfig` atributo de [https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html](https://docs.aws.amazon.com//sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html), as comunicações de rede diferem com base na plataforma de orquestração do cluster:  
Os clusters orquestrados pelo SLURM configuram automaticamente nós com IPv4 endereços duplos, permitindo comunicações de IPv6 rede imediatas. IPv6 Nenhuma configuração adicional é necessária além das `VPCConfig` IPv6 configurações.
Em clusters orquestrados pelo EKS, os nós recebem endereçamento de pilha dupla, mas os pods só podem ser usados IPv6 quando o cluster Amazon EKS está explicitamente ativado. IPv6 Você deve criar um novo cluster do IPv6 Amazon EKS - os clusters existentes do IPv4 Amazon EKS não podem ser convertidos em IPv6. Para obter informações sobre a implantação de um cluster IPv6 Amazon EKS, consulte [Implantação de Amazon EKS IPv6 clusters](https://docs.aws.amazon.com/eks/latest/userguide/deploy-ipv6-cluster.html#_deploy_an_ipv6_cluster_with_eksctl).
Recursos adicionais para IPv6 configuração:  
Para obter informações sobre como adicionar IPv6 suporte à sua VPC, consulte [IPv6 Support for VPC](https://docs.aws.amazon.com//vpc/latest/userguide/vpc-migrate-ipv6.html).
Para obter informações sobre como criar uma nova VPC IPv6 compatível, [Amazon VPC consulte](https://docs.aws.amazon.com//vpc/latest/userguide/create-vpc.html) o Guia de criação.
Para configurar SageMaker HyperPod com uma Amazon VPC personalizada, consulte Configuração personalizada [da Amazon VPC para](https://docs.aws.amazon.com//sagemaker/latest/dg/sagemaker-hyperpod-prerequisites.html#sagemaker-hyperpod-prerequisites-optional-vpc). SageMaker HyperPod
+ Certifique-se de que todos os recursos estejam implantados da Região da AWS mesma forma que o SageMaker HyperPod cluster. Configure as regras do grupo de segurança para permitir a comunicação entre recursos dentro da VPC. Por exemplo, ao criar uma VPC na `us-west-2`, provisione sub-redes em uma ou mais zonas de disponibilidade (como `us-west-2a` ou `us-west-2b`) e crie um grupo de segurança que permita o tráfego intragrupo.
**nota**  
SageMaker HyperPod suporta a implantação de zonas de multidisponibilidade. Para obter mais informações, consulte [Configurando SageMaker HyperPod clusters em vários AZs](#sagemaker-hyperpod-prerequisites-multiple-availability-zones).
+ Estabeleça conectividade Amazon Simple Storage Service (Amazon S3) para SageMaker HyperPod grupos de instâncias implantadas em VPC criando um VPC endpoint. Sem acesso à internet, os grupos de instâncias não podem armazenar ou recuperar scripts de ciclo de vida, dados de treinamento ou artefatos de modelo. Recomendamos que você crie uma política personalizada do IAM restringindo o acesso ao bucket do Amazon S3 à VPC privada. Para ter mais informações, consulte [Gateway endpoints for Amazon S3](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-endpoints-s3.html) no *Guia do AWS PrivateLink *.
+ Para HyperPod clusters que usam instâncias habilitadas para o Elastic Fabric Adapter (EFA), configure o grupo de segurança para permitir todo o tráfego de entrada e saída de e para o próprio grupo de segurança. Mais especificamente, evite usar `0.0.0.0/0` para regras de saída, pois isso pode causar falhas na verificação de integridade do EFA. Para ter mais informações sobre as diretrizes de preparação de grupo de segurança EFA, consulte [Etapa 1: Preparar um grupo de segurança habilitado para EFA](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa-start.html#efa-start-security) no *Guia do usuário do Amazon EC2*.
+ Considere cuidadosamente o tamanho do bloco Classless Inter-Domain Routing (CIDR) da sua sub-rede antes de criar clusters. HyperPod 
  + O tamanho do bloco CIDR da sub-rede não pode ser alterado após a criação. Isso é especialmente importante quando você usa grandes instâncias aceleradas, como a P5. Sem um tamanho de bloco suficiente, você deve recriar os clusters ao aumentar a escala verticalmente.
  + Ao escolher o tamanho apropriado do bloco CIDR da sub-rede, considere estes fatores: os tipos de instância, o número esperado de instâncias e o número de endereços IP consumidos por instância.
  + Para clusters orquestrados pelo Slurm, cada instância P5 pode criar 32 endereços IP (um por placa de rede). Para clusters orquestrados pelo EKS, cada instância P5 pode criar 81 endereços IP (50 da placa primária mais 1 de cada uma das 31 placas restantes). Para ter especificações detalhadas, consulte [Network specifications](https://docs.aws.amazon.com/ec2/latest/instancetypes/ac.html#ac_network) no *Guia do desenvolvedor de tipos de instância do Amazon EC2*.
  + [Para exemplos de CloudFormation modelos que especificam o tamanho do bloco CIDR da sub-rede, consulte o modelo [HyperPod Slurm e o modelo 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) no repositório. awsome-distributed-training ](https://github.com/aws-samples/awsome-distributed-training/tree/main)

## Configurando SageMaker HyperPod clusters em vários AZs
<a name="sagemaker-hyperpod-prerequisites-multiple-availability-zones"></a>

Você pode configurar seus SageMaker HyperPod clusters em várias zonas de disponibilidade (AZs) para melhorar a confiabilidade e a disponibilidade.

**nota**  
O tráfego do Elastic Fabric Adapter (EFA) não pode cruzar ou. AZs VPCs Isso não se aplica ao tráfego IP normal do dispositivo ENA de uma interface EFA. Para ter mais informações, consulte [Limitações de EFA](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html).
+ **Comportamento padrão**

  HyperPod implanta todas as instâncias do cluster em uma única zona de disponibilidade. A configuração da VPC determina a AZ de implantação:
  + Para clusters orquestrados pelo Slurm, a configuração da VPC é opcional. Quando nenhuma configuração de VPC é fornecida, o HyperPod padrão é uma sub-rede da plataforma VPC. 
  + Para clusters orquestrados pelo EKS, a configuração da VPC é opcional.
  + Para os orquestradores Slurm e EKS, quando fornecido, [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html) HyperPodseleciona uma sub-rede na lista de sub-redes do fornecido. `VpcConfig` Todos os grupos de instâncias herdam a AZ da sub-rede. 
**nota**  
Após a criação de um cluster, não é possível modificar as definições da `VpcConfig`.

  Para saber mais sobre a configuração VPCs de HyperPod clusters, consulte a seção anterior,. [Configuração SageMaker HyperPod com uma Amazon VPC personalizada](#sagemaker-hyperpod-prerequisites-optional-vpc)
+ **Configuração multi-AZ**

  Você pode configurar seu HyperPod cluster em vários AZs ao criar um cluster ou ao adicionar um novo grupo de instâncias a um cluster existente. Para configurar implantações multi-AZ, você pode substituir as configurações de VPC padrão do cluster especificando diferentes sub-redes e grupos de segurança, possivelmente em diferentes zonas de disponibilidade, para grupos de instâncias individuais no cluster. 

  SageMaker HyperPod Os usuários da API podem usar a `OverrideVpcConfig` propriedade dentro do [ClusterInstanceGroupSpecification](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html)ao trabalhar com o [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)ou [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html) APIs.

  O campo `OverrideVpcConfig`:
  + Não pode ser modificado após a criação do grupo de instâncias.
  + É opcional. Se não for especificado, o nível do cluster da [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_VpcConfig.html) será usado como padrão.
  + Para clusters orquestrados pelo Slurm, só pode ser especificado quando o nível do cluster da `VpcConfig` é fornecido. Se `VpcConfig` não for especificada no nível do cluster, `OverrideVpcConfig` não poderá ser usada para nenhum grupo de instâncias.
  + Contém dois campos obrigatórios:
    + `Subnets`- aceita entre 1 e 16 sub-redes IDs
    + `SecurityGroupIds`- aceita entre 1 e 5 grupos de segurança IDs

  Para obter mais informações sobre como criar ou atualizar um SageMaker HyperPod cluster usando a interface do usuário do SageMaker HyperPod console ou o AWS CLI:
  + [Orquestração do Slurm: consulte Operação de clusters orquestrados pelo Slurm. HyperPod](sagemaker-hyperpod-operate-slurm.md)
  + Orquestração do EKS. Consulte [Operando clusters orquestrados pelo EKS HyperPod](sagemaker-hyperpod-eks-operate.md).

**nota**  
Ao executar cargas de trabalho em várias AZs, esteja ciente de que a comunicação de rede entre elas AZs introduz latência adicional. Considere esse impacto ao projetar aplicações sensíveis à latência.

## Configurando AWS Systems Manager e executando como para controle de acesso do usuário do cluster
<a name="sagemaker-hyperpod-prerequisites-ssm"></a>

[SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami)vem com [AWS Systems Manager](https://aws.amazon.com/systems-manager/)(SSM) pronto para uso para ajudar você a gerenciar o acesso aos grupos de instâncias SageMaker HyperPod do cluster. Esta seção descreve como criar usuários do sistema operacional (SO) em seus SageMaker HyperPod clusters e associá-los a usuários e funções do IAM. Isso é útil para autenticar sessões SSM usando as credenciais da conta de usuário do sistema operacional.

**nota**  
Conceder aos usuários acesso aos nós HyperPod do cluster permite que eles instalem e operem software gerenciado pelo usuário nos nós. Mantenha o princípio de permissões de privilégio mínimo para os usuários.

### Ativando o Run As em sua AWS conta
<a name="sagemaker-hyperpod-prerequisites-ssm-enable-runas"></a>

Como administrador AWS da conta ou administrador da nuvem, você pode gerenciar o acesso aos SageMaker HyperPod clusters em uma função do IAM ou nível de usuário usando o [recurso Run As no SSM](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-preferences-run-as.html). Com esse atributo, você pode iniciar cada sessão de SSM usando o usuário do sistema operacional associado ao perfil ou ao perfil do IAM.

Para ativar o Run As em sua AWS conta, siga as etapas [em Ativar o suporte ao Run As para nós gerenciados do Linux e macOS](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-preferences-run-as.html). Se você já criou usuários de sistema operacional em seu cluster, certifique-se de associá-los às funções ou perfis do IAM, marcando-os conforme orientado na **Opção 2** da etapa 5, em **Ativar a opção de compatibilidade Executar como para nós gerenciados do Linux e macOS**.

## (Opcional) Configurando SageMaker HyperPod com o Amazon FSx for Lustre
<a name="sagemaker-hyperpod-prerequisites-optional-fsx"></a>

Para começar a usar SageMaker HyperPod e mapear caminhos de dados entre o cluster e seu sistema de arquivos FSx for Lustre, selecione um dos Regiões da AWS compatíveis com. SageMaker HyperPod Depois de escolher a Região da AWS que você prefere, você também deve determinar qual zona de disponibilidade (AZ) usar. 

Se você usar nós de SageMaker HyperPod computação AZs diferentes de AZs onde seu sistema de arquivos FSx for Lustre está configurado no mesmo Região da AWS, pode haver sobrecarga de comunicação e rede. Recomendamos que você use a mesma AZ física da conta de SageMaker HyperPod serviço para evitar qualquer tráfego cruzado de AZ entre SageMaker HyperPod clusters e seu sistema de arquivos FSx for Lustre. Além disso, verifique se o configurou com sua VPC. Se você quiser usar a Amazon FSx como o principal sistema de arquivos para armazenamento, deverá configurar SageMaker HyperPod clusters com sua VPC.

# AWS Identity and Access Management para SageMaker HyperPod
<a name="sagemaker-hyperpod-prerequisites-iam"></a>

AWS Identity and Access Management (IAM) é um AWS serviço que ajuda o administrador a controlar com segurança o acesso aos AWS recursos. Os administradores do IAM controlam quem pode ser *autenticado* (conectado) e *autorizado* (ter permissões) para usar os recursos do Amazon EKS. O IAM é um AWS serviço que você pode usar sem custo adicional.

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Vamos supor que haja duas camadas principais de SageMaker HyperPod usuários: usuários *administradores de cluster e usuários* de *cientistas de dados*.
+ **Usuários administradores de clusters** — são responsáveis por criar e gerenciar SageMaker HyperPod clusters. Isso inclui configurar os HyperPod clusters e gerenciar o acesso do usuário a eles.
  + Crie e configure SageMaker HyperPod clusters com o Slurm ou o Amazon EKS.
  + Crie e configure funções do IAM para usuários de cientistas de dados e recursos de HyperPod cluster.
  + Para SageMaker HyperPod orquestração com o Amazon EKS, crie e configure [entradas de acesso do EKS, controle de acesso](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html) [baseado em função (RBAC)](sagemaker-hyperpod-eks-setup-rbac.md) e Pod Identity para atender aos casos de uso da ciência de dados.
+ **Usuários cientistas de dados**: concentram-se no treinamento de modelo de ML. Eles usam o orquestrador de código aberto ou a SageMaker HyperPod CLI para enviar e gerenciar trabalhos de treinamento.
  + Assuma e use o perfil do IAM fornecida pelos usuários administradores do cluster.
  + Interaja com o orquestrador de código aberto CLIs suportado pelo SageMaker HyperPod (Slurm ou Kubernetes) ou pela SageMaker HyperPod CLI para verificar a capacidade dos clusters, conectar-se ao cluster e enviar cargas de trabalho.

Configure funções do IAM para administradores de clusters anexando as permissões ou políticas corretas para operar clusters. SageMaker HyperPod Os administradores do cluster também devem criar funções do IAM para fornecer SageMaker HyperPod recursos que assumam a execução e a comunicação com AWS os recursos necessários, como Amazon S3 AWS Systems Manager , CloudWatch Amazon e (SSM). Por fim, o administrador da AWS conta ou os administradores do cluster devem conceder aos cientistas permissões para acessar os SageMaker HyperPod clusters e executar cargas de trabalho de ML.

Dependendo do orquestrador escolhido, as permissões necessárias para o administrador do cluster e os cientistas podem variar. É possível também controlar o escopo das permissões para várias ações nas funções usando as chaves de condição por serviço. Use as seguintes referências de autorização de serviço para adicionar um escopo detalhado aos serviços relacionados SageMaker HyperPod a.
+ [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) (para orquestração de SageMaker HyperPod clusters com o Amazon EKS)
+ [Amazon Elastic Kubernetes](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelastickubernetesservice.html) Service (para orquestração de SageMaker HyperPod clusters com o Amazon EKS)
+ [Amazon FSx](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonfsx.html)
+ [AWS IAM Identity Center (sucessor do AWS Single Sign-On)](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)
+ [ SageMaker IA da Amazon](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**
+ [Permissões do IAM para criação de clusters](#sagemaker-hyperpod-prerequisites-iam-cluster-creation)
+ [Usuários do IAM para administração de cluster](#sagemaker-hyperpod-prerequisites-iam-cluster-admin)
+ [Usuários do IAM para cientistas](#sagemaker-hyperpod-prerequisites-iam-cluster-user)
+ [Função do IAM para SageMaker HyperPod](#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod)

## Permissões do IAM para criação de clusters
<a name="sagemaker-hyperpod-prerequisites-iam-cluster-creation"></a>

A criação de HyperPod clusters requer as permissões do IAM descritas no exemplo de política a seguir. Se você Conta da AWS tiver [https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AdministratorAccess.html](https://docs.aws.amazon.com//aws-managed-policy/latest/reference/AdministratorAccess.html)permissões, essas permissões serão concedidas por padrão.

------
#### [ 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": "*"
        }
    ]
}
```

------

## Usuários do IAM para administração de cluster
<a name="sagemaker-hyperpod-prerequisites-iam-cluster-admin"></a>

Os administradores de cluster (administradores) operam e configuram SageMaker HyperPod clusters, executando as tarefas em. [SageMaker HyperPod Operações de cluster do Slurm](sagemaker-hyperpod-operate-slurm.md) O exemplo de política a seguir inclui o conjunto mínimo de permissões para administradores de cluster executarem o SageMaker HyperPod núcleo APIs e gerenciarem SageMaker HyperPod clusters em sua AWS conta.

**nota**  
Os usuários do IAM com funções de administrador de cluster podem usar chaves de condição para fornecer controle de acesso granular ao gerenciar recursos de SageMaker HyperPod cluster especificamente para as `UpdateCluster` ações `CreateCluster` e. Para encontrar as chaves de condição suportadas para essas ações, pesquise `CreateCluster` ou `UpdateCluster` nas [Ações definidas pela 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": "*"
        }
    ]
}
```

------

Para conceder permissões para acessar o console de SageMaker IA, use o exemplo de política fornecido em [Permissões necessárias para usar o console Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/security_iam_id-based-policy-examples.html#console-permissions).

Para conceder permissões para acessar o console do Amazon EC2 Systems Manager, use o exemplo de política fornecido [em Usando AWS Systems Manager o](https://docs.aws.amazon.com/systems-manager/latest/userguide/security_iam_id-based-policy-examples.html#security_iam_id-based-policy-examples-console) console no Guia * AWS Systems Manager do usuário*.

Você também pode considerar anexar a [`AmazonSageMakerFullAccess`](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSageMakerFullAccess)política à função; no entanto, observe que a `AmazonSageMakerFullAccess` política concede permissões para todas as chamadas, recursos e recursos da SageMaker API.

Para orientação sobre usuários do IAM em geral, consulte [Usuários do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) no *Guia do usuário do AWS Identity and Access Management *.

## Usuários do IAM para cientistas
<a name="sagemaker-hyperpod-prerequisites-iam-cluster-user"></a>

Cientistas fazem login e executam cargas de trabalho de ML em nós de SageMaker HyperPod cluster provisionados por administradores de cluster. Para cientistas em sua AWS conta, você deve conceder a permissão `"ssm:StartSession"` para executar o `start-session` comando SSM. Veja a seguir um exemplo de política para os usuários do IAM.

------
#### [ Slurm ]

Adicione a política a seguir para conceder permissões de sessão SSM para se conectar a um destino SSM para todos os recursos. Isso permite que você acesse HyperPod clusters.

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

****  

```
{
    "Version":"2012-10-17",		 	 	             
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:StartSession",
                "ssm:TerminateSession"
            ],
            "Resource": "*"    
        }
    ]
}
```

------

------
#### [ Amazon EKS ]

Conceda as seguintes permissões de função do IAM para os cientistas de dados executarem `hyperpod list-clusters` e `hyperpod connect-cluster` comandarem entre os comandos da HyperPod CLI. Para saber mais sobre a HyperPod CLI, consulte. [Execução de trabalhos em SageMaker HyperPod clusters orquestrados pelo Amazon EKS](sagemaker-hyperpod-eks-run-jobs.md) Também inclui permissões de sessão do SSM para se conectar a um destino do SSM para todos os recursos. Isso permite que você acesse HyperPod clusters.

------
#### [ 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": "*"    
        }
    ]
}
```

------

*Para conceder aos cientistas de dados aos usuários ou funções do IAM acesso ao Kubernetes APIs no cluster, consulte também [Conceder aos usuários e funções do IAM acesso ao Kubernetes APIs](https://docs.aws.amazon.com/eks/latest/userguide/grant-k8s-access.html) no Guia do usuário do Amazon EKS.*

------

## Função do IAM para SageMaker HyperPod
<a name="sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod"></a>

Para que SageMaker HyperPod os clusters sejam executados e se comuniquem com AWS os recursos necessários, você precisa criar uma função do IAM para que o HyperPod cluster assuma. 

Comece anexando a função [AWS política gerenciada: AmazonSageMakerHyperPodServiceRolePolicy](security-iam-awsmanpol-AmazonSageMakerHyperPodServiceRolePolicy.md) gerenciada. Com essa política AWS gerenciada, os grupos de instâncias de SageMaker HyperPod cluster assumem a função de se comunicar com a Amazon CloudWatch, o Amazon S3 e o AWS Systems Manager Agent (SSM Agent). Essa política gerenciada é o requisito mínimo para que SageMaker HyperPod os recursos sejam executados adequadamente, então você deve fornecer uma função do IAM com essa política para todos os grupos de instâncias. 

**dica**  
Dependendo da sua preferência em criar o nível de permissões para vários grupos de instâncias, você também pode configurar vários perfis do IAM e anexá-las a diferentes grupos de instâncias. Quando você configura o acesso do usuário do cluster a nós específicos do SageMaker HyperPod cluster, os nós assumem a função com as permissões seletivas que você anexou manualmente.  
Quando você configura o acesso dos cientistas a nós específicos do cluster por meio de [AWS Systems Manager](https://aws.amazon.com/systems-manager/)(veja também [Configurando AWS Systems Manager e executando como para controle de acesso do usuário do cluster](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-ssm)), os nós do cluster assumem a função com as permissões seletivas que você anexa manualmente.

Depois de concluir a criação das funções do IAM, anote seus nomes ARNs e. Você usa as funções ao criar um SageMaker HyperPod cluster, concedendo as permissões corretas necessárias para que cada grupo de instâncias se comunique com AWS os recursos necessários.

------
#### [ Slurm ]

Para HyperPod orquestrar com o Slurm, você deve anexar a seguinte política gerenciada à função do IAM. SageMaker HyperPod 
+ [AmazonSageMakerClusterInstanceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerClusterInstanceRolePolicy.html)

**(Opcional) Permissões adicionais para uso SageMaker HyperPod com a Amazon Virtual Private Cloud**

Se você quiser usar sua própria Amazon Virtual Private Cloud (VPC) em vez da AI SageMaker VPC padrão, você deve adicionar as seguintes permissões adicionais à função do IAM para. 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/*"
    ]
}
```

A lista a seguir detalha quais permissões são necessárias para habilitar as funcionalidades SageMaker HyperPod do cluster quando você configura o cluster com sua própria Amazon VPC.
+ As `ec2` permissões a seguir são necessárias para permitir a configuração de um SageMaker HyperPod cluster com sua VPC.

  ```
  {
      "Effect": "Allow",
      "Action": [
          "ec2:CreateNetworkInterface",
          "ec2:CreateNetworkInterfacePermission",
          "ec2:DeleteNetworkInterface",
          "ec2:DeleteNetworkInterfacePermission",
          "ec2:DescribeNetworkInterfaces",
          "ec2:DescribeVpcs",
          "ec2:DescribeDhcpOptions",
          "ec2:DescribeSubnets",
          "ec2:DescribeSecurityGroups"
      ],
      "Resource": "*"
  }
  ```
+ A `ec2` permissão a seguir é necessária para ativar a [funcionalidade de SageMaker HyperPod retomada automática](sagemaker-hyperpod-resiliency-slurm-auto-resume.md).

  ```
  {
      "Effect": "Allow",
      "Action": [
          "ec2:DetachNetworkInterface"
      ],
      "Resource": "*"
  }
  ```
+ A `ec2` permissão a seguir SageMaker HyperPod permite criar tags nas interfaces de rede da sua conta.

  ```
  {
      "Effect": "Allow",
      "Action": "ec2:CreateTags",
      "Resource": [
          "arn:aws:ec2:*:*:network-interface/*"
      ]
  }
  ```

------
#### [ Amazon EKS ]

Para HyperPod orquestrar com o Amazon EKS, você deve anexar as seguintes políticas gerenciadas à SageMaker HyperPod função do IAM.
+ [AmazonSageMakerClusterInstanceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerClusterInstanceRolePolicy.html)

Além das políticas gerenciadas, anexe a política de permissões a seguir à função.

------
#### [ 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**  
Observe que a permissão `"eks-auth:AssumeRoleForPodIdentity"` é opcional. É necessário se você planeja usar a Identidade de Pods do EKS.

**SageMaker HyperPod função vinculada ao serviço**

Para o suporte do Amazon EKS em SageMaker HyperPod, HyperPod cria uma função vinculada ao serviço [AWS política gerenciada: AmazonSageMakerHyperPodServiceRolePolicy](security-iam-awsmanpol-AmazonSageMakerHyperPodServiceRolePolicy.md) para monitorar e apoiar a resiliência em seu cluster EKS, como substituir nós e reiniciar trabalhos.

**Políticas do IAM adicionais para clusters do Amazon EKS com grupo de instâncias restritas (RIG)**

As workloads executadas em grupos de instâncias restritas dependem do perfil de execução para carregar dados do Amazon S3. Você deve adicionar as permissões adicionais do Amazon S3 ao perfil de execução para que os trabalhos de personalização executados em grupos de instâncias restritas possam buscar adequadamente os dados de entrada.

------
#### [ 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 Criptografia gerenciada pelo cliente para SageMaker HyperPod
<a name="smcluster-cmk"></a>

Por padrão, o volume raiz do Amazon EBS anexado ao seu SageMaker HyperPod cluster é criptografado usando um volume de AWS KMS key propriedade de. AWS Agora você tem a opção de criptografar o volume raiz do Amazon EBS e o volume secundário com chaves do KMS gerenciadas pelo cliente. O tópico a seguir descreve como as chaves gerenciadas pelo cliente (CMKs) funcionam com volumes em HyperPod clusters.

**nota**  
As seguintes exclusões se aplicam ao usar chaves gerenciadas pelo cliente para SageMaker HyperPod clusters:  
A criptografia de chave gerenciada pelo cliente só é permitida em clusters usando o modo de provisionamento contínuo de nós. Não é possível usar chaves gerenciadas pelo cliente em grupos de instâncias restritas.
HyperPod Atualmente, os clusters não oferecem suporte à transmissão de contexto de AWS KMS criptografia em solicitações de criptografia de chave gerenciadas pelo cliente. Portanto, não restrinja o escopo de sua política de chave do KMS usando condições de contexto de criptografia, pois isso impede que o cluster use a chave.
No momento, não é possível a transição de chaves do KMS. Portanto, a chave do KMS especificada na sua configuração não pode ser alterada. Para usar uma chave diferente, crie outro grupo de instâncias com a chave desejada e exclua seu grupo de instâncias antigo.
Atualmente, não há suporte para especificar chaves gerenciadas pelo cliente para HyperPod clusters por meio do console.

## Permissões
<a name="smcluster-cmk-permissions"></a>

Antes de usar sua chave gerenciada pelo cliente com HyperPod, você deve preencher os seguintes pré-requisitos:
+ Certifique-se de que a função de execução AWS do IAM que você está usando para SageMaker IA tenha as seguintes permissões AWS KMS adicionadas. A `[ kms:CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)` permissão permite HyperPod realizar as seguintes ações usando permissões para sua chave KMS:
  + Escalando sua contagem de instâncias (UpdateCluster operações)
  + Adicionando nós de cluster (BatchAddClusterNodes operações)
  + Software de aplicação de patches (UpdateClusterSoftware operações)

  Para ter mais informações sobre como atualizar as permissões do seu perfil do IAM, consulte [Adicionar e remover permissões de identidade do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) no *Guia do usuário do IAM*.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "kms:CreateGrant",
                  "kms:DescribeKey"
              ],
              "Resource": "*"
          }
      ]
  }
  ```

------
+ Adicione as permissões a seguir à política de chave do KMS. Para ter mais informações, consulte [Change a key policy](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html) no *Guia do desenvolvedor do AWS KMS *.

------
#### [ 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"
                  }
              }
          }
      ]
  }
  ```

------

## Como usar sua chave do KMS
<a name="smcluster-cmk-usage"></a>

Você pode especificar suas chaves gerenciadas pelo cliente ao criar ou atualizar um cluster usando as operações de [UpdateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)API [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)e. A estrutura `InstanceStorageConfigs` permite no máximo duas configurações `EbsVolumeConfig`, nas quais você pode configurar o volume raiz do Amazon EBS e, opcionalmente, um volume secundário. É possível usar a mesma chave do KMS ou uma chave do KMS diferente para cada volume, dependendo das suas necessidades.

Você tem as seguintes opções ao especificar uma chave gerenciada pelo cliente para volumes: nenhum volume, ambos ou um ou outro. No entanto, não é possível especificar dois volumes raiz ou dois volumes secundários.

Ao configurar o volume raiz, os seguintes requisitos se aplicam:
+ `RootVolume` deve ser definido como `True`. O valor padrão é `False`, que, em vez disso, configura o volume secundário.
+ O campo `VolumeKmsKeyId` é obrigatório e você deve especificar sua chave gerenciada pelo cliente. Isso ocorre porque o volume raiz sempre deve ser criptografado com uma AWS chave própria ou uma chave gerenciada pelo cliente (se você não especificar a sua própria, uma AWS chave própria será usada).
+ Você não pode especificar o `VolumeSizeInGB` campo para volumes raiz, pois HyperPod determina o tamanho do volume raiz para você.

Ao configurar o volume secundários, os seguintes requisitos se aplicam:
+ `RootVolume` deve ser `False` (o valor padrão desse campo é `False`).
+ O campo `VolumeKmsKeyId` é opcional. É possível usar a mesma chave gerenciada pelo cliente especificada para o volume raiz ou usar uma chave diferente.
+ O campo `VolumeSizeInGB` é obrigatório, pois você deve especificar o tamanho desejado para o volume secundário.

**Importante**  
Ao usar chaves gerenciadas pelo cliente, sugerimos que você utilize chaves diferentes do KMS para cada grupo de instâncias do cluster. Usar a mesma chave gerenciada pelo cliente em vários grupos de instâncias pode dar lugar a permissões contínuas indesejadas, mesmo se você tentar revogar uma concessão. Por exemplo, se você revogar uma AWS KMS concessão para os volumes de um grupo de instâncias, esse grupo de instâncias ainda poderá permitir operações de escalabilidade e correção devido às concessões existentes em outros grupos de instâncias usando a mesma chave. Para evitar esse problema, atribua chaves exclusivas do KMS a cada grupo de instâncias no cluster. Se precisar restringir permissões em grupos de instâncias, você pode experimentar uma das seguintes opções:  
Desabilite a chave do KMS.
Aplique políticas de negação à política de chave do KMS.
Revogue todas as concessões de grupos de instâncias para a chave (em vez de revogar uma única concessão).
Exclua o grupo de instâncias.
Excluir o cluster.

Os exemplos a seguir mostram como especificar chaves gerenciadas pelo cliente para volumes raiz e secundário usando o CreateCluster UpdateCluster APIs e. Esses exemplos mostram somente os campos obrigatórios para a integração de chaves gerenciadas pelo cliente. Para configurar uma chave gerenciada pelo cliente para somente um dos volumes, especifique somente uma `EbsVolumeConfig`.

Para ter mais informações sobre como configurar solicitações de criação e atualização de clusters, consulte [Criação de um SageMaker HyperPod cluster](sagemaker-hyperpod-eks-operate-cli-command-create-cluster.md) e [Atualizando a configuração do SageMaker HyperPod cluster](sagemaker-hyperpod-eks-operate-cli-command-update-cluster.md).

------
#### [ CreateCluster ]

O exemplo a seguir mostra uma AWS CLI solicitação de [criação de cluster com criptografia de](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-cluster.html) chave gerenciada pelo 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 ]

O exemplo a seguir mostra uma AWS CLI solicitação de [cluster de atualização](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) com criptografia de chave gerenciada pelo 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 receitas
<a name="sagemaker-hyperpod-recipes"></a>

As SageMaker HyperPod receitas da Amazon são pilhas de treinamento pré-configuradas fornecidas pela AWS para ajudar você a iniciar rapidamente o treinamento e ajustar modelos básicos (FMs) disponíveis ao público de várias famílias de modelos, como Llama, Mistral, Mixtral ou. DeepSeek As receitas automatizam o ciclo de end-to-end treinamento, incluindo o carregamento de conjuntos de dados, a aplicação de técnicas de treinamento distribuídas e o gerenciamento de pontos de verificação para uma recuperação mais rápida de falhas. 

SageMaker HyperPod as receitas são particularmente benéficas para usuários que talvez não tenham um profundo conhecimento em aprendizado de máquina, pois abstraem grande parte da complexidade envolvida no treinamento de modelos grandes.

Você pode executar receitas dentro SageMaker HyperPod ou como trabalhos SageMaker de treinamento.

As tabelas a seguir são mantidas no SageMaker HyperPod GitHub repositório e fornecem a maioria das up-to-date informações sobre os modelos compatíveis com pré-treinamento e ajuste fino, suas respectivas receitas e scripts de lançamento, tipos de instância compatíveis e muito mais.
+ Para ver a lista mais recente de modelos, fórmulas e scripts de execução compatíveis para o pré-treinamento, consulte a [tabela de pré-treinamento](https://github.com/aws/sagemaker-hyperpod-recipes?tab=readme-ov-file#pre-training).
+ Para ver a lista mais recente de modelos, fórmulas e scripts de lançamento compatíveis para ajuste fino, consulte a [tabela de ajuste fino](https://github.com/aws/sagemaker-hyperpod-recipes?tab=readme-ov-file#fine-tuning).

Para SageMaker HyperPod os usuários, a automação dos fluxos de trabalho de end-to-end treinamento vem da integração do adaptador de treinamento com as SageMaker HyperPod receitas. O adaptador de treinamento é baseado na [ NeMo estrutura NVIDIA](https://docs.nvidia.com/nemo-framework/user-guide/latest/overview.html) e no pacote [Neuronx Distributed](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/libraries/neuronx-distributed/index.html) Training. Se você estiver familiarizado com o uso NeMo, o processo de uso do adaptador de treinamento é o mesmo. O adaptador de treinamento executa a fórmula no seu cluster.

![\[Diagrama mostrando o fluxo de trabalho da SageMaker HyperPod receita. Um ícone de “Receita” na parte superior é alimentado por uma caixa de “lançador de HyperPod receitas”. Essa caixa está associada a uma seção mais ampla chamada “Cluster: Slurm, K8s,...”, que contém três ícones de GPU com arquivos de fórmula correspondentes. A parte inferior da seção do cluster é chamada “Treinar com adaptador HyperPod de treinamento”.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/sagemaker-hyperpod-recipes-overview.png)


Você também pode treinar seu próprio modelo definindo uma fórmula personalizada.

Para começar a usar com um tutorial, consulte [Tutoriais](sagemaker-hyperpod-recipes-tutorials.md).

**Topics**
+ [Tutoriais](sagemaker-hyperpod-recipes-tutorials.md)
+ [Configurações padrão](default-configurations.md)
+ [Configurações específicas de cluster](cluster-specific-configurations.md)
+ [Considerações](cluster-specific-configurations-special-considerations.md)
+ [Configurações avançadas](cluster-specific-configurations-advanced-settings.md)
+ [Apêndice](appendix.md)

# Tutoriais
<a name="sagemaker-hyperpod-recipes-tutorials"></a>

Os seguintes tutoriais de início rápido ajudam você a começar a usar as fórmulas de treinamento:
+ SageMaker HyperPod com Slurm Orchestration
  + Pré-treinamento
    + [HyperPod Tutorial de pré-treinamento (GPU) do cluster Slurm](hyperpod-gpu-slurm-pretrain-tutorial.md)
    + [Tutorial de pré-treinamento de clusters do Slurm no Trainium](hyperpod-trainium-slurm-cluster-pretrain-tutorial.md)
  + Ajuste fino
    + [HyperPod Tutorial do cluster Slurm PEFT-LoRa (GPU)](hyperpod-gpu-slurm-peft-lora-tutorial.md)
    + [HyperPod Tutorial de DPO (GPU) do cluster Slurm](hyperpod-gpu-slurm-dpo-tutorial.md)
+ SageMaker HyperPod com orquestração K8s
  + Pré-treinamento
    + [Tutorial de pré-treinamento de clusters do Kubernetes (GPU)](sagemaker-hyperpod-gpu-kubernetes-cluster-pretrain-tutorial.md)
    + [Tutorial de pré-treinamento de empregos SageMaker de treinamento no Trainium](sagemaker-hyperpod-trainium-sagemaker-training-jobs-pretrain-tutorial.md)
+ SageMaker empregos de treinamento
  + Pré-treinamento
    + [SageMaker tutorial de pré-treinamento (GPU) de trabalhos de treinamento](sagemaker-hyperpod-gpu-sagemaker-training-jobs-pretrain-tutorial.md)
    + [Tutorial de pré-treinamento de empregos SageMaker de treinamento no Trainium](sagemaker-hyperpod-trainium-sagemaker-training-jobs-pretrain-tutorial.md)

# HyperPod Tutorial de pré-treinamento (GPU) do cluster Slurm
<a name="hyperpod-gpu-slurm-pretrain-tutorial"></a>

O tutorial a seguir configura o ambiente do Slurm e inicia uma tarefa de treinamento em um modelo Llama com 8 bilhões de parâmetros.

**Pré-requisitos**  
Antes de começar a configurar seu ambiente para executar a fórmula, você deve:  
Configure um cluster HyperPod GPU Slurm.  
Seu cluster HyperPod Slurm deve ter o Nvidia Enroot e o Pyxis habilitados (eles são habilitados por padrão).
Ter um local de armazenamento compartilhado. Pode ser um sistema de FSx arquivos da Amazon ou um sistema NFS acessível a partir dos nós do cluster.
Ter dados em um dos seguintes formatos:  
JSON
JSONGZ (JSON compactado)
ARROW
(Opcional) Você deve receber uma HuggingFace ficha se estiver usando os pesos do modelo HuggingFace para pré-treinamento ou ajuste fino. Para ter mais informações sobre como obter o token, consulte [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## HyperPod Configuração do ambiente GPU Slurm
<a name="hyperpod-gpu-slurm-environment-setup"></a>

Para iniciar um trabalho de treinamento em um cluster HyperPod GPU Slurm, faça o seguinte:

1. Use SSH no nó cabeça do cluster.

1. Depois de fazer login, configure o ambiente virtual. Você deve usar o Python 3.9 ou posterior.

   ```
   #set up a virtual environment
   python3 -m venv ${PWD}/venv
   source venv/bin/activate
   ```

1. Clone as SageMaker HyperPod receitas e os repositórios SageMaker HyperPod do adaptador em um local de armazenamento compartilhado.

   ```
   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. Crie um arquivo squash usando o Enroot. Para encontrar a versão mais recente do contêiner da SMP, consulte[Notas de lançamento da biblioteca de SageMaker paralelismo de modelos](model-parallel-release-notes.md). Para obter uma compreensão mais profunda de como usar o arquivo Enroot, consulte Imagem [AWS otimizada para compilação do Nemo-Launcher](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. Para usar o arquivo squash do Enroot para iniciar o treinamento, use o exemplo a seguir para modificar o arquivo `recipes_collection/config.yaml`.

   ```
   container: /fsx/path/to/your/smdistributed-modelparallel.sqsh
   ```

## Iniciar a tarefa de treinamento
<a name="hyperpod-gpu-slurm-launch-training-job"></a>

Depois de instalar as dependências, inicie uma tarefa de treinamento no diretório `sagemaker-hyperpod-recipes/launcher_scripts`. Você obtém as dependências clonando o repositório de [SageMaker HyperPod receitas](https://github.com/aws/sagemaker-hyperpod-recipes):

Primeiro, escolha sua fórmula de treinamento no GitHub. O nome do modelo é especificado como parte da fórmula. Usamos o script `launcher_scripts/llama/run_hf_llama3_8b_seq16k_gpu_p5x16_pretrain.sh` para executar o Llama 8b usando uma fórmula de pré-treinamento com um tamanho de sequência de 8.192, `llama/hf_llama3_8b_seq16k_gpu_p5x16_pretrain`, no exemplo a seguir.
+ `IMAGE`: o contêiner da seção de configuração do ambiente.
+ (Opcional) Você pode fornecer o HuggingFace token se precisar de pesos pré-treinados HuggingFace definindo o seguinte par de valores-chave:

  ```
  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"
```

Depois de configurar todos os parâmetros necessários no script de execução, você pode executar o script usando o comando a seguir.

```
bash launcher_scripts/llama/run_hf_llama3_8b_seq16k_gpu_p5x16_pretrain.sh
```

Para ter mais informações sobre como configurar um cluster do Slurm, consulte [Executando um trabalho de treinamento no HyperPod Slurm](cluster-specific-configurations-run-training-job-hyperpod-slurm.md).

# Tutorial de pré-treinamento de clusters do Slurm no Trainium
<a name="hyperpod-trainium-slurm-cluster-pretrain-tutorial"></a>

O tutorial a seguir configura um ambiente Trainium em um cluster do Slurm e inicia uma tarefa de treinamento em um modelo Llama de 8 bilhões de parâmetros.

**Pré-requisitos**  
Antes de começar a configurar seu ambiente, você deve:  
Configure um cluster SageMaker HyperPod Trainium Slurm.
Ter um local de armazenamento compartilhado. Pode ser um sistema de FSx arquivos Amazon ou um sistema NFS acessível a partir dos nós do cluster.
Ter dados em um dos seguintes formatos:  
JSON
JSONGZ (JSON compactado)
ARROW
(Opcional) Você deve receber uma HuggingFace ficha se estiver usando os pesos do modelo HuggingFace para pré-treinamento ou ajuste fino. Para ter mais informações sobre como obter o token, consulte [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## Configurar o ambiente Trainium no cluster do Slurm
<a name="hyperpod-trainium-slurm-cluster-pretrain-setup-trainium-environment"></a>

Para iniciar uma tarefa de treinamento em um cluster do Slurm, faça o seguinte:
+ Use SSH no nó cabeça do cluster.
+ Depois de fazer login, configure o ambiente Neuron. Para ter informações sobre como configurar o Neuron, consulte as [etapas de configuração do Neuron](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/libraries/nxd-training/tutorials/hf_llama3_8B_SFT.html#setting-up-the-environment). Recomendamos contar com as AMIs de deep learning que vêm pré-instaladas com os drivers do Neuron, como o [Ubuntu 20 com DLAMI do 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).
+ Clone o repositório de SageMaker HyperPod receitas em um local de armazenamento compartilhado no cluster. O local de armazenamento compartilhado pode ser um sistema de FSx arquivos Amazon ou um sistema NFS acessível a partir dos nós do cluster.

  ```
  git clone --recursive https://github.com/aws/sagemaker-hyperpod-recipes.git
  cd sagemaker-hyperpod-recipes
  pip3 install -r requirements.txt
  ```
+ Siga o seguinte tutorial: [HuggingFace Llama3-8B](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/libraries/nxd-training/tutorials/hf_llama3_8B_pretraining.html#) Pretraining
+ Prepare uma configuração do modelo. As configurações do modelo estão disponíveis no repositório do Neuron. Com relação à configuração do modelo usada neste tutorial, consulte a [configuração do modelo llama3 8b](https://github.com/aws-neuron/neuronx-distributed/blob/main/examples/training/llama/tp_zero1_llama_hf_pretrain/8B_config_llama3/config.json).

## Iniciar a tarefa de treinamento no Trainium
<a name="hyperpod-trainium-slurm-cluster-pretrain-launch-training-job-trainium"></a>

Para iniciar uma tarefa de treinamento no Trainium, especifique uma configuração de cluster e uma fórmula do Neuron. Por exemplo, para iniciar uma tarefa de pré-treinamento do llama3 8b no Trainium, defina o script de execução `launcher_scripts/llama/run_hf_llama3_8b_seq8k_trn1x4_pretrain.sh` como o seguinte:
+ `MODEL_CONFIG`: a configuração do modelo na seção de configuração do ambiente.
+ (Opcional) Você pode fornecer o HuggingFace token se precisar de pesos pré-treinados HuggingFace definindo o seguinte par de valores-chave:

  ```
  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"
```

Para iniciar a tarefa de treinamento, execute o seguinte comando:

```
bash launcher_scripts/llama/run_hf_llama3_8b_seq8k_trn1x4_pretrain.sh
```

Para ter mais informações sobre como configurar um cluster do Slurm, consulte [Executando um trabalho de treinamento no HyperPod Slurm](cluster-specific-configurations-run-training-job-hyperpod-slurm.md).

# HyperPod Tutorial de DPO (GPU) do cluster Slurm
<a name="hyperpod-gpu-slurm-dpo-tutorial"></a>

O tutorial a seguir configura um ambiente do Slurm e inicia um trabalho de otimização direta de preferências (DPO) em um modelo Llama com 8 bilhões de parâmetros.

**Pré-requisitos**  
Antes de começar a configurar seu ambiente, você deve:  
Configurar o cluster HyperPod GPU Slurm  
Seu cluster HyperPod Slurm deve ter o Nvidia Enroot e o Pyxis habilitados (eles são habilitados por padrão).
Ter um local de armazenamento compartilhado. Pode ser um sistema de FSx arquivos Amazon ou um sistema NFS acessível a partir dos nós do cluster.
Ter um conjunto de dados de preferência binária tokenizada em um dos seguintes formatos:  
JSON
JSONGZ (JSON compactado)
ARROW
(Opcional) Se você precisar de pesos pré-treinados HuggingFace ou estiver treinando um modelo Llama 3.2, deverá obter o HuggingFace token antes de começar a treinar. Para ter mais informações sobre como obter o token, consulte [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## Configurar o ambiente HyperPod GPU Slurm
<a name="hyperpod-gpu-slurm-dpo-hyperpod-gpu-slurm-environment"></a>

Para iniciar uma tarefa de treinamento em um cluster do Slurm, faça o seguinte:
+ Use SSH no nó cabeça do cluster.
+ Depois de fazer login, configure o ambiente virtual. Você deve usar o Python 3.9 ou posterior.

  ```
  #set up a virtual environment
  python3 -m venv ${PWD}/venv
  source venv/bin/activate
  ```
+ Clone as SageMaker HyperPod receitas e os repositórios SageMaker HyperPod do adaptador em um local de armazenamento compartilhado. O local de armazenamento compartilhado pode ser um sistema de FSx arquivos Amazon ou um sistema NFS acessível a partir dos nós do 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
  ```
+ Crie um arquivo squash usando o Enroot. Para encontrar a versão mais recente do contêiner da SMP, consulte[Notas de lançamento da biblioteca de SageMaker paralelismo de modelos](model-parallel-release-notes.md). Para obter mais informações sobre como usar o arquivo Enroot, consulte Imagem [AWS otimizada para compilação do Nemo-Launcher](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>"
  ```
+ Para usar o arquivo squash do Enroot para iniciar o treinamento, use o exemplo a seguir para modificar o arquivo `recipes_collection/config.yaml`.

  ```
  container: /fsx/path/to/your/smdistributed-modelparallel.sqsh
  ```

## Iniciar a tarefa de treinamento
<a name="hyperpod-gpu-slurm-dpo-launch-training-job"></a>

Para iniciar um trabalho de DPO para o modelo Llama de 8 bilhões de parâmetros com um comprimento de sequência de 8.192 em um único nó de computação do Slurm, defina o script de execução `launcher_scripts/llama/run_hf_llama3_8b_seq8k_gpu_dpo.sh` como o seguinte:
+ `IMAGE`: o contêiner da seção de configuração do ambiente.
+ `HF_MODEL_NAME_OR_PATH`: defina o nome ou o caminho dos pesos pré-treinados no parâmetro hf\$1model\$1name\$1or\$1path da fórmula.
+ (Opcional) Você pode fornecer o HuggingFace token se precisar de pesos pré-treinados HuggingFace definindo o seguinte par de valores-chave:

  ```
  recipes.model.hf_access_token=${HF_ACCESS_TOKEN}
  ```

**nota**  
O modelo de referência usado para DPO nessa configuração é derivado automaticamente do modelo de base que está sendo treinado (nenhum modelo de referência diferente é definido explicitamente). Os hiperparâmetros específicos de DPO são pré-configurados com os seguintes valores padrão:  
`beta`: 0,1 (controla a força da regularização da divergência de KL).
`label_smoothing`: 0,0 (nenhuma uniformização é aplicada aos rótulos de preferência).

```
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}$" \
```

Depois de configurar todos os parâmetros necessários no script anterior, você pode começar a executar a tarefa de treinamento.

```
bash launcher_scripts/llama/run_hf_llama3_8b_seq8k_gpu_dpo.sh
```

Para ter mais informações sobre como configurar um cluster do Slurm, consulte [Executando um trabalho de treinamento no HyperPod Slurm](cluster-specific-configurations-run-training-job-hyperpod-slurm.md).

# HyperPod Tutorial do cluster Slurm PEFT-LoRa (GPU)
<a name="hyperpod-gpu-slurm-peft-lora-tutorial"></a>

O tutorial a seguir configura o ambiente do Slurm e inicia um trabalho de ajuste fino com eficiência de parâmetros (PEFT) em um modelo Llama com 8 bilhões de parâmetros.

**Pré-requisitos**  
Antes de começar a configurar seu ambiente, você deve:  
Configurar o cluster HyperPod GPU Slurm  
Seu cluster HyperPod Slurm deve ter o Nvidia Enroot e o Pyxis habilitados (eles são habilitados por padrão).
Ter um local de armazenamento compartilhado. Pode ser um sistema de FSx arquivos Amazon ou um sistema NFS acessível a partir dos nós do cluster.
Ter dados em um dos seguintes formatos:  
JSON
JSONGZ (JSON compactado)
ARROW
(Opcional) Se você precisar de pesos pré-treinados HuggingFace ou estiver treinando um modelo Llama 3.2, deverá obter o HuggingFace token antes de começar a treinar. Para ter mais informações sobre como obter o token, consulte [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## Configurar o ambiente HyperPod GPU Slurm
<a name="hyperpod-gpu-slurm-peft-lora-setup-hyperpod-gpu-slurm-environment"></a>

Para iniciar uma tarefa de treinamento em um cluster do Slurm, faça o seguinte:
+ Use SSH no nó cabeça do cluster.
+ Depois de fazer login, configure o ambiente virtual. Você deve usar o Python 3.9 ou posterior.

  ```
  #set up a virtual environment
  python3 -m venv ${PWD}/venv
  source venv/bin/activate
  ```
+ Clone as SageMaker HyperPod receitas e os repositórios SageMaker HyperPod do adaptador em um local de armazenamento compartilhado. O local de armazenamento compartilhado pode ser um sistema de FSx arquivos Amazon ou um sistema NFS acessível a partir dos nós do 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
  ```
+ Crie um arquivo squash usando o Enroot. Para encontrar a versão mais recente do contêiner da SMP, consulte[Notas de lançamento da biblioteca de SageMaker paralelismo de modelos](model-parallel-release-notes.md). Para obter mais informações sobre como usar o arquivo Enroot, consulte Imagem [AWS otimizada para compilação do Nemo-Launcher](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>"
  ```
+ Para usar o arquivo squash do Enroot para iniciar o treinamento, use o exemplo a seguir para modificar o arquivo `recipes_collection/config.yaml`.

  ```
  container: /fsx/path/to/your/smdistributed-modelparallel.sqsh
  ```

## Iniciar a tarefa de treinamento
<a name="hyperpod-gpu-slurm-peft-lora-launch-training-job"></a>

Para iniciar uma tarefa de PEFT para o modelo Llama com 8 bilhões de parâmetros com um comprimento de sequência de 8.192 em um único nó de computação do Slurm, defina o script de execução `launcher_scripts/llama/run_hf_llama3_8b_seq8k_gpu_lora.sh` como o seguinte:
+ `IMAGE`: o contêiner da seção de configuração do ambiente.
+ `HF_MODEL_NAME_OR_PATH`: defina o nome ou o caminho dos pesos pré-treinados no parâmetro hf\$1model\$1name\$1or\$1path da fórmula.
+ (Opcional) Você pode fornecer o HuggingFace token se precisar de pesos pré-treinados HuggingFace definindo o seguinte par de valores-chave:

  ```
  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}"
```

Depois de configurar todos os parâmetros necessários no script anterior, você pode começar a executar a tarefa de treinamento.

```
bash launcher_scripts/llama/run_hf_llama3_8b_seq8k_gpu_lora.sh
```

Para ter mais informações sobre como configurar um cluster do Slurm, consulte [Executando um trabalho de treinamento no HyperPod Slurm](cluster-specific-configurations-run-training-job-hyperpod-slurm.md).

# Tutorial de pré-treinamento de clusters do Kubernetes (GPU)
<a name="sagemaker-hyperpod-gpu-kubernetes-cluster-pretrain-tutorial"></a>

Há duas maneiras de iniciar uma tarefa de treinamento em um cluster de GPU do Kubernetes:
+ Ferramenta de linha de [HyperPod comando](https://github.com/aws/sagemaker-hyperpod-cli) (recomendada)
+ O lançador NeMo de estilo

**Pré-requisitos**  
Antes de começar a configurar seu ambiente, você deve:  
Um cluster de HyperPod GPU Kubernetes está configurado corretamente.
Ter um local de armazenamento compartilhado. Pode ser um sistema de FSx arquivos Amazon ou um sistema NFS acessível a partir dos nós do cluster.
Ter dados em um dos seguintes formatos:  
JSON
JSONGZ (JSON compactado)
ARROW
(Opcional) Você deve receber uma HuggingFace ficha se estiver usando os pesos do modelo HuggingFace para pré-treinamento ou ajuste fino. Para ter mais informações sobre como obter o token, consulte [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## Configuração do ambiente de GPU do Kubernetes
<a name="sagemaker-hyperpod-gpu-kubernetes-environment-setup"></a>

Para configurar um ambiente de GPU do Kubernetes, faça o seguinte:
+ Configure um ambiente virtual. Você deve usar o Python 3.9 ou posterior.

  ```
  python3 -m venv ${PWD}/venv
  source venv/bin/activate
  ```
+ Instale as dependências usando um dos seguintes métodos:
  + (Recomendado): método de [ferramenta HyperPod de linha de comando](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 método de receitas:

    ```
    # install SageMaker HyperPod Recipes.
    git clone --recursive git@github.com:aws/sagemaker-hyperpod-recipes.git
    cd sagemaker-hyperpod-recipes
    pip3 install -r requirements.txt
    ```
+ [Configure o kubectl e o eksctl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html).
+ [Instale o Helm](https://helm.sh/docs/intro/install/).
+ Conecte-se ao cluster do Kubernetes.

  ```
  aws eks update-kubeconfig --region "CLUSTER_REGION" --name "CLUSTER_NAME"
  hyperpod connect-cluster --cluster-name "CLUSTER_NAME" [--region "CLUSTER_REGION"] [--namespace <namespace>]
  ```

## Inicie o trabalho de treinamento com a SageMaker HyperPod CLI
<a name="sagemaker-hyperpod-gpu-kubernetes-launch-training-job-cli"></a>

Recomendamos usar a ferramenta de interface SageMaker HyperPod de linha de comando (CLI) para enviar seu trabalho de treinamento com suas configurações. O exemplo a seguir envia uma tarefa de treinamento ao modelo `hf_llama3_8b_seq16k_gpu_p5x16_pretrain`.
+ `your_training_container`: contêiner de deep learning. Para encontrar a versão mais recente do contêiner da SMP, consulte[Notas de lançamento da biblioteca de SageMaker paralelismo de modelos](model-parallel-release-notes.md).
+ (Opcional) Você pode fornecer o HuggingFace token se precisar de pesos pré-treinados HuggingFace definindo o seguinte par de valores-chave:

  ```
  "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"
}'
```

Depois de enviar uma tarefa de treinamento, você pode usar o comando a seguir para verificar se a enviou com êxito.

```
kubectl get pods
NAME                             READY   STATUS             RESTARTS        AGE
hf-llama3-<your-alias>-worker-0   0/1     running         0               36s
```

Se o `STATUS` for `PENDING` ou `ContainerCreating`, execute o comando a seguir para obter mais detalhes.

```
kubectl describe pod name_of_pod
```

Depois que o `STATUS` da tarefa mudar para `Running`, você poderá examinar o log usando o comando a seguir.

```
kubectl logs name_of_pod
```

O `STATUS` muda para `Completed` quando você executa `kubectl get pods`.

## Iniciar a tarefa de treinamento com o inicializador de fórmulas
<a name="sagemaker-hyperpod-gpu-kubernetes-launch-training-job-recipes"></a>

Como alternativa, você pode usar as SageMaker HyperPod receitas para enviar seu trabalho de treinamento. Para usar as fórmulas, é necessário atualizar o `k8s.yaml` e o `config.yaml` e utilizar o script de execução.
+ No `k8s.yaml`, atualize `persistent_volume_claims`. Ele monta a FSx reivindicação da Amazon no `/data` diretório de cada pod de computação

  ```
  persistent_volume_claims:
    - claimName: fsx-claim
      mountPath: data
  ```
+ No `config.yaml`, atualize `repo_url_or_path` em `git`.

  ```
  git:
    repo_url_or_path: <training_adapter_repo>
    branch: null
    commit: null
    entry_script: null
    token: null
  ```
+ Atualizar as `launcher_scripts/llama/run_hf_llama3_8b_seq16k_gpu_p5x16_pretrain.sh`
  + `your_contrainer`: contêiner de deep learning. Para encontrar a versão mais recente do contêiner da SMP, consulte[Notas de lançamento da biblioteca de SageMaker paralelismo de modelos](model-parallel-release-notes.md).
  + (Opcional) Você pode fornecer o HuggingFace token se precisar de pesos pré-treinados HuggingFace definindo o seguinte par de valores-chave:

    ```
    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
  ```
+ Iniciar a tarefa de treinamento

  ```
  bash launcher_scripts/llama/run_hf_llama3_8b_seq16k_gpu_p5x16_pretrain.sh
  ```

Depois de enviar a tarefa de treinamento, você pode usar o comando a seguir para verificar se a enviou com êxito.

```
kubectl get pods
```

```
NAME READY   STATUS             RESTARTS        AGE
hf-llama3-<your-alias>-worker-0   0/1     running         0               36s
```

Se o `STATUS` for `PENDING` ou `ContainerCreating`, execute o comando a seguir para obter mais detalhes.

```
kubectl describe pod <name-of-pod>
```

Depois que o `STATUS` da tarefa mudar para `Running`, você poderá examinar o log usando o comando a seguir.

```
kubectl logs name_of_pod
```

O `STATUS` mudará para `Completed` quando você executar `kubectl get pods`.

Para ter mais informações sobre a configuração de clusters do K8s, consulte [Executando um trabalho de treinamento no HyperPod k8s](cluster-specific-configurations-run-training-job-hyperpod-k8s.md).

# Tutorial de pré-treinamento de clusters do Kubernetes no Trainium
<a name="sagemaker-hyperpod-trainium-kubernetes-cluster-pretrain-tutorial"></a>

É possível usar um dos métodos a seguir para iniciar uma tarefa de treinamento em um cluster do Kubernetes no Trainium.
+ Ferramenta de linha de [HyperPod comando](https://github.com/aws/sagemaker-hyperpod-cli) (recomendada)
+ O lançador NeMo de estilo

**Pré-requisitos**  
Antes de começar a configurar seu ambiente, você deve:  
Configurar um cluster HyperPod Trainium Kubernetes
Um local de armazenamento compartilhado que pode ser um sistema de FSx arquivos Amazon ou um sistema NFS acessível a partir dos nós do cluster.
Ter dados em um dos seguintes formatos:  
JSON
JSONGZ (JSON compactado)
ARROW
(Opcional) Você deve receber uma HuggingFace ficha se estiver usando os pesos do modelo HuggingFace para pré-treinamento ou ajuste fino. Para ter mais informações sobre como obter o token, consulte [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## Configurar um ambiente do Kubernetes no Trainium
<a name="sagemaker-hyperpod-trainium-setup-trainium-kubernetes-environment"></a>

Para configurar o ambiente do Kubernetes no Trainium, faça o seguinte:

1. **Conclua as etapas do seguinte tutorial: [Pré-treinamento do HuggingFace Llama3-8B](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/libraries/nxd-training/tutorials/hf_llama3_8B_pretraining.html#download-the-dataset) a partir de Baixar o conjunto de dados.** 

1. Prepare uma configuração do modelo. Os modelos estão disponíveis no repositório do Neuron. Para este tutorial, use a configuração do modelo llama3 8b.

1. Configuração do ambiente virtual. Você deve usar o Python 3.9 ou posterior.

   ```
   python3 -m venv ${PWD}/venv
   source venv/bin/activate
   ```

1. Instale as dependências.
   + (Recomendado) Use a seguinte ferramenta de HyperPod linha de comando

     ```
     # install HyperPod command line tools
     git clone https://github.com/aws/sagemaker-hyperpod-cli
     cd sagemaker-hyperpod-cli
     pip3 install .
     ```
   + Se você estiver usando SageMaker HyperPod receitas, especifique o seguinte

     ```
     # 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. [Configure o kubectl e o eksctl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html).

1. [Instale o Helm](https://helm.sh/docs/intro/install/).

1. Conecte-se ao cluster do Kubernetes.

   ```
   aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}"
   hyperpod connect-cluster --cluster-name "${CLUSTER_NAME}" [--region "${CLUSTER_REGION}"] [--namespace <namespace>]
   ```

1. Contêiner: o [contêiner do Neuron](https://github.com/aws-neuron/deep-learning-containers?tab=readme-ov-file#pytorch-training-neuronx)

## Inicie o trabalho de treinamento com a SageMaker HyperPod CLI
<a name="sagemaker-hyperpod-trainium-launch-training-job-cli"></a>

Recomendamos usar a ferramenta de interface SageMaker HyperPod de linha de comando (CLI) para enviar seu trabalho de treinamento com suas configurações. O exemplo a seguir envia uma tarefa de treinamento ao modelo `hf_llama3_8b_seq8k_trn1x4_pretrain` do Trainium.
+ `your_neuron_container`: o [contêiner do Neuron](https://github.com/aws-neuron/deep-learning-containers?tab=readme-ov-file#pytorch-training-neuronx).
+ `your_model_config`: a configuração do modelo na seção de configuração do ambiente.
+ (Opcional) Você pode fornecer o HuggingFace token se precisar de pesos pré-treinados HuggingFace definindo o seguinte par de valores-chave:

  ```
  "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>"
}'
```

Depois de enviar uma tarefa de treinamento, você pode usar o comando a seguir para verificar se a enviou com êxito.

```
kubectl get pods
NAME                              READY   STATUS             RESTARTS        AGE
hf-llama3-<your-alias>-worker-0   0/1     running         0               36s
```

Se o `STATUS` for `PENDING` ou `ContainerCreating`, execute o comando a seguir para obter mais detalhes.

```
kubectl describe pod name_of_pod
```

Depois que o `STATUS` da tarefa mudar para `Running`, você poderá examinar o log usando o comando a seguir.

```
kubectl logs name_of_pod
```

O `STATUS` mudará para `Completed` quando você executar `kubectl get pods`.

## Iniciar a tarefa de treinamento com o inicializador de fórmulas
<a name="sagemaker-hyperpod-trainium-launch-training-job-recipes"></a>

Como alternativa, use SageMaker HyperPod receitas para enviar seu trabalho de treinamento. Para enviar a tarefa de treinamento usando uma fórmula, atualize `k8s.yaml` e `config.yaml`. Execute o script Bash do modelo para iniciá-lo.
+ Em`k8s.yaml`, atualize persistent\$1volume\$1claims para montar a declaração da FSx Amazon no diretório /data nos nós de computação

  ```
  persistent_volume_claims:
    - claimName: fsx-claim
      mountPath: data
  ```
+ Atualize o launcher\$1 \$1hf\$1llama3\$18b\$1seq8k\$1trn1x4\$1pretrain.sh scripts/llama/run
  + `your_neuron_contrainer`: o contêiner da seção de configuração do ambiente.
  + `your_model_config`: a configuração do modelo na seção de configuração do ambiente.

  (Opcional) Você pode fornecer o HuggingFace token se precisar de pesos pré-treinados HuggingFace definindo o seguinte par de valores-chave:

  ```
  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
  ```
+ Iniciar a tarefa

  ```
  bash launcher_scripts/llama/run_hf_llama3_8b_seq8k_trn1x4_pretrain.sh
  ```

Depois de enviar uma tarefa de treinamento, você pode usar o comando a seguir para verificar se a enviou com êxito.

```
kubectl get pods
NAME                             READY   STATUS             RESTARTS        AGE
hf-llama3-<your-alias>-worker-0   0/1     running         0               36s
```

Se o `STATUS` estiver como `PENDING` ou `ContainerCreating`, execute o comando a seguir para obter mais detalhes.

```
kubectl describe pod name_of_pod
```

Depois que o STATUS da tarefa mudar para Running, você poderá examinar o log usando o comando a seguir.

```
kubectl logs name_of_pod
```

O `STATUS` mudará para `Completed` quando você executar `kubectl get pods`.

Para ter mais informações sobre a configuração de clusters do K8s, consulte [Tutorial de pré-treinamento de clusters do Kubernetes no Trainium](#sagemaker-hyperpod-trainium-kubernetes-cluster-pretrain-tutorial).

# SageMaker tutorial de pré-treinamento (GPU) de trabalhos de treinamento
<a name="sagemaker-hyperpod-gpu-sagemaker-training-jobs-pretrain-tutorial"></a>

Este tutorial orienta você pelo processo de configuração e execução de um trabalho de pré-treinamento usando trabalhos de treinamento com SageMaker instâncias de GPU.
+ Configure o ambiente.
+ Inicie um trabalho de treinamento usando SageMaker HyperPod receitas

Antes de começar, verifique se você atendeu aos pré-requisitos a seguir.

**Pré-requisitos**  
Antes de começar a configurar seu ambiente, você deve:  
Sistema de FSx arquivos da Amazon ou um bucket do Amazon S3 onde você pode carregar os dados e gerar os artefatos de treinamento.
Solicitou uma cota de serviço para 1x ml.p4d.24xlarge e 1x ml.p5.48xlarge na Amazon AI. SageMaker Para solicitar um aumento da cota de serviço, você pode seguir um dos seguintes procedimentos:  
No console AWS Service Quotas, navegue até AWS services,
Escolha **Amazon SageMaker AI**.
Escolha uma instância ml.p4d.24xlarge e uma instância ml.p5.48xlarge.
Crie uma função AWS Identity and Access Management(IAM) com as seguintes políticas gerenciadas para dar permissões à SageMaker IA para executar os exemplos.  
AmazonSageMakerFullAccess
Amazon EC2 FullAccess
Ter dados em um dos seguintes formatos:  
JSON
JSONGZ (JSON compactado)
ARROW
(Opcional) Você deve receber uma HuggingFace ficha se estiver usando os pesos do modelo HuggingFace para pré-treinamento ou ajuste fino. Para ter mais informações sobre como obter o token, consulte [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## Configuração do ambiente de trabalhos SageMaker de treinamento em GPU
<a name="sagemaker-hyperpod-gpu-sagemaker-training-jobs-environment-setup"></a>

Antes de executar um trabalho SageMaker de treinamento, configure suas AWS credenciais e sua região preferencial executando o `aws configure` comando. Como alternativa ao comando configure, você pode fornecer suas credenciais por meio de variáveis de ambiente como`AWS_ACCESS_KEY_ID`,, e `AWS_SESSION_TOKEN.` Para obter mais informações`AWS_SECRET_ACCESS_KEY`, consulte SDK para [SageMaker AI Python](https://github.com/aws/sagemaker-python-sdk).

É altamente recomendável usar um notebook SageMaker AI Jupyter em SageMaker IA JupyterLab para iniciar um trabalho de SageMaker treinamento. Para obter mais informações, consulte [SageMaker JupyterLab](studio-updated-jl.md).
+ (Opcional) Configure o ambiente virtual e as dependências. Se você estiver usando um notebook Jupyter no Amazon SageMaker Studio, você pode pular esta etapa. Você deve usar o Python 3.9 ou posterior.

  ```
  # 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>
  ```
+ Instale o SageMaker SDK AI Python

  ```
  pip3 install --upgrade sagemaker
  ```
+ `Container`: o contêiner da GPU é definido automaticamente pelo SDK do SageMaker AI Python. Você também pode fornecer seu próprio contêiner.
**nota**  
Se você estiver executando uma tarefa de treinamento multimodal do Llama 3.2, a versão dos `transformers` deve ser `4.45.2 ` ou posterior.

  Adicione `transformers==4.45.2` a `requirements.txt` entrada `source_dir` somente quando estiver usando o SDK AI SageMaker Python. Por exemplo, anexe-o se você o estiver usando em um notebook em SageMaker IA. JupyterLab

  Se você estiver usando HyperPod receitas para iniciar usando o tipo de cluster`sm_jobs`, isso será feito automaticamente.

## Iniciar a tarefa de treinamento usando um caderno Jupyter
<a name="sagemaker-hyperpod-gpu-sagemaker-training-jobs-launch-training-job-notebook"></a>

Você pode usar o código Python a seguir para executar um trabalho de SageMaker treinamento com sua receita. Ele usa o PyTorch estimador do [SDK AI SageMaker Python](https://sagemaker.readthedocs.io/en/stable/) para enviar a receita. O exemplo a seguir lança a receita llama3-8b na plataforma de treinamento de IA. 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)
```

O código anterior cria um objeto PyTorch estimador com a receita de treinamento e, em seguida, ajusta o modelo usando o método. `fit()` Use o parâmetro training\$1recipe para especificar a fórmula que você deseja usar para treinamento.

**nota**  
Se você estiver executando uma tarefa de treinamento multimodal do Llama 3.2, a versão dos transformadores deve ser 4.45.2 ou posterior.

Adicione `transformers==4.45.2` a `requirements.txt` entrada `source_dir` somente quando estiver usando o AI SageMaker Python SDK diretamente. Por exemplo, você deve acrescentar a versão ao arquivo de texto quando estiver usando um caderno Jupyter.

Ao implantar o endpoint para um trabalho de SageMaker treinamento, você deve especificar o URI da imagem que está usando. Se não fornecer o URI da imagem, o estimador usará a imagem de treinamento como imagem para a implantação. As imagens de treinamento SageMaker HyperPod fornecidas não contêm as dependências necessárias para inferência e implantação. Veja abaixo um exemplo de como uma imagem de inferência pode ser usada para implantação:

```
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**  
A execução do código anterior na instância do notebook Sagemaker pode precisar de mais do que os 5 GB de armazenamento padrão que a IA fornece. SageMaker JupyterLab Se você se deparar com problemas de espaço não disponível, crie uma instância de caderno em que você use outra instância de caderno e aumente o armazenamento do caderno.

## Iniciar a tarefa de treinamento com o inicializador de fórmulas
<a name="sagemaker-hyperpod-gpu-sagemaker-training-jobs-launch-training-job-recipes"></a>

Atualize o método no arquivo `./recipes_collection/cluster/sm_jobs.yaml` para que fique como se segue:

```
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>"
```

Atualize o `./recipes_collection/config.yaml` para especificar `sm_jobs` em `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.
```

Inicie o trabalho com o seguinte comando:

```
python3 main.py --config-path recipes_collection --config-name config
```

Para obter mais informações sobre como configurar trabalhos de SageMaker treinamento, consulte Executar um trabalho de treinamento em trabalhos SageMaker de treinamento.

# Tutorial de pré-treinamento de empregos SageMaker de treinamento no Trainium
<a name="sagemaker-hyperpod-trainium-sagemaker-training-jobs-pretrain-tutorial"></a>

Este tutorial orienta você pelo processo de configuração e execução de um trabalho de pré-treinamento usando trabalhos de treinamento com SageMaker instâncias do AWS Trainium.
+ Configure o ambiente.
+ Iniciar uma tarefa de treinamento

Antes de começar, verifique se você atendeu aos pré-requisitos a seguir.

**Pré-requisitos**  
Antes de começar a configurar seu ambiente, você deve:  
Sistema de FSx arquivos Amazon ou bucket S3 onde você pode carregar os dados e gerar os artefatos de treinamento.
Solicite uma cota de serviço para a `ml.trn1.32xlarge` instância na Amazon SageMaker AI. Para solicitar um aumento da cota de serviço, você pode seguir um dos seguintes procedimentos:  
Navegue até o AWS console Service Quotas.
Escolha AWS serviços.
Selecione JupyterLab.
Especifique 1 instância para `ml.trn1.32xlarge`.
Crie uma função AWS Identity and Access Management (IAM) com as `AmazonSageMakerFullAccess` políticas `AmazonEC2FullAccess` gerenciadas. Essas políticas fornecem à Amazon SageMaker AI permissões para executar os exemplos.
Ter dados em um dos seguintes formatos:  
JSON
JSONGZ (JSON compactado)
ARROW
(Opcional) Se você precisar de pesos pré-treinados HuggingFace ou estiver treinando um modelo Llama 3.2, deverá obter o HuggingFace token antes de começar a treinar. Para ter mais informações sobre como obter o token, consulte [User access tokens](https://huggingface.co/docs/hub/en/security-tokens).

## Configure seu ambiente para trabalhos de treinamento do Trainium SageMaker
<a name="sagemaker-hyperpod-trainium-sagemaker-training-jobs-environment-setup"></a>

Antes de executar um trabalho SageMaker de treinamento, use o `aws configure` comando para configurar suas AWS credenciais e sua região preferencial. Também é possível fornecer suas credenciais por meio de variáveis de ambiente, como `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` e `AWS_SESSION_TOKEN`. Para obter mais informações, consulte [SageMaker AI Python SDK](https://github.com/aws/sagemaker-python-sdk).

É altamente recomendável usar um notebook SageMaker AI Jupyter em SageMaker IA JupyterLab para iniciar um trabalho de SageMaker treinamento. Para obter mais informações, consulte [SageMaker JupyterLab](studio-updated-jl.md).
+ (Opcional) Se você estiver usando o notebook Jupyter no Amazon SageMaker Studio, poderá pular a execução do comando a seguir. Use uma versão >= à 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
  ```
+ Instale o SageMaker SDK AI Python

  ```
  pip3 install --upgrade sagemaker
  ```
+ 
  + Se você estiver executando uma tarefa de treinamento multimodal do llama 3.2, a versão do `transformers` deve ser `4.45.2` ou posterior.
    + Adicione `transformers==4.45.2` `requirements.txt` em source\$1dir somente quando estiver usando o SDK AI Python. SageMaker 
    + Se você estiver usando HyperPod receitas para iniciar usando `sm_jobs` como tipo de cluster, não precisará especificar a versão dos transformadores.
  + `Container`: o contêiner Neuron é definido automaticamente pelo SageMaker AI Python SDK.

## Iniciar a tarefa de treinamento com um caderno Jupyter
<a name="sagemaker-hyperpod-trainium-sagemaker-training-jobs-launch-training-job-notebook"></a>

Você pode usar o código Python a seguir para executar um trabalho de SageMaker treinamento usando sua receita. Ele usa o PyTorch estimador do [SDK AI SageMaker Python](https://sagemaker.readthedocs.io/en/stable/) para enviar a receita. O exemplo a seguir lança a receita llama3-8b como um AI Training Job. SageMaker 
+ `compiler_cache_url`: cache a ser usado para salvar os artefatos compilados, como um artefato do 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)
```

O código anterior cria um objeto PyTorch estimador com a receita de treinamento e, em seguida, ajusta o modelo usando o método. `fit()` Use o parâmetro `training_recipe` para especificar a fórmula que você deseja usar para treinamento.

## Iniciar a tarefa de treinamento com o inicializador de fórmulas
<a name="sagemaker-hyperpod-trainium-sagemaker-training-jobs-launch-training-job-recipes"></a>
+ Atualizar as `./recipes_collection/cluster/sm_jobs.yaml`
  + compiler\$1cache\$1url: o URL usado para salvar os artefatos. Pode ser um URL do 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
  ```
+ Atualizar as `./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.
  ```
+ Iniciar a tarefa com `main.py`

  ```
  python3 main.py --config-path recipes_collection --config-name config
  ```

Para obter mais informações sobre como configurar trabalhos SageMaker de treinamento, consulte[SageMaker tutorial de pré-treinamento (GPU) de trabalhos de treinamento](sagemaker-hyperpod-gpu-sagemaker-training-jobs-pretrain-tutorial.md).

# Configurações padrão
<a name="default-configurations"></a>

Esta seção descreve os componentes e configurações essenciais necessários para iniciar e personalizar seus processos de treinamento do Large Language Model (LLM) usando. SageMaker HyperPod Esta seção aborda os principais repositórios, arquivos de configuração e estruturas de fórmulas que formam a base de suas tarefas de treinamento. Compreender essas configurações padrão é crucial para configurar e gerenciar com eficácia seus fluxos de tarefa de treinamento de LLM, esteja você usando fórmulas predefinidas ou personalizando-as para atender às suas necessidades específicas.

**Topics**
+ [GitHub repositórios](github-repositories.md)
+ [Configuração geral](sagemaker-hyperpod-recipes-general-configuration.md)

# GitHub repositórios
<a name="github-repositories"></a>

Para iniciar um trabalho de treinamento, você utiliza arquivos de dois GitHub repositórios distintos:
+ [SageMaker HyperPod receitas](https://github.com/aws/sagemaker-hyperpod-recipes)
+ [SageMaker HyperPod adaptador de treinamento para NeMo](https://github.com/aws/sagemaker-hyperpod-training-adapter-for-nemo)

Esses repositórios contêm componentes essenciais para iniciar, gerenciar e personalizar os processos de treinamento de grandes modelos de linguagem (LLM). Você usa os scripts dos repositórios para configurar e executar os trabalhos de treinamento para o seu LLMs.

## HyperPod repositório de receitas
<a name="sagemaker-hyperpod-recipe-repository"></a>

Use o repositório de [SageMaker HyperPod receitas](https://github.com/aws/sagemaker-hyperpod-recipes) para obter uma receita.

1. `main.py`: esse arquivo serve como ponto de entrada principal para iniciar o processo de envio de um trabalho de treinamento para um cluster ou um trabalho de SageMaker treinamento.

1. `launcher_scripts`: Esse diretório contém uma coleção de scripts comumente usados, projetados para facilitar o processo de treinamento de vários modelos de linguagem grande (LLMs).

1. `recipes_collection`: essa pasta contém uma compilação de fórmulas predefinidas de LLM fornecidas pelos desenvolvedores. Os usuários podem utilizar essas fórmulas com seus próprios dados personalizados para treinar modelos de LLM adaptados às suas necessidades específicas.

Você usa as SageMaker HyperPod receitas para iniciar trabalhos de treinamento ou de ajuste fino. Independentemente do cluster que você está usando, o processo de envio da tarefa é o mesmo. Por exemplo, você pode usar o mesmo script para enviar um trabalho a um cluster do Slurm ou do Kubernetes. O inicializador envia uma tarefa de treinamento com base em três arquivos de configuração:

1. Configuração geral (`config.yaml`): inclui configurações comuns, como os parâmetros padrão ou variáveis de ambiente usadas na tarefa de treinamento.

1. Configuração de cluster (cluster): para tarefas de treinamento que usam somente clusters. Se você estiver enviando uma tarefa de treinamento a um cluster do Kubernetes, talvez seja necessário especificar informações como volume, rótulo ou política de reinicialização. Para clusters do Slurm, talvez seja necessário especificar o nome da tarefa do Slurm. Todos os parâmetros estão relacionados ao cluster específico que você está usando.

1. Fórmula (fórmulas): as fórmulas contêm as configurações da tarefa de treinamento, como tipos de modelo, grau de fragmentação ou caminhos do conjunto de dados. Por exemplo, você pode especificar o Llama como seu modelo de treinamento e treiná-lo usando técnicas de paralelismo de dados ou de modelos, como paralelismo de dados totalmente fragmentados (FSDP) em oito máquinas. Você também pode especificar diferentes frequências ou caminhos de pontos de verificação para a tarefa de treinamento.

Depois de especificar uma receita, você executa o script do lançador para especificar um trabalho de end-to-end treinamento em um cluster com base nas configurações por meio do `main.py` ponto de entrada. Para cada fórmula usada, há scripts de shell associados localizados na pasta launch\$1scripts. Esses exemplos orientam você a enviar e iniciar tarefas de treinamento. A figura a seguir ilustra como um lançador de SageMaker HyperPod receitas envia um trabalho de treinamento para um cluster com base no anterior. Atualmente, o lançador de SageMaker HyperPod receitas é construído sobre o Nvidia NeMo Framework Launcher. Para obter mais informações, consulte o [Guia do NeMo Launcher](https://docs.nvidia.com/nemo-framework/user-guide/latest/overview.html).

![\[Diagrama ilustrando o fluxo de trabalho do lançador de HyperPod receitas. À esquerda, dentro de uma caixa tracejada, há três ícones de arquivo chamados “Recipe”, “config.yaml” e “slurm.yaml or k8s.yaml ou sm_job.yaml (Cluster config)”. Uma seta aponta desta caixa para uma caixa central chamada “Lançador de HyperPod receitas”. Nessa caixa central, outra seta aponta diretamente para “Training Job”, com “main.py” escrito acima da seta.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/sagemaker-hyperpod-recipe-launcher.png)


## HyperPod repositório de adaptadores de receitas
<a name="hyperpod-recipe-adapter"></a>

O adaptador SageMaker HyperPod de treinamento é uma estrutura de treinamento. Você pode usá-lo para gerenciar todo o ciclo de vida de suas tarefas de treinamento. Use o adaptador para distribuir o pré-treinamento ou o ajuste fino de seus modelos em várias máquinas. O adaptador usa diferentes técnicas de paralelismo para distribuir o treinamento. Ele também lida com a implementação e o gerenciamento do salvamento de pontos de verificação. Consulte mais detalhes em [Configurações avançadas](cluster-specific-configurations-advanced-settings.md).

Use o [repositório do adaptador de SageMaker HyperPod receita](https://github.com/aws/sagemaker-hyperpod-training-adapter-for-nemo) para usar o adaptador de receita.

1. `src`: esse diretório contém a implementação do treinamento em larga escala de um grande modelo de linguagem (LLM), abrangendo vários recursos, como paralelismo do modelo, treinamento de precisão mista e gerenciamento de pontos de verificação.

1. `examples`: esta pasta fornece uma coleção de exemplos que demonstram como criar um ponto de entrada para treinar um LLM, servindo como um guia prático para os usuários.

# Configuração geral
<a name="sagemaker-hyperpod-recipes-general-configuration"></a>

O arquivo config.yaml especifica a fórmula de treinamento e o cluster. Também inclui configurações de runtime, como variáveis de ambiente para a tarefa de treinamento.

```
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
```

Você pode modificar os seguintes parâmetros de um `config.yaml`:

1. `defaults`: especifique suas configurações padrão, como o cluster ou as fórmulas padrão.

1. `instance_type`: modifique o tipo de instância do Amazon EC2 para que corresponda ao tipo de instância que você está usando.

1. `git`: especifique a localização do repositório do adaptador de SageMaker HyperPod receita para o trabalho de treinamento.

1. `env_vars`: você pode especificar as variáveis de ambiente a serem transmitidas à sua tarefa de treinamento de runtime. Por exemplo, você pode ajustar o nível de registro em log da NCCL especificando a variável de ambiente NCCL\$1DEBUG.

A fórmula é a principal configuração que define a arquitetura da tarefa de treinamento. Esse arquivo inclui muitas informações importantes para a tarefa de treinamento, como as seguintes:
+ Se é necessário usar paralelismo do modelo.
+ A fonte de seus conjuntos de dados.
+ Treinamento de precisão mista.
+ Configurações relacionadas ao ponto de verificação.

Você pode usar as fórmulas como estão. Também é possível usar as informações a seguir para modificá-las.

## run
<a name="run"></a>

A seguir são apresentadas informações básicas para executar sua tarefa de treinamento.

```
run:
  name: llama-8b
  results_dir: ${base_results_dir}/${.name}
  time_limit: "6-00:00:00"
  model_type: hf
```

1. `name`: especifique o nome da tarefa de treinamento no arquivo de configuração.

1. `results_dir`: você pode especificar o diretório em que os resultados da tarefa de treinamento são armazenados.

1. `time_limit`: é possível definir um tempo máximo para a tarefa de treinamento para evitar que ela ocupe os recursos de hardware por muito tempo.

1. `model_type`: você pode especificar o tipo de modelo que está usando. Por exemplo, você pode especificar `hf` se seu modelo é de HuggingFace.

## exp\$1manager
<a name="exp-manager"></a>

O exp\$1manager configura o experimento. Com o exp\$1manager, você pode especificar determinados campos, como o diretório de saída, ou configurações do ponto de verificação. Veja a seguir um exemplo de como você pode configurar o exp\$1manager.

```
exp_manager:
  exp_dir: null
  name: experiment
  create_tensorboard_logger: True
```

1. `exp_dir`: o diretório de experimentos inclui a saída padrão e os arquivos de erro padrão da tarefa de treinamento. Seu diretório atual é usado por padrão.

1. `name`: o nome do experimento usado para identificar seu experimento em exp\$1dir.

1. `create_tensorboard_logger`: especifique `True` ou `False` ative ou desative o TensorBoard registrador.

## Pontos de verificação
<a name="checkpointing"></a>

Veja abaixo os três tipos de ponto de verificação que podem ser utilizados:
+ Ponto de verificação automático
+ Ponto de verificação manual
+ Pontos de verificação totais

### Ponto de verificação automático
<a name="auto-checkpointing"></a>

Se você estiver salvando ou carregando pontos de verificação que são gerenciados automaticamente pelo adaptador de SageMaker HyperPod receita, você pode habilitar`auto_checkpoint`. Para habilitar o `auto_checkpoint`, defina `enabled` como `True`. Você pode usar o ponto de verificação automático para treinamento e ajuste fino. Você pode usar o ponto de verificação automático para sistemas de arquivos compartilhados e para o Amazon S3.

```
exp_manager
  checkpoint_dir: ${recipes.exp_manager.exp_dir}/checkpoints/
  auto_checkpoint:
    enabled: True
```

O ponto de verificação automático está salvando o local\$1state\$1dict de forma assíncrona com um intervalo de salvamento ideal calculado automaticamente.

**nota**  
Nesse modo de ponto de verificação, o ponto de verificação salvo automaticamente não permite a refragmentação entre as execuções de treinamento. Para continuar a partir do último ponto de verificação salvo automaticamente, você deve preservar os mesmos graus de fragmentação. Não é necessário especificar informações adicionais para retomar automaticamente.

### Ponto de verificação manual
<a name="manual-checkpointing"></a>

Você pode modificar `checkpoint_callback_params` para salvar um ponto de verificação intermediário de forma assíncrona no shared\$1state\$1dict. Por exemplo, você pode especificar a configuração a seguir para habilitar o ponto de verificação fragmentado a cada dez etapas e manter os três pontos de verificação mais recentes.

O ponto de verificação fragmentado permite que você altere os graus de fragmentação entre as execuções de treinamento e carregue o ponto de verificação configurando `resume_from_checkpoint`.

**nota**  
Se for ajuste fino de PEFT, não será possível usar o ponto de verificação fragmentado com o Amazon S3.
Os pontos de verificação automáticos e manuais são mutuamente excludentes.
Somente são permitidas alterações nos graus de fragmentação de FSDP e nos graus de replicação.

```
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/
```

Para saber mais sobre pontos de verificação, consulte [Ponto de verificação com uso do SMP](model-parallel-core-features-v2-checkpoints.md).

### Pontos de verificação totais
<a name="full-checkpointing"></a>

O ponto de verificação full\$1state\$1dict exportado pode ser usado para inferência ou ajuste fino. É possível carregar um ponto de verificação completo por meio de hf\$1model\$1name\$1or\$1path. Nesse modo, somente os pesos do modelo são salvos.

Para exportar o modelo full\$1state\$1dict, você pode definir os parâmetros a seguir.

**nota**  
No momento, não e possível usar o ponto de verificação completo com o ponto de verificação do Amazon S3. Você pode definir o caminho do S3 para `exp_manager.checkpoint_dir` se estiver habilitando o ponto de verificação completo. No entanto, é possível definir `exp_manager.export_full_model.final_export_dir` como um diretório específico em seu sistema de arquivos local e definir `exp_manager.checkpoint_dir` como um caminho do 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
```

## model
<a name="model"></a>

Defina vários aspectos da arquitetura do modelo e do processo de treinamento. Isso inclui configurações de paralelismo do modelo, precisão e tratamento de dados. Abaixo são apresentados os principais componentes que você pode configurar na seção “Modelo”:

### paralelismo do modelo
<a name="model-parallelism"></a>

Depois de especificar a fórmula, defina o modelo que você está treinando. Você também pode definir o paralelismo do modelo. Por exemplo, você pode definir tensor\$1model\$1parallel\$1degree. Você pode ativar outros recursos, como treinar com FP8 precisão. Por exemplo, você pode treinar um modelo com paralelismo de tensores e paralelismo de contexto:

```
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
```

Para compreender melhor os diferentes tipos de técnicas de paralelismo de modelos, você pode consultar as seguintes abordagens:

1. [Paralelismo de tensores](model-parallel-core-features-v2-tensor-parallelism.md)

1. [Paralelismo especializado](model-parallel-core-features-v2-expert-parallelism.md)

1. [Paralelismo de contexto](model-parallel-core-features-v2-context-parallelism.md)

1. [Paralelismo de dados híbridos compartilhados](model-parallel-core-features-v2-sharded-data-parallelism.md)

### FP8
<a name="fp8"></a>

Para habilitar FP8 (precisão de ponto flutuante de 8 bits), você pode especificar a configuração FP8 relacionada no exemplo a seguir:

```
model:
  # FP8 config
  fp8: True
  fp8_amax_history_len: 1024
  fp8_amax_compute_algo: max
```

É importante observar que o formato de FP8 dados atualmente é compatível somente com o tipo de instância P5. Se você estiver usando um tipo de instância mais antigo, como P4, desative o FP8 recurso do seu processo de treinamento de modelos. Para obter mais informações sobre FP8, consulte[Treinamento de precisão mista](model-parallel-core-features-v2-mixed-precision.md).

### dados
<a name="data"></a>

Você pode especificar conjuntos de dados personalizados para a tarefa de treinamento adicionando os caminhos de dados em “Dados”. O módulo de dados em nosso sistema é compatível com os seguintes formatos de dados:

1. JSON

1. JSONGZ (JSON compactado)

1. ARROW

No entanto, você é responsável por preparar seu próprio conjunto de dados pré-tokenizado. Para usuários avançados com requisitos específicos, também há a opção de implementar e integrar um módulo de dados personalizado. Para obter mais informações sobre HuggingFace conjuntos de dados, consulte Conjuntos de [dados](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
```

Você pode especificar como você está treinando o modelo. Por padrão, a fórmula usa pré-treinamento em vez de ajuste fino. O exemplo a seguir configura a fórmula para executar uma tarefa de ajuste fino com a adaptação de baixa classificação (LoRa).

```
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
```

Para obter informações sobre as receitas, consulte [SageMaker HyperPodreceitas](https://github.com/aws/sagemaker-hyperpod-recipes).

# Configurações específicas de cluster
<a name="cluster-specific-configurations"></a>

SageMaker HyperPod oferece flexibilidade na execução de trabalhos de treinamento em diferentes ambientes de cluster. Cada ambiente tem seus próprios requisitos e processo de configuração. Esta seção descreve as etapas e configurações necessárias para executar trabalhos de treinamento no SageMaker HyperPod Slurm, SageMaker HyperPod k8s e trabalhos de treinamento. SageMaker Compreender essas configurações é crucial para aproveitar com eficácia o poder do treinamento distribuído no ambiente escolhido.

Você pode usar uma fórmula nos seguintes ambientes de cluster:
+ SageMaker HyperPod Orquestração do Slurm
+ SageMaker HyperPod Orquestração do Amazon Elastic Kubernetes Service
+ SageMaker empregos de treinamento

Para iniciar uma tarefa de treinamento em um cluster, defina e instale a configuração e o ambiente de cluster correspondentes.

**Topics**
+ [Executando um trabalho de treinamento no HyperPod Slurm](cluster-specific-configurations-run-training-job-hyperpod-slurm.md)
+ [Executando um trabalho de treinamento no HyperPod k8s](cluster-specific-configurations-run-training-job-hyperpod-k8s.md)
+ [Executando um trabalho SageMaker de treinamento](cluster-specific-configurations-run-sagemaker-training-job.md)

# Executando um trabalho de treinamento no HyperPod Slurm
<a name="cluster-specific-configurations-run-training-job-hyperpod-slurm"></a>

SageMaker HyperPod O Recipes oferece suporte ao envio de um trabalho de treinamento para um cluster de GPU/Trainium slurm. Antes de enviar a tarefa de treinamento, atualize a configuração do cluster. Use um dos seguintes métodos para atualizar a configuração do cluster:
+ Modifique o `slurm.yaml`.
+ Substitua o arquivo por meio da linha de comandos.

Depois de atualizar a configuração do cluster, instale o ambiente.

## Configurar o cluster
<a name="cluster-specific-configurations-configure-cluster-slurm-yaml"></a>

Para enviar uma tarefa de treinamento para um cluster do Slurm, especifique a configuração específica do Slurm. Modifique o `slurm.yaml` para configurar o cluster do Slurm. Veja a seguir um exemplo de configuração de cluster do Slurm. Você pode modificar esse arquivo de acordo com suas próprias necessidades de treinamento:

```
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`: especifique um prefixo de nome de tarefa para identificar facilmente seus envios ao cluster do Slurm.

1. `slurm_create_submission_file_only`: defina essa configuração como True para realizar uma simulação e ajudar você a depurar.

1. `stderr_to_stdout`: especifique se você está redirecionando seu erro padrão (stderr) para a saída padrão (stdout).

1. `srun_args`: personalize configurações srun adicionais, como excluir nós de computação específicos. Para ter mais informações, consulte a documentação do srun.

1. `slurm_docker_cfg`: o lançador de SageMaker HyperPod receitas lança um contêiner Docker para executar seu trabalho de treinamento. Você pode especificar argumentos adicionais do Docker dentro desse parâmetro.

1. `container_mounts`: especifique os volumes que você está montando no contêiner para o inicializador de fórmulas. Desse modo, suas tarefas de treinamento poderão acessar os arquivos nesses volumes.

# Executando um trabalho de treinamento no HyperPod k8s
<a name="cluster-specific-configurations-run-training-job-hyperpod-k8s"></a>

SageMaker HyperPod O Recipes oferece suporte ao envio de um trabalho de treinamento para um cluster GPU/Trainium Kubernetes. Antes de enviar a tarefa de treinamento, execute uma destas ações:
+ Modifique o arquivo de configuração `k8s.yaml` do cluster.
+ Substitua a configuração do cluster por meio da linha de comandos.

Depois de executar qualquer uma das etapas anteriores, instale o ambiente correspondente.

## Configurar o cluster usando `k8s.yaml`
<a name="cluster-specific-configurations-configure-cluster-k8s-yaml"></a>

Para enviar uma tarefa de treinamento a um cluster do Kubernetes, especifique as configurações específicas do Kubernetes. As configurações incluem o namespace do cluster ou o local do volume persistente.

```
pullPolicy: Always
restartPolicy: Never
namespace: default
persistent_volume_claims:
  - null
```

1. `pullPolicy`: você pode especificar a política de extração ao enviar uma tarefa de treinamento. Se você especificar “Sempre”, o cluster do Kubernetes sempre extrairá sua imagem do repositório. Para ter mais informações, consulte [Image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy).

1. `restartPolicy`: especifique se deseja reiniciar a tarefa de treinamento se ela falhar.

1. `namespace`: você pode especificar o namespace do Kubernetes para o qual você está enviando a tarefa de treinamento.

1. `persistent_volume_claims`: você pode especificar um volume compartilhado para a tarefa de treinamento para que todos os processos de treinamento acessem os arquivos no volume.

# Executando um trabalho SageMaker de treinamento
<a name="cluster-specific-configurations-run-sagemaker-training-job"></a>

SageMaker HyperPod O Recipes apoia o envio de um trabalho SageMaker de treinamento. Antes de enviar a tarefa de treinamento, você deve atualizar a configuração do cluster (`sm_job.yaml`) e instalar o ambiente correspondente.

## Use sua receita como um trabalho SageMaker de treinamento
<a name="cluster-specific-configurations-cluster-config-sm-job-yaml"></a>

Você pode usar sua receita como um trabalho de SageMaker treinamento se não estiver hospedando um cluster. Você deve modificar o arquivo de configuração do trabalho de SageMaker treinamento`sm_job.yaml`,, para executar sua receita.

```
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`: é possível especificar onde você está salvando seu modelo em um URL do Amazon S3.

1. `tensorboard_config`: você pode especificar uma configuração TensorBoard relacionada, como o caminho de saída ou o caminho TensorBoard dos registros.

1. `wait`: você pode especificar se está aguardando a conclusão da tarefa ao enviar sua tarefa de treinamento.

1. `inputs`: é possível especificar os caminhos para seus dados de treinamento e validação. A fonte de dados pode ser de um sistema de arquivos compartilhado, como o Amazon, FSx ou de um URL do Amazon S3.

1. `additional_estimator_kwargs`: Argumentos adicionais do estimador para enviar um trabalho de treinamento para a plataforma de empregos de SageMaker treinamento. Para ter mais informações, consulte [Algorithm Estimator](https://sagemaker.readthedocs.io/en/stable/api/training/algorithm.html).

# Considerações
<a name="cluster-specific-configurations-special-considerations"></a>

Quando você usa SageMaker HyperPod receitas da Amazon, há alguns fatores que podem afetar o processo de treinamento de modelos.
+ A versão de `transformers` deve ser `4.45.2` ou posterior para o Llama 3.2. Se você estiver usando um fluxo de trabalho do Slurm ou do K8s, a versão será atualizada automaticamente.
+ O Mixtral não suporta precisão de ponto flutuante de 8 bits () FP8
+ A instância p4 do Amazon EC2 não oferece suporte FP8

# Configurações avançadas
<a name="cluster-specific-configurations-advanced-settings"></a>

O adaptador de SageMaker HyperPod receitas é construído com base nas estruturas Nvidia Nemo e PyTorch-Lightning. Se você já usou essas estruturas, integrar seus modelos ou recursos personalizados ao adaptador de SageMaker HyperPod receitas é um processo semelhante. Além de modificar o adaptador de fórmulas, é possível alterar seu próprio script de pré-treinamento ou de ajuste fino. Para ter orientação sobre como escrever seu script de treinamento personalizado, consulte [exemplos](https://github.com/aws/sagemaker-hyperpod-training-adapter-for-nemo/tree/main/examples).

## Use o SageMaker HyperPod adaptador para criar seu próprio modelo
<a name="cluster-specific-configurations-use-hyperpod-adapter-create-model"></a>

No adaptador de fórmulas, é possível personalizar os arquivos abaixo nos seguintes locais:

1. `collections/data`: contém um módulo responsável pelo carregamento de conjuntos de dados. Atualmente, ele suporta apenas conjuntos de dados de HuggingFace. Se seus requisitos forem mais avançados, a estrutura de código permite adicionar módulos de dados personalizados na mesma pasta.

1. `collections/model`: inclui as definições de vários modelos de linguagem. No momento, é possível usar grandes modelos de linguagem comuns, como Llama, Mixtral e Mistral. Você tem flexibilidade para introduzir suas próprias definições de modelo nessa pasta.

1. `collections/parts`: essa pasta contém estratégias para modelos de treinamento de forma distribuída. Um exemplo é a estratégia Fully Sharded Data Parallel (FSDP), que permite fragmentar um grande modelo de linguagem em vários aceleradores. Além disso, as estratégias permitem usar várias formas de paralelismo de modelos. Você também tem a opção de criar estratégias de treinamento personalizadas para o treinamento de modelo.

1. `utils`: contém vários utilitários destinados a facilitar o gerenciamento de uma tarefa de treinamento. Serve como um repositório para suas próprias ferramentas. Você pode usar suas próprias ferramentas para determinadas tarefas, como solução de problemas ou avaliação comparativa. Você também pode adicionar seus próprios retornos de chamada personalizados PyTorch do Lightning nessa pasta. Você pode usar os retornos de chamada do PyTorch Lightning para integrar perfeitamente funcionalidades ou operações específicas ao ciclo de vida do treinamento.

1. `conf`: contém as definições do esquema de configuração usadas para validar parâmetros específicos em uma tarefa de treinamento. Se você criar outros parâmetros ou configurações, poderá adicionar seu esquema personalizado a essa pasta. É possível usar o esquema personalizado para definir as regras de validação. Você pode validar tipos de dados, intervalos ou qualquer outra restrição de parâmetro. Também é possível definir seu esquema personalizado para validar os parâmetros.

# Apêndice
<a name="appendix"></a>

Use as informações a seguir para saber como monitorar e analisar os resultados do treinamento.

## Monitorar os resultados do treinamento
<a name="monitor-training-results"></a>

Monitorar e analisar os resultados do treinamento é essencial para que os desenvolvedores avaliem a convergência e solucionem problemas. SageMaker HyperPod as receitas oferecem integração com o Tensorboard para analisar o comportamento do treinamento. Para enfrentar os desafios de definir o perfil de grandes trabalhos de treinamento distribuído, essas receitas também incorporam VizTracer. VizTraceré uma ferramenta de baixa sobrecarga para rastrear e visualizar a execução do código Python. Para obter mais informações sobre VizTracer, consulte [VizTracer](https://viztracer.readthedocs.io/en/latest/installation.html).

As seções a seguir orientam você pelo processo de implementação desses recursos em suas SageMaker HyperPod receitas.

### TensorBoard
<a name="tensorboard"></a>

O TensorBoard é uma ferramenta avançada para visualizar e analisar o processo de treinamento. Para habilitar o TensorBoard, modifique sua fórmula definindo o seguinte parâmetro:

```
exp_manager:
  exp_dir: null
  name: experiment
  create_tensorboard_logger: True
```

Após a habilitação do agente de log do TensorBoard, os logs de treinamento são gerados e armazenados no diretório de experimentos. O experimento direcionado é definido em exp\$1manager.exp\$1dir. Para acessar e analisar esses logs localmente, use o seguinte procedimento:

**Como acessar e analisar logs**

1. Baixe a pasta de experimentos do TensorBoard do seu ambiente de treinamento na máquina local.

1. Abra um terminal ou prompt de comando em sua máquina local.

1. Navegue até o diretório que contém a pasta de experimentos baixados.

1. Inicie o TensorBoard com o comando a seguir.

   ```
   tensorboard --port=<port> --bind_all --logdir experiment.
   ```

1. Abra seu navegador e acesse http://localhost:8008.

Agora você pode ver o status e as visualizações de suas tarefas de treinamento na interface do TensorBoard. Ver o status e as visualizações ajuda você a monitorar e analisar o processo de treinamento. O monitoramento e a análise do processo de treinamento ajudam você a obter informações sobre o comportamento e o desempenho de seus modelos. Para obter mais informações sobre como monitorar e analisar o treinamento com o Tensorboard, consulte o Guia do usuário do [NVIDIA NeMo Framework](https://docs.nvidia.com/nemo-framework/user-guide/latest/llms/index.html).

### VizTracer
<a name="viztracer"></a>

Para ativar VizTracer, você pode modificar sua receita definindo o parâmetro model.viztracer.enabled como true. Por exemplo, você pode atualizar sua receita de lhama para VizTracer ativá-la adicionando a seguinte configuração:

```
model:
  viztracer:
    enabled: true
```

Depois que o treinamento for concluído, seu VizTracer perfil estará na pasta do experimento exp\$1dir/result.json. Para analisar seu perfil, você pode baixá-lo e abri-lo usando a ferramenta VizViewer:

```
vizviewer --port <port> result.json
```

Esse comando inicia o VizViewer na porta 9001. Você pode visualizar seu VizTracer especificando http://localhost: <port>em seu navegador. Depois de abrir VizTracer, você começa a analisar o treinamento. Para obter mais informações sobre o uso VizTracer, consulte a VizTracer documentação.

## SageMaker JumpStart versus SageMaker HyperPod
<a name="sagemaker-jumpstart-vs-hyperpod"></a>

Embora SageMaker JumpStart forneça recursos de ajuste fino, as SageMaker HyperPod receitas fornecem o seguinte:
+ Controle adicional refinado sobre o ciclo de treinamento
+ Personalização de fórmulas para seus próprios modelos e dados
+ Compatibilidade com paralelismo do modelo

Use as SageMaker HyperPod receitas quando precisar acessar os hiperparâmetros do modelo, o treinamento de vários nós e as opções de personalização do ciclo de treinamento.

Para obter mais informações sobre como ajustar seus modelos, consulte SageMaker JumpStart [Ajustar modelos de base disponíveis ao público com a função `JumpStartEstimator`](jumpstart-foundation-models-use-python-sdk-estimator-class.md)

# Orquestrando SageMaker HyperPod clusters com o Slurm
<a name="sagemaker-hyperpod-slurm"></a>

O suporte do Slurm SageMaker HyperPod ajuda você a provisionar clusters resilientes para executar cargas de trabalho de aprendizado de máquina (ML) e desenvolver state-of-the-art modelos como modelos de linguagem grande (LLMs), modelos de difusão e modelos básicos (). FMs Ele acelera o desenvolvimento ao remover o trabalho pesado indiferenciado envolvido na criação e manutenção de clusters de computação em grande escala, alimentados por milhares de aceleradores, como AWS Trainium e unidades de processamento gráfico NVIDIA A100 e H100 (). FMs GPUs Quando os aceleradores falham, os recursos de resiliência dos SageMaker HyperPod monitores das instâncias do cluster detectam e substituem automaticamente o hardware defeituoso em tempo real, para que você possa se concentrar na execução de cargas de trabalho de ML. Além disso, com o suporte à configuração do ciclo de vida ativado SageMaker HyperPod, você pode personalizar seu ambiente de computação para melhor atender às suas necessidades e configurá-lo com as bibliotecas de treinamento distribuídas da Amazon SageMaker AI para obter um desempenho ideal em. AWS

**Clusters operacionais**

Você pode criar, configurar e manter SageMaker HyperPod clusters graficamente por meio da interface de usuário (UI) do console e programaticamente por meio da interface de AWS linha de comando (CLI) ou. AWS SDK para Python (Boto3) Com o Amazon VPC, você pode proteger a rede de clusters e também aproveitar a configuração do seu cluster com recursos em sua VPC, como o Amazon for Lustre, que oferece a taxa FSx de transferência mais rápida. Você também pode atribuir funções diferentes do IAM aos grupos de instâncias do cluster e limitar as ações que os recursos e os usuários do cluster podem operar. Para saber mais, consulte [SageMaker HyperPod Operações de cluster do Slurm](sagemaker-hyperpod-operate-slurm.md).

**Configurar o ambiente de ML**

SageMaker HyperPod é executado[SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami), o que configura um ambiente de ML nos HyperPod clusters. Você pode configurar personalizações adicionais para o DLAMI fornecendo scripts de ciclo de vida para dar compatibilidade com o seu caso de uso. Para saber mais sobre como configurar scripts de ciclo de vida, consulte [Começando com SageMaker HyperPod](smcluster-getting-started-slurm.md) e [Personalização de SageMaker HyperPod clusters usando scripts de ciclo de vida](sagemaker-hyperpod-lifecycle-best-practices-slurm.md).

**Programação de trabalhos**

Depois de criar um HyperPod cluster com sucesso, os usuários do cluster podem fazer login nos nós do cluster (como nó principal ou controlador, nó de login e nó de trabalho) e agendar trabalhos para executar cargas de trabalho de aprendizado de máquina. Para saber mais, consulte [Trabalhos em SageMaker HyperPod clusters](sagemaker-hyperpod-run-jobs-slurm.md).

**Resiliência contra falhas de hardware**

SageMaker HyperPod executa verificações de integridade nos nós do cluster e fornece uma funcionalidade de retomada automática da carga de trabalho. Com os recursos de resiliência de cluster do HyperPod, você pode retomar sua carga de trabalho a partir do último ponto de verificação salvo, depois que os nós defeituosos forem substituídos por outros íntegros em clusters com mais de 16 nós. Para saber mais, consulte [SageMaker HyperPod resiliência de clusters](sagemaker-hyperpod-resiliency-slurm.md).

**Registro em log e gerenciamento de clusters**

Você pode encontrar métricas SageMaker HyperPod de utilização de recursos e registros do ciclo de vida na Amazon CloudWatch e gerenciar SageMaker HyperPod recursos marcando-os. Cada execução de API `CreateCluster` cria um fluxo de logs distinto, nomeado no formato `<cluster-name>-<timestamp>`. No fluxo de logs, você pode verificar os nomes dos hosts, o nome dos scripts de ciclo de vida com falha e as saídas dos scripts com falha, como `stdout` e `stderr`. Para obter mais informações, consulte [SageMaker HyperPod gerenciamento de clusters](sagemaker-hyperpod-cluster-management-slurm.md).

**Compatível com ferramentas de SageMaker IA**

Usando SageMaker HyperPod, você pode configurar clusters com bibliotecas de comunicação coletiva AWS otimizadas oferecidas pela SageMaker IA, como a biblioteca de [paralelismo de dados distribuídos de SageMaker IA (SMDDP](data-parallel.md)). A biblioteca SMDDP implementa a `AllGather` operação otimizada para a infraestrutura de AWS computação e rede para as instâncias de aprendizado de máquina de SageMaker IA de maior desempenho com tecnologia NVIDIA A100. GPUs Para saber mais, consulte [Executando cargas de trabalho de treinamento distribuídas com o Slurm on HyperPod](sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload.md).

**Posicionamento da instância com UltraServers**

SageMaker A IA aloca automaticamente trabalhos para instâncias dentro de você UltraServer com base em uma estratégia de melhor esforço de usar todas as instâncias em uma UltraServer antes de usar outra. Por exemplo, se você solicitar 14 instâncias e tiver 2 UltraServers no seu plano de treinamento, a SageMaker IA usará todas as instâncias da primeira UltraServer. Se você solicitou 20 instâncias e tem 2 UltraServers em seu plano de treinamento, a SageMaker IA usará todas as 17 instâncias na primeira UltraServer e depois usará 3 da segunda UltraServer.

**Topics**
+ [Começando com SageMaker HyperPod](smcluster-getting-started-slurm.md)
+ [SageMaker HyperPod Operações de cluster do Slurm](sagemaker-hyperpod-operate-slurm.md)
+ [Personalização de SageMaker HyperPod clusters usando scripts de ciclo de vida](sagemaker-hyperpod-lifecycle-best-practices-slurm.md)
+ [SageMaker HyperPod suporte a nós com várias cabeças](sagemaker-hyperpod-multihead-slurm.md)
+ [Trabalhos em SageMaker HyperPod clusters](sagemaker-hyperpod-run-jobs-slurm.md)
+ [SageMaker HyperPod monitoramento de recursos de cluster](sagemaker-hyperpod-cluster-observability-slurm.md)
+ [SageMaker HyperPod resiliência de clusters](sagemaker-hyperpod-resiliency-slurm.md)
+ [Provisionamento contínuo para operações de cluster aprimoradas com o Slurm](sagemaker-hyperpod-scaling-slurm.md)
+ [SageMaker HyperPod gerenciamento de clusters](sagemaker-hyperpod-cluster-management-slurm.md)
+ [SageMaker HyperPod FAQs](sagemaker-hyperpod-faq-slurm.md)

# Começando com SageMaker HyperPod
<a name="smcluster-getting-started-slurm"></a>

Comece a criar seu primeiro SageMaker HyperPod cluster e conheça as funcionalidades de operação do SageMaker HyperPod cluster. Você pode criar um SageMaker HyperPod cluster por meio da interface do usuário do console de SageMaker IA ou dos AWS CLI comandos. Este tutorial mostra como criar um novo SageMaker HyperPod cluster com o Slurm, que é um software popular de agendamento de carga de trabalho. Depois de concluir este tutorial, você saberá como fazer login nos nós do cluster usando os AWS Systems Manager comandos (`aws ssm`). Depois de concluir este tutorial, consulte também [SageMaker HyperPod Operações de cluster do Slurm](sagemaker-hyperpod-operate-slurm.md) para saber mais sobre as preparações SageMaker HyperPod básicas e [Trabalhos em SageMaker HyperPod clusters](sagemaker-hyperpod-run-jobs-slurm.md) como agendar trabalhos no cluster provisionado.

**dica**  
Para encontrar exemplos e soluções práticas, veja também o [SageMaker HyperPodworkshop](https://catalog.workshops.aws/sagemaker-hyperpod).

**Topics**
+ [Começando a SageMaker HyperPod usar o console de SageMaker IA](smcluster-getting-started-slurm-console.md)
+ [Criação de SageMaker HyperPod clusters usando CloudFormation modelos](smcluster-getting-started-slurm-console-create-cluster-cfn.md)
+ [Começando a SageMaker HyperPod usar o AWS CLI](smcluster-getting-started-slurm-cli.md)

# Começando a SageMaker HyperPod usar o console de SageMaker IA
<a name="smcluster-getting-started-slurm-console"></a>

O tutorial a seguir demonstra como criar um novo SageMaker HyperPod cluster e configurá-lo com o Slurm por meio da interface do usuário do console de SageMaker IA. Seguindo o tutorial, você criará um HyperPod cluster com três nós do Slurm, `my-controller-group``my-login-group`, e. `worker-group-1`

**Topics**
+ [Criação de cluster](#smcluster-getting-started-slurm-console-create-cluster-page)
+ [Implantar recursos.](#smcluster-getting-started-slurm-console-create-cluster-deploy)
+ [Exclua o cluster e limpe os recursos.](#smcluster-getting-started-slurm-console-delete-cluster-and-clean)

## Criação de cluster
<a name="smcluster-getting-started-slurm-console-create-cluster-page"></a>

Para navegar até a página **SageMaker HyperPod Clusters** e escolher a orquestração do **Slurm**, siga estas etapas.

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Escolha **HyperPod Clusters** no painel de navegação esquerdo e, em seguida, **Gerenciamento de Clusters**.

1. Na página **SageMaker HyperPod Clusters**, escolha **Criar HyperPod cluster**. 

1. No menu suspenso **Criar HyperPod cluster**, escolha **Orchestrated** by Slurm.

1. Na página de criação do clusters do Slurm, você verá duas opções. Escolha a opção mais adequada para as suas necessidades.

   1. **Configuração rápida**: para começar imediatamente com as configurações padrão, escolha **Configuração rápida**. Com essa opção, a SageMaker IA criará novos recursos, como VPC, sub-redes, grupos de segurança, bucket do Amazon S3, função do IAM e FSx para o Lustre no processo de criação do seu cluster.

   1. **Configuração personalizada**: para se integrar aos recursos existentes da AWS ou se tiver requisitos específicos de rede, segurança ou armazenamento, escolha **Configuração personalizada**. Com essa opção, você pode optar por usar os recursos existentes ou criar outros, além de personalizar a configuração que melhor atenda às suas necessidades.

## Configuração rápida
<a name="smcluster-getting-started-slurm-console-create-cluster-default"></a>

Na seção **Configuração rápida**, siga estas etapas para criar seu HyperPod cluster com a orquestração do Slurm.

### Configurações gerais
<a name="smcluster-getting-started-slurm-console-create-cluster-default-general"></a>

Especifique um nome para o novo cluster. Não é possível alterar o nome após a criação do cluster.

### Grupos de instâncias
<a name="smcluster-getting-started-slurm-console-create-cluster-default-instance-groups"></a>

Para adicionar um grupo de instâncias, escolha **Adicionar grupo**. Cada grupo de instâncias pode ser configurado de forma diferente e você pode criar um cluster heterogêneo que consiste em vários grupos de instâncias com vários tipos de instância. Para implantar um cluster, você deve adicionar ao menos um grupo de instâncias para os tipos de grupo Controlador e Computação.

**Importante**  
É possível adicionar um grupo de instâncias por vez. Para criar vários grupos de instâncias, repita o processo para cada grupo de instâncias.

Siga as etapas abaixo para adicionar um grupo de instâncias.

1. Em **Tipo de grupos de instâncias** escolha um tipo de grupo de instâncias. Para este tutorial, escolha **Controlador (cabeça)** para `my-controller-group`, **Login** para `my-login-group` e **Computação (processamento)** para `worker-group-1`.

1. Em **Nome**, especifique um nome para o grupo de instâncias. Para este tutorial, crie três grupos de instâncias chamados `my-controller-group`, `my-login-group`, e `worker-group-1`.

1.  Em **Capacidade da instância**, escolha a capacidade sob demanda ou um plano de treinamento para reservar seus recursos de computação.

1. Em **Selecionar tipo de instância**, escolha a instância para o grupo de instâncias. Para este tutorial, selecione `ml.c5.xlarge` para `my-controller-group`, `ml.m5.4xlarge` para `my-login-group`, e `ml.trn1.32xlarge` para `worker-group-1`. 
**Importante**  
Escolha um tipo de instância com cotas suficientes e endereços IP não atribuídos suficientes para sua conta. Para visualizar ou solicitar cotas adicionais, consulte [SageMaker HyperPod cotas](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

1. Em **Quantidade de instâncias**, especifique um número inteiro que não exceda a cota de instância para uso do cluster. Para este tutorial, insira **1** para todos os três grupos.

1. Na lista **Zona de disponibilidade de destino**, selecione a zona de disponibilidade onde suas instâncias serão provisionadas. A zona de disponibilidade deve corresponder ao local da sua capacidade de computação acelerada.

1. Em **Outros volumes de armazenamento por instância (GB)**, especifique um número inteiro entre 1 e 16.384 para definir o tamanho de um volume adicional do Elastic Block Store (EBS) em gigabytes (GB). O volume do EBS é anexado a cada instância do grupo de instâncias. O caminho de montagem padrão para o volume adicional do EBS é`/opt/sagemaker`. Depois que o cluster for criado com sucesso, você poderá entrar por SSH nas instâncias do cluster (nós) e verificar se o volume do EBS está montado corretamente executando o comando `df -h`. A anexação de um volume adicional do EBS fornece armazenamento estável, fora da instância e com persistência independente, conforme descrito na [seção de volumes do Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes.html) no Guia do usuário do *Amazon Elastic* Block Store.

1. Escolha **Adicionar grupo de instâncias**.

### Padrões de configuração rápida
<a name="smcluster-getting-started-slurm-console-create-cluster-default-settings"></a>

Esta seção lista todas as configurações padrão para a criação do cluster, incluindo todos os novos AWS recursos que serão criados durante o processo de criação do cluster. Reveja as configurações padrão.

## Configuração personalizada
<a name="smcluster-getting-started-slurm-console-create-cluster-custom"></a>

Na seção **Configuração personalizada**, siga estas etapas para criar seu HyperPod cluster com a orquestração do Slurm.

### Configurações gerais
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-general"></a>

Especifique um nome para o novo cluster. Não é possível alterar o nome após a criação do cluster.

Em **Recuperação de instâncias**, escolha **Automático: *recomendado*** ou **Nenhum**.

### Redes
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-network"></a>

Defina suas configurações de rede para criar o cluster. Não é possível alterar essas configurações após a criação do cluster.

1. Para **VPC**, escolha sua própria VPC se você já tiver uma que dê acesso de SageMaker IA à sua VPC. Para criar uma VPC, siga as instruções em [Criar uma VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) no *Manual do usuário da Amazon Virtual Private Cloud*. Você pode deixá-lo como **Nenhum** para usar o SageMaker AI VPC padrão.

1. Para o **bloco IPv4 CIDR da VPC**, insira o IP inicial da sua VPC.

1. Em **Zonas de disponibilidade**, escolha as Zonas de Disponibilidade (AZ) onde HyperPod criará sub-redes para seu cluster. Escolha AZs aquela que corresponda à localização da sua capacidade computacional acelerada.

1. Em **Grupos de segurança**, crie um grupo de segurança ou escolha até cinco grupos de segurança configurados com regras para permitir a comunicação entre recursos dentro da VPC.

### Grupos de instâncias
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-instance-groups"></a>

Para adicionar um grupo de instâncias, escolha **Adicionar grupo**. Cada grupo de instâncias pode ser configurado de forma diferente e você pode criar um cluster heterogêneo que consiste em vários grupos de instâncias com vários tipos de instância. Para implantar um cluster, você deve adicionar ao menos um grupo de instâncias.

**Importante**  
É possível adicionar um grupo de instâncias por vez. Para criar vários grupos de instâncias, repita o processo para cada grupo de instâncias.

Siga as etapas abaixo para adicionar um grupo de instâncias.

1. Em **Tipo de grupos de instâncias** escolha um tipo de grupo de instâncias. Para este tutorial, escolha **Controlador (cabeça)** para `my-controller-group`, **Login** para `my-login-group` e **Computação (processamento)** para `worker-group-1`.

1. Em **Nome**, especifique um nome para o grupo de instâncias. Para este tutorial, crie três grupos de instâncias chamados `my-controller-group`, `my-login-group`, e `worker-group-1`.

1.  Em **Capacidade da instância**, escolha a capacidade sob demanda ou um plano de treinamento para reservar seus recursos de computação.

1. Em **Selecionar tipo de instância**, escolha a instância para o grupo de instâncias. Para este tutorial, selecione `ml.c5.xlarge` para `my-controller-group`, `ml.m5.4xlarge` para `my-login-group`, e `ml.trn1.32xlarge` para `worker-group-1`. 
**Importante**  
Escolha um tipo de instância com cotas suficientes e endereços IP não atribuídos suficientes para sua conta. Para visualizar ou solicitar cotas adicionais, consulte [SageMaker HyperPod cotas](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

1. Em **Quantidade de instâncias**, especifique um número inteiro que não exceda a cota de instância para uso do cluster. Para este tutorial, insira **1** para todos os três grupos.

1. Na lista **Zona de disponibilidade de destino**, selecione a zona de disponibilidade onde suas instâncias serão provisionadas. A zona de disponibilidade deve corresponder ao local da sua capacidade de computação acelerada.

1. Em **Outros volumes de armazenamento por instância (GB)**, especifique um número inteiro entre 1 e 16.384 para definir o tamanho de um volume adicional do Elastic Block Store (EBS) em gigabytes (GB). O volume do EBS é anexado a cada instância do grupo de instâncias. O caminho de montagem padrão para o volume adicional do EBS é`/opt/sagemaker`. Depois que o cluster for criado com sucesso, você poderá entrar por SSH nas instâncias do cluster (nós) e verificar se o volume do EBS está montado corretamente executando o comando `df -h`. A anexação de um volume adicional do EBS fornece armazenamento estável, fora da instância e com persistência independente, conforme descrito na [seção de volumes do Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes.html) no Guia do usuário do *Amazon Elastic* Block Store.

1. Escolha **Adicionar grupo de instâncias**.

### Scripts de ciclo de vida
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-lifecycle"></a>

Você pode optar por usar os scripts de ciclo de vida padrão ou os scripts de ciclo de vida personalizados, que serão armazenados em seu bucket do Amazon S3. Você pode visualizar os scripts de ciclo de vida padrão no repositório [Awesome Distributed Training GitHub ](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/7.sagemaker-hyperpod-eks/LifecycleScripts). Para saber mais sobre os scripts de ciclo de vida, consulte [Personalização de SageMaker HyperPod clusters usando scripts de ciclo de vida](sagemaker-hyperpod-lifecycle-best-practices-slurm.md).

1. Em **Scripts de ciclo de vida**, opte por usar o script de ciclo de vida padrão ou scripts personalizados.

1. Para **Scripts de ciclo de vida do bucket do S3**, opte por criar um bucket ou usar um existente para armazenar os scripts de ciclo de vida.

### Permissões
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-permissions"></a>

Escolha ou crie uma função do IAM que permita HyperPod executar e acessar AWS os recursos necessários em seu nome.

### Armazenamento
<a name="smcluster-getting-started-slurm-console-create-cluster-custom-storage"></a>

Configure o FSx sistema de arquivos Lustre para ser provisionado no cluster. HyperPod 

1. Para **Sistema de arquivos**, escolha um sistema de arquivos existente FSx para o Lustre, para criar um novo sistema de arquivos FSx para o Lustre, ou não provisione um sistema de arquivos FSx para o Lustre.

1. Em **Throughput por unidade de armazenamento**, escolha o throughput que estará disponível por TiB de armazenamento provisionado.

1. Em **Capacidade de armazenamento**, insira um valor de capacidade em TB.

1. Em **Tipo de compactação de dados**, escolha ativar **LZ4**a compactação de dados.

1. Em **Versão do Lustre**, veja o valor recomendado para os novos sistemas de arquivos.

### Tags: opcional
<a name="smcluster-getting-started-slurm-console-create-cluster-tags"></a>

Para **Tags - *opcional***, adicione pares de chaves e valores ao novo cluster e gerencie o cluster como um AWS recurso. Para saber mais, consulte [Marcação de AWS recursos](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html).

## Implantar recursos.
<a name="smcluster-getting-started-slurm-console-create-cluster-deploy"></a>

Depois de concluir as configurações do cluster usando a **Configuração rápida** ou a **Configuração personalizada**, escolha a opção a seguir para iniciar o provisionamento de recursos e a criação do cluster.
+  **Enviar** — a SageMaker IA começará a provisionar os recursos de configuração padrão e a criar o cluster. 
+ **Baixar parâmetros CloudFormation do modelo** - Você fará o download do arquivo JSON do parâmetro de configuração e executará o AWS CLI comando para implantar a CloudFormation pilha para provisionar os recursos de configuração e criar o cluster. Você pode editar o arquivo JSON do parâmetro baixado, se necessário. Se você escolher essa opção, consulte mais instruções em [Criação de SageMaker HyperPod clusters usando CloudFormation modelos](smcluster-getting-started-slurm-console-create-cluster-cfn.md).

## Exclua o cluster e limpe os recursos.
<a name="smcluster-getting-started-slurm-console-delete-cluster-and-clean"></a>

Depois de testar com êxito a criação de um SageMaker HyperPod cluster, ele continua sendo executado no `InService` estado até que você exclua o cluster. Recomendamos que você exclua todos os clusters criados usando instâncias de SageMaker IA sob demanda quando não estiverem em uso para evitar cobranças de serviço contínuas com base nos preços sob demanda. Neste tutorial, você criou um cluster que consiste em dois grupos de instâncias. Um deles usa uma instância C5, portanto, exclua o cluster seguindo as instruções em [Excluir um SageMaker HyperPod cluster](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-delete-cluster).

No entanto, se você tiver criado um cluster com capacidade computacional reservada, o status dos clusters não afetará o faturamento do serviço.

Para limpar os scripts de ciclo de vida do bucket do S3 usados neste tutorial, acesse o bucket do S3 usado durante a criação do cluster e remova completamente os arquivos.

Se você testou a execução de qualquer carga de trabalho no cluster, verifique se você carregou algum dado ou se seu trabalho salvou algum artefato em diferentes buckets do S3 ou serviços do sistema de arquivos, como Amazon FSx for Lustre e Amazon Elastic File System. Para evitar cobranças, exclua todos os artefatos e dados do armazenamento ou do sistema de arquivos.

# Criação de SageMaker HyperPod clusters usando CloudFormation modelos
<a name="smcluster-getting-started-slurm-console-create-cluster-cfn"></a>

Você pode criar SageMaker HyperPod clusters usando os CloudFormation modelos para HyperPod. Você deve instalar AWS CLI para continuar.

**Topics**
+ [Configure recursos no console e implante usando CloudFormation](#smcluster-getting-started-slurm-console-create-cluster-deploy-console)
+ [Configure recursos e implante usando CloudFormation](#smcluster-getting-started-slurm-console-create-cluster-deploy-cfn)

## Configure recursos no console e implante usando CloudFormation
<a name="smcluster-getting-started-slurm-console-create-cluster-deploy-console"></a>

Você pode configurar recursos usando o Console de gerenciamento da AWS e implantar usando os CloudFormation modelos. 

Siga estas etapas.

1. *Em vez de escolher **Enviar***, escolha **Baixar parâmetros do CloudFormation modelo** no final do tutorial em[Começando a SageMaker HyperPod usar o console de SageMaker IA](smcluster-getting-started-slurm-console.md). O tutorial contém informações de configuração importantes das quais você precisará para criar o cluster com êxito.
**Importante**  
Se você escolher **Enviar**, não poderá implantar um cluster com o mesmo nome enquanto não excluir o cluster.

   Depois de escolher **Baixar parâmetros do CloudFormation modelo**, a janela **Usando o arquivo de configuração para criar o cluster usando** a AWS CLI janela aparecerá no lado direito da página.

1. Na janela **Usar o arquivo de configuração para criar o cluster usando a AWS CLI**, escolha **Baixar arquivo de parâmetros de configuração**. O arquivo será baixado na sua máquina. Você pode editar o arquivo JSON de configuração com base nas suas necessidades ou deixá-lo como está, se nenhuma alteração for necessária.

1. Em um terminal, navegue até o local do arquivo de parâmetro `file://params.json`.

1. Execute o AWS CLI comando [create-stack](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/create-stack.html) para implantar a CloudFormation pilha que provisionará os recursos configurados e criará o 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. [Para ver o status do provisionamento de recursos, navegue até o CloudFormation console.](https://console.aws.amazon.com/cloudformation)

   Depois que a criação do cluster for concluída, visualize o novo cluster em **Clusters** no painel principal do SageMaker HyperPod console. Você pode conferir o status exibido na coluna **Status**.

1. Depois que o status do cluster mudar para `InService`, você poderá começar a fazer login nos nós do cluster. Para acessar os nós do cluster e começar a executar workloads de ML, consulte [Trabalhos em SageMaker HyperPod clusters](sagemaker-hyperpod-run-jobs-slurm.md).

## Configure recursos e implante usando CloudFormation
<a name="smcluster-getting-started-slurm-console-create-cluster-deploy-cfn"></a>

Você pode configurar recursos e implantar usando os CloudFormation modelos para SageMaker HyperPod.

Siga estas etapas.

1. Baixe um CloudFormation modelo para SageMaker HyperPod do [sagemaker-hyperpod-cluster-setup](https://github.com/aws/sagemaker-hyperpod-cluster-setup) GitHub repositório.

1. Execute o AWS CLI comando [create-stack](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/create-stack.html) para implantar a CloudFormation pilha que provisionará os recursos configurados e criará o 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. Para ver o status do provisionamento de recursos, navegue até o console do CloudFormation .

   Depois que a criação do cluster for concluída, visualize o novo cluster em **Clusters** no painel principal do SageMaker HyperPod console. Você pode conferir o status exibido na coluna **Status**.

1. Depois que o status do cluster mudar para `InService`, você poderá começar a fazer login nos nós do cluster. Para acessar os nós do cluster e começar a executar workloads de ML, consulte [Trabalhos em SageMaker HyperPod clusters](sagemaker-hyperpod-run-jobs-slurm.md).

# Começando a SageMaker HyperPod usar o AWS CLI
<a name="smcluster-getting-started-slurm-cli"></a>

Crie seu primeiro SageMaker HyperPod cluster usando os AWS CLI comandos para HyperPod.

## Crie seu primeiro SageMaker HyperPod cluster com o Slurm
<a name="smcluster-getting-started-slurm-cli-create-cluster"></a>

[O tutorial a seguir demonstra como criar um novo SageMaker HyperPod cluster e configurá-lo com o Slurm por meio dos AWS CLI comandos para. SageMaker HyperPod](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-cli) Seguindo o tutorial, você criará um HyperPod cluster com três nós do Slurm: `my-controller-group``my-login-group`, e. `worker-group-1`

Com a abordagem de configuração orientada por API, você define os tipos de nós do Slurm e as atribuições de partição diretamente na solicitação da API usando. CreateCluster `SlurmConfig` Isso elimina a necessidade de um `provisioning_parameters.json` arquivo separado e fornece validação, detecção de desvios e per-instance-group FSx configuração integradas.

1. Primeiro, prepare e faça upload de scripts de ciclo de vida em um bucket do Amazon S3. Durante a criação do cluster, eles são HyperPod executados em cada grupo de instâncias. Faça upload de scripts de ciclo de vida no Amazon S3 usando o comando a seguir.

   ```
   aws s3 sync \
       ~/local-dir-to-lifecycle-scripts/* \
       s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
   ```
**nota**  
O caminho do bucket do S3 deve começar com um prefixo`sagemaker-`, porque a [função do IAM para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod) with `AmazonSageMakerClusterInstanceRolePolicy` só permite o acesso aos buckets do Amazon S3 que começam com o prefixo específico.

   Se você está começando do zero, use exemplos de scripts de ciclo de vida fornecidos no repositório do [Awsome Distributed Training](https://github.com/aws-samples/awsome-distributed-training/). GitHub As subetapas a seguir mostram como baixar e carregar os exemplos de scripts de ciclo de vida em um bucket do Amazon S3.

   1. Faça download de uma cópia dos exemplos de scripts do ciclo de vida em um diretório local do computador local.

      ```
      git clone https://github.com/aws-samples/awsome-distributed-training/
      ```

   1. Acesse o diretório [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), em que você pode encontrar um conjunto de scripts de ciclo de vida.

      ```
      cd awsome-distributed-training/1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config
      ```

      Para saber mais sobre os exemplos de scripts do ciclo de vida, consulte. [Personalização de SageMaker HyperPod clusters usando scripts de ciclo de vida](sagemaker-hyperpod-lifecycle-best-practices-slurm.md)

   1. Faça o upload de scripts em `s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src`. Você pode fazer isso no console do Amazon S3 ou executando o seguinte comando da AWS CLI do Amazon S3:

      ```
      aws s3 sync \
          ~/local-dir-to-lifecycle-scripts/* \
          s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
      ```
**nota**  
Com a configuração orientada por API, você não precisa criar ou carregar um `provisioning_parameters.json` arquivo. A configuração do Slurm é definida diretamente na solicitação da CreateCluster API na próxima etapa.

1. Prepare um arquivo de [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)solicitação no formato JSON e salve como`create_cluster.json`.

   Com a configuração orientada por API, você especifica o tipo de nó do Slurm e a atribuição de partição para cada grupo de instâncias usando o campo. `SlurmConfig` Você também define as configurações do Slurm em nível de cluster usando. `Orchestrator.Slurm`

   Para `ExecutionRole`, forneça o ARN do perfil do IAM que você criou com o `AmazonSageMakerClusterInstanceRolePolicy` gerenciado em [Pré-requisitos para usar 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 campos**:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/smcluster-getting-started-slurm-cli.html)

   **Campos do Orchestrator.Slurm:**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/smcluster-getting-started-slurm-cli.html)

   **SlurmConfigStrategy opções:**
   + `Managed`(recomendado): gerencia `slurm.conf` e detecta HyperPod totalmente alterações não autorizadas (detecção de desvios). As atualizações falharão se um desvio for detectado.
   + `Overwrite`: HyperPod substitui `slurm.conf` as atualizações, ignorando quaisquer alterações manuais.
   + `Merge`: HyperPod preserva as alterações manuais e as mescla com a configuração da API.

   **Adicionando FSx para Lustre (opcional):**

   Para montar um FSx sistema de arquivos for Lustre em seus nós de computação, adicione-o `FsxLustreConfig` ao grupo for the `InstanceStorageConfigs` instance. Isso requer uma configuração de VPC personalizada.

   ```
   {
       "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"
   }
   ```

   **Adicionando FSx para o OpenZFS (opcional):**

   Você também pode montar FSx para sistemas de arquivos OpenZFS:

   ```
   "InstanceStorageConfigs": [
       {
           "FsxOpenZfsConfig": {
               "DnsName": "fs-0xyz789abc123456.fsx.us-west-2.amazonaws.com",
               "MountPath": "/shared"
           }
       }
   ]
   ```
**nota**  
Cada grupo de instâncias pode ter no máximo um FSx para o Lustre e outro FSx para a configuração do OpenZFS. Grupos de instâncias diferentes podem montar sistemas de arquivos diferentes.

   **Adicionar a configuração de VPC (necessária para FSx):**

   Se estiver usando FSx, você deve especificar uma configuração de VPC personalizada:

   ```
   {
       "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. Use o seguinte comando para criar o cluster:

   ```
   aws sagemaker create-cluster --cli-input-json file://complete/path/to/create_cluster.json
   ```

   Isso deve retornar o ARN do cluster criado.

   ```
   {
       "ClusterArn": "arn:aws:sagemaker:us-west-2:111122223333:cluster/my-hyperpod-cluster"
   }
   ```

   Se você receber um erro devido a limites de recurso, altere o tipo de instância para uma com cotas suficientes em sua conta ou solicite cotas adicionais seguindo [SageMaker HyperPod cotas](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

   **Erros comuns de validação:**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/smcluster-getting-started-slurm-cli.html)

1. Execute `describe-cluster` para verificar o status do cluster.

   ```
   aws sagemaker describe-cluster --cluster-name my-hyperpod-cluster
   ```

   Exemplo de resposta:

   ```
   {
       "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"
   }
   ```

   Depois que o status do cluster for alterado para **InService**, avance para a próxima etapa. A criação do cluster normalmente leva de 10 a 15 minutos.

1. Execute `list-cluster-nodes` para verificar os detalhes dos nós do cluster.

   ```
   aws sagemaker list-cluster-nodes --cluster-name my-hyperpod-cluster
   ```

   Exemplo de resposta:

   ```
   {
       "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`É isso que os usuários do seu cluster precisam para fazer login (`aws ssm`) neles. Para mais informações sobre como fazer login nos nós do cluster e executar workloads de ML, consulte [Trabalhos em SageMaker HyperPod clusters](sagemaker-hyperpod-run-jobs-slurm.md).

1. Conecte-se ao seu cluster usando o Gerenciador de AWS Systems Manager Sessões.

   ```
   aws ssm start-session \
       --target sagemaker-cluster:my-hyperpod-cluster_my-login-group-i-0abc123def456789b \
       --region us-west-2
   ```

   Depois de conectado, verifique se o Slurm está configurado corretamente:

   ```
   # Check Slurm nodes
   sinfo
   
   # Check Slurm partitions
   sinfo -p partition-1
   
   # Submit a test job
   srun -p partition-1 --nodes=1 hostname
   ```

## Exclua o cluster e limpe os recursos.
<a name="smcluster-getting-started-slurm-cli-delete-cluster-and-clean"></a>

Depois de testar com êxito a criação de um SageMaker HyperPod cluster, ele continua sendo executado no `InService` estado até que você exclua o cluster. Recomendamos que você exclua todos os clusters criados usando a capacidade de SageMaker IA sob demanda quando não estiverem em uso para evitar cobranças de serviço contínuas com base nos preços sob demanda. Neste tutorial, você criou um cluster que consiste em três grupos de instâncias. Certifique-se de excluir o cluster executando o comando a seguir.

```
aws sagemaker delete-cluster --cluster-name my-hyperpod-cluster
```

Para limpar os scripts de ciclo de vida do bucket do Amazon S3 usados neste tutorial, acesse o bucket do Amazon S3 que você usou durante a criação do cluster e remova completamente os arquivos.

```
aws s3 rm s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src --recursive
```

Se você testou a execução de qualquer modelo de carga de trabalho de treinamento no cluster, verifique também se você carregou algum dado ou se seu trabalho salvou algum artefato em diferentes buckets do Amazon S3 ou serviços do sistema de arquivos, como Amazon for Lustre e FSx Amazon Elastic File System. Para evitar cobranças, exclua todos os artefatos e dados do armazenamento ou do sistema de arquivos.

## Tópicos relacionados
<a name="smcluster-getting-started-slurm-cli-related-topics"></a>
+ [SageMaker HyperPod Configuração do Slurm](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-slurm-configuration)
+ [Personalização de SageMaker HyperPod clusters usando scripts de ciclo de vida](sagemaker-hyperpod-lifecycle-best-practices-slurm.md)
+ [FSx configuração via InstanceStorageConfigs](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-slurm-fsx-config)
+ [SageMaker HyperPod Operações de cluster do Slurm](sagemaker-hyperpod-operate-slurm.md)

# SageMaker HyperPod Operações de cluster do Slurm
<a name="sagemaker-hyperpod-operate-slurm"></a>

Esta seção fornece orientação sobre como gerenciar SageMaker HyperPod por meio da interface do usuário do console de SageMaker IA ou da AWS Command Line Interface (CLI). Você aprenderá a realizar várias tarefas relacionadas a SageMaker HyperPod, independentemente de preferir uma interface visual ou trabalhar com comandos.

**Topics**
+ [Gerenciando clusters do SageMaker HyperPod Slurm usando o console SageMaker](sagemaker-hyperpod-operate-slurm-console-ui.md)
+ [Gerenciando clusters SageMaker HyperPod do Slurm usando o AWS CLI](sagemaker-hyperpod-operate-slurm-cli-command.md)

# Gerenciando clusters do SageMaker HyperPod Slurm usando o console SageMaker
<a name="sagemaker-hyperpod-operate-slurm-console-ui"></a>

Os tópicos a seguir fornecem orientação sobre como gerenciar SageMaker HyperPod por meio da interface do usuário do console.

**Topics**
+ [Crie um SageMaker HyperPod cluster](#sagemaker-hyperpod-operate-slurm-console-ui-create-cluster)
+ [Navegue pelos seus SageMaker HyperPod clusters](#sagemaker-hyperpod-operate-slurm-console-ui-browse-clusters)
+ [Veja os detalhes de cada SageMaker HyperPod cluster](#sagemaker-hyperpod-operate-slurm-console-ui-view-details-of-clusters)
+ [Editar um SageMaker HyperPod cluster](#sagemaker-hyperpod-operate-slurm-console-ui-edit-clusters)
+ [Excluir um SageMaker HyperPod cluster](#sagemaker-hyperpod-operate-slurm-console-ui-delete-cluster)

## Crie um SageMaker HyperPod cluster
<a name="sagemaker-hyperpod-operate-slurm-console-ui-create-cluster"></a>

Veja as instruções em [Começando a SageMaker HyperPod usar o console de SageMaker IA](smcluster-getting-started-slurm-console.md) para criar um novo SageMaker HyperPod cluster por meio da interface do usuário do SageMaker HyperPod console.

## Navegue pelos seus SageMaker HyperPod clusters
<a name="sagemaker-hyperpod-operate-slurm-console-ui-browse-clusters"></a>

Em **Clusters** no painel principal do SageMaker HyperPod console na página principal do SageMaker HyperPod console, todos os clusters criados devem aparecer listados na seção **Clusters**, que fornece uma visão resumida dos clusters ARNs, seus status e horário de criação.

## Veja os detalhes de cada SageMaker HyperPod cluster
<a name="sagemaker-hyperpod-operate-slurm-console-ui-view-details-of-clusters"></a>

Em **Clusters** na página principal do console, os **nomes dos clusters** são ativados como links. Escolha o link do nome do cluster para ver os detalhes de cada cluster.

## Editar um SageMaker HyperPod cluster
<a name="sagemaker-hyperpod-operate-slurm-console-ui-edit-clusters"></a>

1. Em **Clusters** no painel principal do SageMaker HyperPod console, escolha o cluster que você deseja atualizar.

1. Selecione o cluster e escolha **Editar**.

1. Na página **Editar <nome do seu cluster>**, você pode editar as configurações dos grupos de instâncias existentes, adicionar ou excluir grupos de instâncias, bem como alterar as tags do cluster. Depois de fazer suas alterações, escolha **Avançar**. 

   1. Na seção **Configurar grupos de instâncias**, você pode adicionar grupos de instâncias escolhendo **Criar grupo de instâncias**.

   1. Na seção **Configurar grupos de instâncias**, você pode escolher **Editar** para alterar sua configuração ou **Excluir** para remover o grupo de instâncias permanentemente.
**Importante**  
Ao excluir um grupo de instâncias, considere os seguintes pontos:  
Seu SageMaker HyperPod cluster deve sempre manter pelo menos um grupo de instâncias.
Garanta que todos os dados essenciais sejam copiados antes da remoção.
O processo de remoção não pode ser desfeito.
**nota**  
A exclusão de um grupo de instâncias encerrará todos os recursos de computação associados a esse grupo.

   1. Na seção **Marcações**, você pode atualizar as marcações do cluster.

## Excluir um SageMaker HyperPod cluster
<a name="sagemaker-hyperpod-operate-slurm-console-ui-delete-cluster"></a>

1. Em **Clusters** no painel principal do SageMaker HyperPod console, escolha o cluster que você deseja excluir.

1. Selecione o cluster e escolha **Excluir**.

1. Na janela pop-up para exclusão do cluster, revise cuidadosamente as informações do cluster para confirmar se você escolheu o cluster certo para excluir.

1. Depois de analisar as informações do cluster, escolha **Sim, excluir cluster**.

1. Insira **delete** no campo de texto para confirmar a exclusão.

1. Escolha **Excluir** no canto inferior direito da janela pop-up para concluir o envio da solicitação de exclusão do cluster.

# Gerenciando clusters SageMaker HyperPod do Slurm usando o AWS CLI
<a name="sagemaker-hyperpod-operate-slurm-cli-command"></a>

Os tópicos a seguir fornecem orientação sobre como escrever arquivos de solicitação de SageMaker HyperPod API no formato JSON e executá-los usando os AWS CLI comandos.

**Topics**
+ [Criar um novo cluster](#sagemaker-hyperpod-operate-slurm-cli-command-create-cluster)
+ [Descrever um cluster](#sagemaker-hyperpod-operate-slurm-cli-command-describe-cluster)
+ [Listar detalhes dos nós do cluster](#sagemaker-hyperpod-operate-slurm-cli-command-list-cluster-nodes)
+ [Descrever detalhes de um nó de cluster](#sagemaker-hyperpod-operate-slurm-cli-command-describe-cluster-node)
+ [Listar clusters](#sagemaker-hyperpod-operate-slurm-cli-command-list-clusters)
+ [Atualizar a configuração do cluster](#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster)
+ [Atualizar o software da SageMaker HyperPod plataforma de um cluster](#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software)
+ [Reduzir a escala verticalmente do cluster](#sagemaker-hyperpod-operate-slurm-cli-command-scale-down)
+ [Excluir um cluster](#sagemaker-hyperpod-operate-slurm-cli-command-delete-cluster)

## Criar um novo cluster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-create-cluster"></a>

1. Prepare scripts de configuração de ciclo de vida e faça upload deles em um bucket do S3, como `s3://sagemaker-amzn-s3-demo-bucket/lifecycle-script-directory/src/`. A etapa 2 a seguir pressupõe que há um script de ponto de entrada nomeado `on_create.sh` no bucket do S3 especificado.
**Importante**  
Defina o caminho do S3 para começar com `s3://sagemaker-`. O [Função do IAM para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod) tem o gerenciado [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) anexado, que permite o acesso aos buckets do S3 com o prefixo específico `sagemaker-`.

1. Prepare um arquivo de solicitação de [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)API no formato JSON. Você deve configurar grupos de instâncias para que correspondam ao cluster Slurm projetado no `provisioning_parameters.json` arquivo que será usado durante a criação do cluster como parte da execução de um conjunto de scripts de ciclo de vida. Para saber mais, consulte [Personalização de SageMaker HyperPod clusters usando scripts de ciclo de vida](sagemaker-hyperpod-lifecycle-best-practices-slurm.md). O seguinte modelo tem dois grupos de instâncias para atender ao requisito mínimo de um cluster Slurm: um nó controlador (principal) e um nó de computação (processamento). Para `ExecutionRole`, forneça o ARN do perfil do IAM que você criou com o `AmazonSageMakerClusterInstanceRolePolicy` gerenciado da seção [Função do IAM para 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" ]
       }
   }
   ```

   Dependendo de como você projeta a estrutura do cluster por meio de seus scripts de ciclo de vida, é possível configurar até 20 grupos de instâncias sob o parâmetro `InstanceGroups`.

   Para o parâmetro de `Tags` solicitação, você pode adicionar tags personalizadas para gerenciar o SageMaker HyperPod cluster como um AWS recurso. Você pode adicionar tags ao seu cluster da mesma forma que as adiciona em outros AWS serviços que oferecem suporte à marcação. Para saber mais sobre a marcação de AWS recursos em geral, consulte o Guia [do usuário de AWS recursos de marcação](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html).

   Para o parâmetro de solicitação `VpcConfig`, especifique as informações de uma VPC que deseja usar. Para obter mais informações, consulte [Configuração SageMaker HyperPod com uma Amazon VPC personalizada](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-optional-vpc).

1. Execute o comando [create-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-cluster.html) da seguinte maneira:

   ```
   aws sagemaker create-cluster \
       --cli-input-json file://complete/path/to/create_cluster.json
   ```

   Isso deve retornar o ARN do novo cluster.

## Descrever um cluster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-describe-cluster"></a>

Execute [describe-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/describe-cluster.html) para verificar o status do cluster. Você pode especificar o nome ou o ARN do cluster.

```
aws sagemaker describe-cluster --cluster-name your-hyperpod-cluster
```

Depois que o status do cluster for alterado para **InService**, avance para a próxima etapa. Usando essa API, você também pode recuperar mensagens de falha da execução de outras operações de HyperPod API.

## Listar detalhes dos nós do cluster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-list-cluster-nodes"></a>

Execute [list-cluster-nodes](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-cluster-nodes.html)para verificar as principais informações dos nós do cluster.

```
aws sagemaker list-cluster-nodes --cluster-name your-hyperpod-cluster
```

Isso retorna uma resposta e `InstanceId` é o que você precisa usar para fazer login (usar`aws ssm`) nelas.

## Descrever detalhes de um nó de cluster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-describe-cluster-node"></a>

Execute [describe-cluster-node](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/describe-cluster-node.html)para recuperar detalhes de um nó do cluster. Você pode obter o ID do nó do cluster na list-cluster-nodes saída. Você pode especificar o nome ou o ARN do cluster.

```
aws sagemaker describe-cluster-node \
    --cluster-name your-hyperpod-cluster \
    --node-id i-111222333444555aa
```

## Listar clusters
<a name="sagemaker-hyperpod-operate-slurm-cli-command-list-clusters"></a>

Execute [list-clusters](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-clusters.html) para listar todos os clusters em sua conta.

```
aws sagemaker list-clusters
```

Você também pode adicionar sinalizadores adicionais para filtrar a lista de clusters. Para saber mais sobre o que esse comando executa em baixo nível e sinalizadores adicionais para filtragem, consulte a referência da [ListClusters](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListClusters.html)API.

## Atualizar a configuração do cluster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-update-cluster"></a>

Execute [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) para atualizar a configuração de um cluster.

**nota**  
Você pode usar a `UpdateCluster` API para reduzir ou remover grupos inteiros de instâncias do seu SageMaker HyperPod cluster. Para obter instruções adicionais sobre como reduzir a escala verticalmente de grupos de instâncias ou excluí-las, consulte [Reduzir a escala verticalmente do cluster](#sagemaker-hyperpod-operate-slurm-cli-command-scale-down).

1. Cria um arquivo de `UpdateCluster` solicitação no formato JSON. Certifique-se de especificar o nome correto do cluster e do grupo de instâncias a serem atualizados. Você pode alterar o tipo de instância, o número de instâncias, o script do ponto de entrada da configuração do ciclo de vida e o caminho para o script.

   1. Para `ClusterName`, escolha o nome do cluster que deseja atualizar.

   1. Para `InstanceGroupName`

      1. Para atualizar um grupo de instâncias existente, especifique o nome do grupo de instâncias que você quer atualizar.

      1. Para adicionar um novo grupo de instâncias, especifique um novo nome que não existe no seu cluster.

   1. Para `InstanceType`

      1. Para atualizar um grupo de instâncias existente, você precisa corresponder ao grupo o tipo de instância especificado inicialmente.

      1. Para adicionar um novo grupo de instâncias, especifique o tipo de instância com o qual você quer configurar o grupo.

   1. Para `InstanceCount`

      1. Para atualizar um grupo de instâncias existente, especifique um número inteiro que corresponda ao número desejado de instâncias. Você pode fornecer um valor maior ou menor (até 0) para aumentar ou reduzir a escala verticalmente do grupo de instâncias.

      1. Para adicionar um novo grupo de instâncias, especifique um número inteiro maior ou igual a 1. 

   1. Para `LifeCycleConfig`, você pode alterar os valores `SourceS3Uri` e `OnCreate`e os valores conforme quiser para atualizar o grupo de instâncias.

   1. Para `ExecutionRole`

      1. Para atualizar um grupo de instâncias existente, continue usando a mesmo perfil do IAM que você anexou durante a criação do cluster.

      1. Para adicionar um novo grupo de instâncias, especifique um perfil do IAM que você deseja anexar.

   1. Para `ThreadsPerCore`

      1. Para atualizar um grupo de instâncias existente, continue usando o mesmo valor especificado durante a criação do cluster.

      1. Para adicionar um novo grupo de instâncias, você pode escolher qualquer valor entre as opções permitidas por tipo de instância. Para obter mais informações, pesquise o tipo de instância e consulte a coluna **Threads válidos por núcleo** na tabela de referência em [núcleos de CPU e segmentos por núcleo de CPU por tipo de instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cpu-options-supported-instances-values.html) no *Guia do usuário do Amazon EC2*.

   O trecho de código a seguir é um modelo de arquivo de solicitação JSON que você pode usar. Para obter mais informações sobre a sintaxe e os parâmetros da solicitação dessa API, consulte a referência da [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. Execute o comando `update-cluster` a seguir para obter o ARN do stream. 

   ```
   aws sagemaker update-cluster \
       --cli-input-json file://complete/path/to/update_cluster.json
   ```

## Atualizar o software da SageMaker HyperPod plataforma de um cluster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software"></a>

Execute [update-cluster-software](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster-software.html)para atualizar os clusters existentes com os patches de software e segurança fornecidos pelo SageMaker HyperPod serviço. Para `--cluster-name`, especifique o nome ou o ARN do cluster a ser atualizado.

**Importante**  
Observe que você deve fazer backup do seu trabalho antes de executar essa API. O processo de aplicação de patches substitui o volume raiz pela AMI atualizada, o que significa que seus dados anteriores armazenados no volume raiz da instância serão perdidos. Certifique-se de fazer backup dos dados do volume raiz da instância no Amazon S3 ou no Amazon FSx for Lustre. Para obter mais informações, consulte [Use o script de backup fornecido pelo SageMaker HyperPod](#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software-backup).

```
aws sagemaker update-cluster-software --cluster-name your-hyperpod-cluster
```

Esse comando chama a [UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API. Após a chamada da API, SageMaker HyperPod verifica se há uma nova DLAMI disponível para as instâncias do cluster. Se uma atualização do DLAMI for necessária SageMaker HyperPod , atualizará as instâncias do cluster para usar as [SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami) mais recentes e executará seus scripts de ciclo de vida no bucket do Amazon S3 que você especificou durante a criação ou atualização do cluster. Se o cluster já estiver usando a DLAMI mais recente SageMaker HyperPod , não fará nenhuma alteração no cluster nem executará os scripts de ciclo de vida novamente. A equipe SageMaker HyperPod de serviço lança regularmente novos [SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami) s para aprimorar a segurança e melhorar a experiência do usuário. Recomendamos que você sempre continue atualizando para o SageMaker HyperPod DLAMI mais recente. Para futuras atualizações SageMaker HyperPod do DLAMI para patches de segurança, entre em contato com. [Notas SageMaker HyperPod de lançamento da Amazon](sagemaker-hyperpod-release-notes.md)

**dica**  
Se o patch de segurança falhar, você poderá recuperar as mensagens de falha executando a API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html) conforme as instruções em [Descrever um cluster](#sagemaker-hyperpod-operate-slurm-cli-command-describe-cluster).

**nota**  
Você só pode executar essa API de forma programática. A funcionalidade de correção não está implementada na interface do usuário do SageMaker HyperPod console.

### Use o script de backup fornecido pelo SageMaker HyperPod
<a name="sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software-backup"></a>

SageMaker HyperPod fornece um script para fazer backup e restaurar seus dados [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)no * GitHub repositório do Awsome Distributed Training*. A extensão fornece as duas funções a seguir.

**Fazer backup de dados em um bucket do S3 antes de aplicar o patch**

```
sudo bash patching-backup.sh --create <s3-buckup-bucket-path>
```

Depois que você executar o comando, o script verificará `squeue` se houver trabalhos em fila, interromperá o Slurm se não houver nenhum trabalho na fila, fará backup do `mariadb` e copiará itens locais no disco definido em `LOCAL_ITEMS`. Você pode adicionar mais arquivos e diretórios 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
)
```

Além disso, você pode adicionar código personalizado ao script fornecido para fazer backup de qualquer aplicação para seu caso de uso.

**Para restaurar dados de um bucket S3 após a aplicação de patches**

```
sudo bash patching-backup.sh --restore <s3-buckup-bucket-path>
```

## Reduzir a escala verticalmente do cluster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-scale-down"></a>

Você pode reduzir o número de instâncias ou excluir grupos de instâncias em seu SageMaker HyperPod cluster para otimizar a alocação de recursos ou reduzir custos.

Para reduzir a escala verticalmente, use a operação de API `UpdateCluster` para encerrar aleatoriamente as instâncias do seu grupo de instâncias até um número especificado ou encerre instâncias específicas usando a operação de API `BatchDeleteClusterNodes`. Também é possível remover completamente grupos de instâncias inteiros usando a API `UpdateCluster`. Para ter mais informações sobre como reduzir a escala verticalmente usando esses métodos, consulte [Reduzindo a escala de um cluster SageMaker HyperPod](smcluster-scale-down.md).

**nota**  
Não é possível remover instâncias configuradas como nós controladores do Slurm. A tentativa de excluir um nó controlador do Slurm resulta em um erro de validação com o código `NODE_ID_IN_USE`.

## Excluir um cluster
<a name="sagemaker-hyperpod-operate-slurm-cli-command-delete-cluster"></a>

Execute [delete-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/delete-cluster.html) para excluir um cluster. Você pode especificar o nome ou o ARN do cluster.

```
aws sagemaker delete-cluster --cluster-name your-hyperpod-cluster
```

# Personalização de SageMaker HyperPod clusters usando scripts de ciclo de vida
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm"></a>

SageMaker HyperPod oferece sempre clusters de up-and-running computação, que são altamente personalizáveis, pois você pode escrever scripts de ciclo de vida para informar SageMaker HyperPod como configurar os recursos do cluster. Os tópicos a seguir são as melhores práticas para preparar scripts de ciclo de vida para configurar SageMaker HyperPod clusters com ferramentas de gerenciamento de carga de trabalho de código aberto.

Os tópicos a seguir discutem as melhores práticas detalhadas para preparar scripts de ciclo de vida para configurar as configurações do Slurm. SageMaker HyperPod

## Uma visão geral de alto nível
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-highlevel-overview"></a>

O procedimento a seguir é o fluxo principal de provisionamento de um HyperPod cluster e sua configuração com o Slurm. As etapas são colocadas na ordem de uma abordagem de ***baixo para cima***.

1. Planeje como você deseja criar nós do Slurm em um HyperPod cluster. Por exemplo, se você quiser configurar dois nós do Slurm, precisará configurar dois grupos de instâncias em um HyperPod cluster.

1. Prepare a configuração do Slurm. Escolha uma das seguintes abordagens:
   + **Opção A: configuração orientada por API (recomendada)** — defina os tipos de nós e partições do Slurm diretamente na carga da `CreateCluster` API usando dentro de cada grupo de instâncias. `SlurmConfig` Com essa abordagem:
     + Nenhum `provisioning_parameters.json` arquivo é necessário
     + A topologia do Slurm é definida na carga útil da API junto com as definições do grupo de instâncias
     + FSx os sistemas de arquivos são configurados via per-instance-group `InstanceStorageConfigs`
     + A estratégia de configuração é controlada via `Orchestrator.Slurm.SlurmConfigStrategy`

     Exemplo `SlurmConfig` em um grupo de instâncias:

     ```
     {
         "InstanceGroupName": "gpu-compute",
         "InstanceType": "ml.p4d.24xlarge",
         "InstanceCount": 8,
         "SlurmConfig": {
             "NodeType": "Compute",
             "PartitionNames": ["gpu-training"]
         }
     }
     ```
   + **Opção B: Configuração legada** — Prepare um `provisioning_parameters.json` arquivo, que é um[Formulário de configuração para provisioning\$1parameters.json](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-provisioning-forms-slurm). `provisioning_parameters.json`deve conter informações de configuração do nó Slurm a serem provisionadas no cluster. HyperPod Isso deve refletir o design dos nós do Slurm da Etapa 1.

1. Prepare um conjunto de scripts de ciclo de vida para configurar o Slurm on HyperPod para instalar pacotes de software e configurar um ambiente no cluster para seu caso de uso. Você deve estruturar os scripts de ciclo de vida para serem executados coletivamente em um script Python central (`lifecycle_script.py`) e escrever um script de shell de ponto de entrada (`on_create.sh`) para executar o script Python. O script de shell do ponto de entrada é o que você precisa fornecer para uma solicitação de criação de HyperPod cluster posteriormente na Etapa 5. 

   Além disso, observe que você deve escrever os scripts para esperar `resource_config.json` que sejam gerados HyperPod durante a criação do cluster. `resource_config.json`contém informações de recursos do HyperPod cluster, como endereços IP, tipos de instância e ARNs, e é o que você precisa usar para configurar o Slurm.

1. Reúna todos os arquivos das etapas anteriores em uma pasta. A estrutura da pasta depende da abordagem de configuração selecionada na Etapa 2.

   Se você selecionou a Opção A (configuração baseada em API):

   Sua pasta só precisa de scripts de ciclo de vida para tarefas de configuração personalizadas. A configuração e FSx montagem do Slurm são feitas automaticamente com HyperPod base na carga útil da API.

   ```
   └── lifecycle_files // your local folder
   
       ├── on_create.sh
       ├── lifecycle_script.py
       └── ... // more setup scripts to be fed into lifecycle_script.py
   ```
**nota**  
O `provisioning_parameters.json` arquivo não é necessário ao usar a configuração orientada por API.

   Se você selecionou a Opção B (configuração antiga):

   Sua pasta deve incluir `provisioning_parameters.json` o conjunto completo de scripts de ciclo de vida.

   ```
   └── 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. Faça upload de todos os arquivos em um bucket do S3. Copie e mantenha o caminho do bucket do S3. Observe que você deve criar um caminho de bucket do S3 começando com `sagemaker-` porque precisa escolher um [Função do IAM para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod) anexo com [`AmazonSageMakerClusterInstanceRolePolicy`](security-iam-awsmanpol-AmazonSageMakerClusterInstanceRolePolicy.md), que só permite caminhos do bucket do S3 começando com o prefixo `sagemaker-`. O comando a seguir é um exemplo de comando para carregar todos os arquivos em um bucket do S3.

   ```
   aws s3 cp --recursive ./lifecycle_files s3://sagemaker-hyperpod-lifecycle/src
   ```

1. Prepare uma solicitação de criação de HyperPod cluster. 
   + Opção 1: se você usar o AWS CLI, escreva uma solicitação de criação de cluster no formato JSON (`create_cluster.json`) seguindo as instruções em[Criar um novo cluster](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-create-cluster).
   + Opção 2: se você usa a interface de usuário do console SageMaker AI, preencha o formulário de solicitação de **criação de um cluster** na interface do usuário do HyperPod console seguindo as instruções em[Crie um SageMaker HyperPod cluster](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-create-cluster).

   Nesse estágio, certifique-se de criar grupos de instâncias na mesma estrutura planejada nas etapas 1 e 2. Além disso, especifique o bucket do S3 da Etapa 5 nos formulários de solicitação.

1. Envie a solicitação de criação do cluster. HyperPod provisiona um cluster com base na solicitação e, em seguida, cria um `resource_config.json` arquivo nas instâncias do HyperPod cluster e configura o Slurm no cluster que executa os scripts de ciclo de vida.

Os tópicos a seguir explicam e aprofundam os detalhes sobre como organizar arquivos de configuração e scripts de ciclo de vida para que funcionem adequadamente durante a criação do HyperPod cluster.

**Topics**
+ [Uma visão geral de alto nível](#sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-highlevel-overview)
+ [Scripts básicos de ciclo de vida fornecidos por HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md)
+ [Quais configurações específicas HyperPod gerenciam nos arquivos de configuração do Slurm](sagemaker-hyperpod-lifecycle-best-practices-slurm-what-hyperpod-overrides-in-slurm-conf.md)
+ [Rotações do Slurm log](sagemaker-hyperpod-slurm-log-rotation.md)
+ [Montando o Amazon FSx for Lustre e o Amazon FSx for OpenZFS em um cluster HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-setup-with-fsx.md)
+ [Validando os arquivos de configuração JSON antes de criar um cluster Slurm no HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-validate-json-files.md)
+ [Validando o tempo de execução antes de executar cargas de trabalho de produção em um HyperPod cluster Slurm](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-validate-runtime.md)
+ [Desenvolvendo scripts de ciclo de vida de forma interativa em um nó de cluster HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-develop-lifecycle-scripts.md)

# Scripts básicos de ciclo de vida fornecidos por HyperPod
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config"></a>

Esta seção mostra cada componente do fluxo básico de configuração do Slurm on HyperPod em uma abordagem de ***cima para baixo***. Ele começa com a preparação de uma solicitação de criação de HyperPod cluster para executar a `CreateCluster` API e se aprofunda na estrutura hierárquica até os scripts de ciclo de vida. Use os exemplos de scripts de ciclo de vida fornecidos no repositório do [Awsome Distributed Training](https://github.com/aws-samples/awsome-distributed-training/). GitHub Clone repositório executando o comando a seguir.

```
git clone https://github.com/aws-samples/awsome-distributed-training/
```

Os scripts básicos do ciclo de vida para configurar um cluster do Slurm estão disponíveis em 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
```

O fluxograma a seguir mostra uma visão geral detalhada de como você deve criar os scripts básicos do ciclo de vida. As descrições abaixo do diagrama e do guia de procedimentos explicam como eles funcionam durante a chamada da HyperPod `CreateCluster` API.

![\[Um fluxograma detalhado da criação do HyperPod cluster e da estrutura dos scripts do ciclo de vida.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/hyperpod-lifecycle-structure.png)


***Figura:** Um fluxograma detalhado da criação do HyperPod cluster e da estrutura dos scripts do ciclo de vida. (1) As setas tracejadas são direcionadas para onde as caixas são “chamadas” e mostram o fluxo dos arquivos de configuração e a preparação dos scripts do ciclo de vida. Tudo começa com a preparação do `provisioning_parameters.json` e os scripts do ciclo de vida. São então codificados em `lifecycle_script.py` para uma execução coletiva em ordem. E a execução do `lifecycle_script.py` script é feita pelo script `on_create.sh` shell, que deve ser executado no terminal da HyperPod instância. (2) As setas sólidas mostram o fluxo principal de criação do HyperPod cluster e como as caixas são “chamadas para” ou “enviadas para”. `on_create.sh`é necessário para a solicitação de criação de cluster, no formulário Criar uma solicitação de **cluster `create_cluster.json` ou no formulário Criar uma** solicitação de cluster na interface do console. Depois de enviar a solicitação, HyperPod executa a `CreateCluster` API com base nas informações de configuração fornecidas pela solicitação e nos scripts do ciclo de vida. (3) A seta pontilhada indica que a HyperPod plataforma cria `resource_config.json` nas instâncias do cluster durante o provisionamento de recursos do cluster. `resource_config.json`contém informações sobre os recursos do HyperPod cluster, como o ARN do cluster, os tipos de instância e os endereços IP. É importante observar que você deve preparar os scripts de ciclo de vida para esperar o arquivo `resource_config.json` durante a criação do cluster. Para mais informações, consulte o guia de procedimentos abaixo.*

O guia de procedimentos a seguir explica o que acontece durante a criação HyperPod do cluster e como os scripts básicos do ciclo de vida são projetados.

1. `create_cluster.json`— Para enviar uma solicitação de criação de HyperPod cluster, você prepara um arquivo de `CreateCluster` solicitação no formato JSON. Neste exemplo de práticas recomendadas, presumimos que o arquivo de solicitação tenha um nome`create_cluster.json`. Escreva `create_cluster.json` para provisionar um HyperPod cluster com grupos de instâncias. A melhor prática é adicionar o mesmo número de grupos de instâncias que o número de nós do Slurm que você planeja configurar no HyperPod cluster. Certifique-se de dar nomes distintos aos grupos de instâncias que você atribuirá aos nós do Slurm que você planeja configurar.

   Além disso, é necessário especificar um caminho de bucket do S3 para armazenar todo o conjunto de arquivos de configuração e scripts de ciclo de vida no nome do campo `InstanceGroups.LifeCycleConfig.SourceS3Uri` no formulário de `CreateCluster` solicitação e especificar o nome do arquivo de um script de shell de ponto de entrada (suponha que ele seja nomeado `on_create.sh`) para `InstanceGroups.LifeCycleConfig.OnCreate`.
**nota**  
Se você estiver usando o formulário de envio **Criar um cluster** na interface do HyperPod console, o console gerencia o preenchimento e o envio da `CreateCluster` solicitação em seu nome e executa a `CreateCluster` API no back-end. Nesse caso, você não precisa criar`create_cluster.json`; em vez disso, certifique-se de especificar as informações corretas de configuração do cluster no formulário de envio **Criar um cluster**.

1. `on_create.sh`— Para cada grupo de instâncias, você precisa fornecer um script de shell de ponto de entrada, executar comandos`on_create.sh`, executar scripts para instalar pacotes de software e configurar o ambiente de HyperPod cluster com o Slurm. As duas coisas que você precisa preparar são uma `provisioning_parameters.json` exigência HyperPod para configurar o Slurm e um conjunto de scripts de ciclo de vida para instalar pacotes de software. Esse script deve ser escrito para localizar e executar os seguintes arquivos, conforme mostrado no script de amostra em [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**  
Certifique-se de carregar todo o conjunto de scripts de ciclo de vida no local do S3 especificado `create_cluster.json`. Você também deve colocar o seu `provisioning_parameters.json` no mesmo local.

   1. `provisioning_parameters.json`: Isso é um [Formulário de configuração para provisioning\$1parameters.json](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-provisioning-forms-slurm). O script `on_create.sh` encontra esse arquivo JSON e define a variável de ambiente para identificar o caminho até ele. Por meio desse arquivo JSON, você pode configurar os nós do Slurm e as opções de armazenamento, como o Amazon FSx for Lustre for Slurm, com os quais se comunicar. Em`provisioning_parameters.json`, certifique-se de atribuir os grupos de instâncias do HyperPod cluster usando os nomes que você especificou nos `create_cluster.json` nós do Slurm de forma adequada, com base em como você planeja configurá-los.

      O diagrama a seguir mostra um exemplo de como os dois arquivos de configuração JSON `provisioning_parameters.json` devem ser `create_cluster.json` gravados para atribuir grupos de HyperPod instâncias aos nós do Slurm. Neste exemplo, assumimos um caso de configuração de três nós do Slurm: nó controlador (gerenciamento), nó de login (que é opcional) e nó (de processamento) computacional.
**dica**  
Para ajudá-lo a validar esses dois arquivos JSON, a equipe de HyperPod serviço fornece um script de validação,. [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) Para saber mais, consulte [Validando os arquivos de configuração JSON antes de criar um cluster Slurm no HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-validate-json-files.md).  
![\[Comparação direta entre arquivos.json.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/hyperpod-lifecycle-slurm-config.png)

      ***Figura:** Comparação direta entre `create_cluster.json` a criação HyperPod do cluster e a configuração `provisiong_params.json` do Slurm. O número de grupos de instâncias `create_cluster.json` deve corresponder ao número de nós que você deseja configurar como nós do Slurm. No caso do exemplo na figura, três nós do Slurm serão configurados em um HyperPod cluster de três grupos de instâncias. Você deve atribuir os grupos de instâncias do HyperPod cluster aos nós do Slurm especificando os nomes dos grupos de instâncias adequadamente.*

   1. `resource_config.json`— Durante a criação do cluster, o `lifecycle_script.py` script é escrito para esperar um `resource_config.json` arquivo do HyperPod. Esse arquivo contém informações sobre o cluster, como tipos de instância e endereços IP.

      Quando você executa a `CreateCluster` API, HyperPod cria um arquivo de configuração de recursos `/opt/ml/config/resource_config.json` com base no `create_cluster.json` arquivo. O caminho do arquivo é salvo na variável de ambiente chamada `SAGEMAKER_RESOURCE_CONFIG_PATH`. 
**Importante**  
O `resource_config.json` arquivo é gerado automaticamente pela HyperPod plataforma e você NÃO precisa criá-lo. O código a seguir é para mostrar um exemplo do `resource_config.json` que seria criado a partir da criação do cluster com base no `create_cluster.json` na etapa anterior e para ajudar você a entender o que acontece no backend e como `resource_config.json` seria a aparência de uma geração automática.

      ```
      {
      
          "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`— Esse é o script principal do Python que executa coletivamente scripts de ciclo de vida configurando o Slurm no cluster enquanto está sendo provisionado. HyperPod Esse script lê `provisioning_parameters.json` e `resource_config.json` recebe os caminhos especificados ou identificados em `on_create.sh`, passa as informações relevantes para cada script de ciclo de vida e, em seguida, executa os scripts de ciclo de vida em ordem.

      Os scripts de ciclo de vida são um conjunto de scripts que você tem total flexibilidade para personalizar para instalar pacotes de software e definir as configurações necessárias ou personalizadas durante a criação do cluster, como configurar o Slurm, criar usuários, instalar o Conda ou o Docker. O [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)script de amostra está preparado para executar outros scripts básicos de ciclo de vida no repositório, como iniciar o 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)), montar o FSx Amazon for Lustre () e configurar a contabilidade do MariaDB ([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 a contabilidade do RDS (). [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) Você também pode adicionar mais scripts, empacotá-los no mesmo diretório e adicionar linhas de código `lifecycle_script.py` para permitir a HyperPod execução dos scripts. Para obter mais informações sobre os scripts de ciclo de vida básicos, consulte também [3.1 Scripts de ciclo de vida no repositório *Awsome* Distributed](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod#31-lifecycle-scripts) Training. GitHub 
**nota**  
HyperPod é executado [SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami) em cada instância de um cluster, e a AMI tem pacotes de software pré-instalados que atendem às compatibilidades e funcionalidades entre eles. HyperPod Observe que, se você reinstalar qualquer um dos pacotes pré-instalados, você será responsável pela instalação de pacotes compatíveis e observe que algumas HyperPod funcionalidades podem não funcionar conforme o esperado.

      Além das configurações padrão, mais scripts para instalar o software a seguir estão disponíveis na pasta [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). O arquivo `lifecycle_script.py` já está preparado para incluir linhas de código para a execução dos scripts de instalação, portanto, consulte os itens a seguir para pesquisar essas linhas e descomente-as para ativá-las.

      1. As linhas de código a seguir são para instalar o [Docker](https://www.docker.com/), o [Enroot](https://github.com/NVIDIA/enroot) e o [Pyxis](https://github.com/NVIDIA/pyxis). Esses pacotes são necessários para executar contêineres do Docker em um cluster do Slurm. 

         Para ativar essa etapa de instalação, defina o parâmetro `enable_docker_enroot_pyxis` como `True` no arquivo [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. Você pode integrar seu HyperPod cluster ao [Amazon Managed Service for Prometheus [e ao Amazon Managed](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html) Grafana para](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html) exportar métricas HyperPod sobre o cluster e os nós do cluster para os painéis do Amazon Managed Grafana. Para exportar métricas e usar o [painel do Slurm](https://grafana.com/grafana/dashboards/4323-slurm-dashboard/), o [painel do Exportador NVIDIA DCGM Exporter](https://grafana.com/grafana/dashboards/12239-nvidia-dcgm-exporter-dashboard/), e o [painel Métricas do EFA](https://grafana.com/grafana/dashboards/20579-efa-metrics-dev/) on Amazon Managed Grafana, é necessário instalar o [exportador do Slurm para o Prometheus](https://github.com/vpenso/prometheus-slurm-exporter), o [exportador NVIDIA DCGM](https://github.com/NVIDIA/dcgm-exporter), e o [exportador de nós EFA](https://github.com/aws-samples/awsome-distributed-training/blob/main/4.validation_and_observability/3.efa-node-exporter/README.md). Para mais informações sobre como instalar os pacotes do exportador e usar os painéis do Grafana em um espaço de trabalho do Amazon Managed Grafana, consulte [SageMaker HyperPod monitoramento de recursos de cluster](sagemaker-hyperpod-cluster-observability-slurm.md). 

         Para ativar essa etapa de instalação, defina o parâmetro `enable_observability` como `True` no arquivo [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. Carregue todos os arquivos e scripts de configuração da **Etapa 2** para o bucket do S3 que você fornece na solicitação `CreateCluster` na **Etapa 1**. Por exemplo, suponha que o seu `create_cluster.json` tenha o seguinte:

   ```
   "LifeCycleConfig": { 
   
       "SourceS3URI": "s3://sagemaker-hyperpod-lifecycle/src",
       "OnCreate": "on_create.sh"
   }
   ```

   Em seguida, o seu `"s3://sagemaker-hyperpod-lifecycle/src"` deve conter `on_create.sh`, `lifecycle_script.py`, `provisioning_parameters.json`, e todos os outros scripts de configuração. Suponha que você tenha preparado os arquivos em uma pasta local da seguinte maneira:

   ```
   └── lifecycle_files // your local folder
       ├── provisioning_parameters.json
       ├── on_create.sh
       ├── lifecycle_script.py
       └── ... // more setup scrips to be fed into lifecycle_script.py
   ```

   Para carregar os arquivos, use o comando S3 da seguinte maneira:

   ```
   aws s3 cp --recursive ./lifecycle_scripts s3://sagemaker-hyperpod-lifecycle/src
   ```

# Quais configurações específicas HyperPod gerenciam nos arquivos de configuração do Slurm
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm-what-hyperpod-overrides-in-slurm-conf"></a>

Quando você cria um cluster do Slurm no HyperPod, o HyperPod agente configura os [https://slurm.schedmd.com/gres.conf.html](https://slurm.schedmd.com/gres.conf.html)arquivos [https://slurm.schedmd.com/slurm.conf.html](https://slurm.schedmd.com/slurm.conf.html)e em `/opt/slurm/etc/` para gerenciar o cluster do Slurm com base na solicitação de criação do cluster e nos scripts HyperPod do ciclo de vida. A lista a seguir mostra quais parâmetros específicos o HyperPod agente manipula e substitui. 

**Importante**  
É altamente recomendável que você **não** altere esses parâmetros gerenciados pelo HyperPod.
+ Em [https://slurm.schedmd.com/slurm.conf.html](https://slurm.schedmd.com/slurm.conf.html), HyperPod configura os seguintes parâmetros básicos: `ClusterName` `SlurmctldHost``PartitionName`,, `NodeName` e.

  Além disso, para habilitar a [Recuperação automática de nós e retomada automática](sagemaker-hyperpod-resiliency-slurm-auto-resume.md) funcionalidade, é HyperPod necessário definir `SchedulerParameters` os parâmetros `TaskPlugin` e da seguinte forma. O HyperPod agente configura esses dois parâmetros com os valores necessários por padrão.

  ```
  TaskPlugin=task/none
  SchedulerParameters=permit_job_expansion
  ```
+ Em [https://slurm.schedmd.com/gres.conf.html](https://slurm.schedmd.com/gres.conf.html), HyperPod gerencia `NodeName` os nós da GPU.

# Rotações do Slurm log
<a name="sagemaker-hyperpod-slurm-log-rotation"></a>

SageMaker HyperPod fornece rotação automática de registros para registros do daemon do Slurm para ajudar a gerenciar o uso do espaço em disco e manter o desempenho do sistema. A rotação de registros é crucial para evitar que os registros consumam espaço em disco excessivo e garantir a operação ideal do sistema, arquivando e removendo automaticamente arquivos de log antigos, mantendo as informações de registro recentes. As rotações de registros do Slurm são ativadas por padrão quando você cria um cluster.

## Como funciona a rotação de toras
<a name="sagemaker-hyperpod-slurm-log-rotation-how-it-works"></a>

Quando ativada, a configuração de rotação de registros:
+ Monitora todos os arquivos de log do Slurm com a extensão `.log` localizada na `/var/log/slurm/` pasta no controlador, nos nós de login e computação.
+ Gira os registros quando eles atingem 50 MB de tamanho.
+ Mantém até dois arquivos de log rotacionados antes de excluí-los.
+ Envia SIGUSR2 sinal para os daemons do Slurm (`slurmctld`,`slurmd`, e`slurmdbd`) após a rotação.

## Lista de arquivos de log rotacionados
<a name="sagemaker-hyperpod-slurm-log-rotation-log-files-list"></a>

Os registros do Slurm estão localizados no `/var/log/slurm/` diretório. A rotação de registros está ativada para todos os arquivos correspondentes`/var/log/slurm/*.log`. Quando a rotação ocorre, os arquivos girados têm sufixos numéricos (como). `slurmd.log.1` A lista a seguir não é exaustiva, mas mostra alguns dos arquivos de log essenciais que giram automaticamente:
+ `/var/log/slurm/slurmctld.log`
+ `/var/log/slurm/slurmd.log`
+ `/var/log/slurm/slurmdb.log`
+ `/var/log/slurm/slurmrestd.log`

## Ativar ou desativar a rotação de registros
<a name="sagemaker-hyperpod-slurm-log-rotation-enable-disable"></a>

Você pode controlar o recurso de rotação de registros usando o `enable_slurm_log_rotation` parâmetro no `config.py` script dos scripts de ciclo de vida do seu cluster, conforme mostrado no exemplo a seguir:

```
class Config:
    # Set false if you want to disable log rotation of Slurm daemon logs
    enable_slurm_log_rotation = True  # Default value
```

Para desativar a rotação de registros, defina o parâmetro como`False`, conforme mostrado no exemplo a seguir:

```
enable_slurm_log_rotation = False
```

**nota**  
Os scripts de ciclo de vida são executados em todos os nós do Slurm (controlador, login e nós de computação) durante a criação do cluster. Eles também são executados em novos nós quando adicionados ao cluster. A atualização das configurações de rotação de registros deve ser feita manualmente após a criação do cluster. A configuração de rotação do log é armazenada em`/etc/logrotate.d/sagemaker-hyperpod-slurm`. Recomendamos manter a rotação de registros ativada para evitar que os arquivos de log consumam espaço em disco excessivo. Para desativar a rotação de registros, exclua o `sagemaker-hyperpod-slurm` arquivo ou comente seu conteúdo adicionando `#` no início de cada linha no `sagemaker-hyperpod-slurm` arquivo.

## Configurações padrão de rotação de registros
<a name="sagemaker-hyperpod-slurm-log-rotation-default-settings"></a>

As configurações a seguir são definidas automaticamente para cada arquivo de log rotacionado:


| Configuração | Valor | Description | 
| --- | --- | --- | 
| rotate | 2 | Número de arquivos de log rotacionados a serem mantidos | 
| size | 50 MB | Tamanho máximo antes da rotação | 
| copytruncate | habilitado | Copia e trunca o arquivo de log original | 
| compress | desabilitado | Os registros girados não são compactados | 
| missingok | habilitado | Não há erro se o arquivo de log estiver ausente | 
| notifempty | habilitado | Não gira arquivos vazios | 
| noolddir | habilitado | Arquivos rotacionados permanecem no mesmo diretório | 

# Montando o Amazon FSx for Lustre e o Amazon FSx for OpenZFS em um cluster HyperPod
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-setup-with-fsx"></a>

Para montar um sistema de arquivos compartilhado Amazon FSx for Lustre em seu HyperPod cluster, configure o seguinte.

1. Use a sua Amazon VPC. 

   1. Para que as instâncias de HyperPod cluster se comuniquem com sua VPC, certifique-se de anexá-las [Configuração SageMaker HyperPod com uma Amazon VPC personalizada](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-optional-vpc) à função do IAM para. SageMaker HyperPod 

   1. Em `create_cluster.json`, inclua as informações a seguir.

      ```
      "VpcConfig": { 
          "SecurityGroupIds": [ "string" ],
          "Subnets": [ "string" ]
      }
      ```

      Para mais dicas sobre como configurar a Amazon VPC, consulte [Pré-requisitos para usar SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md).

1. Para concluir a configuração do Slurm com o Amazon FSx for Lustre, você pode usar uma das seguintes abordagens. Você pode encontrar as FSx informações da Amazon no console do Amazon FSx for Lustre em sua conta ou executando o seguinte AWS CLI comando,`aws fsx describe-file-systems`.

   **Opção A: configuração baseada em API (recomendada)**

   Especifique a FSx configuração da Amazon diretamente na carga da CreateCluster API usando `InstanceStorageConfigs` dentro de cada grupo de instâncias. Essa abordagem é compatível tanto com FSx o Lustre quanto com FSx o OpenZFS e permite a configuração. per-instance-group FSx 

   ```
   "InstanceStorageConfigs": [
       {
           "FsxLustreConfig": {
               "DnsName": "fs-12345678a90b01cde.fsx.us-west-2.amazonaws.com",
               "MountPath": "/fsx",
               "MountName": "1abcdefg"
           }
       }
   ]
   ```

    FSx Para OpenZFS, use `FsxOpenZfsConfig` em vez disso:

   ```
   "InstanceStorageConfigs": [
       {
           "FsxOpenZfsConfig": {
               "DnsName": "fs-12345678a90b01cde.fsx.us-west-2.amazonaws.com",
               "MountPath": "/fsx-openzfs"
           }
       }
   ]
   ```

   Para obter mais detalhes, consulte [Introdução ao SageMaker HyperPod uso da AWS CLI](sagemaker-hyperpod-quickstart.md).

   **Opção B: Configuração legada**

   Especifique o nome do Amazon FSx DNS e o nome da FSx montagem da Amazon `provisioning_parameters.json` conforme mostrado na figura na [Scripts básicos de ciclo de vida fornecidos por HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md) seção.

   ```
   "fsx_dns_name": "fs-12345678a90b01cde.fsx.us-west-2.amazonaws.com",
   "fsx_mountname": "1abcdefg"
   ```

# Validando os arquivos de configuração JSON antes de criar um cluster Slurm no HyperPod
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-validate-json-files"></a>

Para validar os arquivos de configuração JSON antes de enviar uma solicitação de criação de cluster, use o script de validação de configuração [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). Esse script analisa e compara o arquivo JSON de configuração do HyperPod cluster e o arquivo JSON de configuração do Slurm e identifica se há alguma configuração incorreta de recursos entre os dois arquivos e também entre os recursos do Amazon EC2, Amazon VPC e Amazon. FSx Por exemplo, para validar os arquivos `create_cluster.json` e `provisioning_parameters.json` da seção [Scripts básicos de ciclo de vida fornecidos por HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md), execute o script de validação da seguinte maneira:

```
python3 validate-config.py --cluster-config create_cluster.json --provisioning-parameters provisioning_parameters.json
```

A seguir, um exemplo de saída de uma validação bem-sucedida.

```
✔️  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
```

# Validando o tempo de execução antes de executar cargas de trabalho de produção em um HyperPod cluster Slurm
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-validate-runtime"></a>

Para verificar o tempo de execução antes de executar qualquer carga de trabalho de produção em um cluster do Slurm HyperPod, use o script de validação do tempo de execução. [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) Esse script verifica se o cluster Slurm tem todos os pacotes instalados para executar o Docker, se o cluster tem um sistema de arquivos Lustre montado FSx corretamente e um diretório de usuário compartilhando o sistema de arquivos, e se o deamon do Slurm está sendo executado em todos os nós de computação.

Para executar o script em vários nós ao mesmo tempo, use `srun` conforme mostrado no exemplo a seguir, o comando de execução do script em um cluster do Slurm de 8 nós.

```
# The following command runs on 8 nodes
srun -N 8 python3 hyperpod-precheck.py
```

**nota**  
Para saber mais sobre o script de validação, como quais funções de validação em tempo de execução o script fornece e diretrizes para resolver problemas que não passam nas validações, consulte [Validação em tempo de execução antes de executar cargas de trabalho](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod#35-runtime-validation-before-running-workloads) no repositório do *Awsome Distributed Training*. GitHub 

# Desenvolvendo scripts de ciclo de vida de forma interativa em um nó de cluster HyperPod
<a name="sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-develop-lifecycle-scripts"></a>

Esta seção explica como você pode desenvolver scripts de ciclo de vida interativamente sem criar e excluir repetidamente um cluster. HyperPod 

1. Crie um HyperPod cluster com os scripts básicos do ciclo de vida.

1. Faça login em um nó de cluster.

1. Desenvolva um script (`configure_xyz.sh`) editando-o e executando-o repetidamente no nó.

   1. HyperPod executa os scripts de ciclo de vida como usuário raiz, portanto, recomendamos que você execute o `configure_xyz.sh` como usuário raiz durante o desenvolvimento para garantir que o script seja testado sob as mesmas condições durante a execução do. HyperPod

1. Integre o script `lifecycle_script.py` adicionando uma linha de código semelhante à seguinte:

   ```
   ExecuteBashScript("./utils/configure_xyz.sh").run()
   ```

1. Faça upload dos scripts de ciclo de vida atualizados no bucket do S3 que você usou inicialmente para carregar os scripts de ciclo de vida básicos.

1. Teste a versão integrada do `lifecycle_script.py` criando um novo HyperPod cluster. Você também pode usar a substituição manual de instâncias para testar os scripts de ciclo de vida atualizados criando novas instâncias. Para obter instruções detalhadas, consulte [Substituir manualmente um nó](https://docs.aws.amazon.com//sagemaker/latest/dg/sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance.html#sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-replace). Observe que somente os nós de trabalho são substituíveis.

# SageMaker HyperPod suporte a nós com várias cabeças
<a name="sagemaker-hyperpod-multihead-slurm"></a>

Você pode criar vários nós controladores (principais) em um único cluster SageMaker HyperPod Slurm, com um servindo como nó do controlador principal e os outros servindo como nós do controlador de backup. O nó controlador principal é responsável por controlar os nós de computação (processamento) e lidar com as operações do Slurm. Os nós controladores de backup monitoram constantemente o nó controlador principal. Se o nó controlador principal falhar ou deixar de responder, um dos nós controladores de backup assumirá automaticamente o controle como o novo nó principal.

A configuração de vários nós controladores em clusters do SageMaker HyperPod Slurm oferece vários benefícios importantes. Elimina o risco de falha de um único nó controlador ao fornecer nós cabeça, permite failover automático para os nós de backup com uma recuperação mais rápida e possibilita que você gerencie seus próprios bancos de dados contábeis e a configuração do Slurm de forma independente.

## Principais conceitos
<a name="sagemaker-hyperpod-multihead-slurm-concepts"></a>

A seguir, são apresentados detalhes sobre os conceitos relacionados ao suporte de SageMaker HyperPod vários nós controladores (cabeçotes) para clusters Slurm.

**Nó controlador**

Um nó controlador é uma instância do Amazon EC2 dentro de um cluster que executa serviços essenciais do Slurm para gerenciar e coordenar as operações do cluster. Mais especificamente, ele hospeda o [daemon controlador do Slurm (slurmctld)](https://slurm.schedmd.com/slurmctld.html) e o [daemon de banco de dados do Slurm (slurmdbd)](https://slurm.schedmd.com/slurmdbd.html). O nó controlador também é conhecido como nó cabeça.

**Nó controlador principal**

O nó controlador principal é o nó ativo e que detém o controle no momento em um cluster do Slurm. Ele é identificado pelo Slurm como o nó controlador principal responsável pelo gerenciamento do cluster. O nó controlador principal recebe e executa comandos dos usuários para controlar e alocar recursos nos nós de computação e executar tarefas.

**Nó controlador de backup**

O nó controlador de backup é um nó controlador inativo e em espera em um cluster do Slurm. Ele é identificado pelo Slurm como um nó controlador de backup que não está gerenciando o cluster no momento. O nó controlador de backup executa o [daemon controlador do Slurm (slurmctld)](https://slurm.schedmd.com/slurmctld.html) no modo de espera. Qualquer comando do controlador executado nos nós controladores de backup será propagado para o nó controlador principal para execução. O objetivo primordial é monitorar continuamente o nó controlador principal e assumir suas responsabilidades se ele falhar ou deixar de responder.

**Nó de computação**

O nó de computação é uma instância do Amazon EC2 dentro de um cluster que hospeda o [daemon de processamento do Slurm (slurmd)](https://slurm.schedmd.com/slurmd.html). A principal função do nó de computação é executar tarefas atribuídas pelo [daemon controlador do Slurm (slurmctld)](https://slurm.schedmd.com/slurmctld.html) em execução no nó controlador principal. Quando um trabalho é agendado, o nó de computação recebe instruções do [daemon controlador do Slurm (slurmctld)](https://slurm.schedmd.com/slurmctld.html) para realizar as tarefas e os cálculos necessários para esse trabalho dentro do próprio nó. O nó de computação também é conhecido como nó de processamento.

## Como funciona
<a name="sagemaker-hyperpod-multihead-slurm-how"></a>

O diagrama a seguir ilustra como diferentes AWS serviços trabalham juntos para dar suporte à arquitetura de vários nós controladores (principais) dos clusters SageMaker HyperPod Slurm.

![\[SageMaker HyperPod diagrama de arquitetura de nós com várias cabeças\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/hyperpod/hyperpod-multihead-architecture.png)


Os AWS serviços que trabalham juntos para dar suporte à arquitetura de SageMaker HyperPod vários nós controladores (cabeçotes) incluem o seguinte.


**AWS serviços que trabalham juntos para dar suporte à arquitetura de SageMaker HyperPod vários nós controladores**  

| Serviço | Description | 
| --- | --- | 
| IAM (AWS Identity and Access Management) | Define dois perfis do IAM para controlar as permissões de acesso: um para o grupo de instâncias do nó de computação e outro para o grupo de instâncias do nó controlador. | 
| Amazon RDS para MariaDB | Armazena dados contábeis do Slurm, que contêm registros de tarefas e dados de medição. | 
| AWS Secrets Manager | Armazena e gerencia credenciais que podem ser acessadas pela Amazon FSx for Lustre. | 
| Amazon FSx para Lustre  | Armazena as configurações e o estado do runtime do Slurm. | 
| Amazon VPC | Fornece um ambiente de rede isolado onde o HyperPod cluster e seus recursos são implantados. | 
| Amazon SNS  | Envia notificações aos administradores quando há alterações de status (o controlador do Slurm está ON ou OFF) relacionadas ao nó controlador principal (cabeça). | 

O HyperPod cluster em si consiste em nós controladores (primários e de backup) e nós de computação. Os nós do controlador executam os componentes controlador (SlurmCtld) e banco de dados (Slurm) do SlurmDBd, que gerenciam e monitoram a carga de trabalho nos nós de computação.

Os nós do controlador acessam as configurações do Slurm e o estado de execução armazenados no sistema de arquivos Amazon FSx for Lustre. Os dados contábeis do Slurm são armazenados no banco de dados Amazon RDS for MariaDB. AWS Secrets Manager fornece acesso seguro às credenciais do banco de dados para os nós do controlador.

Se houver uma alteração de status (o controlador do Slurm estiver `ON` ou `OFF`) nos nós controladores do Slurm, o Amazon SNS enviará notificações ao administrador para outras adicionais.

Essa arquitetura de vários nós controladores elimina o ponto único de falha de um único nó controlador (cabeça), permite a recuperação rápida e automática do failover e oferece controle sobre o banco de dados contábil e as configurações do Slurm.

# Configurando vários nós de controle para um cluster SageMaker HyperPod Slurm
<a name="sagemaker-hyperpod-multihead-slurm-setup"></a>

Este tópico explica como configurar vários nós controladores (principais) em um cluster do SageMaker HyperPod Slurm usando scripts de ciclo de vida. Antes de começar, analise os pré-requisitos listados em [Pré-requisitos para usar SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md) e se familiarize com os scripts de ciclo de vida em [Personalização de SageMaker HyperPod clusters usando scripts de ciclo de vida](sagemaker-hyperpod-lifecycle-best-practices-slurm.md). As instruções neste tópico usam AWS CLI comandos no ambiente Amazon Linux. Observe que as variáveis de ambiente usadas nesses comandos estão disponíveis na sessão atual, a menos que sejam explicitamente preservadas.

**Topics**
+ [Provisionamento de recursos usando pilhas CloudFormation](sagemaker-hyperpod-multihead-slurm-cfn.md)
+ [Criar e anexar uma política do IAM](sagemaker-hyperpod-multihead-slurm-iam.md)
+ [Preparar e fazer upload de scripts de ciclo de vida](sagemaker-hyperpod-multihead-slurm-scripts.md)
+ [Criação de um SageMaker HyperPod cluster](sagemaker-hyperpod-multihead-slurm-create.md)
+ [Observações importantes a serem consideradas](sagemaker-hyperpod-multihead-slurm-notes.md)
+ [Analisar a referência de variáveis de ambiente](sagemaker-hyperpod-multihead-slurm-variables-reference.md)

# Provisionamento de recursos usando pilhas CloudFormation
<a name="sagemaker-hyperpod-multihead-slurm-cfn"></a>

Para configurar vários nós controladores em um cluster HyperPod Slurm, provisione AWS recursos por meio de duas CloudFormation pilhas: e. [Provisionar recursos básicos](#sagemaker-hyperpod-multihead-slurm-cfn-basic) [Provisionar recursos adicionais para atender a vários nós controladores](#sagemaker-hyperpod-multihead-slurm-cfn-multihead)

## Provisionar recursos básicos
<a name="sagemaker-hyperpod-multihead-slurm-cfn-basic"></a>

Siga estas etapas para provisionar recursos básicos para seu cluster Amazon SageMaker HyperPod Slurm.

1. Baixe o arquivo de modelo [sagemaker-hyperpod.yaml](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/sagemaker-hyperpod.yaml) na sua máquina. Esse arquivo YAML é um CloudFormation modelo que define os seguintes recursos a serem criados para seu cluster do Slurm.
   + Um perfil de execução do IAM para o grupo de instâncias do nó de computação.
   + Um bucket do Amazon S3 para armazenar os scripts de ciclo de vida.
   + Sub-redes públicas e privadas (as sub-redes privadas têm acesso à internet por meio de gateways NAT).
   +  Gateway/NAT Gateways de Internet
   + Dois grupos de segurança do Amazon EC2.
   + Um FSx volume da Amazon para armazenar arquivos de configuração

1. Execute o seguinte comando da CLI para criar uma CloudFormation pilha chamada. `sagemaker-hyperpod` Defina a Zona de Disponibilidade (AZ) IDs para seu cluster em `PrimarySubnetAZ` `BackupSubnetAZ` e. Por exemplo, *use1-az4* é uma ID AZ para uma zona de disponibilidade na `us-east-1` região. Para obter mais informações, consulte [Zona de disponibilidade IDs](https://docs.aws.amazon.com//ram/latest/userguide/working-with-az-ids.html) [Configurando SageMaker HyperPod clusters em vários AZs](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-multiple-availability-zones) e.

   ```
   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
   ```

   Para obter mais informações, consulte [implantar](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/deploy/) a partir da AWS Command Line Interface Referência. A criação da pilha pode levar alguns minutos para ser concluída. Quando estiver concluída, você verá o seguinte na interface de linha de comandos:

   ```
   Waiting for changeset to be created..
   Waiting for stack create/update to complete
   Successfully created/updated stack - sagemaker-hyperpod
   ```

1. (Opcional) Verifique a pilha no [console do CloudFormation](https://console.aws.amazon.com/cloudformation/home).
   + No painel de navegação à esquerda, escolha **Pilha**.
   + Na página **Pilha**, encontre e escolha **sagemaker-hyperpod**.
   + Escolha guias como **Recursos** e **Saídas** para analisar recursos e saídas.

1. Crie variáveis de ambiente com base nas saídas da pilha (`sagemaker-hyperpod`). Você usará os valores dessas variáveis para [Provisionar recursos adicionais para atender a vários nós controladores](#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)
   ```

   Ao receber solicitações para fornecer seu endereço de e-mail e nome de usuário do banco de dados, insira valores como os seguintes:

   ```
   INPUT YOUR SNSSubEmailAddress HERE: Email_address_to_receive_SNS_notifications
   INPUT YOUR DB_USER_NAME HERE: Database_user_name_you_define
   ```

   Para verificar os valores das variáveis, use o comando `print $variable`.

   ```
   print $REGION
   us-east-1
   ```

## Provisionar recursos adicionais para atender a vários nós controladores
<a name="sagemaker-hyperpod-multihead-slurm-cfn-multihead"></a>

Siga estas etapas para provisionar recursos adicionais para seu cluster Amazon SageMaker HyperPod Slurm com vários nós controladores.

1. Baixe o arquivo [sagemaker-hyperpod-slurm-multide modelo -headnode.yaml](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/sagemaker-hyperpod-slurm-multi-headnode.yaml) para sua máquina. Esse segundo arquivo YAML é um CloudFormation modelo que define os recursos adicionais a serem criados para o suporte de vários nós controladores em seu cluster do Slurm.
   + Um perfil de execução do IAM para o grupo de instâncias do nó controlador
   + Uma instância para o Amazon RDS para MariaDB
   + Um tópico e assinatura do Amazon SNS
   + AWS Secrets Manager credenciais do Amazon RDS for MariaDB

1. Execute o seguinte comando da CLI para criar uma CloudFormation pilha chamada. `sagemaker-hyperpod-mh` Essa segunda pilha usa o CloudFormation modelo para criar AWS recursos adicionais para dar suporte à arquitetura de vários nós do controlador.

   ```
   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
   ```

   Para obter mais informações, consulte [implantar](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/deploy/) a partir da AWS Command Line Interface Referência. A criação da pilha pode levar alguns minutos para ser concluída. Quando estiver concluída, você verá o seguinte na interface de linha de comandos:

   ```
   Waiting for changeset to be created..
   Waiting for stack create/update to complete
   Successfully created/updated stack - sagemaker-hyperpod-mh
   ```

1. (Opcional) Verifique a pilha no [console do AWS Cloud Formation](https://console.aws.amazon.com/cloudformation/home).
   + No painel de navegação à esquerda, escolha **Pilha**.
   + Na página **Stack**, encontre e escolha **sagemaker-hyperpod-mh**.
   + Escolha guias como **Recursos** e **Saídas** para analisar recursos e saídas.

1. Crie variáveis de ambiente com base nas saídas da pilha (`sagemaker-hyperpod-mh`). Você usará os valores dessas variáveis para atualizar o arquivo de configuração (`provisioning_parameters.json`) em [Preparar e fazer upload de scripts de ciclo de vida](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)
   ```

# Criar e anexar uma política do IAM
<a name="sagemaker-hyperpod-multihead-slurm-iam"></a>

Esta seção explica como criar uma política do IAM e anexá-la ao perfil de execução que você criou em [Provisionar recursos adicionais para atender a vários nós controladores](sagemaker-hyperpod-multihead-slurm-cfn.md#sagemaker-hyperpod-multihead-slurm-cfn-multihead).

1. Baixe o [exemplo da política do IAM](https://github.com/aws-samples/awsome-distributed-training/blob/main/1.architectures/5.sagemaker-hyperpod/1.AmazonSageMakerClustersExecutionRolePolicy.json) para sua máquina a partir do GitHub repositório.

1. Crie uma política do IAM com o exemplo baixado, usando o comando da [create-policy](https://docs.aws.amazon.com//cli/latest/reference/iam/create-policy.html) da CLI.

   ```
   aws --region us-east-1 iam create-policy \
       --policy-name AmazonSagemakerExecutionPolicy \
       --policy-document file://1.AmazonSageMakerClustersExecutionRolePolicy.json
   ```

   Exemplo de saída do 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. Anexe a política `AmazonSagemakerExecutionPolicy` à função de execução do Slurm que você criou usando [Provisionar recursos adicionais para atender a vários nós controladores](sagemaker-hyperpod-multihead-slurm-cfn.md#sagemaker-hyperpod-multihead-slurm-cfn-multihead) o 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
   ```

   Esse comando não retorna nenhuma saída.

   (Opcional) Se você usa variáveis de ambiente, veja abaixo os comandos de exemplo.
   + Como obter o nome do perfil e o nome da política 

     ```
     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)
     ```
   + Para anexar a política 

     ```
     aws  --region us-east-1 iam attach-role-policy \
          --role-name $ROLENAME --policy-arn $POLICY
     ```

Para obter mais informações, consulte [Função do IAM para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod).

# Preparar e fazer upload de scripts de ciclo de vida
<a name="sagemaker-hyperpod-multihead-slurm-scripts"></a>

Depois de criar todos os recursos necessários, você precisará configurar [scripts de ciclo](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts) de vida para seu SageMaker HyperPod cluster. Esses [scripts de ciclo de vida](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts) fornecem uma [configuração básica](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config) que você pode usar para criar um cluster HyperPod Slurm básico.

## Preparar os scripts de ciclo de vida
<a name="sagemaker-hyperpod-multihead-slurm-prepare-scripts"></a>

Siga estas etapas para obter os scripts de ciclo de vida.

1. Baixe os [scripts do ciclo de vida](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts) do GitHub repositório para sua máquina.

1. Faça upload dos [scripts de ciclo de vida](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts) no bucket do Amazon S3 que você criou em [Provisionar recursos básicos](sagemaker-hyperpod-multihead-slurm-cfn.md#sagemaker-hyperpod-multihead-slurm-cfn-basic), usando o comando [cp](https://docs.aws.amazon.com//cli/latest/reference/s3/cp.html) da CLI.

   ```
   aws s3 cp --recursive LifeCycleScripts/base-config s3://${ROOT_BUCKET_NAME}/LifeCycleScripts/base-config
   ```

## Criar arquivos de configuração
<a name="sagemaker-hyperpod-multihead-slurm-update-config-file"></a>

Siga estas etapas para criar o arquivo de configuração e carregá-lo no mesmo bucket do Amazon S3 em que você armazena os scripts de ciclo de vida.

1. Crie um arquivo de configuração chamado `provisioning_parameters.json` com o conteúdo a seguir. Observe que `slurm_sns_arn` é opcional. Se não for fornecido, não HyperPod configurará as notificações do 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. Faça upload do arquivo `provisioning_parameters.json` no mesmo bucket do Amazon S3 em que você armazena os scripts de ciclo de vida.

   ```
   aws s3 cp /tmp/provisioning_parameters.json s3://${ROOT_BUCKET_NAME}/LifeCycleScripts/base-config/provisioning_parameters.json
   ```
**nota**  
Se você estiver usando uma configuração orientada por API, o `provisioning_parameters.json` arquivo não será necessário. Com a configuração orientada por API, você define os tipos de nós, partições e FSx montagem do Slurm diretamente na carga útil da API. CreateCluster Para obter detalhes, consulte [Introdução ao SageMaker HyperPod uso do AWS CLI](smcluster-getting-started-slurm-cli.md).

## Verificar arquivos no bucket do Amazon S3
<a name="sagemaker-hyperpod-multihead-slurm-verify-s3"></a>

Depois de fazer upload de todos os scripts de ciclo de vida e do arquivo `provisioning_parameters.json`, o bucket do Amazon S3 deve ter a aparência a seguir.

![\[Imagem mostrando todos os scripts de ciclo de vida enviados ao bucket do Amazon S3 no console do Amazon Simple Storage Service.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/hyperpod/hyperpod-lifecycle-scripts-s3.png)


Para obter mais informações, consulte [Comece com scripts de ciclo de vida básicos fornecidos](https://docs.aws.amazon.com//sagemaker/latest/dg/sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.html) por. HyperPod

# Criação de um SageMaker HyperPod cluster
<a name="sagemaker-hyperpod-multihead-slurm-create"></a>

Depois de configurar todos os recursos necessários e fazer upload dos scripts no bucket do Amazon S3, você pode criar um cluster.

1. Para criar um cluster, execute o [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. O processo de criação pode levar até 15 minutos.

   ```
   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
   }]'
   ```

   Se a execução for bem-sucedida, o comando exibirá o ARN do cluster da forma a seguir.

   ```
   {
       "ClusterArn": "arn:aws:sagemaker:us-east-1:111122223333:cluster/cluster_id"
   }
   ```

1. (Opcional) Para verificar o status do seu cluster, você pode usar o console SageMaker AI ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)). No painel de navegação à esquerda, escolha **HyperPod Clusters** e, em seguida, selecione **Gerenciamento de Clusters**. Escolha um nome de cluster para abrir a página de detalhes do cluster. Se seu cluster for criado com sucesso, você verá que o status do cluster é **InService**.  
![\[Imagem mostrando um cluster HyperPod Slurm com vários nós controladores no console Amazon SageMaker AI.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/hyperpod/hyperpod-lifecycle-multihead-cluster.png)

# Observações importantes a serem consideradas
<a name="sagemaker-hyperpod-multihead-slurm-notes"></a>

Esta seção apresenta várias observações importantes que podem ser úteis para você. 

1. Para migrar para um cluster do Slurm com vários controladores, conclua as etapas seguir.

   1. Siga as instruções em [Provisionamento de recursos usando pilhas CloudFormation](sagemaker-hyperpod-multihead-slurm-cfn.md) para provisionar todos os recursos necessários.

   1. Siga as instruções em [Preparar e fazer upload de scripts de ciclo de vida](sagemaker-hyperpod-multihead-slurm-scripts.md) para fazer upload dos scripts de ciclo de vida atualizados. Ao atualizar o arquivo `provisioning_parameters.json`, mova o grupo de controladores existente para a seção `worker_groups` e adicione um novo nome de grupo de controladores na seção `controller_group`.

   1. Execute a chamada de API [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) para criar um grupo de controladores e manter os grupos de instâncias de computação e o grupo de controladores originais.

1. Para reduzir a escala verticalmente do número de nós controladores, use o comando [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) da CLI. Para cada grupo de instâncias do controlador, o número mínimo de nós controladores para o qual você pode reduzir a escala verticalmente é 1. Isso significa que não é possível reduzir a escala verticalmente do número de nós controladores para 0.
**Importante**  
Para clusters criados antes de 24 de janeiro de 2025, você deve primeiro atualizar seu software de cluster usando a [UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API antes de executar o comando da [CLI update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html).

   Veja a seguir um exemplo de comando da CLI para reduzir a escala verticalmente do número de nós controladores.

   ```
   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. Para excluir em lote os nós do controlador, use o comando [batch-delete-cluster-nodes](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/batch-delete-cluster-nodes.html)CLI. Para cada grupo de instâncias do controlador, você deve manter pelo menos um nó controlador. Se você quiser excluir em lote todos os nós controladores, a operação de API não funcionará.
**Importante**  
Para clusters criados antes de 24 de janeiro de 2025, você deve primeiro atualizar seu software de cluster usando a [UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API antes de executar o comando da [batch-delete-cluster-nodes](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/batch-delete-cluster-nodes.html)CLI.

   Veja a seguir um exemplo de comando da CLI para excluir os nós controladores.

   ```
   aws sagemaker batch-delete-cluster-nodes --cluster-name my_cluster --node-ids instance_ids_to_delete
   ```

1. Para solucionar seus problemas de criação de cluster, verifique a mensagem de falha na página de detalhes do cluster em seu console de SageMaker IA. Você também pode usar CloudWatch registros para solucionar problemas de criação de clusters. No CloudWatch console, escolha **Grupos de registros**. Em seguida, pesquise `clusters` para ver a lista de grupos de logs relacionados à criação do seu cluster.  
![\[Imagem mostrando grupos de log de SageMaker HyperPod clusters da Amazon no CloudWatch console.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/hyperpod/hyperpod-lifecycle-multihead-logs.png)

# Analisar a referência de variáveis de ambiente
<a name="sagemaker-hyperpod-multihead-slurm-variables-reference"></a>

As seguintes variáveis de ambiente são definidas e usadas no tutorial [Configurando vários nós de controle para um cluster SageMaker HyperPod Slurm](sagemaker-hyperpod-multihead-slurm-setup.md). Essas variáveis de ambiente só estão disponíveis na sessão atual, a menos que sejam explicitamente preservadas. Elas são definidas usando a sintaxe `$variable_name`. Variáveis com key/value pares representam recursos AWS criados, enquanto variáveis sem chaves são definidas pelo usuário.


**Referência de variáveis de ambiente**  

| Variável | Description | 
| --- | --- | 
| \$1BACKUP\$1SUBNET |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/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/pt_br/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/pt_br/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/pt_br/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/pt_br/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1EMAIL |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/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/pt_br/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1POLICY |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 
| \$1REGION |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/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/pt_br/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/pt_br/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/pt_br/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/pt_br/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/pt_br/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/pt_br/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/pt_br/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/pt_br/sagemaker/latest/dg/sagemaker-hyperpod-multihead-slurm-variables-reference.html)  | 

# Trabalhos em SageMaker HyperPod clusters
<a name="sagemaker-hyperpod-run-jobs-slurm"></a>

Os tópicos a seguir fornecem procedimentos e exemplos de como acessar nós de computação e executar cargas de trabalho de ML em clusters SageMaker HyperPod provisionados. Dependendo de como você configurou o ambiente em seu HyperPod cluster, há muitas maneiras de executar cargas de trabalho de ML em HyperPod clusters. Exemplos de execução de cargas de trabalho de ML em HyperPod clusters também são fornecidos no repositório [Awsome Distributed Training GitHub ](https://github.com/aws-samples/awsome-distributed-training/). Os tópicos a seguir explicam como fazer login nos HyperPod clusters provisionados e começar a executar amostras de cargas de trabalho de ML.

**dica**  
Para encontrar exemplos e soluções práticas, veja também o [SageMaker HyperPodworkshop](https://catalog.workshops.aws/sagemaker-hyperpod).

**Topics**
+ [Acessando seus nós SageMaker HyperPod de cluster](sagemaker-hyperpod-run-jobs-slurm-access-nodes.md)
+ [Agendamento de um trabalho do Slurm em um cluster SageMaker HyperPod](sagemaker-hyperpod-run-jobs-slurm-schedule-slurm-job.md)
+ [Executando contêineres do Docker em um nó de computação do Slurm em HyperPod](sagemaker-hyperpod-run-jobs-slurm-docker.md)
+ [Executando cargas de trabalho de treinamento distribuídas com o Slurm on HyperPod](sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload.md)

# Acessando seus nós SageMaker HyperPod de cluster
<a name="sagemaker-hyperpod-run-jobs-slurm-access-nodes"></a>

Você pode acessar seu **InService**cluster por meio de AWS Systems Manager (SSM) executando o AWS CLI comando `aws ssm start-session` com o nome do host do SageMaker HyperPod cluster no formato de`sagemaker-cluster:[cluster-id]_[instance-group-name]-[instance-id]`. Você pode recuperar o ID do cluster, o ID da instância e o nome do grupo de instâncias no [SageMaker HyperPod console](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-view-details-of-clusters) ou executando `describe-cluster` e `list-cluster-nodes` usando os [AWS CLI comandos para SageMaker HyperPod](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-list-cluster-nodes). Por exemplo, se o ID do cluster for `aa11bbbbb222`, o nome do nó do cluster for `controller-group` e o ID do nó do cluster for `i-111222333444555aa`, o comando SSM `start-session` deverá ser o seguinte:

**nota**  
Conceder aos usuários acesso aos nós HyperPod do cluster permite que eles instalem e operem software gerenciado pelo usuário nos nós. Mantenha o princípio de permissões de privilégio mínimo para os usuários.  
Se você não tiver configurado AWS Systems Manager, siga as instruções fornecidas em[Configurando AWS Systems Manager e executando como para controle de acesso do usuário do 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#
```

Observe que isso inicialmente conecta você como usuário-raiz. Antes de executar os trabalhos, alterne para o usuário `ubuntu` executando o seguinte comando:

```
root@ip-111-22-333-444:/usr/bin# sudo su - ubuntu
ubuntu@ip-111-22-333-444:/usr/bin#
```

Para configurações avançadas para o uso prático de HyperPod clusters, consulte os tópicos a seguir.

**Topics**
+ [Dicas adicionais para acessar seus nós SageMaker HyperPod de cluster](#sagemaker-hyperpod-run-jobs-slurm-access-nodes-tips)
+ [Configure um ambiente multiusuário por meio do espaço FSx compartilhado da Amazon](#sagemaker-hyperpod-run-jobs-slurm-access-nodes-multi-user-with-fxs-shared-space)
+ [Configure um ambiente multiusuário integrando HyperPod clusters com o Active Directory](#sagemaker-hyperpod-run-jobs-slurm-access-nodes-multi-user-with-active-directory)

## Dicas adicionais para acessar seus nós SageMaker HyperPod de cluster
<a name="sagemaker-hyperpod-run-jobs-slurm-access-nodes-tips"></a>

**Use o `easy-ssh.sh` script fornecido por HyperPod para simplificar o processo de conexão**

Para transformar o processo anterior em uma única linha de comando, a HyperPod equipe fornece o [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)script que recupera as informações do cluster, as agrega ao comando SSM e se conecta ao nó de computação. Você não precisa procurar manualmente as informações necessárias do HyperPod cluster, pois esse script é executado `describe-cluster` e `list-cluster-nodes` comanda e analisa as informações necessárias para concluir o comando SSM. Os comandos de exemplo a seguir mostram como executar o 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 for executado com êxito, você será conectado ao cluster como usuário-raiz. Ele também imprime um trecho de código para configurar o SSH adicionando o HyperPod cluster como um host remoto por meio de um proxy SSM. Ao configurar o SSH, você pode conectar seu ambiente de desenvolvimento local, como o Visual Studio Code, ao HyperPod cluster.

```
$ 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#
```

Observe que isso inicialmente conecta você como usuário-raiz. Antes de executar os trabalhos, alterne para o usuário `ubuntu` executando o seguinte comando:

```
root@ip-111-22-333-444:/usr/bin# sudo su - ubuntu
ubuntu@ip-111-22-333-444:/usr/bin#
```

**Configure para facilitar o acesso com SSH usando o nó de HyperPod computação como um host remoto**

Para simplificar ainda mais o acesso ao nó de computação usando SSH de uma máquina local, o `easy-ssh.sh` script gera um trecho de código da configuração do HyperPod cluster como um host remoto, conforme mostrado na seção anterior. O trecho de código é gerado automaticamente para ajudar você a adicioná-lo diretamente ao `~/.ssh/config` arquivo em seu dispositivo local. O procedimento a seguir mostra como configurar o acesso fácil usando SSH por meio do proxy SSM, para que você ou os usuários do cluster possam executar diretamente `ssh <cluster-name>` a conexão com o nó do HyperPod cluster.

1. Em seu dispositivo local, adicione o nó de HyperPod computação com um nome de usuário como host remoto ao `~/.ssh/config` arquivo. O comando a seguir mostra como anexar o trecho de código gerado automaticamente do script `easy-ssh.sh` ao arquivo`~/.ssh/config`. Verifique se você o copiou da saída gerada automaticamente do script `easy-ssh.sh` que tem as informações corretas do 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. No nó do HyperPod cluster, adicione a chave pública do seu dispositivo local ao `~/.ssh/authorized_keys` arquivo no nó do HyperPod cluster.

   1. Imprima o arquivo de chave pública na sua máquina local.

      ```
      $ cat ~/.ssh/id_rsa.pub
      ```

      Ela retornará sua chave. Copie a saída desse comando. 

      (Opcional) Se você ainda não tem uma chave pública, crie uma executando o seguinte comando:

      ```
      $ ssh-keygen -t rsa -q -f "$HOME/.ssh/id_rsa" -N ""
      ```

   1. Conecte-se ao nó do cluster e alterne para o usuário para adicionar a chave. O comando a seguir é um exemplo de acesso como usuário `ubuntu`. Substitua `ubuntu` pelo nome de usuário para o qual você deseja configurar o acesso fácil com SSH.

      ```
      $ ./easy-ssh.sh -c <node-group> <cluster-name>
      $ sudo su - ubuntu
      ubuntu@ip-111-22-333-444:/usr/bin#
      ```

   1. Abra o arquivo `~/.ssh/authorized_keys` e adicione a chave pública ao final desse arquivo.

      ```
      ubuntu@ip-111-22-333-444:/usr/bin# vim ~/.ssh/authorized_keys
      ```

Depois de concluir a configuração, você pode se conectar ao nó do HyperPod cluster como usuário executando um comando SSH simplificado da seguinte forma.

```
$ ssh <cluster-name>
ubuntu@ip-111-22-333-444:/usr/bin#
```

Além disso, você pode usar o host para desenvolvimento remoto a partir de um IDE em seu dispositivo local, como [Visual Studio Code Remote - SSH](https://code.visualstudio.com/docs/remote/ssh).

## Configure um ambiente multiusuário por meio do espaço FSx compartilhado da Amazon
<a name="sagemaker-hyperpod-run-jobs-slurm-access-nodes-multi-user-with-fxs-shared-space"></a>

Você pode usar o espaço FSx compartilhado da Amazon para gerenciar um ambiente multiusuário em um cluster do Slurm em. SageMaker HyperPod Se você configurou seu cluster Slurm com a Amazon FSx durante a criação do HyperPod cluster, essa é uma boa opção para configurar o espaço de trabalho para os usuários do seu cluster. Crie um novo usuário e configure o diretório inicial do usuário no sistema de arquivos FSx compartilhados da Amazon.

**dica**  
Para permitir que os usuários acessem o cluster por meio de seus nomes de usuário e diretórios dedicados, você também deve associá-los aos usuários ou perfis do IAM, marcando-os conforme orientado na **Opção 2** da etapa 5, no procedimento **Ative o suporte a Executar como para nós gerenciados do Linux no macOS** fornecido em [Ative o suporte a Executar como para nós gerenciados do Linux no macOS](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-preferences-run-as.html) no Manual do usuário do AWS Systems Manager . Consulte também [Configurando AWS Systems Manager e executando como para controle de acesso do usuário do cluster](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-ssm).

**Para configurar um ambiente multiusuário ao criar um cluster Slurm no SageMaker HyperPod**

A equipe SageMaker HyperPod de serviço fornece um 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)como parte dos exemplos básicos de scripts do ciclo de vida. 

1. Prepare um arquivo de texto chamado `shared_users.txt` que você precisa criar no formato a seguir. A primeira coluna é para nomes de usuário, a segunda coluna é para usuário IDs único e a terceira coluna é para os diretórios de usuários no espaço FSx compartilhado da Amazon.

   ```
   username1,uid1,/fsx/username1
   username2,uid2,/fsx/username2
   ...
   ```

1. Certifique-se de carregar os [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)arquivos `shared_users.txt` e no bucket do S3 para scripts de HyperPod ciclo de vida. Enquanto a criação do cluster, a atualização do cluster ou a atualização do software do cluster está em andamento, o [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) lê em `shared_users.txt`e configura os diretórios de usuário corretamente.

**Para criar novos usuários e adicionar a um cluster Slurm existente em execução no SageMaker HyperPod **

1. No nó principal, execute o seguinte comando para salvar um script que ajuda a criar um usuário: Não se esqueça de executar isso com as permissões 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. Execute o script com o comando a seguir. Você será solicitado a adicionar o nome de um usuário e o número de nós de computação que você deseja permitir que o usuário acesse.

   ```
   $ bash create-user.sh
   ```

1. Teste o usuário executando os comandos a seguir. 

   ```
   $ sudo su - <user> && ssh $(srun hostname)
   ```

1. Adicione as informações do usuário ao arquivo `shared_users.txt` para que o usuário seja criado em qualquer novo nó de computação ou em novos clusters.

## Configure um ambiente multiusuário integrando HyperPod clusters com o Active Directory
<a name="sagemaker-hyperpod-run-jobs-slurm-access-nodes-multi-user-with-active-directory"></a>

Em casos de uso prático, os HyperPod clusters são normalmente usados por vários usuários: pesquisadores de aprendizado de máquina (ML), engenheiros de software, cientistas de dados e administradores de clusters. Eles editam seus próprios arquivos e executam seus próprios trabalhos sem afetar o trabalho uns dos outros. Para configurar um ambiente multiusuário, use o mecanismo de usuários e grupos do Linux para criar estaticamente vários usuários em cada instância por meio de scripts de ciclo de vida. No entanto, a desvantagem dessa abordagem é que você precisa duplicar as configurações de usuário e grupo em várias instâncias no cluster para manter uma configuração consistente em todas as instâncias ao fazer atualizações, como adicionar, editar e remover usuários.

Para resolver isso, você pode usar o [Lightweight Directory Access Protocol (LDAP)](https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol) e o [LDAP over TLS/SSL (LDAPS)](https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol) para se integrar a um serviço de diretório, como o Directory [AWS Service for](https://aws.amazon.com/directoryservice/) Microsoft Active Directory. Para saber mais sobre como configurar o Active Directory e um ambiente multiusuário em um HyperPod cluster, consulte a postagem do blog [Integrar HyperPod clusters com o Active Directory para um login perfeito de vários](https://aws.amazon.com/blogs/machine-learning/integrate-hyperpod-clusters-with-active-directory-for-seamless-multi-user-login/) usuários.

# Agendamento de um trabalho do Slurm em um cluster SageMaker HyperPod
<a name="sagemaker-hyperpod-run-jobs-slurm-schedule-slurm-job"></a>

Você pode iniciar trabalhos de treinamento usando os comandos padrão Slurm `sbatch` ou `srun`. Por exemplo, para iniciar um trabalho de treinamento de 8 nós, você pode executar um treinamento de `srun -N 8 --exclusive train.sh` SageMaker HyperPod suporte em uma variedade de ambientes`conda`, incluindo`venv`,`docker`, e. `enroot` Você pode configurar um ambiente de ML executando scripts de ciclo de vida em seus SageMaker HyperPod clusters. Você também tem a opção de anexar um sistema de arquivos compartilhado, como o Amazon FSx, que também pode ser usado como um ambiente virtual.

O exemplo a seguir mostra como executar um trabalho para treinar o Llama-2 com a técnica Fully Sharded Data Parallelism (FSDP) em um cluster com um sistema de arquivos compartilhado da Amazon. SageMaker HyperPod FSx Você também pode encontrar mais exemplos no [ GitHub repositório Awsome Distributed Training](https://github.com/aws-samples/awsome-distributed-training/).

**dica**  
Todos os SageMaker HyperPod exemplos estão disponíveis na `3.test_cases` pasta do [ GitHub repositório do Awsome Distributed Training](https://github.com/aws-samples/awsome-distributed-training/).

1. Clone o [ GitHub repositório Awsome Distributed Training](https://github.com/aws-samples/awsome-distributed-training/) e copie os exemplos de trabalhos de treinamento para o seu sistema de arquivos da Amazon FSx . 

   ```
   $ TRAINING_DIR=/fsx/users/my-user/fsdp
   $ git clone https://github.com/aws-samples/awsome-distributed-training/
   ```

1. Execute o 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). Isso cria um `conda` ambiente no seu sistema de FSx arquivos da Amazon. Verifique se o sistema de arquivos está acessível a todos os nós do cluster.

1. Crie o ambiente virtual Conda iniciando um trabalho de slurm de nó único da seguinte forma:

   ```
   $ srun -N 1 /path_to/create_conda_env.sh
   ```

1. Depois que o ambiente for criado, você poderá iniciar um trabalho de treinamento apontando para o caminho do ambiente no volume compartilhado. Você pode iniciar trabalhos de treinamento de nó único e de vários nós com a mesma configuração. Para iniciar uma tarefa, crie um script inicializador de tarefas (também chamado de script de ponto de entrada) da seguinte forma:

   ```
   #!/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
   ```
**dica**  
Se você quiser tornar seu trabalho de treinamento mais resiliente contra falhas de hardware usando o recurso de retomada automática do SageMaker HyperPod, você precisa configurar adequadamente a variável de ambiente `MASTER_ADDR` no script do ponto de entrada. Para saber mais, consulte [Recuperação automática de nós e retomada automática](sagemaker-hyperpod-resiliency-slurm-auto-resume.md).

   Este tutorial pressupõe que esse script seja salvo como `/fsx/users/my_user/train.sh`.

1. Com esse script no volume compartilhado em `/fsx/users/my_user/train.sh`, execute o comando `srun` a seguir para agendar o trabalho do Slurm.

   ```
   $ cd /fsx/users/my_user/
   $ srun -N 8 train.sh
   ```

# Executando contêineres do Docker em um nó de computação do Slurm em HyperPod
<a name="sagemaker-hyperpod-run-jobs-slurm-docker"></a>

[Para executar contêineres do Docker com o Slurm ativado SageMaker HyperPod, você precisa usar o [Enroot](https://github.com/NVIDIA/enroot) e o Pyxis.](https://github.com/NVIDIA/pyxis) O pacote Enroot ajuda a converter imagens do Docker em um runtime que o Slurm possa entender, enquanto o Pyxis permite agendar o runtime como um trabalho do Slurm por meio de um comando `srun`, `srun --container-image=docker/image:tag`. 

**dica**  
Os pacotes Docker, Enroot e Pyxis devem ser instalados durante a criação do cluster como parte da execução dos scripts de ciclo de vida, conforme orientado em [Scripts básicos de ciclo de vida fornecidos por HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md). Use os [scripts básicos de ciclo de vida](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config) fornecidos pela equipe HyperPod de serviço ao criar um HyperPod cluster. Esses scripts básicos são configurados para instalar os pacotes por padrão. No [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)script, há a classe `Config` com o parâmetro de tipo booleano para instalar os pacotes definidos como `True` (`enable_docker_enroot_pyxis=True`). Isso é chamado e analisado no [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)script, que chama os scripts `install_docker.sh` e `install_enroot_pyxis.sh` partir da pasta [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). Os scripts de instalação são onde as instalações reais dos pacotes ocorrem. Além disso, os scripts de instalação identificam se conseguem detectar caminhos de NVMe armazenamento das instâncias em que são executados e configuram os caminhos raiz para o Docker e o Enroot. `/opt/dlami/nvme` O volume raiz padrão de qualquer instância nova é montado `/tmp` somente com um volume EBS de 100 GB, que se esgota se a carga de trabalho que você planeja executar envolver treinamento LLMs e, portanto, contêineres Docker de grande porte. Se você usa famílias de instâncias como P e G com NVMe armazenamento local, você precisa se certificar de usar o NVMe armazenamento anexado em`/opt/dlami/nvme`, e os scripts de instalação cuidam dos processos de configuração.

**Para verificar se os caminhos raiz estão configurados corretamente**

Em um nó de computação do seu cluster Slurm em SageMaker HyperPod, execute os comandos a seguir para garantir que o script do ciclo de vida funcione corretamente e que o volume raiz de cada nó esteja definido como. `/opt/dlami/nvme/*` Os comandos a seguir mostram exemplos de verificação do caminho de runtime do Enroot e do caminho raiz de dados para 8 nós de computação de um 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
```

Depois de confirmar que os caminhos de runtime estão configurados corretamente para `/opt/dlami/nvme/*`, você estará pronto para criar e executar contêineres do Docker com o Enroot e o Pyxis.

**Para testar o Docker com o Slurm**

1. No seu nó de computação, tente os comandos a seguir para verificar se o Docker e o Enroot estão instalados corretamente.

   ```
   $ docker --help
   $ enroot --help
   ```

1. Teste se o Pyxis e o Enroot foram instalados corretamente executando uma das imagens [NVIDIA](https://catalog.ngc.nvidia.com/orgs/nvidia/containers/cuda) CUDA Ubuntu.

   ```
   $ 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                                                 |
   +-----------------------------------------------------------------------------+
   ```

   Você também pode testá-lo criando um script e executando um comando `sbatch` da seguinte maneira:

   ```
   $ 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                                                 |
   +-----------------------------------------------------------------------------+
   ```

**Para executar um trabalho de teste do Slurm com o Docker**

Depois de concluir a configuração do Slurm com o Docker, você pode trazer qualquer imagem pré-criada do Docker e executá-la usando o Slurm on. SageMaker HyperPod Veja a seguir um exemplo de caso de uso que mostra como executar um trabalho de treinamento usando o Docker e o Slurm on. SageMaker HyperPod Ele mostra um exemplo de trabalho de treinamento paralelo do modelo Llama 2 com a biblioteca de paralelismo de modelos de SageMaker IA (SMP).

1. Se você quiser usar uma das imagens ECR pré-criadas distribuídas por SageMaker AI ou DLC, certifique-se de dar ao seu HyperPod cluster as permissões para extrair imagens ECR por meio do. [Função do IAM para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod) Se você usar sua própria imagem do Docker ou de código aberto, você poderá ignorar esta etapa. Adicione as permissões a seguir ao arquivo [Função do IAM para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod). Neste tutorial, usamos a [imagem do Docker SMP](distributed-model-parallel-support-v2.md#distributed-model-parallel-supported-frameworks-v2) pré-empacotada com a biblioteca SMP.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ecr:BatchCheckLayerAvailability",
                   "ecr:BatchGetImage",
                   "ecr-public:*",
                   "ecr:GetDownloadUrlForLayer",
                   "ecr:GetAuthorizationToken",
                   "sts:*"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. No nó de computação, clone o repositório e acesse a pasta que fornece os exemplos de scripts de treinamento com SMP.

   ```
   $ git clone https://github.com/aws-samples/awsome-distributed-training/
   $ cd awsome-distributed-training/3.test_cases/17.SM-modelparallelv2
   ```

1. Neste tutorial, execute o script de amostra [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) que extrai a imagem do Docker SMP, cria o contêiner do Docker e o executa como um runtime do Enroot. Você pode modificar isso conforme desejar.

   ```
   $ 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. Crie um script em lote para iniciar um trabalho de treinamento usando o `sbatch`. Neste tutorial, o exemplo de script fornecido [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) inicia um trabalho de treinamento paralelo ao modelo Llama 2 de 70 bilhões de parâmetros com um conjunto de dados sintético em 8 nós de computação. Um conjunto de scripts de treinamento é fornecido em [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` é usado `train_external.py` como script de ponto de entrada.
**Importante**  
Para usar um contêiner do Docker SageMaker HyperPod, você deve montar o `/var/log` diretório da máquina host, que é o nó de HyperPod computação nesse caso, no `/var/log` diretório do contêiner. Você pode configurá-lo adicionando a seguinte variável para o 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
   ```

*Para encontrar os exemplos de código disponíveis para download, consulte [Executar um trabalho de treinamento paralelo ao modelo usando a biblioteca de paralelismo de modelos de SageMaker IA, Docker e Enroot with Slurm](https://github.com/aws-samples/awsome-distributed-training/tree/main/3.test_cases/17.SM-modelparallelv2#option-2----run-training-using-docker-and-enroot) no repositório Awsome Distributed Training. GitHub * Para obter mais informações sobre treinamento distribuído com um cluster Slurm ativado SageMaker HyperPod, vá para o próximo tópico em. [Executando cargas de trabalho de treinamento distribuídas com o Slurm on HyperPod](sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload.md)

# Executando cargas de trabalho de treinamento distribuídas com o Slurm on HyperPod
<a name="sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload"></a>

SageMaker HyperPod é especializada em cargas de trabalho de treinamento de grandes modelos de linguagem (LLMs) e modelos básicos (FMs). Essas workloads geralmente exigem o uso de várias técnicas de paralelismo e operações otimizadas para infraestrutura e recursos de ML. Usando SageMaker HyperPod, você pode usar as seguintes estruturas de treinamento distribuído de SageMaker IA:
+ A [biblioteca de paralelismo de dados distribuídos (SMDDP) de SageMaker IA](data-parallel.md) que oferece operações de comunicação coletiva otimizadas para. AWS
+ A [biblioteca de paralelismo de modelos de SageMaker IA (SMP)](model-parallel-v2.md) que implementa várias técnicas de paralelismo de modelos.

**Topics**
+ [Usando SMDDP em um SageMaker HyperPod](#sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload-smddp)
+ [Usando o SMP em um cluster SageMaker HyperPod](#sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload-smp)

## Usando SMDDP em um SageMaker HyperPod
<a name="sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload-smddp"></a>

A [biblioteca SMDDP](data-parallel.md) é uma biblioteca de comunicação coletiva que melhora o desempenho computacional do treinamento paralelo de dados distribuídos. A biblioteca SMDDP funciona com as seguintes estruturas de treinamento distribuídas de código aberto:
+ [PyTorchdados distribuídos paralelos (DDP)](https://pytorch.org/docs/stable/notes/ddp.html)
+ [PyTorch paralelismo de dados totalmente fragmentado (FSDP)](https://pytorch.org/docs/stable/fsdp.html)
+ [DeepSpeed](https://github.com/microsoft/DeepSpeed)
+ [Megatron- DeepSpeed](https://github.com/microsoft/Megatron-DeepSpeed)

A biblioteca SMDDP aborda a sobrecarga de comunicação das principais operações de comunicação coletiva, oferecendo o seguinte para. SageMaker HyperPod
+ A biblioteca oferece opções `AllGather` otimizadas para AWS. `AllGather`é uma operação chave usada no treinamento paralelo de dados fragmentados, que é uma técnica de paralelismo de dados com eficiência de memória oferecida por bibliotecas populares. Isso inclui a biblioteca de paralelismo de modelos de SageMaker IA (SMP), o Otimizador de Redundância Zero ( DeepSpeed Zero) e o Paralelismo de Dados PyTorch Totalmente Compartilhado (FSDP).
+ A biblioteca realiza uma node-to-node comunicação otimizada utilizando totalmente a infraestrutura de AWS rede e a topologia da instância de SageMaker AI ML. 

**Para executar exemplos de trabalhos de treinamento em paralelo com dados**

Explore os seguintes exemplos de treinamento distribuído implementando técnicas de paralelismo de dados usando a biblioteca 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)

**Para configurar um ambiente para usar a biblioteca SMDDP em SageMaker HyperPod**

A seguir estão os requisitos do ambiente de treinamento para usar a biblioteca SMDDP em. SageMaker HyperPod
+ PyTorch v2.0.1 e versões posteriores
+ CUDA v11.8 e versões posteriores
+ `libstdc++` versão de runtime maior do que 3
+ Python v3.10.x e posterior
+ `ml.p4d.24xlarge` e `ml.p4de.24xlarge`, que são tipos de instância compatíveis com a biblioteca SMDDP
+ `imdsv2` ativado no host de treinamento

Dependendo de como você deseja executar o trabalho de treinamento distribuído, há duas opções para instalar a biblioteca SMDDP:
+ Uma instalação direta usando o arquivo binário SMDDP.
+ Usando o SageMaker AI Deep Learning Containers (DLCs) pré-instalado com a biblioteca SMDDP.

As imagens do Docker pré-instaladas com a biblioteca SMDDP ou os arquivos binários do URLs SMDDP estão listadas em [Estruturas suportadas](https://docs.aws.amazon.com/sagemaker/latest/dg/distributed-data-parallel-support.html#distributed-data-parallel-supported-frameworks) na documentação da biblioteca SMDDP.

**Para instalar a biblioteca SMDDP no 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 você trabalha em um ambiente Conda, certifique-se de instalar PyTorch usando `conda install` em vez de`pip`.  

  ```
  conda install pytorch==X.Y.Z  torchvision==X.Y.Z torchaudio==X.Y.Z pytorch-cuda=X.Y.Z -c pytorch -c nvidia
  ```

**Para usar a biblioteca SMDDP em um contêiner do Docker**
+ A biblioteca SMDDP está pré-instalada nos SageMaker AI Deep Learning Containers (). DLCs Para encontrar a lista de estruturas de SageMaker IA DLCs para PyTorch a biblioteca SMDDP, consulte [Estruturas suportadas](https://docs.aws.amazon.com/sagemaker/latest/dg/distributed-data-parallel-support.html#distributed-data-parallel-supported-frameworks) na documentação da biblioteca SMDDP. Você também pode trazer seu próprio contêiner do Docker com as dependências necessárias instaladas para usar a biblioteca SMDDP. Para saber mais sobre como configurar um contêiner do Docker personalizado para usar a biblioteca SMDDP, consulte também [Crie seu próprio contêiner Docker com a biblioteca paralela de dados distribuídos de SageMaker IA](data-parallel-bring-your-own-container.md).
**Importante**  
Para usar a biblioteca SMDDP em um contêiner do Docker, monte o diretório `/var/log` da máquina host em `/var/log` no contêiner. Isso pode ser feito adicionando a seguinte opção ao executar seu contêiner:  

  ```
  docker run <OTHER_OPTIONS> -v /var/log:/var/log ...
  ```

Para saber como executar trabalhos de treinamento com dados paralelos com o SMDDP em geral, consulte [Treinamento distribuído com a biblioteca de SageMaker paralelismo de dados distribuídos de IA](data-parallel-modify-sdp.md).

## Usando o SMP em um cluster SageMaker HyperPod
<a name="sagemaker-hyperpod-run-jobs-slurm-distributed-training-workload-smp"></a>

A [biblioteca de paralelismo de modelos de SageMaker IA (SMP)](model-parallel-v2.md) oferece várias técnicas de [paralelismo de state-of-the-art modelos](model-parallel-core-features-v2.md), incluindo:
+ paralelismo de dados completamente compartilhados
+ paralelismo especializado
+ treinamento misto de precisão com FP16/BF16 e tipos de FP8 dados
+ paralelismo de tensores

A biblioteca SMP também é compatível com estruturas de código aberto, como PyTorch FSDP, NVIDIA Megatron e NVIDIA Transformer Engine.

**Para executar um exemplo de workload de treinamento paralelo ao modelo**

As equipes de serviços de SageMaker IA fornecem exemplos de trabalhos de treinamento implementando o paralelismo de modelos com a biblioteca SMP em. [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 monitoramento de recursos de cluster
<a name="sagemaker-hyperpod-cluster-observability-slurm"></a>

Para obter uma observabilidade abrangente em seus recursos de SageMaker HyperPod cluster e componentes de software, integre o cluster ao [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html) e ao [Amazon](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html) Managed Grafana. A integração com o Amazon Managed Service for Prometheus permite a exportação de métricas relacionadas aos HyperPod seus recursos de cluster, fornecendo informações sobre seu desempenho, utilização e integridade. A integração com o Amazon Managed Grafana permite a visualização dessas métricas por meio de vários painéis do Grafana que oferecem uma interface intuitiva para monitorar e analisar o comportamento do cluster. Ao aproveitar esses serviços, você obtém uma visão centralizada e unificada do seu HyperPod cluster, facilitando o monitoramento proativo, a solução de problemas e a otimização de suas cargas de trabalho de treinamento distribuídas.

**dica**  
Para encontrar exemplos e soluções práticas, veja também o [SageMaker HyperPodworkshop](https://catalog.workshops.aws/sagemaker-hyperpod).

![\[Uma visão geral da configuração SageMaker HyperPod com o Amazon Managed Service para Prometheus e Amazon Managed Grafana.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/hyperpod-observability-architecture.png)


Figura: Este diagrama de arquitetura mostra uma visão geral da configuração SageMaker HyperPod com o Amazon Managed Service para Prometheus e o Amazon Managed Grafana.

Continue com os tópicos a seguir para configurar a observabilidade SageMaker HyperPod do cluster.

**Topics**
+ [Pré-requisitos para a observabilidade do cluster SageMaker HyperPod](sagemaker-hyperpod-cluster-observability-slurm-prerequisites.md)
+ [Instalando pacotes de exportação de métricas em seu cluster HyperPod](sagemaker-hyperpod-cluster-observability-slurm-install-exporters.md)
+ [Validando a configuração do Prometheus no nó principal de um cluster HyperPod](sagemaker-hyperpod-cluster-observability-slurm-validate-prometheus-setup.md)
+ [Configurar um espaço de trabalho do Amazon Managed Grafana](sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws.md)
+ [Referência de métricas exportadas](sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference.md)
+ [Métricas do Amazon SageMaker HyperPod Slurm](smcluster-slurm-metrics.md)

# Pré-requisitos para a observabilidade do cluster SageMaker HyperPod
<a name="sagemaker-hyperpod-cluster-observability-slurm-prerequisites"></a>

Antes de prosseguir com as etapas [Instalando pacotes de exportação de métricas em seu cluster HyperPod](sagemaker-hyperpod-cluster-observability-slurm-install-exporters.md), certifique-se de que os seguintes pré-requisitos foram atendidos:

## Habilitar o IAM Identity Center
<a name="sagemaker-hyperpod-cluster-observability-slurm-prerequisites-iam-id-center"></a>

Para habilitar a observabilidade do seu SageMaker HyperPod cluster, você deve primeiro habilitar o IAM Identity Center. Esse é um pré-requisito para implantar uma CloudFormation pilha que configure o espaço de trabalho Amazon Managed Grafana e o Amazon Managed Service for Prometheus. Ambos os serviços também exigem o IAM Identity Center para autenticação e autorização, garantindo o acesso seguro do usuário e o gerenciamento da infraestrutura de monitoramento.

Para orientações detalhadas a respeito de como habilitar o Centro de Identidade do IAM, consulte a seção [Habilitar o Centro de Identidade do IAM](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-set-up-for-idc.html) no *Guia do usuário do Centro de Identidade do AWS IAM*. 

Depois de habilitar o Centro de Identidade do IAM com sucesso, configure uma conta de usuário que servirá como usuário administrativo em todos os procedimentos de configuração a seguir.

## Crie e implante uma CloudFormation pilha para observabilidade SageMaker HyperPod
<a name="sagemaker-hyperpod-cluster-observability-slurm-prerequisites-cloudformation-stack"></a>

Crie e implante uma CloudFormation pilha de SageMaker HyperPod observabilidade para monitorar métricas de HyperPod cluster em tempo real usando o Amazon Managed Service para Prometheus e o Amazon Managed Grafana. Para implantar a pilha, observe que você também deve habilitar o [Centro de Identidade do IAM](https://console.aws.amazon.com/singlesignon) com antecedência.

Use o CloudFormation script de amostra [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)que ajuda você a configurar as sub-redes Amazon VPC, os sistemas de arquivos FSx Amazon for Lustre, os buckets do Amazon S3 e as funções do IAM necessárias para criar uma pilha de observabilidade de clusters. HyperPod 

# Instalando pacotes de exportação de métricas em seu cluster HyperPod
<a name="sagemaker-hyperpod-cluster-observability-slurm-install-exporters"></a>

Na [configuração básica, os scripts de ciclo](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md) de vida fornecidos pela SageMaker HyperPod equipe também incluem a instalação de vários pacotes de exportadores de métricas. Para ativar a etapa de instalação, a única coisa que você precisa fazer é definir o parâmetro `enable_observability=True` no arquivo [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). Os scripts de ciclo de vida foram projetados para inicializar seu cluster com os seguintes pacotes de exportação de métricas de código aberto:


|  |  |  | 
| --- |--- |--- |
| Nome | Nó de destino da implantação do script | Descrição do exportador | 
| [Exportador de slurm para Prometheus](https://github.com/vpenso/prometheus-slurm-exporter) | Nó principal (controlador) |  Exporta métricas do Slurm Accounting.  | 
|  [exportador de nó Elastic Fabric Adapter (EFA)](https://github.com/aws-samples/awsome-distributed-training/tree/main/4.validation_and_observability/3.efa-node-exporter)  |  Nó de computação  |  Exporta métricas dos nós do cluster e do EFA. O pacote é uma bifurcação do [exportador de nós Prometheus](https://github.com/prometheus/node_exporter).  | 
|  [Exportador de gerenciamento de GPU de data center NVIDIA (DCGM)](https://github.com/NVIDIA/dcgm-exporter)  | Nó de computação |  Exporta métricas NVIDIA DCGM sobre integridade e desempenho da NVIDIA. GPUs  | 

Com o `enable_observability=True` do arquivo [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), a etapa de instalação a seguir é ativada no 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). 

```
# 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()
```

Nos nós de computação, o script instala o exportador NVIDIA Data Center GPU Management (DCGM) e o exportador de nós Elastic Fabric Adapter (EFA). O exportador DCGM é um exportador da Prometheus que coleta métricas da NVIDIA, permitindo o monitoramento do uso, desempenho e integridade da GPUs GPU. O exportador de nós EFA, por outro lado, reúne métricas relacionadas à interface de rede EFA, que é essencial para comunicação de baixa latência e alta largura de banda em clusters de HPC.

[No nó principal, o script instala o exportador Slurm para o Prometheus e o software de código aberto Prometheus.](https://prometheus.io/docs/introduction/overview/) O exportador Slurm fornece ao Prometheus métricas relacionadas a trabalhos, partições e estados de nó do Slurm.

Observe que os scripts de ciclo de vida são projetados para instalar todos os pacotes do exportador como contêineres do Docker, portanto, o pacote Docker também deve ser instalado nos nós principal e de computação. Os scripts desses componentes são fornecidos convenientemente na [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)pasta do repositório do *Awsome Distributed Training GitHub *.

Depois de configurar com sucesso seu HyperPod cluster instalado com os pacotes do exportador, vá para o próximo tópico para concluir a configuração do Amazon Managed Service para Prometheus e Amazon Managed Grafana.

# Validando a configuração do Prometheus no nó principal de um cluster HyperPod
<a name="sagemaker-hyperpod-cluster-observability-slurm-validate-prometheus-setup"></a>

Depois de configurar com sucesso o HyperPod cluster instalado com os pacotes do exportador, verifique se o Prometheus está configurado corretamente no nó principal do seu cluster. HyperPod 

1. Conecte-se ao nó principal do seu cluster. Para instruções sobre como acessar um nó, consulte [Acessando seus nós SageMaker HyperPod de cluster](sagemaker-hyperpod-run-jobs-slurm-access-nodes.md).

1. Execute o comando a seguir para verificar se o arquivo de configuração e serviço do Prometheus criado pelo `install_prometheus.sh` script do ciclo de vida está sendo executado no nó do controlador. A saída deve mostrar o status Ativo como **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. Valide o arquivo de configuração do Prometheus da seguinte forma: A saída deve ser semelhante à seguinte, com três exportadores configurados com os endereços IP corretos do nó de computação:

   ```
   $ 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. Para testar se o Prometheus está exportando as métricas Slurm, DCGM e EFA corretamente, execute o comando `curl` a seguir para o Prometheus na porta do nó principal `:9090`.

   ```
   $ curl -s http://localhost:9090/metrics | grep -E 'slurm|dcgm|efa'
   ```

   Com as métricas exportadas para o Amazon Managed Service for Prometheus Workspace por meio da configuração de gravação remota do Prometheus a partir do nó controlador, você pode prosseguir para o próximo tópico para configurar os painéis do Amazon Managed Grafana para exibir as métricas.

# Configurar um espaço de trabalho do Amazon Managed Grafana
<a name="sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws"></a>

Crie um novo espaço de trabalho Amazon Managed Grafana ou atualize um espaço de trabalho existente do Amazon Managed Grafana com o Amazon Managed Service for Prometheus como fonte de dados.

**Topics**
+ [Crie um espaço de trabalho do Grafana e defina o Amazon Managed Service for Prometheus como uma fonte de dados](#sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-create)
+ [Abra o espaço de trabalho da Grafana e conclua a configuração da fonte de dados](#sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-connect-data-source)
+ [Importe painéis de código aberto do Grafana](#sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-import-dashboards)

## Crie um espaço de trabalho do Grafana e defina o Amazon Managed Service for Prometheus como uma fonte de dados
<a name="sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-create"></a>

Para visualizar métricas do Amazon Managed Service for Prometheus, crie um workspace do Amazon Managed Grafana e configure-o para usar o Amazon Managed Service for Prometheus como fonte de dados.

1. Para criar um espaço de trabalho do Grafana, siga as instruções em [Criar um espaço de trabalho](https://docs.aws.amazon.com/grafana/latest/userguide/AMG-create-workspace.html#creating-workspace) no *Guia do usuário do Amazon Managed Service for Prometheus*.

   1. Na Etapa 13, selecione Amazon Managed Service for Prometheus como fonte de dados.

   1. Na Etapa 17, você pode adicionar o usuário administrador e também outros usuários no seu IAM Identity Center.

Para mais informações, consulte os recursos a seguir.
+ [Configurar o Amazon Managed Grafana para uso com o Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-amg.html) no *Guia do usuário do Amazon Managed Service for Prometheus*
+ [Use a configuração da fonte de AWS dados para adicionar o Amazon Managed Service for Prometheus como fonte de dados no Guia do usuário](https://docs.aws.amazon.com/grafana/latest/userguide/AMP-adding-AWS-config.html) do *Amazon Managed Grafana*

## Abra o espaço de trabalho da Grafana e conclua a configuração da fonte de dados
<a name="sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-connect-data-source"></a>

Depois de criar ou atualizar com sucesso um espaço de trabalho Amazon Managed Grafana, selecione a URL do espaço de trabalho para abrir o espaço de trabalho. Isso solicita que você insira um nome de usuário e a senha do usuário que você configurou no IAM Identity Center. Você deve fazer login usando o usuário administrador para concluir a configuração do espaço de trabalho.

1. Na página **inicial** do espaço de trabalho, escolha **Aplicações**, **Fontes de dados da AWS ** e **Fontes de dados**.

1. Acesse a página **Fontes de dados** e escolha a guia **Fontes de dados**.

1. Para **Serviço**, escolha Amazon Managed Service for Prometheus.

1. Na seção **Procurar e provisionar fontes de dados**, escolha a AWS região em que você provisionou um espaço de trabalho do Amazon Managed Service para Prometheus.

1. Na lista de fontes de dados na região selecionada, escolha aquela para o Amazon Managed Service for Prometheus. Certifique-se de verificar o ID do recurso e o alias do recurso do espaço de trabalho do Amazon Managed Service for Prometheus que você configurou para a pilha de observabilidade. HyperPod 

## Importe painéis de código aberto do Grafana
<a name="sagemaker-hyperpod-cluster-observability-slurm-managed-grafana-ws-import-dashboards"></a>

Depois de configurar com sucesso seu espaço de trabalho Amazon Managed Grafana com o Amazon Managed Service for Prometheus como fonte de dados, você começará a coletar métricas para o Prometheus e, em seguida, deverá começar a ver os vários painéis mostrando gráficos, informações e muito mais. O software de código aberto Grafana fornece vários painéis e você pode importá-los para o Amazon Managed Grafana.

**Para importar painéis de código aberto do Grafana para o Amazon Managed Grafana**

1. Na página **inicial** do seu espaço de trabalho Amazon Managed Grafana, escolha **Painéis**.

1. Escolha o botão do menu suspenso com o texto da interface do usuário **Novo** e selecione **Importar**.

1. Cole o URL no painel do [Slurm](https://grafana.com/grafana/dashboards/4323-slurm-dashboard/).

   ```
   https://grafana.com/grafana/dashboards/4323-slurm-dashboard/
   ```

1. Selecione **Carregar**.

1. Repita as etapas anteriores para importar os painéis a seguir.

   1. [Painel completo do Exportador de nós](https://grafana.com/grafana/dashboards/1860-node-exporter-full/)

      ```
      https://grafana.com/grafana/dashboards/1860-node-exporter-full/
      ```

   1. [Painel do exportador NVIDIA DCGM](https://grafana.com/grafana/dashboards/12239-nvidia-dcgm-exporter-dashboard/)

      ```
      https://grafana.com/grafana/dashboards/12239-nvidia-dcgm-exporter-dashboard/
      ```

   1. [Painel de métricas do EFA](https://grafana.com/grafana/dashboards/20579-efa-metrics-dev/)

      ```
      https://grafana.com/grafana/dashboards/20579-efa-metrics-dev/
      ```

   1. [FSx para o painel Lustre Metrics](https://grafana.com/grafana/dashboards/20906-fsx-lustre/)

      ```
      https://grafana.com/grafana/dashboards/20906-fsx-lustre/
      ```

# Referência de métricas exportadas
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference"></a>

As seções a seguir apresentam listas abrangentes de métricas exportadas do SageMaker HyperPod Amazon Managed Service for Prometheus após a configuração bem-sucedida da pilha para observabilidade. CloudFormation SageMaker HyperPod Você pode começar a monitorar essas métricas visualizadas nos painéis do Amazon Managed Grafana.

## Painel do exportador Slurm
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-slurm-exporter"></a>

Fornece informações visualizadas dos clusters do Slurm em. SageMaker HyperPod

**Tipos de métricas**
+ **Visão geral do cluster:** exibição do número total de nós, trabalhos e seus estados.
+ **Métricas de trabalho:** visualização de contagens e estados de trabalhos ao longo do tempo.
+ **Métricas do nó:** exibição dos estados dos nós, a alocação e os recursos disponíveis.
+ **Métricas de partição:** monitoramento de métricas específicas da partição, como CPU, memória e utilização da GPU.
+ **Eficiência do trabalho:** cálculo da eficiência do trabalho com base nos recursos utilizados.

**Lista de métricas**


| Nome da métrica | Description | 
| --- | --- | 
| slurm\$1job\$1count | Número total de trabalhos no cluster Slurm | 
| slurm\$1job\$1state\$1count | Contagem de trabalhos em cada estado (por exemplo, em execução, pendentes, concluídos) | 
| slurm\$1node\$1count  | O número total de nós do operador no cluster. | 
| slurm\$1node\$1state\$1count  | Contagem de nós em cada estado (por exemplo, inativo, alocação, mistura) | 
| slurm\$1partition\$1node\$1count  | Contagem de nós em cada partição | 
| slurm\$1partition\$1job\$1count  | Contagem de trabalhos em cada partição | 
| slurm\$1partition\$1alloc\$1cpus  | Número total de alocados CPUs em cada partição | 
| slurm\$1partition\$1free\$1cpus  | Número total de disponíveis CPUs em cada partição | 
| slurm\$1partition\$1alloc\$1memory  | Memória total alocada em cada partição | 
| slurm\$1partition\$1free\$1memory  | Memória total disponível em cada partição | 
| slurm\$1partition\$1alloc\$1gpus  | Total alocado GPUs em cada partição | 
| slurm\$1partition\$1free\$1gpus  | Total disponível GPUs em cada partição | 

## Painel do exportador de nó
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-node-exporter"></a>

Fornece informações visualizadas das métricas do sistema coletadas pelo exportador de nós do [Prometheus a partir dos nós do cluster](https://github.com/prometheus/node_exporter). HyperPod 

**Tipos de métricas**
+ **Visão geral do sistema:** exibição das médias de carga da CPU e o uso da memória.
+ **Métricas de memória:** visualização da utilização da memória, incluindo memória total, memória livre e espaço de troca.
+ **Uso do disco:** monitoramento da utilização e disponibilidade do espaço em disco.
+ **Tráfego de rede:** exibição dos bytes da rede recebidos e transmitidos ao longo do tempo.
+ **Métricas do sistema de arquivos:** análise do uso e da disponibilidade do sistema de arquivos.
+ ** I/O Métricas do disco:** visualização da atividade de leitura e gravação do disco.

**Lista de métricas**

[Para obter uma lista completa das métricas exportadas, consulte os repositórios [Node Exporter e procfs](https://github.com/prometheus/node_exporter?tab=readme-ov-file#enabled-by-default).](https://github.com/prometheus/procfs?tab=readme-ov-file) GitHub A tabela a seguir mostra um subconjunto das métricas que fornece informações sobre a utilização dos recursos do sistema, como carga da CPU, uso da memória, espaço em disco e atividade da rede.


| Nome da métrica | Description | 
| --- | --- | 
|  node\$1load1  | Carga média por um minuto | 
|  node\$1load5  | Carga média por 5 minutos | 
|  node\$1load15  | Carga média por 15 minutos | 
|  node\$1memory\$1MemTotal  | Memória total do sistema | 
|  node\$1memory\$1MemFree  | Memória livre do sistema | 
|  node\$1memory\$1MemAvailable  | Memória disponível para alocação em processos | 
|  node\$1memory\$1Buffers  | Memória usada pelo kernel para armazenamento em buffer | 
|  node\$1memory\$1Cached  | Memória usada pelo kernel para armazenar dados do sistema de arquivos em cache | 
|  node\$1memory\$1SwapTotal  | Espaço total de troca disponível | 
|  node\$1memory\$1SwapFree  | Espaço livre de troca | 
|  node\$1memory\$1SwapCached  | A memória que uma vez foi trocada, é trocada de volta, mas ainda está sendo trocada | 
|  node\$1filesystem\$1avail\$1bytes  | Espaço em disco disponível em bytes | 
|  node\$1filesystem\$1size\$1bytes  | Espaço total em disco em bytes | 
|  node\$1filesystem\$1free\$1bytes  | Espaço livre em disco em bytes | 
|  node\$1network\$1receive\$1bytes  | Bytes de rede recebidos | 
|  node\$1network\$1transmit\$1bytes  | Bytes de rede transmitidos | 
|  node\$1disk\$1read\$1bytes  | Bytes de disco lidos | 
|  node\$1disk\$1written\$1bytes  | Bytes de discos gravados | 

## Painel do exportador NVIDIA DCGM
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-nvidia-dcgm-exporter"></a>

Fornece informações visualizadas das métricas da GPU NVIDIA coletadas pelo [exportador NVIDIA DCGM](https://github.com/NVIDIA/dcgm-exporter).

**Tipos de métricas**
+ **Visão geral da GPU:** exibição da utilização da GPU, as temperaturas, o uso de energia e o uso da memória. 
+ **Métricas de temperatura:** visualização das temperaturas da GPU ao longo do tempo. 
+ **Uso de energia:** monitoramento do consumo de energia da GPU e das tendências de uso de energia. 
+ **Utilização da memória:** análise do uso da memória da GPU, incluindo memória usada, livre e total. 
+ **Velocidade da ventoinha:** mostra as velocidades e variações do ventoinha da GPU. 
+ **Erros de ECC:** rastreamento de erros de ECC e erros pendentes na memória da GPU.

**Lista de métricas**

A tabela a seguir mostra uma lista das métricas que fornecem informações sobre a integridade e o desempenho da GPU NVIDIA, incluindo frequências de relógio, temperaturas, uso de energia, utilização de memória, velocidades do ventilador e métricas de erro.


| Nome da métrica | Description | 
| --- | --- | 
|  DCGM\$1FI\$1DEV\$1SM\$1CLOCK  | Frequência do relógio SM (in MHz) | 
|  DCGM\$1FI\$1DEV\$1MEM\$1CLOCK  | Frequência do relógio de memória (in MHz) | 
|  DCGM\$1FI\$1DEV\$1MEMORY\$1TEMP  | Temperatura da memória (em C) | 
|  DCGM\$1FI\$1DEV\$1GPU\$1TEMP  | Temperatura da GPU (em C) | 
|  DCGM\$1FI\$1DEV\$1POWER\$1USAGE  | Consumo de energia (em W) | 
|  DCGM\$1FI\$1DEV\$1TOTAL\$1ENERGY\$1CONSUMPTION  | Consumo total de energia desde a inicialização (em mJ) | 
|  DCGM\$1FI\$1DEV\$1PCIE\$1REPLAY\$1COUNTER  | Número total de novas PCIe tentativas | 
|  DCGM\$1FI\$1DEV\$1MEM\$1COPY\$1UTIL  | Utilização da memória (em %) | 
|  DCGM\$1FI\$1DEV\$1ENC\$1UTIL  | Utilização do codificador (em %) | 
|  DCGM\$1FI\$1DEV\$1DEC\$1UTIL  | Utilização do decodificador (em %) | 
|  DCGM\$1FI\$1DEV\$1XID\$1ERRORS  | Valor do último erro de XID encontrado | 
|  DCGM\$1FI\$1DEV\$1FB\$1FREE  | Buffer de quadro livre de memória (em MiB) | 
|  DCGM\$1FI\$1DEV\$1FB\$1USED  | Memória de buffer de quadros usada (em MiB) | 
|  DCGM\$1FI\$1DEV\$1NVLINK\$1BANDWIDTH\$1TOTAL  | Número total de contadores de NVLink largura de banda para todas as faixas | 
|  DCGM\$1FI\$1DEV\$1VGPU\$1LICENSE\$1STATUS  | Status da licença do vGPU | 
|  DCGM\$1FI\$1DEV\$1UNCORRECTABLE\$1REMAPPED\$1ROWS  | Número de linhas remapeadas para erros incorrigíveis | 
|  DCGM\$1FI\$1DEV\$1CORRECTABLE\$1REMAPPED\$1ROWS  | Número de linhas remapeadas para erros corrigíveis | 
|  DCGM\$1FI\$1DEV\$1ROW\$1REMAP\$1FAILURE  | Se o remapeamento das linhas falhou | 

## Painel de métricas do EFA
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-efa-exporter"></a>

Fornece informações visualizadas das métricas do [Amazon Elastic Fabric Adapter (EFA)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) equipado em instâncias P coletadas pelo [exportador de nós EFA](https://github.com/aws-samples/awsome-distributed-training/blob/main/4.validation_and_observability/3.efa-node-exporter/README.md).

**Tipos de métricas**
+ **Métricas de erro do EFA:** visualização de erros como erros de alocação, erros de comando e erros do mapa de memória.
+ **Tráfego de rede EFA:** monitoramento de bytes, pacotes e solicitações de trabalho recebidos e transmitidos.
+ **Desempenho do EFA RDMA:** análise de operações de leitura e gravação de RDMA, incluindo bytes transferidos e taxas de erro.
+ **Vida útil da porta EFA**: exibição da vida útil das portas EFA ao longo do tempo.
+ Pacotes **de manutenção de atividade do EFA:** rastreando o número de pacotes de manutenção de atividade recebidos.

**Lista de métricas**

A tabela a seguir mostra uma lista das métricas que fornece informações sobre vários aspectos da operação do EFA, incluindo erros, comandos concluídos, tráfego de rede e utilização de recursos.


| Nome da métrica | Description | 
| --- | --- | 
|  node\$1amazonefa\$1info  | Dados não numéricos de/sys/class/infiniband/, o valor é sempre 1. | 
|  node\$1amazonefa\$1lifespan  | Vida útil do porto | 
|  node\$1amazonefa\$1rdma\$1read\$1bytes  | Número de bytes lidos com RDMA | 
|  node\$1amazonefa\$1rdma\$1read\$1resp\$1bytes  | Número de bytes de resposta de leitura com RDMA | 
|  node\$1amazonefa\$1rdma\$1read\$1wr\$1err  | Número de erros de leitura e gravação com RDMA | 
|  node\$1amazonefa\$1rdma\$1read\$1wrs  | Número de rs de leitura com RDMA | 
|  node\$1amazonefa\$1rdma\$1write\$1bytes  | Número de bytes gravados com RDMA | 
|  node\$1amazonefa\$1rdma\$1write\$1recv\$1bytes  | Número de bytes gravados e recebidos com RDMA | 
|  node\$1amazonefa\$1rdma\$1write\$1wr\$1err  | Número de bytes gravados com erro RDMA | 
|  node\$1amazonefa\$1rdma\$1write\$1wrs  | Número de bytes escritos em RDMA | 
|  node\$1amazonefa\$1recv\$1bytes  | Número de bytes recebidos. | 
|  node\$1amazonefa\$1recv\$1wrs  | Número de bytes wrs recebidos. | 
|  node\$1amazonefa\$1rx\$1bytes  | Número de bytes recebidos. | 
|  node\$1amazonefa\$1rx\$1drops  | Número de pacotes descartados | 
|  node\$1amazonefa\$1rx\$1pkts  | Número de pacotes recebidos | 
|  node\$1amazonefa\$1send\$1bytes  | Número de bytes enviados | 
|  node\$1amazonefa\$1send\$1wrs  | Número de wrs enviados | 
|  node\$1amazonefa\$1tx\$1bytes  | Número de bytes transmitidos. | 
|  node\$1amazonefa\$1tx\$1pkts  | Número de pacotes transmitidos. | 

## FSx para o painel de métricas do Lustre
<a name="sagemaker-hyperpod-cluster-observability-slurm-exported-metrics-reference-fsx-exporter"></a>

[Fornece informações visualizadas das [métricas do sistema de arquivos Amazon FSx for Lustre](https://docs.aws.amazon.com/fsx/latest/LustreGuide/monitoring-cloudwatch.html) coletadas pela Amazon. CloudWatch](https://docs.aws.amazon.com/fsx/latest/LustreGuide/monitoring-cloudwatch.html)

**nota**  
O painel Grafana FSx for Lustre utiliza a Amazon CloudWatch como fonte de dados, o que difere dos outros painéis que você configurou para usar o Amazon Managed Service for Prometheus. Para garantir o monitoramento e a visualização precisos das métricas relacionadas ao seu sistema de arquivos FSx for Lustre, configure o painel for Lustre FSx para usar a Amazon CloudWatch como fonte de dados, especificando a mesma Região da AWS onde seu sistema de arquivos FSx for Lustre está implantado.

**Tipos de métricas**
+ **DataReadBytes:** o número de bytes para operações de leitura do sistema de arquivos.
+ **DataWriteBytes:** o número de bytes para operações de gravação do sistema de arquivos.
+ **DataReadOperations:** o número de operações de leitura.
+ **DataWriteOperations:** o número de operações de gravação.
+ **MetadataOperations:** o número de operações de metadados.
+ **FreeDataStorageCapacity:** a quantidade de capacidade de armazenamento disponível.

# Métricas do Amazon SageMaker HyperPod Slurm
<a name="smcluster-slurm-metrics"></a>

 SageMaker HyperPod A Amazon fornece um conjunto de CloudWatch métricas da Amazon que você pode usar para monitorar a integridade e o desempenho dos seus HyperPod clusters. Essas métricas são coletadas do gerenciador de carga de trabalho do Slurm em execução em seus HyperPod clusters e estão disponíveis no namespace. `/aws/sagemaker/Clusters` CloudWatch 

## Métricas em nível de cluster
<a name="smcluster-slurm-metrics-cluster"></a>

As seguintes métricas em nível de cluster estão disponíveis para. HyperPod Essas métricas usam a `ClusterId` dimensão para identificar o HyperPod cluster específico.


| CloudWatch nome da métrica | Observações | Nome de métricas do Amazon EKS Container Insights | 
| --- | --- | --- | 
| cluster\$1node\$1count | O número total de nós no cluster. | cluster\$1node\$1count | 
| cluster\$1idle\$1node\$1count | O número de nós ociosos no cluster. | N/D | 
| cluster\$1failed\$1node\$1count | O número de nós com falha no cluster. | cluster\$1failed\$1node\$1count | 
| cluster\$1cpu\$1count | Total de núcleos de CPU no cluster. | node\$1cpu\$1limit | 
| cluster\$1idle\$1cpu\$1count | Número de núcleos de CPU ociosos no cluster. | N/D | 
| cluster\$1gpu\$1count | Total GPUs no cluster | node\$1gpu\$1limit | 
| cluster\$1idle\$1gpu\$1count | Número de inativos GPUs no cluster | N/D | 
| cluster\$1running\$1task\$1count | Número total de trabalhos em execução do Slurm no cluster. | N/D | 
| cluster\$1pending\$1task\$1count | Número total de trabalhos pendentes do Slurm no cluster. | N/D | 
| cluster\$1preempted\$1task\$1count | Número total de trabalhos antecipados do Slurm no cluster. | N/D | 
| cluster\$1avg\$1task\$1wait\$1time | Tempo médio de espera de trabalhos do Slurm no cluster. | N/D | 
| cluster\$1max\$1task\$1wait\$1time | Tempo máximo de espera de trabalhos do Slurm no cluster. | N/D | 

## Métricas em nível de instância
<a name="smcluster-slurm-metrics-instance"></a>

As seguintes métricas em nível de instância estão disponíveis para. HyperPod Essas métricas também usam a `ClusterId` dimensão para identificar o HyperPod cluster específico.


| CloudWatch nome da métrica | Observações | Nome de métricas do Amazon EKS Container Insights | 
| --- | --- | --- | 
| node\$1gpu\$1utilization | Utilização média de GPU em todas as instâncias. | node\$1gpu\$1utilization | 
| node\$1gpu\$1memory\$1utilization | Utilização média de memória de GPU em todas as instâncias. | node\$1gpu\$1memory\$1utilization | 
| node\$1cpu\$1utilization | Utilização média de CPU em todas as instâncias. | node\$1cpu\$1utilization | 
| node\$1memory\$1utilization | Utilização média de memória em todas as instâncias. | node\$1memory\$1utilization | 

# SageMaker HyperPod resiliência de clusters
<a name="sagemaker-hyperpod-resiliency-slurm"></a>

SageMaker HyperPod por meio da orquestração do Slurm, fornece os seguintes recursos de resiliência de cluster.

**Topics**
+ [Agente de monitoramento de saúde](sagemaker-hyperpod-resiliency-slurm-cluster-health-check.md)
+ [Recuperação automática de nós e retomada automática](sagemaker-hyperpod-resiliency-slurm-auto-resume.md)
+ [Substitua ou reinicialize manualmente um nó usando o Slurm](sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance.md)

# Agente de monitoramento de saúde
<a name="sagemaker-hyperpod-resiliency-slurm-cluster-health-check"></a>

Esta seção descreve o conjunto de verificações de integridade SageMaker HyperPod usado para monitorar regularmente a integridade da instância do cluster em busca de problemas com dispositivos como aceleradores (núcleos de GPU e Trainium) e redes (EFA). SageMaker HyperPod o agente de monitoramento de saúde (HMA) monitora continuamente o status de saúde de cada instância baseada em GPU ou Trainium. Ao detectar qualquer falha na instância ou na GPU, o agente marca a instância como não íntegra.

SageMaker HyperPod O HMA realiza as mesmas verificações de integridade para os orquestradores EKS e Slurm. Para obter mais informações sobre o HMA, consulte[Sistema de Monitoramento de Saúde](sagemaker-hyperpod-eks-resiliency-health-monitoring-agent.md).

# Recuperação automática de nós e retomada automática
<a name="sagemaker-hyperpod-resiliency-slurm-auto-resume"></a>

**nota**  
A partir de 11 de setembro de 2025, HyperPod com o Slurm, a orquestração agora suporta agentes de monitoramento de saúde. Execute [UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)e atualize para a versão mais recente da AMI para usar essa funcionalidade.

Esta seção fala sobre os dois recursos de resiliência complementares SageMaker HyperPod da Amazon: recuperação automática de nós, que substitui a infraestrutura defeituosa sem intervenção manual, e a funcionalidade de retomada automática, que reinicia as tarefas de treinamento a partir do último ponto de verificação após falhas de hardware.

## Como funciona a recuperação automática de nós
<a name="sagemaker-hyperpod-resiliency-slurm-auto-resume-how"></a>

Durante a criação ou atualização do cluster, os usuários administradores do cluster podem selecionar a opção de recuperação do nó (instância) entre `Automatic` (Recomendado) e `None` no nível do cluster. Se definido como`Automatic`, SageMaker HyperPod reinicializa ou substitui automaticamente os nós defeituosos. 

**Importante**  
Recomendamos definir a opção `Automatic`. Por padrão, os clusters são configurados com a recuperação automática de nós.

A recuperação automática de nós é executada quando problemas são encontrados no agente de monitoramento de integridade, nas verificações básicas de integridade e nas verificações profundas de integridade. Se definido como `None`, o agente de monitoramento de integridade rotulará as instâncias quando uma falha for detectada, mas não iniciará automaticamente nenhuma ação de reparo ou recuperação nos nós afetados. Não recomendamos essa opção.

## Executando um trabalho de treinamento com a funcionalidade de SageMaker HyperPod retomada automática da Amazon
<a name="sagemaker-hyperpod-resiliency-slurm-auto-resume-job"></a>

Esta seção descreve como executar um trabalho de treinamento com a funcionalidade de SageMaker HyperPod retomada automática, que fornece uma infraestrutura de resiliência sem toque para recuperar automaticamente um trabalho de treinamento do último ponto de verificação salvo no caso de uma falha de hardware.

Com a funcionalidade de retomada automática, se um trabalho falhar devido a uma falha de hardware ou a qualquer problema transitório entre o treinamento, o SageMaker HyperPod reinício automático inicia o fluxo de trabalho de substituição do nó e reinicia o trabalho após a substituição dos nós defeituosos. As seguintes verificações de hardware são executadas sempre que um trabalho falha ao usar a retomada automática:


| Categoria | Nome do utilitário | Compatibilidade de tipo de instância | Description | 
| --- | --- | --- | --- | 
| Acelerador | NVIDIA SMI | GPU | [O utilitário nvidia-smi é uma CLI](https://developer.nvidia.com/nvidia-system-management-interface) bem conhecida para gerenciar e monitorar. GPUs O verificador de integridade integrado analisa a saída de nvidia-smi para determinar a integridade da instância. | 
| Acelerador | Sistemas de neurônios | Trainium | Para instâncias alimentadas por Trainium, a integridade dos dispositivos Neuron é determinada pela leitura de contadores do [Neuron sysfs](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/tools/neuron-sys-tools/neuron-sysfs-user-guide.html) propagados diretamente pelo driver Neuron. | 
| Rede | EFA | GPU e Trainium | Para auxiliar no diagnóstico dos dispositivos Elastic Fabric Adaptor (EFA), o verificador de integridade do EFA executa uma série de testes de conectividade usando todas as placas EFA disponíveis na instância. | 

**nota**  
Quando [recursos genéricos (GRES)](https://slurm.schedmd.com/gres.html) são anexados a um nó do Slurm, o Slurm normalmente não permite alterações na alocação do nó, como a substituição de nós, e, portanto, não permite a retomada de um trabalho com falha. A menos que seja explicitamente proibida, a funcionalidade de HyperPod retomada automática coloca automaticamente em fila novamente qualquer trabalho com defeito associado aos nós habilitados para GRES. Esse processo envolve interromper o trabalho, colocá-lo de volta na fila de trabalhos e reiniciar o trabalho desde o início.

**Usando a funcionalidade de SageMaker HyperPod retomada automática com o Slurm**

Ao usar a SageMaker HyperPod retomada automática com o Slurm, você deve executar o trabalho dentro de uma alocação exclusiva adquirida usando ou. `salloc` `sbatch` De qualquer forma, você precisa modificar o script do ponto de entrada para garantir que todas as etapas de configuração sejam executadas em um único comando `srun` ao retomar o trabalho. Por meio do script de ponto de entrada, é importante configurar o ambiente no nó substituído para ser consistente com o ambiente em que a etapa do trabalho estava executando antes de ser interrompida. O procedimento a seguir mostra como preparar um script de ponto de entrada para manter o ambiente consistente e executá-lo como um único `srun` comando.

**dica**  
Se você usar `sbatch`, poderá manter o script em lote simples criando um script separado para configurar o ambiente e usando um único comando `srun`.

1. Crie um script usando o exemplo de código a seguir e salve-o como `train_auto_resume.sh`. Esse script implanta configurações do ambiente de treinamento, supondo que não haja nenhuma configuração manual feita anteriormente no nó substituído. Isso garante que o ambiente seja independente de nós, de modo que, quando um nó for substituído, o mesmo ambiente seja provisionado no nó antes de retomar o trabalho.
**nota**  
O exemplo de código a seguir mostra como descobrir a lista de nós do Slurm associada ao trabalho. Não use a variável de `$SLURM_JOB_NODELIST` ambiente fornecida pelo Slurm, pois seu valor pode ficar desatualizado após a SageMaker HyperPod retomada automática do trabalho. O exemplo de código a seguir mostra como definir uma nova variável `NODE_LIST` para substituir `SLURM_JOB_NODELIST`, em seguida, configurar as variáveis `MASTER_NODE` e `MASTER_ADDR` e fora da variável `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
   ```
**dica**  
Você pode usar o script anterior para adicionar mais comandos para instalar quaisquer dependências adicionais para seu trabalho. No entanto, recomendamos que você mantenha os scripts de instalação de dependências no [conjunto de scripts de ciclo de](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md) vida que são usados durante a criação do cluster. Se você usa um ambiente virtual hospedado em um diretório compartilhado, também pode utilizar esse script para ativar o ambiente virtual.

1. Inicie o trabalho com a SageMaker HyperPod retomada automática ativada adicionando o sinalizador `--auto-resume=1` para indicar que o `srun` comando deve ser repetido automaticamente em caso de falha de hardware. 
**nota**  
Se você configurou uma alocação de recursos usando `sbatch` ou `salloc`, você pode executar vários comandos `srun` dentro da alocação. No caso de uma falha, a funcionalidade de SageMaker HyperPod retomada automática opera somente na [etapa de trabalho](https://slurm.schedmd.com/job_launch.html#step_allocation) atual do `srun` comando com o sinalizador`--auto-resume=1`. Em outras palavras, ativar a retomada automática em um comando `srun` não se aplica a outros comandos `srun` iniciados em uma sessão de alocação de recursos.

   A seguir, exemplos de comando `srun` com `auto-resume` habilitado.

   **Usando sbatch**

   Como a maior parte da lógica de configuração do ambiente já está estabelecida em `train_auto_resume.sh`, o script em lote deve ser simples e semelhante ao exemplo de código a seguir. Suponha que o script em lote a seguir seja salvo como `batch.sh`.

   ```
   #!/bin/bash
   #SBATCH --nodes 2
   #SBATCH --exclusive
   srun --auto-resume=1 train_auto_resume.sh
   ```

   Execute o script em lote anterior usando o seguinte comando:

   ```
   sbatch batch.sh
   ```

   **Usando salloc**

   Comece adquirindo uma alocação exclusiva e execute o comando `srun` com a sinalização `--auto-resume` e o sinalizador e o script do ponto de entrada.

   ```
   salloc -N 2 --exclusive
   srun --auto-resume=1 train_auto_resume.sh
   ```

## Como a recuperação automática de nós e a retomada automática funcionam juntas
<a name="sagemaker-hyperpod-resiliency-slurm-auto-resume-node-recovery"></a>

Quando os sistemas de recuperação automática de nós e de retomada automática estão ativos, eles seguem uma abordagem coordenada para lidar com falhas. Se o HMA detectar uma falha de hardware, o nó será marcado para drenagem, independentemente do status do nível do trabalho. Com a recuperação automática de nós ativada, os nós são substituídos automaticamente quando todas as tarefas em execução nos nós são encerradas. Nesse cenário, para trabalhos com a retomada automática ativada, se houver um status de saída diferente de zero na etapa, a retomada automática entra em ação (os trabalhos são retomados quando os nós são substituídos). Os trabalhos sem a retomada automática simplesmente serão encerrados, exigindo o reenvio manual por administradores ou usuários.

**nota**  
Se você usar a retomada automática, os nós sempre serão substituídos (sem reinicializações) quando forem detectadas falhas de hardware.

# Substitua ou reinicialize manualmente um nó usando o Slurm
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance"></a>

Esta seção fala sobre quando você deve reinicializar ou substituir manualmente um nó, com instruções sobre como fazer as duas coisas.

## Quando reinicializar ou substituir manualmente um nó
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-when"></a>

A funcionalidade de HyperPod retomada automática monitora se o estado dos seus nós do Slurm muda para ou. `fail` `down` Você pode verificar o estado dos nós do Slurm executando `sinfo`.

Se um nó permanecer preso ou sem resposta e o processo de retomada automática não o recuperar, você poderá iniciar a recuperação manualmente. A escolha entre reinicializar e substituir um nó depende da natureza do problema. Considere a reinicialização ao enfrentar problemas temporários ou relacionados ao software, como travamentos do sistema, vazamentos de memória, problemas no driver da GPU, atualizações do kernel ou processos interrompidos. No entanto, se você encontrar problemas persistentes ou relacionados ao hardware, como falhas, falhas de memória ou de rede GPUs, falhas repetidas na verificação de integridade ou nós que permanecem sem resposta após várias tentativas de reinicialização, a substituição do nó é a solução mais apropriada.

## Formas de reinicializar ou substituir manualmente os nós
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-ways"></a>

SageMaker HyperPod oferece dois métodos para recuperação manual de nós. A abordagem preferida é usar o SageMaker HyperPod Reboot and Replace APIs, que fornece um processo de recuperação mais rápido e transparente que funciona em todos os orquestradores. Como alternativa, você pode usar comandos tradicionais do Slurm`scontrol update`, como, embora esse método legado exija acesso direto ao nó controlador do Slurm. Ambos os métodos ativam os mesmos processos SageMaker HyperPod de recuperação.

## Reinicialize manualmente um nó usando a API de reinicialização
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-reboot-api"></a>

 Você pode usar o **BatchRebootClusterNodes**para reinicializar manualmente um nó com defeito no seu SageMaker HyperPod cluster.

 Aqui está um exemplo de como executar a operação de reinicialização em duas instâncias de um cluster usando o 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
```

## Substituir manualmente um nó usando a API de substituição
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-replace-api"></a>

 Você pode usar o **BatchReplaceClusterNodes**para substituir manualmente um nó com defeito no seu SageMaker HyperPod cluster.

 Aqui está um exemplo de execução da operação de substituição em duas instâncias de um cluster usando o 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
```

## Reinicialize manualmente um nó usando o Slurm
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-reboot"></a>

Você também pode usar os comandos scontrol Slurm para acionar a recuperação do nó. Esses comandos interagem diretamente com o plano de controle do Slurm e invocam os mesmos mecanismos de recuperação subjacentes SageMaker HyperPod . 

No comando a seguir, <ip-ipv4>substitua pelo nome do nó Slurm (nome do host) da instância com defeito que você deseja reinicializar.

```
scontrol update node=<ip-ipv4> state=fail reason="Action:Reboot"
```

Isso marca o nó como FAIL com o motivo especificado. SageMaker HyperPod detecta isso e reinicia a instância. Evite alterar o estado do nó ou reiniciar o controlador Slurm durante a operação.

## Substituir manualmente um nó usando o Slurm
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-replace"></a>

Você pode usar o comando scontrol update da seguinte forma para substituir um nó.

No comando a seguir, `<ip-ipv4>` substitua pelo nome do nó do Slurm (nome do host) da instância com defeito que você deseja substituir.

```
scontrol update node=<ip-ipv4> state=fail reason="Action:Replace"
```

Depois de executar esse comando, o nó entrará no `fail` estado, aguardará a conclusão dos trabalhos atualmente em execução, será substituído por uma instância íntegra e será recuperado com o mesmo nome de host. Esse processo leva tempo, dependendo das instâncias disponíveis em sua zona de disponibilidade e do tempo necessário para executar seus scripts de ciclo de vida. Durante os processos de atualização e substituição, evite alterar o estado do nó manualmente novamente ou reiniciar o controlador Slurm; isso pode causar uma falha na substituição. Se o nó não for recuperado nem voltar ao estado `idle` após um longo período, entre em contato com a [Ajuda da AWS](https://console.aws.amazon.com/support/).

## Forçar manualmente a mudança de um nó
<a name="sagemaker-hyperpod-resiliency-slurm-replace-faulty-instance-force"></a>

Se o nó com defeito estiver continuamente preso no estado `fail`, o último recurso que você pode tentar é forçar manualmente a alteração do estado do nó para `down`. Isso requer privilégios de administrador (permissões sudo).

**Atenção**  
Prossiga com cuidado antes de executar o comando a seguir, pois ele força o encerramento de todas as tarefas e você poderá perder todo o trabalho não salvo.

```
scontrol update node=<ip-ipv4> state=down reason="Action:Replace"
```

# Provisionamento contínuo para operações de cluster aprimoradas com o Slurm
<a name="sagemaker-hyperpod-scaling-slurm"></a>

 SageMaker HyperPod Os clusters da Amazon criados com a orquestração do Slurm agora oferecem suporte ao provisionamento contínuo, um recurso que permite maior flexibilidade e eficiência ao executar cargas de trabalho em grande escala. AI/ML O provisionamento contínuo permite que você comece a treinar rapidamente, escale sem problemas, realize a manutenção sem interromper as operações e tenha visibilidade granular das operações do cluster.

**nota**  
O provisionamento contínuo está disponível como uma configuração opcional para novos HyperPod clusters criados com a orquestração do Slurm. No momento, os clusters existentes que usam o modelo de escalabilidade anterior não podem ser migrados para o provisionamento contínuo.

## Como funciona
<a name="sagemaker-hyperpod-scaling-slurm-how"></a>

O sistema de provisionamento contínuo introduz uma arquitetura de estado desejado que substitui o modelo de escalabilidade tradicional. all-or-nothing No modelo anterior, se algum grupo de instâncias não pudesse ser totalmente provisionado, toda a operação de criação ou atualização do cluster falhava e era revertida. Com o provisionamento contínuo, o sistema aceita capacidade parcial e continua a provisionar as instâncias restantes de forma assíncrona.

O sistema de provisionamento contínuo:
+ **Aceita a solicitação**: registra a contagem de instâncias de destino para cada grupo de instâncias.
+ **Inicia o provisionamento**: começa a lançar instâncias para todos os grupos de instâncias em paralelo.
+ **Provisiona os nós prioritários primeiro**: o cluster faz a transição para `InService` depois que pelo menos um nó controlador (e um nó de login, se um grupo de instâncias de login for especificado) for provisionado com sucesso.
+ Monitora o **progresso**: monitora cada tentativa de inicialização da instância e registra o status.
+ **Lida com falhas**: repete automaticamente as inicializações com falha nos nós de trabalho de forma assíncrona.

O provisionamento contínuo está desabilitado por padrão. Para usar esse recurso, `NodeProvisioningMode` defina como `Continuous` em sua `CreateCluster` solicitação.

Com o provisionamento contínuo habilitado, você pode iniciar várias operações de ajuste de escala simultaneamente, sem precisar esperar a conclusão das operações anteriores. Isso permite escalar diferentes grupos de instâncias no mesmo cluster simultaneamente e enviar várias solicitações de ajuste de escala ao mesmo grupo de instâncias.

## Provisionamento baseado em prioridades
<a name="sagemaker-hyperpod-scaling-slurm-priority"></a>

Os clusters do Slurm exigem que um nó controlador esteja operacional antes que os nós de trabalho possam registrar e aceitar trabalhos. O provisionamento contínuo lida com isso automaticamente por meio do provisionamento baseado em prioridades:

1. O grupo de instâncias do controlador é provisionado primeiro.

1. Quando um nó controlador está íntegro, os nós de login e os nós de trabalho começam a ser provisionados em paralelo.

1. O cluster muda para `InService` quando um nó controlador está ativo e um nó de login está ativo (se um grupo de instâncias de login for especificado). Se nenhum grupo de instâncias de login for especificado, o cluster será transferido para ele `InService` assim que o nó do controlador for provisionado.

1. Os nós de trabalho que não podem ser provisionados imediatamente devido a restrições de capacidade entram em um loop de repetição assíncrona e são adicionados ao cluster Slurm automaticamente assim que ficam disponíveis.

## Tratamento de falhas no controlador
<a name="sagemaker-hyperpod-scaling-slurm-controller-failure"></a>

Durante a criação do cluster, se o nó do controlador falhar no provisionamento, o comportamento depende se o erro pode ser repetido ou não.

**Erros que podem ser repetidos** (por exemplo, instâncias não íntegras ou falhas transitórias):
+ HyperPod substitui continuamente a instância e tenta novamente o provisionamento até que o controlador seja ativado.
+ Os nós de trabalho e de login que já foram provisionados permanecem disponíveis, mas o cluster não faz a transição `InService` até que o controlador esteja íntegro.

**Erros que não podem ser repetidos** (por exemplo, nenhuma capacidade disponível para o tipo de instância do controlador ou falha no script do ciclo de vida):
+ O cluster está marcado como`Failed`.
+ Você é notificado sobre o motivo da falha e deve tomar medidas corretivas, como escolher um tipo de instância diferente, corrigir scripts de ciclo de vida ou tentar novamente em uma zona de disponibilidade diferente.

## Pré-requisitos
<a name="sagemaker-hyperpod-scaling-slurm-prerequisites"></a>

O provisionamento contínuo exige que os parâmetros de provisionamento do Slurm (tipos de nós, nomes de partições) sejam fornecidos por meio da carga útil da API no campo de cada grupo de instâncias. `SlurmConfig` Os clusters que dependem do `provisioning_parameters.json` arquivo legado no Amazon S3 não são compatíveis com o provisionamento contínuo.

**nota**  
Atualmente, os seguintes recursos não são compatíveis com o provisionamento contínuo em clusters Slurm: migração de clusters existentes, configuração de nós com várias cabeças por meio da topologia Slurm baseada em API e. `SlurmConfigStrategy` O provisionamento contínuo opera exclusivamente no modo de mesclagem para gerenciamento. `slurm.conf`

## Medição do uso
<a name="sagemaker-hyperpod-scaling-slurm-metering"></a>

HyperPod clusters com provisionamento contínuo usam a medição em nível de instância para fornecer um faturamento preciso que reflita o uso real dos recursos. Essa abordagem de medição difere do faturamento tradicional em nível de cluster, pois rastreia cada instância de forma independente.

**Faturamento em nível de instância**

Com o provisionamento contínuo, o faturamento começa e termina em nível de instância, em vez de esperar por mudanças de estado em nível de cluster. Isso oferece os seguintes benefícios:
+ **Faturamento preciso**: o faturamento começa quando a execução do script de ciclo de vida começa. Se o script do ciclo de vida falhar, o provisionamento da instância será repetido e você será cobrado pela duração do tempo de execução do script do ciclo de vida.
+ **Medição independente: o** ciclo de vida de faturamento de cada instância é gerenciado separadamente, evitando erros de cobrança em cascata.
+ **Atualizações de faturamento em tempo real**: o faturamento começa quando uma instância começa a executar seu script de configuração do ciclo de vida e termina quando a instância entra em um estado de encerramento.

**Ciclo de vida do faturamento**

Cada instância em seu HyperPod cluster segue esse ciclo de vida de faturamento:
+ O **faturamento começa**: quando a instância é iniciada com sucesso e começa a executar seu script de configuração do ciclo de vida.
+ O **faturamento continua**: durante toda a vida operacional da instância.
+ O **faturamento é interrompido**: quando a instância entra em um estado de encerramento, independentemente do motivo da rescisão.

**nota**  
O faturamento não começa para instâncias que falham na inicialização. Se a execução de uma instância falhar devido a insuficiência de capacidade ou a outros problemas, você não receberá cobranças por essa tentativa malsucedida. O faturamento é calculado em nível de instância e os custos são agregados e relatados no nome do recurso da Amazon (ARN) do cluster.

## Criar um cluster com o provisionamento contínuo habilitado
<a name="sagemaker-hyperpod-scaling-slurm-create"></a>

**nota**  
Prepare um script de configuração do ciclo de vida e carregue-o em um bucket do Amazon S3 que sua função de execução possa acessar. Para obter mais informações, consulte [SageMaker HyperPod Operações de cluster do Slurm](sagemaker-hyperpod-operate-slurm.md).

Prepare um arquivo de solicitação de `CreateCluster` API no formato JSON. Configure `NodeProvisioningMode` `Continuous` e forneça informações de topologia do Slurm no campo de cada grupo de instâncias. `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"]
    }
}
```

Execute o `create-cluster` comando para enviar a solicitação.

```
aws sagemaker create-cluster \
    --cli-input-json file://complete/path/to/create_cluster.json
```

Isso retorna o ARN do novo cluster.

```
{
    "ClusterArn": "arn:aws:sagemaker:us-west-2:111122223333:cluster/abcde12345"
}
```

## Gerenciamento de configuração do Slurm
<a name="sagemaker-hyperpod-scaling-slurm-config"></a>

O provisionamento contínuo opera exclusivamente no modo de mesclagem para `slurm.conf` gerenciamento de partições. No modo de mesclagem, HyperPod aplica suas alterações de configuração de partição de forma aditiva sobre o que você modificou. `slurm.conf` HyperPod atualiza somente as seções relacionadas à partição `slurm.conf` (como entradas de nome da partição e nome do nó); outros parâmetros de configuração do Slurm não são modificados. Isso significa que:
+ Suas edições manuais `slurm.conf` são preservadas.
+ Não há detecção automática de desvios ou resolução de conflitos entre suas modificações e HyperPod o estado esperado.

O `SlurmConfigStrategy` parâmetro (`Managed`,`Merge`,`Overwrite`) não é compatível com o provisionamento contínuo. A transmissão de qualquer `SlurmConfigStrategy` valor resulta em um erro de API.

# SageMaker HyperPod gerenciamento de clusters
<a name="sagemaker-hyperpod-cluster-management-slurm"></a>

Os tópicos a seguir abordam o registro e o gerenciamento de SageMaker HyperPod clusters.

## Registrando SageMaker HyperPod eventos
<a name="sagemaker-hyperpod-cluster-management-slurm-logging-hyperpod-events"></a>

Todos os eventos e registros de SageMaker HyperPod são salvos na Amazon CloudWatch com o nome do grupo de registros`/aws/sagemaker/Clusters/[ClusterName]/[ClusterID]`. Cada chamada para a API `CreateCluster` cria um novo grupo de logs. A lista a seguir contém todos os fluxos de logs disponíveis coletados em cada grupo de logs.


|  |  | 
| --- |--- |
| Nome do grupo de logs | Nome do fluxo de logs | 
| /aws/sagemaker/Clusters/[ClusterName]/[ClusterID] | LifecycleConfig/[instance-group-name]/[instance-id] | 

## Registro SageMaker HyperPod em nível de instância
<a name="sagemaker-hyperpod-cluster-management-slurm-logging-at-instance-level"></a>

Você pode acessar os LifecycleScript registros publicados CloudWatch durante a configuração da instância do cluster. Cada instância dentro do cluster criado gera um fluxo de log separado, que pode ser distinguido pelo formato `LifecycleConfig/[instance-group-name]/[instance-id]`. 

Todos os registros gravados `/var/log/provision/provisioning.log` são enviados para o CloudWatch stream anterior. Amostra LifecycleScripts ao [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)redirecionar suas `stdout` e `stderr` para este local. Se você estiver usando seus scripts personalizados, grave seus registros no `/var/log/provision/provisioning.log` local em que eles estejam disponíveis CloudWatch.

**Marcadores de registro de script de ciclo de vida**

CloudWatch os registros de scripts de ciclo de vida incluem marcadores específicos para ajudar você a acompanhar o progresso da execução e identificar problemas:


|  |  | 
| --- |--- |
| Marker | Descrição | 
| 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 | 

Esses marcadores ajudam você a identificar rapidamente em que ponto do processo de execução do script do ciclo de vida ocorreu um problema. Ao solucionar falhas, revise as entradas de registro para identificar onde o processo parou ou falhou.

**Mensagens de falha do script de ciclo de vida**

Se o script do ciclo de vida existir, mas falhar durante a execução, você receberá uma mensagem de erro que inclui o nome do grupo de CloudWatch registros e o nome do fluxo de registros. Caso haja falhas no script de ciclo de vida em várias instâncias, a mensagem de erro indicará somente uma instância com falha, mas o grupo de registros deverá conter fluxos para todas as instâncias.

Você pode ver a mensagem de erro executando a [DescribeCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html)API ou visualizando a página de detalhes do cluster no SageMaker console. No console, é fornecido um botão **Exibir registros do script de ciclo** de vida que navega diretamente até o CloudWatch fluxo de registros. A mensagem de erro tem o seguinte 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.
```

## Marcar recursos
<a name="sagemaker-hyperpod-cluster-management-slurm-tagging"></a>

AWS O sistema de marcação ajuda a gerenciar, identificar, organizar, pesquisar e filtrar recursos. SageMaker HyperPod oferece suporte à marcação, para que você possa gerenciar os clusters como um AWS recurso. Durante a criação do cluster ou a edição de um cluster existente, você pode adicionar ou editar marcações para o cluster. Para saber mais sobre a marcação em geral, consulte [Como marcar seus AWS recursos](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html).

### Usando a interface do usuário SageMaker HyperPod do console
<a name="sagemaker-hyperpod-cluster-management-slurm-tagging-in-console"></a>

Quando você está [criando um novo cluster](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-create-cluster) ou [editando um cluster](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-edit-clusters), pode adicionar, remover ou editar marcações.

### Usando o SageMaker HyperPod APIs
<a name="sagemaker-hyperpod-cluster-management-slurm-tagging-in-api-request"></a>

Ao escrever um arquivo de solicitação de [UpdateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)API [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)ou de uma API no formato JSON, edite a `Tags` seção.

### Usando os comandos de AWS CLI marcação para IA SageMaker
<a name="sagemaker-hyperpod-cluster-management-slurm-tagging-using-cli"></a>

**Para marcar um cluster**

Use [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/add-tags.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/add-tags.html) da seguinte forma:

```
aws sagemaker add-tags --resource-arn cluster_ARN --tags Key=string,Value=string
```

**Para desmarcar um cluster**

Use [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/delete-tags.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/delete-tags.html) da seguinte forma:

```
aws sagemaker delete-tags --resource-arn cluster_ARN --tag-keys "tag_key"
```

**Para listar as marcações para um recurso**

Use [https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-tags.html](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-tags.html) da seguinte forma:

```
aws sagemaker list-tags --resource-arn cluster_ARN
```

# SageMaker HyperPod FAQs
<a name="sagemaker-hyperpod-faq-slurm"></a>

Use as seguintes perguntas frequentes para solucionar problemas de uso SageMaker HyperPod.

**Topics**
+ [Por que não consigo encontrar grupos de log do meu SageMaker HyperPod cluster na Amazon CloudWatch?](#hyperpod-faqs-q1)
+ [Quais configurações específicas são HyperPod gerenciadas nos arquivos de configuração do Slurm, como e? `slurm.conf` `gres.conf`](#hyperpod-faqs-q2)
+ [Como faço para executar o Docker nos nós do Slurm? HyperPod](#hyperpod-faqs-q3)
+ [Por que meu trabalho de treinamento paralelo falha quando eu uso a NVIDIA Collective Communications Library (NCCL) com o Slurm na plataforma? SageMaker HyperPod](#hyperpod-faqs-q4)
+ [Como uso o NVMe armazenamento local de instâncias P para lançar contêineres Docker ou Enroot com o Slurm?](#hyperpod-faqs-q5)
+ [Como configurar grupos de segurança do EFA?](#hyperpod-faqs-q6)
+ [Como faço para monitorar meus nós HyperPod de cluster? Há alguma CloudWatch métrica exportada de HyperPod?](#hyperpod-faqs-q7)
+ [Posso adicionar um armazenamento adicional aos nós do HyperPod cluster? As instâncias do cluster têm um armazenamento limitado de instâncias locais.](#hyperpod-faqs-q8)
+ [Por que meus nós de computação aparecem como “DOWN” ou “DRAINED” após uma reinicialização?](#hyperpod-faqs-q9)
+ [Por que meus nós continuam sendo drenados devido a problemas de falta de memória (OOM)?](#hyperpod-faqs-q10)
+ [Como posso garantir que os recursos sejam limpos adequadamente após a conclusão das tarefas?](#hyperpod-faqs-q11)

## Por que não consigo encontrar grupos de log do meu SageMaker HyperPod cluster na Amazon CloudWatch?
<a name="hyperpod-faqs-q1"></a>

Por padrão, os registros do agente e os registros de inicialização da instância são enviados para a conta da HyperPod plataforma. CloudWatch No caso de scripts de ciclo de vida do usuário, os registros de configuração do ciclo de vida são enviados para a sua conta. CloudWatch

Se você usar os [exemplos de scripts de ciclo](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md) de vida fornecidos pela equipe de HyperPod serviço, você pode esperar encontrar os registros de configuração do ciclo de vida gravados e não encontrará esse problema. `/var/log/provision/provisioning.log`

No entanto, se você usa caminhos personalizados para coletar registros do provisionamento do ciclo de vida e não consegue encontrar os grupos de registros que aparecem na sua conta CloudWatch, isso pode ser devido a incompatibilidades entre os caminhos dos arquivos de log especificados nos scripts do ciclo de vida e o que o CloudWatch agente em execução nas instâncias do cluster procura. HyperPod Nesse caso, isso significa que você precisa configurar adequadamente seus scripts de ciclo de vida para enviar registros ao CloudWatch agente e também definir a configuração do CloudWatch agente adequadamente. Para resolver o problema, selecione uma das seguintes opções:
+ **Opção 1:** atualize seus scripts de ciclo de vida para gravar logs ao `/var/log/provision/provisioning.log`.
+ **Opção 2:** atualize o CloudWatch agente para procurar seus caminhos personalizados para registrar o provisionamento do ciclo de vida.

  1. Cada instância de HyperPod cluster contém um arquivo de configuração do CloudWatch agente no formato JSON em`/opt/aws/amazon-cloudwatch-agent/sagemaker_cwagent_config.json`. No arquivo de configuração, encontre o nome do campo`logs.logs_collected.files.collect_list.file_path`. Com a configuração padrão de HyperPod, o par de valores-chave deve estar `"file_path": "/var/log/provision/provisioning.log"` conforme documentado em. [Registro SageMaker HyperPod em nível de instância](sagemaker-hyperpod-cluster-management-slurm.md#sagemaker-hyperpod-cluster-management-slurm-logging-at-instance-level) O trecho de código a seguir mostra a aparência do arquivo JSON com a HyperPod configuração padrão.

     ```
     "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. Substitua o valor do nome do `"file_path"` campo pelo caminho personalizado que você usa em seus scripts de ciclo de vida. Por exemplo, se você configurou seus scripts de ciclo de vida para gravar `/var/log/custom-provision/custom-provisioning.log`, atualize o valor para corresponder a ele da seguinte maneira:

     ```
     "file_path": "/var/log/custom-provision/custom-provisioning.log"
     ```

  1. Reinicie o CloudWatch agente com o arquivo de configuração para concluir a aplicação do caminho personalizado. Por exemplo, o CloudWatch comando a seguir mostra como reiniciar o CloudWatch agente com o arquivo de configuração do CloudWatch agente da etapa 1. Para obter mais informações, consulte também [Solução de problemas do 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
     ```

## Quais configurações específicas são HyperPod gerenciadas nos arquivos de configuração do Slurm, como e? `slurm.conf` `gres.conf`
<a name="hyperpod-faqs-q2"></a>

Quando você cria um cluster do Slurm no HyperPod, o HyperPod agente configura os [https://slurm.schedmd.com/gres.conf.html](https://slurm.schedmd.com/gres.conf.html)arquivos [https://slurm.schedmd.com/slurm.conf.html](https://slurm.schedmd.com/slurm.conf.html)e em `/opt/slurm/etc/` para gerenciar o cluster do Slurm com base na solicitação de criação do cluster e nos scripts HyperPod do ciclo de vida. A lista a seguir mostra quais parâmetros específicos o HyperPod agente manipula e substitui. 

**Importante**  
É altamente recomendável que você NÃO altere esses parâmetros gerenciados pelo HyperPod.
+ Em [https://slurm.schedmd.com/slurm.conf.html](https://slurm.schedmd.com/slurm.conf.html), HyperPod configura os seguintes parâmetros básicos: `ClusterName` `SlurmctldHost``PartitionName`,, `NodeName` e.

  Além disso, para habilitar a [Recuperação automática de nós e retomada automática](sagemaker-hyperpod-resiliency-slurm-auto-resume.md) funcionalidade, é HyperPod necessário definir `SchedulerParameters` os parâmetros `TaskPlugin` e da seguinte forma. O HyperPod agente configura esses dois parâmetros com os valores necessários por padrão.

  ```
  TaskPlugin=task/none
  SchedulerParameters=permit_job_expansion
  ```
+ Em [https://slurm.schedmd.com/gres.conf.html](https://slurm.schedmd.com/gres.conf.html), HyperPod gerencia `NodeName` os nós da GPU.

## Como faço para executar o Docker nos nós do Slurm? HyperPod
<a name="hyperpod-faqs-q3"></a>

Para ajudá-lo a executar o Docker nos nós do Slurm em execução HyperPod, a equipe de HyperPod serviço fornece scripts de configuração que você pode incluir como parte da configuração do ciclo de vida para a criação do cluster. Para saber mais, consulte [Scripts básicos de ciclo de vida fornecidos por HyperPod](sagemaker-hyperpod-lifecycle-best-practices-slurm-slurm-base-config.md) e [Executando contêineres do Docker em um nó de computação do Slurm em HyperPod](sagemaker-hyperpod-run-jobs-slurm-docker.md).

## Por que meu trabalho de treinamento paralelo falha quando eu uso a NVIDIA Collective Communications Library (NCCL) com o Slurm na plataforma? SageMaker HyperPod
<a name="hyperpod-faqs-q4"></a>

Por padrão, o sistema operacional Linux define o sinalizador `#RemoveIPC=yes`. As tarefas do Slurm e do mpirun que usam a NCCL geram recursos de comunicação entre processos (IPC) em sessões de usuário não raiz. Essas sessões de usuário podem se desconectar durante o processo de trabalho.

 Ao executar tarefas com o Slurm ou o mpirun, se `systemd` detectar que o usuário não está conectado, ele limpará os recursos de IPC. As tarefas do Slurm e do mpirun podem ser executados sem que o usuário esteja conectado, mas isso requer que você desabilite a limpeza no nível do systemd e, em vez disso, a configure no nível do Slurm. Para ter mais informações, consulte [Systemd](https://docs.nvidia.com/deeplearning/nccl/user-guide/docs/troubleshooting.html#systemd) na documentação da NCCL. 

Para desabilitar a limpeza no nível do systemd, conclua as etapas a seguir.

1. Defina o sinalizador `#RemoveIPC=no` no arquivo `/etc/systemd/logind.conf` se você estiver executando tarefas de treinamento que usam o Slurm e a NCCL.

1.  Por padrão, o Slurm não limpa os recursos compartilhados. Recomendamos que você configure um script de epílogo do Slurm para limpar os recursos compartilhados. Essa limpeza é útil quando você tem muitos recursos compartilhados e deseja limpá-los após as tarefas de treinamento. A seguir encontra-se um exemplo de 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
   ```

   Para ter mais informações sobre o parâmetro Epilog, consulte a [documentação do Slurm](https://slurm.schedmd.com/slurm.conf.html#OPT_Epilog).

1. No arquivo `slurm.conf` do nó controlador, adicione uma linha para apontar para o script de epílogo que você criou.

   ```
   Epilog="/path/to/epilog.sh"  #For example: /fsx/epilogue/epilog.sh
   ```

1. Execute os comandos a seguir para alterar as permissões do script e torná-lo executável.

   ```
   chown slurm:slurm /path/to/epilog.sh
   chmod +x  /path/to/epilog.sh
   ```

1. Para aplicar todas as suas alterações, execute `scontrol reconfigure`.

## Como uso o NVMe armazenamento local de instâncias P para lançar contêineres Docker ou Enroot com o Slurm?
<a name="hyperpod-faqs-q5"></a>

Como o volume raiz padrão do seu nó principal geralmente é limitado pelo volume de 100 GB do EBS, você precisa configurar o Docker e o Enroot para usar o armazenamento de instâncias local. NVMe Para saber como configurar a NVMe loja e usá-la para lançar contêineres do Docker, consulte[Executando contêineres do Docker em um nó de computação do Slurm em HyperPod](sagemaker-hyperpod-run-jobs-slurm-docker.md).

## Como configurar grupos de segurança do EFA?
<a name="hyperpod-faqs-q6"></a>

Se você quiser criar um HyperPod cluster com instâncias habilitadas para EFA, certifique-se de configurar um grupo de segurança para permitir todo o tráfego de entrada e saída do próprio grupo de segurança. Para saber mais, consulte [Etapa 1: preparar um grupo de segurança habilitado para EFA](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa-start.html#efa-start-security) no *Guia do usuário do Amazon EC2*.

## Como faço para monitorar meus nós HyperPod de cluster? Há alguma CloudWatch métrica exportada de HyperPod?
<a name="hyperpod-faqs-q7"></a>

Para obter visibilidade sobre a utilização de recursos do seu HyperPod cluster, recomendamos que você integre o cluster com o Amazon Managed Grafana e o HyperPod Amazon Managed Service for Prometheus. Com vários painéis de código aberto do Grafana e pacotes de exportação, você pode exportar e visualizar métricas relacionadas aos recursos do cluster. HyperPod Para saber mais sobre a configuração SageMaker HyperPod com o Amazon Managed Grafana e o Amazon Managed Service para Prometheus, consulte. [SageMaker HyperPod monitoramento de recursos de cluster](sagemaker-hyperpod-cluster-observability-slurm.md) Observe que SageMaker HyperPod atualmente não suporta a exportação de métricas do sistema para a Amazon CloudWatch.

## Posso adicionar um armazenamento adicional aos nós do HyperPod cluster? As instâncias do cluster têm um armazenamento limitado de instâncias locais.
<a name="hyperpod-faqs-q8"></a>

Se o armazenamento padrão da instância for insuficiente para seu workload, você poderá configurar armazenamento adicional por instância. A partir do [lançamento em 20 de junho de 2024](sagemaker-hyperpod-release-notes.md#sagemaker-hyperpod-release-notes-20240620), você pode adicionar um volume adicional do Amazon Elastic Block Store (EBS) a cada instância em seu cluster. SageMaker HyperPod Observe que esse recurso não pode ser aplicado a grupos de instâncias existentes de SageMaker HyperPod clusters criados antes de 20 de junho de 2024. Você pode utilizar esse recurso corrigindo SageMaker HyperPod clusters existentes criados antes de 20 de junho de 2024 e adicionando novos grupos de instâncias a eles. Esse recurso é totalmente efetivo para qualquer SageMaker HyperPod cluster criado após 20 de junho de 2024.

## Por que meus nós de computação aparecem como “DOWN” ou “DRAINED” após uma reinicialização?
<a name="hyperpod-faqs-q9"></a>

Isso geralmente ocorre quando os nós são reinicializados usando `sudo reboot` em vez da interface de controle do Slurm. Para reinicializar os nós adequadamente, use o comando `scontrol reboot nextstate=resume <list_of_nodes>` do Slurm. Isso garante que o Slurm mantenha o controle adequado do estado do nó e retome a operação normal após a reinicialização.

Para instâncias de GPU (como NVIDIA P5), isso também pode acontecer se o nó não conseguir concluir o processo de inicialização dentro do limite de tempo padrão do Slurm (60 segundos). Para resolver isso, aumente o parâmetro `TimeToResume` em `slurm.conf` para 300 segundos. Isso dá às instâncias de GPU tempo suficiente para iniciar e inicializar os drivers.

## Por que meus nós continuam sendo drenados devido a problemas de falta de memória (OOM)?
<a name="hyperpod-faqs-q10"></a>

Os problemas de OOM ocorrem quando as tarefas excedem a capacidade de memória do nó. Para evitar isso, implemente `cgroups` para impor limites de memória por tarefa. Isso evita que uma única tarefa afete todo o nó e melhora o isolamento e a estabilidade.

Exemplo de configuração em `slurm.conf`: 

```
TaskPlugin=task/cgroup
```

Exemplo de configuração em `cgroup.conf`:

```
CgroupAutomount=yes
ConstrainCores=yes
CgroupPlugin=autodetect
ConstrainDevices=yes
ConstrainRAMSpace=yes
ConstrainSwapSpace=yes
SignalChildrenProcesses=yes
MaxRAMPercent=99
MaxSwapPercent=80
MinRAMSpace=100
```

Para ter mais informações, consulte [Control Group in Slurm](https://slurm.schedmd.com/cgroups.html), [controle de login baseado em grupo de controle e PAM para nós de computação do Slurm](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).

## Como posso garantir que os recursos sejam limpos adequadamente após a conclusão das tarefas?
<a name="hyperpod-faqs-q11"></a>

Implemente scripts de epílogo para limpar automaticamente os recursos após a conclusão das tarefas. Os recursos podem não ser limpos corretamente quando as tarefas falham inesperadamente ou contêm bugs que impedem a limpeza normal ou quando os buffers de memória compartilhada (incluindo aqueles compartilhados entre processos e drivers de GPU) permanecem alocados.

Os scripts de epílogo podem realizar tarefas como limpar a memória da GPU, remover arquivos temporários e desmontar sistemas de arquivos. Esses scripts têm limitações quando os recursos não são alocados exclusivamente a uma única tarefa. Para obter instruções detalhadas e exemplos de scripts, consulte o item número 2 da pergunta [Por que meu trabalho de treinamento paralelo falha quando eu uso a NVIDIA Collective Communications Library (NCCL) com o Slurm na plataforma? SageMaker HyperPod](#hyperpod-faqs-q4). Para ter mais informações, consulte [Enable Slurm epilog script](https://catalog.workshops.aws/sagemaker-hyperpod/en-US/07-tips-and-tricks/18-slurm-epilogue).

# Orquestrando SageMaker HyperPod clusters com o Amazon EKS
<a name="sagemaker-hyperpod-eks"></a>

SageMaker HyperPod é um serviço SageMaker gerenciado por IA que permite o treinamento em grande escala de modelos básicos em clusters computacionais resilientes e de longa duração, integrando-se ao Amazon EKS para orquestrar os recursos computacionais. HyperPod Você pode executar trabalhos de treinamento ininterruptos que abrangem semanas ou meses em grande escala usando clusters do Amazon EKS com recursos de HyperPod resiliência que verificam várias falhas de hardware e recuperam automaticamente os nós defeituosos. 

Os principais atributos para usuários administradores de cluster incluem o seguinte:
+ Provisionando HyperPod clusters resilientes e conectando-os a um plano de controle EKS
+ Habilitar o gerenciamento dinâmico da capacidade, como adicionar mais nós, atualizar software e excluir clusters
+ Habilitando o acesso às instâncias do cluster diretamente por meio de `kubectl` ou SSM/SSH
+ Oferecendo [recursos de resiliência](sagemaker-hyperpod-eks-resiliency.md), incluindo verificações básicas de saúde, verificações de saúde detalhadas, um agente de monitoramento de saúde e suporte para retomada automática de cargos PyTorch 
+ [Integração com ferramentas de observabilidade, como Amazon [ CloudWatchContainer Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html), [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)

Para usuários de cientistas de dados, o suporte do EKS HyperPod permite o seguinte.
+ Executando cargas de trabalho em contêineres para treinar modelos básicos no cluster HyperPod 
+ Executando inferência no cluster EKS, aproveitando a integração entre HyperPod e o EKS
+ Aproveitando a capacidade de retomada automática de tarefas para o treinamento do [Kubeflow PyTorch ](https://www.kubeflow.org/docs/components/training/user-guides/pytorch/) () PyTorchJob

**nota**  
O Amazon EKS permite a orquestração gerenciada pelo usuário de tarefas e infraestrutura por meio do plano de SageMaker HyperPod controle do Amazon EKS. Garanta que o acesso do usuário ao cluster por meio do endpoint do Kubernetes API Server siga o princípio do privilégio mínimo e que a saída da rede do cluster seja protegida. HyperPod   
Para saber mais sobre como proteger o acesso ao servidor de API do Amazon EKS, consulte [Control network access to cluster API server endpoint](https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html).  
Para saber mais sobre como proteger o acesso à rede em HyperPod, consulte[Configuração SageMaker HyperPod com uma Amazon VPC personalizada](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-optional-vpc).

A arquitetura de alto nível do suporte do Amazon EKS HyperPod envolve um mapeamento de 1 para 1 entre um cluster EKS (plano de controle) e um HyperPod cluster (nós de trabalho) dentro de uma VPC, conforme mostrado no diagrama a seguir.

![\[EKS and HyperPod VPC architecture with control plane, cluster nodes, and Serviços da AWS.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/hyperpod-eks-diagram.png)


# Gerenciamento de SageMaker HyperPod clusters orquestrados pelo Amazon EKS
<a name="sagemaker-hyperpod-eks-operate"></a>

Esta seção fornece orientação sobre como gerenciar SageMaker HyperPod por meio da interface do usuário do console de SageMaker IA ou da AWS Command Line Interface (CLI). Ele explica como realizar várias tarefas relacionadas a SageMaker HyperPod, independentemente de você preferir uma interface visual ou trabalhar com comandos.

**Topics**
+ [Comece a usar o suporte do Amazon EKS em SageMaker HyperPod](sagemaker-hyperpod-eks-prerequisites.md)
+ [Instalar pacotes no cluster do Amazon EKS usando o Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md)
+ [Como configurar controle de acesso ao Kubernetes baseado em perfil](sagemaker-hyperpod-eks-setup-rbac.md)
+ [Imagens personalizadas da Amazon Machine (AMIs) para SageMaker HyperPod clusters](hyperpod-custom-ami-support.md)
+ [Gerenciando clusters SageMaker HyperPod EKS usando o SageMaker console](sagemaker-hyperpod-eks-operate-console-ui.md)
+ [Criação de SageMaker HyperPod clusters usando CloudFormation modelos](smcluster-getting-started-eks-console-create-cluster-cfn.md)
+ [Gerenciando clusters SageMaker HyperPod EKS usando o AWS CLI](sagemaker-hyperpod-eks-operate-cli-command.md)
+ [HyperPod ponto de verificação hierárquico gerenciado](managed-tier-checkpointing.md)
+ [SageMaker HyperPod governança de tarefas](sagemaker-hyperpod-eks-operate-console-ui-governance.md)
+ [Relatórios de uso para atribuição de custos em SageMaker HyperPod](sagemaker-hyperpod-usage-reporting.md)
+ [Configurando o armazenamento para SageMaker HyperPod clusters orquestrados pelo Amazon EKS](sagemaker-hyperpod-eks-setup-storage.md)
+ [Usando o driver CSI do Amazon EBS em SageMaker HyperPod clusters EKS](sagemaker-hyperpod-eks-ebs.md)
+ [Configurando rótulos e manchas personalizados do Kubernetes na Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-custom-labels-and-taints.md)

# Comece a usar o suporte do Amazon EKS em SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-prerequisites"></a>

Além do formulário geral [Pré-requisitos para usar SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md) SageMaker HyperPod, verifique os seguintes requisitos e considerações para orquestrar clusters SageMaker HyperPod usando o Amazon EKS.

**Importante**  
Você pode definir a configuração de recursos para criar SageMaker HyperPod clusters usando o Console de gerenciamento da AWS CloudFormation e. Para obter mais informações, consulte [Criação de um SageMaker HyperPod cluster com a orquestração do Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md) e [Criação de SageMaker HyperPod clusters usando CloudFormation modelos](smcluster-getting-started-eks-console-create-cluster-cfn.md).

**Requisitos**

**nota**  
Antes de criar um HyperPod cluster, você precisa de um cluster Amazon EKS em execução configurado com VPC e instalado usando o Helm.
+ Se estiver usando o console de SageMaker IA, você pode criar um cluster Amazon EKS na página do console do HyperPod cluster. Para obter mais informações, consulte [Criação de um SageMaker HyperPod cluster com a orquestração do Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md).
+ Se estiver usando a AWS CLI, você deve criar um cluster Amazon EKS antes de criar um HyperPod cluster ao qual se associar. Para obter mais informações, consulte [Criação de um cluster do Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html) no Guia do usuário do Amazon EKS.

Ao provisionar o cluster do Amazon EKS, considere o seguinte:

1. **Versão compatível do Kubernetes**
   + SageMaker HyperPod é compatível com as versões 1.28, 1.29, 1.30, 1.31, 1.32, 1.33 e 1.34 do Kubernetes.

1. **Modo de autenticação de cluster do Amazon EKS**
   + O modo de autenticação de um cluster Amazon EKS suportado por SageMaker HyperPod are `API` `API_AND_CONFIG_MAP` e.

1. **Redes**
   + SageMaker HyperPod requer o plug-in Amazon VPC Container Network Interface (CNI) versão 1.18.3 ou posterior.
**nota**  
AWS O [plug-in VPC CNI para Kubernetes](https://github.com/aws/amazon-vpc-cni-k8s) é o único CNI compatível com o. SageMaker HyperPod
   + O [tipo de sub-rede](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html#subnet-types) em sua VPC deve ser privado HyperPod para clusters.

1. **Perfis do IAM**
   + Certifique-se de que as funções necessárias do IAM HyperPod estejam configuradas conforme orientado na [AWS Identity and Access Management para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md) seção.

1. **Complementos do cluster do Amazon EKS**
   + Você pode continuar usando os vários complementos fornecidos pelo Amazon EKS, como o [Kube-proxy](https://docs.aws.amazon.com/eks/latest/userguide/add-ons-kube-proxy.html), o [CoreDNS](https://docs.aws.amazon.com/eks/latest/userguide/add-ons-coredns.html), [o plug-in Amazon VPC Container Network Interface (](https://docs.aws.amazon.com/eks/latest/userguide/add-ons-vpc-cni.html)CNI), a identidade GuardDuty de pod do Amazon EKS, o agente, o driver Amazon Container Storage Interface (CSI), FSx o driver Mountpoint for Amazon S3 CSI, o agente Distro for e o agente Observability. AWS OpenTelemetry CloudWatch

**Considerações sobre a configuração de SageMaker HyperPod clusters com o Amazon EKS**
+ É necessário usar perfis do IAM distintos com base no tipo de nó. Para HyperPod nós, use uma função baseada em[Função do IAM para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod). Para os nós do Amazon EKS, consulte [Amazon EKS node IAM role](https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html).
+ Você pode provisionar e montar volumes adicionais do Amazon EBS em SageMaker HyperPod nós usando duas abordagens: usar [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)para provisionamento de volumes em nível de cluster (disponível ao criar ou atualizar grupos de instâncias) ou usar o driver Amazon Elastic Block Store (Amazon EBS) Container Storage Interface (CSI) para gerenciamento dinâmico de volumes em nível de pod. Com [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), defina o [caminho local](https://kubernetes.io/docs/concepts/storage/volumes/#local) `/opt/sagemaker` para montar adequadamente os volumes em seus pods do Amazon EKS. Para obter informações sobre como implantar o controlador [CSI do Amazon EBS](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html) em HyperPod nós, consulte. [Usando o driver CSI do Amazon EBS em SageMaker HyperPod clusters EKS](sagemaker-hyperpod-eks-ebs.md)
+ Se você usa rótulos de tipo de instância para definir restrições de agendamento, certifique-se de usar os tipos de instância de SageMaker AI ML prefixados com. `ml.` Por exemplo, para instâncias P5, use `ml.p5.48xlarge` em vez de `p5.48xlarge`.

**Considerações para configurar a rede para SageMaker HyperPod clusters com o Amazon EKS**
+ Cada instância de HyperPod cluster oferece suporte a uma interface de rede elástica (ENI). Para saber o número máximo de pods por tipo de instância, consulte a tabela a seguir.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ Somente pods com `hostNetwork = true` têm acesso ao serviço de metadados de instância (IMDS) do Amazon EC2 por padrão. Use a identidade do Amazon EKS Pod ou as [funções do IAM para contas de serviço (IRSA)](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) para gerenciar o acesso às AWS credenciais dos pods.
+  HyperPod Os clusters orquestrados pelo EKS oferecem suporte a modos duplos de endereçamento IP, permitindo a configuração com ou IPv4 para clusters do IPv6 IPv6 Amazon EKS em ambientes de IPv6 VPC e sub-rede habilitados. Para obter mais informações, consulte [Configuração SageMaker HyperPod com uma Amazon VPC personalizada](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-optional-vpc).

**Considerações sobre o uso dos recursos de resiliência HyperPod do cluster**
+ A substituição automática de nós não é compatível com instâncias de CPU.
+ O agente HyperPod de monitoramento de integridade precisa ser instalado para que a recuperação automática do nó funcione. O agente pode ser instalado usando o Helm. Para obter mais informações, consulte [Instalar pacotes no cluster do Amazon EKS usando o Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md).
+ O agente de verificação HyperPod profunda de integridade e monitoramento de integridade é compatível com instâncias de GPU e Trn.
+ SageMaker A IA aplica a seguinte contaminação aos nós quando eles estão passando por verificações de integridade detalhadas:

  ```
  effect: NoSchedule
  key: sagemaker.amazonaws.com/node-health-status
  value: Unschedulable
  ```
**nota**  
Você não pode adicionar taints personalizadas aos nós em grupos de instâncias com a opção `DeepHealthChecks` ativada.

 Depois que seu cluster Amazon EKS estiver em execução, configure seu cluster usando o gerenciador de pacotes Helm conforme as instruções [Instalar pacotes no cluster do Amazon EKS usando o Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md) antes de criar seu HyperPod cluster.

# Instalar pacotes no cluster do Amazon EKS usando o Helm
<a name="sagemaker-hyperpod-eks-install-packages-using-helm-chart"></a>

Antes de criar um SageMaker HyperPod cluster e anexá-lo a um cluster Amazon EKS, você deve instalar pacotes usando o [Helm](https://helm.sh/), um gerenciador de pacotes para Kubernetes. O Helm é uma ferramenta de código aberto para configurar um processo de instalação para clusters Kubernetes. Ele permite a automação e a simplificação das instalações de dependências e simplifica várias configurações necessárias para preparar o cluster Amazon EKS como orquestrador (plano de controle) de um cluster. SageMaker HyperPod 

A equipe SageMaker HyperPod de serviço fornece um pacote de gráficos do Helm, que agrupa as principais dependências, como device/EFA plug-ins, plug-ins, [Kubeflow Training](https://www.kubeflow.org/docs/components/training/) Operator e configurações de permissão associadas.

**Importante**  
Essa etapa de instalação do Helm é obrigatória. Se você configurar o cluster do Amazon EKS usando o [Console de gerenciamento da AWS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md)ou o [CloudFormation](smcluster-getting-started-eks-console-create-cluster-cfn.md), pode ignorar essa etapa porque a instalação é feita automaticamente durante o processo de configuração. Se você configurar o cluster diretamente usando o APIs, use o gráfico Helm fornecido para configurar seu cluster Amazon EKS. A falha na configuração do seu cluster Amazon EKS usando o gráfico Helm fornecido pode fazer com que o SageMaker HyperPod cluster não funcione corretamente ou que o processo de criação falhe totalmente. O nome do namespace da `aws-hyperpod` não pode ser modificado.

1. [Instale o Helm](https://helm.sh/docs/intro/install/) na máquina local.

1. Faça o download dos gráficos do Helm fornecidos por, SageMaker HyperPod localizados `helm_chart/HyperPodHelmChart` no repositório [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. Atualize as dependências do chart do helm, visualize as alterações que serão feitas no seu cluster Kubernetes e instale o chart do helm.

   ```
   helm dependencies update HyperPodHelmChart
   ```

   ```
   helm install hyperpod-dependencies HyperPodHelmChart --namespace kube-system --dry-run
   ```

   ```
   helm install hyperpod-dependencies HyperPodHelmChart --namespace kube-system
   ```

Em resumo, a instalação do Helm configura vários componentes para seu cluster Amazon EKS, incluindo agendamento e enfileiramento de trabalhos (Kueue), gerenciamento de armazenamento, integração e Kubeflow. MLflow Além disso, os gráficos instalam os seguintes componentes para integração com os recursos de resiliência do SageMaker HyperPod cluster, que são componentes necessários.
+ **Agente de monitoramento de saúde** — Isso instala o agente de monitoramento de saúde fornecido por. SageMaker HyperPod Isso é necessário se você quiser que seu HyperPod cluster seja monitorado. Os agentes de monitoramento de integridade são fornecidos como imagens do Docker da seguinte forma: Conforme fornecido `values.yaml` nos charts do helm, a imagem é predefinida. O agente oferece suporte a instâncias e Trainium-accelerator-based instâncias baseadas em GPU (`trn1`,`trn1n`,`inf2`). Ele é instalado no namespace `aws-hyperpod`. Para encontrar seu URI compatível, consulte [Regiões suportadas e seu ECR URIs no sagemaker-hyperpod-cli repositório](https://github.com/aws/sagemaker-hyperpod-cli/blob/main/helm_chart/readme.md#6-notes) em. GitHub
+ **Verificação profunda de integridade** — Isso configura a`ClusterRole`, a ServiceAccount (`deep-health-check-service-account`) no `aws-hyperpod` namespace e a `ClusterRoleBinding` para ativar o recurso de verificação SageMaker HyperPod profunda de integridade. Para obter mais informações sobre o arquivo RBAC do Kubernetes para verificação profunda da integridade, consulte o arquivo de configuração no [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)repositório da CLI. SageMaker HyperPod GitHub 
+ **`job-auto-restart`**- Isso configura a`ClusterRole`, a ServiceAccount (`job-auto-restart`) no `aws-hyperpod` namespace e a`ClusterRoleBinding`, para ativar o recurso de reinicialização automática para trabalhos de PyTorch treinamento em. SageMaker HyperPod Para obter mais informações sobre o arquivo RBAC do Kubernetes para`job-auto-restart`, consulte o arquivo de configuração no [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)repositório CLI. SageMaker HyperPod GitHub 
+ **Operador de MPI do Kubeflow**: o [operador de MPI](https://github.com/kubeflow/mpi-operator) é um operador do Kubernetes que simplifica a execução de workloads distribuídas de machine Learning (ML) e computação de alta performance (HPC) usando a interface de transmissão de mensagens (MPI) em clusters do Kubernetes. Ele instala o MPI Operator v0.5. Ele é instalado no namespace `mpi-operator`.
+ **`nvidia-device-plugin`**— Este é um plug-in de dispositivo Kubernetes que permite que você exponha automaticamente a NVIDIA para consumo GPUs por contêineres em seu cluster Amazon EKS. Ele permite que o Kubernetes aloque e forneça acesso ao solicitado GPUs para esse contêiner. Obrigatório ao usar um tipo de instância com GPU.
+ **`neuron-device-plugin`**: Este é um plug-in de dispositivo Kubernetes que permite que você exponha automaticamente chips Inferentia da AWS para consumo por contêineres em seu cluster Amazon EKS. Ele permite que o Kubernetes acesse e utilize os chips AWS Inferentia nos nós do cluster. Obrigatório ao usar um tipo de instância Neuron.
+ **`aws-efa-k8s-device-plugin`**— Esse é um plug-in de dispositivo Kubernetes que permite o uso do AWS Elastic Fabric Adapter (EFA) em clusters Amazon EKS. O EFA é um dispositivo de rede que fornece comunicação de baixa latência e alta throughput entre instâncias em um cluster. Obrigatório ao usar um tipo de instância compatível com o EFA.

Para obter mais informações sobre o procedimento de instalação usando os gráficos Helm fornecidos, consulte o [arquivo README no repositório CLI SageMaker HyperPod ](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart).

# Como configurar controle de acesso ao Kubernetes baseado em perfil
<a name="sagemaker-hyperpod-eks-setup-rbac"></a>

Os usuários administradores de cluster também precisam configurar o [controle de acesso baseado em funções (RBAC) do Kubernetes](https://kubernetes.io/docs/reference/access-authn-authz/rbac/) para que usuários de cientistas de dados usem a [SageMaker HyperPod CLI para executar cargas de trabalho em clusters orquestrados com](https://github.com/aws/sagemaker-hyperpod-cli) o Amazon EKS. HyperPod 

## Opção 1: configurar o RBAC usando o chart do Helm
<a name="sagemaker-hyperpod-eks-setup-rbac-helm"></a>

A equipe SageMaker HyperPod de serviço fornece um subgráfico do Helm para configurar o RBAC. Para saber mais, consulte [Instalar pacotes no cluster do Amazon EKS usando o Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md).

## Opção 2: configurar o RBAC manualmente
<a name="sagemaker-hyperpod-eks-setup-rbac-manual"></a>

Crie `ClusterRole` e `ClusterRoleBinding` com o privilégio mínimo e crie `Role` e `RoleBinding` com permissões de mutação.

**Para criar `ClusterRole` e `ClusterRoleBinding` para o perfil do IAM de cientista de dados**

Crie um arquivo `cluster_level_config.yaml` de configuração em nível de cluster da seguinte forma:

```
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
```

Aplique a configuração ao cluster do EKS.

```
kubectl apply -f cluster_level_config.yaml
```

**Para criar uma função e RoleBinding no namespace**

Esse é o operador de treinamento de namespace que executa trabalhos de treinamento e o Resiliency monitorará por padrão. A retomada automática de trabalhos só pode ser compatível com o namespace `kubeflow` ou namespace prefixado da `aws-hyperpod`. 

Crie um arquivo de configuração de função `namespace_level_role.yaml` da seguinte forma: Este exemplo cria uma função no 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
```

Aplique a configuração ao cluster do EKS.

```
kubectl apply -f namespace_level_role.yaml
```

## Crie uma entrada de acesso para grupos do Kubernetes
<a name="sagemaker-hyperpod-eks-setup-rbac-access-entry"></a>

Depois de configurar o RBAC usando uma das duas opções acima, use o seguinte exemplo de comando substituindo as informações necessárias:

```
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"]'
```

Para o parâmetro `principal-arn`, você precisa usar o [Usuários do IAM para cientistas](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-user).

# Imagens personalizadas da Amazon Machine (AMIs) para SageMaker HyperPod clusters
<a name="hyperpod-custom-ami-support"></a>

Usando Amazon Machine Images (AMIs) base fornecida e tornada pública pela Amazon SageMaker HyperPod, você pode criar designs personalizados AMIs. Com uma AMI personalizada, você pode criar ambientes especializados para workloads de IA com pilhas de software pré-configuradas, personalizações de drivers, dependências proprietárias e agentes de segurança. Esse recurso elimina a necessidade de uma inicialização complexa após a execução usando scripts de configuração de ciclo de vida.

Com a personalização AMIs, você pode padronizar ambientes em diferentes estágios, acelerar os tempos de inicialização e ter controle total sobre seu ambiente de tempo de execução, aproveitando os recursos de infraestrutura e as SageMaker HyperPod vantagens de escalabilidade. Isso ajuda você a manter o controle sobre sua infraestrutura de IA e, ao mesmo tempo, se beneficiar SageMaker HyperPod do tempo de execução básico otimizado.

Você pode aproveitar as imagens básicas SageMaker HyperPod ajustadas ao desempenho adicionando agentes de segurança, ferramentas de conformidade e bibliotecas especializadas, preservando todos os benefícios do treinamento distribuído. Esse recurso elimina a decisão anteriormente necessária entre a otimização da infraestrutura e o estabelecimento de políticas de segurança organizacional.

A experiência personalizada da AMI se integra perfeitamente aos fluxos de trabalho de segurança empresariais estabelecidos. As equipes de segurança criam imagens reforçadas usando o público AMIs como base, e as equipes SageMaker HyperPod da plataforma de IA podem especificá-las de forma personalizada AMIs ao criar ou atualizar clusters por meio do. SageMaker HyperPod APIs Eles APIs validam a compatibilidade da imagem, gerenciam as permissões necessárias e mantêm a compatibilidade com versões anteriores para que os fluxos de trabalho existentes continuem funcionando. Organizações com protocolos de segurança rigorosos podem eliminar a alternativa propensa a erros de instalar agentes de segurança em tempo de execução por meio de scripts de ciclo de vida. Ao se alinhar às práticas de segurança corporativa em vez de forçar as organizações a adaptar seus protocolos às limitações, a personalização AMIs remove uma barreira comum à SageMaker HyperPod adoção por organizações preocupadas com a segurança que executam cargas de trabalho críticas de IA.

Para obter notas de lançamento sobre atualizações para o público AMIs, consulte[Lançamentos de AMIs públicas](sagemaker-hyperpod-release-public-ami.md). Para saber como começar a criar uma AMI personalizada e usá-la em seus HyperPod clusters, consulte os tópicos a seguir.

**Topics**
+ [Criar uma AMI personalizada do](hyperpod-custom-ami-how-to.md)
+ [Gerenciamento de clusters com personalização AMIs](hyperpod-custom-ami-cluster-management.md)

# Criar uma AMI personalizada do
<a name="hyperpod-custom-ami-how-to"></a>

A página a seguir explica como criar uma Amazon Machine Image (AMI) personalizada usando o Amazon SageMaker HyperPod Base AMIs. Primeiro, você seleciona uma AMI base e, em seguida, cria sua AMI personalizada usando qualquer um dos métodos comuns para criar imagens, como a AWS CLI.

## Selecione uma AMI SageMaker HyperPod básica
<a name="hyperpod-custom-ami-select-base"></a>

Você pode selecionar uma AMI SageMaker HyperPod básica por meio de um dos métodos a seguir.

### AWS seleção de console
<a name="hyperpod-custom-ami-console-selection"></a>

Você pode selecionar público SageMaker HyperPod AMIs por meio do AWS console ou usando a chamada de `DescribeImages` API. SageMaker HyperPod AMIs são públicos e visíveis em todos Conta da AWS. Você pode encontrá-los no catálogo de AMI do Amazon EC2 aplicando um filtro para pesquisar por AMIs propriedades públicas pertencentes à Amazon.

Para encontrar SageMaker HyperPod AMIs no console:

1. Faça login no console do Amazon EC2.

1. No painel de navegação à esquerda, selecione **AMIs**.

1. No menu suspenso **Tipo de imagem**, selecione **Imagens públicas**.

1. Nos filtros da barra de pesquisa, defina o filtro **Alias do proprietário** como **amazon**.

1. Pesquise o AMIs prefixado como **HyperPodEKS** e selecione a AMI (de preferência a mais recente) que funciona para seu caso de uso. Por exemplo, você pode escolher uma AMI entre o Kubernetes 1.31 e o Kubernetes 1.30.

### Obtenha a ID de AMI pública mais recente por meio do AWS CLI
<a name="hyperpod-custom-ami-cli-fetch"></a>

Se você quiser sempre usar a AMI pública da versão mais recente, é mais eficiente usar o parâmetro SageMaker HyperPod SSM público que contém o valor da ID de AMI mais recente lançada pela SageMaker HyperPod.

O seguinte exemplo mostra como recuperar o ID de AMI mais recente usando a 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**  
Substitua o nome do parâmetro pela versão correspondente do Kubernetes, conforme necessário. Por exemplo, se quiser usar o Kubernetes 1.30, use o seguinte parâmetro: `/aws/service/hyperpod/ami/x86_64/eks-1.30-amazon-linux-2/latest/ami-id`.

## Criar um uma AMI personalizada
<a name="hyperpod-custom-ami-build"></a>

Depois de selecionar uma AMI SageMaker HyperPod pública, use-a como a AMI base para criar sua própria AMI personalizada com um dos métodos a seguir. Observe que esta não é uma lista exaustiva para construção. AMIs Você pode usar qualquer método de sua escolha para construir AMIs. SageMaker HyperPod não tem nenhuma recomendação específica.
+ **AWS Console de gerenciamento**: você pode iniciar uma instância do Amazon EC2 usando a SageMaker HyperPod AMI, fazer as personalizações desejadas e, em seguida, criar uma AMI a partir dessa instância.
+ **AWS CLI**: também é possível usar o comando `aws ec2 create-image` para criar uma AMI com por meio de uma instância existente do Amazon EC2 depois de realizar a personalização.
+ **HashiCorp Packer**: O Packer é uma ferramenta de código aberto HashiCorp que permite criar imagens de máquina idênticas para várias plataformas a partir de uma única configuração de origem. Ele suporta a criação AWS e imagens AMIs para outros provedores de nuvem e plataformas de virtualização.
+ **Image Builder**: o EC2 Image Builder é um serviço totalmente gerenciado da AWS que facilita a automatização dos processos de criação, manutenção, validação, compartilhamento e implantação de imagens do Linux ou do Windows Server. Para obter mais informações, consulte o [Guia do usuário do EC2 Image Builder](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html).

### Crie uma AMI personalizada com AWS KMS criptografia gerenciada pelo cliente
<a name="hyperpod-custom-ami-build-kms"></a>

As seções a seguir descrevem como criar uma AMI personalizada com uma AWS KMS chave gerenciada pelo cliente para criptografar seus volumes de HyperPod cluster. Para obter mais informações sobre as chaves gerenciadas pelo cliente HyperPod e a concessão das permissões necessárias da política de chaves do IAM e do KMS, consulte. [AWS KMS key Criptografia gerenciada pelo cliente para SageMaker HyperPod](smcluster-cmk.md) Se você planeja usar uma AMI personalizada criptografada com uma chave gerenciada pelo cliente, certifique-se de criptografar também o volume raiz do Amazon EBS do seu HyperPod cluster com a mesma chave.

#### AWS CLI exemplo: criar uma nova AMI usando o EC2 Image Builder e HyperPod uma imagem base
<a name="hyperpod-custom-ami-cli-example"></a>

O seguinte exemplo mostra como criar uma AMI usando o Image Builder com criptografia do 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 do Amazon EC2: criar uma AMI por meio de uma instância do Amazon EC2
<a name="hyperpod-custom-ami-console-example"></a>

Para criar uma AMI em uma instância do Amazon EC2 usando o console do Amazon EC2:

1. Clique com o botão direito na sua instância personalizada do Amazon EC2 e **Criar imagem**.

1. Na seção **Criptografia**, selecione **Criptografar snapshots**.

1. Selecione sua chave do KMS no menu suspenso. Por exemplo, `arn:aws:kms:us-east-2:111122223333:key/<your-kms-key-id>`, ou use o alias de chave `alias/<your-hyperpod-key>`.

#### AWS CLI exemplo: criar uma nova AMI a partir de uma instância do Amazon EC2
<a name="hyperpod-custom-ami-cli-create-image"></a>

Use o comando `aws ec2 create-image` com criptografia do 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" 
            }
        }
    ]'
```

# Gerenciamento de clusters com personalização AMIs
<a name="hyperpod-custom-ami-cluster-management"></a>

Depois que a AMI personalizada for criada, você poderá usá-la para criar ou atualizar um SageMaker HyperPod cluster da Amazon. Também é possível aumentar a escala verticalmente ou adicionar grupos de instâncias que usam a nova AMI.

## Permissões necessárias para operações de cluster
<a name="hyperpod-custom-ami-permissions"></a>

Adicione as seguintes permissões ao usuário administrador do cluster que opera e configura SageMaker HyperPod clusters. O exemplo de política a seguir inclui o conjunto mínimo de permissões para administradores de cluster executarem o SageMaker HyperPod núcleo APIs e gerenciarem SageMaker HyperPod clusters com AMI personalizada.

Observe que as permissões de compartilhamento de snapshot da AMI e do EBS da AMI são incluídas por meio das permissões de API `ModifyImageAttribute` e `ModifySnapshotAttribute` como parte da política a seguir. Para definir o escopo das permissões de compartilhamento, você pode executar as seguintes etapas:
+ Adicione tags à AMI e ao snapshot da AMI para controlar as permissões de compartilhamento da AMI. Por exemplo, você pode marcar a AMI com `AllowSharing` como `true`.
+ Adicione a chave de contexto na política para permitir o compartilhamento de AMI somente para AMIs marcações com determinadas tags.

A política a seguir é uma política de escopo reduzido para garantir que somente AMIs marcados com `AllowSharing` as `true` sejam permitidos.

------
#### [ 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 você planeja usar uma AMI personalizada criptografada, sua chave KMS deve atender às permissões descritas em [AWS KMS key Criptografia gerenciada pelo cliente para SageMaker HyperPod](smcluster-cmk.md). Além disso, a chave do KMS da AMI personalizada também deve ser usada para criptografar o volume raiz do Amazon EBS do cluster.

## Criar um cluster
<a name="hyperpod-custom-ami-api-create"></a>

Você pode especificar sua AMI personalizada no campo `ImageId` da operação `CreateCluster`.

Os exemplos a seguir mostram como criar um cluster com uma AMI personalizada, com e sem uma chave gerenciada pelo AWS KMS cliente para criptografar os volumes do cluster.

------
#### [ Standard example ]

O exemplo a seguir mostra como criar um cluster com uma AMI personalizada.

```
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 ]

O exemplo a seguir mostra como criar um cluster com uma AMI personalizada e, ao mesmo tempo, especificar sua própria chave gerenciada pelo AWS KMS cliente para criptografar os volumes Amazon EBS do cluster. É possível especificar diferentes chaves gerenciadas pelo cliente para o volume raiz e o volume de armazenamento da instância. Se você não usar chaves gerenciadas pelo cliente no `InstanceStorageConfigs` campo, uma chave AWS KMS própria será usada para criptografar os volumes. Se você usar chaves diferentes para o volume raiz e os volumes de armazenamento da instância secundária, defina as políticas de chaves KMS necessárias em ambas as chaves.

```
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>"]
}'
```

------

## Atualizar o software do cluster
<a name="hyperpod-custom-ami-api-update"></a>

Se você quiser atualizar um grupo de instâncias existente no cluster com a AMI personalizada, você pode usar a operação `UpdateClusterSoftware` e especificá-la no campo `ImageId`. Observe que, a menos que você estipule o nome de um grupo de instâncias específico em sua solicitação, a nova imagem será aplicada a todos os grupos de instâncias no cluster.

O seguinte exemplo mostra como atualizar o software da plataforma de um cluster com uma AMI personalizada:

```
aws sagemaker update-cluster-software \
   --cluster-name <exampleClusterName> \
   --instance-groups <instanceGroupToUpdate> \
   --image-id <customAmiId>
```

## Aumentar a escala verticalmente de um grupo de instâncias
<a name="hyperpod-custom-ami-scale-up"></a>

Os exemplos a seguir mostram como escalar um grupo de instâncias para um cluster usando uma AMI personalizada, com e sem o uso de uma chave gerenciada pelo AWS KMS cliente para criptografia.

------
#### [ Standard example ]

O exemplo a seguir mostra como aumentar a escala verticalmente de um grupo de instâncias com uma AMI personalizada.

```
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 ]

O exemplo a seguir mostra como atualizar e ampliar seu cluster com uma AMI personalizada e, ao mesmo tempo, especificar sua própria chave gerenciada pelo AWS KMS cliente para criptografar os volumes Amazon EBS do cluster. É possível especificar diferentes chaves gerenciadas pelo cliente para o volume raiz e o volume de armazenamento da instância. Se você não usar chaves gerenciadas pelo cliente no `InstanceStorageConfigs` campo, uma chave AWS KMS própria será usada para criptografar os volumes. Se você usar chaves diferentes para o volume raiz e os volumes de armazenamento da instância secundária, defina as políticas de chaves KMS necessárias em ambas as chaves.

```
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"
                }
            }
   ]
}]'
```

------

## Adicionar um grupo de instâncias
<a name="hyperpod-custom-ami-add-instance-group"></a>

O seguinte exemplo mostra como adicionar um grupo de instâncias a um cluster usando uma AMI personalizada:

```
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>"
}'
```

# Gerenciando clusters SageMaker HyperPod EKS usando o SageMaker console
<a name="sagemaker-hyperpod-eks-operate-console-ui"></a>

Os tópicos a seguir fornecem orientação sobre como gerenciar SageMaker HyperPod no console de SageMaker IA.

**Topics**
+ [Criação de um SageMaker HyperPod cluster com a orquestração do Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md)
+ [Navegação, visualização e edição de SageMaker HyperPod clusters](sagemaker-hyperpod-eks-operate-console-ui-browse-view-edit.md)
+ [Excluindo um cluster SageMaker HyperPod](sagemaker-hyperpod-eks-operate-console-ui-delete-cluster.md)

# Criação de um SageMaker HyperPod cluster com a orquestração do Amazon EKS
<a name="sagemaker-hyperpod-eks-operate-console-ui-create-cluster"></a>

O tutorial a seguir demonstra como criar um novo SageMaker HyperPod cluster e configurá-lo com a orquestração do Amazon EKS por meio da interface de usuário do console de SageMaker IA.

**Topics**
+ [Criação de cluster](#smcluster-getting-started-eks-console-create-cluster-page)
+ [Implantar recursos.](#smcluster-getting-started-eks-console-create-cluster-deploy)

## Criação de cluster
<a name="smcluster-getting-started-eks-console-create-cluster-page"></a>

Para navegar até a página **SageMaker HyperPod Clusters** e escolher a orquestração do Amazon EKS, siga estas etapas.

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Escolha **HyperPod Clusters** no painel de navegação esquerdo e, em seguida, **Gerenciamento de Clusters**.

1. Na página **SageMaker HyperPod Clusters**, escolha **Criar HyperPod cluster**. 

1. No menu suspenso **Criar HyperPod cluster**, escolha **Orchestrated by** Amazon EKS.

1. Na página de criação do cluster do EKS, você verá duas opções: escolha a que melhor atenda às suas necessidades.

   1. **Configuração rápida**: para começar imediatamente com as configurações padrão, escolha **Configuração rápida**. Com essa opção, a SageMaker IA criará novos recursos, como VPC, sub-redes, grupos de segurança, bucket do Amazon S3, função do IAM e FSx para o Lustre no processo de criação do seu cluster.

   1. **Configuração personalizada**: para se integrar aos recursos existentes da AWS ou se tiver requisitos específicos de rede, segurança ou armazenamento, escolha **Configuração personalizada**. Com essa opção, você pode optar por usar os recursos existentes ou criar outros, além de personalizar a configuração que melhor atenda às suas necessidades.

## Configuração rápida
<a name="smcluster-getting-started-eks-console-create-cluster-default"></a>

Na seção **Configuração rápida**, siga estas etapas para criar seu HyperPod cluster com a orquestração do Amazon EKS.

### Configurações gerais
<a name="smcluster-getting-started-eks-console-create-cluster-default-general"></a>

Especifique um nome para o novo cluster. Não é possível alterar o nome após a criação do cluster.

### Grupos de instâncias
<a name="smcluster-getting-started-eks-console-create-cluster-default-instance-groups"></a>

Para adicionar um grupo de instâncias, escolha **Adicionar grupo**. Cada grupo de instâncias pode ser configurado de forma diferente e você pode criar um cluster heterogêneo que consiste em vários grupos de instâncias com vários tipos de instância. Para implantar um cluster, você deve adicionar ao menos um grupo de instâncias. Siga as etapas abaixo para adicionar um grupo de instâncias.

1. Em **Tipo de grupo de instâncias**, escolha **Padrão** ou **Grupo de instâncias restritas (RIG)**. Normalmente, você escolherá **Padrão**, que oferece um ambiente de computação de uso geral sem restrições adicionais de segurança. O **grupo de instâncias restritas (RIG)** é um ambiente especializado para personalização de modelos de base, como o Amazon Nova. Para obter mais informações sobre como configurar o RIG para personalização do modelo Amazon Nova, consulte Personalização do Amazon Nova no guia SageMaker HyperPod do usuário do [Amazon Nova 1.0 ou no guia do usuário](https://docs.aws.amazon.com//nova/latest/userguide/nova-hp.html) do [Amazon Nova 2.0](https://docs.aws.amazon.com//nova/latest/nova2-userguide/nova-hp.html).

1. Em **Nome**, especifique um nome para o grupo de instâncias.

1.  Em **Capacidade da instância**, escolha a capacidade sob demanda ou um plano de treinamento para reservar seus recursos de computação.

1. Em **Selecionar tipo de instância**, escolha a instância para o grupo de instâncias.
**Importante**  
Escolha um tipo de instância com cotas suficientes e endereços IP não atribuídos suficientes para sua conta. Para visualizar ou solicitar cotas adicionais, consulte [SageMaker HyperPod cotas](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

1. Em **Quantidade de instâncias**, especifique um número inteiro que não exceda a cota de instância para uso do cluster. Para este tutorial, insira **1** para todos os três grupos.

1. Na lista **Zona de disponibilidade de destino**, selecione a zona de disponibilidade onde suas instâncias serão provisionadas. A zona de disponibilidade deve corresponder ao local da sua capacidade de computação acelerada.

1. Em **Outros volumes de armazenamento por instância (GB)**, especifique um número inteiro entre 1 e 16.384 para definir o tamanho de um volume adicional do Elastic Block Store (EBS) em gigabytes (GB). O volume do EBS é anexado a cada instância do grupo de instâncias. O caminho de montagem padrão para o volume adicional do EBS é`/opt/sagemaker`. Depois que o cluster for criado com sucesso, você poderá entrar por SSH nas instâncias do cluster (nós) e verificar se o volume do EBS está montado corretamente executando o comando `df -h`. A anexação de um volume adicional do EBS fornece armazenamento estável, fora da instância e com persistência independente, conforme descrito na [seção de volumes do Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes.html) no Guia do usuário do *Amazon Elastic* Block Store.

1. Em **Verificações de integridade profundas de instância**, escolha sua opção. As verificações de integridade profundas monitoram a integridade da instância durante a criação e após atualizações de software, recuperando automaticamente as instâncias defeituosas por meio de reinicializações ou substituições quando habilitadas.

1. Se seu tipo de instância for compatível com o particionamento de GPU com GPU de várias instâncias (MIG), você pode ativar a configuração da partição de GPU para o grupo de instâncias. O particionamento de GPU permite que você se divida GPUs em partições menores e isoladas para melhorar a utilização dos recursos. Para obter mais informações, consulte [Usando partições de GPU na Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md).

   1. Alterne **Usar partição de GPU para ativar o particionamento** de GPU para esse grupo de instâncias.

   1. Selecione um **perfil de partição de GPU** entre as opções disponíveis para seu tipo de instância. Cada perfil define a configuração da fatia da GPU e a alocação de memória.

1. Escolha **Adicionar grupo de instâncias**.

### Padrões de configuração rápida
<a name="smcluster-getting-started-eks-console-create-cluster-default-settings"></a>

Esta seção lista todas as configurações padrão para a criação do cluster, incluindo todos os novos AWS recursos que serão criados durante o processo de criação do cluster. Reveja as configurações padrão.

## Configuração personalizada
<a name="smcluster-getting-started-eks-console-create-cluster-custom"></a>

Na seção **Configuração personalizada**, siga estas etapas para criar seu primeiro HyperPod cluster com a orquestração do Amazon EKS.

### Configurações gerais
<a name="smcluster-getting-started-eks-console-create-cluster-custom-general"></a>

Especifique um nome para o novo cluster. Não é possível alterar o nome após a criação do cluster.

Em **Recuperação de instâncias**, escolha **Automático: *recomendado*** ou **Nenhum**. 

### Redes
<a name="smcluster-getting-started-eks-console-create-cluster-custom-network"></a>

Defina as configurações de rede dentro in-and-out do cluster e do cluster. Para orquestração do SageMaker HyperPod cluster com o Amazon EKS, a VPC é automaticamente definida como aquela configurada com o cluster EKS que você selecionou.

1. Para **VPC**, escolha sua própria VPC se você já tiver uma que dê acesso de SageMaker IA à sua VPC. Para criar uma VPC, siga as instruções em [Criar uma VPC](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html) no *Manual do usuário da Amazon Virtual Private Cloud*. Você pode deixá-lo como **Nenhum** para usar o SageMaker AI VPC padrão.

1. Para o **bloco IPv4 CIDR da VPC**, insira o IP inicial da sua VPC.

1. Em **Zonas de disponibilidade**, escolha as Zonas de Disponibilidade (AZ) onde HyperPod criará sub-redes para seu cluster. Escolha AZs aquela que corresponda à localização da sua capacidade computacional acelerada.

1. Em **Grupos de segurança**, escolha os grupos de segurança que estejam conectados ao cluster do Amazon EKS ou cujo tráfego de entrada seja permitido pelo grupo de segurança associado ao cluster do Amazon EKS. Para criar grupos de segurança, acesse o console da Amazon VPC.

### Orquestração
<a name="smcluster-getting-started-eks-console-create-cluster-custom-orchestration"></a>

Siga estas etapas para criar ou selecionar um cluster do Amazon EKS e usá-lo como orquestrador. 

1. Em **Cluster do EKS**, escolha criar um cluster do Amazon EKS ou usar um existente. 

   Se precisar criar um cluster do EKS, você pode criá-lo na seção de cluster do EKS sem precisar abrir o console do Amazon EKS.
**nota**  
A sub-rede VPC que você escolher precisa ser HyperPod privada.   
Depois de enviar uma nova solicitação de criação de cluster do EKS, espere até que o cluster do EKS fique `Active`.

1. Em **Versão do Kubernetes**, escolha uma versão no menu suspenso. Para ter mais informações sobre as versões Kubernetes, consulte [Compreender o ciclo de vida da versão do Kubernetes no EKS* no Guia do usuário do Amazon EKS*](https://docs.aws.amazon.com//eks/latest/userguide/kubernetes-versions.html).

1. Em **Operadores**, escolha **Use gráficos e complementos padrão do Helm** ou **Não instale operadores**. A opção usa **Use gráficos e complementos padrão do Helm** como padrão, os quais serão usados para instalar operadores no cluster do EKS. Para obter mais informações sobre os gráficos e complementos padrão do Helm, consulte no [https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart/HyperPodHelmChart](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart/HyperPodHelmChart) GitHubrepositório. Para obter mais informações, consulte [Instalar pacotes no cluster do Amazon EKS usando o Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md).

1. Em **Operadores habilitados**, visualize a lista de operadores habilitados. Para editar os operadores, desmarque a caixa na parte superior e escolha os operadores a serem habilitados para o cluster do EKS. 
**nota**  
Para usar HyperPod com o EKS, você deve instalar gráficos e complementos do Helm que habilitem operadores no cluster EKS. Esses componentes configuram o EKS como o plano de controle HyperPod e fornecem a configuração necessária para o gerenciamento e a orquestração da carga de trabalho.

### Grupos de instâncias
<a name="smcluster-getting-started-eks-console-create-cluster-custom-instance-groups"></a>

Para adicionar um grupo de instâncias, escolha **Adicionar grupo**. Cada grupo de instâncias pode ser configurado de forma diferente e você pode criar um cluster heterogêneo que consiste em vários grupos de instâncias com vários tipos de instância. Para implantar um cluster, você deve adicionar ao menos um grupo de instâncias. Siga as etapas abaixo para adicionar um grupo de instâncias.

1. Em **Tipo de grupo de instâncias**, escolha **Padrão** ou **Grupo de instâncias restritas (RIG)**. Normalmente, você escolherá **Padrão**, que oferece um ambiente de computação de uso geral sem restrições adicionais de segurança. O **grupo de instâncias restritas (RIG)** é um ambiente especializado para personalização de modelos de base, como o Amazon Nova. Para obter mais informações sobre como configurar o RIG para personalização do modelo Amazon Nova, consulte Personalização do Amazon Nova no guia SageMaker HyperPod do usuário do [Amazon Nova 1.0 ou no guia do usuário](https://docs.aws.amazon.com//nova/latest/userguide/nova-hp.html) do [Amazon Nova 2.0](https://docs.aws.amazon.com//nova/latest/nova2-userguide/nova-hp.html).

1. Em **Nome**, especifique um nome para o grupo de instâncias.

1.  Em **Capacidade da instância**, escolha a capacidade sob demanda ou um plano de treinamento para reservar seus recursos de computação.

1. Em **Selecionar tipo de instância**, escolha a instância para o grupo de instâncias.
**Importante**  
Escolha um tipo de instância com cotas suficientes e endereços IP não atribuídos suficientes para sua conta. Para visualizar ou solicitar cotas adicionais, consulte [SageMaker HyperPod cotas](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

1. Em **Quantidade de instâncias**, especifique um número inteiro que não exceda a cota de instância para uso do cluster. Para este tutorial, insira **1** para todos os três grupos.

1. Na lista **Zona de disponibilidade de destino**, selecione a zona de disponibilidade onde suas instâncias serão provisionadas. A zona de disponibilidade deve corresponder ao local da sua capacidade de computação acelerada.

1. Em **Outros volumes de armazenamento por instância (GB)**, especifique um número inteiro entre 1 e 16.384 para definir o tamanho de um volume adicional do Elastic Block Store (EBS) em gigabytes (GB). O volume do EBS é anexado a cada instância do grupo de instâncias. O caminho de montagem padrão para o volume adicional do EBS é`/opt/sagemaker`. Depois que o cluster for criado com sucesso, você poderá entrar por SSH nas instâncias do cluster (nós) e verificar se o volume do EBS está montado corretamente executando o comando `df -h`. A anexação de um volume adicional do EBS fornece armazenamento estável, fora da instância e com persistência independente, conforme descrito na [seção de volumes do Amazon EBS](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-volumes.html) no Guia do usuário do *Amazon Elastic* Block Store.

1. Em **Verificações de integridade profundas de instância**, escolha sua opção. As verificações de integridade profundas monitoram a integridade da instância durante a criação e após atualizações de software, recuperando automaticamente as instâncias defeituosas por meio de reinicializações ou substituições quando habilitadas. Para saber mais, consulte [Verificações de integridade profundas](sagemaker-hyperpod-eks-resiliency-deep-health-checks.md)

1. Para **Usar partição GPU — opcional**, se seu tipo de instância for compatível com particionamento de GPU com GPU de várias instâncias (MIG), você pode ativar essa opção para configurar o perfil de partição da GPU para o grupo de instâncias. O particionamento de GPU permite que você se divida GPUs em partições menores e isoladas para melhorar a utilização dos recursos. Para obter mais informações, consulte [Usando partições de GPU na Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md).

   1. Alterne **Usar partição de GPU para ativar o particionamento** de GPU para esse grupo de instâncias.

   1. Selecione um **perfil de partição de GPU** entre as opções disponíveis para seu tipo de instância. Cada perfil define a configuração da fatia da GPU e a alocação de memória.

1. Escolha **Adicionar grupo de instâncias**.

### Scripts de ciclo de vida
<a name="smcluster-getting-started-eks-console-create-cluster-custom-lifecycle"></a>

Você pode optar por usar os scripts de ciclo de vida padrão ou os scripts de ciclo de vida personalizados, que serão armazenados em seu bucket do Amazon S3. Você pode visualizar os scripts de ciclo de vida padrão no repositório [Awesome Distributed Training GitHub ](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/7.sagemaker-hyperpod-eks/LifecycleScripts). Para saber mais sobre os scripts de ciclo de vida, consulte [Personalização de SageMaker HyperPod clusters usando scripts de ciclo de vida](sagemaker-hyperpod-lifecycle-best-practices-slurm.md).

1. Em **Scripts de ciclo de vida**, opte por usar o script de ciclo de vida padrão ou scripts personalizados.

1. Para **Scripts de ciclo de vida do bucket do S3**, opte por criar um bucket ou usar um existente para armazenar os scripts de ciclo de vida.

### Permissões
<a name="smcluster-getting-started-eks-console-create-cluster-custom-permissions"></a>

Escolha ou crie uma função do IAM que permita HyperPod executar e acessar AWS os recursos necessários em seu nome. Para obter mais informações, consulte [Função do IAM para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod).

### Armazenamento
<a name="smcluster-getting-started-eks-console-create-cluster-custom-storage"></a>

Configure o FSx sistema de arquivos Lustre para ser provisionado no cluster. HyperPod 

1. Para **Sistema de arquivos**, escolha um sistema de arquivos existente FSx para o Lustre, para criar um novo sistema de arquivos FSx para o Lustre, ou não provisione um sistema de arquivos FSx para o Lustre.

1. Em **Throughput por unidade de armazenamento**, escolha o throughput que estará disponível por TiB de armazenamento provisionado.

1. Em **Capacidade de armazenamento**, insira um valor de capacidade em TB.

1. Em **Tipo de compactação de dados**, escolha ativar **LZ4**a compactação de dados.

1. Em **Versão do Lustre**, veja o valor recomendado para os novos sistemas de arquivos.

### Tags: opcional
<a name="smcluster-getting-started-eks-console-create-cluster-tags"></a>

Para **Tags - *opcional***, adicione pares de chaves e valores ao novo cluster e gerencie o cluster como um AWS recurso. Para saber mais, consulte [Marcação de AWS recursos](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html).

## Implantar recursos.
<a name="smcluster-getting-started-eks-console-create-cluster-deploy"></a>

Depois de concluir as configurações do cluster usando a **Configuração rápida** ou a **Configuração personalizada**, escolha a opção a seguir para iniciar o provisionamento de recursos e a criação do cluster.
+  **Enviar** — a SageMaker IA começará a provisionar os recursos de configuração padrão e a criar o cluster. 
+ **Baixar parâmetros CloudFormation do modelo** - Você fará o download do arquivo JSON do parâmetro de configuração e executará o AWS CLI comando para implantar a CloudFormation pilha para provisionar os recursos de configuração e criar o cluster. Você pode editar o arquivo JSON do parâmetro baixado, se necessário. Se você escolher essa opção, consulte mais instruções em [Criação de SageMaker HyperPod clusters usando CloudFormation modelos](smcluster-getting-started-eks-console-create-cluster-cfn.md).

# Navegação, visualização e edição de SageMaker HyperPod clusters
<a name="sagemaker-hyperpod-eks-operate-console-ui-browse-view-edit"></a>

Use as instruções a seguir para navegar, visualizar e editar SageMaker HyperPod clusters orquestrados pelo Amazon EKS no console de SageMaker IA.

**Topics**
+ [Para navegar em seus SageMaker HyperPod clusters](#sagemaker-hyperpod-eks-operate-console-ui-browse-clusters)
+ [Para ver os detalhes de cada SageMaker HyperPod cluster](#sagemaker-hyperpod-eks-operate-console-ui-view-details-of-clusters)
+ [Para editar um SageMaker HyperPod cluster](#sagemaker-hyperpod-eks-operate-console-ui-edit-clusters)

## Para navegar em seus SageMaker HyperPod clusters
<a name="sagemaker-hyperpod-eks-operate-console-ui-browse-clusters"></a>

Em **Clusters** na SageMaker HyperPod página do console de SageMaker IA, todos os clusters criados devem ser listados na seção **Clusters**, que fornece uma visão resumida dos clusters ARNs, seus status e horário de criação.

## Para ver os detalhes de cada SageMaker HyperPod cluster
<a name="sagemaker-hyperpod-eks-operate-console-ui-view-details-of-clusters"></a>

Em **Clusters** na SageMaker HyperPod página do console de SageMaker IA, os nomes dos clusters são ativados como links. Escolha o link do nome do cluster para ver os detalhes de cada cluster.

## Para editar um SageMaker HyperPod cluster
<a name="sagemaker-hyperpod-eks-operate-console-ui-edit-clusters"></a>

1. Em **Clusters** no painel principal do SageMaker HyperPod console, escolha o cluster que você deseja atualizar.

1. Selecione o cluster e escolha **Editar**.

1. Na página **Editar <nome do seu cluster>**, você pode editar as configurações dos grupos de instâncias existentes, adicionar ou excluir grupos de instâncias, bem como alterar as tags do cluster. Depois de fazer suas alterações, escolha **Avançar**. 

   1. Na seção **Configurar grupos de instâncias**, você pode adicionar grupos de instâncias escolhendo **Criar grupo de instâncias**.

   1. Na seção **Configurar grupos de instâncias**, você pode escolher **Editar** para alterar sua configuração ou **Excluir** para remover o grupo de instâncias permanentemente.
**Importante**  
Ao excluir um grupo de instâncias, considere os seguintes pontos:  
Seu SageMaker HyperPod cluster deve sempre manter pelo menos um grupo de instâncias.
Garanta que todos os dados essenciais sejam copiados antes da remoção.
O processo de remoção não pode ser desfeito.
**nota**  
A exclusão de um grupo de instâncias encerrará todos os recursos de computação associados a esse grupo.

   1. Na seção **Marcações**, você pode atualizar as marcações do cluster.

# Excluindo um cluster SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-console-ui-delete-cluster"></a>

Use as instruções a seguir para excluir SageMaker HyperPod clusters orquestrados pelo Amazon EKS no console de SageMaker IA.

1. Em **Clusters** no painel principal do SageMaker HyperPod console, escolha o cluster que você deseja excluir.

1. Selecione o cluster e escolha **Excluir**.

1. Na janela pop-up para exclusão do cluster, revise cuidadosamente as informações do cluster para confirmar se você escolheu o cluster certo para excluir.

1. Depois de analisar as informações do cluster, escolha **Sim, excluir cluster**.

1. Insira **delete** no campo de texto para confirmar a exclusão.

1. Escolha **Excluir** no canto inferior direito da janela pop-up para concluir o envio da solicitação de exclusão do cluster.

**nota**  
Quando a exclusão do cluster falhar devido às políticas de governança de SageMaker HyperPod tarefas anexadas, você precisará[Excluir políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete.md).

# Criação de SageMaker HyperPod clusters usando CloudFormation modelos
<a name="smcluster-getting-started-eks-console-create-cluster-cfn"></a>

Você pode criar SageMaker HyperPod clusters usando os CloudFormation modelos para HyperPod. Você deve instalar AWS CLI para continuar.

**Topics**
+ [Configure recursos no console e implante usando CloudFormation](#smcluster-getting-started-eks-console-create-cluster-deploy-console)
+ [Configure e implante recursos usando CloudFormation](#smcluster-getting-started-eks-console-create-cluster-deploy-cfn)

## Configure recursos no console e implante usando CloudFormation
<a name="smcluster-getting-started-eks-console-create-cluster-deploy-console"></a>

Você pode configurar recursos usando o Console de gerenciamento da AWS e implantar usando os CloudFormation modelos.

Siga estas etapas.

1. *Em vez de escolher **Enviar***, escolha **Baixar parâmetros do CloudFormation modelo** no final do tutorial em[Começando a SageMaker HyperPod usar o console de SageMaker IA](smcluster-getting-started-slurm-console.md). O tutorial contém informações de configuração importantes das quais você precisará para criar o cluster com êxito.
**Importante**  
Se você escolher **Enviar**, não poderá implantar um cluster com o mesmo nome enquanto não excluir o cluster.

   Depois de escolher **Baixar parâmetros do CloudFormation modelo**, a janela **Usando o arquivo de configuração para criar o cluster usando** a AWS CLI janela aparecerá no lado direito da página.

1. Na janela **Usar o arquivo de configuração para criar o cluster usando a AWS CLI**, escolha **Baixar arquivo de parâmetros de configuração**. O arquivo será baixado na sua máquina. Você pode editar o arquivo JSON de configuração com base nas suas necessidades ou deixá-lo como está, se nenhuma alteração for necessária.

1. Em um terminal, navegue até o local do arquivo de parâmetro `file://params.json`.

1. Execute o AWS CLI comando [create-stack](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/create-stack.html) para implantar a CloudFormation pilha que provisionará os recursos configurados e criará o 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. [Para ver o status do provisionamento de recursos, navegue até o CloudFormation console.](https://console.aws.amazon.com/cloudformation)

   Depois que a criação do cluster for concluída, visualize o novo cluster em **Clusters** no painel principal do SageMaker HyperPod console. Você pode conferir o status exibido na coluna **Status**.

1. Depois que o status do cluster mudar para `InService`, você poderá começar a fazer login nos nós do cluster. Para acessar os nós do cluster e começar a executar workloads de ML, consulte [Trabalhos em SageMaker HyperPod clusters](sagemaker-hyperpod-run-jobs-slurm.md).

## Configure e implante recursos usando CloudFormation
<a name="smcluster-getting-started-eks-console-create-cluster-deploy-cfn"></a>

Você pode configurar e implantar recursos usando os CloudFormation modelos do SageMaker HyperPod.

Siga estas etapas.

1. Baixe um CloudFormation modelo para SageMaker HyperPod do [sagemaker-hyperpod-cluster-setup](https://github.com/aws/sagemaker-hyperpod-cluster-setup) GitHub repositório.

1. Execute o AWS CLI comando [create-stack](https://docs.aws.amazon.com//cli/latest/reference/cloudformation/create-stack.html) para implantar a CloudFormation pilha que provisionará os recursos configurados e criará o 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. Para ver o status do provisionamento de recursos, navegue até o console do CloudFormation .

   Depois que a criação do cluster for concluída, visualize o novo cluster em **Clusters** no painel principal do SageMaker HyperPod console. Você pode conferir o status exibido na coluna **Status**.

1. Depois que o status do cluster mudar para `InService`, você poderá começar a fazer login nos nós do cluster.

# Gerenciando clusters SageMaker HyperPod EKS usando o AWS CLI
<a name="sagemaker-hyperpod-eks-operate-cli-command"></a>

Os tópicos a seguir fornecem orientação sobre como escrever arquivos de solicitação de SageMaker HyperPod API no formato JSON e executá-los usando os AWS CLI comandos.

**Topics**
+ [Criação de um SageMaker HyperPod cluster](sagemaker-hyperpod-eks-operate-cli-command-create-cluster.md)
+ [Recuperando detalhes SageMaker HyperPod do cluster](sagemaker-hyperpod-eks-operate-cli-command-cluster-details.md)
+ [Atualizando a configuração do SageMaker HyperPod cluster](sagemaker-hyperpod-eks-operate-cli-command-update-cluster.md)
+ [Atualizando o software SageMaker HyperPod da plataforma](sagemaker-hyperpod-eks-operate-cli-command-update-cluster-software.md)
+ [Acessando os nós SageMaker HyperPod do cluster](sagemaker-hyperpod-eks-operate-access-through-terminal.md)
+ [Reduzindo a escala de um cluster SageMaker HyperPod](smcluster-scale-down.md)
+ [Excluindo um cluster SageMaker HyperPod](sagemaker-hyperpod-eks-operate-cli-command-delete-cluster.md)

# Criação de um SageMaker HyperPod cluster
<a name="sagemaker-hyperpod-eks-operate-cli-command-create-cluster"></a>

Saiba como criar SageMaker HyperPod clusters orquestrados pelo Amazon EKS usando o. AWS CLI

1. Antes de criar um SageMaker HyperPod cluster:

   1. Certifique-se de ter um cluster existente do Amazon EKS instalado e em execução. Para obter instruções sobre como criar um novo cluster do Amazon EKS, consulte [Criar um cluster do Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html) no *Guia do usuário do Amazon EKS*.

   1. Instale o chart do Helm conforme as instruções em [Instalar pacotes no cluster do Amazon EKS usando o Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md). Se você criar um [ SageMaker HyperPod cluster Amazon Nova](https://docs.aws.amazon.com//nova/latest/nova2-userguide/nova-hp-cluster.html), precisará de um gráfico Helm separado.

1. Prepare um script de configuração de ciclo de vida e faça upload em um bucket do Amazon S3, como `s3://amzn-s3-demo-bucket/Lifecycle-scripts/base-config/`.

   Para começar rapidamente, baixe o script [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)de amostra do GitHub repositório de treinamento distribuído AWS ome e carregue-o no bucket do S3. Você também pode incluir instruções adicionais de configuração, uma série de scripts de configuração ou comandos a serem executados durante o estágio de provisionamento do HyperPod cluster.
**Importante**  
Se você criar um [Função do IAM para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod) anexando somente a [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) gerenciada, seu cluster terá acesso aos buckets do Amazon S3 com o prefixo específico `sagemaker-`.

   Se você criar um grupo de instâncias restrito, não será necessário fazer download e executar o script de ciclo de vida. Em vez disso, você precisará executar `install_rig_dependencies.sh`. 

   Os pré-requisitos para executar o script `install_rig_dependencies.sh` são:
   + AWS O Node (CNI) e o CoreDNS devem estar habilitados. Esses são complementos EKS padrão que não são gerenciados pelo SageMaker HyperPod Helm padrão, mas podem ser facilmente ativados no console EKS em Complementos.
   +  O gráfico padrão do SageMaker HyperPod Helm deve ser instalado antes da execução desse script.

   O script `install_rig_dependencies.sh` executa as ações a seguir. 
   + `aws-node` (CNI): foi criado um Daemonset `rig-aws-node`. O `aws-node` existente foi corrigido para evitar nós RIG.
   + `coredns`: Convertido em Daemonset RIGs para suportar o uso de várias plataformas e evitar sobrecargas.
   + training-operators: atualizado com tolerâncias a taint e nodeAffinity no nó de processamento RIG para favorecer instâncias que não são RIG.
   + Elastic Fabric Adapter (EFA): atualizado para tolerar taint no nó de processamento RIG e usar imagens de contêiner corretas para cada região.

1. Prepare um arquivo de solicitação de [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)API no formato JSON. Para `ExecutionRole`, forneça o ARN do perfil do IAM que você criou com o `AmazonSageMakerClusterInstanceRolePolicy` gerenciado da seção [Função do IAM para SageMaker HyperPod](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod).
**nota**  
Certifique-se de que seu SageMaker HyperPod cluster seja implantado na mesma Virtual Private Cloud (VPC) do seu cluster Amazon EKS. As sub-redes e os grupos de segurança especificados na configuração do SageMaker HyperPod cluster devem permitir conectividade de rede e comunicação com o endpoint do servidor de API do 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"
   }
   ```
**Grupos de instâncias flexíveis**  
Em vez de especificar uma única`InstanceType`, você pode usar o `InstanceRequirements` parâmetro para especificar vários tipos de instância para um grupo de instâncias. Observe o seguinte:  
`InstanceType`e `InstanceRequirements` são mutuamente exclusivos. Você deve especificar um ou outro, mas não os dois.
`InstanceRequirements.InstanceTypes`é uma lista ordenada que determina a prioridade do aprovisionamento. SageMaker HyperPodtenta provisionar o primeiro tipo de instância na lista e volta para os tipos subsequentes se a capacidade não estiver disponível. Você pode especificar até 20 tipos de instância, e a lista não deve conter duplicatas.
Grupos de instâncias flexíveis exigem o modo de provisionamento contínuo de nós.
O exemplo a seguir mostra um grupo de instâncias usando`InstanceRequirements`:  

   ```
   {
       "InstanceGroupName": "flexible-ig",
       "InstanceRequirements": {
           "InstanceTypes": ["ml.p5.48xlarge", "ml.p4d.24xlarge", "ml.g6.48xlarge"]
       },
       "InstanceCount": 10,
       "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"
   }
   ```

   Observe o seguinte ao configurar para criar um novo SageMaker HyperPod cluster associado a um cluster EKS.
   + Você pode configurar até 20 grupos de instâncias sob o `InstanceGroups` parâmetro.
   + Para `Orchestator.Eks.ClusterArn`, especifique o ARN do cluster do EKS que você deseja usar como orquestrador.
   + Para `OnStartDeepHealthChecks`, adicione `InstanceStress` e `InstanceConnectivity` para ativar [Verificações de integridade profundas](sagemaker-hyperpod-eks-resiliency-deep-health-checks.md).
   + Para`NodeRecovery`, especifique `Automatic` para ativar a recuperação automática de nós. SageMaker HyperPod substitui ou reinicializa instâncias (nós) quando problemas são encontrados pelo agente de monitoramento de integridade.
   + Para o `Tags` parâmetro, você pode adicionar tags personalizadas para gerenciar o SageMaker HyperPod cluster como um AWS recurso. Você pode adicionar tags ao seu cluster da mesma forma que as adiciona em outros serviços AWS que oferecem apoio à marcação. Para saber mais sobre a marcação de recursos da AWS em geral, consulte o Guia [do usuário de AWS recursos de marcação](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html).
   + Para o parâmetro `VpcConfig`, especifique as informações da VPC usada no cluster do EKS. As sub-redes devem ser privadas.
   + Para isso`Orchestrator.Eks.KubernetesConfig.Labels`, você pode especificar opcionalmente os rótulos do Kubernetes a serem aplicados aos nós. Para habilitar o particionamento de GPU com a GPU de várias instâncias (MIG), adicione o `nvidia.com/mig.config` rótulo com o perfil MIG desejado. Por exemplo, `"nvidia.com/mig.config": "all-3g.40gb"` configura tudo GPUs com o perfil de partição 3g.40gb. Para obter mais informações sobre particionamento de GPU e perfis disponíveis, consulte. [Usando partições de GPU na Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md)

1. Execute o comando [create-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-cluster.html) da seguinte maneira:
**Importante**  
Ao executar o comando `create-cluster` com o parâmetro `--cli-input-json`, você deve incluir o prefixo `file://` antes do caminho completo para o arquivo JSON. Esse prefixo é necessário para garantir que o AWS CLI reconheça a entrada como um caminho de arquivo. A omissão do prefixo `file://` resulta em um erro de parâmetro de análise.

   ```
   aws sagemaker create-cluster \
       --cli-input-json file://complete/path/to/create_cluster.json
   ```

   Isso deve retornar o ARN do novo cluster.
**Importante**  
Você pode usar a operação [update-cluster](https://docs.aws.amazon.com//cli/latest/reference/ecs/update-cluster.html) para remover um grupo de instâncias restritas (RIG). Quando um RIG é reduzido para 0, o sistema de arquivos FSx for Lustre não será excluído. Para remover completamente o sistema de arquivos FSx for Lustre, você deve remover completamente o RIG.   
A remoção de um RIG não excluirá nenhum artefato armazenado no bucket do Amazon S3 gerenciado pelo serviço. No entanto, você deve garantir que todos os artefatos no sistema de arquivos do FSx Lustre estejam totalmente sincronizados com o Amazon S3 antes da remoção. Recomendamos esperar pelo menos 30 minutos após a conclusão do trabalho para garantir a sincronização completa de todos os artefatos do sistema de arquivos FSx for Lustre com o bucket Amazon S3 gerenciado pelo serviço.
**Importante**  
Ao usar uma reserva de capacidade sob demanda (ODCR) integrada, você deve mapear seu grupo de instâncias para a mesma ID de zona de disponibilidade (ID AZ) da ODCR configurando `OverrideVpcConfig` com uma sub-rede na ID AZ correspondente.  
CRÍTICO: verifique a `OverrideVpcConfig` configuração antes da implantação para evitar cobranças duplicadas tanto para o ODCR quanto para a capacidade sob demanda.

# Recuperando detalhes SageMaker HyperPod do cluster
<a name="sagemaker-hyperpod-eks-operate-cli-command-cluster-details"></a>

Saiba como recuperar detalhes SageMaker HyperPod do cluster usando o. AWS CLI

## Descrever um cluster
<a name="sagemaker-hyperpod-eks-operate-cli-command-describe-cluster"></a>

Execute [describe-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/describe-cluster.html) para verificar o status do cluster. Você pode especificar o nome ou o ARN do cluster.

```
aws sagemaker describe-cluster --cluster-name your-hyperpod-cluster
```

Depois que o status do cluster for alterado para **InService**, avance para a próxima etapa. Usando essa API, você também pode recuperar mensagens de falha da execução de outras operações de HyperPod API.

## Listar detalhes dos nós do cluster
<a name="sagemaker-hyperpod-eks-operate-cli-command-list-cluster-nodes"></a>

Execute [list-cluster-nodes](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-cluster-nodes.html)para verificar as principais informações dos nós do cluster.

```
aws sagemaker list-cluster-nodes --cluster-name your-hyperpod-cluster
```

Isso retorna uma resposta e `InstanceId` é o que você precisa usar para fazer login (usar`aws ssm`) nelas.

## Descrever detalhes de um nó de cluster
<a name="sagemaker-hyperpod-eks-operate-cli-command-describe-cluster-node"></a>

Execute [describe-cluster-node](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/describe-cluster-node.html)para recuperar detalhes de um nó do cluster. Você pode obter o ID do nó do cluster na list-cluster-nodes saída. Você pode especificar o nome ou o ARN do cluster.

```
aws sagemaker describe-cluster-node \
    --cluster-name your-hyperpod-cluster \
    --node-id i-111222333444555aa
```

## Listar clusters
<a name="sagemaker-hyperpod-eks-operate-cli-command-list-clusters"></a>

Execute [list-clusters](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-clusters.html) para listar todos os clusters em sua conta.

```
aws sagemaker list-clusters
```

Você também pode adicionar sinalizadores adicionais para filtrar a lista de clusters. Para saber mais sobre o que esse comando executa em baixo nível e sinalizadores adicionais para filtragem, consulte a referência da [ListClusters](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListClusters.html)API.

# Atualizando a configuração do SageMaker HyperPod cluster
<a name="sagemaker-hyperpod-eks-operate-cli-command-update-cluster"></a>

Execute [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) para atualizar a configuração de um cluster.

**nota**  
Considerações importantes:  
Você não pode alterar as informações do cluster EKS que seu HyperPod cluster está associado após a criação do cluster. 
Se verificações profundas de integridade estiverem sendo executadas no cluster, essa API não funcionará conforme o esperado. Você pode encontrar uma mensagem de erro informando que verificações profundas de integridade estão em andamento. Para atualizar o cluster, você deve esperar até que as verificações profundas de integridade sejam concluídas.

1. Crie um arquivo de solicitação de API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html) no formato JSON. Certifique-se de especificar o nome correto do cluster e do grupo de instâncias a serem atualizados. Para cada grupo de instâncias, você pode alterar o tipo de instância, o número de instâncias, o script do ponto de entrada da configuração do ciclo de vida e o caminho para o script.
**nota**  
Você pode usar o `UpdateCluster` para reduzir ou remover grupos de instâncias inteiros do seu SageMaker HyperPod cluster. Para obter instruções adicionais sobre como reduzir a escala verticalmente de grupos de instâncias ou excluí-las, consulte [Reduzindo a escala de um cluster SageMaker HyperPod](smcluster-scale-down.md).

   1. Para `ClusterName`, escolha o nome do cluster que deseja atualizar.

   1. Para `InstanceGroupName`

      1. Para atualizar um grupo de instâncias existente, especifique o nome do grupo de instâncias que você quer atualizar.

      1. Para adicionar um novo grupo de instâncias, especifique um novo nome que não existe no seu cluster.

   1. Para `InstanceType`

      1. Para atualizar um grupo de instâncias existente, você precisa corresponder ao grupo o tipo de instância especificado inicialmente.

      1. Para adicionar um novo grupo de instâncias, especifique o tipo de instância com o qual você quer configurar o grupo.

      Para grupos de instâncias que usam `InstanceRequirements` em vez de`InstanceType`, você pode adicionar ou remover tipos de instância da `InstanceTypes` lista. No entanto, você não pode remover um tipo de instância que tenha nós ativos em execução nela. Você também não pode alternar entre `InstanceType` e `InstanceRequirements` ao atualizar um grupo de instâncias existente. `InstanceType`e `InstanceRequirements` são mutuamente exclusivos.

   1. Para `InstanceCount`

      1. Para atualizar um grupo de instâncias existente, especifique um número inteiro que corresponda ao número desejado de instâncias. Você pode fornecer um valor maior ou menor (até 0) para aumentar ou reduzir a escala verticalmente do grupo de instâncias.

      1. Para adicionar um novo grupo de instâncias, especifique um número inteiro maior ou igual a 1. 

   1. Para `LifeCycleConfig`, você pode alterar os valores de ambos `SourceS3Uri` e `OnCreate` conforme quiser atualizar o grupo de instâncias.

   1. Para `ExecutionRole`

      1. Para atualizar um grupo de instâncias existente, continue usando a mesmo perfil do IAM que você anexou durante a criação do cluster.

      1. Para adicionar um novo grupo de instâncias, especifique um perfil do IAM que você deseja anexar.

   1. Para `ThreadsPerCore`

      1. Para atualizar um grupo de instâncias existente, continue usando o mesmo valor especificado durante a criação do cluster.

      1. Para adicionar um novo grupo de instâncias, você pode escolher qualquer valor entre as opções permitidas por tipo de instância. Para obter mais informações, pesquise o tipo de instância e consulte a coluna **Threads válidos por núcleo** na tabela de referência em [núcleos de CPU e segmentos por núcleo de CPU por tipo de instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/cpu-options-supported-instances-values.html) no *Guia do usuário do Amazon EC2*.

   1. Para `OnStartDeepHealthChecks`, adicione `InstanceStress` e `InstanceConnectivity` para ativar [Verificações de integridade profundas](sagemaker-hyperpod-eks-resiliency-deep-health-checks.md).

   1. Para`NodeRecovery`, especifique `Automatic` para ativar a recuperação automática de nós. SageMaker HyperPod substitui ou reinicializa instâncias (nós) quando problemas são encontrados pelo agente de monitoramento de integridade.

   O trecho de código a seguir é um modelo de arquivo de solicitação JSON que você pode usar. Para obter mais informações sobre a sintaxe e os parâmetros da solicitação dessa API, consulte a referência da [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": "string",
           "InstanceType": "string",
           "InstanceCount": number,
           "LifeCycleConfig": {
               "SourceS3Uri": "string",
               "OnCreate": "string"
           },
           "ExecutionRole": "string",
           "ThreadsPerCore": number,
           "OnStartDeepHealthChecks": [
               "InstanceStress", "InstanceConnectivity"
           ]
       }],
       "NodeRecovery": "Automatic"
   }
   ```

1. Execute o comando `update-cluster` a seguir para obter o ARN do stream. 

   ```
   aws sagemaker update-cluster \
       --cli-input-json file://complete/path/to/update_cluster.json
   ```

# Atualizando o software SageMaker HyperPod da plataforma
<a name="sagemaker-hyperpod-eks-operate-cli-command-update-cluster-software"></a>

Ao criar seu SageMaker HyperPod cluster, SageMaker HyperPod seleciona uma Amazon Machine Image (AMI) correspondente à versão Kubernetes do seu cluster Amazon EKS.

Execute [update-cluster-software](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster-software.html)para atualizar os clusters existentes com os patches de software e segurança fornecidos pelo SageMaker HyperPod serviço. Para `--cluster-name`, especifique o nome ou o ARN do cluster a ser atualizado.

**Importante**  
Quando essa API é chamada, SageMaker HyperPod não drena nem redistribui os trabalhos (pods) em execução nos nós. Certifique-se de verificar se há algum trabalho em execução nos nós antes de chamar essa API.
O processo de aplicação de patches substitui o volume raiz pela AMI atualizada, o que significa que seus dados anteriores armazenados no volume raiz da instância serão perdidos. Certifique-se de fazer backup dos dados do volume raiz da instância no Amazon S3 ou no Amazon FSx for Lustre.
Todos os nós do cluster passam por um tempo de inatividade (os nós aparecem como `<NotReady>` na saída de`kubectl get node`) enquanto a correção está em andamento. Recomendamos que você encerre todas as workloads antes da aplicação do patch e as retome após a conclusão do patch.   
Se o patch de segurança falhar, você poderá recuperar as mensagens de falha executando a API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html) conforme as instruções em [Descrever um 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
```

**Atualizações contínuas com grupos de instâncias flexíveis**  
Para grupos de instâncias que usam `InstanceRequirements` com vários tipos de instância, as atualizações contínuas distribuem cada tipo de instância proporcionalmente entre os lotes. Por exemplo, se um grupo de instâncias tiver 100 instâncias (10 P5 e 90 G6) e você configurar um tamanho de lote de 10%, cada lote conterá 1 instância P5 e 9 instâncias G6.

 Ao chamar a `UpdateClusterSoftware` API, SageMaker HyperPod atualize a versão Kubernetes dos nós selecionando a mais recente [SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami) com base na versão Kubernetes do seu cluster Amazon EKS. Em seguida, ele executa os scripts de ciclo de vida no bucket do Amazon S3 que você especificou durante a criação ou atualização do cluster. 

Você pode verificar a versão kubelet de um nó executando o comando `kubectl describe node`.

A versão Kubernetes dos nós do SageMaker HyperPod cluster não é atualizada automaticamente quando você atualiza a versão do cluster do Amazon EKS. Depois de atualizar a versão do Kubernetes para seu cluster Amazon EKS, você deve usar a `UpdateClusterSoftware` API para atualizar seus nós do SageMaker HyperPod cluster para a mesma versão do Kubernetes.

 É recomendável atualizar seu SageMaker HyperPod cluster após atualizar seus nós do Amazon EKS e evitar ter mais de uma diferença de versão entre a versão do cluster do Amazon EKS e a versão dos nós do SageMaker HyperPod cluster.

A equipe SageMaker HyperPod de serviço lança regularmente novos [SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami) s para aprimorar a segurança e melhorar a experiência do usuário. Recomendamos que você sempre continue atualizando para o SageMaker HyperPod DLAMI mais recente. Para futuras atualizações SageMaker HyperPod do DLAMI para patches de segurança, entre em contato com. [Notas SageMaker HyperPod de lançamento da Amazon](sagemaker-hyperpod-release-notes.md)

**nota**  
Você só pode executar essa API de forma programática. A funcionalidade de correção não está implementada na interface do usuário do SageMaker HyperPod console.

# Acessando os nós SageMaker HyperPod do cluster
<a name="sagemaker-hyperpod-eks-operate-access-through-terminal"></a>

Você pode acessar diretamente os nós de um SageMaker HyperPod cluster em serviço usando os AWS CLI comandos for AWS Systems Manager (SSM). Execute `aws ssm start-session` com o nome do host do nó no formato de `sagemaker-cluster:[cluster-id]_[instance-group-name]-[instance-id]`. Você pode recuperar o ID do cluster, o ID da instância e o nome do grupo de instâncias no [SageMaker HyperPod console](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-view-details-of-clusters) ou executando `describe-cluster` e `list-cluster-nodes` usando os [AWS CLI comandos para SageMaker HyperPod](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-list-cluster-nodes). Por exemplo, se o ID do cluster for `aa11bbbbb222`, o nome do nó do cluster for `controller-group` e o ID do nó do cluster for `i-111222333444555aa`, o comando SSM `start-session` deverá ser o seguinte:

**nota**  
Se você não tiver configurado AWS Systems Manager, siga as instruções fornecidas em[Configurando AWS Systems Manager e executando como para controle de acesso do usuário do 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#
```

# Reduzindo a escala de um cluster SageMaker HyperPod
<a name="smcluster-scale-down"></a>

Você pode reduzir o número de instâncias em execução no seu SageMaker HyperPod cluster da Amazon. Talvez você queira reduzir a escala verticalmente de um cluster por vários motivos, como redução da utilização de recursos ou otimização de custos.

A seguinte página descreve duas abordagens principais para reduzir a escala verticalmente:
+ **Reduzir a escala verticalmente em nível de grupo de instâncias:** essa abordagem usa a API `UpdateCluster`, com a qual você pode:
  + Reduzir a escala verticalmente da contagem de instâncias para grupos de instâncias específicos de forma independente. SageMaker A IA lida com o encerramento dos nós de uma forma que atinge as novas contagens de instâncias de destino que você definiu para cada grupo. Consulte [Reduzir a escala verticalmente de um grupo de instâncias](#smcluster-scale-down-updatecluster).
  + Excluir completamente os grupos de instâncias do cluster. Consulte [Excluir grupos de instâncias](#smcluster-remove-instancegroup).
+ **Reduzir a escala verticalmente em nível de instância:** essa abordagem usa a API `BatchDeleteClusterNodes`, com a qual você pode especificar os nós individuais que deseja encerrar. Consulte [Reduzir a escala verticalmente em nível de instância](#smcluster-scale-down-batchdelete).

**nota**  
Ao reduzir a escala verticalmente em nível de instância com `BatchDeleteCusterNodes`, você só pode encerrar no máximo 99 instâncias por vez. `UpdateCluster` permite o encerramento de qualquer número de instâncias.

## Considerações importantes
<a name="smcluster-scale-down-considerations"></a>
+ Ao reduzir a escala verticalmente de um cluster, você deve garantir que os recursos restantes sejam suficientes para lidar com sua workload e que qualquer migração ou rebalanceamento de dados necessário seja tratado adequadamente para evitar interrupções. 
+ Certifique-se de fazer backup de seus dados no Amazon S3 ou em um FSx sistema de arquivos do Lustre antes de invocar a API em um grupo de nós de trabalho. Isso pode ajudar a evitar qualquer possível perda de dados do volume raiz da instância. Para ter mais informações sobre backup, consulte [Use o script de backup fornecido pelo SageMaker HyperPod](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software-backup).
+ Para invocar essa API em um cluster existente, primeiro você deve corrigir o cluster executando a [ UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API. Para ter mais informações sobre a correção de um cluster, consulte [Atualizar o software da SageMaker HyperPod plataforma de um cluster](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software).
+ A medição e o faturamento de instâncias sob demanda serão interrompidos automaticamente depois que você reduzir a escala verticalmente. Para interromper a medição de instâncias reservadas reduzidas, você deve entrar em contato com a equipe de sua AWS conta para obter suporte.
+ Você pode usar a capacidade liberada das instâncias reservadas reduzidas para escalar outro SageMaker HyperPod cluster.

## Reduzir a escala verticalmente em nível de grupo de instâncias
<a name="smcluster-scale-down-or-delete"></a>

A [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)operação permite que você faça alterações na configuração do seu SageMaker HyperPod cluster, como reduzir o número de instâncias de um grupo de instâncias ou remover grupos de instâncias inteiros. Isso pode ser útil quando você deseja ajustar os recursos alocados ao cluster com base em alterações em sua workload, otimizar custos ou alterar o tipo de instância de um grupo de instâncias.

### Reduzir a escala verticalmente de um grupo de instâncias
<a name="smcluster-scale-down-updatecluster"></a>

Use essa abordagem quando você tiver um grupo de instâncias ocioso e for seguro encerrar qualquer uma das instâncias para reduzir a escala verticalmente. Quando você envia uma `UpdateCluster` solicitação para reduzir a escala, escolhe HyperPod aleatoriamente as instâncias para encerramento e reduz a escala até o número especificado de nós para o grupo de instâncias.

**Comportamento de redução com grupos de instâncias flexíveis**  
Para grupos de instâncias que usam `InstanceRequirements` com vários tipos de instância, HyperPod encerra primeiro os tipos de instância de menor prioridade durante a redução. A prioridade é determinada pela ordem dos tipos de instância na `InstanceTypes` lista, onde o primeiro tipo tem a prioridade mais alta. Isso protege instâncias de maior prioridade, que normalmente têm maior desempenho, durante operações de redução de escala.

**nota**  
Quando você reduzir a escala verticalmente do número de instâncias em um grupo de instâncias para 0, todas as instâncias desse grupo serão encerradas. No entanto, o grupo de instâncias em si ainda existirá como parte do SageMaker HyperPod cluster. Você pode aumentar novamente a escala vertical do grupo de instâncias em um momento posterior usando a mesma configuração do grupo de instâncias.   
Ou você pode optar por remover um grupo de instâncias permanentemente. Para obter mais informações, consulte [Excluir grupos de instâncias](#smcluster-remove-instancegroup).

**Como reduzir a escala verticalmente com `UpdateCluster`**

1. Siga as etapas descritas em [Atualizando a configuração do SageMaker HyperPod cluster](sagemaker-hyperpod-eks-operate-cli-command-update-cluster.md). Ao chegar à etapa **1.d**, na qual você especifica o **InstanceCount**campo, insira um número menor que o número atual de instâncias para reduzir o cluster.

1. Execute o AWS CLI comando [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) para enviar sua solicitação.

Veja a seguir um exemplo de um objeto JSON `UpdateCluster`. Considere o caso em que seu grupo de instâncias tem duas instâncias em execução no momento. Se você definir o **InstanceCount**campo como 1, conforme mostrado no exemplo, selecionará HyperPod aleatoriamente uma das instâncias e a encerrará.

```
{
  "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"
}
```

### Excluir grupos de instâncias
<a name="smcluster-remove-instancegroup"></a>

Você pode usar a [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)operação para remover grupos de instâncias inteiros do seu SageMaker HyperPod cluster quando eles não forem mais necessários. Isso vai além da simples redução da escala vertical, permitindo que você elimine completamente grupos de instâncias específicos da configuração do cluster. 

**nota**  
Ao remover um grupo de instâncias:  
Todas as instâncias do grupo em questão são encerradas.
Toda a configuração do grupo é excluída do cluster.
Todas as workloads em execução nesse grupo de instâncias são interrompidas.

**Como excluir grupos de instâncias com `UpdateCluster`**

1. Ao seguir as etapas descritas abaixo em [Atualizando a configuração do SageMaker HyperPod cluster](sagemaker-hyperpod-eks-operate-cli-command-update-cluster.md):

   1. Defina o parâmetro opcional `InstanceGroupsToDelete` em seu `UpdateCluster` JSON e transfira a lista separada por vírgula dos nomes dos grupos de instâncias que você deseja excluir.

   1.  Ao especificar a lista `InstanceGroups`, verifique se as especificações dos grupos de instâncias que você está removendo não estão mais listadas na lista `InstanceGroups`.

1. Execute o AWS CLI comando [update-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/update-cluster.html) para enviar sua solicitação.

**Importante**  
Seu SageMaker HyperPod cluster deve sempre manter pelo menos um grupo de instâncias.
Garanta que todos os dados essenciais sejam copiados antes da remoção.
O processo de remoção não pode ser desfeito.

Veja a seguir um exemplo de um objeto JSON `UpdateCluster`. Considere o caso em que um cluster tem três grupos de instâncias no momento, um grupo *training*, um *prototype-training* e um *inference-serving*. Você deseja excluir o grupo *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"
}
```

## Reduzir a escala verticalmente em nível de instância
<a name="smcluster-scale-down-batchdelete"></a>

A `BatchDeleteClusterNodes` operação permite reduzir um SageMaker HyperPod cluster especificando os nós individuais que você deseja encerrar. `BatchDeleteClusterNodes`fornece um controle mais granular para remoção direcionada de nós e otimização de clusters. Por exemplo, você pode usar `BatchDeleteClusterNodes` para excluir nós específicos em caso de manutenção, atualizações contínuas ou rebalanceamento geográfico de recursos.

**Solicitação e reposta da API**

Quando você envia uma `BatchDeleteClusterNodes` solicitação, SageMaker HyperPod exclui os nós de acordo com sua instância IDs. A API aceita uma solicitação com o nome do cluster e uma lista de nós IDs a serem excluídos. 

A resposta inclui duas seções: 
+  `Failed`: uma lista de erros do tipo `[ BatchDeleteClusterNodesError ](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_BatchDeleteClusterNodesError.html)` (um por ID de instância).
+  `Successful`: a lista de instâncias IDs foi encerrada com sucesso. 

**Validação e tratamento de erros**

A API executa várias validações, como:
+ Verificação do formato de ID do nó (o prefixo `i-` e a estrutura de ID de instância do Amazon EC2). 
+ Verificando o tamanho da lista de nós, com um limite de 99 ou menos nós IDs em uma única `BatchDeleteClusterNodes` solicitação.
+ Garantir que um SageMaker HyperPod cluster válido com o nome do cluster de entrada esteja presente e que nenhuma operação em nível de cluster (atualização, atualização do sistema, correção ou exclusão) esteja em andamento.
+ Tratamento de casos em que instâncias não são encontradas, têm status inválido ou estão em uso.

**Códigos de resposta da API**
+  A API exibe um código de status `200` para solicitações bem-sucedidas (p. ex., todos os nós de entrada tiveram êxito na validação) ou parcialmente bem-sucedidas (p. ex., alguns nós de entrada não passam na validação). 
+  Se todas essas validações falharem (p. ex., todos os nós de entrada não passarem na validação), a API exibirá uma resposta `400` de solicitação inválida com as mensagens de erro e os códigos de erro apropriados. 

**Exemplo**

Veja abaixo um exemplo de como **reduzir a escala verticalmente de um cluster em nível da instância** usando a AWS CLI:

```
aws sagemaker batch-delete-cluster-nodes --cluster-name "cluster-name" --node-ids '["i-111112222233333", "i-111112222233333"]'
```

# Excluindo um cluster SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-cli-command-delete-cluster"></a>

Execute [delete-cluster](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/delete-cluster.html) para excluir um cluster. Você pode especificar o nome ou o ARN do cluster.

```
aws sagemaker delete-cluster --cluster-name your-hyperpod-cluster
```

Essa API limpa apenas os SageMaker HyperPod recursos e não exclui nenhum recurso do cluster EKS associado. Isso inclui o cluster Amazon EKS, as identidades do EKS Pod, os FSx volumes da Amazon e os complementos do EKS. Isso também inclui a configuração inicial que você adicionou ao seu cluster do EKS. Se você quiser limpar todos os atributos, certifique-se de limpar também os atributos do EKS separadamente. 

Certifique-se de excluir primeiro os SageMaker HyperPod recursos, seguidos pelos recursos do EKS. Executar a exclusão na ordem inversa pode resultar em atributos remanescentes.

**Importante**  
Quando essa API é chamada, SageMaker HyperPod não drena nem redistribui os trabalhos (pods) em execução nos nós. Certifique-se de verificar se há algum trabalho em execução nos nós antes de chamar essa API.

# HyperPod ponto de verificação hierárquico gerenciado
<a name="managed-tier-checkpointing"></a>

Esta seção explica como funciona o checkpoint hierárquico gerenciado e os benefícios que ele oferece para o treinamento de modelos em grande escala.

O ponto de verificação hierárquico SageMaker HyperPod gerenciado pela Amazon ajuda você a treinar modelos generativos de IA em grande escala com mais eficiência. Ele usa vários níveis de armazenamento, inclusive a memória da CPU do cluster. Essa abordagem reduz o tempo de recuperação e minimiza a perda no andamento do treinamento. Ela também usa recursos de memória subutilizados na infraestrutura de treinamento.

O ponto de verificação gerenciado em camadas permite salvar pontos de verificação com uma frequência mais alta na memória. Ele os mantém periodicamente em um armazenamento durável. Isso preserva o desempenho e a confiabilidade durante o processo de treinamento.

Este guia aborda como instalar, configurar e usar pontos de verificação gerenciados em camadas com PyTorch estruturas em clusters do Amazon EKS. HyperPod 

## Como funciona o ponto de verificação hierárquico gerenciado
<a name="managed-tier-checkpointing-works"></a>

O ponto de verificação gerenciado em camadas usa uma abordagem de armazenamento em vários níveis. A memória da CPU serve como uma camada principal para armazenar pontos de verificação do modelo. Os níveis secundários incluem opções de armazenamento persistente, como o Amazon S3.

Quando você salva um ponto de verificação, o sistema o armazena no espaço de memória alocado nos nós do cluster. Ele replica automaticamente os dados em nós de computação adjacentes para aumentar a confiabilidade. Essa estratégia de replicação oferece proteção contra falhas de um ou vários nós, ao mesmo tempo em que fornece acesso rápido às operações de recuperação.

O sistema também salva periodicamente os pontos de verificação no armazenamento persistente de acordo com sua configuração. Isso garante a durabilidade a longo prazo do andamento do treinamento.

Os principais componentes incluem:
+ **Sistema de gerenciamento de memória**: um daemon de gerenciamento de memória que fornece memória desagregada como um serviço para armazenamento de pontos de verificação.
+ **HyperPod Biblioteca Python: faz** interface com o armazenamento desagregado APIs e fornece utilitários para salvar, carregar e gerenciar pontos de verificação em vários níveis
+ **Replicação de pontos de verificação**: replica automaticamente os pontos de verificação em vários nós para tolerância a falhas

O sistema se integra perfeitamente aos ciclos de PyTorch treinamento por meio de chamadas de API simples. Alterações mínimas são necessárias no código existente.

## Benefícios
<a name="managed-tier-checkpointing-benefits"></a>

O ponto de verificação gerenciado em camadas oferece várias vantagens para o treinamento de modelos em grande escala:
+ **Usabilidade aprimorada**: as operações de salvamento, replicação, persistência e recuperação do ponto de verificação são gerenciadas.
+ **Operações de ponto de verificação mais rápidas**: o armazenamento baseado em memória oferece tempos de salvamento e carregamento mais rápidos em comparação com o ponto de verificação baseado em disco, o que agiliza a recuperação.
+ **Tolerância a falhas**: a replicação automática de pontos de verificação entre nós oferece proteção contra falhas nos nós de hardware.
+ **Alterações mínimas no código**: devido à facilidade de integração da API, apenas pequenas modificações são necessárias nos scripts de treinamento existentes.
+ **Melhor throughput de treinamento**: a redução da sobrecarga do ponto de verificação significa mais tempo dedicado ao treinamento em si.

**Topics**
+ [Como funciona o ponto de verificação hierárquico gerenciado](#managed-tier-checkpointing-works)
+ [Benefícios](#managed-tier-checkpointing-benefits)
+ [Configurar pontos de verificação gerenciados em camadas](managed-tier-checkpointing-setup.md)
+ [Removendo o ponto de verificação hierárquico gerenciado](managed-tier-checkpointing-remove.md)
+ [Considerações de segurança para pontos de verificação gerenciados em camadas](managed-tier-security-considerations.md)

# Configurar pontos de verificação gerenciados em camadas
<a name="managed-tier-checkpointing-setup"></a>

Esta seção contém o processo de configuração do ponto de verificação hierárquico gerenciado para a Amazon. SageMaker HyperPod Você aprenderá a habilitar o recurso no cluster e implementar pontos de verificação no código de treinamento.

**Topics**
+ [Pré-requisitos](#managed-tier-checkpointing-setup-prerequisites)
+ [Etapa 1: habilitar o ponto de verificação gerenciado em camadas para seu cluster](#managed-tier-checkpointing-setup-step-enable-for-cluster)
+ [Etapa 2: instalar a biblioteca do Python na imagem de treinamento](#managed-tier-checkpointing-setup-step-install-library)
+ [Etapa 3: salve os pontos de verificação em seu ciclo de treinamento](#managed-tier-checkpointing-setup-step-save-checkpoint-in-loop)
+ [Etapa 4: pontos de verificação de carga para recuperação](#managed-tier-checkpointing-setup-step-load-checkpoint)
+ [Valide suas operações gerenciadas de ponto de verificação hierárquico](#managed-tier-checkpointing-setup-validation)

## Pré-requisitos
<a name="managed-tier-checkpointing-setup-prerequisites"></a>

Antes de configurar o ponto de verificação hierárquico gerenciado, verifique se você tem:
+ Um HyperPod cluster Amazon EKS com memória de CPU suficiente disponível para alocação de pontos de verificação
+ PyTorch cargas de trabalho de treinamento e tarefas de DCP (ambas são suportadas)
+ Permissões do IAM apropriadas para gerenciamento de clusters, como:
  + A Amazon CloudWatch e o Amazon S3 escrevem permissões para o pod de treinamento ler/gravar pontos de verificação e enviar métricas
  + Essas permissões podem ser definidas por meio da [configuração do OIDC do EKS](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html).

## Etapa 1: habilitar o ponto de verificação gerenciado em camadas para seu cluster
<a name="managed-tier-checkpointing-setup-step-enable-for-cluster"></a>

**Importante**  
Você deve optar por usar o ponto de verificação hierárquico gerenciado.

Ative o checkpoint gerenciado em camadas por meio do HyperPod APIs ao criar ou atualizar seu cluster. O serviço instala automaticamente o sistema de gerenciamento de memória quando você especifica o parâmetro `TieredStorageConfig`.

Para novos clusters, você pode usar [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"
    }'
```

O parâmetro `InstanceMemoryAllocationPercentage` especifica a `percentage` (int) da memória do cluster a ser alocada ao ponto de verificação. O intervalo é 20-100.

## Etapa 2: instalar a biblioteca do Python na imagem de treinamento
<a name="managed-tier-checkpointing-setup-step-install-library"></a>

Instale a [biblioteca SageMaker de pontos de verificação da Amazon](https://pypi.org/project/amzn-sagemaker-checkpointing/) e suas dependências em sua imagem de treinamento adicionando-a ao seu Dockerfile:

```
# Add this line to your training image Dockerfile
RUN pip install amzn-sagemaker-checkpointing s3torchconnector tenacity torch boto3 s3torchconnector
```

## Etapa 3: salve os pontos de verificação em seu ciclo de treinamento
<a name="managed-tier-checkpointing-setup-step-save-checkpoint-in-loop"></a>

Em seu ciclo de treinamento, você pode salvar pontos de verificação de forma assíncrona usando o DCP. PyTorch Veja a seguir um exemplo de como fazer isso.

```
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
```

## Etapa 4: pontos de verificação de carga para recuperação
<a name="managed-tier-checkpointing-setup-step-load-checkpoint"></a>

Veja a seguir um exemplo de carregamento de um ponto de verificação.

```
# 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
```

## Valide suas operações gerenciadas de ponto de verificação hierárquico
<a name="managed-tier-checkpointing-setup-validation"></a>

Você pode validar suas operações gerenciadas de ponto de verificação em camadas com registros.

**Registro em log personalizado (opcional)**

Você pode integrar logs de ponto de verificação a outros logs transferindo um agente de log personalizado para a biblioteca. Por exemplo, é possível adicionar um agente de log personalizado ao código de treinamento para que todos os logs da biblioteca também sejam coletados no agente de log de treinamento.

**Registro em log aprimorado do serviço (opcional)**

Para melhorar a depuração e a visibilidade do serviço, é possível montar o caminho de log do ponto de verificação `/var/log/sagemaker_checkpointing` dentro do pod até um caminho `/var/logs/sagemaker_checkpointing` no host. Isso garante que somente os logs específicos da biblioteca sejam coletados separadamente. Isso oferece visibilidade aprimorada à equipe do serviço para depuração e suporte.

# Removendo o ponto de verificação hierárquico gerenciado
<a name="managed-tier-checkpointing-remove"></a>

Esta seção explica como desativar o ponto de verificação gerenciado em camadas quando você não precisar mais dele.

Para desativar o ponto de verificação gerenciado em camadas, use o [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 para atualizar sua configuração de cluster:

```
aws sagemaker update-cluster \
    --cluster-name cluster-name \
    --tiered-storage-config '{ "Mode": "Disable" }'
```

Isso remove o daemon de gerenciamento de memória do cluster. O daemon é implementado como um Kubernetes padrão DaemonSet e segue o gerenciamento padrão do ciclo de vida do Kubernetes.

# Considerações de segurança para pontos de verificação gerenciados em camadas
<a name="managed-tier-security-considerations"></a>

Esta seção aborda importantes considerações de segurança ao usar pontos de verificação gerenciados em camadas. Ela aborda o uso do pickle do Python, a criptografia do Amazon S3 e a segurança de endpoints de rede.

**Uso de pickle do Python**

O ponto de verificação hierárquico gerenciado usa o módulo pickle do Python para desserializar os dados do ponto de verificação armazenados no Amazon S3. Essa implementação tem implicações de segurança importantes:
+ **Limite de confiança estendido**: ao usar pontos de verificação gerenciados em camadas com o Amazon S3, o bucket do Amazon S3 se torna parte do limite de confiança do seu cluster.
+ **Risco de execução de código**: o módulo pickle do Python pode executar código arbitrário durante a desserialização. Se um usuário não autorizado obtiver acesso de gravação ao seu bucket Amazon S3 de ponto de verificação, ele poderá criar dados de pickle maliciosos que são executados quando carregados por um ponto de verificação hierárquico gerenciado.

**Práticas recomendadas para armazenamento no Amazon S3**

Ao usar pontos de verificação gerenciados em camadas com o armazenamento Amazon S3:
+ **Restrinja o acesso ao bucket do Amazon S3**: garanta que somente usuários autorizados e perfis associados ao seu cluster de treinamento tenham acesso ao bucket do Amazon S3 usado para pontos de verificação.
+ **Implemente políticas de bucket**: configure políticas de bucket apropriadas para evitar acessos ou modificações não autorizados.
+ **Valide os padrões de acesso**: implemente o registro em log para validar os padrões de acesso aos buckets Amazon S3 do seu ponto de verificação.
+ **Valide os nomes de bucket**: tenha cuidado ao selecionar o nome dos buckets para evitar possíveis sequestros de bucket.

**Endpoints de rede**

O ponto de verificação gerenciado em camadas habilita endpoints de rede em cada um dos seus nós de computação nas seguintes portas: 9200/TCP, 9209/UDP, 9210/UDP, 9219/UDP, 9220/UDP, 9229/UDP, 9230/UDP, 9239/UDP, 9240/UDP. Essas portas são necessárias para que o serviço de ponto de verificação funcione e mantenha a sincronização de dados.

Por padrão, SageMaker a configuração de rede restringe o acesso a esses endpoints para fins de segurança. Recomendamos que você mantenha essas restrições padrão.

Ao definir suas configurações de rede para seus nós e VPC, AWS siga as melhores práticas VPCs para grupos de segurança e. ACLs Para saber mais, consulte:
+ [ SageMaker HyperPod Pré-requisitos da Amazon](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-prerequisites.html#sagemaker-hyperpod-prerequisites-optional-vpcCluster)
+ [Melhores práticas de segurança para a VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-best-practices.html)

# SageMaker HyperPod governança de tarefas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance"></a>

SageMaker HyperPod a governança de tarefas é um sistema de gerenciamento robusto projetado para simplificar a alocação de recursos e garantir a utilização eficiente dos recursos computacionais entre equipes e projetos para seus clusters do Amazon EKS. Isso permite que os administradores definam:
+ Níveis de prioridade para diferentes tarefas
+ Alocação de recursos computacionais para cada equipe
+ Como as equipes compartilham e utilizam recursos ociosos
+ Se uma equipe pode interromper suas próprias tarefas

HyperPod a governança de tarefas também fornece a observabilidade do cluster Amazon EKS, oferecendo visibilidade em tempo real da capacidade do cluster. Isso inclui a disponibilidade e o uso de computação, a alocação e a utilização por equipe, além de informações sobre o tempo de execução e de espera das tarefas, permitindo uma tomada de decisão informada e um gerenciamento proativo dos recursos. 

As seções a seguir abordam como configurar, entender os principais conceitos e usar a governança de HyperPod tarefas para seus clusters do Amazon EKS.

**Topics**
+ [Configuração para governança de SageMaker HyperPod tarefas](sagemaker-hyperpod-eks-operate-console-ui-governance-setup.md)
+ [Painel](sagemaker-hyperpod-eks-operate-console-ui-governance-metrics.md)
+ [Tarefas](sagemaker-hyperpod-eks-operate-console-ui-governance-tasks.md)
+ [Políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md)
+ [Exemplos de AWS CLI comandos de governança de HyperPod tarefas](sagemaker-hyperpod-eks-operate-console-ui-governance-cli.md)
+ [Solução de problemas](sagemaker-hyperpod-eks-operate-console-ui-governance-troubleshoot.md)
+ [Documento de atribuição para governança de tarefas da Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-operate-console-ui-governance-attributions.md)

# Configuração para governança de SageMaker HyperPod tarefas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-setup"></a>

A seção a seguir fornece informações sobre como configurar o Amazon CloudWatch Observability EKS e os complementos de governança de SageMaker HyperPod tarefas.

Certifique-se de ter a política de permissão mínima para administradores de HyperPod cluster com o Amazon EKS, em[Usuários do IAM para administração de cluster](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin). Isso inclui permissões para executar o SageMaker HyperPod núcleo APIs e gerenciar SageMaker HyperPod clusters dentro do seu Conta da AWS, executando as tarefas em[Gerenciamento de SageMaker HyperPod clusters orquestrados pelo Amazon EKS](sagemaker-hyperpod-eks-operate.md). 

**Topics**
+ [Configuração do painel](sagemaker-hyperpod-eks-operate-console-ui-governance-setup-dashboard.md)
+ [Configuração da governança de tarefas](sagemaker-hyperpod-eks-operate-console-ui-governance-setup-task-governance.md)

# Configuração do painel
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-setup-dashboard"></a>

Use as informações a seguir para configurar o complemento Amazon SageMaker HyperPod Amazon CloudWatch Observability EKS. Com isso, você tem acesso a um painel visual detalhado que oferece uma visão das métricas de hardware, alocação de equipe e tarefas do cluster do EKS.

Se estiver encontrando problemas na configuração, consulte [Solução de problemas](sagemaker-hyperpod-eks-operate-console-ui-governance-troubleshoot.md) para ver soluções de problemas conhecidas.

**Topics**
+ [HyperPod Pré-requisitos do complemento Amazon CloudWatch Observability EKS](#hp-eks-dashboard-prerequisites)
+ [HyperPod Configuração do complemento Amazon CloudWatch Observability EKS](#hp-eks-dashboard-setup)

## HyperPod Pré-requisitos do complemento Amazon CloudWatch Observability EKS
<a name="hp-eks-dashboard-prerequisites"></a>

A seção a seguir apresenta os pré-requisitos que devem ser atendidos antes de instalar o complemento de observabilidade do Amazon EKS.
+ Certifique-se de ter a política de permissão mínima para administradores de HyperPod cluster, em[Usuários do IAM para administração de cluster](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin).
+ Anexe a política do IAM `CloudWatchAgentServerPolicy` aos nós de processamento. Para fazer isso, insira o comando a seguir. Substitua `my-worker-node-role` pelo perfil do IAM usado pelos nós de processamento do Kubernetes.

  ```
  aws iam attach-role-policy \
  --role-name my-worker-node-role \
  --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
  ```

## HyperPod Configuração do complemento Amazon CloudWatch Observability EKS
<a name="hp-eks-dashboard-setup"></a>

Use as seguintes opções para configurar o complemento Amazon SageMaker HyperPod Amazon CloudWatch Observability EKS.

------
#### [ Setup using the SageMaker AI console ]

As permissões a seguir são necessárias para configurar e visualizar o painel de controle de HyperPod tarefas. Esta seção expande as permissões listadas em [Usuários do IAM para administração de cluster](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin). 

Para gerenciar a governança de tarefas, use o exemplo de política:

------
#### [ 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": "*"
        }
    ]
}
```

------

Para conceder permissões para gerenciar o Amazon CloudWatch Observability (Amazon EKS) e visualizar o painel do HyperPod cluster por meio do console de SageMaker IA, use o exemplo de política abaixo:

------
#### [ 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": "*"
        }
    ]
}
```

------

Navegue até a guia **Painel** no SageMaker HyperPod console para instalar o Amazon CloudWatch Observability EKS. Para garantir que as métricas relacionadas à governança de tarefas sejam incluídas no **Painel**, marque a caixa de seleção de métricas do Kueue. Ativar as métricas do Kueue ativa os custos CloudWatch **das métricas**, após o limite do nível gratuito ser atingido. Para obter mais informações, consulte **Métricas** nos [ CloudWatchpreços da Amazon](https://aws.amazon.com/cloudwatch/pricing/).

------
#### [ Setup using the EKS AWS CLI ]

Use o seguinte AWS CLI comando EKS para instalar o complemento:

```
aws eks create-addon --cluster-name cluster-name 
--addon-name amazon-cloudwatch-observability 
--configuration-values "configuration json"
```

Abaixo é apresentado um exemplo de JSON dos valores de configuração:

```
{
    "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. Navegue até o [console do EKS](https://console.aws.amazon.com/eks/home#/clusters).

1. Escolha seu cluster.

1. Escolha **Complementos**.

1. Encontre o complemento **Amazon CloudWatch Observability** e instale. Instale a versão >= 2.4.0 do complemento. 

1. Inclua os seguintes valores de configuração JSON:

   ```
   {
       "agent": {
           "config": {
               "logs": {
                   "metrics_collected": {
                       "kubernetes": {
                           "kueue_container_insights": true,
                           "enhanced_container_insights": true
                       },
                       "application_signals": { }
                   },
               },
               "traces": {
                   "traces_collected": {
                       "application_signals": { }
                   }
               }
           },
       },
   }
   ```

------

Depois que o complemento EKS Observability for instalado com sucesso, você poderá visualizar as métricas do cluster EKS na guia **Painel** do HyperPod console.

# Configuração da governança de tarefas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-setup-task-governance"></a>

Esta seção inclui informações sobre como configurar o complemento EKS de governança de SageMaker HyperPod tarefas da Amazon. Isso inclui a concessão de permissões que possibilitam definir a priorização de tarefas, a alocação de computação a equipes, como a computação ociosa é compartilhada e a preempção de tarefas para equipes.

Se estiver encontrando problemas na configuração, consulte [Solução de problemas](sagemaker-hyperpod-eks-operate-console-ui-governance-troubleshoot.md) para ver soluções de problemas conhecidas.

**Topics**
+ [Configurações do Kueue](#hp-eks-task-governance-kueue-settings)
+ [HyperPod Pré-requisitos de governança de tarefas](#hp-eks-task-governance-prerequisites)
+ [HyperPod configuração de governança de tarefas](#hp-eks-task-governance-setup)

## Configurações do Kueue
<a name="hp-eks-task-governance-kueue-settings"></a>

HyperPod O complemento EKS de governança de tarefas instala o [Kueue para seus clusters EKS](https://github.com/kubernetes-sigs/kueue/tree/main/apis/kueue). HyperPod O Kueue é um sistema nativo do Kubernetes que gerencia cotas e de que forma os trabalhos as consomem. 


| Versão complementar de governança de HyperPod tarefas do EKS | Versão do Kueue que é instalada como parte do complemento | 
| --- | --- | 
|  v1.1.3  |  v0.12.0  | 

**nota**  
O Kueue v.012.0 e superior não são incluídos kueue-rbac-proxy como parte da instalação. Versões anteriores podem ter sido kueue-rbac-proxy instaladas. Por exemplo, se você estiver usando o Kueue v0.8.1, talvez tenha o v0.18.1. kueue-rbac-proxy

HyperPod a governança de tarefas aproveita o Kueue para enfileiramento, agendamento e gerenciamento de cotas de trabalhos nativos do Kubernetes e é instalada com o complemento EKS de governança de tarefas. HyperPod Quando instalado, HyperPod cria e modifica recursos do Kubernetes SageMaker gerenciados por IA`KueueManagerConfig`, como,,, e. `ClusterQueues` `LocalQueues` `WorkloadPriorityClasses` `ResourceFlavors` `ValidatingAdmissionPolicies` Embora os administradores do Kubernetes tenham a flexibilidade de modificar o estado desses recursos, é possível que qualquer alteração feita em um recurso SageMaker gerenciado por IA seja atualizada e substituída pelo serviço.

As informações a seguir descrevem as configurações utilizadas pelo complemento de governança de HyperPod tarefas para configurar o Kueue.

```
  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: []
```

Para ter mais informações sobre cada entrada da configuração, consulte [Configuration](https://kueue.sigs.k8s.io/docs/reference/kueue-config.v1beta1/#Configuration) na documentação do Kueue.

## HyperPod Pré-requisitos de governança de tarefas
<a name="hp-eks-task-governance-prerequisites"></a>
+ Certifique-se de ter a política de permissão mínima para administradores de HyperPod cluster, em[Usuários do IAM para administração de cluster](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin). Isso inclui permissões para executar o SageMaker HyperPod núcleo APIs, gerenciar SageMaker HyperPod clusters dentro do seu Conta da AWS e realizar as tarefas em[Gerenciamento de SageMaker HyperPod clusters orquestrados pelo Amazon EKS](sagemaker-hyperpod-eks-operate.md). 
+ Você precisará ter uma versão do Kubernetes >= 1.30. Para obter instruções, consulte [Atualizar um cluster existente para a nova versão do Kubernetes](https://docs.aws.amazon.com/eks/latest/userguide/update-cluster.html).
+ Se você já tem o Kueue instalado em seus clusters, desinstale-o antes de instalar o complemento do EKS.
+ Um HyperPod nó já deve existir no cluster EKS antes de instalar o complemento de governança de HyperPod tarefas. 

## HyperPod configuração de governança de tarefas
<a name="hp-eks-task-governance-setup"></a>

Veja a seguir informações sobre como configurar a governança de HyperPod tarefas.

------
#### [ Setup using the SageMaker AI console ]

Veja a seguir informações sobre como configurar a governança de HyperPod tarefas usando o SageMaker HyperPod console.

Você já tem todas as permissões a seguir anexadas se já tiver concedido permissões para gerenciar o Amazon CloudWatch Observability EKS e visualizar o painel do HyperPod cluster por meio do console de SageMaker IA no[HyperPod Configuração do complemento Amazon CloudWatch Observability EKS](sagemaker-hyperpod-eks-operate-console-ui-governance-setup-dashboard.md#hp-eks-dashboard-setup). Se você não configurou isso, use o exemplo de política abaixo para conceder permissões para gerenciar o complemento de governança de HyperPod tarefas e visualizar o painel do HyperPod cluster por meio do console de SageMaker IA.

------
#### [ 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": "*"
        }
    ]
}
```

------

Navegue até a guia **Painel** no SageMaker HyperPod console para instalar o complemento de governança de SageMaker HyperPod tarefas da Amazon. 

------
#### [ Setup using the Amazon EKS AWS CLI ]

Use o 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 de exemplo para configurar a governança de HyperPod tarefas, a API Amazon EKS e a interface do console do Amazon EKS usando AWS CLI:

```
aws eks create-addon --region region --cluster-name cluster-name --addon-name amazon-sagemaker-hyperpod-taskgovernance
```

------

Você pode ver a guia **Políticas** no console de HyperPod SageMaker IA se a instalação for bem-sucedida. Você também pode usar o seguinte exemplo de 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 para verificar o status. 

```
aws eks describe-addon --region region --cluster-name cluster-name --addon-name amazon-sagemaker-hyperpod-taskgovernance
```

# Painel
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-metrics"></a>

A governança de SageMaker HyperPod tarefas da Amazon fornece uma visão abrangente do painel das métricas de utilização do cluster Amazon EKS, incluindo métricas de hardware, equipe e tarefas. O seguinte fornece informações sobre o painel do seu cluster HyperPod EKS.

O painel oferece uma visualização abrangente das métricas de utilização de clusters, como métricas de hardware, equipe e tarefas. Você precisará instalar o complemento do EKS para visualizar o painel. Para obter mais informações, consulte [Configuração do painel](sagemaker-hyperpod-eks-operate-console-ui-governance-setup-dashboard.md).

No [console do Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/), em **HyperPod Clusters**, você pode navegar até o HyperPod console e visualizar sua lista de HyperPod clusters na sua região. Escolha seu cluster e navegue até a guia **Painel**. O painel contém as métricas a seguir. Você pode baixar os dados de uma seção escolhendo a **exportação** correspondente.

**Utilização**

Fornece a integridade do cluster EKS point-in-time e métricas baseadas em tendências para recursos computacionais essenciais. Por padrão, **todos os grupos de instâncias** são exibidos. Use o menu suspenso para adicionar grupos de instâncias. As métricas incluídas nesta seção são:
+ Número de instâncias de recuperação totais, em execução e pendentes. O número de instâncias de recuperação pendentes refere-se ao número de instâncias que precisam de atenção para recuperação.
+ GPUs, memória GPU, CPUs memória v e v. CPUs
+ Utilização da GPU, da memória da GPU, da vCPU e da memória da vCPU.
+ Um grafo interativo da utilização da GPU e da vCPU. 

**Equipes**

Fornece informações sobre o gerenciamento de recursos específicos da equipe. Isso inclui:
+ alocação de instâncias e GPU;
+ taxas de utilização da GPU;
+ estatísticas de GPU emprestada;
+ status da tarefa (em execução ou pendente).
+ Uma visualização em gráfico de barras da utilização da GPU em comparação com a alocação de computação entre as equipes.
+ Informações detalhadas da equipe relacionadas à GPU e a vCPUs. Por padrão, as informações exibidas incluem **todas as equipes**. Você pode filtrar por equipe e instância escolhendo os menus suspensos. No gráfico interativo, você pode filtrar por horário.

**Tarefas**

**nota**  
Para visualizar suas tarefas do cluster HyperPod EKS no painel:  
Configure o Kubernetes Role-Based Access Control (RBAC) para usuários de cientistas de dados no HyperPod namespace designado para autorizar a execução de tarefas em clusters orquestrados pelo Amazon EKS. Os namespaces seguem o formato `hyperpod-ns-team-name`. Para estabelecer permissões de RBAC, consulte as [instruções sobre a criação de perfis de equipe](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#5-create-team-role).
Seu trabalho deve ser enviado com o namespace apropriado e os rótulos de classe prioritária. Para ver um exemplo abrangente, consulte [Envie um trabalho para uma fila e um SageMaker namespace gerenciados por IA](sagemaker-hyperpod-eks-operate-console-ui-governance-cli.md#hp-eks-cli-start-job).

Fornece informações sobre métricas relacionadas a tarefas. Isso inclui o número de tarefas em execução, pendentes e antecipadas, além de estatísticas de tempo de execução e espera. Por padrão, as informações exibidas incluem **todas as equipes**. Você pode filtrar por equipe escolhendo o menu suspenso. No gráfico interativo, você pode filtrar por horário.

# Tarefas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-tasks"></a>

Veja a seguir informações sobre as tarefas de cluster do Amazon SageMaker HyperPod EKS. Tarefas são operações ou trabalhos enviados ao cluster. Podem ser operações de machine learning, como treinamento, execução de experimentos ou inferência. A lista visível de detalhes da tarefa inclui status, tempo de execução e a quantidade de computação que está sendo usada por tarefa. 

No [console do Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/), em **HyperPod Clusters**, você pode navegar até o HyperPod console e visualizar sua lista de HyperPod clusters na sua região. Escolha seu cluster e navegue até a guia **Tarefas**.

Para que a guia **Tarefas** possa ser visualizada por qualquer pessoa além do administrador, o administrador precisa [adicionar uma entrada de acesso ao cluster do EKS para o perfil do IAM](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html). 

**nota**  
Para visualizar suas tarefas do cluster HyperPod EKS no painel:  
Configure o Kubernetes Role-Based Access Control (RBAC) para usuários de cientistas de dados no HyperPod namespace designado para autorizar a execução de tarefas em clusters orquestrados pelo Amazon EKS. Os namespaces seguem o formato `hyperpod-ns-team-name`. Para estabelecer permissões de RBAC, consulte as [instruções sobre a criação de perfis de equipe](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#5-create-team-role).
Seu trabalho deve ser enviado com o namespace apropriado e os rótulos de classe prioritária. Para ver um exemplo abrangente, consulte [Envie um trabalho para uma fila e um SageMaker namespace gerenciados por IA](sagemaker-hyperpod-eks-operate-console-ui-governance-cli.md#hp-eks-cli-start-job).

Para clusters EKS, as tarefas kubeflow (PyTorch, MPI, TensorFlow) são mostradas. Por padrão, PyTorch as tarefas são mostradas. Você pode filtrar por PyTorch TensorFlow tarefas MPI escolhendo o menu suspenso ou usando o campo de pesquisa. As informações mostradas para cada tarefa incluem nome, status, namespace, classe prioritária e horário de criação da tarefa. 

# Usando o agendamento com reconhecimento de topologia na governança de tarefas da Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-tasks-scheduling"></a>

O agendamento com reconhecimento de topologia na governança de tarefas SageMaker HyperPod da Amazon otimiza a eficiência do treinamento de cargas de trabalho distribuídas de aprendizado de máquina ao colocar pods com base na topologia de rede física de suas instâncias do Amazon EC2. Ao considerar a estrutura hierárquica da AWS infraestrutura, incluindo zonas de disponibilidade, blocos de rede e racks físicos, o agendamento com reconhecimento de topologia garante que os pods que exigem comunicação frequente sejam programados em estreita proximidade para minimizar a latência da rede. Esse posicionamento inteligente é particularmente benéfico para trabalhos de treinamento de aprendizado de máquina em grande escala que envolvem pod-to-pod comunicação intensiva, resultando em tempos de treinamento reduzidos e utilização mais eficiente de recursos em todo o cluster.

**nota**  
Para usar o agendamento com reconhecimento de topologia, certifique-se de que sua versão da governança de HyperPod tarefas seja v1.2.2-eksbuild.1 ou superior.

O agendamento com reconhecimento de topologia pode ser usado nos seguintes tipos de instância:
+ 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

O agendamento com reconhecimento de topologia se integra aos seus HyperPod fluxos de trabalho existentes, ao mesmo tempo em que fornece preferências de topologia flexíveis por meio dos arquivos kubectl YAML e da CLI. HyperPod HyperPod a governança de tarefas configura automaticamente os nós do cluster com rótulos de topologia e trabalha com políticas de governança de HyperPod tarefas e mecanismos de empréstimo de recursos, garantindo que o agendamento com reconhecimento de topologia não interrompa seus processos operacionais atuais. Com suporte integrado para especificações de topologia preferenciais e obrigatórias, você pode ajustar o posicionamento da workload para atender aos seus requisitos específicos de desempenho, mantendo a flexibilidade de voltar a utilizar o agendamento padrão quando as restrições de topologia não puderem ser satisfeitas.

Ao aproveitar os rótulos com reconhecimento de topologia HyperPod, você pode aprimorar suas cargas de trabalho de aprendizado de máquina por meio do posicionamento inteligente de pods que considera a infraestrutura física da rede. HyperPod a governança de tarefas otimiza automaticamente o agendamento de pods com base na topologia hierárquica do data center, o que se traduz diretamente em latência de rede reduzida e melhor desempenho de treinamento para tarefas de ML distribuídas. Esse reconhecimento de topologia é particularmente valioso para workloads de machine learning em grande escala, pois minimiza os custos indiretos de comunicação ao posicionar estrategicamente os pods relacionados mais próximos na hierarquia da rede. O resultado é latência otimizada da rede de comunicação entre pods, utilização mais eficiente de recursos e melhor desempenho geral para AI/ML aplicativos de computação intensiva, tudo isso obtido sem a necessidade de gerenciar manualmente configurações complexas de topologia de rede.

A seguir estão os rótulos das camadas de rede de topologia disponíveis nas quais a governança de HyperPod tarefas pode programar pods:
+ network-node-layertopology.k8s.aws/ -1
+ network-node-layertopology.k8s.aws/ -2
+ network-node-layertopology.k8s.aws/ -3
+ topology.k8s.aws/ultraserver-id

Para usar o agendamento com reconhecimento de topologia, inclua os seguintes rótulos em seu arquivo YAML:
+ kueue.x-k8s.io/ podset-required-topology - indica que esse trabalho deve ter os pods necessários e que todos os pods nos nós devem ser programados na mesma camada de topologia.
+ kueue.x-k8s.io/ podset-preferred-topology - indica que esse trabalho deve ter os pods, mas que o agendamento de pods na mesma camada de topologia é preferível, mas não obrigatório. HyperPod a governança de tarefas tentará programar os pods em uma camada antes de tentar a próxima camada de topologia.

Se os recursos não compartilharem o mesmo rótulo de topologia, o trabalho será suspenso. O trabalho estará na lista de espera. Quando o Kueue perceber que há recursos suficientes, ela admitirá e executará o trabalho.

O exemplo a seguir demonstra como usar os rótulos em arquivos 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
```

A tabela a seguir explica os novos parâmetros que você pode usar no arquivo kubectl YAML.


| Parâmetro | Description | 
| --- | --- | 
| kueue.x-k8s.io/queue-name | O nome da fila a ser usada para executar o trabalho. O formato desse nome de fila deve ser hyperpod-ns-team-name-localqueue. | 
| kueue.x-k8s.io/priority-class | Permite que você especifique uma prioridade para o agendamento de pods. Essa especificação é opcional. | 
| anotações | Contém a anotação de topologia que você anexa ao trabalho. As topologias disponíveis são kueue.x-k8s.io/ e podset-required-topology kueue.x-k8s.io/. podset-preferred-topology Você pode usar uma anotação ou um nodeSelector, mas não ambos ao mesmo tempo. | 
| nodeSelector | Especifica a camada de rede que representa a camada de posicionamento da instância do Amazon EC2. Use esse campo ou uma anotação, mas não ambos ao mesmo tempo. No seu arquivo YAML, também é possível usar o parâmetro nodeSelector para escolher a camada exata para os pods. Para obter o valor do seu rótulo, use a operação [ DescribeInstanceTopology](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstanceTopology.html)da API. | 

Você também pode usar a HyperPod CLI para executar seu trabalho e usar o agendamento com reconhecimento de topologia. Para obter mais informações sobre a HyperPod CLI, consulte. [SageMaker HyperPod Comandos 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
```

A seguir está um exemplo de arquivo de configuração que você pode usar para executar um PytorchJob com rótulos de topologia. O arquivo é muito semelhante se você quiser executar trabalhos do MPI e TensorFlow. Se você quiser executar esses trabalhos em vez disso, lembre-se de alterar o arquivo de configuração adequadamente, como usar a imagem correta em vez de PyTorchJob. Se você estiver executando um PyTorchJob, poderá atribuir topologias diferentes aos nós mestre e de trabalho. PyTorchJob sempre tem um nó principal, então recomendamos que você use a topologia para dar suporte aos grupos de trabalho.

```
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
```

Para ver as topologias do seu cluster, use a operação da [ DescribeInstanceTopology](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstanceTopology.html)API. Por padrão, as topologias estão ocultas no Console de gerenciamento da AWS e no Amazon SageMaker Studio. Siga estas etapas para vê-las na interface que você está usando.

**SageMaker Studio**

1. No SageMaker Studio, navegue até seu cluster.

1. Na visualização “Tarefas”, escolha o menu de opções na coluna “Nome” e selecione **Gerenciar colunas**.

1. Selecione **Topologia solicitada** e **Restrição de topologia** para adicionar as colunas e ver as informações de topologia na lista de pods do Kubernetes.

**Console de gerenciamento da AWS**

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Em **HyperPod clusters**, escolha **Gerenciamento de clusters**.

1. Escolha a guia **Tarefas** e, em seguida, escolha o ícone de engrenagem.

1. Em “Atributos da instância”, ative **Topologia solicitada** e **Restrição de topologia**.

1. Escolha **Confirmar** para ver as informações de topologia na tabela.

# Usando o agendamento de gangues na governança de SageMaker HyperPod tarefas da Amazon
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-tasks-gang-scheduling"></a>

No treinamento de ML distribuído, um trabalho geralmente exige que vários pods sejam executados simultaneamente em todos os nós com pod-to-pod comunicação. HyperPod a governança de tarefas usa o `waitForPodsReady` recurso do Kueue para implementar o agendamento de gangues. Quando ativada, a carga de trabalho é monitorada pela Kueue até que todos os seus pods estejam prontos, ou seja, programados, executados e aprovados pela sondagem de prontidão opcional. Se nem todos os pods da carga de trabalho estiverem prontos dentro do tempo limite configurado, a carga de trabalho será despejada e colocada novamente na fila.

O agendamento de grupos oferece os seguintes benefícios:
+ **Evita o desperdício de recursos** — a Kueue despeja e coloca a carga de trabalho na fila se todos os pods não ficarem prontos, garantindo que os recursos não sejam retidos indefinidamente pela execução parcial das cargas de trabalho.
+ **Evita impasses** — Impede que os trabalhos retenham recursos parciais e se bloqueiem indefinidamente.
+ **Recuperação automática** — se os pods não estiverem prontos dentro do tempo limite, a carga de trabalho será despejada e colocada novamente na fila com um recuo exponencial configurável, em vez de ficar suspensa indefinidamente.

## Ative o agendamento de gangues
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-tasks-gang-scheduling-activate"></a>

Para ativar o agendamento de grupos, você deve ter um cluster do HyperPod Amazon EKS com o complemento Amazon EKS de governança de tarefas instalado. O status do complemento deve ser `Active` ou`Degraded`.

**nota**  
O agendamento de grupos também pode ser configurado diretamente `kubectl` usando a edição da configuração do Kueue no cluster.

**Ative o agendamento de gangues (console de SageMaker IA)**

1. Abra o [console do Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/) e navegue até seu HyperPod cluster.

1. Escolha a guia **Gerenciamento de políticas**.

1. Na seção **Governança de tarefas**, abra **Ações** e escolha **Configurar agendamento de** grupos.

1. Ative o agendamento de grupos e defina as configurações.

1. Escolha **Salvar**. O controlador Kueue reinicia para aplicar a alteração.

## Configurações de agendamento de grupos
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-tasks-gang-scheduling-settings"></a>

A tabela a seguir descreve as configurações para o agendamento de grupos.


| Configuração | Description | Padrão | 
| --- | --- | --- | 
| timeout | Quanto tempo Kueue espera até que todos os pods fiquem prontos antes de despejar e recolocar a carga de trabalho na fila. | 5 minutos | 
| recoveryTimeout | Quanto tempo o Kueue espera que um pod se recupere após uma falha no nó antes de reenfileirar a carga de trabalho. Defina como 0s para desativar. O padrão é o valor de timeout se não for definido. | 5 minutos | 
| blockAdmission | Quando ativada, as cargas de trabalho são admitidas sequencialmente. Nenhuma nova carga de trabalho é admitida até que todos os pods da atual estejam prontos. Evita impasses em clusters com recursos limitados. | Desativado | 
| requeuingStrategy timestamp | Se o pedido de fila usa Creation (hora de envio original, preserva a posição na fila) ou Eviction (hora do último despejo, despriorizando efetivamente trabalhos que falham repetidamente). | Remoção | 
| requeuingStrategy backoffLimitCount | Máximo de tentativas de fila antes que o Kueue desative permanentemente a carga de trabalho. Deixe em branco para novas tentativas ilimitadas. | Ilimitado | 
| requeuingStrategy backoffBaseSeconds | O tempo base em segundos para o recuo exponencial ao reenfileirar uma carga de trabalho após cada tempo limite consecutivo. O expoente é 2. | 60 segundos | 
| requeuingStrategy backoffMaxSeconds | Limite o atraso exponencial de recuo. Uma vez atingido, Kueue continua fazendo fila nesse intervalo fixo. | 3600s | 

**nota**  
A modificação das configurações de agendamento de grupos reinicia o controlador Kueue, o que pode atrasar temporariamente a admissão do trabalho. Isso se aplica se você estiver ativando, desativando ou atualizando qualquer valor. Os trabalhos em execução não são interrompidos.

**nota**  
O agendamento de gangues abrange todo o cluster. Ela se aplica a todas as cargas de trabalho gerenciadas pelo KUEUE no cluster, não apenas a equipes ou filas específicas.

# Políticas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies"></a>

A governança de SageMaker HyperPod tarefas da Amazon simplifica a forma como os recursos do cluster Amazon EKS são alocados e como as tarefas são priorizadas. Veja a seguir informações sobre as políticas de cluster do HyperPod EKS. Para ter informações sobre como configurar a governança de tarefas, consulte [Configuração da governança de tarefas](sagemaker-hyperpod-eks-operate-console-ui-governance-setup-task-governance.md).

As políticas são divididas em **priorização da computação** e **alocação da computação**. Os conceitos de política abaixo serão organizados no contexto dessas políticas.

A **priorização da computação**, ou política de cluster, determina como a computação inativa é tomada emprestada e como as tarefas são priorizadas pelas equipes.
+ A **alocação de computação inativa** define como a computação ociosa é alocada entre as equipes. Ou seja, como a computação não utilizada pode ser tomada emprestada das equipes. Ao escolher uma **alocação de computação inativa**, você pode escolher entre:
  + **Primeiro a chegar, primeiro a ser atendido**: quando esta opção é aplicada, as equipes não são priorizadas umas em relação às outras e cada tarefa recebida tem a mesma probabilidade de obter recursos acima da cota. As tarefas são priorizadas com base na ordem de envio. Isso significa que um usuário poderá usar 100% da computação ociosa se a solicitar primeiro.
  + **Compartilhamento justo**: quando esta opção é aplicada, as equipes tomam emprestada a computação ociosa com base no peso atribuído ao **compartilhamento justo**. Esses pesos são definidos em **Alocação de computação.** Para ter mais informações sobre como isso pode ser usado, consulte [Exemplos de compartilhamento de recursos de computação ociosos](#hp-eks-task-governance-policies-examples).
+ A **Priorização de tarefas** define como as tarefas são colocadas em fila à medida que a computação se torna disponível. Ao selecionar uma **Priorização de tarefas**, você pode escolher entre:
  + **Primeiro a chegar, primeiro a ser atendido**: quando esta opção é aplicada, as tarefas são enfileiradas na ordem em que são solicitadas.
  + **Classificação de tarefas**: quando esta opção é aplicada, as tarefas são enfileiradas na ordem definida pela respectiva priorização. Se essa opção for escolhida, você deverá adicionar classes prioritárias com os pesos de acordo com os quais elas devem ser priorizadas. Tarefas da mesma classe prioritária serão executadas por ordem de chegada. Quando habilitada em “Alocação de computação”, as tarefas de maior prioridade dentro da equipe são antecipadas em relação às de menor prioridade.

    Quando cientistas de dados enviam trabalhos ao cluster, eles usam o nome da classe prioritária no arquivo YAML. A classe prioritária está no formato `priority-class-name-priority`. Para ver um exemplo, consulte [Envie um trabalho para uma fila e um SageMaker namespace gerenciados por IA](sagemaker-hyperpod-eks-operate-console-ui-governance-cli.md#hp-eks-cli-start-job).
  + **Classes prioritárias**: essas classes estabelecem uma prioridade relativa para tarefas ao tomar capacidade emprestada. Quando uma tarefa está sendo executada usando uma cota tomada emprestada, outra tarefa de maior prioridade pode ter precedência sobre ela, se não houver mais capacidade disponível para a tarefa de entrada. Se a opção **Preempção** estiver habilitada em **Alocação de computação**, uma tarefa de maior prioridade também poderá ter precedência sobre as tarefas dentro da própria equipe.
+ O **compartilhamento de recursos não alocados** permite que as equipes emprestem recursos computacionais que não estão alocados a nenhuma equipe por meio da cota de computação. Quando ativada, a capacidade não alocada do cluster fica disponível para que as equipes emprestem automaticamente. Para obter mais informações, consulte [Como funciona o compartilhamento de recursos não alocados](#sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-how-it-works).

A **alocação de computação**, ou cota de computação, define a alocação de computação de uma equipe e qual peso (ou nível de prioridade) é atribuído a uma equipe para a alocação justa de computação ociosa. 
+ **Nome da equipe**: o nome da equipe. Um **namespace** correspondente será criado, do tipo `hyperpod-ns-team-name`. 
+ **Membros**: membros do namespace da equipe. Você precisará configurar um controle de acesso baseado em funções (RBAC) do Kubernetes para usuários de cientistas de dados que desejam fazer parte dessa equipe, para executar tarefas em clusters orquestrados com o Amazon EKS. HyperPod Para configurar um RBAC do Kubernetes, use as instruções em [Create team role](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#5-create-team-role).
+ **Peso com compartilhamento justo**: esse é o nível de priorização atribuído à equipe quando o **compartilhamento justo** é aplicado para **alocação de computação ociosa**. A prioridade mais alta tem peso 100 e a mais baixa tem peso 0. Um peso maior permite que uma equipe acesse mais cedo recursos não utilizados dentro da capacidade compartilhada. Um peso 0 significa a menor prioridade, o que implica que essa equipe sempre estará em desvantagem em comparação com outras equipes. 

  O peso do compartilhamento justo oferece uma vantagem comparativa a essa equipe ao competir com outras pelos recursos disponíveis. A admissão prioriza tarefas de agendamento de equipes com os pesos mais altos e menos tomadas de empréstimo. Por exemplo, se a Equipe A tivesse um peso de 10 e a Equipe B tivesse um peso de 5, a Equipe A teria prioridade no acesso a recursos não utilizados, pois teria trabalhos agendados para uma data anterior aos da Equipe B.
+ **Preempção de tarefas**: a computação é assumida por uma tarefa com base na prioridade. Por padrão, a equipe que empresta computação ociosa antecipará as tarefas de outras equipes. 
+ **Empréstimos e tomadas de empréstimo**: como a computação ociosa está sendo emprestada pela equipe e se a equipe pode tomar emprestado de outras equipes.
  + **Limite de empréstimo baseado em porcentagem**: o limite de computação ociosa que uma equipe pode emprestar, expresso como uma porcentagem de sua cota garantida. Uma equipe pode emprestar até 10.000% da computação alocada. O valor que você fornece aqui é interpretado como uma porcentagem. Por exemplo, um valor de 500 será interpretado como 500%. Essa porcentagem se aplica uniformemente a todos os tipos de recursos (CPU, GPU, memória) e tipos de instância na cota da equipe.
  + **Limite absoluto de empréstimo**: o limite de computação ociosa que uma equipe pode emprestar, definido como valores absolutos de recursos por tipo de instância. Isso fornece controle granular sobre o comportamento de empréstimo para tipos específicos de instância. Você precisa especificar limites absolutos usando o mesmo esquema da **cota de computação**, incluindo contagem de instâncias, aceleradores, vCPU, memória ou partições do acelerador. Você pode especificar limites absolutos para um ou mais tipos de instância na cota da sua equipe.

Para ter informações sobre como esses conceitos são usados, como classes prioritárias e espaços de nome, consulte [Exemplos de AWS CLI comandos de governança de HyperPod tarefas](sagemaker-hyperpod-eks-operate-console-ui-governance-cli.md).

## Exemplos de compartilhamento de recursos de computação ociosos
<a name="hp-eks-task-governance-policies-examples"></a>

A cota total reservada não deve ultrapassar a capacidade disponível do cluster para esse recurso a fim de garantir o gerenciamento adequado da cota. Por exemplo, se um cluster inclui vinte instâncias `ml.c5.2xlarge`, a cota cumulativa atribuída às equipes deve permanecer abaixo de vinte. 

Se as políticas de **alocação de computação** para as equipes permitirem **emprestar e tomar emprestado** ou **emprestar**, a capacidade ociosa será compartilhada entre essas equipes. Por exemplo, a Equipe A e a Equipe B têm a opção **Emprestar e tomar emprestado** habilitada. A Equipe A tem uma cota de seis, mas está usando apenas duas para seus trabalhos, e a Equipe B tem uma cota de cinco e está usando quatro para seus trabalhos. Um trabalho enviado à Equipe B exigindo quatro recursos. Três serão tomados emprestados da Equipe A. 

Se a política de **alocação de computação** de qualquer equipe estiver definida como **Não emprestar**, a equipe não poderá tomar emprestada nenhuma capacidade adicional além de suas próprias alocações.

## Como funciona o compartilhamento de recursos não alocados
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-how-it-works"></a>

O compartilhamento de recursos não alocados gerencia automaticamente o pool de recursos que não estão alocados em nenhuma cota de computação em seu cluster. Isso significa monitorar HyperPod continuamente o estado do seu cluster e atualizar automaticamente a configuração correta ao longo do tempo.

**Configuração inicial**
+ Quando você configura como `IdleResourceSharing` `Enabled` em seu ClusterSchedulerConfig (por padrão, é`Disabled`), a governança de HyperPod tarefas começa a monitorar seu cluster e calcula os recursos ociosos disponíveis subtraindo as cotas da equipe da capacidade total do nó.
+ O compartilhamento de recursos não ClusterQueues alocados é criado para representar o pool de recursos emprestáveis.
+ Quando você ativa pela primeira vez o compartilhamento de recursos não alocados, a configuração da infraestrutura leva vários minutos. Você pode monitorar o progresso por meio de políticas `Status` e `DetailedStatus` de entrada ClusterSchedulerConfig.

**Reconciliação contínua**
+ HyperPod a governança de tarefas monitora continuamente alterações, como adições ou remoções de nós e atualizações de cotas de filas de clusters.
+  Quando ocorrem alterações, o compartilhamento de recursos não alocados recalcula a cota e as atualizações. ClusterQueues A reconciliação normalmente é concluída em segundos. 

**Monitoramento**

 Você pode verificar se o compartilhamento de recursos não alocados está totalmente configurado verificando o compartilhamento de recursos não alocados: ClusterQueues 

```
kubectl get clusterqueue | grep hyperpod-ns-idle-resource-sharing
```

Quando você vê ClusterQueues com nomes como`hyperpod-ns-idle-resource-sharing-cq-1`, o compartilhamento de recursos não alocados está ativo. Observe que ClusterQueues podem existir vários compartilhamentos de recursos não alocados, dependendo do número de variações de recursos em seu cluster. 

## Elegibilidade do Node para compartilhamento de recursos não alocados
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-node-eligibility"></a>

O compartilhamento de recursos não alocados inclui somente nós que atendem aos seguintes requisitos:

1. **Status Node Ready**
   + Os nós devem estar em `Ready` status para contribuir com o pool de recursos não alocados.
   + Os nós em `NotReady` ou outros estados não prontos são excluídos dos cálculos de capacidade.
   + Quando um nó se torna`Ready`, ele é automaticamente incluído no próximo ciclo de reconciliação.

1. **Status programável do nó**
   + Os nós com `spec.unschedulable: true` são excluídos do compartilhamento de recursos não alocados.
   + Quando um nó se torna programável novamente, ele é automaticamente incluído no próximo ciclo de reconciliação.

1. **Configuração MIG (somente nós de GPU)**
   + Para nós de GPU com particionamento MIG (Multi-Instance GPU), o `nvidia.com/mig.config.state` rótulo deve ser exibido `success` para que o nó contribua com perfis MIG para o compartilhamento de recursos não alocados.
   + Esses nós serão repetidos automaticamente quando a configuração do MIG for concluída com êxito.

1. **Tipos de instância compatíveis**
   + A instância precisa ser um tipo de SageMaker HyperPod instância compatível.
   + Veja a lista de tipos de instância compatíveis no SageMaker HyperPod cluster.

**Topics**
+ [Exemplos de compartilhamento de recursos de computação ociosos](#hp-eks-task-governance-policies-examples)
+ [Como funciona o compartilhamento de recursos não alocados](#sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-how-it-works)
+ [Elegibilidade do Node para compartilhamento de recursos não alocados](#sagemaker-hyperpod-eks-operate-console-ui-governance-policies-idle-resource-sharing-node-eligibility)
+ [Criar políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-create.md)
+ [Editar políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-edit.md)
+ [Excluir políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete.md)
+ [Alocação de cota computacional na governança de tarefas da Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation.md)

# Criar políticas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-create"></a>

Você pode criar suas configurações de **política de cluster** e **alocação de computação** na guia **Políticas**. Veja abaixo instruções sobre como criar as configurações a seguir.
+ Crie sua **política de cluster** para atualizar a forma como as tarefas são priorizadas e a computação ociosa é alocada.
+ Crie uma **alocação de computação** para criar uma política de alocação de computação para uma equipe.
**nota**  
Ao criar uma **alocação de computação**, você precisará configurar um controle de acesso baseado em funções (RBAC) do Kubernetes para usuários de cientistas de dados no namespace correspondente para executar tarefas em clusters orquestrados com o Amazon EKS. HyperPod Os namespaces têm o formato `hyperpod-ns-team-name`. Para configurar um RBAC do Kubernetes, use as instruções em [Create team role](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#5-create-team-role).

Para obter informações sobre os conceitos da política de cluster EKS de governança de HyperPod tarefas, consulte[Políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md).

**Crie políticas de governança de HyperPod tarefas**

Esse procedimento pressupõe que você já tenha criado um cluster Amazon EKS configurado com HyperPod. Se ainda não fez feito isso, consulte [Criação de um SageMaker HyperPod cluster com a orquestração do Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md).

1. Navegue até o [console do Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação esquerdo, em **HyperPodClusters, escolha **Gerenciamento de clusters****.

1. Escolha seu cluster Amazon EKS listado em **SageMaker HyperPodclusters**.

1. Escolha a guia **Políticas**.

1. Para criar uma **política de cluster**:

   1. Escolha o campo **Editar** correspondente para atualizar como as tarefas são priorizadas e a computação ociosa é alocada.

   1. Depois de fazer as alterações, escolha **Enviar**.

1. Para criar uma **alocação de computação**:

1. 

   1. Escolha a opção **Criar** correspondente. Isso leva você para a página de criação de alocação de computação.

   1. Depois de fazer as alterações, escolha **Enviar**.

# Editar políticas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-edit"></a>

Você pode editar suas configurações de **política de cluster** e **alocação de computação** na guia **Políticas**. Veja abaixo instruções sobre como editar as configurações a seguir.
+ Edite sua **política de cluster** para atualizar a forma como as tarefas são priorizadas e a computação ociosa é alocada.
+ Edite uma **alocação de computação** para criar uma política de alocação de computação para uma equipe.
**nota**  
Ao criar uma **alocação de computação**, você precisará configurar um controle de acesso baseado em funções (RBAC) do Kubernetes para usuários de cientistas de dados no namespace correspondente para executar tarefas em clusters orquestrados com o Amazon EKS. HyperPod Os namespaces têm o formato `hyperpod-ns-team-name`. Para configurar um RBAC do Kubernetes, use as instruções em [Create team role](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#5-create-team-role).

Para obter mais informações sobre os conceitos da política de cluster EKS de governança de HyperPod tarefas, consulte[Políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md).

**Editar políticas de governança de HyperPod tarefas**

Esse procedimento pressupõe que você já tenha criado um cluster Amazon EKS configurado com HyperPod. Se ainda não fez feito isso, consulte [Criação de um SageMaker HyperPod cluster com a orquestração do Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md).

1. Navegue até o [console do Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação esquerdo, em **HyperPodClusters, escolha **Gerenciamento de clusters****.

1. Escolha seu cluster Amazon EKS listado em **SageMaker HyperPodclusters**.

1. Escolha a guia **Políticas**.

1. Para editar sua **política de cluster**:

   1. Escolha o campo **Editar** correspondente para atualizar como as tarefas são priorizadas e a computação ociosa é alocada.

   1. Depois de fazer as alterações, escolha **Enviar**.

1. Para editar a **alocação de computação**:

1. 

   1. Escolha a configuração que você deseja editar em **Alocação de computação**. Isso leva você para a página de detalhes da configuração.

   1. Se você quiser editar essas configurações, escolha **Editar**.

   1. Depois de fazer as alterações, escolha **Enviar**.

# Excluir políticas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete"></a>

Você pode excluir sua **política de cluster** e configurações de **alocação de computação** usando o console de SageMaker IA ou. AWS CLI A página a seguir fornece instruções sobre como excluir suas políticas e configurações de governança de SageMaker HyperPod tarefas.

Para obter mais informações sobre os conceitos da política de cluster EKS de governança de HyperPod tarefas, consulte[Políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md).

**nota**  
Se você estiver tendo problemas para listar ou excluir políticas de governança de tarefas, talvez seja necessário atualizar o conjunto mínimo de permissões de administrador do cluster. Consulte a guia **Amazon EKS** na seção [Usuários do IAM para administração de cluster](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin). Para obter informações adicionais, consulte [Excluir clusters](sagemaker-hyperpod-eks-operate-console-ui-governance-troubleshoot.md#hp-eks-troubleshoot-delete-policies).

## Excluir políticas de governança de HyperPod tarefas (console)
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete-console"></a>

O seguinte usa o console de SageMaker IA para excluir suas políticas de governança de HyperPod tarefas.

**nota**  
Você não pode excluir sua **política de cluster** (`ClusterSchedulerConfig`) usando o console de SageMaker IA. Para saber como fazer isso usando o AWS CLI, consulte[Excluir políticas de governança de HyperPod tarefas (AWS CLI)](#sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete-cli).

**Para excluir políticas de governança de tarefas (console)**

1. Navegue até o [console do Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker/).

1. No painel de navegação esquerdo, em **HyperPodClusters, escolha **Gerenciamento de clusters****.

1. Escolha seu cluster Amazon EKS listado em **SageMaker HyperPodclusters**.

1. Escolha a guia **Políticas**.

1. Para excluir sua **alocação de computação** (`ComputeQuota`):

   1. Na seção **Alocação de computação**, selecione a configuração que você deseja excluir.

   1. No menu suspenso **Ações**, escolha **Excluir**.

   1. Siga as instruções na interface de usuário para concluir a tarefa.

## Excluir políticas de governança de HyperPod tarefas (AWS CLI)
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete-cli"></a>

O seguinte usa o AWS CLI para excluir suas políticas de governança de HyperPod tarefas.

**nota**  
Se você estiver tendo problemas ao usar os comandos a seguir, talvez seja necessário atualizar seu AWS CLI. Para saber mais, consulte [Instalar ou atualizar para a versão mais recente da AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

**Como excluir políticas de governança de tarefas (AWS CLI)**

Primeiro, defina suas variáveis para os AWS CLI comandos a seguir.

```
REGION=aws-region
```

1. Obtenha o *cluster-arn* associado às políticas que você deseja excluir. Você pode usar o AWS CLI comando a seguir para listar os clusters em seu Região da AWS.

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

1. Para excluir alocações de computação (`ComputeQuota`):

   1. Liste todas as cotas de computação associadas ao HyperPod cluster.

      ```
      aws sagemaker list-compute-quotas \
          --cluster-arn cluster-arn \
          --region ${REGION}
      ```

   1. Para cada `compute-quota-id` que desejar excluir, execute o comando a seguir para excluir a cota de computação.

      ```
      aws sagemaker delete-compute-quota \
          --compute-quota-id compute-quota-id \
          --region ${REGION}
      ```

1. Para excluir políticas de cluster (`ClusterSchedulerConfig`):

   1. Liste todas as políticas de cluster associadas ao HyperPod cluster.

      ```
      aws sagemaker list-cluster-scheduler-configs \
          --cluster-arn cluster-arn \
          --region ${REGION}
      ```

   1. Para cada `cluster-scheduler-config-id` que desejar excluir, execute o comando a seguir para excluir a cota de computação.

      ```
      aws sagemaker delete-cluster-scheduler-config 
          --cluster-scheduler-config-id scheduler-config-id \
          --region ${REGION}
      ```

# Alocação de cota computacional na governança de tarefas da Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation"></a>

Os administradores de cluster podem decidir como a organização usa a computação adquirida. Isso reduz o desperdício e os recursos ociosos. Você pode alocar uma cota de computação para que as equipes possam tomar emprestados recursos não utilizados entre si. A alocação de cotas de computação na governança de HyperPod tarefas permite que os administradores aloquem recursos no nível da instância e em um nível de recurso mais granular. Esse recurso oferece gerenciamento de recursos flexível e eficiente para as equipes, permitindo o controle granular de recursos de computação individuais em vez de exigir alocações de instâncias inteiras. A alocação em nível granular elimina a ineficiência da alocação tradicional em nível de instância. Por meio dessa abordagem, você pode otimizar a utilização de recursos e reduzir a computação ociosa.

A alocação de cotas de computação permite três tipos de alocação de recursos: aceleradores, vCPU e memória. Aceleradores são componentes em instâncias com computação acelerada que executam funções, como cálculos de número de ponto flutuante, processamento gráfico ou correspondência de padrões de dados. Os aceleradores incluem GPUs aceleradores Trainium e núcleos de neurônios. Para o compartilhamento de GPU com várias equipes, equipes diferentes podem receber alocações específicas de GPU do mesmo tipo de instância, maximizando a utilização do hardware do acelerador. Para cargas de trabalho com uso intenso de memória que exigem RAM adicional para cenários de pré-processamento de dados ou armazenamento em cache de modelos, você pode alocar a cota de memória além da taxa padrão. GPU-to-memory Para tarefas pesadas de pré-processamento de CPU que precisam de recursos substanciais de CPU e treinamento da GPU, você pode fazer uma alocação de recursos de CPU independente.

Depois de fornecer um valor, a governança de HyperPod tarefas calcula a proporção usando a fórmula de **recurso alocado dividido pela quantidade total de recursos disponíveis na instância**. HyperPod A governança de tarefas então usa essa proporção para aplicar alocações padrão a outros recursos, mas você pode substituir esses padrões e personalizá-los com base no seu caso de uso. Veja a seguir exemplos de cenários de como a governança de HyperPod tarefas aloca recursos com base em seus valores:
+ **Somente acelerador especificado** - a governança de HyperPod tarefas aplica a proporção padrão à vCPU e à memória com base nos valores do acelerador.
+ **Somente vCPU especificada** - a governança de HyperPod tarefas calcula a proporção e a aplica à memória. Os aceleradores são definidos como 0.
+ **Somente memória especificada** - a governança de HyperPod tarefas calcula a proporção e a aplica à vCPU porque a computação é necessária para executar cargas de trabalho especificadas na memória. Os aceleradores são definidos como 0.

Para controlar programaticamente a alocação de cotas, você pode usar o [ ComputeQuotaResourceConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ComputeQuotaResourceConfig.html)objeto e especificar suas alocações em números inteiros.

```
{
    "ComputeQuotaConfig": {
        "ComputeQuotaResources": [{
            "InstanceType": "ml.g5.24xlarge",
            "Accelerators": "16",
            "vCpu": "200.0",
            "MemoryInGiB": "2.0"
        }]
    }
}
```

Para ver todas as alocações alocadas, incluindo os padrões, use a operação. [ DescribeComputeQuota](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeComputeQuota.html) Para atualizar suas alocações, use a [ UpdateComputeQuota](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateComputeQuota.html)operação.

Você também pode usar a HyperPod CLI para alocar cotas de computação. Para obter mais informações sobre a HyperPod CLI, consulte. [Execução de trabalhos em SageMaker HyperPod clusters orquestrados pelo Amazon EKS](sagemaker-hyperpod-eks-run-jobs.md) O exemplo a seguir demonstra como definir cotas de computação usando a 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
```

Para alocar cotas usando o AWS console, siga estas etapas.

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Em HyperPod clusters, escolha **Gerenciamento de clusters**.

1. Em **Alocações de computação**, escolha **Criar**.

1. Se você ainda não tiver instâncias, escolha **Adicionar alocação** para adicionar uma instância.

1. Em **Alocações**, escolha alocar por instâncias ou recursos individuais. Se você alocar por recursos individuais, a SageMaker IA atribuirá automaticamente alocações a outros recursos de acordo com a proporção que você escolheu. Para substituir essa alocação baseada em proporção, use a alternância correspondente para substituir essa computação.

1. Repita as Etapas 4 e 5 para configurar instâncias adicionais.

Depois de alocar a cota de computação, você pode enviar trabalhos por meio da CLI ou. HyperPod `kubectl` HyperPodprograma com eficiência as cargas de trabalho com base na cota disponível. 

# Alocação da cota de partição da GPU
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-policies-compute-allocation-gpu-partitions"></a>

Você pode estender a alocação da cota de computação para suportar o particionamento da GPU, permitindo o compartilhamento refinado de recursos no nível da partição da GPU. Quando o particionamento de GPU está habilitado com suporte GPUs no cluster, cada GPU física pode ser particionada em várias isoladas GPUs com alocações definidas de computação, memória e multiprocessador de streaming. Para obter mais informações sobre particionamento de GPU, consulte. [Usando partições de GPU na Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md) Você pode alocar partições de GPU específicas para equipes, permitindo que várias equipes compartilhem uma única GPU, mantendo o isolamento em nível de hardware e o desempenho previsível.

Por exemplo, uma instância ml.p5.48xlarge com 8 H100 GPUs pode ser particionada em partições de GPU, e você pode alocar partições individuais para equipes diferentes com base nos requisitos de suas tarefas. Quando você especifica as alocações de partição da GPU, a governança de HyperPod tarefas calcula as cotas proporcionais de vCPU e memória com base na partição da GPU, semelhante à alocação no nível da GPU. Essa abordagem maximiza a utilização da GPU eliminando a capacidade ociosa e permitindo o compartilhamento econômico de recursos em várias tarefas simultâneas na mesma GPU física.

## Criação de cotas de computação
<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 
    }
  }'
```

## Verificando recursos de cota
<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
```

# Exemplos de AWS CLI comandos de governança de HyperPod tarefas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-cli"></a>

Você pode usar HyperPod com o EKS por meio do Kubectl ou da HyperPod CLI personalizada. Você pode usar esses comandos por meio do Studio ou AWS CLI. Veja a seguir exemplos de governança de SageMaker HyperPod tarefas sobre como visualizar detalhes do cluster usando os HyperPod AWS CLI comandos. Para obter mais informações, incluindo como instalar, consulte o repositório [HyperPod CLI do Github](https://github.com/aws/sagemaker-hyperpod-cli).

**Topics**
+ [Obter informações sobre a cota do acelerador de clusters](#hp-eks-cli-get-clusters)
+ [Envie um trabalho para uma fila e um SageMaker namespace gerenciados por IA](#hp-eks-cli-start-job)
+ [Listar tarefas](#hp-eks-cli-list-jobs)
+ [Obter informações detalhadas de um trabalho](#hp-eks-cli-get-job)
+ [Suspender e cancelar a suspensão de trabalhos](#hp-eks-cli-patch-job)
+ [Depurar trabalhos](#hp-eks-cli-other)

## Obter informações sobre a cota do acelerador de clusters
<a name="hp-eks-cli-get-clusters"></a>

O comando de exemplo a seguir obtém as informações sobre a cota do dispositivo do acelerador de cluster.

```
hyperpod get-clusters -n hyperpod-ns-test-team
```

O namespace neste exemplo, `hyperpod-ns-test-team`, é criado no Kubernetes com base no nome fornecido da equipe, `test-team`, quando a alocação de computação é criada. Para obter mais informações, consulte [Editar políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-edit.md).

Exemplo de resposta:

```
[
    {
        "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
            }
        }
    }
]
```

## Envie um trabalho para uma fila e um SageMaker namespace gerenciados por IA
<a name="hp-eks-cli-start-job"></a>

O comando de exemplo a seguir envia um trabalho para seu HyperPod cluster. Se você tiver acesso a apenas uma equipe, eles HyperPod AWS CLI atribuirão automaticamente a fila para você nesse caso. Do contrário, se várias filas forem descobertas, exibiremos todas as opções viáveis para você selecionar.

```
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
```

As classes prioritárias são definidas em **política de cluster**, que define como as tarefas são priorizadas e a computação ociosa é alocada. Quando um cientista de dados envia um trabalho, ele usa um dos nomes da classe prioritária com o formato `priority-class-name-priority`. Neste exemplo, `training-priority` refere-se à classe prioritária chamada “treinamento”. Para ter mais informações sobre conceitos de política, consulte [Políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies.md).

Se não for especificada uma classe de prioritária, o trabalho será tratado como de baixa prioridade, com um valor de classificação de tarefas de 0. 

Se uma classe prioritária for especificada, mas não corresponder a uma das classes prioritárias definidas em **Política de cluster**, o envio falhará e uma mensagem de erro apresentará o conjunto definido de classes prioritárias.

Você também pode enviar o trabalho usando um arquivo de configuração YAML com o seguinte comando: 

```
hyperpod start-job --config-file ./yaml-configuration-file-name.yaml
```

Veja a seguir um exemplo de arquivo de configuração YAML equivalente ao envio de um trabalho, conforme discutido acima.

```
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
```

Como alternativa, você pode enviar um trabalho usando o `kubectl` para garantir que a tarefa apareça na guia **Painel**. O comando a seguir é um exemplo de comando kubectl.

```
kubectl apply -f ./yaml-configuration-file-name.yaml
```

Ao enviar o trabalho, inclua o nome da fila e os rótulos da classe prioritária. Por exemplo, com o nome da fila `hyperpod-ns-team-name-localqueue` e a classe de prioritária `priority-class-name-priority`, você deve incluir os seguintes rótulos:
+ `kueue.x-k8s.io/queue-name: hyperpod-ns-team-name-localqueue` 
+ `kueue.x-k8s.io/priority-class: priority-class-name-priority`

O seguinte trecho de configuração YAML demonstra como adicionar rótulos ao seu arquivo de configuração original para garantir que sua tarefa apareça na guia **Painel**.

```
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
```

## Listar tarefas
<a name="hp-eks-cli-list-jobs"></a>

O comando a seguir lista os trabalhos e os respectivos detalhes.

```
hyperpod list-jobs
```

Exemplo de resposta:

```
{
    "jobs": [
        {
            "Name": "hyperpod-cli-test",
            "Namespace": "hyperpod-ns-test-team",
            "CreationTime": "2024-11-18T21:21:15Z",
            "Priority": "training",
            "State": "Succeeded"
        }
    ]
}
```

## Obter informações detalhadas de um trabalho
<a name="hp-eks-cli-get-job"></a>

O comando a seguir fornece os detalhes de um trabalho. Se nenhum namespace for especificado, HyperPod AWS CLI buscará um namespace gerenciado pela SageMaker IA ao qual você tenha acesso.

```
hyperpod get-job --job-name hyperpod-cli-test
```

Exemplo de resposta:

```
{
    "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“
}
```

## Suspender e cancelar a suspensão de trabalhos
<a name="hp-eks-cli-patch-job"></a>

Se você quiser remover algum trabalho enviado do agendador, HyperPod AWS CLI fornece o `suspend` comando para remover temporariamente o trabalho da orquestração. O trabalho suspenso não será mais agendado, a menos que ele seja cancelado manualmente pelo comando `unsuspend`.

Para suspender temporariamente um trabalho:

```
hyperpod patch-job suspend --job-name hyperpod-cli-test
```

Para adicionar um trabalho de volta à fila:

```
hyperpod patch-job unsuspend --job-name hyperpod-cli-test
```

## Depurar trabalhos
<a name="hp-eks-cli-other"></a>

O HyperPod AWS CLI também fornece outros comandos para você depurar problemas de envio de trabalhos. Por exemplo, `list-pods` e `get-logs` no repositório HyperPod AWS CLI Github.

# Solução de problemas
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-troubleshoot"></a>

A página a seguir contém soluções conhecidas para solucionar problemas em seus clusters HyperPod EKS.

**Topics**
+ [Guia do Painel](#hp-eks-troubleshoot-dashboard)
+ [Guia Tarefas](#hp-eks-troubleshoot-tasks)
+ [Políticas](#hp-eks-troubleshoot-policies)
+ [Excluir clusters](#hp-eks-troubleshoot-delete-policies)
+ [Compartilhamento de recursos não alocados](#hp-eks-troubleshoot-unallocated-resource-sharing)

## Guia do Painel
<a name="hp-eks-troubleshoot-dashboard"></a>

**Não é possível instalar o complemento do EKS**

Para que a instalação do complemento do EKS tenha êxito, você precisará ter uma versão do Kubernetes >= 1.30. Para atualizar, consulte [Atualizar um cluster existente para a nova versão do Kubernetes](https://docs.aws.amazon.com/eks/latest/userguide/update-cluster.html).

Para que a instalação do complemento do EKS tenha êxito, todos os nós precisam estar no status **Pronto** e todos os pods precisam estar no status **Executando**. 

Para verificar o status dos seus nós, use o [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 ou navegue até seu cluster EKS no [console EKS](https://console.aws.amazon.com/eks/home#/clusters) e visualize o status dos seus nós. Resolva o problema de cada nó ou entre em contato com seu administrador. Se o status do nó for **Desconhecido**, exclua o nó. Quando todos os status dos nós estiverem **prontos**, tente instalar novamente o complemento EKS a partir HyperPod do console [Amazon SageMaker ](https://console.aws.amazon.com/sagemaker/) AI.

Para verificar o status dos pods, use o comando `kubectl get pods -n cloudwatch-agent` da [CLI do Kubernetes](https://kubernetes.io/docs/reference/kubectl/) ou navegue até o cluster dos EKS no [console do EKS](https://console.aws.amazon.com/eks/home#/clusters) e visualize o status dos pods com o namespace `cloudwatch-agent`. Resolva o problema dos pods ou entre em contato com seu administrador para resolvê-lo. Quando todos os status do pod estiverem **em execução**, tente instalar novamente o complemento EKS a partir HyperPod do console [Amazon SageMaker ](https://console.aws.amazon.com/sagemaker/) AI.

Para obter mais informações sobre a solução de problemas, consulte [Solução de problemas do complemento Amazon CloudWatch Observability EKS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Observability-EKS-addon.html#Container-Insights-setup-EKS-addon-troubleshoot).

## Guia Tarefas
<a name="hp-eks-troubleshoot-tasks"></a>

Se você vir a mensagem de erro sobre como a **definição de recursos personalizados (CRD) não está configurada no cluster**, conceda as políticas `EKSAdminViewPolicy` e `ClusterAccessRole` ao perfil de execução do domínio. 
+ Para obter informações sobre como obter sua função de execução, consulte[Obtenha um perfil de execução](sagemaker-roles.md#sagemaker-roles-get-execution-role).
+ Para saber como anexar políticas a um grupo ou usuário do IAM, consulte [Adicionar e remover permissões de identidade do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).

## Políticas
<a name="hp-eks-troubleshoot-policies"></a>

A seguir, listamos as soluções para erros relacionados às políticas usando o console HyperPod APIs ou.
+ Se a política estiver no status `CreateFailed` ou `CreateRollbackFailed`, você precisará excluir a política com falha e criar outra.
+ Se a política estiver no status `UpdateFailed`, tente atualizar novamente usando o mesmo ARN da política.
+ Se a política estiver no status `UpdateRollbackFailed`, você precisará excluir a política com falha e criar outra.
+ Se a política estiver no status `DeleteFailed` ou `DeleteRollbackFailed`, tente excluir novamente usando o mesmo ARN da política.
  + Se você encontrou um erro ao tentar excluir a **priorização de computação** ou a política de cluster usando o HyperPod console, tente excluí-la `cluster-scheduler-config` usando a API. Para verificar o status do recurso, acesse a página de detalhes de uma alocação de computação.

Para ver mais detalhes sobre a falha, use a API describe.

## Excluir clusters
<a name="hp-eks-troubleshoot-delete-policies"></a>

A seguir, listamos soluções conhecidas para erros relacionados à exclusão de clusters.
+ Quando a exclusão do cluster falhar devido às políticas de governança de SageMaker HyperPod tarefas anexadas, você precisará[Excluir políticas](sagemaker-hyperpod-eks-operate-console-ui-governance-policies-delete.md).
+ Quando a exclusão de um cluster falhar devido à falta das permissões a seguir, você precisará atualizar o conjunto mínimo de permissões do administrador do cluster. Consulte a guia **Amazon EKS** na seção [Usuários do IAM para administração de cluster](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-admin).
  + `sagemaker:ListComputeQuotas`
  + `sagemaker:ListClusterSchedulerConfig`
  + `sagemaker:DeleteComputeQuota`
  + `sagemaker:DeleteClusterSchedulerConfig`

## Compartilhamento de recursos não alocados
<a name="hp-eks-troubleshoot-unallocated-resource-sharing"></a>

Se a capacidade não alocada do pool de recursos for menor do que a esperada:

1. **Verifique o status do nó pronto**

   ```
   kubectl get nodes
   ```

   Verifique se todos os nós mostram o `Ready` status na coluna STATUS.

1. **Verifique o status agendável do nó**

   ```
   kubectl get nodes -o custom-columns=NAME:.metadata.name,UNSCHEDULABLE:.spec.unschedulable
   ```

   Verifique se os nós são exibidos `<none>` ou `false` não`true`.

1. **Listar o compartilhamento de recursos não alocados: ClusterQueues**

   ```
   kubectl get clusterqueue | grep hyperpod-ns-idle-resource-sharing
   ```

   Isso mostra todos os compartilhamentos de recursos não alocados. ClusterQueues Se ClusterQueues eles não estiverem aparecendo, verifique a ClusterSchedulerConfig política `FailureReason` abaixo para ver se há alguma mensagem de falha para continuar a depuração.

1. **Verifique a cota de compartilhamento de recursos não alocada:**

   ```
   kubectl describe clusterqueue hyperpod-ns-idle-resource-sharing-<index>
   ```

   Consulte a `spec.resourceGroups[].flavors[].resources` seção para ver a cota alocada para cada tipo de recurso.

    ClusterQueues Podem existir vários compartilhamentos de recursos não alocados, dependendo do número de variações de recursos em seu cluster. 

1. **Verifique o status da configuração do MIG (nós da GPU):**

   ```
   kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.nvidia\.com/mig\.config\.state}{"\n"}{end}'
   ```

   Verifique se os nós habilitados para MIG mostram `success` o estado.

# Documento de atribuição para governança de tarefas da Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-operate-console-ui-governance-attributions"></a>

A seguir, você pode aprender sobre atribuições e licenças de terceiros para material usado na governança de tarefas da Amazon SageMaker HyperPod .

**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.
```

# Relatórios de uso para atribuição de custos em SageMaker HyperPod
<a name="sagemaker-hyperpod-usage-reporting"></a>

Os relatórios de uso em clusters SageMaker HyperPod orquestrados pelo EKS fornecem visibilidade granular do consumo de recursos computacionais. O recurso permite que as organizações implementem uma atribuição transparente de custos, alocando custos de cluster a equipes, projetos ou departamentos com base no uso real. Ao monitorar métricas como GPU/CPU horas e utilização do Neuron Core - capturadas em *agregados de nível de equipe e detalhamentos específicos de tarefas - os relatórios de uso complementam a funcionalidade de [governança de tarefas, garantindo uma distribuição justa de custos em clusters compartilhados HyperPod de vários inquilinos](sagemaker-hyperpod-eks-operate-console-ui-governance.md)* por meio de:
+ Eliminar suposições na alocação de custos.
+ Vincular as despesas diretamente ao consumo mensurável de recursos.
+ Impor a prestação de contas baseada no uso em ambientes de infraestrutura compartilhada.

## Pré-requisitos
<a name="sagemaker-hyperpod-usage-reporting-prerequisites"></a>

Para usar esse recurso:
+ Você precisa:
  + Um **SageMaker HyperPod ambiente** ativo com um cluster orquestrado pelo EKS em execução.
  + (Altamente recomendado) De uma **governança de tarefas** configurada com cotas de computação e regras de prioridade. Para obter instruções de configuração, consulte [Configuração da governança de tarefas](sagemaker-hyperpod-eks-operate-console-ui-governance-setup.md).
+ Familiarizar-se com estes conceitos básicos:
  + **Cota de computação alocada:** recursos reservados para uma equipe com base em cotas predefinidas nas respectivas políticas de governança de tarefas. Essa é a *capacidade garantida* para as workloads da equipe.
  + **Computação tomada emprestada:** recursos ociosos do pool de clusters compartilhados que as equipes podem usar temporariamente *além da* cota alocada. A computação tomada emprestada é atribuída dinamicamente com base em regras de prioridade nas políticas de governança de tarefas e na disponibilidade de recursos não utilizados.
  + **Uso de computação:** a medição dos recursos (GPU, CPU e horas de NeuronCore) consumidos por uma equipe, rastreada como:
    + **Utilização alocada**: uso de acordo com a cota da equipe.
    + **Utilização tomada emprestada**: uso além da cota, extraído do grupo compartilhado.
  + **Atribuição de custos:** o processo de alocar os custos do cluster às equipes com base no *uso real de computação*, incluindo os recursos consumidos de acordo com a cota predefinida e os recursos usados temporariamente do grupo compartilhado do cluster além da cota.

## Tipos de relatório
<a name="sagemaker-hyperpod-usage-reporting-report-types"></a>

HyperPodOs relatórios de uso da fornecem granularidade operacional variável:
+ **Os relatórios resumidos** *fornecem visibilidade do uso da computação em toda a organização, agregando o total de horas GPU/CPU/Neuron principais por equipe (namespace) e distinguindo entre *uso regular* (recursos da cota alocada de uma equipe) e computação emprestada (capacidade de estouro de pools compartilhados).*
+ Os **relatórios detalhados** oferecem detalhamento em nível de tarefa por equipe, rastreando as horas de computação exatas gastas na execução de tarefas específicas, como tarefas antecipadas, padrões de utilização por hora e alocações específicas ao namespace.

**Importante**  
HyperPod os relatórios de uso rastreiam a utilização da computação em *todos os namespaces do Kubernetes em um cluster, incluindo aqueles gerenciados pela Governança de Tarefas, namespaces* padrão e namespaces criados **fora da Governança de Tarefas (por exemplo, por meio de chamadas diretas à API do Kubernetes ou ferramentas externas**). Esse monitoramento em nível de infraestrutura garante uma prestação de contas abrangente baseada no uso, evitando disparidades na atribuição de custos para clusters compartilhados, independentemente de como os namespaces são gerenciados.

## Formatos e intervalo de tempo dos relatórios
<a name="sagemaker-hyperpod-usage-reporting-formats"></a>

Usando o script Python fornecido em [Gerar relatórios](sagemaker-hyperpod-usage-reporting-generate.md), os administradores podem gerar relatórios de uso sob demanda nos formatos CSV ou PDF, selecionando intervalos de tempo que vão desde snapshots diários a janelas de tempo históricas de 180 dias (6 meses).

**nota**  
Você pode configurar a janela de tempo histórica para se estender além do máximo padrão de 180 dias ao configurar a infraestrutura de relatórios. Para obter mais informações sobre como configurar o período de retenção de dados, consulte [Instalar a infraestrutura do relatório de uso usando CloudFormation](https://github.com/awslabs/sagemaker-hyperpod-usage-report/blob/main/README.md#install-usage-report-infrastructure-using-cloudformation). 

## Casos de uso ilustrativos
<a name="sagemaker-hyperpod-usage-reporting-use-cases"></a>

Esse recurso aborda cenários críticos em AI/ML ambientes multilocatários, como:

1. **Alocação de custos para clusters compartilhados**: um administrador gerencia um HyperPod cluster compartilhado por 20 equipes que treinam modelos generativos de IA. Usando um *relatório de resumo de uso*, ele analisa a utilização diária de GPU em 180 dias e descobre que a Equipe A consumiu 200 horas de GPU de um tipo específico de instância: 170 da cota alocada e 30 da computação tomada emprestada. Ele emite uma fatura para a Equipe A com base nesse uso relatado.

1. **Auditoria e resolução de disputas**: uma equipe financeira questiona a precisão da atribuição de custos, citando inconsistências. O administrador pode exportar um *relatório detalhado em nível de tarefa* para auditar discrepâncias. Comparando carimbos de data/hora, tipos de instância e tarefas antecipadas no namespace da equipe, o relatório reconcilia de forma transparente os dados de uso contestados.

# Detalhes dos relatórios e detalhamento dos dados
<a name="sagemaker-hyperpod-usage-reporting-content"></a>

SageMaker HyperPodOs relatórios de uso da fornecem duas lentes distintas para analisar o consumo de recursos computacionais: **relatórios resumidos** para alocação de custos e **relatórios detalhados para auditoria** granular. Os relatórios de resumo agregam o uso de todo o cluster por equipe ou namespace, destacando tendências na computação alocada em comparação com a computação tomada emprestada em recursos de GPU, CPU e NeuronCore. Os relatórios detalhados analisam tarefas individuais, expondo determinadas métricas, como janelas de execução, status de tarefas e utilização de classes prioritárias. Nesta seção, detalhamos a estrutura desses relatórios, compreendemos as principais métricas e demonstramos como administradores e equipes financeiras podem comparar tendências resumidas com dados em nível de tarefa para validar a precisão da atribuição de custos, resolver discrepâncias e otimizar a infraestrutura compartilhada.

## Cabeçalhos de relatório comuns
<a name="sagemaker-hyperpod-usage-reporting-content-headers"></a>

Os relatórios detalhados e de resumo incluem os seguintes metadados para contextualizar os dados de uso:
+ **ClusterName:** o nome do cluster Hyperpod orquestrado pelo EKS em que os recursos foram consumidos.
+ **Tipo:** a categoria de relatório (`Summary Utilization Report` ou `Detailed Utilization Report`).
+ **Dados gerados:** quando o relatório foi criado (p. ex., `2025-04-18`).
+ **Intervalo de tempo (UTC):** o período coberto (p. ex., `2025-04-16 to 2025-04-18`).
+ **Períodos de dados perdidos:** lacunas na coleta de dados devido a tempo de inatividade do cluster ou problemas de monitoramento (p. ex., `2025-04-16 00:00:00 to 2025-04-19 00:00:00`).

## Relatórios de resumo
<a name="sagemaker-hyperpod-usage-reporting-content-summary"></a>

Os relatórios de resumo oferecem uma visão geral diária simplificada do consumo de recursos de computação entre equipes/namespaces e tipos de instância, distinguindo entre utilização alocada (cota reservada) e tomada emprestada (grupo emprestado). Esses relatórios são ideais para geração de faturas, declaração de atribuição de custos ou previsão de capacidade.

*Exemplo: um relatório de resumo pode mostrar que a Equipe A usou 200 horas de GPU (170 da cota alocada e 30 tomadas emprestadas).*

Veja abaixo um detalhamento estruturado das principais colunas em um relatório de resumo:
+ **Data:** a data do uso relatado (p. ex., `2025-04-18`).
+ **Namespace:** o namespace do Kubernetes associado à equipe (p. ex., `hyperpod-ns-ml-team`).
+ **Equipe:** The Owning team/department (por exemplo,`ml-team`).
+ **Tipo de instância:** a instância de computação usada (p. ex., ml.g5.4xlarge).
+ **Total/Allocated/BorrowedUtilização (horas):** o detalhamento do uso da GPU, CPU ou Neuron Core por categoria.

  Em que:
  + **Utilização total = Utilização alocada \$1 Utilização tomada emprestada**
  + A **utilização alocada** é a CPU real da GPU, ou horas de NeuronCore que uma equipe usou, restrita a 100% da respectiva cota alocada.
  + A **utilização tomada emprestada** refere-se às horas reais de GPU, CPU ou NeuronCore que uma equipe usou *além da cota alocada*, extraídas do grupo de clusters compartilhado com base nas regras de prioridade da governança de tarefas e na disponibilidade de recursos.

Exemplo: 72 horas de GPU no total (48 alocadas e 24 tomadas emprestadas).

**nota**  
Somente a utilização total é exibida para namespaces não gerenciados pela governança de tarefas.

## Relatórios detalhados
<a name="sagemaker-hyperpod-usage-reporting-content-detailed"></a>

Os relatórios detalhados oferecem visibilidade em nível forense sobre o uso de computação, detalhando o consumo de recursos por tarefa e expondo métricas granulares, como períodos de execução de tarefas, status (p. ex., êxito e falha) e uso de classes prioritárias. Esses relatórios são ideais para a validação de discrepâncias de faturamento ou para garantir a conformidade com as políticas de governança.

Veja abaixo um detalhamento estruturado das principais colunas em um relatório detalhado:
+ **Data:** a data do uso relatado (p. ex., `2025-04-18`).
+ **Início/fim do período:** período de execução exata (UTC) da tarefa (p. ex., `19:54:34`).
+ **Namespace:** o namespace do Kubernetes associado à equipe (p. ex., `hyperpod-ns-ml-team`).
+ **Equipe:** The Owning team/department (por exemplo,`ml-team`).
+ **Tarefa:** o identificador do trabalho/pod (p. ex., `pytorchjob-ml-pytorch-job-2p5zt-db686`).
+ **Instância:** a instância de computação usada (p. ex., `ml.g5.4xlarge`).
+ **Status:** resultado da tarefa (bem-sucedida, com falha e antecipada).
+ **Utilização total:** consumo total (horas e contagem de instâncias) de recursos de GPU, CPU ou NeuronCore.
+ **Classe prioritária:** o nível de prioridade atribuído (p. ex., prioridade de treinamento).

# Gerar relatórios
<a name="sagemaker-hyperpod-usage-reporting-generate"></a>

Este guia fornece step-by-step instruções para configurar e gerenciar relatórios de uso para seus SageMaker HyperPod clusters. Siga esses procedimentos para implantar a infraestrutura, gerar relatórios personalizados e remover recursos quando não forem mais necessários.

## Configurar relatórios de uso
<a name="sagemaker-hyperpod-usage-reporting-install"></a>

**nota**  
Antes de configurar a infraestrutura do relatório de SageMaker HyperPod uso em seu SageMaker HyperPod cluster, verifique se você atendeu a todos os pré-requisitos detalhados neste 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)

O relatório de uso em HyperPod requer:
+ Implantação de AWS recursos SageMaker HyperPod de relatório de uso usando uma CloudFormation pilha
+ Instalando o relatório SageMaker HyperPod de uso do operador Kubernetes por meio de um gráfico Helm

Você pode encontrar instruções de instalação abrangentes no [ GitHub repositório SageMaker HyperPod de relatórios de uso](https://github.com/awslabs/sagemaker-hyperpod-usage-report/blob/main/README.md). Mais especificamente, siga as etapas na seção [Set up](https://github.com/awslabs/sagemaker-hyperpod-usage-report/blob/main/README.md#set-up-usage-reporting).

## Gerar relatórios de uso sob demanda
<a name="sagemaker-hyperpod-usage-reporting-use"></a>

Depois que a infraestrutura de relatórios de uso e o operador do Kubernetes são instalados, os dados do trabalho do seu SageMaker HyperPod cluster são coletados e armazenados automaticamente no bucket do S3 que você configurou durante a configuração. O operador captura continuamente métricas detalhadas de uso em segundo plano, criando arquivos de dados brutos no diretório `raw` do bucket S3 designado.

Para gerar um relatório de uso sob demanda, você pode usar o `run.py` script fornecido no [ GitHub repositório de relatórios de SageMaker HyperPod uso](https://github.com/awslabs/sagemaker-hyperpod-usage-report/blob/main/README.md) para extrair e exportar métricas de uso. Mais especificamente, você pode encontrar o script e instruções abrangentes para gerar um relatório na seção [Generate reports](https://github.com/awslabs/sagemaker-hyperpod-usage-report/blob/main/README.md#generate-reports).

O script permite que você:
+ Especifique intervalos de datas personalizados para geração de relatórios.
+ Escolha entre os tipos de relatório detalhado e de resumo.
+ Exporte relatórios no formato CSV ou PDF.
+ Encaminhe relatórios para um local específico do S3.

## Limpar recursos dos relatórios de uso
<a name="sagemaker-hyperpod-usage-reporting-cleanup"></a>

Quando você não precisar mais da sua infraestrutura de relatórios de SageMaker HyperPod uso, siga as etapas em [Limpar recursos](https://github.com/awslabs/sagemaker-hyperpod-usage-report/blob/main/README.md#clean-up-resources) para limpar o operador e os AWS recursos do Kubernetes (nessa ordem). A exclusão adequada de recursos ajuda a evitar custos desnecessários.

# Configurando o armazenamento para SageMaker HyperPod clusters orquestrados pelo Amazon EKS
<a name="sagemaker-hyperpod-eks-setup-storage"></a>

O administrador do cluster precisa configurar o armazenamento para que os usuários de cientistas de dados gerenciem dados de entrada e saída e armazenem pontos de verificação durante o treinamento em SageMaker HyperPod clusters.

**Manipulação de grandes conjuntos de dados (dados de entrada/saída)**
+ **Acesso e gerenciamento de dados**: os cientistas de dados geralmente trabalham com grandes conjuntos de dados necessários para treinar modelos de machine learning. A especificação dos parâmetros de armazenamento no envio do trabalho permite que eles definam onde esses conjuntos de dados estão localizados (por exemplo, buckets do Amazon S3, volumes persistentes no Kubernetes) e como eles são acessados durante a execução do trabalho.
+ **Otimização do desempenho**: a eficiência do acesso aos dados de entrada pode impactar significativamente o desempenho do trabalho de treinamento. Ao otimizar os parâmetros de armazenamento, os cientistas de dados podem garantir que os dados sejam lidos e gravados de forma eficiente, reduzindo os I/O gargalos.

**Armazenando pontos de verificação**
+ **Pontos de verificação no treinamento**: durante trabalhos de treinamento de longa duração, é uma prática comum salvar os pontos de verificação: estados intermediários do modelo. Isso permite que os cientistas de dados retomem o treinamento a partir de um ponto específico em caso de falha, em vez de começar do zero.
+ **Recuperação e experimentação de dados**: ao especificar o local de armazenamento dos pontos de verificação, os cientistas de dados podem garantir que esses pontos de verificação sejam armazenados com segurança, potencialmente em um sistema de armazenamento distribuído que ofereça redundância e alta disponibilidade. Isso é crucial para se recuperar de interrupções e para experimentar diferentes estratégias de treinamento.

**dica**  
Para uma experiência prática e orientação sobre como configurar o armazenamento para SageMaker HyperPod clusters orquestrados com o Amazon EKS, consulte as seções a seguir no workshop [Amazon EKS Support](https://catalog.us-east-1.prod.workshops.aws/workshops/2433d39e-ccfe-4c00-9d3d-9917b729258e) in. SageMaker HyperPod   
[Configure o Amazon FSx for Lustre em SageMaker HyperPod](https://catalog.us-east-1.prod.workshops.aws/workshops/2433d39e-ccfe-4c00-9d3d-9917b729258e/en-US/01-cluster/06-fsx-for-lustre)
[Configure um ponto de montagem para o Amazon S3 [usando](https://docs.aws.amazon.com/AmazonS3/latest/userguide/mountpoint.html) o Mountpoint para o Amazon](https://catalog.us-east-1.prod.workshops.aws/workshops/2433d39e-ccfe-4c00-9d3d-9917b729258e/en-US/01-cluster/09-s3-mountpoint) S3

# Usando o driver CSI do Amazon EBS em SageMaker HyperPod clusters EKS
<a name="sagemaker-hyperpod-eks-ebs"></a>

SageMaker HyperPod suporta o driver Amazon Elastic Block Store (Amazon EBS) Container Storage Interface (CSI), que gerencia o ciclo de vida dos volumes do Amazon EBS como armazenamento para os volumes Kubernetes que você cria. Com o driver CSI do Amazon EBS, você pode criar, anexar e gerenciar seus volumes do Amazon EBS para suas cargas de trabalho de aprendizado de máquina executadas em clusters SageMaker HyperPod com a orquestração do Amazon EKS.

**Topics**
+ [Principais capacidades de armazenamento](#sagemaker-hyperpod-eks-ebs-features)
+ [Casos de uso](#sagemaker-hyperpod-eks-ebs-use)
+ [Configurando o driver CSI do Amazon EBS em SageMaker HyperPod clusters EKS](#sagemaker-hyperpod-eks-ebs-setup)
+ [Usando o APIs](#sagemaker-hyperpod-eks-ebs-setup-apis)

## Principais capacidades de armazenamento
<a name="sagemaker-hyperpod-eks-ebs-features"></a>

O driver CSI do Amazon EBS é SageMaker HyperPod compatível com os seguintes recursos de armazenamento.
+ Provisionamento estático: associa volumes predefinidos do Amazon EBS a [volumes persistentes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) do Kubernetes para serem usados em pods.
+ Provisionamento dinâmico: cria automaticamente volumes do Amazon EBS e volumes persistentes correspondentes a partir de [https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims). Os parâmetros podem ser transmitidos por meio de [https://kubernetes.io/docs/concepts/storage/storage-classes/](https://kubernetes.io/docs/concepts/storage/storage-classes/) para um controle refinado sobre a criação de volumes.
+ Redimensionamento de volumes: expande os volumes existentes atualizando a especificação de tamanho [https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims) sem interromper as workloads em execução. Isso pode ser essencial para lidar com repositórios de modelos crescentes ou para se adaptar a nós maiores sem interrupção do serviço.
+ Instantâneos de volume: cria point-in-time instantâneos de volumes para backup, recuperação e controle de versão de dados.
+ Volume de blocos: fornece acesso a dispositivos de blocos brutos para aplicações de alto desempenho que exigem acesso direto ao armazenamento.
+ Modificação do volume: altera as propriedades do volume, como tipo, operações de entrada ou saída por segundo (IOPS) ou throughput, usando [classes de atributos de volume](https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/).

Para ter mais informações sobre o driver da CSI do Amazon EBS, consulte [Usar armazenamento de volumes do Kubernetes com o Amazon EBS](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html) no *Guia do usuário do Amazon EKS*.

Para ter mais informações sobre armazenamento de pods em um cluster, consulte [Storage](https://kubernetes.io/docs/concepts/storage/) na *documentação do Kubernetes*.

## Casos de uso
<a name="sagemaker-hyperpod-eks-ebs-use"></a>

A integração do driver CSI do Amazon EBS permite vários casos de uso importantes para cargas de trabalho de treinamento e inferência em clusters EKS. SageMaker HyperPod 

**Workloads de treinamento**
+ Armazenamento de conjuntos de dados: provisione volumes para conjuntos de dados de treinamento que persistem nas reinicializações de pod.
+ Armazenamento de ponto de verificação: salve os pontos de verificação do modelo e os resultados intermediários do treinamento.
+ Artefatos compartilhados: acesse conjuntos de dados comuns e artefatos do modelo em várias tarefas de treinamento.

**Workloads de inferência**
+ Armazenamento de modelos: provisione dinamicamente volumes de tamanho adequado com base nos requisitos do modelo.
+ Armazenamento em cache de contêineres: crie armazenamento efêmero para melhorar o desempenho da inferência.
+ Registro em log de eventos: armazene resultados e logs de inferência com armazenamento persistente.

## Configurando o driver CSI do Amazon EBS em SageMaker HyperPod clusters EKS
<a name="sagemaker-hyperpod-eks-ebs-setup"></a>

O driver Amazon Elastic Block Store (Amazon EBS) Container Storage Interface (CSI) permite que você provisione e gerencie dinamicamente volumes do Amazon EBS para suas cargas de trabalho em contêineres executadas em clusters com orquestração EKS. SageMaker HyperPod Esta seção mostra como instalar e configurar o driver CSI do Amazon EBS para permitir o armazenamento persistente para suas workloads de machine learning.

### Pré-requisitos
<a name="sagemaker-hyperpod-eks-ebs-setup-prerequisite"></a>

Antes de começar, faça o seguinte:
+ [Instale e configure o AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)
+ [Crie um SageMaker HyperPod cluster com a orquestração do Amazon EKS](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-create-cluster.html)
+ Instale o driver da CSI do Amazon EBS com a versão [v1.47.0](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/CHANGELOG.md#v1470).

### Permissões adicionais
<a name="sagemaker-hyperpod-eks-ebs-setup-permissions"></a>

Para configurar o complemento do driver da CSI do Amazon EBS, siga as instruções em [Usar armazenamento de volumes do Kubernetes com o Amazon EBS](https://docs.aws.amazon.com/eks/latest/userguide/ebs-csi.html) no Guia do usuário do Amazon EKS. Você também deve acrescentar as permissões adicionais a seguir ao perfil do IAM usado para executar o complemento do driver. Observe que essa é a função do IAM especificada na configuração da sua conta de serviço para o complemento do driver, não a função de execução do 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 o APIs
<a name="sagemaker-hyperpod-eks-ebs-setup-apis"></a>

Como alternativa, você pode usar as operações [AttachClusterNodeVolume](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AttachClusterNodeVolume.html)e de [DetachClusterNodeVolume](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DetachClusterNodeVolume.html)API para anexar e separar seus volumes do Amazon EBS às instâncias de cluster do SageMaker HyperPod EKS.

**Os principais requisitos para usá-los APIs incluem o seguinte.**
+ Tanto o volume do Amazon EBS quanto o cluster SageMaker HyperPod EKS devem pertencer ao mesmo Conta da AWS.
+ A entidade principal da chamada precisa de permissões mínimas específicas para realizar com êxito a operação de anexação ou desconexão. Para ter mais informações sobre essas permissões mínimas, consulte as seções a seguir.
+ Depois de anexar um volume ao seu HyperPod nó, siga as instruções em [Acessar os nós do SageMaker HyperPod cluster](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-access-through-terminal.html) para acessar o nó do cluster e [Disponibilizar um volume para uso](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-using-volumes.html) na montagem do volume conectado.

### Permissões obrigatórias para os `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/*"
        }
    ]
}
```

------

### Permissões obrigatórias para os `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/*"
        }
    ]
}
```

------

### Permissões necessárias para AWS KMS chaves
<a name="sagemaker-hyperpod-eks-ebs-setup-apis-kms"></a>

Adicione as seguintes AWS KMS permissões somente se você estiver usando chaves KMS gerenciadas pelo cliente para criptografar seus volumes do Amazon EBS anexados aos HyperPod nós do cluster. Essas permissões não são obrigatórias se você estiver usando chaves do KMS gerenciadas pela AWS(a opção de criptografia padrão).

------
#### [ 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**  
Essas AWS KMS permissões não são necessárias para `sagemaker:DetachClusterNodeVolume` desanexar um volume Cluster Auto Volume Attachment (CAVA) criptografado com chaves KMS gerenciadas pelo cliente.

# Configurando rótulos e manchas personalizados do Kubernetes na Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints"></a>

 SageMaker HyperPod Os clusters da Amazon com o orquestrador do Amazon Elastic Kubernetes Service (Amazon EKS) oferecem suporte a rótulos e contaminações personalizadas do Kubernetes para nós dentro de grupos de instâncias. Rótulos e contaminações são mecanismos fundamentais de agendamento e organização no Kubernetes que oferecem controle refinado sobre o posicionamento do pod e a utilização de recursos.

Os rótulos são pares de valores-chave que podem ser anexados aos objetos do Kubernetes, permitindo que você organize e selecione recursos com base em atributos. As manchas, trabalhando em conjunto com as tolerâncias, são propriedades específicas dos nós que influenciam o agendamento das cápsulas ao repelir as cápsulas que não têm tolerâncias correspondentes. Juntos, esses mecanismos permitem isolar cargas de trabalho, atribuí-las de acordo com as especificações de hardware e garantir a utilização ideal dos recursos.

## Casos de uso comuns
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-use-cases"></a>

Veja a seguir cenários comuns em que rótulos e tintas personalizados são benéficos:
+ **Prevenção de pods de sistema em instâncias caras** — aplique manchas em instâncias de GPU para evitar que pods de sistema e outras cargas de trabalho não críticas consumam recursos computacionais caros
+ **Integração com ferramentas existentes** - aplique rótulos que correspondam aos padrões de infraestrutura estabelecidos pela sua organização e às configurações de afinidade de nós

## Configurando rótulos e manchas
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-configure"></a>

Você pode configurar rótulos e contaminações personalizados do Kubernetes no nível do grupo de instâncias usando o `KubernetesConfig` parâmetro na configuração do cluster. Rótulos e contaminações são aplicados a todos os nós no grupo de instâncias e persistem durante todo o ciclo de vida do cluster.

O `KubernetesConfig` parâmetro é declarativo, o que significa que você especifica o estado completo desejado de rótulos e manchas para um grupo de instâncias. SageMaker HyperPod em seguida, reconcilia o estado real dos nós para corresponder ao estado desejado.
+ **Adicionar rótulos ou manchas** - Inclua os novos rótulos ou manchas `KubernetesConfig` junto com os existentes que você deseja manter
+ **Atualizando rótulos ou manchas** - Modifique os valores dos rótulos ou manchas que você deseja alterar e inclua todos os outros que deseja manter `KubernetesConfig`
+ **Removendo rótulos ou manchas** - Omita os rótulos ou manchas que você deseja remover do`KubernetesConfig`, mantendo somente aqueles que você deseja reter

### Criação de um cluster com rótulos e manchas
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-create"></a>

Ao criar um novo SageMaker HyperPod cluster, inclua o `KubernetesConfig` parâmetro na configuração do seu grupo de instâncias. O exemplo a seguir mostra como criar um cluster com rótulos e manchas personalizados:

```
{
    "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"
        }
    }
}
```

Neste exemplo:
+ **Etiquetas** - Três etiquetas personalizadas são aplicadas:`env=prod`,`team=ml-training`, e `gpu-type=a100`
+ **Contaminações** - Duas manchas são configuradas para evitar o agendamento indesejado de pods

### Atualização de rótulos e manchas em um cluster existente
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-update"></a>

Você pode modificar rótulos e manchas em um cluster existente usando a `UpdateCluster` API. O exemplo a seguir mostra como atualizar o `KubernetesConfig` para um grupo de instâncias:

```
{
    "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 você atualiza rótulos e manchas, SageMaker HyperPod aplica as alterações a todos os nós no grupo de instâncias. O serviço gerencia a transição do estado atual para o desejado, que você pode monitorar usando a `DescribeCluster` API.

## Rótulo de monitoramento e aplicação de manchas
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-monitor"></a>

SageMaker HyperPod fornece APIs o monitoramento do status de rótulos e contaminações à medida que são aplicados aos nós do cluster.

### Verificando o status no nível do cluster
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-describe-cluster"></a>

Use a `DescribeCluster` API para visualizar os estados atuais e desejados de rótulos e contaminações no nível do grupo de instâncias. O exemplo a seguir mostra a estrutura da resposta:

```
{
    "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"
            }]
        }
    }]
}
```

Quando as instâncias `CurrentLabels` `CurrentTaints` combinam `DesiredLabels` e coincidem`DesiredTaints`, todos os nós no grupo de instâncias têm a configuração especificada aplicada. Se forem diferentes, o cluster ainda está aplicando as alterações.

### Verificando o status individual do nó
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-describe-node"></a>

Para obter detalhes em nível de nó, use a `DescribeClusterNode` API para verificar a configuração de rótulos e manchas de nós individuais. O exemplo a seguir mostra a estrutura da resposta:

```
{
    "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"
            }]
        }
    }
}
```

O monitoramento em nível de nó é útil para solucionar problemas quando rótulos ou contaminações não estão sendo aplicados corretamente a nós específicos ou quando você precisa verificar a configuração de uma instância específica.

## Prefixos reservados
<a name="sagemaker-hyperpod-eks-custom-labels-and-taints-reserved-prefixes"></a>

Alguns prefixos são reservados para uso do sistema e não devem ser usados para rótulos ou manchas personalizadas. Os seguintes prefixos são reservados:
+ `kubernetes.io/`- Reservado para componentes principais do Kubernetes
+ `k8s.io/`- Reservado para componentes principais do Kubernetes
+ `sagemaker.amazonaws.com/`- Reservado para SageMaker HyperPod
+ `eks.amazonaws.com/`- Reservado para Amazon EKS
+ `k8s.aws/`- Reservado para Amazon EKS
+ `karpenter.sh/`- Reservado para escalonamento automático do Karpenter

Rótulos e manchas com esses prefixos são gerenciados pelos componentes do sistema e não devem ser substituídos por valores personalizados.

# Treinamento sem controle na Amazon SageMaker HyperPod
<a name="sagemaker-eks-checkpointless"></a>

O treinamento Checkpointless na Amazon SageMaker HyperPod permite uma recuperação mais rápida de falhas na infraestrutura de treinamento. A documentação a seguir ajuda você a começar com o treinamento sem pontos de verificação e o ajuste fino dos modelos compatíveis. NeMo

O treinamento Checkpointless tem os seguintes pré-requisitos:
+ [Comece a usar o suporte do Amazon EKS em SageMaker HyperPod](sagemaker-hyperpod-eks-prerequisites.md)
+ [Instalar do operador de treinamento](sagemaker-eks-operator-install.md). Você deve instalar a versão v1.2.0 ou superior.

 O treinamento do Checkpointless SageMaker HyperPod é baseado no Guia do usuário do [NVIDIA NeMo Framework](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemotoolkit/core/exp_manager.html#experiment-manager). Você pode realizar um treinamento sem pontos de verificação com receitas SageMaker HyperPod pré-criadas. Se você estiver familiarizado NeMo, o processo de usar as receitas de treinamento sem pontos de verificação é semelhante. Com pequenas alterações, você pode começar a treinar um modelo usando recursos de treinamento sem pontos de verificação que permitem que você se recupere rapidamente de falhas de treinamento.

As HyperPod receitas a seguir são pré-configuradas com otimizações de treinamento sem pontos de verificação. Você pode especificar seus caminhos de dados como parte da receita e usar o script de inicialização associado para executar o treinamento (consulte o guia de início rápido abaixo):


| Modelo | Método | Tamanho | Nodes | Instância | Acelerador | Fórmula | Script | Tutorial | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| PERDA DE PESO | Exemplo completo de ajuste fino | 120b | 16 | p5.48xlarge | GPU H100 | [link](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes/fine-tuning/gpt_oss/checkpointless_gpt_oss_120b_full_fine_tuning.yaml) | [link](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/launcher_scripts/gpt_oss/run_checkpointless_gpt_oss_120b_full_fine_tuning.sh) | [link](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-finetune.html) | 
| PERDA DE PESO | Exemplo de Lora | 120b | 2 | p5.48xlarge | GPU H100 | [link](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes/fine-tuning/gpt_oss/checkpointless_gpt_oss_120b_lora.yaml) | [link](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/launcher_scripts/gpt_oss/run_checkpointless_gpt_oss_120b_lora.sh) | [link](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-peft.html) | 
| Lhama3 | Exemplo de pré-treinamento | 70b | 16 | p5.48xlarge | GPU H100 | [link](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes/training/llama/checkpointless_llama3_70b_pretrain.yaml) | [link](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/launcher_scripts/llama/run_checkpointless_llama3_70b_pretrain.sh) | [link](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-pretraining-llama3.html) | 
| Lhama3 | Exemplo de Lora | 70b | 2 | p5.48xlarge | GPU H100 | [link](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection/recipes/fine-tuning/llama/checkpointless_llama3_70b_lora.yaml) | [link](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/launcher_scripts/llama/run_checkpointless_llama3_70b_lora.sh) | [link](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-peft-llama.html) | 

O guia de início rápido a seguir fornece tutoriais para usar receitas de treinamento sem pontos de verificação:

**Exemplos de introdução**
+ [Tutoriais - Amazon SageMaker HyperPod Checkpointless Full Finetuning GPT OSS 120b](sagemaker-eks-checkpointless-recipes-finetune.md)
+ [Tutoriais - Amazon SageMaker HyperPod Checkpointless PEFT-Lora GPT OSS 120b](sagemaker-eks-checkpointless-recipes-peft.md)
+ [Tutoriais - Amazon SageMaker HyperPod Checkpointless Pretraining Llama 3 70b](sagemaker-eks-checkpointless-recipes-pretraining-llama3.md)
+ [Tutoriais - Amazon SageMaker HyperPod Checkpointless PEFT-lora Llama 3 70b](sagemaker-eks-checkpointless-recipes-peft-llama.md)

Se você quiser pré-treinar ou ajustar modelos personalizados, consulte. [Tutoriais - Pré-treinamento ou ajuste fino de modelos personalizados do Amazon SageMaker HyperPod Checkpointless](sagemaker-eks-checkpointless-recipes-custom.md)

Para saber mais sobre a incorporação de componentes específicos de treinamento sem pontos de verificação,. [HyperPod recursos de treinamento sem pontos de verificação](sagemaker-eks-checkpointless-features.md)

# Tutoriais de treinamento SageMaker HyperPod sem pontos de verificação da Amazon
<a name="sagemaker-eks-checkpointless-recipes"></a>

 HyperPod as [receitas de treinamento sem ponto de verificação](https://github.com/aws/sagemaker-hyperpod-checkpointless-training) são configurações de trabalho predefinidas com recursos de treinamento sem ponto de verificação ativados. O uso dessas receitas facilita o início do treinamento sem pontos de verificação. HyperPod

**Topics**
+ [Tutoriais - Amazon SageMaker HyperPod Checkpointless Full Finetuning GPT OSS 120b](sagemaker-eks-checkpointless-recipes-finetune.md)
+ [Tutoriais - Amazon SageMaker HyperPod Checkpointless PEFT-Lora GPT OSS 120b](sagemaker-eks-checkpointless-recipes-peft.md)
+ [Tutoriais - Amazon SageMaker HyperPod Checkpointless Pretraining Llama 3 70b](sagemaker-eks-checkpointless-recipes-pretraining-llama3.md)
+ [Tutoriais - Amazon SageMaker HyperPod Checkpointless PEFT-lora Llama 3 70b](sagemaker-eks-checkpointless-recipes-peft-llama.md)
+ [Tutoriais - Pré-treinamento ou ajuste fino de modelos personalizados do Amazon SageMaker HyperPod Checkpointless](sagemaker-eks-checkpointless-recipes-custom.md)

# Tutoriais - Amazon SageMaker HyperPod Checkpointless Full Finetuning GPT OSS 120b
<a name="sagemaker-eks-checkpointless-recipes-finetune"></a>

A sequência de etapas a seguir é necessária para executar receitas de treinamento sem pontos de verificação. HyperPod

## Pré-requisitos
<a name="sagemaker-eks-checkpointless-recipes-finetune-prereqs"></a>

Antes de começar a configurar seu ambiente, você deve:
+ [Suporte habilitado para Amazon EKS na Amazon SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Configurar operador HyperPod de treinamento (v1.2\$1)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html)
+ Ter um local de armazenamento compartilhado. Pode ser um sistema de FSx arquivos Amazon ou um sistema NFS acessível a partir dos nós do cluster.
+ Ter dados em um dos seguintes formatos:
  + JSON
  + JSONGZ (JSON compactado)
  + ARROW
+ [Escolha uma receita de treinamento sem ponto de verificação compatível para Llama 70B ou GPT-OSS 120B na fonte.](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection)
+ [Baixe os pesos do modelo Hugging Face](https://huggingface.co/docs/hub/models-downloading) [e converta para o formato compatível com Nemo.](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemo-2.0/features/hf-integration.html#importing-from-hugging-face)
+ Configurar o ambiente

## Configuração do ambiente Kubernetes
<a name="sagemaker-eks-checkpointless-finetune-recipes-kubernetes"></a>

Para configurar seu ambiente Kubernetes, faça o seguinte:

1. Configure um ambiente virtual. Certifique-se de que sua versão do Python seja maior ou igual a 3,10 e menor que 3,14.

   ```
   python3 -m venv ${PWD}/venv
   source venv/bin/activate
   ```

1. [Configurar kubectl e eksctl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)

1. [Instale Helm](https://helm.sh/docs/intro/install/)

1. Conecte-se ao cluster do Kubernetes.

   ```
   aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}"
   ```

1. Instale as dependências usando um dos seguintes métodos:

   1. Método 1: método de SageMaker HyperPod receitas:

      ```
      # 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. Método 2: kubectl com método yaml de trabalho predefinido

      ```
      # install SageMaker HyperPod checkpointless training.
      git clone git@github.com:aws/sagemaker-hyperpod-checkpointless-training.git
      cd sagemaker-hyperpod-checkpointless-training
      ```

Agora você pode iniciar a receita de treinamento sem ponto de verificação usando o inicializador NeMo -style ou usando kubectl.

## Inicie trabalhos de treinamento com o lançador de receitas
<a name="sagemaker-eks-checkpointless-recipes-finetune-launcher"></a>

Você pode usar as SageMaker HyperPod receitas da Amazon para enviar seu trabalho de treinamento. O uso das receitas envolve atualizar k8s.yaml, config.yaml e executar o script de inicialização.

1. Atualizar as `launcher_scripts/gpt_oss/run_checkpointless_gpt_oss_120b_full_fine_tuning.sh`

   your\$1container: um contêiner de aprendizado profundo. Para encontrar a versão mais recente do contêiner de treinamento checkpointless, consulte as notas de versão do [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. Iniciar a tarefa de treinamento

   ```
   bash launcher_scripts/gpt_oss/run_checkpointless_gpt_oss_120b_full_fine_tuning.sh
   ```

Depois de enviar a tarefa de treinamento, você pode usar o comando a seguir para verificar se a enviou com êxito.

```
kubectl get pods

NAME                             READY   STATUS             RESTARTS        AGE
gpt-oss-120b-worker-0             0/1    running               0            36s
```

Se o STATUS estiver em PENDING ou ContainerCreating, execute o comando a seguir para obter mais detalhes

```
kubectl describe pod <name of pod>
```

Depois que o STATUS da tarefa mudar para Running, você poderá examinar o log usando o comando a seguir.

```
kubectl logs <name of pod>
```

O `STATUS` mudará para `COMPLETED` quando você executar `kubectl get pods`.

## Inicie o trabalho de treinamento com kubectl com yaml predefinido
<a name="sagemaker-eks-checkpointless-recipes-finetune-kubectl"></a>

Outra opção é iniciar o treinamento por meio do kubectl com um job pré-definido yaml.

1. atualize o examples/gpt\$1oss/launch/full \$1finetune\$1gpt\$1oss\$1120b\$1checkpointless\$1p5.yaml
   + imagem: Um contêiner de aprendizado profundo. Para encontrar a versão mais recente do contêiner de treinamento checkpointless, consulte as notas de versão do [checkpointless](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html) training.
   + [resume.restore\$1config.path=: O caminho para baixar os pesos do modelo pré-treinado no formato Nemo na etapa de pré-requisitos.](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>: o caminho para o conjunto de dados armazenado no armazenamento compartilhado

1. Envie o trabalho usando kubectl com full\$1finetune\$1gpt\$1oss\$1120b\$1checkpointless\$1p5.yaml

   ```
   kubectl apply -f examples/gpt_oss/launch/full_finetune_gpt_oss_120b_checkpointless_p5.yaml
   ```

Depois de enviar a tarefa de treinamento, você pode usar o comando a seguir para verificar se a enviou com êxito.

```
kubectl get pods

NAME                             READY   STATUS             RESTARTS        AGE
gpt-oss-120b-worker-0             0/1    running               0            36s
```

Se o STATUS estiver em PENDING ou ContainerCreating, execute o comando a seguir para obter mais detalhes

```
kubectl describe pod <name of pod>
```

Depois que o STATUS da tarefa mudar para Running, você poderá examinar o log usando o comando a seguir.

```
kubectl logs <name of pod>
```

O STATUS mudará para Concluído quando você executar kubectl get pods

# Tutoriais - Amazon SageMaker HyperPod Checkpointless PEFT-Lora GPT OSS 120b
<a name="sagemaker-eks-checkpointless-recipes-peft"></a>

A sequência de etapas a seguir é necessária para executar receitas de treinamento sem pontos de verificação. HyperPod

## Pré-requisitos
<a name="sagemaker-eks-checkpointless-recipes-peft-prereqs"></a>

Antes de começar a configurar seu ambiente, você deve:
+ [Suporte habilitado para Amazon EKS na Amazon SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Configurar operador HyperPod de treinamento (v1.2\$1)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html)
+ Ter um local de armazenamento compartilhado. Pode ser um sistema de FSx arquivos Amazon ou um sistema NFS acessível a partir dos nós do cluster.
+ Ter dados em um dos seguintes formatos:
  + JSON
  + JSONGZ (JSON compactado)
  + ARROW
+ [Escolha uma receita de treinamento sem ponto de verificação compatível para Llama 70B ou GPT-OSS 120B na fonte.](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection)
+ [Baixe os pesos do modelo Hugging Face](https://huggingface.co/docs/hub/models-downloading) [e converta para o formato compatível com Nemo.](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemo-2.0/features/hf-integration.html#importing-from-hugging-face)
+ Configurar o ambiente

## Configuração do ambiente Kubernetes
<a name="sagemaker-eks-checkpointless-recipes-peft-kubernetes"></a>

Para configurar seu ambiente Kubernetes, faça o seguinte:

1. Configure um ambiente virtual. Certifique-se de usar Python maior ou igual a 3,10 e < 3,14.

   ```
   python3 -m venv ${PWD}/venv
   source venv/bin/activate
   ```

1. [Configurar kubectl e eksctl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)

1. [Instale Helm](https://helm.sh/docs/intro/install/)

1. Conecte-se ao cluster do Kubernetes.

   ```
   aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}"
   ```

1. Instale as dependências usando um dos seguintes métodos:
   + SageMaker HyperPod método de receitas:

     ```
     # 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 com método yaml de trabalho predefinido

     ```
     # install SageMaker HyperPod checkpointless training.
     git clone git@github.com:aws/sagemaker-hyperpod-checkpointless-training.git
     cd sagemaker-hyperpod-checkpointless-training
     ```

Agora você pode iniciar a receita de treinamento sem ponto de verificação usando o inicializador NeMo -style ou usando kubectl.

## Iniciar a tarefa de treinamento com o inicializador de fórmulas
<a name="sagemaker-eks-checkpointless-recipes-peft-recipes-launcher"></a>

Como alternativa, você pode usar as SageMaker HyperPod receitas para enviar seu trabalho de treinamento. O uso das receitas envolve atualizar k8s.yaml, config.yaml e executar o script de inicialização.

1. Atualizar as `launcher_scripts/gpt_oss/run_checkpointless_gpt_oss_120b_lora.sh`

   your\$1contrainer: um contêiner de aprendizado profundo. Para encontrar a versão mais recente do contêiner de treinamento checkpointless, consulte as notas de versão do [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_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. Iniciar a tarefa de treinamento

   ```
   bash launcher_scripts/gpt_oss/run_checkpointless_gpt_oss_120b_lora.sh
   ```

Depois de enviar a tarefa de treinamento, você pode usar o comando a seguir para verificar se a enviou com êxito.

```
kubectl get pods

NAME                             READY   STATUS             RESTARTS        AGE
gpt-oss-120b-worker-0             0/1    running               0            36s
```

Se o STATUS estiver em PENDING ou ContainerCreating, execute o comando a seguir para obter mais detalhes

```
kubectl describe pod <name of pod>
```

Depois que o STATUS da tarefa mudar para Running, você poderá examinar o log usando o comando a seguir.

```
kubectl logs <name of pod>
```

O STATUS mudará para Concluído quando você executar kubectl get pods

## Inicie o trabalho de treinamento com kubectl com yaml predefinido
<a name="sagemaker-eks-checkpointless-recipes-peft-kubectl"></a>

Outra opção é iniciar o treinamento por meio do kubectl com um job pré-definido yaml.

1. atualize o examples/gpt\$1oss/launch/peft \$1gpt\$1oss\$1120b\$1checkpointless\$1p5.yaml
   + imagem: Um contêiner de aprendizado profundo. Para encontrar a versão mais recente do contêiner de treinamento checkpointless, consulte as notas de versão do [checkpointless](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html) training.
   + [resume.restore\$1config.path=: O caminho para baixar os pesos do modelo pré-treinado no formato Nemo na etapa de pré-requisitos.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-recipes-peft.html#sagemaker-eks-checkpointless-recipes-peft-prereqs) <path\$1to\$1pretrained\$1weights>
   + dataset.dataset\$1path=<path\$1to\$1dataset>: o caminho para o conjunto de dados armazenado no armazenamento compartilhado

1. Envie o trabalho usando kubectl com peft\$1gpt\$1oss\$1120b\$1checkpointless\$1p5.yaml

   ```
   kubectl apply -f examples/gpt_oss/launch/peft_gpt_oss_120b_checkpointless_p5.yaml
   ```

Depois de enviar a tarefa de treinamento, você pode usar o comando a seguir para verificar se a enviou com êxito.

```
kubectl get pods

NAME                                             READY   STATUS             RESTARTS        AGE
gpt-120b-lora-checkpointless-worker-0             0/1    running               0            36s
```

Se o STATUS estiver em PENDING ou ContainerCreating, execute o comando a seguir para obter mais detalhes

```
kubectl describe pod <name of pod>
```

Depois que o STATUS da tarefa mudar para Running, você poderá examinar o log usando o comando a seguir.

```
kubectl logs <name of pod>
```

O STATUS mudará para Concluído quando você executar kubectl get pods

# Tutoriais - Amazon SageMaker HyperPod Checkpointless Pretraining Llama 3 70b
<a name="sagemaker-eks-checkpointless-recipes-pretraining-llama3"></a>

A sequência de etapas a seguir é necessária para executar receitas de treinamento sem pontos de verificação. HyperPod

## Pré-requisitos
<a name="sagemaker-eks-checkpointless-recipes-pretraining-llama3-prereqs"></a>

Antes de começar a configurar seu ambiente, você deve:
+ [Suporte habilitado para Amazon EKS na Amazon SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Configurar operador HyperPod de treinamento (v1.2\$1)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html)
+ Ter um local de armazenamento compartilhado. Pode ser um sistema de FSx arquivos Amazon ou um sistema NFS acessível a partir dos nós do cluster.
+ Ter dados em um dos seguintes formatos:
  + JSON
  + JSONGZ (JSON compactado)
  + ARROW
+ [Escolha uma receita de treinamento sem ponto de verificação compatível para Llama 70B ou GPT-OSS 120B na fonte.](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection)
+ [Baixe os pesos do modelo Hugging Face](https://huggingface.co/docs/hub/models-downloading) [e converta para o formato compatível com Nemo.](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemo-2.0/features/hf-integration.html#importing-from-hugging-face)
+ Configurar o ambiente

## Configuração do ambiente Kubernetes
<a name="sagemaker-eks-checkpointless-recipes-pretraining-llama3-kubernetes"></a>

Para configurar seu ambiente Kubernetes, faça o seguinte:

1. Configure um ambiente virtual. Certifique-se de usar Python maior ou igual a 3,10 e menor que 3,14.

   ```
   python3 -m venv ${PWD}/venv
   source venv/bin/activate
   ```

1. [Configurar kubectl e eksctl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)

1. [Instale Helm](https://helm.sh/docs/intro/install/)

1. Conecte-se ao cluster do Kubernetes.

   ```
   aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}"
   ```

1. Instale as dependências usando um dos seguintes métodos:

   1. Método 1: método de SageMaker HyperPod receitas:

      ```
      # 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. Método 2: kubectl com método yaml de trabalho predefinido

      ```
      # install SageMaker HyperPod checkpointless training.
      git clone git@github.com:aws/sagemaker-hyperpod-checkpointless-training.git
      cd sagemaker-hyperpod-checkpointless-training
      ```

Agora você pode iniciar a receita de treinamento sem ponto de verificação usando o inicializador NeMo -style ou usando kubectl.

## Método 1: Inicie o trabalho de treinamento com o lançador de receitas
<a name="sagemaker-eks-checkpointless-recipes-pretraining-llama3-recipes-launcher"></a>

Como alternativa, você pode usar as SageMaker HyperPod receitas para enviar seu trabalho de treinamento. O uso das receitas envolve atualizar k8s.yaml, config.yaml e executar o script de inicialização.

1. Atualizar as `launcher_scripts/llama/run_checkpointless_llama3_70b_pretrain.sh`

   Um contêiner de aprendizado profundo. Para encontrar a versão mais recente do contêiner de treinamento checkpointless, consulte as notas de versão do [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. Iniciar a tarefa de treinamento

   ```
   bash launcher_scripts/llama/run_checkpointless_llama3_70b_pretrain.sh
   ```

1. Depois de enviar a tarefa de treinamento, você pode usar o comando a seguir para verificar se a enviou com êxito.

   ```
   kubectl get pods
   
   NAME                             READY   STATUS             RESTARTS        AGE
   llama-3-70b-worker-0             0/1    running               0            36s
   ```

1. Se o STATUS estiver em PENDING ou ContainerCreating, execute o comando a seguir para obter mais detalhes

   ```
   kubectl describe pod <name of pod>
   ```

1. Depois que o STATUS da tarefa mudar para Running, você poderá examinar o log usando o comando a seguir.

   ```
   kubectl logs <name of pod>
   ```

   O STATUS mudará para Concluído quando você executar kubectl get pods

## Método 2: iniciar o trabalho de treinamento com kubectl com yaml predefinido
<a name="sagemaker-eks-checkpointless-recipes-pretraining-llama3-kubectl"></a>

Outra opção é iniciar o treinamento por meio do kubectl com um job pré-definido yaml.

1. Atualizar a `examples/llama3/launch/pretrain_llama3_70b_checkpointless_p5.yaml`
   + `image`: contêiner de deep learning. Para encontrar a versão mais recente do contêiner de treinamento checkpointless, consulte as notas de versão do [checkpointless](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html) training.
   + `resume.restore_config.path=<path_to_pretrained_weights>`[: O caminho para baixar os pesos do modelo pré-treinado no formato Nemo na etapa de pré-requisitos.](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>`: o caminho para o conjunto de dados armazenado no armazenamento compartilhado

1. Envie o trabalho usando kubectl com `pretrain_llama3_70b_checkpointless_p5.yaml`

   ```
   kubectl apply -f examples/llama3/launch/pretrain_llama3_70b_checkpointless_p5.yaml
   ```

1. Depois de enviar a tarefa de treinamento, você pode usar o comando a seguir para verificar se a enviou com êxito.

   ```
   kubectl get pods
   
   NAME                                             READY   STATUS             RESTARTS        AGE
   llama3-pretrain-checkpointless-worker-0             0/1    running               0            36s
   ```

1. Se o STATUS estiver em PENDING ou ContainerCreating, execute o comando a seguir para obter mais detalhes

   ```
   kubectl describe pod <name of pod>
   ```

1. Depois que o STATUS da tarefa mudar para Running, você poderá examinar o log usando o comando a seguir.

   ```
   kubectl logs <name of pod>
   ```

   O STATUS mudará para Concluído quando você executar kubectl get pods

# Tutoriais - Amazon SageMaker HyperPod Checkpointless PEFT-lora Llama 3 70b
<a name="sagemaker-eks-checkpointless-recipes-peft-llama"></a>

A sequência de etapas a seguir é necessária para executar receitas de treinamento sem pontos de verificação. HyperPod

## Pré-requisitos
<a name="sagemaker-eks-checkpointless-recipes-peft-llama-prereqs"></a>

Antes de começar a configurar seu ambiente, você deve:
+ [Suporte habilitado para Amazon EKS na Amazon SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Configurar operador HyperPod de treinamento (v1.2\$1)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html)
+ Ter um local de armazenamento compartilhado. Pode ser um sistema de FSx arquivos Amazon ou um sistema NFS acessível a partir dos nós do cluster.
+ Ter dados em um dos seguintes formatos:
  + JSON
  + JSONGZ (JSON compactado)
  + ARROW
+ [Escolha uma receita de treinamento sem ponto de verificação compatível para Llama 70B ou GPT-OSS 120B na fonte.](https://github.com/aws/sagemaker-hyperpod-recipes/tree/main/recipes_collection)
+ [Baixe os pesos do modelo Hugging Face](https://huggingface.co/docs/hub/models-downloading) [e converta para o formato compatível com Nemo.](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemo-2.0/features/hf-integration.html#importing-from-hugging-face)
+ Configurar o ambiente

## Configuração do ambiente Kubernetes
<a name="sagemaker-eks-checkpointless-recipes-peft-llama-kubernetes"></a>

Para configurar seu ambiente Kubernetes, faça o seguinte:

1. Configure um ambiente virtual. Certifique-se de usar Python maior ou igual a 3,10 e menor que 3,14.

   ```
   python3 -m venv ${PWD}/venv
   source venv/bin/activate
   ```

1. [Configurar kubectl e eksctl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)

1. [Instale Helm](https://helm.sh/docs/intro/install/)

1. Conecte-se ao cluster do Kubernetes.

   ```
   aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}"
   ```

1. Instale as dependências usando um dos seguintes métodos:

   1. Método 1: método de SageMaker HyperPod receitas:

      ```
      # 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. Método 2: kubectl com método yaml de trabalho predefinido

      ```
      # install SageMaker HyperPod checkpointless training.
      git clone git@github.com:aws/sagemaker-hyperpod-checkpointless-training.git
      cd sagemaker-hyperpod-checkpointless-training
      ```

Agora você pode iniciar a receita de treinamento sem ponto de verificação usando o inicializador NeMo -style ou usando kubectl.

## Método 1: Inicie o trabalho de treinamento com o lançador de receitas
<a name="sagemaker-eks-checkpointless-recipes-peft-llama-recipes-launcher"></a>

Como alternativa, você pode usar as SageMaker HyperPod receitas para enviar seu trabalho de treinamento. O uso das receitas envolve atualizar k8s.yaml, config.yaml e executar o script de inicialização.

1. Atualizar as `launcher_scripts/llama/run_checkpointless_llama3_70b_lora.sh`

   Um contêiner de aprendizado profundo. Para encontrar a versão mais recente do contêiner de treinamento checkpointless, consulte as notas de versão do [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. Iniciar a tarefa de treinamento

   ```
   bash launcher_scripts/llama/run_checkpointless_llama3_70b_lora.sh
   ```

1. Depois de enviar a tarefa de treinamento, você pode usar o comando a seguir para verificar se a enviou com êxito.

   ```
   kubectl get pods
   
   NAME                             READY   STATUS             RESTARTS        AGE
   llama-3-70b-worker-0             0/1    running               0            36s
   ```

1. Se o STATUS estiver em PENDING ou ContainerCreating, execute o comando a seguir para obter mais detalhes

   ```
   kubectl describe pod <name of pod>
   ```

1. Depois que o STATUS da tarefa mudar para Running, você poderá examinar o log usando o comando a seguir.

   ```
   kubectl logs <name of pod>
   ```

   O STATUS mudará para Concluído quando você executar kubectl get pods

## Método 2: iniciar o trabalho de treinamento com kubectl com yaml predefinido
<a name="sagemaker-eks-checkpointless-recipes-peft-llama-kubectl"></a>

Outra opção é iniciar o treinamento por meio do kubectl com um job pré-definido yaml.

1. Atualizar a `examples/llama3/launch/peft_llama3_70b_checkpointless_p5.yaml`
   + `image`: contêiner de deep learning. Para encontrar a versão mais recente do contêiner de treinamento checkpointless, consulte as notas de versão do [checkpointless](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless-release-notes.html) training.
   + `resume.restore_config.path=<path_to_pretrained_weights>`[: O caminho para baixar os pesos do modelo pré-treinado no formato Nemo na etapa de pré-requisitos.](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>`: o caminho para o conjunto de dados armazenado no armazenamento compartilhado

1. Envie o trabalho usando kubectl com `peft_llama3_70b_checkpointless_p5.yaml`

   ```
   kubectl apply -f examples/llama3/launch/peft_llama3_70b_checkpointless_p5.yaml
   ```

1. Depois de enviar a tarefa de treinamento, você pode usar o comando a seguir para verificar se a enviou com êxito.

   ```
   kubectl get pods
   
   NAME                                             READY   STATUS             RESTARTS        AGE
   llama3-70b-lora-checkpointless-worker-0             0/1    running               0            36s
   ```

1. Se o STATUS estiver em PENDING ou ContainerCreating, execute o comando a seguir para obter mais detalhes

   ```
   kubectl describe pod <name of pod>
   ```

1. Depois que o STATUS da tarefa mudar para Running, você poderá examinar o log usando o comando a seguir.

   ```
   kubectl logs <name of pod>
   ```

   O STATUS mudará para Concluído quando você executar kubectl get pods

# Tutoriais - Pré-treinamento ou ajuste fino de modelos personalizados do Amazon SageMaker HyperPod Checkpointless
<a name="sagemaker-eks-checkpointless-recipes-custom"></a>

A sequência de etapas a seguir é necessária para realizar um treinamento sem pontos de verificação com seu modelo personalizado ativado. HyperPod

## Pré-requisitos
<a name="sagemaker-eks-checkpointless-recipes-custom-prereqs"></a>

Antes de começar a configurar seu ambiente, você deve:
+ [Suporte habilitado para Amazon EKS na Amazon SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Configurar operador HyperPod de treinamento (v1.2\$1)](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html)
+ Ter um local de armazenamento compartilhado. Pode ser um sistema de FSx arquivos Amazon ou um sistema NFS acessível a partir dos nós do cluster.
+ Ter dados em um dos seguintes formatos:
  + JSON
  + JSONGZ (JSON compactado)
  + ARROW
+ [Baixe os pesos do modelo Hugging Face](https://huggingface.co/docs/hub/models-downloading) [e converta para o formato compatível com Nemo.](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemo-2.0/features/hf-integration.html#importing-from-hugging-face)
+ Configurar o ambiente

## Configuração do ambiente Kubernetes
<a name="sagemaker-eks-checkpointless-recipes-custom-kubernetes"></a>

Para configurar seu ambiente Kubernetes, faça o seguinte:

1. Configure um ambiente virtual. Certifique-se de usar Python maior ou igual a 3,10 e menor que 3,14.

   ```
   python3 -m venv ${PWD}/venv
   source venv/bin/activate
   ```

1. [Configurar kubectl e eksctl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html)

1. Conecte-se ao cluster do Kubernetes.

   ```
   aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}"
   ```

1. Instale as dependências

   ```
   # install SageMaker HyperPod checkpointless training.
   git clone git@github.com:aws/sagemaker-hyperpod-checkpointless-training.git
   cd sagemaker-hyperpod-checkpointless-training
   ```

## Instruções de modificação de treinamento Checkpointless
<a name="sagemaker-eks-checkpointless-recipes-custom-modification-instructions"></a>

Para adotar incrementalmente o treinamento sem pontos de verificação para modelos personalizados, siga o guia de integração (aqui usamos o pré-treinamento do Llama 3 70b como exemplo), que envolve:
+ Criação rápida de comunicadores
+ Carregador de dados mapeado na memória (MMAP)
+ Recuperação em andamento e sem pontos de verificação

### Componente 1: Criação rápida de comunicadores
<a name="sagemaker-eks-checkpointless-recipes-custom-component1"></a>

Isso é para otimizar o tempo para estabelecer conexões entre os trabalhadores. Não há necessidade de alterações de código e requer apenas a configuração de variáveis 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 \
              ...
```

A alteração completa pode ser encontrada na configuração do trabalho de [lançamento do pré-treinamento llama3 70](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/llama3/launch/pretrain_llama3_70b_checkpointless_p5.yaml).

### Componente 2: carregador de dados mapeado na memória (MMAP)
<a name="sagemaker-eks-checkpointless-recipes-custom-component2"></a>

O MMAP armazena em cache para armazenar amostras de dados pré-buscadas e permitir o início imediato do treinamento sem precisar esperar pelo pré-processamento dos dados. Ele requer mudanças mínimas de código para ser adotado ao encapsular o dataloader existente.

```
data_module = MMAPDataModule(
  data_module=base_data_module,
  mmap_config=CacheResumeMMAPConfig(cache_dir=…)
)
```

### Componentes 3 e 4: Recuperação em andamento e sem pontos de verificação
<a name="sagemaker-eks-checkpointless-recipes-custom-components3-4"></a>

Isso permite a recuperação de falhas sem reiniciar os processos de treinamento ou carregar dos pontos de verificação. Mudanças adicionais no código são necessárias (atualização da configuração de estratégia e treinamento, encapsulamento da principal existente)

```
@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,
)
```

[A alteração completa pode ser encontrada no [script de entrada de pré-treinamento llama3 70](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/llama3/llama3_70b_pretrain_checkpointless.py) e a alteração correspondente na configuração de treinamento pode ser encontrada na configuração de treinamento llama3 70b.](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/llama3/config/llama3_70b_peft_checkpointless.yaml)

### Treinamento de lançamento
<a name="sagemaker-eks-checkpointless-recipes-custom-launch"></a>

Agora você pode iniciar o treinamento sem pontos de verificação usando kubectl.

```
kubectl apply -f your_job_config.yaml
```

# HyperPod recursos de treinamento sem pontos de verificação
<a name="sagemaker-eks-checkpointless-features"></a>

Consulte as páginas a seguir para saber mais sobre os recursos de treinamento no treinamento sem pontos de verificação.

**Topics**
+ [Repositórios de treinamento SageMaker HyperPod sem pontos de verificação da Amazon](#sagemaker-eks-checkpointless-repositories)
+ [Melhorias na inicialização da comunicação coletiva](sagemaker-eks-checkpointless-features-communication.md)
+ [Carregador de dados mapeado na memória](sagemaker-eks-checkpointless-features-mmap.md)
+ [Recuperação em processo e treinamento sem pontos de verificação](sagemaker-eks-checkpointless-in-process-recovery.md)

## Repositórios de treinamento SageMaker HyperPod sem pontos de verificação da Amazon
<a name="sagemaker-eks-checkpointless-repositories"></a>

 HyperPod o [treinamento sem ponto de verificação](https://github.com/aws/sagemaker-hyperpod-checkpointless-training#) acelera a recuperação de falhas de cluster em ambientes de treinamento distribuídos em grande escala por meio de otimizações em nível de estrutura. Essas otimizações são fornecidas por meio de uma imagem básica de contêiner que inclui melhorias aprimoradas na inicialização da NCCL, otimizações no carregamento de dados e componentes de recuperação em processo e sem pontos de verificação. O pacote de treinamento HyperPod checkpointless é construído sobre essa base.

O treinamento Checkpointless é habilitado por meio de três faixas de otimização que funcionam em conjunto:
+ **Melhorias na inicialização da comunicação (NCCL e Gloo)** - Elimine os gargalos de comunicação descentralizando as informações de classificação por pares e anéis (caixa vermelha abaixo).
+ **Otimizações de carregamento de dados** - Reduza o tempo necessário para servir o primeiro lote de dados durante as operações de reinicialização (caixas laranja abaixo).
+ **Redução da sobrecarga de reinicialização do programa** - Minimize os custos de reinicialização e possibilite o reabastecimento ininterrupto por meio da recuperação do processo em nós íntegros (caixas azuis e verdes abaixo).

![\[alt text not found\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/hyperpod/hyperpod-checkpointless-optimization-tracks.png)


# Melhorias na inicialização da comunicação coletiva
<a name="sagemaker-eks-checkpointless-features-communication"></a>

A NCCL e a Gloo são bibliotecas de comunicação fundamentais que permitem operações coletivas (como redução total e transmissão) em processos de treinamento distribuídos. No entanto, a inicialização tradicional do NCCL e do Gloo pode criar gargalos durante a recuperação de falhas.

O processo de recuperação padrão exige que todos os processos se conectem a um processo centralizado TCPStore e coordenado por meio de um processo raiz, introduzindo uma sobrecarga cara que se torna particularmente problemática durante as reinicializações. Esse design centralizado cria três problemas críticos: sobrecarga de coordenação decorrente de TCPStore conexões obrigatórias, atrasos na recuperação, pois cada reinicialização deve repetir a sequência de inicialização completa e um único ponto de falha no próprio processo raiz. Isso impõe etapas de coordenação caras e centralizadas toda vez que o treinamento é inicializado ou reiniciado.

HyperPod o treinamento sem ponto de verificação elimina esses gargalos de coordenação, permitindo uma recuperação mais rápida de falhas, tornando a inicialização “sem raiz” e “.” TCPStoreless

## Configurações sem raiz
<a name="sagemaker-eks-checkpointless-features-communication-rootless-config"></a>

Para habilitar o Rootless, basta expor as seguintes variáveis de ambiente.

```
export HPCT_USE_ROOTLESS=1 && \
sysctl -w net.ipv4.ip_local_port_range="20000 65535" && \
```

HPCT\$1USE\$1ROOTLESS: 0 ou 1. Use para ligar e desligar sem raiz

sysctl -w net.ipv4.ip\$1local\$1port\$1range="20000 65535": Defina o intervalo de portas do sistema

Veja [o exemplo](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/llama3/launch/pretrain_llama3_70b_checkpointless_p5.yaml#L111-L113) para habilitar o Rootless.

## Sem raízes
<a name="sagemaker-eks-checkpointless-features-communication-rootless"></a>

HyperPod O treinamento checkpointless oferece novos métodos de inicialização, Rootless e, para grupos de processos NCCL e TCPStoreless Gloo.

A implementação dessas otimizações envolve a modificação de NCCL, Gloo e: PyTorch
+ Estendendo APIs a biblioteca de terceiros para permitir otimizações NCCL e Gloo sem raiz e sem armazenamento, mantendo a compatibilidade com versões anteriores
+ Atualização de back-ends de grupos de processos para usar condicionalmente caminhos otimizados e lidar com problemas de recuperação em processo
+ Ignorando a TCPStore criação cara na camada PyTorch distribuída e mantendo padrões de endereço simétricos por meio de contadores de grupos globais

O gráfico a seguir mostra a arquitetura das bibliotecas de treinamento distribuídas e as mudanças feitas no treinamento sem pontos de verificação.

![\[O gráfico a seguir mostra a arquitetura das bibliotecas de treinamento distribuídas e as mudanças feitas no treinamento sem pontos de verificação.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/hyperpod/hyperpod-checkpointless-training-libraries.png)


### NCCL e Gloo
<a name="sagemaker-eks-checkpointless-features-communication-nccl-gloo"></a>

Esses são pacotes independentes que executam a funcionalidade principal das comunicações coletivas. Eles fornecem a chave APIs, como ncclCommInit Rank, para inicializar redes de comunicação, gerenciar os recursos subjacentes e realizar comunicações coletivas. Depois de fazer alterações personalizadas no NCCL e no Gloo, o Rootless e o Storeless otimizam (por exemplo, pulam a conexão com a) inicialização da rede de comunicação. TCPStore Você pode alternar entre usar os caminhos de código originais ou os caminhos de código otimizados de forma flexível.

### PyTorch backend do grupo de processos
<a name="sagemaker-eks-checkpointless-features-communication-pytorch"></a>

Os back-ends do grupo de processos, especificamente ProcessGroup NCCL e ProcessGroupGloo, implementam o ProcessGroup APIs invocando suas bibliotecas subjacentes APIs correspondentes. Como ampliamos as bibliotecas de terceiros APIs, precisamos invocá-las adequadamente e fazer trocas de caminho de código com base nas configurações dos clientes.

Além dos caminhos do código de otimização, também alteramos o back-end do grupo de processos para oferecer suporte à recuperação em processo.

# Carregador de dados mapeado na memória
<a name="sagemaker-eks-checkpointless-features-mmap"></a>

Outra sobrecarga de reinicialização decorre do carregamento de dados: o cluster de treinamento permanece ocioso enquanto o carregador de dados inicializa, baixa dados de sistemas de arquivos remotos e os processa em lotes.

Para resolver isso, apresentamos o carregador de dados mapeado em memória DataLoader (MMAP), que armazena em cache os lotes pré-buscados na memória persistente, garantindo que eles permaneçam disponíveis mesmo após uma reinicialização induzida por falhas. Essa abordagem elimina o tempo de configuração do carregador de dados e permite que o treinamento seja retomado imediatamente usando lotes em cache, enquanto o carregador de dados reinicializa e busca simultaneamente os dados subsequentes em segundo plano. O cache de dados reside em cada classificação que requer dados de treinamento e mantém dois tipos de lotes: lotes consumidos recentemente que foram usados para treinamento e lotes pré-buscados prontos para uso imediato.

![\[Esta imagem ilustra o carregador de dados MMAP, os caches e os lotes consumidos.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/hyperpod/hyperpod-checkpointless-mmap-dataloader.png)


O dataloader MMAP oferece dois recursos a seguir:
+ **Pré-busca de dados - busca** e armazena em cache proativamente os dados gerados pelo dataloader
+ **Cache persistente** - armazena lotes consumidos e pré-buscados em um sistema de arquivos temporário que sobrevive à reinicialização do processo

Usando o cache, o trabalho de treinamento se beneficiará de:
+ Espaço de **memória reduzido** - aproveita a memória mapeada I/O para manter uma única cópia compartilhada dos dados na memória da CPU do host, eliminando cópias redundantes nos processos da GPU (por exemplo, reduz de 8 cópias para 1 em uma instância p5 com 8) GPUs
+ **Recuperação mais rápida** - reduz o tempo médio de reinicialização (MTTR) ao permitir que o treinamento seja retomado imediatamente a partir dos lotes armazenados em cache, eliminando a espera pela reinicialização do carregador de dados e pela geração do primeiro lote

## Configurações do MMAP
<a name="sagemaker-eks-checkpointless-features-communication-mmap-config"></a>

Para usar o MMAP, basta passar o módulo de dados original para `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`: os parâmetros do MMAP Dataloader controlam a localização do diretório de cache, os limites de tamanho e a delegação de busca de dados. Por padrão, somente a classificação TP 0 por nó busca dados da fonte, enquanto outras classificações no mesmo grupo de replicação de dados leem do cache compartilhado, eliminando transferências redundantes.

`MMAPDataModule`: Ele envolve o módulo de dados original e retorna o carregador de dados mmap para treinamento e validação.

Veja [o exemplo](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/gpt_oss/gpt_oss_120b_full_finetune_checkpointless.py#L101-L109) para habilitar o MMAP.

## Referência de 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 de configuração para a funcionalidade do carregador de dados mapeado na memória (MMAP) em treinamento sem ponto de verificação. HyperPod 

Essa configuração permite o carregamento eficiente de dados com recursos de armazenamento em cache e pré-busca, permitindo que o treinamento seja retomado rapidamente após falhas, mantendo lotes de dados em cache em arquivos mapeados na memória.

**Parâmetros**
+ **cache\$1dir** (str, opcional) — Caminho do diretório para armazenar lotes de dados em cache. Padrão: “/dev/shm/pdl\$1cache”
+ **prefetch\$1length** (int, opcional) — Número de lotes a serem pré-buscados com antecedência durante o treinamento. Padrão: 10
+ **val\$1prefetch\$1length** (int, opcional) — Número de lotes a serem pré-buscados com antecedência durante a validação. Padrão: 10
+ **lookback\$1length** (int, opcional) — Número de lotes usados anteriormente para manter em cache para possível reutilização. Padrão: 2
+ **checkpoint\$1frequency** (int, opcional) — Frequência das etapas de checkpoint do modelo. Usado para otimização do desempenho do cache. Padrão: nenhum
+ **model\$1parallel\$1group (object, optional) — Grupo** de processos para paralelismo de modelos. Se Nenhum, será criado automaticamente. Padrão: nenhum
+ **enable\$1batch\$1encryption** (bool, optional) — Se a criptografia deve ser ativada para dados em lote em cache. Padrão: False

**Métodos**

```
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)
```

Cria e retorna uma instância configurada do dataloader MMAP.

**Parâmetros**
+ **dataloader\$1init\$1callable (Callable**) — Função para inicializar o carregador de dados subjacente
+ **parallel\$1state\$1util (object) — Utilitário** para gerenciar o estado paralelo entre processos
+ **step** (int) — A etapa de dados a partir da qual continuar durante o treinamento
+ **is\$1data\$1loading\$1rank** (Callable) — Função que retorna True se a classificação atual deve carregar dados
+ **create\$1model\$1parallel\$1group\$1callable (Callable) — Função para criar um grupo** de processos paralelos do modelo
+ **name** (str, opcional) — Identificador de nome para o carregador de dados. Padrão: “Train”
+ **is\$1val** (bool, optional) — Se este é um carregador de dados de validação. Padrão: False
+ **cached\$1len** (int, opcional) — Tamanho dos dados em cache se forem retomados do cache existente. Padrão: 0

Retorna `CacheResumePrefetchedDataLoader` ou `CacheResumeReadDataLoader` — Instância configurada do carregador de dados MMAP

Aumenta `ValueError` se o parâmetro da etapa for`None`.

**Exemplo**

```
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"
)
```

**Observações**
+ O diretório de cache deve ter espaço suficiente e I/O desempenho rápido (por exemplo, /dev/shm para armazenamento na memória).
+ `checkpoint_frequency`A configuração melhora o desempenho do cache ao alinhar o gerenciamento do cache com o ponto de verificação do modelo
+ Para validação dataloaders (`is_val=True`), a etapa é redefinida para 0 e a inicialização a frio é forçada
+ Diferentes implementações de carregadores de dados são usadas com base no fato de a classificação atual ser responsável pelo carregamento de dados

### MMAPDataMódulo
<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)
```

Um DataModule wrapper PyTorch Lightning que aplica recursos de carregamento de dados mapeados em memória (MMAP) aos treinamentos existentes para fins de verificação sem necessidade de verificação. DataModules 

Essa classe agrupa um PyTorch Lightning existente DataModule e o aprimora com a funcionalidade MMAP, permitindo um armazenamento eficiente de dados em cache e uma recuperação rápida durante falhas de treinamento. Ele mantém a compatibilidade com a DataModule interface original enquanto adiciona recursos de treinamento sem pontos de verificação.

Parâmetros

módulo de dados (pl. LightningDataModule)  
O subjacente DataModule ao encapsulamento (por exemplo, LLMData Módulo)

mmap\$1config () MMAPConfig  
O objeto de configuração MMAP que define o comportamento e os parâmetros de armazenamento em cache

`parallel_state_util`(MegatronParallelStateUtil, opcional)  
Utilitário para gerenciar estados paralelos em processos distribuídos. Padrão: MegatronParallelStateUtil ()

`is_data_loading_rank`(Pode ser chamado, opcional)  
Função que retorna True se a classificação atual precisar carregar dados. Se Nenhum, o padrão é parallel\$1state\$1util.is\$1tp\$10. Padrão: nenhum

**Atributos.**

`global_step` (int)  
Etapa de treinamento global atual, usada para retomar a partir dos postos de controle

`cached_train_dl_len` (int)  
Tamanho em cache do carregador de dados de treinamento

`cached_val_dl_len` (int)  
Tamanho em cache do carregador de dados de validação

**Métodos**

```
setup(stage=None)
```

Configure o módulo de dados subjacente para o estágio de treinamento especificado.

`stage`(str, opcional)  
Estágio do treinamento ('ajuste', 'validação', 'teste' ou 'previsão'). Padrão: nenhum

```
train_dataloader()
```

Crie o treinamento DataLoader com a embalagem MMAP.

*Retorna:* DataLoader — Treinamento empacotado em MMAP DataLoader com recursos de cache e pré-busca

```
val_dataloader()
```

Crie a validação DataLoader com o empacotamento MMAP.

*Retorna:* DataLoader — Validação DataLoader empacotada em MMAP com recursos de cache

```
test_dataloader()
```

Crie o teste DataLoader se o módulo de dados subjacente o suportar.

*Retorna:* DataLoader ou Nenhum — Teste DataLoader do módulo de dados subjacente, ou Nenhum se não for suportado

```
predict_dataloader()
```

Crie a previsão DataLoader se o módulo de dados subjacente a suportar.

*Retorna:* DataLoader ou Nenhum — Preveja a DataLoader partir do módulo de dados subjacente, ou Nenhum se não for suportado

```
load_checkpoint(checkpoint)
```

Carregue as informações do ponto de verificação para retomar o treinamento a partir de uma etapa específica.

ponto de verificação (ditado)  
Dicionário de pontos de verificação contendo a chave 'global\$1step'

```
get_underlying_data_module()
```

Obtenha o módulo de dados empacotado subjacente.

*Devoluções:* pl. LightningDataModule — O módulo de dados original que foi empacotado

```
state_dict()
```

Obtenha o dicionário estadual do MMAP DataModule para pontos de verificação.

*Retorna:* dict — Dicionário contendo comprimentos de carregadores de dados em cache

```
load_state_dict(state_dict)
```

Carregue o dicionário de estado para restaurar o DataModule estado do MMAP.

`state_dict`(ditado)  
Dicionário de estado a ser carregado

**Properties**

```
data_sampler
```

Exponha o amostrador de dados do módulo de dados subjacente à estrutura. NeMo 

*Retorna:* objeto ou Nenhum — O amostrador de dados do módulo de dados subjacente

**Exemplo**

```
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)
```

**Observações**
+ O wrapper delega a maioria dos atributos de acesso ao módulo de dados subjacente usando \$1\$1getattr\$1\$1
+ Somente as classificações de carregamento de dados realmente inicializam e usam o módulo de dados subjacente; outras classificações usam carregadores de dados falsos
+ Os comprimentos do carregador de dados em cache são mantidos para otimizar o desempenho durante a retomada do treinamento

# Recuperação em processo e treinamento sem pontos de verificação
<a name="sagemaker-eks-checkpointless-in-process-recovery"></a>

HyperPod o treinamento sem ponto de verificação usa redundância de modelo para permitir um treinamento tolerante a falhas. O princípio fundamental é que os estados do modelo e do otimizador sejam totalmente replicados em vários grupos de nós, com atualizações de peso e alterações de estado do otimizador replicadas de forma síncrona em cada grupo. Quando ocorre uma falha, as réplicas íntegras concluem suas etapas de otimização e transmitem os model/optimizer estados atualizados às réplicas em recuperação.

Essa abordagem baseada em redundância de modelos permite vários mecanismos de tratamento de falhas:
+ **Recuperação em processo:** os processos permanecem ativos apesar das falhas, mantendo todos os estados do modelo e do otimizador na memória da GPU com os valores mais recentes
+ **Tratamento eficiente de abortos: abortos** controlados e limpeza de recursos para as operações afetadas
+ **Reexecução do bloco de código:** reexecutando somente os segmentos de código afetados em um Bloco de Código Reexecutável (RCB)
+ **Recuperação sem pontos de verificação sem perda do progresso do treinamento:** como os processos persistem e os estados permanecem na memória, nenhum progresso do treinamento é perdido; quando ocorre uma falha, o treinamento é retomado a partir da etapa anterior, em vez de ser retomado a partir do último ponto de verificação salvo

**Configurações sem pontos de verificação**

Aqui está o trecho principal do treinamento sem pontos de verificação.

```
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`: Todas as classificações aguardarão as informações de classificação da HyperpodTrainingOperator infraestrutura.
+ `HPWrapper`: invólucro de função Python que permite recursos de reinicialização para um Bloco de Código Reexecutável (RCB). A implementação usa um gerenciador de contexto em vez de um decorador Python porque os decoradores não podem determinar o número de monitores a RCBs serem monitorados em tempo de execução.
+ `CudaHealthCheck`: garante que o contexto CUDA do processo atual esteja em um estado íntegro por meio da sincronização com a GPU. Usa o dispositivo especificado pela variável de ambiente LOCAL\$1RANK ou usa como padrão o dispositivo CUDA do thread principal se LOCAL\$1RANK não estiver definido.
+ `HPAgentK8sAPIFactory`: essa API permite que o treinamento sem pontos de verificação consulte o status de treinamento de outros pods no cluster de treinamento do Kubernetes. Ele também fornece uma barreira em nível de infraestrutura que garante que todas as fileiras concluam com êxito as operações de abortamento e reinicialização antes de continuar.
+ `CheckpointManager`: gerencia pontos de verificação e peer-to-peer recuperação na memória para tolerância a falhas sem pontos de verificação. Ela tem as seguintes responsabilidades principais:
  + **Gerenciamento de pontos de verificação na memória**: salva e gerencia os pontos de verificação NeMo do modelo na memória para uma recuperação rápida sem disco I/O durante cenários de recuperação sem pontos de verificação.
  + **Validação da viabilidade de recuperação**: determina se a recuperação sem pontos de verificação é possível validando a consistência global das etapas, a integridade da classificação e a integridade do estado do modelo.
  + **Peer-to-Peer Orquestração de recuperação**: coordena a transferência de pontos de verificação entre classificações saudáveis e falhadas usando comunicação distribuída para recuperação rápida.
  + **Gerenciamento de estado RNG**: preserva e restaura estados geradores de números aleatórios em Python, NumPy PyTorch, e Megatron para recuperação determinística.
  + **[Opcional] Descarga do ponto de verificação: descarregue** no ponto de verificação da memória para a CPU se a GPU não tiver capacidade de memória suficiente.
+ `PEFTCheckpointManager`: Ele se estende `CheckpointManager` mantendo os pesos do modelo básico para o ajuste fino do PEFT.
+ `CheckpointlessAbortManager`: gerencia as operações de aborto em um thread em segundo plano quando um erro é encontrado. Por padrão, ele aborta TransformerEngine, Checkpointing TorchDistributed, e. DataLoader Os usuários podem registrar manipuladores de aborto personalizados conforme necessário. Após a conclusão do aborto, toda a comunicação deve ser interrompida e todos os processos e threads devem ser encerrados para evitar vazamentos de recursos.
+ `CheckpointlessFinalizeCleanup`: manipula as operações finais de limpeza no encadeamento principal para componentes que não podem ser abortados ou limpos com segurança no encadeamento em segundo plano.
+ `CheckpointlessMegatronStrategy`: Isso é herdado do `MegatronStrategy` de Nemo. Observe que o treinamento sem ponto de verificação requer pelo menos 2 `num_distributed_optimizer_instances` para que haja replicação do otimizador. A estratégia também cuida do registro de atributos essenciais e da inicialização do grupo de processos, por exemplo, sem root.
+ `CheckpointlessCallback`: Retorno de chamada relâmpago que integra o NeMo treinamento ao sistema de tolerância a falhas do checkpointless training. Ela tem as seguintes responsabilidades principais:
  + **Gerenciamento do ciclo de vida da etapa de treinamento**: monitora o progresso do treinamento e ParameterUpdateLock coordena a recuperação enable/disable sem pontos de verificação com base no estado do treinamento (primeira etapa versus etapas subsequentes).
  + **Coordenação do estado do ponto de verificação**: gerencia o salvamento/restauração do ponto de verificação do modelo base PEFT na memória.
+ `CheckpointlessCompatibleConnector`: uma PTL `CheckpointConnector` que tenta pré-carregar o arquivo do ponto de verificação na memória, com o caminho de origem determinado nesta prioridade:
  + experimente a recuperação sem pontos de verificação
  + se o checkpointless retornar None, volte para parent.resume\$1start ()

Veja [o exemplo](https://github.com/aws/sagemaker-hyperpod-checkpointless-training/blob/main/examples/gpt_oss/gpt_oss_120b_full_finetune.py) para adicionar recursos de treinamento sem pontos de verificação aos códigos.

**Conceitos**

Esta seção apresenta conceitos de treinamento sem pontos de verificação. O treinamento Checkpointless na Amazon SageMaker HyperPod oferece suporte à recuperação em processo. Essa interface de API segue um formato semelhante ao NVRx APIs.

**Conceito - Bloco de código reexecutável (RCB)**

Quando ocorre uma falha, os processos íntegros permanecem ativos, mas uma parte do código deve ser executada novamente para recuperar os estados de treinamento e as pilhas de python. Um Bloco de Código Reexecutável (RCB) é um segmento de código específico que é executado novamente durante a recuperação de falhas. No exemplo a seguir, o RCB abrange todo o script de treinamento (ou seja, tudo em main ()), o que significa que cada recuperação de falha reinicia o script de treinamento enquanto preserva o modelo na memória e os estados do otimizador.

**Conceito - Controle de falhas**

Um módulo controlador de falhas recebe notificações quando ocorrem falhas durante o treinamento sem ponto de verificação. Esse controlador de falhas inclui os seguintes componentes:
+ **Módulo de detecção de falhas:** recebe notificações de falhas de infraestrutura
+ **Definição de RCB APIs:** permite que os usuários definam o bloco de código reexecutável (RCB) em seu código
+ **Módulo de reinicialização:** encerra o RCB, limpa os recursos e reinicia o RCB

![\[Esta imagem ilustra como um módulo controlador de falhas recebe notificações quando ocorre uma falha durante um treinamento sem ponto de verificação.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/hyperpod/hyperpod-checkpointless-fault-controller-module.png)


**Conceito - Redundância do modelo**

O treinamento de modelos grandes geralmente requer um tamanho paralelo de dados grande o suficiente para treinar modelos com eficiência. No paralelismo de dados tradicional, como PyTorch DDP e Horovod, o modelo é totalmente replicado. Técnicas mais avançadas de paralelismo de dados fragmentados, como o otimizador DeepSpeed ZeRO e o FSDP, também oferecem suporte ao modo de fragmentação híbrida, que permite fragmentar os model/optimizer estados dentro do grupo de fragmentação e replicar totalmente entre os grupos de replicação. NeMo também tem esse recurso de fragmentação híbrida por meio de um argumento num\$1distributed\$1optimizer\$1instances, que permite redundância.

No entanto, adicionar redundância indica que o modelo não será totalmente fragmentado em todo o cluster, resultando em maior uso da memória do dispositivo. A quantidade de memória redundante variará dependendo das técnicas específicas de fragmentação do modelo implementadas pelo usuário. Os pesos, gradientes e memória de ativação do modelo de baixa precisão não serão afetados, pois são fragmentados por meio do paralelismo do modelo. O modelo mestre de alta precisão weights/gradients e os estados do otimizador serão afetados. Adicionar uma réplica de modelo redundante aumenta o uso da memória do dispositivo em aproximadamente o equivalente ao tamanho de um ponto de verificação DCP.

A fragmentação híbrida divide os coletivos de todos os grupos de DP em coletivos relativamente menores. Anteriormente, havia uma redução na dispersão e uma coleta total em todo o grupo de DP. Após a fragmentação híbrida, a redução de dispersão é executada somente dentro de cada réplica do modelo, e haverá uma redução total em todos os grupos de réplicas do modelo. O all-gather também está sendo executado dentro de cada réplica do modelo. Como resultado, todo o volume de comunicação permanece praticamente inalterado, mas os coletivos estão trabalhando com grupos menores, então esperamos uma latência melhor.

**Conceito - Tipos de falha e reinicialização**

A tabela a seguir registra diferentes tipos de falhas e mecanismos de recuperação associados. O treinamento Checkpointless tenta primeiro a recuperação de falhas por meio de uma recuperação em processo, seguida por uma reinicialização em nível de processo. Ele volta para uma reinicialização no nível do trabalho somente no caso de uma falha catastrófica (por exemplo, vários nós falham ao mesmo tempo).


| Tipo de falha | Causa | Tipo de recuperação | Mecanismo de recuperação | 
| --- | --- | --- | --- | 
| Falha no processo | Erros em nível de código, exceções | Recuperação em processo (IPR) | Execute novamente o RCB dentro do processo existente; processos saudáveis permanecem ativos | 
| Falha na reinicialização do processo | Contexto CUDA corrompido, processo encerrado | Reinício no nível do processo (PLR) | SageMaker HyperPod o operador de treinamento reinicia os processos; ignora a reinicialização do pod K8s | 
| Falha na substituição do nó | Falha permanente node/GPU de hardware | Job Level Restart (JLR) | Substitua o nó com falha; reinicie todo o trabalho de treinamento | 

**Conceito - Proteção de bloqueio atômico para etapa otimizadora**

A execução do modelo é dividida em três fases: propagação para frente, propagação para trás e etapa do otimizador. O comportamento de recuperação varia de acordo com o tempo de falha:
+ **Propagação para frente/para trás:** reverta para o início da etapa de treinamento atual e transmita os estados do modelo para os nós de substituição
+ **Etapa do otimizador:** permitir que réplicas íntegras concluam a etapa de proteção bloqueada e, em seguida, transmita os estados atualizados do modelo para os nós de substituição

Essa estratégia garante que as atualizações concluídas do otimizador nunca sejam descartadas, ajudando a reduzir o tempo de recuperação de falhas.

![\[Esta imagem ilustra como a falha é tratada, dependendo se ela ocorre antes ou depois da falha.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/hyperpod/hyperpod-checkpointless-optimizer.png)


## Diagrama de fluxo de treinamento sem pontos de verificação
<a name="sagemaker-eks-checkpointless-training-flow"></a>

![\[Este diagrama ilustra o fluxo de treinamento sem pontos de verificação.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/hyperpod/hyperpod-checkpointless-training-flow.png)


As etapas a seguir descrevem a detecção de falhas e o processo de recuperação sem pontos de verificação:

1. Início do ciclo de treinamento

1. A falha ocorre

1. Avalie a viabilidade de um currículo sem pontos de verificação

1. Verifique se é possível fazer um currículo sem pontos de verificação
   + Se possível, tente retomar o checkpoint sem precisar
     + Se a retomada falhar, volte para o ponto de verificação de carregamento a partir do armazenamento
     + Se a retomada for bem-sucedida, o treinamento continuará a partir do estado recuperado
   + Se não for viável, volte para o ponto de verificação carregando do armazenamento

1. Limpe os recursos - aborte todos os grupos de processos e back-ends e libere recursos em preparação para a reinicialização.

1. Retomar o ciclo de treinamento - um novo ciclo de treinamento começa e o processo retorna à etapa 1.

## Referência de 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()
```

Espera e recupera as informações de classificação e, em seguida HyperPod, atualiza o ambiente atual do processo com variáveis de treinamento distribuídas.

Essa função obtém a atribuição correta de classificação e as variáveis de ambiente para treinamento distribuído. Ele garante que cada processo obtenha a configuração apropriada para sua função no trabalho de treinamento distribuído.

**Parâmetros**

Nenhum

**Devoluções**

**Nenhum**

**Comportamento**
+ **Verificação do processo**: ignora a execução se for chamada a partir de um subprocesso (só é executado em) MainProcess
+ **Recuperação de ambiente**: obtém variáveis de ambiente atuais `RANK` e `WORLD_SIZE` a partir de
+ **HyperPod Comunicação**: chamadas `hyperpod_wait_rank_info()` para recuperar informações de classificação de HyperPod
+ **Atualização do ambiente: atualiza** o ambiente de processo atual com variáveis de ambiente específicas do trabalhador recebidas de HyperPod

**Variáveis de ambiente**

A função lê as seguintes variáveis de ambiente:
+ **RANK** (*int*) — Classificação atual do processo (padrão: -1 se não estiver definido)
+ **WORLD\$1SIZE** (*int*) — Número total de processos na tarefa distribuída (padrão: 0 se não estiver definido)

**Aumenta**
+ **AssertionError**— Se a resposta de não HyperPod estiver no formato esperado ou se os campos obrigatórios estiverem ausentes

**Exemplo**

```
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')
```

**Observações**
+ Só é executado no processo principal; as chamadas do subprocesso são automaticamente ignoradas
+ A função bloqueia até HyperPod fornecer as informações de classificação

### 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)
```

*Invólucro de funções Python que permite os recursos de reinicialização de um Bloco de Código Reexecutável (RCB) em um treinamento sem pontos de verificação. HyperPod *

*Esse invólucro fornece tolerância a falhas e recursos de recuperação automática monitorando a execução do treinamento e coordenando as reinicializações em processos distribuídos quando ocorrem falhas. Ele usa uma abordagem de gerenciador de contexto em vez de um decorador para manter os recursos globais durante todo o ciclo de vida do treinamento.*

**Parâmetros**
+ **abort** (Abortar, *opcional*) — *aborta* a execução de forma assíncrona quando falhas são detectadas. Padrão: `Compose(HPAbortTorchDistributed())`
+ **finalize (*Finalize***, *opcional*) — Manipulador de finalização local de classificação executado durante a reinicialização. Padrão: `None`
+ **health\$1check** (*HealthCheck*, *opcional*) — Verificação de integridade local de classificação executada durante a reinicialização. Padrão: `None`
+ **hp\$1api\$1factory** (*Callable*, *optional*) — Função de fábrica para criar uma API com a qual interagir. HyperPod HyperPod Padrão: `None`
+ **abort\$1timeout** (*float*, *optional*) — Tempo limite para abortar a chamada no thread de controle de falhas. Padrão: `None`
+ **ativado** (*bool*, *opcional*) — Ativa a funcionalidade do wrapper. Quando`False`, o invólucro se torna uma passagem. Padrão: `True`
+ **trace\$1file\$1path** (*str*, *opcional*) — Caminho para o arquivo de rastreamento para criação de perfil. VizTracer Padrão: `None`
+ **async\$1raise\$1before\$1abort (*bool*, *opcional*) — Ative o aumento antes do aborto** no thread de controle de falhas. Padrão: `True`
+ **early\$1abort\$1communicator (*bool*, *opcional*) — Aborta o comunicador** (NCCL/gloo) antes de abortar o carregador de dados. Padrão: `False`
+ **checkpoint\$1manager** (*Qualquer*, *opcional*) — Gerenciador para lidar com pontos de verificação durante a recuperação. Padrão: `None`
+ **check\$1memory\$1status** (*bool*, *opcional*) — Ative a verificação e o registro do status da memória. Padrão: `True`

**Métodos**

```
def __call__(self, fn)
```

*Envolve uma função para ativar os recursos de reinicialização.*

**Parâmetros:**
+ **fn** (*Callable*) — A função a ser concluída com recursos de reinicialização

**Devoluções:**
+ **Chamável** — Função embrulhada com recursos de reinicialização ou função original se desativada

**Exemplo**

```
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
```

**Observações**
+ O invólucro `torch.distributed` precisa estar disponível
+ Quando`enabled=False`, o invólucro se torna uma passagem e retorna a função original inalterada
+ O invólucro mantém recursos globais, como segmentos de monitoramento em todo o ciclo de vida do treinamento
+ Suporta a VizTracer criação de perfil quando `trace_file_path` é fornecido
+ Integra-se ao tratamento HyperPod coordenado de falhas em treinamentos distribuídos

### HPCallEmbalagem
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-HPCallWrapper"></a>

```
class hyperpod_checkpointless_training.inprocess.wrap.HPCallWrapper(wrapper)
```

Monitora e gerencia o estado de um Bloco de Código de Reinicialização (RCB) durante a execução.

Essa classe trata do ciclo de vida da execução do RCB, incluindo detecção de falhas, coordenação com outras classificações para reinicializações e operações de limpeza. Ele gerencia a sincronização distribuída e garante uma recuperação consistente em todos os processos de treinamento.

**Parâmetros**
+ **wrapper** (*HPWrapper*) — O wrapper principal contendo configurações globais de recuperação em processo

**Atributos.**
+ **step\$1upon\$1restart** (*int*) — Contador que rastreia as etapas desde a última reinicialização, usado para determinar a estratégia de reinicialização

**Métodos**

```
def initialize_barrier()
```

Aguarde a sincronização da HyperPod barreira após encontrar uma exceção do RCB.

```
def start_hp_fault_handling_thread()
```

Inicie a rosca de tratamento de falhas para monitorar e coordenar falhas.

```
def handle_fn_exception(call_ex)
```

Processe exceções da função de execução ou do RCB.

**Parâmetros:**
+ **call\$1ex** (*Exception*) — Exceção da função de monitoramento

```
def restart(term_ex)
```

Execute o manipulador de reinicialização, incluindo finalização, coleta de lixo e verificações de saúde.

**Parâmetros:**
+ **term\$1ex** (*RankShouldRestart*) — Exceção de rescisão que aciona a reinicialização

```
def launch(fn, *a, **kw)
```

*Execute o RCB com o tratamento adequado de exceções.*

**Parâmetros:**
+ **fn** (*Callable*) — Função a ser executada
+ **a** — Argumentos da função
+ **kw** — Argumentos da palavra-chave da função

```
def run(fn, a, kw)
```

Loop de execução principal que lida com reinicializações e sincronização de barreiras.

**Parâmetros:**
+ **fn** (*Callable*) — Função a ser executada
+ **a** — Argumentos da função
+ **kw** — Argumentos da palavra-chave da função

```
def shutdown()
```

Desligue as roscas de monitoramento e tratamento de falhas.

**Observações**
+ Lida automaticamente com `RankShouldRestart` exceções para uma recuperação coordenada
+ Gerencia rastreamento de memória e abortos, coleta de lixo durante reinicializações
+ Suporta estratégias de recuperação em processo e PLR (reinicialização em nível de processo) com base no tempo de falha

### 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))
```

Garante que o contexto CUDA do processo atual esteja em um estado saudável durante a recuperação do treinamento sem pontos de verificação.

Essa verificação de integridade é sincronizada com a GPU para verificar se o contexto CUDA não está corrompido após uma falha no treinamento. Ele executa operações de sincronização da GPU para detectar quaisquer problemas que possam impedir a retomada bem-sucedida do treinamento. A verificação de integridade é executada depois que os grupos distribuídos são destruídos e a finalização é concluída.

**Parâmetros**
+ **timeout** (*datetime.timedelta*, *opcional*) — Duração do tempo limite para operações de sincronização da GPU. Padrão: `datetime.timedelta(seconds=30)`

**Métodos**

```
__call__(state, train_ex=None)
```

Execute a verificação de integridade do CUDA para verificar a integridade do contexto da GPU.

**Parâmetros:**
+ **state** (*HPState*) — HyperPod Estado atual contendo informações classificadas e distribuídas
+ **train\$1ex** (*Exceção*, *opcional*) — A exceção de treinamento original que acionou a reinicialização. Padrão: `None`

**Devoluções:**
+ **tuple** — Uma tupla contendo `(state, train_ex)` inalterado se a verificação de saúde for aprovada

**Aumenta:**
+ **TimeoutError**— Se a sincronização da GPU atingir o tempo limite, indicando um contexto CUDA potencialmente corrompido

**Preservação do estado**: retorna o estado original e a exceção inalterados se todas as verificações forem aprovadas

**Exemplo**

```
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
```

**Observações**
+ Usa segmentação para implementar proteção de tempo limite para sincronização de GPU
+ Projetado para detectar contextos CUDA corrompidos que poderiam impedir a retomada bem-sucedida do treinamento
+ Deve ser usado como parte do pipeline de tolerância a falhas em cenários de treinamento distribuído

### HPAgentK8s APIFactory
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-HPAgentK8sAPIFactory"></a>

```
class hyperpod_checkpointless_training.inprocess.train_utils.HPAgentK8sAPIFactory()
```

Classe de fábrica para criar instâncias HPAgent K8sapi que se comunicam com a HyperPod infraestrutura para coordenação de treinamento distribuído.

Essa fábrica fornece uma maneira padronizada de criar e configurar objetos HPAgent K8sAPI que lidam com a comunicação entre os processos de treinamento e o plano de controle. HyperPod Ele encapsula a criação do cliente de soquete subjacente e da instância da API, garantindo uma configuração consistente em diferentes partes do sistema de treinamento.

**Métodos**

```
__call__()
```

Crie e retorne uma instância HPAgent K8sapi configurada para comunicação. HyperPod 

**Devoluções:**
+ **HPAgentK8sapi** — Instância de API configurada para comunicação com a infraestrutura HyperPod 

**Exemplo**

```
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
```

**Observações**
+ Projetado para funcionar perfeitamente com HyperPod a infraestrutura baseada em Kubernetes. É essencial para o tratamento e a recuperação coordenados de falhas em cenários de treinamento distribuído

### 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)
```

Gerencia pontos de verificação e peer-to-peer recuperação na memória para tolerância a falhas sem pontos de verificação em treinamentos distribuídos.

Essa classe fornece a funcionalidade principal para treinamento HyperPod sem pontos de verificação, gerenciando pontos de verificação de NeMo modelos na memória, validando a viabilidade de recuperação e orquestrando a transferência de pontos de peer-to-peer verificação entre classificações saudáveis e fracassadas. Ele elimina a necessidade de disco I/O durante a recuperação, reduzindo significativamente o tempo médio de recuperação (MTTR).

**Parâmetros**
+ **enable\$1checksum** (*bool*, *opcional*) — Ative a validação da soma de verificação do estado do modelo para verificações de integridade durante a recuperação. Padrão: `False`
+ **enable\$1offload** (*bool*, *opcional*) — Ative o descarregamento do ponto de verificação da GPU para a memória da CPU para reduzir o uso da memória da GPU. Padrão: `False`

**Atributos.**
+ **global\$1step** (*int* ou *None*) — Etapa de treinamento atual associada ao ponto de verificação salvo
+ **rng\$1states** (*list* ou *None*) — Estados geradores de números aleatórios armazenados para recuperação determinística
+ **checksum\$1manager (*MemoryChecksumManager*) — Gerenciador** para validação da soma de verificação do estado do modelo
+ **parameter\$1update\$1lock** (*ParameterUpdateLock*) — Bloqueio para coordenar atualizações de parâmetros durante a recuperação

**Métodos**

```
save_checkpoint(trainer)
```

Salve o ponto de verificação do NeMo modelo na memória para uma possível recuperação sem ponto de verificação.

**Parâmetros:**
+ **trainer** (*Pytorch\$1lightning.trainer) — instância do Lightning* trainer PyTorch 

**Observações:**
+ Chamado por CheckpointlessCallback no final do lote ou durante o tratamento de exceções
+ Cria pontos de recuperação sem I/O sobrecarga de disco
+ Armazena estados completos do modelo, do otimizador e do agendador

```
delete_checkpoint()
```

Exclua o ponto de verificação na memória e execute as operações de limpeza.

**Observações:**
+ Limpa dados do ponto de verificação, estados RNG e tensores em cache
+ Executa a coleta de lixo e a limpeza do cache CUDA
+ Chamado após uma recuperação bem-sucedida ou quando o ponto de verificação não é mais necessário

```
try_checkpointless_load(trainer)
```

Tente uma recuperação sem pontos de verificação carregando o estado a partir de classificações de pares.

**Parâmetros:**
+ **trainer** (*Pytorch\$1lightning.trainer) — instância do Lightning* trainer PyTorch 

**Devoluções:**
+ **dict** ou **None** — Ponto de verificação restaurado se for bem-sucedido, Nenhum se for necessário retornar ao disco

**Observações:**
+ Principal ponto de entrada para recuperação sem pontos de verificação
+ Valida a viabilidade da recuperação antes de tentar a transferência P2P
+ Sempre limpa os pontos de verificação na memória após a tentativa de recuperação

```
checkpointless_recovery_feasible(trainer, include_checksum_verification=True)
```

Determine se a recuperação sem ponto de verificação é possível para o cenário de falha atual.

**Parâmetros:**
+ **trainer** (*Pytorch\$1lightning.trainer) — instância do Lightning* trainer PyTorch 
+ **include\$1checksum\$1verification** (*bool*, *opcional*) — Se a validação da soma de verificação deve ser incluída. Padrão: `True`

**Devoluções:**
+ **bool** — Verdadeiro se a recuperação sem ponto de verificação for viável, falso caso contrário

**Critérios de validação:**
+ Consistência global de etapas em níveis saudáveis
+ Réplicas saudáveis suficientes disponíveis para recuperação
+ Integridade da soma de verificação do estado do modelo (se ativada)

```
store_rng_states()
```

Armazene todos os estados do gerador de números aleatórios para recuperação determinística.

**Observações:**
+ Captura os estados Python NumPy, CPU/GPU PyTorch e Megatron RNG
+ Essencial para manter o determinismo do treinamento após a recuperação

```
load_rng_states()
```

Restaure todos os estados de RNG para a continuação da recuperação determinística.

**Observações:**
+ Restaura todos os estados RNG armazenados anteriormente
+ Garante que o treinamento continue com sequências aleatórias idênticas

```
maybe_offload_checkpoint()
```

Descarregue o ponto de verificação da GPU para a memória da CPU se o descarregamento estiver ativado.

**Observações:**
+ Reduz o uso da memória da GPU para modelos grandes
+ Só é executado se `enable_offload=True`
+ Mantém a acessibilidade do ponto de verificação para recuperação

**Exemplo**

```
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
```

**Validação**: verifica a integridade do ponto de verificação usando somas de verificação (se habilitado)

**Observações**
+ Usa primitivas de comunicação distribuída para uma transferência P2P eficiente
+ Lida automaticamente com conversões de tensor dtype e posicionamento de dispositivos
+ **MemoryChecksumManager**— Lida com a validação da integridade do estado do modelo

### PEFTCheckpointGerente
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-PEFTCheckpointManager"></a>

```
class hyperpod_checkpointless_training.nemo_plugins.checkpoint_manager.PEFTCheckpointManager(  
    *args,  
    **kwargs)
```

Gerencia pontos de verificação para PEFT (Parameter-Efficient Fine-Tuning) com base separada e manuseio de adaptador para recuperação otimizada sem pontos de verificação.

Esse gerenciador de pontos de verificação especializado se estende CheckpointManager para otimizar os fluxos de trabalho de PEFT separando os pesos do modelo básico dos parâmetros do adaptador.

**Parâmetros**

Herda todos os parâmetros de **CheckpointManager**:
+ **enable\$1checksum** (*bool*, *opcional*) — Habilita a validação da soma de verificação do estado do modelo. Padrão: `False`
+ **enable\$1offload** (*bool*, *opcional*) — Ativa o descarregamento do ponto de verificação para a memória da CPU. Padrão: `False`

**Atributos adicionais**
+ **params\$1to\$1save** (*set) — Conjunto* de nomes de parâmetros que devem ser salvos como parâmetros do adaptador
+ **base\$1model\$1weights** (*dict* ou *None*) — Pesos do modelo base em cache, salvos uma vez e reutilizados
+ **base\$1model\$1keys\$1to\$1extract (list ou *None*) — Chaves para extrair** *tensores* do modelo básico durante a transferência P2P

**Métodos**

```
maybe_save_base_model(trainer)
```

Salve os pesos do modelo básico uma vez, filtrando os parâmetros do adaptador.

**Parâmetros:**
+ **trainer** (*Pytorch\$1lightning.trainer) — instância do Lightning* trainer PyTorch 

**Observações:**
+ Salva apenas os pesos do modelo básico na primeira chamada; as chamadas subsequentes são autônomas
+ Filtra os parâmetros do adaptador para armazenar somente pesos congelados do modelo básico
+ Os pesos do modelo básico são preservados em várias sessões de treinamento

```
save_checkpoint(trainer)
```

Salve o ponto de verificação do modelo do adaptador NeMo PEFT na memória para uma possível recuperação sem ponto de verificação.

**Parâmetros:**
+ **trainer** (*Pytorch\$1lightning.trainer) — instância do Lightning* trainer PyTorch 

**Observações:**
+ Chama automaticamente `maybe_save_base_model()` se o modelo base ainda não foi salvo
+ Filtra o ponto de verificação para incluir somente os parâmetros do adaptador e o estado de treinamento
+ Reduz significativamente o tamanho do ponto de verificação em comparação com os pontos de verificação do modelo completo

```
try_base_model_checkpointless_load(trainer)
```

Tente a recuperação sem pontos de verificação de pesos do modelo base PEFT carregando o estado de classificações de pares.

**Parâmetros:**
+ **trainer** (*Pytorch\$1lightning.trainer) — instância do Lightning* trainer PyTorch 

**Devoluções:**
+ **dict** ou **None** — Ponto de verificação do modelo básico restaurado se for bem-sucedido, Nenhum se for necessário

**Observações:**
+ Usado durante a inicialização do modelo para recuperar os pesos básicos do modelo
+ Não limpa os pesos do modelo básico após a recuperação (preserva para reutilização)
+ Otimizado para cenários model-weights-only de recuperação

```
try_checkpointless_load(trainer)
```

Tente a recuperação sem pontos de verificação dos pesos do adaptador PEFT carregando o estado das classificações de pares.

**Parâmetros:**
+ **trainer** (*Pytorch\$1lightning.trainer) — instância do Lightning* trainer PyTorch 

**Devoluções:**
+ **dict** ou **None** — Ponto de verificação do adaptador restaurado se for bem-sucedido, Nenhum se for necessário um fallback

**Observações:**
+ Recupera somente parâmetros do adaptador, estados do otimizador e agendadores
+ Carrega automaticamente os estados do otimizador e do agendador após uma recuperação bem-sucedida
+ Limpa os pontos de verificação do adaptador após a tentativa de recuperação

```
is_adapter_key(key)
```

Verifique se a chave state dict pertence aos parâmetros do adaptador.

**Parâmetros:**
+ **key** (*str* ou *tuple*) — Chave de ditado de estado a ser verificada

**Devoluções:**
+ **bool** — Verdadeiro se a chave for o parâmetro do adaptador, Falso se o parâmetro do modelo base

**Lógica de detecção:**
+ Verifica se a chave está `params_to_save` definida
+ Identifica chaves contendo “.adapter”. substring
+ Identifica chaves que terminam com “.adapters”
+ Para chaves de tupla, verifica se o parâmetro requer gradientes

```
maybe_offload_checkpoint()
```

Transfira os pesos do modelo básico da GPU para a memória da CPU.

**Observações:**
+ Estende o método principal para lidar com a descarga de peso do modelo básico
+ Os pesos dos adaptadores geralmente são pequenos e não precisam ser descarregados
+ Define o sinalizador interno para rastrear o estado de descarga

**Observações**
+ Projetado especificamente para cenários de ajuste fino com eficiência de parâmetros (LoRa, adaptadores, etc.)
+ Lida automaticamente com a separação dos parâmetros do modelo básico e do adaptador

**Exemplo**

```
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 de fábrica para criar e gerenciar composições de componentes de aborto para tolerância a falhas sem pontos de verificação.

Essa classe de utilitário fornece métodos estáticos para criar, personalizar e gerenciar composições de componentes de aborto usadas durante o tratamento de falhas em um treinamento sem pontos de HyperPod verificação. Ele simplifica a configuração de sequências de aborto que lidam com a limpeza de componentes de treinamento distribuídos, carregadores de dados e recursos específicos da estrutura durante a recuperação de falhas.

**Parâmetros**

Nenhum (todos os métodos são estáticos)

**Métodos estáticos**

```
get_default_checkpointless_abort()
```

Obtenha a instância padrão de composição de aborto contendo todos os componentes de aborto padrão.

**Devoluções:**
+ **Compose** — Instância de aborto composta padrão com todos os componentes de aborto

**Componentes padrão:**
+ **AbortTransformerEngine()** — Limpa os recursos TransformerEngine 
+ **HPCheckpointingAbort ()** — Lida com a limpeza do sistema de pontos de verificação
+ **HPAbortTorchDistributed()** — Aborta operações PyTorch distribuídas
+ **HPDataLoaderAbort()** — Pára e limpa os carregadores de dados

```
create_custom_abort(abort_instances)
```

*Crie uma composição de aborto personalizada somente com as instâncias de aborto especificadas.*

**Parâmetros:**
+ **abort\$1instances** (*Abort*) — Número variável de instâncias de aborto a serem incluídas na composição

**Devoluções:**
+ **Compose** — Nova instância de aborto composta contendo somente os componentes especificados

**Aumenta:**
+ **ValueError**— Se nenhuma instância de aborto for fornecida

```
override_abort(abort_compose, abort_type, new_abort)
```

Substitua um componente de aborto específico em uma instância do Compose por um novo componente.

**Parâmetros:**
+ **abort\$1compose (Compose**) — A instância original do *Compose* a ser modificada
+ **abort\$1type (*type***) — O tipo de componente de aborto a ser substituído (por exemplo,) `HPCheckpointingAbort`
+ **new\$1abort (Abort***) — A nova instância de aborto* a ser usada como substituta

**Devoluções:**
+ **Compose** — Nova instância do Compose com o componente especificado substituído

**Aumenta:**
+ **ValueError**— Se abort\$1compose não tiver o atributo 'instances'

**Exemplo**

```
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(...)
```

**Observações**
+ As configurações personalizadas permitem um controle preciso sobre o comportamento de limpeza
+ As operações de aborto são essenciais para a limpeza adequada dos recursos durante a recuperação de falhas

### CheckpointlessFinalizeCleanup
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-CheckpointlessFinalizeCleanup"></a>

```
class hyperpod_checkpointless_training.inprocess.abort.CheckpointlessFinalizeCleanup()
```

Executa uma limpeza abrangente após a detecção de falhas para se preparar para a recuperação em processo durante o treinamento sem pontos de verificação.

Esse manipulador de finalização executa operações de limpeza específicas da estrutura, incluindo Megatron/TransformerEngine aborto, limpeza de DDP, recarregamento de módulos e limpeza de memória, destruindo referências de componentes de treinamento. Ele garante que o ambiente de treinamento seja redefinido adequadamente para uma recuperação bem-sucedida do processo, sem exigir o encerramento total do processo.

**Parâmetros**

Nenhum

**Atributos.**
+ **trainer** *(*pytorch\$1lightning.trainer ou None) — Referência à instância do Lightning trainer** PyTorch 

**Métodos**

```
__call__(*a, **kw)
```

**Execute operações de limpeza abrangentes para a preparação da recuperação durante o processo.**

*Parâmetros:*
+ **a** — Argumentos posicionais variáveis (herdados da interface Finalize)
+ **kw** — Argumentos de palavras-chave variáveis (herdados da interface Finalize)

**Operações de limpeza:**
+ Limpeza do **Megatron Framework — Chamadas `abort_megatron()` para limpar** recursos específicos do Megatron
+ **TransformerEngine Limpeza** — Chamadas `abort_te()` para limpar recursos TransformerEngine 
+ **RoPe Cleanup** — Solicita `cleanup_rope()` a limpeza dos recursos de incorporação da posição rotativa
+ **Limpeza de DDP** — Chamadas `cleanup_ddp()` para limpar recursos DistributedDataParallel 
+ **Recarregamento de módulo** — Chamadas `reload_megatron_and_te()` para recarregar módulos da estrutura
+ **Limpeza do módulo Lightning — opcionalmente limpa o módulo Lightning para reduzir a memória da GPU**
+ **Limpeza de memória** — Destrói referências de componentes de treinamento para liberar memória

```
register_attributes(trainer)
```

*Registre a instância do treinador para uso durante as operações de limpeza.*

**Parâmetros:**
+ **trainer** (*Pytorch\$1lightning.trainer) — Instância do Lightning* trainer para registrar PyTorch 

**Integração com 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(...)
```

**Observações**
+ As operações de limpeza são executadas em uma ordem específica para evitar problemas de dependência
+ A limpeza da memória usa a introspecção da coleta de lixo para encontrar objetos alvo
+ Todas as operações de limpeza foram projetadas para serem idempotentes e seguras de serem repetidas.

### CheckpointlessMegatronStrategy
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-CheckpointlessMegatronStrategy"></a>

```
class hyperpod_checkpointless_training.nemo_plugins.megatron_strategy.CheckpointlessMegatronStrategy(*args, **kwargs)
```

NeMo Estratégia Megatron com recursos integrados de recuperação sem pontos de verificação para treinamento distribuído tolerante a falhas.

Observe que o treinamento sem ponto de verificação requer pelo menos 2 `num_distributed_optimizer_instances` para que haja replicação do otimizador. A estratégia também cuida do registro de atributos essenciais e da inicialização do grupo de processos.

**Parâmetros**

Herda todos os parâmetros de **MegatronStrategy**:
+ Parâmetros de NeMo MegatronStrategy inicialização padrão
+ Opções de configuração de treinamento distribuído
+ Configurações de paralelismo do modelo

**Atributos.**
+ **base\$1store (torch.distributed***). TCPStore*ou *Nenhum*) — Loja distribuída para coordenação de grupos de processos

**Métodos**

```
setup(trainer)
```

Inicialize a estratégia e registre os componentes de tolerância a falhas com o treinador.

**Parâmetros:**
+ **trainer** (*Pytorch\$1lightning.trainer) — instância do Lightning* trainer PyTorch 

**Operações de configuração:**
+ **Configuração dos pais — MegatronStrategy Configuração** dos pais de chamadas
+ **Registro de injeção de falhas** — registra HPFault InjectionCallback ganchos, se presentes
+ **Finalizar o registro — Registra** o treinador com os responsáveis pela finalização da limpeza
+ **Registro de aborto** — registra o treinador com manipuladores de aborto que o apoiam

```
setup_distributed()
```

Inicialize o grupo de processos usando uma conexão TCPStore com prefixo ou sem raiz.

```
load_model_state_dict(checkpoint, strict=True)
```

Carregue o ditado de estado do modelo com compatibilidade de recuperação sem pontos de verificação.

**Parâmetros:**
+ **checkpoint** (*Mapping [str, Any]*) — Dicionário de pontos de verificação contendo o estado do modelo
+ **strict** (*bool*, *opcional*) — Se a correspondência de chaves do ditado de estado deve ser rigorosamente aplicada. Padrão: `True`

```
get_wrapper()
```

Obtenha a instância do HPCall Wrapper para coordenação da tolerância a falhas.

**Devoluções:**
+ **HPCallWrapper** — A instância do wrapper anexada ao treinador para tolerância a falhas

```
is_peft()
```

Verifique se o PEFT (Parameter-Efficient Fine-Tuning) está ativado na configuração do treinamento verificando os retornos de chamada do PEFT

**Devoluções:**
+ **bool** — Verdadeiro se o retorno de chamada PEFT estiver presente, Falso caso contrário

```
teardown()
```

Substitua a desmontagem nativa PyTorch do Lightning para delegar a limpeza aos manipuladores de abortamento.

**Exemplo**

```
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)
```

Retorno de chamada relâmpago que integra o NeMo treinamento ao sistema de tolerância a falhas do checkpointless training.

Esse retorno de chamada gerencia o rastreamento de etapas, o salvamento de pontos de verificação e a coordenação de atualização de parâmetros para recursos de recuperação em processo. Ele serve como o principal ponto de integração entre os ciclos de treinamento do PyTorch Lightning e os mecanismos de treinamento HyperPod sem pontos de verificação, coordenando as operações de tolerância a falhas em todo o ciclo de vida do treinamento.

**Parâmetros**
+ **enable\$1inprocess** (*bool*, *opcional*) — Ative os recursos de recuperação em processo. Padrão: `False`
+ **enable\$1checkpointless** (*bool*, *opcional*) — Habilita a recuperação sem ponto de verificação (obrigatório). `enable_inprocess=True` Padrão: `False`
+ **enable\$1checksum** (*bool*, *opcional*) — Habilita a validação da soma de verificação do estado do modelo (obrigatório). `enable_checkpointless=True` Padrão: `False`
+ **clean\$1tensor\$1hook** (*bool*, *opcional*) — Limpe os ganchos tensores de todos os tensores da GPU durante a limpeza (operação cara). Padrão: `False`
+ **clean\$1lightning\$1module** (*bool*, *opcional*) — Ative a limpeza do módulo Lightning para liberar memória da GPU após cada reinicialização. Padrão: `False`

**Atributos.**
+ **tried\$1adapter\$1checkpointless** (*bool*) — Sinalize para rastrear se a restauração sem ponto de verificação do adaptador foi tentada

**Métodos**

```
get_wrapper_from_trainer(trainer)
```

Obtenha a instância do HPCall Wrapper do treinador para coordenação da tolerância a falhas.

**Parâmetros:**
+ **trainer** (*Pytorch\$1lightning.trainer) — instância do Lightning* trainer PyTorch 

**Devoluções:**
+ **HPCallWrapper** — A instância do wrapper para operações de tolerância a falhas

```
on_train_batch_start(trainer, pl_module, batch, batch_idx, *args, **kwargs)
```

Chamado no início de cada lote de treinamento para gerenciar o rastreamento e a recuperação de etapas.

**Parâmetros:**
+ **trainer** (*Pytorch\$1lightning.trainer) — instância do Lightning* trainer PyTorch 
+ **pl\$1module (pytorch\$1lightning***). LightningModule*) — Módulo Lightning sendo treinado
+ **batch** — Dados atuais do lote de treinamento
+ **batch\$1idx** (*int*) — Índice do lote atual
+ **args — Argumentos** posicionais adicionais
+ **kwargs** — Argumentos adicionais de palavras-chave

```
on_train_batch_end(trainer, pl_module, outputs, batch, batch_idx)
```

*Libere o bloqueio de atualização de parâmetros no final de cada lote de treinamento.*

**Parâmetros:**
+ **trainer** (*Pytorch\$1lightning.trainer) — instância do Lightning* trainer PyTorch 
+ **pl\$1module (pytorch\$1lightning***). LightningModule*) — Módulo Lightning sendo treinado
+ **saídas** (*STEP\$1OUTPUT) — Saídas da* etapa de treinamento
+ **lote** (*Qualquer*) — Dados atuais do lote de treinamento
+ **batch\$1idx** (*int*) — Índice do lote atual

**Observações:**
+ O tempo de liberação do bloqueio garante que a recuperação sem pontos de verificação possa prosseguir após a conclusão das atualizações dos parâmetros
+ Só é executado quando ambos `enable_inprocess` `enable_checkpointless` são verdadeiros

```
get_peft_callback(trainer)
```

*Recupere o retorno de chamada PEFT da lista de retorno de chamada do treinador.*

**Parâmetros:**
+ **trainer** (*Pytorch\$1lightning.trainer) — instância do Lightning* trainer PyTorch 

**Devoluções:**
+ **PEFT** ou **Nenhuma** — Instância de retorno de chamada PEFT se encontrada, Nenhuma caso contrário

```
_try_adapter_checkpointless_restore(trainer, params_to_save)
```

*Tente fazer uma restauração inútil dos parâmetros do adaptador PEFT.*

**Parâmetros:**
+ **trainer** (*Pytorch\$1lightning.trainer) — instância do Lightning* trainer PyTorch 
+ **params\$1to\$1save** (*set) — Conjunto de* nomes de parâmetros para salvar como parâmetros do adaptador

**Observações:**
+ Só é executado uma vez por sessão de treinamento (controlado por `tried_adapter_checkpointless` bandeira)
+ Configura o gerenciador de pontos de verificação com informações de parâmetros do adaptador

**Exemplo**

```
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)
```

**Gerenciamento de memória**
+ **clean\$1tensor\$1hook**: remove os ganchos do tensor durante a limpeza (caro, mas completo)
+ **clean\$1lightning\$1module: libera a memória da GPU do módulo** Lightning durante as reinicializações
+ Ambas as opções ajudam a reduzir o consumo de memória durante a recuperação de falhas
+ Coordena com ParameterUpdateLock para rastreamento seguro de atualizações de parâmetros

### CheckpointlessCompatibleConnector
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-CheckpointlessCompatibleConnector"></a>

```
class hyperpod_checkpointless_training.nemo_plugins.checkpoint_connector.CheckpointlessCompatibleConnector()
```

PyTorch Conector de ponto de verificação Lightning que integra a recuperação sem ponto de verificação com o carregamento tradicional de pontos de verificação baseado em disco.

Esse conector estende o PyTorch Lightning `_CheckpointConnector` para fornecer integração perfeita entre a recuperação sem ponto de verificação e a restauração padrão do ponto de verificação. Ele tenta primeiro a recuperação sem ponto de verificação e, em seguida, volta para o carregamento do ponto de verificação baseado em disco se a recuperação sem ponto de verificação não for viável ou falhar.

**Parâmetros**

**Herda todos os parâmetros de \$1 CheckpointConnector**

**Métodos**

```
resume_start(checkpoint_path=None)
```

Tente pré-carregar o ponto de verificação com prioridade de recuperação sem ponto de verificação.

**Parâmetros:**
+ **checkpoint\$1path** (*str* ou *None*, *opcional*) — Caminho para o ponto de verificação do disco para fallback. Padrão: `None`

```
resume_end()
```

Conclua o processo de carregamento do ponto de verificação e execute as operações de pós-carregamento.

**Observações**
+ Estende a `_CheckpointConnector` classe interna do PyTorch Lightning com suporte de recuperação sem pontos de verificação
+ Mantém total compatibilidade com os fluxos de trabalho padrão do PyTorch Lightning checkpoint

### CheckpointlessAutoResume
<a name="sagemaker-eks-checkpointless-in-process-recovery-reference-CheckpointlessAutoResume"></a>

```
class hyperpod_checkpointless_training.nemo_plugins.resume.CheckpointlessAutoResume()
```

Estende-se NeMo AutoResume com configuração atrasada para permitir a validação de recuperação sem ponto de verificação antes da resolução do caminho do ponto de verificação.

Essa classe implementa uma estratégia de inicialização em duas fases que permite que a validação da recuperação sem ponto de verificação ocorra antes de retornar ao carregamento tradicional do ponto de verificação baseado em disco. Ele atrasa condicionalmente a AutoResume configuração para evitar a resolução prematura do caminho do ponto de verificação, permitindo primeiro validar se CheckpointManager a recuperação sem ponto de verificação peer-to-peer é viável.

**Parâmetros**

Herda todos os parâmetros de **AutoResume**

**Métodos**

```
setup(trainer, model=None, force_setup=False)
```

Adie condicionalmente a AutoResume configuração para permitir a validação de recuperação sem pontos de verificação.

**Parâmetros:**
+ **trainer** *(*pytorch\$1lightning.trainer ou lightning.fabric.fabric) — Lightning trainer* ou instância do Fabric* PyTorch 
+ **model** (*opcional*) — Instância do modelo para configuração. Padrão: `None`
+ **force\$1setup** (*bool*, *opcional*) — Se verdadeiro, ignore o atraso e execute a configuração imediatamente. AutoResume Padrão: `False`

**Exemplo**

```
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()  
)
```

**Observações**
+  AutoResume Classe NeMo da Extends com mecanismo de atraso para permitir uma recuperação sem pontos de verificação
+ Funciona em conjunto com `CheckpointlessCompatibleConnector` para um fluxo de trabalho de recuperação completo

# Considerações especiais
<a name="sagemaker-eks-checkpointless-considerations"></a>

Coletamos determinadas métricas operacionais rotineiras agregadas e anônimas para fornecer disponibilidade de serviços essenciais. A criação dessas métricas é totalmente automatizada e não envolve a revisão humana da carga de trabalho de treinamento do modelo subjacente. Essas métricas estão relacionadas às operações de trabalho, ao gerenciamento de recursos e à funcionalidade essencial do serviço. 

HyperPod ponto de verificação gerenciado em camadas e treinamento elástico: observe que o treinamento HyperPod sem ponto de verificação atualmente é incompatível com o controle HyperPod gerenciado em camadas e o treinamento elástico.

Receitas de treinamento Checkpointless para os modelos GPT OSS 120B e Llama são fornecidas para simplificar a introdução. Essas receitas foram verificadas em instâncias ml.p5. O uso de outros tipos de instância pode exigir modificações adicionais nas receitas subjacentes. Essas receitas também podem ser adaptadas para fluxos de trabalho de ajuste fino completos. Para modelos personalizados, recomendamos revisar os [exemplos de introdução](https://docs.aws.amazon.com/sagemaker-eks-checkpointless-recipes-custom).

# Apêndice
<a name="sagemaker-eks-checkpointless-appendix"></a>

**Monitore os resultados do treinamento por meio de HyperPod receitas**

SageMaker HyperPod as receitas oferecem integração com o Tensorboard para analisar o comportamento do treinamento. Essas receitas também incorporam VizTracer, que é uma ferramenta de baixa sobrecarga para rastrear e visualizar a execução do código Python. Para obter mais informações, consulte [ VizTracer](https://github.com/gaogaotiantian/viztracer).

Os registros do tensorboard são gerados e armazenados no. `log_dir` Para acessar e analisar esses logs localmente, use o seguinte procedimento:

1. Baixe a pasta de experimentos do TensorBoard do seu ambiente de treinamento na máquina local.

1. Abra um terminal ou prompt de comando em sua máquina local.

1. Navegue até o diretório que contém a pasta de experimentos baixados.

1. Inicie o Tensorboard executando o comando:

   ```
   tensorboard --port=<port> --bind_all --logdir experiment.
   ```

1. Abra seu navegador da web e visite`http://localhost:8008`.

Agora você pode ver o status e as visualizações de suas tarefas de treinamento na interface do TensorBoard. Ver o status e as visualizações ajuda você a monitorar e analisar o processo de treinamento. O monitoramento e a análise do processo de treinamento ajudam você a obter informações sobre o comportamento e o desempenho de seus modelos. Para obter mais informações sobre como você monitora e analisa o treinamento com o Tensorboard, consulte o Guia do usuário do [NVIDIA NeMo Framework](https://docs.nvidia.com/nemo-framework/user-guide/latest/nemotoolkit/core/exp_manager.html#experiment-manager).

**VizTracer**

Para habilitar VizTracer, você pode modificar sua receita definindo `ENABLE_VIZTRACER` a variável de ambiente como`1`. Depois que o treinamento for concluído, seu VizTracer perfil estará na pasta do experimento`log_dir/viztracer_xxx.json`. Para analisar seu perfil, você pode baixá-lo e abri-lo usando a **vizviewer** ferramenta:

```
vizviewer --port <port> viztracer_xxx.json
```

Esse comando inicia o VizViewer na porta 9001. Você pode ver o seu VizTracer acessando http://localhost: <port>no seu navegador. Depois de abrir VizTracer, você começa a analisar o treinamento. Para obter mais informações sobre o uso VizTracer, consulte a [ VizTracer documentação](https://viztracer.readthedocs.io/en/latest/installation.html).

# Notas da versão
<a name="sagemaker-eks-checkpointless-release-notes"></a>

Consulte as notas de versão a seguir para acompanhar as atualizações mais recentes do treinamento SageMaker HyperPod sem pontos de verificação.

**O treinamento SageMaker HyperPod sem controle v1.0.1**

Data: 10 de abril de 2026

**Correções de bugs**
+ Corrigida a vinculação incorreta do dispositivo CUDA na rosca de tratamento de falhas. O thread de tratamento de falhas agora define corretamente o contexto do dispositivo CUDA usando`LOCAL_RANK`. Essa correção evita erros de incompatibilidade do dispositivo durante a recuperação de falhas em processo.

**O treinamento SageMaker HyperPod sem pontos de verificação v1.0.0**

Data: 03 de dezembro de 2025

**SageMaker HyperPod Características de treinamento sem pontos de verificação**
+ **Melhorias na inicialização da comunicação coletiva**: oferece novos métodos de inicialização, sem raiz e TCPStoreless para NCCL e Gloo.
+ Carregador **de dados mapeado na memória (MMAP)**: armazena em cache (persiste) lotes pré-buscados para que estejam disponíveis mesmo quando uma falha causa a reinicialização do trabalho de treinamento.
+ **Checkpointless**: permite uma recuperação mais rápida de falhas de treinamento em cluster em ambientes de treinamento distribuídos em grande escala, fazendo otimizações em nível de estrutura
+ **Construído em Nvidia Nemo e PyTorch Lightning**: aproveita essas estruturas poderosas para um treinamento de modelos eficiente e flexível
  + [Nvidia NeMo](https://github.com/NVIDIA-NeMo/NeMo)
  + [PyTorch Relâmpago](https://lightning.ai/docs/pytorch/stable/)

**SageMaker HyperPod Contêiner Docker de treinamento sem ponto de verificação**

O treinamento Checkpointless on HyperPod é baseado na estrutura da [ NeMo NVIDIA](https://docs.nvidia.com/nemo-framework/user-guide/latest/overview.html). HyperPod O treinamento checkpointless visa se recuperar mais rapidamente de falhas de treinamento de cluster em ambientes de treinamento distribuídos em grande escala, fazendo otimizações em nível de estrutura que serão fornecidas em um contêiner básico contendo a imagem base com NCCL e otimizações. PyTorch 

**Disponibilidade**

Atualmente, as imagens só estão disponíveis em:

```
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
```

mas não está disponível nas seguintes 3 regiões opcionais:

```
ap-southeast-3
ap-southeast-4
eu-south-2
```

**Detalhes do contêiner**

Contêiner Docker de treinamento sem ponto de verificação para PyTorch v2.6.0 com CUDA v12.9

```
963403601044.dkr.ecr.eu-north-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
423350936952.dkr.ecr.ap-south-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
556809692997.dkr.ecr.us-east-2.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
942446708630.dkr.ecr.eu-west-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
391061375763.dkr.ecr.eu-central-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
311136344257.dkr.ecr.sa-east-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
327873000638.dkr.ecr.us-east-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
016839105697.dkr.ecr.eu-west-2.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
356859066553.dkr.ecr.ap-northeast-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
920498770698.dkr.ecr.us-west-2.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
827510180725.dkr.ecr.us-west-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
885852567298.dkr.ecr.ap-southeast-1.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
304708117039.dkr.ecr.ap-southeast-2.amazonaws.com/hyperpod-checkpointless-training:v1.0.1
```

**Pacotes pré-instalados**

```
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
```

# Usando partições de GPU na Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-gpu-partitioning"></a>

Os administradores de cluster podem escolher como maximizar a utilização da GPU em toda a organização. Você pode habilitar o particionamento de GPU com a tecnologia NVIDIA Multi-Instance GPU (MIG) para particionar recursos de GPU em instâncias menores e isoladas para melhor utilização dos recursos. Esse recurso fornece a capacidade de executar várias tarefas menores simultaneamente em uma única GPU, em vez de dedicar todo o hardware a uma única tarefa, muitas vezes subutilizada. Isso elimina o desperdício de energia computacional e memória.

O particionamento de GPU com a tecnologia MIG suporta GPUs e permite particionar uma única GPU compatível em até sete partições de GPU separadas. Cada partição de GPU tem recursos dedicados de memória, cache e computação, fornecendo isolamento previsível.

## Benefícios
<a name="sagemaker-hyperpod-eks-gpu-partitioning-benefits"></a>
+ **Melhor utilização da GPU** - Maximize a eficiência computacional por meio do particionamento GPUs com base nos requisitos de computação e memória
+ **Isolamento de tarefas** - Cada partição de GPU opera de forma independente com recursos dedicados de memória, cache e computação
+ **Flexibilidade de tarefas** - Support uma combinação de tarefas em uma única GPU física, todas funcionando paralelamente
+ **Gerenciamento de configuração flexível** - Support configurações Do-it-yourself (DIY) do Kubernetes usando o cliente `kubectl` de linha de comando Kubernetes e uma solução gerenciada com rótulos personalizados para configurar e aplicar facilmente seus rótulos associados às partições da GPU

**Importante**  
O particionamento de GPU com MIG não é compatível com grupos de instâncias flexíveis (grupos de instâncias que usam). `InstanceRequirements` Para usar o MIG, crie um grupo de instâncias com um único`InstanceType`.

## Tipos de instâncias compatíveis
<a name="sagemaker-hyperpod-eks-gpu-partitioning-instance-types"></a>

O particionamento de GPU com a tecnologia MIG é compatível com os seguintes tipos de instância: HyperPod 

[Instâncias de **GPU A100 - tipos de instância/p4/** https://aws.amazon.com/ec2/](https://aws.amazon.com/ec2/instance-types/p4/)
+ **ml.p4d.24xlarge** - 8 NVIDIA A100 (80 GB por GPU) GPUs HBM2e 
+ **ml.p4de.24xlarge** - 8 NVIDIA A100 (80 GB por GPU) GPUs HBM2e 

[Instâncias de **GPU H100 - tipos de instância/p5/** https://aws.amazon.com/ec2/](https://aws.amazon.com/ec2/instance-types/p5/)
+ **ml.p5.48xlarge** - 8 NVIDIA H100 (80 GB por GPU) GPUs HBM3 

[Instâncias de **GPU H200 - tipos de instância/p5/** https://aws.amazon.com/ec2/](https://aws.amazon.com/ec2/instance-types/p5/)
+ **ml.p5e.48xlarge** - 8 NVIDIA H200 (141 GB por GPU) GPUs HBM3e 
+ **ml.p5en.48xlarge** - 8 NVIDIA H200 (141 GB por GPU) GPUs HBM3e 

[Instâncias de **GPU B200 - tipos de instância/p6/** https://aws.amazon.com/ec2/](https://aws.amazon.com/ec2/instance-types/p6/)
+ **ml.p6b.48xlarge - 8 NVIDIA B200** GPUs

## Partições de GPU
<a name="sagemaker-hyperpod-eks-gpu-partitioning-profiles"></a>

Os perfis NVIDIA MIG definem como GPUs são particionados. Cada perfil especifica a alocação de computação e memória por instância MIG. A seguir estão os perfis MIG associados a cada tipo de GPU:

**GPU A100 (ml.p4d.24xlarge)**


| Perfil | Memória (GB) | Instâncias por GPU | Total por 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)**


| Perfil | Memória (GB) | Instâncias por GPU | Total por 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)**


| Perfil | Memória (GB) | Instâncias por GPU | Total por 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**
+ [Benefícios](#sagemaker-hyperpod-eks-gpu-partitioning-benefits)
+ [Tipos de instâncias compatíveis](#sagemaker-hyperpod-eks-gpu-partitioning-instance-types)
+ [Partições de GPU](#sagemaker-hyperpod-eks-gpu-partitioning-profiles)
+ [Configurando partições de GPU na Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning-setup.md)
+ [Ciclo de vida e rótulos do Node](sagemaker-hyperpod-eks-gpu-partitioning-labels.md)
+ [Envio de tarefas com o MIG](sagemaker-hyperpod-eks-gpu-partitioning-task-submission.md)

# Configurando partições de GPU na Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup"></a>

**Topics**
+ [Pré-requisitos](#sagemaker-hyperpod-eks-gpu-partitioning-setup-prerequisites)
+ [Criando um cluster com configuração MIG](#sagemaker-hyperpod-eks-gpu-partitioning-setup-create-cluster)
+ [Adicionar um operador de GPU a um cluster existente](#sagemaker-hyperpod-eks-gpu-partitioning-setup-add-operator)
+ [Atualizando a configuração MIG](#sagemaker-hyperpod-eks-gpu-partitioning-setup-update)
+ [Verificando a configuração do MIG](#sagemaker-hyperpod-eks-gpu-partitioning-setup-verify)
+ [Comandos comuns para depuração da configuração MIG](#sagemaker-hyperpod-eks-gpu-partitioning-setup-debug-commands)
+ [Usando o SageMaker AI Console](#sagemaker-hyperpod-eks-gpu-partitioning-setup-console)

## Pré-requisitos
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-prerequisites"></a>
+ HyperPod Cluster Amazon EKS com instâncias de GPU compatíveis
+ Operador de GPU NVIDIA instalado
+ Permissões apropriadas do IAM para gerenciamento de clusters

## Criando um cluster com configuração 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"
}
```

## Adicionar um operador de GPU a um cluster existente
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-add-operator"></a>

### Instalar o operador de GPU
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-add-operator-install"></a>

`{$AWS_REGION}`Substitua pela região do seu cluster (por exemplo, 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
```

### Verifique a instalação (aguarde de 2 a 3 minutos)
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-add-operator-verify"></a>

Verifique se todos os pods de operadores de GPU estão em execução:

```
kubectl get pods -n kube-system | grep -E "(gpu-operator|nvidia-)"
```

**Cápsulas esperadas:**
+ gpu-operator-\$1 - 1 instância (controlador de cluster)
+ nvidia-device-plugin-daemonset-\$1 - 1 por nó da GPU (todas as instâncias da GPU)
+ nvidia-mig-manager-\$1 - 1 por nó compatível com MIG (A100/H100)

### Remover plug-in de dispositivo antigo
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-add-operator-remove"></a>

Desative o existente nvidia-device-plugin:

```
helm upgrade dependencies helm_chart/HyperPodHelmChart \
--set nvidia-device-plugin.devicePlugin.enabled=false \
-n kube-system
```

### Verifique os recursos da GPU
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-add-operator-verify-gpu"></a>

Confirme se os nós mostram a capacidade da GPU. Ele deve exibir: nvidia.com/gpu: 8 (ou sua contagem real de GPU).

```
kubectl describe nodes | grep "nvidia.com/gpu"
```

## Atualizando a configuração MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update"></a>

**Preparando os nós antes das atualizações do MIG**  
Antes de atualizar as configurações do MIG no seu grupo de instâncias, você deve preparar os nós para evitar a interrupção da carga de trabalho. Siga estas etapas para drenar com segurança as cargas de trabalho dos nós que serão reconfigurados.

### Etapa 1: identificar nós no grupo de instâncias
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update-identify"></a>

Primeiro, identifique todos os nós que pertencem ao grupo de instâncias que você quer atualizar:

```
# 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
```

Esse comando retorna uma lista de todos os nós no grupo de instâncias especificado. Anote o nome de cada nó para as etapas a seguir.

### Etapa 2: isolar e drenar cada nó
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update-drain"></a>

Para cada nó identificado na Etapa 1, execute as seguintes ações:

#### Cordon, o Nodo
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update-drain-cordon"></a>

O isolamento impede que novos pods sejam programados no nó:

```
# Cordon a single node
kubectl cordon NODE_NAME

# Example:
kubectl cordon hyperpod-i-014a41a7001adca60
```

#### Drene os pods de carga de trabalho do Node
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update-drain-evict"></a>

Drene o nó para despejar todos os módulos de carga de trabalho e, ao mesmo tempo, preservar os módulos do 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
```

**Explicação das opções de comando:**
+ `--ignore-daemonsets`- Permite que a operação de drenagem continue mesmo se houver DaemonSet cápsulas
+ `--delete-emptydir-data`- Exclui pods usando volumes emptyDir (necessários para que a drenagem seja bem-sucedida)
+ `--force`- Força a exclusão de pods não gerenciados por um controlador (use com cuidado)
+ `--grace-period=300`- Dá 5 minutos para que os pods terminem graciosamente

**Importante**  
A operação de drenagem pode levar vários minutos, dependendo do número de cápsulas e de seus períodos de carência de término.
Os pods do sistema nos seguintes namespaces permanecerão em execução:`kube-system`,,`cert-manager`,`kubeflow`,`hyperpod-inference-system`,`kube-public`,`mpi-operator`,,`gpu-operator`, `aws-hyperpod``jupyter-k8s-system`, e `hyperpod-observability` `kueue-system` `keda`
DaemonSet os pods permanecerão no nó (eles são ignorados pelo design)

### Etapa 3: Verificar se não há pods de carga de trabalho em execução
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update-verify"></a>

Depois de drenar, verifique se nenhum pod de carga de trabalho permanece nos nós (excluindo namespaces do 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"
```

**Saída esperada:** se o nó for drenado adequadamente, esse comando não deverá retornar nenhum resultado (ou mostrar apenas a linha do cabeçalho). Se algum pod ainda estiver funcionando, investigue por que ele não foi despejado e exclua-o manualmente, se necessário.

### Etapa 4: Verificar o status de prontidão do nó
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update-readiness"></a>

Antes de prosseguir com a atualização do MIG, confirme se todos os nós estão isolados:

```
# Check node status - should show "SchedulingDisabled"
kubectl get nodes -l sagemaker.amazonaws.com/instance-group-name=INSTANCE_GROUP_NAME
```

Os nós devem aparecer `SchedulingDisabled` na coluna STATUS, indicando que estão isolados e prontos para a atualização do MIG.

### Atualizar o perfil MIG no cluster existente
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-update-change"></a>

Você pode alterar os perfis MIG em clusters existentes:

```
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 os trabalhos já estiverem sendo executados em um nó, o particionamento MIG falhará. O usuário receberá uma mensagem de erro para drenar os nós antes de tentar novamente o particionamento MIG.

## Verificando a configuração do MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-verify"></a>

Após a criação ou atualização do cluster, verifique a configuração do 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:"
```

## Comandos comuns para depuração da configuração MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-debug-commands"></a>

Use os comandos a seguir para solucionar problemas e validar a configuração do MIG em seu 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**  
`nvidia-device-plugin-XXXXX`Substitua `nvidia-driver-XXXXX` e pelos nomes reais dos pods do seu cluster e `NODE_NAME` pelo nome do seu nó.

## Usando o SageMaker AI Console
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-console"></a>

### Criando um novo cluster com o MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-console-create"></a>

1. Navegue até **Amazon SageMaker AI** > **HyperPod Clusters** > **Gerenciamento de clusters** > **Criar HyperPod cluster**

1. Selecione **Orchestrated by EKS**

1. Escolha **Configuração personalizada** e verifique se o **operador de GPU** está ativado por padrão

1. Na seção **Grupos de instâncias**, clique em **Adicionar grupo**

1. Configure o grupo de instâncias e navegue até **Configuração avançada** para ativar a opção **Usar partição GPU** e escolha a configuração **MIG desejada no menu suspenso**.

1. Clique em **Adicionar grupo de instâncias** e conclua a configuração restante do cluster.

1. Clique em **Enviar** para criar o cluster

### Atualizando a configuração MIG em um cluster existente
<a name="sagemaker-hyperpod-eks-gpu-partitioning-setup-console-update"></a>

1. Navegue até **Amazon SageMaker AI** > **HyperPod Clusters** > **Gerenciamento de clusters**

1. Selecione seu cluster existente e clique em **Editar** no grupo de instâncias que você deseja modificar

1. Em **Configuração avançada**, alterne **Usar partição GPU** se ainda não estiver habilitado e selecione uma configuração **MIG** diferente no menu suspenso

1. Clique em **Salvar alterações**

# Ciclo de vida e rótulos do Node
<a name="sagemaker-hyperpod-eks-gpu-partitioning-labels"></a>

A Amazon SageMaker HyperPod realiza verificações profundas de saúde em instâncias de cluster durante a criação e atualização de HyperPod clusters antes do início do particionamento da GPU. HyperPod o agente de monitoramento de integridade monitora continuamente o status de integridade das instâncias particionadas por GPU.

## Estados de configuração do MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-labels-states"></a>

Os nós com configuração de partição de GPU passam por vários estados:
+ **Pendente** - O nó está sendo configurado com um perfil MIG
+ **Configurando - o** operador da GPU está aplicando o particionamento MIG
+ **Sucesso - o** particionamento da GPU foi concluído com sucesso
+ **Falha** - o particionamento da GPU encontrou um erro

## Monitorando os estados dos nós
<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:"
```

## Etiquetas e tintas personalizadas
<a name="sagemaker-hyperpod-eks-gpu-partitioning-labels-custom"></a>

Você pode gerenciar a configuração do MIG com rótulos e manchas personalizados para rotular suas partições de GPU e aplicá-las em todas as instâncias:

```
{
  "KubernetesConfig": {
    "Labels": {
      "nvidia.com/mig.config": "all-2g.10gb",
      "task-type": "inference",
      "environment": "production"
    },
    "Taints": [
      {
        "Key": "gpu-task",
        "Value": "mig-enabled",
        "Effect": "NoSchedule"
      }
    ]
  }
}
```

# Envio de tarefas com o MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission"></a>

**Topics**
+ [Usando o Kubernetes YAML](#sagemaker-hyperpod-eks-gpu-partitioning-task-submission-kubectl)
+ [Usando a HyperPod CLI](#sagemaker-hyperpod-eks-gpu-partitioning-task-submission-cli)
+ [Implantação do modelo com MIG](#sagemaker-hyperpod-eks-gpu-partitioning-task-submission-deployment)
+ [Usando a HyperPod CLI](#sagemaker-hyperpod-eks-gpu-partitioning-task-submission-hyperpod-cli)

## Usando o 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
```

## Usando a HyperPod CLI
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-cli"></a>

Use a HyperPod CLI para implantar JumpStart modelos com suporte MIG. O exemplo a seguir demonstra os novos parâmetros da CLI para particionamento de 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
```

## Implantação do modelo com MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-deployment"></a>

HyperPod A inferência permite implantar os modelos em perfis MIG por meio do Studio Classic e `kubectl` da CLI. HyperPod Para implantar JumpStart modelos em`kubectl`, CRDs chame os campos `spec.server.acceleratorPartitionType` para implantar o modelo no perfil MIG desejado. Executamos validações para garantir que os modelos possam ser implantados no perfil MIG selecionado no CRD. Caso queira desativar as verificações de validação do MIG, use `spec.server.validations.acceleratorPartitionValidation` para`False`.

### JumpStart Modelos
<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
```

### Implante o modelo do Amazon S3 usando InferenceEndpointConfig
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-s3"></a>

InferenceEndpointConfig permite que você implante um modelo personalizado do Amazon S3. Para implantar um modelo no MIG, `spec.worker.resources` mencione o perfil MIG em e. `requests` `limits` Consulte uma implantação simples abaixo:

```
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
```

### Implante o modelo do FSx for Lustre usando InferenceEndpointConfig
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-fsx"></a>

InferenceEndpointConfig permite que você implante um modelo personalizado do FSx for Lustre. Para implantar um modelo no MIG, `spec.worker.resources` mencione o perfil MIG em e. `requests` `limits` Consulte uma implantação simples abaixo:

```
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
```

### Usando a interface do usuário do Studio Classic
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-studio"></a>

#### Implantação de JumpStart modelos com o MIG
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-studio-deploy"></a>

1. Abra o **Studio Classic** e navegue até **JumpStart**

1. Procure ou pesquise o modelo desejado (por exemplo, "DeepSeek“, “Llama”, etc.)

1. Clique na placa do modelo e selecione **Implantar**

1. Na configuração de implantação:
   + Escolha **HyperPod**como alvo de implantação
   + Selecione seu cluster habilitado para MIG no menu suspenso
   + Em **Configuração de instância**:
     + Selecione o tipo de instância (por exemplo,`ml.p4d.24xlarge`)
     + Escolha o **tipo de partição de GPU** entre as opções disponíveis
     + Defina as configurações de **contagem de instâncias** e **escalonamento automático**

1. Revise e clique em **Implantar**

1. Monitore o progresso da implantação na seção **Endpoints**

#### Opções de configuração do modelo
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-studio-config"></a>

**Configurações do endpoint:**
+ **Nome do endpoint** - identificador exclusivo para sua implantação
+ **Nome da variante** - Variante de configuração (padrão: AllTraffic)
+ **Tipo de instância:** deve ser compatível com a partição GPU (série p)
+ **Perfil MIG - partição** GPU
+ **Contagem inicial de instâncias** - Número de instâncias a serem implantadas
+ **Escalonamento automático** - Ative o escalonamento dinâmico com base no tráfego

**Configuração avançada:**
+ **Localização dos dados do modelo** - Caminho do Amazon S3 para modelos personalizados
+ **Imagem do contêiner** - contêiner de inferência personalizado (opcional)
+ **Variáveis de ambiente** - configurações específicas do modelo
+ Configuração **do Amazon VPC - Configurações de** isolamento de rede

#### Monitorando modelos implantados
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-studio-monitor"></a>

1. **Navegue até **Studio Classic** > **Implantações > Endpoints****

1. Selecione seu endpoint habilitado para MIG

1. Veja métricas, incluindo:
   + **Utilização de MIG - Uso por partição** de GPU
   + **Consumo de memória** - Por partição de GPU
   + **Latência de inferência - Tempo de** processamento da solicitação
   + **Taxa de transferência** - Solicitações por segundo

1. Configure os ** CloudWatch alarmes da Amazon** para monitoramento automatizado

1. Configure políticas **de auto-scaling** com base na utilização do MIG

## Usando a HyperPod CLI
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-hyperpod-cli"></a>

### JumpStart Implantação
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-hyperpod-cli-jumpstart"></a>

O JumpStart comando HyperPod CLI inclui dois novos campos para suporte ao MIG:
+ `--accelerator-partition-type`- Especifica a configuração MIG (por exemplo, mig-4g.20gb)
+ `--accelerator-partition-validation`- Valida a compatibilidade entre modelos e perfil MIG (padrão: verdadeiro)

```
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/
```

### Implantação personalizada de endpoints
<a name="sagemaker-hyperpod-eks-gpu-partitioning-task-submission-hyperpod-cli-custom"></a>

Para implantar por meio de endpoint personalizado, use os campos existentes `--resources-requests` e habilite `--resources-limits` a funcionalidade do perfil 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"
  }'
```

# Recursos de resiliência de cluster para orquestração SageMaker HyperPod de clusters com o Amazon EKS
<a name="sagemaker-hyperpod-eks-resiliency"></a>

SageMaker HyperPod fornece os seguintes recursos de resiliência de cluster. 

**Topics**
+ [Sistema de Monitoramento de Saúde](sagemaker-hyperpod-eks-resiliency-health-monitoring-agent.md)
+ [Verificações de integridade básica](sagemaker-hyperpod-eks-resiliency-basic-health-check.md)
+ [Verificações de integridade profundas](sagemaker-hyperpod-eks-resiliency-deep-health-checks.md)
+ [Recuperação automática de nós](sagemaker-hyperpod-eks-resiliency-node-recovery.md)
+ [Rótulos Kubernetes relacionados à resiliência da SageMaker HyperPod](sagemaker-hyperpod-eks-resiliency-node-labels.md)
+ [Colocar em quarentena, substituir ou reinicializar manualmente um nó](sagemaker-hyperpod-eks-resiliency-manual.md)
+ [Configurações sugeridas de resiliência](sagemaker-hyperpod-eks-resiliency-config-tips.md)

# Sistema de Monitoramento de Saúde
<a name="sagemaker-hyperpod-eks-resiliency-health-monitoring-agent"></a>

SageMaker HyperPod sistema de monitoramento de saúde inclui dois componentes 

1. Agentes de monitoramento instalados em seus nós, que incluem o Health Monitoring Agent (HMA), que serve como um monitor de integridade no host e um conjunto de monitores de out-of-node saúde.

1. Sistema de recuperação de nós gerenciado por SageMaker HyperPod. O sistema de monitoramento de integridade monitorará o status de integridade do nó continuamente por meio de agentes de monitoramento e, em seguida, tomará medidas automaticamente quando a falha for detectada usando o Node Recovery System. 

![\[Esta imagem ilustra como o sistema de monitoramento de saúde está integrado ao HyperPod Cluster.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/hyperpod/hyperpod-resilience-event.png)


## Verificações de saúde feitas pelo agente de SageMaker HyperPod monitoramento de saúde
<a name="sagemaker-hyperpod-eks-resiliency-health-monitoring-agent-list-of-checks"></a>

O agente de SageMaker HyperPod monitoramento de saúde verifica o seguinte.

**NVIDIA GPUs**
+ [Notificações de violação da política DCGM](https://docs.nvidia.com/datacenter/dcgm/3.0/user-guide/feature-overview.html#notifications)
+ Erros na saída `nvidia-smi`
+ Vários erros nos logs gerados pela plataforma Amazon Elastic Compute Cloud (EC2)
+ Validação da contagem de GPU — se houver uma incompatibilidade entre o número esperado de GPUs em um determinado tipo de instância (por exemplo: 8 GPUs no tipo de instância ml.p5.48xlarge) e a contagem retornada por, o HMA reinicializa o nó `nvidia-smi` 

**AWS Estágio**
+ Erros na saída do [AWS monitor Neuron](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/tools/neuron-sys-tools/neuron-monitor-user-guide.html)
+ Saídas geradas pelo detector de problemas do nó do neurônio (para obter mais informações sobre o detector de problemas do nó do AWS neurônio, consulte [Detecção e recuperação de problemas do nó do nó do AWS Neuron nos clusters do Amazon](https://aws.amazon.com/blogs/machine-learning/node-problem-detection-and-recovery-for-aws-neuron-nodes-within-amazon-eks-clusters/) EKS).
+ Vários erros nos logs gerados pela plataforma Amazon EC2
+ Validação da contagem de dispositivos neuronais — se houver uma incompatibilidade entre o número real de contagem de dispositivos neuronais em um determinado tipo de instância e a contagem retornada`neuron-ls`, o HMA reinicializa o nó

 As verificações acima são passivas, as verificações de integridade em segundo plano são HyperPod executadas continuamente em seus nós. Além dessas verificações, HyperPod também executa verificações de saúde profundas (ou ativas) durante a criação e atualização de HyperPod clusters. Saiba mais sobre [verificações de saúde aprofundadas](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-resiliency-deep-health-checks.html).

## Detecção de falhas
<a name="sagemaker-hyperpod-eks-resiliency-health-monitoring-fault-detection"></a>

Quando SageMaker HyperPod detecta uma falha, ele implementa uma resposta em quatro partes:

1. **Rótulos de nós**

   1. Status de saúde: `sagemaker.amazonaws.com/node-health-status`

   1. Tipo de falha: `sagemaker.amazonaws.com/fault-types` etiqueta para categorização de alto nível

   1. Motivo da falha: `sagemaker.amazonaws.com/fault-reasons` etiqueta para informações detalhadas da falha

1. **Mancha do nódulo**

   1. `sagemaker.amazonaws.com/node-health-status=Unschedulable:NoSchedule`

1. **Anotação de nó**

   1. Detalhes da falha: `sagemaker.amazonaws.com/fault-details`

   1. Registra até 20 falhas com registros de data e hora que ocorreram no nó

1. **Condições do nó (condição** do nó do [Kubernetes)](https://kubernetes.io/docs/reference/node/node-status/#condition)

   1. Reflete o status de saúde atual nas condições dos nós:
      + Tipo: Igual ao tipo de falha
      + Status: `True`
      + Motivo: O mesmo que o motivo da falha
      + LastTransitionTime: Tempo de ocorrência da falha

![\[Esta imagem ilustra como o sistema de monitoramento de saúde funciona quando uma falha é detectada.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/hyperpod/hyperpod-resilience-workflow.png)


## Registros gerados pelo agente de SageMaker HyperPod monitoramento de saúde
<a name="sagemaker-hyperpod-eks-resiliency-health-monitoring-agent-health-check-results"></a>

O agente de SageMaker HyperPod monitoramento de integridade é um recurso de verificação de out-of-the-box integridade e é executado continuamente em todos os HyperPod clusters. O agente de monitoramento de integridade publica eventos de saúde detectados em instâncias de GPU ou Trn no grupo de registros CloudWatch do Cluster. `/aws/sagemaker/Clusters/`

Os registros de detecção do agente de monitoramento de HyperPod integridade são criados como fluxos de registros separados nomeados `SagemakerHealthMonitoringAgent` para cada nó. Você pode consultar os registros de detecção usando os insights de CloudWatch log da seguinte forma.

```
fields @timestamp, @message
| filter @message like /HealthMonitoringAgentDetectionEvent/
```

Esse comando retorna uma saída semelhante à seguinte:

```
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"}
```

# Verificações de integridade básica
<a name="sagemaker-hyperpod-eks-resiliency-basic-health-check"></a>

SageMaker HyperPod executa um conjunto de *verificações básicas de integridade* em instâncias de cluster durante a criação e atualização de HyperPod clusters. Essas verificações básicas de saúde são independentes do orquestrador, portanto, essas verificações são aplicáveis independentemente das plataformas de orquestração subjacentes suportadas pelo SageMaker HyperPod (Amazon EKS ou Slurm).

As verificações básicas de integridade monitoram as instâncias do cluster em busca de problemas relacionados a dispositivos como aceleradores (núcleos de GPU e Trainium) e dispositivos de rede (Elastic Fabric Adapter ou EFA). Para encontrar a lista de verificações básicas de integridade do cluster, consulte [Verificações de integridade do cluster](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-resiliency-slurm.html#sagemaker-hyperpod-resiliency-slurm-cluster-health-check).

# Verificações de integridade profundas
<a name="sagemaker-hyperpod-eks-resiliency-deep-health-checks"></a>

SageMaker HyperPod realiza *verificações de integridade detalhadas* em instâncias de cluster durante a criação e atualização de HyperPod clusters. Você também pode solicitar verificações de saúde detalhadas sob demanda para um SageMaker HyperPod cluster usando a [StartClusterHealthCheck](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StartClusterHealthCheck.html)API. As verificações profundas de integridade garantem a confiabilidade e a estabilidade dos SageMaker HyperPod clusters testando os componentes subjacentes de hardware e infraestrutura. Essa abordagem proativa ajuda a identificar e mitigar possíveis problemas no início do ciclo de vida do cluster.

## Lista de verificações de saúde detalhadas feitas por SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-resiliency-deep-health-checks-list"></a>

SageMaker HyperPod executa as seguintes verificações de saúde detalhadas.

**verificações profundas de integridade em nível de instância**


| Categoria | Nome do utilitário | Compatibilidade de tipo de instância | Description | 
| --- | --- | --- | --- | 
| Acelerador | Contagem de GPUs NVLink  | GPU | Verifica as GPU/NVLink contagens. | 
| Acelerador | [Diagnóstico DCGM](https://docs.nvidia.com/datacenter/dcgm/latest/user-guide/dcgm-diagnostics.html) de nível 4 | GPU | Avalia a integridade e a funcionalidade da NVIDIA GPUs executando o diagnóstico DCGM (NVIDIA Data Center GPU Manager) no nível 4, incluindo testes adicionais de memória. | 
| Acelerador | Sistemas de neurônios | Trainium | Para instâncias alimentadas por Trainium, a integridade dos dispositivos Neuron é determinada pela leitura de contadores do [Neuron sysfs](https://awsdocs-neuron.readthedocs-hosted.com/en/latest/tools/neuron-sys-tools/neuron-sysfs-user-guide.html) propagados diretamente pelo driver Neuron. | 
| Acelerador | Verificação de hardware Neuron | Trainium | Executa uma carga de trabalho de treinamento e verifica os resultados para testar o hardware. | 
| Acelerador | Teste local do NCCOM | Trainium | Avalia o desempenho das operações de comunicação coletiva em nós únicos do Trainium | 
| Rede | EFA | GPU e Trainium | Executa benchmarking de latência e largura de banda no dispositivo EFA conectado. | 

**verificações profundas de integridade em nível de cluster**


| Categoria | Nome do utilitário | Compatibilidade de tipo de instância | Description | 
| --- | --- | --- | --- | 
| Acelerador | Teste NCCL | GPU | Verifica o desempenho das operações de comunicação coletiva em vários NVIDIA GPUs | 
| Acelerador | Teste de cluster NCCOM | Trainium | Verifica o desempenho das operações de comunicação coletiva em vários nós do Trainium | 

**Verificações de saúde detalhadas com grupos de instâncias flexíveis**  
Para grupos de instâncias que usam `InstanceRequirements` com vários tipos de instância, as verificações de saúde profundas se comportam da seguinte maneira:  
As verificações de integridade detalhadas em nível de instância são executadas somente em tipos de instância de GPU qualificados. Os tipos de instância de CPU em um grupo de instâncias flexível são ignorados.
Os testes de conectividade em nível de cluster (como NCCL AllReduce) são executados somente entre instâncias do mesmo tipo dentro do grupo de instâncias. Isso garante resultados de teste precisos que refletem os recursos de rede de cada tipo de instância.
Se as verificações de saúde profundas estiverem habilitadas, pelo menos um tipo de instância no grupo de instâncias flexíveis deverá oferecer suporte a verificações de saúde profundas.

## Logs das verificações de integridade profundas
<a name="sagemaker-hyperpod-eks-resiliency-deep-health-checks-log"></a>

Veja a seguir exemplos de registros das verificações de saúde SageMaker HyperPod detalhadas.

**Logs em nível de cluster** 

Os registros de verificação profunda de integridade em nível de cluster são armazenados em seu CloudWatch grupo de registros em `/aws/sagemaker/Clusters/<cluster_name>/<cluster_id>`

Os fluxos de log estão registrados em `DeepHealthCheckResults/<log_stream_id>`.

Como exemplo mostrado abaixo, os logs de saída da verificação de integridade profunda mostram o ID da instância que falhou nas verificações e a causa da falha.

```
{
    "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"
}
```

**Logs no nível da instância** 

Os logs de verificação de integridade profunda em nível de instância são armazenados em `/var/log/aws/clusters/sagemaker-deep-health-check.log` em cada nó. Faça o SSH no nó e abra o arquivo de log executando o comando a seguir.

```
cat /var/log/aws/clusters/sagemaker-deep-health-check.log
```

A seguir, um exemplo de estresse de hardware, estresse [NVIDIA DCGM](https://developer.nvidia.com/dcgm) e teste de conectividade 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
```

Confira a seguir um exemplo do resultado do teste de saída.

```
#       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:
```

# Recuperação automática de nós
<a name="sagemaker-hyperpod-eks-resiliency-node-recovery"></a>

Durante a criação ou atualização do cluster, os usuários administradores do cluster podem selecionar a opção de recuperação do nó (instância) entre `Automatic` (Recomendado) e `None` no nível do cluster. Se definido como`Automatic`, SageMaker HyperPod reinicializa ou substitui automaticamente os nós defeituosos. 

**Importante**  
Recomendamos definir a opção `Automatic`.

A recuperação automática de nós é executada quando problemas são encontrados no agente de monitoramento de integridade, nas verificações básicas de integridade e nas verificações profundas de integridade. Se definido como `None`, o agente de monitoramento de integridade rotulará as instâncias quando uma falha for detectada, mas não iniciará automaticamente nenhuma ação de reparo ou recuperação nos nós afetados. Essa opção não é recomendada.

# Rótulos Kubernetes relacionados à resiliência da SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-resiliency-node-labels"></a>

Os *rótulos* são pares de valores-chave anexados aos objetos do [Kubernetes](https://kubernetes.io/docs/concepts/overview/working-with-objects/#kubernetes-objects). SageMaker HyperPod apresenta os seguintes rótulos para as verificações de saúde que ele fornece.

## Etiquetas de status de integridade do nó
<a name="sagemaker-hyperpod-eks-resiliency-node-labels-health-status"></a>

Os rótulos `node-health-status` representam o status de integridade do nó e devem ser usados como parte do filtro seletor de nós em nós saudáveis.


| Rótulo | Description | 
| --- | --- | 
| sagemaker.amazonaws.com/node-health-status: Schedulable | Isso significa que o nó foi aprovado em verificações de integridade básicas ou em verificações profundas de integridade e está disponível para executar workloads. Essa verificação de integridade é a mesma dos [recursos de SageMaker HyperPod resiliência atualmente disponíveis para clusters do Slurm](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-resiliency-slurm.html). | 
| sagemaker.amazonaws.com/node-health-status: Unschedulable | Isso significa que o nó está executando verificações aprofundadas de integridade e não está disponível para executar workloads. | 
| sagemaker.amazonaws.com/node-health-status: UnschedulablePendingReplacement | Isso significa que o nó não foi aprovado em verificações profundas de integridade ou em verificações do agente de monitoramento de integridade e precisa ser substituído. Se a recuperação automática do nó estiver ativada, o nó será automaticamente substituído por SageMaker HyperPod. | 
| sagemaker.amazonaws.com/node-health-status: UnschedulablePendingReboot | Isso significa que o nó não foi aprovado em verificações aprofundadas de integridade ou em verificações do agente de monitoramento de integridade e precisa ser substituído. Se a recuperação automática do nó estiver ativada, o nó será reinicializado automaticamente pelo. SageMaker HyperPod | 

## Rótulos de verificação de integridade profunda
<a name="sagemaker-hyperpod-eks-resiliency-node-labels-deep-health-check"></a>

Os rótulos `deep-health-check-status` representam o progresso da verificação de integridade profunda em um nó específico. Útil para os usuários do Kubernetes filtrarem rapidamente o progresso das verificações gerais de integridade profundas.


| Rótulo | Description | 
| --- | --- | 
| sagemaker.amazonaws.com/deep-health-check-status: InProgress | Isso significa que o nó está executando verificações aprofundadas de integridade e não está disponível para executar workloads. | 
| sagemaker.amazonaws.com/deep-health-check-status: Passed | O nó concluiu com êxito verificações detalhadas de integridade e do agente de monitoramento de integridade e está disponível para executar workloads. | 
| sagemaker.amazonaws.com/deep-health-check-status: Failed | O nó não foi aprovado em verificações detalhadas de integridade ou do agente de monitoramento de integridade e precisa ser reinicializado ou substituído. Se a recuperação automática do nó estiver ativada, o nó será automaticamente reinicializado ou substituído por. SageMaker HyperPod | 

## Rótulos de tipo e motivo da falha
<a name="sagemaker-hyperpod-eks-resiliency-node-labels-fault-type-and-reason"></a>

A seguir, descrevemos `fault-type` os `fault-reason` rótulos e.
+ Os rótulos `fault-type` representam categorias de falhas de alto nível quando as verificações de integridade falham. Eles são preenchidos com as falhas identificadas durante as verificações profundas dos agentes de monitoramento da integridade e da integridade.
+ Os rótulos `fault-reason` representam o motivo detalhado da falha associado a `fault-type` a.

## Como os SageMaker HyperPod rótulos
<a name="sagemaker-hyperpod-eks-resiliency-node-how-it-labels"></a>

Os tópicos a seguir abordam como a rotulagem é feita, dependendo de vários casos.

**Topics**
+ [Quando um nó é adicionado a um SageMaker HyperPod cluster com a configuração de verificação profunda de integridade desativada](#sagemaker-hyperpod-eks-resiliency-node-how-it-labels-when-dhc-is-off)
+ [Quando um nó é adicionado a um SageMaker HyperPod cluster com a configuração de verificação profunda de integridade ativada](#sagemaker-hyperpod-eks-resiliency-node-how-it-labels-when-dhc-is-on)
+ [Quando há alguma falha de computação nos nós](#sagemaker-hyperpod-eks-resiliency-node-how-it-labels-when-node-fails)

### Quando um nó é adicionado a um SageMaker HyperPod cluster com a configuração de verificação profunda de integridade desativada
<a name="sagemaker-hyperpod-eks-resiliency-node-how-it-labels-when-dhc-is-off"></a>

Quando um novo nó é adicionado a um cluster e se a verificação profunda de saúde não está habilitada para o grupo de instâncias, SageMaker HyperPod executa as mesmas verificações de saúde que as verificações de [ SageMaker HyperPod saúde atualmente disponíveis para clusters do Slurm](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-resiliency-slurm.html). 

Se a verificação de integridade for aprovada, os nós serão marcados com o rótulo a seguir.

```
sagemaker.amazonaws.com/node-health-status: Schedulable
```

Se a verificação de integridade não for aprovada, os nós serão encerrados e substituídos. Esse comportamento é o mesmo que a verificação de SageMaker HyperPod integridade funciona para clusters do Slurm. 

### Quando um nó é adicionado a um SageMaker HyperPod cluster com a configuração de verificação profunda de integridade ativada
<a name="sagemaker-hyperpod-eks-resiliency-node-how-it-labels-when-dhc-is-on"></a>

Quando um novo nó é adicionado a um SageMaker HyperPod cluster e se o teste de verificação profunda de integridade estiver habilitado para o grupo de instâncias, HyperPod primeiro corrompe o nó e inicia o check/stress teste de integridade profundo de aproximadamente 2 horas no nó. Há 3 saídas possíveis dos rótulos dos nós após a verificação de integridade profunda. 

1. Quando o teste de verificação de integridade profunda for aprovado

   ```
   sagemaker.amazonaws.com/node-health-status: Schedulable
   ```

1. Quando o teste de verificação de integridade profunda falha e a instância precisa ser substituída

   ```
   sagemaker.amazonaws.com/node-health-status: UnschedulablePendingReplacement
   ```

1. Quando o teste de verificação de integridade profunda falha e a instância precisa ser reinicializada para executar novamente a verificação de integridade profunda

   ```
   sagemaker.amazonaws.com/node-health-status: UnschedulablePendingReboot
   ```

Se uma instância falhar no teste de verificação de integridade profunda, ela sempre será substituída. Se os testes de verificação de integridade profunda forem bem-sucedidos, a taint no nó será removida.

### Quando há alguma falha de computação nos nós
<a name="sagemaker-hyperpod-eks-resiliency-node-how-it-labels-when-node-fails"></a>

O agente SageMaker HyperPod de monitoramento de saúde também monitora continuamente o status de saúde de cada nó. Quando detecta alguma falha (como falha na GPU e falha no driver), o agente marca o nó com um dos rótulos a seguir.

1. Quando o nó não está íntegro e precisa ser substituído

   ```
   sagemaker.amazonaws.com/node-health-status: UnschedulablePendingReplacement
   ```

1. Quando o nó não está íntegro e precisa ser reinicializado

   ```
   sagemaker.amazonaws.com/node-health-status: UnschedulablePendingReboot
   ```

 O agente de monitoramento de integridade também coloca uma taint no nó quando detecta qualquer problema de integridade do nó.

# Colocar em quarentena, substituir ou reinicializar manualmente um nó
<a name="sagemaker-hyperpod-eks-resiliency-manual"></a>

Saiba como colocar em quarentena, substituir e reinicializar manualmente um nó com defeito em SageMaker HyperPod clusters orquestrados com o Amazon EKS.

**Para colocar um nó em quarentena e forçar a exclusão de um pod de treinamento**

```
kubectl cordon <node-name>
```

Após a quarentena, force a ejeção do Pod. Isso é útil quando você vê que um pod está preso na terminação por mais de 30 minutos ou `kubectl describe pod` mostra “O nó não está pronto” em Eventos

```
kubectl delete pods <pod-name> --grace-period=0 --force
```

SageMaker HyperPod oferece dois métodos para recuperação manual de nós. A abordagem preferida é usar o SageMaker HyperPod Reboot and Replace APIs, que fornece um processo de recuperação mais rápido e transparente que funciona em todos os orquestradores. Como alternativa, você pode usar os comandos kubectl para rotular os nós para operações de reinicialização e substituição. Ambos os métodos ativam os mesmos processos SageMaker HyperPod de recuperação.

**Para reinicializar um nó usando a API de reinicialização**

Para reinicializar um nó, você pode usar a BatchRebootClusterNodes API.

 Aqui está um exemplo de como executar a operação de reinicialização em duas instâncias de um cluster usando o 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
```

**Para substituir um nó usando a API Replace**

Para substituir um nó, você pode usar a BatchReplaceClusterNodes API da seguinte forma

 Aqui está um exemplo de execução da operação de substituição em duas instâncias de um cluster usando o 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
```

**Clusters gerenciados pelo Karpenter**  
Para SageMaker HyperPod clusters que usam o Karpenter para provisionamento de nós, a `BatchReplaceClusterNodes` API não garante a criação de um nó substituto. O nó especificado *será* encerrado, mas a substituição depende do modelo de provisionamento do pod-demand-based Karpenter. O Karpenter só cria novos nós quando há pods em um `Pending` estado que não pode ser programado nos nós existentes.  
Se a carga de trabalho do nó excluído puder ser reprogramada para os nós restantes no cluster (por exemplo, se esses nós tiverem capacidade suficiente), o Karpenter não provisionará uma substituição. Para garantir que um nó substituto seja criado, verifique se a configuração da carga de trabalho (como regras de antiafinidade do pod ou solicitações de recursos) exige um novo nó para os pods deslocados.  
Estamos cientes dessa limitação e estamos trabalhando ativamente em uma solução para impor a substituição de nós quando solicitada por meio da API.

**Para substituir um nó usando kubectl**

Identifique o nó a ser substituído`sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReplacement`, o que aciona o. SageMaker HyperPod [Recuperação automática de nós](sagemaker-hyperpod-eks-resiliency-node-recovery.md) Observe que você também precisa ativar a recuperação automática de nós durante a criação ou atualização do cluster.

```
kubectl label nodes <node-name> \
   sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReplacement
```

**Para reinicializar um nó usando kubectl**

Identifique o nó com o qual reinicializar`sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReboot`, o que aciona o. SageMaker HyperPod [Recuperação automática de nós](sagemaker-hyperpod-eks-resiliency-node-recovery.md) Observe que você também precisa ativar a recuperação automática de nós durante a criação ou atualização do cluster.

```
kubectl label nodes <node-name> \
   sagemaker.amazonaws.com/node-health-status=UnschedulablePendingReboot
```

Depois que os rótulos `UnschedulablePendingReplacement` `UnschedulablePendingReboot` forem aplicados, você poderá ver o nó ser encerrado ou reinicializado em alguns minutos. 

# Configurações sugeridas de resiliência
<a name="sagemaker-hyperpod-eks-resiliency-config-tips"></a>

Quando as verificações profundas de integridade são habilitadas, sempre que uma nova instância é adicionada ao HyperPod cluster (seja durante a criação do cluster ou por meio da substituição automática de nós), a nova instância passa pelo processo de verificação profunda de integridade (testes de estresse no nível da instância) por cerca de algumas horas. A seguir, são sugeridas combinações de configuração de resiliência, dependendo dos casos possíveis.

1. **Caso**: quando você tem nós sobressalentes adicionais em um cluster como atributos de backup (sem usar a capacidade total) ou se você pode esperar cerca de 2 horas pelo processo de verificação de integridade profunda para obter as instâncias menos propensas a erros.

   **Recomendação**: habilite a configuração de verificação de integridade profunda em todo o ciclo de vida do cluster. A configuração de recuperação automática do nó está habilitada por padrão.

1. **Caso**: Quando você não tem nós de backup adicionais (a capacidade é totalmente usada para alguma carga de treinamento). Você deseja obter os nós de substituição o mais rápido possível para retomar o trabalho de treinamento. 

   **Recomendação**: ative a verificação de integridade profunda durante a criação do cluster e, em seguida, desative a configuração da verificação de integridade profunda após a criação do cluster. A configuração de recuperação automática do nó está habilitada por padrão.

1. **Caso**: quando você não tem nós de backup adicionais e não quer esperar pelo processo de verificação de integridade profunda de aproximadamente 2 horas (pequenos clusters).

   **Recomendação**: desative a configuração de verificação de integridade profunda em todo o ciclo de vida do cluster. A configuração de recuperação automática do nó está habilitada por padrão.

Se você quiser retomar o trabalho de treinamento após uma falha imediatamente, certifique-se de ter nós sobressalentes adicionais como atributos de backup no cluster.

# Instâncias spot na Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-spot"></a>

A Amazon SageMaker HyperPod oferece suporte às instâncias spot do Amazon EC2, permitindo uma economia significativa de custos para cargas de trabalho tolerantes a falhas e sem estado. AI/ML Os casos de uso incluem inferência em lote e trabalhos de treinamento, ajuste de hiperparâmetros e cargas de trabalho experimentais. Você também pode usar instâncias spot para escalar automaticamente sua capacidade computacional quando essa capacidade de baixo custo estiver disponível e reduzir para a capacidade sob demanda quando a capacidade spot adicional for recuperada.

Por padrão, as Instâncias Spot HyperPod funcionam com o [recurso de provisionamento contínuo HyperPod do Spot, que permite provisionar](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-scaling-eks.html) automaticamente SageMaker HyperPod a capacidade restante em segundo plano, enquanto as cargas de trabalho são iniciadas imediatamente nas instâncias disponíveis. Quando o provisionamento de nós encontra falhas devido a restrições de capacidade ou outros problemas, tente novamente SageMaker HyperPod automaticamente em segundo plano até que os clusters atinjam a escala desejada, para que suas operações de escalonamento automático permaneçam resilientes e sem bloqueio. Você também pode usar instâncias spot com escalonamento automático baseado em [Karpenter](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-autoscaling.html).

**Principais capacidades e conceitos a serem considerados**
+ Obtenha até 90% de economia de custos em comparação com instâncias sob demanda
+ Use instâncias spot para trabalhos que possam lidar com interrupções e em que os horários de início e conclusão do trabalho sejam flexíveis
+ Ao usar o Karpenter para escalabilidade automática, você pode configurar para retornar automaticamente HyperPod para o On-Demand quando a capacidade spot for interrompida ou indisponível
+ Acesse uma ampla variedade de tipos de instância de CPU, GPU e acelerador suportados pelo HyperPod
+ A disponibilidade da capacidade depende do fornecimento do EC2 e varia de acordo com a região e o tipo de instância
+ Você pode realizar várias ações, como identificar a probabilidade de obter as instâncias desejadas ou de ser interrompido, usando várias ferramentas, como o [Spot Instance Advisor](https://aws.amazon.com/ec2/spot/instance-advisor/) fornecido pelo EC2.

## Introdução
<a name="sagemaker-hyperpod-spot-instance-getstart"></a>

### Pré-requisitos
<a name="sagemaker-hyperpod-spot-instance-getstart-prereq"></a>

Antes de começar, verifique se você tem:

#### AWS CLI instalado e configurado
<a name="sagemaker-hyperpod-spot-instance-getstart-prereq-cli"></a>

Configure suas AWS credenciais e sua região:

```
aws configure
```

Consulte a [documentação de AWS credenciais](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/setup-credentials.html) para obter instruções detalhadas.

#### Função do IAM para SageMaker HyperPod execução
<a name="sagemaker-hyperpod-spot-instance-getstart-prereq-iam"></a>

Para atualizar o cluster, você deve primeiro criar permissões de [AWS Identity and Access Management](https://aws.amazon.com/iam/) (IAM) para o Karpenter. Para obter instruções, consulte [Criar uma função do IAM para HyperPod escalonamento automático com](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-autoscaling-iam.html) o Karpenter.

#### Configuração de cluster VPC e EKS
<a name="sagemaker-hyperpod-spot-instance-getstart-prereq-cluster"></a>

**2.1 Crie um cluster VPC e EKS**

Siga o [guia de configuração do HyperPod EKS](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-install-packages-using-helm-chart.html) para:

1. Crie uma VPC com sub-redes em várias zonas de disponibilidade

1. Crie um cluster do EKS

1. Instale [as dependências necessárias usando gráficos do](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-install-packages-using-helm-chart.html) Helm

**2.2 Definir variáveis de 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"
```

#### Cotas de serviço para as instâncias spot
<a name="sagemaker-hyperpod-spot-instance-getstart-prereq-quota"></a>

Verifique se você tem as cotas necessárias para as instâncias que você criará no SageMaker HyperPod cluster. Para revisar suas cotas, no console Service Quotas, AWS escolha serviços no painel de navegação e escolha. SageMaker Por exemplo, a captura de tela a seguir mostra a cota disponível para instâncias c5.

![\[Uma imagem contendo informações da região de custo.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/Screenshot-cluster-quota.png)


#### Verifique a disponibilidade do spot
<a name="sagemaker-hyperpod-spot-instance-getstart-prereq-availability"></a>

Antes de criar grupos de instâncias spot, verifique a disponibilidade em diferentes zonas de disponibilidade:

```
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
```

**Dica**: segmente zonas de disponibilidade com pontuações de posicionamento mais altas para melhorar a disponibilidade. Você também pode verificar a disponibilidade do Spot Instance Advisor e do EC2 Spot. Selecione a zona de disponibilidade necessária com melhor pontuação de disponibilidade e configure o grupo de instâncias com a sub-rede associada para iniciar a instância nessa AZ.

### Criação de um grupo de instâncias (sem escalonamento automático)
<a name="sagemaker-hyperpod-spot-instance-getstart-create"></a>

**CreateCluster (Mancha)**

```
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'"] 
    }'
```

**Cluster de atualização (spot \$1 sob demanda)**

```
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`não pode ser modificado depois que um grupo de instâncias é criado.

**Descreva o 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": {...}
  }
}
```

### Usando o console
<a name="sagemaker-hyperpod-spot-instance-getstart-console"></a>

#### Criar e configurar um SageMaker HyperPod cluster
<a name="sagemaker-hyperpod-spot-instance-getstart-console-create"></a>

Para começar, inicie e configure seu cluster SageMaker HyperPod EKS e verifique se o modo de provisionamento contínuo está ativado na criação do cluster. Execute as etapas a seguir:

1. No console do SageMaker AI, escolha HyperPod clusters no painel de navegação.

1. Escolha Create HyperPod cluster e Orchestrated on Amazon EKS.

1. Para opções de configuração, selecione Configuração personalizada.

1. Nome, insira um nome.

1. Em Recuperação de instância, selecione Automático.

1. Em Modo de provisionamento de instâncias, selecione Usar provisionamento contínuo.

1. CapacityType : Selecione o local 

1. Selecione Enviar.

Captura de tela do console: 

![\[Uma imagem contendo o fluxo do cluster de criação.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/Screenshot-create-cluster.png)


Essa configuração cria a configuração necessária, como nuvem privada virtual (VPC), sub-redes, grupos de segurança e cluster EKS, e instala operadores no cluster. Você também pode fornecer recursos existentes, como um cluster EKS, se quiser usar um cluster existente em vez de criar um novo. Essa configuração levará cerca de 20 minutos.

#### Adicionar um novo grupo de instâncias spot ao mesmo cluster
<a name="sagemaker-hyperpod-spot-instance-getstart-console-add"></a>

Para adicionar um Spot IG ao seu cluster HyperPod EKS existente. Execute as etapas a seguir:

1. No console do SageMaker AI, escolha HyperPod clusters no painel de navegação.

1. Selecione um HyperPod cluster existente com o Amazon EKS Orchestration (garanta que o provisionamento contínuo esteja ativado).

1. Clique em Edit.

1. Na página Editar cluster, clique em Criar grupo de instâncias.

1. Selecione o tipo de capacidade: instância spot na configuração do grupo de instâncias.

1. Clique em Criar grupo de instâncias. 

1. Clique em Enviar.

**Captura de tela do console:**

![\[Uma imagem contendo o fluxo de criação do grupo de instâncias.\]](http://docs.aws.amazon.com/pt_br/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"
```

Consulte [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) para obter detalhes.

### Escalonamento automático baseado em Karpenter
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter"></a>

#### Criar função de cluster
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter-role"></a>

**Etapa 1: Navegar até o console do IAM**

1. Vá para o serviço **Console de gerenciamento da AWS**→ **IAM**

1. Clique em **Funções** na barra lateral esquerda

1. Clique em **Criar função**

**Etapa 2: Configurar a política de confiança**

1. Selecione Política de confiança personalizada (em vez de AWS serviço)

1. Substitua o JSON padrão por esta política de confiança:

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

clique em Avançar

**Etapa 3: criar uma política de permissões personalizada**

Como essas são SageMaker permissões específicas, você precisará criar uma política personalizada:

1. Clique em **Criar política** (abre uma nova guia)

1. Clique na guia **JSON**

1. Insira esta política:

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "sagemaker:BatchAddClusterNodes",
           "sagemaker:BatchDeleteClusterNodes"
         ],
         "Resource": "*"
       }
     ]
   }
   ```

1. Clique em **Avançar**.

1. Dê a ele um nome como `SageMakerHyperPodRolePolicy`

1. Clique em **Criar política**

**Etapa 4: anexar a política à função**

1. Volte para a guia de criação de funções

1. Atualize a lista de políticas

1. Pesquise e selecione sua política recém-criada

1. Clique em **Avançar**.

**Etapa 5: Nomear e criar função**

1. Insira um nome de função (por exemplo,`SageMakerHyperPodRole`)

1. Adicione uma descrição, se desejar

1. Revise a política de confiança e as permissões

1. Clique em **Criar função**

#### Verificação
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter-verify"></a>

Após a criação, você pode verificar por:
+ A verificação da guia Relações de confiança mostra o serviço hyperpod.
+ Verificar a guia Permissões mostra sua política personalizada
+ O ARN da função estará disponível para uso com HyperPod

O formato do ARN da função será:

```
 arn:aws:iam::YOUR-ACCOUNT-ID:role/SageMakerHyperPodRole
```

#### Crie um cluster com AutoScaling:
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter-create-cluster"></a>

Para melhor disponibilidade, crie IGs em vários AZs configurando sub-redes. Você também pode incluir o onDemand IGs como alternativa.

```
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"
}'
```

#### Cluster de atualização (spot \$1 sob demanda)
<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'"]
         }
    }]'
```

#### Criar HyperpodNodeClass
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter-create-class"></a>

`HyperpodNodeClass`é um recurso personalizado que mapeia grupos de instâncias pré-criados em SageMaker HyperPod, definindo restrições sobre quais tipos de instância e zonas de disponibilidade são compatíveis com as decisões de escalonamento automático da Karpenter. Para usar`HyperpodNodeClass`, basta especificar os nomes `InstanceGroups` do SageMaker HyperPod cluster que você deseja usar como fonte dos recursos AWS computacionais a serem usados para escalar seus pods no seu. NodePools O `HyperpodNodeClass` nome que você usa aqui é transferido para a NodePool próxima seção, onde você o referenciará. Isso indica de NodePool onde `HyperpodNodeClass` extrair recursos. Para criar um`HyperpodNodeClass`, conclua as seguintes etapas:

1. Crie um arquivo YAML (por exemplo, nodeclass.yaml) semelhante ao código a seguir. Adicione `InstanceGroup` os nomes que você usou no momento da criação do SageMaker HyperPod cluster. Você também pode adicionar novos grupos de instâncias a um cluster SageMaker HyperPod EKS existente.

1. Faça referência ao `HyperPodNodeClass` nome na sua NodePool configuração.

Veja a seguir uma amostra`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
```

O Karpenter prioriza grupos de instâncias spot em vez de instâncias sob demanda, usando o On-Demand como substituto quando especificado na configuração. A seleção de instâncias é classificada pelas pontuações de posicionamento spot do EC2 associadas à zona de disponibilidade de cada sub-rede.

**Aplique a configuração ao seu cluster EKS usando`kubectl`:**

```
kubectl apply -f nodeclass.yaml
```

O HyperPod cluster deve estar AutoScaling habilitado e o AutoScaling status deve mudar para `InService` antes que o `HyperpodNodeClass` possa ser aplicado. Também mostra as capacidades dos grupos de instâncias como Spot ou OnDemand. Para obter mais informações e considerações importantes, consulte [Escalonamento automático](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-autoscaling.html) no EKS. SageMaker HyperPod 

**Por exemplo**

```
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": {}}
```

#### Criar NodePool
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter-create-nodepool"></a>

 NodePool Define restrições nos nós que podem ser criados pelo Karpenter e nos pods que podem ser executados nesses nós. O NodePool pode ser configurado para realizar várias ações, como: 
+ Defina rótulos e manchas para limitar os pods que podem ser executados nos nós que o Karpenter cria
+ Limite a criação de nós a determinadas zonas, tipos de instância e arquiteturas de computador, etc.

Para obter mais informações sobre NodePool, consulte [NodePools](https://karpenter.sh/docs/concepts/nodepools/). SageMaker HyperPod O Managed Karpenter suporta um conjunto limitado de requisitos conhecidos do Kubernetes e do Karpenter, que explicamos neste post.

Para criar um NodePool, conclua as seguintes etapas:

Crie um arquivo YAML `nodepool.yaml` com o nome da NodePool configuração desejada. O código a seguir é um exemplo de configuração para criar uma amostra NodePool. Especificamos o NodePool para incluir nosso tipo de SageMaker instância ml.g6.xlarge e também o especificamos para uma zona. Consulte [NodePools](https://karpenter.sh/docs/concepts/nodepools/)para obter mais personalizações.

```
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"]
```

**Dica**: na interrupção do EC2 Spot, o Hyperpod contamina um nó para acionar o despejo do pod. **O processo de **consolidação** do Karpenter respeita os orçamentos de interrupção do pod e realiza o despejo normal do Kubernetes, mas se você definir consolidateAfter: 0, a consolidação pode acontecer imediatamente, dando muito pouco tempo para um despejo normal do pod.** Defina-o como diferente de zero por até 2 minutos para permitir o despejo elegante da cápsula para qualquer necessidade de posto de controle.

**Aplique o NodePool ao seu cluster:**

```
kubectl apply -f nodepool.yaml
```

**Monitore o NodePool status para garantir que a condição Pronto no status esteja definida como Verdadeiro:**

```
kubectl get nodepool gpunodepool -oyaml
```

Este exemplo mostra como a NodePool pode ser usado para especificar o hardware (tipo de instância) e o posicionamento (zona de disponibilidade) dos pods.

**Inicie uma carga de trabalho simples**

A carga de trabalho a seguir executa uma implantação do Kubernetes em que os pods na implantação solicitam 1 CPU e 256 MB de memória por réplica, por pod. Os frutos ainda não foram fabricados.

```
kubectl apply -f https://raw.githubusercontent.com/aws/karpenter-provider-aws/refs/heads/main/examples/workloads/inflate.yaml
```

Quando aplicamos isso, podemos ver uma implantação e o lançamento de um único nó em nosso cluster, conforme mostrado na captura de tela a seguir.

**Para escalar esse componente, use o seguinte comando:**

```
kubectl scale deployment inflate --replicas 10
```

Consulte [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) para obter mais detalhes.

### Gerenciando a interrupção do nó
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter-interrupt"></a>

As instâncias spot podem ser recuperadas a qualquer momento. O EC2 fornece o melhor aviso de interrupção de 2 minutos na maioria dos casos, mas esse aviso não é garantido. Em algumas situações, o EC2 pode encerrar instâncias spot imediatamente sem qualquer aviso prévio. HyperPod lida automaticamente com os dois cenários:
+ Com aviso prévio de 2 minutos: repete automaticamente o despejo elegante da cápsula e a substituição controlada da capacidade quando a capacidade Spot estiver disponível.
+ Sem aviso prévio (rescisão imediata): repete automaticamente a substituição do nó (quando a capacidade Spot estiver disponível) sem despejo normal 

**Como funciona**

Quando o EC2 envia um aviso de interrupção Spot, automaticamente: HyperPod 

1. Detecta sinal de interrupção 

1. Constrói o nó: impede que novos pods sejam programados na instância interrompida

1. Elimina pods com elegância: dá tempo para que os pods em execução concluam ou verifiquem seu trabalho (respeitando o Kubernetes) `terminationGracePeriodSeconds`

1. Substitui a capacidade: tenta provisionar automaticamente as instâncias de substituição (spot ou sob demanda, com base na disponibilidade). 

   A substituição da capacidade funciona provisionando automaticamente as instâncias de substituição. Quando a capacidade não está imediatamente disponível, o sistema continua verificando até que os recursos se tornem acessíveis. No caso de grupos de instâncias sem escalonamento automático, HyperPod tente escalar dentro do mesmo grupo de instâncias até que a capacidade necessária esteja disponível. Para grupos de instâncias baseados em Karpenter, o Karpenter implementa um mecanismo alternativo para outros grupos de instâncias configurados na classe Node quando o grupo primário não consegue acomodar a demanda. Além disso, você pode configurar o On-Demand como uma opção alternativa, permitindo que o Karpenter mude automaticamente para instâncias sob demanda caso não consiga escalar com sucesso os grupos de instâncias spot.

1. Reprograma cargas de trabalho: o Kubernetes reprograma automaticamente os pods despejados em nós saudáveis

### Encontrando seu uso e fatura
<a name="sagemaker-hyperpod-spot-instance-getstart-karpenter-bill"></a>

Para verificar o uso e o faturamento das Instâncias Spot, HyperPod você pode usar o Console do AWS Cost Explorer. Acesse Billing and Cost Management > Faturamento

![\[Uma imagem contendo informações da região de custo.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/Screenshot-cost-region.png)


**Para explorar o uso e o faturamento no Console, acesse Billing and Cost Management > Cost Explorer**

![\[Uma imagem contendo custo e uso.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/Screenshot-cost-usage.png)


# Usando UltraServers na Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-ultraserver"></a>

SageMaker HyperPod o suporte para Ultraservers fornece recursos de computação de GPU de alto desempenho para cargas de trabalho de IA e aprendizado de máquina. Desenvolvidos com base na NVIDIA GB200 e na NVL72 arquitetura, esses Ultraservers fornecem NVLink conectividade em 18 GB200 instâncias em uma configuração de rack duplo, totalizando 72 B200. GPUs Essa NVLink estrutura permite que as cargas de trabalho usem comunicações de GPU que aumentam a capacidade utilizável da GPU e a memória endereçável além do que é possível com instâncias discretas, suportando modelos de IA mais complexos e que consomem muitos recursos. A NVLink conectividade é habilitada pela tecnologia NVIDIA IMEX, que gerencia a configuração de baixo nível para conexões seguras de malha de GPU entre instâncias dentro do mesmo rack.

HyperPod simplifica a implantação e o gerenciamento desses clusters de GPU por meio do reconhecimento inteligente da topologia e da configuração automatizada. A plataforma descobre e rotula automaticamente os nós com suas informações de localização física e bloco de capacidade, o que oferece suporte ao agendamento com reconhecimento de topologia para cargas de trabalho distribuídas. HyperPod abstrai os complexos requisitos de configuração do IMEX, permitindo que você se concentre na implantação da carga de trabalho em vez da configuração de estrutura de GPU de baixo nível. Você pode escolher opções flexíveis de implantação, como nós autogerenciados e grupos de nós gerenciados pelo EKS. O Amazon EKS fornece soluções otimizadas AMIs que incluem drivers NVIDIA pré-configurados, Fabric Manager, drivers IMEX e todo o software de sistema necessário para uma operação perfeita.

A integração inclui recursos de posicionamento de pods que garantem que as cargas de trabalho distribuídas sejam programadas de forma ideal em todos os NVL72 domínios usando rótulos de topologia padrão do Kubernetes. Os recursos integrados de monitoramento e recuperação automatizada oferecem suporte operacional, em que o agente de integridade da AMI detecta erros de GPU nos logs do kernel e consegue corrigir problemas automaticamente ou substituir nós defeituosos em grupos de nós gerenciados. Essa combinação de escala de GPU, posicionamento inteligente da carga de trabalho e operações automatizadas ajuda você a se concentrar em suas AI/ML inovações e não na complexidade da infraestrutura, ao mesmo tempo em que obtém o máximo desempenho de seus investimentos em GPU.

Para configurar o uso UltraServers com seu HyperPod cluster, consulte as etapas a seguir:

1. Crie um cluster [baseado em EKS HyperPod ](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-create-cluster.html). Ao escolher um grupo de instâncias, certifique-se de escolher um UltraServer. 

1. Depois que o cluster for criado, use os seguintes comandos para instalar plug-ins operacionais:

   Plug-in de dispositivo 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"
   ```

   Descoberta de recursos da GPU

   ```
   kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.17.2/deployments/static/gpu-feature-discovery-daemonset.yaml
   ```

Agora você pode executar tarefas. O exemplo a seguir demonstra como criar um domínio, configurar um domínio IMEX e habilitar a alocação de canais. Essas etapas também permitem criar um pod para provisionar um canal para comunicação NCCL.

1. Crie um arquivo de especificação de recursos para usar com o 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. Aplique a configuração que você criou.

   ```
   kubectl apply -f imex-channel-injection.yaml
   ```

1. Para verificar se o pod foi criado, execute o comando `get pods`.

   ```
   kubectl get pods
   kubectl get pods -n nvidia-dra-driver-gpu -l resource.nvidia.com/computeDomain
   ```

1. Você também pode verificar os logs do pod para ver se ele alocou um canal de comunicação.

   ```
   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. Também é possível verificar os logs para examinar se a configuração automatizada do IMEX está sendo executada com um canal alocado.

   ```
   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. Depois de verificar tudo, exclua a workload e remova a configuração.

   ```
   kubectl delete -f imex-channel-injection.yaml
   ```

# IDEs e cadernos
<a name="sagemaker-hyperpod-eks-cluster-ide"></a>

 SageMaker A Amazon está introduzindo um novo recurso para clusters SageMaker HyperPod EKS, que permite que os desenvolvedores de IA executem suas cargas de trabalho interativas de aprendizado de máquina diretamente no cluster HyperPod EKS. Esse recurso introduz um novo complemento chamado Amazon SageMaker Spaces, que permite que os desenvolvedores de IA criem e gerenciem ambientes independentes para executar notebooks.

Os administradores podem usar o SageMaker HyperPod Console para instalar o complemento em seu cluster e definir configurações de espaço padrão, como imagens, recursos computacionais, armazenamento local para configurações de notebook (armazenamento adicional a ser anexado aos espaços de desenvolvimento), sistemas de arquivos e scripts de inicialização. Uma opção de instalação com um clique estará disponível com as configurações padrão para simplificar a experiência do administrador. Os administradores podem usar o SageMaker HyperPod console, o kubectl ou a HyperPod CLI para instalar o operador, criar configurações padrão e gerenciar todos os espaços em um local centralizado.

Os desenvolvedores de IA podem usar a HyperPod CLI para criar, atualizar e excluir espaços de desenvolvimento. Eles têm a flexibilidade de usar as configurações padrão fornecidas pelos administradores ou personalizar os ajustes. Os desenvolvedores de IA podem acessar seus espaços HyperPod usando o VS Code local IDEs, and/or o navegador da Web que hospeda o CodeEditor IDE JupyterLab ou o IDE em um domínio DNS personalizado configurado por seus administradores. Eles também podem usar o recurso de encaminhamento de portes do Kubernetes para acessar os espaços nos navegadores da web.

## Administrador
<a name="admin-cx"></a>
+ [Configurar permissões](permission-setup.md)
+ [Instale o complemento SageMaker AI Spaces](operator-install.md)
+ [Personalize o complemento](customization.md)
+ [Adicione usuários e configure contas de serviço](add-user.md)
+ [Limites](ds-limits.md)
+ [Governança de tarefas para espaços interativos em HyperPod](task-governance.md)
+ [Observabilidade](observability.md)

## Cientista de dados
<a name="data-scientist-cx"></a>
+ [Crie e gerencie espaços](create-manage-spaces.md)
+ [Acesso pelo navegador da web](browser-access.md)
+ [Acesso remoto ao SageMaker Spaces](vscode-access.md)

## SageMaker Preços de instâncias gerenciadas do Spaces
<a name="spaces-managed-instance-pricing"></a>

O complemento/operador do SageMaker Spaces não incorre em nenhuma cobrança adicional para o cliente. No entanto, para suportar o SSH-over-SSM tunelamento necessário para o recurso *Remote IDE Connection*, o SageMaker Spaces usa uma instância AWS gerenciada. Essa instância é registrada como uma Instância Local Avançada no SSM e, portanto, é cobrada por hora de computação.

[Consulte a tarifa “Gerenciamento de Instâncias On-Premises” na página de preços do AWS Systems Manager: AWS Systems Manager Pricing: pricing/ https://aws.amazon.com/systems-manager/](https://aws.amazon.com/systems-manager/pricing.com)

# Configurar permissões
<a name="permission-setup"></a>

## Funções necessárias para o complemento e suas dependências
<a name="permission-setup-addon"></a>

### Funções do IAM necessárias para SageMaker espaços em SageMaker HyperPod
<a name="role-hyperpod"></a>

Ao ativar **SageMaker os recursos do Spaces (também conhecido como SageMaker ** **IDE/Notebooks)** em um cluster SageMaker HyperPod (EKS), várias funções do IAM devem ser criadas e atribuídas. Essas funções oferecem suporte a acesso seguro, roteamento, sessões remotas de IDE e provisionamento de armazenamento do EBS. A tabela a seguir resume as quatro funções e quando elas são necessárias.

### Tabela de resumo de funções
<a name="role-table"></a>


| Perfil do IAM | Obrigatório? | Finalidade | Quem o usa? | Personalização permitida pelo SageMaker console? | 
| --- | --- | --- | --- | --- | 
|  Função de execução do complemento Spaces  |  Sempre necessário  |  Permite que o controlador Spaces gerencie Spaces, gere sessões pré-assinadas e gerencie URLs sessões de SSM  |  Pod controlador adicional (privilegiado)  |  ✔ Sim  | 
|  Função do roteador no cluster  |  Necessário para acesso ao WebUI  |  Permite que o pod do roteador execute operações KMS para assinatura JWT (autenticação WebUI)  |  Pod de roteador no cluster (privilegiado)  |  ✔ Sim  | 
|  Função de instância gerenciada do SSM  |  Necessário para acesso remoto ao IDE  |  Usado pelo sidecar do agente SSM para SSH-over-SSM sessões remotas de IDE  |  Pods do SSM Agent in Space IDE (não é um pod complementar)  |  ✔ Sim  | 
|  Função do IAM para o complemento do driver EBS CSI  |  Sempre necessário  |  Permite que o driver EBS CSI use create/attach/modify volumes para cargas de trabalho do Spaces  |  Complemento do driver EBS CSI  |  Criado automaticamente  | 
|  Função do IAM para complemento de DNS externo  |  Necessário para acesso ao WebUI  |  Ele garante que os endpoints do Space e os componentes do cluster possam receber nomes DNS automaticamente nas zonas hospedadas do Route 53 do cliente.  |  Complemento de DNS externo  |  Criado automaticamente  | 

### 1. Função de execução do complemento Spaces (obrigatória)
<a name="add-n-execution-role"></a>

A função de execução do complemento Spaces é sempre necessária porque é usada pelo pod controlador do complemento SageMaker Spaces, um componente administrativo instalado por meio do complemento EKS. Essa função permite que o controlador gerencie espaços, provisione recursos, interaja com o SSM e gere pré-assinados URLs para acesso remoto ao IDE e ao WebUI. Ele também suporta o acesso KMS usado para assinatura de solicitações para autenticar as solicitações https do WebUI. Essa função pode ser criada automaticamente quando o complemento SageMaker Spaces é instalado por meio do SageMaker console. Para criação manual, AWS fornece a política `AmazonSageMakerSpacesControllerPolicy` gerenciada.

**Política de confiança de referência**

```
{
  "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. Função de roteador no cluster (necessária para autenticação WebUI)
<a name="in-cluster-role"></a>

A função In-Cluster Router é usada pelo **pod do roteador**, um componente privilegiado que autentica as sessões do Spaces WebUI. O roteador usa uma chave KMS para criar e assinar tokens JWT que autorizam o acesso do usuário a espaços específicos. Essa função permite que o pod do roteador gere chaves de dados e as descriptografe. Semelhante à função de controlador, ela reforça a segurança usando restrições de escopo baseadas em tags e clusters. Essa função pode ser gerada automaticamente quando o complemento Spaces é instalado por meio do AWS SageMaker console, mas os clientes podem criá-la manualmente.

**Política de confiança de referência**

```
{
  "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}}"
        }
      }
    }
  ]
}
```

**Política de permissão de referência**

```
{
    "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. Função de instância gerenciada do SSM (necessária para acesso remoto ao IDE)
<a name="ssm-role"></a>

A função de instância gerenciada do SSM é passada ao registrar a instância gerenciada do SSM para habilitar o acesso remoto ao IDE. Essa função permite que o agente do SSM registre o pod como uma instância gerenciada do SSM e use os canais do SSM Session Manager para conectividade do IDE remoto (SSH sobre SSM). Ele pode ser criado automaticamente ao usar o AWS SageMaker console. Para implantações manuais, os clientes devem criar essa função e fornecê-la ao complemento Spaces. O pod do controlador em si não assume essa função; ele só a fornece durante a chamada`ssm:CreateActivation`.

**Política de confiança de referência**

```
{
    "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}}:*"
                }
            }
        }
    ]
}
```

**Política de permissões de referência**

```
{
  "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. Função do IAM para o complemento do driver EBS CSI
<a name="role-ebs-csi"></a>

A função do IAM para o driver CSI do EBS é necessária porque o driver CSI do EBS provisiona volumes persistentes para cargas de trabalho do Spaces. Embora a [Amazon EBSCSIDriver Policy AWS](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonEBSCSIDriverPolicy.html) gerenciada forneça permissões básicas, os SageMaker HyperPod clusters exigem [recursos adicionais](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-ebs.html#sagemaker-hyperpod-eks-ebs-setup), como criar restaurações rápidas de instantâneos, marcar volumes pertencentes ao cluster e volumes para nós gerenciados. attaching/detaching HyperPod Essas permissões também incluem permissões SageMaker específicas APIs , como`sagemaker:AttachClusterNodeVolume`. Se o driver EBS CSI não estiver instalado, essa função agora será criada automaticamente pelo SageMaker console durante a instalação do complemento Spaces, **sem exigir nenhuma** ação do cliente.

### 5. Função do IAM para complemento de DNS externo
<a name="role-external-nds"></a>

O complemento DNS externo gerencia registros DNS para recursos de Serviços e Entrada no cluster. HyperPod Ele garante que os endpoints do Space e os componentes do cluster possam receber nomes DNS automaticamente nas zonas hospedadas do Route 53 do cliente. Atualmente, os clientes geralmente instalam o DNS externo manualmente por meio de uma opção de 1 clique no console EKS. Como parte da melhoria da experiência do SageMaker Spaces, essa função agora será criada automaticamente pelo SageMaker console durante a instalação do complemento Spaces, **sem exigir nenhuma ação do cliente**.

## Configuração de permissão para o AWS kit de ferramentas para acessar espaços SageMaker
<a name="permission-for-toolkitl"></a>

Para permitir que o painel lateral do explorador de recursos do AWS VS Code Toolkit descubra e se conecte ao SageMaker Spaces, as seguintes permissões do IAM são necessárias. Essas permissões permitem que o Toolkit liste SageMaker HyperPod clusters disponíveis, recupere detalhes do cluster e obtenha um token de conexão para o cluster Amazon EKS associado.

**Política de IAM necessária**

```
{
    "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": "*"
        }
    ]
}
```

**Recomendações de escopo**
+ Substitua cluster-name pelo (s) SageMaker HyperPod cluster (s) específico (s) que seus usuários precisam acessar.
+ A GetToken ação eks: atualmente não suporta restrições em nível de recurso e deve usar Resource: “\$1”. Essa é uma limitação AWS do serviço. A autenticação do lado do cliente é realizada por meio de [entradas de acesso do EKS](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html).

# Instale o complemento SageMaker AI Spaces
<a name="operator-install"></a>

## Dependências
<a name="dependencies"></a>

**Complemento do Amazon EKS Pod Identity Agent**
+ Necessário para que o operador obtenha AWS as credenciais
+ **Normalmente pré-instalado** na maioria dos clusters EKS
+ Instalação: por meio de complementos EKS

**Gerente de certificados**
+ Necessário para o gerenciamento de certificados TLS
+ **Pré-instalado** se estiver usando a criação HyperPod rápida de cluster
+ Instalação: por meio de complementos EKS

**Controlador EBS CSI**
+ Necessário para armazenamento persistente de espaço (volumes do EBS)
+ **Instalado automaticamente** ao usar o SageMaker console para instalar
+ Requer a função do IAM com `AmazonEBSCSIDriverPolicy` permissões HyperPod específicas de \$1
+ Instalação: por meio de complementos do EKS. No entanto, certifique-se de seguir o guia para instalar as permissões adicionais necessárias para HyperPod. 
+ Referência: [Usando o driver CSI do Amazon EBS](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-ebs.html) em HyperPod

## Dependências adicionais para o WebUI Access
<a name="-additional-dependencies"></a>

**AWS Controlador de balanceador de carga**
+ **Pré-instalado** se estiver usando a criação HyperPod rápida de cluster
+ Instalação: Via Helm
+ Guia de instalação manual: [Instalação do AWS Load Balancer Controller](https://docs.aws.amazon.com/eks/latest/userguide/lbc-helm.html)

**DNS externo**
+ Obrigatório ao usar um domínio personalizado para acesso ao WebUI
+ Gerencia registros DNS do Route53 automaticamente
+ Requer a função do IAM com permissões do Route53
+ Instalação: por meio de complementos EKS

## Instalação
<a name="installation"></a>

Antes de começar, verifique se você tem:
+ Um SageMaker HyperPod cluster ativo com pelo menos um nó de trabalho executando o Kubernetes versão 1.30 ou posterior
+ Pelo menos um nó de trabalho com tipo mínimo de instância (XX vCPU, YY GiB de memória)

### Instalando o complemento Amazon SageMaker Spaces
<a name="space-add-on"></a>

Você pode instalar o complemento SageMaker Spaces usando a instalação rápida para as configurações padrão ou a instalação personalizada para configuração avançada.

#### Instalação rápida
<a name="quick-install"></a>

1. Abra o SageMaker console da Amazon em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Escolha seu cluster na lista de clusters.

1. Na guia IDE e Notebooks, localize Amazon SageMaker Spaces e escolha Instalação rápida.

Instalação rápida automática:
+ Cria as funções do IAM necessárias para o complemento
+ Ativa o modo de acesso remoto com as funções necessárias do IAM para Systems Manager
+ Instala o complemento e configura a associação de identidade do pod

#### Instalação personalizada
<a name="custom-install"></a>

1. Abra o SageMaker console da Amazon em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Escolha seu cluster na lista de clusters.

1. Na guia IDE e Notebooks, localize Amazon SageMaker Spaces e escolha Instalação personalizada.

1. Configure as seguintes opções:

   **Funções do IAM exigidas pelo complemento**
   + Escolha se deseja criar novas funções do IAM com as permissões recomendadas ou usar as existentes com as permissões necessárias (consulte a seção Configuração de permissões do administrador acima)

   **Configuração de acesso remoto**
   + Habilite para permitir que os usuários se conectem a espaços do Visual Studio Code local usando o AWS Systems Manager
   + Para a função de instância gerenciada do SSM:
     + **Criar nova função** — O complemento cria e gerencia a função com as permissões necessárias do Systems Manager
     + **Usar a função existente** — Selecione uma função pré-configurada com as permissões necessárias do Systems Manager
   + Certifique-se de que a função de execução do complemento Spaces tenha PassRole permissões para a função de instância gerenciada do SSM
**nota**  
A ativação do acesso remoto ativa o nível de instâncias avançadas do AWS Systems Manager para cobranças adicionais por instância. Para obter informações sobre preços, consulte Preços do Systems Manager.

   **Configuração de acesso ao navegador da Web**
   + Habilite para permitir que os usuários acessem espaços por meio de um navegador da Web usando certificados DNS e SSL do Route 53
   + **Pré-requisitos:** instalar o AWS Load Balancer Controller antes de ativar o acesso ao navegador
   + **Zona hospedada do Route 53:** selecione uma zona hospedada existente para um domínio ou subdomínio que você possui. O domínio ou subdomínio deve estar registrado e sob seu controle para permitir o gerenciamento de DNS e a validação do certificado SSL.

     Para obter mais detalhes sobre o registro de domínio, consulte [Registrando um novo domínio](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/domain-register.html#domain-register-procedure-section) no Route 53 Developer Guide.
   + **Subdomínio:** insira o prefixo do subdomínio (somente alfanumérico e hífens, máximo de 63 caracteres)
   + **Certificado SSL:** selecione um certificado SSL existente no Certificate Manager AWS . O certificado deve ser válido e abranger tanto seu subdomínio (por exemplo, subdomínio.domínio.com) quanto subdomínios curinga (por exemplo, \$1.subdomínio.domínio.com) para oferecer suporte ao acesso individual ao espaço. URLs
   +  **Chave de assinatura de token:** selecione uma chave assimétrica AWS KMS para assinatura de token JWT. A chave é usada para criptografar tokens de autenticação para acesso seguro ao WebUI. Você pode criar uma nova chave assimétrica no KMS ou selecionar uma existente à qual sua conta tenha acesso.
**nota**  
As cobranças padrão do Route 53 se aplicam a zonas hospedadas e consultas de DNS. Para obter informações sobre preços, consulte Preços do Route 53.

#### Instalação do complemento EKS - Jupyter K8s com WebUI
<a name="webui-install"></a>

##### Arquivo de configuração
<a name="configure-file"></a>

Crie`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>"
```

**Substitua os seguintes espaços reservados:**
+ <DOMAIN\$1NAME>: Seu nome de domínio (por exemplo,`jupyter.example.com`)
+ <ACM\$1CERTIFICATE\$1ARN>: O ARN do seu certificado ACM (por exemplo, `arn:aws:acm:us-west-2:111122223333:certificate/12345678-1234-1234-1234-123456789012` 
+ <KMS\$1KEY\$1ARN>: O ARN da sua chave KMS (por exemplo, `arn:aws:kms:us-west-2:111122223333:key/12345678-1234-1234-1234-123456789012`

##### Instalação via 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>
```

**Para atualizar o complemento existente:**

```
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>
```

##### Instalação via Console de gerenciamento da AWS
<a name="install-via-console"></a>

1. Vá para o **console EKS** → Selecione seu cluster

1. Clique na guia **Complementos** → **Adicionar novo**

1. Selecione o complemento **SageMaker Spaces**

1. Cole a configuração YAML acima em Configurações **opcionais**

1. Clique em **Avançar** e revise as configurações do complemento

1. Clique em **Create (Criar)**

##### Verifique a instalação
<a name="install-verify"></a>

```
# Check addon status
aws eks describe-addon \
  --cluster-name <CLUSTER_NAME> \
  --addon-name amazon-sagemaker-spaces \
  --region <AWS_REGION>
```

##### Personalizando atributos do ALB
<a name="customize-alb"></a>

Por padrão, o complemento cria um balanceador de carga público para uso com a interface do usuário da web. Você pode personalizar os atributos do balanceador de carga usando as propriedades do complemento EKS.

Para criar um ALB interno, defina o esquema como: `internal`

```
jupyter-k8s-aws-hyperpod:
  clusterWebUI:
    enabled: true
    domain: "<DOMAIN_NAME>"
    awsCertificateArn: "<ACM_CERTIFICATE_ARN>"
    alb:
      scheme: "internal"  # Default is "internet-facing"
```

Você também pode usar o `alb.annotations` campo para personalizar as configurações do 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"
```

**Anotações ALB comuns:**
+ `alb.ingress.kubernetes.io/security-groups`: Especifique grupos de segurança para o ALB
+ `alb.ingress.kubernetes.io/subnets`: Especifique sub-redes para o ALB
+ `alb.ingress.kubernetes.io/load-balancer-attributes`: defina os atributos do ALB (tempo limite de inatividade, registros de acesso etc.)

Consulte a [documentação do AWS Load Balancer Controller](https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/guide/ingress/annotations/) para ver todas as anotações disponíveis.

### Atualização/controle de versão do complemento
<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>
```

# Personalize o complemento
<a name="customization"></a>

## Modelo
<a name="customization-template"></a>

Os modelos são configurações de espaço de trabalho reutilizáveis que servem como esquemas controlados pelo administrador para a criação do espaço de trabalho. Eles fornecem padrões para valores de configuração do espaço de trabalho e grades de proteção para controlar o que os cientistas de dados podem fazer. Os modelos existem no nível do cluster e podem ser reutilizados em todos os namespaces. 

SageMaker O Spaces cria dois modelos de sistema como ponto de partida para cientistas de dados, um para o Code Editor e outro para JupyterLab. Esses modelos de sistema são gerenciados pelo complemento e não podem ser editados diretamente. Em vez disso, os administradores podem criar novos modelos e defini-los como padrão.

## Governança de tarefas
<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/Imagens personalizadas
<a name="customization-image"></a>

Os clientes podem configurar políticas de imagem por meio de modelos, fornecendo uma imagem padrão e uma lista de imagens permitidas. Além disso, os administradores podem escolher se querem permitir que os cientistas de dados tragam suas próprias imagens personalizadas. O sistema usa como padrão a SageMaker distribuição mais recente, mas se você quiser fixar em uma versão específica, você pode especificar a versão exata do SMD a ser usada em um modelo.

Requisitos de imagem personalizada:
+ `curl`se você quiser usar o desligamento inativo
+ porta 8888
+ acesso remoto

## Requisito de IDE remoto
<a name="remote-ide-requirement"></a>

### Requisito de versão do VS Code
<a name="remote-ide-requirement-vscode"></a>

É necessária a versão [v1.90](https://code.visualstudio.com/updates/v1_90) ou posterior do VS Code. Recomendamos usar a [versão mais recente do VS Code](https://code.visualstudio.com/updates).

### Requisitos de sistema operacional
<a name="remote-ide-requirement-operate"></a>

Você precisa de um dos seguintes sistemas operacionais para se conectar remotamente aos espaços do Studio:
+ macOS 13 e posterior
+ Windows 10
  + [O suporte ao Windows 10 termina em 14 de outubro de 2025](https://support.microsoft.com/en-us/windows/windows-10-support-ends-on-october-14-2025-2ca8b313-1946-43d3-b55c-2b95b107f281)
+ Windows 11
+ Linux
+ Instale o [Microsoft VS Code oficial para Linux](https://code.visualstudio.com/docs/setup/linux)
  + não é uma versão de código aberto

### Pré-requisitos da máquina local
<a name="remote-ide-requirement-machine"></a>

Antes de conectar seu Visual Studio Code local aos espaços do Studio, certifique-se de que sua máquina local tenha as dependências e o acesso à rede necessários.

**nota**  
Ambientes com restrições de instalação de software podem impedir que os usuários instalem as dependências necessárias. O AWS Toolkit for Visual Studio Code pesquisa automaticamente essas dependências ao iniciar conexões remotas e solicitará a instalação se alguma estiver faltando. Coordene com seu departamento de TI para garantir que esses componentes estejam disponíveis.

**Dependências locais necessárias**

Sua máquina local deve ter os seguintes componentes instalados:
+ **[https://code.visualstudio.com/docs/remote/ssh](https://code.visualstudio.com/docs/remote/ssh)**
+ — Extensão padrão do VS Code Marketplace para desenvolvimento remoto
+ **[Plugin Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html)** — necessário para o gerenciamento seguro de sessões
+ **Cliente SSH** — Componente padrão na maioria das máquinas (o [OpenSSH é recomendado para Windows](https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse))
+ **[https://code.visualstudio.com/docs/configure/command-line](https://code.visualstudio.com/docs/configure/command-line)**
+  Normalmente incluído na instalação do VS Code

**Requisitos específicos da plataforma**
+ **Usuários do Windows** — PowerShell 5.1 ou posterior é necessário para conexões de terminal SSH

**Requisitos de conectividade de rede**

Sua máquina local deve ter acesso à rede aos [endpoints do Session Manager](https://docs.aws.amazon.com/general/latest/gr/ssm.html). Por exemplo, no Leste dos EUA (Norte da Virgínia) (us-east-1), eles podem ser:
+ `[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)`

### Requisitos de imagens
<a name="remote-ide-requirement-image"></a>

**SageMaker Imagens de distribuição**

Ao usar o SageMaker Distribution com acesso remoto, use o [SageMaker Distribution](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-distribution.html) versão 2.7 ou posterior.

**Imagens personalizadas**

Ao [trazer sua própria imagem (BYOI)](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-byoi.html) com acesso remoto, siga as [especificações personalizadas da imagem](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-byoi-specs.html) e garanta que as seguintes dependências estejam instaladas:
+ `curl`ou `wget` — Obrigatório para baixar AWS CLI componentes
+ `unzip`— Necessário para extrair arquivos de AWS CLI instalação
+ `tar`— Necessário para extração de arquivos
+ `gzip`— Necessário para manipulação de arquivos compactados

### Requisitos de instância
<a name="remote-ide-requirement-instance"></a>
+ **Memória**: 8 GB ou mais.
+ Use instâncias com pelo menos 8 GB de memória. Os tipos de instância a seguir *não* são compatíveis devido à falta de memória (menos de 8 GB): `ml.t3.medium`, `ml.c7i.large`, `ml.c6i.large`, `ml.c6id.large` e `ml.c5.large`. Para obter uma lista mais completa dos tipos de instância, consulte a página de preços [sob demanda do Amazon EC2](https://aws.amazon.com/ec2/pricing/on-demand/)

## Otimizando o tempo de inicialização do Kubernetes por meio do pré-aquecimento das imagens do contêiner
<a name="remote-ide-optimize-image"></a>

O desempenho de extração de imagens de contêineres se tornou um gargalo significativo para muitos clientes do EKS, especialmente porque as AI/ML cargas de trabalho dependem de imagens de contêineres cada vez maiores. Extrair e descompactar essas imagens grandes normalmente leva vários minutos na primeira vez em que são usadas em cada nó EKS. Esse atraso adiciona latência substancial ao iniciar o SageMaker Spaces e afeta diretamente a experiência do usuário, especialmente em ambientes em que a inicialização rápida é essencial, como notebooks e trabalhos de desenvolvimento interativos. 

O pré-aquecimento de imagem é uma técnica usada para pré-carregar imagens de contêineres específicas em cada nó do EKS/HyperPod cluster antes que elas sejam necessárias. Em vez de esperar que um pod acione a primeira extração de uma imagem grande, o cluster baixa e armazena imagens em cache de forma proativa em todos os nós. Isso garante que, quando as cargas de trabalho forem iniciadas, as imagens necessárias já estejam disponíveis localmente, eliminando longos atrasos na inicialização a frio. O pré-aquecimento da imagem melhora a velocidade de inicialização do SageMaker Spaces e fornece uma experiência mais previsível e responsiva para os usuários finais.

### Pré-aquecimento via DaemonSet
<a name="remote-ide-optimize-image-dae"></a>

Recomendamos usar a DaemonSet para pré-carregar imagens. A DaemonSet garante que um pod seja executado em cada nó do cluster. Cada contêiner dentro do DaemonSet pod faz referência a uma imagem que você deseja armazenar em cache. Quando o Kubernetes inicia o pod, ele extrai automaticamente as imagens, aquecendo o cache em cada nó.

O exemplo a seguir mostra como criar um DaemonSet que pré-carrega duas imagens de GPU. Cada contêiner executa um `sleep infinity` comando leve para manter o pod ativo com o mínimo de sobrecarga.

```
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
```

### Como funciona
<a name="remote-ide-optimize-image-how"></a>
+ Cada contêiner faz referência a uma imagem.
+ O Kubernetes precisa baixar cada imagem antes de iniciar o contêiner.
+ Quando o pod é executado em cada nó, as imagens são armazenadas em cache localmente.
+ Qualquer carga de trabalho usando essas imagens agora começa muito mais rápido.

## Armazenamento padrão de espaço (EBS)
<a name="space-storage"></a>

O sistema usa o driver EBS CSI por padrão para provisionar volumes de armazenamento do EBS para cada espaço de trabalho. SageMaker cria uma classe de armazenamento do EBS para uso com espaços de trabalho, e os administradores podem personalizar o tamanho padrão e máximo desses volumes usando configurações de modelo. Para usuários avançados que trabalham com ferramentas CLI, você também pode personalizar a classe de armazenamento do espaço de trabalho, o que permite que os usuários aproveitem outras classes de armazenamento, incluindo a configuração de chaves KMS gerenciadas pelo cliente para seus volumes do EBS.

Observe que os volumes do EBS estão vinculados a uma AZ específica, o que significa que os espaços de trabalho só podem ser programados em nós na mesma AZ de seu volume de armazenamento. Isso pode levar a falhas de agendamento se a capacidade do cluster existir, mas não na AZ correta.

## Armazenamento adicional
<a name="space-additional-storage"></a>

SageMaker O Spaces oferece suporte à anexação de volumes de armazenamento adicionais, como Amazon EFS, FSx for Lustre ou S3 Mountpoint, aos seus espaços de desenvolvimento. Isso permite que você acesse conjuntos de dados compartilhados, colabore em projetos ou use armazenamento de alto desempenho para suas cargas de trabalho.

### Pré-requisitos
<a name="space-additional-storage-prereq"></a>

Antes de anexar armazenamento adicional aos espaços, você deve:

1. **Instale o complemento de driver CSI apropriado por meio de complementos** [EKS (](https://docs.aws.amazon.com/eks/latest/userguide/workloads-add-ons-available-eks.html)Amazon EFS CSI Driver, Amazon for Lustre CSI Driver ou Mountpoint FSx for Amazon S3 CSI Driver)

1. **Configure os recursos de armazenamento e PersistentVolumeClaims** siga a documentação do driver CSI para seu tipo de armazenamento específico

1. **Verifique se o PVC está disponível** no mesmo namespace em que você planeja criar seu espaço

### Anexando armazenamento aos espaços
<a name="space-additional-storage-attach"></a>

Depois de PersistentVolumeClaim configurar, você pode anexá-lo a um espaço usando a HyperPod CLI ou 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
```

### Vários volumes
<a name="space-additional-storage-multiple"></a>

Você pode anexar vários volumes de armazenamento adicionais a um único espaço especificando vários `--volume` sinalizadores com a CLI ou várias entradas na matriz com 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
```

## Configuração de recursos
<a name="space-resource-configuration"></a>

SageMaker O Spaces permite que você configure recursos computacionais para seus ambientes de desenvolvimento, incluindo recursos de CPU, memória e GPU para atender aos seus requisitos de carga de trabalho.

### Configuração de GPU
<a name="space-gpu-configuration"></a>

SageMaker O Spaces suporta alocação total de GPU e particionamento de GPU usando a tecnologia NVIDIA Multi-Instance GPU (MIG). Isso permite que você otimize a utilização da GPU para diferentes tipos de cargas de trabalho de aprendizado de máquina.

#### Alocação completa de 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"
```

#### Particionamento de GPU (MIG)
<a name="space-gpu-mig"></a>

O particionamento de GPU usando a tecnologia NVIDIA Multi-Instance GPU (MIG) permite particionar uma única GPU em instâncias menores e isoladas. Seu HyperPod cluster deve ter nós de GPU que suportem MIG e tenham perfis MIG configurados. Para obter mais informações sobre como configurar o MIG em seu HyperPod cluster, consulte [Particionamento de GPU](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-gpu-partitioning-setup.html) usando o 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 de vida
<a name="space-lifecycle"></a>

A configuração do ciclo de vida fornece scripts de inicialização que são executados quando um espaço de trabalho é criado ou iniciado. Esses scripts permitem que os administradores personalizem o ambiente do espaço de trabalho durante a inicialização. Esses são scripts bash com tamanho máximo de 1 KB. Se você precisar de uma configuração maior, recomendamos adicionar um script à imagem do contêiner e acionar o script a partir da configuração do ciclo de vida.

[Aproveitamos os ganchos do ciclo de vida do contêiner Kubernetes para fornecer essa funcionalidade https://kubernetes. io/docs/concepts/containers/container-ganchos de ciclo de vida/](https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/). Observe que o Kubernetes não fornece garantias de quando o script de inicialização será executado em relação ao ponto de entrada do contêiner. 

## Encerramento por inatividade
<a name="space-idle-shutdown"></a>

Configure o desligamento automático de espaços de trabalho ociosos para otimizar o uso de recursos.

### Encerramento por inatividade
<a name="space-idle-shutdown-spec"></a>

```
idleShutdown:
  enabled: true
  idleShutdownTimeoutMinutes: 30
  detection:
    httpGet:
      path: /api/idle
      port: 8888
      scheme: HTTP
```

### Parâmetros
<a name="space-idle-shutdown-parameter"></a>

**ativado** (booleano, obrigatório) - Ativa ou desativa o desligamento inativo do espaço de trabalho.

**idleShutdownTimeoutMinutos** (inteiro, obrigatório) - Número de minutos de inatividade antes do encerramento do espaço de trabalho. O valor mínimo é 1.

**detecção** (objeto, obrigatório) - Define como detectar o estado ocioso do espaço de trabalho.

**Detection.httpGet** (object, opcional) - Configuração de endpoint HTTP para detecção de inatividade. Usa a especificação Kubernetes Action. HTTPGet
+ **path** - caminho HTTP para solicitar
+ **porta** - Número ou nome da porta
+ **esquema** - HTTP ou HTTPS (padrão: HTTP)

### Locais de configuração
<a name="space-idle-shutdown-configure"></a>

**Configuração do espaço de trabalho**

Defina o desligamento inativo diretamente na especificação do espaço de trabalho:

```
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
```

**Configuração do modelo**

Defina o comportamento padrão de desligamento inativo em um: 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
```

### Herança e substituições de modelos
<a name="space-idle-shutdown-inherit"></a>

Os espaços de trabalho que usam um modelo herdam automaticamente a configuração do `defaultIdleShutdown` modelo. Os espaços de trabalho podem substituir essa configuração se o modelo permitir.

**Política de substituição**

Os modelos controlam o comportamento de substituição por meio de`idleShutdownOverrides`:

**allow** (boolean, default: true) - Se os espaços de trabalho podem substituir a configuração padrão de desligamento ocioso.

**minTimeoutMinutes**(inteiro, opcional) - Valor mínimo de tempo limite permitido para substituições de espaço de trabalho.

**maxTimeoutMinutes**(inteiro, opcional) - Valor máximo de tempo limite permitido para substituições de espaço de trabalho.

**Exemplo de herança**

O espaço de trabalho herda os padrões do modelo:

```
apiVersion: workspace.jupyter.org/v1alpha1
kind: Workspace
metadata:
  name: my-workspace
spec:
  displayName: "My Workspace"
  templateRef:
    name: jupyter-template
  # Inherits defaultIdleShutdown from template
```

**Exemplo de substituição**

O espaço de trabalho substitui os padrões do modelo:

```
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
```

**Configuração bloqueada**

Evite substituições no espaço de trabalho:

```
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 o desligamento inativo está ativado, o sistema verifica periodicamente a atividade do espaço de trabalho usando o endpoint HTTP configurado. Se o endpoint indicar que o espaço de trabalho está ocioso durante o tempo limite especificado, o espaço de trabalho será interrompido automaticamente. Você pode reiniciar manualmente o espaço de trabalho quando necessário.

## Atualizações de modelos
<a name="customization-template-updates"></a>

As ferramentas do cliente, como Kubectl ou Hyperpod CLI e SDK, podem ser usadas para gerenciar espaços no cluster EKS. Os administradores podem provisionar modelos de espaço para as configurações padrão do Space, enquanto os cientistas de dados podem personalizar seus ambientes de desenvolvimento integrados sem precisar entender a complexidade subjacente do Kubernetes. Para obter instruções de uso detalhadas, consulte a documentação da CLI e do SDK em. [https://sagemaker-hyperpod-cli.readthedocs.io/en/latest/index.html](https://sagemaker-hyperpod-cli.readthedocs.io/en/latest/index.html)

Os administradores podem realizar operações CRUD em modelos de espaço, que servem como configurações básicas ao criar um espaço. Os cientistas de dados podem realizar operações CRUD no Spaces e substituir vários parâmetros, incluindo os perfis de GPU de várias instâncias para nós de computação específicos. Eles podem iniciar, parar e se conectar aos Spaces por meio do VSCode acesso remoto e da interface do usuário da Web. Quando um modelo de espaço é atualizado, qualquer espaço criado posteriormente será definido com as configurações do modelo atualizado. As verificações de conformidade serão realizadas quando os Spaces existentes forem atualizados ou iniciados. Se alguma configuração estiver fora dos limites ou for incompatível, o Spaces não será atualizado ou iniciado.

## Usando hyp cli e kubectl
<a name="customization-hyp-cli"></a>

O usuário pode executar CRUD nos modelos com o Hyperpod CLI

```
### 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
```

Para criar modelos personalizados, você pode usar nossos modelos de sistema como ponto de partida. Este modelo funcionará para imagens semelhantes a SMD, mas pode ser personalizado com base nas imagens usadas pelos administradores.

Exemplo de JupyterLab modelo personalizado:

```
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"
```

Exemplo de modelo de editor de código personalizado:

```
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"
```

# Adicione usuários e configure contas de serviço
<a name="add-user"></a>

## Controle de acesso refinado - nossa recomendação
<a name="add-user-access-control"></a>

Os usuários são diferenciados com base no nome de usuário do Kubernetes. O nome de usuário do Kubernetes do usuário é definido em sua entrada de acesso. Para garantir que dois usuários humanos tenham nomes de usuário distintos, há duas opções:

1. Recomendado - Vários usuários humanos podem usar a mesma função, desde que cada um tenha seu próprio nome de sessão distinto que persistirá entre as sessões. Por padrão, os nomes de usuário do Kubernetes para funções do IAM estão no formato. `arn:aws:sts::{ACCOUNT_ID}:assumed-role/{ROLE_NAME}/{SESSION_NAME}` Com esse padrão, os usuários já serão diferenciados pelo nome da sessão. Um administrador tem algumas maneiras de impor nomes de sessão exclusivos por usuário.
   + Login SSO - Os usuários que usam o login SSO terão, por padrão, um nome de sessão vinculado ao nome de usuário AWS 
   + Serviço central de venda de credenciais - Para clientes corporativos, eles podem ter algum serviço interno de venda automática de credenciais para o qual os usuários possam ligar para obter credenciais com sua identidade. 
   + Aplicação baseada em funções — Exija que os usuários do IAM definam seu nome de sessão `aws:username` como função ao assumirem uma função do IAM em sua Conta da AWS. A documentação sobre como fazer isso está aqui: [https://aws.amazon.com/blogs/easily-control-naming-individualsegurança/](https://aws.amazon.com/blogs/security/easily-control-naming-individual-iam-role-sessions/) -/iam-role-sessions

1. Se dois cientistas de dados estiverem usando entradas de acesso diferentes (função ou usuário do IAM diferente), eles sempre serão contados como usuários diferentes.

**Criando entrada de acesso**

Política de IAM necessária para a função de cientista de dados:
+ `eks:DescribeCluster`

Políticas de entrada de acesso necessárias
+ `AmazonSagemakerHyperpodSpacePolicy`- com escopo para o namespace DS deve criar espaços em
+ `AmazonSagemakerHyperpodSpaceTemplatePolicy`- com escopo definido para o namespace “jupyter-k8s-shared”

## Espaços públicos e privados
<a name="add-user-spaces"></a>

Oferecemos suporte a dois tipos de padrões de compartilhamento: “Público” e “OwnerOnly”. Os campos “AccessType” e “OwnershipType” usam esses dois valores.
+ AccessType: os espaços públicos podem ser acessados por qualquer pessoa com permissões no namespace, mas só OwnerOnly podem ser acessados pelo criador do espaço e pelos usuários administradores. Os usuários administradores são definidos com os seguintes critérios:
+ OwnershipType: os espaços públicos podem ser modified/deleted de qualquer pessoa com permissões no namespace, OwnerOnly do criador ou do administrador. modified/deleted 

Os usuários administradores são definidos por:

1. Parte do grupo `system:masters` Kubernetes

1. Parte do grupo Kubernetes definido na variável de ambiente CLUSTER\$1ADMIN\$1GROUP no gráfico do leme.

Os grupos de um usuário podem ser configurados usando entradas de acesso do EKS. Um espaço pode ser definido como “Público” ou “OwnerOnly” configurando a especificação no objeto:

```
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
```

# Limites
<a name="ds-limits"></a>

Os espaços são executados como pods em nós HyperPod EKS com volumes EBS anexados. O número de espaços que podem ser implantados por nó é limitado pelos limites da AWS infraestrutura.

**Limites de volume do EBS por nó**

Referência: [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/volume\$1limits.html](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/volume_limits.html)

Os nós do EC2 têm um número máximo de volumes do EBS que podem ser conectados. Como cada espaço normalmente usa um volume do EBS, isso limita quantos espaços com armazenamento dedicado do EBS podem ser executados em um único nó.

**Máximo de pods por HyperPod nó**

Referência: [https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker- hyperpod-eks-prerequisites .html](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)

Cada tipo de HyperPod instância é compatível com um número máximo de pods com base nos endereços IP disponíveis do plug-in VPC CNI. Como cada espaço é executado como um pod, isso limita diretamente o número de espaços por nó.

**Impacto**

O limite efetivo de espaços por nó é a restrição atingida primeiro. 

# Governança de tarefas para espaços interativos em HyperPod
<a name="task-governance"></a>

Esta seção aborda como otimizar seus clusters compartilhados do Amazon SageMaker HyperPod EKS para cargas de trabalho do Interactive Spaces. Você aprenderá a configurar os recursos de governança de tarefas da Kueue, incluindo gerenciamento de cotas, agendamento de prioridades e políticas de compartilhamento de recursos, para garantir que suas cargas de trabalho de desenvolvimento sejam executadas sem interrupção, mantendo uma alocação justa nas atividades de treinamento, avaliação e processamento em lote de suas equipes.

## Como funciona o gerenciamento interativo do espaço
<a name="task-governance-how"></a>

Para gerenciar com eficácia os espaços interativos em clusters HyperPod EKS compartilhados, implemente as seguintes estratégias de governança de tarefas usando os recursos existentes da Kueue.

**Configuração de classes prioritárias**

Defina classes prioritárias dedicadas para espaços interativos com pesos altos (como 100) para garantir que os pods de desenvolvimento sejam admitidos e programados antes de outros tipos de tarefas. Essa configuração permite que o Interactive Spaces antecipe trabalhos de menor prioridade durante o carregamento do cluster, o que é essencial para manter fluxos de trabalho de desenvolvimento ininterruptos.

**Dimensionamento e alocação de cotas**

Reserve recursos computacionais suficientes na sua equipe ClusterQueue para lidar com as cargas de trabalho de desenvolvimento esperadas. Durante os períodos em que os recursos de desenvolvimento estão ociosos, os recursos de cota não utilizados podem ser alocados temporariamente para as tarefas de outras equipes. Quando a demanda de desenvolvimento aumenta, esses recursos emprestados podem ser recuperados para priorizar os módulos pendentes do Interactive Space.

**Estratégias de compartilhamento de recursos**

Escolha entre duas abordagens de compartilhamento de cotas com base em seus requisitos:

*Controle estrito de recursos*: desative o empréstimo e o empréstimo de cotas para garantir que a capacidade computacional reservada esteja sempre disponível para seus espaços interativos. Essa abordagem requer cotas de dimensionamento grandes o suficiente para lidar de forma independente com a demanda de pico de desenvolvimento e pode resultar em nós ociosos durante períodos de baixo uso.

*Compartilhamento flexível de recursos*: habilite o empréstimo de cotas para permitir que outras equipes utilizem recursos de desenvolvimento ociosos quando necessário. No entanto, desative o empréstimo para garantir que os Espaços Interativos nunca funcionem com recursos emprestados e recuperáveis que possam levar a despejos inesperados.

**Preempção dentro da equipe**

Ative a preempção dentro da equipe ao executar cargas de trabalho mistas (treinamento, avaliação e espaços interativos) sob a mesma cota. Isso permite que a Kueue antecipe trabalhos de baixa prioridade em sua equipe para acomodar pods do Interactive Space de alta prioridade, garantindo que o trabalho de desenvolvimento possa prosseguir sem depender do empréstimo de cotas externas.

## Exemplo de configuração do Interactive Space
<a name="task-governance-space-setup"></a>

O exemplo a seguir mostra como a Kueue gerencia recursos computacionais para Interactive Spaces em um cluster compartilhado da Amazon. SageMaker HyperPod 

**Configuração de cluster e configuração de políticas**

Seu cluster tem a seguinte configuração:
+ *Team Alpha (Dev Team)*: cota de 8 CPUs para Interactive Spaces
+ *Team Beta (ML Team)*: cota de 16 CPUs para treinamento e avaliação
+ *Team Gamma (Research)*: cota de 6 CPUs para experimentação
+ *Provisionamento estático*: sem ajuste de escala automático
+ *Capacidade total*: 30 CPUs

O pool de CPU compartilhada usa esta política de prioridade:
+ *Espaços interativos*: Prioridade 100
+ *Treinamento*: prioridade 75
+ *Avaliação*: prioridade 50
+ *Processamento em lote*: Prioridade 25

Kueue impõe cotas de equipe e classes prioritárias, com a preempção ativada e o empréstimo desativado para a equipe de desenvolvimento.

**Estado inicial: utilização normal do cluster**

Em operações normais:
+ *Team Alpha*: executa 6 espaços interativos usando 6 CPUs, 2 CPUs inativos
+ *Team Beta*: executa trabalhos de treinamento (12 CPUs) e avaliação (4 CPUs) dentro de sua cota de 16 CPUs
+ *Team Gamma*: executa cargas de trabalho de pesquisa em todos os 6 CPUs
+ *Compartilhamento de recursos*: a equipe Beta empresta os 2 inativos do Team Alpha CPUs para treinamento adicional

**Pico de desenvolvimento: o Team Alpha requer recursos adicionais**

Quando os desenvolvedores do Team Alpha precisam ampliar o trabalho de desenvolvimento, os pods adicionais do Interactive Space exigem mais CPUs 4. O Kueue detecta que os novos pods:
+ Dentro do namespace do Team Alpha
+ Prioridade 100 (espaços interativos)
+ Têm admissão pendente devido a restrições de cota.

**Processo de resposta de Kueue**

O Kueue segue um processo de três etapas para alocar recursos:

1. **Verificação de cota**

   Pergunta: O Team Alpha tem uma cota não utilizada?
   + *Uso atual*: 6 CPUs usados, 2 CPUs disponíveis
   + *Novo requisito*: 4 CPUs necessários
   + *Resultado*: cota insuficiente → Prossiga para a Etapa 2

1. **Autopreempção dentro do Team Alpha**

   Pergunta: Os trabalhos de menor prioridade do Team Alpha podem ser evitados?
   + *Alvos disponíveis*: Não há trabalhos de baixa prioridade no Team Alpha
   + *Resultado*: Não é possível preempção → Prossiga para a Etapa 3

1. **Recupere recursos emprestados**

   Pergunta: Os recursos do Team Alpha estão sendo emprestados por outras equipes?
   + *Recursos emprestados*: Equipe Beta usando 2 CPUs da Equipe Alpha
   + *Ação*: Kueue despeja os módulos de treinamento emprestados da Equipe Beta, liberando 2 CPUs
   + *Necessidade restante*: Ainda precisa de mais 2 CPUs → Os espaços interativos permanecem no NotAdmitted estado até que os recursos estejam disponíveis

Essa abordagem prioriza os Espaços Interativos, mantendo os limites das cotas da equipe e impedindo que o trabalho de desenvolvimento seja executado com recursos emprestados instáveis.

# Observabilidade
<a name="observability"></a>

## Monitoramento padrão do Kubernetes
<a name="observability-monitor"></a>

Você pode monitorar o Spaces usando ferramentas padrão do Kubernetes, como `kubectl` descrição e registros. `kubectl`

**Monitorando o status do espaço**

```
# List all Spaces with status
kubectl get workspace -A

# Get detailed information about a specific Space
kubectl describe workspace <workspace-name>
```

**Visualizando registros de espaço**

```
# 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
```

**Entendendo as condições do espaço**

Os espaços relatam quatro tipos de condições em seus status:
+ **Disponível**: `True` quando o Space estiver pronto para uso. Todos os recursos necessários (pods, serviços, armazenamento) estão funcionando e em bom estado.
+ **Progredindo**: `True` quando o Espaço está sendo criado, atualizado ou reconciliado. Transições para `False` uma vez estável.
+ **Degradado**: `True` quando erros são detectados com os recursos do Space. Verifique a mensagem de condição para obter detalhes.
+ **Parado**: `True` quando o status Espaço desejado é definido como`Stopped`. Os pods são encerrados, mas o armazenamento e a configuração são preservados.

## CloudWatch Integração de registros
<a name="observability-cw"></a>

Você pode instalar o complemento de CloudWatch registro para enviar registros do Space ao Amazon CloudWatch Logs para gerenciamento e retenção centralizados de registros. Isso permite a agregação de registros em vários clusters e a integração com o CloudWatch Insights para consultas e análises. Todos os `kubectl` registros disponíveis acima podem ser consultados CloudWatch com este plug-in.

**Referência: https://docs.aws.amazon.com/sagemaker/** [latest/dg/sagemaker- hyperpod-eks-cluster-observability - cluster-cloudwatch-ci .html.](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-cluster-observability-cluster-cloudwatch-ci.html)

## HyperPod Complemento de observabilidade
<a name="observability-addon"></a>

O complemento SageMaker HyperPod de observabilidade fornece painéis abrangentes para monitorar a utilização de recursos espaciais. Depois de instalar o complemento, você pode visualizar o uso da memória espacial e da CPU na guia **Tarefas** do HyperPod console, que exibe métricas nos painéis do Amazon Managed Grafana.

**Referência: https://docs.aws.amazon.com/sagemaker/** [latest/dg/sagemaker- hyperpod-observability-addon .html](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-observability-addon.html)

**Principais métricas disponíveis:**
+ Utilização de CPU e memória por espaço
+ Métricas de GPU (se aplicável)

# Crie e gerencie espaços
<a name="create-manage-spaces"></a>

Os cientistas de dados podem listar para visualizar todos os espaços aos quais têm acesso, criar um espaço usando um dos modelos, atualizar o espaço para atualizar a imagem, o sistema de arquivos e outros atributos da configuração do espaço e excluir um espaço. Como pré-requisito, os clientes devem instalar a HyperPod CLI ou usar o kubectl para criar e gerenciar espaços. [Para obter mais detalhes sobre a HyperPod CLI, consulte isso.](https://github.com/aws/sagemaker-hyperpod-cli/blob/main/README.md#space) Para usar os comandos kubectl, consulte [este guia](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html) para instalar o kubectl.

## Criar espaço
<a name="create-manage-spaces-create"></a>

**HyperPod CLI**

Crie um espaço Jupyter

```
hyp create hyp-space \ 
    --name myspace \ 
    --display-name "My Space" \ 
    --memory 8Gi \ 
    --template-ref name=sagemaker-jupyter-template,namespace=jupyter-k8s-system
```

Crie um espaço de editor de código

```
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
```

ou você pode simplesmente aplicar o arquivo yaml

```
kubectl apply -f my-workspace.yaml
```

## Listar espaços
<a name="create-manage-spaces-list"></a>

**HyperPod CLI**

```
hyp list hyp-space
```

**kubectl**

```
kubectl get workspaces -n <workspace-namespace> 
```

## Descreva um espaço
<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
```

## Atualizar um espaço
<a name="create-manage-spaces-update"></a>

**HyperPod CLI**

```
hyp update hyp-space \
    --name myspace \
    --display-name "Updated My Space"
```

**kubectl**

Atualize o arquivo YAML original do espaço de trabalho conforme necessário e aplique-o novamente. Certifique-se de que o nome dos metadados não tenha sido modificado. Você também pode usar esses comandos kubectl para modificar campos sem reaplicar todo o espaço de trabalho 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>
```

## Iniciar/parar um espaço
<a name="create-manage-spaces-stop"></a>

**HyperPod CLI**

```
hyp start hyp-space --name myspace
hyp stop hyp-space --name myspace
```

**kubectl**

Você pode atualizar o campo de status desejado no espaço de trabalho para start/stop um espaço.

```
# 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>
```

## Obtenha registros
<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
```

## Excluir um espaço
<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>
```

# Acesso pelo navegador da web
<a name="browser-access"></a>

O acesso à interface de usuário da Web permite que você se conecte diretamente aos espaços de desenvolvimento em execução no seu SageMaker HyperPod cluster por meio de uma interface segura de navegador da Web. Isso fornece acesso imediato ao Jupyter Lab e a outros ambientes de desenvolvimento baseados na web sem a necessidade de instalação de software local.

## Pré-requisitos
<a name="browser-access-prereq"></a>

Antes de configurar o acesso à interface de usuário da web, certifique-se de ter concluído o seguinte:
+ SageMaker Instalação do *complemento Spaces: siga a instalação* do [complemento SageMaker Spaces e habilite o acesso à interface web durante a instalação](https://docs.aws.amazon.com/sagemaker/latest/dg/operator-install.html)
+ *Acesso do usuário ao cluster EKS*: os usuários precisam do EKS Access Entry configurado com as permissões apropriadas. Consulte [Adicionar usuários e configurar contas de serviço para obter detalhes de configuração do EKS Access Entry](https://docs.aws.amazon.com/sagemaker/latest/dg/add-user.html)
+ *Espaços de desenvolvimento*: crie e inicie espaços de desenvolvimento em seu HyperPod cluster
+ *kubectl access*: certifique-se de que o kubectl esteja configurado para acessar seu cluster EKS

## Gerar URL de acesso à interface do usuário da Web
<a name="browser-access-url"></a>

**Usando a HyperPod CLI**

Se você tiver a HyperPod CLI instalada, poderá usar este comando simplificado:

```
hyp create hyp-space-access --name <space-name> --connection-type web-ui
```

**Uso do kubectl**

Você também pode usar a linha de `kubectl` comando para criar uma solicitação de conexão.

```
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
```

O URL está presente na `status.workspaceConnectionUrl` saída desse comando.

## Acessando seu espaço de desenvolvimento
<a name="browser-access-develop"></a>

1. *Gere o URL da interface do usuário da web* usando um dos métodos acima

1. *Copie o URL* da resposta

1. *Abra o URL* no seu navegador

1. *Acesse seu ambiente de desenvolvimento* por meio da interface web

## Ambientes de desenvolvimento suportados
<a name="browser-access-develop-env"></a>

A interface de usuário da web fornece acesso a:
+ *Laboratório Jupyter*
+ *Editor de código*

## Solução de problemas
<a name="browser-access-troubleshooting"></a>

**Não é possível gerar acesso URLs**

Verifique o seguinte:
+ SageMaker O complemento Spaces está em execução: kubectl get pods -n sagemaker-spaces-system
+ O espaço de desenvolvimento está funcionando e saudável
+ O usuário tem as permissões de entrada de acesso EKS apropriadas

# Acesso remoto ao SageMaker Spaces
<a name="vscode-access"></a>

O acesso remoto permite que você conecte seu Visual Studio Code local diretamente aos espaços de desenvolvimento em execução no seu SageMaker HyperPod cluster. As conexões remotas usam SSM para estabelecer túneis seguros e criptografados entre sua máquina local e os espaços de desenvolvimento.

## Pré-requisitos
<a name="vscode-access-prereq"></a>

Antes de configurar o acesso remoto, verifique se você concluiu o seguinte:
+ *SageMaker Instalação do complemento SageMaker Spaces*[: siga a instalação do complemento Spaces](https://docs.aws.amazon.com/sagemaker/latest/dg/operator-install.html) e ative o acesso remoto durante a instalação (instalação rápida ou instalação personalizada com a configuração de acesso remoto ativada).
+ *Acesso do usuário ao cluster EKS*: os usuários precisam do EKS Access Entry configurado com as permissões apropriadas. Consulte [Adicionar usuários e configurar contas de serviço para obter detalhes de configuração do EKS Access Entry](https://docs.aws.amazon.com/sagemaker/latest/dg/add-user.html)
+ *Espaços de desenvolvimento*: crie e inicie espaços de desenvolvimento em seu HyperPod cluster
+ *kubectl access*: certifique-se de que o kubectl esteja configurado para acessar seu cluster EKS

## Gere conexão remota do VS Code
<a name="vscode-access-remote"></a>

### Usando a HyperPod CLI
<a name="vscode-access-remote-cli"></a>

Se você tiver a HyperPod CLI instalada, poderá usar este comando simplificado:

```
hyp create hyp-space-access --name <space-name> --connection-type vscode-remote
```

### Uso do kubectl
<a name="vscode-access-remote-kubectl"></a>

Você também pode usar a linha de `kubectl` comando para criar uma solicitação de conexão.

```
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
```

O URL está presente na `status.workspaceConnectionUrl` saída desse comando.

## Conectando-se com o VS Code
<a name="vscode-access-remote-vscode"></a>

1. Gere o URL de conexão do VS Code usando um dos métodos acima

1. Copie o URL do VS Code da resposta

1. Clique no URL ou cole-o no seu navegador

1. O VS Code solicitará a abertura da conexão remota

1. Confirme a conexão para estabelecer o ambiente de desenvolvimento remoto

## Ambientes de desenvolvimento suportados
<a name="vscode-access-remote-dev-env"></a>

A interface de usuário da web fornece acesso a:
+ *Laboratório Jupyter*
+ *Editor de código*

## Solução de problemas
<a name="troubleshooting"></a>

**Não é possível gerar conexão URLs**

*Verifique o seguinte:*
+ SageMaker O complemento Spaces está em execução: kubectl get pods -n sagemaker-spaces-system
+ O espaço de desenvolvimento está funcionando e saudável
+ O acesso remoto foi ativado durante a instalação do complemento
+ O usuário tem as permissões de entrada de acesso EKS apropriadas

# Treine e implante modelos com HyperPod CLI e SDK
<a name="getting-started-hyperpod-training-deploying-models"></a>

 SageMaker HyperPod A Amazon ajuda você a treinar e implantar modelos de aprendizado de máquina em grande escala. A AWS HyperPod CLI é uma interface de linha de comando unificada que simplifica os fluxos de trabalho de aprendizado de máquina (ML) em. AWS Ela simplifica as complexidades da infraestrutura e oferece uma experiência simplificada para enviar, monitorar e gerenciar tarefas de treinamento de ML. A CLI foi projetada especificamente para cientistas de dados e engenheiros de ML que desejam se concentrar no desenvolvimento de modelos em vez de no gerenciamento da infraestrutura. Este tópico mostra três cenários principais: treinar um PyTorch modelo, implantar um modelo personalizado usando artefatos treinados e implantar um modelo. JumpStart Projetado para usuários iniciantes, este tutorial conciso garante que você possa configurar, treinar e implantar modelos sem esforço usando a CLI ou o SDK HyperPod . O processo de handshake entre o treinamento e a inferência ajuda você a gerenciar os artefatos do modelo de forma eficaz. 

## Pré-requisitos
<a name="prerequisites"></a>

Antes de começar a usar a Amazon SageMaker HyperPod, verifique se você tem:
+ Uma AWS conta com acesso à Amazon SageMaker HyperPod
+ O Python 3.9, 3.10 ou 3.11 instalado.
+ AWS CLI configurado com as credenciais apropriadas. 

## Instale a HyperPod CLI e o SDK
<a name="install-cli-sdk"></a>

Instale o pacote necessário para acessar a CLI e o SDK:

```
pip install sagemaker-hyperpod
```

Esse comando configura as ferramentas necessárias para interagir com os HyperPod clusters.

## Configurar o contexto do cluster
<a name="configure-cluster"></a>

HyperPod opera em clusters otimizados para aprendizado de máquina. Primeiro, liste os clusters disponíveis para selecionar um para suas tarefas.

1. Liste todos os clusters disponíveis:

   ```
   hyp list-cluster
   ```

1. Escolha e defina seu cluster ativo:

   ```
   hyp set-cluster-context your-eks-cluster-name
   ```

1. Verifique a configuração:

   ```
   hyp get-cluster-context
   ```

**nota**  
Todos os comandos subsequentes têm como alvo o cluster que você definiu como seu contexto.

## Escolher seu cenário
<a name="choose-scenario"></a>

Para ter instruções detalhadas sobre cada cenário, clique nos tópicos abaixo:

**Topics**
+ [Pré-requisitos](#prerequisites)
+ [Instale a HyperPod CLI e o SDK](#install-cli-sdk)
+ [Configurar o contexto do cluster](#configure-cluster)
+ [Escolher seu cenário](#choose-scenario)
+ [Treine um PyTorch modelo](train-models-with-hyperpod.md)
+ [Implantar um modelo personalizado](deploy-trained-model.md)
+ [Implemente um JumpStart modelo](deploy-jumpstart-model.md)

# Treine um PyTorch modelo
<a name="train-models-with-hyperpod"></a>

Este tópico explica o processo de treinamento de um PyTorch modelo usando HyperPod o.

Nesse cenário, vamos treinar um PyTorch modelo usando o `hyp-pytorch-job` modelo, o que simplifica a criação de trabalhos ao expor parâmetros comumente usados. Os artefatos do modelo serão armazenados em um bucket do S3 para uso posterior na inferência. No entanto, isso é opcional e você pode escolher seu local de armazenamento preferido.

## Criar uma tarefa de treinamento
<a name="create-training-job"></a>

Você pode treinar o modelo usando a CLI ou o Python SDK.

### Usar a CLI
<a name="using-cli"></a>

Crie uma tarefa de treinamento com o seguinte comando:

```
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
```

**Explicação dos principais parâmetros necessários**:
+ `--job-name`: identificador exclusivo para sua tarefa de treinamento.
+ `--image`: imagem do Docker contendo seu ambiente de treinamento.

Esse comando inicia uma tarefa de treinamento chamado `test-pytorch-job`. O `--output-s3-uri` especifica onde os artefatos do modelo treinado serão armazenados; por exemplo, `s3://my-bucket/model-artifacts`. Anote esse local, pois você precisará dele para implantar o modelo personalizado.

### Utilizar o Python SDK
<a name="using-python-sdk"></a>

Para controle programático, use o SDK. Crie um script Python para iniciar a mesma tarefa de treinamento.

```
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()
```

## Monitorar sua tarefa de treinamento
<a name="monitor-training-job"></a>

Monitore o andamento da tarefa com estes comandos:

### Usar a 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
```

**Observação**: o tempo de treinamento varia de acordo com a complexidade do modelo e o tipo de instância. Monitore os logs para acompanhar o andamento.

Esses comandos ajudam você a verificar o status do trabalho e solucionar problemas. Depois que o trabalho for concluído com êxito, os artefatos do modelo serão salvos em `s3://my-bucket/model-artifacts`.

### Utilizar o Python SDK
<a name="monitor-python-sdk"></a>

Adicione o seguinte código ao seu 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())
```

## Próximas etapas
<a name="next-steps"></a>

Após o treinamento, os artefatos do modelo são armazenados no bucket do S3 que você especificou (`s3://my-bucket/model-artifacts`). Você pode usar esses artefatos para implantar um modelo. No momento, você deve gerenciar manualmente a transição entre o treinamento e a inferência. Isso envolve:
+ **Localizar os artefatos**: verifique o bucket do S3 (`s3://my-bucket/model-artifacts`) para confirmar se os arquivos do modelo treinado estão presentes.
+ **Registrar o caminho**: observe o caminho exato do S3 (p. ex., `s3://my-bucket/model-artifacts/test-pytorch-job/model.tar.gz`) para usá-lo na configuração da inferência.
+ **Indicar o caminho na implantação**: forneça esse caminho do S3 ao configurar o endpoint personalizado para garantir que o modelo correto seja carregado.

# Implantar um modelo personalizado
<a name="deploy-trained-model"></a>

Após a conclusão do treinamento, implante seu modelo para inferência. Você pode implantar um modelo personalizado usando a CLI ou o SDK.

## Localizar os artefatos do modelo
<a name="locate-model-artifacts"></a>
+ **Verifique o bucket do S3**: verifique se os artefatos do modelo estão salvos em `s3://my-bucket/model-artifacts/`.
+ **Anote o caminho exato**: você precisará do caminho completo (por exemplo, `s3://my-bucket/model-artifacts/test-pytorch-job/model.tar.gz`).

## Implantar usando a CLI
<a name="deploy-using-cli"></a>

Execute o comando a seguir para implantar o modelo personalizado:

```
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
```

Esse comando implanta o modelo treinado como um endpoint chamado `endpoint-custom-pytorch`. A `--model-location` indica o caminho do artefato da tarefa de treinamento.

## Implantar por meio do Python SDK
<a name="deploy-using-sdk"></a>

Crie um script Python com o seguinte conteúdo:

```
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()
```

## Invocar o endpoint
<a name="invoke-endpoint"></a>

### Usar a CLI
<a name="invoke-using-cli"></a>

Teste o endpoint com uma entrada de amostra:

```
hyp invoke hyp-custom-endpoint \
    --endpoint-name endpoint-custom-pytorch \
    --body '{"inputs":"What is the capital of USA?"}'
```

Isso exibe a resposta do modelo, como “A capital dos EUA é Washington, DC”.

### Uso da SDK
<a name="invoke-using-sdk"></a>

Adicione o seguinte código ao seu script Python:

```
data = '{"inputs":"What is the capital of USA?"}'
response = custom_endpoint.invoke(body=data).body.read()
print(response)
```

## Gerenciar o endpoint
<a name="manage-endpoint"></a>

### Usar a CLI
<a name="manage-using-cli"></a>

Liste e inspecione o endpoint:

```
hyp list hyp-custom-endpoint
hyp get hyp-custom-endpoint --name endpoint-custom-pytorch
```

### Uso da SDK
<a name="manage-using-sdk"></a>

Adicione o seguinte código ao seu script Python:

```
logs = custom_endpoint.get_logs()
print(logs)
```

## Limpar os recursos
<a name="cleanup-resources"></a>

Ao terminar, exclua o endpoint para evitar custos desnecessários.

### Usar a CLI
<a name="cleanup-using-cli"></a>

```
hyp delete hyp-custom-endpoint --name endpoint-custom-pytorch
```

### Uso da SDK
<a name="cleanup-using-sdk"></a>

```
custom_endpoint.delete()
```

## Próximas etapas
<a name="next-steps"></a>

Você implantou e testou com sucesso um modelo personalizado usando o. SageMaker HyperPod Agora é possível usar esse endpoint para inferência em suas aplicações.

# Implemente um JumpStart modelo
<a name="deploy-jumpstart-model"></a>

Você pode implantar um JumpStart modelo pré-treinado para inferência usando a CLI ou o SDK.

## Usar a CLI
<a name="deploy-jumpstart-cli"></a>

Execute o comando a seguir para implantar um JumpStart modelo:

```
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
```

## Uso da SDK
<a name="deploy-jumpstart-sdk"></a>

Crie um script Python com o seguinte conteúdo:

```
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
)
```

## Invocar o endpoint
<a name="invoke-jumpstart-endpoint"></a>

### Usar a CLI
<a name="invoke-jumpstart-cli"></a>

Teste o endpoint com uma entrada de amostra:

```
hyp invoke hyp-jumpstart-endpoint \
    --endpoint-name endpoint-jumpstart \
    --body '{"inputs":"What is the capital of USA?"}'
```

### Uso da SDK
<a name="invoke-jumpstart-sdk"></a>

Adicione o seguinte código ao seu script Python:

```
data = '{"inputs":"What is the capital of USA?"}'
response = js_endpoint.invoke(body=data).body.read()
print(response)
```

## Gerenciar o endpoint
<a name="manage-jumpstart-endpoint"></a>

### Usar a CLI
<a name="manage-jumpstart-cli"></a>

Liste e inspecione o endpoint:

```
hyp list hyp-jumpstart-endpoint
hyp get hyp-jumpstart-endpoint --name endpoint-jumpstart
```

### Uso da SDK
<a name="manage-jumpstart-sdk"></a>

Adicione o seguinte código ao seu script Python:

```
endpoint_iterator = HPJumpStartEndpoint.list()
for endpoint in endpoint_iterator:
    print(endpoint.name, endpoint.status)

logs = js_endpoint.get_logs()
print(logs)
```

## Limpar os recursos
<a name="cleanup-jumpstart-resources"></a>

Ao terminar, exclua o endpoint para evitar custos desnecessários.

### Usar a CLI
<a name="cleanup-jumpstart-cli"></a>

```
hyp delete hyp-jumpstart-endpoint --name endpoint-jumpstart
```

### Uso da SDK
<a name="cleanup-jumpstart-sdk"></a>

```
js_endpoint.delete()
```

## Próximas etapas
<a name="jumpstart-next-steps"></a>

Agora que você treinou um PyTorch modelo, o implantou como um endpoint personalizado e implantou um JumpStart modelo usando a HyperPod CLI e o SDK, explore os recursos avançados:
+ **Treinamento em vários nós**: escale o treinamento em várias instâncias.
+ **Contêineres personalizados**: crie ambientes de treinamento especializados.
+ **Integração com SageMaker pipelines**: automatize seus fluxos de trabalho de ML
+ **Monitoramento avançado**: configure métricas e alertas personalizados.

Para obter mais exemplos e configurações avançadas, visite o [SageMaker HyperPod GitHub repositório](https://github.com/aws/amazon-sagemaker-examples).

# Execução de trabalhos em SageMaker HyperPod clusters orquestrados pelo Amazon EKS
<a name="sagemaker-hyperpod-eks-run-jobs"></a>

Os tópicos a seguir fornecem procedimentos e exemplos de acesso a nós de computação e execução de cargas de trabalho de ML em clusters provisionados SageMaker HyperPod orquestrados com o Amazon EKS. Dependendo de como você configurou o ambiente em seu HyperPod cluster, há muitas maneiras de executar cargas de trabalho de ML em HyperPod clusters.

**nota**  
Ao executar trabalhos por meio da SageMaker HyperPod CLI ou do kubectl, HyperPod pode rastrear a utilização da computação (horas de GPU/CPU) em namespaces (equipes). Essas métricas aumentam a eficácia dos relatórios de uso, que fornecem:  
Visibilidade sobre o consumo de recursos alocados e tomados emprestados.
Informações sobre a utilização de recursos pelas equipes para auditoria (até 180 dias).
Atribuição de custos alinhada a políticas de governança de tarefas.
Para utilizar os relatórios de uso, você deve instalar a infraestrutura de relatórios de uso. É altamente recomendável configurar a [governança de tarefas](sagemaker-hyperpod-eks-operate-console-ui-governance.md) para impor cotas de computação e permitir a atribuição granular de custos.  
Para obter mais informações sobre como configurar e gerar relatórios de uso, consulte [Relatar o uso de computação em HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-usage-reporting.html).

**dica**  
Para uma experiência prática e orientação sobre como configurar e usar um SageMaker HyperPod cluster orquestrado com o Amazon EKS, recomendamos fazer este workshop de [suporte do Amazon EKS](https://catalog.us-east-1.prod.workshops.aws/workshops/2433d39e-ccfe-4c00-9d3d-9917b729258e). SageMaker HyperPod

Os usuários de cientistas de dados podem treinar modelos básicos usando o conjunto de clusters EKS como orquestrador do cluster. SageMaker HyperPod Os cientistas utilizam a [SageMaker HyperPod CLI](https://github.com/aws/sagemaker-hyperpod-cli) e os `kubectl` comandos nativos para encontrar SageMaker HyperPod clusters disponíveis, enviar trabalhos de treinamento (Pods) e gerenciar suas cargas de trabalho. A SageMaker HyperPod CLI permite o envio de trabalhos usando um arquivo de esquema de trabalho de treinamento e fornece recursos para listagem, descrição, cancelamento e execução de trabalhos. Os cientistas podem usar o [Kubeflow Training Operator](https://www.kubeflow.org/docs/components/training/overview/) de acordo com as cotas de computação gerenciadas e gerenciadas pela HyperPod [SageMaker IA MLflow para gerenciar experimentos de ML e execuções](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html) de treinamento. 

**Topics**
+ [Instalando a SageMaker HyperPod CLI](sagemaker-hyperpod-eks-run-jobs-access-nodes.md)
+ [SageMaker HyperPod Comandos CLI](sagemaker-hyperpod-eks-hyperpod-cli-reference.md)
+ [Executando trabalhos usando a SageMaker HyperPod CLI](sagemaker-hyperpod-eks-run-jobs-hyperpod-cli.md)
+ [Executar trabalhos usando o `kubectl`](sagemaker-hyperpod-eks-run-jobs-kubectl.md)

# Instalando a SageMaker HyperPod CLI
<a name="sagemaker-hyperpod-eks-run-jobs-access-nodes"></a>

SageMaker HyperPod fornece o pacote de [interface de linha de SageMaker HyperPod comando](https://github.com/aws/sagemaker-hyperpod-cli) (CLI). 

1. Verifique se a versão do Python em sua máquina local está entre 3.8 e 3.11.

1. [Verifique os pré-requisitos no arquivo `README` markdown no pacote CLI. SageMaker HyperPod ](https://github.com/aws/sagemaker-hyperpod-cli)

1. Clone o pacote SageMaker HyperPod CLI de. GitHub

   ```
   git clone https://github.com/aws/sagemaker-hyperpod-cli.git
   ```

1. Instale a SageMaker HyperPod CLI.

   ```
   cd sagemaker-hyperpod-cli && pip install .
   ```

1. Teste se a SageMaker HyperPod CLI foi instalada com êxito executando o comando a seguir. 

   ```
   hyperpod --help
   ```

**nota**  
Se você for um cientista de dados e quiser usar a SageMaker HyperPod CLI, certifique-se de que sua função do IAM esteja configurada corretamente pelos administradores do cluster seguindo as instruções em e. [Usuários do IAM para cientistas](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-cluster-user) [Como configurar controle de acesso ao Kubernetes baseado em perfil](sagemaker-hyperpod-eks-setup-rbac.md)

# SageMaker HyperPod Comandos CLI
<a name="sagemaker-hyperpod-eks-hyperpod-cli-reference"></a>

A tabela a seguir resume os comandos da SageMaker HyperPod CLI.

**nota**  
[Para obter uma referência completa da CLI, consulte [README](https://github.com/aws/sagemaker-hyperpod-cli?tab=readme-ov-file#sagemaker-hyperpod-command-line-interface) no repositório da SageMaker HyperPod CLI. GitHub](https://github.com/aws/sagemaker-hyperpod-cli)


| SageMaker HyperPod Comando CLI | Entidade  | Description | 
| --- | --- | --- | 
| hyperpod get-clusters | cluster/acesso | Lista todos os clusters para os quais o usuário foi habilitado com permissões do IAM para enviar cargas de trabalho de treinamento. Fornece o instantâneo atual de todas as instâncias disponíveis que não estão executando nenhuma carga de trabalho ou trabalho junto com a capacidade máxima, agrupando por status de verificação de integridade (ex:) BurnInPassed | 
| hyperpod connect-cluster | cluster/acesso | Configura kubectl para operar no HyperPod cluster e namespace especificados | 
| hyperpod start-job  | trabalho | Envia o trabalho para o cluster de destino - o nome do trabalho será exclusivo no nível do namespace - Os usuários poderão substituir a especificação yaml passando-a como argumentos da CLI | 
| hyperpod get-job | trabalho | Exibir metadados do trabalho enviado | 
| hyperpod list-jobs | trabalho | Lista todos os trabalhos conectados cluster/namespace aos quais o usuário foi adicionado com permissões do IAM para enviar cargas de trabalho de treinamento | 
| hyperpod cancel-job | trabalho | Interrompe e exclui o trabalho e cede os recursos computacionais subjacentes. Este trabalho não pode ser retomado novamente. Um novo trabalho precisa ser iniciado, se necessário. | 
| hyperpod list-pods | pod | Lista todos os pods em um determinado trabalho em um namespace. | 
| hyperpod get-log | pod | Recupera os logs de um pod específico em um trabalho especificado. | 
| hyperpod exec | pod | Executa o comando bash no shell dos pods especificados e publica a saída. | 
| hyperpod --help | utility | Lista todos os comandos compatíveis. | 

# Executando trabalhos usando a SageMaker HyperPod CLI
<a name="sagemaker-hyperpod-eks-run-jobs-hyperpod-cli"></a>

Para executar trabalhos, certifique-se de ter instalado o Kubeflow Training Operator nos clusters EKS. Para obter mais informações, consulte [Instalar pacotes no cluster do Amazon EKS usando o Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md).

Execute o `hyperpod get-cluster` comando para obter a lista de HyperPod clusters disponíveis.

```
hyperpod get-clusters
```

Execute o `hyperpod connect-cluster` para configurar a SageMaker HyperPod CLI com o cluster EKS orquestrando o cluster. HyperPod 

```
hyperpod connect-cluster --cluster-name <hyperpod-cluster-name>
```

Use o comando `hyperpod start-job` para executar um trabalho. O comando a seguir mostra o comando com as opções necessárias. 

```
hyperpod start-job \
    --job-name <job-name>
    --image <docker-image-uri>
    --entry-script <entrypoint-script>
    --instance-type <ml.instance.type>
    --node-count <integer>
```

O comando `hyperpod start-job` também vem com várias opções, como retomada automática de tarefas e agendamento de tarefas.

## Ativando a retomada automática do trabalho
<a name="sagemaker-hyperpod-eks-run-jobs-hyperpod-cli-enable-auto-resume"></a>

O comando `hyperpod start-job` também tem as seguintes opções para especificar a retomada automática do trabalho: Para permitir que a retomada automática de tarefas funcione com os recursos de resiliência do SageMaker HyperPod nó, você deve definir o valor da `restart-policy` opção como. `OnFailure` O trabalho deve ser executado sob o namespace `kubeflow` ou com um namespace prefixado com `hyperpod`.
+ [--auto-resume <bool>] \$1Optional, habilita a retomada automática do trabalho após falhas; o padrão é false.
+ [--max-retry <int>] \$1Optional, se a retomada automática for verdadeira, o valor padrão de repetição máxima será 1 se não for especificado.
+ [--restart-policy<enum>] \$1Optional, política de reinicialização. PyTorchJob Os valores disponíveis são `Always`, `OnFailure`, `Never` ou `ExitCode`. O valor padrão é `OnFailure`. 

```
hyperpod start-job \
    ... // required options \
    --auto-resume true \
    --max-retry 3 \
    --restart-policy OnFailure
```

## Executar trabalhos com opções de agendamento
<a name="sagemaker-hyperpod-eks-run-jobs-hyperpod-cli-scheduling"></a>

O comando `hyperpod start-job` tem as seguintes opções para configurar o trabalho com mecanismos de enfileiramento: 

**nota**  
Você precisa do [Kueue](https://kueue.sigs.k8s.io/docs/overview/) instalado no cluster do EKS. Se não tiver instalado, siga as instruções em [Configuração para governança de SageMaker HyperPod tarefas](sagemaker-hyperpod-eks-operate-console-ui-governance-setup.md).
+ [--scheduler-type <enum>] \$1Optional, especifique o tipo de agendador. O padrão é `Kueue`.
+ [--queue-name <string>] \$1Optional, especifique o nome da [fila local](https://kueue.sigs.k8s.io/docs/concepts/local_queue/) ou [fila de cluster](https://kueue.sigs.k8s.io/docs/concepts/cluster_queue/) que você deseja enviar com o trabalho. A fila deve ser criada pelos administradores do cluster usando `CreateComputeQuota`.
+ [--priority <string>] \$1Optional, especifique o nome da [classe de prioridade do workload](https://kueue.sigs.k8s.io/docs/concepts/workload_priority_class/), que deve ser criada pelos administradores do cluster.

```
hyperpod start-job \
    ... // required options
    --scheduler-type Kueue \
    --queue-name high-priority-queue \
    --priority high
```

## Executar trabalhos por meio de um arquivo de configuração
<a name="sagemaker-hyperpod-eks-run-jobs-hyperpod-cli-from-config"></a>

Como alternativa, você pode criar um arquivo de configuração do trabalho contendo todos os parâmetros exigidos pelo trabalho e, em seguida, passar esse arquivo de configuração para o comando `hyperpod start-job` usando a opção --config-file. Neste caso:

1. Crie o arquivo de configuração do trabalho com os parâmetros necessários. Consulte o arquivo de configuração do trabalho no GitHub repositório SageMaker HyperPod CLI para obter um arquivo de configuração de [linha de 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. Inicie o trabalho usando o arquivo de configuração da seguinte maneira:

   ```
   hyperpod start-job --config-file /path/to/test_job.yaml
   ```

**dica**  
Para obter uma lista completa dos parâmetros do `hyperpod start-job` comando, consulte a seção [Submitting a Job](https://github.com/aws/sagemaker-hyperpod-cli?tab=readme-ov-file#submitting-a-job) no `README.md` repositório SageMaker HyperPod GitHub CLI.

# Executar trabalhos usando o `kubectl`
<a name="sagemaker-hyperpod-eks-run-jobs-kubectl"></a>

**nota**  
A retoma automática da tarefa de treinamento requer o Kubeflow Training Operator versão `1.7.0`, `1.8.0` ou `1.8.1`.

Observe que você deve instalar o Kubeflow Training Operator nos clusters usando um chart do Helm. Para obter mais informações, consulte [Instalar pacotes no cluster do Amazon EKS usando o Helm](sagemaker-hyperpod-eks-install-packages-using-helm-chart.md). Verifique se o ambiente de gerenciamento do Kubeflow Training Operator está configurado corretamente executando o comando a seguir.

```
kubectl get pods -n kubeflow
```

Esse comando retorna uma saída semelhante à seguinte:

```
NAME                                             READY   STATUS    RESTARTS   AGE
training-operator-658c68d697-46zmn               1/1     Running   0          90s
```

**Para enviar um trabalho de treinamento**

Para executar um trabalho de treinamento, prepare o arquivo de configuração do trabalho e execute o comando [https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#apply) da seguinte forma:

```
kubectl apply -f /path/to/training_job.yaml
```

**Como descrever um trabalho de treinamento**

Para recuperar os detalhes do trabalho enviado ao cluster do EKS, use o comando a seguir. Ele retorna informações do trabalho, como o tempo de envio do trabalho, o tempo de conclusão, o status do trabalho e os detalhes da configuração.

```
kubectl get -o yaml training-job -n kubeflow
```

**Para interromper um trabalho de treinamento e excluir recursos do EKS**

Para interromper um trabalho de treinamento, use kubectl delete. Veja a seguir um exemplo de como interromper o trabalho de treinamento criado a partir do arquivo de configuração `pytorch_job_simple.yaml`.

```
kubectl delete -f /path/to/training_job.yaml 
```

Essa saída deve retornar o seguinte resultado:

```
pytorchjob.kubeflow.org "training-job" deleted
```

**Para ativar a retomada automática do trabalho**

SageMaker HyperPod oferece suporte à funcionalidade de retomada automática de tarefas do Kubernetes, integrando-se ao plano de controle do Kubeflow Training Operator.

Certifique-se de que haja nós suficientes no cluster que tenham passado pela verificação de SageMaker HyperPod integridade. Os nós devem ter a taint `sagemaker.amazonaws.com/node-health-status` definida como `Schedulable`. É recomendável incluir um seletor de nós no arquivo YAML do trabalho para selecionar nós com a configuração apropriada da seguinte forma:

```
sagemaker.amazonaws.com/node-health-status: Schedulable
```

O trecho de código a seguir é um exemplo de como modificar a configuração YAML de uma tarefa do Kubeflow para ativar a funcionalidade de retomada automática da PyTorch tarefa. Você precisa adicionar duas anotações e definir `restartPolicy` da seguinte `OnFailure` forma:

```
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
```

**Para verificar o status de retomada automática do trabalho**

Execute o comando a seguir para recuperar o status da automação.

```
kubectl describe pytorchjob -n kubeflow <job-name>
```

Dependendo dos padrões de falha, você pode ver dois padrões de reinicialização do trabalho de treinamento do Kubeflow da seguinte maneira:

**Padrão 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.
```

**Padrão 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
```

# Usando o operador HyperPod de treinamento
<a name="sagemaker-eks-operator"></a>

 O operador de SageMaker HyperPod treinamento da Amazon ajuda você a acelerar o desenvolvimento de modelos generativos de IA gerenciando com eficiência o treinamento distribuído em grandes clusters de GPU. Ele apresenta recursos inteligentes de recuperação de falhas, detecção de tarefas suspensas e gerenciamento em nível de processo que minimizam as interrupções no treinamento e reduzem os custos. Diferentemente da infraestrutura de treinamento tradicional, que exige a reinicialização completa da tarefa quando ocorrem falhas, esse operador implementa a recuperação do processo cirúrgico para manter as tarefas de treinamento funcionando sem problemas. 

 O operador também trabalha com as funções HyperPod de monitoramento e observabilidade da saúde, fornecendo visibilidade em tempo real da execução do treinamento e monitoramento automático de métricas críticas, como picos de perdas e degradação da produtividade. É possível definir políticas de recuperação por meio de configurações simples de YAML sem alterações no código, permitindo que você responda e se recupere rapidamente de estados de treinamento irrecuperáveis. Esses recursos de monitoramento e recuperação trabalham juntos para manter o desempenho ideal do treinamento e, ao mesmo tempo, minimizar a sobrecarga operacional.

 Embora o Kueue não seja necessário para esse operador de treinamento, o administrador do cluster pode instalá-lo e configurá-lo para aprimorar os recursos de agendamento de tarefas. Para ter mais informações, consulte a [documentação oficial do Kueue](https://kueue.sigs.k8s.io/docs/overview/).

**nota**  
Para usar o operador de treinamento, você deve usar a [versão mais recente da HyperPod AMI](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-release-ami-eks.html). Para fazer o upgrade, use a operação [ UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)da API. Se você usa a [governança de HyperPod tarefas](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-governance.html), ela também deve ser a versão mais recente.

## Versões aceitas
<a name="sagemaker-eks-operator-supported-versions"></a>

 O operador HyperPod de treinamento funciona apenas com versões específicas do Kubernetes, Kueue e. HyperPod Consulte a lista abaixo para ver uma relação completa de versões compatíveis. 
+ Versões compatíveis do Kubernetes — 1.28, 1.29, 1.30, 1.31, 1.32 e 1.33
+ Versões sugeridas do Kueue: [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).
+ A versão mais recente da HyperPod AMI. Para fazer o upgrade para a versão mais recente da AMI, use a [ 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**  
Coletamos determinadas métricas operacionais rotineiras agregadas e anônimas para fornecer disponibilidade de serviços essenciais. A criação dessas métricas é totalmente automatizada e não envolve a revisão humana da carga de trabalho de treinamento do modelo subjacente. Essas métricas estão relacionadas às operações de um trabalho, ao gerenciamento de recursos e à funcionalidade essencial do serviço.

# Instalar do operador de treinamento
<a name="sagemaker-eks-operator-install"></a>

Consulte as seções a seguir para saber como instalar o operador de treinamento.

## Pré-requisitos
<a name="sagemaker-eks-operator-prerequisites"></a>

 Antes de usar o operador HyperPod de treinamento, você deve ter preenchido os seguintes pré-requisitos: 
+  [Criou um HyperPod cluster com a orquestração do Amazon EKS](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-create-cluster.html). 
+ Instalou a AMI mais recente em seu HyperPod cluster. Para obter mais informações, consulte [SageMaker HyperPod Lançamentos da AMI para o Amazon EKS](sagemaker-hyperpod-release-ami-eks.md).
+ [Instalar o Certificate Manager](https://cert-manager.io/docs/installation/).
+  [Configurar o Agente de Identidade de Pods do EKS usando o console](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-agent-setup.html). Se você quiser usar o AWS CLI, use o seguinte comando: 

  ```
  aws eks create-addon \ 
   --cluster-name my-eks-cluster \
   --addon-name eks-pod-identity-agent \
   --region Região da AWS
  ```
+ (Opcional) Se você executar seus nós de HyperPod cluster em uma VPC privada, deverá configurar endpoints de PrivateLinks VPC para a Amazon AI API (`com.amazonaws.aws-region.sagemaker.api`) e os serviços SageMaker Amazon EKS Auth (com.amazonaws). *aws-region*.eks-auth). Você também deve garantir que os nós do cluster estejam sendo executados com sub-redes que estão em um grupo de segurança que permite que o tráfego seja roteado pelos endpoints da VPC para se comunicar com a IA SageMaker e o Amazon EKS. Se eles não estiverem configurados corretamente, a instalação do complemento poderá falhar. Para saber mais sobre como configurar VPC endpoints, consulte Criar [um VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws) endpoint.

## Instalar do operador de treinamento
<a name="sagemaker-eks-operator-install-operator"></a>

 Agora você pode instalar o operador de HyperPod treinamento por meio do console de SageMaker IA, do console do Amazon EKS ou com os métodos AWS CLI do console que oferecem experiências simplificadas que ajudam você a instalar o operador. O AWS CLI oferece uma abordagem programática que permite que você personalize mais de sua instalação.

Entre as duas experiências de console, a SageMaker IA fornece uma instalação com um clique, cria a função de execução do IAM, cria a associação de identidade do pod e instala o operador. A instalação do console do Amazon EKS é semelhante, mas esse método não cria automaticamente um perfil de execução do IAM. Durante esse processo, opte por criar um perfil de execução do IAM com informações que o console preenche previamente. Por padrão, esses perfis criados só têm acesso ao cluster atual no qual você está instalando o operador. A menos que você edite as permissões do perfil para incluir outros clusters, se você remover e reinstalar o operador, deverá criar outro perfil. 

------
#### [ SageMaker AI console (recommended) ]

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Acesse a página de detalhes do seu cluster.

1. Na guia **Painel**, localize o complemento chamado **operador de SageMaker HyperPod treinamento da Amazon** e escolha **instalar**. Durante o processo de instalação, a SageMaker IA cria uma função de execução do IAM com permissões semelhantes às da política [ AmazonSageMakerHyperPodTrainingOperatorAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerHyperPodTrainingOperatorAccess.html)gerenciada e cria uma associação de identidade de pod entre seu cluster Amazon EKS e sua nova função de execução.

------
#### [ Amazon EKS console ]

**nota**  
Se você instalar o complemento por meio do cluster Amazon EKS, primeiro certifique-se de ter marcado seu HyperPod cluster com o par de valores-chave. `SageMaker:true` Do contrário, a instalação falhará.

1. Abra o console do Amazon EKS em [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. Acesse seu cluster do EKS, escolha **Complementos** e selecione **Obter mais complementos**.

1. Escolha o operador SageMaker HyperPod de treinamento da Amazon e, em seguida, escolha **Avançar**.

1. Em **Versão**, o console usa como padrão a versão mais recente, que recomendamos que você use.

1. Em **Acesso a complementos**, escolha um perfil do IAM de Identidade de Pods para usar com o complemento do operador de treinamento. Se você ainda não tiver um perfil, escolha **Criar perfil recomendado** para criar um.

1. Durante esse processo de criação da função, o console do IAM preenche previamente todas as informações necessárias, como o caso de uso, a política [ AmazonSageMakerHyperPodTrainingOperatorAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerHyperPodTrainingOperatorAccess.html)gerenciada e outras permissões necessárias, o nome da função e a descrição. Ao seguir as etapas, analise as informações e escolha **Criar perfil**.

1. No console EKS, analise as configurações do complemento e escolha **Criar**.

------
#### [ CLI ]

1. Certifique-se de que a função de execução do IAM para seu HyperPod cluster tenha uma relação de confiança que permita ao EKS Pod Identity assumir a função ou [criar uma nova função do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) com a seguinte política de confiança. Ou você pode usar o console do Amazon EKS para instalar o complemento, o qual cria um perfil recomendado.

------
#### [ 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.  Anexe a [política AmazonSageMakerHyperPodTrainingOperatorAccess gerenciada](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerHyperPodTrainingOperatorAccess.html) à sua função criada. 

1.  [Em seguida, crie uma associação de Identidade de Pods entre o cluster do EKS, o perfil do IAM e o novo perfil do 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 Região da AWS
   ```

1.  Depois de concluir o processo, você pode usar a ListPodIdentityAssociations operação para ver a associação que você criou. A resposta de exemplo a seguir pode dar uma ideia dessa associação. 

   ```
   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. Para instalar o operador de treinamento, use a operação `create-addon`. O parâmetro `--addon-version` é opcional. Se você não fornecer uma, o padrão é a versão mais recente. Para obter as versões possíveis, use a [ DescribeAddonVersions](https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html)operação.

   ```
   aws eks create-addon \
     --cluster-name my-eks-cluster \
     --addon-name amazon-sagemaker-hyperpod-training-operator \
     --resolve-conflicts OVERWRITE
   ```

------

Se você já tem o operador de treinamento instalado em seu HyperPod cluster, você pode atualizar o complemento EKS para a versão desejada. Se você quiser usar [treinamento sem pontos de verificação ou treinamento](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless.html) [elástico](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-elastic-training.html), considere o seguinte:
+ Tanto o treinamento sem ponto de verificação quanto o treinamento elástico exigem que o complemento EKS esteja na versão 1.2.0 ou superior.
+ O operador de SageMaker HyperPod treinamento da Amazon mantém a compatibilidade com versões anteriores de qualquer versão complementar do EKS, para que você possa fazer o upgrade de qualquer versão complementar para a 1.2.0 ou superior.
+ Se você fizer o downgrade das versões 1.2.0 ou superior para uma versão inferior, deverá primeiro excluir os trabalhos existentes antes do downgrade e reenviar os trabalhos após a conclusão do downgrade.

------
#### [ Amazon EKS Console ]

1. Abra o console do Amazon EKS em [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. Acesse seu cluster EKS e escolha **Add-ons.** Em seguida, escolha o complemento do operador SageMaker HyperPod de treinamento da Amazon e escolha **Editar**.

1. No menu **Versão**, escolha a versão do complemento que você deseja e escolha **Salvar alterações**.

------
#### [ CLI ]

1. Primeiro, obtenha a lista das versões compatíveis do complemento para seu 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. Em seguida, atualize o complemento para a versão desejada.

   ```
   aws eks update-addon \
     --cluster-name my-eks-cluster \
     --addon-name amazon-sagemaker-hyperpod-training-operator \
     --addon-version target-version
     --resolve-conflicts OVERWRITE
   ```

------

 O operador de treinamento vem com várias opções com valores padrão que podem se adequar ao seu caso de uso. Recomendamos que você teste o operador de treinamento com valores padrão antes de alterá-los. A tabela abaixo descreve todos os parâmetros e exemplos de quando é possível configurar cada parâmetro.


| Parâmetro | Description | Padrão | 
| --- | --- | --- | 
| hpTrainingControllermanager.manager.resources.requests.CPU | Quantos processadores alocar ao controlador. | 1 | 
| hpTrainingControllermanager.manager.resources.requests.Memory | Quantidade de memória a alocar ao controlador. | 2 Gi | 
| hpTrainingControllermanager.manager.resources.limits.CPU | O limite de CPU para o controlador. | 2 | 
| hpTrainingControllermanager.manager.resources.limits.Memória | O limite de memória para o controlador. | 4Gi | 
| hpTrainingControllerManager.nodeSelector | Seletor de nós para os pods do controlador. | O comportamento padrão é selecionar nós com o rótulo sagemaker.amazonaws.com/compute-type: "HyperPod". | 

## HyperPod agente elástico
<a name="sagemaker-eks-operator-elastic-agent"></a>

O agente HyperPod elástico é uma extensão de [PyTorch's ElasticAgent](https://docs.pytorch.org/docs/stable/elastic/agent.html). Ele orquestra os ciclos de vida dos trabalhadores de treinamento em cada contêiner e se comunica com o operador de treinamento. HyperPod Para usar o operador de HyperPod treinamento, você deve primeiro instalar o agente HyperPod elástico em sua imagem de treinamento antes de poder enviar e executar trabalhos usando o operador. A seguir é apresentado um arquivo do Docker que instala o agente elástico e o usa `hyperpodrun` para criar o inicializador de tarefas.

**nota**  
Tanto o [treinamento sem ponto de verificação](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-checkpointless.html) quanto o [treinamento elástico](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-elastic-training.html) exigem que você use o agente HyperPod elástico versão 1.1.0 ou superior.

```
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
```

Agora você pode enviar tarefas com o `kubectl`.

### HyperPod argumentos do agente elástico
<a name="sagemaker-eks-operator-elastic-agent-args"></a>

 O agente HyperPod elástico suporta todos os argumentos originais e adiciona alguns argumentos adicionais. A seguir estão todos os argumentos disponíveis no agente HyperPod elástico. Para obter mais informações sobre PyTorch o Elastic Agent, consulte a [documentação oficial](https://docs.pytorch.org/docs/stable/elastic/agent.html). 


| Argumento | Description | Valor padrão | 
| --- | --- | --- | 
| --shutdown-signal | Sinal a ser enviado aos operadores para desligamento (SIGTERM ou SIGKILL) | “SIGKILL” | 
| --shutdown-timeout | Tempo limite em segundos entre o sinal de desligamento e os sinais SIGKILL | 15 | 
| --server-host | Endereço do servidor do agente | “0.0.0.0” | 
| --server-port | Porta do servidor do agente | 8080 | 
| --server-log-level | Nível de log do servidor do agente | “info” | 
| --server-shutdown-timeout | Tempo limite de desligamento do servidor em segundos | 300 | 
| --pre-train-script | Caminho para o script de pré-treinamento | Nenhum | 
| --pre-train-args | Argumentos para o script de pré-treinamento | Nenhum | 
| --post-train-script | Caminho para o script de pós-treinamento | Nenhum | 
| --post-train-args | Argumentos para o script de pós-treinamento | Nenhum | 
| --inprocess-restart | Sinalizador especificando se o recurso inprocess\$1restart deve ser usado | FALSE | 
| --em processamento - tempo limite | Tempo em segundos em que o agente espera que os trabalhadores atinjam uma barreira de sincronização antes de acionar uma reinicialização no nível do processo. | Nenhum | 

## Governança de tarefas (opcional)
<a name="sagemaker-eks-operator-task-governance"></a>

O operador de treinamento é integrado à [governança de HyperPod tarefas](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-governance), um sistema de gerenciamento robusto projetado para simplificar a alocação de recursos e garantir a utilização eficiente dos recursos computacionais entre equipes e projetos para seus clusters do Amazon EKS. Para configurar a governança de HyperPod tarefas, consulte[Configuração para governança de SageMaker HyperPod tarefas](sagemaker-hyperpod-eks-operate-console-ui-governance-setup.md). 

**nota**  
Ao instalar o complemento de governança de HyperPod tarefas, você deve usar a versão v1.3.0-eksbuild.1 ou superior.

Ao enviar um trabalho, inclua o nome da fila e os rótulos `hyperpod-ns-team-name-localqueue` e `priority-class-name-priority` da classe prioritária. Por exemplo, se você estiver usando o Kueue, os rótulos serão os seguintes:
+ kueue.x-k8s.io/nome da fila: hyperpod-ns- -localqueue *team-name*
+ kueue.x-k8s.io/priority-class: -name-priority *priority-class*

Confira o seguinte exemplo para ver como o arquivo de configuração se apresenta:

```
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"
```

Em seguida, use o comando kubectl a seguir para aplicar o arquivo YAML.

```
kubectl apply -f task-governance-job.yaml
```

## Kueue (opcional)
<a name="sagemaker-eks-operator-kueue"></a>

Embora você possa executar tarefas diretamente, sua organização também pode integrar o operador de treinamento ao Kueue para alocar recursos e agendar tarefas. Siga as etapas abaixo para instalar o Kueue em seu HyperPod cluster.

1. Siga o guia de instalação na [documentação oficial do Kueue](https://kueue.sigs.k8s.io/docs/installation/#install-a-custom-configured-released-version). Ao chegar à etapa de configuração `controller_manager_config.yaml`, adicione a seguinte configuração:

   ```
   externalFrameworks:
   - "HyperPodPytorchJob.v1.sagemaker.amazonaws.com"
   ```

1. Siga o restante das etapas no guia de instalação oficial. Depois de concluir a instalação do Kueue, você pode criar algumas filas de amostra com o comando `kubectl apply -f sample-queues.yaml`. Use o arquivo YAML a seguir.

   ```
   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
   ```

# Usar o operador de treinamento para executar tarefas
<a name="sagemaker-eks-operator-usage"></a>

 Para usar o kubectl para executar a tarefa, você precisa criar um job.yaml para indicar as respectivas especificações e executar `kubectl apply -f job.yaml` para enviá-la. Nesse arquivo YAML, você pode especificar configurações personalizadas no argumento `logMonitoringConfiguration` para definir regras de monitoramento automatizadas que analisam as saídas de log da tarefa de treinamento distribuído para detectar problemas e executar a recuperação. 

```
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 você quiser usar as opções de monitoramento de registros, certifique-se de emitir o registro de treinamento para o. `sys.stdout` HyperPod O agente elástico monitora os registros de treinamento em sys.stdout, que são salvos em. `/tmp/hyperpod/` Você pode usar o comando a seguir para emitir os logs de treinamento.

```
logging.basicConfig(format="%(asctime)s [%(levelname)s] %(name)s: %(message)s", level=logging.INFO, stream=sys.stdout)
```

 A seguinte tabela descreve todas as configurações possíveis de monitoramento de logs: 


| Parâmetro | Usage | 
| --- | --- | 
| jobMaxRetryContagem | Número máximo de reinicializações em nível de processo. | 
| Política de reinicialização: numRestartBefore FullJobRestart | Número máximo de reinicializações em nível de processo antes que o operador reinicie em nível de tarefa. | 
| Política de reinicialização: evalPeriodSeconds | O período de avaliação do limite de reinicialização em segundos. | 
| Política de reinicialização: reinicia maxFullJob | Número máximo de reinicializações completas da tarefa antes que ela falhe. | 
| cleanPodPolicy | Especifica os pods que o operador deve limpar. Os valores aceitos são All, OnlyComplete e None. | 
| logMonitoringConfiguration | As regras de monitoramento de logs para detecção de tarefas lentas e interrompidas. | 
| expectedRecurringFrequencyInSeconds | Intervalo de tempo entre duas LogPattern partidas consecutivas após o qual a regra é avaliada como HANGING. Se não for especificado, não existe restrição de tempo entre LogPattern partidas consecutivas. | 
| expectedStartCutOffInSeconds | Hora da primeira LogPattern partida, após a qual a regra é avaliada como HANGING. Se não for especificado, não existe restrição de tempo para a primeira LogPattern partida. | 
| logPattern | Expressão regular que identifica as linhas de log às quais a regra se aplica quando a regra está ativa. | 
| metricEvaluationDataPontos | Número de vezes consecutivas em que uma regra deve ser avaliada como SLOW antes de marcar uma tarefa como SLOW. Se não especificado, o padrão será 1. | 
| metricThreshold | Limite para o valor extraído LogPattern com um grupo de captura. Quando não especificado, a avaliação da métrica não é executada. | 
| operador | A desigualdade a ser aplicada à configuração de monitoramento. Os valores aceitos são gt, gteq, lt, lteq e eq. | 
| stopPattern | Expressão regular para identificar a linha de log na qual desativar a regra. Se não especificado, a regra ficará sempre ativa. | 
| faultOnMatch | Indica se uma combinação de LogPattern deve acionar imediatamente uma falha no trabalho. Quando verdadeiro, o trabalho será marcado como defeituoso assim que LogPattern for correspondido, independentemente dos outros parâmetros da regra. Quando falsa ou não especificada, a regra será avaliada como SLOW ou HANGING com base em outros parâmetros. | 

 Para aumentar a resiliência do treinamento, especifique os detalhes da configuração do nó sobressalente. Se sua tarefa falhar, o operador trabalhará com o Kueue para usar os nós reservados com antecedência e continuar executando a tarefa. As configurações dos nós sobressalentes exigem o Kueue; portanto, se você tentar enviar uma tarefa com nós sobressalentes, mas não tiver o Kueue instalado, a tarefa falhará. O exemplo a seguir é um arquivo `job.yaml` de amostra que contém configurações de nós sobressalentes.

```
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"
```

## Monitoramento
<a name="sagemaker-eks-operator-usage-monitoring"></a>

A Amazon SageMaker HyperPod está integrada à [observabilidade com o Amazon Managed Grafana e o Amazon Managed Service for Prometheus, para](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-observability-addon.html) que você possa configurar o monitoramento para coletar e alimentar métricas nessas ferramentas de observabilidade.

Também é possível coletar métricas por meio do Amazon Managed Service for Prometheus sem a observabilidade gerenciada. Para isso, inclua as métricas que você deseja monitorar em seu arquivo `job.yaml` ao executar tarefas com o `kubectl`.

```
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: hyperpod-training-operator
  namespace: aws-hyperpod
spec:
  ......
  endpoints:
    - port: 8081
      path: /metrics
      interval: 15s
```

A seguir são apresentados os eventos que o operador de treinamento emite e que você pode inserir no Amazon Managed Service for Prometheus para monitorar tarefas de treinamento.


| Event | Description | 
| --- | --- | 
| hyperpod\$1training\$1operator\$1jobs\$1created\$1total | Número total de tarefas que o operador de treinamento executou. | 
| hyperpod\$1training\$1operator\$1jobs\$1restart\$1latency | Latência atual de reinicialização da tarefa. | 
| hyperpod\$1training\$1operator\$1jobs\$1fault\$1detection\$1latency | Latência de detecção de falhas. | 
| hyperpod\$1training\$1operator\$1jobs\$1deleted\$1total | Número total de tarefas excluídas. | 
| hyperpod\$1training\$1operator\$1jobs\$1successful\$1total | Número total de tarefas concluídas. | 
| hyperpod\$1training\$1operator\$1jobs\$1failed\$1total | Número total de tarefas com falha. | 
| hyperpod\$1training\$1operator\$1jobs\$1restarted\$1total | Número total de tarefas reiniciadas automaticamente. | 

## Configuração de exemplo do Docker
<a name="sagemaker-eks-operator-usage-docker"></a>

Veja a seguir um exemplo de arquivo do Docker que você pode executar com o 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}
```

## Exemplo de configurações de monitoramento de logs
<a name="sagemaker-eks-operator-usage-log-monitoring"></a>

**Detecção de suspensão de tarefas**

Para detectar trabalhos suspensos, use as configurações a seguir. São usados os seguintes parâmetros:
+ expectedStartCutOffInSeconds — quanto tempo o monitor deve esperar antes de esperar os primeiros registros
+ expectedRecurringFrequencyInSeconds — o intervalo de tempo de espera pelo próximo lote de registros

Com essas configurações, o monitor de logs espera ver uma linha de log correspondente ao padrão regex `.*Train Epoch.*` em 60 segundos após o início da tarefa de treinamento. Após a primeira aparição, o monitor espera ver linhas de log correspondentes a cada 10 segundos. Se os primeiros registros não aparecerem em 60 segundos ou os registros subsequentes não aparecerem a cada 10 segundos, o agente HyperPod elástico tratará o contêiner como preso e coordenará com o operador de treinamento a reinicialização do trabalho.

```
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
```

**Picos de perda de treinamento**

A configuração de monitoramento a seguir emite logs de treinamento com o padrão `xxx training_loss_step xx`. Ela usa o parâmetro `metricEvaluationDataPoints`, que permite especificar um limite de pontos de dados antes que o operador reinicie a tarefa. Se o valor da perda de treinamento for maior que 2,0, o operador reiniciará a tarefa.

```
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
```

** TFLOPs Detecção baixa**

A configuração de monitoramento a seguir emite logs de treinamento com o padrão `xx TFLOPs xx` a cada 5 segundos. Se TFLOPs for menor que 100 para 5 pontos de dados, o operador reinicia o trabalho de treinamento.

```
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
```

**Detecção do registro de erros do script de treinamento**

A configuração de monitoramento a seguir detecta se o padrão especificado em `logPattern` está presente nos registros de treinamento. Assim que o operador de treinamento encontra o padrão de erro, ele o trata como uma falha e reinicia o trabalho.

```
runPolicy:
  jobMaxRetryCount: 10
  cleanPodPolicy: "None"
  logMonitoringConfiguration:
    - name: "GPU Error"
      logPattern: ".*RuntimeError.*out of memory.*"
      faultOnMatch: true
```

# Solução de problemas
<a name="sagemaker-eks-operator-troubleshooting"></a>

Consulte as seções a seguir para aprender a solucionar erros ao usar o operador de treinamento.

## Não consigo instalar o operador de treinamento
<a name="sagemaker-eks-operator-troubleshooting-installation-error"></a>

Se você não conseguir instalar o operador de treinamento, verifique se está usando as [versões compatíveis dos componentes](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator.html#sagemaker-eks-operator-supported-versions). Por exemplo, se você receber um erro informando que sua versão da HyperPod AMI é incompatível com o operador de treinamento, [atualize para a versão mais recente](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html).

## Versão de governança de HyperPod tarefas incompatível
<a name="sagemaker-eks-operator-troubleshooting-task-governance-version"></a>

Durante a instalação, você pode receber uma mensagem de erro informando que a versão da governança de HyperPod tarefas é incompatível. O operador de treinamento funciona somente com a versão v1.3.0-eksbuild.1 ou posterior. Atualize seu complemento de governança de HyperPod tarefas e tente novamente. 

## Permissões ausentes
<a name="sagemaker-eks-operator-troubleshooting-task-missing-permissions"></a>

 Enquanto estiver configurando o operador de treinamento ou executando tarefas, você pode receber erros de que não tem autorização para executar determinadas operações, como `DescribeClusterNode`. Para resolver esses erros, configure corretamente as permissões do IAM ao [configurar o Agente de Identidade de Pods do Amazon EKS](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator-install.html#sagemaker-eks-operator-install-pod-identity).

# Usando treinamento elástico na Amazon SageMaker HyperPod
<a name="sagemaker-eks-elastic-training"></a>

 O treinamento elástico é um novo SageMaker HyperPod recurso da Amazon que escala automaticamente as tarefas de treinamento com base na disponibilidade dos recursos computacionais e na prioridade da carga de trabalho. Os trabalhos de treinamento da Elastic podem começar com os recursos computacionais mínimos necessários para o treinamento do modelo e aumentar ou diminuir dinamicamente por meio de pontos de verificação e retomada automáticos em diferentes configurações de nós (tamanho mundial). O escalonamento é obtido ajustando automaticamente o número de réplicas paralelas de dados. Durante os períodos de alta utilização do cluster, os trabalhos elásticos de treinamento podem ser configurados para serem reduzidos automaticamente em resposta às solicitações de recursos de trabalhos de maior prioridade, liberando a computação para cargas de trabalho críticas. Quando os recursos são liberados fora dos períodos de pico, os trabalhos de treinamento elásticos aumentam automaticamente para acelerar o treinamento e, em seguida, diminuem quando cargas de trabalho de maior prioridade precisam de recursos novamente. 

O treinamento elástico é construído com base no operador de HyperPod treinamento e integra os seguintes componentes:
+ [Amazon EKS para orquestração do 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) para enfileiramento, priorização e agendamento de trabalhos
+ [PyTorch Ponto de verificação distribuído (DCP)](https://docs.pytorch.org/docs/stable/distributed.checkpoint.html) para gerenciamento escalável de estados e pontos de verificação, como DCP

**Estruturas suportadas**
+ PyTorch com dados paralelos distribuídos (DDP) e dados paralelos totalmente fragmentados (FSDP)
+ PyTorch Ponto de verificação distribuído (DCP)

## Pré-requisitos
<a name="sagemaker-eks-elastic-prereqs"></a>

### SageMaker HyperPod Cluster EKS
<a name="sagemaker-eks-elastic-hyperpod-cluster"></a>

Você deve ter um SageMaker HyperPod cluster em execução com a orquestração do Amazon EKS. Para obter informações sobre a criação de um cluster HyperPod EKS, consulte:
+ [Comece a usar o Amazon EKS em SageMaker HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-prerequisites.html)
+ [Criação de um SageMaker HyperPod cluster com a orquestração do Amazon EKS](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-create-cluster.html)

### SageMaker HyperPod Operador de treinamento
<a name="sagemaker-eks-elastic-training-operator"></a>

O Elastic Training é suportado no Training Operator v. 1.2 e superior.

Para instalar o operador de treinamento como complemento EKS, consulte: [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)

### (Recomendado) Instalar e configurar o Task Governance e o Kueue
<a name="sagemaker-eks-elastic-task-governance"></a>

Recomendamos instalar e configurar o Kueue por meio da [Governança de HyperPod Tarefas](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-operate-console-ui-governance.html) para especificar as prioridades da carga de trabalho com treinamento elástico. O Kueue fornece um gerenciamento mais forte da carga de trabalho com filas, priorização, agendamento de grupos, rastreamento de recursos e preempção elegante, que são essenciais para operar em ambientes de treinamento com vários inquilinos.
+ O agendamento de grupos garante que todos os grupos necessários para um trabalho de treinamento comecem juntos. Isso evita situações em que alguns pods iniciam enquanto outros permanecem pendentes, o que pode causar desperdício de recursos.
+ A preempção suave permite que trabalhos elásticos de menor prioridade forneçam recursos para cargas de trabalho de maior prioridade. As tarefas elásticas podem ser reduzidas normalmente sem serem removidas à força, melhorando a estabilidade geral do cluster.

Recomendamos configurar os seguintes componentes do Kueue:
+ PriorityClasses para definir a importância relativa do trabalho
+ ClusterQueues para gerenciar o compartilhamento global de recursos e as cotas entre equipes ou cargas de trabalho
+ LocalQueues para rotear trabalhos de namespaces individuais para o apropriado ClusterQueue

Para configurações mais avançadas, você também pode incorporar:
+ Políticas de compartilhamento justo para equilibrar o uso de recursos em várias equipes
+ Regras de preempção personalizadas para impor controles organizacionais SLAs ou de custos

Por favor, consulte:
+ [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)
+ [Documentação do Kueue](https://kueue.sigs.k8s.io/)

### (Recomendado) Configurar namespaces de usuário e cotas de recursos
<a name="sagemaker-eks-elastic-namespaces-quotas"></a>

Ao implantar esse recurso no Amazon EKS, recomendamos aplicar um conjunto de configurações básicas em nível de cluster para garantir isolamento, equidade de recursos e consistência operacional entre as equipes.

#### Configuração de namespace e acesso
<a name="sagemaker-eks-elastic-namespace-access"></a>

Organize suas cargas de trabalho usando namespaces separados para cada equipe ou projeto. Isso permite que você aplique isolamento e governança refinados. Também recomendamos configurar o mapeamento RBAC AWS do IAM para o Kubernetes para associar usuários ou funções individuais do IAM aos namespaces correspondentes.

As principais práticas incluem:
+ Mapeie funções do IAM para contas de serviço do Kubernetes usando funções do IAM para contas de serviço (IRSA) quando as cargas de trabalho precisarem de permissões. AWS [https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html)
+ Aplique políticas de RBAC para restringir os usuários somente aos namespaces designados (por exemplo,`Role`/`RoleBinding`em vez de permissões em todo o cluster).

#### Restrições de recursos e computação
<a name="sagemaker-eks-elastic-resource-constraints"></a>

Para evitar a contenção de recursos e garantir um agendamento justo entre as equipes, aplique cotas e limites no nível do namespace:
+ ResourceQuotas para limitar a contagem agregada de CPU, memória, armazenamento e objetos (pods PVCs, serviços etc.).
+ LimitRanges para impor limites padrão e máximos de CPU e memória por pod ou por contêiner.
+ PodDisruptionBudgets (PDBs) conforme necessário para definir as expectativas de resiliência.
+ Opcional: restrições de enfileiramento em nível de namespace (por exemplo, via Task Governance ou Kueue) para evitar que os usuários enviem trabalhos em excesso.

Essas restrições ajudam a manter a estabilidade do cluster e oferecem suporte ao agendamento previsível para cargas de trabalho de treinamento distribuídas.

#### Ajuste de escala automático
<a name="sagemaker-eks-elastic-autoscaling"></a>

SageMaker HyperPod no EKS oferece suporte ao escalonamento automático de clusters por meio do Karpenter. Quando o Karpenter ou um provisionador de recursos similar é usado junto com o treinamento elástico, o cluster e o trabalho de treinamento elástico podem ser ampliados automaticamente após o envio de um trabalho de treinamento elástico. Isso ocorre porque o operador de treinamento elástico adota uma abordagem gananciosa, sempre solicita mais do que os recursos computacionais disponíveis até atingir o limite máximo definido pelo trabalho. Isso ocorre porque o operador de treinamento elástico solicita continuamente recursos adicionais como parte da execução elástica do trabalho, o que pode acionar o provisionamento de nós. Provisionadores contínuos de recursos, como o Karpenter, atenderão às solicitações ampliando o cluster de computação.

Para manter esses aumentos de escala previsíveis e sob controle, recomendamos configurar o nível do namespace nos namespaces ResourceQuotas em que os trabalhos de treinamento elásticos são criados. ResourceQuotas ajudam a limitar o máximo de recursos que os trabalhos podem solicitar, evitando o crescimento ilimitado do cluster e, ao mesmo tempo, permitindo um comportamento elástico dentro de limites definidos.

Por exemplo, a ResourceQuota para 8 instâncias ml.p5.48xlarge terá o seguinte 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"
```

## Crie um contêiner de treinamento
<a name="sagemaker-eks-elastic-build-container"></a>

HyperPod [o operador de treinamento trabalha com um PyTorch lançador personalizado fornecido por meio do pacote python do HyperPod Elastic Agent (https://www.piwheels). org/project/hyperpod-agente elástico/](https://www.piwheels.org/project/hyperpod-elastic-agent/)). Os clientes devem instalar o agente elástico e substituir o `torchrun` comando por `hyperpodrun` para iniciar o treinamento. Para obter mais detalhes, consulte:

[https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker- eks-operator-install .html\$1 sagemaker-eks-operator-elastic -agente](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator-install.html#sagemaker-eks-operator-elastic-agent)

Um exemplo de contêiner de treinamento:

```
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ção do código de treinamento
<a name="sagemaker-eks-elastic-training-code"></a>

SageMaker HyperPod fornece um conjunto de receitas que já estão configuradas para serem executadas com o Elastic Policy.

Para habilitar o treinamento elástico para scripts de PyTorch treinamento personalizados, você precisará fazer pequenas modificações em seu ciclo de treinamento. Este guia mostra as modificações necessárias para garantir que seu trabalho de treinamento responda aos eventos de escalabilidade elástica que ocorrem quando a disponibilidade dos recursos computacionais muda. Durante todos os eventos elásticos (por exemplo, os nós estão disponíveis ou os nós são preemptados), o trabalho de treinamento recebe um sinal de evento elástico que é usado para coordenar um desligamento normal salvando um ponto de verificação e retomando o treinamento reiniciando desse ponto de verificação salvo com uma nova configuração mundial. Para habilitar o treinamento elástico com scripts de treinamento personalizados, você precisa:

### Detecte eventos de escalabilidade elástica
<a name="sagemaker-eks-elastic-detect-events"></a>

Em seu ciclo de treinamento, verifique se há eventos elásticos durante cada iteração:

```
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
```

### Implemente o salvamento do ponto de verificação e o carregamento do ponto de verificação
<a name="sagemaker-eks-elastic-checkpoint-implementation"></a>

Nota: Recomendamos usar o PyTorch Distributed Checkpoint (DCP) para salvar os estados do modelo e do otimizador, pois o DCP suporta a retomada a partir de um ponto de verificação com tamanhos de mundo diferentes. Outros formatos de ponto de verificação podem não suportar o carregamento de pontos de verificação em tamanhos de mundo diferentes. Nesse caso, você precisará implementar uma lógica personalizada para lidar com mudanças dinâmicas no tamanho do mundo.

```
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
```

### (Opcional) Use carregadores de dados com estado
<a name="sagemaker-eks-elastic-stateful-dataloaders"></a>

Se você estiver treinando apenas para uma única época (ou seja, uma única passagem por todo o conjunto de dados), o modelo deverá ver cada amostra de dados exatamente uma vez. Se o trabalho de treinamento for interrompido no meio da época e retomado com um tamanho de mundo diferente, as amostras de dados processadas anteriormente serão repetidas se o estado do carregador de dados não persistir. Um carregador de dados com estado evita isso salvando e restaurando a posição do carregador de dados, garantindo que as execuções retomadas continuem a partir do evento de escalonamento elástico sem reprocessar nenhuma amostra. Recomendamos o uso [StatefulDataLoader](https://meta-pytorch.org/data/main/torchdata.stateful_dataloader.html), que substitui imediatamente essas adições `state_dict()` e `load_state_dict()` métodos, permitindo a verificação intermediária do processo de carregamento de dados. `torch.utils.data.DataLoader`

## Envio de trabalhos de treinamento elástico
<a name="sagemaker-eks-elastic-submit-job"></a>

[HyperPod operador de treinamento](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-eks-operator-usage.html) define um novo tipo de recurso -`hyperpodpytorchjob`. O treinamento elástico estende esse tipo de recurso e adiciona os campos destacados abaixo:

```
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)
      ...
```

### Uso do kubectl
<a name="sagemaker-eks-elastic-kubectl-apply"></a>

Posteriormente, você pode iniciar o treinamento elástico com o comando a seguir.

```
kubectl apply -f elastic-training-job.yaml
```

### Usando SageMaker receitas
<a name="sagemaker-eks-elastic-sagemaker-recipes"></a>

Os trabalhos de treinamento da Elastic podem ser iniciados por meio de [SageMaker HyperPod receitas](https://github.com/aws/sagemaker-hyperpod-recipes).

**nota**  
Incluímos **46** receitas elásticas para trabalhos de **SFO** e **DPO** no Hyperpod Recipe. Os usuários podem iniciar esses trabalhos com uma alteração de linha em cima do script de inicialização estático existente:  
`++recipes.elastic_policy.is_elastic=true`

Além das receitas estáticas, as receitas elásticas adicionam os seguintes campos para definir os comportamentos elásticos:

#### Política elástica
<a name="sagemaker-eks-elastic-policy"></a>

O `elastic_policy` campo define a configuração do nível de trabalho para o trabalho de treinamento elástico, ele tem as seguintes configurações:
+ `is_elastic`: `bool` - se esse trabalho for um trabalho elástico
+ `min_nodes`: `int` - o número mínimo de nós usados para treinamento elástico
+ `max_nodes`: `int` - o número máximo de nós usados para treinamento elástico
+ `replica_increment_step`: `int` - incremente a quantidade de pods em grupos de tamanho fixo. Esse campo é mutuamente exclusivo do que definiremos posteriormente. `scale_config`
+ `use_graceful_shutdown`: `bool` - se usar o desligamento normal durante eventos de escalonamento, use como padrão. `true`
+ `scaling_timeout`: `int` - o tempo de espera em segundos durante o evento de escalonamento antes do tempo limite
+ `graceful_shutdown_timeout`: `int` - o tempo de espera para um desligamento normal

A seguir está um exemplo de definição desse campo, que você também pode encontrar no repositório Hyperpod Recipe na receita: `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
```

#### Configuração de escala
<a name="sagemaker-eks-elastic-scale-config"></a>

O `scale_config` campo define as configurações principais em cada escala específica. É um dicionário de valores-chave, em que a chave é um número inteiro que representa a escala alvo e o valor é um subconjunto da receita básica. Em `<key>` grande escala, usamos o `<value>` para atualizar as configurações específicas na base/static receita. Veja a seguir um exemplo desse 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
 ...
```

A configuração acima define a configuração de treinamento nas escalas 2 e 3. Em ambos os casos, usamos a taxa de aprendizado`4e-4`, o tamanho do lote de`128`. Mas na escala 2, usamos a `micro_train_batch_size` de 8, enquanto na escala 3, usamos um tamanho de lote desigual, pois o tamanho do lote do trem não pode ser dividido uniformemente em 3 nós.

**Tamanho de lote desigual**

Esse é um campo para definir o comportamento de distribuição do lote quando o tamanho global do lote não pode ser dividido uniformemente pelo número de classificações. Não é específico para treinamento elástico, mas é um facilitador para uma maior granularidade de escalabilidade.
+ `use_uneven_batch`: `bool` - se usar distribuição desigual de lotes
+ `num_dp_groups_with_small_batch_size`: `int` - na distribuição desigual de lotes, algumas classificações usam um tamanho de lote local menor, enquanto outras usam um tamanho de lote maior. O tamanho global do lote deve ser igual 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` - esse valor é o menor tamanho do lote local
+ `large_local_batch_size`: `int` - esse valor é o maior tamanho do lote local

**Monitore o treinamento em MLFlow**

Os trabalhos de receitas do Hyperpod apoiam a observabilidade por meio de. MLFlow Os usuários podem especificar MLFlow configurações na receita:

```
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>"
```

[Essas configurações são mapeadas para a configuração correspondenteMLFlow .](https://mlflow.org/docs/latest/ml/tracking/tracking-api/#setup--configuration) Veja a seguir um exemplo de MLflow painel para um trabalho de treinamento elástico.

![\[Veja a seguir um exemplo de MLflow painel para um trabalho de treinamento elástico.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/hyperpod/hyperpod-elastic-sample-dashboard.png)


Depois de definir as receitas elásticas, podemos usar os scripts do lançador, como `launcher_scripts/llama/run_llmft_llama3_1_8b_instruct_seq4k_gpu_sft_lora.sh` para iniciar um trabalho de treinamento elástico. Isso é semelhante ao lançamento de um trabalho estático usando a receita do Hyperpod.

**nota**  
O trabalho de treinamento elástico do suporte de receitas é retomado automaticamente a partir dos pontos de verificação mais recentes. No entanto, por padrão, cada reinicialização cria um novo diretório de treinamento. Para permitir a retomada correta do último ponto de verificação, precisamos garantir que o mesmo diretório de treinamento seja reutilizado. Isso pode ser feito definindo  
`recipes.training_config.training_args.override_training_dir=true`

## Exemplos de casos de uso e limitações
<a name="sagemaker-eks-elastic-use-cases"></a>

### Aumente a escala quando houver mais recursos disponíveis
<a name="sagemaker-eks-elastic-scale-up"></a>

Quando mais recursos se tornam disponíveis no cluster (por exemplo, outras cargas de trabalho são concluídas). Durante esse evento, o controlador de treinamento ampliará automaticamente o trabalho de treinamento. Esse comportamento é explicado abaixo.

Para simular uma situação em que mais recursos se tornam disponíveis, podemos enviar um trabalho de alta prioridade e, em seguida, liberar recursos de volta excluindo o trabalho de alta prioridade.

```
# 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 esperado:
+ O operador de treinamento cria uma carga de trabalho Kueue Quando um trabalho de treinamento elástico solicita uma mudança no tamanho do mundo, o operador de treinamento gera um objeto Kueue Workload adicional representando os novos requisitos de recursos.
+ Kueue admite a carga de trabalho Kueue avalia a solicitação com base nos recursos, prioridades e políticas de filas disponíveis. Uma vez aprovada, a carga horária é admitida.
+ O operador de treinamento cria as cápsulas adicionais. Após a admissão, o operador lança as cápsulas adicionais necessárias para atingir o novo tamanho mundial.
+ Quando as novas cápsulas ficam prontas, o operador de treinamento envia um sinal especial de evento elástico para o script de treinamento.
+ O trabalho de treinamento executa um checkpoint, para se preparar para um desligamento normal. O processo de treinamento verifica periodicamente o sinal de evento elástico chamando a função **elastic\$1event\$1detected** (). Uma vez detectado, ele inicia um ponto de verificação. Depois que o ponto de verificação for concluído com sucesso, o processo de treinamento será encerrado de forma limpa.
+ O operador de treinamento reinicia o trabalho com o novo tamanho do mundo O operador espera que todos os processos saiam e reinicia o trabalho de treinamento usando o tamanho do mundo atualizado e o ponto de verificação mais recente.

**Nota:** Quando o Kueue não é usado, o operador de treinamento pula as duas primeiras etapas. Ele imediatamente tenta criar os pods adicionais necessários para o novo tamanho do mundo. Se recursos suficientes não estiverem disponíveis no cluster, esses pods permanecerão em um estado **pendente** até que a capacidade esteja disponível.

![\[O diagrama ilustra o redimensionamento e o cronograma dos recursos.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/hyperpod/hyperpod-elastic-resize-timeline.png)


### Preempção por trabalho de alta prioridade
<a name="sagemaker-eks-elastic-preemption"></a>

Os trabalhos elásticos podem ser reduzidos automaticamente quando um trabalho de alta prioridade precisa de recursos. Para simular esse comportamento, você pode enviar um trabalho de treinamento elástico, que usa o número máximo de recursos disponíveis desde o início do treinamento, depois enviar um trabalho de alta prioridade e observar o comportamento de preempção.

```
# 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 um trabalho de alta prioridade precisa de recursos, a Kueue pode se antecipar às cargas de trabalho do Elastic Training de baixa prioridade (pode haver mais de um objeto de carga de trabalho associado ao trabalho do Elastic Training). O processo de preempção segue esta sequência:

1. Um trabalho de alta prioridade é enviado. O trabalho cria uma nova carga de trabalho Kueue, mas a carga de trabalho não pode ser admitida devido à insuficiência de recursos do cluster.

1. Kueue se antecipa a uma das cargas de trabalho do Elastic Training. Os trabalhos elásticos podem ter várias cargas de trabalho ativas (uma por configuração de tamanho mundial). O Kueue seleciona um para antecipar com base nas políticas de prioridade e fila.

1. O operador de treinamento envia um sinal de evento elástico. Depois que a preempção é acionada, o operador de treinamento notifica o processo de treinamento em execução para que ele pare normalmente.

1. O processo de treinamento realiza o checkpoint. O trabalho de treinamento verifica periodicamente os sinais elásticos de eventos. Quando detectado, ele inicia um ponto de verificação coordenado para preservar o progresso antes de ser desligado.

1. o operador de treinamento limpa cápsulas e cargas de trabalho. O operador aguarda a conclusão do ponto de verificação e, em seguida, exclui os módulos de treinamento que faziam parte da carga de trabalho antecipada. Ele também remove o objeto de carga de trabalho correspondente do Kueue.

1. A carga de trabalho de alta prioridade é admitida. Com os recursos liberados, Kueue admite o trabalho de alta prioridade, permitindo que ele inicie a execução.  
![\[Cronograma de preempção para cargas de trabalho de treinamento elásticas.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/hyperpod/hyperpod-elastic-preemption-timeline.png)

A preempção pode fazer com que todo o trabalho de treinamento seja pausado, o que pode não ser desejável para todos os fluxos de trabalho. Para evitar a suspensão total do trabalho e, ao mesmo tempo, permitir o escalonamento elástico, os clientes podem configurar dois níveis de prioridade diferentes no mesmo trabalho de treinamento definindo duas seções: `replicaSpec`
+ Uma réplica primária (fixa) com prioridade normal ou alta
  + Contém o número mínimo necessário de réplicas necessárias para manter o trabalho de treinamento em execução.
  + Usa um valor superior PriorityClass, garantindo que essas réplicas *nunca sejam substituídas*.
  + Mantém o progresso da linha de base mesmo quando o cluster está sob pressão de recursos.
+ Um ReplicaSpec elástico (escalável) com menor prioridade
  + Contém as réplicas opcionais adicionais que fornecem computação extra durante o escalonamento elástico.
  + Usa um menor PriorityClass, permitindo que a Kueue antecipe essas réplicas quando trabalhos de maior prioridade precisarem de recursos.
  + Garante que apenas a parte elástica seja recuperada, enquanto o treinamento básico continua ininterrupto.

Essa configuração permite a preempção parcial, em que somente a capacidade elástica é recuperada, mantendo a continuidade do treinamento e, ao mesmo tempo, apoiando o compartilhamento justo de recursos em ambientes multilocatários. Exemplo:

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

### Lidando com o despejo do pod, falhas do pod e degradação do hardware:
<a name="sagemaker-eks-elastic-pod-eviction"></a>

O operador HyperPod de treinamento inclui mecanismos integrados para recuperar o processo de treinamento quando ele é interrompido inesperadamente. As interrupções podem ocorrer por vários motivos, como falhas no código de treinamento, despejos de pods, falhas nos nós, degradação do hardware e outros problemas de tempo de execução.

Quando isso acontece, o operador tenta automaticamente recriar os pods afetados e retomar o treinamento a partir do ponto de verificação mais recente. Se a recuperação não for possível imediatamente, por exemplo, devido à capacidade ociosa insuficiente, o operador pode continuar progredindo reduzindo temporariamente o tamanho do mundo e reduzindo o trabalho de treinamento elástico.

Quando um trabalho de treinamento elástico falha ou perde réplicas, o sistema se comporta da seguinte maneira:
+ Fase de recuperação (usando nós sobressalentes) O Training Controller `faultyScaleDownTimeoutInSeconds` espera até que os recursos estejam disponíveis e tenta recuperar as réplicas com falha reimplantando os pods na capacidade disponível.
+ Diminuição elástica Se a recuperação não for possível dentro da janela de tempo limite, o operador de treinamento reduz o trabalho para um tamanho mundial menor (se a política elástica do trabalho permitir). Em seguida, o treinamento é retomado com menos réplicas.
+ Aumento de escala elástico Quando recursos adicionais são disponibilizados novamente, o operador escala automaticamente o trabalho de treinamento de volta ao tamanho mundial preferido.

Esse mecanismo garante que o treinamento possa continuar com o mínimo de tempo de inatividade, mesmo sob pressão de recursos ou falhas parciais na infraestrutura, enquanto ainda aproveita o escalonamento elástico.

### Use treinamento elástico com outros HyperPod recursos
<a name="sagemaker-eks-elastic-other-features"></a>

Atualmente, o treinamento elástico não oferece suporte a recursos de treinamento sem ponto de verificação, pontos de verificação HyperPod gerenciados em camadas ou instâncias spot.

**nota**  
Coletamos determinadas métricas operacionais rotineiras agregadas e anônimas para fornecer disponibilidade de serviços essenciais. A criação dessas métricas é totalmente automatizada e não envolve a revisão humana da carga de trabalho de treinamento do modelo subjacente. Essas métricas estão relacionadas a um trabalho e às operações de escalabilidade, ao gerenciamento de recursos e à funcionalidade essencial do serviço.

# Observabilidade para o SageMaker HyperPod cluster da Amazon orquestrada pelo Amazon EKS
<a name="sagemaker-hyperpod-eks-cluster-observability"></a>

Para obter uma observabilidade abrangente em seus recursos de cluster e componentes de software da Amazon SageMaker HyperPod (SageMaker HyperPod), integre o cluster com o [Amazon CloudWatch Container Insights, o 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 o [Amazon](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html) Managed Grafana. Essas ferramentas oferecem visibilidade sobre a integridade do cluster, as métricas de desempenho e a utilização de recursos.

A integração com o Amazon Managed Service for Prometheus permite a exportação de métricas relacionadas aos HyperPod seus recursos de cluster, fornecendo informações sobre seu desempenho, utilização e integridade. A integração com o Amazon Managed Grafana permite a visualização dessas métricas por meio de vários painéis do Grafana que oferecem uma interface intuitiva para monitorar e analisar o comportamento do cluster. Ao aproveitar esses serviços, você obtém uma visão centralizada e unificada do seu HyperPod cluster, facilitando o monitoramento proativo, a solução de problemas e a otimização de suas cargas de trabalho de treinamento distribuídas.

**nota**  
Enquanto CloudWatch o Amazon Managed Service for Prometheus e o Amazon Managed Grafana se concentram em métricas operacionais (por exemplo, integridade do sistema, desempenho do trabalho de treinamento) SageMaker HyperPod , os relatórios de uso [complementam a governança de tarefas](sagemaker-hyperpod-eks-operate-console-ui-governance.md) para fornecer insights financeiros e de responsabilidade de recursos. Esses relatórios monitoram:  
Utilização da computação (GPU/CPU/Neuron Core hours) across namespaces/teams
A atribuição de custos para recursos alocados e recursos tomados emprestados.
As tendências históricas (até 180 dias) para auditoria e otimização.
Para obter mais informações sobre como configurar e gerar relatórios de uso, consulte [Relatar o uso de computação em HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-usage-reporting.html). 

**dica**  
Para encontrar exemplos e soluções práticas, consulte também a seção [Observabilidade](https://catalog.us-east-1.prod.workshops.aws/workshops/2433d39e-ccfe-4c00-9d3d-9917b729258e/en-US/06-observability) [no SageMaker HyperPod workshop Amazon EKS Support](https://catalog.us-east-1.prod.workshops.aws/workshops/2433d39e-ccfe-4c00-9d3d-9917b729258e).

Continue com os tópicos a seguir para configurar a observabilidade SageMaker HyperPod do cluster.

**Topics**
+ [Observabilidade do modelo para trabalhos de treinamento em SageMaker HyperPod clusters orquestrados pelo Amazon EKS](sagemaker-hyperpod-eks-cluster-observability-model.md)
+ [Observabilidade de clusters e tarefas](sagemaker-hyperpod-eks-cluster-observability-cluster.md)

# Observabilidade do modelo para trabalhos de treinamento em SageMaker HyperPod clusters orquestrados pelo Amazon EKS
<a name="sagemaker-hyperpod-eks-cluster-observability-model"></a>

SageMaker HyperPod clusters orquestrados com o Amazon EKS podem se integrar ao [MLflow aplicativo no Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow.html). Os administradores do cluster configuram o MLflow servidor e o conectam aos SageMaker HyperPod clusters. Os cientistas de dados podem obter informações sobre o modelo.

**Para configurar um MLflow servidor usando a AWS CLI**

Um administrador de cluster deve criar um servidor MLflow de rastreamento.

1. Crie um servidor MLflow de rastreamento de SageMaker IA seguindo as instruções em [Criar um servidor de rastreamento usando a AWS CLI](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-cli.html#mlflow-create-tracking-server-cli-infra-setup).

1. Certifique-se de que a [https://docs.aws.amazon.com/eks/latest/APIReference/API_auth_AssumeRoleForPodIdentity.html](https://docs.aws.amazon.com/eks/latest/APIReference/API_auth_AssumeRoleForPodIdentity.html)permissão exista na função de execução do IAM para SageMaker HyperPod.

1. Se o complemento `eks-pod-identity-agent` ainda não estiver instalado no cluster EKS, instale o complemento no cluster EKS.

   ```
   aws eks create-addon \
       --cluster-name <eks_cluster_name> \
       --addon-name eks-pod-identity-agent \
       --addon-version vx.y.z-eksbuild.1
   ```

1. Crie um `trust-relationship.json` arquivo para uma nova função para o Pod chamar 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
   ```

   Execute o comando a seguir para criar um perfil e anexar a relação de confiança.

   ```
   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. Crie a política a seguir que conceda acesso ao Pod para chamar todas as operações `sagemaker-mlflow` e colocar artefatos do modelo no S3. A permissão do S3 já existe no servidor de rastreamento, mas se os artefatos do modelo forem muito grandes, uma chamada direta para o s3 será feita a partir do MLflow código para fazer o upload dos artefatos.

   ```
   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**  
Eles ARNs são os do MLflow servidor e do bucket S3 configurados com o MLflow servidor durante o servidor que você criou, seguindo as instruções [Configurar a MLflow infraestrutura](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-create-tracking-server-cli.html#mlflow-create-tracking-server-cli-infra-setup).

1. Anexe a `mlflow-metrics-emit-policy` política ao `hyperpod-mlflow-role` uso do documento de política salvo na etapa anterior.

   ```
   aws iam put-role-policy \
     --role-name hyperpod-mlflow-role \
     --policy-name mlflow-metrics-emit-policy \
     --policy-document file://hyperpod-mlflow-policy.json
   ```

1. Crie uma conta de serviço do Kubernetes para que o Pod acesse o servidor. MLflow 

   ```
   cat >mlflow-service-account.yaml <<EOF
   apiVersion: v1
   kind: ServiceAccount
   metadata:
     name: mlflow-service-account
     namespace: kubeflow
   EOF
   ```

   Execute o comando a seguir para aplicar as alterações no cluster EKS.

   ```
   kubectl apply -f mlflow-service-account.yaml
   ```

1. Crie uma associação de identidade de Pods.

   ```
   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
   ```

**Para coletar métricas de trabalhos de treinamento para o MLflow servidor**

Os cientistas de dados precisam configurar o script de treinamento e a imagem do docker para emitir métricas para o servidor. MLflow 

1. Adicione as linhas a seguir no início do seu script de treinamento.

   ```
   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. Crie uma imagem do Docker com o script de treinamento e envie para o Amazon ECR. Obtenha o ARN do contêiner do ECR. Para obter mais informações sobre como criar e enviar uma imagem do Docker, consulte [Como enviar uma imagem do Docker](https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-ecr-image.html) no *Guia do usuário do ECR*.
**dica**  
Certifique-se de adicionar a instalação dos pacotes mlflow e sagemaker-mlflow no arquivo Docker. Para saber mais sobre a instalação dos pacotes, os requisitos e as versões compatíveis dos pacotes, consulte [Instalação MLflow e o MLflow plug-in SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/mlflow-track-experiments.html#mlflow-track-experiments-install-plugin).

1. Adicione uma conta de serviço aos pods de tarefas de treinamento para dar acesso ao `hyperpod-mlflow-role` a eles. Isso permite que os Pods MLflow APIs liguem. Execute o seguinte modelo de envio de tarefas da SageMaker HyperPod CLI. Crie isso com o nome do arquivo `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. Inicie o trabalho usando o arquivo YAML da seguinte maneira:

   ```
   hyperpod start-job --config-file /path/to/mlflow-test.yaml
   ```

1. Gere uma URL pré-assinada para o servidor MLflow de rastreamento. Você pode abrir o link no seu navegador e começar a monitorar seu trabalho de treinamento.

   ```
   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
   ```

# Observabilidade de clusters e tarefas
<a name="sagemaker-hyperpod-eks-cluster-observability-cluster"></a>

Há duas opções para monitorar SageMaker HyperPod clusters:

**O complemento SageMaker HyperPod de observabilidade** — SageMaker HyperPod fornece um out-of-the-box painel abrangente que fornece informações sobre as tarefas de desenvolvimento do modelo básico (FM) e os recursos do cluster. Essa solução de observabilidade unificada publica automaticamente as principais métricas no Amazon Managed Service for Prometheus e exibe-as nos painéis do Amazon Managed Grafana. Os painéis são otimizados especificamente para o desenvolvimento de FMs e abordam em detalhes a integridade de hardware, a utilização de recursos e o desempenho em nível de tarefa. Com esse complemento, você pode consolidar dados de integridade e desempenho da NVIDIA DCGM, exportadores de nós Kubernetes em nível de instância, adaptador Elastic Fabric, sistemas de arquivos integrados, Kubernetes, Kueue e operadores de tarefas. APIs SageMaker HyperPod 

**Amazon CloudWatch Insights** — O Amazon CloudWatch Insights coleta métricas para recursos computacionais, como CPU, memória, disco e rede. O Container Insights também fornece informações de diagnóstico, como falhas de reinicialização de contêiner, para ajudar a isolar problemas e resolvê-los rapidamente. Você também pode definir CloudWatch alarmes nas métricas que o Container Insights coleta.

**Topics**
+ [SageMaker HyperPod Observabilidade da Amazon com Amazon Managed Grafana e Amazon Managed Service para Prometheus](sagemaker-hyperpod-observability-addon.md)
+ [Observabilidade com a Amazon CloudWatch](sagemaker-hyperpod-eks-cluster-observability-cluster-cloudwatch-ci.md)

# SageMaker HyperPod Observabilidade da Amazon com Amazon Managed Grafana e Amazon Managed Service para Prometheus
<a name="sagemaker-hyperpod-observability-addon"></a>

A Amazon SageMaker HyperPod (SageMaker HyperPod) fornece um out-of-the-box painel abrangente que fornece informações sobre as tarefas de desenvolvimento do modelo básico (FM) e os recursos do cluster. Essa solução de observabilidade unificada publica automaticamente as principais métricas no Amazon Managed Service for Prometheus e exibe-as nos painéis do Amazon Managed Grafana. Os painéis são otimizados especificamente para o desenvolvimento de FMs e abordam em detalhes a integridade de hardware, a utilização de recursos e o desempenho em nível de tarefa. Com esse complemento, você pode consolidar dados de integridade e desempenho da NVIDIA DCGM, exportadores de nós Kubernetes em nível de instância, adaptador Elastic Fabric, sistemas de arquivos integrados, Kubernetes, Kueue e operadores de tarefas. APIs SageMaker HyperPod 

## Suporte ao Restricted Instance Group (RIG)
<a name="hyperpod-observability-addon-rig-support"></a>

O complemento de observabilidade também oferece suporte a clusters que contêm grupos de instâncias restritas. Nos clusters RIG, o complemento adapta automaticamente sua estratégia de implantação para atender às restrições de isolamento e segurança da rede dos nós restritos. DaemonSet componentes (exportador de nós, exportador DCGM, exportador EFA, monitor Neuron e coletor de nós) são executados em nós padrão e restritos. Os componentes de implantação (coletor central, Kube State Metrics e Training Metrics Agent) são programados com uma lógica que reconhece limites para respeitar o isolamento da rede entre grupos de instâncias. A coleta de registros de contêineres com o Fluent Bit não está disponível em nós restritos.

Para obter informações sobre como configurar o complemento em clusters com grupos de instâncias restritas, consulte[Configurando o complemento de SageMaker HyperPod observabilidade](hyperpod-observability-addon-setup.md).

**Topics**
+ [Suporte ao Restricted Instance Group (RIG)](#hyperpod-observability-addon-rig-support)
+ [Configurando o complemento de SageMaker HyperPod observabilidade](hyperpod-observability-addon-setup.md)
+ [Painéis de SageMaker HyperPod observabilidade da Amazon](hyperpod-observability-addon-viewing-dashboards.md)
+ [Explorando métricas de SageMaker HyperPod cluster no Amazon Managed Grafana](hyperpod-observability-addon-exploring-metrics.md)
+ [Personalização de métricas SageMaker HyperPod de cluster, painéis e alertas](hyperpod-observability-addon-customizing.md)
+ [Criação de métricas SageMaker HyperPod de cluster personalizadas](hyperpod-observability-addon-custom-metrics.md)
+ [SageMaker HyperPod métricas de cluster](hyperpod-observability-cluster-metrics.md)
+ [Alertas pré-configurados](hyperpod-observability-addon-alerts.md)
+ [Solução de problemas do complemento de SageMaker HyperPod observabilidade da Amazon](hyperpod-observability-addon-troubleshooting.md)

# Configurando o complemento de SageMaker HyperPod observabilidade
<a name="hyperpod-observability-addon-setup"></a>

A lista a seguir descreve os pré-requisitos para configurar o complemento de observabilidade.

Para que as métricas do seu cluster Amazon SageMaker HyperPod (SageMaker HyperPod) sejam enviadas para um espaço de trabalho do Amazon Managed Service for Prometheus e, opcionalmente, visualizá-las no Amazon Managed Grafana, primeiro anexe as seguintes políticas e permissões gerenciadas à sua função de console.
+ Para usar o Amazon Managed Grafana, habilite Centro de Identidade do AWS IAM (IAM Identity Center) em um local onde o Região da AWS Amazon Managed Grafana esteja disponível. Para obter instruções detalhadas, consulte [Getting started with IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) no *Guia do usuário do Centro de Identidade do AWS IAM *. Para ver uma lista de Regiões da AWS onde o Amazon Managed Grafana está disponível, consulte [Supported Regions](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html#AMG-supported-Regions) no *Guia do usuário do Amazon Managed Grafana*.
+ Crie pelo menos um usuário no Centro de Identidade do IAM.
+ Você deve instalar o complemento [Agente de Identidade de Pods do Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/workloads-add-ons-available-eks.html#add-ons-pod-id) em seu cluster do Amazon EKS. O complemento Amazon EKS Pod Identity Agent possibilita que o complemento de SageMaker HyperPod observabilidade obtenha as credenciais para interagir com o Amazon Managed Service for Prometheus and Logs. CloudWatch Para verificar se seu cluster do Amazon EKS tem o complemento, acesse o console do Amazon EKS e verifique a guia **Complementos** do seu cluster. Para ter informações sobre como instalar o complemento se ele ainda não estiver instalado, consulte [Criar complemento (Console de gerenciamento da AWS)](https://docs.aws.amazon.com/eks/latest/userguide/creating-an-add-on.html#_create_add_on_console) no *Guia do usuário do Amazon EKS*.
**nota**  
O Amazon EKS Pod Identity Agent é necessário para grupos de instâncias padrão. Para grupos de instâncias restritas (RIG), o Pod Identity Agent não está disponível devido a restrições de isolamento da rede. A função IAM de execução do grupo de instâncias do cluster é usada para interagir com o Amazon Managed Service for Prometheus. Para obter informações sobre como configurar essa função, consulte[Pré-requisitos adicionais para grupos de instâncias restritas](#hyperpod-observability-addon-rig-prerequisites).
+ Certifique-se de ter pelo menos um nó em seu SageMaker HyperPod cluster antes de instalar o complemento SageMaker HyperPod de observabilidade. O menor tipo de instância do Amazon EC2 que funciona nesse caso é `4xlarge`. Esse requisito mínimo de tamanho de nó garante que o nó possa acomodar todos os pods que o complemento de SageMaker HyperPod observabilidade cria junto com quaisquer outros pods já em execução no cluster.
+ Adicione as políticas e permissões a seguir ao seu perfil.
  + [AWS política gerenciada: AmazonSageMakerHyperPodObservabilityAdminAccess](security-iam-awsmanpol-AmazonSageMakerHyperPodObservabilityAdminAccess.md)
  + [AWS política gerenciada: AWSGrafana WorkspacePermissionManagement V2](https://docs.aws.amazon.com/grafana/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-AWSGrafanaWorkspacePermissionManagementV2)
  + [AWS política gerenciada: AmazonSageMakerFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonSageMakerFullAccess.html)
  + Permissões adicionais para configurar os perfis do IAM necessários para acesso complementar ao Amazon Managed Grafana e ao 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*"
                ]
            }
        ]
    }
    ```

------
  + Permissões adicionais necessárias para gerenciar usuários do Centro de Identidade do IAM para o Amazon Managed Grafana:

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

****  

    ```
    {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Sid": "SSOAccess",
                "Effect": "Allow",
                "Action": [
                    "sso:ListProfileAssociations",
                    "sso-directory:SearchUsers",
                    "sso-directory:SearchGroups",
                    "sso:AssociateProfile",
                    "sso:DisassociateProfile"
                ],
                "Resource": [
                    "*"
                ]
            }
        ]
    }
    ```

------

## Pré-requisitos adicionais para grupos de instâncias restritas
<a name="hyperpod-observability-addon-rig-prerequisites"></a>

Se seu cluster contiver grupos de instâncias restritas, a função de execução do grupo de instâncias deverá ter permissões para gravar métricas no Amazon Managed Service for Prometheus. Quando você usa a **Configuração rápida** para criar seu cluster com a observabilidade ativada, essas permissões são adicionadas automaticamente à função de execução.

Se você estiver usando a **configuração personalizada** ou adicionando observabilidade a um cluster RIG existente, certifique-se de que a função de execução de cada grupo de instâncias restritas tenha as seguintes permissões:

```
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Sid": "PrometheusAccess",
            "Effect": "Allow",
            "Action": "aps:RemoteWrite",
            "Resource": "arn:aws:aps:us-east-1:account_id:workspace/workspace-ID"
        }
    ]
}
```

Substitua *us-east-1**account\$1id*,, e *workspace-ID* por seu Região da AWS ID de conta e Amazon Managed Service for Prometheus Workspace ID.

Depois que tiver certeza de que atendeu aos pré-requisitos acima, você poderá instalar o complemento de observabilidade.

**Como instalar rapidamente o complemento de observabilidade**

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Acesse a página de detalhes do seu cluster.

1. Na guia **Painel**, localize o complemento chamado **HyperPod Monitoramento e observabilidade** e escolha Instalação **rápida**.

**Como fazer uma instalação personalizada do complemento de observabilidade**

1. Acesse a página de detalhes do seu cluster.

1. Na guia **Painel**, localize o complemento chamado **HyperPod Monitoramento e observabilidade** e escolha Instalação **personalizada**.

1. Especifique as categorias de métricas que você deseja visualizar. Para ter mais informações sobre essas categorias de métricas, consulte [SageMaker HyperPod métricas de cluster](hyperpod-observability-cluster-metrics.md).

1. Especifique se você deseja ativar o Amazon CloudWatch Logs.

1. Especifique se você quer que o serviço crie um espaço de trabalho do Amazon Managed Service for Prometheus.

1. Para poder visualizar as métricas nos painéis do Amazon Managed Grafana, marque a caixa **Use um espaço de trabalho do Amazon Managed Grafana**. Você pode especificar seu próprio espaço de trabalho ou deixar que o serviço crie um para você. 
**nota**  
O Amazon Managed Grafana não está disponível em todas as Regiões da AWS áreas em que o Amazon Managed Service for Prometheus está disponível. No entanto, você pode configurar um espaço de trabalho do Grafana em qualquer Região da AWS e configurá-lo para obter dados de métricas de um espaço de trabalho do Prometheus que resida em outra Região da AWS. Para ter informações, consulte [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). 

# Painéis de SageMaker HyperPod observabilidade da Amazon
<a name="hyperpod-observability-addon-viewing-dashboards"></a>

Este tópico descreve como visualizar painéis de métricas para seus clusters Amazon SageMaker HyperPod (SageMaker HyperPod) e como adicionar novos usuários a um painel. Este tópico também descreve os diferentes tipos de painel.

## Acesso aos painéis
<a name="hyperpod-observability-addon-accessing-dashboards"></a>

Para visualizar as métricas do seu SageMaker HyperPod cluster no Amazon Managed Grafana, execute as seguintes etapas:

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Acesse a página de detalhes do seu cluster.

1. Na guia **Painel**, localize a seção **HyperPod Observabilidade** e escolha **Abrir painel no Grafana**.

## Adicionar novos usuários a um espaço de trabalho do Amazon Managed Grafana
<a name="hyperpod-observability-addon-adding-users"></a>

Para ter informações sobre como adicionar usuários a um workspace do Amazon Managed Grafana, consulte [Use AWS IAM Identity Center with your Amazon Managed Grafana workspace](https://docs.aws.amazon.com/grafana/latest/userguide/authentication-in-AMG-SSO.html) no *Guia do usuário do Amazon Managed Grafana*.

## Painéis de observabilidade
<a name="hyperpod-observability-addon-dashboards.title"></a>

O complemento SageMaker HyperPod de observabilidade fornece seis painéis interconectados em seu espaço de trabalho padrão do Amazon Managed Grafana. Cada painel fornece informações detalhadas sobre diferentes recursos e tarefas nos clusters para vários usuários, como cientistas de dados, engenheiros de machine learning e administradores.

### Painel de tarefas
<a name="hyperpod-observability-addon-task-dashboard"></a>

O painel de tarefas fornece monitoramento e visualização abrangentes das métricas de utilização de recursos para SageMaker HyperPod tarefas. O painel principal exibe uma tabela detalhada agrupando o uso de recursos por tarefas principais e mostra a utilização de CPU, GPU e memória nos pods. Grafos interativos de séries temporais monitoram o uso da CPU, o consumo de memória do sistema, as porcentagens de utilização da GPU e o uso de memória da GPU para pods selecionados, permitindo que você monitore as tendências de desempenho ao longo do tempo. O painel apresenta recursos avançados de filtragem por meio de variáveis, como nome do cluster, namespace, tipo de tarefa e pods específicos, facilitando o detalhamento de workloads específicas. Essa solução de monitoramento é essencial para otimizar a alocação de recursos e manter o desempenho das cargas de trabalho de aprendizado de máquina ativadas. SageMaker HyperPod

### Painel de treinamento
<a name="hyperpod-observability-addon-training-dashboard"></a>

O painel de treinamento oferece monitoramento abrangente das métricas de integridade, confiabilidade e gerenciamento de falhas das tarefas de treinamento. O painel apresenta os principais indicadores de desempenho, incluindo contagens de criação de tarefas, taxas de sucesso e porcentagens de tempo de atividade, além de rastreamento detalhado de eventos de reinicialização automática e manual. Ele oferece visualizações detalhadas dos padrões de falha por meio de gráficos circulares e mapas de calor que dividem os incidentes por tipo e latência de correção, permitindo que você identifique problemas recorrentes e otimize a confiabilidade das tarefas. A interface inclui monitoramento em tempo real de métricas críticas, como tempos de recuperação do sistema e latências de detecção de falhas, o que a torna uma ferramenta essencial para manter a alta disponibilidade das workloads de treinamento. Além disso, a janela da últimas 24 horas do painel fornece contexto histórico para analisar tendências e padrões no desempenho das tarefas de treinamento, ajudando as equipes a lidar proativamente com possíveis problemas antes que eles afetem as workloads de produção.

### Painel de inferência
<a name="hyperpod-observability-addon-inference-dashboard"></a>

O painel de inferência oferece monitoramento abrangente do desempenho da implantação do modelo e das métricas de integridade em várias dimensões. Ele apresenta uma visão geral detalhada das implantações ativas, monitoramento em tempo real das taxas de solicitação, porcentagens de sucesso e métricas de latência, permitindo que você acompanhe o desempenho do serviço de modelos e identifique possíveis gargalos. O painel inclui painéis especializados para métricas gerais de inferência e métricas específicas de tokens para modelos de linguagem, como tempo até o primeiro token (TTFT) e throughput do token, o que o torna particularmente valioso para monitorar implantações de grandes modelos de linguagem. Além disso, ele fornece insights de infraestrutura por meio do rastreamento de alocação de pods e nós, ao mesmo tempo em que oferece recursos detalhados de análise de erros para ajudar a manter alta disponibilidade e alto desempenho das workloads de inferência.

### Painel do cluster
<a name="hyperpod-observability-addon-cluster-dashboard"></a>

O painel do cluster fornece uma visão abrangente da integridade e do desempenho do cluster, oferecendo visibilidade em tempo real dos recursos de computação, memória, rede e armazenamento em todo o seu ambiente Amazon SageMaker HyperPod (SageMaker HyperPod). Você pode visualizar métricas essenciais rapidamente, como o total de instâncias, a utilização de GPU, o uso de memória e o desempenho de rede, por meio de uma interface intuitiva que atualiza automaticamente os dados a cada poucos segundos. O painel é organizado em seções lógicas, começando com uma visão geral abrangente do cluster que exibe métricas importantes, como porcentagem de instâncias íntegras e contagens totais de recursos, seguidas de seções detalhadas sobre desempenho da GPU, utilização de memória, estatísticas de rede e métricas de armazenamento. Cada seção apresenta grafos e painéis interativos que permitem detalhar métricas específicas, com intervalos de tempo personalizáveis e opções de filtragem por nome de cluster, instância ou ID da GPU.

### Painel do sistema de arquivos
<a name="hyperpod-observability-addon-filesystem-dashboard"></a>

O painel do sistema de arquivos fornece visibilidade abrangente das métricas de desempenho e integridade do sistema de arquivos (Amazon FSx for Lustre). O painel exibe métricas críticas de armazenamento, incluindo capacidade livre, economia de desduplicação, CPU/memory utilização, IOPS de disco, taxa de transferência e conexões de clientes em várias visualizações. Isso possibilita monitorar indicadores de desempenho em nível de sistema, como uso de CPU e memória, bem como métricas específicas de armazenamento, como read/write operações e padrões de utilização de disco. A interface inclui recursos de monitoramento de alertas e grafos detalhados de séries temporais para rastrear tendências de desempenho ao longo do tempo, o que a torna valiosa para manutenção proativa e planejamento de capacidade. Além disso, por meio de sua cobertura abrangente de métricas, o painel ajuda a identificar possíveis gargalos, otimizar o desempenho do armazenamento e garantir operações confiáveis do sistema de arquivos para cargas de trabalho. SageMaker HyperPod 

### Painel de partição da GPU
<a name="hyperpod-observability-addon-gpu-partition-dashboard"></a>

Para monitorar métricas específicas da partição da GPU ao usar configurações de GPU de várias instâncias (MIG), você precisa instalar ou atualizar para a versão mais recente do complemento Observability. SageMaker HyperPod Esse complemento fornece recursos abrangentes de monitoramento, incluindo métricas específicas do MIG, como contagem de partições, uso de memória e utilização de computação por partição de GPU.

Se você já tem o SageMaker HyperPod Observability instalado, mas precisa de suporte para métricas MIG, basta atualizar o complemento para a versão mais recente. Esse processo não causa interrupções e mantém sua configuração de monitoramento existente.

SageMaker HyperPod expõe automaticamente métricas específicas do MIG, incluindo:
+ `nvidia_mig_instance_count`: Número de instâncias MIG por perfil
+ `nvidia_mig_memory_usage`: utilização de memória por instância MIG
+ `nvidia_mig_compute_utilization`: utilização de computação por instância MIG

### Painel de registros do cluster
<a name="hyperpod-observability-addon-cluster-logs-dashboard"></a>

O painel Cluster Logs fornece uma visão centralizada dos CloudWatch registros do seu SageMaker HyperPod cluster. O painel consulta o grupo de `/aws/sagemaker/Clusters/{cluster-name}/{cluster-id}` registros e exibe eventos de log com recursos de filtragem por ID da instância, nome do stream de log, nível de log (ERROR, WARN, INFO, DEBUG) e pesquisa de texto livre. O painel inclui um cronograma de eventos mostrando a distribuição de eventos de log ao longo do tempo, um contador total de eventos, um cronograma de eventos pesquisados para resultados filtrados e um painel de registros detalhado com mensagens de registro completas, carimbos de data/hora e metadados do fluxo de registros. Esse painel é usado CloudWatch como fonte de dados e é útil para depurar problemas de cluster, monitorar eventos de integridade da instância e investigar falhas em tarefas de treinamento.

# Explorando métricas de SageMaker HyperPod cluster no Amazon Managed Grafana
<a name="hyperpod-observability-addon-exploring-metrics"></a>

Depois de conectar o Amazon Managed Grafana ao seu espaço de trabalho do Amazon Managed Service for Prometheus, você pode usar o editor de consultas e as ferramentas de visualização do Grafana para explorar seus dados de métricas. O Amazon Managed Grafana oferece várias maneiras de interagir com os dados do Prometheus, como um editor de consultas abrangente para criar expressões PromQL, um navegador de métricas para descobrir métricas e rótulos disponíveis e recursos de modelagem para criar painéis dinâmicos. Você pode realizar consultas de intervalo para visualizar dados de séries temporais em períodos e consultas instantâneas para recuperar os valores mais recentes, com opções para formatar resultados como grafos de séries temporais, tabelas ou mapas de calor. Para ter informações detalhadas sobre como definir as configurações de consulta, usar o navegador de métricas e aproveitar os recursos de modelagem, consulte [Usar fonte de dados Prometheus](https://docs.aws.amazon.com/grafana/latest/userguide/using-prometheus-datasource.html).

# Personalização de métricas SageMaker HyperPod de cluster, painéis e alertas
<a name="hyperpod-observability-addon-customizing"></a>

O Amazon Managed Grafana possibilita que você crie painéis abrangentes que visualizam seus dados por meio de painéis contendo consultas conectadas às suas fontes de dados. Você pode criar painéis do zero, importar os existentes ou exportar suas criações para fins de compartilhamento e backup. Os painéis do Grafana permitem usar a funcionalidade dinâmica por meio de variáveis que substituem valores codificados nas consultas, tornando suas visualizações mais flexíveis e interativas. Você também pode aprimorar seus painéis com alguns recursos, como anotações, painéis de biblioteca para reutilização, gerenciamento de histórico de versões e links personalizados, para criar uma solução completa de monitoramento e observabilidade. [Para step-by-step obter orientação sobre como criar, importar, configurar e gerenciar painéis, consulte Criação de painéis.](https://docs.aws.amazon.com/grafana/latest/userguide/v10-dash-building-dashboards.html)

# Criação de métricas SageMaker HyperPod de cluster personalizadas
<a name="hyperpod-observability-addon-custom-metrics"></a>

O complemento de observabilidade Amazon SageMaker HyperPod (SageMaker HyperPod) fornece centenas de métricas de saúde, desempenho e eficiência. out-of-the-box Além dessas métricas, talvez você precise monitorar métricas personalizadas específicas para suas aplicações ou necessidades comerciais que não são capturadas por métricas padrão, como indicadores de desempenho específicos do modelo, estatísticas de processamento de dados ou medidas específicas da aplicação. Para atender a essa necessidade, você pode implementar a coleta de métricas personalizadas OpenTelemetry usando a integração de um trecho de código Python ao seu aplicativo.

Para criar métricas personalizadas, primeiro execute o comando shell a seguir para instalar os OpenTelemetry componentes principais necessários para instrumentar aplicativos Python para fins de observabilidade. Essa instalação possibilita que aplicativos Python SageMaker HyperPod executados em clusters emitam dados de telemetria personalizados. Esses dados são coletados pelo OpenTelemetry coletor e encaminhados para a infraestrutura de observabilidade.

```
pip install opentelemetry-api opentelemetry-sdk opentelemetry-exporter-otlp-proto-grpc
```

O script de exemplo a seguir configura um pipeline de OpenTelemetry métricas que automaticamente marca métricas com informações de pod e node, garantindo a atribuição adequada em seu cluster, e envia essas métricas para a pilha de observabilidade SageMaker HyperPod integrada a cada segundo. O script estabelece uma conexão com o coletor de SageMaker HyperPod métricas, configura atributos de recursos apropriados para identificação e fornece uma interface de medidor por meio da qual você pode criar vários tipos de métricas (contadores, medidores ou histogramas) para rastrear qualquer aspecto do desempenho do seu aplicativo. As métricas personalizadas se integram aos painéis SageMaker HyperPod de monitoramento junto com as métricas do sistema. Essa integração permite uma observabilidade abrangente por meio de uma única interface na qual você pode criar alertas, visualizações e relatórios personalizados para monitorar o perfil de desempenho completo da workload.

```
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 métricas de cluster
<a name="hyperpod-observability-cluster-metrics"></a>

A Amazon SageMaker HyperPod (SageMaker HyperPod) publica várias métricas em 9 categorias distintas em seu espaço de trabalho do Amazon Managed Service for Prometheus. Nem todas as métricas são habilitadas por padrão ou exibidas no espaço de trabalho do Amazon Managed Grafana. A tabela a seguir mostra quais métricas são ativadas por padrão quando você instala o complemento de observabilidade, quais categorias têm métricas adicionais que podem ser habilitadas para informações mais granulares do cluster e onde elas aparecem no espaço de trabalho do Amazon Managed Grafana.


| Categoria métrica | Habilitada por padrão? | Métricas avançadas adicionais disponíveis? | Disponível em quais painéis do Grafana? | 
| --- | --- | --- | --- | 
| Métricas de treinamento | Sim | Sim | Treinamento | 
| Métricas de inferência | Sim | Não | Inferência | 
| Métricas de governança de tarefas | Não | Sim | Nenhum. Consulte seu espaço de trabalho do Amazon Managed Service for Prometheus para criar seu próprio painel. | 
| Métrica de ajuste de escala | Não | Sim | Nenhum. Consulte seu espaço de trabalho do Amazon Managed Service for Prometheus para criar seu próprio painel. | 
| Métricas de cluster | Sim | Sim | Cluster | 
| Métricas de instância | Sim | Sim | Cluster | 
| Métricas de computação acelerada | Sim | Sim | Tarefa, cluster | 
| Métricas de rede | Não | Sim | Cluster | 
| Sistema de arquivos | Sim | Não | Sistema de arquivos | 

As tabelas a seguir descrevem as métricas disponíveis para monitorar seu SageMaker HyperPod cluster, organizadas por categoria.

## Disponibilidade de métricas em grupos de instâncias restritas
<a name="hyperpod-observability-rig-metrics-availability"></a>

Quando seu cluster contém grupos de instâncias restritas, a maioria das categorias de métricas está disponível em nós restritos, com as seguintes exceções e considerações. Você também pode configurar alertas em qualquer métrica de sua escolha.


| Categoria métrica | Disponível nos nós RIG? | Observações | 
| --- | --- | --- | 
| Métricas de treinamento | Sim | As métricas do pod Kubeflow e Kubernetes são coletadas. As métricas de KPI de treinamento avançado (do Training Metrics Agent) não estão disponíveis nos nós do RIG. | 
| Métricas de inferência | Não | As cargas de trabalho de inferência não são compatíveis com grupos de instâncias restritas. | 
| Métricas de governança de tarefas | Não | As métricas do Kueue são coletadas somente dos nós padrão, se houver. | 
| Métrica de ajuste de escala | Não | As métricas do KEDA são coletadas somente dos nós padrão, se houver. | 
| Métricas de cluster | Sim | As métricas do Kube State e as métricas do servidor da API estão disponíveis. O Kube State Metrics é programado preferencialmente em nós padrão, mas pode ser executado em nós restritos em clusters somente do Rig. | 
| Métricas de instância | Sim | As métricas do Node Exporter e do cAdvisor são coletadas em todos os nós, incluindo os nós restritos. | 
| Métricas de computação acelerada | Sim | O DCGM Exporter é executado em nós restritos habilitados para GPU. O Neuron Monitor é executado em nós restritos habilitados para Neuron quando o modo avançado está ativado. | 
| Métricas de rede | Sim | O EFA Exporter é executado em nós restritos habilitados para EFA quando o modo avançado está ativado. | 
| Métricas do sistema de arquivos | Sim | FSx as métricas de utilização do cluster do Lustre são suportadas em grupos de instâncias restritas. | 

**nota**  
A coleta de registros de contêineres com o Fluent Bit não é implantada em nós restritos. Os registros de cluster de nós restritos estão disponíveis por meio da SageMaker HyperPod plataforma, independentemente do complemento de observabilidade. Você pode ver esses registros no painel Cluster Logs.

## Métricas de treinamento
<a name="hyperpod-observability-training-metrics"></a>

Use essas métricas para monitorar o desempenho das tarefas de treinamento executadas no SageMaker HyperPod cluster.


| Nome da métrica ou tipo | Description | Habilitada por padrão? | Origem da métrica | 
| --- | --- | --- | --- | 
| Métricas do Kubeflow | [https://github.com/kubeflow/treinador](https://github.com/kubeflow/trainer) | Sim | Kubeflow | 
| Métricas de pod do Kubernetes | [https://github.com/kubernetes/kube-state-metrics](https://github.com/kubernetes/kube-state-metrics) | Sim | Kubernetes | 
| training\$1uptime\$1percentage | Porcentagem do tempo de treinamento fora do tamanho total da janela. | Não | SageMaker HyperPod operador de treinamento | 
| training\$1manual\$1recovery\$1count | Número total de reinicializações manuais realizadas na tarefa. | Não | SageMaker HyperPod operador de treinamento | 
| training\$1manual\$1downtime\$1ms | Tempo total em milissegundos em que a tarefa ficou inativa devido a intervenções manuais. | Não | SageMaker HyperPod operador de treinamento | 
| training\$1auto\$1recovery\$1count | Número total de recuperações automáticas. | Não | SageMaker HyperPod operador de treinamento | 
| training\$1auto\$1recovery\$1downtime | Tempo total de sobrecarga da infraestrutura em milissegundos durante a recuperação de falhas. | Não | SageMaker HyperPod operador de treinamento | 
| training\$1fault\$1count | Número total de falhas encontradas durante o treinamento. | Não | SageMaker HyperPod operador de treinamento | 
| training\$1fault\$1type\$1count | Distribuição de falhas por tipo. | Não | SageMaker HyperPod operador de treinamento | 
| training\$1fault\$1recovery\$1time\$1ms | Tempo de recuperação em milissegundos para cada tipo de falha. | Não | SageMaker HyperPod operador de treinamento | 
| training\$1time\$1ms | Tempo total em milissegundos gasto no treinamento real. | Não | SageMaker HyperPod operador de treinamento | 

## Métricas de inferência
<a name="hyperpod-observability-inference-metrics"></a>

Use essas métricas para monitorar o desempenho das tarefas de inferência no SageMaker HyperPod cluster.


| Nome da métrica ou tipo | Description | Habilitada por padrão? | Origem da métrica | 
| --- | --- | --- | --- | 
| model\$1invocations\$1total | Número total de solicitações de invocação ao modelo. | Sim | SageMaker HyperPod operador de inferência | 
| model\$1errors\$1total | Número total de erros durante a invocação do modelo. | Sim | SageMaker HyperPod operador de inferência | 
| model\$1concurrent\$1requests | Solicitações simultâneas de modelo ativas. | Sim | SageMaker HyperPod operador de inferência | 
| model\$1latency\$1milliseconds | Latência de invocação do modelo em milissegundos. | Sim | SageMaker HyperPod operador de inferência | 
| model\$1ttfb\$1milliseconds | Tempo de modelagem até a latência do primeiro byte em milissegundos. | Sim | SageMaker HyperPod operador de inferência | 
| TGI | Estas métricas podem ser usadas para monitorar o desempenho da TGI, ajustar a escala da implantação automaticamente e ajudar a identificar gargalos. Para obter uma lista detalhada de métricas, consulte [https://github.com/deepjavalibrary/djl- serving/blob/master/prometheus/README .md.](https://github.com/deepjavalibrary/djl-serving/blob/master/prometheus/README.md) | Sim | Contêiner do modelo | 
| LMI | Estas métricas podem ser usadas para monitorar o desempenho da LMI e ajudar a identificar gargalos. Para obter uma lista detalhada de métricas, consulte [https://github.com/deepjavalibrary/djl- serving/blob/master/prometheus/README .md.](https://github.com/deepjavalibrary/djl-serving/blob/master/prometheus/README.md) | Sim | Contêiner do modelo | 

## Métricas de governança de tarefas
<a name="hyperpod-observability-task-governance-metrics"></a>

Use essas métricas para monitorar a governança de tarefas e a alocação de recursos no SageMaker HyperPod cluster.


| Nome da métrica ou tipo | Description | Habilitada por padrão? | Origem da métrica | 
| --- | --- | --- | --- | 
| Kueue | Consulte [https://kueue.sigs.k8s. io/docs/reference/metrics](https://kueue.sigs.k8s.io/docs/reference/metrics/)/. | Não | Kueue | 

## Métrica de ajuste de escala
<a name="hyperpod-observability-scaling-metrics"></a>

Use essas métricas para monitorar o comportamento e o desempenho do auto-scaling no cluster. SageMaker HyperPod 


| Nome da métrica ou tipo | Description | Habilitada por padrão? | Origem da métrica | 
| --- | --- | --- | --- | 
| Métricas do operador KEDA | Consulte [https://keda. sh/docs/2.17/integrations/prometheus/\$1operator](https://keda.sh/docs/2.17/integrations/prometheus/#operator). | Não | Kubernetes Event-driven Autoscaler (KEDA) | 
| Métricas de webhook do KEDA | Consulte [https://keda. sh/docs/2.17/integrations/prometheus/\$1admission -webhooks](https://keda.sh/docs/2.17/integrations/prometheus/#admission-webhooks). | Não | Kubernetes Event-driven Autoscaler (KEDA) | 
| Métricas do KEDA Metrics Server | Consulte [https://keda. sh/docs/2.17/integrations/prometheus/\$1metrics -servidor](https://keda.sh/docs/2.17/integrations/prometheus/#metrics-server). | Não | Kubernetes Event-driven Autoscaler (KEDA) | 

## Métricas de cluster
<a name="hyperpod-observability-cluster-health-metrics"></a>

Use estas métricas para monitorar a integridade geral do cluster e a alocação de recursos.


| Nome da métrica ou tipo | Description | Habilitada por padrão? | Origem da métrica | 
| --- | --- | --- | --- | 
| Integridade do cluster | Métricas do servidor de API do Kubernetes. Consulte [https://kubernetes. io/docs/reference/instrumentation/metrics](https://kubernetes.io/docs/reference/instrumentation/metrics/)/. | Sim | Kubernetes | 
| Kubestate | Veja [https://github.com/kubernetes/kube-state-metrics/tree/main/docs\$1default -resources](https://github.com/kubernetes/kube-state-metrics/tree/main/docs#default-resources). | Limitado | Kubernetes | 
| KubeState Avançado | Veja [https://github.com/kubernetes/kube-state-metrics/tree/main/docs\$1optional -resources](https://github.com/kubernetes/kube-state-metrics/tree/main/docs#optional-resources). | Não | Kubernetes | 

## Métricas de instância
<a name="hyperpod-observability-instance-metrics"></a>

Use estas métricas para monitorar o desempenho e a integridade de instâncias individuais.


| Nome da métrica ou tipo | Description | Habilitada por padrão? | Origem da métrica | 
| --- | --- | --- | --- | 
| Métricas de nó | Veja [https://github.com/prometheus/node\$1exporter? tabulação = readme-ov-file \$1 enabled-by-default](https://github.com/prometheus/node_exporter?tab=readme-ov-file#enabled-by-default). | Sim | Kubernetes | 
| Métricas de contêiner | Métricas de contêiner expostas pelo Cadvisor. Consulte o [https://github.com/google/consultor.](https://github.com/google/cadvisor) | Sim | Kubernetes | 

## Métricas de computação acelerada
<a name="hyperpod-observability-accelerated-compute-metrics"></a>

Use estas métricas para monitorar o desempenho, a integridade e a utilização de dispositivos individuais de computação acelerada no cluster.

**nota**  
Quando o particionamento de GPU com MIG (GPU de várias instâncias) está ativado em seu cluster, as métricas do DCGM fornecem automaticamente granularidade em nível de partição para monitorar instâncias MIG individuais. Cada partição MIG é exposta como um dispositivo de GPU separado com suas próprias métricas de temperatura, energia, utilização de memória e atividade computacional. Isso permite que você acompanhe o uso e a integridade dos recursos de cada partição de GPU de forma independente, permitindo o monitoramento preciso das cargas de trabalho executadas em recursos fracionários da GPU. Para obter mais informações sobre como configurar o particionamento de GPU, consulte. [Usando partições de GPU na Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md)


| Nome da métrica ou tipo | Description | Habilitada por padrão? | Origem da métrica | 
| --- | --- | --- | --- | 
| GPU da NVIDIA | Métricas do DCGM. Veja [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) | Limitado |  Data Center GPU Manager (DCGM) da NVIDIA  | 
|  GPU da NVIDIA (avançada)  | Métricas do DCGM comentadas no seguinte arquivo 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) | Não |  Data Center GPU Manager (DCGM) da NVIDIA  | 
| AWS Estágio | Métricas do Neuron. Veja [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) | Não | AWS Monitor de neurônios | 

## Métricas de rede
<a name="hyperpod-observability-network-metrics"></a>

Use estas métricas para monitorar o desempenho e a integridade dos Elastic Fabric Adapters (EFA) no cluster.


| Nome da métrica ou tipo | Description | Habilitada por padrão? | Origem da métrica | 
| --- | --- | --- | --- | 
| EFA | Veja [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) | Não | Elastic Fabric Adapter | 

## Métricas do sistema de arquivos
<a name="hyperpod-observability-file-system-metrics"></a>


| Nome da métrica ou tipo | Description | Habilitada por padrão? | Origem da métrica | 
| --- | --- | --- | --- | 
| Sistema de arquivos | Métricas do Amazon FSx for Lustre da Amazon CloudWatch:[Monitoramento com a Amazon CloudWatch](https://docs.aws.amazon.com/fsx/latest/LustreGuide/monitoring-cloudwatch.html). | Sim | Amazon FSx para Lustre | 

# Alertas pré-configurados
<a name="hyperpod-observability-addon-alerts"></a>

O complemento de observabilidade Amazon SageMaker HyperPod (SageMaker HyperPod) permite alertas padrão para seu cluster e cargas de trabalho para notificá-lo quando o sistema detectar indicadores iniciais comuns de baixo desempenho do cluster. Esses alertas são definidos no sistema de alerta integrado do Amazon Managed Grafana. Para ter informações sobre como modificar esses alertas pré-configurados ou criar outros, consulte [Alerts in Grafana version 10](https://docs.aws.amazon.com/grafana/latest/userguide/v10-alerts.html) no *Guia do usuário do Amazon Managed Grafana*. O YAML a seguir mostra os alertas padrão.

```
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 }}"
```

# Solução de problemas do complemento de SageMaker HyperPod observabilidade da Amazon
<a name="hyperpod-observability-addon-troubleshooting"></a>

Use as orientações a seguir para resolver problemas comuns com o complemento de observabilidade Amazon SageMaker HyperPod (SageMaker HyperPod).

## Solucionar problemas de métricas ausentes no Amazon Managed Grafana
<a name="troubleshooting-missing-metrics"></a>

Se as métricas não aparecerem nos painéis do Amazon Managed Grafana, execute as etapas a seguir para identificar e resolver o problema.

### Verificar a conexão do Amazon Managed Service for Prometheus-Amazon Managed Grafana
<a name="verify-amp-grafana-connection"></a>

1. Faça login no console do Amazon Managed Grafana.

1. No painel à esquerda, escolha **Todos os espaços de trabalho**.

1. Na tabela **Espaços de trabalho**, escolha seu espaço de trabalho.

1. Na página de detalhes do espaço de trabalho, escolha a guia **Fontes de dados**.

1. Verifique se a fonte de dados do Amazon Managed Service for Prometheus existe.

1. Verifique as configurações de conexão:
   + Confirme se o URL do endpoint está correto.
   + Verifique se a autenticação do IAM está configurada corretamente.
   + Selecione **Test connection (Testar conexão)**. Verifique se o status é **A fonte de dados está funcionando**.

### Verificar o status do complemento do Amazon EKS
<a name="verify-eks-addon-status"></a>

1. Abra o console do Amazon EKS em [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. Selecione o cluster

1. Escolha a guia **Add-ons** (Complementos).

1. **Verifique se o complemento SageMaker HyperPod de observabilidade está listado e se seu status é ATIVO.**

1. Se o status não for **ATIVO**, consulte [Solucionar problemas de falha na instalação do complemento](#troubleshooting-addon-installation-failures).

### Verificar a associação de Identidade de Pods
<a name="verify-pod-identity-association"></a>

1. Abra o console do Amazon EKS em [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. Selecione o cluster

1. Na página de detalhes do cluster, escolha a guia **Acesso**.

1. Na tabela de **Associações de Identidade de Pods**, escolha a associação que tem os seguintes valores de propriedade:
   + **Namespace**: `hyperpod-observability`
   + **Conta de serviço**: `hyperpod-observability-operator-otel-collector`.
   + **Complemento**: `amazon-sagemaker-hyperpod-observability`.

1. O perfil do IAM anexado a essa associação deve ter as permissões a seguir.

------
#### [ 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. O perfil do IAM anexado a essa associação tem a política de confiança a seguir. Verifique se o ARN de origem e a conta de origem estão corretos.

------
#### [ 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"
                   }
               }
           }
       ]
   }
   ```

------

### Verificar o controle de utilização do Amazon Managed Service for Prometheus
<a name="check-amp-throttling"></a>

1. Faça login Console de gerenciamento da AWS e abra o console Service Quotas em. [https://console.aws.amazon.com/servicequotas/](https://console.aws.amazon.com/servicequotas/)

1. Na caixa **Cotas gerenciadas**, pesquise e selecione Amazon Managed Service for Prometheus.

1. Escolha a cota **Série ativa por espaço de trabalho**.

1. Na guia **Cotas em nível de recurso**, selecione seu espaço de trabalho do Amazon Managed Service for Prometheus.

1. A utilização deve ser menor que a cota atual.

1. Se você atingiu o limite de cota, selecione seu espaço de trabalho escolhendo o botão de rádio à esquerda e, em seguida, selecione **Solicitar aumento no nível de recurso**.

### Verifique se o cache KV e o roteamento inteligente estão habilitados
<a name="verify-caching-routing"></a>

Se o `KVCache Metrics` painel estiver ausente, o recurso não está ativado ou a porta não é mencionada no`modelMetrics`. Para obter mais informações sobre como habilitar isso, consulte as etapas 1 e 3 em[Configure o cache KV e o roteamento inteligente para melhorar o desempenho](sagemaker-hyperpod-model-deployment-deploy-ftm.md#sagemaker-hyperpod-model-deployment-deploy-ftm-cache-route). 

Se o `Intelligent Router Metrics` painel estiver ausente, ative o recurso para que eles apareçam. Para obter mais informações sobre como habilitar isso, consulte[Configure o cache KV e o roteamento inteligente para melhorar o desempenho](sagemaker-hyperpod-model-deployment-deploy-ftm.md#sagemaker-hyperpod-model-deployment-deploy-ftm-cache-route). 

## Solucionar problemas de falha na instalação do complemento
<a name="troubleshooting-addon-installation-failures"></a>

Se a instalação do complemento de observabilidade falhar, use as etapas a seguir para diagnosticar e resolver o problema.

### Verificar o status da sonda de integridade
<a name="check-health-probe-status"></a>

1. Abra o console do Amazon EKS em [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. Selecione o cluster

1. Escolha a guia **Add-ons** (Complementos).

1. Escolha o complemento que falhou.

1. Analise a seção **Problemas de integridade**.

1. Se o problema de integridade estiver relacionado a credenciais ou à identidade de pods, consulte [Verificar a associação de Identidade de Pods](#verify-pod-identity-association). Além disso, o complemento Agente de Identidade de Pods deve estar em execução no cluster.

1. Verifique se há erros nos logs do gerenciador. Para instruções, consulte [Analisar logs do gerenciador](#review-manager-logs).

1. Entre em contato com o AWS Support com os detalhes do problema.

### Analisar logs do gerenciador
<a name="review-manager-logs"></a>

1. Obtenha o pod do gerenciador de complementos:

   ```
   kubectl logs -n hyperpod-observability -l control-plane=hyperpod-observability-controller-manager
   ```

1. Para problemas urgentes, entre em contato com o Suporte.

## Analisar todos os pods de observabilidade
<a name="review-all-observability-pods"></a>

Todos os pods que o complemento de SageMaker HyperPod observabilidade cria estão no namespace. `hyperpod-observability` Para ver o status desses pods, execute o comando a seguir.

```
kubectl get pods -n hyperpod-observability
```

Procure os pods com status `pending` ou `crashloopbackoff`. Execute o comando a seguir para obter os logs desses pods pendentes ou com falha.

```
kubectl logs -n hyperpod-observability pod-name
```

Se você não encontrar erros nos logs, execute o comando a seguir para descrever os pods e procurar erros.

```
kubectl describe -n hyperpod-observability pod pod-name
```

Para ter mais contexto, execute os dois comandos a seguir para descrever as implantações e os daemonsets desses pods.

```
kubectl describe -n hyperpod-observability deployment deployment-name
```

```
kubectl describe -n hyperpod-observability daemonset daemonset-name
```

## Solucionar problemas de pods que estão parados no status pendente
<a name="pods-stuck-in-pending"></a>

Se você perceber que há pods que estão parados no status `pending`, verifique se o nó é grande o suficiente para conter todos os pods. Para verificar isso, execute as etapas a seguir.

1. Abra o console do Amazon EKS em [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters).

1. Escolha seu cluster.

1. Escolha a guia **Computação** do cluster.

1. Escolha o nó com o menor tipo de instância.

1. Na seção de alocação de capacidade, procure os pods disponíveis.

1. Se não houver pods disponíveis, você precisará de um tipo de instância maior.

Para problemas urgentes, entre em contato com o AWS Support.

## Solução de problemas de observabilidade em grupos de instâncias restritas
<a name="troubleshooting-rig-observability"></a>

Use as diretrizes a seguir para resolver problemas específicos de clusters com grupos de instâncias restritas.

### Os pods de observabilidade não iniciam em nós restritos
<a name="troubleshooting-rig-pods-not-starting"></a>

Se os pods de observabilidade não estiverem iniciando em nós restritos, verifique o status e os eventos do pod:

```
kubectl get pods -n hyperpod-observability -o wide
kubectl describe pod pod-name -n hyperpod-observability
```

As causas comuns incluem:
+ **Falhas na extração de imagem: os** eventos do pod podem mostrar erros de extração de imagem se as imagens do contêiner de observabilidade ainda não estiverem na lista de permissões nos nós restritos. Verifique se você está executando a versão mais recente do complemento de observabilidade. Se o problema persistir após a atualização, entre em contato com. Suporte
+ **Tolerâncias de contaminação:** verifique se a especificação do pod inclui a tolerância necessária para nós restritos. O complemento a partir da versão adiciona `v1.0.5-eksbuild.1` automaticamente essa tolerância quando o suporte ao RIG está ativado. Se você estiver usando uma versão mais antiga, atualize para a versão mais recente.

### Visualização de registros de pods em nós restritos
<a name="troubleshooting-rig-viewing-logs"></a>

O `kubectl logs` comando não funciona para pods executados em nós restritos. Essa é uma limitação esperada porque o caminho de comunicação necessário para o streaming de registros não está disponível em nós restritos.

Para visualizar registros de nós restritos, use o painel **Cluster Logs** no Amazon Managed Grafana, que consulta CloudWatch os Logs diretamente. Você pode filtrar por ID de instância, fluxo de registros, nível de registro e pesquisa de texto livre para encontrar entradas de registro relevantes.

### Falhas de resolução de DNS em clusters com nós padrão e restritos
<a name="troubleshooting-rig-dns-resolution"></a>

Em clusters híbridos (clusters com grupos de instâncias padrão e restritos), pods em nós padrão podem ter tempos limite de resolução de DNS ao tentar alcançar endpoints de serviço, como Amazon AWS Managed Service for Prometheus ou. CloudWatch

**Causa:** o `kube-dns` serviço tem endpoints de pods CoreDNS padrão e pods RIG CoreDNS. Os pods de nós padrão não podem alcançar os endpoints RIG CoreDNS devido ao isolamento da rede. Quando `kube-proxy` balanceia a carga de uma solicitação de DNS de um pod de nós padrão para um endpoint RIG CoreDNS, a solicitação expira.

**Resolução:** configure o `kube-dns` serviço para que os pods só `internalTrafficPolicy: Local` alcancem o CoreDNS em seu nó local:

```
kubectl patch svc kube-dns -n kube-system -p '{"spec":{"internalTrafficPolicy":"Local"}}'
```

Depois de aplicar esse patch, reinicie os pods de observabilidade afetados:

```
kubectl delete pods -n hyperpod-observability -l app.kubernetes.io/name=hyperpod-node-collector
```

### Métricas de nós restritos que não atingem o Amazon Managed Service para Prometheus
<a name="troubleshooting-rig-metrics-not-reaching-amp"></a>

Se as métricas de nós restritos não estiverem aparecendo em seu espaço de trabalho do Amazon Managed Service for Prometheus:

1. **Verifique as permissões da função de execução.** Certifique-se de que a função de execução do Grupo de Instâncias Restritas tenha `aps:RemoteWrite` permissão para seu espaço de trabalho do Prometheus. Para obter mais informações, consulte [Pré-requisitos adicionais para grupos de instâncias restritas](hyperpod-observability-addon-setup.md#hyperpod-observability-addon-rig-prerequisites).

1. **Verifique o status do pod coletor de nós.** Execute o comando a seguir e verifique se os pods coletores de nós estão sendo executados em nós restritos:

   ```
   kubectl get pods -n hyperpod-observability | grep node-collector
   ```

1. **Verifique as implantações do coletor central.** Em clusters com nós restritos, o complemento implanta um coletor central por limite de rede. Verifique se existe um coletor central para cada limite:

   ```
   kubectl get deployments -n hyperpod-observability | grep central-collector
   ```

1. **Verifique se há erros nos eventos do pod.** Use `kubectl describe` nos pods de coletores para procurar eventos de erro:

   ```
   kubectl describe pod collector-pod-name -n hyperpod-observability
   ```

Se o problema persistir após a verificação acima, entre em contato com. Suporte

### A verificação de identidade do pod não se aplica a nós de grupos de instâncias restritos
<a name="troubleshooting-rig-pod-identity"></a>

As etapas [Verificar a associação de Identidade de Pods](#verify-pod-identity-association) de solução de problemas se aplicam somente aos nós padrão. Em nós restritos, o complemento usa a função de execução do grupo de instâncias de cluster para AWS autenticação em vez do Amazon EKS Pod Identity. Se faltarem métricas nos nós restritos, verifique as permissões da função de execução em vez da associação do Pod Identity.

### O Fluent Bit não está sendo executado em nós restritos
<a name="troubleshooting-rig-fluent-bit"></a>

Esse comportamento é esperado. O FluentBit não é implantado intencionalmente em nós restritos. Os registros de nós restritos são publicados CloudWatch por meio da SageMaker HyperPod plataforma, independentemente do complemento de observabilidade. Use o painel **Cluster Logs** no Amazon Managed Grafana para visualizar esses registros.

# Observabilidade com a Amazon CloudWatch
<a name="sagemaker-hyperpod-eks-cluster-observability-cluster-cloudwatch-ci"></a>

Use o [Amazon CloudWatch Container Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html) para coletar, agregar e resumir métricas e registros dos aplicativos e microsserviços em contêineres no cluster EKS associado a um cluster. HyperPod 

O Amazon CloudWatch Insights coleta métricas para recursos computacionais, como CPU, memória, disco e rede. O Container Insights também fornece informações de diagnóstico, como falhas de reinicialização de contêiner, para ajudar a isolar problemas e resolvê-los rapidamente. Você também pode definir CloudWatch alarmes nas métricas que o Container Insights coleta.

Para encontrar uma lista completa de métricas, consulte as [Métricas do Amazon EKS e do Kubernetes Container Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-metrics-EKS.html) no *Guia do usuário do Amazon EKS*.

## Instale CloudWatch Container Insights
<a name="sagemaker-hyperpod-eks-cluster-observability-cluster-cloudwatch-ci-setup"></a>

*Os usuários administradores do cluster devem configurar o CloudWatch Container Insights seguindo as instruções em [Instalar o CloudWatch agente usando o complemento Amazon CloudWatch Observability EKS ou o gráfico Helm no Guia](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Observability-EKS-addon.html) do CloudWatch usuário.* Para obter mais informações sobre o complemento Amazon EKS, consulte também [Instalar o complemento Amazon CloudWatch Observability EKS no Guia](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-setup-EKS-addon.html) do usuário do *Amazon EKS*.

Após a conclusão da instalação, verifique se o complemento CloudWatch Observability está visível na guia do complemento do cluster EKS. Pode levar alguns minutos até que o painel seja carregado.

**nota**  
SageMaker HyperPod requer o CloudWatch Insight v2.0.1-eksbuild.1 ou posterior.

![\[CloudWatch Observability service card showing status, version, and IAM role information.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/hyperpod-eks-CIaddon.png)


# Acesse o painel de insights do CloudWatch contêiner
<a name="sagemaker-hyperpod-eks-cluster-observability-cluster-cloudwatch-ci-access-dashboard"></a>

1. Abra o CloudWatch console em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Escolha **Insights** e, em seguida, escolha **Container Insights**.

1. Selecione o cluster EKS configurado com o HyperPod cluster que você está usando.

1. Veja as métricas Pod/Cluster de nível.

![\[Performance monitoring dashboard for EKS cluster showing node status, resource utilization, and pod metrics.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/hyperpod-eks-CIdashboard.png)


## Acesse registros de insights de CloudWatch contêineres
<a name="sagemaker-hyperpod-eks-cluster-observability-cluster-cloudwatch-ci-access-log"></a>

1. Abra o CloudWatch console em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Escolha **Logs** e depois escolha **Grupo de logs**.

Quando você tem os HyperPod clusters integrados ao Amazon CloudWatch Container Insights, você pode acessar os grupos de log relevantes no seguinte formato:`/aws/containerinsights /<eks-cluster-name>/*`. Nesse grupo de logs, você pode encontrar e explorar vários tipos de logs, como logs de desempenho, logs de host, logs de aplicações e logs do plano de dados.

# Provisionamento contínuo para operações de cluster aprimoradas no Amazon EKS
<a name="sagemaker-hyperpod-scaling-eks"></a>

 SageMaker HyperPod Os clusters da Amazon criados com a orquestração do Amazon EKS agora oferecem suporte ao provisionamento contínuo, um novo recurso que permite maior flexibilidade e eficiência na execução de cargas de trabalho em grande escala. AI/ML O provisionamento contínuo permite que você comece a treinar rapidamente, escale sem problemas, realize a manutenção sem interromper as operações e tenha visibilidade granular das operações do cluster. 

**nota**  
O provisionamento contínuo está disponível como uma configuração opcional para HyperPod clusters criados com a orquestração EKS. Os clusters criados com a orquestração do Slurm usam um modelo de ajuste de escala diferente.

## Como funciona
<a name="sagemaker-hyperpod-scaling-eks-how"></a>

O sistema de provisionamento contínuo introduz uma arquitetura de estado desejado que substitui o modelo tradicional baseado em solicitações. Essa nova arquitetura permite operações paralelas e sem bloqueio em diferentes níveis de recurso, mantendo a estabilidade e o desempenho do sistema. O sistema de provisionamento contínuo:
+ **Aceita a solicitação**: registra a contagem de instâncias de destino para cada grupo de instâncias.
+ **Inicia o provisionamento**: começa a executar instâncias para atingir a contagem pretendida.

  **Monitora o progresso**: monitora cada tentativa de execução da instância e registra o status.
+ **Lida com falhas**: repete automaticamente as execuções que falharam.

O provisionamento contínuo está desabilitado por padrão. Para usar esse recurso, defina `--node-provisioning-mode` como `Continuous`.

Com o provisionamento contínuo habilitado, você pode iniciar várias operações de ajuste de escala simultaneamente, sem precisar esperar a conclusão das operações anteriores. Isso permite escalar diferentes grupos de instâncias no mesmo cluster simultaneamente e enviar várias solicitações de ajuste de escala ao mesmo grupo de instâncias. 

O provisionamento contínuo também oferece acesso ao [DescribeClusterEvent](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeClusterEvent.html)monitoramento detalhado [ListClusterEvent](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListClusterEvents.html)de eventos e visibilidade operacional. 

## Medição do uso
<a name="sagemaker-hyperpod-scaling-eks-metering"></a>

HyperPod clusters com provisionamento contínuo usam a medição em nível de instância para fornecer um faturamento preciso que reflita o uso real dos recursos. Essa abordagem de medição difere do faturamento tradicional em nível de cluster, pois rastreia cada instância de forma independente.

**Faturamento em nível de instância**

Com o provisionamento contínuo, o faturamento começa e termina em nível de instância, em vez de esperar por mudanças de estado em nível de cluster. Isso oferece os seguintes benefícios:
+ **Faturamento preciso**: o faturamento começa quando a execução do script de ciclo de vida começa. Se o script de ciclo de vida falhar, o provisionamento da instância será repetido e você receberá cobrança pela duração do tempo de execução do script de ciclo de vida.
+ **Medição independente**: o ciclo de vida do faturamento de cada instância é gerenciado separadamente, evitando erros de faturamento em cascata.
+ **Atualizações de faturamento em tempo real**: o faturamento começa quando uma instância começa a executar o respectivo script de ciclo de vida e termina quando a instância entra em um estado de encerramento.

**Ciclo de vida do faturamento**

Cada instância em seu HyperPod cluster segue esse ciclo de vida de faturamento:
+ O **faturamento começa** quando a instância é iniciada com êxito e começa a executar o respectivo script de configuração do ciclo de vida.
+ O **faturamento continua** durante todo o ciclo de vida operacional da instância.
+ O **faturamento é interrompido** quando a instância entra em um estado de encerramento, independentemente do respectivo motivo.

**nota**  
O faturamento não começa para instâncias que falham na inicialização. Se a execução de uma instância falhar devido a insuficiência de capacidade ou a outros problemas, você não receberá cobranças por essa tentativa malsucedida. O faturamento é calculado em nível de instância e os custos são agregados e relatados no nome do recurso da Amazon (ARN) do cluster. 

## Criar um cluster com o provisionamento contínuo habilitado
<a name="sagemaker-hyperpod-scaling-eks-create"></a>

**nota**  
Você deve ter um cluster do Amazon EKS já configurado com rede VPC e o chart do Helm necessário instalado. Além disso, prepare um script de configuração de ciclo de vida e carregue-o em um bucket do Amazon S3 que seu perfil de execução possa acessar. Para obter mais informações, consulte [Gerenciamento de SageMaker HyperPod clusters orquestrados pelo Amazon EKS](sagemaker-hyperpod-eks-operate.md).

A AWS CLI operação a seguir cria um HyperPod cluster com um grupo de instâncias e o provisionamento contínuo ativado.

```
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>"
}
```

Depois de criar seu cluster, você pode [DescribeClusterNode](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeClusterNode.html)usar [ListClusterNodes](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListClusterNodes.html)ou descobrir mais informações sobre os nós no cluster. 

Chamar essas operações retornará um [ClusterInstanceStatusDetails](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceStatusDetails.html)objeto com um dos seguintes valores: 
+  **Running**: o nó está íntegro e registrado no orquestrador de cluster (EKS). 
+  **Failure**: o provisionamento do nó falhou, mas o sistema automaticamente tentará reprovisionar com uma nova instância do EC2. 
+  **Pending**: o nó está sendo provisionado ou reinicializado. 
+  **ShuttingDown**: O encerramento do nó está em andamento. O nó fará a transição para o status Failure se houver problemas no encerramento ou será removido com êxito do cluster. 
+  **SystemUpdating**: o nó está passando pela correção da AMI, acionada manualmente ou como parte dos cronjobs de correção. 
+  **DeepHealthCheckInProgress**: [Verificações profundas de saúde (DHCs)](sagemaker-hyperpod-eks-resiliency-deep-health-checks.md) estão sendo conduzidas. Isso pode levar de alguns minutos a várias horas, dependendo da natureza dos testes. Os nós com defeito são substituídos e os nós íntegros passam para Running. 
+  **NotFound**: usado em [BatchAddClusterNodes](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_BatchAddClusterNodes.html)resposta para indicar que um nó foi excluído durante a reprodução idempotente. 

## Requisitos mínimos de capacidade (MinCount)
<a name="sagemaker-hyperpod-scaling-eks-mincount"></a>

O MinCount recurso permite que você especifique o número mínimo de instâncias que devem ser provisionadas com sucesso antes que um grupo de instâncias faça a transição para o status. `InService` Esse recurso fornece melhor controle sobre as operações de escalabilidade e ajuda a evitar cenários em que grupos de instâncias parcialmente provisionados não possam ser usados de forma eficaz para treinar cargas de trabalho.

**Importante**  
MinCount não é uma garantia permanente de capacidade mínima. Isso só garante que o número mínimo especificado de instâncias esteja disponível quando o grupo de instâncias se tornar o primeiro`InService`. MinCount Podem ocorrer breves quedas abaixo durante operações normais, como substituições de instâncias não íntegras ou atividades de manutenção.

### Como MinCount funciona
<a name="sagemaker-hyperpod-scaling-eks-mincount-how"></a>

Quando você cria ou atualiza um grupo de instâncias com MinCount enabled, ocorre o seguinte comportamento:
+ **Novos grupos de instâncias**: o grupo de instâncias permanece no `Creating` status até que pelo menos as MinCount instâncias sejam provisionadas e prontas com sucesso. Quando esse limite é atingido, o grupo de instâncias passa para. `InService`
+ **Grupos de instâncias existentes**: ao atualizar MinCount um grupo de instâncias existente, o status muda para `Updating` até que o novo MinCount requisito seja atendido.
+ **Escalabilidade contínua**: se TargetCount for maior que MinCount, o sistema de escalabilidade contínua continua tentando iniciar instâncias adicionais até que seja TargetCount alcançada.
+ **Tempo limite e reversão**: se MinCount não puder ser satisfeito em 3 horas, o sistema reverte automaticamente o grupo de instâncias para seu último estado válido conhecido. Para obter mais informações sobre o comportamento de reversão, consulte Comportamento de [reversão automática](#sagemaker-hyperpod-scaling-eks-mincount-rollback).

### Status do grupo de instâncias durante MinCount as operações
<a name="sagemaker-hyperpod-scaling-eks-mincount-status"></a>

Grupos de instâncias com MinCount configurado apresentam o seguinte comportamento de status:

Criando  
Para novos grupos de instâncias quando CurrentCount < MinCount. O grupo de instâncias permanece nesse status até que o requisito mínimo de capacidade seja atendido.

Atualização  
Para grupos de instâncias existentes, quando MinCount é modificado e CurrentCount < MinCount. O grupo de instâncias permanece nesse status até que o novo requisito mínimo de capacidade seja atendido.

InService  
Quando MinCount ≤ CurrentCount ≤ TargetCount. O grupo de instâncias está pronto para uso e todas as operações de mutação estão desbloqueadas.

Durante `Creating` nosso `Updating` status, as seguintes restrições se aplicam:
+ Operações mutantes`BatchAddClusterNodes`, como`BatchDeleteClusterNodes`, ou `UpdateClusterSoftware` estão bloqueadas
+ Você ainda pode modificar MinCount TargetCount valores para corrigir erros de configuração
+ A exclusão de clusters e grupos de instâncias é sempre permitida

### Comportamento de reversão automática
<a name="sagemaker-hyperpod-scaling-eks-mincount-rollback"></a>

Se um grupo de instâncias não conseguir alcançá-lo MinCount em 3 horas, o sistema iniciará automaticamente uma reversão para evitar a espera indefinida:
+ **Novos grupos de instâncias**: MinCount e TargetCount são redefinidos para (0, 0)
+ **Grupos de instâncias existentes**: MinCount e TargetCount são restaurados aos valores do último `InService` estado
+ **Seleção de instâncias para encerramento**: se as instâncias precisarem ser encerradas durante a reversão, o sistema selecionará primeiro as instâncias com problemas de integridade e depois as que foram provisionadas mais recentemente.
+ **Transição de status**: o grupo de instâncias muda imediatamente para o `InService` status após o início da reversão, permitindo que o sistema de escalabilidade contínua gerencie a capacidade de acordo com as configurações de reversão

O tempo limite de 3 horas é redefinido sempre MinCount que é atualizado. Por exemplo, se você atualizar MinCount várias vezes, o período de tempo limite começa novamente a partir da atualização mais recente.

### MinCount eventos
<a name="sagemaker-hyperpod-scaling-eks-mincount-events"></a>

O sistema emite eventos específicos para ajudar você a monitorar MinCount as operações:
+ **Capacidade mínima atingida**: emitida quando um grupo de instâncias alcança sua MinCount e faz a transição para `InService`
+ **Reversão iniciada**: emitida quando o tempo limite de 3 horas expira e a reversão automática começa

Você pode monitorar esses eventos usando [ListClusterEvents](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ListClusterEvents.html)para acompanhar o progresso de suas MinCount operações.

### Uso da API
<a name="sagemaker-hyperpod-scaling-eks-mincount-api"></a>

MinCount é especificado usando o `MinInstanceCount` parâmetro nas configurações do grupo de instâncias:

```
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
```

Principais considerações sobre o MinCount uso:
+ `MinInstanceCount`deve estar entre 0 e o valor `InstanceCount` (inclusive) do grupo de instâncias especificado em [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)nossa [UpdateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)solicitação
+ `MinInstanceCount`Definir como 0 (padrão) preserva o comportamento padrão de escalabilidade contínua
+ A configuração `MinInstanceCount` igual a `InstanceCount` fornece comportamento de all-or-nothing escalabilidade
+ MinCount só está disponível para clusters com `NodeProvisioningMode` definido como `Continuous`

## Grupos de instâncias flexíveis
<a name="sagemaker-hyperpod-scaling-eks-flexible-ig"></a>

Grupos de instâncias flexíveis permitem que você especifique vários tipos de instância em um único grupo de instâncias. Isso simplifica o gerenciamento de clusters ao reduzir o número de grupos de instâncias que você precisa criar e gerenciar, especialmente para cargas de trabalho de inferência que usam escalonamento automático.

Com grupos de instâncias flexíveis, HyperPod:
+ Tentativas de provisionar instâncias usando o primeiro tipo de instância na sua lista
+ Volta para os tipos de instância subsequentes se a capacidade não estiver disponível
+ Encerra primeiro as instâncias do tipo de instância de menor prioridade durante a redução

**nota**  
Grupos de instâncias flexíveis só estão disponíveis para clusters com `NodeProvisioningMode` definido como`Continuous`. As `InstanceRequirements` propriedades `InstanceType` e são mutuamente exclusivas — você pode especificar uma ou outra, mas não ambas.

### Crie um cluster com um grupo de instâncias flexível
<a name="sagemaker-hyperpod-scaling-eks-flexible-ig-create"></a>

Use `InstanceRequirements` em vez de `InstanceType` para criar um grupo de instâncias flexível. A ordem dos tipos de instância na lista determina a prioridade do provisionamento.

```
aws sagemaker create-cluster \
--cluster-name $HP_CLUSTER_NAME \
--orchestrator 'Eks={ClusterArn='$EKS_CLUSTER_ARN'}' \
--vpc-config '{
   "SecurityGroupIds": ["'$SECURITY_GROUP'"],
   "Subnets": ["'$SUBNET_AZ1'", "'$SUBNET_AZ2'"]
}' \
--instance-groups '[{
   "InstanceGroupName": "flexible-ig",
   "InstanceRequirements": {
      "InstanceTypes": ["ml.p5.48xlarge", "ml.p4d.24xlarge", "ml.g6.48xlarge"]
   },
   "InstanceCount": 10,
   "LifeCycleConfig": {
      "SourceS3Uri": "s3://'$BUCKET_NAME'",
      "OnCreate": "on_create.sh"
   },
   "ExecutionRole": "'$EXECUTION_ROLE'"
}]' \
--node-provisioning-mode Continuous
```

### Escalabilidade direcionada com BatchAddClusterNodes
<a name="sagemaker-hyperpod-scaling-eks-flexible-ig-targeted"></a>

Ao usar grupos de instâncias flexíveis, você pode usar [BatchAddClusterNodes](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_BatchAddClusterNodes.html)para adicionar nós com tipos de instância e zonas de disponibilidade específicos. Isso é particularmente útil quando o escalonamento automático do Karpenter determina o tipo de instância e a zona de disponibilidade ideais para sua carga de trabalho.

```
aws sagemaker batch-add-cluster-nodes \
--cluster-name $HP_CLUSTER_NAME \
--nodes-to-add '[
   {
      "InstanceGroupName": "flexible-ig",
      "IncrementTargetCountBy": 1,
      "InstanceTypes": ["ml.p5.48xlarge"],
      "AvailabilityZones": ["us-west-2a"]
   }
]'
```

### Veja detalhes do grupo de instâncias flexíveis
<a name="sagemaker-hyperpod-scaling-eks-flexible-ig-describe"></a>

Use [DescribeCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html)para ver os tipos de instância e a divisão por tipo do seu grupo de instâncias flexíveis. A resposta inclui:
+ `InstanceRequirements`— Os tipos de instância atuais e desejados para o grupo de instâncias
+ `InstanceTypeDetails`— Um per-instance-type detalhamento mostrando a contagem e a configuração de cada tipo de instância no grupo

### Usando grupos de instâncias flexíveis com o escalonamento automático do Karpenter
<a name="sagemaker-hyperpod-scaling-eks-flexible-ig-autoscaling"></a>

Grupos de instâncias flexíveis se integram ao HyperPod escalonamento automático gerenciado do Karpenter. Para obter mais informações sobre como configurar o Karpenter, consulte. [Escalonamento automático no EKS SageMaker HyperPod](sagemaker-hyperpod-eks-autoscaling.md) Quando você faz referência a um grupo de instâncias flexíveis em uma `HyperPodNodeClass` configuração, o Karpenter automaticamente:
+ Detecta os tipos de instância compatíveis do grupo de instâncias flexíveis
+ Seleciona o tipo de instância e a zona de disponibilidade ideais com base nos requisitos e preços do pod
+ Dimensiona o grupo de instâncias flexíveis usando `BatchAddClusterNodes` chamadas direcionadas com o tipo de instância e a zona de disponibilidade selecionados

**nota**  
Quando o Karpenter gerencia o escalonamento, ele usa sua própria lógica de seleção com base nos requisitos e preços do pod para determinar qual tipo de instância provisionar. Isso difere da prioridade de ordem de lista usada pelo provisionamento nativo HyperPod da (como `CreateCluster` e`UpdateCluster`), em que o primeiro tipo de instância na lista é sempre tentado primeiro.

Isso elimina a necessidade de criar grupos de instâncias separados para cada tipo de instância e configurar manualmente o Karpenter para referenciar vários grupos.

# Escalonamento automático no EKS SageMaker HyperPod
<a name="sagemaker-hyperpod-eks-autoscaling"></a>

 SageMaker HyperPod A Amazon fornece uma solução gerenciada de escalonamento automático de nós baseada em Karpenter para clusters criados com a orquestração EKS. O [Karpenter](https://karpenter.sh/) é um gerenciador de ciclo de vida de nós Kubernetes de código aberto criado por AWS ele que otimiza a escalabilidade do cluster e a eficiência de custos. Ao contrário das implantações autogerenciadas SageMaker HyperPod do Karpenter, a implementação gerenciada elimina a sobrecarga operacional de instalação, configuração e manutenção dos controladores Karpenter, ao mesmo tempo em que fornece resiliência integrada e tolerância a falhas. Essa solução gerenciada de escalonamento automático se baseia nos recursos de [provisionamento contínuo HyperPod](sagemaker-hyperpod-scaling-eks.md) da empresa e permite que você escale com eficiência os recursos de computação para treinamento e inferência de cargas de trabalho com tratamento e recuperação automáticos de falhas. 

Você paga somente pelo que usar. Você é responsável por pagar por todas as instâncias de computação que são provisionadas automaticamente por meio do escalonamento automático de acordo com o preço padrão. SageMaker HyperPod Para obter informações detalhadas sobre preços, consulte [Amazon SageMaker AI](https://aws.amazon.com/sagemaker/ai/pricing/).

Ao habilitar o escalonamento automático baseado em Karpenter com HyperPod, você tem acesso a:
+ **Ciclo de vida gerenciado do serviço** - HyperPod gerencia a instalação, as atualizações e a manutenção do Karpenter, eliminando a sobrecarga operacional.
+ **Provisionamento just-in-time**: o Karpenter observará os pods pendentes e provisionará a computação necessária para as workloads a partir usando um grupo sob demanda.
+ **Ajuste de escala para zero**: reduza a escala vertical dos nós para zero sem precisar manter uma infraestrutura de controlador dedicada.
+ **Seleção de nós com reconhecimento de workload**: o Karpenter escolhe os tipos de instância ideais com base nos requisitos do pod, nas zonas de disponibilidade e nos preços para minimizar os custos.
+ **Consolidação automática de nós**: o Karpenter avalia regularmente o cluster em busca de oportunidades de otimização, mudando as workloads para eliminar nós subutilizados.
+ **Resiliência integrada** - aproveita os mecanismos integrados HyperPod de tolerância a falhas e recuperação de nós.

Os tópicos a seguir explicam como ativar o HyperPod escalonamento automático com o Karpenter.

**Topics**
+ [Pré-requisitos](#sagemaker-hyperpod-eks-autoscaling-prereqs)
+ [Crie uma função do IAM para HyperPod escalonamento automático com o Karpenter](sagemaker-hyperpod-eks-autoscaling-iam.md)
+ [Crie e configure um HyperPod cluster com o escalonamento automático do Karpenter](sagemaker-hyperpod-eks-autoscaling-cluster.md)
+ [Crie um NodeClass](sagemaker-hyperpod-eks-autoscaling-nodeclass.md)
+ [Crie um NodePool](sagemaker-hyperpod-eks-autoscaling-nodepool.md)
+ [Implantar uma workload](sagemaker-hyperpod-eks-autoscaling-workload.md)

## Pré-requisitos
<a name="sagemaker-hyperpod-eks-autoscaling-prereqs"></a>
+ Provisionamento contínuo habilitado em seu HyperPod cluster. Ative o provisionamento contínuo configurando como `--node-provisioning-mode` `Continuous` ao criar seu SageMaker HyperPod cluster. Para obter mais informações, consulte [Provisionamento contínuo para operações de cluster aprimoradas no Amazon EKS](sagemaker-hyperpod-scaling-eks.md).
+ O Health Monitoring Agent versão 1.0.742.0\$11.0.241.0 ou posterior está instalado. Necessário para operações e monitoramento de HyperPod clusters. O agente deve ser configurado antes da habilitação do ajuste de escala automático do Karpenter para garantir relatórios adequados de integridade dos clusters e gerenciamento do ciclo de vida dos nós. Para obter mais informações, consulte [Sistema de Monitoramento de Saúde](sagemaker-hyperpod-eks-resiliency-health-monitoring-agent.md).
+ Somente se o seu cluster Amazon do EKS tiver o Karpenter em execução, as versões `NodePool` e `NodeClaim` do Karpenter precisarão ser v1.
+ `NodeRecovery` definido como automático. Para obter mais informações, consulte [Recuperação automática de nós](sagemaker-hyperpod-eks-resiliency-node-recovery.md).

# Crie uma função do IAM para HyperPod escalonamento automático com o Karpenter
<a name="sagemaker-hyperpod-eks-autoscaling-iam"></a>

Nas etapas a seguir, você criará uma função do IAM que permite SageMaker HyperPod gerenciar os nós do Kubernetes em seu cluster por meio do escalonamento automático baseado em Karpenter. Essa função fornece as permissões necessárias para HyperPod adicionar e remover nós de cluster automaticamente com base na demanda da carga de trabalho.

**Abrir o console do IAM**

1. Faça login Console de gerenciamento da AWS e abra o console do IAM em console.aws.amazon.com.

1. No painel de navegação, escolha **Perfis**.

1. Escolha **Criar Perfil**.

**Configurar a política de confiança**

1. Em **Trusted entity type** (Tipo de entidade confiável), escolha **Custom trust policy** (Política de confiança personalizada).

1. No editor de **política de confiança personalizada**, substitua a política padrão pelo seguinte:

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

****  

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

------

1. Escolha **Próximo**.

**Criar o perfil e anexar a política de permissões a ele**

Como SageMaker HyperPod requer permissões específicas que não estão disponíveis nas políticas AWS gerenciadas, você deve criar uma política personalizada.

1. Selecione **Criar política**. Isso abre uma nova guia do navegador.

1. Selecione a guia **JSON**.

1. Substitua a política padrão pela seguinte:

------
#### [ 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. Escolha **Próximo**.

1. Em **Nome da política**, insira **SageMakerHyperPodKarpenterPolicy**.

1. (Opcional) Em **Descrição**, digite uma descrição para a política.

1. Selecione **Criar política**.

1. Volte para a guia de criação de perfis e atualize a lista de políticas.

1. Pesquise e selecione o **SageMakerHyperPodKarpenterPolicy**que você acabou de criar.

1. Escolha **Próximo**.

**Nomear e criar o perfil**

1. Em **Nome do perfil**, insira `SageMakerHyperPodKarpenterRole`.

1. (Opcional) Em **Descrição**, insira uma descrição para o perfil.

1. Na seção **Etapa 1: Selecionar entidades confiáveis**, verifique se a política de confiança mostra as entidades principais de serviço corretas.

1. Na seção **Etapa 2: Adicionar permissões**, verifique se `SageMakerHyperPodKarpenterPolicy` está anexada.

1. Selecione **Criar perfil**.

**Anote o ARN do perfil.**

Depois que o perfil for criado com êxito:

1. Na lista **Perfis**, escolha o nome de perfil `SageMakerHyperPodKarpenterRole`.

1. Copie o **ARN do perfil** da seção **Resumo**. Você precisará desse ARN ao criar seu HyperPod cluster.

O ARN segue este formato: `arn:aws:iam::ACCOUNT-ID:role/SageMakerHyperPodKarpenterRole`.

# Crie e configure um HyperPod cluster com o escalonamento automático do Karpenter
<a name="sagemaker-hyperpod-eks-autoscaling-cluster"></a>

Nas etapas a seguir, você criará um SageMaker HyperPod cluster com o provisionamento contínuo ativado e o configurará para usar o escalonamento automático baseado em Karpenter.

**Crie um HyperPod cluster**

1. Carregue a configuração do seu ambiente e extraia valores das CloudFormation pilhas.

   ```
   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. Faça upload do script de inicialização do nó em seu bucket do Amazon S3.

   ```
   aws s3 cp lifecyclescripts/on_create_noop.sh s3://$BUCKET_NAME
   ```

1. Crie um arquivo de configuração de cluster com suas variáveis de 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. Execute o comando a seguir para criar seu HyperPod cluster.

   ```
   aws sagemaker create-cluster --cli-input-json file://./cluster_config.json
   ```

1. O processo de criação do cluster leva aproximadamente 20 minutos. Monitore o status do cluster até que ambos ClusterStatus e AutoScaling .Status sejam exibidos InService.

1. Salve o ARN do cluster para operações subsequentes.

   ```
   HP_CLUSTER_ARN=$(aws sagemaker describe-cluster --cluster-name $HP_CLUSTER_NAME \
      --output text --query ClusterArn)
   ```

**Habilitar o ajuste de escala automático do Karpenter**

1. Execute o comando a seguir para habilitar o ajuste de escala automático baseado no Karpenter em qualquer cluster preexistente que tenha o modo de provisionamento contínuo de nós.

   ```
   aws sagemaker update-cluster \
       --cluster-name $HP_CLUSTER_NAME \
       --auto-scaling Mode=Enable,AutoScalerType=Karpenter \
       --cluster-role $HP_CLUSTER_ROLE
   ```

1. Verifique se o Karpenter foi habilitado com êxito:

   ```
   aws sagemaker describe-cluster --cluster-name $HP_CLUSTER_NAME --query 'AutoScaling'
   ```

1. Saída esperada:

   ```
   {
       "Mode": "Enable",
       "AutoScalerType": "Karpenter",
       "Status": "InService"
   }
   ```

Aguarde `Status` até que `InService` apareça antes de continuar com a configuração NodeClass e. NodePool

# Crie um NodeClass
<a name="sagemaker-hyperpod-eks-autoscaling-nodeclass"></a>

**Importante**  
Você deve começar com 0 nó no seu grupo de instâncias e deixar o Karpenter lidar com o ajuste de escala automático. Se você começar com mais de 0 nó, o Karpenter reduzirá a escala vertical dos nós para 0.

Uma classe de nó (`NodeClass`) define as configurações em nível de infraestrutura que se aplicam a grupos de nós no cluster do Amazon EKS, incluindo configuração de rede, configurações de armazenamento e marcação de recursos. `HyperPodNodeClass`A é um personalizado `NodeClass` que mapeia grupos de instâncias pré-criados em SageMaker HyperPod, definindo restrições em torno de quais tipos de instância e zonas de disponibilidade são compatíveis com as decisões de escalonamento automático da Karpenter.

**Considerações sobre como criar de uma classe de nós**
+ Você pode especificar até dez grupos de instâncias em uma `NodeClass`.
+ Os grupos de instâncias que usam `InstanceRequirements` (grupos de instâncias flexíveis) podem conter vários tipos de instâncias em um único grupo de instâncias. Isso simplifica sua `NodeClass` configuração porque você pode referenciar menos grupos de instâncias para cobrir o mesmo conjunto de tipos de instância e zonas de disponibilidade. Por exemplo, em vez de criar 6 grupos de instâncias (3 tipos de instância × 2 AZs), você pode criar um único grupo de instâncias flexível que cubra todas as combinações. Observe isso `InstanceType` e `InstanceRequirements` são mutuamente exclusivos. Você precisa especificar um ou outro para cada grupo de instâncias.
+ Ao usar o particionamento de GPU com MIG (GPU de múltiplas instâncias), o Karpenter pode provisionar automaticamente nós com grupos de instâncias habilitados para MIG. Certifique-se de que seus grupos de instâncias incluam tipos de instância compatíveis com o MIG (ml.p4d.24xlarge, ml.p5.48xlarge ou ml.p5e/p5en.48xlarge) e configure os rótulos MIG apropriados durante a criação do cluster. Para obter mais informações sobre como configurar o particionamento de GPU, consulte. [Usando partições de GPU na Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md)
+ Se rótulos personalizados forem aplicados a grupos de instâncias, você poderá visualizá-los no `desiredLabels` campo ao consultar o `HyperpodNodeClass` status. Isso inclui rótulos de configuração MIG, como`nvidia.com/mig.config`. Quando os trabalhos recebidos solicitam recursos MIG, o Karpenter escalará automaticamente as instâncias com os rótulos MIG apropriados aplicados.
+ Se você optar por excluir um grupo de instâncias, recomendamos removê-lo do seu `NodeClass` antes de excluí-lo do seu HyperPod cluster. Se um grupo de instâncias for excluído enquanto for usado em uma`NodeClass`, a `NodeClass` será marcada como não `Ready` para provisionamento e não será usada para operações de ajuste de escala subsequentes enquanto o grupo de instâncias não for removido da `NodeClass`.
+ Quando você remove grupos de instâncias de um `NodeClass`, o Karpenter detecta um desvio nos nós que foram gerenciados pelo Karpenter nos grupos de instâncias e interrompe os nós com base em seus controles de orçamento de interrupção.
+ As sub-redes usadas pelo grupo de instâncias devem pertencer à mesma AZ. As sub-redes são especificadas usando `OverrideVpcConfig` em nível de grupo de instâncias ou em nível de cluster. `VpcConfig` é usada por padrão.
+ No momento, só é possível usar a capacidade sob demanda. Não é possível usar grupos de instâncias com plano de treinamento ou capacidade reservada.
+ Não é possível usar grupos de instâncias com `DeepHealthChecks (DHC)`. Isso ocorre porque uma DHC leva cerca de 60 a 90 minutos para ser concluída e os pods permanecem em estado pendente durante esse período, o que pode causar provisionamento excessivo.

As etapas a seguir mostram como criar uma `NodeClass`.

1. Crie um arquivo YAML (por exemplo, nodeclass.yaml) com sua configuração de `NodeClass`.

1. Aplique a configuração ao cluster usando o kubectl.

1. Faça referência à `NodeClass` em sua configuração de `NodePool`.

1. Veja um exemplo de `NodeClass` que usa os tipos de instância 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. Aplique a configuração:

   ```
   kubectl apply -f nodeclass.yaml
   ```

1. Monitore o NodeClass status para garantir que a condição Pronto no status esteja definida como Verdadeira:

   ```
   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>
     # Flexible instance group with multiple instance types
     - instanceTypes:
       - ml.p5.48xlarge
       - ml.p4d.24xlarge
       - ml.g6.48xlarge
       name: inference-workers
       subnets:
       - id: <subnet-id>
         zone: <availability-zone-a>
         zoneId: <zone-id-a>
       - id: <subnet-id>
         zone: <availability-zone-b>
         zoneId: <zone-id-b>
   ```

# Crie um NodePool
<a name="sagemaker-hyperpod-eks-autoscaling-nodepool"></a>

O `NodePool` define restrições nos nós que podem ser criados pelo Karpenter e nos pods que podem ser executados nesses nós. O `NodePool` pode ser configurado para fazer coisas como:
+ Limitar a criação de nós a determinadas zonas, tipos de instância e arquiteturas de computador.
+ Definir rótulos ou taints para limitar os pods que podem ser executados nos nós que o Karpenter cria.

**nota**  
HyperPod O provedor oferece suporte a um conjunto limitado de requisitos conhecidos do Kubernetes e do Karpenter, explicados abaixo. 

As etapas a seguir mostram como criar uma `NodePool`.

1. Crie um arquivo YAML denominado nodepool.yaml com a configuração de `NodePool` desejada.

1. Você pode usar o exemplo de configuração abaixo.

   Procure `Ready` abaixo de `Conditions` para indicar que todos os recursos dependentes estão funcionando corretamente.

   ```
   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. Aplique o `NodePool` ao seu cluster:

   ```
   kubectl apply -f nodepool.yaml
   ```

1. Monitore o status de `NodePool` para garantir que a condição `Ready` no status esteja definida como `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
   ```

**Etiquetas compatíveis com o HyperPod Karpenter Provider**

Essas são as restrições e os requisitos opcionais que você pode especificar em sua configuração de `NodePool`.


|  Tipo de requisito  |  Finalidade  |   Case/Supported Valores de uso  |  Recomendação  | 
| --- | --- | --- | --- | 
|  Tipos de instância (`node.kubernetes.io/instance-type`)  |  Controla quais tipos de SageMaker instância o Karpenter pode escolher  |  Em vez de se restringir apenas a ml.c5.xlarge, deixe o Karpenter escolher entre todos os tipos disponíveis em seus grupos de instâncias.  |  Deixe isso indefinido ou use o operador Exists para dar ao Karpenter a máxima flexibilidade na escolha de tipos de instância econômicos.  | 
|  Zonas de disponibilidade (`topology.kubernetes.io/zone`)  |  Controla AWS em quais zonas de disponibilidade os nós podem ser criados  |  Nomes de zonas específicos, como us-east-1c. Use quando precisar que os pods sejam executados em zonas específicas por motivos de latência ou conformidade.  | n/a | 
|  Arquitetura (`kubernetes.io/arch`)  |  Especifica a arquitetura da CPU.  |  Somente amd64 (no momento, não é possível usar ARM).  |  n/a  | 

# Implantar uma workload
<a name="sagemaker-hyperpod-eks-autoscaling-workload"></a>

Os exemplos a seguir demonstram como o HyperPod escalonamento automático com o Karpenter provisiona automaticamente os nós em resposta às demandas da carga de trabalho. Estes exemplos mostram o comportamento básico de ajuste de escala e os padrões de distribuição de várias zonas de disponibilidade.

**Implementar uma workload simples**

1. A implantação do Kubernetes a seguir inclui pods que solicitam 1 CPU e 256 MB de memória por réplica ou pod. Nesse cenário, os pods ainda não estão prontos.

   ```
   kubectl apply -f https://raw.githubusercontent.com/aws/karpenter-provider-aws/refs/heads/main/examples/workloads/inflate.yaml
   ```

1. Para testar o processo de aumento da escala vertical, execute o comando a seguir. O Karpenter adicionará novos nós ao cluster.

   ```
   kubectl scale deployment inflate --replicas 10
   ```

1. Para testar o processo de redução da escala vertical, execute o comando a seguir. O Karpenter removerá nós do cluster.

   ```
   kubectl scale deployment inflate --replicas 0
   ```

**Implemente uma carga de trabalho em várias AZs**

1. Execute o comando a seguir para implantar uma workload que executa uma implantação do Kubernetes em que os pods na implantação precisam se espalhar uniformemente por diferentes zonas de disponibilidade com uma distorção máxima de 1.

   ```
   kubectl apply -f https://raw.githubusercontent.com/aws/karpenter-provider-aws/refs/heads/main/examples/workloads/spread-zone.yaml
   ```

1. Execute o seguinte comando para ajustar o número de pods:

   ```
   kubectl scale deployment zone-spread --replicas 15
   ```

   O Karpenter adicionará novos nós ao cluster com pelo menos um nó em uma zona de disponibilidade diferente.

Para obter mais exemplos, consulte [exemplos de cargas de trabalho do Karpenter](https://github.com/aws/karpenter-provider-aws/tree/main/examples/workloads) em. GitHub

# Usando o agendamento com reconhecimento de topologia na Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-topology"></a>

A eficiência da transferência de dados é um fator crítico nas workloads de machine learning e de computação de alta performance (HPC). Ao usar UltraServers com a Amazon SageMaker HyperPod, aplica SageMaker HyperPod automaticamente rótulos de topologia aos seus recursos. O agendamento com reconhecimento de topologia ajuda a alocar recursos para minimizar as despesas indiretas de transferência de dados, considerando tanto a topologia da instância (como os recursos são conectados dentro de uma instância) quanto a topologia da rede (como as instâncias estão conectadas umas às outras). Para ter mais informações sobre os tipos de instância, veja [Topologia da instância do Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-topology.html).

O agendamento com reconhecimento de topologia funciona com clusters no Slurm e no Amazon EKS. Para ter informações gerais sobre como a topologia funciona com o Slurm, consulte [Topology Guide](https://slurm.schedmd.com/topology.html) na documentação do Slurm.

Na Amazon SageMaker HyperPod, as despesas gerais de transferência de dados geralmente vêm de três fontes principais:
+ **GPU-to-GPU transferência de dados**: tecnologias modernas, como NVLink switches NVLink e switches, permitem a transferência de dados de alto rendimento GPUs sem envolver outros recursos computacionais. Isso é extremamente eficiente, mas geralmente limita-se a uma única instância.
+ **GPU-to-CPU transferência de dados**: os sistemas de acesso não uniforme à memória (NUMA) têm vários barramentos de sistema em uma única placa-mãe. Em uma arquitetura de instância EC2 típica, como p5.48xlarge, há dois barramentos de sistema diferentes, cada um com uma CPU e 4. GPUs Para um desempenho ideal, os processos que carregam ou lêem dados to/from GPUs devem ser executados em uma CPU conectada ao mesmo barramento de sistema da GPU.
+ **Comunicações de rede entre instâncias**: as instâncias transferem dados por meio de uma cadeia de comutadores de rede. O caminho mais curto normalmente corresponde à menor latência.

## UltraServer arquitetura
<a name="sagemaker-hyperpod-topology-ultraserver-architecture"></a>

SageMaker HyperPod oferece suporte à UltraServer arquitetura com instâncias p6e-gb200.36xlarge. E UltraServer contém até 18 instâncias p6e-gb200.36xlarge, com 4 em cada instância. GPUs Todos os GPUs nós são interconectados por meio de NVLink switches, permitindo a transferência de dados entre dois GPUs sem usar interfaces de rede.

Essa arquitetura oferece um aumento significativo de desempenho em comparação com instâncias individuais. Para aproveitar essa arquitetura de forma eficaz, os trabalhos devem ser enviados aos nós de computação a partir de um único UltraServer.

## Rótulo de topologia do EKS
<a name="sagemaker-hyperpod-topology-eks-scheduling"></a>

De acordo com a topologia da instância do EC2, rotula HyperPod automaticamente seus nós com os seguintes rótulos:
+ **topology.kubernetes.io/region** - o local em que o nó reside. Região da AWS 
+ **topology.kubernetes.io/zone**: a zona de disponibilidade em que o nó reside.
+ **topology.k8s.aws/ network-node-layer** - NetworkNodes descreve o conjunto de nós de rede de uma instância. Em cada conjunto de nós de rede, os respectivos nós são listados em ordem hierárquica decrescente. O nó de rede conectado à instância é o último nó de rede na lista. Há até quatro camadas de nós de rede, e cada um é marcado com um rótulo. As camadas disponíveis são `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** - Um identificador usado para rotular cada uma das instâncias pertencentes ao mesmo domínio em um Ultraserver. NVLink Para saber mais sobre como usar UltraServers com SageMaker HyperPod, consulte[Usando UltraServers na Amazon SageMaker HyperPod](sagemaker-hyperpod-ultraserver.md).

Usando esses rótulos, você pode usar o agendamento com reconhecimento de topologia na governança de HyperPod tarefas para aplicar rótulos e anotações de topologia para otimizar a eficiência do treinamento de suas cargas de trabalho. Para obter mais informações, consulte [Usando o agendamento com reconhecimento de topologia na governança de tarefas da Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-operate-console-ui-governance-tasks-scheduling.md).

## Plug-ins de topologia de rede do Slurm
<a name="sagemaker-hyperpod-topology-slurm-plugins"></a>

O Slurm fornece plug-ins integrados para reconhecimento da topologia de rede. UltraServer arquitetura em SageMaker HyperPod suporta o plugin de bloco.

### Usando o topology/block plug-in
<a name="w2aac13c35c39c15b5"></a>

A NVIDIA desenvolveu um topology/block plug-in que fornece agendamento hierárquico em blocos de nós com as seguintes características:
+ Um bloco é um intervalo consecutivo de nós.
+ Os blocos não podem se sobrepor uns aos outros.
+ Todos os nós em um bloco são alocados a uma tarefa antes que o próximo bloco seja usado.
+ O tamanho do bloco de planejamento é o menor tamanho de bloco configurado.
+ Cada tamanho de nível de bloco maior é uma potência de dois em relação ao anterior.

Esse plug-in aloca nós com base na topologia de rede definida.

#### Configuração
<a name="w2aac13c35c39c15b5b9"></a>

Para configurar o agendamento com reconhecimento de topologia com o plug-in, topology/block 
+ SageMaker HyperPod configura automaticamente o topology/block plugin. Se você quiser configurar o plug-in, especifique o seguinte no arquivo topology.conf em seu diretório de configuração do Slurm:

  ```
  BlockName=us1 Nodes=ultraserver1-[0-17]
    
  BlockName=us2 Nodes=ultraserver2-[0-17]
    
  BlockSizes=18
  ```
+ Garanta que `slurm.conf` inclua:

  ```
  TopologyPlugin=topology/block
  ```

#### Usage
<a name="w2aac13c35c39c15b5c11"></a>

Ao enviar trabalhos, você pode usar os seguintes argumentos adicionais com os comandos `sbatch` e `srun`:
+ `--segment=N`: especifique o número de nós a serem agrupados. O tamanho do segmento deve ser menor que ou igual ao tamanho do bloco de planejamento.
+ `--exclusive=topo`: solicite que nenhum outro trabalho seja colocado no mesmo bloco. Isso é útil para aplicações de avaliação comparativa e sensíveis ao desempenho.

Veja a seguir cenários de exemplo que você pode considerar ao pensar em alocar blocos.

**Alocar um bloco inteiro de nós em um sistema vazio**

```
sbatch -N18
```

**Alocar dois blocos inteiro de nós em um sistema vazio**

```
sbatch -N36
```

**Alocar 18 nós em um bloco e mais 6 nós em outro bloco**

```
sbatch -N24
```

**Alocar 12 nós em um bloco e mais 12 nós em outro bloco**

```
sbatch -N24 —segment=12
```

**Com —exclusive=topo, o trabalho deve ser colocado em bloco sem outros trabalhos**

```
sbatch -N12 —exclusive=topo
```

## Práticas recomendadas para UltraServer topologia
<a name="sagemaker-hyperpod-topology-best-practices"></a>

Para um desempenho ideal com UltraServer arquitetura em SageMaker HyperPod:
+ **Defina os tamanhos de bloco apropriados**: configure `BlockSizes=18` (ou 17 se um nó estiver sobressalente) para corresponder à UltraServer arquitetura.
+ **Use segmentos para melhorar a disponibilidade**: use `--segment=16`, `--segment=8` ou `--segment=9` com os comando `srun` e `sbatch` para melhorar a flexibilidade do agendamento de trabalhos.
+ **Considere o tamanho do trabalho e o tamanho do segmento**:
  + Se`BlockSizes=18`, trabalhos com até 18 instâncias sempre serão executados em uma única UltraServer.
  + Se`BlockSizes=16`, trabalhos com menos de 16 instâncias sempre serão executados em uma única UltraServer, enquanto trabalhos com 18 instâncias poderão ser executados em uma ou duas UltraServers.

Ao pensar em segmentar, considere o seguinte:
+ Com`--segment=1`, cada instância pode ser executada separadamente UltraServer.
+ Com`-N 18 --segment 9`, 9 nós serão colocados em um UltraServer e outros 9 nós poderão ser colocados no mesmo ou em outro UltraServer.
+ Com`-N 24 --segment 8`, o trabalho pode ser executado em 2 ou 3 UltraServers, com cada 8 nós colocados juntos no mesmo servidor.

## Limitações na programação com reconhecimento de SageMaker HyperPod topologia
<a name="sagemaker-hyperpod-topology-limitations"></a>

O plug-in `topology/block` tem limitações com clusters heterogêneos (clusters com diferentes tipos de instância):
+ Somente os nós listados em blocos são programáveis pelo Slurm.
+ Cada bloco deve ter pelo menos `BlockSizes[0]` nó.

Para clusters heterogêneos, considere estas alternativas:
+ Não use o plug-in de bloco com clusters heterogêneos. Em vez disso, isole UltraServer os nós em uma partição diferente.
+ Crie um cluster separado UltraServers somente na mesma VPC e use a configuração multicluster do Slurm.

# Implantação de modelos na Amazon SageMaker HyperPod
<a name="sagemaker-hyperpod-model-deployment"></a>

A Amazon SageMaker HyperPod agora vai além do treinamento para oferecer uma plataforma de inferência abrangente que combina a flexibilidade do Kubernetes com a excelência operacional dos serviços gerenciados. AWS Implante, escale e otimize seus modelos de aprendizado de máquina com confiabilidade de nível corporativo usando a mesma HyperPod computação em todo o ciclo de vida do modelo.

A Amazon SageMaker HyperPod oferece interfaces de implantação flexíveis que permitem que você implante modelos por meio de vários métodos, incluindo kubectl, Python SDK, Amazon Studio UI ou SageMaker CLI. HyperPod O serviço fornece recursos avançados de ajuste de escala automático com alocação dinâmica de recursos que se ajusta automaticamente com base na demanda. Além disso, inclui recursos abrangentes de observabilidade e monitoramento que rastreiam métricas críticas time-to-first-token, como latência e utilização da GPU, para ajudá-lo a otimizar o desempenho.

**nota**  
Ao implantar em instâncias habilitadas para GPU, você pode usar o particionamento de GPU com a tecnologia Multi-Instance GPU (MIG) para executar várias cargas de trabalho de inferência em uma única GPU. Isso permite uma melhor utilização da GPU e otimização de custos. Para obter mais informações sobre como configurar o particionamento de GPU, consulte. [Usando partições de GPU na Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md)

**Infraestrutura unificada para treinamento e inferência**

Maximize a utilização de GPU fazendo a transição perfeita dos recursos de computação entre workloads de treinamento e inferência. Isso reduz o custo total de propriedade e, ao mesmo tempo, mantém a continuidade operacional.

**Opções de implantação prontas para empresas**

Implante modelos de várias fontes, incluindo pesos abertos e modelos fechados da Amazon e modelos personalizados do Amazon S3 SageMaker JumpStart e da Amazon, FSx com suporte para arquiteturas de inferência de nó único e de vários nós.

**Cache gerenciado de valores-chave (KV) em camadas e roteamento inteligente**

O cache KV salva os vetores de valores-chave pré-computados após o processamento dos tokens anteriores. Quando o próximo token é processado, os vetores não precisam ser recalculados. Por meio de uma arquitetura de cache de duas camadas, você pode configurar um cache L1 que usa memória de CPU para reutilização local de baixa latência e um cache L2 que utiliza o Redis para permitir o compartilhamento escalável de cache em nível de nó.

O roteamento inteligente analisa as solicitações recebidas e as direciona para a instância de inferência com maior probabilidade de ter pares de valores-chave em cache relevantes. O sistema examina a solicitação e a encaminha com base em uma das seguintes estratégias de roteamento:

1. `prefixaware`— Solicitações subsequentes com o mesmo prefixo de prompt são roteadas para a mesma instância

1. `kvaware`— As solicitações recebidas são roteadas para a instância com a maior taxa de acerto do cache KV.

1. `session`— Solicitações da mesma sessão de usuário são roteadas para a mesma instância.

1. `roundrobin`— Distribuição uniforme de solicitações sem considerar o estado do cache KV.

Para obter mais informações sobre como habilitar esse recurso, consulte[Configure o cache KV e o roteamento inteligente para melhorar o desempenho](sagemaker-hyperpod-model-deployment-deploy-ftm.md#sagemaker-hyperpod-model-deployment-deploy-ftm-cache-route).

**Suporte de armazenamento hierárquico de cache L2 embutido para armazenamento em cache KV**

Com base na infraestrutura de cache KV existente, HyperPod agora integra o armazenamento em camadas como uma opção adicional de back-end L2 junto com o Redis. Com o armazenamento hierárquico SageMaker gerenciado embutido, isso oferece melhor desempenho. Esse aprimoramento oferece aos clientes uma opção mais escalável e eficiente para o descarregamento de cache, particularmente benéfica para cargas de trabalho de inferência LLM de alto rendimento. A integração mantém a compatibilidade com os servidores do modelo vLLM e os recursos de roteamento existentes, ao mesmo tempo em que oferece melhor desempenho.

**nota**  
**Criptografia de dados:** os dados do cache KV (chaves e valores de atenção) são armazenados sem criptografia em repouso para otimizar a latência da inferência e melhorar o desempenho. Para cargas de trabalho com encryption-at-rest requisitos rígidos, considere a criptografia de prompts e respostas na camada do aplicativo ou desative o armazenamento em cache.  
**Isolamento de dados:** ao usar o armazenamento em camadas gerenciado como back-end do cache L2, várias implantações de inferência em um cluster compartilham o armazenamento em cache sem isolamento. Os dados do cache L2 KV (chaves e valores de atenção) de diferentes implantações não são separados. Para cargas de trabalho que exigem isolamento de dados (cenários de vários inquilinos, diferentes níveis de classificação de dados), implante em clusters separados ou use instâncias dedicadas do Redis.

**Implantação do tipo multiinstância com failover automático**

HyperPod A inferência oferece suporte à implantação do tipo de várias instâncias para melhorar a confiabilidade da implantação e a utilização dos recursos. Especifique uma lista priorizada de tipos de instância em sua configuração de implantação e o sistema selecionará automaticamente as alternativas disponíveis quando seu tipo de instância preferido não tiver capacidade. O programador do Kubernetes usa a afinidade de `preferredDuringSchedulingIgnoredDuringExecution` nós para avaliar os tipos de instância em ordem de prioridade, colocando as cargas de trabalho no tipo de instância disponível de maior prioridade e garantindo a implantação mesmo quando os recursos preferenciais não estão disponíveis. Esse recurso evita falhas de implantação devido a restrições de capacidade e, ao mesmo tempo, mantém suas preferências de custo e desempenho, garantindo a disponibilidade contínua do serviço mesmo durante as flutuações da capacidade do cluster.

**Afinidade de nós personalizada para controle de agendamento granular**

HyperPod A inferência oferece suporte à afinidade de nós personalizada para controlar o posicionamento da carga de trabalho além da seleção do tipo de instância. Especifique critérios de seleção de nós, como distribuição da zona de disponibilidade, filtragem do tipo de capacidade (sob demanda versus spot) ou rótulos de nós personalizados no `nodeAffinity` campo. O sistema suporta restrições de posicionamento obrigatórias de uso `requiredDuringSchedulingIgnoredDuringExecution` e preferências opcionais`preferredDuringSchedulingIgnoredDuringExecution`, fornecendo controle total sobre as decisões de agendamento de pods e mantendo a flexibilidade de implantação.

**nota**  
Coletamos determinadas métricas operacionais de rotina para fornecer disponibilidade de serviços essenciais. A criação dessas métricas é totalmente automatizada e não envolve a revisão humana da carga de trabalho de inferência do modelo subjacente. Essas métricas estão relacionadas às operações de implantação, ao gerenciamento de recursos e ao registro de endpoints.

**Topics**
+ [Configurando seus HyperPod clusters para implantação de modelos](sagemaker-hyperpod-model-deployment-setup.md)
+ [Implantar modelos de base e modelos personalizados e ajustados](sagemaker-hyperpod-model-deployment-deploy.md)
+ [Políticas de escalonamento automático para a implantação do seu modelo de HyperPod inferência](sagemaker-hyperpod-model-deployment-autoscaling.md)
+ [Implementando a observabilidade de inferência em clusters HyperPod](sagemaker-hyperpod-model-deployment-observability.md)
+ [Governança de tarefas para implantação de modelos em HyperPod](sagemaker-hyperpod-model-deployment-task-gov.md)
+ [HyperPod solução de problemas de inferência](sagemaker-hyperpod-model-deployment-ts.md)
+ [Notas de lançamento do Amazon SageMaker HyperPod Inference](sagemaker-hyperpod-inference-release-notes.md)

# Configurando seus HyperPod clusters para implantação de modelos
<a name="sagemaker-hyperpod-model-deployment-setup"></a>

Este guia mostra como habilitar recursos de inferência em SageMaker HyperPod clusters da Amazon. Você configurará a infraestrutura, as permissões e os operadores de que os engenheiros de aprendizado de máquina precisam para implantar e gerenciar endpoints de inferência.

**nota**  
Para criar um cluster com o operador de inferência pré-instalado, consulte. [Crie um cluster orquestrado pelo EKS SageMaker HyperPod](sagemaker-hyperpod-quickstart.md#sagemaker-hyperpod-quickstart-eks) Para instalar o operador de inferência em um cluster existente, continue com os procedimentos a seguir.

Você pode instalar o operador de inferência usando o console de SageMaker IA para uma experiência simplificada ou usar a AWS CLI para obter mais controle. Este guia aborda os dois métodos de instalação.

## Método 1: instalar o complemento de HyperPod inferência por meio do console de SageMaker IA (recomendado)
<a name="sagemaker-hyperpod-model-deployment-setup-ui"></a>

O console de SageMaker IA oferece a experiência mais simplificada com duas opções de instalação:
+ **Instalação rápida:** cria automaticamente todos os recursos necessários com padrões otimizados, incluindo funções do IAM, buckets do Amazon S3 e complementos de dependência. Um novo domínio do Studio será criado com as permissões necessárias para implantar um JumpStart modelo no cluster relevante. Essa opção é ideal para começar rapidamente com o mínimo de decisões de configuração.
+ **Instalação personalizada:** oferece flexibilidade para especificar recursos existentes ou personalizar configurações enquanto mantém a experiência de um clique. Os clientes podem optar por reutilizar funções do IAM, buckets do Amazon S3 ou complementos de dependência existentes com base em seus requisitos organizacionais.

### Pré-requisitos
<a name="sagemaker-hyperpod-model-deployment-setup-ui-prereqs"></a>
+ Um HyperPod cluster existente com orquestração do Amazon EKS
+ Permissões do IAM para administração de clusters do Amazon EKS
+ kubectl configurado para acesso ao cluster

### Etapas de instalação
<a name="sagemaker-hyperpod-model-deployment-setup-ui-steps"></a>

1. Navegue até o console de SageMaker IA e acesse **HyperPod Clusters → **Gerenciamento de clusters****.

1. Selecione seu cluster no qual você deseja instalar o Operador de Inferência.

1. Navegue até a guia **Inferência**. Selecione **Instalação rápida** para configuração automatizada ou **Instalação personalizada** para flexibilidade de configuração.

1. Se escolher Instalação personalizada, especifique os recursos existentes ou personalize as configurações conforme necessário.

1. Clique em **Instalar** para iniciar o processo de instalação automatizada.

1. Verifique o status da instalação por meio do console ou executando os seguintes comandos:

   ```
   kubectl get pods -n hyperpod-inference-system
   ```

   ```
   aws eks describe-addon --cluster-name CLUSTER-NAME --addon-name amazon-sagemaker-hyperpod-inference --region REGION
   ```

Depois que o complemento for instalado com sucesso, você poderá implantar modelos usando a documentação de implantação do modelo ou navegar até[Verificar se o operador de inferência está funcionando](#sagemaker-hyperpod-model-deployment-setup-verify).

## Método 2: Instalando o operador de inferência usando a CLI AWS
<a name="sagemaker-hyperpod-model-deployment-setup-addon"></a>

O método de instalação AWS CLI fornece mais controle sobre o processo de instalação e é adequado para automação e configurações avançadas.

### Pré-requisitos
<a name="sagemaker-hyperpod-model-deployment-setup-prereq-addon"></a>

O operador de inferência permite a implantação e o gerenciamento de endpoints de inferência de aprendizado de máquina em seu cluster Amazon EKS. Antes da instalação, certifique-se de que seu cluster tenha as configurações de segurança e a infraestrutura de suporte necessárias. Conclua estas etapas para configurar as funções do IAM, instalar o AWS Load Balancer Controller, configurar os drivers Amazon S3 e FSx Amazon CSI e implantar o KEDA e o cert-manager:

1. [Conecte-se ao seu cluster e configure variáveis de ambiente](#sagemaker-hyperpod-model-deployment-setup-connect-addon)

1. [Configurar funções do IAM para o operador de inferência](#sagemaker-hyperpod-model-deployment-setup-prepare-addon)

1. [Crie a função de controlador ALB](#sagemaker-hyperpod-model-deployment-setup-alb-addon)

1. [Criar um perfil de operador do KEDA](#sagemaker-hyperpod-model-deployment-setup-keda-addon)

1. [Instale a dependência EKS Add-Ons](#sagemaker-hyperpod-model-deployment-setup-install-dependencies)

**nota**  
Como alternativa, você pode usar CloudFormation modelos para automatizar a configuração de pré-requisitos. Para obter mais informações, consulte [Usando CloudFormation modelos para criar a pilha de pré-requisitos](#sagemaker-hyperpod-model-deployment-setup-cfn).

### Conecte-se ao seu cluster e configure variáveis de ambiente
<a name="sagemaker-hyperpod-model-deployment-setup-connect-addon"></a>

Antes de continuar, verifique se suas AWS credenciais estão configuradas corretamente e se têm as permissões necessárias. Execute as etapas a seguir usando um administrador do IAM com privilégios de administrador e acesso de administrador de cluster a um cluster Amazon EKS. Certifique-se de ter criado um HyperPod cluster com[Criação de um SageMaker HyperPod cluster com a orquestração do Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md). Instale os utilitários de linha de comando helm, eksctl e kubectl.

Para acesso administrativo do Kubernetes ao cluster do Amazon EKS, abra o console do Amazon EKS e selecione seu cluster. Na guia **Acesso**, selecione **Entradas de acesso do IAM**. Se não existir nenhuma entrada para seu diretor do IAM, selecione **Criar entrada de acesso**. Selecione o principal do IAM desejado e `AmazonEKSClusterAdminPolicy` associe-o a ele.

1. Configure o kubectl para se conectar ao cluster recém-criado orquestrado pelo HyperPod cluster Amazon EKS. Especifique a região e o nome do HyperPod cluster.

   ```
   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 estiver usando um nome de bucket personalizado que não comece com`hyperpod-tls-`, anexe a seguinte política à sua função de execução:  

   ```
   {
       "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. Defina as variáveis de ambiente padrão.

   ```
   HYPERPOD_INFERENCE_ROLE_NAME="SageMakerHyperPodInference-$HYPERPOD_CLUSTER_NAME"
   HYPERPOD_INFERENCE_NAMESPACE="hyperpod-inference-system"
   ```

1. Extraia o nome do cluster do Amazon EKS do ARN do cluster, atualize o kubeconfig local e verifique a conectividade listando todos os pods nos namespaces.

   ```
   kubectl get pods --all-namespaces
   ```

1. (Opcional) Instale o plug-in do dispositivo NVIDIA para habilitar o suporte à GPU no 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
   ```

### Configurar funções do IAM para o operador de inferência
<a name="sagemaker-hyperpod-model-deployment-setup-prepare-addon"></a>

1. Reúna os identificadores de AWS recursos essenciais e ARNs necessários para configurar as integrações de serviços entre os componentes do 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. Associe um OIDCidentity provedor do IAM ao seu cluster EKS.

   ```
   eksctl utils associate-iam-oidc-provider --region=$REGION --cluster=$EKS_CLUSTER_NAME --approve
   ```

1. Crie a política de confiança necessária para a função IAM do operador de HyperPod inferência. Essas políticas permitem a comunicação segura entre serviços entre o Amazon EKS, a SageMaker IA e outros AWS serviços.

   ```
   %%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. Crie um perfil de execução para o operador de inferência.

   ```
   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. Crie um namespace para recursos do operador de inferência

   ```
   kubectl create namespace $HYPERPOD_INFERENCE_NAMESPACE
   ```

### Crie a função de controlador ALB
<a name="sagemaker-hyperpod-model-deployment-setup-alb-addon"></a>

1. Crie a política de confiança e a política de permissões.

   ```
   # 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. Aplique Tags (`kubernetes.io.role/elb`) a todas as sub-redes no cluster Amazon EKS (públicas e privadas).

   ```
   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. Crie um endpoint da VPC do 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' ' ')
   ```

### Criar um perfil de operador do KEDA
<a name="sagemaker-hyperpod-model-deployment-setup-keda-addon"></a>

1. Crie a política de confiança e a política de permissões.

   ```
   # 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 você estiver usando modelos fechados, crie um perfil do IAM para acessar acessá-los.

   1. Crie uma política do 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. Criar um perfil do 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
      ```

### Instale a dependência EKS Add-Ons
<a name="sagemaker-hyperpod-model-deployment-setup-install-dependencies"></a>

Antes de instalar o operador de inferência, você deve instalar os seguintes complementos EKS necessários em seu cluster. O operador de inferência falhará na instalação se alguma dessas dependências estiver ausente. Cada complemento tem um requisito mínimo de versão para compatibilidade com o complemento Inference.

**Importante**  
Instale todos os complementos de dependência antes de tentar instalar o operador de inferência. Dependências ausentes causarão falhas na instalação com mensagens de erro específicas.

#### Complementos necessários
<a name="sagemaker-hyperpod-model-deployment-setup-required-addons"></a>

1. **Driver CSI do Amazon S3 Mountpoint** (versão mínima: v1.14.1-eksbuild.1)

   Necessário para montar buckets S3 como volumes persistentes em cargas de trabalho de inferência.

   ```
   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
   ```

   Para obter instruções detalhadas de instalação, incluindo as permissões necessárias do IAM, consulte [Mountpoint for Amazon S3 CSI driver](https://docs.aws.amazon.com/eks/latest/userguide/workloads-add-ons-available-eks.html#mountpoint-for-s3-add-on).

1. **Amazon FSx CSI Driver** (versão mínima: v1.6.0-eksbuild.1)

   Necessário para montar sistemas de FSx arquivos para armazenamento de modelos de alto desempenho.

   ```
   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
   ```

   Para obter instruções detalhadas de instalação, incluindo as permissões necessárias do IAM, consulte o driver [CSI 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** (versão mínima: v0.7.2-eksbuild.4)

   Necessário para funcionalidade de escalonamento automático e coleta de métricas de recursos.

   ```
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name metrics-server \
       --region $REGION
   ```

   Para obter instruções detalhadas de instalação, consulte [Metrics Server](https://docs.aws.amazon.com/eks/latest/userguide/metrics-server.html).

1. **Cert Manager** (versão mínima: v1.18.2-eksbuild.2)

   Necessário para o gerenciamento de certificados TLS para endpoints de inferência seguros.

   ```
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name cert-manager \
       --region $REGION
   ```

   Para obter instruções detalhadas de instalação, consulte [cert-manager](https://docs.aws.amazon.com/eks/latest/userguide/community-addons.html#addon-cert-manager).

#### Verifique a instalação do complemento
<a name="sagemaker-hyperpod-model-deployment-setup-verify-dependencies"></a>

Depois de instalar os complementos necessários, verifique se eles estão funcionando corretamente:

```
# 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
```

Todos os complementos devem mostrar o status “ATIVO” e todos os pods devem estar no estado “Em execução” antes de prosseguir com a instalação do operador de inferência.

**nota**  
Se você criou seu HyperPod cluster usando as opções de configuração rápida ou personalizada, o driver FSx CSI e o Cert Manager já podem estar instalados. Verifique a presença deles usando os comandos acima.

### Instalando o operador de inferência com o complemento EKS
<a name="sagemaker-hyperpod-model-deployment-setup-install-inference-operator-addon"></a>

O método de instalação do complemento EKS fornece uma experiência gerenciada com atualizações automáticas e validação de dependências integrada. Essa é a abordagem recomendada para instalar o operador de inferência.

**Instale o complemento do operador de inferência**

1. Prepare a configuração do complemento reunindo tudo o que é necessário ARNs e criando o arquivo de configuração:

   ```
   # 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. Crie o arquivo de configuração do complemento com todas as configurações necessárias:

   ```
   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. Instale o complemento do operador de inferência (versão mínima: 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. Monitore o progresso da instalação e verifique a conclusão bem-sucedida:

   ```
   # 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
   ```

Para obter uma solução detalhada de problemas de instalação, consulte[HyperPod solução de problemas de inferência](sagemaker-hyperpod-model-deployment-ts.md).

Para verificar se o operador de inferência está funcionando corretamente, continue[Verificar se o operador de inferência está funcionando](#sagemaker-hyperpod-model-deployment-setup-verify).

### Usando CloudFormation modelos para criar a pilha de pré-requisitos
<a name="sagemaker-hyperpod-model-deployment-setup-cfn"></a>

Como alternativa à configuração manual dos pré-requisitos, você pode usar CloudFormation modelos para automatizar a criação das funções e políticas necessárias do IAM para o operador de inferência.

1. Configure as variáveis de entrada. Substitua os valores do espaço reservado pelos seus próprios:

   ```
   #!/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. Obtenha informações de cluster e rede:

   ```
   # ===== 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. Crie o arquivo de parâmetros e implante a pilha:

   ```
   # ===== 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. Monitore o status de criação da pilha:

   ```
   aws cloudformation describe-stacks \
       --stack-name $STACK_NAME \
       --region $REGION \
       --query 'Stacks[0].StackStatus'
   ```

1. Depois que a pilha for criada com sucesso, recupere os valores de saída para uso na instalação do operador de inferência:

   ```
   aws cloudformation describe-stacks \
       --stack-name $STACK_NAME \
       --region $REGION \
       --query 'Stacks[0].Outputs'
   ```

Depois que a CloudFormation pilha for criada, continue com [Instalando o operador de inferência com o complemento EKS](#sagemaker-hyperpod-model-deployment-setup-install-inference-operator-addon) a instalação do operador de inferência.

## Método 3: instalação do Helm Chart
<a name="sagemaker-hyperpod-model-deployment-setup-helm"></a>

**nota**  
Para uma experiência de instalação mais simples, recomendamos usar [Método 1: instalar o complemento de HyperPod inferência por meio do console de SageMaker IA (recomendado)](#sagemaker-hyperpod-model-deployment-setup-ui) ou[Método 2: Instalando o operador de inferência usando a CLI AWS](#sagemaker-hyperpod-model-deployment-setup-addon). A instalação do Helm Chart pode ser descontinuada em uma versão futura.

### Pré-requisitos
<a name="sagemaker-hyperpod-model-deployment-setup-prereq"></a>

Antes de continuar, verifique se suas AWS credenciais estão configuradas corretamente e se têm as permissões necessárias. As etapas a seguir precisam ser executadas por um diretor do IAM com privilégios de administrador e acesso de administrador de cluster a um cluster Amazon EKS. Verifique se você criou um HyperPod cluster com[Criação de um SageMaker HyperPod cluster com a orquestração do Amazon EKS](sagemaker-hyperpod-eks-operate-console-ui-create-cluster.md). Verifique se você instalou os utilitários de linha de comando helm, eksctl e kubectl. 

Para acesso administrativo do Kubernetes ao cluster Amazon EKS, acesse o console do Amazon EKS e selecione o cluster que você está usando. Examine a guia **Acesso** e selecione “Entradas de acesso do IAM”. Se não houver uma entrada para sua entidade principal do IAM, selecione **Criar entrada de acesso**. Em seguida, selecione a entidade principal desejada do IAM e associe a `AmazonEKSClusterAdminPolicy` a ela.

1. Configure o kubectl para se conectar ao cluster recém-criado orquestrado pelo HyperPod cluster Amazon EKS. Especifique a região e o nome do HyperPod cluster.

   ```
   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. Defina as variáveis de ambiente padrão.

   ```
   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. Extraia o nome do cluster do Amazon EKS do ARN do cluster, atualize o kubeconfig local e verifique a conectividade listando todos os pods nos namespaces.

   ```
   kubectl get pods --all-namespaces
   ```

1. (Opcional) Instale o plug-in do dispositivo NVIDIA para habilitar o suporte à GPU no 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
   ```

### Preparar seu ambiente para a instalação do operador de inferência
<a name="sagemaker-hyperpod-model-deployment-setup-prepare"></a>

1. Reúna os identificadores de AWS recursos essenciais e ARNs necessários para configurar as integrações de serviços entre os componentes do 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. Associe um OIDCidentity provedor do IAM ao seu cluster EKS.

   ```
   eksctl utils associate-iam-oidc-provider --region=$REGION --cluster=$EKS_CLUSTER_NAME --approve
   ```

1. Crie a política de confiança necessária para a função IAM do operador de HyperPod inferência. Essa política permite a comunicação segura entre serviços entre o Amazon EKS, a SageMaker IA e outros AWS serviços.

   ```
   %%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. Crie uma função de execução para o operador de inferência e anexe a política gerenciada.

   ```
   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. Baixe e crie a política do IAM necessária para que o AWS Load Balancer Controller gerencie Application Load Balancers e Network Load Balancers em seu 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. Crie uma conta de serviço do IAM que vincule a conta de serviço do Kubernetes à política do IAM, permitindo que o AWS Load Balancer Controller assuma AWS as permissões necessárias por meio do 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. Aplique Tags (`kubernetes.io.role/elb`) a todas as sub-redes no cluster Amazon EKS (públicas e privadas).

   ```
   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. Crie um namespace para o KEDA e o Cert Manager.

   ```
   kubectl create namespace keda
   kubectl create namespace cert-manager
   ```

1. Crie um endpoint da VPC do 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. Configure o acesso ao armazenamento do S3:

   1. Crie uma política do IAM que conceda as permissões necessárias do S3 para usar o Mountpoint para Amazon S3, o que permite o acesso do sistema de arquivos aos buckets do S3 por meio do 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. (Opcional) Crie uma conta de serviço do IAM para o driver da CSI do Amazon S3. O driver CSI do Amazon S3 exige uma conta de serviço do IAM com permissões apropriadas para montar buckets do S3 como volumes persistentes em seu cluster Amazon EKS. Essa etapa cria um perfil do IAM e a conta de serviço do Kubernetes necessários com a política de acesso do S3 necessária.

      ```
      %%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. (Opcional) Instale o complemento do driver da CSI do Amazon S3. Esse driver permite que os pods montem buckets do S3 como volumes persistentes, fornecendo acesso direto ao armazenamento do S3 por meio de workloads do 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. (Opcional) Crie uma solicitação de volume persistente (PVC) para armazenamento do S3. Essa PVC permite que os pods solicitem e usem o armazenamento do S3 como se fosse um sistema de arquivos tradicional.

      ```
      %%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. (Opcional) Configure o acesso ao FSx armazenamento. Crie uma conta de serviço do IAM para o driver Amazon FSx CSI. Essa conta de serviço será usada pelo driver FSx CSI para interagir com o FSx serviço da Amazon em nome do seu 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
   ```

### Criar um perfil de operador do KEDA
<a name="sagemaker-hyperpod-model-deployment-setup-keda"></a>

1. Crie a política de confiança e a política de permissões.

   ```
   # 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 você estiver usando modelos fechados, crie um perfil do IAM para acessar acessá-los.

   1. Crie a política de confiança e a função do IAM para acesso fechado ao modelo.

      ```
      %%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
      ```

### Instalar o operador de inferência
<a name="sagemaker-hyperpod-model-deployment-setup-install"></a>

1. Instale o operador de HyperPod inferência. Essa etapa reúne os identificadores de recursos necessários da AWS e gera o comando de instalação do Helm com os parâmetros de configuração apropriados.

   Acesse o gráfico do leme em [https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm\$1chart](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart).

   ```
   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. Configure as anotações da conta de serviço para integração com o IAM. Essa anotação permite que a conta de serviço do operador assuma as permissões necessárias do IAM para gerenciar endpoints de inferência e interagir com os serviços da 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
   ```

## Verificar se o operador de inferência está funcionando
<a name="sagemaker-hyperpod-model-deployment-setup-verify"></a>

Siga estas etapas para verificar se a instalação do operador de inferência está funcionando corretamente implantando e testando um modelo simples.

**Implante um modelo de teste para verificar o operador**

1. Crie um arquivo de configuração de implantação do modelo. Isso cria um arquivo de manifesto do Kubernetes que define uma implantação de JumpStart modelo para o HyperPod operador de inferência.

   ```
   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. Implante o modelo e limpe o arquivo de configuração.

   ```
   kubectl create -f simple_model_install.yaml
   rm -f simple_model_install.yaml
   ```

1. Verifique a configuração da conta de serviço para garantir que o operador possa assumir AWS as permissões.

   ```
   # 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
   ```

**Defina as configurações de implantação (se estiver usando a interface do usuário do Studio)**

1. Analise o tipo de instância recomendado em **Configurações de implantação**.

1. Se estiver modificando o **tipo de instância**, garanta a compatibilidade com seu HyperPod cluster. Entre em contato com seu administrador se as instâncias compatíveis não estiverem disponíveis.

1. Para instâncias particionadas por GPU com MIG ativado, selecione uma **partição de GPU apropriada nos perfis MIG disponíveis para otimizar a utilização da GPU**. Para obter mais informações, consulte [Usando partições de GPU na Amazon SageMaker HyperPod](sagemaker-hyperpod-eks-gpu-partitioning.md).

1. Se estiver usando a governança de tarefas, defina as configurações de prioridade para os recursos de preempção de implantação do modelo.

1. Insira o namespace fornecido pelo seu administrador. Entre em contato com seu administrador para obter o namespace correto, se necessário.

## (Opcional) Configurar o acesso do usuário por meio da JumpStart interface do usuário no SageMaker AI Studio Classic
<a name="sagemaker-hyperpod-model-deployment-setup-optional-js"></a>

Para obter mais informações sobre como configurar o SageMaker HyperPod acesso para usuários do Studio Classic e configurar permissões refinadas do Kubernetes RBAC para usuários de cientistas de dados, leia e. [Configurar um cluster do Amazon EKS no Studio](sagemaker-hyperpod-studio-setup-eks.md) [Como configurar controle de acesso ao Kubernetes baseado em perfil](sagemaker-hyperpod-eks-setup-rbac.md)

1. Identifique a função do IAM que os usuários do Data Scientist usarão para gerenciar e implantar modelos a SageMaker HyperPod partir do SageMaker AI Studio Classic. Normalmente, esse é o perfil de execução do perfil do usuário ou o perfil de execução do domínio para o usuário do 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. Anexe uma política de identidade que permita o acesso à implantação do modelo.

   ```
   %%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. Crie uma entrada de acesso do EKS para o usuário associá-la a um grupo do 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. Crie políticas RBAC do Kubernetes para o usuário.

   ```
   %%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
   ```

# Implantar modelos de base e modelos personalizados e ajustados
<a name="sagemaker-hyperpod-model-deployment-deploy"></a>

Se você está implantando modelos pré-treinados de pesos abertos ou modelos fechados da Amazon ou seus próprios modelos personalizados ou SageMaker JumpStart ajustados armazenados no Amazon S3 ou na Amazon, fornece a infraestrutura flexível e escalável de que você precisa para cargas de trabalho de inferência de produção. FSx SageMaker HyperPod 




****  

|  | Implemente modelos de fundações abertas e bloqueadas a partir de JumpStart | Implemente modelos personalizados e ajustados do Amazon S3 e da Amazon FSx | 
| --- | --- | --- | 
| Descrição |  Implemente com base em um catálogo abrangente de modelos de base pré-treinados com políticas automáticas de otimização e escalabilidade personalizadas para cada família de modelos.  | Traga seus próprios modelos personalizados e ajustados e aproveite a infraestrutura corporativa SageMaker HyperPod da empresa para inferência em escala de produção. Escolha entre armazenamento econômico com o Amazon S3 ou um sistema de arquivos de alto desempenho com a Amazon. FSx | 
| Benefícios principais | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/sagemaker-hyperpod-model-deployment-deploy.html) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/sagemaker-hyperpod-model-deployment-deploy.html)  | 
| Opções de implantação |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/sagemaker-hyperpod-model-deployment-deploy.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/sagemaker-hyperpod-model-deployment-deploy.html)  | 

As seções a seguir orientam você na implantação de modelos da Amazon SageMaker JumpStart , do Amazon S3 e da Amazon. FSx

**Topics**
+ [Implante modelos JumpStart usando o Amazon SageMaker Studio](sagemaker-hyperpod-model-deployment-deploy-js-ui.md)
+ [Implante modelos JumpStart usando kubectl](sagemaker-hyperpod-model-deployment-deploy-js-kubectl.md)
+ [Implante modelos personalizados e ajustados do Amazon S3 e da Amazon usando kubectl FSx](sagemaker-hyperpod-model-deployment-deploy-ftm.md)
+ [Implantar modelos ajustados personalizados usando o SDK para Python e a HPCLI](deploy-trained-model.md) 
+ [Implante modelos da Amazon SageMaker JumpStart usando o Python SDK e o HPCLI](deploy-jumpstart-model.md) 

# Implante modelos JumpStart usando o Amazon SageMaker Studio
<a name="sagemaker-hyperpod-model-deployment-deploy-js-ui"></a>

As etapas a seguir mostram como implantar modelos JumpStart usando o Amazon SageMaker Studio.

## Pré-requisitos
<a name="sagemaker-hyperpod-model-deployment-deploy-js-ui-prereqs"></a>

Verifique se você configurou recursos de inferência em seus SageMaker HyperPod clusters da Amazon. Para obter mais informações, consulte [Configurando seus HyperPod clusters para implantação de modelos](sagemaker-hyperpod-model-deployment-setup.md). 

## Crie uma HyperPod implantação
<a name="sagemaker-hyperpod-model-deployment-deploy-js-ui-create"></a>

1. No Amazon SageMaker Studio, abra a **JumpStart**página inicial no painel de navegação esquerdo. 

1. Em **Todos os modelos públicos**, escolha um modelo que você deseja implantar.
**nota**  
Se você selecionou um modelo fechado, precisará aceitar o contrato de licença de usuário final (EULA).

1. Selecione **SageMaker HyperPod**.

1. Em **Configurações de implantação**, JumpStart recomendará uma instância para implantação. Você pode modificar essas configurações, se necessário.

   1. Se você modificar o **tipo de instância**, verifique se ela é compatível com o **HyperPod cluster** escolhido. Se não houver nenhuma instância compatível, você precisará selecionar um novo **HyperPod cluster** ou entrar em contato com seu administrador para adicionar instâncias compatíveis ao cluster.

   1. Para priorizar a implantação do modelo, instale o complemento de governança de tarefas, crie alocações de computação e configure classificações de tarefas para a política de cluster. Feito isso, você verá uma opção para selecionar uma prioridade para a implantação do modelo, que pode ser usada para antecipar outras implantações e tarefas no cluster. 

   1. Insira o namespace ao qual seu administrador lhe forneceu acesso. Talvez seja necessário entrar em contato diretamente com seu administrador para obter o namespace exato. Depois que um namespace válido for fornecido, o botão **Implantar** deverá estar habilitado para implantar o modelo.

   1. Se o tipo de instância for particionado (habilitado para MIG), selecione um tipo de partição de **GPU**.

   1. Se você quiser habilitar o L2 KVCache ou o roteamento inteligente para acelerar a inferência do LLM, ative-os. Por padrão, somente o L1 KV Cache está habilitado. Para obter mais detalhes sobre KVCache roteamento inteligente, consulte [implantação SageMaker HyperPod do modelo](sagemaker-hyperpod-model-deployment.md).

1. Escolha **Implantar** e aguarde a criação do **endpoint**.

1. Depois que o **endpoint** for criado, selecione **Testar inferência**.

## Editar uma HyperPod implantação
<a name="sagemaker-hyperpod-model-deployment-deploy-js-ui-edit"></a>

1. No Amazon SageMaker Studio, selecione **Computação e**, em seguida, **HyperPodclusters** no painel de navegação esquerdo. 

1. Em **Implantações**, escolha a implantação do HyperPod cluster que você deseja modificar.

1. No ícone de reticências verticais (⋮), escolha **Editar**.

1. Em **Configurações de implantação**, você pode habilitar ou desabilitar **Ajuste de escala automático** e alterar o número e, **Máximo de réplicas**.

1. Selecione **Salvar**.

1. O **status** mudará para **Atualizando**. Depois que o status voltar para **Em serviço**, suas alterações serão concluídas e você verá uma mensagem confirmando isso.

## Excluir uma HyperPod implantação
<a name="sagemaker-hyperpod-model-deployment-deploy-js-ui-delete"></a>

1. No Amazon SageMaker Studio, selecione **Computação e**, em seguida, **HyperPodclusters** no painel de navegação esquerdo. 

1. Em **Implantações**, escolha a implantação do HyperPod cluster que você deseja modificar.

1. No ícone de reticências verticais (⋮), escolha **Excluir**.

1. Na **janela Excluir HyperPod implantação**, marque a caixa de seleção.

1. Escolha **Excluir**.

1. O **status** mudará para **Excluindo**. Depois que a HyperPod implantação for excluída, você verá uma mensagem confirmando isso.

# Implante modelos JumpStart usando kubectl
<a name="sagemaker-hyperpod-model-deployment-deploy-js-kubectl"></a>

As etapas a seguir mostram como implantar um JumpStart modelo em um HyperPod cluster usando kubectl.

As instruções a seguir contêm células de código e comandos projetados para serem executados em um terminal. Certifique-se de ter configurado seu ambiente com AWS credenciais antes de executar esses comandos. 

## Pré-requisitos
<a name="kubectl-prerequisites"></a>

Antes de começar, verifique se você: 
+ Configure recursos de inferência em seus SageMaker HyperPod clusters da Amazon. Para obter mais informações, consulte [Configurando seus HyperPod clusters para implantação de modelos](sagemaker-hyperpod-model-deployment-setup.md).
+ Instalou o utilitário [kubectl](https://kubernetes.io/docs/reference/kubectl/) e configurou o [jq](https://jqlang.org/) em seu terminal.

## Definição e configuração
<a name="kubectl-prerequisites-setup-and-configuration"></a>

1. Selecione sua região.

   ```
   export REGION=<region>
   ```

1. Veja todos os modelos e HyperPod clusters de hubs SageMaker públicos.

1. Selecione um `JumpstartModel` do JumpstartPublic Hub. JumpstartPublic O hub tem um grande número de modelos disponíveis `NextToken` para que você possa listar iterativamente todos os modelos disponíveis no hub público.

   ```
   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. Configure o ID do modelo e o nome do cluster que você selecionou nas variáveis abaixo.
**nota**  
Consulte o administrador do cluster para garantir que as permissões sejam concedidas a esse perfil ou usuário. É possível executar `!aws sts get-caller-identity --query "Arn"` para verificar qual perfil ou usuário você está usando no seu terminal.

   ```
   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. Confirme com o administrador do cluster qual namespace você tem permissão para usar. O administrador deve ter criado uma conta de serviço `hyperpod-inference` em seu namespace.

   ```
   export CLUSTER_NAMESPACE="default"
   ```

1. Defina um nome para o endpoint e o objeto personalizado a serem criados.

   ```
   export SAGEMAKER_ENDPOINT_NAME="deepsek-qwen-1-5b-test"
   ```

1. Veja a seguir um exemplo de implantação do modelo `deepseek-llm-r1-distill-qwen-1-5b` do Jumpstart. Crie um arquivo yaml de implantação semelhante com base no modelo selecionado na etapa acima.
**nota**  
Se seu cluster usa particionamento de GPU com MIG, você pode solicitar perfis MIG específicos adicionando o `acceleratorPartitionType` campo à especificação do servidor. Para obter mais informações, consulte [Envio de tarefas com o 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
   ```

## Implantar o modelo
<a name="kubectl-deploy-your-model"></a>

**Atualizar a configuração do Kubernetes e implantar o modelo**

1. Configure o kubectl para se conectar ao HyperPod cluster orquestrado pelo 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. Implante seu JumpStart modelo.

   ```
   kubectl apply -f jumpstart_model.yaml
   ```

**Monitorar o status da implantação do modelo**

1. Verifique se o modelo foi implantado com êxito.

   ```
   kubectl describe JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Verifique se o endpoint foi criado com êxito.

   ```
   aws sagemaker describe-endpoint --endpoint-name=$SAGEMAKER_ENDPOINT_NAME --output table
   ```

1. Invoque o endpoint do modelo. Você pode recuperar programaticamente exemplos de carga útil do objeto `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
   ```

## Gerenciar a implantação
<a name="kubectl-manage-your-deployment"></a>

Exclua a implantação do JumpStart modelo quando não precisar mais dela.

```
kubectl delete JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
```

**Solução de problemas**

Use esses comandos de depuração se a implantação não estiver funcionando conforme o esperado.

1. Verifique o status da implantação do Kubernetes. Esse comando inspeciona o objeto de implantação subjacente do Kubernetes que gerencia os pods que executam seu modelo. Use isso para solucionar problemas de agendamento de pods, alocação de recursos e inicialização de contêineres.

   ```
   kubectl describe deployment $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Verifique o status do recurso do seu JumpStart modelo. Esse comando examina o recurso personalizado `JumpStartModel` que gerencia a configuração geral do modelo e o ciclo de vida de implantação. Use isso para solucionar problemas específicos do modelo, como erros de configuração ou problemas de criação de endpoints de SageMaker IA.

   ```
   kubectl describe JumpStartModel $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Verifique o status de todos os objetos do Kubernetes. Esse comando oferece uma visão geral abrangente de todos os recursos relacionados do Kubernetes em seu namespace. Use isso para realizar uma rápida verificação de integridade e ver o estado geral dos pods, serviços, implantações e recursos personalizados associados à implantação do seu modelo.

   ```
   kubectl get pods,svc,deployment,JumpStartModel,sagemakerendpointregistration -n $CLUSTER_NAMESPACE
   ```

# Implante modelos personalizados e ajustados do Amazon S3 e da Amazon usando kubectl FSx
<a name="sagemaker-hyperpod-model-deployment-deploy-ftm"></a>

As etapas a seguir mostram como implantar modelos armazenados no Amazon S3 ou na Amazon em um SageMaker HyperPod cluster da Amazon FSx usando kubectl. 

As instruções a seguir contêm células de código e comandos projetados para serem executados em um terminal. Certifique-se de ter configurado seu ambiente com AWS credenciais antes de executar esses comandos.

## Pré-requisitos
<a name="sagemaker-hyperpod-model-deployment-deploy-ftm-prereqs"></a>

Antes de começar, verifique se você: 
+ Configure recursos de inferência em seus SageMaker HyperPod clusters da Amazon. Para obter mais informações, consulte [Configurando seus HyperPod clusters para implantação de modelos](sagemaker-hyperpod-model-deployment-setup.md).
+ Instalou o utilitário [kubectl](https://kubernetes.io/docs/reference/kubectl/) e configurou o [jq](https://jqlang.org/) em seu terminal.

## Definição e configuração
<a name="sagemaker-hyperpod-model-deployment-deploy-ftm-setup"></a>

Substitua todos os valores de espaço reservado por seus identificadores de recursos.

1. Selecione sua região em seu ambiente.

   ```
   export REGION=<region>
   ```

1. Inicialize o nome do seu cluster. Isso identifica o HyperPod cluster em que seu modelo será implantado.
**nota**  
Consulte o administrador do cluster para garantir que as permissões sejam concedidas a esse perfil ou usuário. É possível executar `!aws sts get-caller-identity --query "Arn"` para verificar qual perfil ou usuário você está usando no seu terminal.

   ```
   # 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. Inicialize o namespace do seu cluster. O administrador do cluster já deve ter criado uma conta de serviço hyperpod-inference em seu namespace.

   ```
   cluster_namespace="<namespace>"
   ```

1. Crie uma CRD usando uma das seguintes opções:

------
#### [ Using Amazon FSx as the model source ]

   1. Configure um nome SageMaker de endpoint.

      ```
      export SAGEMAKER_ENDPOINT_NAME="deepseek15b-fsx"
      ```

   1. Configure o ID FSx do sistema de arquivos da Amazon a ser usado.

      ```
      export FSX_FILE_SYSTEM_ID="fs-1234abcd"
      ```

   1. Veja a seguir um exemplo de arquivo yaml para criar um endpoint com a Amazon FSx e um DeepSeek modelo.
**nota**  
Para clusters com particionamento de GPU ativado, `nvidia.com/gpu` substitua pelo nome do recurso MIG apropriado, como. `nvidia.com/mig-1g.10gb` Para obter mais informações, consulte [Envio de tarefas com o 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. Configure um nome SageMaker de endpoint.

      ```
      export SAGEMAKER_ENDPOINT_NAME="deepseek15b-s3"
      ```

   1. Configure o local do bucket do Amazon S3 no qual o modelo está localizado.

      ```
      export S3_MODEL_LOCATION="deepseek-qwen-1-5b"
      ```

   1. Veja a seguir um exemplo de arquivo yaml para criar um endpoint com o Amazon S3 e um modelo. DeepSeek 
**nota**  
Para clusters com particionamento de GPU ativado, `nvidia.com/gpu` substitua pelo nome do recurso MIG apropriado, como. `nvidia.com/mig-1g.10gb` Para obter mais informações, consulte [Envio de tarefas com o 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. Configure um nome SageMaker de endpoint.

      ```
      export SAGEMAKER_ENDPOINT_NAME="deepseek15b-s3"
      ```

   1. Configure o local do bucket do Amazon S3 no qual o modelo está localizado.

      ```
      export S3_MODEL_LOCATION="deepseek-qwen-1-5b"
      ```

   1. Veja a seguir um exemplo de arquivo yaml para criar um endpoint com o Amazon S3 e um modelo. 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
      ```

------

## Configure o cache KV e o roteamento inteligente para melhorar o desempenho
<a name="sagemaker-hyperpod-model-deployment-deploy-ftm-cache-route"></a>

1. Ative o armazenamento em cache KV definindo `enableL1Cache` e `enableL2Cache` como `true` .Em seguida, `l2CacheSpec` defina `redis` e atualize `l2CacheLocalUrl` com a URL do cluster Redis.

   ```
     kvCacheSpec:
       enableL1Cache: true
       enableL2Cache: true
       l2CacheSpec:
         l2CacheBackend: <redis | tieredstorage>
         l2CacheLocalUrl: <redis cluster URL if l2CacheBackend is redis >
   ```
**nota**  
Se o cluster redis não estiver na mesma Amazon VPC que HyperPod o cluster, a criptografia dos dados em trânsito não é garantida.
**nota**  
Não é necessário l2 CacheLocalUrl se o armazenamento em camadas estiver selecionado.

1. Ative o roteamento inteligente configurando como `enabled` `true` abaixo`intelligentRoutingSpec`. Você pode especificar em `routingStrategy` qual estratégia de roteamento usar. Se nenhuma estratégia de roteamento for especificada, o padrão será. `prefixaware`

   ```
   intelligentRoutingSpec:
       enabled: true
       routingStrategy: <routing strategy to use>
   ```

1. Ative as métricas do roteador e as métricas de armazenamento em cache definindo `enabled` como `true` abaixo`metrics`. O `port` valor precisa ser igual ao `containerPort` valor abaixo`modelInvocationPort`.

   ```
   metrics:
       enabled: true
       modelMetrics:
         port: <port value>
       ...
       modelInvocationPort:
         containerPort: <port value>
   ```

## Implemente seu modelo a partir do Amazon S3 ou da Amazon FSx
<a name="sagemaker-hyperpod-model-deployment-deploy-ftm-deploy"></a>

1. Obtenha o nome do cluster Amazon EKS do ARN do HyperPod cluster para autenticação 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. Implante seu InferenceEndpointConfig modelo com uma das seguintes opções:

------
#### [ 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
   ```

------

## Verificar o status da implantação
<a name="sagemaker-hyperpod-model-deployment-deploy-ftm-verify"></a>

1. Verifique se o modelo foi implantado com êxito.

   ```
   kubectl describe InferenceEndpointConfig $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Verifique se o endpoint foi criado com êxito.

   ```
   kubectl describe SageMakerEndpointRegistration $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Teste o endpoint implantado para verificar se ele está funcionando corretamente. Essa etapa confirma que seu modelo foi implantado com êxito e pode processar solicitações de inferência.

   ```
   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
   ```

## Gerenciar a implantação
<a name="sagemaker-hyperpod-model-deployment-deploy-ftm-manage"></a>

Quando você concluir o teste de implantação, use os comandos a seguir para limpar seus recursos.

**nota**  
Antes de continuar, verifique se você não precisa mais do modelo implantado ou dos dados armazenados.

**Limpe os seus recursos**

1. Exclua a implantação de inferência e os recursos associados do Kubernetes. Isso interrompe a execução dos contêineres do modelo e remove o SageMaker endpoint.

   ```
   kubectl delete inferenceendpointconfig $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Verifique se a limpeza foi feita com êxito.

   ```
   # # 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
   ```

**Solução de problemas**

Use esses comandos de depuração se a implantação não estiver funcionando conforme o esperado.

1. Verifique o status da implantação do Kubernetes.

   ```
   kubectl describe deployment $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Verifique o InferenceEndpointConfig status para ver o estado de implantação de alto nível e quaisquer problemas de configuração.

   ```
   kubectl describe InferenceEndpointConfig $SAGEMAKER_ENDPOINT_NAME -n $CLUSTER_NAMESPACE
   ```

1. Verifique o status de todos os objetos do Kubernetes. Obtenha uma visão abrangente de todos os recursos relacionados do Kubernetes em seu namespace. Isso oferece uma visão geral rápida do que está em execução e do que pode estar faltando.

   ```
   kubectl get pods,svc,deployment,InferenceEndpointConfig,sagemakerendpointregistration -n $CLUSTER_NAMESPACE
   ```

# Políticas de escalonamento automático para a implantação do seu modelo de HyperPod inferência
<a name="sagemaker-hyperpod-model-deployment-autoscaling"></a>

As informações a seguir fornecem exemplos práticos e configurações para implementar políticas de escalonamento automático em implantações de modelos de SageMaker HyperPod inferência da Amazon. 

Você aprenderá a configurar o ajuste de escala automático usando o `autoScalingSpec` integrado em seus arquivos YAML de implantação, bem como criar configurações autônomas de `ScaledObject` do KEDA para cenários de ajuste escala avançado. Os exemplos abrangem gatilhos de escalabilidade com base em CloudWatch métricas, comprimentos de fila do Amazon SQS, consultas do Prometheus e métricas de utilização de recursos, como CPU e memória. 

## Usando o YAML autoScalingSpec na implantação
<a name="sagemaker-hyperpod-model-deployment-autoscaling-yaml"></a>

O operador de SageMaker HyperPod inferência da Amazon fornece recursos integrados de escalonamento automático para implantações de modelos usando métricas do CloudWatch Amazon Managed Prometheus (AMP). O exemplo de YAML de implantação a seguir inclui uma seção `autoScalingSpec` que define os valores de configuração para escalar a implantação do modelo.

```
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"
```

### Explicação sobre os campos usados na implantação do YAML
<a name="sagemaker-hyperpod-model-deployment-autoscaling-fields"></a>

`minReplicaCount` (opcional, inteiro)  
Especifica o número mínimo de réplicas de implantação do modelo a serem mantidas no cluster. Durante eventos de redução da escala vertical, a implantação reduz a escala verticalmente para esse número mínimo de pods. Deve ser maior que ou igual a 0. Padrão: 1.

`maxReplicaCount` (opcional, inteiro)  
Especifica o número máximo de réplicas de implantação do modelo a serem mantidas no cluster. Ele deve ser maior que ou igual a `minReplicaCount`. Durante eventos de aumento da escala vertical, a implantação aumenta a escala verticalmente para esse número mínimo de pods. Padrão: 5.

`pollingInterval` (opcional, inteiro)  
O intervalo de tempo em segundos para consultar métricas. Mínimo: 0. Padrão: 30 segundos.

`cooldownPeriod` (opcional, inteiro)  
O intervalo de tempo de espera em segundos antes de reduzir a escala verticalmente de 1 para 0 pod durante um evento de redução da escala vertical. Aplicável somente quando `minReplicaCount` está definido como 0. Mínimo: 0. Padrão: 300 segundos.

`initialCooldownPeriod` (opcional, inteiro)  
O intervalo de tempo de espera em segundos antes de reduzir a escala verticalmente de 1 para 0 pod durante a implantação inicial. Aplicável somente quando `minReplicaCount` está definido como 0. Mínimo: 0. Padrão: 300 segundos.

`scaleDownStabilizationTime` (opcional, inteiro)  
O intervalo de tempo de estabilização em segundos entre a ativação de um acionador de redução da escala vertical e o momento em que a redução da escala vertical ocorre. Mínimo: 0. Padrão: 300 segundos.

`scaleUpStabilizationTime` (opcional, inteiro)  
O intervalo de tempo de estabilização em segundos entre a ativação de um acionador de aumento da escala vertical e o momento em que o aumento da escala vertical ocorre. Mínimo: 0. Padrão: 0 segundos.

`cloudWatchTrigger`  
A configuração do gatilho para CloudWatch métricas usadas nas decisões de escalonamento automático. Os seguintes campos opcionais estão disponíveis em `cloudWatchTrigger`:  
+ `name`(Opcional, String) - Nome do CloudWatch gatilho. Se não for fornecido, usa o formato padrão: < model-deployment-name >-scaled-object-cloudwatch-trigger.
+ `useCachedMetrics` (opcional, booliano): determina se as métricas consultadas pelo KEDA devem ser armazenadas em cache. O KEDA consulta métricas usando pollingInterval, enquanto o Horizontal Pod Autoscaler (HPA) solicita métricas do KEDA a cada 15 segundos. Quando definidas como verdadeiras, as métricas consultadas são armazenadas em cache e usadas para atender às solicitações do HPA. Padrão: true.
+ `namespace`(Obrigatório, String) - O CloudWatch namespace da métrica a ser consultada.
+ `metricName`(Obrigatório, String) - O nome da CloudWatch métrica.
+ `dimensions` (opcional, lista): a lista de dimensões da métrica. Cada dimensão inclui um nome (nome da dimensão e string) e um valor (valor da dimensão e string).
+ `targetValue`(Obrigatório, flutuante) - O valor alvo da CloudWatch métrica usada nas decisões de escalonamento automático.
+ `activationTargetValue`(Opcional, Float) - O valor alvo da CloudWatch métrica usada ao escalar de 0 a 1 pod. Aplicável somente quando `minReplicaCount` está definido como 0. Padrão: 0.
+ `minValue`(Opcional, Float) - O valor a ser usado quando a CloudWatch consulta não retorna dados. Padrão: 0.
+ `metricCollectionStartTime`(Opcional, Integer) - A hora de início da consulta métrica, calculada como T- metricCollectionStart Time. Deve ser maior ou igual metricCollectionPeriod a. Padrão: 300 segundos.
+ `metricCollectionPeriod` (opcional, inteiro): a duração da consulta de métricas em segundos. Deve ser um valor CloudWatch suportado (1, 5, 10, 30 ou um múltiplo de 60). Padrão: 300 segundos.
+ `metricStat`(Opcional, String) - O tipo de estatística da CloudWatch consulta. Padrão: `Average`.
+ `metricType` (opcional, string): define como a métrica é usada para cálculos de ajuste de escala. Padrão: `Average`. Valores permitidos: `Average`, `Value`.
  + **Média**: réplicas desejadas = ceil (valor da métrica)/(targetValue)
  + **Valor**: réplicas desejadas = (réplicas atuais) × ceil (valor da métrica)/(targetValue)

`prometheusTrigger`  
A configuração do acionador para as métricas do Amazon Managed Service for Prometheus (AMP) usadas em decisões de ajuste de escala automático. Os seguintes campos opcionais estão disponíveis em `prometheusTrigger`:  
+ `name`(Opcional, String) - Nome do CloudWatch gatilho. Se não for fornecido, usa o formato padrão: < model-deployment-name >-scaled-object-cloudwatch-trigger.
+ `useCachedMetrics` (opcional, booliano): determina se as métricas consultadas pelo KEDA devem ser armazenadas em cache. O KEDA consulta métricas usando pollingInterval, enquanto o Horizontal Pod Autoscaler (HPA) solicita métricas do KEDA a cada 15 segundos. Quando definidas como verdadeiras, as métricas consultadas são armazenadas em cache e usadas para atender às solicitações do HPA. Padrão: true.
+ `serverAddress` (obrigatório, string): o endereço do servidor do AMP. É necessário usar o formato: <https://aps-workspaces.<region>.amazonaws.com/workspaces/<workspace\$1id>.
+ `query` (obrigatório, string): a consulta PromQL usada para a métrica. Deve exibir um valor escalar.
+ `targetValue`(Obrigatório, flutuante) - O valor alvo da CloudWatch métrica usada nas decisões de escalonamento automático.
+ `activationTargetValue`(Opcional, Float) - O valor alvo da CloudWatch métrica usada ao escalar de 0 a 1 pod. Aplicável somente quando `minReplicaCount` está definido como 0. Padrão: 0.
+ `namespace` (opcional, string): o namespace a ser usado para consultas com namespace. Padrão: string vazia (`""`).
+ `customHeaders` (opcional, string): cabeçalhos personalizados a serem incluídos ao consultar o endpoint do Prometheus. Padrão: string vazia ("").
+ `metricType` (opcional, string): define como a métrica é usada para cálculos de ajuste de escala. Padrão: `Average`. Valores permitidos: `Average`, `Value`.
  + **Média**: réplicas desejadas = ceil (valor da métrica)/(targetValue)
  + **Valor**: réplicas desejadas = (réplicas atuais) × ceil (valor da métrica)/(targetValue)

## Usando as definições ScaledObject yaml do KEDA por meio do kubectl
<a name="sagemaker-hyperpod-model-deployment-autoscaling-kubectl"></a>

Além de configurar o escalonamento automático por meio da autoScalingSpec seção em seu YAML de implantação, você pode criar e aplicar definições autônomas do `ScaledObject` KEDA YAML usando kubectl.

Essa abordagem oferece maior flexibilidade para cenários complexos de ajuste de escala e permite que você gerencie políticas de ajuste de escala automático independentemente das implantações de seu modelo. `ScaledObject`As configurações do KEDA oferecem suporte a uma [ampla variedade de acionadores de escalabilidade](https://keda.sh/docs/2.17/scalers/), incluindo métricas, comprimentos de fila do CloudWatch Amazon SQS, consultas do Prometheus e métricas baseadas em recursos, como utilização de CPU e memória. Você pode aplicar essas configurações às implantações de modelos existentes fazendo referência ao nome da implantação na scaleTargetRef seção da especificação. ScaledObject 

**nota**  
Certifique-se de que a função de operador keda fornecida durante a instalação do operador de HyperPod inferência tenha permissões adequadas para consultar as métricas definidas nos acionadores de objetos escalonados.

### CloudWatch métricas
<a name="sagemaker-hyperpod-model-deployment-autoscaling-kubectl-cw"></a>

A política yaml da KEDA a seguir usa CloudWatch métricas como um gatilho para realizar o escalonamento automático em uma implantação do Kubernetes. A política consulta o número de invocações para um endpoint do SageMaker e escala o número de pods de implantação. A lista completa de parâmetros suportados pelo KEDA para `aws-cloudwatch` gatilho pode ser encontrada em [https://keda. sh/docs/2.17/scalers/aws-cloudwatch/](https://keda.sh/docs/2.17/scalers/aws-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
```

### Métricas do Amazon SQS
<a name="sagemaker-hyperpod-model-deployment-autoscaling-kubectl-sqs"></a>

A política yaml do KEDA a seguir usa métricas do Amazon SQS como um acionador para realizar o ajuste de escala automático em uma implantação do Kubernetes. A política consulta o número de invocações para um endpoint do SageMaker e escala o número de pods de implantação. A lista completa de parâmetros suportados pelo KEDA para `aws-cloudwatch` gatilho pode ser encontrada em [https://keda. sh/docs/2.17/scalers/aws-sqs/](https://keda.sh/docs/2.17/scalers/aws-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
```

### Métricas do Prometheus
<a name="sagemaker-hyperpod-model-deployment-autoscaling-kubectl-prometheus"></a>

A política yaml do KEDA a seguir usa métricas do Prometheus como um acionador para realizar o ajuste de escala automático em uma implantação do Kubernetes. A política consulta o número de invocações para um endpoint do SageMaker e escala o número de pods de implantação. A lista completa de parâmetros suportados pelo KEDA para `aws-cloudwatch` gatilho pode ser encontrada em [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
```

### Métricas de CPU
<a name="sagemaker-hyperpod-model-deployment-autoscaling-kubectl-cpu"></a>

A política yaml do KEDA a seguir usa métricas de CPU como um acionador para realizar o ajuste de escala automático em uma implantação do Kubernetes. A política consulta o número de invocações para um endpoint do SageMaker e escala o número de pods de implantação. A lista completa de parâmetros suportados pelo KEDA para `aws-cloudwatch` gatilho pode ser encontrada em [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
```

### Métricas de memória
<a name="sagemaker-hyperpod-model-deployment-autoscaling-kubectl-memory"></a>

A política yaml do KEDA a seguir usa a consulta de métricas do Prometheus como um acionador para realizar o ajuste de escala automático em uma implantação do Kubernetes. A política consulta o número de invocações para um endpoint do SageMaker e escala o número de pods de implantação. A lista completa de parâmetros suportados pelo KEDA para `aws-cloudwatch` gatilho pode ser encontrada em [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
```

## Exemplo de política do Prometheus para reduzir a escala verticalmente até 0 pod
<a name="sagemaker-hyperpod-model-deployment-autoscaling-kubectl-sample"></a>

A política yaml do KEDA a seguir usa a consulta de métricas do Prometheus como um acionador para realizar o ajuste de escala automático em uma implantação do Kubernetes. Essa política usa uma `minReplicaCount` de 0, o que permite que o KEDA reduza a escala da implantação verticalmente para 0 pod. Quando `minReplicaCount` está definida como 0, você precisa fornecer um critério de ativação para trazer o primeiro pod, após a redução da escala vertical dos pods para 0. Para o acionador do Prometheus, esse valor é fornecido por `activationThreshold`. Para a fila do SQS, ele vem de `activationQueueLength`.

**nota**  
Ao usar 0 em `minReplicaCount`, a ativação não deverá depender de uma métrica que está sendo gerada pelos pods. Quando a escala vertical dos pods for reduzida para 0, essa métrica nunca será gerada e não será possível aumentar novamente a escala vertical dos pods.

```
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**  
Os acionadores de CPU e memória podem ser escalados para 0 somente quando você define pelo menos um escalador adicional que não seja CPU ou memória (p. ex., SQS \$1 CPU ou Prometheus \$1 CPU). 

# Implementando a observabilidade de inferência em clusters HyperPod
<a name="sagemaker-hyperpod-model-deployment-observability"></a>

 SageMaker HyperPod A Amazon fornece recursos abrangentes de observabilidade de inferência que permitem que cientistas de dados e engenheiros de aprendizado de máquina monitorem e otimizem seus modelos implantados. [https://prometheus.io/](https://prometheus.io/)

Com as métricas habilitadas por padrão, a plataforma captura dados essenciais de desempenho do modelo, como latência de invocação, solicitações simultâneas, taxas de erro e métricas em nível de token, ao mesmo tempo em que fornece endpoints padrão do Prometheus para clientes que preferem implementar soluções de observabilidade personalizadas.

**nota**  
Este tópico contém um aprofundamento na implementação da observabilidade de inferência em HyperPod clusters. Para ver uma referência mais geral, consulte [Observabilidade de clusters e tarefas](sagemaker-hyperpod-eks-cluster-observability-cluster.md).

Este guia fornece step-by-step instruções para implementar e usar a observabilidade por inferência em seus HyperPod clusters. Você aprenderá a configurar métricas em seus arquivos YAML de implantação, acessar painéis de monitoramento com base em sua função (administrador, cientista de dados ou engenheiro de machine learning), integrar-se a soluções personalizadas de observabilidade usando endpoints do Prometheus e solucionar problemas comuns de monitoramento.

## Métricas de inferência compatíveis
<a name="sagemaker-hyperpod-model-deployment-observability-metrics"></a>

**Métricas de invocação**

Essas métricas capturam dados de solicitação e resposta de inferência do modelo, oferecendo visibilidade ilimitada, independentemente do tipo de modelo ou do framework de serviço. Quando as métricas de inferência estão habilitadas, elas são calculadas no momento da invocação e exportadas para sua infraestrutura de monitoramento.
+ `model_invocations_total`: número total de solicitações de invocação de modelo. 
+ `model_errors_total`: número total de erros durante a invocação do modelo.
+ `model_concurrent_requests`: solicitações simultâneas de modelo ativas.
+ `model_latency_milliseconds`: latência de invocação do modelo em milissegundos.
+ `model_ttfb_milliseconds`: tempo de modelagem até a latência do primeiro byte em milissegundos.

Métricas de contêiner do modelo

Essas métricas fornecem informações sobre as operações internas dos contêineres do modelo, como processamento de tokens, gerenciamento de filas e indicadores de desempenho específicos do framework. As métricas disponíveis dependem do framework de serviço:
+ [Métricas de contêiner da TGI](https://huggingface.co/docs/text-generation-inference/en/reference/metrics) 
+ [Métricas de contêiner da LMI](https://github.com/deepjavalibrary/djl-serving/blob/master/prometheus/README.md) 

**Dimensões métricas**

Todas as métricas de inferência incluem rótulos abrangentes que permitem filtragem e análise detalhadas em suas implantações:
+ **Identidade do cluster:**
  + `cluster_id`- O ID exclusivo do HyperPod cluster
  + `cluster_name`- O nome do HyperPod cluster
+ **Identidade do recurso:**
  + `resource_name`- Nome da implantação (por exemplo, "jumpstart-model-deployment“)
  + `resource_type`: tipo de implantação (jumpstart, inference-endpoint).
  + `namespace`: namespace do Kubernetes para multilocação.
+ **Características do modelo:**
  + `model_name`: identificador específico do modelo (por exemplo, “llama-2-7b-chat”).
  + `model_version`- Versão do modelo para A/B testes e reversões
  + `model_container_type`: framework de serviço (TGI, LMI).
+ **Contexto da infraestrutura:**
  + `pod_name`: identificador de pod individual para depuração.
  + `node_name`: nó do Kubernetes para correlação de recursos.
  + `instance_type`: tipo de instância do EC2 para análise de custos.
+ **Contexto operacional:**
  + `metric_source`: ponto de coleta (reverse-proxy, model-container).
  + `task_type`: classificação de workloads (inferência).

## Configurar métricas no YAML de implantação
<a name="sagemaker-hyperpod-model-deployment-observability-yaml"></a>

A Amazon SageMaker HyperPod habilita métricas de inferência por padrão para todas as implantações de modelos, fornecendo observabilidade imediata sem configuração adicional. Você pode personalizar o comportamento das métricas modificando a configuração YAML de implantação para habilitar ou desabilitar a coleta de métricas com base em seus requisitos específicos.

**Implemente um modelo a partir de JumpStart**

Use a seguinte configuração YAML para implantar um JuJumpStartmpStart modelo com métricas ativadas:

```
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/
```

**Implemente modelos personalizados e ajustados do Amazon S3 ou da Amazon FSx**

Configure endpoints de inferência personalizados com configurações de métricas detalhadas usando o seguinte YAML:

```
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**  
Para desabilitar métricas para implantações específicas, defina `metrics.enabled: false` na sua configuração YAML.

## Monitorar e solucionar problemas de workload de inferência por perfil
<a name="sagemaker-hyperpod-model-deployment-observability-role"></a>

 SageMaker HyperPod A Amazon fornece recursos abrangentes de observabilidade que oferecem suporte a diferentes fluxos de trabalho de usuários, desde a configuração inicial do cluster até a solução avançada de problemas de desempenho. Use a orientação a seguir com base em seu perfil e requisitos de monitoramento.

**HyperPod administrador**

**Sua responsabilidade:** habilitar a infraestrutura de observabilidade e garantir a integridade do sistema em todo o cluster.

**O que você precisa saber:**
+ A observabilidade em todo o cluster oferece métricas de infraestrutura para todas as workloads,
+ A configuração com um único clique implanta a pilha de monitoramento com painéis pré-configurados.
+ As métricas de infraestrutura são separadas das métricas de inferência específicas do modelo.

**O que você precisa fazer:**

1. Navegue até o HyperPod console.

1. Selecione o cluster

1. Acesse a página de detalhes do HyperPod cluster que você acabou de criar. Você verá uma nova opção para instalar o complemento de HyperPod observabilidade.

1. Clique na opção **Instalação rápida**. Após de 1 a 2 minutos, todas as etapas serão concluídas e você verá o painel do Grafana e os detalhes do espaço de trabalho do Prometheus.

Essa ação única implanta automaticamente o complemento do EKS, configura operadores de observabilidade e provisiona painéis predefinidos no Grafana.

**Cientista de dados**

**Sua responsabilidade:** implantar modelos com eficiência e monitorar o desempenho básico.

**O que você precisa saber:**
+ As métricas são habilitadas automaticamente quando você implanta modelos.
+ Os painéis do Grafana oferecem visibilidade imediata do desempenho do modelo.
+ Você pode filtrar painéis para se concentrar em suas implantações específicas.

**O que você precisa fazer:**

1. Implemente o modelo usando o método de sua preferência:

   1. Interface do usuário do Amazon SageMaker Studio

   1. HyperPod Comandos CLI

   1. Python SDK em cadernos

   1. kubectl com configurações YAML

1. Acesse as métricas do seu modelo:

   1. Abra o Amazon SageMaker Studio

   1. Navegue até o HyperPod Cluster e abra o Painel do Grafana

   1. Selecione o painel de inferência.

   1. Aplique filtros para visualizar a implantação de seu modelo específico.

1. Indicadores-chave de desempenho:

   1. Rastreie a latência e o throughput do modelo.

   1. Monitore as taxas de erro e a disponibilidade.

   1. Analise as tendências de utilização de recursos.

Depois que isso for concluído, você terá visibilidade imediata do desempenho do modelo sem configuração adicional, permitindo a identificação rápida de problemas de implantação ou alterações de desempenho.

**Engenheiro de machine learning (MLE)**

**Sua responsabilidade:** manter o desempenho do modelo de produção e resolver problemas complexos de desempenho.

**O que você precisa saber:**
+ As métricas avançadas incluem detalhes do contêiner do modelo, como tamanho das filas e métricas de token.
+ A análise de correlação em vários tipos de métrica revela as causas principais.
+ As configurações de ajuste de escala automático afetam diretamente o desempenho durante picos de tráfego.

**Cenário hipotético:** o modelo de chat de um cliente experimenta respostas lentas e intermitentes. Os usuários estão reclamando de atrasos de 5 a 10 segundos. O MLE pode alavancar a observabilidade da inferência para uma investigação sistemática do desempenho.

**O que você precisa fazer:**

1. Examine o painel do Grafana para entender o escopo e a gravidade do problema de desempenho:

   1. Alerta de alta latência ativo desde às 9h30.

   1. Latência P99: 8,2 s (normal: 2,1 s).

   1. Janela de tempo afetada: 9h30-10h15 (45 minutos).

1. Correlacione várias métricas para entender o comportamento do sistema durante o incidente:

   1. Solicitações simultâneas: aumentadas para 45 (normal: 15-20).

   1. Ajuste de escala de pods: o KEDA escalou 2→5 pods durante o incidente.

   1. Utilização da GPU: permaneceu normal (85%-90%).

   1. Uso de memória: normal (24 GB/32 GB).

1. Examine o comportamento do sistema distribuído, pois as métricas da infraestrutura parecem normais:

   1. Visualização em nível de nó: todos os pods concentrados no mesmo nó (distribuição ruim).

   1. Métricas de contêiner do modelo: tamanho da fila de TGI mostra 127 solicitações (normal: 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. Identifique problemas de configuração interconectados:

   1. Política de escalabilidade do KEDA: muito lenta (intervalo de pesquisa de 30 segundos).

   1. Cronograma de ajuste de escala: houve um atraso de 45 segundos entre o pico de tráfego e a reação do ajuste de escala.

1. Implemente correções específicas com base na análise:

   1. Intervalo de pesquisa do KEDA atualizado: 30 s → 15 s.

   1. Aumento de maxReplicas na configuração de ajuste de escala.

   1. Limites de ajuste de escala ajustados para escalar mais cedo (15 versus 20 solicitações simultâneas).

Você pode diagnosticar sistematicamente problemas complexos de desempenho usando métricas abrangentes, implementar correções específicas e estabelecer medidas preventivas para manter um desempenho consistente do modelo de produção.

## Implementar sua própria integração de observabilidade
<a name="sagemaker-hyperpod-model-deployment-observability-diy"></a>

A Amazon SageMaker HyperPod expõe métricas de inferência por meio de endpoints Prometheus padrão do setor, permitindo a integração com sua infraestrutura de observabilidade existente. Use essa abordagem quando preferir implementar soluções de monitoramento personalizadas ou integrar-se a plataformas de observabilidade de terceiros em vez de usar a pilha integrada do Grafana e Prometheus.

**Acessar endpoints de métricas de inferência**

**O que você precisa saber:**
+ As métricas de inferência são expostas automaticamente em endpoints padronizados do Prometheus.
+ As métricas estão disponíveis independentemente do tipo de modelo ou do framework de serviço.
+ As práticas padrão de extração do Prometheus se aplicam à coleta de dados.

**Configuração do endpoint de métricas de inferência:**
+ **Porta:** 9113
+ **Caminho:** /metrics
+ **Endpoint completo:** http://pod-ip:9113/metrics

**Métricas de instância disponíveis:**
+ `model_invocations_total`: número total de solicitações de invocação de modelo.
+ `model_errors_total`: número total de erros durante a invocação do modelo.
+ `model_concurrent_requests`: solicitações simultâneas ativas por modelo.
+ `model_latency_milliseconds`: latência de invocação do modelo em milissegundos.
+ `model_ttfb_milliseconds`: tempo de modelagem até a latência do primeiro byte em milissegundos.

**Acessar as métricas de contêiner do modelo**

**O que você precisa saber:**
+ Os contêineres de modelo expõem métricas adicionais específicas para o framework de serviço.
+ Essas métricas fornecem informações internas sobre contêineres, como processamento de tokens e tamanho das filas.
+ A configuração do endpoint varia de acordo com o tipo de contêiner do modelo.

**Para implantações de JumpStart modelos usando contêineres de inferência de geração de texto (TGI):**
+ **Porta:** 8080 (porta de contêiner do modelo)
+ **Caminho:** /metrics
+ **Documentação:** [https://huggingface. co/docs/text-generation-inference/en/reference/metrics](https://huggingface.co/docs/text-generation-inference/en/reference/metrics)

**Para implantações de JumpStart modelos usando contêineres de inferência de modelos grandes (LMI):**
+ **Porta:** 8080 (porta de contêiner do modelo)
+ **Caminho:** /server/metrics
+ **Documentação: https://github.com/deepjavalibrary/** [djl- .md serving/blob/master/prometheus/README](https://github.com/deepjavalibrary/djl-serving/blob/master/prometheus/README.md)

**Para endpoints de inferência personalizados (BYOD):**
+ **Porta:** configurada pelo cliente (o padrão 8080 é o padrão o. WorkerConfig ModelInvocationPort. ContainerPort dentro da InferenceEndpointConfig especificação.)
+ **Caminho:** configurado pelo cliente (padrão /metrics).

**Implementar integração de observabilidade personalizada**

Com uma integração de observabilidade personalizada, você é responsável pelo seguinte:

1. **Extração das métricas:** implemente a extração compatível com o Prometheus nos endpoints acima.

1. **Exportação de dados:** configure a exportação para a plataforma de observabilidade escolhida.

1. **Alertas:** configure regras de alerta com base em seus requisitos operacionais.

1. **Painéis:** crie painéis de visualização para suas necessidades de monitoramento.

## Solucionar problemas de observabilidade de inferência
<a name="sagemaker-hyperpod-model-deployment-observability-troubleshoot"></a>

**O painel não mostra dados**

Se o painel do Grafana estiver vazio e todos os painéis mostrarem “Sem dados”, execute as seguintes etapas para investigar:

1. Verifique se o administrador tem a observabilidade de inferência instalada:

   1. Navegue até o HyperPod console > Selecionar cluster > Verifique se o status “Observabilidade” mostra “Ativado”

   1. Verifique se é possível acessar o link do espaço de trabalho do Grafana pela visão geral do cluster.

   1. Confirme se o espaço de trabalho do Amazon Managed for Prometheus está configurado e está recebendo dados.

1. Verifique se o HyperPod Observabilty está ativado:

   ```
   hyp observability view      
   ```

1. Verifique se as métricas do modelo estão habilitadas:

   ```
   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. Verifique o endpoint de métricas:

   ```
   kubectl port-forward pod/customer-chat-llama-xxx 9113:9113
   curl localhost:9113/metrics | grep model_invocations_total# Expected: model_invocations_total{...} metrics
   ```

1. Verifique os logs:

   ```
   # 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
   ```

**Outros problemas comuns**


| Problema | Solução | Ação | 
| --- | --- | --- | 
|  A observabilidade de inferência não está instalada  |  Instale a observabilidade de inferência por meio do console.  |  “Ativar observabilidade” no console HyperPod   | 
|  Métricas desabilitadas no modelo  |  Atualize a configuração do modelo.  |  Adicione `metrics: {enabled: true}` à especificação do modelo.  | 
|  Espaço de trabalho do AMP não configurado  |  Corrija a conexão da fonte de dados.  |  Verifique o ID do espaço de trabalho do AMP nas fontes de dados do Grafana.  | 
|  Conectividade de rede  |  Verifique os grupos de segurança/ NACLs  |  Garanta que os pods possam alcançar endpoints do AMP.  | 

# Governança de tarefas para implantação de modelos em HyperPod
<a name="sagemaker-hyperpod-model-deployment-task-gov"></a>

Esta seção aborda como otimizar seus clusters compartilhados do Amazon SageMaker HyperPod EKS para cargas de trabalho de inferência em tempo real. Você aprenderá a configurar os recursos de governança de tarefas do Kueue, como gerenciamento de cotas, agendamento prioritário e políticas de compartilhamento de recursos, para garantir que suas workloads de inferência recebam os recursos de GPU de que precisam durante picos de tráfego, mantendo uma alocação justa nas atividades de treinamento, avaliação e teste de suas equipes. Para ter mais informações gerais sobre governança de tarefas, consulte [SageMaker HyperPod governança de tarefas](sagemaker-hyperpod-eks-operate-console-ui-governance.md).

## Como funciona o gerenciamento de workloads de inferência
<a name="sagemaker-hyperpod-model-deployment-task-gov-how"></a>

Para gerenciar com eficácia os picos de tráfego de inferência em tempo real em clusters HyperPod EKS compartilhados, implemente as seguintes estratégias de governança de tarefas usando os recursos existentes da Kueue.

**Configuração de classes prioritárias**

Defina classes prioritárias dedicadas a workloads de inferência com pesos altos (como 100) para garantir que os pods de inferência sejam admitidos e programados antes de outros tipos de tarefa. Essa configuração permite que as workloads de inferência impeçam trabalhos de menor prioridade durante a carga do cluster, o que é essencial para manter os requisitos de baixa latência durante picos de tráfego.

**Dimensionamento e alocação de cotas**

Reserve recursos de GPU suficientes na `ClusterQueue` de sua equipe para lidar com os picos de inferência esperados. Durante períodos de baixo tráfego de inferência, os recursos com cota não utilizada podem ser alocados temporariamente a tarefas de outras equipes. Quando a demanda de inferência aumenta, esses recursos tomados emprestados podem ser recuperados para priorizar os pods de inferência pendentes. Para ter mais informações, consulte [Cluster Queue](https://kueue.sigs.k8s.io/docs/concepts/cluster_queue/).

**Estratégias de compartilhamento de recursos**

Escolha entre duas abordagens de compartilhamento de cotas com base em seus requisitos:

1. **Controle estrito de recursos:** desabilite o empréstimo e a tomada de empréstimo de cotas para garantir que a capacidade reservada de GPU esteja sempre disponível para suas workloads. Essa abordagem exige o dimensionamento de cotas grandes o suficiente para lidar de forma independente com picos de demanda e pode resultar em nós ociosos durante períodos de baixo tráfego.

1. **Compartilhamento flexível de recursos:** permita a tomada de empréstimo de cotas para utilizar recursos ociosos de outras equipes quando necessário. Os pods tomados emprestados são marcados como passíveis de preempção e podem ser removidos se a equipe que está emprestando reivindicar capacidade.

**Preempção dentro da equipe**

Habilite a preempção dentro da equipe ao executar workloads mistas (avaliação, treinamento e inferência) sob a mesma cota. Isso permite que a Kueue antecipe trabalhos de baixa prioridade em sua equipe para acomodar pods de inferência de alta prioridade, garantindo que a inferência em tempo real possa ser executada sem depender do empréstimo de cotas externas. Para ter mais informações, consulte [Preempção](https://kueue.sigs.k8s.io/docs/concepts/preemption/).

## Exemplo de configuração de workload de inferência
<a name="sagemaker-hyperpod-model-deployment-task-gov-example"></a>

O exemplo a seguir mostra como a Kueue gerencia os recursos da GPU em um cluster compartilhado da Amazon. SageMaker HyperPod 

**Configuração de clusters e configuração de políticas**  
Seu cluster tem a seguinte configuração:
+ **Equipe A**: cota de 10 GPUs P4
+ **Equipe B**: cota de 20 GPUs P4
+ **Provisionamento estático**: sem ajuste de escala automático
+ **Capacidade total**: 30 P4 GPUs

O grupo compartilhado de GPU usa esta política de prioridade:

1. **Inferência em tempo real**: prioridade 100

1. **Treinamento**: prioridade 75

1. **Avaliação**: prioridade 50

O Kueue impõe cotas de equipe e classes prioritárias, com as opções de preempção e tomada de cotas emprestadas habilitadas.

**Estado inicial: utilização normal do cluster**  
Em operações normais:
+ A equipe A executa trabalhos de treinamento e avaliação em todos os 10 P4 GPUs
+ A Equipe B executa inferência em tempo real (10 P4s) e avaliação (10 P4s) dentro de sua cota de 20 GPUs.
+ O cluster é totalmente utilizado com todas as tarefas admitidas e em execução.

**Aumento de inferência: a equipe B precisa de mais GPUs**  
Quando a equipe B experimenta um pico de tráfego, pods de inferência adicionais exigem mais 5 P4. GPUs O Kueue detecta que os novos pods:
+ Estão dentro do namespace da Equipe B.
+ Têm prioridade 100 (inferência em tempo real).
+ Têm admissão pendente devido a restrições de cota.

**O processo de resposta do Kueue escolhe entre duas opções:**  
**Opção 1 (tomar cotas emprestadas)**: se a Equipe A usar apenas seis de suas dez P4s, o Kueue poderá admitir os pods da Equipe B usando as quatro P4s ociosas. No entanto, esses recursos tomados emprestados podem sofrer preempção. Se a Equipe A enviar trabalhos para atingir sua cota total, o Kueue removerá os pods de inferência tomados emprestados pela Equipe B.

**Opção 2 (autopreempção, recomendada)**: a Equipe B executa trabalhos de avaliação de baixa prioridade (prioridade 50). Quando os pods de inferência de alta prioridade estão aguardando, o Kueue impede os trabalhos de avaliação dentro da cota da Equipe B e admite os pods de inferência. Essa abordagem oferece uma alocação segura de recursos sem risco de remoção externa.

O Kueue segue um processo de três etapas para alocar recursos:

1. **Verificação de cota**

   Pergunta: A Equipe B tem cota não utilizada?
   + Sim → Admita os pods.
   + Não → Prossiga para a Etapa 2.

1. **Autopreempção na Equipe B**

   Pergunta: Os trabalhos de menor prioridade da Equipe B podem ser impedidos?
   + Sim → Impeça trabalhos de avaliação (prioridade 50), libere cinco P4s e admita pods de inferência.
   + Não → Prossiga para a Etapa 3.

   Essa abordagem mantém as workloads dentro da cota garantida da Equipe B, evitando riscos de remoção externa.

1. **Tomar emprestado de outras equipes**

   Pergunta: Existe uma cota ociosa que possa ser tomada emprestada de outras equipes?
   + Sim → Admita o uso da cota tomada emprestada (marcada como passível de preempção).
   + Não → O pod permanece no estado `NotAdmitted`.

# HyperPod solução de problemas de inferência
<a name="sagemaker-hyperpod-model-deployment-ts"></a>

Este guia de solução de problemas aborda problemas comuns que podem ocorrer durante a implantação e operação do Amazon SageMaker HyperPod Inference. Esses problemas geralmente envolvem configuração de rede VPC, permissões de IAM, gerenciamento de recursos do Kubernetes e problemas de conectividade do operador que podem impedir a implantação bem-sucedida do modelo ou fazer com que as implantações falhem ou permaneçam em estados pendentes.

Este guia de solução de problemas usa a seguinte terminologia: As **etapas de solução** de problemas são procedimentos de diagnóstico para identificar e investigar problemas, a **Resolução** fornece as ações específicas para corrigir os problemas identificados e a **Verificação** confirma se a solução funcionou corretamente.

**Topics**
+ [Inferir falhas na instalação do operador por meio do console de SageMaker IA](sagemaker-hyperpod-model-deployment-ts-console-cfn-failures.md)
+ [Falhas de instalação do operador de inferência por meio da CLI AWS](sagemaker-hyperpod-model-deployment-ts-cli.md)
+ [Tempo limite de download do certificado](sagemaker-hyperpod-model-deployment-ts-certificate.md)
+ [Problemas de implantação do modelo](sagemaker-hyperpod-model-deployment-ts-deployment-issues.md)
+ [Problema de permissão VPC ENI](sagemaker-hyperpod-model-deployment-ts-permissions.md)
+ [Problema de relacionamento de confiança do IAM](sagemaker-hyperpod-model-deployment-ts-trust.md)
+ [Erro ausente do plug-in da GPU NVIDIA](sagemaker-hyperpod-model-deployment-ts-gpu.md)
+ [O operador de inferência falha ao iniciar](sagemaker-hyperpod-model-deployment-ts-startup.md)

# Inferir falhas na instalação do operador por meio do console de SageMaker IA
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-failures"></a>

**Visão geral:** ao instalar o operador de inferência por meio do console de SageMaker IA usando a instalação rápida ou a instalação personalizada, as CloudFormation pilhas subjacentes podem falhar devido a vários problemas. Esta seção aborda cenários de falha comuns e suas resoluções.

## Falha na instalação do complemento do operador de inferência por meio da instalação rápida ou personalizada
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-stack-failed"></a>

**Problema:** a criação do HyperPod cluster é concluída com êxito, mas a instalação do complemento do operador de inferência falha.

**Causas comuns:**
+ Os limites de capacidade do pod foram excedidos nos nós do cluster. A instalação do operador de inferência requer um mínimo de 13 pods. O tipo mínimo de instância recomendado é`ml.c5.4xlarge`.
+ Problemas de permissão do IAM
+ Restrições de cota de recursos
+ Problemas de configuração de rede ou VPC

### Sintomas e diagnóstico
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-symptoms"></a>

**Sintomas:**
+ O complemento do operador de inferência mostra o status CREATE\$1FAILED ou DEGRADED no console
+ CloudFormation a pilha associada ao complemento está no estado CREATE\$1FAILED
+ O progresso da instalação é interrompido ou mostra mensagens de erro

**Etapas de diagnóstico:**

1. Verifique o status do complemento do operador de inferência:

   ```
   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. Verifique se há problemas de limite de pods:

   ```
   # 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. Verifique o status da CloudFormation pilha (se estiver usando a instalação do 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
   ```

### Resolução
<a name="sagemaker-hyperpod-model-deployment-ts-console-cfn-resolution"></a>

Para resolver a falha na instalação, salve a configuração atual, exclua o complemento com falha, corrija o problema subjacente e reinstale o operador de inferência por meio do console de SageMaker IA (recomendado) ou da CLI. AWS 

**Etapa 1: Salvar a configuração atual**
+ Extraia e salve a configuração do complemento antes da exclusão:

  ```
  # 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 '.'
  ```

**Etapa 2: excluir o complemento com falha**
+ Exclua o complemento do operador de inferência:

  ```
  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
  ```

**Etapa 3: corrigir o problema subjacente**

Escolha a resolução apropriada com base na causa da falha:

Se o problema for que o limite de pods foi excedido:

```
# 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
```

**Etapa 4: reinstalar o operador de inferência**

Depois de corrigir o problema subjacente, reinstale o operador de inferência usando um dos seguintes métodos:
+ **SageMaker Console de IA com instalação personalizada (recomendado):** reutilize as funções do IAM e o bucket TLS existentes da sua instalação anterior. Para obter as etapas, consulte [Método 1: instalar o complemento de HyperPod inferência por meio do console de SageMaker IA (recomendado)](sagemaker-hyperpod-model-deployment-setup.md#sagemaker-hyperpod-model-deployment-setup-ui).
+ **AWS CLI com configuração salva: use a configuração** da qual você fez backup na Etapa 1 para reinstalar o complemento. Para ver as etapas completas de instalação da CLI, consulte. [Método 2: Instalando o operador de inferência usando a 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 de IA com instalação rápida:** cria automaticamente novas funções do IAM, bucket TLS e complementos de dependência. Para obter as etapas, consulte [Método 1: instalar o complemento de HyperPod inferência por meio do console de SageMaker IA (recomendado)](sagemaker-hyperpod-model-deployment-setup.md#sagemaker-hyperpod-model-deployment-setup-ui).

**Etapa 5: verificar se a instalação foi bem-sucedida**

```
# 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
```

## A instalação do Cert-manager falhou devido ao webhook Kueue não estar pronto
<a name="sagemaker-hyperpod-model-deployment-ts-console-kueue-webhook-race"></a>

**Problema:** A instalação do complemento cert-manager falha com um erro de webhook porque o serviço de webhook do Task Governance (Kueue) não tem endpoints disponíveis. Essa é uma condição de corrida que ocorre quando o cert-manager tenta criar recursos antes que os pods de webhook do Task Governance estejam totalmente em execução. Isso pode acontecer quando o complemento Task Governance está sendo instalado junto com o operador Inference durante a criação do cluster.

### Sintomas e diagnóstico
<a name="sagemaker-hyperpod-model-deployment-ts-console-kueue-symptoms"></a>

**Mensagem de erro:**

```
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 raiz:**
+ O complemento Task Governance instala e registra um webhook mutante que intercepta todas as criações de implantação
+ O complemento Cert-Manager tenta criar recursos de implantação antes que os pods de webhook do Task Governance estejam prontos
+ O controle de admissão do Kubernetes chama o webhook de Governança de Tarefas, mas ele não tem endpoints (os pods ainda não estão em execução)

**Etapa de diagnóstico:**

1. Verifique o status do complemento 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
   ```

### Resolução
<a name="sagemaker-hyperpod-model-deployment-ts-console-kueue-resolution"></a>

**Solução: exclua e reinstale o cert-manager**

O webhook de Governança de Tarefas fica pronto em 60 segundos. Basta excluir e reinstalar o complemento cert-manager:

1. Exclua o complemento cert-manager com falha:

   ```
   aws eks delete-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name cert-manager \
       --region $REGION
   ```

1. Aguarde de 30 a 60 segundos para que o webhook de Governança de Tarefas fique pronto e reinstale o complemento cert-manager:

   ```
   sleep 60
   
   aws eks create-addon \
       --cluster-name $EKS_CLUSTER_NAME \
       --addon-name cert-manager \
       --region $REGION
   ```

# Falhas de instalação do operador de inferência por meio da CLI AWS
<a name="sagemaker-hyperpod-model-deployment-ts-cli"></a>

**Visão geral:** ao instalar o operador de inferência por meio da AWS CLI, a instalação do complemento pode falhar devido à falta de dependências. Esta seção aborda cenários comuns de falha na instalação da CLI e suas resoluções.

## Falha na instalação do complemento de inferência devido à falta de drivers CSI
<a name="sagemaker-hyperpod-model-deployment-ts-missing-csi-drivers"></a>

**Problema:** a criação do complemento do operador de inferência falha porque as dependências necessárias do driver CSI não estão instaladas no cluster EKS.

**Sintomas e diagnóstico:**

**Mensagens de erro:**

Os seguintes erros aparecem nos registros de criação do complemento ou nos registros do operador de inferência:

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

**Etapas de diagnóstico:**

1. Verifique se os drivers CSI estão instalados:

   ```
   # 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. Verifique o status do complemento 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. Verifique o status do complemento do operador de inferência:

   ```
   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
   ```

**Resolução:**

**Etapa 1: instalar o driver CSI S3 ausente**

1. Crie a função IAM para o driver CSI do S3 (se ainda não tiver sido criada):

   ```
   # 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. Instale o complemento do 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. Verifique a instalação do 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
   ```

**Etapa 2: instalar o driver FSx CSI ausente**

1. Crie a função IAM para o driver FSx CSI (se ainda não tiver sido criada):

   ```
   # 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. Instale o complemento do driver FSx 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
   ```

**Etapa 3: verificar todas as dependências**

Depois de instalar as dependências ausentes, verifique se elas estão funcionando corretamente antes de tentar novamente a instalação do operador de inferência:

```
# 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
```

## Definições de recursos personalizados de inferência estão ausentes durante a implantação do modelo
<a name="sagemaker-hyperpod-model-deployment-ts-crd-not-exist"></a>

**Problema:** Faltam definições de recursos personalizados (CRDs) quando você tenta criar implantações de modelo. Esse problema ocorre quando você instalou e excluiu anteriormente o complemento de inferência sem limpar as implantações do modelo que têm finalizadores.

**Sintomas e diagnóstico:**

**Causa raiz:**

Se você excluir o complemento de inferência sem primeiro remover todas as implantações do modelo, os recursos personalizados com finalizadores permanecerão no cluster. Esses finalizadores devem ser concluídos antes que você possa excluir o. CRDs O processo de exclusão do complemento não espera a conclusão da exclusão do CRD, o que faz com que ele permaneça em um estado de encerramento e impede novas instalações. CRDs 

**Para diagnosticar esse problema**

1. Verifique se CRDs existe.

   ```
   kubectl get crd | grep inference.sagemaker.aws.amazon.com
   ```

1. Verifique se há recursos personalizados bloqueados.

   ```
   # Check for JumpStartModel resources
   kubectl get jumpstartmodels -A
   
   # Check for InferenceEndpointConfig resources
   kubectl get inferenceendpointconfigs -A
   ```

1. Inspecione os finalizadores em recursos bloqueados.

   ```
   # 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}'
   ```

**Resolução:**

Remova manualmente os finalizadores de todas as implantações do modelo que não foram excluídas quando você removeu o complemento de inferência. Conclua as etapas a seguir para cada recurso personalizado bloqueado.

**Para remover finalizadores dos recursos JumpStartModel **

1. Liste todos os JumpStartModel recursos em todos os namespaces.

   ```
   kubectl get jumpstartmodels -A
   ```

1. Para cada JumpStartModel recurso, remova os finalizadores corrigindo o recurso para definir metadata.finalizers como uma matriz vazia.

   ```
   kubectl patch jumpstartmodels <model-name> -n <namespace> -p '{"metadata":{"finalizers":[]}}' --type=merge
   ```

   O exemplo a seguir mostra como corrigir um recurso chamado kv-l1-only.

   ```
   kubectl patch jumpstartmodels kv-l1-only -n default -p '{"metadata":{"finalizers":[]}}' --type=merge
   ```

1. Verifique se a instância do modelo foi excluída.

   ```
   kubectl get jumpstartmodels -A
   ```

   Quando todos os recursos estiverem limpos, você deverá ver o seguinte resultado.

   ```
   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. Verifique se o JumpStartModel CRD foi removido.

   ```
   kubectl get crd | grep jumpstartmodels.inference.sagemaker.aws.amazon.com
   ```

   Se o CRD for removido com sucesso, esse comando não retornará nenhuma saída.

**Para remover finalizadores dos recursos InferenceEndpointConfig **

1. Liste todos os InferenceEndpointConfig recursos em todos os namespaces.

   ```
   kubectl get inferenceendpointconfigs -A
   ```

1. Para cada InferenceEndpointConfig recurso, remova os finalizadores.

   ```
   kubectl patch inferenceendpointconfigs <config-name> -n <namespace> -p '{"metadata":{"finalizers":[]}}' --type=merge
   ```

   O exemplo a seguir mostra como corrigir um recurso chamado my-inference-config.

   ```
   kubectl patch inferenceendpointconfigs my-inference-config -n default -p '{"metadata":{"finalizers":[]}}' --type=merge
   ```

1. Verifique se a instância de configuração foi excluída.

   ```
   kubectl get inferenceendpointconfigs -A
   ```

   Quando todos os recursos estiverem limpos, você deverá ver o seguinte resultado.

   ```
   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. Verifique se o InferenceEndpointConfig CRD foi removido.

   ```
   kubectl get crd | grep inferenceendpointconfigs.inference.sagemaker.aws.amazon.com
   ```

   Se o CRD for removido com sucesso, esse comando não retornará nenhuma saída.

**Para reinstalar o complemento de inferência**

Depois de limpar todos os recursos bloqueados e verificar se CRDs eles foram removidos, reinstale o complemento de inferência. Para obter mais informações, consulte [Instalando o operador de inferência com o complemento EKS](sagemaker-hyperpod-model-deployment-setup.md#sagemaker-hyperpod-model-deployment-setup-install-inference-operator-addon).

**Verificação:**

1. Verifique se o complemento de inferência foi instalado com êxito.

   ```
   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
   ```

   O Status deve ser ATIVO e a Saúde deve ser SAUDÁVEL.

1. Verifique se CRDs estão instalados corretamente.

   ```
   kubectl get crd | grep inference.sagemaker.aws.amazon.com
   ```

   Você deve ver o relacionado à inferência CRDs listado na saída.

1. Teste a criação de uma nova implantação de modelo para confirmar se o problema foi resolvido.

   ```
   # Create a test deployment using your preferred method
   kubectl apply -f <your-model-deployment.yaml>
   ```

**Prevenção**:

Para evitar esse problema, conclua as etapas a seguir antes de desinstalar o complemento de inferência.

1. Exclua todas as implantações do modelo.

   ```
   # 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. Verifique se todos os recursos personalizados foram excluídos.

1. Depois de confirmar que todos os recursos foram limpos, exclua o complemento de inferência.

## Falha na instalação do complemento de inferência devido à falta do cert-manager
<a name="sagemaker-hyperpod-model-deployment-ts-missing-cert-manager"></a>

**Problema:** a criação do complemento do operador de inferência falha porque o complemento EKS do cert-manager não está instalado, resultando na ausência de definições de recursos personalizados (). CRDs

**Sintomas e diagnóstico:**

**Mensagens de erro:**

Os seguintes erros aparecem nos registros de criação do complemento ou nos registros do operador de inferência:

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

**Etapas de diagnóstico:**

1. Verifique se o cert-manager está instalado:

   ```
   # 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. Verifique o status do complemento do operador de inferência:

   ```
   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
   ```

**Resolução:**

**Etapa 1: instalar o complemento cert-manager**

1. Instale o complemento 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. Verifique a instalação do 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
   ```

**Etapa 2: Repetir a instalação do operador de inferência**

1. Depois que o cert-manager for instalado, tente novamente a instalação do operador de inferência:

   ```
   # 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. Monitore a instalação:

   ```
   # 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
   ```

## Falha na instalação do complemento de inferência devido à falta do controlador ALB
<a name="sagemaker-hyperpod-model-deployment-ts-missing-alb"></a>

**Problema:** a criação do complemento do operador de inferência falha porque o Load AWS Balancer Controller não está instalado ou não está configurado corretamente para o complemento de inferência.

**Sintomas e diagnóstico:**

**Mensagens de erro:**

Os seguintes erros aparecem nos registros de criação do complemento ou nos registros do operador de inferência:

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

**Etapas de diagnóstico:**

1. Verifique se o controlador ALB está instalado:

   ```
   # 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. Verifique a configuração do complemento do operador de inferência:

   ```
   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
   ```

**Resolução:**

Escolha uma das seguintes opções com base na sua configuração:

**Opção 1: deixar o complemento de inferência instalar o controlador ALB (recomendado)**
+ Verifique se a função ALB foi criada e configurada corretamente em sua configuração complementar:

  ```
  # 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
  ```

**Opção 2: Usar a instalação existente do controlador ALB**
+ Se você já tiver o ALB Controller instalado, configure o complemento para usar a instalação existente:

  ```
  # 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
  ```

**Etapa 3: Repetir a instalação do operador de inferência**

1. Reinstale o complemento do operador de inferência com a configuração atualizada:

   ```
   # 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. Verifique se o controlador ALB está funcionando:

   ```
   # 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
   ```

## Falha na instalação do complemento de inferência devido à falta do operador KEDA
<a name="sagemaker-hyperpod-model-deployment-ts-missing-keda"></a>

**Problema:** a criação do complemento do operador de inferência falha porque o operador KEDA (Kubernetes Event Driven Autoscaler) não está instalado ou não está configurado adequadamente para o complemento de inferência.

**Sintomas e diagnóstico:**

**Mensagens de erro:**

Os seguintes erros aparecem nos registros de criação do complemento ou nos registros do operador de inferência:

```
KEDA operator not installed (missing keda-operator pods). 
KEDA can be installed separately in any namespace or via the Inference addon.
```

**Etapas de diagnóstico:**

1. Verifique se o operador KEDA está instalado:

   ```
   # 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. Verifique a configuração do complemento do operador de inferência:

   ```
   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
   ```

**Resolução:**

Escolha uma das seguintes opções com base na sua configuração:

**Opção 1: deixar o complemento de inferência instalar o KEDA (recomendado)**
+ Verifique se a função KEDA foi criada e configurada corretamente na configuração do complemento:

  ```
  # 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
  ```

**Opção 2: Usar a instalação existente do KEDA**
+ Se você já tem o KEDA instalado, configure o complemento para usar a instalação existente:

  ```
  # 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
  ```

**Etapa 3: Repetir a instalação do operador de inferência**

1. Reinstale o complemento do operador de inferência com a configuração atualizada:

   ```
   # 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. Verifique se o KEDA está funcionando:

   ```
   # 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
   ```

# Tempo limite de download do certificado
<a name="sagemaker-hyperpod-model-deployment-ts-certificate"></a>

Ao implantar um endpoint de SageMaker IA, o processo de criação falha devido à incapacidade de baixar o certificado da autoridade de certificação (CA) em um ambiente VPC. Para obter etapas detalhadas de configuração, consulte o [Guia do administrador](https://github.com/aws-samples/sagemaker-genai-hosting-examples/blob/main/SageMakerHyperpod/hyperpod-inference/Hyperpod_Inference_Admin_Notebook.ipynb).

**Mensagem de erro:**

O erro a seguir aparece nos CloudWatch registros do endpoint de SageMaker IA: 

```
Error downloading CA certificate: Connect timeout on endpoint URL: "https://****.s3.<REGION>.amazonaws.com/****/***.pem"
```

**Causa raiz:**
+ Esse problema ocorre quando o operador de inferência não pode acessar o certificado autoassinado no Amazon S3 dentro de sua VPC
+ A configuração adequada do endpoint Amazon S3 VPC é essencial para o acesso ao certificado

**Resolução:**

1. Se você não tiver um endpoint Amazon S3 VPC:
   + [Crie um endpoint VPC do Amazon S3 seguindo a configuração na seção 5.3 do Guia do administrador.](https://github.com/aws-samples/sagemaker-genai-hosting-examples/blob/main/SageMakerHyperpod/hyperpod-inference/Hyperpod_Inference_Admin_Notebook.ipynb)

1. Se você já tem um endpoint Amazon S3 VPC:
   + Certifique-se de que a tabela de rotas da sub-rede esteja configurada para apontar para o endpoint da VPC (se estiver usando o endpoint do gateway) ou que o DNS privado esteja habilitado para o endpoint da interface.
   + O endpoint VPC do Amazon S3 deve ser semelhante à configuração mencionada na seção 5.3 Etapa de criação do endpoint

# Problemas de implantação do modelo
<a name="sagemaker-hyperpod-model-deployment-ts-deployment-issues"></a>

**Visão geral:** esta seção aborda problemas comuns que ocorrem durante a implantação do modelo, incluindo estados pendentes, implantações com falha e monitoramento do progresso da implantação.

## Implantação do modelo paralisada em estado pendente
<a name="sagemaker-hyperpod-model-deployment-ts-pending"></a>

Ao implantar um modelo, a implantação permanece em um estado “Pendente” por um longo período. Isso indica que o operador de inferência não consegue iniciar a implantação do modelo em seu HyperPod cluster.

**Componentes afetados:**

Durante a implantação normal, o operador de inferência deve:
+ Implemente um pod de modelo
+ Criar um load balancer
+ Crie um endpoint de SageMaker IA

**Etapas de solução de problemas:**

1. Verifique o status do pod do operador de inferência:

   ```
   kubectl get pods -n hyperpod-inference-system
   ```

   Exemplo de saída esperado:

   ```
   NAME                                                           READY   STATUS    RESTARTS   AGE
   hyperpod-inference-operator-controller-manager-65c49967f5-894fg   1/1     Running   0         6d13h
   ```

1. Analise os registros do operador de inferência e examine os registros do operador em busca de mensagens de erro:

   ```
   kubectl logs hyperpod-inference-operator-controller-manager-5b5cdd7757-txq8f -n hyperpod-inference-operator-system
   ```

**O que procurar:**
+ Mensagens de erro nos registros do operador
+ Status do pod do operador
+ Quaisquer avisos ou falhas relacionados à implantação

**nota**  
Uma implantação saudável deve progredir além do estado “Pendente” dentro de um tempo razoável. Se os problemas persistirem, revise os registros do operador de inferência em busca de mensagens de erro específicas para determinar a causa raiz.

## Solução de problemas do estado de falha na implantação do modelo
<a name="sagemaker-hyperpod-model-deployment-ts-failed"></a>

Quando a implantação de um modelo entra no estado “Falha”, a falha pode ocorrer em um dos três componentes:
+ Implantação de um pod modelo
+ Criação de balanceador de carga
+ SageMaker Criação de endpoints de IA

**Etapas de solução de problemas:**

1. Verifique o status do operador de inferência:

   ```
   kubectl get pods -n hyperpod-inference-system
   ```

   Saída esperada:

   ```
   NAME                                                           READY   STATUS    RESTARTS   AGE
   hyperpod-inference-operator-controller-manager-65c49967f5-894fg   1/1     Running   0         6d13h
   ```

1. Revise os registros do operador:

   ```
   kubectl logs hyperpod-inference-operator-controller-manager-5b5cdd7757-txq8f -n hyperpod-inference-operator-system
   ```

**O que procurar:**

Os registros do operador indicarão qual componente falhou:
+ Falhas na implantação do pod de modelo
+ Problemas de criação do balanceador de carga
+ SageMaker Erros de endpoint de IA

## Verificando o progresso da implantação do modelo
<a name="sagemaker-hyperpod-model-deployment-ts-progress"></a>

Para monitorar o progresso da implantação do seu modelo e identificar possíveis problemas, você pode usar os comandos kubectl para verificar o status de vários componentes. Isso ajuda a determinar se a implantação está progredindo normalmente ou se encontrou problemas durante a criação do pod de modelo, a configuração do balanceador de carga ou as fases de configuração do endpoint de SageMaker IA.

**Método 1: Verificar o status do JumpStart modelo**

```
kubectl describe jumpstartmodel.inference.sagemaker.aws.amazon.com/<model-name> -n <namespace>
```

**Principais indicadores de status a serem monitorados:**

1. Status da implantação
   + Procure por`Status.State`: Deve mostrar `DeploymentComplete`
   + Verifique `Status.Deployment Status.Available Replicas`
   + Monitore `Status.Conditions` o progresso da implantação

1. SageMaker Status do endpoint de IA
   + Verifique`Status.Endpoints.Sagemaker.State`: Deve aparecer `CreationCompleted`
   + Verificar `Status.Endpoints.Sagemaker.Endpoint Arn`

1. Status do certificado TLS
   + Exibir `Status.Tls Certificate` detalhes
   + Verifique a expiração do certificado em `Last Cert Expiry Time`

**Método 2: Verificar a configuração do endpoint de inferência**

```
kubectl describe inferenceendpointconfig.inference.sagemaker.aws.amazon.com/<deployment_name> -n <namespace>
```

**O status comum afirma:**
+ `DeploymentInProgress`: Fase inicial de implantação
+ `DeploymentComplete`: Implantação bem-sucedida
+ `Failed`: Falha na implantação

**nota**  
Monitore a seção Eventos em busca de avisos ou erros. Verifique se a contagem de réplicas corresponde à configuração esperada. Verifique se todas as condições são exibidas `Status: True` para uma implantação saudável.

# Problema de permissão VPC ENI
<a name="sagemaker-hyperpod-model-deployment-ts-permissions"></a>

SageMaker A criação de endpoints de IA falha devido a permissões insuficientes para criar interfaces de rede na VPC.

**Mensagem de erro:**

```
Please ensure that the execution role for variant AllTraffic has sufficient permissions for creating an endpoint variant within a VPC
```

**Causa raiz:**

A função de execução do operador de inferência não tem a permissão necessária do Amazon EC2 para criar interfaces de rede (ENI) na VPC.

**Resolução:**

Adicione a seguinte permissão do IAM à função de execução do operador de inferência:

```
{
    "Effect": "Allow",
    "Action": [
        "ec2:CreateNetworkInterfacePermission",
        "ec2:DeleteNetworkInterfacePermission"
     ],
    "Resource": "*"
}
```

**Verificação:**

Depois de adicionar a permissão:

1. Exclua o endpoint com falha (se existir)

1. Repita a criação do endpoint

1. Monitore o status da implantação para uma conclusão bem-sucedida

**nota**  
Essa permissão é essencial para endpoints de SageMaker IA executados no modo VPC. Certifique-se de que a função de execução também tenha todas as outras permissões necessárias relacionadas à VPC.

# Problema de relacionamento de confiança do IAM
<a name="sagemaker-hyperpod-model-deployment-ts-trust"></a>

HyperPod o operador de inferência falha ao iniciar com um AssumeRoleWithWebIdentity erro STS, indicando um problema de configuração do relacionamento de confiança do IAM.

**Mensagem de erro:**

```
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
```

**Resolução:**

Atualize a relação de confiança da função de execução do IAM do operador de inferência com a configuração a seguir.

Substitua os seguintes espaços reservados:
+ `<ACCOUNT_ID>`: ID AWS da sua conta
+ `<REGION>`: Sua AWS região
+ `<OIDC_ID>`: ID do provedor OIDC do seu 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ção:**

Depois de atualizar a relação de confiança:

1. Verifique a configuração da função no console do IAM

1. Reinicie o operador de inferência, se necessário

1. Monitore os registros do operador para uma inicialização bem-sucedida

# Erro ausente do plug-in da GPU NVIDIA
<a name="sagemaker-hyperpod-model-deployment-ts-gpu"></a>

A implantação do modelo falha com erro de insuficiência de GPU, apesar de ter nós de GPU disponíveis. Isso ocorre quando o plug-in do dispositivo NVIDIA não está instalado no HyperPod cluster.

**Mensagem de erro:**

```
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 raiz:**
+ O Kubernetes não consegue detectar recursos de GPU sem o plug-in de dispositivo NVIDIA
+ Resulta em falhas de agendamento para cargas de trabalho da GPU

**Resolução:**

Instale o plug-in da GPU NVIDIA executando:

```
kubectl create -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/refs/tags/v0.17.1/deployments/static/nvidia-device-plugin.yml
```

**Etapas de verificação:**

1. Verifique o status de implantação do plug-in:

   ```
   kubectl get pods -n kube-system | grep nvidia-device-plugin
   ```

1. Verifique se os recursos da GPU agora estão visíveis:

   ```
   kubectl get nodes -o=custom-columns=NAME:.metadata.name,GPU:.status.allocatable.nvidia\\.com/gpu
   ```

1. Repetir a implantação do modelo

**nota**  
Certifique-se de que os drivers NVIDIA estejam instalados nos nós da GPU. A instalação do plug-in é uma configuração única por cluster. Pode exigir privilégios de administrador do cluster para instalar.

# O operador de inferência falha ao iniciar
<a name="sagemaker-hyperpod-model-deployment-ts-startup"></a>

O pod do operador de inferência falhou ao iniciar e está causando a seguinte mensagem de erro. Esse erro ocorre porque a política de permissão da função de execução do operador não está autorizada a ser executada`sts:AssumeRoleWithWebIdentity`. Devido a isso, a peça do operador em execução no plano de controle não é iniciada.

**Mensagem de erro:**

```
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 raiz:**
+ A política de permissão da função de execução do operador de inferência não está definida para acessar o token de autorização para recursos.

**Resolução:**

Defina a seguinte política da função de execução de `EXECUTION_ROLE_ARN` para o operador de HyperPod inferência:

```
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": "*"
        }
    ]
}
```

------

**Etapas de verificação:**

1. Alterar a política.

1. Encerre o pod do operador de HyperPod inferência.

1. O pod será reiniciado sem nenhuma exceção.

# Notas de lançamento do Amazon SageMaker HyperPod Inference
<a name="sagemaker-hyperpod-inference-release-notes"></a>

Este tópico aborda as notas de lançamento que rastreiam atualizações, correções e novos recursos do Amazon SageMaker HyperPod Inference. SageMaker HyperPod A inferência permite que você implante e escale modelos de aprendizado de máquina em seus HyperPod clusters com confiabilidade de nível corporativo. Para ver os lançamentos, atualizações e melhorias gerais da SageMaker HyperPod plataforma Amazon, consulte[Notas SageMaker HyperPod de lançamento da Amazon](sagemaker-hyperpod-release-notes.md).

Para obter informações sobre recursos de SageMaker HyperPod inferência e opções de implantação, consulte[Implantação de modelos na Amazon SageMaker HyperPod](sagemaker-hyperpod-model-deployment.md).

## SageMaker HyperPod Notas de lançamento do Inference: v3.1
<a name="sagemaker-hyperpod-inference-release-notes-20260403"></a>

**Data de lançamento:** 3 de abril de 2026

**Resumo**

O Inference Operator v3.1 apresenta configuração personalizada de pod do Kubernetes, suporte personalizado a certificados e limites de solicitação por pod.

**Características principais**
+ **Configuração personalizada do pod Kubernetes** — Foi adicionado um novo `kubernetes` campo ao `InferenceEndpointConfig` CRD que permite aos usuários personalizar as configurações do pod de inferência:
  + **Contêineres de inicialização personalizados — Execute contêineres** de inicialização definidos pelo usuário antes que o servidor de inferência seja iniciado (por exemplo, aquecimento de cache, configuração do GDS). Os contêineres iniciais são injetados após o contêiner de pré-busca do operador.
  + **Volumes personalizados** — adicione volumes adicionais (`emptyDir`,, `hostPath``configMap`, etc.) à especificação do pod, que podem ser referenciados pelos contêineres de inicialização por meio de. `volumeMounts`
  + **Nome do agendador personalizado** — especifique um agendador Kubernetes personalizado para a colocação do pod.
+ **Certificados personalizados — Use seus próprios certificados** ACM para endpoints de inferência em vez de certificados autoassinados gerados pelo operador, configurados via. `customCertificateConfig` Oferece suporte a certificados ACM publicamente confiáveis, certificados de CA AWS privada e certificados importados de fontes externas CAs. O operador monitora a integridade do certificado e oferece suporte à detecção automática de renovação.
+ **Limites** de solicitação — Controle o tratamento de solicitações por pod por meio da nova `RequestLimits` configuração abaixo`Worker`, com os seguintes campos configuráveis:
  + `maxConcurrentRequests`— Máximo de solicitações simultâneas em voo por pod.
  + `maxQueueSize`— Solicitações de fila quando o limite de simultaneidade é atingido antes da rejeição.
  + `overflowStatusCode`— Código de status HTTP retornado quando os limites são excedidos (padrão: 429).

Para obter informações detalhadas, incluindo pré-requisitos e instruções de atualização, consulte as seções abaixo.

### Pré-requisitos
<a name="sagemaker-hyperpod-inference-v3-1-prerequisites"></a>

Para usar o recurso de certificados personalizados, adicione as seguintes permissões à sua função de execução de operador de inferência:

```
{  
    "Sid": "ACMCertificateAccess",  
    "Effect": "Allow",  
    "Action": [  
        "acm:DescribeCertificate",  
        "acm:GetCertificate"  
    ],  
    "Resource": "arn:aws:acm:*:*:certificate/*"  
}
```

### Atualize para a v3.1
<a name="sagemaker-hyperpod-inference-v3-1-upgrade"></a>

Se você já tem o Operador de Inferência instalado via Helm, use os seguintes comandos para fazer o upgrade:

```
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.1
    
# Verification
kubectl get deployment hyperpod-inference-operator-controller-manager \
  -n hyperpod-inference-system \
  -o jsonpath='{.spec.template.spec.containers[0].image}'
```

## SageMaker HyperPod Notas de lançamento do Inference: v3.0
<a name="sagemaker-hyperpod-inference-release-notes-20260223"></a>

**Data de lançamento:** 23 de fevereiro de 2026

**Resumo**

O Inference Operator 3.0 apresenta a integração do EKS Add-on para gerenciamento simplificado do ciclo de vida, suporte ao Node Affinity para controle granular de agendamento e marcação aprimorada de recursos. As instalações existentes baseadas no Helm podem ser migradas para o complemento EKS usando o script de migração fornecido. Atualize sua função de execução do Operador de Inferência com novas permissões de marcação antes da atualização.

**Características principais**
+ **Integração complementar do EKS** — gerenciamento do ciclo de vida de nível empresarial com experiência de instalação simplificada
+ **Node Affinity** — Controle granular de agendamento para excluir instâncias spot, preferir zonas de disponibilidade ou direcionar nós com rótulos personalizados

Para obter informações detalhadas, incluindo pré-requisitos, instruções de atualização e diretrizes de migração, consulte as seções abaixo.

### Pré-requisitos
<a name="sagemaker-hyperpod-inference-v3-0-prerequisites"></a>

Antes de atualizar a versão do Helm para 3.0, os clientes devem adicionar permissões adicionais de marcação à sua função de execução de operador de inferência. Como parte da melhoria da marcação e da segurança de recursos, o Operador de Inferência agora marca os recursos ALB, S3 e ACM. Esse aprimoramento requer permissões adicionais na função de execução do Operador de Inferência. Adicione as seguintes permissões à sua função de execução do Operador de Inferência:

```
{  
    "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  
    ]  
}
```

### Atualize para v3.0
<a name="sagemaker-hyperpod-inference-v3-0-upgrade"></a>

Se você já tem o Operador de Inferência instalado via Helm, use os seguintes comandos para fazer o upgrade:

```
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}'
```

### Migração do complemento Helm para EKS
<a name="sagemaker-hyperpod-inference-v3-0-migration"></a>

Se o operador de inferência for instalado por meio do Helm antes da versão 3.0, recomendamos migrar para o complemento EKS para obter atualizações oportunas sobre os novos recursos que serão lançados para o operador de inferência. Esse script migra o Operador de SageMaker HyperPod Inferência da instalação baseada no Helm para a instalação do EKS Add-on.

**Visão geral:** o script usa um nome de cluster e uma região como parâmetros, recupera a configuração de instalação existente do Helm e migra para a implantação do EKS Add-on. Ele cria novas funções do IAM para o operador de inferência, o controlador ALB e o operador KEDA.

Antes de migrar o operador de inferência, o script garante que as dependências necessárias (driver S3 CSI, driver CSI, cert-manager e FSx metrics-server) existam. Se eles não existirem, ele os implanta como complemento.

Após a conclusão da migração do Inference Operator Add-on, o script também migra o S3 e outras dependências (ALB FSx, KEDA, cert-manager, metrics-server) se elas tiverem sido originalmente instaladas por meio do gráfico Inference Operator Helm. Use `--skip-dependencies-migration` para pular essa etapa para o driver S3 CSI, o driver CSI, o FSx cert-manager e o servidor de métricas. Observe que o ALB e o KEDA são instalados como parte do complemento no mesmo namespace do operador de inferência e serão migrados como parte do complemento do operador de inferência.

**Importante**  
Durante a migração, não implante novos modelos, pois eles não serão implantados até que a migração seja concluída. Quando o Inference Operator Add-on estiver no estado ATIVO, novos modelos poderão ser implantados. O tempo de migração normalmente leva de 15 a 20 minutos e pode ser concluído em 30 minutos se apenas alguns modelos estiverem implantados atualmente.

**Pré-requisitos de migração:**
+ AWS CLI configurado com as credenciais apropriadas
+ kubectl configurado com acesso ao seu cluster EKS
+ Capacete instalado
+ Instalação existente do Helm do hyperpod-inference-operator

**nota**  
Os endpoints que já estão em execução não serão interrompidos durante o processo de migração. Os endpoints existentes continuarão a atender ao tráfego sem interrupções durante a migração.

**Obtendo o script de migração:**

```
git clone https://github.com/aws/sagemaker-hyperpod-cli.git
cd sagemaker-hyperpod-cli/helm_chart/HyperPodHelmChart/\
charts/inference-operator/migration
```

**Uso:**

```
./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)
```

**Opções:**
+ `--cluster-name NAME`— Nome do cluster EKS (obrigatório)
+ `--region REGION`— AWS região (obrigatório)
+ `--helm-namespace NAMESPACE`— Namespace onde o gráfico Helm está instalado (padrão: kube-system) (opcional)
+ `--s3-mountpoint-role-arn ARN`— ARN da função IAM do driver CSI do S3 Mountpoint (opcional)
+ `--fsx-role-arn ARN`— ARN da função IAM do driver FSx CSI (opcional)
+ `--auto-approve`— Ignore as solicitações de confirmação se esse sinalizador estiver ativado. `step-by-step`e `auto-approve` são mutuamente exclusivos, `--auto-approve` se forem fornecidos, não especifique `--step-by-step` (opcional)
+ `--step-by-step`— Faça uma pausa após cada etapa principal para revisão. Isso não deve ser mencionado `--auto-approve` se já tiver sido adicionado (opcional)
+ `--skip-dependencies-migration`— Ignore a migração das dependências instaladas pelo Helm para o complemento. Pois as dependências NÃO foram instaladas por meio do gráfico Inference Operator Helm ou se você quiser gerenciá-las separadamente. (opcional)

**Exemplos:**

Migração básica (migra dependências):

```
./helm_to_addon.sh \
  --cluster-name my-cluster \
  --region us-east-1
```

Aprovação automática sem avisos:

```
./helm_to_addon.sh \
  --cluster-name my-cluster \
  --region us-east-1 \
  --auto-approve
```

Ignore a migração de dependências para o S3 mountpoint FSx, o cert manager e o servidor Metrics:

```
./helm_to_addon.sh \
  --cluster-name my-cluster \
  --region us-east-1 \
  --skip-dependencies-migration
```

Forneça as funções existentes do S3 e FSx do IAM:

```
./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
```

**Local do backup:**

Os backups são armazenados em `/tmp/hyperpod-migration-backup-<timestamp>/`

Os backups permitem migração e recuperação seguras:
+ **Reversão em caso de falha** — Se a migração falhar, o script poderá restaurar automaticamente seu cluster ao estado anterior à migração usando as configurações de backup
+ **Trilha de auditoria** — fornece um registro completo do que existia antes da migração para solução de problemas e conformidade
+ **Referência de configuração** — permite comparar as configurações de pré-migração e pós-migração
+ **Recuperação manual** — Se necessário, você pode inspecionar e restaurar manualmente recursos específicos do diretório de backup

**Reversão:**

Se a migração falhar, o script solicitará a confirmação do usuário antes de iniciar a reversão para restaurar o estado anterior.

## SageMaker HyperPod Notas de lançamento do Inference: v2.3
<a name="sagemaker-hyperpod-inference-release-notes-20260203"></a>

**O que há de novo**

Esta versão apresenta novos campos opcionais nas Definições de Recursos Personalizadas (CRDs) para aprimorar a flexibilidade da configuração de implantação.

**Recursos**
+ **Tipos de várias instâncias**
  + **Confiabilidade de implantação aprimorada** — suporta configurações do tipo de várias instâncias com failover automático para tipos de instância alternativos quando as opções preferenciais não têm capacidade
  + **Programação inteligente de recursos** — usa a afinidade de nós do Kubernetes para priorizar os tipos de instância e, ao mesmo tempo, garantir a implantação mesmo quando os recursos preferenciais não estão disponíveis
  + **Custo e desempenho otimizados** — mantém suas preferências de tipo de instância e evita falhas relacionadas à capacidade durante as flutuações do cluster

**Correções de bugs**

As alterações no campo `invocationEndpoint` na especificação do agora `InferenceEndpointConfig` entrarão em vigor:
+ Se o `invocationEndpoint` campo for corrigido ou atualizado, os recursos dependentes, como Load Balancer SageMaker e Endpoint`SageMakerEndpointRegistration`, serão atualizados com a normalização. `Ingress`
+ O valor `invocationEndpoint` fornecido será armazenado como está na própria `InferenceEndpointConfig` especificação. Quando esse valor é usado para criar um Load Balancer e, se ativado, um SageMaker Endpoint, ele será normalizado para ter uma barra inicial.
  + `v1/chat/completions`serão normalizados `/v1/chat/completions` para o `Ingress` AWS Load Balancer e o Endpoint. SageMaker Para o`SageMakerEndpointRegistration`, ele será exibido em sua especificação como`v1/chat/completions`.
  + `///invoke`serão normalizados `/invoke` para o `Ingress` AWS Load Balancer e o Endpoint. SageMaker Para o`SageMakerEndpointRegistration`, ele será exibido em sua especificação como`invoke`.

**Instalando o Helm:**

Siga: [https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm\$1chart](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart)

Se você está focado em instalar apenas o operador de inferência, após a etapa 1, ou seja`Set Up Your Helm Environment`, faça`cd HyperPodHelmChart/charts/inference-operator`. Como você está no próprio diretório do gráfico do operador de inferência, nos comandos, onde quer que você veja`helm_chart/HyperPodHelmChart`, `.` substitua por.

**Atualize o Operador para v2.3 caso já esteja instalado:**

```
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 em estúdio
<a name="sagemaker-hyperpod-studio"></a>

Você pode iniciar cargas de trabalho de aprendizado de máquina nos SageMaker HyperPod clusters da Amazon e visualizar as informações HyperPod do cluster no Amazon SageMaker Studio. Com uma visibilidade mais ampla dos detalhes dos clusters e das métricas de hardware, sua equipe pode identificar a opção certa para workloads de pré-treinamento ou ajuste fino. 

Um conjunto de comandos está disponível para ajudar você a começar a executar o Studio IDEs em um HyperPod cluster. Você pode trabalhar em seus scripts de treinamento, usar contêineres do Docker para os scripts de treinamento e enviar trabalhos para o cluster, tudo de dentro do Studio IDEs. As seções a seguir fornecem informações sobre como configurar isso, como descobrir clusters e monitorar suas tarefas, como visualizar informações do cluster e como se conectar a HyperPod clusters IDEs no Studio.

**Topics**
+ [Configurando HyperPod no Studio](sagemaker-hyperpod-studio-setup.md)
+ [HyperPod abas no Studio](sagemaker-hyperpod-studio-tabs.md)
+ [Conectando-se a HyperPod clusters e enviando tarefas a clusters](sagemaker-hyperpod-studio-open.md)
+ [Solução de problemas](sagemaker-hyperpod-studio-troubleshoot.md)

# Configurando HyperPod no Studio
<a name="sagemaker-hyperpod-studio-setup"></a>

Você precisa configurar os clusters de acordo com sua escolha de orquestrador de clusters para acessar seus clusters por meio do Amazon SageMaker Studio. Nas seções a seguir, escolha a configuração adequada para o seu orquestrador.

As instruções pressupõem que você já tenha configurado seu cluster. Para obter informações sobre os orquestradores de cluster e como configurá-los, comece com as páginas do HyperPod orquestrador:
+  [Orquestrando SageMaker HyperPod clusters com o SlurmOrquestração do Slurm](sagemaker-hyperpod-slurm.md) 
+  [Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md) 

**Topics**
+ [Configurar um cluster do Slurm no Studio](sagemaker-hyperpod-studio-setup-slurm.md)
+ [Configurar um cluster do Amazon EKS no Studio](sagemaker-hyperpod-studio-setup-eks.md)

# Configurar um cluster do Slurm no Studio
<a name="sagemaker-hyperpod-studio-setup-slurm"></a>

As instruções a seguir descrevem como configurar um cluster HyperPod Slurm no Studio.

1. Crie um domínio ou tenha um pronto. Para ter informações sobre como criar um domínio, consulte [Guia para se configurar com o Amazon SageMaker AI](gs.md).

1. (Opcional) Crie e anexe um volume personalizado FSx para o Lustre ao seu domínio. 

   1. Certifique-se de que seu sistema de arquivos FSx Lustre exista na mesma VPC do domínio pretendido e esteja em uma das sub-redes presentes no domínio.

   1. Você pode seguir as instruções em [Como adicionar um sistema de arquivos personalizado a um domínio](domain-custom-file-system.md). 

1. (Opcional) Recomendamos que você adicione tags aos seus clusters para garantir um fluxo de trabalho mais tranquilo. Para obter informações sobre como adicionar tags, consulte Como [Editar um SageMaker HyperPod cluster](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-edit-clusters) atualizar seu cluster usando o console de SageMaker IA.

   1. Marque seu sistema de arquivos FSx for Lustre no seu domínio do Studio. Isso ajudará você a identificar o sistema de arquivos ao iniciar seus espaços do Studio. Para fazer isso, adicione a seguinte tag ao seu cluster para identificá-lo com o ID do FSx sistema de arquivos,. `fs-id` 

      Chave da tag = “`hyperpod-cluster-filesystem`”; valor da tag = “`fs-id`”.

   1. Associe seu espaço de trabalho do [Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html) ao seu domínio do Studio. Isso será usado para você se vincular rapidamente ao seu espaço de trabalho do Grafana diretamente do seu cluster no Studio. Para fazer isso, adicione a seguinte tag ao seu cluster para identificá-lo com o ID do seu espaço de trabalho no Grafana: `ws-id`.

      Chave da tag = “`grafana-workspace`”; valor da tag = “`ws-id`”.

1. Adicione a permissão a seguir ao seu perfil de execução. 

   Para obter informações sobre funções de execução de SageMaker IA e como editá-las, consulte[Compreendendo as permissões de espaço e os perfis de execução do domínio](execution-roles-and-spaces.md). 

   Para saber como anexar políticas a um grupo ou usuário do IAM, consulte [Adicionar e remover permissões de identidade do IAM](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. Adicione uma tag a esse perfil do IAM, com a chave de tag = “`SSMSessionRunAs`” e o valor de tag = “`os user`”. Aqui, o `os user` é o mesmo usuário que você configurou para o cluster do Slurm. Gerencie o acesso aos SageMaker HyperPod clusters em uma função do IAM ou nível de usuário usando o recurso Run As no [AWS Systems Manager Agent (SSM Agent)](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html). Com esse recurso, você pode iniciar cada sessão do SSM usando o usuário do sistema operacional associado ao perfil ou usuário do IAM. 

   Para ter informações sobre como adicionar tags ao seu perfil de execução, consulte [Marcar perfis do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags_roles.html).

1. [Ative o suporte a “Executar como” para nós gerenciados do Linux e macOS](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-preferences-run-as.html). As configurações de “Executar como” abrangem toda a conta e são necessárias para que todas as sessões do SSM sejam iniciadas com êxito.

1. (Opcional) [Restringir a visualização de tarefas no Studio para clusters do Slurm](#sagemaker-hyperpod-studio-setup-slurm-restrict-tasks-view). Para ter informações sobre tarefas visíveis no Studio, consulte [Tarefas](sagemaker-hyperpod-studio-tabs.md#sagemaker-hyperpod-studio-tabs-tasks).

No Amazon SageMaker Studio, você pode navegar para visualizar seus clusters em HyperPod clusters (em Compute).

## Restringir a visualização de tarefas no Studio para clusters do Slurm
<a name="sagemaker-hyperpod-studio-setup-slurm-restrict-tasks-view"></a>

Você pode aplicar restrições para que os usuários visualizem apenas as tarefas do Slurm que estão autorizados a visualizar, sem exigir a entrada manual de namespaces ou outras verificações de permissão. A restrição é aplicada com base no perfil do IAM dos usuários, oferecendo uma experiência de usuário simplificada e segura. A seção a seguir fornece informações sobre como restringir a visualização de tarefas no Studio de clusters do Slurm. Para ter informações sobre tarefas visíveis no Studio, consulte [Tarefas](sagemaker-hyperpod-studio-tabs.md#sagemaker-hyperpod-studio-tabs-tasks). 

Por padrão, todos os usuários do Studio podem visualizar, gerenciar e interagir com todas as tarefas de cluster do Slurm. Para restringir isso, você pode gerenciar o acesso aos SageMaker HyperPod clusters em uma função do IAM ou nível de usuário usando o recurso **Run As** no [AWS Systems Manager Agent (SSM Agent)](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent.html).

Você pode fazer isso marcando os perfis do IAM com identificadores específicos, como nome de usuário ou grupo. Quando um usuário acessa o Studio, o Session Manager usa o recurso “Executar como” executar comandos como uma conta de usuário específica do Slurm que corresponda às tags do perfil do IAM. A configuração do Slurm pode ser definida para restringir a visibilidade de tarefas com base na conta do usuário. A interface de usuário do Studio filtrará automaticamente as tarefas visíveis para essa conta de usuário específica quando os comandos forem executados por meio do recurso Executar como. Após a configuração, cada usuário que assumir o perfil com os identificadores especificados terá essas tarefas do Slurm filtradas com base na configuração do Slurm. Para ter informações sobre como adicionar tags ao seu perfil de execução, consulte [Marcar perfis do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags_roles.html).

# Configurar um cluster do Amazon EKS no Studio
<a name="sagemaker-hyperpod-studio-setup-eks"></a>

As instruções a seguir descrevem como configurar um cluster do Amazon EKS no Studio.

1. Crie um domínio ou tenha um pronto. Para ter informações sobre como criar um domínio, consulte [Guia para se configurar com o Amazon SageMaker AI](gs.md).

1. Adicione a permissão a seguir ao seu perfil de execução. 

   Para obter informações sobre funções de execução de SageMaker IA e como editá-las, consulte[Compreendendo as permissões de espaço e os perfis de execução do domínio](execution-roles-and-spaces.md). 

   Para saber como anexar políticas a um grupo ou usuário do IAM, consulte [Adicionar e remover permissões de identidade do IAM](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. [Conceda aos usuários do IAM acesso ao Kubernetes com entradas de acesso ao EKS](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html).

   1. Navegue até o cluster Amazon EKS associado ao seu HyperPod cluster.

   1. Escolha a guia **Acesso** e [crie uma entrada de acesso](https://docs.aws.amazon.com/eks/latest/userguide/creating-access-entries.html) para o perfil de execução que você criou. 

      1. Na Etapa 1, selecione o perfil de execução que você criou acima no menu suspenso de entidade principal do **IAM**.

      1. Na Etapa 2, selecione um nome de política e um escopo de acesso ao qual você deseja que os usuários tenham acesso. 

1. (Opcional) Para garantir uma experiência mais tranquila, recomendamos que você adicione tags aos seus clusters. Para obter informações sobre como adicionar tags, consulte Como [Editar um SageMaker HyperPod cluster](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-edit-clusters) atualizar seu cluster usando o console de SageMaker IA.

   1. Associe seu espaço de trabalho do [Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html) ao seu domínio do Studio. Isso será usado para você se vincular rapidamente ao seu espaço de trabalho do Grafana diretamente do seu cluster no Studio. Para fazer isso, adicione a seguinte tag ao seu cluster para identificá-lo com o ID do seu espaço de trabalho no Grafana: `ws-id`.

     Chave da tag = “`grafana-workspace`”; valor da tag = “`ws-id`”.

1. (Opcional) [Restringir a visualização de tarefas no Studio para clusters do EKS](#sagemaker-hyperpod-studio-setup-eks-restrict-tasks-view). Para ter informações sobre tarefas visíveis no Studio, consulte [Tarefas](sagemaker-hyperpod-studio-tabs.md#sagemaker-hyperpod-studio-tabs-tasks).

## Restringir a visualização de tarefas no Studio para clusters do EKS
<a name="sagemaker-hyperpod-studio-setup-eks-restrict-tasks-view"></a>

Você pode restringir as permissões de namespace do Kubernetes para os usuários, para que eles tenham acesso apenas para visualizar tarefas pertencentes a um namespace especificado. Veja a seguir informações sobre como restringir a visualização de tarefas no Studio para clusters do EKS. Para ter informações sobre tarefas visíveis no Studio, consulte [Tarefas](sagemaker-hyperpod-studio-tabs.md#sagemaker-hyperpod-studio-tabs-tasks). 

Por padrão, os usuários terão visibilidade de todas as tarefas de cluster do EKS. Você pode restringir a visibilidade dos usuários sobre tarefas de clusters do EKS a namespaces especificados, a fim de garantir que os usuários possam acessar os recursos de que precisam e, ao mesmo tempo, manter controles de acesso rígidos. Você precisará fornecer o namespace para que o usuário exiba os trabalhos desse namespace após a definição da configuração a seguir.

Depois que a restrição for aplicada, você precisará fornecer o namespace aos usuários que assumirem o perfil. O Studio só exibirá as tarefas do namespace quando o usuário fornecer o namespace de entradas que ele possa visualizar na guia **Tarefas**. 

A configuração a seguir permite que os administradores concedam acesso específico e limitado aos cientistas de dados para visualizar tarefas dentro do cluster. Esta configuração concede as seguintes permissões:
+ Listar e obter pods.
+ Listar e receber eventos.
+ Obter definições de recursos personalizadas (CRDs)

Configuração 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. Salve a configuração YAML em um arquivo denominado `cluster-role.yaml`.

1. Aplique a configuração usando o [https://kubernetes.io/docs/reference/kubectl/](https://kubernetes.io/docs/reference/kubectl/):

   ```
   kubectl apply -f cluster-role.yaml
   ```

1. Verifique a configuração:

   ```
   kubectl get clusterrole pods-events-crd-cluster-role
   kubectl get clusterrolebinding pods-events-crd-cluster-role-binding
   ```

1. Atribua usuários ao grupo `pods-events-crd-cluster-level` por meio do seu provedor de identidades ou do IAM.

# HyperPod abas no Studio
<a name="sagemaker-hyperpod-studio-tabs"></a>

No Amazon SageMaker Studio, você pode navegar até um dos seus clusters em **HyperPodclusters** (em **Compute**) e visualizar sua lista de clusters. Os clusters exibidos contêm determinadas informações, como tarefas, métricas de hardware, configurações e detalhes de metadados. Essa visibilidade pode ajudar sua equipe a identificar o candidato certo para suas workloads de pré-treinamento ou ajuste fino. As seções a seguir fornecem detalhes sobre cada tipo de informação.

## Tarefas
<a name="sagemaker-hyperpod-studio-tabs-tasks"></a>

A Amazon SageMaker HyperPod fornece uma visão das tarefas do seu cluster. Tarefas são operações ou trabalhos enviados ao cluster. Podem ser operações de machine learning, como treinamento, execução de experimentos ou inferência. A seção a seguir fornece informações sobre suas tarefas de HyperPod cluster.

No Amazon SageMaker Studio, você pode navegar até um dos seus clusters em **HyperPodclusters** (em **Compute**) e visualizar as informações de **tarefas** no seu cluster. Se você estiver tendo problemas com a visualização de tarefas, consulte [Solução de problemas](sagemaker-hyperpod-studio-troubleshoot.md).

A tabela de tarefas inclui:

------
#### [ For Slurm clusters ]

Para clusters do Slurm, as tarefas que no momento estão na fila do agendador de tarefas do Slurm são mostradas na tabela. As informações mostradas para cada tarefa incluem nome, status, ID do trabalho, partição, tempo de execução, nós, quem criou e ações.

Para obter uma lista e detalhes sobre trabalhos anteriores, use o [https://slurm.schedmd.com/sacct.html](https://slurm.schedmd.com/sacct.html)comando em JupyterLab ou um terminal do Editor de código. O comando `sacct` é usado para visualizar *informações históricas* sobre trabalhos que foram *concluídos* ou estão *concluídos* no sistema. Ele fornece informações contábeis, incluindo o uso de recursos de trabalho, como memória e status de saída. 

Por padrão, todos os usuários do Studio podem visualizar, gerenciar e interagir com todas as tarefas disponíveis do Slurm. Para restringir as tarefas visíveis aos usuários do Studio, consulte [Restringir a visualização de tarefas no Studio para clusters do Slurm](sagemaker-hyperpod-studio-setup-slurm.md#sagemaker-hyperpod-studio-setup-slurm-restrict-tasks-view).

------
#### [ For Amazon EKS clusters ]

Para clusters do Amazon EKS, as tarefas kubeflow (PyTorch, MPI, TensorFlow) são mostradas na tabela. PyTorch as tarefas são mostradas por padrão. Você pode classificar por PyTorch, MPI e TensorFlow em **Tipo de tarefa**. As informações mostradas para cada tarefa incluem nome, status, namespace, classe prioritária e horário de criação da tarefa. 

Por padrão, todos os usuários podem visualizar trabalhos em todos os namespaces. Para restringir os namespaces visíveis do Kubernetes disponíveis para usuários do Studio, consulte [Restringir a visualização de tarefas no Studio para clusters do EKS](sagemaker-hyperpod-studio-setup-eks.md#sagemaker-hyperpod-studio-setup-eks-restrict-tasks-view). Se um usuário não conseguir visualizar as tarefas e for solicitado a fornecer um namespace, ele precisará obter essas informações do administrador. 

------

## Metrics
<a name="sagemaker-hyperpod-studio-tabs-metrics"></a>

 SageMaker HyperPod A Amazon fornece uma visão das métricas de utilização do seu cluster Slurm ou Amazon EKS. Veja a seguir informações sobre as métricas HyperPod do seu cluster. 

Você precisará instalar o complemento do Amazon EKS para visualizar as métricas a seguir. Para obter mais informações, consulte [Instalar o complemento Amazon CloudWatch Observability EKS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-setup-EKS-addon.html).

No Amazon SageMaker Studio, você pode navegar até um dos seus clusters em **HyperPodclusters** (em **Compute**) e visualizar os detalhes das **métricas** do seu cluster. Esse campo oferece uma visualização abrangente das métricas de utilização do cluster, como métricas de hardware, equipe e tarefas. Isso inclui a disponibilidade e o uso de computação, a alocação e a utilização por equipe, além de informações sobre o tempo de execução e de espera. 

## Configurações
<a name="sagemaker-hyperpod-studio-tabs-settings"></a>

A Amazon SageMaker HyperPod fornece uma visão das configurações do seu cluster. Veja a seguir informações sobre as configurações HyperPod do seu cluster.

No Amazon SageMaker Studio, você pode navegar até um dos seus clusters em **HyperPodclusters** (em **Compute**) e visualizar as informações de **configurações** no seu cluster. As informações incluem as seguintes:
+ Detalhes das **instâncias**, como ID da instância, status, tipo de instância e grupo de instâncias.
+ Detalhes dos **grupos de instâncias**, como nome, tipo, contagens e informações computacionais do grupo de instâncias.
+ Detalhes da **orquestração**, como orquestrador, versão e autoridade de certificação.
+ Detalhes da **resiliência do cluster**.
+ Detalhes de **segurança**, como sub-redes e grupos de segurança.

## Detalhes
<a name="sagemaker-hyperpod-studio-tabs-details"></a>

A Amazon SageMaker HyperPod fornece uma visão dos detalhes dos metadados do seu cluster. O parágrafo a seguir fornece informações sobre como obter os detalhes HyperPod do cluster.

No Amazon SageMaker Studio, você pode navegar até um dos seus clusters em **HyperPodclusters** (em **Compute**) e visualizar os **detalhes** do seu cluster. Isso inclui tags, logs e metadados.

# Conectando-se a HyperPod clusters e enviando tarefas a clusters
<a name="sagemaker-hyperpod-studio-open"></a>

Você pode iniciar cargas de trabalho de aprendizado de máquina em HyperPod clusters dentro do Amazon SageMaker Studio IDEs. Quando você inicia o Studio IDEs em um HyperPod cluster, um conjunto de comandos está disponível para ajudar você a começar. Você pode trabalhar em seus scripts de treinamento, usar contêineres do Docker para os scripts de treinamento e enviar trabalhos para o cluster, tudo de dentro do Studio IDEs. A seção a seguir fornece informações sobre como conectar seu cluster ao Studio IDEs.

No Amazon SageMaker Studio, você pode navegar até um dos seus clusters em **HyperPodclusters** (em **Compute**) e visualizar sua lista de clusters. Você pode conectar seu cluster a um IDE listado em **Ações**. 

Também é possível escolher seu sistema de arquivos personalizado na lista de opções. Para ter informações sobre como obter configurar isso, consulte [Configurando HyperPod no Studio](sagemaker-hyperpod-studio-setup.md).

Também é possível criar um espaço e executar um IDE usando a AWS CLI. Para fazer isso, use os comandos a seguir. O exemplo a seguir cria um `Private` `JupyterLab` espaço para `user-profile-name` com o sistema de arquivos `fs-id` FSx for Lustre anexado.

1. Crie um espaço usando [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 o.

   ```
   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. Crie o aplicativo usando [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 o.

   ```
   aws sagemaker create-app \
   --region your-region \
   --space-name space-name \
   --resource-spec '{"ec2InstanceType":"'"instance-type"'","appEnvironmentArn":"'"image-arn"'"}'
   ```

Depois de abrir suas aplicações, você pode enviar tarefas diretamente aos clusters com os quais você tem conexão. 

# Solução de problemas
<a name="sagemaker-hyperpod-studio-troubleshoot"></a>

A seção a seguir lista as soluções de problemas para HyperPod o Studio.

**Topics**
+ [Guia Tarefas](#sagemaker-hyperpod-studio-troubleshoot-tasks)
+ [Guia Métricas](#sagemaker-hyperpod-studio-troubleshoot-metrics)

## Guia Tarefas
<a name="sagemaker-hyperpod-studio-troubleshoot-tasks"></a>

Se você receber a mensagem Custom Resource Definition (CRD) is not configured on the cluster enquanto estiver na guia **Tarefas**.
+ Conceda as políticas `EKSAdminViewPolicy` e `ClusterAccessRole` ao perfil de execução do domínio. 

  Para ter informações sobre como adicionar tags ao seu perfil de execução, consulte [Marcar perfis do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags_roles.html).

  Para saber como anexar políticas a um grupo ou usuário do IAM, consulte [Adicionar e remover permissões de identidade do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).

Se a grade de tarefas das métricas do Slurm não parar de carregar na guia **Tarefas**.
+ Garanta que `RunAs` esteja habilitado em suas preferências no [AWS Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) e que o perfil que você está usando tenha a tag `SSMSessionRunAs` anexada. 
  + Para habilitar `RunAs`, navegue até a guia **Preferência** no [console do Systems Manager](https://console.aws.amazon.com/systems-manager/session-manager). 
  +  [Ativar o suporte a “Executar como” para nós gerenciados do Linux e macOS](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-preferences-run-as.html) 

Quanto à visualização restrita de tarefas no Studio para cluster do EKS:
+ Se seu perfil de execução não tiver permissões para listar namespaces para clusters do EKS.
  + Consulte [Restringir a visualização de tarefas no Studio para clusters do EKS](sagemaker-hyperpod-studio-setup-eks.md#sagemaker-hyperpod-studio-setup-eks-restrict-tasks-view).
+ Se os usuários estiverem tendo problemas com o acesso aos clusters EKS.

  1. Verifique se o RBAC está ativado executando o comando a seguir AWS CLI .

     ```
     kubectl api-versions | grep rbac
     ```

     Isso deve exibir rbac.authorization.k8s.io/v1.

  1. Verifique se `ClusterRole` e `ClusterRoleBinding` existem executando os comandos a seguir.

     ```
     kubectl get clusterrole pods-events-crd-cluster-role
     kubectl get clusterrolebinding pods-events-crd-cluster-role-binding
     ```

  1. Verifique a associação ao grupo de usuários. O usuário deve estar corretamente atribuído ao grupo `pods-events-crd-cluster-level` em seu provedor de identidades ou no IAM.
+ Se o usuário não conseguir ver nenhum recurso.
  + Confira a associação ao grupo e verifique se `ClusterRoleBinding` foi aplicado corretamente.
+ Se os usuários puderem ver recursos em todos os namespaces.
  + Se a restrição de namespace for necessária, considere usar `Role` e `RoleBinding` em vez de e `ClusterRole` e `ClusterRoleBinding`.
+ Se a configuração parecer correta, mas as permissões não forem aplicadas.
  + Verifique se `NetworkPolicies` ou `PodSecurityPolicies` estão interferindo no acesso.

## Guia Métricas
<a name="sagemaker-hyperpod-studio-troubleshoot-metrics"></a>

Se não houver CloudWatch métricas da Amazon, elas serão exibidas na guia **Métricas**.
+ A `Metrics` seção de detalhes do HyperPod cluster é usada CloudWatch para buscar os dados. Para ver as métricas dessa seção, é necessário ter habilitado [Observabilidade de clusters e tarefas](sagemaker-hyperpod-eks-cluster-observability-cluster.md). Entre em contato com seu administrador para configurar as métricas.

# SageMaker HyperPod referências
<a name="sagemaker-hyperpod-ref"></a>

Encontre mais informações e referências sobre o uso SageMaker HyperPod nos tópicos a seguir.

**Topics**
+ [SageMaker HyperPod preços](#sagemaker-hyperpod-ref-pricing)
+ [SageMaker HyperPod APIs](#sagemaker-hyperpod-ref-api)
+ [SageMaker HyperPod Configuração do Slurm](#sagemaker-hyperpod-ref-slurm-configuration)
+ [SageMaker HyperPod DLAMI](#sagemaker-hyperpod-ref-hyperpod-ami)
+ [SageMaker HyperPod Referência de permissões da API](#sagemaker-hyperpod-ref-api-permissions)
+ [SageMaker HyperPod comandos em AWS CLI](#sagemaker-hyperpod-ref-cli)
+ [SageMaker HyperPod Módulos Python em AWS SDK para Python (Boto3)](#sagemaker-hyperpod-ref-boto3)

## SageMaker HyperPod preços
<a name="sagemaker-hyperpod-ref-pricing"></a>

Os tópicos a seguir fornecem informações sobre SageMaker HyperPod preços. Para encontrar mais detalhes sobre o preço por hora do uso de SageMaker HyperPod instâncias, consulte também os [ SageMaker preços da Amazon](https://aws.amazon.com/sagemaker/pricing/). 

**Solicitações de capacidade**

Você pode alocar capacidade computacional sob demanda ou reservada com SageMaker IA para uso em. SageMaker HyperPod A criação de clusters sob demanda aloca a capacidade disponível do pool de capacidade sob demanda de SageMaker IA. Como alternativa, você pode solicitar capacidade reservada para garantir o acesso enviando um ticket para aumentar a cota. As solicitações de capacidade de entrada são priorizadas pela SageMaker IA e você recebe um tempo estimado para alocação de capacidade.

**Faturamento de serviço**

Ao provisionar uma capacidade computacional SageMaker HyperPod, você é cobrado pela duração da alocação de capacidade. SageMaker HyperPod o faturamento aparece em suas faturas de aniversário com um item de linha para o tipo de alocação de capacidade (sob demanda, reservada), o tipo de instância e o tempo gasto no uso da instância. 

Para enviar um ticket para um aumento de cota, consulte[SageMaker HyperPod cotas](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas).

## SageMaker HyperPod APIs
<a name="sagemaker-hyperpod-ref-api"></a>

A lista a seguir é um conjunto completo SageMaker HyperPod APIs para enviar solicitações de ação no formato JSON para a SageMaker IA por meio AWS CLI de ou. AWS SDK para 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 Configuração do Slurm
<a name="sagemaker-hyperpod-ref-slurm-configuration"></a>

HyperPod oferece suporte a duas abordagens para configurar o Slurm em seu cluster. Escolha a abordagem que melhor atenda às suas necessidades.


|  |  |  | 
| --- |--- |--- |
| Abordagem | Descrição | Recomendado para | 
| Configuração orientada por API | Defina a configuração do Slurm diretamente nas solicitações da API CreateCluster e UpdateCluster  | Novos clusters; gerenciamento simplificado | 
| Configuração legada | Use um provisioning\$1parameters.json arquivo separado armazenado no Amazon S3 | Clusters existentes; compatibilidade com versões anteriores | 

### Configuração do Slurm baseada em API (recomendada)
<a name="sagemaker-hyperpod-ref-slurm-api-driven"></a>

Com a configuração orientada por API, você define os tipos de nós do Slurm, as atribuições de partições e as montagens do sistema de arquivos diretamente nas solicitações e na API. CreateCluster UpdateCluster Essa abordagem fornece:
+ **Fonte única de verdade** — todas as configurações na solicitação da API
+ **Sem gerenciamento de arquivos S3** — sem necessidade de criar ou manter `provisioning_parameters.json`
+ **Validação integrada** — a API valida a topologia do Slurm antes da criação do cluster
+ **Detecção de desvios** — detecta alterações não autorizadas em `slurm.conf`
+ **Per-instance-group armazenamento** — Configure sistemas de FSx arquivos diferentes para diferentes grupos de instâncias
+ **FSx para suporte ao OpenZFS** — Monte sistemas de arquivos OpenZFS além do Lustre FSx 

#### SlurmConfig (por grupo de instâncias)
<a name="sagemaker-hyperpod-ref-slurm-config"></a>

Adicione `SlurmConfig` a cada grupo de instâncias para definir o tipo de nó do Slurm e a atribuição da partição.

```
"SlurmConfig": {
    "NodeType": "Controller | Login | Compute",
    "PartitionNames": ["string"]
}
```

**Parâmetros:**
+ `NodeType` – obrigatório. O tipo de nó do Slurm para esse grupo de instâncias. Valores válidos:
  + `Controller`— Nó do controlador Slurm (cabeça). Executa o `slurmctld` daemon. Exatamente um grupo de instâncias deve ter esse tipo de nó.
  + `Login`— Nó de login para acesso do usuário. Opcional. No máximo, um grupo de instâncias pode ter esse tipo de nó.
  + `Compute`— nós de trabalho que executam trabalhos. Pode ter vários grupos de instâncias com esse tipo de nó.
**Importante**  
`NodeType`é imutável. Depois de definido durante a criação do cluster, ele não pode ser alterado. Para usar um tipo de nó diferente, crie um novo grupo de instâncias.
+ `PartitionNames` – Condicional. Uma matriz de nomes de partições do Slurm. Obrigatório para tipos de `Compute` nós; não permitido para `Controller` ou tipos de `Login` nós. Atualmente, é compatível com um único nome de partição por grupo de instâncias.
**nota**  
Todos os nós são adicionados automaticamente à `dev` partição universal, além da partição especificada.

**Exemplo:**

```
{
    "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 (nível de cluster)
<a name="sagemaker-hyperpod-ref-slurm-orchestrator"></a>

Adicione `Orchestrator.Slurm` à configuração do cluster para especificar como HyperPod gerencia o `slurm.conf` arquivo.

```
"Orchestrator": {
    "Slurm": {
        "SlurmConfigStrategy": "Managed | Overwrite | Merge"
    }
}
```

**Parâmetros:**
+ `SlurmConfigStrategy`— `Orchestrator.Slurm` Exigido quando fornecido. Controla como HyperPod gerencia o `slurm.conf` arquivo no nó do controlador. Valores válidos:
  + `Managed`(padrão) — controla HyperPod totalmente os mapeamentos dos nós de partição em. `slurm.conf` A detecção de desvio está ativada: se a corrente for `slurm.conf` diferente da configuração esperada, UpdateCluster falhará com um erro. Use essa estratégia quando quiser ser HyperPod a única fonte confiável para a configuração do Slurm.
  + `Overwrite`— HyperPod força a aplicação da configuração da API, sobrescrevendo todas as alterações manuais em`slurm.conf`. A detecção de desvio está desativada. Use essa estratégia para se recuperar do desvio ou redefinir o cluster para um estado conhecido.
  + `Merge`— HyperPod preserva as `slurm.conf` alterações manuais e as mescla com a configuração da API. A detecção de desvio está desativada. Use essa estratégia se precisar fazer alterações manuais na configuração do Slurm que devem persistir nas atualizações.

**nota**  
Se `Orchestrator.Slurm` for omitido da solicitação, o comportamento padrão será estratégia. `Managed`

**dica**  
Você pode mudar `SlurmConfigStrategy` a qualquer momento usando UpdateCluster. Não há dependência de uma estratégia específica.

**Exemplo:**

```
{
    "ClusterName": "my-hyperpod-cluster",
    "InstanceGroups": [...],
    "Orchestrator": {
        "Slurm": {
            "SlurmConfigStrategy": "Managed"
        }
    }
}
```

#### SlurmConfigStrategy comparação
<a name="sagemaker-hyperpod-ref-slurm-strategy-comparison"></a>


|  |  |  |  | 
| --- |--- |--- |--- |
| Strategy | Detecção de deriva | Alterações manuais | Caso de uso | 
| Managed | Ativado — bloqueia as atualizações se for detectado um desvio | Bloqueado | HyperPod gerenciado | 
| Overwrite | Desabilitado | Sobrescrito | Recuperação do desvio; redefinição para o estado conhecido | 
| Merge | Desabilitado | Preservado | Usuários avançados com slurm.conf necessidades personalizadas | 

#### FSx configuração via InstanceStorageConfigs
<a name="sagemaker-hyperpod-ref-slurm-fsx-config"></a>

Com a configuração orientada por API, você pode configurar FSx sistemas de arquivos por grupo de instâncias usando o. `InstanceStorageConfigs` Isso permite que diferentes grupos de instâncias montem sistemas de arquivos diferentes.

**Pré-requisitos:**
+ Seu cluster deve usar uma VPC personalizada (via`VpcConfig`). FSx os sistemas de arquivos residem em sua VPC, e a VPC gerenciada pela plataforma não pode acessá-los.
+ Pelo menos um grupo de instâncias deve ter `SlurmConfig` com`NodeType: Controller`.

##### FsxLustreConfig
<a name="sagemaker-hyperpod-ref-slurm-fsx-lustre"></a>

Configure FSx para montagem do sistema de arquivos Lustre para um grupo de instâncias.

```
"InstanceStorageConfigs": [
    {
        "FsxLustreConfig": {
            "DnsName": "string",
            "MountPath": "string",
            "MountName": "string"
        }
    }
]
```

**Parâmetros:**
+ `DnsName` – obrigatório. O nome DNS do sistema de arquivos FSx for Lustre. Exemplo: `fs-0abc123def456789.fsx.us-west-2.amazonaws.com`
+ `MountPath`: opcional. O caminho de montagem local na instância. Padrão: `/fsx`
+ `MountName` – obrigatório. O nome da montagem do sistema de arquivos FSx for Lustre. Você pode encontrar isso no FSx console da Amazon ou executando`aws fsx describe-file-systems`.

##### FsxOpenZfsConfig
<a name="sagemaker-hyperpod-ref-slurm-fsx-openzfs"></a>

Configure FSx para montagem do sistema de arquivos OpenZFS para um grupo de instâncias.

```
"InstanceStorageConfigs": [
    {
        "FsxOpenZfsConfig": {
            "DnsName": "string",
            "MountPath": "string"
        }
    }
]
```

**Parâmetros:**
+ `DnsName` – obrigatório. O nome DNS do sistema de arquivos FSx OpenZFS. Exemplo: `fs-0xyz987654321.fsx.us-west-2.amazonaws.com`
+ `MountPath`: opcional. O caminho de montagem local na instância. Padrão: `/home`

**nota**  
Cada grupo de instâncias pode ter no máximo uma `FsxLustreConfig` e uma`FsxOpenZfsConfig`.

**Exemplo com vários sistemas de arquivos:**

```
{
    "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 as alterações de configuração só se aplicam durante o provisionamento do nó. Os nós existentes mantêm sua FSx configuração original. Para aplicar a nova FSx configuração a todos os nós, reduza o grupo de instâncias para 0 e depois aumente novamente.

#### Exemplo completo de configuração orientada por API
<a name="sagemaker-hyperpod-ref-slurm-complete-example"></a>

O exemplo a seguir mostra uma CreateCluster solicitação completa usando a configuração Slurm orientada por 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"
        }
    ]
}
```

Para saber mais sobre como usar a configuração orientada por API, consulte. [Personalização de SageMaker HyperPod clusters usando scripts de ciclo de vida](sagemaker-hyperpod-lifecycle-best-practices-slurm.md)

### Configuração legada: provisioning\$1parameters.json
<a name="sagemaker-hyperpod-ref-provisioning-forms"></a>

**nota**  
A `provisioning_parameters.json` abordagem é o método legado para configurar o Slurm on. HyperPod Para novos clusters, recomendamos usar a abordagem de configuração baseada em API descrita acima. A abordagem antiga permanece totalmente suportada para compatibilidade com versões anteriores.

Com a abordagem legada, você cria um arquivo de configuração do Slurm chamado `provisioning_parameters.json` e o carrega no Amazon S3 como parte de seus scripts de ciclo de vida. HyperPod lê esse arquivo durante a criação do cluster para configurar os nós do Slurm.

#### Formulário de configuração para provisioning\$1parameters.json
<a name="sagemaker-hyperpod-ref-provisioning-forms-slurm"></a>

O código a seguir é o formulário de configuração do Slurm que você deve preparar para configurar adequadamente os nós do Slurm em seu cluster. HyperPod Preencha esse formulário e carregá-lo como parte de um conjunto de scripts de ciclo de vida durante a criação do cluster. Para saber como esse formulário deve ser preparado em todos os processos de criação de HyperPod clusters, consulte[Personalização de SageMaker HyperPod clusters usando scripts de ciclo de vida](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"
}
```

**Parâmetros:**
+ `version` – obrigatório. Essa é a versão do formulário de parâmetros de HyperPod provisionamento. Guarde para `1.0.0`.
+ `workload_manager` – obrigatório. Isso serve para especificar qual gerenciador de carga de trabalho deve ser configurado no HyperPod cluster. Guarde para `slurm`.
+ `controller_group` – obrigatório. Isso serve para especificar o nome do grupo de instâncias do HyperPod cluster que você deseja atribuir ao nó do controlador (principal) do Slurm.
+ `login_group`: opcional. Isso serve para especificar o nome do grupo de instâncias do HyperPod cluster que você deseja atribuir ao nó de login do Slurm.
+ `worker_groups` – obrigatório. Isso serve para configurar nós de trabalho (computação) do Slurm no cluster. HyperPod 
  + `instance_group_name` – obrigatório. Isso serve para especificar o nome do grupo de HyperPod instâncias que você deseja atribuir ao nó de trabalho (computação) do Slurm.
  + `partition_name` – obrigatório. Isso permite especificar o nome da partição para o nó.
+ `fsx_dns_name`: opcional. Se você quiser configurar seus nós do Slurm no HyperPod cluster para se comunicar com a Amazon FSx, especifique o nome do FSx DNS.
+ `fsx_mountname`: opcional. Se você quiser configurar seus nós do Slurm no HyperPod cluster para se comunicar com a Amazon FSx, especifique o nome da FSx montagem.

### Comparação: configuração baseada em API versus configuração legada
<a name="sagemaker-hyperpod-ref-slurm-comparison"></a>


|  |  |  | 
| --- |--- |--- |
| Recurso | Orientado por API (recomendado) | Legado (provisioning\$1parameters.json) | 
| Local de configuração | CreateCluster Solicitação de API | Arquivo S3 | 
| FSx para Lustre | Sim — Por grupo de instâncias | Sim — somente em todo o cluster | 
| FSx para OpenZFS | Sim — Por grupo de instâncias | Não — Não suportado | 
| Validação integrada | Sim | Não | 
| Detecção de desvios | Sim — (Estratégia gerenciada) | Não | 
| Gerenciamento de arquivos S3 | Não obrigatório | Obrigatório | 
| Complexidade do script do ciclo de vida | Simplificado | É necessária uma configuração completa do SLURM | 

## SageMaker HyperPod DLAMI
<a name="sagemaker-hyperpod-ref-hyperpod-ami"></a>

SageMaker HyperPod executa um DLAMI com base em:
+ [AWS AMI de GPU de base de aprendizado profundo (Ubuntu 20.04)](https://aws.amazon.com/releasenotes/aws-deep-learning-base-gpu-ami-ubuntu-20-04/) para orquestração com o Slurm.
+ AMI baseada no Amazon Linux 2 para orquestração com o Amazon EKS.

O SageMaker HyperPod DLAMI vem com pacotes adicionais para oferecer suporte a ferramentas de código aberto, como Slurm, Kubernetes, dependências e pacotes de software de cluster, para oferecer suporte a recursos de resiliência, como verificação de SageMaker HyperPod integridade e retomada automática do cluster. Para acompanhar as atualizações HyperPod de software pelas quais a equipe HyperPod de serviço distribui DLAMIs, consulte[Notas SageMaker HyperPod de lançamento da Amazon](sagemaker-hyperpod-release-notes.md).

## SageMaker HyperPod Referência de permissões da API
<a name="sagemaker-hyperpod-ref-api-permissions"></a>

**Importante**  
Políticas personalizadas do IAM que permitem que o Amazon SageMaker SageMaker Studio ou o Amazon Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma política do IAM permitir que o Studio e o Studio Classic criem recursos, mas não permitisse a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte [Forneça permissões para marcar recursos de SageMaker IA](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS políticas gerenciadas para Amazon SageMaker AI](security-iam-awsmanpol.md)que dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.

Ao configurar o controle de acesso para permitir a execução de operações de SageMaker HyperPod API e escrever uma política de permissões que você pode anexar aos usuários do IAM para administradores de nuvem, use a tabela a seguir como referência.


|  |  |  | 
| --- |--- |--- |
| Operações de SageMaker API da Amazon | Permissões obrigatórias (ações de API): | Recursos | 
| 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 | 

Para obter uma lista completa de permissões e tipos de recursos para SageMaker APIs, consulte [Ações, recursos e chaves de condição para Amazon SageMaker AI](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsagemaker.html) na *Referência de Autorização de AWS Serviço*.

## SageMaker HyperPod comandos em AWS CLI
<a name="sagemaker-hyperpod-ref-cli"></a>

A seguir estão os AWS CLI comandos SageMaker HyperPod para executar as principais [operações HyperPod da API](#sagemaker-hyperpod-ref-api).
+ [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 Módulos Python em AWS SDK para Python (Boto3)
<a name="sagemaker-hyperpod-ref-boto3"></a>

A seguir estão os métodos do AWS SDK para Python (Boto3) cliente para que a SageMaker IA execute as principais [operações HyperPod da API](#sagemaker-hyperpod-ref-api).
+ [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)

# Notas SageMaker HyperPod de lançamento da Amazon
<a name="sagemaker-hyperpod-release-notes"></a>

Este tópico aborda notas de lançamento que monitoram atualizações, correções e novos recursos da Amazon SageMaker HyperPod. Se você estiver procurando por lançamentos de recursos gerais, atualizações e melhorias para a Amazon SageMaker HyperPod, você pode achar esta página útil.

As versões da HyperPod AMI são documentadas separadamente para incluir informações sobre os principais componentes, incluindo versões, versões e dependências gerais da AMI. Se você estiver procurando por essas informações relacionadas às versões da HyperPod AMI, consulte[Amazon SageMaker HyperPod AMI](sagemaker-hyperpod-release-ami.md).

## SageMaker HyperPod notas de lançamento: 16 de abril de 2026
<a name="sagemaker-hyperpod-release-notes-20260416"></a>

SageMaker HyperPod libera o seguinte para[Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md).

**Novos recursos**
+ **Grupos de instâncias flexíveis** — agora você pode criar grupos de instâncias com vários tipos de instância usando o novo `InstanceRequirements` parâmetro. Isso permite o provisionamento baseado em prioridade, em que HyperPod tenta provisionar primeiro o tipo de instância de maior prioridade e volta para tipos de prioridade mais baixa se a capacidade não estiver disponível. Grupos de instâncias flexíveis simplificam as configurações de auto-scaling do Karpenter ao reduzir o número de grupos de instâncias necessários. Você pode especificar até 20 tipos de instância por grupo de instâncias. Para obter mais informações, consulte [Grupos de instâncias flexíveis](sagemaker-hyperpod-scaling-eks.md#sagemaker-hyperpod-scaling-eks-flexible-ig).

## SageMaker HyperPod notas de lançamento: 25 de janeiro de 2026
<a name="sagemaker-hyperpod-release-notes-20260125"></a>

SageMaker HyperPod libera o seguinte para[Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md).

**Novos recursos**
+ Lançou a nova SageMaker HyperPod AMI para o Amazon EKS 1.34. Para obter mais informações, consulte [SageMaker Lançamentos do Hyperpod AMI para Amazon EKS: 25 de janeiro de 2026](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20260125).

Para obter mais informações, consulte [Kubernetes](https://kubernetes.io/blog/2025/08/27/kubernetes-v1-34-release/) v1.34.

## SageMaker HyperPod notas de lançamento: 07 de novembro de 2025
<a name="sagemaker-hyperpod-release-notes-20251107"></a>

SageMaker HyperPod libera o seguinte para[Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md).

**Novos recursos**
+ Patches [SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 07 de novembro de 2025](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20251107) de segurança atualizados.

## SageMaker HyperPod notas de lançamento: 29 de setembro de 2025
<a name="sagemaker-hyperpod-release-notes-20250929"></a>

SageMaker HyperPod libera o seguinte para[Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md).

**Novos recursos**
+ Lançou a nova SageMaker HyperPod AMI para o Amazon EKS 1.33. Para obter mais informações, [SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 29 de setembro de 2025](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20250929).
**Importante**  
A API beta do Kubernetes de alocação dinâmica de recursos está ativada por padrão nesta versão.  
Essa API melhora o agendamento e o monitoramento de cargas de trabalho que exigem recursos como. GPUs
Essa API foi desenvolvida pela comunidade de código aberto do Kubernetes e pode mudar em versões futuras do Kubernetes. Antes de usar a API, revise a [documentação do Kubernetes](https://kubernetes.io/docs/concepts/scheduling-eviction/dynamic-resource-allocation/) e entenda como ela afeta suas cargas de trabalho.
HyperPod não está lançando uma AMI HyperPod Amazon Linux 2 para Kubernetes 1.33. AWS recomenda que você migre para o. AL2023 Para obter mais informações, consulte [Atualizar do Amazon Linux 2 para AL2023](https://docs.aws.amazon.com/eks/latest/userguide/al2023.html).

Para obter mais informações, consulte [Kubernetes](https://kubernetes.io/blog/2025/04/23/kubernetes-v1-33-release/) v1.33.

## SageMaker HyperPod notas de lançamento: 4 de agosto de 2025
<a name="sagemaker-hyperpod-release-notes-20250804"></a>

SageMaker HyperPod lança novo público AMIs para orquestração EKS. O público AMIs pode ser usado sozinho ou pode ser usado para criar itens personalizados AMIs. Para obter mais informações sobre o público AMIs, consulte[Lançamentos de AMIs públicas](sagemaker-hyperpod-release-public-ami.md). Para ter mais informações sobre como criar uma AMI, consulte [Imagens personalizadas da Amazon Machine (AMIs) para SageMaker HyperPod clusters](hyperpod-custom-ami-support.md). 

## SageMaker HyperPod notas de lançamento: 31 de julho de 2025
<a name="sagemaker-hyperpod-release-notes-20250731"></a>

SageMaker HyperPod libera o seguinte para[Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md).

**Novos recursos e melhorias**
+ Lançamento de uma nova AMI que atualiza o sistema operacional do Amazon Linux 2 para o Amazon Linux 2023 para clusters do EKS. As principais atualizações incluem Linux Kernel 6.1, Python 3.10, driver 560.35.03 da NVIDIA e o gerenciador de pacotes DNF, que substitui o YUM.
**Importante**  
A atualização do Amazon Linux 2 AL2023 introduz mudanças significativas que podem afetar a compatibilidade com o software e as configurações projetadas para. AL2 É altamente recomendável testar seus aplicativos AL2023 antes de atualizar totalmente seus clusters.

  Para ter mais informações sobre a nova AMI e como atualizar clusters, consulte [SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 31 de julho de 2025](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20250731).

## SageMaker HyperPod notas de lançamento: 13 de maio de 2025
<a name="sagemaker-hyperpod-release-notes-20250513"></a>

SageMaker HyperPod libera o seguinte para[Orquestrando SageMaker HyperPod clusters com o SlurmOrquestração do Slurm](sagemaker-hyperpod-slurm.md).

**Novos recursos e melhorias**
+ Lançamento de uma AMI atualizada que oferece suporte ao Ubuntu 22.04 LTS para clusters do Slurm. Essa versão inclui várias atualizações de componentes de software e sistema para oferecer melhor desempenho, recursos atualizados e segurança aprimorada.
**Importante**  
A atualização do Ubuntu 20.04 LTS para o Ubuntu 22.04 LTS introduz mudanças que podem afetar a compatibilidade com o software e as configurações projetadas para o Ubuntu 20.04.

  Para obter mais informações, consulte:
  + [Principais atualizações na AMI para o Ubuntu 22.04.](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-ami-slurm-ubuntu22-updates)
  + [Atualização para a AMI do Ubuntu 22.04](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-ami-slurm-ubuntu22-upgrade)
  + [Solução de problemas de falhas de atualização](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-ami-slurm-ubuntu22-troubleshoot)

## SageMaker HyperPod notas de lançamento: 1 de maio de 2025
<a name="sagemaker-hyperpod-release-notes-20250501"></a>

SageMaker HyperPod libera o seguinte para[Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md).

**Novos recursos**
+ Foram adicionados relatórios de uso para clusters orquestrados pelo EKS, permitindo que as organizações implementem uma alocação de custos transparente e baseada no uso entre equipes, projetos ou departamentos. Esse recurso complementa a funcionalidade HyperPod de [governança de tarefas](sagemaker-hyperpod-eks-operate-console-ui-governance.md) para garantir uma distribuição justa de custos em ambientes compartilhados com vários inquilinos AI/ML . Para obter mais informações, consulte [Relatar o uso da computação em HyperPod](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-usage-reporting.html).

## SageMaker HyperPod notas de lançamento: 28 de abril de 2025
<a name="sagemaker-hyperpod-release-notes-20250428"></a>

SageMaker HyperPod libera o seguinte para [Orquestrando SageMaker HyperPod clusters com o SlurmOrquestração do Slurm](sagemaker-hyperpod-slurm.md) [Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md) e.

**Novos recursos e melhorias**
+ Atualização do driver da NVIDIA da versão 550.144.03 para a 550.163.01. Essa atualização visa abordar vulnerabilidades e exposições comuns (CVEs) presentes no Boletim de [Segurança do NVIDIA GPU Display](https://nvidia.custhelp.com/app/answers/detail/a_id/5630) de abril de 2025.

Para ter mais informações sobre lançamentos de AMI, consulte [SageMaker HyperPod Lançamentos da AMI para o Slurm: 28 de abril de 2025](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20250428) e [SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 28 de abril de 2025](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20250428).

## SageMaker HyperPod notas de lançamento: 18 de abril de 2025
<a name="sagemaker-hyperpod-release-notes-20250418"></a>

SageMaker HyperPod libera o seguinte para[Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md).

**Novos recursos**
+ Lançou a nova SageMaker HyperPod AMI para o Amazon EKS 1.32.1. Para obter mais informações, consulte [SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 18 de abril de 2025](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20250418).

## SageMaker HyperPod notas de lançamento: 10 de abril de 2025
<a name="sagemaker-hyperpod-release-notes-20250410"></a>

SageMaker HyperPod libera o seguinte para[Orquestrando SageMaker HyperPod clusters com o SlurmOrquestração do Slurm](sagemaker-hyperpod-slurm.md).

**Novos recursos e melhorias**
+ Foi adicionado um tutorial de receita de Otimização de Preferência Direta (DPO) para SageMaker HyperPod com a orquestração do Slurm. Este tutorial de ajuste fino fornece step-by-step orientação para otimizar o alinhamento do modelo usando o método DPO em clusters Slurm alimentados por GPU. SageMaker HyperPod Para obter mais informações, consulte [HyperPod Tutorial de DPO (GPU) do cluster Slurm](hyperpod-gpu-slurm-dpo-tutorial.md).

## SageMaker HyperPod notas de lançamento: 03 de abril de 2025
<a name="sagemaker-hyperpod-release-notes-20250403"></a>

SageMaker HyperPod libera o seguinte para [Orquestrando SageMaker HyperPod clusters com o SlurmOrquestração do Slurm](sagemaker-hyperpod-slurm.md) [Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md) e.

**Novos recursos e melhorias**
+ Foi adicionada uma página de [início rápido](sagemaker-hyperpod-quickstart.md) para implantar clusters. SageMaker HyperPod A página aproveita os fluxos de trabalho de configuração simplificados dos SageMaker HyperPod workshops especializados e automatiza a implantação usando modelos pré-criados. AWS CloudFormation Ela permite a escolha de infraestrutura, como Slurm ou Amazon EKS, para facilitar a configuração e a implantação de clusters de referência.
+ SageMaker HyperPod agora oferece suporte aos seguintes tipos de instância para clusters Slurm e Amazon EKS.
  + Novos tipos de instância:: I3en, M7i e R7i. Para ver a lista completa de instâncias compatíveis, consulte o campo `InstanceType` em `[ClusterInstanceGroupDetails](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupDetails.html)`.

## SageMaker HyperPod notas de lançamento: 16 de março de 2025
<a name="sagemaker-hyperpod-release-notes-20250316"></a>

SageMaker HyperPod libera o seguinte para [Orquestrando SageMaker HyperPod clusters com o SlurmOrquestração do Slurm](sagemaker-hyperpod-slurm.md) [Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md) e.

**Novos recursos e melhorias**
+ Foram adicionadas as chaves de condição do IAM a seguir para oferecer um controle de acesso mais granular nas operações de 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/pt_br/sagemaker/latest/dg/sagemaker-hyperpod-release-notes.html)

## SageMaker HyperPod notas de lançamento: 20 de fevereiro de 2025
<a name="sagemaker-hyperpod-release-notes-20250220"></a>

SageMaker HyperPod libera o seguinte para [Orquestrando SageMaker HyperPod clusters com o SlurmOrquestração do Slurm](sagemaker-hyperpod-slurm.md) [Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md) e.

**Novos recursos e melhorias**
+ Foi adicionado suporte para excluir grupos de instâncias do seu SageMaker HyperPod cluster. Para ter mais informações, consulte [Excluir grupos de instâncias](smcluster-scale-down.md#smcluster-remove-instancegroup) de clusters orquestrados pelo EKS e [Reduzir a escala verticalmente do cluster](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-scale-down) para clusters orquestrados pelo Slurm. 

## SageMaker HyperPod notas de lançamento: 18 de fevereiro de 2025
<a name="sagemaker-hyperpod-release-notes-20250218"></a>

SageMaker HyperPod libera o seguinte para [Orquestrando SageMaker HyperPod clusters com o SlurmOrquestração do Slurm](sagemaker-hyperpod-slurm.md) [Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md) e.

**Novos recursos**
+ Esta versão do SageMaker HyperPod incorpora uma atualização de segurança do kit de ferramentas de contêiner da Nvidia (da versão 1.17.3 para a versão 1.17.4). Para ter mais informações, consulte as [notas de lançamento da v1.17.4](https://github.com/NVIDIA/nvidia-container-toolkit/releases/tag/v1.17.4). 
**nota**  
Para todas as workloads de contêineres no NVIDIA Container Toolkit versão 1.17.4, a montagem das bibliotecas compatíveis com CUDA agora está desabilitada. Para garantir a compatibilidade com várias versões do CUDA em fluxos de trabalho de contêineres, atualize o `LD_LIBRARY_PATH` para incluir suas bibliotecas compatíveis com CUDA. Você pode encontrar as etapas específicas em [Se você usar uma camada de compatibilidade CUDA](inference-gpu-drivers.md#collapsible-cuda-compat).

Para ter mais informações sobre lançamentos de AMI, consulte [SageMaker HyperPod Lançamentos da AMI para o Slurm: 18 de fevereiro de 2025](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20250218) e [SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 18 de fevereiro de 2025](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20250218).

## SageMaker HyperPod notas de lançamento: 06 de fevereiro de 2025
<a name="sagemaker-hyperpod-release-notes-20250206"></a>

SageMaker HyperPod libera o seguinte para [Orquestrando SageMaker HyperPod clusters com o SlurmOrquestração do Slurm](sagemaker-hyperpod-slurm.md) [Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md) e.

**Novos recursos e melhorias**
+ Suporte aprimorado para SageMaker HyperPod Multi-AZ: você pode especificar diferentes sub-redes e grupos de segurança, abrangendo diferentes zonas de disponibilidade, para grupos de instâncias individuais em seu cluster. Para obter mais informações sobre o suporte SageMaker HyperPod Multi-AZ, consulte[Configurando SageMaker HyperPod clusters em vários AZs](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-multiple-availability-zones).

## SageMaker HyperPod notas de lançamento: 22 de janeiro de 2025
<a name="sagemaker-hyperpod-release-notes-20250122"></a>

**Lançamentos de AMI**
+ [SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 22 de janeiro de 2025](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20250122)

## SageMaker HyperPod notas de lançamento: 09 de janeiro de 2025
<a name="sagemaker-hyperpod-release-notes-20250109"></a>

SageMaker HyperPod libera o seguinte para [Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md) [Orquestrando SageMaker HyperPod clusters com o SlurmOrquestração do Slurm](sagemaker-hyperpod-slurm.md) e.

**Novos recursos e melhorias**
+  IPv6 Suporte adicional: os clusters podem usar IPv6 endereçamento quando configurados com VPC e IPv6 sub-redes habilitadas. Para obter mais informações, consulte [Configuração SageMaker HyperPod com uma Amazon VPC personalizada](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-optional-vpc).

## SageMaker HyperPod notas de lançamento: 21 de dezembro de 2024
<a name="sagemaker-hyperpod-release-notes-20241221"></a>

SageMaker HyperPod libera o seguinte para [Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md) [Orquestrando SageMaker HyperPod clusters com o SlurmOrquestração do Slurm](sagemaker-hyperpod-slurm.md) e.

**Novos recursos**
+ SageMaker HyperPod agora oferece suporte aos seguintes tipos de instância para clusters Slurm e Amazon EKS.
  + Novos tipos de instância: C6gn, C6i, M6i e R6i.
  + Novos tipos de instância Trainium: Trn1 e Trn1n.

**Melhorias**
+ Visibilidade aprimorada do registro de erros em log quando o Slurm interrompe trabalhos e impedimento do encerramento desnecessário de etapas de trabalho durante cancelamentos iniciados pelo Slurm.
+ DLAMI base atualizada para p5en para clusters do Slurm e do Amazon EKS.

**Lançamentos de AMI**
+ [SageMaker HyperPod Lançamentos da AMI para o Slurm: 21 de dezembro de 2024](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20241221)
+ [SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 21 de dezembro de 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20241221)

## SageMaker HyperPod notas de lançamento: 13 de dezembro de 2024
<a name="sagemaker-hyperpod-release-notes-20241213"></a>

SageMaker HyperPod libera o seguinte para [Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md) [Orquestrando SageMaker HyperPod clusters com o SlurmOrquestração do Slurm](sagemaker-hyperpod-slurm.md) e.

**Novo atributo**
+ SageMaker HyperPod lança um conjunto de CloudWatch métricas da Amazon para monitorar a integridade e o desempenho dos clusters do SageMaker HyperPod Slurm. Essas métricas estão relacionadas à CPU, GPU, utilização de memória e informações da instância do cluster, como contagem de nós e nós com falha. Esse recurso de monitoramento é ativado por padrão e as métricas podem ser acessadas no `/aws/sagemaker/Clusters` CloudWatch namespace. Você também pode configurar CloudWatch alarmes com base nessas métricas para detectar e resolver proativamente possíveis problemas em seus clusters baseados em HyperPod SLURM. Para obter mais informações, consulte [Métricas do Amazon SageMaker HyperPod Slurm](smcluster-slurm-metrics.md).

**Lançamentos de AMI**
+ [SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 13 de dezembro de 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20241213)

## SageMaker HyperPod notas de lançamento: 24 de novembro de 2024
<a name="sagemaker-hyperpod-release-notes-20241124"></a>

SageMaker HyperPod libera o seguinte para [Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md) [Orquestrando SageMaker HyperPod clusters com o SlurmOrquestração do Slurm](sagemaker-hyperpod-slurm.md) e.

**Novos recursos**
+ Foi adicionado suporte para configurar SageMaker HyperPod clusters em várias zonas de disponibilidade. Para obter mais informações sobre o suporte SageMaker HyperPod Multi-AZ, consulte[Configurando SageMaker HyperPod clusters em vários AZs](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-multiple-availability-zones).

**Lançamentos de AMI**
+ [SageMaker HyperPod Lançamentos da AMI para o Slurm: 24 de novembro de 2024](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20241124)
+ [SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 24 de novembro de 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20241124)

## SageMaker HyperPod notas de lançamento: 15 de novembro de 2024
<a name="sagemaker-hyperpod-release-notes-20241115"></a>

SageMaker HyperPod libera o seguinte para [Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md) [Orquestrando SageMaker HyperPod clusters com o SlurmOrquestração do Slurm](sagemaker-hyperpod-slurm.md) e. Para obter mais informações, consulte [SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 15 de novembro de 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20241115) e.

**Novos recursos e melhorias**
+ Foi adicionado suporte aos tipos de instância trn1 e trn1n para clusters orquestrados pelo Amazon EKS e pelo Slurm.
+ Gerenciamento aprimorado de logs para clusters do Slurm:
  +  Alternância de logs implementada: semanal ou diária com base no tamanho.
  +  Definição de alternância de logs para três semanas.
  +  Logs compactados para reduzir o impacto no armazenamento.
  +  Carregamento contínuo de registros CloudWatch para retenção a longo prazo.
**nota**  
Alguns logs ainda são armazenados em syslogs.
+ Ajuste das configurações do Fluent Bit para evitar problemas de rastreamento em arquivos que contém linhas longas.

**Correções de bugs**
+ Impedimento do truncamento indesejado com atualizações de nó do controlador do Slurm no arquivo de configuração `slurm.config`.

**Lançamentos de AMI**
+ [SageMaker HyperPod Lançamentos da AMI para o Slurm: 15 de novembro de 2024](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20241115)
+ [SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 15 de novembro de 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20241115)

## SageMaker HyperPod notas de lançamento: 11 de novembro de 2024
<a name="sagemaker-hyperpod-release-notes-20241111"></a>

SageMaker HyperPod libera o seguinte para [Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md) [Orquestrando SageMaker HyperPod clusters com o SlurmOrquestração do Slurm](sagemaker-hyperpod-slurm.md) e. 

**Novo atributo**
+ SageMaker HyperPod A AMI agora oferece suporte aos tipos de instância G6e.

**Lançamentos de AMI**
+ [SageMaker HyperPod Lançamentos da AMI para o Slurm: 11 de novembro de 2024](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20241111)
+ [SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 11 de novembro de 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20241111)

## SageMaker HyperPod notas de lançamento: 31 de outubro de 2024
<a name="sagemaker-hyperpod-release-notes-20241031"></a>

SageMaker HyperPod libera o seguinte para [Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md) [Orquestrando SageMaker HyperPod clusters com o SlurmOrquestração do Slurm](sagemaker-hyperpod-slurm.md) e.

**Novos recursos**
+ Foi adicionada redução de SageMaker HyperPod clusters no nível do grupo de instâncias e no nível da instância para os clusters orquestrados Amazon EKS e Slurm. Para ter mais informações sobre como reduzir a escala verticalmente de clusters do Amazon EKS, consulte [Reduzindo a escala de um cluster SageMaker HyperPod](smcluster-scale-down.md). Para ter mais informações sobre como reduzir a escala verticalmente de clusters do Slurm, consulte *Reduzir a escala verticalmente de um cluster* em [Gerenciando clusters SageMaker HyperPod do Slurm usando o AWS CLI](sagemaker-hyperpod-operate-slurm-cli-command.md).
+ SageMaker HyperPod agora oferece suporte ao tipo de instância P5e para clusters orquestrados Amazon EKS e Slurm. 

## SageMaker HyperPod notas de lançamento: 21 de outubro de 2024
<a name="sagemaker-hyperpod-release-notes-20241021"></a>

SageMaker HyperPod libera o seguinte para [Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md) [Orquestrando SageMaker HyperPod clusters com o SlurmOrquestração do Slurm](sagemaker-hyperpod-slurm.md) e.

**Novo atributo**
+ SageMaker HyperPod agora suporta os tipos de instância P5e [n], G6, Gr6 e Trn2 [n] para clusters Slurm e Amazon EKS.

**Lançamentos de AMI**
+ [SageMaker HyperPod Lançamentos da AMI para o Slurm: 21 de outubro de 2024](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20241021)
+ [SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 21 de outubro de 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20241021)

## SageMaker HyperPod notas de lançamento: 10 de setembro de 2024
<a name="sagemaker-hyperpod-release-notes-20240910"></a>

SageMaker HyperPod libera o seguinte para [Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md) [Orquestrando SageMaker HyperPod clusters com o SlurmOrquestração do Slurm](sagemaker-hyperpod-slurm.md) e.

**Novos recursos**
+ Foi adicionado suporte ao Amazon EKS em SageMaker HyperPod. Para saber mais, consulte [Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md).
+ Foi adicionado suporte para gerenciar SageMaker HyperPod clusters por meio do CloudFormation Terraform. Para obter mais informações sobre como gerenciar HyperPod clusters por meio de CloudFormation, consulte a [CloudFormation documentação](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-sagemaker-cluster.html) do`AWS::SageMaker::Cluster`. Para saber mais sobre o gerenciamento de HyperPod clusters por meio do Terraform, consulte a [documentação do Terraform](https://registry.terraform.io/providers/hashicorp/awscc/latest/docs/data-sources/sagemaker_cluster) para. `awscc_sagemaker_cluster`

**Lançamentos de AMI**
+ [SageMaker HyperPod Lançamentos da AMI para o Slurm: 10 de setembro de 2024](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20240910)
+ [SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 10 de setembro de 2024](sagemaker-hyperpod-release-ami-eks.md#sagemaker-hyperpod-release-ami-eks-20240910)

## SageMaker HyperPod notas de lançamento: 20 de agosto de 2024
<a name="sagemaker-hyperpod-release-notes-20240820"></a>

SageMaker HyperPod libera o seguinte para[Orquestrando SageMaker HyperPod clusters com o Slurm](sagemaker-hyperpod-slurm.md).

**Novos recursos**
+ Aprimorou a [funcionalidade de SageMaker HyperPod retomada automática](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-resiliency-slurm.html#sagemaker-hyperpod-resiliency-slurm-auto-resume), ampliando a capacidade de resiliência dos nós Slurm conectados ao Generic (GRES). RESources 

  Quando [recursos genéricos (GRES)](https://slurm.schedmd.com/gres.html) são anexados a um nó do Slurm, o Slurm normalmente não permite alterações na alocação do nó, como a substituição de nós, e, portanto, não permite a retomada de um trabalho com falha. A menos que seja explicitamente proibida, a funcionalidade de HyperPod retomada automática coloca automaticamente em fila novamente qualquer trabalho com defeito associado aos nós habilitados para GRES. Esse processo envolve interromper o trabalho, colocá-lo de volta na fila de trabalhos e reiniciar o trabalho desde o início.

**Outras alterações**
+ Pré-embalado [https://slurm.schedmd.com/slurmrestd.html](https://slurm.schedmd.com/slurmrestd.html)na AMI SageMaker HyperPod .
+ Os valores padrão foram `ResumeTimeout` e `UnkillableStepTimeout` de 60 segundos para 300 segundos em `slurm.conf` para melhorar a capacidade de resposta do sistema e o gerenciamento do trabalho.
+ Fizemos pequenas melhorias nas verificações de integridade do NVIDIA Data Center GPU Manager (DCGM) e da NVIDIA System Management Interface (nvidia-smi).

**Correções de bugs**
+ O plug-in de HyperPod retomada automática pode usar nós ociosos para retomar um trabalho.

## SageMaker HyperPod notas de lançamento: 20 de junho de 2024
<a name="sagemaker-hyperpod-release-notes-20240620"></a>

SageMaker HyperPod libera o seguinte para[Orquestrando SageMaker HyperPod clusters com o Slurm](sagemaker-hyperpod-slurm.md).

**Novos recursos**
+ Foi adicionada uma nova capacidade de anexar armazenamento adicional às instâncias SageMaker HyperPod do cluster. Com esse recurso, você pode configurar o armazenamento suplementar no nível de configuração do grupo de instâncias durante os processos de criação ou atualização do cluster, por meio do SageMaker HyperPod console ou do [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) APIs O volume adicional do EBS é anexado a cada instância dentro de um SageMaker HyperPod cluster e montado em. `/opt/sagemaker` Para saber mais sobre como implementá-lo em seu SageMaker HyperPod cluster, consulte a documentação atualizada nas páginas a seguir.
  + [Começando com SageMaker HyperPod](smcluster-getting-started-slurm.md)
  + [SageMaker HyperPod Operações de cluster do Slurm](sagemaker-hyperpod-operate-slurm.md)

  Observe que você precisa atualizar o software do HyperPod cluster para usar esse recurso. Depois de corrigir o software de HyperPod cluster, você pode utilizar esse recurso para SageMaker HyperPod clusters existentes criados antes de 20 de junho de 2024 adicionando novos grupos de instâncias. Esse recurso é totalmente efetivo para qualquer SageMaker HyperPod cluster criado após 20 de junho de 2024.

**Etapas de atualização**
+ Execute o comando a seguir para chamar a [UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API e atualizar seus HyperPod clusters existentes com a HyperPod DLAMI mais recente. Para obter mais instruções, consulte [Atualizar o software da SageMaker HyperPod plataforma de um cluster](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software). 
**Importante**  
Faça backup do seu trabalho antes de executar essa API. O processo de aplicação de patches substitui o volume raiz pela AMI atualizada, o que significa que seus dados anteriores armazenados no volume raiz da instância serão perdidos. Certifique-se de fazer backup dos dados do volume raiz da instância no Amazon S3 ou no Amazon FSx for Lustre. Para obter mais informações, consulte [Use o script de backup fornecido pelo 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**  
Observe que você deve executar o AWS CLI comando para atualizar seu HyperPod cluster. A atualização do HyperPod software por meio da interface do SageMaker HyperPod console não está disponível no momento.

## SageMaker HyperPod notas de lançamento: 24 de abril de 2024
<a name="sagemaker-hyperpod-release-notes-20240424"></a>

SageMaker HyperPod libera o seguinte para[Orquestrando SageMaker HyperPod clusters com o Slurm](sagemaker-hyperpod-slurm.md).

**Correções de bugs**
+ Corrigido um bug com o parâmetro `ThreadsPerCore` na API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ClusterInstanceGroupSpecification.html). Com a correção, pegue [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)e aplique [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html) APIs adequadamente a entrada do usuário`ThreadsPerCore`. Essa correção é efetiva em HyperPod clusters criados após 24 de abril de 2024. Se você teve problemas com esse bug e deseja que essa correção seja aplicada ao seu cluster, precisará criar um novo cluster. Faça backup e restaure seu trabalho ao migrar para um novo cluster, seguindo as instruções em [Use o script de backup fornecido pelo SageMaker HyperPod](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software-backup).

## SageMaker HyperPod notas de lançamento: 27 de março de 2024
<a name="sagemaker-hyperpod-release-notes-20240327"></a>

SageMaker HyperPod libera o seguinte para[Orquestrando SageMaker HyperPod clusters com o Slurm](sagemaker-hyperpod-slurm.md).

**HyperPod patch de software**

A equipe HyperPod de serviço distribui patches de software por meio de[SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami). Veja os detalhes a seguir sobre o HyperPod DLAMI mais recente.
+ Nesta versão do HyperPod DLAMI, o Slurm foi criado com REST service `slurmestd` () com suporte a JSON, YAML e JWT.
+ [Slurm](https://slurm.schedmd.com/documentation.html) atualizado para v23.11.3

**Melhorias**
+ Aumento do tempo limite do serviço de retomada automática para 60 minutos.
+ Processo aprimorado de substituição de instâncias para não reiniciar o controlador Slurm.
+ Mensagens de erro aprimoradas da execução de scripts de ciclo de vida, como erros de download e erros de verificação de integridade da instância na inicialização da instância.

**Correções de bugs**
+ Corrigido um bug com o serviço chrony que causava um problema com a sincronização de horário.
+ Corrigido um bug com a análise `slurm.conf`.
+ Corrigido um problema com a biblioteca [NVIDIA `go-dcgm`](https://github.com/NVIDIA/go-dcgm).

## SageMaker HyperPod notas de lançamento: 14 de março de 2024
<a name="sagemaker-hyperpod-release-notes-20240314"></a>

SageMaker HyperPod libera o seguinte para[Orquestrando SageMaker HyperPod clusters com o Slurm](sagemaker-hyperpod-slurm.md).

**Melhorias**
+ HyperPod agora suporta adequadamente a passagem de nomes de partição fornecidos `provisioning_parameters.json` e cria partições apropriadamente com base nas entradas fornecidas. Para obter mais informações sobre a `provisioning_parameters.json`, consulte [Configuração legada: provisioning\$1parameters.json](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-provisioning-forms) e [Personalização de SageMaker HyperPod clusters usando scripts de ciclo de vida](sagemaker-hyperpod-lifecycle-best-practices-slurm.md).

**Lançamentos de AMI**
+ [SageMaker HyperPod Lançamentos da AMI para o Slurm: 14 de março de 2024](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20240314)

## SageMaker HyperPod notas de lançamento: 15 de fevereiro de 2024
<a name="sagemaker-hyperpod-release-notes-20240215"></a>

SageMaker HyperPod libera o seguinte para[Orquestrando SageMaker HyperPod clusters com o Slurm](sagemaker-hyperpod-slurm.md).

**Novos recursos**
+ Foi adicionada uma nova `UpdateClusterSoftware` API para patches SageMaker HyperPod de segurança. Quando os patches de segurança estiverem disponíveis, recomendamos que você atualize os SageMaker HyperPod clusters existentes em sua conta executando`aws sagemaker update-cluster-software --cluster-name your-cluster-name`. Para acompanhar futuros patches de segurança, continue acompanhando esta página de notas de SageMaker HyperPod lançamento da Amazon. Para saber como a API `UpdateClusterSoftware` funciona, consulte [Atualizar o software da SageMaker HyperPod plataforma de um cluster](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software).

## SageMaker HyperPod notas de lançamento: 29 de novembro de 2023
<a name="sagemaker-hyperpod-release-notes-20231129"></a>

SageMaker HyperPod libera o seguinte para[Orquestrando SageMaker HyperPod clusters com o Slurm](sagemaker-hyperpod-slurm.md).

**Novos recursos**
+ Lançou a Amazon SageMaker HyperPod no AWS re:Invent 2023.

**Lançamentos de AMI**
+ [SageMaker HyperPod Lançamento da AMI para Slurm: 29 de novembro de 2023](sagemaker-hyperpod-release-ami-slurm.md#sagemaker-hyperpod-release-ami-slurm-20231129)

# Amazon SageMaker HyperPod AMI
<a name="sagemaker-hyperpod-release-ami"></a>

Amazon SageMaker HyperPod Amazon Machine Images (AMIs) são imagens de máquina especializadas para cargas de trabalho distribuídas de aprendizado de máquina e computação de alto desempenho. Eles AMIs aprimoram as imagens básicas com componentes essenciais, incluindo drivers de GPU e suporte ao acelerador AWS Neuron.

Componentes principais adicionados para HyperPod AMIs incluir:
+ [Público AMIs](sagemaker-hyperpod-release-public-ami.md) com suporte para [construção personalizada AMIs](hyperpod-custom-ami-support.md)
+ Ferramentas avançadas de orquestração:
  + [Orquestrando SageMaker HyperPod clusters com o SlurmOrquestração do Slurm](sagemaker-hyperpod-slurm.md)
  + [Orquestrando SageMaker HyperPod clusters com o Amazon EKS](sagemaker-hyperpod-eks.md)
+ Dependências de gerenciamento de cluster
+ Recursos de resiliência incorporados:
  + verificação de integridade do cluster
  + recursos de retomada automática
+ Support para gerenciamento e configuração de HyperPod clusters

Esses aprimoramentos são baseados na seguinte base de Deep Learning AMIs ()DLAMIs:
+ [AWS AMI de GPU de base de aprendizado profundo (Ubuntu 20.04)](https://aws.amazon.com/releasenotes/aws-deep-learning-base-gpu-ami-ubuntu-20-04/) para orquestração com o Slurm.
+ AMI baseada no Amazon Linux 2 ou no Amazon Linux 2023 para orquestração com o Amazon EKS.

Escolha sua HyperPod AMIs com base na sua preferência de orquestração:
+ Para orquestração do Slurm, consulte. [SageMaker HyperPod Lançamentos da AMI para o Slurm](sagemaker-hyperpod-release-ami-slurm.md)
+ Para orquestração do Amazon EKS, consulte [SageMaker HyperPod Lançamentos da AMI para o Amazon EKS](sagemaker-hyperpod-release-ami-eks.md).

Para obter informações sobre os lançamentos de SageMaker HyperPod recursos da Amazon, consulte[Notas SageMaker HyperPod de lançamento da Amazon](sagemaker-hyperpod-release-notes.md).

# Atualize sua versão da AMI em seu SageMaker HyperPod cluster
<a name="sagemaker-hyperpod-release-ami-update"></a>

Amazon SageMaker HyperPod Amazon Machine Images (AMIs) são imagens de máquina especializadas para cargas de trabalho distribuídas de aprendizado de máquina e computação de alto desempenho. Cada AMI vem pré-carregada com drivers, frameworks de machine learning, bibliotecas de treinamento e ferramentas de monitoramento de desempenho. Ao atualizar a versão da AMI no cluster, você pode usar as versões mais recentes desses componentes e pacotes para suas tarefas de treinamento e fluxos de trabalho.

 Ao atualizar a versão da AMI no cluster, você tem a opção de processar a atualização imediatamente, agendar uma atualização única ou usar uma expressão cron para criar uma programação recorrente. Você também pode optar por atualizar todas as instâncias em um grupo de instâncias ou apenas lotes de instâncias. Se você optar por atualizar os lotes, defina a porcentagem ou a quantidade de instâncias que a SageMaker IA deve atualizar por vez. Se você usar esse método de atualização, definirá um intervalo de quanto tempo a SageMaker IA deve esperar entre os lotes.

Se você optar por atualizar em lote, também poderá incluir uma lista de alarmes e métricas. Durante o intervalo de espera, a SageMaker IA observa essas métricas e, se alguma exceder seu limite, o alarme correspondente entra no estado ALARM e a SageMaker IA reverte a atualização da AMI. Para utilizar reversões automáticas, o perfil de execução do IAM deve ter a permissão `cloudwatch:DescribeAlarms`.

**nota**  
A atualização do seu cluster em lotes está disponível somente para HyperPod clusters integrados ao Amazon EKS. Além disso, se você estiver criando vários agendamentos, recomendamos que ter um intervalo de tempo entre os agendamentos. Se os horários se sobrepuserem, as atualizações poderão falhar.

Para obter mais informações sobre cada versão da AMI para seu HyperPod cluster, consulte[Amazon SageMaker HyperPod AMI](sagemaker-hyperpod-release-ami.md). Para obter mais informações sobre HyperPod versões gerais, consulte[Notas SageMaker HyperPod de lançamento da Amazon](sagemaker-hyperpod-release-notes.md).

Você pode usar a API de SageMaker IA ou as operações da CLI para atualizar seu cluster ou ver atualizações programadas para um cluster específico. Se você estiver usando o AWS console, siga estas etapas:

**nota**  
A atualização da sua AMI com o AWS console está disponível somente para clusters integrados ao Amazon EKS. Se você tiver um cluster Slurm, deverá usar as operações da API de SageMaker IA ou da CLI.

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. À esquerda, expanda **HyperPod Clusters** e escolha **Cluster Management**.

1. Escolha o cluster que você deseja atualizar e selecione **Detalhes** e **Atualizar AMI**.



Para criar e gerenciar cronogramas de atualização de forma programática, use as seguintes operações de API:
+ [CreateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html)— criar um cluster ao especificar um cronograma de atualização
+ [UpdateCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateCluster.html)— atualizar um cluster para adicionar um cronograma de atualização
+ [ UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)— para atualizar o software da plataforma de um cluster
+ [ DescribeCluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeCluster.html)— veja um cronograma de atualização que você criou para um 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)— veja quando o cluster foi atualizado pela última vez.

## Permissões obrigatórias
<a name="sagemaker-hyperpod-release-ami-update-permissions"></a>

Dependendo de como você configurou seu [Pod Disruption Budget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) em seu cluster Amazon HyperPod EKS, remove pods, libera nós e impede qualquer programação de atualização durante o processo de atualização da AMI. Se alguma restrição dentro do orçamento for violada, HyperPod ignore esse nó durante a atualização da AMI. SageMaker HyperPod Para remover corretamente os pods, você deve adicionar as permissões necessárias à função vinculada ao HyperPod serviço. O arquivo yaml a seguir tem as permissões necessárias.

```
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
```

Use os comandos a seguir para aplicar as permissões.

```
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
```

## Expressão cron
<a name="sagemaker-hyperpod-release-ami-update-cron"></a>

Para configurar uma atualização única em um determinado horário ou uma programação recorrente, use expressões cron. As expressões cron permitem três campos e são separadas por um espaço em branco. Todos os campos são obrigatórios.

```
cron(Minutes Hours Day-of-month Month Day-of-week Year)
```


| **Campos** | **Valores** | **Curingas** | 
| --- | --- | --- | 
|  Minutos  |  00-59  |  N/D  | 
|  Horas  |  00-23  |  N/D  | 
|  D ay-of-month  |  01-31  | ? | 
|  Mês  |  01-12  | \$1 / | 
|  D ay-of-week  |  1-7 ou MON-SUN  | ? \$1 L | 
|  Ano  |  Ano atual: 2099  | \$1 | 

**Curingas**
+ O **\$1** (asterisco) curinga inclui todos os valores no campo. No campo `Hours`, **\$1** incluirá cada hora.
+ A **/** (barra) curinga especifica incrementos. No campo `Months`, você pode inserir **\$1/3** para especificar a cada três meses.
+ O curinga **?** (interrogação) especifica um ou outro. No `Day-of-month` campo, você poderia inserir **7** e, se não se importasse em que dia da semana era o sétimo, poderia inserir**?** no Day-of-week campo.
+ O curinga **L** nos campos ou `day-of-week` especifica o último dia do mês ou da semana. Por exemplo, `5L` significa a última sexta-feira do mês.
+ O caractere curinga **\$1** no ay-of-week campo especifica uma determinada instância do dia da semana especificado em um mês. Por exemplo, 3\$12 seria a segunda terça-feira do mês: o 3 refere-se a terça-feira, porque é o terceiro dia de cada semana, e o 2 refere-se ao segundo dia desse tipo dentro do mês.

É possível usar o expressões cron nos seguintes cenários:
+ Programação única que é executada em um determinado horário e dia. Você pode usar o `?` caractere curinga para indicar isso day-of-month ou day-of-week não.

  ```
  cron(30 14 ? 12 MON 2024)
  ```

  ```
  cron(30 14 15 12 ? 2024)
  ```
+ Programação semanal que é executada em um determinado horário e dia. O exemplo a seguir cria uma programação que é executada às 12h de todas as segundas-feiras, independentemente de day-of-month.

  ```
  cron(00 12 ? * 1 *)
  ```
+ Programação mensal que é executada todos os meses, independentemente do day-of-week. A programação a seguir é executada às 12h30 do dia 15 de cada mês.

  ```
  cron(30 12 15 * ? *)
  ```
+ Uma programação mensal que usa day-of-week.

  ```
  cron(30 12 ? * MON *)
  ```
+ Para criar uma programação que seja executada a cada enésimo mês, use o caractere curinga `/`. O exemplo a seguir cria uma programação mensal que é executada a cada três meses. Os dois exemplos a seguir demonstram como ele funciona com day-of-week day-of-month e.

  ```
  cron(30 12 15 */3 ? *)
  ```

  ```
  cron(30 12 ? */3 MON *)
  ```
+ Uma programação que é executada em uma determinada instância do dia especificado da semana. O exemplo a seguir cria uma programação que é executada às 12h30 na segunda segunda-feira de cada mês.

  ```
  cron(30 12 ? * 1#2 *)
  ```
+ Uma programação que é executada na última instância do dia especificado da semana. A programação a seguir é executada às 12h30 na última segunda-feira de cada mês.

  ```
  cron(30 12 ? * 1L *)
  ```

# SageMaker HyperPod Lançamentos da AMI para o Slurm
<a name="sagemaker-hyperpod-release-ami-slurm"></a>

As notas de lançamento a seguir acompanham as atualizações mais recentes dos lançamentos da Amazon SageMaker HyperPod AMI para orquestração do Slurm. Eles HyperPod AMIs são baseados no [AWS Deep Learning Base GPU AMI (Ubuntu 22.04](https://aws.amazon.com/releasenotes/aws-deep-learning-base-gpu-ami-ubuntu-22-04/)). A equipe HyperPod de serviço distribui patches de software por meio de[SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami). Para versões de HyperPod AMI para orquestração do Amazon EKS, consulte. [SageMaker HyperPod Lançamentos da AMI para o Amazon EKS](sagemaker-hyperpod-release-ami-eks.md) Para obter informações sobre os lançamentos de SageMaker HyperPod recursos da Amazon, consulte[Notas SageMaker HyperPod de lançamento da Amazon](sagemaker-hyperpod-release-notes.md).

**nota**  
Para atualizar os HyperPod clusters existentes com a DLAMI mais recente, consulte. [Atualizar o software da SageMaker HyperPod plataforma de um cluster](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software)

## SageMaker HyperPod Lançamentos da AMI para o Slurm: 01 de março de 2026
<a name="sagemaker-hyperpod-release-ami-slurm-20260301"></a>

 **Atualizações gerais de AMI** 
+ Atualizações lançadas para SageMaker HyperPod AMI for Slurm, versões 24.11.
+ [A nota de lançamento do DLAMI base está disponível aqui.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker HyperPod DLAMI para suporte ao Slurm** 

Esta versão inclui as seguintes alterações:

------
#### [ Slurm v24.11 ]
+ Slurm 24.11 (): ARM64
  + Versão do kernel Linux: 6.8
  + Versão Glibc: 2.35
  + Versão do OpenSSL: 3.0.2
  + FSx Versão do Lustre Client: 2.15.6-1fsx26
  + Versão Runc: 1.3.4
  + Versão do contêiner: containerd containerd.io v2.2.1
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.6, 12.8, 12.9, 13.0
  + Versão do EFA Installer: 1.45.1
  + Versão Python: 3.10.12
  + Versão do Slurm: 24.11.0
  + versão nvme-cli: 1.16
  + versão coletada: 5.12.0.
  + versão lustre-client: 2.15.6-1fsx26
  + Versão nvidia-imex: 580.126.09-1
  + versão systemd: 249
  + versão openssh: 8.9
  + versão sudo: 1.9.9
  + versão ufw: 0.36.1
  + versão gcc: 11.4.0
  + versão cmake: 3.2.1
  + versão git: 2.34.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300064.1b1344-1
  + versão nfs-utils: 1:2.6.1-1ubuntu1.2
  + iscsi-initiator-utils versão: 2.1.5-1ubuntu1.1
  + versão lvm2:2.03.11
  + versão ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versão rdma-core: 60.0-1
+ Slurm 24.11 (x86\$164):
  + Versão do kernel Linux: 6.8
  + Versão Glibc: 2.35
  + Versão do OpenSSL: 3.0.2
  + FSx Versão do Lustre Client: 2.15.6-1fsx26
  + Versão Runc: 1.3.4
  + Versão do contêiner: containerd containerd.io v2.2.1
  + versão do aws Neuronx DMS: 2.26.5.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.6, 12.8, 12.9, 13.0
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.10.12
  + Versão do Slurm: 24.11.0
  + versão nvme-cli: 1.16
  + versão de stress: 1.0.5
  + versão coletada: 5.12.0.
  + versão lustre-client: 2.15.6-1fsx26
  + versão systemd: 249
  + versão openssh: 8.9
  + versão sudo: 1.9.9
  + versão ufw: 0.36.1
  + versão gcc: 11.4.0
  + versão cmake: 3.2.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300064.1b1344-1
  + versão nfs-utils: 1:2.6.1-1ubuntu1.2
  + iscsi-initiator-utils versão: 2.1.5-1ubuntu1.1
  + versão lvm2:2.03.11
  + versão ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versão rdma-core: 60.0-1

------

## SageMaker HyperPod Lançamentos da AMI para o Slurm: 12 de fevereiro de 2026
<a name="sagemaker-hyperpod-release-ami-slurm-20260212"></a>

 **Atualizações gerais de AMI** 
+ Atualizações lançadas para SageMaker HyperPod AMI for Slurm, versões 24.11.
+ [A nota de lançamento do DLAMI base está disponível aqui.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker HyperPod DLAMI para suporte ao Slurm** 

Esta versão inclui as seguintes alterações:

------
#### [ Slurm v24.11 ]
+ Slurm 24.11 (): ARM64
  + Versão do kernel Linux: 6.8
  + Versão Glibc: 2.35
  + Versão do OpenSSL: 3.0.2
  + FSx Versão do Lustre Client: 2.15.6-1fsx25
  + Versão Runc: 1.3.4
  + Versão do contêiner: containerd containerd.io v2.2.1
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.6, 12.8, 12.9, 13.0
  + Versão do EFA Installer: 1.45.1
  + Versão Python: 3.10.12
  + Versão do Slurm: 24.11.0
  + versão nvme-cli: 1.16
  + versão coletada: 5.12.0.
  + versão lustre-client: 2.15.6-1fsx25
  + Versão nvidia-imex: 580.126.09-1
  + versão systemd: 249
  + versão openssh: 8.9
  + versão sudo: 1.9.9
  + versão ufw: 0.36.1
  + versão gcc: 11.4.0
  + versão cmake: 3.2.1
  + versão git: 2.34.1
  + versão make: 4.3
  + versão cloudwatch-agent: 1.300064.0b1337-1
  + versão nfs-utils: 1:2.6.1-1ubuntu1.2
  + iscsi-initiator-utils versão: 2.1.5-1ubuntu1.1
  + versão lvm2:2.03.11
  + versão ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versão rdma-core: 60.0-1
+ Slurm 24.11 (x86\$164):
  + Versão do kernel Linux: 6.8
  + Versão Glibc: 2.35
  + Versão do OpenSSL: 3.0.2
  + FSx Versão do Lustre Client: 2.15.6-1fsx25
  + Versão Runc: 1.3.4
  + Versão do contêiner: containerd containerd.io v2.2.1
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.6, 12.8, 12.9, 13.0
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.10.12
  + Versão do Slurm: 24.11.0
  + versão nvme-cli: 1.16
  + versão de stress: 1.0.5
  + versão coletada: 5.12.0.
  + versão lustre-client: 2.15.6-1fsx25
  + versão systemd: 249
  + versão openssh: 8.9
  + versão sudo: 1.9.9
  + versão ufw: 0.36.1
  + versão gcc: 11.4.0
  + versão cmake: 3.2.1
  + versão make: 4.3
  + versão cloudwatch-agent: 1.300064.0b1337-1
  + versão nfs-utils: 1:2.6.1-1ubuntu1.2
  + iscsi-initiator-utils versão: 2.1.5-1ubuntu1.1
  + versão lvm2:2.03.11
  + versão ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versão rdma-core: 60.0-1

------

## SageMaker HyperPod Lançamentos da AMI para o Slurm: 25 de janeiro de 2026
<a name="sagemaker-hyperpod-release-ami-slurm-20260125"></a>

 **Atualizações gerais de AMI** 
+ Atualizações lançadas para SageMaker HyperPod AMI for Slurm, versões 24.11.
+ [A nota de lançamento do DLAMI base está disponível aqui.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker HyperPod DLAMI para suporte ao Slurm** 

Esta versão inclui as seguintes alterações:

------
#### [ Slurm v24.11 ]
+ Slurm 24.11 (): ARM64
  + Versão do kernel Linux: 6.8
  + Versão Glibc: 2.35
  + Versão do OpenSSL: 3.0.2
  + FSx Versão do Lustre Client: 2.15.6-1fsx25
  + Versão Runc: 1.3.4
  + Versão do contêiner: containerd containerd.io v2.2.1
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.6, 12.8, 12.9, 13.0
  + Versão do EFA Installer: 2.3.1amzn3.0
  + Versão Python: 3.10.12
  + Versão do Slurm: 24.11.0
  + versão nvme-cli: 1.16
  + versão coletada: 5.12.0.
  + versão lustre-client: 2.15.6-1fsx25
  + Versão nvidia-imex: 580.126.09-1
  + versão systemd: 249
  + versão openssh: 8.9
  + versão sudo: 1.9.9
  + versão ufw: 0.36.1
  + versão gcc: 11.4.0
  + versão cmake: 3.2.1
  + versão git: 2.34.1
  + versão make: 4.3
  + versão cloudwatch-agent: 1.300063.0b1323-1
  + versão nfs-utils: 1:2.6.1-1ubuntu1.2
  + iscsi-initiator-utils versão: 2.1.5-1ubuntu1.1
  + versão lvm2:2.03.11
  + versão ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versão rdma-core: 60.0-1
+ Slurm 24.11 (x86\$164):
  + Versão do kernel Linux: 6.8
  + Versão Glibc: 2.35
  + Versão do OpenSSL: 3.0.2
  + FSx Versão do Lustre Client: 2.15.6-1fsx25
  + Versão Runc: 1.3.4
  + Versão do contêiner: containerd containerd.io v2.2.1
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.6, 12.8, 12.9, 13.0
  + Versão do EFA Installer: 2.3.1amzn2.0
  + Versão Python: 3.10.12
  + Versão do Slurm: 24.11.0
  + versão nvme-cli: 1.16
  + versão de stress: 1.0.5
  + versão coletada: 5.12.0.
  + versão lustre-client: 2.15.6-1fsx25
  + versão systemd: 249
  + versão openssh: 8.9
  + versão sudo: 1.9.9
  + versão ufw: 0.36.1
  + versão gcc: 11.4.0
  + versão cmake: 3.2.1
  + versão make: 4.3
  + versão cloudwatch-agent: 1.300063.0b1323-1
  + versão nfs-utils: 1:2.6.1-1ubuntu1.2
  + iscsi-initiator-utils versão: 2.1.5-1ubuntu1.1
  + versão lvm2:2.03.11
  + versão ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versão rdma-core: 60.0-1

------

## SageMaker HyperPod Lançamentos da AMI para o Slurm: 29 de dezembro de 2025
<a name="sagemaker-hyperpod-release-ami-slurm-20251229"></a>

 **Atualizações gerais de AMI** 
+ Atualizações lançadas para SageMaker HyperPod AMI for Slurm, versões 24.11.
+ [A nota de lançamento do DLAMI base está disponível aqui.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker HyperPod DLAMI para suporte ao Slurm** 

Esta versão inclui as seguintes alterações:

------
#### [ Slurm v24.11 ]
+ Slurm 24.11 (): ARM64
  + Versão do kernel Linux: 6.8
  + Versão Glibc: 2.35
  + Versão do OpenSSL: 3.0.2
  + FSx Versão do Lustre Client: 2.15.6-1fsx25
  + Versão Runc: 1.3.4
  + Versão do contêiner: containerd containerd.io v2.2.1
  + Versão do driver NVIDIA: 580.105.08
  + Versão CUDA: 12.6, 12.8, 12.9, 13.0
  + Versão do EFA Installer: 2.3.1amzn3.0
  + Versão Python: 3.10.12
  + Versão do Slurm: 24.11.0
  + versão nvme-cli: 1.16
  + versão coletada: 5.12.0.
  + versão lustre-client: 2.15.6-1fsx25
  + Versão nvidia-imex: 580.105.08-1
  + versão systemd: 249
  + versão openssh: 8.9
  + versão sudo: 1.9.9
  + versão ufw: 0.36.1
  + versão gcc: 11.4.0
  + versão cmake: 3.2.1
  + versão git: 2.34.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.0b1304-1
  + versão nfs-utils: 1:2.6.1-1ubuntu1.2
  + iscsi-initiator-utils versão: 2.1.5-1ubuntu1.1
  + versão lvm2:2.03.11
  + versão ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versão rdma-core: 60.0-1
+ Slurm 24.11 (x86\$164):
  + Versão do kernel Linux: 6.8
  + Versão Glibc: 2.35
  + Versão do OpenSSL: 3.0.2
  + FSx Versão do Lustre Client: 2.15.6-1fsx25
  + Versão Runc: 1.3.4
  + Versão do contêiner: containerd containerd.io v2.2.1
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.105.08
  + Versão CUDA: 12.6, 12.8, 12.9, 13.0
  + Versão do EFA Installer: 2.3.1amzn2.0
  + Versão Python: 3.10.12
  + Versão do Slurm: 24.11.0
  + versão nvme-cli: 1.16
  + versão de stress: 1.0.5
  + versão coletada: 5.12.0.
  + versão lustre-client: 2.15.6-1fsx25
  + versão systemd: 249
  + versão openssh: 8.9
  + versão sudo: 1.9.9
  + versão ufw: 0.36.1
  + versão gcc: 11.4.0
  + versão cmake: 3.2.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.0b1304-1
  + versão nfs-utils: 1:2.6.1-1ubuntu1.2
  + iscsi-initiator-utils versão: 2.1.5-1ubuntu1.1
  + versão lvm2:2.03.11
  + versão ec2-instance-connect: 1.1.14-0ubuntu1.1
  + versão rdma-core: 60.0-1

------

## SageMaker HyperPod Lançamentos da AMI para o Slurm: 22 de novembro de 2025
<a name="sagemaker-hyperpod-release-ami-slurm-20251128"></a>

 **Atualizações gerais de AMI** 
+ Atualizações lançadas para SageMaker HyperPod AMI for Slurm, versões 24.11.
+ [A nota de lançamento do DLAMI base está disponível aqui.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker HyperPod DLAMI para suporte ao Slurm** 

Esta versão inclui as seguintes alterações:

------
#### [ Slurm (arm64) ]
+ Versão do kernel Linux: 6.8
+ Versão Glibc: 2.35
+ Versão do OpenSSL: 3.0.2
+ FSx Versão do Lustre Client: 2.15.6-1fsx21
+ Versão Runc: 1.3.3
+ Versão em contêiner: containerd containerd.io v2.1.5
+ Versão do driver NVIDIA: 580.95.05
+ Versão CUDA: 12.6, 12.8, 12.9, 13.0
+ Versão do EFA Installer: 2.1.0amzn5.0
+ Versão Python: 3.10.12
+ Versão do Slurm: 24.11.0
+ versão nvme-cli: 1.16
+ versão coletada: 5.12.0.
+ versão lustre-client: 2.15.6-1fsx21
+ Versão nvidia-imex: 580.95.05-1
+ versão systemd: 249
+ versão openssh: 8.9
+ versão sudo: 1.9.9
+ versão ufw: 0.36.1
+ versão gcc: 11.4.0
+ versão cmake: 3.2.1
+ versão git: 2.34.1
+ versão make: 4.3
+ versão do cloudwatch-agent: 1.300062.0b1304-1
+ versão nfs-utils: 1:2.6.1-1ubuntu1.2
+ iscsi-initiator-utils versão: 2.1.5-1ubuntu1.1
+ versão lvm2:2.03.11
+ versão ec2-instance-connect: 1.1.14-0ubuntu1.1
+ versão rdma-core: 58.amzn0-1

------
#### [ Slurm (x86\$164) ]
+ Versão do kernel Linux: 6.8
+ Versão Glibc: 2.35
+ Versão do OpenSSL: 3.0.2
+ FSx Versão do Lustre Client: 2.15.6-1fsx21
+ Versão Runc: 1.3.3
+ Versão em contêiner: containerd containerd.io v2.1.5
+ versão do aws Neuronx DMS: 2.24.7.0
+ Versão do driver NVIDIA: 580.95.05
+ Versão CUDA: 12.6, 12.8, 12.9, 13.0
+ Versão do EFA Installer: 2.3.1amzn1.0
+ Versão Python: 3.10.12
+ Versão do Slurm: 24.11.0
+ versão nvme-cli: 1.16
+ versão de stress: 1.0.5
+ versão coletada: 5.12.0.
+ versão lustre-client: 2.15.6-1fsx21
+ versão systemd: 249
+ versão openssh: 8.9
+ versão sudo: 1.9.9
+ versão ufw: 0.36.1
+ versão gcc: 11.4.0
+ versão cmake: 3.2.1
+ versão make: 4.3
+ versão do cloudwatch-agent: 1.300062.0b1304-1
+ versão nfs-utils: 1:2.6.1-1ubuntu1.2
+ iscsi-initiator-utils versão: 2.1.5-1ubuntu1.1
+ versão lvm2:2.03.11
+ versão ec2-instance-connect: 1.1.14-0ubuntu1.1
+ versão rdma-core: 59.amzn0-1

------

## SageMaker HyperPod notas de lançamento: 07 de novembro de 2025
<a name="sagemaker-hyperpod-release-notes-20251107"></a>

**A AMI inclui o seguinte:**
+ Compatível com AWS service (Serviço da AWS): Amazon EC2
+ Sistema operacional: Ubuntu 22.04
+ Arquitetura de computação: ARM64
+ Pacotes atualizados: NVIDIA Driver: 580.95.05
+ Versões CUDA: cuda-12.6, cuda-12.8, cuda-12.9, cuda-13.0
+ Correções de segurança: [Runc Security patch](https://aws.amazon.com/security/security-bulletins/rss/aws-2025-024/)

## SageMaker HyperPod notas de lançamento: 29 de setembro de 2025
<a name="sagemaker-hyperpod-release-notes-20250929"></a>

**A AMI inclui o seguinte:**
+ Compatível com AWS service (Serviço da AWS): Amazon EC2
+ Sistema operacional: Ubuntu 22.04
+ Arquitetura de computação: ARM64
+ Pacotes atualizados: NVIDIA Driver: 570.172.08
+ Correções de segurança

## SageMaker HyperPod notas de lançamento: 12 de agosto de 2025
<a name="sagemaker-hyperpod-release-notes-20250812"></a>

**A AMI inclui o seguinte:**
+ Compatível com AWS service (Serviço da AWS): Amazon EC2
+ Sistema operacional: Ubuntu 22.04
+ Arquitetura de computação: ARM64
+ A versão mais recente disponível está instalada para os seguintes pacotes:
  + Kernel Linux: 6.8
  + FSx Lustre
  + Docker
  + AWS CLI v2 em `/usr/bin/aws`
  + NVIDIA DCGM
  + Nvidia Container Toolkit:
    + Comando de versão: `nvidia-container-cli -V`
  + Nvidia-docker2:
    + Comando de versão: `nvidia-docker version`
  + NVIDIA-IMEX: v570.172.08-1
+ Driver NVIDIA: 570.158.01
+ Pilha NVIDIA CUDA 12.4, 12,5, 12,6, 12,8:
  + Diretórios de instalação CUDA, NCCL e cuDDN: `/usr/local/cuda-xx.x/`
    + Exemplo: `/usr/local/cuda-12.8/`, `/usr/local/cuda-12.8/`
  + Versão compilada da NCCL:
    + Para o diretório CUDA de 12.4, compilou a versão NCCL 2.22.3\$1 .4 CUDA12
    + Para o diretório CUDA de 12.5, compilou a versão NCCL 2.22.3\$1 .5 CUDA12
    + Para o diretório CUDA de 12.6, compilou a versão NCCL 2.24.3\$1 .6 CUDA12
    + Para o diretório CUDA de 12.8, compilou a versão NCCL 2.27.5\$1 .8 CUDA12
  + CUDA padrão: 12,8
    + PATH `/usr/local/cuda` aponta para CUDA 12.8
    + Variáveis de ambiente atualizadas abaixo:
      + `LD_LIBRARY_PATH`ter `/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`ter `/usr/local/cuda-12.8/bin/:/usr/local/cuda-12.8/include/`
      + Para qualquer versão diferente do CUDA, atualize `LD_LIBRARY_PATH` adequadamente.
+ Instalador EFA: 1.42.0
+ Nvidia GDRCopy: 2.5.1
+ AWS O plugin OFI NCCL vem com o instalador EFA
  + Caminhos `/opt/amazon/ofi-nccl/lib/aarch64-linux-gnu` e `/opt/amazon/ofi-nccl/efa` são adicionados `LD_LIBRARY_PATH` a.
+ AWS CLI v2 em `/usr/local/bin/aws2` e AWS CLI v1 em `/usr/bin/aws`
+ Tipo de volume do EBS: gp3
+ Python: `/usr/bin/python3.10`

## SageMaker HyperPod notas de lançamento: 27 de maio de 2025
<a name="sagemaker-hyperpod-release-notes-20250527"></a>

SageMaker HyperPod libera o seguinte para[Orquestrando SageMaker HyperPod clusters com o SlurmOrquestração do Slurm](sagemaker-hyperpod-slurm.md).

**Novos recursos e melhorias**
+ A AMI base foi atualizada para `Deep Learning Base OSS Nvidia Driver GPU AMI (Ubuntu 22.04) 20250523` com os seguintes componentes principais:
  + Driver da NVIDIA 570.133.20
  + CUDA: 12.8 (padrão), com compatibilidade com CUDA 12.4-12.6
  + Versão da NCCL: 2.26.5
  + Instalador do EFA: 1.40.0
  + AWS OFI NCCL: 1.14.2-aws
+ Pacotes atualizados do Neuron SDK:
  + aws-neuronx-collectives: 2.25.65.0-9858ac9a1 (de 2.24.59.0-838c7fc8b)
  + aws-neuronx-dkms: 2.21.37.0 (a partir de 2.20.28.0)
  + aws-neuronx-runtime-lib: 2.25.57.0-166c7a468 (de 2.24.53.0-f239092cc)
  + aws-neuronx-tools: 2.23.9.0 (a partir de 2.22.61.0)

**Observações importantes**
+ O NVIDIA Container Toolkit 1.17.4 agora desabilitou a montagem de bibliotecas compatíveis com CUDA.
+ Atualização da configuração do EFA de 1.37 para 1.38. Agora o EFA inclui o plug-in AWS OFI NCCL, que está localizado no diretório `/opt/amazon/ofi-nccl`, em vez de no caminho original `/opt/aws-ofi-nccl/`. (Lançamento em 18 de fevereiro de 2025)
+ A versão do kernel é fixa para estabilidade e compatibilidade de drivers.

## SageMaker HyperPod Lançamentos da AMI para o Slurm: 13 de maio de 2025
<a name="sagemaker-hyperpod-release-ami-slurm-20250513"></a>

A Amazon SageMaker HyperPod lançou uma AMI atualizada que suporta o Ubuntu 22.04 LTS para clusters Slurm. AWS AMIs atualiza regularmente para garantir que você tenha acesso à pilha de software mais atual. A atualização para a AMI mais recente oferece segurança aprimorada por meio de atualizações abrangentes de pacotes, desempenho e estabilidade aprimorados para suas workloads e compatibilidade com novos tipos de instância e os recursos mais recentes do kernel.

**Importante**  
A atualização do Ubuntu 20.04 LTS para o Ubuntu 22.04 LTS introduz mudanças que podem afetar a compatibilidade com o software e as configurações projetadas para o Ubuntu 20.04.

**Topics**
+ [Principais atualizações na AMI para o Ubuntu 22.04.](#sagemaker-hyperpod-ami-slurm-ubuntu22-updates)
+ [Atualização para a AMI do Ubuntu 22.04](#sagemaker-hyperpod-ami-slurm-ubuntu22-upgrade)
+ [Solução de problemas de falhas de atualização](#sagemaker-hyperpod-ami-slurm-ubuntu22-troubleshoot)

### Principais atualizações na AMI para o Ubuntu 22.04.
<a name="sagemaker-hyperpod-ami-slurm-ubuntu22-updates"></a>

A tabela a seguir lista as versões dos componentes da AMI do Ubuntu 22.04 em comparação com a AMI anterior.


**Versões de componentes da AMI do Ubuntu 22.04 em comparação com a AMI anterior**  

| Componente | Versão anterior | Versão atualizada | 
| --- | --- | --- | 
|  **Sistema operacional Ubuntu**  |  20.04 LTS  |  22.04 LTS  | 
|  **Slurm**  |  24.11  |  24.11 (inalterado)  | 
|  **Python**  |  3.8 (padrão)  |  3.10 (padrão)  | 
|  **Adaptador Elastic Fabric (EFA) na Amazon FSx**  |  Não compatível  |  Compatível  | 
|  **Kernel do Linux**  |  5,15  |  6.8  | 
|  **Biblioteca GNU C (glibc)**  |  2.31  |  2,35  | 
|  **Coleção de compiladores GNU (GCC)**  |  9.4.0  |  11.4.0  | 
|  **libc6**  |  ≤ 2.31  |  Compatível com ≥ 2.35  | 
|  **Network File System (NFS)**  |  1:1.3.4  |  1:2.6.1  | 

**nota**  
Embora a versão do Slurm (24.11) permaneça inalterada, as atualizações subjacentes do sistema operacional e da biblioteca nessa AMI podem afetar o comportamento do sistema e a compatibilidade das workloads. Você deve testar suas workloads antes de atualizar os clusters de produção.

### Atualização para a AMI do Ubuntu 22.04
<a name="sagemaker-hyperpod-ami-slurm-ubuntu22-upgrade"></a>

Antes de atualizar o cluster para a AMI do Ubuntu 22.04, conclua estas etapas de preparação e analise os requisitos de atualização. Para solucionar falhas de atualização, consulte [Solução de problemas de falhas de atualização](#sagemaker-hyperpod-ami-slurm-ubuntu22-troubleshoot).

#### Analisar a compatibilidade com o Python
<a name="sagemaker-hyperpod-ami-slurm-ubuntu22-python-compatibility"></a>

A AMI do Ubuntu 22.04 usa o Python 3.10 como a versão padrão, atualizada do Python 3.8. Embora o Python 3.10 mantenha a compatibilidade com a maioria dos códigos do Python 3.8, você deve testar suas workloads existentes antes da atualização. Se as workloads exigirem o Python 3.8, você poderá instalá-lo usando o seguinte comando em seu script de ciclo de vida:

```
yum install python-3.8
```

Antes de atualizar o cluster, faça o seguinte:

1. Teste a compatibilidade do código com o Python 3.10.

1. Verifique se os scripts de ciclo de vida funcionam no novo ambiente.

1. Verifique se todas as dependências são compatíveis com a nova versão do Python.

1. Se você criou seu HyperPod cluster copiando o script de ciclo de vida padrão de GitHub, adicione o seguinte comando ao seu `setup_mariadb_accounting.sh` arquivo antes de atualizar para o Ubuntu 22. Para ver o script completo, consulte [setup\$1mariadb\$1accounting.sh em 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
   ```

#### Atualizar o cluster do Slurm
<a name="sagemaker-hyperpod-ami-slurm-ubuntu22-upgrade-cluster"></a>

Há duas maneiras de atualizar o cluster do Slurm para usar a nova AMI:

1. Crie um cluster usando a API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html).

1. Atualize o software de um cluster existente usando a API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html).

#### Validar configurações
<a name="sagemaker-hyperpod-ami-slurm-ubuntu22-validation"></a>

AWS testou uma ampla variedade de cargas de trabalho de treinamento distribuídas e recursos de infraestrutura nas instâncias G5, G6, G6e, P4d, P5 e Trn1, incluindo:
+ Treinamento distribuído com PyTorch (por exemplo, FSDP, LLa MA NeMo, MNIST).
+ Teste acelerador em todos os tipos de instância com Nvidia (série P/G) e AWS Neuron (Trn1).
+ Recursos de resiliência que incluem [retomada automática](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-resiliency-slurm.html#sagemaker-hyperpod-resiliency-slurm-auto-resume) e [verificações de integridade profundas](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-eks-resiliency-deep-health-checks.html).

#### Tempo de inatividade e disponibilidade do cluster
<a name="sagemaker-hyperpod-ami-slurm-ubuntu22-downtime-availability"></a>

Durante o processo de atualização, o cluster não estará disponível. Para minimizar a interrupção, faça o seguinte:
+ Teste o processo de atualização em clusters menores.
+ Crie pontos de verificação antes da atualização e reinicie as workloads de treinamento dos pontos de verificação existentes após a conclusão da atualização.

### Solução de problemas de falhas de atualização
<a name="sagemaker-hyperpod-ami-slurm-ubuntu22-troubleshoot"></a>

Quando uma atualização falhar, primeiro determine se a falha está relacionada aos scripts de ciclo de vida. Esses scripts geralmente falham devido a erros de sintaxe, dependências ausentes ou configurações incorretas.

Para investigar falhas relacionadas aos scripts de ciclo de vida, verifique CloudWatch os registros. Todos os SageMaker HyperPod eventos e registros são armazenados no grupo de registros:`/aws/sagemaker/Clusters/[ClusterName]/[ClusterID]`. Veja especificamente o fluxo de logs `LifecycleConfig/[instance-group-name]/[instance-id]`, que fornece informações detalhadas sobre quaisquer erros durante a execução do script.

Se a falha da atualização não estiver relacionada aos scripts de ciclo de vida, colete informações relevantes, incluindo o ARN do cluster, os logs de erros e os registros de data/hora, e entre em contato com o [AWS Support](https://aws.amazon.com/premiumsupport/) para obter ajuda adicional.

## SageMaker HyperPod Lançamentos da AMI para o Slurm: 07 de maio de 2025
<a name="sagemaker-hyperpod-release-ami-slurm-20250507"></a>

O Amazon SageMaker HyperPod for Slurm lançou uma grande atualização da versão do sistema operacional para o Ubuntu 22.04 (do Ubuntu 20.04 anterior). Verifique a DLAMI do Ubuntu 22.04 ([notas de lançamento](https://aws.amazon.com/releasenotes/aws-deep-learning-base-gpu-ami-ubuntu-22-04/)) para ter mais informações: `Deep Learning Base OSS Nvidia Driver GPU AMI (Ubuntu 22.04) 20250503`.

Principais atualizações de pacotes:
+ Ubuntu 22.04 LTS (a partir da 20.04)
+ Versão do Python:
  + O Python 3.10 agora é a versão padrão do Python na AMI do Slurm do Ubuntu 22.04.
  + Essa atualização oferece acesso aos recursos mais recentes, melhorias de desempenho e correções de erros introduzidos no Python 3.10
+ Support for EFA em FSx
+ Novo Kernel do Linux, versão 6.8 (atualizado a partir da 5.15)
+ Versão da Glibc: 2.35 (atualizada a partir da 2.31)
+ Versão do GCC: 11.4.0 (atualizada a partir da 9.4.0)
+ Suporte à versão da libc6 mais recente (da versão da libc6 <= 2.31)
+ Versão do NFS: 1:2.6.1 (atualizado a partir da 1:1.3.4)

## SageMaker HyperPod Lançamentos da AMI para o Slurm: 28 de abril de 2025
<a name="sagemaker-hyperpod-release-ami-slurm-20250428"></a>

**Melhorias para o Slurm**
+ Atualização do driver da NVIDIA da versão 550.144.03 para a 550.163.01. Essa atualização visa abordar vulnerabilidades e exposições comuns (CVEs) presentes no Boletim de [Segurança do NVIDIA GPU Display](https://nvidia.custhelp.com/app/answers/detail/a_id/5630) de abril de 2025.

**Amazon SageMaker HyperPod DLAMI para suporte ao 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/desconhecido: 2.22.61.0**

------

## SageMaker HyperPod Lançamentos da AMI para o Slurm: 18 de fevereiro de 2025
<a name="sagemaker-hyperpod-release-ami-slurm-20250218"></a>

**Melhorias para o Slurm**
+ Atualização da versão do Slurm para 24.11.
+ Versão atualizada do Elastic Fabric Adapter (EFA) de 1.37.0 para 1.38.0.
+ O EFA agora inclui o plug-in AWS OFI NCCL. É possível encontrar esse plug-in no diretório `/opt/amazon/ofi-nccl`, em vez de no local original `/opt/aws-ofi-nccl/`. Se você precisar atualizar sua variável de ambiente `LD_LIBRARY_PATH`, modifique o caminho para apontar para o novo local `/opt/amazon/ofi-nccl` local do plug-in OFI NCCL.
+ O pacote emacs foi removido deles. DLAMIs Você pode instalar emacs a partir do GNU Emacs.

**Amazon SageMaker HyperPod DLAMI para suporte ao Slurm**

------
#### [ Installed the latest version of AWS Neuron SDK 2.19 ]
+ **aws-neuronx-collectives/desconhecido: 2.23.135.0-3e70920f2** amd64
+ **aws-neuronx-dkms/desconhecido:** 2.19.64.0 amd64
+ **aws-neuronx-runtime-lib/desconhecido: 2.23.112.0-9b5179492** amd64
+ **aws-neuronx-tools/desconhecido:** 2.20.204.0 amd64

------

## SageMaker HyperPod Lançamentos da AMI para o Slurm: 21 de dezembro de 2024
<a name="sagemaker-hyperpod-release-ami-slurm-20241221"></a>

**SageMaker HyperPod DLAMI para suporte ao Slurm**

------
#### [ Deep Learning Slurm AMI ]
+ **Driver da NVIDIA:** 550.127.05
+ **Driver do EFA:** 2.13.0-1
+ Instalou a versão mais recente do AWS Neuron SDK
  + **aws-neuronx-collectives: 2.22.3.0**
  + **aws-neuronx-dkms: 2.18.20.0**
  + **aws-neuronx-oci-hook: 2.5.8.0**
  + **aws-neuronx-runtime-lib: 2.22.19.0**
  + **aws-neuronx-tools: 2.19.0.0**

------

## SageMaker HyperPod Lançamentos da AMI para o Slurm: 24 de novembro de 2024
<a name="sagemaker-hyperpod-release-ami-slurm-20241124"></a>

**Atualizações gerais de AMI**
+ Lançadas na região `MEL` (Melbourne).
+ DLAMI SageMaker HyperPod base atualizada para as seguintes versões:
  + Slurm: 2024-11-22.

## SageMaker HyperPod Lançamentos da AMI para o Slurm: 15 de novembro de 2024
<a name="sagemaker-hyperpod-release-ami-slurm-20241115"></a>

**Atualizações gerais de AMI**
+ Pacote `libnvidia-nscq-xxx` mais recente instalado.

**SageMaker HyperPod DLAMI para suporte ao Slurm**

------
#### [ Deep Learning Slurm AMI ]
+ **Driver da NVIDIA:** 550.127.05
+ **Driver do EFA:** 2.13.0-1
+ Instalou a versão mais recente do AWS Neuron SDK
  + **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 Lançamentos da AMI para o Slurm: 11 de novembro de 2024
<a name="sagemaker-hyperpod-release-ami-slurm-20241111"></a>

**Atualizações gerais de AMI**
+ DLAMI SageMaker HyperPod base atualizada para a seguinte versão:
  + Slurm: 2024-10-23.

## SageMaker HyperPod Lançamentos da AMI para o Slurm: 21 de outubro de 2024
<a name="sagemaker-hyperpod-release-ami-slurm-20241021"></a>

**Atualizações gerais de AMI**
+ DLAMI SageMaker HyperPod base atualizada para as seguintes versões:
  + Slurm: 2024-09-27.

## SageMaker HyperPod Lançamentos da AMI para o Slurm: 10 de setembro de 2024
<a name="sagemaker-hyperpod-release-ami-slurm-20240910"></a>

**SageMaker HyperPod DLAMI para suporte ao Slurm**

------
#### [ Deep Learning Slurm AMI ]
+ Instalado o driver NVIDIA v550.90.07
+ Instalado o driver EFA v2.10
+ Instalou a versão mais recente do AWS Neuron SDK
  + **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 Lançamentos da AMI para o Slurm: 14 de março de 2024
<a name="sagemaker-hyperpod-release-ami-slurm-20240314"></a>

**HyperPod Patch de software DLAMI para Slurm**
+ [Slurm](https://slurm.schedmd.com/documentation.html) atualizado para v23.11.1
+ Foi adicionado [o Open PMIx](https://openpmix.github.io/code/getting-the-reference-implementation) v4.2.6 para habilitar o [Slurm](https://slurm.schedmd.com/mpi_guide.html#pmix) com. PMIx
+ Desenvolvido com base na [AWS AMI de aprendizado profundo de base GPU (Ubuntu 20.04)](https://aws.amazon.com/releasenotes/aws-deep-learning-base-gpu-ami-ubuntu-20-04/), lançada em 26/10/2023.
+ Uma lista completa dos pacotes pré-instalados nesta HyperPod DLAMI, além da AMI básica
  + [Slurm](https://slurm.schedmd.com/documentation.html): v23.11.1
  + [Aberto 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 pacotes de software para oferecer suporte a recursos como verificação de integridade do cluster e retomada automática

**Etapas de atualização**
+ Execute o comando a seguir para chamar a [UpdateClusterSoftware](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API e atualizar seus HyperPod clusters existentes com a HyperPod DLAMI mais recente. Para obter mais instruções, consulte [Atualizar o software da SageMaker HyperPod plataforma de um cluster](sagemaker-hyperpod-operate-slurm-cli-command.md#sagemaker-hyperpod-operate-slurm-cli-command-update-cluster-software).
**Importante**  
Faça backup do seu trabalho antes de executar essa API. O processo de aplicação de patches substitui o volume raiz pela AMI atualizada, o que significa que seus dados anteriores armazenados no volume raiz da instância serão perdidos. Certifique-se de fazer backup dos dados do volume raiz da instância no Amazon S3 ou no Amazon FSx for Lustre. Para obter mais informações, consulte [Use o script de backup fornecido pelo 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**  
Observe que você deve executar o AWS CLI comando para atualizar seu HyperPod cluster. A atualização do HyperPod software por meio da interface do SageMaker HyperPod console não está disponível no momento.

## SageMaker HyperPod Lançamento da AMI para Slurm: 29 de novembro de 2023
<a name="sagemaker-hyperpod-release-ami-slurm-20231129"></a>

**HyperPod Patch de software DLAMI para Slurm**

A equipe HyperPod de serviço distribui patches de software por meio de[SageMaker HyperPod DLAMI](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-hyperpod-ami). Veja os detalhes a seguir sobre o HyperPod DLAMI mais recente.
+ Desenvolvido com base na [AWS AMI de aprendizado profundo de base GPU (Ubuntu 20.04)](https://aws.amazon.com/releasenotes/aws-deep-learning-base-gpu-ami-ubuntu-20-04/), lançada em 18/10/2023
+ Uma lista completa dos pacotes pré-instalados nesta HyperPod DLAMI, além da AMI básica
  + [Slurm: v23.02.3](https://slurm.schedmd.com/documentation.html)
  + 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 pacotes de software para oferecer suporte a recursos como verificação de integridade do cluster e retomada automática

# SageMaker HyperPod Lançamentos da AMI para o Amazon EKS
<a name="sagemaker-hyperpod-release-ami-eks"></a>

As notas de lançamento a seguir acompanham as atualizações mais recentes dos lançamentos do Amazon SageMaker HyperPod AMI para orquestração do Amazon EKS. Cada nota de lançamento inclui uma lista resumida de pacotes pré-instalados ou pré-configurados no suporte do SageMaker HyperPod DLAMIs Amazon EKS. Cada DLAMI é construído e oferece suporte a uma versão específica AL2023 do Kubernetes. Para versões HyperPod do DLAMI para orquestração do Slurm, consulte. [SageMaker HyperPod Lançamentos da AMI para o Slurm](sagemaker-hyperpod-release-ami-slurm.md) Para obter informações sobre os lançamentos de SageMaker HyperPod recursos da Amazon, consulte[Notas SageMaker HyperPod de lançamento da Amazon](sagemaker-hyperpod-release-notes.md).

## SageMaker Lançamentos do Hyperpod AMI para Amazon EKS: 01 de março de 2026
<a name="sagemaker-hyperpod-release-ami-eks-20260301"></a>

 **Atualizações gerais de AMI** 
+ Atualizações lançadas para o SageMaker Hyperpod AMI para Amazon EKS versões 1.28, 1.29, 1.30, 1.31, 1.32, 1.33, 1.34.
+ [A nota de lançamento do DLAMI base está disponível aqui.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker Suporte ao Hyperpod DLAMI para Amazon EKS** 

Esta versão inclui as seguintes alterações:

------
#### [ Kubernetes v1.28 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão do OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.14, compilação 0bab007
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão 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
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 570.211.01
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.16.1g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.28.15-eks-ecaa3a6
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão de stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300064.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.27
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.16.1g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.28.15-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.2
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300064.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0

------
#### [ Kubernetes v1.29 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão do OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.14, compilação 0bab007
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão 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
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 570.211.01
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.16.1g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.29.15-eks-ecaa3a6
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão de stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300064.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.16.1g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.29.15-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.2
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300064.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0

------
#### [ Kubernetes v1.30 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão do OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.14, compilação 0bab007
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão 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
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 570.211.01
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.16.1g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.30.14-eks-ecaa3a6
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão de stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300064.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.16.1g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.30.14-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.2
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300064.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0

------
#### [ Kubernetes v1.31 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão do OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.14, compilação 0bab007
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão 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
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 570.211.01
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.16.1g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.31.13-eks-ecaa3a6
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão de stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300064.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.16.1g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.31.13-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.2
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300064.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (ARM64):
  + Versão do kernel Linux: 6.12
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.16.1g
  + Versão do EFA Installer: 1.43.3
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.31.13-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.2
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + Versão nvidia-imex: 580.126.09
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300064.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 58.

------
#### [ Kubernetes v1.32 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.14, compilação 0bab007
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão 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
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 570.211.01
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.16.1g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.32.9-eks-ecaa3a6
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão de stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300064.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.16.1g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.32.9-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.2
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300064.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (ARM64):
  + Versão do kernel Linux: 6.12
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.16.1g
  + Versão do EFA Installer: 1.43.3
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.32.9-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.2
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + Versão nvidia-imex: 580.126.09
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300064.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 58.

------
#### [ Kubernetes v1.33 ]
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.16.1g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.33.5-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.2
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300064.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (ARM64):
  + Versão do kernel Linux: 6.12
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.16.1g
  + Versão do EFA Installer: 1.43.3
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.33.5-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.2
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + Versão nvidia-imex: 580.126.09
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300064.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 58.

------
#### [ Kubernetes v1.34 ]
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.16.1g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.34.2-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.2
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300064.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (ARM64):
  + Versão do kernel Linux: 6.12
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.16.1g
  + Versão do EFA Installer: 1.43.3
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.34.2-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.2
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + Versão nvidia-imex: 580.126.09
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300064.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 58.

------

## SageMaker Lançamentos do Hyperpod AMI para Amazon EKS: 12 de fevereiro de 2026
<a name="sagemaker-hyperpod-release-ami-eks-20260212"></a>

 **Atualizações gerais de AMI** 
+ Atualizações lançadas para o SageMaker Hyperpod AMI para Amazon EKS versões 1.28, 1.29, 1.30, 1.31, 1.32, 1.33, 1.34.
+ [A nota de lançamento do DLAMI base está disponível aqui.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker Suporte ao Hyperpod DLAMI para Amazon EKS** 

Esta versão inclui as seguintes alterações:

------
#### [ Kubernetes v1.28 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.14, compilação 0bab007
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão 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
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 570.211.01
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.15.0g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.28.15-eks-ecaa3a6
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão de stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.27
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.28.15-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.1
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0

------
#### [ Kubernetes v1.29 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.14, compilação 0bab007
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão 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
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 570.211.01
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.15.0g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.29.15-eks-ecaa3a6
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão de stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.29.15-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.1
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0

------
#### [ Kubernetes v1.30 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.14, compilação 0bab007
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão 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
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 570.211.01
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.15.0g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.30.14-eks-ecaa3a6
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão de stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.30.14-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.1
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0

------
#### [ Kubernetes v1.31 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.14, compilação 0bab007
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão 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
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 570.211.01
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.15.0g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.31.13-eks-ecaa3a6
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão de stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.31.13-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.1
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (ARM64):
  + Versão do kernel Linux: 6.12
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão do EFA Installer: 1.43.3
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.31.13-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.1
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + Versão nvidia-imex: 580.126.09
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 58.

------
#### [ Kubernetes v1.32 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.14, compilação 0bab007
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão 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
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 570.211.01
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.15.0g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.32.9-eks-ecaa3a6
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão de stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.32.9-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.1
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (ARM64):
  + Versão do kernel Linux: 6.12
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão do EFA Installer: 1.43.3
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.32.9-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.1
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + Versão nvidia-imex: 580.126.09
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 58.

------
#### [ Kubernetes v1.33 ]
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.33.5-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.1
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (ARM64):
  + Versão do kernel Linux: 6.12
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão do EFA Installer: 1.43.3
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.33.5-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.1
  + versão nvme-cli: 2.13 1.13
  + versão stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + Versão nvidia-imex: 580.126.09
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 58.

------
#### [ Kubernetes v1.34 ]
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão do EFA Installer: 1.45.0
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.34.2-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.1
  + versão nvme-cli: 2.13 1.13
  + versão stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (ARM64):
  + Versão do kernel Linux: 6.12
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão do EFA Installer: 1.43.3
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.34.2-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.1
  + versão nvme-cli: 2.13 1.13
  + versão stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + Versão nvidia-imex: 580.126.09
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 58.

------

## SageMaker Lançamentos do Hyperpod AMI para Amazon EKS: 25 de janeiro de 2026
<a name="sagemaker-hyperpod-release-ami-eks-20260125"></a>

 **Atualizações gerais de AMI** 
+ Atualizações lançadas para o SageMaker Hyperpod AMI para Amazon EKS versões 1.28, 1.29, 1.30, 1.31, 1.32, 1.33, 1.34.
+ [A nota de lançamento do DLAMI base está disponível aqui.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker Suporte ao Hyperpod DLAMI para Amazon EKS** 

Esta versão inclui as seguintes alterações:

------
#### [ Kubernetes v1.28 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.14, compilação 0bab007
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão 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
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 570.211.01
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.28.15-eks-ecaa3a6
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão de stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.27
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.28.15-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0

------
#### [ Kubernetes v1.29 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.14, compilação 0bab007
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão 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
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 570.211.01
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.29.15-eks-ecaa3a6
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão de stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.29.15-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0

------
#### [ Kubernetes v1.30 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.14, compilação 0bab007
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão 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
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 570.211.01
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.30.14-eks-ecaa3a6
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão de stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.30.14-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0

------
#### [ Kubernetes v1.31 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.14, compilação 0bab007
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão 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
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 570.211.01
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.31.13-eks-ecaa3a6
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão de stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.31.13-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (ARM64):
  + Versão do kernel Linux: 6.12
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.31.13-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + Versão nvidia-imex: 580.126.09
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 58.

------
#### [ Kubernetes v1.32 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.14, compilação 0bab007
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão 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
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 570.211.01
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.32.9-eks-ecaa3a6
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão de stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.32.9-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (ARM64):
  + Versão do kernel Linux: 6.12
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.32.9-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + Versão nvidia-imex: 580.126.09
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 58.

------
#### [ Kubernetes v1.33 ]
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.33.5-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (ARM64):
  + Versão do kernel Linux: 6.12
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.33.5-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + Versão nvidia-imex: 580.126.09
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 58.

------
#### [ Kubernetes v1.34 ]
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.34.2-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (ARM64):
  + Versão do kernel Linux: 6.12
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.4
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.5
  + Versão do driver NVIDIA: 580.126.09
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.34.2-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + Versão nvidia-imex: 580.126.09
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300062.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 58.

------

## SageMaker Lançamentos do Hyperpod AMI para o Amazon EKS: 29 de dezembro de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20251229"></a>

 **Atualizações gerais de AMI** 
+ Atualizações lançadas para o SageMaker Hyperpod AMI para Amazon EKS versões 1.28, 1.29, 1.30, 1.31, 1.32, 1.33.
+ [A nota de lançamento do DLAMI base está disponível aqui.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker Suporte ao Hyperpod DLAMI para Amazon EKS** 

Esta versão inclui as seguintes alterações:

------
#### [ Kubernetes v1.28 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.13, compilação 0bab007
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão 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
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 570.195.03
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.28.15-eks-ecaa3a6
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão de stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.27
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.105.08
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.28.15-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0

------
#### [ Kubernetes v1.29 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.13, compilação 0bab007
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão 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
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 570.195.03
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.29.15-eks-ecaa3a6
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão de stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.105.08
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.29.15-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0

------
#### [ Kubernetes v1.30 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.13, compilação 0bab007
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão 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
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 570.195.03
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.30.14-eks-ecaa3a6
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão de stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.105.08
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.30.14-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0

------
#### [ Kubernetes v1.31 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.13, compilação 0bab007
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão 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
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 570.195.03
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.31.13-eks-ecaa3a6
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão de stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.4
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.105.08
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.31.13-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (ARM64):
  + Versão do kernel Linux: 6.12
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.4
  + Versão do driver NVIDIA: 580.105.08
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.31.13-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + Versão nvidia-imex: 580.105.08
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 58.

------
#### [ Kubernetes v1.32 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.13, compilação 0bab007
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.29
  + versão 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
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 570.195.03
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.32.9-eks-ecaa3a6
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão de stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.4
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.105.08
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.32.9-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (ARM64):
  + Versão do kernel Linux: 6.12
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.4
  + Versão do driver NVIDIA: 580.105.08
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.32.9-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + Versão nvidia-imex: 580.105.08
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 58.

------
#### [ Kubernetes v1.33 ]
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.4
  + versão do aws Neuronx DMS: 2.25.4.0
  + Versão do driver NVIDIA: 580.105.08
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.33.5-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 60.0
+ AL2023 (ARM64):
  + Versão do kernel Linux: 6.12
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd/v2 2.1.4
  + Versão do driver NVIDIA: 580.105.08
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.25
  + Versão do Kubernetes: v1.33.5-eks-ecaa3a6
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + Versão nvidia-imex: 580.105.08
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 58.

------

## SageMaker Lançamentos do Hyperpod AMI para o Amazon EKS: 22 de novembro de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20251128"></a>

 **Atualizações gerais de AMI** 
+ Atualizações lançadas para o SageMaker Hyperpod AMI para Amazon EKS versões 1.28, 1.29, 1.30, 1.31, 1.32, 1.33.
+ [A nota de lançamento do DLAMI base está disponível aqui.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

 **SageMaker Suporte ao Hyperpod DLAMI para Amazon EKS** 

Esta versão inclui as seguintes alterações:

------
#### [ Kubernetes v1.28 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.13, compilação 0bab007
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.27
  + versão 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
  + versão do aws Neuronx DMS: 2.24.7.0
  + Versão do driver NVIDIA: 570.195.03
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.28.15-eks-473151a
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 59.
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.27
  + versão do aws Neuronx DMS: 2.24.7.0
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.24
  + Versão do Kubernetes: v1.28.15-eks-473151a
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 59.

------
#### [ Kubernetes v1.29 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.13, compilação 0bab007
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.27
  + versão 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
  + versão do aws Neuronx DMS: 2.24.7.0
  + Versão do driver NVIDIA: 570.195.03
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.29.15-eks-473151a
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 59.
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.27
  + versão do aws Neuronx DMS: 2.24.7.0
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.24
  + Versão do Kubernetes: v1.29.15-eks-473151a
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 59.

------
#### [ Kubernetes v1.30 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.13, compilação 0bab007
  + Versão Runc: 1.3.2
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.27
  + versão 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
  + versão do aws Neuronx DMS: 2.24.7.0
  + Versão do driver NVIDIA: 570.195.03
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.30.11-eks-473151a
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 58.
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.27
  + versão do aws Neuronx DMS: 2.24.7.0
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.24
  + Versão do Kubernetes: v1.30.11-eks-473151a
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 59.

------
#### [ Kubernetes v1.31 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.13, compilação 0bab007
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.27
  + versão 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
  + versão do aws Neuronx DMS: 2.24.7.0
  + Versão do driver NVIDIA: 570.195.03
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.31.7-eks-473151a
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão de stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 59.
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.27
  + versão do aws Neuronx DMS: 2.24.7.0
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.24
  + Versão do Kubernetes: v1.31.13-eks-113cf36
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 59.
+ AL2023 (ARM64):
  + Versão do kernel Linux: 6.12
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.27
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.24
  + Versão do Kubernetes: v1.31.13-eks-113cf36
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + Versão nvidia-imex: 580.95.05
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 58.

------
#### [ Kubernetes v1.32 ]
+  **AL2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023** 
+ AL2 (x86\$164):
  + Versão do kernel Linux: 5.10
  + Versão Glibc: 2.26
  + Versão OpenSSL: 1.0.2k-fips
  + FSx Versão do Lustre Client: 2.12.8
  + Versão Docker: Docker versão 25.0.13, compilação 0bab007
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.27
  + versão 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
  + versão do aws Neuronx DMS: 2.24.7.0
  + Versão do driver NVIDIA: 570.195.03
  + Versão do CUDA: 12.2
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.7.16
  + Versão do Kubernetes: v1.32.3-eks-473151a
  + versão iptables-services: 1.8.4
  + versão nginx: 1.20.1
  + versão nvme-cli: 1.11.1
  + versão epel-release: 7
  + versão de stress: 1.0.4
  + versão coletada: 5.8.1
  + versão acl: 2.2.51
  + versão rsyslog: 8.24.0
  + versão lustre-client: 2.12.8
  + versão systemd: 219
  + versão openssh: 7.4
  + versão sudo: 1.8.23
  + versão gcc: 7.3.1
  + versão cmake: 2.8.12.2
  + versão git: 2.47.3
  + versão make: 3.82
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 1.3.0
  + versão lvm2:2.02.187
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 59.
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.27
  + versão do aws Neuronx DMS: 2.24.7.0
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.24
  + Versão do Kubernetes: v1.32.9-eks-113cf36
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 59.
+ AL2023 (ARM64):
  + Versão do kernel Linux: 6.12
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.27
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.24
  + Versão do Kubernetes: v1.32.9-eks-113cf36
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + Versão nvidia-imex: 580.95.05
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 58.

------
#### [ Kubernetes v1.33 ]
+ AL2023 (x86\$164):
  + Versão do kernel Linux: 6.1
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.27
  + versão do aws Neuronx DMS: 2.24.7.0
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.24
  + Versão do Kubernetes: v1.33.5-eks-113cf36
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 59.
+ AL2023 (ARM64):
  + Versão do kernel Linux: 6.12
  + Versão Glibc: 2.34
  + Versão do OpenSSL: 3.2.2
  + FSx Versão do Lustre Client: 2.15.6
  + Versão Runc: 1.3.3
  + Versão em contêiner: containerd github. com/containerd/containerd 1.7.27
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 12.8
  + Versão do driver ENA: 2.15.0g
  + Versão Python: 3.9.24
  + Versão do Kubernetes: v1.33.5-eks-113cf36
  + versão iptables-services: 1.8.8
  + versão nginx: 1.28.0
  + versão nvme-cli: 2.13 1.13
  + versão de stress: 1.0.7
  + versão coletada: 5.12.0.
  + versão acl: 2.3.1
  + versão lustre-client: 2.15.6
  + Versão nvidia-imex: 580.95.05
  + versão systemd: 252
  + versão openssh: 8.7
  + versão sudo: 1.9.15
  + versão gcc: 11.5.0
  + versão cmake: 3.2.2
  + versão git: 2.50.1
  + versão make: 4.3
  + versão do cloudwatch-agent: 1.300060.1
  + versão nfs-utils: 2.5.4
  + versão lvm2:2.03.16
  + versão ec2-instance-connect: 1.1
  + aws-cfn-bootstrap versão: 2.0
  + versão rdma-core: 58.

------

## SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 07 de novembro de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20251107"></a>

**Atualizações gerais de AMI**
+ Atualizações lançadas da SageMaker HyperPod AMI para o Amazon EKS nas versões 1.28, 1.29, 1.30, 1.31, 1.32 e 1.33. 
+ [A nota de lançamento do DLAMI base está disponível aqui.](https://docs.aws.amazon.com//dlami/latest/devguide/appendix-ami-release-notes.html#appendix-ami-release-notes-base)

**SageMaker HyperPod Suporte ao DLAMI para Amazon EKS**

Esta versão inclui as seguintes alterações:

------
#### [ Kubernetes v1.28 ]
+ **O Amazon Linux 2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023**
+ AL2 (x86\$164):
  + Versão do driver NVIDIA: 570.195.03
  + Versão CUDA: 12.8
  + Versão do Kubernetes: 1.28.15
+ AL2023 (x86\$164):
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 13.0
  + Versão do Kubernetes: 1.28.15
+ As atualizações do pacote incluem componentes do kit de ferramentas de contêiner boto3, botocore, pip, regex, psutil e nvidia.
+ Pacote adicionado: annotated-doc 0.0.3

------
#### [ Kubernetes v1.29 ]
+ **O Amazon Linux 2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023**
+ AL2 (x86\$164):
  + Versão do driver NVIDIA: 570.195.03
  + Versão CUDA: 12.8
  + Versão do Kubernetes: 1.29.15
+ AL2023 (x86\$164):
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 13.0
  + Versão do Kubernetes: 1.29.15
+ As atualizações de pacotes incluem atualizações do kernel, atualizações da glibc e várias bibliotecas do sistema.
+ Pacote adicionado: annotated-doc 0.0.3

------
#### [ Kubernetes v1.30 ]
+ **O Amazon Linux 2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023**
+ AL2 (x86\$164):
  + Versão do driver NVIDIA: 570.195.03
  + Versão CUDA: 12.8
  + Versão do Kubernetes: 1.30.11
+ AL2023 (x86\$164):
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 13.0
  + Versão do Kubernetes: 1.30.11
+ As atualizações de pacotes incluem atualizações do livepatch do kernel e atualizações da biblioteca do sistema.
+ Pacote adicionado: annotated-doc 0.0.3

------
#### [ Kubernetes v1.31 ]
+ **O Amazon Linux 2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023**
+ AL2 (x86\$164):
  + Versão do driver NVIDIA: 570.195.03
  + Versão CUDA: 12.8
  + Versão do Kubernetes: 1.31.7
+ AL2023 (x86\$164):
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 13.0
  + Versão do Kubernetes: 1.31.13
+ AL2023 (braço):
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 13.0
  + Versão do Kubernetes: 1.31.13
  + Versão do kernel: 6.12.46-66.121.amzn2023.aarch64
+ As atualizações do Package incluem extensas atualizações da biblioteca do sistema, atualizações do kernel e atualizações da biblioteca Boost.
+ Pacotes adicionados:, apr-util-lmdb kernel-livepatch-6.1.156-177.286

------
#### [ Kubernetes v1.32 ]
+ **O Amazon Linux 2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023**
+ AL2 (x86\$164):
  + Versão do driver NVIDIA: 570.195.03
  + Versão CUDA: 12.8
  + Versão do Kubernetes: 1.32.3
  + AWS Versão do IAM Authenticator: v0.6.29
+ AL2023 (x86\$164):
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 13.0
  + Versão do Kubernetes: 1.32.9
+ AL2023 (braço):
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 13.0
  + Versão do Kubernetes: 1.32.9
  + Versão do kernel: 6.12.46-66.121.amzn2023.aarch64
+ As atualizações de pacotes incluem atualizações do livepatch do kernel e atualizações da biblioteca do sistema.
+ Pacote adicionado: annotated-doc 0.0.3

------
#### [ Kubernetes v1.33 ]
+ AL2023 (x86\$164):
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 13.0
  + Versão do Kubernetes: 1.33.5
  + Versão do kernel: 6.1.155-176.282.amzn2023.x86\$164
+ AL2023 (braço):
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 13.0
  + Versão do Kubernetes: 1.33.5
  + Versão do kernel: 6.12.46-66.121.amzn2023.aarch64
+ As atualizações do Package incluem extensas atualizações da biblioteca do sistema, atualizações do kernel e atualizações da biblioteca Boost.
+ Pacotes adicionados: atualizações apr-util-lmdb do kernel-livepatch

------

**nota**  
[A versão runc foi atualizada para 1.3.2 Boletim de segurança](https://aws.amazon.com/security/security-bulletins/rss/aws-2025-024/)

## SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 29 de outubro de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20251029"></a>

**Atualizações gerais de AMI**
+ Atualizações lançadas da SageMaker HyperPod AMI para o Amazon EKS nas versões 1.28, 1.29, 1.30, 1.31, 1.32 e 1.33. 
+ [A nota de lançamento do DLAMI base está disponível aqui.](https://docs.aws.amazon.com//dlami/latest/devguide/aws-deep-learning-ami-baseoss-aml2-2025-10-14.html)

**SageMaker HyperPod Suporte ao DLAMI para Amazon EKS**

Esta versão inclui as seguintes alterações:

------
#### [ Kubernetes v1.28 ]
+ **O Amazon Linux 2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023**
+ AL2 (x86\$164):
  + Versão do driver NVIDIA: 570.195.03
  + Versão CUDA: 12.8
  + Versão do Kubernetes: 1.28.15
+ AL2023 (x86\$164):
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 13.0
  + Versão do Kubernetes: 1.28.15
+ As atualizações do pacote incluem componentes do kit de ferramentas de contêiner boto3, botocore, pip, regex, psutil e nvidia.
+ Pacote adicionado: annotated-doc 0.0.3

------
#### [ Kubernetes v1.29 ]
+ **O Amazon Linux 2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023**
+ AL2 (x86\$164):
  + Versão do driver NVIDIA: 570.195.03
  + Versão CUDA: 12.8
  + Versão do Kubernetes: 1.29.15
+ AL2023 (x86\$164):
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 13.0
  + Versão do Kubernetes: 1.29.15
+ As atualizações de pacotes incluem atualizações do kernel, atualizações da glibc e várias bibliotecas do sistema.
+ Pacote adicionado: annotated-doc 0.0.3

------
#### [ Kubernetes v1.30 ]
+ **O Amazon Linux 2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023**
+ AL2 (x86\$164):
  + Versão do driver NVIDIA: 570.195.03
  + Versão CUDA: 12.8
  + Versão do Kubernetes: 1.30.11
+ AL2023 (x86\$164):
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 13.0
  + Versão do Kubernetes: 1.30.11
+ As atualizações de pacotes incluem atualizações do livepatch do kernel e atualizações da biblioteca do sistema.
+ Pacote adicionado: annotated-doc 0.0.3

------
#### [ Kubernetes v1.31 ]
+ **O Amazon Linux 2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023**
+ AL2 (x86\$164):
  + Versão do driver NVIDIA: 570.195.03
  + Versão CUDA: 12.8
  + Versão do Kubernetes: 1.31.7
+ AL2023 (x86\$164):
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 13.0
  + Versão do Kubernetes: 1.31.13
+ AL2023 (braço):
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 13.0
  + Versão do Kubernetes: 1.31.13
  + Versão do kernel: 6.12.46-66.121.amzn2023.aarch64
+ As atualizações do Package incluem extensas atualizações da biblioteca do sistema, atualizações do kernel e atualizações da biblioteca Boost.
+ Pacotes adicionados:, apr-util-lmdb kernel-livepatch-6.1.156-177.286

------
#### [ Kubernetes v1.32 ]
+ **O Amazon Linux 2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023**
+ AL2 (x86\$164):
  + Versão do driver NVIDIA: 570.195.03
  + Versão CUDA: 12.8
  + Versão do Kubernetes: 1.32.3
+ AL2023 (x86\$164):
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 13.0
  + Versão do Kubernetes: 1.32.9
+ AL2023 (braço):
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 13.0
  + Versão do Kubernetes: 1.32.9
  + Versão do kernel: 6.12.46-66.121.amzn2023.aarch64
+ As atualizações de pacotes incluem atualizações do livepatch do kernel e atualizações da biblioteca do sistema.
+ Pacote adicionado: annotated-doc 0.0.3

------
#### [ Kubernetes v1.33 ]
+ AL2023 (x86\$164):
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 13.0
  + Versão do Kubernetes: 1.33.5
  + Versão do kernel: 6.1.155-176.282.amzn2023.x86\$164
+ AL2023 (braço):
  + Versão do driver NVIDIA: 580.95.05
  + Versão CUDA: 13.0
  + Versão do Kubernetes: 1.33.5
  + Versão do kernel: 6.12.46-66.121.amzn2023.aarch64
+ As atualizações do Package incluem extensas atualizações da biblioteca do sistema, atualizações do kernel e atualizações da biblioteca Boost.
+ Pacotes adicionados: atualizações apr-util-lmdb do kernel-livepatch

------

## SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 22 de outubro de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20251022"></a>

**AL2x86**

**nota**  
O Amazon Linux 2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023

[A nota de lançamento do DLAMI base está disponível aqui.](https://docs.aws.amazon.com//dlami/latest/devguide/aws-deep-learning-ami-baseoss-aml2-2025-10-14.html)
+ Versões EKS 1.28 - 1.32
+ Esta versão contém patches CVE para pacotes de drivers NVIDIA afetados encontrados no Boletim de Segurança de [outubro da Nvidia](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
  ```
+ Versões principais  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/sagemaker-hyperpod-release-ami-eks.html)
+ Pacotes adicionados: nenhum pacote foi adicionado nesta versão.
+ Pacotes atualizados  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/sagemaker-hyperpod-release-ami-eks.html)
+ Pacotes removidos: nenhum pacote foi removido nesta versão.

**AL2023x86**

[A nota de lançamento do DLAMI base está disponível aqui.](https://docs.aws.amazon.com//dlami/latest/devguide/aws-deep-learning-ami-gpubaseoss-al2023-2025-10-14.html)
+ Versões EKS 1.28 - 1.32. Nenhuma versão para a versão 1.33 do EKS.
+ Esta versão contém patches CVE para pacotes de drivers NVIDIA afetados encontrados no Boletim de Segurança de [outubro da Nvidia](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
  ```
+ Versões principais  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/sagemaker-hyperpod-release-ami-eks.html)
+ Pacotes adicionados: nenhum pacote foi adicionado nesta versão.
+ Pacotes atualizados  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/sagemaker-hyperpod-release-ami-eks.html)
+ Pacotes removidos: nenhum pacote foi removido nesta versão.

**AL2023 ARM64**

[A nota de lançamento do DLAMI base está disponível aqui.](https://docs.aws.amazon.com//dlami/latest/devguide/aws-deep-learning-ami-gpubaseossarm64-al2023-2025-10-14.html)
+ Versões EKS 1.31 - 1.33.
+ Esta versão contém patches CVE para pacotes de drivers NVIDIA afetados encontrados no Boletim de Segurança de [outubro da Nvidia](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
  ```
+ Versões principais  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/sagemaker-hyperpod-release-ami-eks.html)
+ Pacotes adicionados: nenhum pacote foi adicionado nesta versão.
+ Pacotes atualizados  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/sagemaker-hyperpod-release-ami-eks.html)
+ Pacotes removidos: nenhum pacote foi removido nesta versão.

## SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 29 de setembro de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250929"></a>

**Atualizações gerais de AMI**
+ Lançou a nova SageMaker HyperPod AMI para o Amazon EKS 1.33. Para obter mais informações, consulte Versões da SageMaker HyperPod AMI para o Amazon EKS: 29 de setembro de 2025.
**Importante**  
A API beta do Kubernetes de alocação dinâmica de recursos está ativada por padrão nesta versão.  
Essa API melhora o agendamento e o monitoramento de cargas de trabalho que exigem recursos como. GPUs
Essa API foi desenvolvida pela comunidade de código aberto do Kubernetes e pode mudar em versões futuras do Kubernetes. Antes de usar a API, revise a [documentação do Kubernetes](https://kubernetes.io/docs/concepts/scheduling-eviction/dynamic-resource-allocation/) e entenda como ela afeta suas cargas de trabalho.
HyperPod não está lançando uma AMI HyperPod Amazon Linux 2 para Kubernetes 1.33. AWS recomenda que você migre para o. AL2023 Para obter mais informações, consulte [Atualizar do Amazon Linux 2 para AL2023](https://docs.aws.amazon.com/eks/latest/userguide/al2023.html).

Para obter mais informações, consulte [Kubernetes](https://kubernetes.io/blog/2025/04/23/kubernetes-v1-33-release/) v1.33.

**SageMaker HyperPod Suporte ao DLAMI para Amazon EKS**

Esta versão inclui as seguintes alterações:

------
#### [ Kubernetes v1.28 ]
+ **O Amazon Linux 2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023**
+ NVIDIA SMI:
  + Versão do driver NVIDIA: 570.172.08
  + Versão CUDA: 12.8
+ Pacotes:
  + Linguagens e bibliotecas principais:
    + GCC: 11.5.0-5.amzn2023.0.5
    + GCC 14:14.2.1-7.amzn2023.0.1
    + Java: 17.0.16\$18-1.amzn2023.1
    + Perl: 5.32.1-477.amzn2023.0.7
    + Python: 3.9.23-1.amzn2023.0.3
    + Para: 3.2.0-37.amzn2023
    + Ferrugem: 1.89.0-1.amzn2023.0.2
  + Bibliotecas principais:
    + GLiBC: 2.34-196.amzn2023.0.1
    + OpenSSL: 3.2.2-1.amzn2023.0.1
    + Versão: 1.2.11-33.amzn2023.0.5
    + Utilitários do ZZ: 5.2.5-9.amzn2023.0.2
    + UTIL-Linux: 2.37.4-1.amzn2023.0.4
  + Neurônio:
    + aws-neuronx-dkms: 2.23.9.0-dkms
    + aws-neuronx-tools: 2.25.145.0-1
  + EFA:
    + driver eva: 2.17.2-1.amzn2023
    + configuração efa: 1.18-1.amzn2023
    + Tempo de espera: 1.2.2-1.amzn2023
    + Perfil do efa: 1.7-1.amzn2023
  + núcleo:
    + kernel: 6.1.148-173.267.amzn2023
    + desenvolvimento do kernel: 6.1.148-173.267.amzn2023
    + cabeçalhos do kernel: 6.1.148-173.267.amzn2023
    + ferramentas do kernel: 6.1.148-173.267.amzn2023
    + módulos de kernel extras: 6.1.148-173.267.amzn2023
    + live patch do kernel: 1.0-0.amzn2023
  + Nvidia:
    + kit de ferramentas de contêiner nvidia: 1.17.8-1
    + base do kit de ferramentas de contêiner nvidia: 1.17.8-1
    + libnvidia-container: 1.17.8-1 (com ferramentas)
    + gerenciador de estrutura nvidia: 570.172.08-1
    + libnvidia-nscq: 570.172.08-1

------
#### [ Kubernetes v1.29 ]
+ **O Amazon Linux 2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023**
+ NVIDIA SMI:
  + Versão do driver NVIDIA: 570.172.08
  + Versão CUDA: 12.8
+ Pacotes:
  + Linguagens e bibliotecas principais:
    + GCC: 11.5.0-5.amzn2023.0.5
    + GCC 14:14.2.1-7.amzn2023.0.1
    + Java: 17.0.16\$18-1.amzn2023.1
    + Perl: 5.32.1-477.amzn2023.0.7
    + Python: 3.9.23-1.amzn2023.0.3
    + Para: 3.2.0-37.amzn2023
    + Ferrugem: 1.89.0-1.amzn2023.0.2
  + Bibliotecas principais:
    + GLiBC: 2.34-196.amzn2023.0.1
    + OpenSSL: 3.2.2-1.amzn2023.0.1
    + Versão: 1.2.11-33.amzn2023.0.5
    + Utilitários do ZZ: 5.2.5-9.amzn2023.0.2
    + UTIL-Linux: 2.37.4-1.amzn2023.0.4
  + Neurônio:
    + aws-neuronx-dkms: 2.23.9.0-dkms
    + aws-neuronx-tools: 2.25.145.0-1
  + EFA:
    + driver de teste: 2.17.2-1.amzn2023
    + configuração efa: 1.18-1.amzn2023
    + Tempo de espera: 1.2.2-1.amzn2023
    + Perfil do efa: 1.7-1.amzn2023
  + núcleo:
    + kernel: 6.1.148-173.267.amzn2023
    + desenvolvimento do kernel: 6.1.148-173.267.amzn2023
    + cabeçalhos do kernel: 6.1.148-173.267.amzn2023
    + ferramentas do kernel: 6.1.148-173.267.amzn2023
    + módulos de kernel extras: 6.1.148-173.267.amzn2023
    + live patch do kernel: 1.0-0.amzn2023
  + Nvidia:
    + kit de ferramentas de contêiner nvidia: 1.17.8-1
    + base do kit de ferramentas de contêiner nvidia: 1.17.8-1
    + libnvidia-container: 1.17.8-1 (com ferramentas)
    + gerenciador de estrutura nvidia: 570.172.08-1
    + libnvidia-nscq: 570.172.08-1

------
#### [ Kubernetes v1.30 ]
+ **O Amazon Linux 2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023**
+ NVIDIA SMI:
  + Versão do driver NVIDIA: 570.172.08
  + Versão CUDA: 12.8
+ Pacotes:
  + Linguagens e bibliotecas principais:
    + GCC: 11.5.0-5.amzn2023.0.5
    + GCC 14:14.2.1-7.amzn2023.0.1
    + Java: 17.0.16\$18-1.amzn2023.1
    + Perl: 5.32.1-477.amzn2023.0.7
    + Python: 3.9.23-1.amzn2023.0.3
    + Para: 3.2.0-37.amzn2023
    + Ferrugem: 1.89.0-1.amzn2023.0.2
  + Bibliotecas principais:
    + GLiBC: 2.34-196.amzn2023.0.1
    + OpenSSL: 3.2.2-1.amzn2023.0.1
    + Versão: 1.2.11-33.amzn2023.0.5
    + Utilitários do ZZ: 5.2.5-9.amzn2023.0.2
    + UTIL-Linux: 2.37.4-1.amzn2023.0.4
  + Neurônio:
    + aws-neuronx-dkms: 2.23.9.0-dkms
    + aws-neuronx-tools: 2.25.145.0-1
  + EFA:
    + driver de teste: 2.17.2-1.amzn2023
    + configuração efa: 1.18-1.amzn2023
    + Tempo de espera: 1.2.2-1.amzn2023
    + Perfil do efa: 1.7-1.amzn2023
  + núcleo:
    + kernel: 6.1.148-173.267.amzn2023
    + desenvolvimento do kernel: 6.1.148-173.267.amzn2023
    + cabeçalhos do kernel: 6.1.148-173.267.amzn2023
    + ferramentas do kernel: 6.1.148-173.267.amzn2023
    + módulos de kernel extras: 6.1.148-173.267.amzn2023
    + live patch do kernel: 1.0-0.amzn2023
  + Nvidia:
    + kit de ferramentas de contêiner nvidia: 1.17.8-1
    + base do kit de ferramentas de contêiner nvidia: 1.17.8-1
    + libnvidia-container: 1.17.8-1 (com ferramentas)
    + gerenciador de estrutura nvidia: 570.172.08-1
    + libnvidia-nscq: 570.172.08-1

------
#### [ Kubernetes v1.31 ]
+ **O Amazon Linux 2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023**
+ NVIDIA SMI:
  + Versão do driver NVIDIA: 570.172.08
  + Versão CUDA: 12.8
+ Pacotes:
  + Linguagens e bibliotecas principais:
    + GCC: 11.5.0-5.amzn2023.0.5
    + GCC 14:14.2.1-7.amzn2023.0.1
    + Java: 17.0.16\$18-1.amzn2023.1
    + Perl: 5.32.1-477.amzn2023.0.7
    + Python: 3.9.23-1.amzn2023.0.3
    + Para: 3.2.0-37.amzn2023
    + Ferrugem: 1.89.0-1.amzn2023.0.2
  + Bibliotecas principais:
    + GLiBC: 2.34-196.amzn2023.0.1
    + OpenSSL: 3.2.2-1.amzn2023.0.1
    + Versão: 1.2.11-33.amzn2023.0.5
    + Utilitários do ZZ: 5.2.5-9.amzn2023.0.2
    + UTIL-Linux: 2.37.4-1.amzn2023.0.4
  + Neurônio:
    + aws-neuronx-dkms: 2.23.9.0-dkms
    + aws-neuronx-tools: 2.25.145.0-1
  + EFA:
    + driver de teste: 2.17.2-1.amzn2023
    + configuração efa: 1.18-1.amzn2023
    + Tempo de espera: 1.2.2-1.amzn2023
    + Perfil do efa: 1.7-1.amzn2023
  + núcleo:
    + kernel: 6.1.148-173.267.amzn2023
    + desenvolvimento do kernel: 6.1.148-173.267.amzn2023
    + cabeçalhos do kernel: 6.1.148-173.267.amzn2023
    + ferramentas do kernel: 6.1.148-173.267.amzn2023
    + módulos de kernel extras: 6.1.148-173.267.amzn2023
    + live patch do kernel: 1.0-0.amzn2023
  + Nvidia:
    + kit de ferramentas de contêiner nvidia: 1.17.8-1
    + base do kit de ferramentas de contêiner nvidia: 1.17.8-1
    + libnvidia-container: 1.17.8-1 (com ferramentas)
    + gerenciador de estrutura nvidia: 570.172.08-1
    + libnvidia-nscq: 570.172.08-1

------
#### [ Kubernetes v1.32 ]
+ **O Amazon Linux 2 agora está obsoleto. A AMI do Kubernetes é baseada em. AL2023**
+ NVIDIA SMI:
  + Versão do driver NVIDIA: 570.172.08
  + Versão CUDA: 12.8
+ Pacotes:
  + Linguagens e bibliotecas principais:
    + GCC: 11.5.0-5.amzn2023.0.5
    + GCC 14:14.2.1-7.amzn2023.0.1
    + Java: 17.0.16\$18-1.amzn2023.1
    + Perl: 5.32.1-477.amzn2023.0.7
    + Python: 3.9.23-1.amzn2023.0.3
    + Para: 3.2.0-37.amzn2023
    + Ferrugem: 1.89.0-1.amzn2023.0.2
  + Bibliotecas principais:
    + GLiBC: 2.34-196.amzn2023.0.1
    + OpenSSL: 3.2.2-1.amzn2023.0.1
    + Versão: 1.2.11-33.amzn2023.0.5
    + Utilitários do ZZ: 5.2.5-9.amzn2023.0.2
    + UTIL-Linux: 2.37.4-1.amzn2023.0.4
  + Neurônio:
    + aws-neuronx-dkms: 2.23.9.0-dkms
    + aws-neuronx-tools: 2.25.145.0-1
  + EFA:
    + driver de teste: 2.17.2-1.amzn2023
    + configuração efa: 1.18-1.amzn2023
    + Tempo de espera: 1.2.2-1.amzn2023
    + Perfil do efa: 1.7-1.amzn2023
  + núcleo:
    + kernel: 6.1.148-173.267.amzn2023
    + desenvolvimento do kernel: 6.1.148-173.267.amzn2023
    + cabeçalhos do kernel: 6.1.148-173.267.amzn2023
    + ferramentas do kernel: 6.1.148-173.267.amzn2023
    + módulos de kernel extras: 6.1.148-173.267.amzn2023
    + live patch do kernel: 1.0-0.amzn2023
  + Nvidia:
    + kit de ferramentas de contêiner nvidia: 1.17.8-1
    + base do kit de ferramentas de contêiner nvidia: 1.17.8-1
    + libnvidia-container: 1.17.8-1 (com ferramentas)
    + gerenciador de estrutura nvidia: 570.172.08-1
    + libnvidia-nscq: 570.172.08-1

------
#### [ Kubernetes v1.33 ]

A tabela a seguir contém informações sobre os componentes desta versão da AMI e as versões correspondentes.


| componente | AL2023\$1x86 | AL2023\$1arm64 | 
| --- | --- | --- | 
| EKS | v1.3.4 | v1.3.4 | 
| amazon-ssm-agent | 3.3.2299.0-1.amzn2023 | 3.3.2299.0-1.amzn2023 | 
| aws-neuronx-dkms | 2.23,9.0-dkms | N/D | 
| containerd | 1.7.27-1.eks.amzn2023.0.4 | 1.7.27-1.eks.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-1.amzn2023 | 570.172.08-1.el9 | 
| nvidia-container-toolkit | 1.17.8-1 | 1.17.8-1 | 
| runc | 1.2.6-1.amzn2023.0.1 | 1.2.6-1.amzn2023.0.1 | 

------

## SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 25 de agosto de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250825"></a>

**SageMaker HyperPod Suporte ao DLAMI para Amazon EKS**

Esta versão inclui as seguintes alterações:

------
#### [ Kubernetes v1.28 ]

**NVIDIA SMI:**
+ Versão do driver da NVIDIA: 570.172.08
+ Versão do CUDA: 12.8

**Pacotes adicionados:**
+ kernel-livepatch-5.10.240-238.955.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Pacotes atualizados:**
+ 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

**Pacotes removidos:**
+ kernel-livepatch-5.10.239-236.958.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Repositório alterado:**
+ 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:**
+ Versão do driver da NVIDIA: 570.172.08
+ Versão do CUDA: 12.8

**Pacotes adicionados:**
+ kernel-livepatch-5.10.240-238.955.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Pacotes atualizados:**
+ 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

**Pacotes removidos:**
+ kernel-livepatch-5.10.239-236.958.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Repositório alterado:**
+ 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:**
+ Versão do driver da NVIDIA: 570.172.08
+ Versão do CUDA: 12.8

**Pacotes adicionados:**
+ kernel-livepatch-5.10.240-238.955.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Pacotes atualizados:**
+ 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

**Pacotes removidos:**
+ kernel-livepatch-5.10.239-236.958.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Repositório alterado:**
+ 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:**
+ Versão do driver da NVIDIA: 570.172.08
+ Versão do CUDA: 12.8

**Pacotes adicionados:**
+ kernel-livepatch-5.10.240-238.955.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Pacotes atualizados:**
+ 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

**Pacotes removidos:**
+ kernel-livepatch-5.10.239-236.958.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Repositório alterado:**
+ 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:**
+ Versão do driver da NVIDIA: 570.172.08
+ Versão do CUDA: 12.8

**Pacotes adicionados:**
+ kernel-livepatch-5.10.240-238.955.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Pacotes atualizados:**
+ 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

**Pacotes removidos:**
+ kernel-livepatch-5.10.239-236.958.x86\$164 1.0-0.amzn2 amzn2extra-kernel-5.10

**Repositório alterado:**
+ 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 Lançamentos da AMI para o Amazon EKS: 12 de agosto de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250812"></a>

**A AMI inclui o seguinte:**
+  AWS Serviço suportado: Amazon EC2
+ Sistema operacional: Amazon Linux 2023
+ Arquitetura de computação: ARM64
+ A versão mais recente disponível está instalada para os seguintes pacotes:
  + Kernel Linux: 6.12
  + FSx Lustro
  + Docker
  + AWS CLI v2 em `/usr/bin/aws`
  + NVIDIA DCGM
  + Nvidia Container Toolkit:
    + Comando de versão: `nvidia-container-cli -V`
  + Nvidia-docker2:
    + Comando de versão: `nvidia-docker version`
  + NVIDIA-IMEX: v570.172.08-1
+ Driver NVIDIA: 570.158.01
+ Pilha NVIDIA CUDA 12.4, 12,5, 12,6, 12,8:
  + Diretórios de instalação CUDA, NCCL e cuDDN: `/usr/local/cuda-xx.x/`
    + Exemplo: `/usr/local/cuda-12.8/`, `/usr/local/cuda-12.8/`
  + Versão compilada da NCCL:
    + Para o diretório CUDA de 12.4, compilou a versão NCCL 2.22.3\$1 .4 CUDA12
    + Para o diretório CUDA de 12.5, compilou a versão NCCL 2.22.3\$1 .5 CUDA12
    + Para o diretório CUDA de 12.6, compilou a versão NCCL 2.24.3\$1 .6 CUDA12
    + Para o diretório CUDA de 12.8, compilou a versão NCCL 2.27.5\$1 .8 CUDA12
  + CUDA padrão: 12,8
    + PATH `/usr/local/cuda` aponta para CUDA 12.8
    + Variáveis de ambiente atualizadas abaixo:
      + `LD_LIBRARY_PATH`ter `/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`ter `/usr/local/cuda-12.8/bin/:/usr/local/cuda-12.8/include/`
      + Para qualquer versão diferente do CUDA, atualize `LD_LIBRARY_PATH` adequadamente.
+ Instalador EFA: 1.42.0
+ Nvidia GDRCopy: 2.5.1
+ AWS O plugin OFI NCCL vem com o instalador EFA
  + Caminhos `/opt/amazon/ofi-nccl/lib` e `/opt/amazon/ofi-nccl/efa` são adicionados `LD_LIBRARY_PATH` a.
+ AWS CLI v2 em `/usr/local/bin/aws`
+ Tipo de volume do EBS: gp3
+ Python: `/usr/bin/python3.9`

## SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 6 de agosto de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250806"></a>

**SageMaker HyperPod Suporte ao DLAMI para Amazon EKS**

 AMIs Isso inclui as seguintes atualizações:

------
#### [ K8s v1.28 ]
+ **Pacotes do Neuron:**
  + **aws-neuronx-collectives: 2.27.34.0\$1ec8cd5e8b-1**
  + **aws-neuronx-dkms: 2.23.9.0-dkms**
  + **aws-neuronx-runtime-lib: 2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-k8 plug-ins: 2.27.7.0-1**
  + **aws-neuronx-kProgramador 8:2.27.7.0-1**
  + **aws-neuronx-tools: 2.25.145.0-1**

------
#### [ K8s v1.29 ]
+ **Pacotes do Neuron:**
  + **aws-neuronx-collectives: 2.27.34.0\$1ec8cd5e8b-1**
  + **aws-neuronx-dkms: 2.23.9.0-dkms**
  + **aws-neuronx-runtime-lib: 2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-k8 plug-ins: 2.27.7.0-1**
  + **aws-neuronx-kProgramador 8:2.27.7.0-1**
  + **aws-neuronx-tools: 2.25.145.0-1**

------
#### [ K8s v1.30 ]
+ **Pacotes do Neuron:**
  + **aws-neuronx-collectives: 2.27.34.0\$1ec8cd5e8b-1**
  + **aws-neuronx-dkms: 2.23.9.0-dkms**
  + **aws-neuronx-runtime-lib: 2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-k8 plug-ins: 2.27.7.0-1**
  + **aws-neuronx-kProgramador 8:2.27.7.0-1**
  + **aws-neuronx-tools: 2.25.145.0-1**

------
#### [ K8s v1.31 ]
+ **Pacotes do Neuron:**
  + **aws-neuronx-collectives: 2.27.34.0\$1ec8cd5e8b-1**
  + **aws-neuronx-dkms: 2.23.9.0-dkms**
  + **aws-neuronx-runtime-lib: 2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-k8 plug-ins: 2.27.7.0-1**
  + **aws-neuronx-kProgramador 8:2.27.7.0-1**
  + **aws-neuronx-tools: 2.25.145.0-1**

------
#### [ K8s v1.32 ]
+ **Pacotes do Neuron:**
  + **aws-neuronx-collectives: 2.27.34.0\$1ec8cd5e8b-1**
  + **aws-neuronx-dkms: 2.23.9.0-dkms**
  + **aws-neuronx-runtime-lib: 2.27.23.0\$18deec4dbf-1**
  + **aws-neuronx-k8 plug-ins: 2.27.7.0-1**
  + **aws-neuronx-kProgramador 8:2.27.7.0-1**
  + **aws-neuronx-tools: 2.25.145.0-1**

------

**Importante**  
AMI base do driver OSS NVIDIA para aprendizado profundo (Amazon Linux 2) versão 70.3
Deep Learning Base Proprietary NVIDIA Driver AMI (Amazon Linux 2) versão 68.4
Compatibilidade mais recente com o CUDA 12.8
Driver da NVIDIA atualizado de 570.158.01 para 570.172.08 para corrigir CVEs presentes no NVIDIA Security Bulletin de julho

## SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 31 de julho de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250731"></a>

A Amazon SageMaker HyperPod agora oferece suporte a uma nova AMI para clusters do Amazon EKS que atualiza o sistema operacional básico para o Amazon Linux 2023. Esta versão fornece várias melhorias do Amazon Linux 2 (AL2). HyperPod lançamentos novos AMIs regularmente, e recomendamos que você execute todos os seus HyperPod clusters nas versões mais recentes e seguras do AMIs para resolver vulnerabilidades e eliminar gradualmente softwares e bibliotecas desatualizados.

### Principais atualizações
<a name="sagemaker-hyperpod-release-ami-eks-20250731-specs"></a>
+ **Sistema operacional**: Amazon Linux 2023 (atualizado a partir do Amazon Linux 2 ou AL2)
+ **Package Manager**: o DNF é a ferramenta padrão de gerenciamento de pacotes, substituindo o YUM usado no AL2
+ **Serviço de rede**: `systemd-networkd` gerencia interfaces de rede, substituindo o ISC `dhclient` usado em AL2
+ **Kernel Linux**: versão 6.1, atualizada a partir do kernel usado em AL2
+ **Glibc**: Versão 2.34, atualizada a partir da versão em AL2
+ **GCC**: Versão 11.5.0, atualizada a partir da versão em AL2
+ **NFS**: Versão 1:2.6 .1, atualizada da versão 1:1.3 .4 em AL2
+ **Driver da NVIDIA**: versão 570.172.08, uma versão mais recente do driver
+ **Python**: Versão 3.9, substituindo o Python 2.7 usado em AL2
+ **NVME**: Versão 1.11.1, uma versão mais recente do driver NVMe 

### Antes da atualização
<a name="sagemaker-hyperpod-release-ami-eks-20250731-prereqs"></a>

Há algumas questões importantes que você deve saber antes da atualização. Com AL2023, vários pacotes foram adicionados, atualizados ou removidos em comparação com o. AL2 É altamente recomendável que você teste seus aplicativos AL2023 antes de atualizar seus clusters. Para obter uma lista abrangente de todas as alterações de pacotes em AL2023, consulte [Alterações de pacotes no Amazon Linux 2023](https://docs.aws.amazon.com/linux/al2023/release-notes/compare-packages.html).

A seguir estão algumas das mudanças significativas entre AL2 e AL2023:
+ **Python 3.10**: a atualização mais significativa, além do sistema operacional, é a da versão do Python. Após a atualização, os clusters têm o Python 3.10 como padrão. Embora algumas workloads de treinamento distribuído do Python 3.8 possam ser compatíveis com o Python 3.10, é altamente recomendável testar suas workloads específicas separadamente. Se a migração para o Python 3.10 for difícil, mas você ainda quiser atualizar o cluster para outros novos recursos, é possível instalar uma versão mais antiga do Python usando o comando `yum install python-xx.x` com [scripts de ciclo de vida](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-lifecycle-best-practices-slurm.html) antes de executar qualquer workload. Teste os scripts de ciclo de vida existentes e o código da aplicação para verificar a compatibilidade.
+ Aplicação do **tempo de execução da NVIDIA**: aplica AL2023 rigorosamente os requisitos de tempo de execução do contêiner da NVIDIA, fazendo com que contêineres com variáveis de ambiente NVIDIA codificadas (como`NVIDIA_VISIBLE_DEVICES: "all"`) falhem em nós somente da CPU (enquanto AL2 ignoram essas configurações quando nenhum driver de GPU está presente). Você pode substituir a imposição `NVIDIA_VISIBLE_DEVICES: "void"` configurando a especificação do seu pod ou usando imagens somente da CPU.
+ **cgroup v2**: AL2023 apresenta a próxima geração da hierarquia unificada de grupos de controle (cgroup v2). O cgroup v2 é usado para tempos de execução de contêineres e também é usado por. `systemd` Embora AL2023 ainda inclua código que pode fazer o sistema funcionar usando o cgroup v1, essa não é uma configuração recomendada.
+ **CNI e `eksctl` versões do Amazon VPC**: AL2023 também exige que sua versão CNI do Amazon VPC seja 1.16.2 ou superior e que sua versão seja 0.176.0 ou superior. `eksctl`
+ **EFA on FSx for Lustre**: agora você pode usar o EFA on FSx for Lustre, que permite alcançar um desempenho de aplicativo comparável ao de clusters locais AI/ML ou de HPC (computação de alto desempenho), enquanto se beneficia da escalabilidade, flexibilidade e elasticidade da computação em nuvem.

Além disso, a atualização para AL2023 requer uma versão mínima `1.0.643.0_1.0.192.0` do Health Monitoring Agent. Conclua o seguinte procedimento para atualizar o Health Monitoring Agent:

1. Se você usa scripts de HyperPod ciclo de vida do GitHub repositório [awsome-distributed-training](https://github.com/aws-samples/awsome-distributed-training)), certifique-se de obter a versão mais recente. As versões anteriores não são compatíveis com AL2023 o. O novo script de ciclo de vida garante o `containerd` uso do armazenamento adicional montado para inserir as imagens do contêiner. AL2023

1. Obtenha a versão mais recente do repositório [git HyperPod CLI](https://github.com/aws/sagemaker-hyperpod-cli/tree/main).

1. Atualize as dependências com o seguinte comando: `helm dependencies update helm_chart/HyperPodHelmChart`.

1. Conforme mencionado na etapa 4 do [README de HyperPodHelmChart](https://github.com/aws/sagemaker-hyperpod-cli/tree/main/helm_chart#step-four-whenever-you-want-to-upgrade-the-installation-of-helm-charts), execute o comando a seguir para atualizar a versão das dependências em execução no cluster: `helm upgrade dependencies helm_chart/HyperPodHelmChart -namespace kube-system`

### Workloads que foram testadas em clusters do EKS atualizados
<a name="sagemaker-hyperpod-release-ami-eks-20250731-tested"></a>

Veja abaixo alguns casos de uso em que a atualização foi testada:
+ **Compatibilidade com versões anteriores**: trabalhos populares de treinamento distribuído que envolvem PyTorch devem ser compatíveis com versões anteriores na nova AMI. No entanto, como suas workloads podem depender de bibliotecas específicas do Python ou do Linux, recomendamos testar primeiro em uma escala menor ou em um subconjunto de nós antes de atualizar os clusters maiores.
+ **Teste de acelerador**: trabalhos em vários tipos de instância, utilizando aceleradores NVIDIA (para as famílias de instâncias P e G) e aceleradores AWS Neuron (para instâncias Trn) foram testados.

### Como atualizar a AMI e as workloads correspondentes
<a name="sagemaker-hyperpod-release-ami-eks-20250731-upgrade"></a>

É possível atualizar a AMI para a nova AMI usando um dos seguintes métodos:
+ Use a API [create-cluster](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateCluster.html) para criar um cluster com a AMI mais recente.
+ Use a [update-cluster-software](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateClusterSoftware.html)API para atualizar seu cluster existente. Observe que essa opção executa novamente qualquer script de ciclo de vida.

O cluster não estará disponível durante o processo de atualização. Recomendamos planejar esse tempo de inatividade e reiniciar a workload de treinamento a partir de um ponto de verificação existente após a conclusão da atualização. Como prática recomendada, sugerimos que você execute testes em um cluster menor antes de atualizar clusters maiores.

Se o comando de atualização falhar, primeiro identifique a causa da falha. Para falhas no script de ciclo de vida, faça as correções necessárias nos scripts e tente novamente. Com relação a quaisquer outros problemas que não possam ser resolvidos, entre em contato com o [AWS Support](https://aws.amazon.com/premiumsupport/).

### Solução de problemas
<a name="sagemaker-hyperpod-release-ami-eks-20250731-troubleshooting"></a>

Use a seção a seguir para ajudar a solucionar quaisquer problemas encontrados ao fazer o upgrade para o. AL2023

**Como faço para corrigir erros, como `"nvml error: driver not loaded: unknown"`, em nós de cluster somente de CPU?**

Se os contêineres que funcionavam nos nós da CPU do AL2 Amazon EKS agora falharem AL2023, sua imagem de contêiner pode ter variáveis de ambiente NVIDIA codificadas. Você pode verificar as variáveis de ambiente com codificação rígida usando o seguinte comando:

```
docker inspect image:tag | grep -i nvidia
```

AL2023 aplica rigorosamente esses requisitos, ao passo que AL2 era mais tolerante com nós somente de CPU. Uma solução é substituir a AL2023 imposição definindo determinadas variáveis de ambiente da NVIDIA em sua especificação de pod do Amazon EKS, conforme mostrado no exemplo a seguir:

```
yaml
containers:
- name: your-container
image: your-image:tag
env:
- name: NVIDIA_VISIBLE_DEVICES
value: "void"
- name: NVIDIA_DRIVER_CAPABILITIES
value: ""
```

Também é possível usar imagens de contêiner somente de CPU (como `pytorch/pytorch:latest-cpu`) ou criar imagens personalizadas sem dependências da NVIDIA.

## SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 15 de julho de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250715"></a>

**SageMaker HyperPod Suporte ao DLAMI para Amazon EKS**

 AMIs Isso inclui as seguintes atualizações:

------
#### [ K8s v1.28 ]
+ **Driver NVIDIA mais recente:** 550.163.01
+ **Padrão CUDA:** 12.4
+ **Instalador do EFA:** 1.38.0
+ **Pacotes do 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.1.2.12.2.0-0

------
#### [ K8s v1.29 ]
+ **Versão do driver da NVIDIA:** 550.163.01
+ **Versão do CUDA:** 12.4
+ **Instalador do EFA:** 1.38.0
+ **Pacotes do 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.1.2.12.2.0-0

------
#### [ K8s v1.30 ]
+ **Versão do driver da NVIDIA:** 550.163.01
+ **Versão do CUDA:** 12.4
+ **Versão do instalador do EFA:** 1.38.0
+ **Pacotes do 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.1.2.12.2.0-0

------
#### [ K8s v1.31 ]
+ **Versão do driver da NVIDIA:** 550.163.01
+ **Versão do CUDA:** 12.4
+ **Versão do instalador do EFA:** 1.38.0
+ **Pacotes do 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.1.2.12.2.0-0

------
#### [ K8s v1.32 ]
+ **Versão do driver da NVIDIA:** 550.163.01
+ **Versão do CUDA:** 12.4
+ **Versão do instalador do EFA:** 1.38.0
+ **Pacotes do 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.1.2.12.2.0-0

------

## SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 09 de junho de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250609"></a>

**SageMaker HyperPod Suporte ao DLAMI para Amazon EKS**

------
#### [ Neuron SDK Updates ]
+ **aws-neuronx-dkms.noarch:** 2.21.37.0 (a partir de 2.20.74.0)

------

## SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 22 de maio de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250522"></a>

**Atualizações gerais de AMI**

**SageMaker HyperPod Suporte ao DLAMI para Amazon EKS**

------
#### [ Deep Learning Base AMI AL2 ]
+ **Driver NVIDIA mais recente:** 550.163.01
+ **Atualizações da pilha do CUDA:**
  + **CUDA padrão:** 12.1
  + **Versão da NCCL:** 2.22.3
+ **Instalador do EFA:** 1.38.0
+ **AWS OFI NCCL: 1.13.2**
+ **Kernel do Linux:** 5.10
+ **GDRCopy:** 2,4

**Importante**  
**Atualização do NVIDIA Container Toolkit 1.17.4:** a montagem de bibliotecas compatíveis com CUDA agora está desabilitada.
**Atualizações do EFA de 1.37 para 1.38:**  
AWS O plugin OFI NCCL agora está localizado em/-nccl opt/amazon/ofi
A localização anterior /opt//aws-ofi-ncclestá obsoleta

------
#### [ Neuron SDK Updates ]
+ **aws-neuronx-dkms.noarch:** 2.20.74.0 (a partir de 2.20.28.0)
+ **aws-neuronx-collectives.x86\$164:2.25.65.0\$19858ac9a1-1 (de 2.24.59.0\$1838c7fc8b-1**)
+ **aws-neuronx-runtime-lib.x86\$164:2.25.57.0\$1166c7a468-1 (de 2.24.53.0\$1f239092cc-1**)
+ **aws-neuronx-tools.x86\$164:2.23.9.0 (a partir de 2.22.61.0**)
+ **aws-neuronx-gpsimd-customop-lib.x86\$164**: 0.15.12.0 (a partir de 0.14.12.0)
+ **aws-neuronx-gpsimd-tools.x86\$164:0.15.1.0\$15d31b6a3f (de 0.14.6.0\$1241eb69f4**)
+ **aws-neuronx-k8-plugin.x86\$164**: 2.25.24.0 (a partir de 2.24.23.0)
+ **aws-neuronx-k8-scheduler.x86\$164**: 2.25.24.0 (a partir de 2.24.23.0)

**Observações sobre compatibilidade:**
+ Os componentes da AMI, incluindo versões do CUDA, podem ser removidos ou alterados com base na política de suporte do framework.
+ Para oferecer compatibilidade, a versão do kernel é fixa. Os usuários devem evitar atualizações, a menos que sejam necessárias para patches de segurança.
+ Para instâncias do EC2 com várias placas de rede, consulte o guia de configuração do EFA para obter a configuração adequada

------

## SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 07 de maio de 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 neurônio

------

## SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 28 de abril de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250428"></a>

**Melhorias para o K8s**
+ Atualização do driver da NVIDIA da versão 550.144.03 para a 550.163.01. Essa atualização visa abordar vulnerabilidades e exposições comuns (CVEs) presentes no Boletim de [Segurança do NVIDIA GPU Display](https://nvidia.custhelp.com/app/answers/detail/a_id/5630) de abril de 2025.

**SageMaker HyperPod Suporte ao DLAMI para 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.12.2.0-0

------

## SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 18 de abril de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250418"></a>

**Atualizações gerais de AMI**
+ Nova SageMaker HyperPod AMI para Amazon EKS 1.32.1.

**SageMaker HyperPod Suporte ao DLAMI para Amazon EKS**

 AMIs Isso inclui o seguinte:

------
#### [ Deep Learning EKS AMI 1.32.1 ]
+ **Componentes do Amazon EKS**
  + Versão do Kubernetes: 1.32.1
  + Versão do Containerd: 1.7.27
  + Versão do Runc: 1.1.14
  + AWS Autenticador IAM: 0.6.29
+ **Amazon SSM Agent:** 3.3.1611.0 
+ **Kernel do Linux:** 5.10.235
+ **Driver OSS da NVIDIA:** 550.163.01
+ **NVIDIA CUDA**: 12.4
+ **Instalador do EFA:** 1.38.0
+ **GDRCopy: 2.4.1-1**
+ **NVIDIA Container Toolkit:** 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.24.59.0**

------

## SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 18 de fevereiro de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250218"></a>

**Melhorias para o K8s**
+ Atualização do NVIDIA Container Toolkit da versão 1.17.3 para a versão 1.17.4.
+ Correção do problema em que os clientes não conseguiam se conectar aos nós após uma reinicialização.
+ Versão atualizada do Elastic Fabric Adapter (EFA) de 1.37.0 para 1.38.0.
+ O EFA agora inclui o plug-in AWS OFI NCCL, que está localizado no `/opt/amazon/ofi-nccl` diretório em vez do caminho original. `/opt/aws-ofi-nccl/` Se você precisar atualizar sua variável de ambiente `LD_LIBRARY_PATH`, modifique o caminho para apontar para o novo local `/opt/amazon/ofi-nccl` local do plug-in OFI NCCL.
+ O pacote emacs foi removido deles. DLAMIs Você pode instalar emacs a partir do GNU Emacs.

**SageMaker HyperPod Suporte ao DLAMI para 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.3.0-1 @neuron
+ **aws-neuronx-collectives.x86\$164:2.23.135.0\$13e70920f2-1** neurônio
+ **aws-neuronx-gpsimd-customop.x86\$164**: neurônio 0.2.3.0-1
+ **aws-neuronx-gpsimd-customop-lib.x86\$164**
+ **aws-neuronx-gpsimd-tools.x86\$164: neurônio 0.13.2.0\$194ba34927-1**
+ **aws-neuronx-k8-plugin.x86\$164:2.23.45.0-1 neurônio**
+ **aws-neuronx-k8-scheduler.x86\$164:2.23.45.0-1 neurônio**
+ **aws-neuronx-runtime-lib.x86\$164:2.23.112.0\$19b5179492-1** neurônio
+ **aws-neuronx-tools.x86\$164**: 2.20.204.0-1 neurônio
+ **tensorflow-model-server-neuronx.x86\$164**

------

## SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 22 de janeiro de 2025
<a name="sagemaker-hyperpod-release-ami-eks-20250122"></a>

**Atualizações gerais de AMI**
+ Nova SageMaker HyperPod AMI para Amazon EKS 1.31.2.

**SageMaker HyperPod Suporte ao DLAMI para Amazon EKS**

 AMIs Isso inclui o seguinte:

------
#### [ Deep Learning EKS AMI 1.31 ]
+ **Componentes do Amazon EKS**
  + Versão do Kubernetes: 1.31.2
  + Versão do Containerd: 1.7.23
  + Versão do Runc: 1.1.14
  + AWS Autenticador IAM: 0.6.26
+ **Amazon SSM Agent:** 3.3.987
+ **Kernel do Linux:** 5.10.230
+ **Driver OSS da NVIDIA:** 550.127.05
+ **NVIDIA CUDA**: 12.4
+ **Instalador do EFA:** 1.37.0
+ **GDRCopy: 2.4.1-1**
+ **NVIDIA Container Toolkit:** 1.17.3
+ **AWS OFI NCCL: 1.13.0**
+ **aws-neuronx-tools: 2.18.3**
+ **aws-neuronx-runtime-lib: 2.23.12.0**
+ **aws-neuronx-oci-hook: 2.4.4.0-1**
+ **aws-neuronx-dkms: 2.18.20.0**
+ **aws-neuronx-collectives: 2.23.13.0**

------

## SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 21 de dezembro de 2024
<a name="sagemaker-hyperpod-release-ami-eks-20241221"></a>

**SageMaker HyperPod Suporte ao DLAMI para Amazon EKS**

 AMIs Isso inclui o seguinte:

------
#### [ K8s v1.28 ]
+ **Componentes do Amazon EKS**
  + Kubernetes versão 1.28.15
  + Versão do Containerd: 1.7.23
  + Versão do Runc: 1.1.14
  + AWS Autenticador IAM: 0.6.26
+ **Amazon SSM Agent:** 3.3.987
+ **Kernel do Linux:** 5.10.228
+ **Driver OSS da NVIDIA:** 550.127.05
+ **NVIDIA CUDA**: 12.4
+ **Instalador do EFA:** 1.37.0
+ **GDRCopy:** 2,4
+ **NVIDIA Container Toolkit:** 1.17.3
+ **AWS OFI NCCL: 1.13.0**
+ **aws-neuronx-tools: 2.18.3.0-1**
+ **aws-neuronx-runtime-lib: 2.23.12.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 ]
+ **Componentes do Amazon EKS**
  + Versão do Kubernetes: 1.29.10
  + Versão do Containerd: 1.7.23
  + Versão do Runc: 1.1.14
  + AWS Autenticador IAM: 0.6.26
+ **Amazon SSM Agent:** 3.3.987
+ **Kernel do Linux:** 5.15.0
+ **Driver OSS da NVIDIA:** 550.127.05
+ **NVIDIA CUDA**: 12.4
+ **Instalador do EFA:** 1.37.0
+ **GDRCopy:** 2,4
+ **NVIDIA Container Toolkit:** 1.17.3
+ **AWS OFI NCCL: 1.13.0**
+ **aws-neuronx-tools: 2.18.3.0-1**
+ **aws-neuronx-runtime-lib: 2.23.12.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 ]
+ **Componentes do Amazon EKS**
  + Versão do Kubernetes: 1.30.6
  + Versão do Containerd: 1.7.23
  + Versão do Runc: 1.1.14
  + AWS Autenticador IAM: 0.6.26
+ **Amazon SSM Agent:** 3.3.987.0
+ **Kernel do Linux:** 5.10.228
+ **Driver OSS da NVIDIA:** 550.127.05
+ **NVIDIA CUDA**: 12.4
+ **Instalador do EFA:** 1.37.0
+ **GDRCopy:** 2,4
+ **NVIDIA Container Toolkit:** 1.17.3
+ **AWS OFI NCCL: 1.13.0**
+ **aws-neuronx-tools: 2.18.3.0-1**
+ **aws-neuronx-runtime-lib: 2.23.12.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 Lançamentos da AMI para o Amazon EKS: 13 de dezembro de 2024
<a name="sagemaker-hyperpod-release-ami-eks-20241213"></a>

**SageMaker HyperPod Atualização do DLAMI para Amazon EKS**
+ Atualização do SSM Agent para a versão `3.3.1311.0`.

## SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 24 de novembro de 2024
<a name="sagemaker-hyperpod-release-ami-eks-20241124"></a>

**Atualizações gerais de AMI**
+ Lançadas na região `MEL` (Melbourne).
+ DLAMI SageMaker HyperPod base atualizada para as seguintes versões:
  + Kubernetes: 2024-11-01.

## SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 15 de novembro de 2024
<a name="sagemaker-hyperpod-release-ami-eks-20241115"></a>

**SageMaker HyperPod Suporte ao DLAMI para Amazon EKS**

 AMIs Isso inclui o seguinte:

------
#### [ Deep Learning EKS AMI 1.28 ]
+ **Componentes do Amazon EKS**
  + Kubernetes versão 1.28.15
  + Versão do Containerd: 1.7.23
  + Versão do Runc: 1.1.14
  + AWS Autenticador IAM: 0.6.26
+ **Amazon SSM Agent:** 3.3.987
+ **Kernel do Linux:** 5.10.228
+ **Driver OSS da NVIDIA:** 550.127.05
+ **NVIDIA CUDA**: 12.4
+ **Instalador do EFA:** 1.34.0
+ **GDRCopy:** 2,4
+ **NVIDIA Container Toolkit:** 1.17.3
+ **AWS OFI NCCL: 1.11.0**
+ **aws-neuronx-tools: 2.18.3.0-1**
+ **aws-neuronx-runtime-lib: 2.22.19.0**
+ **aws-neuronx-oci-hook: 2.4.4.0-1**
+ **aws-neuronx-dkms: 2.18.20.0**
+ **aws-neuronx-collectives: 2.22.3.0**

------
#### [ Deep Learning EKS AMI 1.29 ]
+ **Componentes do Amazon EKS**
  + Versão do Kubernetes: 1.29.10
  + Versão do Containerd: 1.7.23
  + Versão do Runc: 1.1.14
  + AWS Autenticador IAM: 0.6.26
+ **Amazon SSM Agent:** 3.3.987
+ **Kernel do Linux:** 5.10.228
+ **Driver OSS da NVIDIA:** 550.127.05
+ **NVIDIA CUDA**: 12.4
+ **Instalador do EFA:** 1.34.0
+ **GDRCopy:** 2,4
+ **NVIDIA Container Toolkit:** 1.17.3
+ **AWS OFI NCCL: 1.11.0**
+ **aws-neuronx-tools: 2.18.3.0-1**
+ **aws-neuronx-runtime-lib: 2.22.19.0**
+ **aws-neuronx-oci-hook: 2.4.4.0-1**
+ **aws-neuronx-dkms: 2.18.20.0**
+ **aws-neuronx-collectives: 2.22.3.0**

------
#### [ Deep Learning EKS AMI 1.30 ]
+ **Componentes do Amazon EKS**
  + Versão do Kubernetes: 1.30.6
  + Versão do Containerd: 1.7.23
  + Versão do Runc: 1.1.14
  + AWS Autenticador IAM: 0.6.26
+ **Amazon SSM Agent:** 3.3.987
+ **Kernel do Linux:** 5.10.228
+ **Driver OSS da NVIDIA:** 550.127.05
+ **NVIDIA CUDA**: 12.4
+ **Instalador do EFA:** 1.34.0
+ **GDRCopy:** 2,4
+ **NVIDIA Container Toolkit:** 1.17.3
+ **AWS OFI NCCL: 1.11.0**
+ **aws-neuronx-tools: 2.18.3.0-1**
+ **aws-neuronx-runtime-lib: 2.22.19.0**
+ **aws-neuronx-oci-hook: 2.4.4.0-1**
+ **aws-neuronx-dkms: 2.18.20.0**
+ **aws-neuronx-collectives: 2.22.3.0**

------

## SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 11 de novembro de 2024
<a name="sagemaker-hyperpod-release-ami-eks-20241111"></a>

**Atualizações gerais de AMI**
+  SageMaker HyperPod DLAMI atualizado com as versões 1.28.13, 1.29.8, 1.30.4 do Amazon EKS.

## SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 21 de outubro de 2024
<a name="sagemaker-hyperpod-release-ami-eks-20241021"></a>

**Atualizações gerais de AMI**
+ DLAMI SageMaker HyperPod base atualizada para as seguintes versões:
  + Amazon EKS: 1.28.11, 1.29.6 e 1.30.2.

## SageMaker HyperPod Lançamentos da AMI para o Amazon EKS: 10 de setembro de 2024
<a name="sagemaker-hyperpod-release-ami-eks-20240910"></a>

**SageMaker HyperPod Suporte ao DLAMI para Amazon EKS**

 AMIs Isso inclui o seguinte:

------
#### [ Deep Learning EKS AMI 1.28 ]
+ **Componentes do Amazon EKS**
  + Kubernetes versão 1.28.11
  + Versão do Containerd: 1.7.20
  + Versão Runc: 1.1.11
  + AWS Autenticador IAM: 0.6.21
+ **Amazon SSM Agent:** 3.3.380
+ **Linux Kernel:** 5.10.223
+ **Driver NVIDIA OSS:** 535.183.01
+ **NVIDIA CUDA**: 12.2
+ **Instalador EFA:** 1.32.0
+ **GDRCopy:** 2,4
+ **Kit de ferramentas de contêiner 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: 2.17.17.0**
+ **aws-neuronx-collectives: 2.21.46.0**

------
#### [ Deep Learning EKS AMI 1.29 ]
+ **Componentes do Amazon EKS**
  + Kubernetes versão: 1.29.6
  + Versão do Containerd: 1.7.20
  + Versão Runc: 1.1.11
  + AWS Autenticador IAM: 0.6.21
+ **Amazon SSM Agent:** 3.3.380
+ **Linux Kernel:** 5.10.223
+ **Driver Nvidia OSS:** 535.183.01
+ **NVIDIA CUDA**: 12.2
+ **Instalador EFA:** 1.32.0
+ **GDRCopy:** 2,4
+ **Kit de ferramentas de contêiner 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: 2.17.17.0**
+ **aws-neuronx-collectives: 2.21.46.0**

------
#### [ Deep Learning EKS AMI 1.30 ]
+ **Componentes do Amazon EKS**
  + Kubernetes versão: 1.30.2
  + Versão do Containerd: 1.7.20
  + Versão Runc: 1.1.11
  + AWS Autenticador IAM: 0.6.21
+ **Amazon SSM Agent:** 3.3.380
+ **Linux Kernel:** 5.10.223
+ **Driver Nvidia OSS:** 535.183.01
+ **NVIDIA CUDA**: 12.2
+ **Instalador EFA:** 1.32.0
+ **GDRCopy:** 2,4
+ **Kit de ferramentas de contêiner 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: 2.17.17.0**
+ **aws-neuronx-collectives: 2.21.46.0**

------

# Lançamentos de AMIs públicas
<a name="sagemaker-hyperpod-release-public-ami"></a>

As notas de lançamento a seguir acompanham as atualizações mais recentes dos lançamentos SageMaker HyperPod públicos da Amazon AMI para a orquestração do Amazon EKS. Cada nota de lançamento inclui uma lista resumida de pacotes pré-instalados ou pré-configurados no suporte do SageMaker HyperPod DLAMIs Amazon EKS. Cada DLAMI é construído e oferece suporte a uma versão específica AL2023 do Kubernetes. Para obter informações sobre os lançamentos de SageMaker HyperPod recursos da Amazon, consulte[Notas SageMaker HyperPod de lançamento da Amazon](sagemaker-hyperpod-release-notes.md).

Esta página é atualizada regularmente para fornecer informações abrangentes sobre o gerenciamento do ciclo de vida da AMI, bem como sobre vulnerabilidades de segurança, anúncios de descontinuação e recomendações de patches. Como parte do compromisso de manter a segurança e a up-to-date infraestrutura, a SageMaker IA monitora continuamente todo o HyperPod público em AMIs busca de vulnerabilidades críticas usando fluxos de trabalho de verificação automatizados. Quando problemas críticos de segurança são identificados, eles AMIs são sistematicamente descontinuados com a orientação de migração apropriada. As atualizações regulares incluem status de remediação de vulnerabilidades e exposições comuns (CVE), descobertas de conformidade e ações recomendadas para garantir que você possa manter HyperPod ambientes seguros e, ao mesmo tempo, minimizar as interrupções operacionais durante as transições da AMI.

## SageMaker HyperPod lançamentos públicos da AMI: 04 de agosto de 2025
<a name="sagemaker-hyperpod-release-public-ami-2025-08-04"></a>

A Amazon SageMaker HyperPod agora oferece suporte a novos públicos AMIs para clusters do Amazon EKS. AMIs Isso inclui o seguinte:

------
#### [ K8s v1.32 ]

Nome da AMI: HyperPod EKS 1.32 x86\$164 AMI Amazon Linux 2 2025080407
+ **Componentes do Amazon EKS**
  + Versão do Kubernetes: 1.32.3
  + Versão do Containerd: 1.7.23
  + Versão do Runc: 1.2.6
  + AWS Autenticador IAM: 0.6.29
+ **Amazon SSM Agent:** 3.3.2299.0
+ **Kernel do Linux:** 5.10.238-234.956.amzn2.x86\$164
+ **Driver OSS da NVIDIA:** 550.163.01
+ **NVIDIA CUDA**: 12.2
+ **Instalador do EFA:** 1.38.0
+ **GDRCopy:** 2.4.1
+ **NVIDIA Container Toolkit:** 1.17.8
+ **AWS OFI NCCL: 1.13.0-aws**
+ **Pacotes do 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.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.1.0-1**
  + **aws-neuronx-gpsimd-tools.x86\$164**: 0.17.0.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.1.2.12.2.0-0

------
#### [ K8s v1.30 ]

Nome da AMI: HyperPod EKS 1.30 x86\$164 AMI Amazon Linux 2 2025080407
+ **Componentes do Amazon EKS**
  + Versão do Kubernetes: 1.30.11
  + Versão do Containerd: 1.7.\$1
  + Versão do Runc: 1.2.6
  + AWS Autenticador IAM: 0.6.28
+ **Amazon SSM Agent:** 3.3.2299.0
+ **Kernel do Linux:** 5.10.238-234.956.amzn2.x86\$164
+ **Driver OSS da NVIDIA:** 550.163.01
+ **NVIDIA CUDA**: 12.2
+ **Instalador do EFA:** 1.38.0
+ **GDRCopy:** 2.4.1
+ **NVIDIA Container Toolkit:** 1.17.8
+ **AWS OFI NCCL: 1.13.0-aws**
+ **Pacotes do 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.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.1.0-1**
  + **aws-neuronx-gpsimd-tools.x86\$164**: 0.17.0.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.1.2.12.2.0-0

------
#### [ K8s v1.31 ]

Nome da AMI: HyperPod EKS 1.31 x86\$164 AMI Amazon Linux 2 2025080407
+ **Componentes do Amazon EKS**
  + Versão do Kubernetes: 1.31.7
  + Versão do Containerd: 1.7.\$1
  + Versão do Runc: 1.2.6
  + AWS Autenticador IAM: 0.6.28
+ **Amazon SSM Agent:** 3.3.2299.0
+ **Kernel do Linux:** 5.10.238-234.956.amzn2.x86\$164
+ **Driver OSS da NVIDIA:** 550.163.01
+ **NVIDIA CUDA**: 12.2
+ **Instalador do EFA:** 1.38.0
+ **GDRCopy:** 2.4.1
+ **NVIDIA Container Toolkit:** 1.17.8
+ **AWS OFI NCCL: 1.13.0-aws**
+ **Pacotes do 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.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.1.0-1**
  + **aws-neuronx-gpsimd-tools.x86\$164**: 0.17.0.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.1.2.12.2.0-0

------
#### [ K8s v1.29 ]

Nome da AMI: HyperPod EKS 1.29 x86\$164 AMI Amazon Linux 2 2025080407
+ **Componentes do Amazon EKS**
  + Versão do Kubernetes: 1.29.15
  + Versão do Containerd: 1.7.\$1
  + Versão do Runc: 1.2.6
  + AWS Autenticador IAM: 0.6.28
+ **Amazon SSM Agent:** 3.3.2299.0
+ **Kernel do Linux:** 5.10.238-234.956.amzn2.x86\$164
+ **Driver OSS da NVIDIA:** 550.163.01
+ **NVIDIA CUDA**: 12.2
+ **Instalador do EFA:** 1.38.0
+ **GDRCopy:** 2.4.1
+ **NVIDIA Container Toolkit:** 1.17.8
+ **AWS OFI NCCL: 1.13.0-aws**
+ **Pacotes do 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.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.1.0-1**
  + **aws-neuronx-gpsimd-tools.x86\$164**: 0.17.0.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.1.2.12.2.0-0

------
#### [ K8s v1.28 ]

Nome da AMI: HyperPod EKS 1.28 x86\$164 AMI Amazon Linux 2 2025080407
+ **Componentes do Amazon EKS**
  + Kubernetes versão 1.28.15
  + Versão do Containerd: 1.7.\$1
  + Versão do Runc: 1.2.6
  + AWS Autenticador IAM: 0.6.28
+ **Amazon SSM Agent:** 3.3.2299.0
+ **Kernel do Linux:** 5.10.238-234.956.amzn2.x86\$164
+ **Driver OSS da NVIDIA:** 550.163.01
+ **NVIDIA CUDA**: 12.2
+ **Instalador do EFA:** 1.38.0
+ **GDRCopy:** 2.4.1
+ **NVIDIA Container Toolkit:** 1.17.8
+ **AWS OFI NCCL: 1.13.0-aws**
+ **Pacotes do 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.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.1.0-1**
  + **aws-neuronx-gpsimd-tools.x86\$164**: 0.17.0.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.1.2.12.2.0-0

------

# IA generativa em ambientes de SageMaker notebook
<a name="jupyterai"></a>

O [Jupyter AI](https://github.com/jupyterlab/jupyter-ai) é uma extensão de código aberto de JupyterLab integração de recursos generativos de IA nos notebooks Jupyter. Por meio da interface de chat do Jupyter AI e dos comandos mágicos, os usuários interagem com o código gerado a partir de instruções em linguagem natural, explicam o código existente, fazem perguntas sobre seus arquivos locais, geram cadernos inteiros e muito mais. A extensão conecta os notebooks Jupyter a grandes modelos de linguagem (LLMs) que os usuários podem usar para gerar texto, código ou imagens e fazer perguntas sobre seus próprios dados. O Jupyter AI oferece suporte a fornecedores de modelos generativos AI21, como Anthropic ( AWS e JumpStart Amazon Bedrock), Cohere e OpenAI.

Você também pode usar o Amazon Q Developer como uma solução pronta para uso. Em vez de ter que configurar manualmente uma conexão com um modelo, você pode começar a usar o Amazon Q Developer com uma configuração simplificada. Quando você ativa o Amazon Q Developer, ele se torna o fornecedor de soluções padrão dentro do Jupyter AI. Para obter mais informações sobre como usar o Amazon Q Developer, consulte [SageMaker JupyterLab](studio-updated-jl.md).

O pacote da extensão está incluído na [versão 1.2 e posteriores](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v1) da [Amazon SageMaker Distribution](https://github.com/aws/sagemaker-distribution). O Amazon SageMaker Distribution é um ambiente Docker para ciência de dados e computação científica usado como imagem padrão de instâncias de JupyterLab notebooks. Usuários de diferentes IPython ambientes podem instalar o Jupyter AI manualmente.

Nesta seção, fornecemos uma visão geral dos recursos do Jupyter AI e demonstramos como configurar modelos fornecidos pelo JumpStart Amazon Bedrock [JupyterLab](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-jl.html)ou pelos notebooks [Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio.html) Classic. Para obter informações mais detalhadas sobre o projeto Jupyter AI, consulte sua [documentação](https://jupyter-ai.readthedocs.io/en/latest/). Como alternativa, você pode consultar a publicação no blog *[Generative AI in Jupyter](https://blog.jupyter.org/generative-ai-in-jupyter-3f7174824862)* para obter uma visão geral e exemplos dos principais recursos do Jupyter AI.

Antes de usar o Jupyter AI e interagir com você LLMs, certifique-se de atender aos seguintes pré-requisitos:
+ Para modelos hospedados por AWS, você deve ter o ARN do seu endpoint de SageMaker IA ou ter acesso ao Amazon Bedrock. Para outros fornecedores de modelos, você deve ter a chave de API usada para autenticar e autorizar solicitações para seu modelo. O Jupyter AI oferece apoio a uma ampla variedade de fornecedores de modelos e modelos de linguagem. Consulte a lista de [modelos compatíveis](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#model-providers) para se manter atualizado sobre os modelos mais recentes disponíveis. Para obter informações sobre como implantar um modelo em JumpStart, consulte [Implantar um modelo](https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-deploy.html) na JumpStart documentação. Você precisa solicitar acesso ao [Amazon Bedrock](https://aws.amazon.com/bedrock/) para usá-lo como seu fornecedor de modelos.
+ Certifique-se de que as bibliotecas de IA do Jupyter estejam presentes em seu ambiente. Caso contrário, instale o pacote necessário seguindo as instruções em [Instalação do Jupyter AI](sagemaker-jupyterai-installation.md).
+ Familiarize-se com os recursos do Jupyter AI em [Acesse os atributos do Jupyter AI](sagemaker-jupyterai-overview.md).
+ Configure os modelos de destino que você deseja usar seguindo as instruções em [Configure seu fornecedor de modelo](sagemaker-jupyterai-model-configuration.md).

Depois de concluir as etapas de pré-requisito, vá para [Use o Jupyter AI em nosso Studio JupyterLab Classic](sagemaker-jupyterai-use.md).

**Topics**
+ [Instalação do Jupyter AI](sagemaker-jupyterai-installation.md)
+ [Acesse os atributos do Jupyter AI](sagemaker-jupyterai-overview.md)
+ [Configure seu fornecedor de modelo](sagemaker-jupyterai-model-configuration.md)
+ [Use o Jupyter AI em nosso Studio JupyterLab Classic](sagemaker-jupyterai-use.md)

# Instalação do Jupyter AI
<a name="sagemaker-jupyterai-installation"></a>

Para usar o Jupyter AI, você deve instalar o pacote Jupyter AI. Para usuários do [Amazon SageMaker AI Distribution](https://github.com/aws/sagemaker-distribution/tree/main/build_artifacts/v1), recomendamos selecionar a imagem SageMaker de distribuição versão 1.2 ou posterior. Nenhuma outra instalação é necessária. Os usuários do JupyterLab in Studio podem escolher a versão de sua SageMaker distribuição na Amazon ao criar um espaço.

Para usuários de outros IPython ambientes, a versão do pacote Jupyter AI recomendado depende da versão JupyterLab que eles estão usando.

A distribuição do Jupyter AI consiste em dois pacotes.
+ `jupyter_ai`: Este pacote fornece uma JupyterLab extensão e uma interface de usuário (UI) nativa de bate-papo. Ele atua como um assistente de conversação usando o grande modelo de linguagem de sua escolha.
+ `jupyter_ai_magics`: Este pacote fornece os comandos IPython `%%ai` `%ai` mágicos com os quais você pode invocar um modelo de linguagem grande (LLM) a partir das células do seu notebook.

**nota**  
A instalação do `jupyter_ai` também instala o `jupyter_ai_magics`. No entanto, você pode instalar de `jupyter_ai_magics` forma independente sem JupyterLab ou`jupyter_ai`. Os comandos `%%ai` mágicos `%ai` funcionam em qualquer ambiente de IPython kernel. Se você só instalar o `jupyter_ai_magics`, não poderá usar a interface de usuário de chat.

Para usuários de JupyterLab 3, em particular usuários do Studio Classic, recomendamos instalar a `jupyter-ai` [versão 1.5.x](https://pypi.org/project/jupyter-ai/#history) ou qualquer versão 1.x posterior. No entanto, é altamente recomendável usar o Jupyter AI com JupyterLab 4. A `jupyter-ai` versão compatível com JupyterLab 3 pode não permitir que os usuários definam parâmetros adicionais do modelo, como temperatura, amostragem top-k e top-p, tokens ou comprimento máximo ou contratos de licença de aceitação do usuário.

Para usuários de JupyterLab 4 ambientes que não usam SageMaker Distribuição, recomendamos instalar a `jupyter-ai` [versão 2.5.x](https://pypi.org/project/jupyter-ai/#history) ou qualquer versão 2.x posterior.

Consulte as instruções de instalação na seção de *Instalação* da [documentação do Jupyter AI](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#installation-via-pip).

# Acesse os atributos do Jupyter AI
<a name="sagemaker-jupyterai-overview"></a>

Você pode acessar os recursos do Jupyter AI de duas maneiras distintas: usando a interface de usuário de chat ou usando comandos mágicos dentro dos cadernos.

## A partir da interface de usuário de chat do assistente de IA
<a name="sagemaker-jupyterai-overview-chatui"></a>

A interface de chat conecta você ao Jupyternaut, um agente conversacional que usa o modelo de linguagem de sua escolha. 

Depois de iniciar um JupyterLab aplicativo instalado com o Jupyter AI, você pode acessar a interface de bate-papo escolhendo o ícone de bate-papo (![\[Icon of a rectangular shape with a curved arrow pointing to the upper right corner.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/jupyterai/jupyterai-chat-ui.png)) no painel de navegação esquerdo. Novos usuários são solicitados a configurar seu modelo. Para obter as instruções de configuração, consulte [Configure seu fornecedor de modelo na interface de usuário de chat](sagemaker-jupyterai-model-configuration.md#sagemaker-jupyterai-model-configuration-chatui).

**Com a interface de usuário de chat, você pode:**
+ **Responder perguntas**: por exemplo, você pode pedir ao Jupyternaut para criar uma função Python que adicione arquivos CSV a um bucket do Amazon S3. Posteriormente, você pode refinar sua resposta com uma pergunta complementar, como adicionar um parâmetro à função para escolher o caminho em que os arquivos são gravados. 
+ **Interaja com arquivos em JupyterLab**: Você pode incluir uma parte do seu caderno em seu prompt selecionando-a. Em seguida, você pode substituí-la pela resposta sugerida pelo modelo ou copiar manualmente a resposta para a área de transferência.
+ **Gerar cadernos inteiros** a partir de prompts: ao iniciar o prompt com `/generate`, você aciona um processo de geração de caderno em segundo plano sem interromper o uso do Jupyternaut. Uma mensagem contendo o link para o novo arquivo é exibida após a conclusão do processo.
+ **Aprender e fazer perguntas sobre arquivos locais**: usando o comando `/learn`, você pode ensinar um modelo de incorporação de sua escolha sobre arquivos locais e, em seguida, fazer perguntas sobre esses arquivos usando o comando `/ask`. O Jupyter AI armazena o conteúdo incorporado em um [banco de dados de vetores FAISS](https://github.com/facebookresearch/faiss) local e, em seguida, usa a geração aumentada via recuperação (RAG) para fornecer respostas com base no que aprendeu. Para apagar todas as informações aprendidas anteriormente do seu modelo de incorporação, use `/learn -d`.

**nota**  
O Amazon Q Developer não tem a capacidade de gerar cadernos do zero.

Para obter uma lista completa dos atributos e instruções detalhadas sobre seu uso, consulte a documentação da [interface de chat do Jupyter AI](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#the-chat-interface). Para saber como configurar o acesso a um modelo no Jupyternaut, consulte [Configure seu fornecedor de modelo na interface de usuário de chat](sagemaker-jupyterai-model-configuration.md#sagemaker-jupyterai-model-configuration-chatui).

## A partir de células do caderno
<a name="sagemaker-jupyterai-overview-magic-commands"></a>

Usando comandos `%%ai` `%ai` mágicos, você pode interagir com o modelo de linguagem de sua escolha a partir das células do notebook ou de qualquer interface de linha de IPython comando. O comando `%%ai` aplica suas instruções à célula inteira, enquanto o `%ai` aplica à linha específica.

O exemplo a seguir ilustra um comando mágico `%%ai` que invoca um modelo Anthropic Claude para gerar um arquivo HTML contendo a imagem de um quadrado branco com bordas pretas.

```
%%ai anthropic:claude-v1.2 -f html
Create a square using SVG with a black border and white fill.
```

Para saber mais sobre a sintaxe de cada comando, use `%ai help`. Para listar os fornecedores e modelos compatíveis com a extensão, execute `%ai list`.

Para obter uma lista completa de atributos e instruções detalhadas sobre seu uso, consulte a documentação dos [comandos mágicos](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#the-ai-and-ai-magic-commands) do Jupyter AI. Em particular, você pode personalizar o formato de saída do seu modelo usando o parâmetro `-f` ou `--format`, permitir a interpolação de variáveis em prompts, incluindo as variáveis especiais `In` e `Out`, e muito mais.

Para saber como configurar o acesso a um modelo, consulte [Configure seu fornecedor de modelos em um caderno](sagemaker-jupyterai-model-configuration.md#sagemaker-jupyterai-model-configuration-magic-commands). 

# Configure seu fornecedor de modelo
<a name="sagemaker-jupyterai-model-configuration"></a>

**nota**  
Nesta seção, presumimos que a linguagem e os modelos de incorporação que você planeja usar já estejam implantados. Para modelos fornecidos pela AWS, você já deve ter o ARN do seu endpoint de SageMaker IA ou acesso ao Amazon Bedrock. Para outros fornecedores de modelos, você deve ter a chave de API usada para autenticar e autorizar solicitações para seu modelo.  
O Jupyter AI oferece apoio a uma ampla variedade de fornecedores de modelos e modelos de linguagem. Consulte a lista de [modelos compatíveis](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#model-providers) para se manter atualizado sobre os modelos mais recentes disponíveis. Para obter informações sobre como implantar um modelo fornecido pela JumpStart, consulte [Implantar um modelo](https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-deploy.html) na JumpStart documentação. Você precisa solicitar acesso ao [Amazon Bedrock](https://aws.amazon.com/bedrock/) para usá-lo como seu fornecedor de modelos.

A configuração do Jupyter AI varia dependendo se você está usando a interface de usuário de chat ou comandos mágicos.

## Configure seu fornecedor de modelo na interface de usuário de chat
<a name="sagemaker-jupyterai-model-configuration-chatui"></a>

**nota**  
Você pode configurar vários modelos LLMs e incorporá-los seguindo as mesmas instruções. No entanto, você deve configurar pelo menos um **modelo de linguagem**.

**Para configurar sua interface de usuário de chat**

1. Em JupyterLab, acesse a interface de bate-papo escolhendo o ícone de bate-papo (![\[Icon of a rectangular shape with a curved arrow pointing to the upper right corner.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/jupyterai/jupyterai-chat-ui.png)) no painel de navegação esquerdo.

1. Selecione o ícone de configuração (![\[Gear or cog icon representing settings or configuration options.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/jupyterai/jupyterai-configure-models.png)) no canto superior direito do painel esquerdo. Isso abrirá o painel de configuração do Jupyter AI.

1. Preencha os campos relacionados ao seu fornecedor de serviços.
   + **Para modelos fornecidos pela JumpStart Amazon Bedrock**
     + Na lista suspensa do **modelo de linguagem**, selecione modelos implantados com JumpStart ou `sagemaker-endpoint` `bedrock` para modelos gerenciados pelo Amazon Bedrock.
     + Os parâmetros diferem com base no fato de seu modelo ser implantado no SageMaker AI ou no Amazon Bedrock.
       + Para modelos implantados com JumpStart:
         + [**Insira o nome do seu endpoint em Nome do **endpoint e, em seguida, o nome** Região da AWS no qual seu modelo está implantado em Nome da região.**](sagemaker-jupyterai-use.md#sagemaker-jupyterai-region-name) Para recuperar o ARN dos endpoints de SageMaker IA, navegue [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/) até e **escolha** Inferência **e** endpoints no menu à esquerda.
         + Cole o JSON do [**Esquema de solicitação**](sagemaker-jupyterai-use.md#sagemaker-jupyterai-request-schema) personalizado para seu modelo e o [**Caminho de resposta**](sagemaker-jupyterai-use.md#sagemaker-jupyterai-response-path) correspondente para analisar a saída do modelo.
**nota**  
Você pode encontrar o formato de solicitação e resposta de vários modelos de JumpStart fundação nos seguintes [exemplos de cadernos](https://github.com/aws/amazon-sagemaker-examples/tree/main/introduction_to_amazon_algorithms/jumpstart-foundation-models). Cada caderno tem o nome do modelo que ele demonstra.
       + [**Para modelos gerenciados pelo Amazon Bedrock: adicione o AWS perfil que armazena suas AWS credenciais em seu sistema (opcional) e, em seguida, o perfil Região da AWS no qual seu modelo está implantado no nome da região.**](sagemaker-jupyterai-use.md#sagemaker-jupyterai-region-name)
     + (Opcional) Selecione um [modelo de incorporação](sagemaker-jupyterai-overview.md#sagemaker-jupyterai-embedding-model) ao qual você tenha acesso. Os modelos de incorporação são usados para capturar informações adicionais de documentos locais, permitindo que o modelo de geração de texto responda às perguntas dentro do contexto desses documentos.
     + Selecione **Salvar alterações** e navegue até o ícone de seta para a esquerda (![\[Left-pointing arrow icon, typically used for navigation or returning to a previous page.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/jupyterai/jupyterai-return-to-chat.png)) no canto superior esquerdo do painel esquerdo. Isso abrirá a interface de usuário de chat do Jupyter AI. Você pode começar a interagir com seu modelo.
   + **Para modelos hospedados por fornecedores terceirizados**
     + Na lista suspensa do **modelo de idioma**, selecione seu ID de fornecedor. Você pode encontrar os detalhes de cada fornecedor, incluindo seu ID, na [lista de fornecedores de modelos](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#model-providers) do Jupyter AI.
     + (Opcional) Selecione um [modelo de incorporação](sagemaker-jupyterai-overview.md#sagemaker-jupyterai-embedding-model) ao qual você tenha acesso. Os modelos de incorporação são usados para capturar informações adicionais de documentos locais, permitindo que o modelo de geração de texto responda às perguntas dentro do contexto desses documentos.
     + Insira as chaves de API dos seus modelos.
     + Selecione **Salvar alterações** e navegue até o ícone de seta para a esquerda (![\[Left-pointing arrow icon, typically used for navigation or returning to a previous page.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/jupyterai/jupyterai-return-to-chat.png)) no canto superior esquerdo do painel esquerdo. Isso abrirá a interface de usuário de chat do Jupyter AI. Você pode começar a interagir com seu modelo.

O instantâneo a seguir é uma ilustração do painel de configuração da interface do usuário do chat definido para invocar um modelo FLAN-T5-small fornecido e implantado na IA. JumpStart SageMaker 

![\[Painel de configuração da interface do usuário do Chat configurado para invocar um modelo FLAN-T5-small fornecido por. JumpStart\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/jupyterai/jupyterai-chatui-configuration.png)


### Passe parâmetros extras do modelo e parâmetros personalizados para sua solicitação
<a name="sagemaker-jupyterai-configuration-model-parameters"></a>

Seu modelo pode precisar de parâmetros extras, como um atributo personalizado para aprovação do contrato do usuário ou ajustes em outros parâmetros do modelo, como temperatura ou duração da resposta. Recomendamos definir essas configurações como uma opção de inicialização do seu JupyterLab aplicativo usando uma configuração de ciclo de vida. Para obter informações sobre como criar uma configuração de ciclo de vida e anexá-la ao seu domínio ou a um perfil de usuário do [console de SageMaker IA](https://console.aws.amazon.com/sagemaker/), consulte [Criar e associar uma configuração de ciclo de vida](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-lcc.html). Você pode escolher seu script de LCC ao criar um espaço para seu JupyterLab aplicativo.

Use o seguinte esquema JSON para configurar seus [parâmetros extras](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.}
      }
    }
  }
}
```

O script a seguir é um exemplo de um arquivo de configuração JSON que você pode usar ao criar uma LCC de JupyterLab aplicativo para definir o tamanho máximo de um [modelo do AI21 Labs Jurassic-2 implantado](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-jurassic2.html) no Amazon Bedrock. Aumentar o comprimento da resposta gerada pelo modelo pode evitar o truncamento sistemático da resposta do seu modelo.

```
#!/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
```

O script a seguir é um exemplo de um arquivo de configuração JSON para criar um JupyterLab aplicativo LCC usado para definir parâmetros de modelo adicionais para um modelo [Anthropic Claude implantado](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-claude.html) no 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
```

Depois de anexar sua LCC ao seu domínio ou perfil de usuário, adicione-a ao seu espaço ao iniciar seu JupyterLab aplicativo. Para garantir que seu arquivo de configuração seja atualizado pela LCC, execute `more ~/.jupyter/jupyter_jupyter_ai_config.json` em um terminal. O conteúdo do arquivo deve corresponder ao conteúdo do arquivo JSON passado para a LCC.

## Configure seu fornecedor de modelos em um caderno
<a name="sagemaker-jupyterai-model-configuration-magic-commands"></a>

**Para invocar um modelo via Jupyter AI em JupyterLab notebooks Studio Classic usando os comandos mágicos e. `%%ai` `%ai`**

1. Instale as bibliotecas de cliente específicas do seu fornecedor de modelos no ambiente de caderno. Por exemplo, ao usar modelos OpenAI, você precisa instalar a biblioteca de cliente do `openai`. Você pode encontrar a lista das bibliotecas de cliente necessárias por fornecedor na coluna de *pacotes Python* da [lista de fornecedores](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#model-providers) do Jupyter AI.
**nota**  
Para modelos hospedados por AWS, já `boto3` está instalado na imagem de distribuição de SageMaker IA usada por JupyterLab, ou em qualquer imagem de ciência de dados usada com o Studio Classic.

1. 
   + **Para modelos hospedados por AWS**

     Certifique-se de que sua função de execução tenha a permissão para invocar seu endpoint de SageMaker IA para modelos fornecidos JumpStart ou que você tenha acesso ao Amazon Bedrock.
   + **Para modelos hospedados por fornecedores terceirizados**

     Exporte a chave de API do seu fornecedor no ambiente de caderno usando variáveis de ambiente. É possível usar o seguinte comando mágico: Substitua a `provider_API_key` no comando pela variável de ambiente encontrada na coluna *Variável de ambiente* da [lista de fornecedores](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#model-providers) do Jupyter AI Model para seu fornecedor.

     ```
     %env provider_API_key=your_API_key
     ```

# Use o Jupyter AI em nosso Studio JupyterLab Classic
<a name="sagemaker-jupyterai-use"></a>

Você pode usar o Jupyter AI no JupyterLab Studio Classic invocando modelos de linguagem da interface do usuário do chat ou das células do notebook. As seções a seguir fornecem informações sobre as etapas necessárias para concluir isso.

## Use modelos de linguagem da interface de usuário de chat
<a name="sagemaker-jupyterai-use-chatui"></a>

Escreva sua mensagem na caixa de texto da interface de usuário de chat para começar a interagir com seu modelo. Para limpar o histórico de mensagens, use o comando `/clear`.

**nota**  
Limpar o histórico de mensagens não apaga o contexto do chat com o fornecedor do modelo.

## Use modelos de linguagem de células de caderno
<a name="sagemaker-jupyterai-use-magic-commands"></a>

Antes de usar os `%ai` comandos `%%ai` e para invocar um modelo de linguagem, carregue a IPython extensão executando o seguinte comando em uma célula do notebook Studio Classic JupyterLab ou Studio Classic.

```
%load_ext jupyter_ai_magics
```
+ **Para modelos hospedados por AWS:**
  + Para invocar um modelo implantado na SageMaker IA, passe a string `sagemaker-endpoint:endpoint-name` para o comando `%%ai` mágico com os parâmetros necessários abaixo e adicione seu prompt nas linhas a seguir.

    A tabela a seguir lista os parâmetros obrigatórios e opcionais ao invocar modelos hospedados pelo SageMaker AI ou pelo Amazon Bedrock.<a name="sagemaker-jupyterai-jumpstart-inference-params"></a>    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/sagemaker-jupyterai-use.html)

    O comando a seguir invoca um modelo [LLama2-7b hospedado pela IA](https://sagemaker.readthedocs.io/en/stable/doc_utils/pretrainedmodels.html). 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 =>
    ```

    O exemplo a seguir invoca um modelo FLAN-T5-small hospedado pela IA. 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?
    ```
  + Para invocar um modelo implantado no Amazon Bedrock, passe a string `bedrock:model-name` para o comando `%%ai` mágico com qualquer parâmetro opcional definido na lista de [parâmetros para invocar modelos hospedados pelo ou JumpStart Amazon Bedrock](#sagemaker-jupyterai-jumpstart-inference-params) e, em seguida, adicione seu prompt nas linhas a seguir.

    O exemplo a seguir invoca um [modelo AI21 Labs Jurassic-2 hospedado](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-jurassic2.html) pelo Amazon Bedrock.

    ```
    %%ai bedrock:ai21.j2-mid-v1 -m {"model_kwargs":{"maxTokens":256}} -f code
    Write a function in python implementing a bubbble sort.
    ```
+ **Para modelos hospedados por fornecedores terceirizados**

  Para invocar um modelo hospedado por fornecedores terceirizados, passe a string `provider-id:model-name` para o comando mágico `%%ai` com um [`Output format`](#sagemaker-jupyterai-output-format-params) opcional e adicione o prompt nas linhas a seguir. Você pode encontrar os detalhes de cada fornecedor, incluindo seu ID, na [lista de fornecedores de modelos](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#model-providers) do Jupyter AI.

  O comando a seguir solicita que um modelo Anthropic Claude gere um arquivo HTML contendo a imagem de um quadrado branco com bordas pretas.

  ```
  %%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>

O Amazon Q Developer é um assistente conversacional de IA generativa que ajuda você a escrever código de maneira mais eficiente. O Amazon Q Developer está disponível nas seguintes opções IDEs no Amazon SageMaker Studio:
+ JupyterLab
+ Editor de Código, baseado em Code-OSS, Visual Studio Code - código aberto

Use as seções apresentadas a seguir para configurar o Amazon Q Developer e usá-lo em seu ambiente.

**Topics**
+ [Configurar o Amazon Q Developer para seus usuários](studio-updated-amazon-q-admin-guide-set-up.md)
+ [Use o Amazon Q para agilizar seus fluxos de trabalho de Machine Learning](studio-updated-user-guide-use-amazon-q.md)
+ [Personalize o Amazon Q Developer nos aplicativos do Amazon SageMaker Studio](q-customizations.md)

# Configurar o Amazon Q Developer para seus usuários
<a name="studio-updated-amazon-q-admin-guide-set-up"></a>

O Amazon Q Developer é um assistente conversacional de IA generativa. Você pode configurar o Amazon Q Developer em um novo domínio ou em um domínio existente. Use as informações a seguir para configurar o Amazon Q Developer.

Com o Amazon Q Developer, seus usuários podem:
+ Receba step-by-step orientações sobre como usar os recursos de SageMaker IA de forma independente ou em combinação com outros AWS serviços.
+ Obtenha um código de amostra para começar suas tarefas de ML, como preparação de dados, treinamento, inferência e. MLOps
+ Receber assistência na solução de problemas para depurar e resolver erros encontrados durante a execução do código.

**nota**  
O Amazon Q Developer in Studio não usa o conteúdo do usuário para melhorar o serviço, independentemente de você usar a assinatura gratuita ou profissional. Para compartilhamento de telemetria em nível de IDE, o Amazon Q pode rastrear o uso de seus usuários, como o número de perguntas feitas e se as recomendações foram aceitas ou rejeitadas. Esses dados de telemetria não incluem informações de identificação pessoal, como o endereço IP dos usuários. Para mais informações sobre proteção de dados e instruções para não participar, consulte [Optar por não compartilhar dados no IDE](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/opt-out-IDE.html).

Você pode configurar o Amazon Q Developer com uma assinatura de nível Pro ou Gratuito. O nível Pro é um serviço de assinatura paga com limites de uso mais altos e outros atributos. Para mais informações sobre as diferenças entre os níveis, consulte [Compreender os níveis de serviço para o Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/q-tiers.html).

Para informações sobre a assinatura do Amazon Q Developer Pro, consulte [Assinatura do Amazon Q Developer Pro](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/q-admin-setup-subscribe-general.html).

## Configure as instruções para o nível gratuito do Amazon Q Developer:
<a name="studio-updated-amazon-q-developer-free-tier-set-up"></a>

Para configurar o nível gratuito do Amazon Q Developer, use o seguinte procedimento:

**Para configurar o nível gratuito do Amazon Q Developer**

1. Adicione a política a seguir à função do IAM que você usou para criar seu espaço JupyterLab ou o Code Editor de Código:

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

****  

   ```
   {
   	"Version":"2012-10-17",		 	 	 
   	"Statement": [
   		{
   			"Effect": "Allow",
   			"Action": [
   				"q:SendMessage"
   			],
   			"Resource": [
   				"*"
   			]
   		},
   		{
   			"Sid": "AmazonQDeveloperPermissions",
   			"Effect": "Allow",
   			"Action": [
   				"codewhisperer:GenerateRecommendations"
   			],
   			"Resource": "*"
   		}
   	]
   }
   ```

------

1. Navegue até o Amazon SageMaker Studio.

1. Abra seu espaço JupyterLab ou o do Code Editor.

1. Navegue até o **Iniciador** e escolha **Terminal**.

1. Em JupyterLab, faça o seguinte:

   1. Especifique `restart-jupyter-server`.

   1. Reinicie seu navegador e volte para o Amazon SageMaker Studio.

## Configure as instruções para o nível Amazon Q Developer Pro:
<a name="studio-updated-amazon-q-developer-pro-set-up"></a>

**Pré-requisitos**  
Para configurar o Amazon Q Pro, você deve ter:  
Um domínio Amazon SageMaker AI configurado para sua organização com o IAM Identity Center configurado como meio de acesso.
Uma assinatura do Amazon Q Developer Pro.

Se você estiver atualizando um domínio que você já configurou para sua organização, você precisa atualizá-lo para usar o Amazon Q Developer. Você pode usar o Console de gerenciamento da AWS ou o AWS Command Line Interface para atualizar um domínio.

Você deve usar o ARN do seu perfil Amazon Q Developer. Você pode encontrar o ARN do perfil Q na página de [Configurações do Desenvolvedor Q](https://console.aws.amazon.com/amazonq/developer/settings).

Você pode usar o AWS Command Line Interface comando a seguir para atualizar seu domínio:

```
aws --region Região da AWS sagemaker update-domain --domain-id domain-id --domain-settings-for-update "AmazonQSettings={Status=ENABLED,QProfileArn=Q-Profile-ARN}"           
```

Você também pode usar o procedimento a seguir para atualizar o domínio no Console de gerenciamento da AWS.

1. Navegue até o console do [Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker).

1. Escolha Domínios.

1. Selecione **Configurações da aplicação**.

1. Para **Amazon Q Developer for SageMaker AI Applications**, escolha **Editar**.

1. Selecione **Ativar Amazon Q Developer neste domínio**.

1. Forneça o ARN do perfil Q.

1. Selecione **Enviar**.

Você deve usar o ARN do seu perfil Amazon Q Developer. Você pode encontrar o ARN do perfil Q na página de **detalhes da conta Amazon Q** do console do [Amazon Q Developer](https://console.aws.amazon.com/amazonq/developer).

A **Configuração para organizações** é uma configuração avançada para o domínio Amazon SageMaker AI que permite que você use o IAM Identity Center. Para informações sobre como configurar o domínio e sobre como configurar o IAM Identity Center, consulte [Use a configuração personalizada para Amazon SageMaker AI](onboard-custom.md).

Ao configurar o Amazon Q Developer em um novo domínio, você pode usar o AWS Command Line Interface comando Console de gerenciamento da AWS ou o seguinte em sua máquina local:

```
                    
aws --region Região da 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
```

Você pode usar o seguinte AWS CLI comando para desativar o Amazon Q Developer:

```
aws --region Região da AWS sagemaker update-domain --domain-id domain-id --domain-settings-for-update "AmazonQSettings={Status=DISABLED,QProfileArn=Q-Profile-ARN}"           
```

Recomendamos o uso da versão mais recente da AWS Command Line Interface. Para obter informações sobre como atualizar o AWS CLI, consulte [Instalar ou atualizar para a versão mais recente do AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

Se você precisar estabelecer uma conexão entre o Amazon Q Developer e sua VPC, consulte [Criação de uma interface endpoint da VPC](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/vpc-interface-endpoints.html#vpc-endpoint-create) para o Amazon Q.

**nota**  
O Amazon Q Developer tem as seguintes limitações:  
Não é compatível com espaços compartilhados.
O Amazon Q Developer detecta se uma sugestão de código pode ser muito semelhante ao código disponível ao público. O rastreador de referência pode sinalizar sugestões com repositório URLs e licenças, ou filtrá-las. Isso permite que você revise o código referenciado e seu uso antes de adotá-lo. Todas as referências são registradas para você revisar posteriormente para garantir que seu fluxo de código não seja perturbado e que você possa continuar codificando sem interrupção.  
Para obter mais informações sobre referências de código, consulte [Uso de referências de código - 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).
O Amazon Q processa todos os dados de interação do usuário na Região da AWS Leste dos EUA (Norte da Virgínia). Para mais informações sobre como o Amazon Q processa dados e quais Regiões da AWS ele é compatível, consulte [Regiões compatíveis com Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/regions.html).
O Amazon Q só funciona no Amazon SageMaker Studio. Não é compatível com o Amazon SageMaker Studio Classic.
Em JupyterLab, o Amazon Q funciona com o SageMaker AI Distribution Images versão 2.0 e superior. No Code Editor, o Amazon Q funciona com o SageMaker AI Distribution Images versão 2.2.1 e superior.
O Amazon Q Developer JupyterLab funciona dentro da extensão Jupyter AI. Você não pode usar outros modelos 3P dentro da extensão enquanto estiver usando o Amazon Q.

## Personalizações do Amazon Q em Amazon SageMaker AI
<a name="q-customizations-in-sagemaker"></a>

Se você usa o Amazon Q Developer Pro, é possível criar *personalizações*. Com personalizações, o Amazon Q Developer fornece sugestões com base na base de código da sua empresa. Se você criar personalizações no Amazon Q Developer, elas ficam disponíveis para você usar no editor de código JupyterLab e no Amazon SageMaker Studio. Para ter mais informações sobre a configuração de personalizações, consulte [Customizing suggestions](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/customizations.html) no *Guia do usuário do Amazon Q Developer*.

# Use o Amazon Q para agilizar seus fluxos de trabalho de Machine Learning
<a name="studio-updated-user-guide-use-amazon-q"></a>

O Amazon Q Developer é seu companheiro baseado em IA para o desenvolvimento de machine learning. Com o Amazon Q Developer, você pode:
+ Receba step-by-step orientações sobre como usar os recursos de SageMaker IA de forma independente ou em combinação com outros AWS serviços.
+ Obtenha um código de amostra para começar suas tarefas de ML, como preparação de dados, treinamento, inferência e. MLOps

 Para usar o Amazon Q Developer, escolha o **Q** na navegação à esquerda do seu ambiente JupyterLab ou do Code Editor.

Se você não vê o ícone **Q**, seu administrador precisa configurá-lo para você. Para mais informações sobre a configuração do Amazon Q Developer, consulte [Configurar o Amazon Q Developer para seus usuários](studio-updated-amazon-q-admin-guide-set-up.md).

O Amazon Q fornece sugestões automaticamente para ajudar você a escrever seu código. Você também pode pedir sugestões por meio da interface de bate-papo.

# Personalize o Amazon Q Developer nos aplicativos do Amazon SageMaker Studio
<a name="q-customizations"></a>

Você pode personalizar o Amazon Q Developer nos aplicativos JupyterLab e Code Editor no Amazon SageMaker Studio. Quando você personaliza o Q Developer, ele fornece sugestões e respostas com base em exemplos da sua base de código. Se você usa o Amazon Q Developer Pro, é possível carregar todas as personalizações que você criou com esse serviço. 

## Personalize em JupyterLab
<a name="q-customizations-jupyterlab"></a>

Em JupyterLab, você pode carregar todas as personalizações que você criou com o Amazon Q Developer Pro. Ou, no seu JupyterLab espaço, você pode personalizar o Q Developer localmente com os arquivos que você carrega para o espaço.

### Como usar personalizações que você criou no Amazon Q Developer Pro
<a name="use-q-customizations-jupyterlab"></a>

Quando você carrega uma personalização, o Q Developer oferece sugestões com base na base de código que você usou para criar a personalização. Além disso, ao usar o chat no painel do **Amazon Q**, você interage com sua personalização.

Para ter mais informações sobre a configuração de personalizações, consulte [Customizing suggestions](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/customizations.html) no *Guia do usuário do Amazon Q Developer*.

**Como carregar sua personalização**

Abra seu JupyterLab espaço e conclua as etapas a seguir.

1. Na barra de status na parte inferior JupyterLab, escolha **Amazon Q.** Um menu é aberto.

1. No menu, escolha **Outros recursos**. A guia **Recursos do Amazon Q** é aberta na área de trabalho principal.

1. Na guia **Recursos do Amazon Q**, em **Selecionar personalização**, escolha sua personalização do Q Developer.

1. Interaja com sua personalização de uma das seguintes formas:
   + Crie um caderno e escreva código nele. Ao fazer isso, o Q Developer fornece automaticamente sugestões personalizadas em linha com base na sua personalização.
   + Converse por chat com um desenvolvedor no painel do **Amazon Q** seguindo estas etapas:

     1. Na barra lateral esquerda JupyterLab, escolha o ícone do **Jupyter AI Chat**. O painel **Amazon Q** será aberto.

     1. Use a caixa de chat **Pergunte ao Amazon Q** para interagir com sua personalização.

### Para personalizar o Amazon Q Developer com arquivos em seu JupyterLab espaço
<a name="customize-q-in-jupyterlab"></a>

Em JupyterLab, você pode personalizar o Q Developer com arquivos que você carrega para o seu espaço. Em seguida, no chat do painel do **Amazon Q**, você pode usar um comando para perguntar ao Q Developer sobre esses arquivos.

Quando você personaliza o Q Developer com arquivos em seu espaço, a personalização permanece somente em seu espaço. Não é possível carregar a personalização em outro lugar, como em outros espaços ou no console do Amazon Q Developer.

Você pode personalizar o Q Developer com arquivos JupyterLab se usar o Amazon Q Developer Pro ou o Amazon Q Developer no nível gratuito.

**Como personalizar com seus arquivos**

Abra seu JupyterLab espaço e conclua as etapas a seguir.

1. Verifique se seu espaço está configurado com o modelo de incorporação necessário. Você pode personalizar o Q Developer JupyterLab somente se usar o modelo de incorporação padrão, que é **CodeSage :: codesage-small**. Para verificar, faça o seguinte;

   1. Na barra lateral esquerda JupyterLab, escolha o ícone do **Jupyter AI Chat**. O painel **Amazon Q** será aberto.

   1. Escolha o ícone de configurações no canto superior direito do painel.

   1. **Para **Modelo de incorporação**, se necessário, escolha **CodeSage :: codesage-small** e escolha Salvar alterações.**

   1. No canto superior direito do painel, escolha o ícone para voltar. 

1. Para fazer upload de arquivos com os quais você deseja personalizar o Q Developer, no painel **Navegador de arquivos**, escolha o ícone de **upload de arquivos**.

1. Depois de carregar os arquivos, na caixa de chat **Pergunte ao Amazon Q**, digite `/learn file path/`. Substitua o caminho do *arquivo/* pelo caminho dos seus arquivos em seu JupyterLab espaço. Quando o Amazon Q termina de processar seus arquivos, ele confirma com uma mensagem de chat no painel do Amazon Q.

1. Para fazer uma pergunta ao Q Developer sobre seus arquivos, digite `/ask` na caixa de chat e siga o comando com sua pergunta. O Amazon Q gera uma resposta com base em seus arquivos e responde no chat.

Para ter mais informações sobre os comandos `/learn` e `/ask` (p. ex., os respectivos argumentos e opções compatíveis), consulte [Learning about local data](https://jupyter-ai.readthedocs.io/en/latest/users/index.html#learning-about-local-data) na documentação do usuário do Jupyter AI. Essa página explica como usar os comandos com o chatbot Jupyternaut AI. JupyterLabno Amazon SageMaker Studio suporta a mesma sintaxe de comando.

## Personalizar no Editor de Código
<a name="q-customizations-code-editor"></a>

Se você criou uma personalização no Amazon Q Developer Pro, é possível carregá-la no Editor de Código. Desse modo, quando o Q Developer oferece sugestões para seu código, ele utiliza como referência a base de código que você usou para criar a personalização. Além disso, ao usar o chat no painel do **Amazon Q: chat**, você interage com sua personalização.

**Como usar personalizações que você criou no Amazon Q Developer Pro**

Abra seu espaço no Editor de Código e conclua as etapas a seguir.

1. No menu “Editor de código”, escolha **Visualizar** e selecione **Paleta de comandos**.

1. Na paleta de comandos, comece a digitar **>Amazon Q: Select Customization** e escolha essa opção na lista filtrada de comandos quando ela aparecer. A paleta de comandos mostra suas personalizações do Q Developer.

1. Escolha sua personalização.

1. Interaja com sua personalização de uma das seguintes formas:
   + Crie um arquivo Python ou um caderno Jupyter e escreva código nele. Ao fazer isso, o Q Developer fornece automaticamente sugestões personalizadas em linha com base na sua personalização.
   + Converse por chat com um desenvolvedor no painel do **Amazon Q** seguindo estas etapas:

     1. Na barra lateral esquerda do Editor de Código, escolha o ícone do **Amazon Q**. O painel **Amazon Q: chat** é aberto.

     1. Use a caixa de chat para interagir com sua personalização.

Para ter mais informações sobre os recursos do Q Developer, consulte [Using Amazon Q Developer in the IDE](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/q-in-IDE.html) no *Guia do usuário do Amazon Q Developer*.

# Visão geral dos aplicativos Amazon SageMaker Partner AI
<a name="partner-apps"></a>

Com o Amazon SageMaker Partner AI Apps, os usuários têm acesso a aplicativos generativos de desenvolvimento de IA e aprendizado de máquina (ML) criados, publicados e distribuídos pelos principais fornecedores de aplicativos do setor. Os aplicativos de IA de parceiros são certificados para serem executados em SageMaker IA. Com os aplicativos de IA para parceiros, os usuários podem acelerar e melhorar a forma como criam soluções com base em modelos de base (FM) e modelos clássicos de ML, sem comprometer a segurança de seus dados sensíveis. Os dados permanecem completamente de acordo com a configuração de segurança confiável dos usuários e nunca são compartilhados com terceiros.  

## Como funciona
<a name="partner-apps-how-works"></a>

Os aplicativos de IA para parceiros são pilhas completas de aplicativos que incluem um cluster do Amazon Elastic Kubernetes Service e uma variedade de serviços complementares, como Application Load Balancer, Amazon Relational Database Service, buckets do Amazon Simple Storage Service, filas do Amazon Simple Queue Service e caches do Redis. 

Esses aplicativos de serviço podem ser compartilhados entre todos os usuários em um domínio de SageMaker IA e são provisionados por um administrador. Depois de provisionar o aplicativo comprando uma assinatura por meio do AWS Marketplace, o administrador pode conceder aos usuários no domínio de SageMaker IA permissões para acessar o aplicativo Partner AI diretamente do Amazon Studio, Amazon SageMaker Unified SageMaker Studio (versão prévia) ou usando uma URL pré-assinada. Para ter informações sobre como iniciar um aplicativo no Studio, consulte [Inicie o Amazon SageMaker Studio](studio-updated-launch.md). 

O recurso Aplicativos de IA para Parceiros oferece os benefícios a seguir para administradores e usuários.  
+  Os administradores usam o console de SageMaker IA para navegar, descobrir, selecionar e provisionar os Partner AI Apps para uso por suas equipes de ciência de dados e ML. Depois que os aplicativos de IA do parceiro são implantados, a SageMaker IA os executa em serviços Contas da AWS gerenciados. Isso reduz significativamente os custos operacionais indiretos associados à criação e operação desses aplicativos e contribui para a segurança e a privacidade de dados dos clientes. 
+  Cientistas de dados e desenvolvedores de ML podem acessar os Partner AI Apps de dentro de seu ambiente de desenvolvimento de ML no Amazon SageMaker Studio ou no Amazon SageMaker Unified Studio (versão prévia). Eles podem usar os Partner AI Apps para analisar seus dados, experimentos e modelos criados na SageMaker IA. Isso minimiza a mudança de contexto e ajuda a acelerar a criação de modelos de base e a introdução de novos recursos de IA generativa no mercado. 

## Integração com Serviços da AWS
<a name="partner-apps-integration"></a>

O Partner AI Apps usa a configuração existente AWS Identity and Access Management (IAM) para autorização e autenticação. Como resultado, os usuários não precisam fornecer credenciais separadas para acessar cada aplicativo Partner AI do Amazon SageMaker Studio. Para ter mais informações sobre autorização e autenticação no recurso Aplicativos de IA para Parceiros, consulte [Configurar aplicativos de IA para parceiros](partner-app-onboard.md). 

O Partner AI Apps também se Amazon CloudWatch integra para fornecer monitoramento e gerenciamento operacionais. Os clientes também podem navegar pelos aplicativos de AI para parceiros e obter detalhes sobre eles, como recursos, experiência do cliente e preços usando o Console de gerenciamento da AWS. Para obter informações sobre Amazon CloudWatch, consulte [Como Amazon CloudWatch funciona](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_architecture.html). 

Aplicativos de IA de parceiros, como o Deepchecks, oferecem suporte à integração com o Amazon Bedrock para permitir recursos de avaliação baseados em LLM, como avaliações “LLM como juiz” e recursos de anotação automatizada. Quando a integração com o Amazon Bedrock é ativada, o aplicativo Partner AI usa sua conta Amazon Bedrock gerenciada pelo cliente para acessar os modelos básicos, garantindo que seus dados permaneçam dentro de sua configuração de segurança confiável. Para obter mais informações sobre como configurar a integração com o Amazon Bedrock, consulte. [Configurar a integração com o Amazon Bedrock](partner-app-onboard.md#partner-app-onboard-admin-bedrock)

## Tipos compatíveis
<a name="partner-apps-supported"></a>

Os aplicativos de AI para parceiros são compatíveis com os seguintes tipos: 
+ Comet 
+  Deepchecks 
+  Fiddler 
+  Lakera Guard 

 Quando o administrador inicia um aplicativo de IA para parceiros, ele deve selecionar a configuração do cluster de instâncias com o qual o aplicativo de IA para parceiros é executado. Essa configuração é conhecida como nível do aplicativo de IA para parceiros. O nível de aplicativo de IA para parceiros pode ter um dos seguintes valores: 
+  `small` 
+  `medium` 
+  `large` 

 As seções a seguir fornecem informações sobre cada um dos tipos de aplicativo de IA para parceiros e detalhes sobre os valores de nível do aplicativo. 

### Visão geral do Comet
<a name="partner-apps-supported-comet"></a>

 Cometfornece uma plataforma de avaliação de end-to-end modelos para desenvolvedores de IA, com avaliações de LLM, rastreamento de experimentos e monitoramento de produção. 

 Recomendamos os seguintes níveis de aplicativo de IA para parceiros com base na workload: 
+  `small`: recomendado para até cinco usuários e vinte tarefas em execução. 
+  `medium`: recomendado para até cinquenta usuários e cem tarefas em execução. 
+  `large`: recomendado para até quinhentos usuários e cem tarefas em execução. 

**nota**  
SageMaker A IA não suporta a visualização da Comet interface do usuário como parte da saída de um notebook Jupyter. 

### Visão geral do Deepchecks
<a name="partner-apps-supported-deepchecks"></a>

Os desenvolvedores de aplicações de IA e as partes interessadas podem usar o Deepchecks para validar continuamente os aplicativos baseados em LLM, como características, métricas de desempenho e possíveis armadilhas em todo o ciclo de vida, desde a pré-implantação e a experimentação interna até a produção. 

 Recomendamos os seguintes níveis de aplicativo de IA para parceiros com base na velocidade desejada para a workload: 
+  `small`: processa 200 tokens por segundo. 
+  `medium`: processa 500 tokens por segundo. 
+  `large`: processa 1.300 tokens por segundo. 

### Visão geral do Fiddler
<a name="partner-apps-supported-fiddler"></a>

 A plataforma de observabilidade de IA Fiddler facilita a validação, o monitoramento e a análise de modelos de ML na produção, como modelos tabulares, de aprendizado profundo, de visão computacional e de processamento de linguagem natural. 

 Recomendamos os seguintes níveis de aplicativo de IA para parceiros com base na velocidade desejada para a workload: 
+  `small`: o processamento de 10 milhões de eventos em 5 modelos, 100 atributos e 20 iterações leva 53 minutos. 
+  `medium`: o processamento de 10 milhões de eventos em 5 modelos, 100 atributos e 20 iterações leva 23 minutos. 
+  `large`: o processamento de 10 milhões de eventos em 5 modelos, 100 atributos e 100 iterações leva 27 minutos. 

### Visão geral do Lakera Guard
<a name="partner-apps-supported-lakera-guard"></a>

 O Lakera Guard é um firewall de aplicativos de IA de baixa latência para proteger aplicativos de IA generativa contra ameaças específicas da IA generativa. 

 Recomendamos os seguintes níveis de aplicativo de IA para parceiros com base na workload: 
+  `small`— Recomendado para até 20 automações de processos robóticos ()RPAs. 
+  `medium`— Recomendado para até 100 RPAs. 
+  `large`— Recomendado para até 200 RPAs. 

# Configurar aplicativos de IA para parceiros
<a name="partner-app-onboard"></a>

 Os tópicos a seguir descrevem as permissões necessárias para começar a usar os Amazon SageMaker Partner AI Apps. As permissões necessárias estão divididas em duas partes, dependendo do nível de permissão do usuário: 
+  **Permissões administrativas**: permissões para administradores que configuram ambientes para cientistas de dados e desenvolvedores de machine learning (ML).
  + AWS Marketplace
  +  Gerenciamento de aplicativos de IA para parceiros 
  +  AWS License Manager 
+  **Permissões de usuário**: permissões para cientistas de dados e desenvolvedores de machine learning. 
  +  Autorização de usuários 
  +  Propagação de identidade 
  +  Acesso ao SDK 

## Pré-requisitos
<a name="partner-app-onboard-prereq"></a>

 Os administradores podem atender aos pré-requisitos a seguir para configurar aplicativos de IA para parceiros. 
+ (Opcional) Integração a um domínio de SageMaker IA. Os aplicativos de IA de parceiros podem ser acessados diretamente de um domínio de SageMaker IA. Para obter mais informações, consulte [Visão geral do domínio Amazon SageMaker AI](gs-studio-onboard.md). 
  + Se estiver usando Partner AI Apps em um domínio de SageMaker IA no modo somente VPC, os administradores devem criar um endpoint com o seguinte formato para se conectar aos Partner AI Apps. Para ter mais informações sobre como usar o Studio no modo somente VPC, consulte [Conecte o Amazon SageMaker Studio em uma VPC a recursos externos](studio-updated-and-internet-access.md). 

    ```
    aws.sagemaker.region.partner-app
    ```
+ (Opcional) Se os administradores estiverem interagindo com o domínio usando o AWS CLI, eles também deverão preencher os seguintes pré-requisitos. 

  1. Atualize o AWS CLI seguindo as etapas em [Instalando a AWS CLI versão atual](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html#install-tool-bundled).  

  1. Na máquina local, execute `aws configure` e forneça as credenciais da AWS . Para obter informações sobre AWS credenciais, consulte [Entendendo e obtendo suas AWS credenciais](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html).

## Permissões administrativas
<a name="partner-app-onboard-admin"></a>

 O administrador deve adicionar as seguintes permissões para habilitar os aplicativos de IA do parceiro na SageMaker IA. 
+  Permissão para concluir a AWS Marketplace assinatura do Partner AI Apps 
+  Permissão para configurar o perfil de execução do aplicativo de IA para parceiros. 

### AWS Marketplace assinatura do Partner AI Apps
<a name="partner-app-onboard-admin-marketplace"></a>

Os administradores devem concluir as etapas a seguir para adicionar permissões para. AWS Marketplace Para obter informações sobre o uso AWS Marketplace, consulte [Como começar como comprador usando AWS Marketplace](https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-getting-started.html).

1. Conceda permissões para AWS Marketplace. Os administradores do Partner AI Apps precisam dessas permissões para comprar assinaturas do Partner AI Apps em. AWS Marketplace Para ter acesso AWS Marketplace, os administradores devem anexar a política `AWSMarketplaceManageSubscriptions` gerenciada à função do IAM que estão usando para acessar o console de SageMaker IA e comprar o aplicativo. Para obter detalhes sobre a política `AWSMarketplaceManageSubscriptions` gerenciada, consulte [políticas AWS gerenciadas para AWS Marketplace compradores](https://docs.aws.amazon.com/marketplace/latest/buyerguide/buyer-security-iam-awsmanpol.html#security-iam-awsmanpol-awsmarketplacemanagesubscriptions). Para ter informações sobre como anexar políticas gerenciadas, [Adicionar e remover permissões de identidade do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html). 

1. Conceda permissões para que a SageMaker IA execute operações em nome dos administradores usando outros. Serviços da AWS Os administradores devem conceder permissões de SageMaker IA para usar esses serviços e os recursos com os quais eles atuam. A definição de política a seguir demonstra como conceder as permissões necessárias para os aplicativos de IA para parceiros. Além das permissões existentes para o perfil de administrador, essas permissões também são necessárias. Para obter mais informações, consulte [Como usar funções de execução de 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"
                    } 
               }
           }
       ]
   }
   ```

------

### Permissão para configurar o perfil de execução do aplicativo de IA para parceiros.
<a name="partner-app-onboard-admin-role"></a>

1. O recurso Aplicativos de IA para Parceiros exige um perfil de execução para interagir com os recursos na Conta da AWS. Os administradores podem criar esse perfil de execução usando a AWS CLI. O aplicativo de IA para parceiros usa esse perfil para executar ações relacionadas à funcionalidade Aplicativos de IA para Parceiros. 

   ```
   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.  Crie a função AWS License Manager vinculada ao serviço seguindo as etapas em [Criar uma função vinculada ao serviço para o License Manager](https://docs.aws.amazon.com/license-manager/latest/userguide/license-manager-role-core.html#create-slr-core).  

1.  Conceda permissões para que o aplicativo de IA para parceiros acesse o License Manager usando a AWS CLI. Essas permissões são necessárias para acessar as licenças do aplicativo de IA para parceiros. Isso permite que o aplicativo de IA para parceiros verifique o acesso à licença do aplicativo.

   ```
   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 o aplicativo de IA para parceiros exigir acesso a um bucket do Amazon S3, adicione as permissões do Amazon S3 ao perfil de execução. Para ter mais informações, consulte [Permissões obrigatórias para operações de API do Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-policy-actions.html). 

### Configurar a integração com o Amazon Bedrock
<a name="partner-app-onboard-admin-bedrock"></a>

Aplicativos de IA de parceiros, como o Deepchecks, oferecem suporte à integração com o Amazon Bedrock para habilitar recursos de avaliação baseados em LLM. Ao configurar um aplicativo Partner AI com o suporte do Amazon Bedrock, os administradores podem especificar quais modelos básicos e perfis de inferência estão disponíveis para uso no aplicativo. Se você precisar aumentar o limite de cota para seus modelos do Amazon Bedrock, consulte [Solicitar um aumento para as cotas do Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas-increase.html).

1. Certifique-se de que a função de execução do Partner AI App tenha as permissões necessárias do Amazon Bedrock. Adicione as seguintes permissões para permitir o acesso ao modelo 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. Identifique os modelos do Amazon Bedrock que sua organização deseja disponibilizar para o aplicativo Partner AI. Você pode ver os modelos disponíveis na sua região usando o console Amazon Bedrock. Para obter informações sobre a disponibilidade do modelo em todas as regiões, consulte [Suporte de modelos por Região da AWS](https://docs.aws.amazon.com/bedrock/latest/userguide/models-regions.html).

1. (Opcional) Crie perfis de inferência gerenciados pelo cliente para controle de custos e gerenciamento de modelos. Os perfis de inferência permitem que você acompanhe o uso do Amazon Bedrock especificamente para o aplicativo Partner AI e podem permitir a inferência entre regiões quando os modelos não estão disponíveis na sua região atual. Para obter mais informações, consulte [Uso de perfis de inferência no Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles.html).

1. Ao criar ou atualizar o aplicativo Partner AI, especifique os modelos e perfis de inferência permitidos usando a `UpdatePartnerApp` API `CreatePartnerApp` ou. O aplicativo Partner AI só poderá acessar os modelos e perfis de inferência que você configura explicitamente.

**Importante**  
O uso do Amazon Bedrock por meio do Partner AI Apps é cobrado diretamente de você Conta da AWS usando seus preços existentes do Amazon Bedrock. Os custos de infraestrutura do Partner AI App são separados dos custos de inferência do modelo Amazon Bedrock.

#### Deepcheck a integração com o Amazon Bedrock
<a name="partner-app-onboard-admin-bedrock-deepchecks"></a>

O Deepchecks oferece suporte à integração do Amazon Bedrock para recursos de avaliação baseados em LLM, incluindo:
+ *LLM como avaliação de juízes* - Use modelos básicos para avaliar automaticamente os resultados do modelo quanto à qualidade, relevância e outros critérios
+ *Anotação automatizada* - Gere rótulos e anotações para conjuntos de dados usando modelos básicos
+ *Análise de conteúdo* - Analise dados de texto em busca de viés, toxicidade e outras métricas de qualidade usando os recursos do LLM

Para obter informações detalhadas sobre os recursos e a configuração do Amazon Bedrock do Deepcheck, consulte a documentação do Deepchecks no aplicativo.

## Permissões de usuário
<a name="partner-app-onboard-user"></a>

 Depois que os administradores concluírem as configurações de permissões administrativas, eles devem garantir que os usuários tenham as permissões necessárias para acessar os aplicativos de IA para parceiros.

1. Conceda permissões para que a SageMaker IA execute operações em seu nome usando outros Serviços da AWS. Os administradores devem conceder permissões de SageMaker IA para usar esses serviços e os recursos com os quais eles atuam. Os administradores concedem essas permissões à SageMaker AI usando uma função de execução do IAM. Para ter mais informações sobre perfis do IAM, consulte [Perfis do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html). A definição de política a seguir demonstra como conceder as permissões necessárias para os aplicativos de IA para parceiros. Essa política pode ser adicionada ao perfil de execução do perfil de usuário.  Para obter mais informações, consulte [Como usar funções de execução de 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.  (Opcional) Ao iniciar o recurso Aplicativos de IA para Parceiros no Studio, adicione a política de confiança `sts:TagSession` ao perfil usado para iniciar o Studio ou iniciar diretamente o recurso Aplicativos de IA para Parceiros da forma a seguir. Isso garante que a identidade possa ser propagada adequadamente.

   ```
   {
       "Effect": "Allow",
       "Principal": {
           "Service": "sagemaker.amazonaws.com"
       },
       "Action": [
                   "sts:AssumeRole",
                   "sts:TagSession"
                ]
   }
   ```

1.  (Opcional) Se estiver usando o SDK de um aplicativo Partner AI para acessar a funcionalidade na SageMaker IA, adicione a seguinte `CallPartnerAppApi` permissão à função usada para executar o código do SDK. Se estiver executando o código do SDK no Studio, adicione a permissão ao perfil de execução do Studio. Se estiver executando o código de qualquer lugar que não seja o Studio, adicione a permissão ao perfil do IAM usado com o caderno. Isso dá ao usuário acesso à funcionalidade Aplicativos de IA para Parceiros por meio do SDK do aplicativo de IA para parceiros. 

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Statement1",
               "Effect": "Allow",
               "Action": [
                   "sagemaker:CallPartnerAppApi"
               ],
               "Resource": [
                   "arn:aws:sagemaker:us-east-1:111122223333:partner-app/app"
               ]
           }
       ]
   }
   ```

------

### Gerenciar a autorização e autenticação de usuário
<a name="partner-app-onboard-user-auth"></a>

Para oferecer acesso aos aplicativos de IA para parceiros aos membros de sua equipe, os administradores devem garantir que a identidade dos usuários seja propagada para os aplicativos de IA para parceiros. Essa propagação garante que os usuários possam acessar adequadamente a interface de usuário dos aplicativos de IA para parceiro e realizar ações autorizadas do respectivo aplicativo. 

 Os aplicativos de IA para parceiros permitem as seguintes fontes de identidade: 
+  Centro de Identidade do AWS IAM 
+  Provedores de identidade externos (IdPs)  
+  Identidade baseada em sessão do IAM 

 As seções a seguir fornecem informações sobre as fontes de identidade que o recurso Aplicativos de AI para Parceiros aceita, bem como detalhes importantes relacionados a essas fontes. 

#### Centro de Identidade do IAM
<a name="partner-app-onboard-user-auth-idc"></a>

Se um usuário for autenticado no Studio usando o Centro de Identidade do IAM e iniciar um aplicativo por meio do Studio, o `UserName` do Centro de Identidade do IAM será propagado automaticamente como a identidade de usuário de um aplicativo de IA para parceiros. Isso não se aplicará se o usuário iniciar o aplicativo de IA para parceiros diretamente com a API `CreatePartnerAppPresignedUrl`.

#### Provedores de identidade externos (IdPs)
<a name="partner-app-onboard-user-auth-idps"></a>

Ao usar o SAML para Conta da AWS federação, os administradores têm duas opções para transferir a identidade do IdP como a identidade do usuário para um aplicativo Partner AI. Para obter informações sobre como configurar a Conta da AWS federação, consulte [Como configurar o SAML 2.0 para Conta da AWS federação](https://saml-doc.okta.com/SAML_Docs/How-to-Configure-SAML-2.0-for-Amazon-Web-Service).  
+ **Tag principal** — Os administradores podem configurar o aplicativo IAM Identity Center específico do IDP para transmitir informações de identidade da sessão inicial usando a AWS sessão `PrincipalTag` com o atributo a seguir. `Name` Ao usar o SAML, a sessão de perfil inicial usa um perfil do IAM. Para usar `PrincipalTag`, os administradores devem adicionar a permissão `sts:TagSession` a esse perfil inicial, bem como o perfil de execução do Studio. Para ter mais informações sobre a `PrincipalTag`, consulte [Configurar declarações SAML para a resposta de autenticação](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 da sessão inicial**: os administradores podem propagar o nome da sessão inicial como a identidade do aplicativo de IA para parceiros. Para fazer isso, eles devem definir o sinalizador `EnableIamSessionBasedIdentity` de aceitação para cada aplicativo de IA para parceiros. Para obter mais informações, consulte [`EnableIamSessionBasedIdentity`](#partner-app-onboard-user-iam-session).

#### Identidade baseada em sessão do IAM
<a name="partner-app-onboard-user-auth-iam"></a>

**Importante**  
Não recomendamos usar esse método para contas de produção. Para contas de produção, use um provedor de identidade para aumentar a segurança.

 SageMaker A IA oferece suporte às seguintes opções de propagação de identidade ao usar uma identidade baseada em sessão do IAM. Todas as opções, exceto o uso de uma tag de sessão com AWS STS, exigem a configuração do sinalizador de `EnableIamSessionBasedIdentity` aceitação para cada aplicativo. Para obter mais informações, consulte [`EnableIamSessionBasedIdentity`](#partner-app-onboard-user-iam-session).

Ao propagar identidades, a SageMaker IA verifica se uma tag de AWS STS sessão está sendo usada. Se um não for usado, a SageMaker IA propagará o nome de usuário ou o nome da AWS STS sessão do IAM. 
+  **AWS STS Tag de sessão** — Os administradores podem definir uma tag de sessão para a `SageMakerPartnerAppUser` sessão do IAM do launcher. Quando os administradores iniciam um aplicativo Partner AI usando o console de SageMaker IA ou o AWS CLI, a tag da `SageMakerPartnerAppUser` sessão é automaticamente passada como a identidade do usuário para o aplicativo Partner AI. O exemplo a seguir mostra como definir a tag de sessão `SageMakerPartnerAppUser` usando a AWS CLI. O valor da chave é adicionado como tag de entidade principal.

  ```
  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
  ```

   Ao permitir que os usuários acessem um aplicativo de IA para parceiros usando `CreatePartnerAppPresignedUrl`, recomendamos verificar o valor da chave `SageMakerPartnerAppUser`. Isso ajuda a evitar o acesso indesejado aos recursos dos aplicativos de IA para parceiros. A política de confiança a seguir verifica se a tag de sessão corresponde exatamente ao usuário do IAM correspondente. Os administradores podem usar qualquer tag de entidade principal para essa finalidade. Ela deve ser configurada no perfil que está iniciando o Studio ou no aplicativo de IA para parceiros.

------
#### [ 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}"
                  }
              }
          }
      ]
  }
  ```

------
+  **Usuário do IAM autenticado**: o nome do usuário é propagado automaticamente como usuário do aplicativo de IA para parceiros. 
+  **AWS STS nome da sessão** — Se nenhuma tag de `SageMakerPartnerAppUser` sessão for configurada durante o uso AWS STS, o SageMaker AI retornará um erro quando os usuários iniciarem um aplicativo Partner AI. Para fazer esse erro, os administradores devem definir o sinalizador de aceitação `EnableIamSessionBasedIdentity` para cada aplicativo de IA para parceiros. Para obter mais informações, consulte [`EnableIamSessionBasedIdentity`](#partner-app-onboard-user-iam-session).

   Quando o sinalizador de aceitação `EnableIamSessionBasedIdentity` estiver habilitado, use a [política de confiança do perfil do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#ck_rolesessionname) para garantir que o nome da sessão do IAM seja ou contenha o nome de usuário do IAM. Isso garante que os usuários não obtenham acesso fazendo-se passar por outros usuários. A política de confiança a seguir verifica se o nome da sessão corresponde exatamente ao usuário do IAM em questão. Os administradores podem usar qualquer tag de entidade principal para essa finalidade. Ela deve ser configurada no perfil que está iniciando o Studio ou no aplicativo de IA para parceiros.

------
#### [ 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}"
                  }
              }
          }
      ]
  }
  ```

------

  Os administradores também devem adicionar a política de confiança `sts:TagSession` ao perfil que está iniciando o Studio ou o aplicativo de IA para parceiros. Isso garante que a identidade possa ser propagada adequadamente.

  ```
  {
      "Effect": "Allow",
      "Principal": {
          "Service": "sagemaker.amazonaws.com"
      },
      "Action": [
                  "sts:AssumeRole",
                  "sts:TagSession"
               ]
  }
  ```

 Depois de definir as credenciais, os administradores podem conceder aos usuários acesso ao Studio ou ao Partner AI App AWS CLI usando as chamadas de `CreatePartnerAppPresignedUrl` API `CreatePresignedDomainUrl` ou as chamadas de API, respectivamente.

Em seguida, os usuários também podem iniciar o Studio a partir do console de SageMaker IA e iniciar os aplicativos de IA do Partner a partir do Studio.

### `EnableIamSessionBasedIdentity`
<a name="partner-app-onboard-user-iam-session"></a>

`EnableIamSessionBasedIdentity` é um sinalizador de aceitação. Quando a `EnableIamSessionBasedIdentity` sinalização é definida, a SageMaker IA passa as informações da sessão do IAM como a identidade do usuário do Partner AI App. Para obter mais informações sobre AWS STS sessões, consulte [Usar credenciais temporárias com AWS recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html).

### Controle de acesso
<a name="partner-app-onboard-user-access"></a>

 Para controlar o acesso aos aplicativos de IA para parceiros, use uma política do IAM anexada ao perfil de execução do perfil do usuário. Para iniciar um aplicativo Partner AI diretamente do Studio ou usando o AWS CLI, a função de execução do perfil do usuário deve ter uma política que dê permissões para a `CreatePartnerAppPresignedUrl` API. Remova essa permissão do perfil de execução do perfil do usuário para garantir que ele não consiga iniciar aplicativos de IA para parceiros. 

### Usuário-raiz administrador
<a name="partner-app-onboard-user-root"></a>

 Os aplicativos de IA para parceiros Comet e Fiddler exigem pelo menos um usuário-raiz administrador. Um usuário-raiz administrador tem permissões para adicionar usuários normais e administradores e gerenciar recursos. Os nomes de usuário fornecidos como usuários-raiz administradores devem ser consistentes com os nomes de usuário da fonte de identidade. 

 Embora os usuários administradores raiz persistam na SageMaker IA, os usuários administradores normais não existem e existem somente no Partner AI App até que o Partner AI App seja encerrado. 

 Os administradores podem atualizar os usuários-raiz administradores usando a chamada de API `UpdatePartnerApp`. Quando os usuários-raiz administradores são atualizados, a lista atualizada desses usuários é transmitida ao aplicativo de IA para parceiros. O aplicativo de IA para parceiros garante que todos os nomes de usuário na lista tenham privilégios de administrador-raiz. Se um usuário-raiz administrador for removido da lista, ele ainda assim reterá as permissões normais de administrador até que:
+ O usuário seja removido do aplicativo.
+ Outro usuário administrador revoga as permissões administrativas do usuário.

**nota**  
O Fiddler não permite a atualização de usuários administradores. Somente o Comet permite atualizações para usuários-raiz administradores.  

 Para excluir um usuário-raiz administrador, primeiro atualize a lista de usuários-raiz administradores usando a API `UpdatePartnerApp`. Em seguida, remova ou revogue as permissões de administrador por meio da interface de usuário do aplicativo de IA para parceiros.

 Se você remover um usuário-raiz administrador da interface de usuário do aplicativo de IA para parceiros sem atualizar a lista de usuários-raiz administradores com a API `UpdatePartnerApp`, a alteração será temporária. Quando a SageMaker IA envia a próxima solicitação de atualização do Partner SageMaker AI App, ela envia a lista de administradores raiz que ainda inclui o usuário para o Partner AI App. Isso substitui a exclusão feita na interface de usuário do aplicativo de IA para parceiros. 

# Provisionamento de aplicativos de IA para parceiros
<a name="partner-apps-provision"></a>

Depois que os administradores configurarem as permissões necessárias, eles poderão explorar e provisionar os Amazon SageMaker Partner AI Apps para usuários no domínio.

[Os administradores podem ver todos os Partner AI Apps disponíveis, bem como os Partner AI Apps que eles provisionaram no console Amazon AI. SageMaker ](https://console.aws.amazon.com/sagemaker/) Na página **Aplicativos de IA para parceiros**, os administradores podem ver detalhes sobre o modelo de preços de cada aplicativo de IA para parceiros disponibilizá-los aos usuários. Os administradores podem disponibilizá-los navegando até o AWS Marketplace para assinar esse aplicativo Partner AI.

 Os administradores podem provisionar novos aplicativos na página “Aplicativos de IA para parceiros”. Na guia **Meus aplicativos**, eles também podem ver os aplicativos já provisionados.

**nota**  
Os aplicativos provisionados pelos administradores podem ser acessados em uma Conta da AWS por todos os usuários aos quais os administradores concedem as permissões adequadas. Os aplicativos de IA para parceiros não estão restritos a um domínio ou usuário específico.

## Status
<a name="partner-apps-provision-status"></a>

 Quando os administradores visualizam um aplicativo de IA para parceiros que eles provisionaram, eles também podem ver o status do aplicativo com um dos valores a seguir.
+  **Implantado**: o aplicativo está pronto para uso. Os administradores podem atualizar a configuração do aplicativo e excluí-lo.
+ **Erro**: houve um problema na implantação do aplicativo. Os administradores podem solucionar problemas e configurar o aplicativo novamente para implantá-lo.
+ **Não implantado**: o aplicativo foi assinado, mas não foi implantado. Os administradores podem configurar o aplicativo para implantá-lo.

## Opções
<a name="partner-apps-provision-options"></a>

 Quando os administradores configuram um aplicativo, eles podem escolher as seguintes opções: 
+  **Nome do aplicativo**: um nome exclusivo para o aplicativo. 
+  **Cronograma de manutenção do aplicativo**: os aplicativos de IA para parceiros passam por manutenção semanalmente. Com essa opção, os administradores escolhem o dia da semana e a hora em que a manutenção ocorre. 
+  **Propagação de identidade STS** — use essa opção para passar o nome da sessão do IAM do lançador AWS Security Token Service (AWS STS) como a identidade do usuário do Partner AI App. Para obter mais informações, consulte [Configurar aplicativos de IA para parceiros](partner-app-onboard.md). 
+  **Gerenciamento de administradores**: alguns aplicativos de IA para parceiros permitem adicionar até cinco administradores com direitos totais para gerenciar a funcionalidade Aplicativos de IA para Parceiros. Isso se aplica somente a Comet e Fiddler. Para obter mais informações, consulte [Configurar aplicativos de IA para parceiros](partner-app-onboard.md). 
+  **Perfil de execução**: o perfil que o aplicativo de IA para parceiros usa para acessar recursos e realizar ações. Para obter mais informações, consulte [Configurar aplicativos de IA para parceiros](partner-app-onboard.md). 
+  **Versão do aplicativo**: a versão do aplicativo de IA para parceiros que os administradores desejam usar.  
+  **Seleção de níveis**: o nível de implantação de infraestrutura para o aplicativo de IA para parceiros. O tamanho do nível afeta a velocidade e os recursos do aplicativo. Para obter mais informações, consulte [Configurar aplicativos de IA para parceiros](partner-app-onboard.md). 
+  **Política de bucket do S3 para o Lakera**: isso só é exigido pelo aplicativo Lakera-guard para acessar um bucket do Amazon S3.

# Configurar os aplicativos de IA do Amazon SageMaker Partner SDKs
<a name="partner-apps-sdk"></a>

 O tópico a seguir descreve o processo necessário para instalar e usar o aplicativo específico SDKs com o SageMaker Amazon Partner AI Apps. Para instalar e usar SDKs em aplicativos, você deve especificar variáveis de ambiente específicas para aplicativos de IA do Partner, para que o SDK do aplicativo possa coletar variáveis de ambiente e acionar a autorização. As seções a seguir fornecem informações sobre as etapas necessárias para concluir isso para cada tipo de aplicação compatível. 

## Comet
<a name="partner-apps-sdk-comet"></a>

 A Comet oferece dois produtos: 
+  O Opik, um framework de avaliação de LLMs de origem. 
+  A plataforma de ML da Comet, que pode ser usada para rastrear, comparar, explicar e otimizar modelos em todo o ciclo de vida de ML. 

O Comet suporta o uso de dois diferentes SDKs com base no produto com o qual você está interagindo. Conclua o procedimento a seguir para instalar e usar o Comet ou o SDKs Opik. Para ter mais informações sobre o Comet SDK, consulte [Quickstart](https://www.comet.com/docs/v2/guides/quickstart/). Para ter mais informações sobre o Opik SDK, consulte [Open source LLM evaluation platform](https://github.com/comet-ml/opik).

1. Inicie o ambiente em que você está usando o Comet ou o Opik SDKs com os aplicativos de IA do Partner. Para obter informações sobre como iniciar um JupyterLab aplicativo, consulte[Criar um espaço](studio-updated-jl-user-guide-create-space.md). Para ter informações sobre como iniciar o Editor de Código, com base no Code-OSS (Visual Studio Code de código aberto), consulte [Inicie a aplicação de Editor de Código no Studio](code-editor-use-studio.md).

1.  Inicie um caderno Jupyter ou um espaço do Editor de Código. 

1.  No ambiente de desenvolvimento, instale as versões compatíveis do SDK Comet, Opik e SageMaker Python. Para ser compatível: 
   +  A versão do SDK do SageMaker Python deve ser pelo menos. `2.237.0`
   +  A versão do Comet SDK deve ser a versão mais recente.
   +  A versão do Opik SDK deve corresponder à versão usada pelo seu aplicativo Opik. Verifique a versão do Opik usada na interface de usuário do aplicativo web Opik. A exceção é que a versão mínima do Opik SDK deverá ser a `1.2.0` quando a versão do aplicativo Opik for a `1.1.5`.
**nota**  
SageMaker JupyterLab vem com o SageMaker Python SDK instalado. No entanto, talvez seja necessário atualizar o SDK do SageMaker Python se a versão for inferior a. `2.237.0`

   ```
   %pip install sagemaker>=2.237.0 comet_ml
   
   ##or
   
   %pip install sagemaker>=2.237.0 opik=<compatible-version>
   ```

1.  Defina as seguintes variáveis de ambiente para o ARN do recurso do aplicativo. Essas variáveis de ambiente são usadas para se comunicar com o Comet e o SDKs Opik. Para recuperar esses valores, navegue até a página de detalhes do aplicativo no Amazon SageMaker Studio.

   ```
   os.environ['AWS_PARTNER_APP_AUTH'] = 'true'
   os.environ['AWS_PARTNER_APP_ARN'] = '<partner-app-ARN>'
   ```

1.  Para o aplicativo Comet, o URL do SDK é incluído automaticamente como parte da chave de API definida na etapa a seguir. Em vez disso, você pode definir a variável de ambiente `COMET_URL_OVERRIDE` para substituir manualmente o URL do SDK.

   ```
   os.environ['COMET_URL_OVERRIDE'] = '<comet-url>'
   ```

1.  Para o aplicativo Opik, o URL do SDK é incluído automaticamente como parte da chave de API definida na etapa a seguir. Em vez disso, você pode definir a variável de ambiente `OPIK_URL_OVERRIDE` para substituir manualmente o URL do SDK. Para obter o nome do espaço de trabalho do Opik, consulte o aplicativo Opik e navegue até o espaço de trabalho do usuário.

   ```
   os.environ['OPIK_URL_OVERRIDE'] = '<opik-url>'
   os.environ['OPIK_WORKSPACE'] = '<workspace-name>'
   ```

1.  Defina a variável de ambiente que identifica a chave de API para o Comet ou Opik. Isso é usado para verificar a conexão com o aplicativo quando o Comet e o Opik SDKs são usados. SageMaker Essa chave de API é específica do aplicativo e não é gerenciada pelo. SageMaker Para obter essa chave, você deve fazer login no aplicativo e recuperar a chave da API. A chave de API do Opik é igual à chave de API do 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>

 Conclua o procedimento a seguir para instalar e usar o Fiddler Python Client. Para ter informações sobre o Fiddler Python Client, consulte [informações sobre o Client 3.x](https://docs.fiddler.ai/python-client-3-x/about-client-3x). 

1.  Inicie o ambiente de notebook em que você está usando o Fiddler Python Client com Partner AI Apps. Para obter informações sobre como iniciar um JupyterLab aplicativo, consulte[Criar um espaço](studio-updated-jl-user-guide-create-space.md). Para ter informações sobre como iniciar o Editor de Código, com base no Code-OSS (Visual Studio Code de código aberto), consulte [Inicie a aplicação de Editor de Código no Studio](code-editor-use-studio.md).

1.  Inicie um caderno Jupyter ou um espaço do Editor de Código. 

1.  No ambiente de desenvolvimento, instale as versões do Fiddler Python Client e do Python SDK. SageMaker Para ser compatível: 
   +  A versão do SDK do SageMaker Python deve ser pelo menos. `2.237.0` 
   +  A versão do Fiddler Python Client deve ser compatível com a versão do Fiddler usada no aplicativo. Depois de verificar a versão do Fiddler na interface de usuário, consulte a [matriz de compatibilidade](https://docs.fiddler.ai/history/compatibility-matrix) do Fiddler para ver a versão compatível do Fiddler Python Client. 
**nota**  
SageMaker JupyterLab vem com o SageMaker Python SDK instalado. No entanto, talvez seja necessário atualizar o SDK do SageMaker Python se a versão for inferior a. `2.237.0` 

   ```
   %pip install sagemaker>=2.237.0 fiddler-client=<compatible-version>
   ```

1.  Defina as variáveis de ambiente a seguir para o ARN do recurso do aplicativo e o URL do SDK. Essas variáveis de ambiente são usadas para estabelecer comunicação com o Fiddler Python Client. Para recuperar esses valores, navegue até a página de detalhes do aplicativo Fiddler no 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.  Defina a variável de ambiente que identifica a chave de API para o aplicativo Fiddler. Isso é usado para verificar a conexão com o aplicativo Fiddler quando o Fiddler Python Client é usado. SageMaker Essa chave de API é específica do aplicativo e não é gerenciada pelo. SageMaker Para obter essa chave, você deve fazer login no aplicativo Fiddler e recuperar a chave da API. 

   ```
   os.environ['FIDDLER_KEY'] = '<API-key>'
   ```

## Deepchecks
<a name="partner-apps-sdk-deepchecks"></a>

 Conclua o procedimento a seguir para instalar e usar o Deepchecks Python SDK. 

1.  Inicie o ambiente de caderno em que você está usando o Deepchecks Python SDK com a funcionalidade Aplicativos de IA para Parceiros. Para obter informações sobre como iniciar um JupyterLab aplicativo, consulte[Criar um espaço](studio-updated-jl-user-guide-create-space.md). Para ter informações sobre como iniciar o Editor de Código, com base no Code-OSS (Visual Studio Code de código aberto), consulte [Inicie a aplicação de Editor de Código no Studio](code-editor-use-studio.md).

1.  Inicie um caderno Jupyter ou um espaço do Editor de Código. 

1.  No ambiente de desenvolvimento, instale as versões compatíveis do Deepchecks Python SDK SageMaker e do Python SDK.  A funcionalidade Aplicativos de IA para Parceiros está executando a versão `0.21.15` do Deepchecks. Para ser compatível: 
   +  A versão do SDK do SageMaker Python deve ser pelo menos. `2.237.0` 
   +  O Deepchecks Python SDK deve usar a versão secundária `0.21`. 
**nota**  
SageMaker JupyterLab vem com o SageMaker Python SDK instalado. No entanto, talvez seja necessário atualizar o SDK do SageMaker Python se a versão for inferior a. `2.237.0` 

   ```
   %pip install sagemaker>=2.237.0 deepchecks-llm-client>=0.21,<0.22
   ```

1.  Defina as variáveis de ambiente a seguir para o ARN do recurso do aplicativo e o URL do SDK. Essas variáveis de ambiente são usadas para estabelecer comunicação com o Deepchecks Python SDK. Para recuperar esses valores, navegue até a página de detalhes do aplicativo no 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.  Defina a variável de ambiente que identifica a chave de API para o aplicativo Deepchecks. Isso é usado para verificar a conexão com o aplicativo Deepchecks quando o SDK do Deepchecks Python é usado. SageMaker Essa chave de API é específica do aplicativo e não é gerenciada pelo. SageMaker Para obter essa chave, consulte [Configuração: instalação do SDK do Python e recuperação da chave de 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>

 O Lakera não oferece SDK. Em vez disso, você pode interagir com a API do Lakera Guard por meio de solicitações HTTP aos endpoints disponíveis em qualquer linguagem de programação. Para ter mais informações, consulte a [API do Lakera Guard](https://platform.lakera.ai/docs/api). 

 Para usar o SDK do SageMaker Python com o Lakera, conclua as seguintes etapas: 

1.  Inicie o ambiente em que você está usando aplicativos de IA para parceiros. Para obter informações sobre como iniciar um JupyterLab aplicativo, consulte[Criar um espaço](studio-updated-jl-user-guide-create-space.md). Para ter informações sobre como iniciar o Editor de Código, com base no Code-OSS (Visual Studio Code de código aberto), consulte [Inicie a aplicação de Editor de Código no Studio](code-editor-use-studio.md).

1.  Inicie um caderno Jupyter ou um espaço do Editor de Código. 

1.  No ambiente de desenvolvimento, instale a versão compatível do SageMaker Python SDK. A versão do SDK do SageMaker Python deve ser pelo menos `2.237.0` 
**nota**  
SageMaker JupyterLab vem com o SageMaker Python SDK instalado. No entanto, talvez seja necessário atualizar o SDK do SageMaker Python se a versão for inferior a. `2.237.0` 

   ```
   %pip install sagemaker>=2.237.0
   ```

1.  Defina as variáveis de ambiente a seguir para o ARN do recurso do aplicativo e o URL do SDK. Para recuperar esses valores, navegue até a página de detalhes do aplicativo no Amazon SageMaker Studio. 

   ```
   os.environ['AWS_PARTNER_APP_ARN'] = '<partner-app-ARN>'
   os.environ['AWS_PARTNER_APP_URL'] = '<partner-app-URL>'
   ```

# Aplicativos de IA para parceiros no Studio
<a name="partner-apps-studio"></a>

 Depois que o administrador tiver adicionado as permissões necessárias e os usuários autorizados, os usuários poderão visualizar o aplicativo Amazon SageMaker Partner AI no Amazon SageMaker Studio. No Studio, os usuários podem iniciar aplicativos que foram aprovados para uso pelo administrador.

## Navegar e selecionar
<a name="partner-apps-studio-browse"></a>

 Para navegar pelos aplicativos de IA para parceiros disponíveis, os usuários devem navegar até o Studio. Para ter informações sobre como iniciar o Studio, consulte [Inicie o Amazon SageMaker Studio](studio-updated-launch.md).

 Depois que os usuários iniciarem o Studio, eles poderão visualizar todos os aplicativos de IA para parceiros disponíveis selecionando a seção **Aplicativos de IA para parceiros** no painel de navegação à esquerda. A página **Aplicativos de IA para parceiros** lista todos os aplicativos de IA para parceiros e fornece informações sobre se aplicativos foram implantados pelo administrador. Se os aplicativos Partner AI desejados não tiverem sido implantados, os usuários podem entrar em contato com o administrador para solicitar que eles implantem os Partner AI Apps para uso no domínio de SageMaker IA.

 Se o aplicativo tiver sido implantado, os usuários poderão abrir a interface de usuário do aplicativo de IA para parceiros para começar a usá-lo ou visualizar detalhes do aplicativo.

 Ao visualizar esses detalhes, os usuários veem o valor do seguinte: 
+  ARN: esse é o ARN de recurso do aplicativo de IA para parceiros.
+  URL do SDK — Essa é a URL do aplicativo Partner AI que o SDK do aplicativo Partner AI usa para dar suporte a tarefas específicas do aplicativo, como registrar dados de rastreamento de experimentos do modelo em um JupyterLab notebook no Studio.

Os usuários podem usar esses valores para escrever um código que use o SDK do aplicativo de IA para parceiros para tarefas específicas do aplicativo.

A página de detalhes de cada aplicativo de IA para parceiros inclui um caderno de exemplo. Para começar, os usuários podem iniciar o notebook de amostra em um JupyterLab espaço no ambiente Studio.

# AWS KMS Permissões de uso para aplicativos Amazon SageMaker Partner AI
<a name="partner-apps-kms"></a>

Você pode proteger seus dados em repouso usando criptografia para Amazon SageMaker Partner AI Apps. Por padrão, ele usa criptografia do lado do servidor com uma SageMaker chave própria. SageMaker também oferece suporte à opção de criptografia do lado do servidor com uma chave KMS gerenciada pelo cliente.

## Criptografia do lado do servidor com chaves SageMaker gerenciadas (padrão)
<a name="partner-apps-managed-key"></a>

Os aplicativos de IA parceiros criptografam todos os seus dados em repouso usando uma chave AWS gerenciada por padrão.

## Criptografia do lado do servidor com chaves do KMS gerenciadas pelo cliente (opcional)
<a name="partner-apps-customer-managed-key"></a>

Os aplicativos de IA do parceiro oferecem suporte ao uso de uma chave simétrica gerenciada pelo cliente que você cria, possui e gerencia para substituir a criptografia existente AWS . Como você tem controle total dessa camada de criptografia, você pode realizar tarefas como:
+ Estabelecer e manter as políticas de chave
+ Estabelecer e manter subsídios e IAM policies
+ Habilitar e desabilitar políticas de chaves
+ Alternar os materiais de criptografia de chave
+ Adicionar etiquetas
+ Criar réplicas de chaves
+ Chaves de agendamento para exclusão

Para obter mais informações, consulte [Chaves mestras do cliente (CMKs)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) no *AWS Key Management Service Guia do desenvolvedor*.

## Como os aplicativos de IA do Partner usam subsídios em AWS KMS
<a name="partner-apps-grants-cmk"></a>

O recurso Aplicativos de IA para Parceiros requer uma concessão para usar a chave gerenciada pelo cliente. Quando você cria um aplicativo criptografado com uma chave gerenciada pelo cliente, o Partner AI Apps cria uma concessão em seu nome enviando uma CreateGrant solicitação para AWS KMS. Os subsídios AWS KMS são usados para dar aos Partner AI Apps acesso a uma chave KMS em uma conta de cliente.

É possível revogar o acesso à concessão, ou remover o acesso do serviço à chave gerenciada pelo cliente a qualquer momento. Se você fizer isso, o recurso Aplicativos de IA para Parceiros não poderá acessar nenhum dos dados criptografados pela chave gerenciada pelo cliente, o que afeta as operações que dependem desses dados. O aplicativo não funcionará corretamente e se tornará irrecuperável.

## Criar uma chave gerenciada pelo cliente
<a name="partner-apps-create-cmk"></a>

Você pode criar uma chave simétrica gerenciada pelo cliente usando o Console de gerenciamento da AWS ou o. AWS KMS APIs

**Para criar uma chave simétrica gerenciada pelo cliente**

Siga as etapas para [Criar chaves do KMS de criptografia simétrica](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) no *Guia do desenvolvedor do AWS Key Management Service *.

**Política de chave**

As políticas de chaves controlam o acesso à chave gerenciada pelo cliente. Cada chave gerenciada pelo cliente deve ter exatamente uma política de chaves, que contém declarações que determinam quem pode usar a chave e como pode usá-la. Ao criar a chave gerenciada pelo cliente, é possível especificar uma política de chave. Para obter mais informações, consulte [Determinar o acesso às chaves do AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/determining-access.html) no *Guia do desenvolvedor do AWS Key Management Service *.

Para usar a chave gerenciada pelo cliente com seus recursos da funcionalidade Aplicativos de IA para Parceiros, as operações de API a seguir devem ser permitidas na política de chave. A entidade principal dessas operações depende de se o perfil é usado para criar ou usar o aplicativo. 
+ Criar o aplicativo:
  + `[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) 
+ Usar o aplicativo:
  + [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)

Veja a seguir exemplos de declarações de política que você pode adicionar aos aplicativos de IA para parceiros com base em se a persona é um administrador ou usuário. Para obter mais informações sobre como especificar permissões em uma política, consulte [Permissões do AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html) no *Guia do Desenvolvedor do AWS Key Management Service *. Para obter mais informações sobre solução de problemas, consulte [Solucionar problemas de acesso à chave](https://docs.aws.amazon.com/kms/latest/developerguide/policy-evaluation.html) no *Guia do desenvolvedor do AWS Key Management Service *.

**Administrador**

A declaração de política a seguir é usada para o administrador que está criando aplicativos de IA para parceiros.

------
#### [ 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"
                }
            }
        }
    ]
}
```

------

**Usuário**

A declaração de política a seguir é para o usuário de aplicativos de IA para parceiros.

------
#### [ 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"
        }
      }
    }
  ]
}
```

------

# Configurando o compartilhamento entre contas para aplicativos de IA de parceiros de SageMaker IA da Amazon
<a name="partner-app-resource-sharing-ram"></a>

A Amazon SageMaker AI se integra com AWS Resource Access Manager (AWS RAM) para permitir o compartilhamento de recursos. AWS RAM é um serviço que permite que você compartilhe alguns recursos de SageMaker IA da Amazon com outras pessoas Contas da AWS ou por meio dela AWS Organizations. Com AWS RAM, você compartilha recursos de sua propriedade criando um *compartilhamento de recursos*. Um compartilhamento de atributos especifica os atributos a serem compartilhados, e os consumidores com os quais compartilhá-los. Os consumidores podem ser específicos Contas da AWS dentro ou fora de sua organização em AWS Organizations.

Para obter mais informações sobre AWS RAM, consulte o *[Guia AWS RAM do usuário](https://docs.aws.amazon.com/ram/latest/userguide/)*.

Este tópico explica como compartilhar recursos que você possui e como usar os recursos que são compartilhados com você.

**Topics**
+ [Pré-requisitos para compartilhar um aplicativo Amazon SageMaker Partner AI](#partner-app-resource-sharing-ram-prereqs)
+ [Compartilhando um aplicativo Amazon SageMaker Partner AI](#partner-app-resource-sharing-share)
+ [Aceitar convites de compartilhamento de recursos](#partner-app-resource-sharing-responses)
+ [Identificação de um aplicativo Amazon SageMaker Partner AI compartilhado](#sharing-identify)
+ [Responsabilidades e permissões para aplicativos compartilhados de IA do Amazon SageMaker Partner](#sharing-perms)

## Pré-requisitos para compartilhar um aplicativo Amazon SageMaker Partner AI
<a name="partner-app-resource-sharing-ram-prereqs"></a>
+ Para compartilhar um aplicativo Amazon SageMaker Partner AI, você deve possuí-lo em seu Conta da AWS. Isso significa que o recurso deve ser alocado ou provisionado em sua conta. Você não pode compartilhar um aplicativo Amazon SageMaker Partner AI que tenha sido compartilhado com você.
+ Para compartilhar um aplicativo Amazon SageMaker Partner AI com sua organização ou uma unidade organizacional em AWS Organizations, você deve habilitar o compartilhamento com AWS Organizations. Para obter mais informações, consulte [Habilitar o compartilhamento com o AWS Organizations](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-orgs) no *Guia do usuário do AWS RAM *.

## Compartilhando um aplicativo Amazon SageMaker Partner AI
<a name="partner-app-resource-sharing-share"></a>

Para compartilhar um aplicativo Amazon SageMaker Partner AI, você deve adicioná-lo a um compartilhamento de recursos. Um compartilhamento de recursos é um recurso do AWS RAM que permite que você compartilhe seus recursos entre Contas da AWS. Um compartilhamento de recursos especifica os recursos a serem compartilhados, e os clientes com os quais compartilhá-los. Quando você compartilha um aplicativo Amazon SageMaker Partner AI usando o [console Amazon SageMaker AI](https://console.aws.amazon.com/sagemaker), você o adiciona a um compartilhamento de recursos existente. Para adicionar o aplicativo Amazon SageMaker Partner AI a um novo compartilhamento de recursos, você deve primeiro criar o compartilhamento de recursos usando o [AWS RAM console](https://console.aws.amazon.com/ram).

Você pode compartilhar um aplicativo Amazon SageMaker Partner AI que você possui usando o console Amazon SageMaker AI, o AWS RAM console ou AWS CLI o.

**Para compartilhar um aplicativo Amazon SageMaker Partner AI que você possui usando o console Amazon SageMaker AI**

1. Faça login no Console de gerenciamento da AWS e abra o AWS RAM console em [https://console.aws.amazon.com/ram/casa](https://console.aws.amazon.com/ram/home).

1. No painel principal, escolha **Criar um compartilhamento de recursos**.

1. Insira um nome para o compartilhamento de recursos que você deseja criar.

1. Na seção **Recursos**, em **Tipo de recurso**, selecione **Aplicativos de parceiros de SageMaker IA**. Os aplicativos para parceiros que você pode compartilhar aparecerão na tabela.

1. Selecione os aplicativos para parceiros que você deseja compartilhar.

1. Opcionalmente, especifique as tags e escolha **Próximo**.

1. Especifique Contas da AWS com os quais você deseja compartilhar seus aplicativos parceiros.

1. Analise sua configuração de compartilhamento de recursos e selecione **Criar compartilhamento de recursos**. O serviço pode levar alguns minutos para concluir a criação do compartilhamento de recursos.

**Para compartilhar um aplicativo Amazon SageMaker Partner AI que você possui usando o AWS RAM console**  
Consulte [Criar um compartilhamento de recursos](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-create) no *Manual do usuário do AWS RAM *.

**Para compartilhar um aplicativo Amazon SageMaker Partner AI que você possui usando o AWS CLI**  
Use o comando [create-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html).

## Aceitar convites de compartilhamento de recursos
<a name="partner-app-resource-sharing-responses"></a>

Quando o proprietário de um recurso configura um compartilhamento de recursos, cada consumidor Conta da AWS recebe um convite para participar do compartilhamento de recursos. O consumidor Contas da AWS deve aceitar o convite para obter acesso a todos os recursos compartilhados.

Para obter mais informações sobre como aceitar um convite de compartilhamento de recursos por meio de AWS RAM, consulte [Usando AWS recursos compartilhados](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-shared.html) no *Guia do Usuário do AWS Resource Access Manager*.

## Identificação de um aplicativo Amazon SageMaker Partner AI compartilhado
<a name="sharing-identify"></a>

Proprietários e consumidores podem identificar aplicativos de IA compartilhados do Amazon SageMaker Partner usando o console Amazon SageMaker AI AWS CLI e.

**Para identificar um aplicativo Amazon SageMaker Partner AI compartilhado usando o console Amazon SageMaker AI**  
Consulte [Aplicativos de IA para parceiros no Studio](partner-apps-studio.md).

**Para identificar um aplicativo Amazon SageMaker Partner AI compartilhado usando o AWS CLI**  
Use o comando [list-partner-apps](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/list-partner-apps.html). O comando retorna os aplicativos Amazon SageMaker Partner AI que você possui e os aplicativos Amazon SageMaker Partner AI que estão compartilhados com você. `OwnerId`mostra o Conta da AWS ID do proprietário do aplicativo Amazon SageMaker Partner AI.

## Responsabilidades e permissões para aplicativos compartilhados de IA do Amazon SageMaker Partner
<a name="sharing-perms"></a>

A conta com a qual um aplicativo Amazon SageMaker Partner AI é compartilhado precisa ter a seguinte AWS Identity and Access Management política.

------
#### [ 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 Conta da AWS-1", "App-owner Conta da AWS-2"]        
        }
      },
      "Resource" : "arn:aws:sagemaker:*:*:partner-app/*"
    }
  ]
}
```

------