[살아 움직이는 머신러닝 파이프라인 설계] 11. 파이프라인 1부 & 12. 파이프라인 2부
인공지능/Tensorflow Extended

[살아 움직이는 머신러닝 파이프라인 설계] 11. 파이프라인 1부 & 12. 파이프라인 2부

아파치 빔의 특징

아파치 빔은 TFX에 기본적으로 설치된 오케스트레이션이다. 본래 아파치 에어플로나 쿠버플로 파이프라인과 같은 다양한 분산 처리 오케스트레이션을 지원하기 위해 사용했지만 아파치 빔 단독으로 분산 처리를 할 수 있다.
아파치 빔 자체로도 머신러닝 파이프라인을 실행할 수 있지만, 매우 간단한 기능만 제공한다. 지표를 그래프로 시각화 하거나 예약 실행과 갈은 기능은 제공하지 않는다. 하지만 작성한 파이프라인 코드에 이상이 없는지 실행을 통해 확인해볼 수 있기 때문에 다른 오케스트레이션에서 실행하기 전 디버깅 용으로 사용하는 경우가 많다.

다양한 언어로 다양한 분산 처리 환경을 지원하는 Apache Beam, 출처: https://www.youtube.com/watch?v=6EWt9WgAW8c

아파치 에어플로의 특징

아파치 에어플로는 머신러닝 파이프라인 뿐만 아니라 많은 양의 데이터를 분산 처리할 때 많이 쓰이는 도구다. 그렇기 때문에 회사의 경우 이미 아파치 에어플로 환경이 갖춰져있는 경우가 많다. 만약 회사에서 머신러닝 프로젝트를 시작할 때 아파치 에어플로를 사용한다면 굳이 새로 배울 필요없이 머신러닝 파이프라인을 프로덕트 단계로 빠르게 올릴 수 있다.

Apache Airflow를 통해 실행중인 DAG 관리창, 출처: https://github.com/apache/airflow

쿠브플로 파이프라인의 특징

쿠브플로 파이프라인은 쿠버네티스에서 실행할 수 있는 오케스트레이션이다. 만약 쿠버네티스 환경이 이미 갖춰져있다면 아파치 에어플로우보다 쿠브플로 파이프라인을 쓰는 것을 추천한다. 에어플로우보다 설정이 복잡하지만 TFDV와 TFMA의 시각화, 아티펙트 확인과 같은 매력적인 기능들을 제공한다.
또한 쿠버네티스의 장점을 그대로 가지고 있다. 필요할 때 원하는만큼 확장할 수 있고, Istio와 같은 라우팅 도구를 통해 A/B 테스트도 서버 차원에서 구현할 수 있다. 만약에 쿠버네티스를 클라우드 서비스를 통해 돌리고 있다면 클라우드 서비스가 제공하는 최신 머신러닝용 하드웨어를 바로 적용할 수 있다.

Kubeflow에서 실행중인 DAG 시각화, 출처: https://www.oreilly.com/library/view/kubeflow-for-machine/9781492050117/ch01.html