TFX - 텐서플로우 익스텐디드
이번 포스팅에서는 텐서플로우 기반 Google-production-scale 머신러닝 플랫폼인 텐서플로우 익스텐디드(TFX)를 소개하고 그 설치 방법을 알아보도록 하겠다.
TFX를 사용하여 파이프라인 작업을 정의한 후 에어플로, 쿠브플로 파이프라인 등의 파이프라인 오케스트레이터로 파이프라인을 실행시킬 수 있다.
1. TFX 소개
머신러닝 파이프라인이 복잡해짐에 따라 작업 의존성을 관리하는 데에 드는 노력과 시간은 증가하기 마련이다. 파이프라인이 복잡해지고 커짐에 따라 태스크 간 결합을 수행하는 글루 코드(glue code)의 힘이 약해져 연결이 취약해지고, 이는 파이프라인의 고장을 초래할 수 있다.
여기서 연결이 취약해진다라고 함은, 프로덕션 모델의 업데이트가 주기적으로 이루어지지 않음을 의미한다. 꾸준히 새로운 데이터가 들어오는 머신러닝 서비스에서는 주기적인 업데이트가 이루어져야 할 필요가 있고, 또한 대규모 시스템의 경우 잘 관리되는 분산 처리가 필요하다. 세계적인 기업인 구글 또한 이러한 문제에 직면하였고, 이를 해결하기 위해, 파이프라인 정의를 단순화하고 코드의 양을 최소화하는 플랫폼을 개발하기로 했는데, 이것이 바로 TFX이다.
머신러닝 파이프라인에서, 파이프라인 오케스트레이션 툴은 전체적인 작업을 실행하는 기반을 이루며, 데이터베이스는 파이프라인 중간 결과를 추적하고 수집한다. TFX는 이러한 모든 도구를 결합하는 계층을 제공하며, 주요 파이프라인 작업에 대한 개별 컴포넌트를 제공한다. 개별 컴포넌트는 데이터베이스에서 필요한 입력 데이터를 가져와 작업을 수행하고, 그 결과물을 다시 데이터베이스에 저장한다.
위 그림처럼, TFX는 다양한 파이프라인 컴포넌트를 제공하며, 각각의 역할 및 관련 라이브러리를 간단하게 설명하면 다음과 같다.
- ExampleGen: 데이터 수집
- StatisticsGen, SchemaGen, ExampleValidator: 데이터 검증 (라이브러리: TensorFlow Data validation)
- Transform: 데이터 전처리 (라이브러리: TensorFlow Transform)
- Trainer: 텐서플로우 모델 학습
ResolverNode: 이전 학습 모델 확인 // 현재 공식 홈페이지에서 소개하는 최신 버전의 TFX에서는 제외되었다.- Tuner: 모델 하이퍼파라미터 튜닝
- Evaluator: 모델 분석 및 검증 (라이브러리: TensorFlow Model Analysis)
- Pusher: 모델 배포 (라이브러리: TensorFlow Serving)
참고: TFX User Guide
2. TFX 설치
다음 파이썬 명령어를 실행하면 TFX를 손쉽게 설치할 수 있다.
예제 코드 실행을 위해 TFX 버전은 1.2.0으로 해보겠다. (추후 최신 버전으로 포스팅 업데이트 예정)
$ pip3 install tfx==1.2.0
TFX 패키지를 설치하면, 아파치 빔을 포함하여 꽤나 많은 양의 의존성 라이브러리가 함께 설치된다. TFX 설치가 완료된 후에는 import를 이용하여 개별 패키지를 불러와 사용할 수 있다.
import tensorflow_data_validation as tfdv
import tensorflow_transform as tft
import tensorflow_transform.beam as tft_beam
...
가져온 라이브러리 내 컴포넌트를 아래와 같이 불러와 사용할 수 있다.
from tfx.components import ExampleValidator
from tfx.components import Evaluator
from tfx.components import Transform
...
'MLOps' 카테고리의 다른 글
ML 메타데이터 (0) | 2021.12.12 |
---|---|
TFX 컴포넌트 개요 (0) | 2021.12.11 |
파이프라인 오케스트레이션 (0) | 2021.12.06 |
머신러닝 파이프라인 단계 (0) | 2021.12.03 |
머신러닝 파이프라인의 필요성 (0) | 2021.12.01 |
댓글