AI 플랫폼이란?
AI(Artificial Intelligence) 플랫폼은 머신러닝 워크플로우(Machine Learning Workflow)를 자동화 해준다. 머신러닝 워크플로우는 머신러닝(ML) 모델을 개발하는 모든 과정을 말하며 데이터 전처리, 탐색적 데이터 분석, 데이터 변환, 하이퍼파라미터 튜닝, 머신러닝 모델 학습, 머신러닝 모델 배포 단계로 이루어진다.
머신러닝 워크플로우 각 단계에서 머신러닝 모델을 개발하는데 필요한 도구와 환경을 수작업으로 구축하려면 많은 시간과 노력이 필요하다. AI 플랫폼은 이러한 수작업을 최소화하여 AI 모델을 쉽게 개발하고 배포하기 위한 기능을 제공한다.
대표적인 AI 플랫폼으로 퍼블릭 클라우드에는 구글 버텍스 AI(Google Vertex AI), 아마존 세이지메이커(Amazon SageMaker), 애저 머신러닝(Azure Machine Learning) 등이 있으며, 오픈소스로는 쿠브플로우(Kubeflow)가 유명하다.
기업의 업무 환경에 따라서 퍼블릭 클라우드 혹은 오픈소스 AI 플랫폼을 도입할 수 있다. 비용에 여유가 있거나 퍼블릭 클라우드를 이미 사용하고 있는 기업이라면 퍼블릭 클라우드를 사용하는 것이 효율적일 수 있다. 그렇지 않은 경우에는 오픈소스를 활용하여 AI 플랫폼을 구축하는 것을 고려해 볼 수 있다. 이 아티클에서는 오픈소스 AI 플랫폼인 쿠브플로우를 소개하고자 한다.
쿠브플로우(Kubeflow)란?
쿠브플로우는 엔드투엔드(End-to-End) AI 플랫폼이다. 머신러닝 워크플로우의 모델 학습부터 모델 배포 단계까지 모든 작업에 필요한 도구와 환경을 쿠버네티스(Kubernetes) 위에서 쿠브플로우 컴포넌트로 제공한다.
그럼 쿠브플로우 컴포넌트에 대해 알아보자.
Central Dashboard
대시보드 UI로 웹브라우저를 통해 Notebooks, Experiments (AutoML), Experiments (KFP) 등의 컴포넌트를 이용할 수 있다. 각 컴포넌트에 대해서는 뒤에서 설명할 것이다.
Kubeflow Notebooks
웹브라우저에서 파이썬 코드를 작성하고 실행할 수 있는 주피터(Jupyter) Notebook 개발 도구를 제공한다.
이미지 경로와 자원 등을 설정하여 쿠버네티스 환경에 Notebook을 생성할 수 있다. 사용자는 생성한 Notebook을 이용해 데이터 전처리와 탐색적 데이터 분석 등을 수행하여 머신러닝 모델 코드를 개발할 수 있다.
Training Operators
트레이닝 오퍼레이터(Training Operator)는 텐서플로우(TensorFlow), 파이토치(PyTorch), 엠엑스넷(MXNet) 등 다양한 딥러닝 프레임워크에 대해 분산 학습을 지원한다.
쿠버네티스 환경에서 머신러닝 모델을 분산 학습하여 학습에 드는 시간을 줄일 수 있다. 사용자가 분산 학습 커스텀 리소스(Custom Resource, CR)를 작성하여 쿠버네티스에 배포하면 쿠브플로우 트레이닝 오퍼레이터는 CR에 따라 워크로드를 분산 배치하여 실행한다. CR에는 머신러닝 모델 코드를 담고 있는 도커 이미지 경로와 분산 학습 클러스터 정보 등을 정의한다.
Katib(AutoML)
AutoML은 머신러닝 모델의 예측 정확도와 성능을 높이기 위한 반복 실험을 자동화하는 도구이다. 쿠브플로우에서는 카티브(Katib)를 사용하여 AutoML 기능을 제공한다.
카티브는 하이퍼파라미터 튜닝(Hyper Parameter Tuning), 뉴럴 아키텍처 탐색(Neural Architecture Search, NAS) 기능이 있다. 하이퍼파라미터 튜닝은 모델의 하이퍼파라미터를 최적화하는 작업이고 NAS는 모델의 구조, 노드 가중치 등 뉴럴 네트워크 아키텍처를 최적화하는 작업이다.
예를 들어, 카티브를 이용하면 학습률(Learning rate) 하이퍼파라미터가 0.1, 0.05 중 어느 값이 모델의 예측 정확도를 높이는 값인지 찾는 실험 등을 자동화할 수 있다. 먼저 Experiment (AutoML) CR을 작성한 후 쿠버네티스에 배포하면 카티브가 CR에 정의한 하이퍼파라미터와 병렬 처리 설정에 따라 실험을 동시에 수행하여 가장 성능이 좋은 하이퍼파라미터를 찾는다.
KServe
쿠브플로우는 KServe를 통해 쿠버네티스 환경에 머신러닝 모델을 배포하고 추론 기능을 제공한다. KServe는 Endpoint, Transformer, Predictor, Explainer로 이루어져 있다.
Endpoint가 Predictor에 추론할 데이터를 전달하면 Predictor는 데이터를 예측하거나 분류한다. Endpoint는 데이터의 가중치 비율을 조절하여 Predictor에 전달할 수 있어서 A/B테스트도 가능하다.
Transformer나 Explainer는 필요에 따라 추가 가능한데 Predictor 와 연결하여 사용한다. Explainer는 데이터를 예측하거나 분류한 결과에 대해 판단 이유를 제시하는 설명 가능한 인공지능(eXplainable Artificial Intelligence, XAI) 역할을 하며, Transformer는 데이터 전처리, 후처리 기능을 제공한다.
Kubeflow Pipelines(KFP)
Kubeflow Pipelines(KFP)은 머신러닝 워크플로우를 구축하고 배포하기 위한 머신러닝 워크플로우 자동화(ML Workflow Orchestration) 도구이다. KFP의 목표는 파이프라인(Pipelines)과 파이프라인 컴포넌트(Pipeline Components)를 재사용하여 다양한 실험을 빠르고 쉽게 수행하는 것이다.
쿠브플로우에서 제공하는 KFP SDK사용하여 데이터 전처리, 데이터 변환, 하이퍼파라미터 튜닝, 모델 학습 등 워크플로우의 모든 단계에서 수행하는 코드를 파이프라인 컴포넌트로 미리 만들어 놓고, 파이프라인 컴포넌트를DAG (Directed Acyclic Graph) 형태로 연결해서 파이프라인을 구성할 수 있다.
KFP는 워크플로우 엔진으로 아르고 워크플로우(Argo Workflow)를 사용한다. 작성한 파이프라인 코드를 DSL(Domain Specific Language) 컴파일러를 사용하여 아르고 워크플로우 커스텀 리소스로 변환한 후, CR을 쿠버네티스 환경에 배포하여 머신러닝 워크플로우를 쉽게 구축할 수 있다.
지금까지 쿠버네티스 기반의 AI 플랫폼, 쿠브플로우에 대해 간략히 알아보았다. 더 자세한 정보는 Kubeflow Documentation을 참고하기 바란다.
# References
- https://www.kubeflow.org/docs/
- https://kserve.github.io/website/
- http://shorturl.at/mKQW1
- https://cloud.google.com/vertex-ai
권한철 프로
에스코어㈜ 소프트웨어사업부 클라우드플랫폼그룹
빅데이터 분석 플랫폼 개발 및 대용량 데이터 분석 경험을 기반으로 AI 플랫폼 개발 업무를 수행하고 있습니다.
Register for Download Contents
- 이메일 주소를 제출해 주시면 콘텐츠를 다운로드 받을 수 있으며, 자동으로 뉴스레터 신청 서비스에 가입됩니다.
- 뉴스레터 서비스 가입 거부 시 콘텐츠 다운로드 서비스가 제한될 수 있습니다.
- 파일 다운로드가 되지 않을 경우 s-core_mktg@samsung.com으로 문의해주십시오.