ML 파이프라인22 데이터 준비 데이터 준비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. 파이프라인 오케스트레이션 파이프라인 오케스트레이션앞서 설명한 머신러닝 파이프라인의 모든 컴포넌트가 올바른 순서로 실행되도록 조정해야 할 필요가 있다. 각 컴포넌트는 실행되기 전에 해당 컴포넌트의 실행에 필요한 모든 입력값이 준비되어야 한다. 이러한 단계 조정에는 아파치 빔(Apache Beam), 아파치 에어플로(Apache Airflow), 쿠버네티스(Kubernetes) 인프라용 쿠브플로(Kubeflow) 파이프라인 등의 도구가 사용된다. 데이터 파이프라인 도구가 머신러닝 파이프라인 단계를 조정하는 동안, 텐서플로우 ML 메타데이터스토어(MetadataStore)와 같은 파이프라인 아티팩트(Artifact) 저장소는 개별 프로세스의 산출물을 저장한다.1) 파이프라인 오케스트레이션의 필요성2015년, 구글 머신러닝 엔지니어 팀.. MLOps 2021. 12. 6. 머신러닝 파이프라인 단계 머신러닝 파이프라인 단계머신러닝 파이프라인은 새로운 학습 데이터 수집을 시작으로, 모델의 작동 피드백을 받는 것까지를 포함한다. 그 안에는 데이터 전처리, 모델 학습 및 분석, 모델 배포 등 다양한 단계가 포함되어 있다. 이러한 단계를 자동으로, 또 반복적으로 수행할 수 있게 하는 것이 머신러닝 파이프라인의 목적이다.위 그림에서처럼, 머신러닝 파이프라인은 반복되는 주기를 가진다. 데이터를 데이터 소스로부터 지속적으로 수집할 수 있으므로 모델의 지속적인 업데이트가 가능하고, 자동화된 재학습을 통해 모델의 성능을 개선할 수 있다. 실제 실무에서는 과거의 데이터와 현재 유입되는 데이터가 같다는 보장이 없는 경우가 많아 지속적인 재학습을 통한 업데이트가 필수적이며, 이를 머신러닝 파이프라인이 수행한다.1) 데이.. MLOps 2021. 12. 3. 머신러닝 파이프라인의 필요성 머신러닝 파이프라인의 필요성모델 생애 주기(Modle Lifecycle) 단계를 자동화할 수 있다는 점은 머신러닝 파이프라인의 주요 이점 중 하나이다. 새로운 훈련 데이터가 들어왔을 때, 데이터 검증, 전처리, 훈련, 분석 및 배포 등 전체 워크플로우를 자동으로 재설정할 수 있게 하는 것이 바로 머신러닝 파이프라인인 것이다.머신러닝 파이프라인의 이점기존 모델 유지보수에서 벗어나 새 모델에 집중할 수 있다: 새로운 모델 개발 시간 확보자동화된 ML 파이프라인은 기존 모델을 유지보수할 필요성을 줄여준다. 기존의 모델 조정 방식은 학습 데이터를 전처리하거나 일회성 배포를 수행하는 스크립트를 수동으로 실행하는 등의 형태로, 데이터 사이언티스트의 업무에 부담을 주었다. 이러한 방식은 시간과 비용이 많이 드는 것은.. MLOps 2021. 12. 1. 이전 1 2 다음