본문 바로가기

DEVELOP_NOTE

[AutoML] AutoGluon으로 빠르게 여러 ML모델들을 비교 테스트해보자! ML 프로젝트를 진행할때, 가장 많은 시간이 소요되는 스텝을 꼽아본다면, 아래 과정들을 떠올릴 수 있다. 1) 데이터 전처리 2) 최적의 성능을 담보할 수 있는 model Architecture를 테스트하고 확정하는 과정 * AutoML이 많은 사용자들에게 관심받기 시작한 것도, 바로 이러한 과정을 자동화해야할 필요가 있었기때문이다. ...현실의 머신러닝 모델링은 문제 정의 과정에서부터 데이터 수집, 전처리, 모델 학습 및 평가를 거쳐 서비스 적용에 이르기까지에는 여러 분야 전문가들의 많은 시간과 노력이 요구된다. AutoML은 머신러닝을 적용 할 때 마다 이러한 과정을 되풀이하면서 발생하는 비효율적인 작업을 최대한 자동화하여 생산성과 효율을 높이기 위하여 등장하였습니다. 특히, 데이터 전처리 과정에서부.. 더보기
[Pytorch Profiler]파이토치 프로파일러를 통해 모델 성능 모니터링하기! 보통 PoC단계의 모델개발에서 실제 프로덕트단으로 넘어가는 과정에서 반드시 고려해야할 사항들이 있다. 바로 모델의 속도와 리소스이다. 프로덕트단에서 서비스로서 제공되는 모델은 정확도는 기본이고, 유저의 이벤트에 빠르게 반응해야하며, 대규모의 트래픽에도 운용될 수 있는 적은 리소스로 운용될 수 있어야한다. 이를 위해서는 모델 개발환경에서부터 모델의 성능, 속도, 리소스에 대한 모니터링과 함께 반복적인 개선작업이 수반되어야한다. 오늘은 내 모델의 속도와 리소스에 대해 모니터링 할 수 있는 Pytorch Profiler를 활용하기 위해 진행한 튜토리얼 과정에 대해 정리해보려 한다. 1. Profiler? 먼저 프로파일러의 개념에 대해서 잠깐 이해해보도록 하자. 프로파일러는 "머신러닝 모델의 학습과 실행 과정에.. 더보기
[ML 확률과 통계] 확률 변수와 확률 분포 오늘은 '확률 변수' 와 '확률 분포'에 대해서 정리해보도록 하자. 확률에 대해서 이해하기 위해서는 먼저 시행(trial)과 사건(event)를 이해해야한다. 예를들어, 주사위를 던져서 특정 눈금값을 구한다 라는 행위를 할때, 주사위를 던지는 행위는 '시행(trial)'이라고 할 수 있고, 그 결과로 나온 눈금값이 나온 결과를 '사건(event)'라고 정의할 수 있다. 즉, '확률'이라는 것은 '어떤 사건이 일어날 가능성'을 수치로 표현한 것이다. 첫번째 알아볼 개념 : 확률변수(Random Variable)와 확률 함수 확률변수란 '시행(trial)할 때마다 변할 수 있는 값'을 의미한다. 그리고 '확률 함수'란 각 확률변수에 따라서 '확률 값'을 부여하는 함수를 의미한다. 이때, 확률함수는 일반적으로.. 더보기
[ML 확률과 통계] 순열과 조합 오늘부터, 통계의 중요한 요점들에 대해서 공부하고 정리해보려한다. 가장 기본적인 통계 개념부터 부터 가볍게 지나치지않고 상세하게 정리해가보도록 하자. 먼저, 확률이란? 확률이란, 특정한 사건이 일어날 가능성을 수로 표현한것을 의미한다. 그리고, 확률은 0부터 1사이의 실수로 표현되는데, 어떤 사건에 대해 수치표현을 통해 객관적이고 합리적인 의사결정을 할 수 있는 근거가 된다. 기계학습 모델을 확률적으로 이해해보자 우리는 N개의 학습 데이터로 기계학습 모델을 학습한다. 이때, 일반적으로 기계학습 모델의 출력은'확률'형태를 띤다. ex) image classification model 'θ'가 이미지 x에 대해서 0.75의 확률로 '고양이'일것이라고 예측했다.ex) text generation model '.. 더보기
Drift를 감지하는 방법 (2) Concept Drift Detection (+ADWIN, Page-Hinkley Test, CUSUM, DDM) 오늘은 concept drift를 detectioin하는 여러가지 방법론들을 살펴보려한다. 'concept drift'는 시간이 지남에 따라 모델에 input되는 데이터의 통계적 특성이 달라지거나, feature와 label간의 관계가 달라질때 model의 성능이 저하되는 경우를 일컫는다. concept drift가 data drift에 비해 갖는 특징중 하나는, 모델의 도메인에 따라 중요성이 달라질 수 있다는 것이다. 가령, 얼굴인식 또는 STT, TTS, 언어모델과 같은 경우에는 데이터의 특성이 달라지지 않기 때문에 concept drift가 발생할 확률이 낮다. 하지만, 그 외 과제를 해결하기 위한 예측모델의 경우 데이터 분포나 feature와 label의 관계에 변화가 생기는 concept dr.. 더보기
Drift를 감지하는 방법 (1) Data Drift Detection 지난 포스팅에서는 Model Drift의 개념과 발생원인에 대해서 정리해보았다. > Model Drift의 개념과 원인 (+ Data Drift, Label Drift, Concept Drift) https://familia-89.tistory.com/69 잠깐 리마인드해보자면, model drift가 발생했을때, 가장 대표적인 원인으로는 data drift, label drift, concept drift를 꼽을 수 있었다. data drift는 학습당시의 데이터분포와 프로덕트단에서 input되는 데이터의 분포가 상이할 때 발생하는 성능 저하 현상이다. label drift는 target데이터 분포가 학습당시와 프로덕트 단에서 차이가 있을 경우, 발생하는 성능 저하 현상이다. 마지막으로, concept.. 더보기
Model Drift의 개념과 원인 (+ Data Drift, Label Drift, Concept Drift) 머신러닝 모델을 학습하고 배포에 이르렀다는것은 학습과 평가 단계에서 어느정도 서비스에 적용이 가능한 수준의 성능이 확보되었다는 의미일 것이다. 따라서 모델을 배포했을 당시에는 의도했던 수준의 퍼포먼스를 확인할 수 있다. 하지만, 모델이 배포 된 후, 성능하락 속도의 차이는 있겠지만, 시간이 흐름에 따라 모델은 처음에 기대했던 성능에서 차츰 퍼포먼스가 떨어지게된다. 이런 현상을 Model drift, Model decay(모델의 쇠퇴), Model staleness(모델의 진부)라고 한다. 아래에서는 이러한 현상을 model drift로 통일하여 설명하도록 하겠다. 오늘은 모델의 퍼포먼스가 떨어지는 이유와 해결방법에 대해서 정리해보자. Model Drift ? model drift란 한마디로, 예측하지 못.. 더보기
MLOps란? 오늘은 MLOps에 대해서 자세히 정리해보고자 한다. MLOps 란? 먼저 MLOps라는 용어는 Machine Learning Operations, ML과 Ops(Operations)의 합성어로, 학습한 머신러닝 모델을 안정적이고 효율적으로 배포 및 유지관리하는 것을 목표로 하는 '패러다임'이다. 그리고, MLOps Process는 ML과 Operation에 해당하는 영역으로 각각 구분할 수 있다. ML 단계 : 데이터 수집, 전처리, 모델 구축, 학습, 평가 등 Ops 단계 : 모델 배포, 모니터링, 테스트 등 MLOps는 불과 몇년전부터 주목받기 시작한 기술인데, 이는 ML이 실제 서비스에 적용되고 운영되기 시작하면서 머신러닝 모델의 지속적 통합, 배포, 학습을 관리할 수 있는 시스템의 필요성을 인식.. 더보기