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á.
Usando os AWS CLI comandos para o SageMaker HyperPod APIs
Crie seu primeiro SageMaker HyperPod cluster usando os AWS CLI comandos para HyperPod.
Crie seu primeiro SageMaker HyperPod cluster com o Slurm
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 Após o tutorial, você criará um HyperPod cluster com três nós do Slurm, my-controller-group
my-login-group
, e. worker-group-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 o Função do IAM para SageMaker HyperPod comAmazonSageMakerClusterInstanceRolePolicy
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
. GitHub As subetapas a seguir mostram como baixar, o que modificar e como carregar os scripts de ciclo de vida de amostra em um bucket do Amazon S3. -
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/
-
Acesse o diretório
1.architectures/5.sagemaker_hyperpods/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. Personalize SageMaker HyperPod clusters usando scripts de ciclo de vida
-
Escreva um arquivo de configuração do Slurm e salve-o como
provisioning_params.json
. No arquivo, especifique os parâmetros básicos de configuração do Slurm para atribuir adequadamente os nós do Slurm aos grupos de instâncias do SageMaker HyperPod cluster. Neste tutorial, configure três nós do Slurm, chamadosmy-controller-group
,my-login-group
eworker-group-1
, conforme mostrado no exemplo de configuraçãoprovisioning_params.json
a seguir.{ "version": "1.0.0", "workload_manager": "
slurm
", "controller_group": "my-controller-group
", "login_group": "my-login-group
", "worker_groups": [ { "instance_group_name": "worker-group-1
", "partition_name": "partition-1
" } ] } -
Faça o upload de scripts em
s3://sagemaker-
. Você pode fazer isso no console do Amazon S3 ou executando o seguinte comando da AWS CLI do Amazon S3:<unique-s3-bucket-name>
/<lifecycle-script-directory>
/srcaws s3 sync \ ~/
local-dir-to-lifecycle-scripts
/* \ s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
-
-
Prepare um arquivo de CreateClustersolicitação no formato JSON e salve como
create_cluster.json
. O modelo de solicitação a seguir está alinhado com a configuração do nó Slurm definida noprovisioning_params.json
na Etapa 1.c. ParaExecutionRole
, forneça o ARN do perfil do IAM que você criou com oAmazonSageMakerClusterInstanceRolePolicy
gerenciado em Pré-requisitos para usar o SageMaker HyperPod.{
// Required: Specify the name of the cluster.
"ClusterName": "my-hyperpod-cluster
",// Required: Configure instance groups to be launched in the cluster
"InstanceGroups": [ {// Required: Specify the basic configurations to set up a controller node.
"InstanceGroupName": "my-controller-group
", "InstanceType": "ml.c5.xlarge
", "InstanceCount":1
, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
", "OnCreate": "on_create.sh
" }, "ExecutionRole": "${ROLE}
",// 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": "my-login-group
", "InstanceType": "ml.m5.4xlarge
", "InstanceCount":1
, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
", "OnCreate": "on_create.sh
" }, "ExecutionRole": "${ROLE}
" }, { "InstanceGroupName": "worker-group-1
", "InstanceType": "ml.trn1.32xlarge
", "InstanceCount":1
, "LifeCycleConfig": { "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
", "OnCreate": "on_create.sh
" }, "ExecutionRole": "${ROLE}
" } ] } -
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.
Se você receber um erro devido aos limites de recursos, altere o tipo de instância para uma com cotas suficientes em sua conta ou solicite cotas adicionais seguindo em SageMaker HyperPod cotas.
-
Execute
describe-cluster
para verificar o status do cluster.aws sagemaker describe-cluster --cluster-name
my-hyperpod-cluster
Depois que o status do cluster for alterado para
InService
, avance para a próxima etapa. -
Execute
list-cluster-nodes
para verificar os detalhes dos nós do cluster.aws sagemaker list-cluster-nodes --cluster-name
my-hyperpod-cluster
Isso retorna uma resposta e
InstanceId
é o que os usuários do cluster precisam para logar (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.
Exclua o cluster e limpe os recursos.
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 dois grupos de instâncias. Um deles usa uma instância C5, portanto, exclua 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.
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.