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á.
Acesse um contêiner de treinamento AWS Systems Manager para depuração remota
Você pode se conectar com segurança aos contêineres de SageMaker treinamento por meio do AWS Systems Manager (SSM). Isso dá a você um acesso em nível de shell às tarefas de treinamento de depuração que estão sendo executadas no contêiner. Você também pode registrar comandos e respostas que são transmitidos para a Amazon CloudWatch. Se você usa sua própria Amazon Virtual Private Cloud (VPC) para treinar um modelo, você pode usá-la para configurar um endpoint de VPC AWS PrivateLink para SSM e conectar-se a contêineres de forma privada por meio do SSM.
Você pode se conectar aos SageMaker Framework Containers
Configurar permissões do IAM
Para habilitar o SSM em seu contêiner de SageMaker treinamento, você precisa configurar uma função do IAM para o contêiner. Para que você ou os usuários da sua AWS conta acessem os contêineres de treinamento por meio do SSM, você precisa configurar os usuários do IAM com permissões para usar o SSM.
IAM role (Perfil do IAM)
Para que um contêiner de SageMaker treinamento comece com o agente SSM, forneça uma função do IAM com permissões de SSM.
Para habilitar a depuração remota para seu trabalho de treinamento, é SageMaker necessário iniciar o agente SSM no contêiner de treinamento quando o trabalho de treinamento for iniciado. Para permitir que o agente SSM se comunique com o serviço SSM, adicione a política a seguir à função do IAM que você usa para executar seu trabalho de treinamento.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssmmessages:CreateControlChannel", "ssmmessages:CreateDataChannel", "ssmmessages:OpenControlChannel", "ssmmessages:OpenDataChannel" ], "Resource": "*" } ] }
IAM user (Usuário do IAM)
Adicione a política a seguir para fornecer a um usuário do IAM permissões de sessão de SSM para se conectar a um destino de SSM. Nesse caso, o alvo do SSM é um contêiner de SageMaker treinamento.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:TerminateSession" ], "Resource": "*" } ] }
Você pode restringir os usuários do IAM a se conectarem somente a contêineres para trabalhos de treinamento específicos adicionando a Condition
chave, conforme mostrado no exemplo de política a seguir.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:StartSession", "ssm:TerminateSession" ], "Resource": [ "*" ], "Condition": { "StringLike": { "ssm:resourceTag/aws:ssmmessages:target-id": [ "sagemaker-training-job:*" ] } } } ] }
Você também pode usar explicitamente a chave de sagemaker:EnableRemoteDebug
condição para restringir a depuração remota. Veja a seguir um exemplo de política para usuários do IAM restringirem a depuração remota.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyRemoteDebugInTrainingJob", "Effect": "Allow", "Action": [ "sagemaker:CreateTrainingJob", "sagemaker:UpdateTrainingJob" ], "Resource": "*", "Condition": { "BoolIfExists": { "sagemaker:EnableRemoteDebug": false } } } ] }
Para obter mais informações, consulte Chaves de condição para a Amazon SageMaker na Referência AWS de autorização de serviço.
Como habilitar a depuração remota para um trabalho de treinamento SageMaker
Nesta seção, saiba como ativar a depuração remota ao iniciar ou atualizar um trabalho de treinamento na Amazon. SageMaker
Acesse seu contêiner de treinamento
Você pode acessar um contêiner de treinamento quando o trabalho SecondaryStatus
de treinamento correspondente forTraining
. Os exemplos de código a seguir demonstram como verificar o status do seu trabalho de treinamento usando a DescribeTrainingJob
API, como verificar os registros do trabalho de treinamento e como fazer login no contêiner de treinamento. CloudWatch
Para verificar o status de um trabalho de treinamento
Para encontrar o nome do host de um contêiner de treinamento
Para se conectar ao contêiner de treinamento por meio do SSM, use esse formato para a ID de destino:sagemaker-training-job:<training-job-name>_algo-<n>
, onde algo-<n>
está o nome do host do contêiner. Se seu trabalho estiver sendo executado em uma única instância, o host estará semprealgo-1
. Se você executar um trabalho de treinamento distribuído em várias instâncias, SageMaker cria um número igual de hosts e fluxos de log. Por exemplo, se você usar 4 instânciasalgo-1
, SageMaker cria algo-2
algo-3
,, algo-4
e. Você deve determinar qual stream de log deseja depurar e seu número de host. Para acessar fluxos de log associados a um trabalho de treinamento, faça o seguinte.
Abra o SageMaker console da Amazon em https://console.aws.amazon.com/sagemaker/
. -
No painel de navegação esquerdo, escolha Treinamento e, em seguida, escolha Trabalhos de treinamento.
-
Na lista de trabalhos de treinamento, escolha o trabalho de treinamento que você deseja depurar. A página de detalhes do trabalho de treinamento é aberta.
-
Na seção Monitor, escolha Exibir registros. A lista de streams do registro de tarefas de treinamento relacionado é aberta no CloudWatch console.
-
Os nomes dos fluxos de log aparecem em
<training-job-name>/algo-<n>-<time-stamp>
formato,algo-<n>
representando o nome do host.
Para saber mais sobre como SageMaker gerencia as informações de configuração para treinamento distribuído em várias instâncias, consulte Configuração de treinamento distribuído.
Para acessar o contêiner de treinamento
Use o comando a seguir no terminal para iniciar a sessão SSM (aws ssm start-session
) e conectar-se ao contêiner de treinamento.
aws ssm start-session --target sagemaker-training-job:
<training-job-name>
_algo-<n>
Por exemplo, se o nome do trabalho de treinamento for training-job-test-remote-debug
e o nome do host foralgo-1
, a ID de destino serásagemaker-training-job:training-job-test-remote-debug_algo-1
. Se a saída desse comando for semelhante aStarting session with SessionId:xxxxx
, a conexão será bem-sucedida.
Acesso SSM com AWS PrivateLink
Se seus contêineres de treinamento forem executados em uma Amazon Virtual Private Cloud que não esteja conectada à Internet pública, você poderá usá-los AWS PrivateLink para habilitar o SSM. AWS PrivateLink restringe todo o tráfego de rede entre suas instâncias de endpoint, SSM e Amazon EC2 à rede Amazon. Para obter mais informações sobre como configurar o acesso SSM com AWS PrivateLink, consulte Configurar um endpoint Amazon VPC para o Session Manager.
Registrar comandos e resultados da sessão SSM
Depois de seguir as instruções em Criar um documento de preferências do Session Manager (linha de comando), você pode criar documentos SSM que definam suas preferências para sessões SSM. Você pode usar documentos SSM para configurar as opções da sessão, incluindo criptografia de dados, duração da sessão e registro. Por exemplo, você pode especificar se deseja armazenar dados de log de sessão em um bucket do Amazon Simple Storage Service (Amazon S3) ou em um grupo Amazon CloudWatch Logs. Você pode criar documentos que definam preferências gerais para todas as sessões de uma AWS conta e/ou documentos que definam preferências para sessões individuais. Região da AWS
Solução de problemas verificando os registros de erros do SSM
A Amazon SageMaker carrega erros do agente SSM para seus CloudWatch registros no grupo de /aws/sagemaker/TrainingJobs
registros. Os fluxos de log do agente SSM são nomeados neste formato:. <job-name>/algo-<n>-<timestamp>/ssm
Por exemplo, se você criar um trabalho de treinamento de dois nós chamadotraining-job-test-remote-debug
, o registro do trabalho de treinamento training-job-test-remote-debug/algo-<n>-<timestamp>
e vários registros de erros do agente SSM training-job-test-remote-debug/algo-<n>-<timestamp>/ssm
serão enviados para seus CloudWatch registros. Neste exemplo, você pode revisar os fluxos de */ssm
log para solucionar problemas de SSM.
training-job-test-remote-debug/algo-1-1680535238 training-job-test-remote-debug/algo-2-1680535238 training-job-test-remote-debug/algo-1-1680535238/ssm training-job-test-remote-debug/algo-2-1680535238/ssm
Considerações
Considere o seguinte ao usar a depuração SageMaker remota.
-
A depuração remota não é compatível com contêineres de SageMaker algoritmos ou contêineres a partir de então. SageMaker AWS Marketplace
-
Você não pode iniciar uma sessão de SSM para contêineres que tenham o isolamento de rede ativado porque o isolamento impede chamadas de rede de saída.