머신러닝 파이프라인이란? - ML Pipeline에 대하여
포스팅 개요
이번 포스팅은 머신러닝 파이프라인(Machine Learning pipeline)에 대해서 알아보는 포스팅입니다.
머신러닝 프로젝트를 하다 보면 필요성을 느끼게 되는 머신러닝 파이프라인. 이것이 왜 중요하고, 무슨 의미를 지니고 있는지에 대해서 간략하게 소개하려고 합니다.
포스팅 본문
머신러닝 파이프라인이란? - Machine Learning pipeline?
머신러닝 파이프라인이란 용어는 아마도 머신러닝이나 딥러닝과 같은 프로젝트를 하다보면 많이 들어보셨을 지도 모르겠습니다.
짧은 경험이지만, 머신러닝 프로젝트를 조금씩 진행해보면서 느낀 것은 아래 그림과 같습니다. 아마도 많이 보셨을 만한 사진일 겁니다. 처음 이 그림을 보고 정말 많이 공감했습니다.
저는 처음 머신러닝과 딥러닝을 공부할 때 가장 많이 노력하고, 집중해서 보았던 부분은 바로 '모델의 성능'이었습니다.
예를 들어 머신러닝 모델의 정확도(accuracy)나 f1-score 등의 점수가 가장 중요한 줄 알았습니다. 캐글(kaggle)과 같은 대회에서도 실제로 저런 모델의 metric이 중요하니까요. 그래서 이 모델의 성능만 올리면 머신러닝 프로젝트는 다 끝나는 줄 알았습니다.
하지만, 현실은 그렇지 않았습니다. 지인들과 토이 프로젝트를 해보면서, 그리고 실무로 해보면서 느꼈던 것은 머신러닝, 딥러닝의 성능보다 더 중요한 것이 있다는 것을 알게 되었습니다. 바로 파이프라인의 중요성이었습니다.
위 사진은 머신러닝 파이프라인(machine learning pipeline)을 보여주는 하나의 예시입니다.
- load data : data pipeline 등을 통해 나온 저장소(S3, RDB 등)에서 적절하게 데이터를 가지고 옵니다.
- Data analysis : 어떤 데이터가 중요한지, 어떤 특성을 가지고 있는지 전반적으로 살펴봅니다.
- Feature Engineering : 데이터 preprocessing 단계입니다. 살펴본 데이터를 기반으로 적절히 전처리를 진행합니다.
- Data validation : 변형된 데이터에 대해서 한 번 더 검증을 합니다.
- Data Split : 머신러닝, 딥러닝 훈련을 위해 데이터를 나눠줍니다.
- Build & Train model : 머신러닝, 딥러닝 모델을 구축하고 훈련을 진행합니다.
- Model Validation : 쓸만한 모델인지 검증합니다.
- Model serving : production level이나 모델을 저장해놓는 저장소에 모델을 저장합니다.
즉, 하나의 머신러닝 프로젝트에 위와 같은 다양한 과정이 있습니다. 위 과정은 굉장히 단순하게 표현한 것입니다. 실제로는 좀 더 복잡한 과정이 들어가게 됩니다.
정리하자면 머신러닝 프로젝트에서 machine learning model의 정확도 등의 metrics도 중요하지만, 위와 같은 일련의 과정을 전부 관리해야 하는데, 저 일련의 과정이 Machine learning pipeline입니다. (혹은 machine learning data workflow라고도 불리는 것 같더라구요)
그리고 저 과정을 최대한 쉽게 관리하고, 자동화 할 수 있는 것이 매우 중요합니다. 왜나햐면, 이러한 복잡성 때문에 반복되는 업무가 생기기 마련이고 데이터 분석, 모델 개발 및 학습에 집중해야 할 때에 불필요한 시간 소모가 굉장히 크기 때문입니다. 그리고 그것을 해결하고자 나온 것이 바로 머신러닝 파이프라인 관리 툴입니다.
다음 포스팅에서는 이러한 머신러닝 파이프라인을 관리해주는 큐브플로우(Kubeflow)에 대해서 작성하겠습니다.
다음 글 : https://lsjsj92.tistory.com/580