TFX19 데이터 준비 데이터 준비ExampleGen 컴포넌트를 이용하여 데이터셋의 입력 설정(input_config)과 출력 설정(output_config)을 구성할 수 있다. 이외에도 데이터셋을 점진적으로 수집하는 스패닝(spanning)과 데이터셋 분할 방법 또한 정의할 수 있다.1) 데이터셋 분할머신러닝 파이프라인의 후반부에는 모델을 학습시키고 이를 검증시키는 단계가 포함되어 있다. 이를 위해서는 데이터셋을 이에 필요한 하위 집합(학습 세트, 검증 세트 등)으로 분할을 해두는 것이 좋다. 단일 데이터셋을 하위 집합으로 분할다음 코드는 데이터 수집 단계에서 데이터셋을 학습, 검증, 테스트 세트로 나누는 방법을 보여준다. 여기서 각 세트 별 비율 hash_buckets로 정의한다.import osfrom tfx.orches.. MLOps 2021. 12. 21. 데이터 수집 데이터 수집 TFX를 이용한 머신러닝 파이프라인에서는 기본 TFX 설정과 ML 메타데이터스토어를 사용하여 다양한 컴포넌트에서 활용할 수 있는 데이터셋을 수집할 수 있다. TFX는 파일이나 서비스로부터 데이터를 수집하는 컴포넌트를 제공한다. 이는 수집뿐만 아니라 학습 데이터와 검증 데이터로의 분할, 그리고 추출된 데이터를 하나의 데이터셋으로 결합하는 작업까지의 프로세스를 모두 수행한다.TFRecord & ExampleGenTFRecord는 대용량 데이터셋 스트리밍에 최적화된 경량화 포맷이다. TFRecord는 직렬화된 프로토콜 버퍼를 포함하여 거의 모든 바이너리 데이터의 저장을 지원한다.import tensorflow as tfwith tf.io.TFRecordWriter('test.tfrecord') .. MLOps 2021. 12. 19. 아파치 빔 아파치 빔다양한 TFX 컴포넌트와 라이브러리는 아파치 빔을 사용하여 파이프라인 데이터를 효율적으로 처리한다. 아파치 빔을 파이프라인 오케스트레이션 툴로 사용하는 방법은 추후 자세히 알아보도록 하고, 여기서는 TFX 컴포넌트에서 아파치 빔이 어떻게 작동하는지 알아보도록 하겠다. 아파치 빔(Apache Beam)은 2016년 오픈소스 형태로 공개된 unified programming model로, ETL, 배치 프로세스, 스트리밍 작업을 포함하여 다양한 데이터 처리 파이프라인을 정의하고 실행하기 위한 프로그램이다. TFX는 아파치 빔에 의존하며, 다양한 컴포넌트 내에서 이를 사용하고 있다.설치아파치 빔은 다음 명령어로 설치할 수 있다.pip install apache-beampip install 'apach.. MLOps 2021. 12. 15. 대화형 파이프라인 대화형 파이프라인머신러닝 파이프라인 전체를 설계하고 구현하는 일은 다소 어려운 일 중 하나이다. 한 번에 에러 없이 잘 동작하는 파이프라인을 구축하는 것은 프로젝트가 거대해질 경우 거의 불가능에 가깝고, 컴포넌트를 디버깅하는 일조차 일체형 파이프라인에서는 쉽지 않다. 이러한 문제를 해결하기 위해 TFX는 대화형 파이프라인 기능을 도입하였다. 대화형 파이프라인은 단계별 구현이 가능하며 구성 요소의 아티팩트를 즉시 검토할 수 있다는 장점이 있다. 각 단계의 구현과 디버깅이 완료된 후에는 아파치 에어플로에서 실행할 수 있도록 대화형 파이프라인을 실제 프로덕트 레벨의 파이프라인으로 변환하는 과정을 거치면 전체 파이프라인의 성공적인 구축이 완료된다고 할 수 있다.실습모든 대화형 파이프라인은 주피터 노트북이나 코랩.. MLOps 2021. 12. 13. ML 메타데이터 ML 메타데이터파이프라인 내 컴포넌트들은 아티팩트를 직접 주고받는 대신 파이프라인에서 만들어지는 아티팩트에 대한 참조를 기반으로 소통한다. 이러한 참조는 드라이버, 배포자 등에 의해 메타데이터로부터 얻어지며, 따라서 메타데이터는 TFX 파이프라인의 아주 중요한 요소 중 하나이다.컴포넌트를 실행할 때, 드라이버는 MLMD(Machine Learning Metadata) 라이브러리의 API를 사용하여 실행에 해당하는 메타데이터를 저장한다. 실행 이후 컴포넌트 배포자는 컴포넌트의 출력 값의 참조를 메타데이터스토어에 저장한다. MLMD는 스토리지 백엔드에 연결을 구성하여 메타데이터를 메타데이터스토어에 끊임없이 저장한다. 현재 MLMD가 제공하는 스토리지 백엔드는 다음과 같이 세 가지로 나뉜다.(SQLite를 통.. MLOps 2021. 12. 12. TFX 컴포넌트 개요 TFX 컴포넌트 개요컴포넌트는 단일 태스크의 실행보다 더 복잡한 프로세스를 처리한다. 모든 머신러닝 파이프라인 컴포넌트는 메타데이터스토어에서 입력 아티팩트를 가져오고, 메타데이터스토어에서 제공한 경로에서 데이터를 로드하여 처리한다. 컴포넌트는 처리된 데이터를 출력하고 이 데이터는 다음 파이프라인 컴포넌트에 제공된다. 즉, 컴포넌트 내부에서는 다음과 같은 작업이 수행된다고 할 수 있다.입력 수신: 메타데이터스토어로부터 입력 아티팩트 수신 및 데이터 로드작업 수행: 데이터 처리최종 결과 저장: 결과 저장 후 출력 위 세 가지 작업을 수행하는 컴포넌트 내 파트를 각각 드라이버(driver), 실행자(executor), 배포자(publisher)라고 한다. 드라이버는 메타데이터스토어에서 입력 데이터를 가져오며,.. MLOps 2021. 12. 11. TFX - 텐서플로우 익스텐디드 TFX - 텐서플로우 익스텐디드이번 포스팅에서는 텐서플로우 기반 Google-production-scale 머신러닝 플랫폼인 텐서플로우 익스텐디드(TFX)를 소개하고 그 설치 방법을 알아보도록 하겠다. TFX를 사용하여 파이프라인 작업을 정의한 후 에어플로, 쿠브플로 파이프라인 등의 파이프라인 오케스트레이터로 파이프라인을 실행시킬 수 있다.1. TFX 소개머신러닝 파이프라인이 복잡해짐에 따라 작업 의존성을 관리하는 데에 드는 노력과 시간은 증가하기 마련이다. 파이프라인이 복잡해지고 커짐에 따라 태스크 간 결합을 수행하는 글루 코드(glue code)의 힘이 약해져 연결이 취약해지고, 이는 파이프라인의 고장을 초래할 수 있다. 여기서 연결이 취약해진다라고 함은, 프로덕션 모델의 업데이트가 주기적으로 이루어.. MLOps 2021. 12. 8. 이전 1 2 다음