TFX 파이프라인 이해

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

MLOps는 기계 학습(ML) 워크플로를 자동화, 관리 및 감사하는 데 도움이 되는 DevOps 방식을 적용하는 방식입니다. ML 워크플로에는 다음 단계가 포함됩니다.

  • 데이터를 준비, 분석 및 변환합니다.
  • 모델을 훈련하고 평가합니다.
  • 학습된 모델을 프로덕션에 배포합니다.
  • ML 아티팩트를 추적하고 해당 종속성을 이해합니다.

임시 방식으로 이러한 단계를 관리하는 것은 어렵고 시간이 많이 소요될 수 있습니다.

TFX는 Apache Airflow, Apache Beam 및 Kubeflow Pipelines와 같은 다양한 오케스트레이터에서 ML 프로세스를 오케스트레이션하는 데 도움이 되는 툴킷을 제공하여 MLOps를 더 쉽게 구현할 수 있도록 합니다. 워크플로를 TFX 파이프라인으로 구현하여 다음을 수행할 수 있습니다.

  • ML 프로세스를 자동화하여 모델을 정기적으로 재교육, 평가 및 배포할 수 있습니다.
  • 대규모 데이터 세트 및 워크로드를 처리하기 위해 분산 컴퓨팅 리소스를 활용합니다.
  • 다양한 하이퍼파라미터 세트로 파이프라인을 실행하여 실험 속도를 높입니다.

이 가이드에서는 TFX 파이프라인을 이해하는 데 필요한 핵심 개념을 설명합니다.

인공물

TFX 파이프라인에서 단계의 출력을 아티팩트 라고 합니다. 워크플로의 후속 단계에서 이러한 아티팩트를 입력으로 사용할 수 있습니다. 이러한 방식으로 TFX를 사용하면 워크플로 단계 간에 데이터를 전송할 수 있습니다.

예를 들어 ExampleGen 표준 구성 요소는 StatisticsGen 표준 구성 요소와 같은 구성 요소가 입력으로 사용하는 직렬화된 예제를 내보냅니다.

아티팩트는 ML 메타데이터 저장소에 등록된 아티팩트 유형 을 사용하여 강력한 형식을 지정해야 합니다. ML 메타데이터에 사용된 개념 에 대해 자세히 알아보세요.

아티팩트 유형에는 이름이 있으며 해당 속성의 스키마를 정의합니다. 아티팩트 유형 이름은 ML 메타데이터 저장소에서 고유해야 합니다. TFX는 문자열, 정수 및 부동 소수점과 같은 복잡한 데이터 유형 및 값 유형을 설명하는 몇 가지 표준 아티팩트 유형 을 제공합니다. 이러한 이슈 형식을 재사용 하거나 Artifact 에서 파생된 사용자 지정 이슈 형식을 정의할 수 있습니다.

매개변수

매개변수는 파이프라인이 실행되기 전에 알려진 파이프라인에 대한 입력입니다. 매개변수를 사용하면 코드 대신 구성을 통해 파이프라인의 동작 또는 파이프라인의 일부를 변경할 수 있습니다.

예를 들어 매개변수를 사용하여 파이프라인의 코드를 변경하지 않고도 다양한 하이퍼파라미터 세트로 파이프라인을 실행할 수 있습니다.

매개변수를 사용하면 다양한 매개변수 세트로 파이프라인을 더 쉽게 실행할 수 있어 실험 속도를 높일 수 있습니다.

RuntimeParameter 클래스 에 대해 자세히 알아보세요.

요소

구성 요소 는 TFX 파이프라인에서 단계로 사용할 수 있는 ML 작업의 구현입니다. 구성 요소는 다음으로 구성됩니다.

  • 구성 요소의 입력 및 출력 아티팩트와 구성 요소의 필수 매개변수를 정의하는 구성 요소 사양입니다.
  • 데이터 수집 및 변환 또는 모델 교육 및 평가와 같은 ML 워크플로의 단계를 수행하기 위해 코드를 구현하는 실행기입니다.
  • 파이프라인에서 사용하기 위해 구성 요소 사양 및 실행기를 패키징하는 구성 요소 인터페이스입니다.

TFX는 파이프라인에서 사용할 수 있는 몇 가지 표준 구성 요소 를 제공합니다. 이러한 구성 요소가 요구 사항을 충족하지 않는 경우 사용자 지정 구성 요소를 만들 수 있습니다. 사용자 지정 구성 요소에 대해 자세히 알아보십시오 .

관로

TFX 파이프라인은 Apache Airflow, Apache Beam 및 Kubeflow Pipelines와 같은 다양한 오케스트레이터에서 실행할 수 있는 ML 워크플로의 이식 가능한 구현입니다. 파이프라인은 구성 요소 인스턴스와 입력 매개변수로 구성됩니다.

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

예를 들어 다음을 수행하는 파이프라인을 고려하십시오.

  • 사용자 지정 구성 요소를 사용하여 독점 시스템에서 직접 데이터를 수집합니다.
  • StatisticsGen 표준 구성 요소를 사용하여 훈련 데이터에 대한 통계를 계산합니다.
  • SchemaGen 표준 구성 요소를 사용하여 데이터 스키마를 만듭니다.
  • ExampleValidator 표준 구성 요소를 사용하여 훈련 데이터에 이상이 있는지 확인합니다.
  • Transform 표준 구성 요소를 사용하여 데이터 세트에 대한 기능 엔지니어링을 수행합니다.
  • Trainer 표준 구성 요소를 사용하여 모델을 훈련합니다.
  • Evaluator 구성 요소를 사용하여 훈련된 모델을 평가합니다.
  • 모델이 평가를 통과하면 파이프라인은 사용자 지정 구성 요소를 사용하여 훈련된 모델을 독점 배포 시스템에 추가합니다.

구성 요소 인스턴스의 실행 순서를 결정하기 위해 TFX는 아티팩트 종속성을 분석합니다.

  • 데이터 수집 구성 요소에는 아티팩트 종속성이 없으므로 그래프의 첫 번째 노드가 될 수 있습니다.
  • StatisticsGen은 데이터 수집에 의해 생성된 예제 에 의존하므로 데이터 수집 후에 실행해야 합니다.
  • SchemaGen은 StatisticsGen에 의해 생성된 통계 에 의존하므로 StatisticsGen 이후에 실행되어야 한다.
  • ExampleValidator는 StatisticsGen에 의해 생성된 통계 와 SchemaGen에 의해 생성된 스키마 에 의존하므로 StatisticsGen과 SchemaGen 이후에 실행되어야 한다.
  • 변환은 데이터 수집에 의해 생성된 예제 와 SchemaGen에 의해 생성된 스키마 에 의존하므로 데이터 수집 및 SchemaGen 이후에 실행되어야 한다.
  • Trainer는 데이터 수집으로 생성된 예제 , SchemaGen에서 생성된 스키마 및 Transform에서 생성된 저장된 모델 에 따라 다릅니다. Trainer는 데이터 수집, SchemaGen 및 Transform 후에만 실행할 수 있습니다.
  • Evaluator는 데이터 수집으로 생성된 예제 와 Trainer에서 생성된 저장된 모델 에 의존하므로 데이터 수집과 Trainer 이후에 실행해야 합니다.
  • 커스텀 디플로이어는 Trainer가 생성한 저장된 모델 과 Evaluator가 생성한 분석 결과 에 의존하므로, 디플로이어는 Trainer와 Evaluator 이후에 실행되어야 합니다.

이 분석을 기반으로 오케스트레이터는 다음을 실행합니다.

  • 데이터 수집, StatisticsGen, SchemaGen 구성 요소 인스턴스를 순차적으로.
  • ExampleValidator 및 Transform 구성 요소는 입력 아티팩트 종속성을 공유하고 서로의 출력에 의존하지 않으므로 병렬로 실행할 수 있습니다.
  • Transform 구성 요소가 완료되면 Trainer, Evaluator 및 사용자 지정 배포자 구성 요소 인스턴스가 순차적으로 실행됩니다.

TFX 파이프라인 구축에 대해 자세히 알아보세요.

TFX 파이프라인 템플릿

TFX 파이프라인 템플릿을 사용하면 사용 사례에 맞게 사용자 지정할 수 있는 미리 빌드된 파이프라인을 제공하여 파이프라인 개발을 더 쉽게 시작할 수 있습니다.

TFX 파이프라인 템플릿 사용자 지정에 대해 자세히 알아보세요.

파이프라인 실행

실행은 파이프라인의 단일 실행입니다.

오케스트레이터

Orchestrator는 파이프라인 실행을 실행할 수 있는 시스템입니다. TFX는 Apache Airflow , Apache BeamKubeflow Pipelines 와 같은 오케스트레이터를 지원합니다. TFX는 또한 오케스트레이터를 지원하는 구현을 나타내기 위해 DagRunner 라는 용어를 사용합니다.