Creación manual de entidades de seguimiento - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Creación manual de entidades de seguimiento

Puede crear manualmente entidades de seguimiento para cualquier propiedad a fin de establecer un modelo de gobierno, reproducir su flujo de trabajo y mantener un registro de su historial de trabajo. Para obtener información sobre las entidades de seguimiento que Amazon crea SageMaker automáticamente, consultaAmazon SageMaker: entidades de seguimiento creadas. El siguiente tutorial muestra los pasos necesarios para crear y asociar manualmente artefactos entre un trabajo de SageMaker formación y un punto final y, a continuación, realizar un seguimiento del flujo de trabajo.

Puede agregar etiquetas a todas las entidades, excepto a las asociaciones. Las etiquetas son pares clave-valor arbitrarios que proporcionan información personalizada. Puede filtrar u ordenar una lista o consulta de búsqueda por etiquetas. Para obtener más información, consulte Etiquetado de AWS recursos en. Referencia general de AWS

Para ver un ejemplo de bloc de notas que muestre cómo crear entidades de linaje, consulta el cuaderno Amazon SageMaker Lineage en el repositorio de SageMaker ejemplos GitHub de Amazon.

Creación manual de entidades

El siguiente procedimiento muestra cómo crear y asociar artefactos entre un trabajo de SageMaker formación y un punto final. Debe realizar los pasos siguientes:

Importe entidades de seguimiento y asociaciones
  1. Importe las entidades de seguimiento del linaje.

    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. Cree los artefactos de entrada y salida.

    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. Entrene el modelo y obtenga el trial_component_arn que represente el trabajo de entrenamiento.

  4. Asocie los artefactos de entrada y los artefactos de salida al trabajo de entrenamiento (componente de prueba).

    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. Cree el punto de conexión de inferencia.

    predictor = mnist_estimator.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge')
  6. Cree el contexto del punto de conexión.

    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. Asocie el trabajo de entrenamiento (componente de prueba) y el contexto del punto de conexión.

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

Seguimiento manual de un flujo de trabajo

Puede realizar un seguimiento manual del flujo de trabajo creado en la sección anterior.

Dado el Amazon Resource Name (ARN) del punto final del ejemplo anterior, el siguiente procedimiento le muestra cómo realizar un seguimiento del flujo de trabajo hasta los conjuntos de datos utilizados para entrenar el modelo que se implementó en el punto final. Debe realizar los pasos siguientes:

Para realizar un seguimiento de un flujo de trabajo desde el punto de conexión hasta el origen de datos de entrenamiento
  1. Importe las entidades de seguimiento.

    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. Obtenga el contexto del punto final desde el punto finalARN.

    endpoint_context_arn = sagemaker_client.list_contexts( SourceUri=endpoint_arn)['ContextSummaries'][0]['ContextArn']
  3. Obtenga el componente de prueba a partir de la asociación entre el componente de prueba y el contexto del punto de conexión.

    trial_component_arn = sagemaker_client.list_associations( DestinationArn=endpoint_context_arn)['AssociationSummaries'][0]['SourceArn']
  4. Obtenga el artefacto de ubicación de los datos de entrenamiento a partir de la asociación entre el componente de prueba y el contexto del punto de conexión.

    train_data_location_artifact_arn = sagemaker_client.list_associations( DestinationArn=trial_component_arn, SourceType='Model')['AssociationSummaries'][0]['SourceArn']
  5. Obtenga la ubicación de los datos de entrenamiento a partir del artefacto de ubicación de los datos de entrenamiento.

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

    Respuesta:

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

Límites

Puede crear una asociación entre cualquier entidad, experimento o linaje, excepto los siguientes:

  • No puede crear una asociación entre dos entidades del experimento. Las entidades del experimento se componen de experimentos, pruebas y componentes de prueba.

  • Puede crear una asociación con otra asociación.

Se produce un error si intenta crear una entidad que ya existe.

Número máximo de entidades de linaje creadas manualmente
  • Acciones: 3000

  • Artefactos: 6000

  • Asociaciones: 6000

  • Contextos: 500

No hay límite en cuanto al número de entidades de linaje que Amazon SageMaker crea automáticamente.