TFX 파이프라인 구축

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

Pipeline 클래스 사용

TFX 파이프라인은 Pipeline 클래스 를 사용하여 정의됩니다. 다음 예제에서는 Pipeline 클래스를 사용하는 방법을 보여줍니다.

pipeline.Pipeline(
    pipeline_name=pipeline-name,
    pipeline_root=pipeline-root,
    components=components,
    enable_cache=enable-cache,
    metadata_connection_config=metadata-connection-config,
)

다음을 교체합니다.

  • pipeline-name : 이 파이프라인의 이름입니다. 파이프라인 이름은 고유해야 합니다.

    TFX는 구성 요소 입력 아티팩트에 대해 ML 메타데이터를 쿼리할 때 파이프라인 이름을 사용합니다. 파이프라인 이름을 재사용하면 예기치 않은 동작이 발생할 수 있습니다.

  • pipeline-root : 이 파이프라인 출력의 루트 경로입니다. 루트 경로는 오케스트레이터가 읽기 및 쓰기 액세스 권한이 있는 디렉터리의 전체 경로여야 합니다. 런타임 시 TFX는 파이프라인 루트를 사용하여 구성 요소 아티팩트의 출력 경로를 생성합니다. 이 디렉터리는 로컬이거나 지원되는 분산 파일 시스템(예: Google Cloud Storage 또는 HDFS)에 있을 수 있습니다.

  • components : 이 파이프라인의 워크플로를 구성하는 구성 요소 인스턴스 목록입니다.

  • enable-cache : (선택 사항) 이 파이프라인이 파이프라인 실행 속도를 높이기 위해 캐싱을 사용하는지 여부를 나타내는 부울 값입니다.

  • metadata-connection-config : (선택 사항) ML 메타데이터에 대한 연결 구성입니다.

컴포넌트 실행 그래프 정의

구성 요소 인스턴스는 아티팩트를 출력으로 생성하며 일반적으로 업스트림 구성 요소 인스턴스에서 입력으로 생성된 아티팩트에 의존합니다. 구성 요소 인스턴스의 실행 순서는 아티팩트 종속성의 방향성 비순환 그래프(DAG)를 생성하여 결정됩니다.

예를 들어, ExampleGen 표준 구성 요소는 CSV 파일에서 데이터를 수집하고 직렬화된 예제 레코드를 출력할 수 있습니다. StatisticsGen 표준 구성 요소는 이러한 예제 레코드를 입력으로 받아들이고 데이터 세트 통계를 생성합니다. 이 예에서 SchemaGenExampleGen 의 출력에 의존하므로 StatisticsGen 의 인스턴스는 ExampleGen 을 따라야 합니다.

작업 기반 종속성

구성 요소의 add_upstream_nodeadd_downstream_node 메서드를 사용하여 작업 기반 종속성을 정의할 수도 있습니다. add_upstream_node 를 사용하면 현재 구성 요소가 지정된 구성 요소 다음에 실행되어야 함을 지정할 수 있습니다. add_downstream_node 를 사용하면 현재 구성 요소가 지정된 구성 요소보다 먼저 실행되도록 지정할 수 있습니다.

파이프라인 템플릿

파이프라인을 빠르게 설정하고 모든 조각이 어떻게 결합되는지 확인하는 가장 쉬운 방법은 템플릿을 사용하는 것입니다. 템플릿 사용은 로컬에서 TFX 파이프라인 빌드에서 다룹니다.

캐싱

TFX 파이프라인 캐싱을 사용하면 파이프라인이 이전 파이프라인 실행에서 동일한 입력 세트로 실행된 구성 요소를 건너뛸 수 있습니다. 캐싱이 활성화된 경우 파이프라인은 각 구성 요소, 구성 요소 및 입력 집합의 서명을 이 파이프라인의 이전 구성 요소 실행 중 하나와 일치시키려고 시도합니다. 일치 항목이 있는 경우 파이프라인은 이전 실행의 구성 요소 출력을 사용합니다. 일치하는 항목이 없으면 구성 요소가 실행됩니다.

파이프라인이 비결정적 구성 요소를 사용하는 경우 캐싱을 사용하지 마십시오. 예를 들어 파이프라인에 대한 난수를 생성하는 구성 요소를 생성하는 경우 캐시를 활성화하면 이 구성 요소가 한 번 실행됩니다. 이 예에서 후속 실행은 난수를 생성하는 대신 첫 번째 실행의 난수를 사용합니다.