

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon SageMaker ML 계보 추적
<a name="lineage-tracking"></a>

**중요**  
2023년 11월 30일부터 이전 Amazon SageMaker Studio 환경이 이제 Amazon SageMaker Studio Classic으로 명명되었습니다. 다음 섹션은 Studio Classic 애플리케이션 사용에 관해 다룹니다. 업데이트된 Studio 환경 사용에 대한 자세한 내용은 [Amazon SageMaker Studio](studio-updated.md) 섹션을 참조하세요.  
Studio Classic은 기존 워크로드에 대해 유지 관리되지만 더 이상 온보딩에 사용할 수 없습니다. 기존 Studio Classic 애플리케이션만 중지하거나 삭제할 수 있으며 새 애플리케이션을 생성할 수 없습니다. [워크로드를 새 Studio 환경으로 마이그레이션하는](studio-updated-migrate.md) 것이 좋습니다.

Amazon SageMaker ML 계보 추적은 데이터 준비부터 모델 배포까지 기계 학습(ML) 워크플로의 단계에 대한 정보를 생성하고 저장합니다. 추적 정보를 사용하여 워크플로 단계를 재현하고, 모델 및 데이터세트 계보를 추적하고, 모델 거버넌스 및 감사 표준을 설정할 수 있습니다.

SageMaker AI의 계보 추적 기능은 백엔드에서 작동하여 모델 훈련 및 배포 워크플로와 관련된 모든 메타데이터를 추적합니다. 여기에는 훈련 작업, 사용된 데이터세트, 파이프라인, 엔드포인트, 실제 모델이 포함됩니다. 언제든지 계보 서비스를 쿼리하여 모델 훈련에 사용된 정확한 아티팩트를 찾을 수 있습니다. 사용된 데이터세트와 정확히 일치하는 데이터세트에 액세스할 수 있는 한, 이러한 아티팩트를 사용하여 동일한 ML 워크플로를 다시 만들어 모델을 재현할 수 있습니다. 시험 구성 요소는 훈련 작업을 추적합니다. 이 시험 구성 요소에는 훈련 작업의 일부로 사용되는 모든 파라미터가 있습니다. 전체 워크플로를 다시 실행할 필요가 없는 경우 훈련 작업을 재현하여 동일한 모델을 도출할 수 있습니다.

SageMaker AI 계보 추적을 사용하면 데이터 과학자와 모델 빌더는 다음 작업을 수행할 수 있습니다.
+ 모델 발견 실험의 실행 기록을 보관합니다.
+ 감사 및 규정 준수 검증을 위해 모델 계보 아티팩트를 추적하여 모델 거버넌스를 확립합니다.

다음 다이어그램은 Amazon SageMaker AI가 엔드투엔드 모델 훈련 및 배포 ML 워크플로에서 자동으로 생성하는 계보 그래프의 예시를 보여줍니다.

![\[\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/pipelines/PipelineLineageWorkflow.png)


**Topics**
+ [

# 계보 추적 엔터티
](lineage-tracking-entities.md)
+ [

# Amazon SageMaker AI에서 생성한 추적 엔터티
](lineage-tracking-auto-creation.md)
+ [

# 추적 엔터티 수동 생성
](lineage-tracking-manual-creation.md)
+ [

# 계보 엔터티 쿼리
](querying-lineage-entities.md)
+ [

# 교차 계정 계보 추적
](xaccount-lineage-tracking.md)

# 계보 추적 엔터티
<a name="lineage-tracking-entities"></a>

추적 엔터티는 엔드 투 엔드 기계 학습 워크플로의 모든 요소를 나타냅니다. 이 표현을 사용하여 모델 거버넌스를 설정하고, 워크플로를 재현하고, 작업 기록을 유지할 수 있습니다.

Amazon SageMaker AI는 처리 작업, 훈련 작업, 배치 변환 작업 등과 같은 SageMaker AI 작업을 생성할 때 시험 구성 요소 및 관련 시험 및 실험에 대한 추적 엔터티를 자동으로 생성합니다. 자동 추적 외에도 [추적 엔터티 수동 생성](lineage-tracking-manual-creation.md)을 통해 워크플로의 사용자 지정 단계를 모델링할 수 있습니다. 자세한 내용은 [Studio Classic의 Amazon SageMaker Experiments](experiments.md) 단원을 참조하십시오.

또한 SageMaker AI는 워크플로의 다른 단계에 대한 추적 엔터티를 자동으로 생성하므로 워크플로를 처음부터 끝까지 추적할 수 있습니다. 자세한 내용은 [Amazon SageMaker AI에서 생성한 추적 엔터티](lineage-tracking-auto-creation.md) 단원을 참조하십시오.

SageMaker AI에서 생성한 엔터티를 보완하기 위해 추가 엔터티를 생성할 수 있습니다. 자세한 내용은 [추적 엔터티 수동 생성](lineage-tracking-manual-creation.md) 단원을 참조하십시오.

SageMaker AI는 새 엔터티를 생성하는 대신 기존 엔터티를 재사용합니다. 예를 들어 고유한 `SourceUri`가 있는 아티팩트는 하나일 수 있습니다.

**계보 쿼리의 주요 개념**
+ **계보** - ML 워크플로의 다양한 엔터티 간 관계를 추적하는 메타데이터입니다.
+ **계보 쿼리** - 계보를 검사하고 엔터티 간 관계를 발견하는 작업입니다.
+ **계보 엔터티 - **계보를 구성하는 메타데이터 요소입니다.
+ **교차 계정 계보** - ML 워크플로는 두 개 이상의 계정에 걸쳐 있을 수 있습니다. 교차 계정 계보를 사용하면 공유 엔터티 리소스 간에 계보 연결을 자동으로 생성하도록 여러 계정을 구성할 수 있습니다. 그러면 계보 쿼리는 이러한 공유 계정에서도 엔터티를 반환할 수 있습니다.

다음과 같은 추적 엔터티가 정의됩니다.

**실험 엔터티**
+ [시험 구성 요소](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrialComponent.html) - 기계 학습 시험의 한 단계입니다. 처리 작업, 훈련 작업 및 배치 변환 작업이 포함됩니다.
+ [시험](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrial.html) - 일반적으로 모델을 생성하는 시험 구성 요소의 조합입니다.
+ [실험](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateExperiment.html) - 일반적으로 특정 사용 사례를 해결하는 데 초점을 맞춘 시험 그룹입니다.

**계보 엔터티**
+ [시험 구성 요소](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrialComponent.html) - 계보의 처리, 훈련 및 변환 작업을 나타냅니다. 또한 실험 관리의 일부이기도 합니다.
+ [컨텍스트](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateContext.html) - 다른 추적 또는 실험 엔터티를 논리적으로 그룹화합니다. 개념적으로 보면 실험과 시험은 컨텍스트입니다. 엔드포인트와 모델 패키지를 예로 들 수 있습니다.
+ [작업](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAction.html) - 작업 또는 활동을 나타냅니다. 일반적으로 작업에는 하나 이상의 입력 아티팩트 또는 출력 아티팩트가 포함됩니다. 몇 가지 예로는 워크플로 단계와 모델 배포가 있습니다.
+ [아티팩트](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateArtifact.html) - URI 주소 지정이 가능한 객체 또는 데이터를 나타냅니다. 아티팩트는 일반적으로 시험 구성 요소나 작업에 대한 입력 또는 출력입니다. 일부 예시로는 데이터세트(S3 버킷 URI) 또는 이미지(Amazon ECR 레지스트리 경로)가 있습니다.
+ [연결](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddAssociation.html) - 다른 추적 또는 실험 엔터티(예: 훈련 데이터 위치와 훈련 작업 간의 연결)를 연결합니다.

  연결에는 선택적 `AssociationType`속성이 있습니다. 각 유형의 권장 용도와 함께 다음 값을 사용할 수 있습니다. SageMaker AI는 사용에 제한을 두지 않습니다.
  + `ContributedTo` - 소스가 대상에 기여했거나 대상을 활성화하는 데 기여했습니다. 예를 들어, 훈련 데이터가 훈련 작업에 기여했습니다.
  + `AssociatedWith` - 소스가 대상에 연결되어 있습니다. 예를 들어, 승인 워크플로는 모델 배포와 연결됩니다.
  + `DerivedFrom` - 대상은 소스 수정입니다. 예를 들어, 처리 작업에 대한 채널 입력의 다이제스트 출력은 원래 입력에서 파생됩니다.
  + `Produced` - 소스가 대상을 생성했습니다. 예를 들어, 훈련 작업에서 모델 아티팩트가 생성되었습니다.
  + `SameAs` - 동일한 계보 엔터티가 서로 다른 계정에서 사용된 경우입니다.

**공통 속성**
+ **유형 속성**

  작업, 아티팩트 및 컨텍스트 엔터티에는 각각 유형 속성, `ActionType`, `ArtifactType`, `ContextType`이 있습니다.** 이 속성은 의미 있는 정보를 엔터티와 연결하고 List API에서 필터로 사용할 수 있는 사용자 지정 문자열입니다.
+ **소스 속성**

  작업, 아티팩트 및 컨텍스트 엔터티에는 `Source`속성이 있습니다. 이 속성은 엔터티가 나타내는 기본 URI를 제공합니다. 다음은 몇 가지 예시입니다.
  + 소스가 `EndpointArn`인 `UpdateEndpoint`작업입니다.
  + 소스가 `ImageUri`인 처리 작업의 이미지 아티팩트입니다.
  + 소스가 `EndpointArn`인 `Endpoint`컨텍스트입니다.
+ **메타데이터 속성**

  작업 및 아티팩트 엔터티에는 다음 정보를 제공할 수 있는 선택적 `Metadata`속성이 있습니다.
  + `ProjectId` - 모델이 속한 SageMaker AI MLOps 프로젝트의 ID를 예로 들 수 있습니다.
  + `GeneratedBy` - 모델 패키지 버전을 등록한 SageMaker AI 파이프라인 실행을 예로 들 수 있습니다.
  + `Repository` - 알고리즘이 포함된 리포지토리를 예로 들 수 있습니다.
  + `CommitId` - 알고리즘 버전의 커밋 ID를 예로 들 수 있습니다.

# Amazon SageMaker AI에서 생성한 추적 엔터티
<a name="lineage-tracking-auto-creation"></a>

Amazon SageMaker AI는 SageMaker AI 작업, 모델, 모델 패키지 및 엔드포인트(데이터를 사용할 수 있는 경우)에 대한 추적 엔터티를 자동으로 생성합니다. SageMaker AI에서 생성하는 계보 엔터티 수에는 제한이 없습니다.

추적 엔터티를 수동으로 생성하는 방법에 대한 자세한 내용은 [추적 엔터티 수동 생성](lineage-tracking-manual-creation.md)섹션을 참조하세요.

**Topics**
+ [

## SageMaker AI 작업을 위한 추적 엔터티
](#lineage-tracking-auto-creation-jobs)
+ [

## 모델 패키지의 추적 엔터티
](#lineage-tracking-auto-creation-model-package)
+ [

## 엔드포인트의 추적 엔터티
](#lineage-tracking-auto-creation-endpoint)

## SageMaker AI 작업을 위한 추적 엔터티
<a name="lineage-tracking-auto-creation-jobs"></a>

SageMaker AI는 각 SageMaker AI 작업에 대한 시험 구성 요소를 생성합니다. SageMaker AI는 아티팩트를 생성하여 작업 메타데이터 및 각 아티팩트와 작업 간의 연결을 추적합니다.

아티팩트는 다음 작업 속성에 대해 생성되며 SageMaker AI 작업의 Amazon 리소스 이름(ARN)에 연결됩니다. 아티팩트 `SourceUri`는 괄호로 나열됩니다.

**훈련 작업**
+ 훈련 알고리즘을 포함하는 이미지입니다(`TrainingImage`).
+ 각 입력 채널의 데이터 소스입니다(`S3Uri`).
+ 모델의 위치입니다(`S3OutputPath)`).
+ 관리형 스팟 체크포인트 데이터의 위치입니다(`S3Uri`).

**처리 작업**
+ 처리 작업에서 실행할 컨테이너입니다(`ImageUri`).
+ 각 처리 입력 및 처리 출력의 데이터 위치입니다(`S3Uri`).

**변환 작업**
+ 변환할 입력 데이터 소스입니다(`S3Uri`).
+ 변환 결과입니다(`S3OutputPath`).

**참고**  
Amazon Simple Storage Service(S3) 아티팩트는 Amazon S3 키와 각 파일의 해시 또는 etag 값이 아니라 API 생성에 제공된 Amazon S3 URI 값(예: [훈련 작업 생성](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html))을 기반으로 추적됩니다.

## 모델 패키지의 추적 엔터티
<a name="lineage-tracking-auto-creation-model-package"></a>

다음과 같은 엔터티가 생성됩니다.

**모델 패키지**
+ 각 모델 패키지 그룹의 컨텍스트입니다.
+ 각 모델 패키지의 아티팩트입니다.
+ 각 모델 패키지 아티팩트와 패키지가 속한 각 모델 패키지 그룹의 컨텍스트 간의 연결입니다.
+ 모델 패키지 버전을 생성하기 위한 작업입니다.
+ 모델 패키지 아티팩트와 생성 작업 간의 연결입니다.
+ 각 모델 패키지 아티팩트와 패키지가 속한 각 모델 패키지 그룹의 컨텍스트 간의 연결입니다.
+ 추론 컨테이너
  + 모델 패키지에 정의된 각 컨테이너에 사용되는 이미지의 아티팩트입니다.
  + 각 컨테이너에 사용된 모델의 아티팩트입니다.
  + 각 아티팩트와 모델 패키지 아티팩트 간의 연결입니다.
+ 알고리즘
  + 모델 패키지에 정의된 각 알고리즘의 아티팩트입니다.
  + 각 알고리즘으로 만든 모델의 아티팩트입니다.
  + 각 아티팩트와 모델 패키지 아티팩트 간의 연결입니다.

## 엔드포인트의 추적 엔터티
<a name="lineage-tracking-auto-creation-endpoint"></a>

Amazon SageMaker AI에서 생성한 엔터티는 다음과 같습니다.

**엔드포인트**
+ 각 엔드포인트에 대한 컨텍스트
+ 각 엔드포인트를 생성한 모델 배포를 위한 작업
+ 엔드포인트에 배포된 각 모델의 아티팩트
+ 모델에 사용된 이미지의 아티팩트
+ 모델의 모델 패키지에 대한 아티팩트
+ 엔드포인트에 배포된 각 모델의 아티팩트
+ 각 아티팩트와 모델 배포 작업 간의 연결

# 추적 엔터티 수동 생성
<a name="lineage-tracking-manual-creation"></a>

원하는 속성에 대해 수동으로 추적 엔터티를 만들어 모델 거버넌스를 설정하고, 워크플로를 재현하고, 작업 기록을 유지할 수 있습니다. Amazon SageMaker AI가 자동으로 생성하는 추적 엔터티에 대한 자세한 내용은 [Amazon SageMaker AI에서 생성한 추적 엔터티](lineage-tracking-auto-creation.md) 섹션을 참조하세요. 다음 자습서에서는 SageMaker 훈련 작업과 엔드포인트 간에 아티팩트를 수동으로 만들고 연결한 다음 워크플로를 추적하는 데 필요한 단계를 보여줍니다.

연결을 제외한 모든 엔터티에 태그를 추가할 수 있습니다. 태그는 사용자 지정 정보를 제공하는 임의의 키-값 쌍입니다. 목록 또는 검색 쿼리를 태그별로 필터링하거나 정렬할 수 있습니다. 자세한 내용은의 [AWS 리소스 태그 지정](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)을 참조하세요*AWS 일반 참조*.

계보 엔터티를 생성하는 방법을 보여주는 샘플 노트북은 [Amazon SageMaker AI 예시 GitHub 리포지토리](https://github.com/awslabs/amazon-sagemaker-examples)에서 [Amazon SageMaker AI Lineage](https://github.com/aws/amazon-sagemaker-examples/tree/master/sagemaker-lineage) 노트북을 참조하세요.

**Topics**
+ [

## 엔터티 수동 생성
](#lineage-tracking-manual-create)
+ [

## 워크플로 수동 추적
](#lineage-tracking-manual-track)
+ [

## 한도
](#lineage-tracking-manual-track-limits)

## 엔터티 수동 생성
<a name="lineage-tracking-manual-create"></a>

다음 절차에서는 SageMaker AI 훈련 작업과 엔드포인트 간에 아티팩트를 생성하고 연결하는 방법을 보여줍니다. 다음 절차를 수행합니다.

**추적 엔터티 및 연결 가져오기**

1. 계보 추적 엔터티를 가져옵니다.

   ```
   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")
   ```

1. 입력 및 출력 아티팩트 생성

   ```
   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
   ```

1. 모델을 훈련시키고 훈련 작업을 나타내는 `trial_component_arn`을 가져옵니다.

1. 입력 아티팩트와 출력 아티팩트를 훈련 작업(시험 구성 요소)에 연결합니다.

   ```
   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)
   ```

1. 추론 엔드포인트를 생성합니다.

   ```
   predictor = mnist_estimator.deploy(initial_instance_count=1,
                                        instance_type='ml.m4.xlarge')
   ```

1. 엔드포인트 컨텍스트를 생성합니다.

   ```
   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
   ```

1. 훈련 작업(시험 구성 요소)과 엔드포인트 컨텍스트를 연결합니다.

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

## 워크플로 수동 추적
<a name="lineage-tracking-manual-track"></a>

이전 섹션에서 생성한 워크플로를 수동으로 추적할 수 있습니다.

이전 예시의 엔드포인트 Amazon 리소스 이름(ARN)을 고려하여 다음 절차는 엔드포인트에 배포된 모델을 훈련시키는 데 사용된 데이터세트로 워크플로를 추적하는 방법을 보여줍니다. 다음 절차를 수행합니다.

**엔드포인트에서 훈련 데이터 원본까지의 워크플로를 추적하려면**

1. 추적 엔터티를 가져옵니다.

   ```
   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")
   ```

1. 엔드포인트 ARN에서 엔드포인트 컨텍스트를 가져옵니다.

   ```
   endpoint_context_arn = sagemaker_client.list_contexts(
       SourceUri=endpoint_arn)['ContextSummaries'][0]['ContextArn']
   ```

1. 시험 구성 요소와 엔드포인트 컨텍스트 간의 연결을 통해 시험 구성 요소를 가져옵니다.

   ```
   trial_component_arn = sagemaker_client.list_associations(
       DestinationArn=endpoint_context_arn)['AssociationSummaries'][0]['SourceArn']
   ```

1. 시험 구성 요소와 엔드포인트 컨텍스트 간의 연결에서 훈련 데이터 위치 아티팩트를 가져옵니다.

   ```
   train_data_location_artifact_arn = sagemaker_client.list_associations(
       DestinationArn=trial_component_arn, SourceType='Model')['AssociationSummaries'][0]['SourceArn']
   ```

1. 훈련 데이터 위치 아티팩트에서 훈련 데이터 위치를 가져옵니다.

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

   응답:

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

## 한도
<a name="lineage-tracking-manual-track-limits"></a>

다음을 제외한 모든 엔터티, 실험 및 계보 간에 연결을 만들 수 있습니다.
+ 두 실험 엔터티 간에는 연결을 만들 수 없습니다. 실험 엔터티는 실험, 시험 및 시험 구성 요소로 구성됩니다.
+ 다른 연결을 사용하여 연결을 만들 수 있습니다.

이미 존재하는 엔터티를 생성하려고 하면 오류가 발생합니다.

**수동으로 생성된 계보 엔터티의 최대 수**
+ 작업: 3000
+ 아티팩트: 6000
+ 연결: 6000
+ 컨텍스트: 500

Amazon SageMaker AI에서 자동으로 생성하는 계보 엔터티 수에는 제한이 없습니다.

# 계보 엔터티 쿼리
<a name="querying-lineage-entities"></a>

Amazon SageMaker AI는 계보 엔터티를 사용할 때 자동으로 계보 엔터티의 그래프를 생성합니다. 이 데이터를 쿼리하여 다양한 질문에 답할 수 있습니다. 다음은 SDK for Python에서 이 데이터를 쿼리하는 방법에 대한 지침을 제공합니다.

Amazon SageMaker Studio에서 등록된 모델 계보를 보는 방법에 대한 자세한 내용은 [Studio에서 모델 계보 세부 정보 보기](model-registry-lineage-view-studio.md) 섹션을 참조하세요.

계보 엔터티를 쿼리하여 다음을 수행할 수 있습니다.
+ 모델 생성에 사용된 모든 데이터세트를 검색합니다.
+ 엔드포인트 생성에 들어간 모든 작업을 검색합니다.
+ 데이터세트를 사용하는 모든 모델을 검색합니다.
+ 모델을 사용하는 모든 엔드포인트를 검색합니다.
+ 특정 데이터세트에서 파생된 엔드포인트를 검색합니다.
+ 훈련 작업을 생성한 파이프라인 실행을 검색합니다.
+ 조사, 거버넌스 및 재현성을 위해 엔터티 간의 관계를 검색합니다.
+ 아티팩트를 사용하는 모든 다운스트림 시험을 검색합니다.
+ 아티팩트를 사용하는 모든 업스트림 시험을 검색합니다.
+ 제공된 S3 uri를 사용하는 아티팩트 목록을 검색합니다.
+ 데이터세트 아티팩트를 사용하는 업스트림 아티팩트를 검색합니다.
+ 데이터세트 아티팩트를 사용하는 다운스트림 아티팩트를 검색합니다.
+ 이미지 아티팩트를 사용하는 데이터세트를 검색합니다.
+ 컨텍스트를 사용하는 작업을 검색합니다.
+ 엔드포인트를 사용하는 처리 작업을 검색합니다.
+ 엔드포인트를 사용하는 변환 작업을 검색합니다.
+ 엔드포인트를 사용하는 시험 구성 요소를 검색합니다.
+ 모델 패키지 그룹과 연결된 파이프라인 실행의 ARN을 검색합니다.
+ 작업을 사용하는 모든 아티팩트를 검색합니다.
+ 모델 패키지 승인 작업을 사용하는 모든 업스트림 데이터세트를 검색합니다.
+ 모델 패키지 승인 작업에서 모델 패키지를 검색합니다.
+ 엔드포인트를 사용하는 다운스트림 엔드포인트 컨텍스트를 검색합니다.
+ 시험 구성 요소와 관련된 파이프라인 실행에 대한 ARN을 검색합니다.
+ 시험 구성 요소를 사용하는 데이터세트를 검색합니다.
+ 시험 구성 요소를 사용하는 모델을 검색합니다.
+ 시각화를 위해 계보를 탐색합니다.

**제한 사항**
+ 다음 리전에서 계보 쿼리를 사용할 수 없습니다.
  + 아프리카(케이프타운) – af-south
  + 아시아 태평양(자카르타) – ap-southeast-3
  + 아시아 태평양(오사카) – ap-northeast-3
  + 유럽(밀라노) – eu-south-1
  + 유럽(스페인) – eu-south-2
  + 이스라엘(텔아비브) – il-central-1
+ 현재 검색할 수 있는 관계의 최대 깊이는 10으로 제한됩니다.
+ 필터링은 마지막 수정 날짜, 생성 날짜, 유형 및 계보 엔터티 유형과 같은 속성으로 제한됩니다.

**Topics**
+ [

## 계보 엔터티 쿼리 시작하기
](#querying-lineage-entities-getting-started)

## 계보 엔터티 쿼리 시작하기
<a name="querying-lineage-entities-getting-started"></a>

가장 쉬운 방법은 다음 중 하나를 이용하는 것입니다.
+ [Amazon SageMaker AI SDK for Python](https://github.com/aws/sagemaker-python-sdk/blob/master/src/sagemaker/lineage/artifact.py#L397)에는 많은 일반 사용 사례가 정의되어 있습니다.
+ SageMaker AI 계보 API를 사용하여 계보 그래프에서 관계를 쿼리하는 방법을 보여주는 노트북은 [sagemaker-lineage-multihop-queries.ipynb](https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-lineage/sagemaker-lineage-multihop-queries.ipynb)를 참조하세요.

다음 예시는 `LineageQuery`및 `LineageFilter`API를 사용하여 계보 그래프에 대한 질문에 답하는 쿼리를 구성하고 몇 가지 사용 사례에서 엔터티 관계를 추출하는 방법을 보여줍니다.

**Example `LineageQuery` API를 사용하여 엔터티 연결 찾기**  

```
from sagemaker.lineage.context import Context, EndpointContext
from sagemaker.lineage.action import Action
from sagemaker.lineage.association import Association
from sagemaker.lineage.artifact import Artifact, ModelArtifact, DatasetArtifact

from sagemaker.lineage.query import (
    LineageQuery,
    LineageFilter,
    LineageSourceEnum,
    LineageEntityEnum,
    LineageQueryDirectionEnum,
)
# Find the endpoint context and model artifact that should be used for the lineage queries.

contexts = Context.list(source_uri=endpoint_arn)
context_name = list(contexts)[0].context_name
endpoint_context = EndpointContext.load(context_name=context_name)
```

**Example 엔드포인트와 관련된 모든 데이터세트 찾기**  

```
# Define the LineageFilter to look for entities of type `ARTIFACT` and the source of type `DATASET`.

query_filter = LineageFilter(
    entities=[LineageEntityEnum.ARTIFACT], sources=[LineageSourceEnum.DATASET]
)

# Providing this `LineageFilter` to the `LineageQuery` constructs a query that traverses through the given context `endpoint_context`
# and find all datasets.

query_result = LineageQuery(sagemaker_session).query(
    start_arns=[endpoint_context.context_arn],
    query_filter=query_filter,
    direction=LineageQueryDirectionEnum.ASCENDANTS,
    include_edges=False,
)

# Parse through the query results to get the lineage objects corresponding to the datasets
dataset_artifacts = []
for vertex in query_result.vertices:
    dataset_artifacts.append(vertex.to_lineage_object().source.source_uri)

pp.pprint(dataset_artifacts)
```

**Example 엔드포인트와 관련된 모델 찾기**  

```
# Define the LineageFilter to look for entities of type `ARTIFACT` and the source of type `MODEL`.

query_filter = LineageFilter(
    entities=[LineageEntityEnum.ARTIFACT], sources=[LineageSourceEnum.MODEL]
)

# Providing this `LineageFilter` to the `LineageQuery` constructs a query that traverses through the given context `endpoint_context`
# and find all datasets.

query_result = LineageQuery(sagemaker_session).query(
    start_arns=[endpoint_context.context_arn],
    query_filter=query_filter,
    direction=LineageQueryDirectionEnum.ASCENDANTS,
    include_edges=False,
)

# Parse through the query results to get the lineage objects corresponding to the model
model_artifacts = []
for vertex in query_result.vertices:
    model_artifacts.append(vertex.to_lineage_object().source.source_uri)

# The results of the `LineageQuery` API call return the ARN of the model deployed to the endpoint along with
# the S3 URI to the model.tar.gz file associated with the model
pp.pprint(model_artifacts)
```

**Example 엔드포인트와 관련된 시험 구성 요소 찾기**  

```
# Define the LineageFilter to look for entities of type `TRIAL_COMPONENT` and the source of type `TRAINING_JOB`.

query_filter = LineageFilter(
    entities=[LineageEntityEnum.TRIAL_COMPONENT],
    sources=[LineageSourceEnum.TRAINING_JOB],
)

# Providing this `LineageFilter` to the `LineageQuery` constructs a query that traverses through the given context `endpoint_context`
# and find all datasets.

query_result = LineageQuery(sagemaker_session).query(
    start_arns=[endpoint_context.context_arn],
    query_filter=query_filter,
    direction=LineageQueryDirectionEnum.ASCENDANTS,
    include_edges=False,
)

# Parse through the query results to get the ARNs of the training jobs associated with this Endpoint
trial_components = []
for vertex in query_result.vertices:
    trial_components.append(vertex.arn)

pp.pprint(trial_components)
```

**Example 계보의 초점 변경**  
계보의 초점이 바뀌는 다른 `start_arns`을 포함하도록 `LineageQuery`를 수정할 수 있습니다. 또한 `LineageFilter`는 여러 소스와 엔터티를 사용하여 쿼리 범위를 확장할 수 있습니다.  
다음에서는 모델을 계보 초점으로 사용하여 관련 엔드포인트와 데이터세트를 찾습니다.  

```
# Get the ModelArtifact

model_artifact_summary = list(Artifact.list(source_uri=model_package_arn))[0]
model_artifact = ModelArtifact.load(artifact_arn=model_artifact_summary.artifact_arn)
query_filter = LineageFilter(
    entities=[LineageEntityEnum.ARTIFACT],
    sources=[LineageSourceEnum.ENDPOINT, LineageSourceEnum.DATASET],
)

query_result = LineageQuery(sagemaker_session).query(
    start_arns=[model_artifact.artifact_arn],  # Model is the starting artifact
    query_filter=query_filter,
    # Find all the entities that descend from the model, i.e. the endpoint
    direction=LineageQueryDirectionEnum.DESCENDANTS,
    include_edges=False,
)

associations = []
for vertex in query_result.vertices:
    associations.append(vertex.to_lineage_object().source.source_uri)

query_result = LineageQuery(sagemaker_session).query(
    start_arns=[model_artifact.artifact_arn],  # Model is the starting artifact
    query_filter=query_filter,
    # Find all the entities that ascend from the model, i.e. the datasets
    direction=LineageQueryDirectionEnum.ASCENDANTS,
    include_edges=False,
)

for vertex in query_result.vertices:
    associations.append(vertex.to_lineage_object().source.source_uri)

pp.pprint(associations)
```

**Example `LineageQueryDirectionEnum.BOTH`를 사용하여 상위 및 하위 관계 찾기**  
방향이 `BOTH`로 설정된 경우 쿼리는 그래프를 탐색하여 상위 및 하위 관계를 찾습니다. 이 순회는 시작 노드뿐만 아니라 방문한 각 노드에서도 발생합니다. 예를 들어, 훈련 작업을 두 번 실행하고 훈련 작업에서 생성된 두 모델을 모두 엔드포인트에 배포한 경우 방향이 `BOTH`로 설정된 쿼리 결과에 두 엔드포인트가 모두 표시됩니다. 이는 동일한 이미지가 모델 훈련 및 배포에 사용되기 때문입니다. 이미지는 모델에 공통적이므로, `start_arn`과 양쪽 엔드포인트가 쿼리 결과에 나타납니다.  

```
query_filter = LineageFilter(
    entities=[LineageEntityEnum.ARTIFACT],
    sources=[LineageSourceEnum.ENDPOINT, LineageSourceEnum.DATASET],
)

query_result = LineageQuery(sagemaker_session).query(
    start_arns=[model_artifact.artifact_arn],  # Model is the starting artifact
    query_filter=query_filter,
    # This specifies that the query should look for associations both ascending and descending for the start
    direction=LineageQueryDirectionEnum.BOTH,
    include_edges=False,
)

associations = []
for vertex in query_result.vertices:
    associations.append(vertex.to_lineage_object().source.source_uri)

pp.pprint(associations)
```

**Example `LineageQuery` - `ASCENDANTS`vs. `DESCENDANTS`방향**  
계보 그래프의 방향을 이해하려면 다음 엔터티 관계 그래프(데이터세트 -> 훈련 작업 -> 모델 -> 엔드포인트)를 참고하세요.  
엔드포인트는 모델의 하위이고, 모델은 데이터세트의 하위입니다. 마찬가지로, 모델은 엔드포인트의 상위입니다. `direction` 파라미터를 사용하여 `start_arns`에서 엔터티의 하위 항목이나 상위 항목인 엔터티를 반환할지 여부를 지정할 수 있습니다. `start_arns`에 모델이 포함되어 있고 방향이 `DESCENDANTS`인 경우 쿼리는 엔드포인트를 반환합니다. 방향이 `ASCENDANTS`인 경우 쿼리는 데이터세트를 반환합니다.  

```
# In this example, we'll look at the impact of specifying the direction as ASCENDANT or DESCENDANT in a `LineageQuery`.

query_filter = LineageFilter(
    entities=[LineageEntityEnum.ARTIFACT],
    sources=[
        LineageSourceEnum.ENDPOINT,
        LineageSourceEnum.MODEL,
        LineageSourceEnum.DATASET,
        LineageSourceEnum.TRAINING_JOB,
    ],
)

query_result = LineageQuery(sagemaker_session).query(
    start_arns=[model_artifact.artifact_arn],
    query_filter=query_filter,
    direction=LineageQueryDirectionEnum.ASCENDANTS,
    include_edges=False,
)

ascendant_artifacts = []

# The lineage entity returned for the Training Job is a TrialComponent which can't be converted to a
# lineage object using the method `to_lineage_object()` so we extract the TrialComponent ARN.
for vertex in query_result.vertices:
    try:
        ascendant_artifacts.append(vertex.to_lineage_object().source.source_uri)
    except:
        ascendant_artifacts.append(vertex.arn)

print("Ascendant artifacts : ")
pp.pprint(ascendant_artifacts)

query_result = LineageQuery(sagemaker_session).query(
    start_arns=[model_artifact.artifact_arn],
    query_filter=query_filter,
    direction=LineageQueryDirectionEnum.DESCENDANTS,
    include_edges=False,
)

descendant_artifacts = []
for vertex in query_result.vertices:
    try:
        descendant_artifacts.append(vertex.to_lineage_object().source.source_uri)
    except:
        # Handling TrialComponents.
        descendant_artifacts.append(vertex.arn)

print("Descendant artifacts : ")
pp.pprint(descendant_artifacts)
```

**Example 계보 쿼리를 더 쉽게 만드는 SDK 도우미 함수**  
클래스 `EndpointContext`, `ModelArtifact`, 및 `DatasetArtifact`에는 특정 계보 쿼리를 더 쉽게 활용할 수 있도록 `LineageQuery`API에 래퍼 역할을 하는 도우미 함수가 포함되어 있습니다. 다음 예시에서는 이러한 도우미 함수를 사용하는 방법을 보여 줍니다.  

```
# Find all the datasets associated with this endpoint

datasets = []
dataset_artifacts = endpoint_context.dataset_artifacts()
for dataset in dataset_artifacts:
    datasets.append(dataset.source.source_uri)
print("Datasets : ", datasets)

# Find the training jobs associated with the endpoint
training_job_artifacts = endpoint_context.training_job_arns()
training_jobs = []
for training_job in training_job_artifacts:
    training_jobs.append(training_job)
print("Training Jobs : ", training_jobs)

# Get the ARN for the pipeline execution associated with this endpoint (if any)
pipeline_executions = endpoint_context.pipeline_execution_arn()
if pipeline_executions:
    for pipeline in pipelines_executions:
        print(pipeline)

# Here we use the `ModelArtifact` class to find all the datasets and endpoints associated with the model

dataset_artifacts = model_artifact.dataset_artifacts()
endpoint_contexts = model_artifact.endpoint_contexts()

datasets = [dataset.source.source_uri for dataset in dataset_artifacts]
endpoints = [endpoint.source.source_uri for endpoint in endpoint_contexts]

print("Datasets associated with this model : ")
pp.pprint(datasets)

print("Endpoints associated with this model : ")
pp.pprint(endpoints)

# Here we use the `DatasetArtifact` class to find all the endpoints hosting models that were trained with a particular dataset
# Find the artifact associated with the dataset

dataset_artifact_arn = list(Artifact.list(source_uri=training_data))[0].artifact_arn
dataset_artifact = DatasetArtifact.load(artifact_arn=dataset_artifact_arn)

# Find the endpoints that used this training dataset
endpoint_contexts = dataset_artifact.endpoint_contexts()
endpoints = [endpoint.source.source_uri for endpoint in endpoint_contexts]

print("Endpoints associated with the training dataset {}".format(training_data))
pp.pprint(endpoints)
```

**Example 계보 그래프 시각화 가져오기**  
샘플 노트북 [visualizer.py](https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-lineage/visualizer.py)에는 계보 그래프를 그리는 데 도움이 되는 도우미 클래스 `Visualizer`가 제공됩니다. 쿼리 응답이 렌더링되면 `StartArns`의 계보 관계가 표시된 그래프가 표시됩니다. `StartArns`에서 시각화는 `query_lineage`API 작업에서 반환된 다른 계보 엔터티와의 관계를 보여줍니다.  

```
# Graph APIs
# Here we use the boto3 `query_lineage` API to generate the query response to plot.

from visualizer import Visualizer

query_response = sm_client.query_lineage(
    StartArns=[endpoint_context.context_arn], Direction="Ascendants", IncludeEdges=True
)

viz = Visualizer()
viz.render(query_response, "Endpoint")
        
        query_response = sm_client.query_lineage(
    StartArns=[model_artifact.artifact_arn], Direction="Ascendants", IncludeEdges=True
)
viz.render(query_response, "Model")
```

# 교차 계정 계보 추적
<a name="xaccount-lineage-tracking"></a>

Amazon SageMaker AI는 다른 AWS 계정의 계보 개체 추적을 지원합니다. 기타 AWS 계정은 해당 계보 엔터티를 사용자와 공유할 수 있으며 사용자는 직접 API 직접 호출 또는 SageMaker AI 계보 쿼리를 통해 이러한 계보 엔터티에 액세스할 수 있습니다.

SageMaker AI는 계보 리소스를 안전하게 공유하는 데 도움을 주기 위해 [AWS Resource Access Manager](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html)를 사용합니다. [AWS RAM 콘솔](https://console.aws.amazon.com/ram/home)을 통해 리소스를 공유할 수 있습니다.



## 교차 계정 계보 추적 설정
<a name="setup-xaccount-lineage-tracking"></a>

Amazon SageMaker AI의 계보 그룹을 통해 [계보 추적 엔터티](lineage-tracking-entities.md)를 그룹화하고 공유할 수 있습니다. SageMaker AI는 계정당 하나의 기본 계보 그룹만 지원합니다. SageMaker AI는 계정에서 계보 엔터티가 생성될 때마다 기본 계보 그룹을 생성합니다. 계정이 소유한 모든 계보 엔터티는 이 기본 계보 그룹에 할당됩니다. 계보 엔터티를 다른 계정과 공유하려면 이 기본 계보 그룹을 해당 계정과 공유해야 합니다.

**참고**  
계보 그룹의 모든 계보 추적 엔터티를 공유하거나 공유하지 않을 수 있습니다.

 AWS Resource Access Manager 콘솔을 사용하여 계보 엔터티에 대한 리소스 공유를 생성합니다. 자세한 내용은AWS Resource Access Manager 사용 설명서의 [AWS 리소스 공유](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html)를 참조하세요.**

**참고**  
리소스 공유가 생성된 후에는 리소스 및 보안 주체 연결이 완료되는 데 몇 분 정도 걸릴 수 있습니다. 연결이 설정되면 공유 계정에서 리소스 공유에 가입하라는 초대가 발송됩니다. 공유 리소스에 대한 액세스 권한을 얻으려면 공유 계정이 초대를 수락해야 합니다. 리소스 공유 초대 수락에 대한 자세한 내용은 *AWS Resource Access Manager 사용 설명서*의 [공유 AWS 리소스 사용을 ](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-shared.html) AWS RAM참조하세요.

### 교차 계정 계보 리소스 추적 정책
<a name="setup-xaccount-lineage-tracking-resource-policy"></a>

Amazon SageMaker AI는 한 가지 유형의 리소스 정책만 지원합니다. SageMaker AI 리소스 정책은 다음 작업을 모두 허용해야 합니다.

```
"sagemaker:DescribeAction"
"sagemaker:DescribeArtifact"
"sagemaker:DescribeContext"
"sagemaker:DescribeTrialComponent"
"sagemaker:AddAssociation"
"sagemaker:DeleteAssociation"
"sagemaker:QueryLineage"
```

**Example 다음은 계정 계보 그룹에 대한 리소스 공유를 생성하기 AWS Resource Access Manager 위해를 사용하여 생성된 SageMaker AI 리소스 정책입니다.**    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "FullLineageAccess",
      "Effect": "Allow",
      "Principal": {
        "AWS": "111122223333"
      },
      "Action": [
        "sagemaker:DescribeAction",
        "sagemaker:DescribeArtifact",
        "sagemaker:DescribeContext",
        "sagemaker:DescribeTrialComponent",
        "sagemaker:AddAssociation",
        "sagemaker:DeleteAssociation",
        "sagemaker:QueryLineage"
      ],
      "Resource": "arn:aws:sagemaker:us-west-2:111111111111:lineage-group/sagemaker-default-lineage-group"
    }
  ]
}
```

## 교차 계정 계보 엔터티 추적
<a name="tracking-lineage-xaccount"></a>

교차 계정 계보 추적을 사용하면 동일한 `AddAssociation`API 작업을 사용하여 여러 계정의 계보 엔터티를 연결할 수 있습니다. 두 계보 엔터티를 연결할 때 SageMaker AI는 두 계보 엔터티에 대해 `AddAssociation` API 작업을 수행할 권한이 있는지 확인합니다. 그런 다음 SageMaker AI가 연결을 설정합니다. 권한이 없는 경우 SageMaker AI는 연결을 생성하지 *않습니다*. 교차 계정 연결이 설정되면 `QueryLineage`API 작업을 통해 다른 계보 엔터티에서 둘 중 하나에 액세스할 수 있습니다. 자세한 내용은 [계보 엔터티 쿼리](querying-lineage-entities.md) 단원을 참조하십시오.

SageMaker AI는 계보 엔터티를 자동으로 생성하는 것 외에도 교차 계정 액세스 권한이 있는 경우 동일한 엔터티 또는 데이터를 참조하는 아티팩트를 연결합니다. 한 계정의 데이터를 다른 계정에서 계보 추적에 사용하는 경우 SageMaker AI는 각 계정에서 아티팩트를 생성하여 해당 데이터를 추적합니다. 교차 계정 계보를 사용하면 SageMaker AI가 새 아티팩트를 생성할 때마다 SageMaker AI는 동일한 데이터에 대해 생성된 다른 아티팩트가 사용자와 공유되어 있는지 확인합니다. 그런 다음 SageMaker AI는 새로 만든 아티팩트와 `SameAs`로 설정된 `AssociationType`으로 사용자와 공유된 각 아티팩트 사이에 연결을 설정합니다. 그런 다음 `[QueryLineage](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_QueryLineage.html)`API 작업을 사용하여 사용자 계정의 계보 엔터티를 탐색하여 자신과 공유되지만 다른 AWS 계정에서 소유한 계보 엔터티로 이동할 수 있습니다. 자세한 내용은 [계보 엔터티 쿼리](querying-lineage-entities.md) 섹션을 참조하세요.

**Topics**
+ [

### 다른 계정의 계보 리소스에 액세스
](#tracking-lineage-xaccount-accessing-resources)
+ [

### 교차 계정 계보 엔터티를 쿼리할 수 있는 권한
](#tracking-lineage-xaccount-authorization)

### 다른 계정의 계보 리소스에 액세스
<a name="tracking-lineage-xaccount-accessing-resources"></a>

계보 공유를 위한 교차 계정 액세스가 설정되면 ARN에서 직접 다음 SageMaker API 작업을 호출하여 다른 계정의 공유 계보 엔터티를 설명할 수 있습니다.
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAction.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAction.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeArtifact.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeArtifact.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeContext.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeContext.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrialComponent.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTrialComponent.html)

또한 다음과 같은 SageMaker API 작업을 사용하여 공유된 다른 계정이 소유한 계보 엔터티에 대한 [연결](https://docs.aws.amazon.com/sagemaker/latest/dg/lineage-tracking-entities.html)을 관리할 수 있습니다.
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddAssociation.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AddAssociation.html)
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteAssociation.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DeleteAssociation.html)

SageMaker AI 계보 API를 사용하여 교차 계정 계보를 쿼리하는 방법을 보여주는 노트북은 [sagemaker-lineage-cross-account-with-ram.ipynb](https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-lineage/sagemaker-lineage-cross-account-with-ram.ipynb)를 참조하세요.

### 교차 계정 계보 엔터티를 쿼리할 수 있는 권한
<a name="tracking-lineage-xaccount-authorization"></a>

Amazon SageMaker AI는 `StartArns`에서 `QueryLineage` API 작업을 수행할 권한이 있는지 확인해야 합니다. 이는 `LineageGroup`에 연결된 리소스 정책을 통해 적용됩니다. 이 작업의 결과에는 사용자 계정에서 소유했든 다른 계정에서 공유했든 관계없이 액세스할 수 있는 모든 계보 엔터티가 포함됩니다. 자세한 내용은 [계보 엔터티 쿼리](querying-lineage-entities.md) 단원을 참조하십시오.