ML 파이프라인22 모델 분석 방법 모델 분석 방법파이프라인 내에서 데이터를 검증하고 전처리하여 모델을 훈련시키고 나면 모델을 당장 프로덕션에 투입할 수도 있다. 하지만, 그전에 모델의 성능을 심층적으로 분석하고 기존 모델의 성능을 개선할 수 있는지 검증하는 단계를 추가하는 것을 권장한다. 모델의 학습에서도 모델 검증을 수행하긴 하지만, 보통 accuracy라는 단일 metric에 대해서만 수행되는 것이 일반적이다. 하지만 실제 프로덕션 환경에서 모델이 적절한 기능을 할 수 있을지 검증하는 데에는 다소 부족함이 있다. 또한 전체 테스트셋에 걸친 성능을 하나의 지표로 일반화하는 것은 위험할 수 있다. 실제 프로덕션 환경에서는 하나의 데이터에 하나의 아웃풋이 매칭 되는 것이 일반적이고, 이는 매번 다른 성능 지표 값을 보일 것이다. 그런데 .. MLOps 2022. 1. 26. 모델 튜닝 모델 튜닝하이퍼 파라미터 튜닝은 머신러닝 모델의 성능을 높이는 데에 있어 중요한 부분이다. 모델 튜닝의 간략한 개념을 알아보고, 파이프라인에 이러한 프로세스를 적용하는 방법에 대해 배워보자.하이퍼 파라미터 튜닝 전략간단한 머신러닝 모델의 경우 하이퍼 파라미터의 개수가 많지 않아 크게 중요하지 않을 수 있지만, 심층 신경망(Deep Neural Network) 기반의 딥러닝 모델일 경우 특히 중요하다. 튜닝해야 할 하이퍼 파라미터는 크게 두 종류로 나눌 수 있다. 모델 아키텍처에서 필요한 하이퍼 파라미터와 최적화(Optimizing)에 필요한 하이퍼 파라미터가 그것이다. 모델 아키텍처에서의 하이퍼 파라미터는 파이프라인에 있는 모델 유형에 따라 달라질 수 있다. 공통적으로 사용되는 하이퍼 파라미터로는 에포크.. MLOps 2022. 1. 19. TFX Trainer 컴포넌트 TFX Trainer 컴포넌트TFX의 Trainer 컴포넌트는 파이프라인의 학습 단계를 처리하는 컴포넌트이다. 이 컴포넌트는 새로운 데이터를 변환하고 예측하는 모델을 생성한다. 여기서 중요한 점은, 이 모델이 Transform 단계를 포함한다는 것이다. 데이터 전처리에 의해 만들어진 변환 데이터는 항상 학습될 모델이 기대하는 데이터와 일치하므로 잠재적인 오류를 배제할 수 있는 것이 최대 장점이다. 예시 Trainer 컴포넌트에는 다음과 같은 입력이 필요하다.데이터 검증 단계에서 생성된 데이터 스키마변환 데이터 및 전처리 그래프학습 하이퍼 파라미터run_fn() 함수가 포함된 모듈 파일run_fn() 함수Trainer 컴포넌트는 모듈 파일에서 run_fn() 함수를 찾아 학습 프로세스를 시작한다. 따라서 .. MLOps 2022. 1. 11. TFX 모델 학습 - 모델 정의하기 TFX 모델 학습 - 모델 정의하기앞선 단계들을 통해 모델에 사용될 데이터를 수집하고 검증한 후 처리하였다. 다음 단계는 이렇게 만들어진 데이터셋을 사용해 모델을 학습시키는 것이다. 모델 학습은 전체 파이프라인에서 가장 오랜 시간이 소요되는 부분이니 원활히 진행될 수 있도록 만반의 준비를 해두어야 한다. TFX 파이프라인에서 모델을 학습할 때에는 데이터 전처리 단계에서 만들어진 변환 그래프가 훈련된 모델 가중치와 함께 저장되는 것이 필요하다. 전처리 단계와 학습된 모델을 그래프 하나로 내보내서 잠재적인 오류 원인을 제거하는 것이다.예제 프로젝트 모델 정의하기여기서는 별도의 실험 프로세스를 통해 모델 아키텍처를 선택하였다고 가정하고, TFX 파이프라인에 통합하게 될 예제 프로젝트 모델을 정의하는 것에 초.. MLOps 2022. 1. 10. TFT를 머신러닝 파이프라인에 통합하기 TFT를 머신러닝 파이프라인에 통합하기앞선 데이터 검증 단계에서 우리는 데이터셋의 피처 별 타입 및 분포부터 문자열 표현과 벡터형 표현까지 피처의 특성을 파악했다. 이는 전처리 단계에서 feature engineering을 정의하는 데에 중요하다. 다음 코드에서는 피처를 정의한다. 간편한 처리를 위해 원-핫 인코딩 피처, 버킷 처리 피처, 원시 문자열 표현 세 그룹으로 그룹화하였다.import tensorflow as tfimport tensorflow_transform as tftLABEL_KEY = 'consumer_disputed'# 'feature_name':feature_dimensionONE_HOT_FEATURES = { 'product':11, 'sub+product':45, .. MLOps 2022. 1. 8. TFT 독립 실행형으로 실행하기 TFT 독립 실행형으로 실행하기변환 함수를 실행하는 방법에는 두 가지가 있다. 머신러닝 파이프라인의 일부로서 TFX 컴포넌트 형태로 전처리 변환을 실행하는 것과 독립 실행형으로 실행하는 것이 그것이다. 두 방법 모두 로컬 아파치 빔 설정 또는 구글 클라우드 데이터플로 서비스에서 수행할 수 있다. 기본적으로는 TFT를 머신러닝 파이프라인의 일부로 통합하여 사용하는 것이 일반적이나, 파이프라인이 아닌 외부에서 데이터를 처리해야 할 경우 독립 실행형을 채택하는 것이 효율적이다. 간단한 소규모 샘플 데이터셋에 정규화 처리를 적용하는 예제를 수행해보자.# small data sampleraw_data = [ {'x': 1.20}, {'x': 2.99}, .. MLOps 2022. 1. 6. TFT를 이용한 데이터 전처리 TFT를 이용한 데이터 전처리TFT는 텐서플로우 생태계 내에서 데이터를 전처리하는 라이브러리로, TFDV와 마찬가지로 TFX의 일부이다. TFT는 이전에 생성한 데이터셋 스키마를 사용하여 파이프라인에 수집된 데이터를 처리하고 다음 두 가지 아티팩트를 출력한다.TFRecord 형식의 전처리된 데이터셋:파이프라인의 Trainer 컴포넌트에서 사용전처리 그래프 (에셋 파일 포함):머신러닝 모델을 내보낼 때 사용TFT의 핵심 함수는 preprocessing_fn()으로, 원시 데이터에 적용할 모든 변환을 정의할 수 있다. Transform 컴포넌트를 실행하면 preprocessing_fn은 Tensor 혹은 SparseTensor 형태의 원시 데이터를 받아, 정의된 변환을 적용 후(이때 적용되는 변환은 모두 텐.. MLOps 2022. 1. 5. 데이터 전처리 데이터 전처리외부로부터 수집되는 데이터는 일반적으로 머신러닝 모델이 사용할 수 없는 형식인 경우가 많다. 따라서, 데이터를 모델이 사용할 수 있는 형태로 처리하는 과정이 필요한데, 이를 데이터 전처리라고 한다. 데이터는 일관적인 전처리 과정을 통해 처리되는 것이 일반적이며, 이를 위해 보통 데이터 검증 이후 전처리 과정이 수행된다. TFX는 데이터 전처리를 위한 컴포넌트인 TensorFlow Transform(TFT)을 지원한다. 이를 이용하면 전처리 단계를 텐서플로우 그래프의 형태로 구성할 수 있다. 다만 이러한 방식은 다소 오버헤드가 발생할 수 있기 때문에 실험단계에서의 사용은 권장하지 않는다.데이터 전처리 통합의 필요성TFT는 데이터 전처리 단계를 텐서플로우로 구현해야 한다는 점에서 TFX 컴포넌.. MLOps 2022. 1. 4. 머신러닝 파이프라인에 TFDV 통합하기 머신러닝 파이프라인에 TFDV 통합하기TFX는 StatisticsGen이라는 파이프라인 컴포넌트를 제공한다. 이는 이전 ExampleGen 컴포넌트의 출력을 입력으로 받아 통계를 생성한다.from tfx.components import StatisticsGenfrom tfx.orchestration.experimental.interactive.interactive_context import InteractiveContextcontext = InteractiveContext()statistics_gen = StatisticsGen(examples=example_gen.outputs['example'])context.run(statistics_gen) InteractiveContext를 이용해 다음과 같이 .. MLOps 2022. 1. 3. GCP를 사용한 대용량 데이터셋 처리 GCP를 사용한 대용량 데이터셋 처리데이터 수집량이 많아질수록 데이터 검증 단계에서 소요되는 시간은 더 커진다. 이때, 노드에의 병렬 배포를 수행하는 클라우드 솔루션을 활용하면 이러한 소요시간을 단축시킬 수 있다. TFDV는 아파치 빔에서 실행되기 때문에 구글 클라우드 데이터플로로의 전환이 쉽다. 구글 클라우드 데이터플로(Dataflow)에서 TFDV를 실행하는 방법을 알아보자.Google Cloud 서비스 계정 생성로컬 머신 또는 Cloud Shell에서 Cloud SDK를 사용하여 다음 명령어를 실행하여 서비스 계정을 만들고 권한을 부여한 후 키 파일을 JSON 형태로 받을 수 있다. 1. 서비스 계정 생성SERVICE_ACCOUNT_NAME에 설정하고자 하는 서비스 계정명을 입력한다.gcloud .. MLOps 2022. 1. 2. 데이터 인식 데이터 인식데이터의 요약과 통계는 데이터 자체의 특성을 잘 드러내기는 하나, 잠재적인 문제를 발견하기에는 다소 부족한 면이 있다. TFDV가 어떻게 데이터에서 잠재적인 문제를 발견하고 어떤 도움을 줄 수 있는지 알아보도록 하자.데이터셋 비교머신러닝의 데이터셋에는 훈련 세트와 검증 세트가 있다. 검증 데이터는 학습 데이터로 학습된 모델이 제대로 학습되었는지를 검증하는 역할을 하기 때문에, 둘의 대표성이 동등해야 한다. 검증 데이터의 스키마가 학습 데이터와 같은지, feature의 열 또는 값이 유의미한 수준으로 누락되었는지 등을 살펴보고 이를 처리할 수 있는 방법이 필요하다. TFDV는 이러한 질문에 빠르게 답을 줄 수 있다. 다음과 같은 방식을 이용해 두 데이터셋을 불러와 통계를 비교해보자.train_s.. MLOps 2021. 12. 31. 데이터 검증 데이터 검증데이터는 모든 머신러닝 모델의 기본이다. 또한 모델의 유용성과 성능은 학습, 검증, 테스트에 사용되는 데이터의 질과 밀접한 연관이 있다. 머신러닝계에서 자주 언급되는 원칙인 GIGO(Garbage in, Garbage Out)는 이러한 특성을 잘 설명한다. 이처럼 데이터의 수집과 모델 학습 사이 제대로 된 데이터 검증은 필수적이다. 이번 게시글에서는 데이터 검증의 필요성과 그 아이디어를 짚어본 후 TFX에서 제공하는 TFDV(TensorFlow Data Validation)에 대해 알아보도록 하겠다. 데이터 검증 단계는 파이프라인의 데이터가 feature engineering 단계에서 기대하는 데이터인지 확인하는 단계이다. 데이터의 형태 및 feature는 물론 통계적인 특성 또한 점검함으로.. MLOps 2021. 12. 27. 이전 1 2 다음