Créer manuellement des entités de suivi - Amazon SageMaker

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.

Créer manuellement des entités de suivi

Vous pouvez créer manuellement des entités de suivi pour n'importe quelle propriété afin d'établir la gouvernance du modèle, de reproduire votre flux de travail et de conserver un enregistrement de votre historique de travail. Pour plus d'informations sur les entités de suivi créées SageMaker automatiquement par Amazon, consultezAmazon SageMaker —Entités de suivi créées. Le didacticiel suivant décrit les étapes nécessaires pour créer et associer manuellement des artefacts entre une tâche de SageMaker formation et un terminal, puis suivre le flux de travail.

Vous pouvez ajouter des balises à toutes les entités, à l'exception des associations. Les balises sont des paires clé-valeur arbitraires qui fournissent des informations personnalisées. Vous pouvez filtrer ou trier une liste ou une requête de recherche par balises. Pour plus d'informations, consultez la section Marquage AWS des ressources dans le Références générales AWS.

Pour un exemple de carnet expliquant comment créer des entités de lignage, consultez le bloc-notes Amazon SageMaker Lineage dans le référentiel d' SageMaker exemples GitHub Amazon.

Créer manuellement des entités

La procédure suivante explique comment créer et associer des artefacts entre une tâche de SageMaker formation et un point de terminaison. Procédez comme suit :

Importer des entités de suivi et des associations
  1. Importez les entités de suivi de lignée.

    import sys !{sys.executable} -m pip install -q sagemaker from sagemaker import get_execution_role from sagemaker.session import Session from sagemaker.lineage import context, artifact, association, action import boto3 boto_session = boto3.Session(region_name=region) sagemaker_client = boto_session.client("sagemaker")
  2. Créez les artefacts d'entrée et de sortie.

    code_location_arn = artifact.Artifact.create( artifact_name='source-code-location', source_uri='s3://...', artifact_type='code-location' ).artifact_arn # Similar constructs for train_data_location_arn and test_data_location_arn model_location_arn = artifact.Artifact.create( artifact_name='model-location', source_uri='s3://...', artifact_type='model-location' ).artifact_arn
  3. Entraînez le modèle et obtenez le trial_component_arn qui représente la tâche d'entraînement.

  4. Associez les artefacts d'entrée et les artefacts de sortie à la tâche d'entraînement (composant d'essai).

    input_artifacts = [code_location_arn, train_data_location_arn, test_data_location_arn] for artifact_arn in input_artifacts: try: association.Association.create( source_arn=artifact_arn, destination_arn=trial_component_arn, association_type='ContributedTo' ) except: logging.info('association between {} and {} already exists', artifact_arn, trial_component_arn) output_artifacts = [model_location_arn] for artifact_arn in output_artifacts: try: association.Association.create( source_arn=trial_component_arn, destination_arn=artifact_arn, association_type='Produced' ) except: logging.info('association between {} and {} already exists', artifact_arn, trial_component_arn)
  5. Créez le point de terminaison d'inférence.

    predictor = mnist_estimator.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge')
  6. Créez le contexte de point de terminaison.

    from sagemaker.lineage import context endpoint = sagemaker_client.describe_endpoint(EndpointName=predictor.endpoint_name) endpoint_arn = endpoint['EndpointArn'] endpoint_context_arn = context.Context.create( context_name=predictor.endpoint_name, context_type='Endpoint', source_uri=endpoint_arn ).context_arn
  7. Associez la tâche d'entraînement (composant d'essai) et le contexte du point de terminaison.

    association.Association.create( source_arn=trial_component_arn, destination_arn=endpoint_context_arn )

Suivi manuel d'un flux

Vous pouvez effectuer un suivi manuel du flux créé dans la section précédente.

Compte tenu du nom de ressource Amazon (ARN) du point de terminaison indiqué dans l'exemple précédent, la procédure suivante vous montre comment suivre le flux de travail jusqu'aux ensembles de données utilisés pour entraîner le modèle déployé sur le point de terminaison. Procédez comme suit :

Pour suivre un flux du point de terminaison à la source de données d'entraînement
  1. Importez les entités de suivi.

    import sys !{sys.executable} -m pip install -q sagemaker from sagemaker import get_execution_role from sagemaker.session import Session from sagemaker.lineage import context, artifact, association, action import boto3 boto_session = boto3.Session(region_name=region) sagemaker_client = boto_session.client("sagemaker")
  2. Obtenez le contexte du point de terminaison à partir du point de terminaisonARN.

    endpoint_context_arn = sagemaker_client.list_contexts( SourceUri=endpoint_arn)['ContextSummaries'][0]['ContextArn']
  3. Récupérez le composant d'essai à partir de l'association entre le composant d'essai et le contexte du point de terminaison.

    trial_component_arn = sagemaker_client.list_associations( DestinationArn=endpoint_context_arn)['AssociationSummaries'][0]['SourceArn']
  4. Obtenez l'artefact d'emplacement des données d'entraînement à partir de l'association entre le composant d'essai et le contexte du point de terminaison.

    train_data_location_artifact_arn = sagemaker_client.list_associations( DestinationArn=trial_component_arn, SourceType='Model')['AssociationSummaries'][0]['SourceArn']
  5. Obtenez l'emplacement des données d'entraînement à partir de l'artefact d'emplacement des données d'entraînement.

    train_data_location = sagemaker_client.describe_artifact( ArtifactArn=train_data_location_artifact_arn)['Source']['SourceUri'] print(train_data_location)

    Réponse :

    s3://sagemaker-sample-data-us-east-2/mxnet/mnist/train

Limites

Vous pouvez créer une association entre n'importe quelle entité, expérience et lignée, à l'exception des éléments suivants :

  • Vous ne pouvez pas créer une association entre deux entités d'expérience. Les entités d'expérience comprennent des expériences, des essais et des composants d'essai.

  • Vous pouvez créer une association avec une autre association.

Une erreur se produit si vous essayez de créer une entité qui existe déjà.

Nombre maximal d'entités de lignée créées manuellement
  • Actions : 3 000

  • Artefact s: 6 000

  • Associations : 6 000

  • Contextes : 500

Il n'y a aucune limite au nombre d'entités de lignage créées automatiquement par Amazon SageMaker.