Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Adaptation de votre tâche d'entraînement pour accéder aux images dans un registre Docker privé
Vous pouvez utiliser un registre Docker
Création et stockage de vos images dans un registre Docker privé
Créez un registre Docker privé pour stocker vos images. Votre registre doit :
-
utiliser le protocole Docker Registry HTTP API
. -
être accessible depuis le même VPC spécifié dans le VpcConfigparamètre de l'API.
CreateTrainingJob
EntrezVpcConfig
lorsque vous créez votre tâche d'entraînement. -
être sécurisé à l'aide d'un certificat TLS
provenant d'une autorité de certification (CA) publique connue.
Pour plus d'informations sur la création d'un registre Docker, consultez Deploy a registry server
Configurez votre VPC et SageMaker votre tâche de formation
SageMaker L'IA utilise une connexion réseau au sein de votre VPC pour accéder aux images de votre registre Docker. Pour utiliser ces images dans votre registre Docker à des fins d'entraînement, le registre doit être accessible à partir d'un Amazon VPC dans votre compte. Pour de plus amples informations, veuillez consulter Utilisation d'un registre Docker nécessitant une authentification pour l'entraînement.
Vous devez également configurer votre tâche d'entraînement pour qu'elle se connecte au même VPC auquel votre registre Docker a accès. Pour plus d'informations, consultez Configuration d'une tâche d'entraînement pour l'accès à Amazon VPC.
Création d'une tâche d'entraînement à l'aide d'une image provenant de votre registre Docker privé
Pour utiliser une image provenant de votre registre Docker privé à des fins d'entraînement, utilisez le guide suivant pour configurer votre image, et configurer et créer une tâche d'entraînement. Les exemples de code suivants utilisent le AWS SDK for Python (Boto3) client.
-
Créez un objet de configuration d'image d'entraînement et entrez
Vpc
dans le champTrainingRepositoryAccessMode
comme suit.training_image_config = { 'TrainingRepositoryAccessMode': 'Vpc' }
Note
Si votre registre Docker privé nécessite une authentification, vous devez ajouter un objet
TrainingRepositoryAuthConfig
à l'objet de configuration d'image d'entraînement. Vous devez également spécifier l'Amazon Resource Name (ARN) d'une AWS Lambda fonction qui fournit des informations d'accès à l' SageMaker IA à l'aide duTrainingRepositoryCredentialsProviderArn
champ de l'TrainingRepositoryAuthConfig
objet. Pour plus d'informations, consultez l'exemple de structure de code ci-dessous.training_image_config = { 'TrainingRepositoryAccessMode': 'Vpc', 'TrainingRepositoryAuthConfig': { 'TrainingRepositoryCredentialsProviderArn': '
arn:aws:lambda:Region:Acct:function:FunctionName
' } }Pour de plus amples informations sur la création de la fonction Lambda pour fournir une authentification, veuillez consulter Utilisation d'un registre Docker nécessitant une authentification pour l'entraînement.
-
Utilisez un client Boto3 pour créer une tâche d'entraînement et transmettre la configuration correcte à l'API create_training_job. Les instructions suivantes vous montrent comment configurer les composants et créer une tâche d'entraînement.
-
Créez l'objet
AlgorithmSpecification
que vous souhaitez transmettre àcreate_training_job
. Utilisez l'objet de configuration d'image d'entraînement que vous avez créé à l'étape précédente, comme illustré dans l'exemple de code suivant.algorithm_specification = { 'TrainingImage': '
myteam.myorg.com/docker-local/my-training-image:<IMAGE-TAG>
', 'TrainingImageConfig': training_image_config, 'TrainingInputMode': 'File
' }Note
Pour utiliser une version fixe plutôt qu'une version mise à jour d'une image, reportez-vous au résumé
de l'image plutôt qu'à son nom ou son identification. -
Spécifiez le nom de la tâche d'entraînement et le rôle que vous souhaitez transmettre à
create_training_job
, comme illustré dans l'exemple de code suivant.training_job_name = '
private-registry-job
' execution_role_arn = 'arn:aws:iam::123456789012:role/SageMakerExecutionRole
' -
Spécifiez un groupe de sécurité et un sous-réseau dans la configuration du VPC pour votre tâche d'entraînement. Votre registre Docker privé doit autoriser le trafic entrant provenant des groupes de sécurité que vous spécifiez, comme illustré dans l'exemple de code suivant.
vpc_config = { 'SecurityGroupIds': ['
sg-0123456789abcdef0
'], 'Subnets': ['subnet-0123456789abcdef0
','subnet-0123456789abcdef1
'] }Note
Si votre sous-réseau ne se trouve pas dans le même VPC que votre registre Docker privé, vous devez configurer une connexion réseau entre les deux. VPCs SeeConnect VPCs en utilisant le peering VPC pour plus d'informations.
-
Spécifiez la configuration des ressources, y compris les instances de calcul de machine learning et les volumes de stockage à utiliser pour l'entraînement, comme indiqué dans l'exemple de code suivant.
resource_config = { 'InstanceType': '
ml.m4.xlarge
', 'InstanceCount':1
, 'VolumeSizeInGB':10
, } -
Spécifiez la configuration des données d'entrée et de sortie, l'emplacement de stockage du jeu de données d'entraînement et l'emplacement où vous souhaitez stocker les artefacts de modèle, comme indiqué dans l'exemple de code suivant.
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
' } -
Spécifiez le nombre maximal de secondes de l'exécution d'une tâche d'entraînement de modèle comme indiqué dans l'exemple de code suivant.
stopping_condition = { 'MaxRuntimeInSeconds':
1800
} -
Enfin, créez la tâche d'entraînement à l'aide des paramètres que vous avez spécifiés aux étapes précédentes, comme indiqué dans l'exemple de code suivant.
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)
-