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á.
Adapte o trabalho de treinamento para acessar as imagens em um registro privado do Docker
Você pode usar um registro privado do Docker
Criar e armazenar as imagens em um registro Docker privado
Criar um registro Docker privado para armazenar as imagens. Seu registro deve:
-
usar o protocolo API HTTP de registro do Docker
-
ser acessível a partir da mesma VPC especificada no VpcConfigparâmetro na
CreateTrainingJob
API. InsiraVpcConfig
ao criar o trabalho de treinamento. -
protegido com um certificado TLS
de uma autoridade de certificação pública conhecida.
Para obter mais informações sobre como criar um registro do Docker, consulte Como implantar um servidor de registro
Configure sua VPC e SageMaker seu trabalho de treinamento
SageMaker A IA usa uma conexão de rede em sua VPC para acessar imagens em seu registro do Docker. Para usar as imagens no registro do Docker para treinamento, o registro deve estar acessível em uma Amazon VPC na sua conta. Para obter mais informações, consulte Use um registro do Docker que exija autenticação para treinamento.
Você também deve configurar o trabalho de treinamento para se conectar à mesma VPC à qual seu registro do Docker tem acesso. Para obter mais informações, consulte Configurar um trabalho de treinamento para acesso ao Amazon VPC .
Crie um trabalho de treinamento usando uma imagem do seu registro privado do Docker
Para usar uma imagem do seu registro privado do Docker para treinamento, use o guia a seguir para configurar a imagem, configurar e criar um trabalho de treinamento. Os exemplos de código a seguir usam o AWS SDK for Python (Boto3) cliente.
-
Crie um objeto de configuração de imagem de treinamento e insira
Vpc
, o campoTrainingRepositoryAccessMode
da seguinte forma.training_image_config = { 'TrainingRepositoryAccessMode': 'Vpc' }
nota
Se seu registro privado do Docker exigir autenticação, você deverá adicionar um objeto
TrainingRepositoryAuthConfig
ao objeto de configuração da imagem de treinamento. Você também deve especificar o Amazon Resource Name (ARN) de uma AWS Lambda função que fornece credenciais de acesso à SageMaker IA usando oTrainingRepositoryCredentialsProviderArn
campo do objeto.TrainingRepositoryAuthConfig
Para obter mais informações, consulte a estrutura de código de exemplo a seguir.training_image_config = { 'TrainingRepositoryAccessMode': 'Vpc', 'TrainingRepositoryAuthConfig': { 'TrainingRepositoryCredentialsProviderArn': '
arn:aws:lambda:Region:Acct:function:FunctionName
' } }Para obter informações sobre como criar a função do Lambda para fornecer autenticação, consulte Use um registro do Docker que exija autenticação para treinamento.
-
Use um cliente Boto3 para criar um trabalho de treinamento e passar a configuração correta para a API create_training_job. As instruções a seguir mostram como configurar os componentes e criar um trabalho de treinamento.
-
Crie o objeto
AlgorithmSpecification
que você deseja passar paracreate_training_job
. Use o objeto de configuração da imagem de treinamento criado na etapa anterior, conforme exibido no seguinte exemplo de código.algorithm_specification = { 'TrainingImage': '
myteam.myorg.com/docker-local/my-training-image:<IMAGE-TAG>
', 'TrainingImageConfig': training_image_config, 'TrainingInputMode': 'File
' }nota
Para usar uma versão fixa, em vez de uma versão atualizada de uma imagem, consulte o resumo
da imagem em vez de usar o nome ou a tag. -
Especifique o nome do trabalho de treinamento e da função para a qual deseja passar para
create_training_job
, conforme mostrado no seguinte exemplo de código.training_job_name = '
private-registry-job
' execution_role_arn = 'arn:aws:iam::123456789012:role/SageMakerExecutionRole
' -
Especifique um grupo de segurança e uma sub-rede para a configuração da VPC para o trabalho de treinamento. Seu registro privado do Docker deve permitir o tráfego de entrada dos grupos de segurança que você especificar, conforme mostrado no exemplo de código a seguir.
vpc_config = { 'SecurityGroupIds': ['
sg-0123456789abcdef0
'], 'Subnets': ['subnet-0123456789abcdef0
','subnet-0123456789abcdef1
'] }nota
Se sua sub-rede não estiver na mesma VPC que seu registro privado do Docker, você deverá configurar uma conexão de rede entre as duas. VPCs SeeConnect VPCs usando o peering de VPC para obter mais informações.
-
Especifique a configuração de recursos, incluindo instâncias de computação de machine learning e volumes de armazenamento a serem usados para treinamento, conforme mostrado no exemplo de código a seguir.
resource_config = { 'InstanceType': '
ml.m4.xlarge
', 'InstanceCount':1
, 'VolumeSizeInGB':10
, } -
Especifique a configuração dos dados de entrada e saída, onde o conjunto de dados de treinamento é armazenado e onde você deseja armazenar os artefatos do modelo, conforme mostrado no exemplo de código a seguir.
input_data_config = [ { "ChannelName": "training", "DataSource": { "S3DataSource": { "S3DataDistributionType": "
FullyReplicated
", "S3DataType": "S3Prefix
", "S3Uri": "s3://your-training-data-bucket/training-data-folder
" } } } ] output_data_config = { 'S3OutputPath': 's3://your-output-data-bucket/model-folder
' } -
Especifique o número máximo de segundos que um trabalho de treinamento de modelo pode ser executado, conforme mostrado no exemplo de código a seguir.
stopping_condition = { 'MaxRuntimeInSeconds':
1800
} -
Por fim, crie o trabalho de treinamento usando os parâmetros especificados nas etapas anteriores, conforme exibido no seguinte exemplo de código.
import boto3 sm = boto3.client('sagemaker') try: resp = sm.create_training_job( TrainingJobName=training_job_name, AlgorithmSpecification=algorithm_specification, RoleArn=execution_role_arn, InputDataConfig=input_data_config, OutputDataConfig=output_data_config, ResourceConfig=resource_config, VpcConfig=vpc_config, StoppingCondition=stopping_condition ) except Exception as e: print(f'error calling CreateTrainingJob operation: {e}') else: print(resp)
-