MLOps
머신러닝 디자인 패턴(Machine Learning Design Patterns) 개요
seoyoung02
2022. 12. 12. 01:09
이 책은 머신러닝에 필요한 디자인 패턴을 아래의 6개 카테고리에 따라 나누어 소개한다. 여기서의 디자인 패턴은 자주 발생하는 문제 상황에 대한 패턴화된 해결책 정도로 생각하면 될 듯 하다.
2. 데이터 표현
3. 문제 표현
4. 모델 학습
5. 탄력성
6. 재현성
7. 책임있는 AI
각 카테고리와 상관없이 ML개발 step을 나누고 그에 해당되는 패턴을 정리해보았다. 개인적인 생각으로만 정리한 것이기도 하고, 디자인 패턴이 여러 단계에 얽혀있을 수 있어서 표에 정리된 것이 부정확할 수 있다. (틀린 부분이나 어색한 부분이 있다면 언제든지 댓글로 피드백 부탁드립니다..)
ML step | design pattern | framework |
문제 선택 및 분석 | ||
데이터 수집 | ||
데이터 검증 및 정제 | 특징 해시(2.2) | |
리밸런싱(3.6) | ||
반복 가능 분할(6.2) | ||
특징 저장소(feature store)(6.6, 정리 링크) | apache beam Flink Spark scalar 저장소 cassandra redis Hive big query (kafka - 저장소 사이 flow..?) hopsworks Feast zipline |
|
공정성 렌즈(7.3) | what if tool TFMA TFDV |
|
데이터 라벨링 | 리프레이밍(3.1) | |
멀티라벨(3.2) | ||
중립클래스(3.5) | ||
모델 개발(알고리즘 선택) | 임베딩(2.3) | |
특징 교차(2.4, 정리 링크) | ||
멀티모달 입력(2.5) | ||
앙상블(3.3) | ||
캐스케이드(3.4) | ||
2단계 예측(5.4) | tensorflow lite |
|
브리지 스키마(6.3) | ||
모델 학습 | 유용한 과대적합(4.2) | |
체크포인트(4.3) | ||
전이학습(4.4) | ||
분산전략(4.5, 정리 링크) | ||
하이퍼파라미터 튜닝(4.6) | keras-tuner vizier hypertune |
|
트랜스폼(6.1) | tf.transform apache beam |
|
윈도 추론(6.4) | ||
설명 가능한 예측(7.2) | ||
평가 | 휴리스틱 벤치마크(7.1) | |
배포 | 스테이트리스 서빙 함수(5.1) | google app engine heroku aws lambda azure function cloud run tensorflow serving torchserve |
배치 서빙(5.2) | 분산 데이터 처리 - MapReduce - apache spark - big query - apache beam |
|
모델 버전 관리(6.7) | tensorflow serving seldon mlflow |
|
모니터 | 연속 모델 평가(5.3) | cloud composer apache airflow AI platform pipeline |
overall pipeline | 워크플로 파이프라인(6.5, 정리 링크) | AI platform pipeline TFX kubeflow pipeline apache airflow MLflow CI/CD 통합 - cloud build - github action - github trigger kale |
?? | 키 기반 예측(5.5) | |
ML engineering에 대한 여러 flow가 있지만 분류하기 쉽게 상대적을 단순한 버전으로 선택했다. 위에는 참고한 flow이다.
출처:
머신러닝 디자인 패턴, 한빛미디어, 2021