본문 바로가기
FullStack/50. ML

[BOOK] Building Machine Learning Pipelines #2 TFX (텐서플로 익스텐디드)

by nakanara 2023. 1. 11.
반응형

O`REILLY Building Machine Learning Pipelines

2. TFX - 텐서플로 익스텐디드

 

  • TFX

머신러닝 파이프라인은 매우 복잡해서 작업 의존성을 관리하는데 많은 시간과 노력이 필요합니다.
파이프 라인에는 데이터 검증, 전처리, 모델 학습 등 다양한 작업이 포함되어 있으며, 업무 간 연결성이 취약(관계가 약함)합니다.

연결성이 취약하므로, 프로덕션 모델을 자주 업데이트가 난해하고, 검증 또한어렵기 때문에 관리하기가 어려웠습니다. 이런 문제를 해결하고자 구글 내부에서 머신러닝 파이프라인 프레임워크의 오픈 소스 버전 TFX가 개발되었습니다.

  • TFX 컴포넌트 종류
    • ExampleGen: 데이터 수집
    • StatisticsGen, SchemaGen, ExampleValicator: 데이터 검증
    • Transform: 데이터 전처리
    • Trainer: 모델 학습
    • ResolverNode: 이전에 학습한 모델 확인
    • Evaluator: 모델 분석 및 검증
    • Pusher: 모델 배포

TFX Libraries

  • TFX 설치
$ pip install tfx
  • ML 메타데이터(MLMD)

TFX 컴포넌트는 메타데이터로 의사소통, 파이프라인에 있는 컴포넌트들은 서로 직접 아티팩트(컴포넌트의 입력/추력) 주고 받는 대신 파이프라인에서 만들어지는 아티팩트 값을 메타데이터 스토어에 저장 후 저장된 값으로 아티팩트(소통)합니다.
컴포넌트 실행 시 MLMD(Machine Learning Metadata)라이브러리를 이용하여 컴포넌트 메타데이터 스토어 값을 백엔드의 스토리지에 저장(SQLLite를 이용한 메모리 데이터베이스, SQLLite, MySQL)

 

Metadata store

  • TFX 대체 솔루션

TFX의 대안
- 에어비엔비- 에어로솔프: https://github.com/airbnb/aerosolve
- 스트라이프 - 레일야드: https://stripe.com/blog/railyard-training-models
- 스포티파이 - 루이지: https://github.com/spotify/luigi
- 우버 - 미켈란젤로: https://www.uber.com/blog/michelangelo-machine-learning-platform/
- 넷플릭스 - 메타플로: https://metaflow.org/

아파치 빔

다양한 TFX 컴포넌트와 라이브러리는 아파치 빔을 사용하여 파이프라인 데이터를 효율적으로 처리,
아파치 빔은 제작자나 공급자에 구애받지 않고 다양한 화경에서 실행할 수 있는 데이터 처리 단계를 설명하는 오픈 소스 방식을 제공, 아파치 빔은 배치 프로세스, 스트리밍 작업, 데이터 파이프라인으로 사용

 

Apache Beam

$ pip install apache-beam

참고

반응형