MLOps25 CI/CD 파이프라인을 통한 모델 배포 CI/CD 파이프라인을 통한 모델 배포CI/CD 기본 개념CI(Continuous Integration)는 개발 과정에서 코드 변경 사항을 주기적으로 통합하는 것을 말하며, CD(Continuous Deployment 또는 Continuous Delivery)는 통합된 코드를 자동으로 테스트하고 배포하는 과정을 의미한다. 이러한 프로세스를 통해 소프트웨어 개발의 효율성을 높이고 오류 가능성을 줄일 수 있다. 머신러닝 모델 배포의 특징머신 러닝 모델 배포는 전통적인 소프트웨어 배포와 달리, 모델의 성능 검증, 데이터 의존성 관리, 모델 버전 관리 등 여러 가지 특수한 과제를 포함한다. 이러한 것들을 일일이 관리하기에는 시간과 노력이 많이 소요되며, 종종 실수를 불러일으킬 수도 있기 때문에 이를 자동화하는 .. 카테고리 없음 2024. 5. 23. [리뷰] 머신러닝 실무 프로젝트 2판 * 한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다. 머신러닝 실무 프로젝트 (Machine Learning at Work) 2판 아리가 마치아키, 나카야마 신타, 니시바야시 다카시 저 / 김모세 역 머신러닝 실무 프로젝트 - YES24 어디서든 환영받는 ‘실무형 머신러닝’ 비법온라인 강의, 책, 대학 연구만으로는 실제 비즈니스에 머신러닝을 어떻게 적용할 것인지, 어떤 경우에 머신러닝 기법과 데이터 분석 방법을 적용해 www.yes24.com 간단 서평 소규모 스타트업에서 ML Engineer로 일을 하며 모델 학습부터 배포까지 전반을 다루게 되었고, 이로부터 단순 연구를 벗어난 '머신러닝 실무'에 관심을 가지게 되었다. 그러나 MLOps 관련 서적들은 다소 허들이 높았고, DevOps 지식이 .. 리뷰/도서, 강의 리뷰 2022. 4. 14. 모델 분석 방법 모델 분석 방법파이프라인 내에서 데이터를 검증하고 전처리하여 모델을 훈련시키고 나면 모델을 당장 프로덕션에 투입할 수도 있다. 하지만, 그전에 모델의 성능을 심층적으로 분석하고 기존 모델의 성능을 개선할 수 있는지 검증하는 단계를 추가하는 것을 권장한다. 모델의 학습에서도 모델 검증을 수행하긴 하지만, 보통 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. 이전 1 2 3 다음