요약
머신 러닝 운영(MLOps)은 머신 러닝 (ML) 모델을 배포 및 유지 관리하는 프로세스를 간소화하는 일련의 워크플로우 사례입니다.
DevOps와 GitOps 원칙에서 영감을 받은 MLOps는 ML 모델을 소프트웨어 개발 프로세스에 통합하기 위한 지속적인 발전을 확립하고자 합니다. MLOps를 도입함으로써 데이터 사이언티스트, 엔지니어, IT 팀은 반복적인 훈련 루프를 간소화하여 머신 러닝 모델을 정확하게 최신 상태로 유지할 수 있습니다. 그러면 지속적인 모니터링, 재훈련, 배포가 가능하므로 모델이 점차 데이터 변화에 적응하고 최고의 성능을 유지할 수 있습니다.
MLOps 도입의 장점
머신 러닝 모델은 데이터에서 패턴을 감지하여 예측합니다. 모델이 진화하여 아직 학습되지 않은 새로운 데이터에 노출되면 이른바 "데이터 드리프트(data drift)" 문제가 발생합니다. 데이터 드리프트는 시간이 지남에 따라 ML 모델을 교육하는 데 사용된 통계적 속성이 오래되면서 자연스럽게 발생하며, 이를 해결하고 바로잡지 않으면 비즈니스에 악영향을 줄 수 있습니다.
데이터 드리프트를 방지하려면 모델을 모니터링하고 높은 수준의 예측 정확성을 유지하는 것이 중요합니다. MLOps 사례를 적용하면 팀은 예측 모델의 품질과 정확성을 높이는 동시에 관리 프로세스를 간소화하여 데이터 드리프트를 방지하고 데이터 사이언티스트의 효율성을 최적화할 수 있는 장점을 누릴 수 있습니다.
MLOps가 조직에 도움이 되는 구체적인 방법은 다음과 같습니다.
재현 가능성: MLOps 프레임워크는 각기 다른 모델과 관련된 코드, 데이터, 구성 파일의 변경 사항을 추적하고 관리하는 데 도움이 되므로 조직은 ML 실험의 일관된 재현 가능성을 활용할 수 있습니다.
지속적 통합/지속적 배포(CI/CD): MLOps 프레임워크는 CI/CD 파이프라인과 통합하여 자동화된 테스트, 검증, 배포를 지원합니다. 결과적으로, 개발과 제공 주기가 빨라지고 지속적인 개선을 장려하는 문화를 조성할 수 있습니다.
협업 증진과 일정 단축: MLOps는 팀원이 효과적으로 협업하며 동시에 장애물을 없애고 생산성을 높일 수 있도록 지원합니다. 또한 수동 태스크가 자동화되면 조직은 더 많은 모델을 더 신속하게 배포하고 이를 더 자주 빈도로 반복할 수 있어 정확성을 최대로 높일 수 있습니다.
비용 절감: 정확한 ML 모델을 유지하기 위한 지속적인 조정과 개선은 특히 수동으로 이루어질 때 지루한 작업입니다. MLOps로 자동화하면 조직은 많은 시간이 소요되는 수동 작업에 할당되는 리소스를 절약할 수 있습니다. 또한 배포 프로세스를 간소화하여 수작업의 오류 발생 위험을 최소화하고 가치 창출 시간을 늘립니다.
거버넌스와 컴플라이언스 개선: MLOps 사례를 통해 조직은 보안 조치를 실행하고 데이터 프라이버시 규제로 컴플라이언스를 보장할 수 있습니다. 또한 성능과 정확성을 모니터링하면 새로운 데이터가 통합되면서 모델 드리프트를 추적할 수 있고 예방적 조치를 통해 점차 정확도를 높여갈 수 있습니다.
MLOps로 자동화를 도입하고 시간을 절약
MLOps 사례를 도입하면 머신 러닝 모델을 관리하는 데 따르는 지루한 수동 작업에서 벗어나면서 동시에 지속적인 성능과 안정성을 보장할 수 있습니다. 또한 팀 간 협업을 간소화하여 조직 내 애자일 개발과 데이터 기반 의사 결정을 촉진할 수 있습니다.
업종에 관계없이 MLOps를 통해 ML 개발 프로세스를 자동화하고 간소화할 수 있습니다. MLOps 활용 사례에는 다음과 같은 지원이 포함됩니다.
예측적 유지 관리: 장비의 장애 발생을 예측하고 유지 관리 일정을 사전에 예약합니다.
사기 감지: 트랜잭션을 지속적으로 모니터링하여 의심스러운 활동을 감지하는 모델을 구축하고 배포합니다.
자연어 처리(NLP): 챗봇, 번역기와 같은 애플리케이션과 기타 대규모 언어 모델(LLM) 의 효과적이고 안정적인 실행을 보장합니다.
컴퓨터 비전: 의료 영상 분석, 객체 감지, 자율 주행 등의 태스크를 지원합니다.
이상 감지: 네트워크 보안, 산업 프로세스, IoT 기기 등 다양한 컨텍스트에서 표준의 변형을 감지합니다.
보건 의료: 질병 진단, 환자 치료 결과 예측, 의료 영상 분석 등을 위한 모델을 배포합니다.
유통: 인벤토리를 관리하고, 수요를 예측하며, 가격을 최적화하고, 고객 쇼핑 경험을 강화합니다.
MLOps와 DevOps 비교
MLOps는 DevOps가 한층 진화한 것으로 간주될 수 있으며, ML 모델을 개발하는 데 적용되는 협업, 자동화 및 지속적인 개선이라는 동일한 기본 개념을 바탕으로 합니다. MLOps와 DevOps의 목표는 둘다 IT 운영 팀과의 협업 개선으로, IT 운영 팀과 긴밀한 협력을 통해 소프트웨어나 ML 모델을 라이프사이클 전체에 걸쳐 관리하고 유지해야 합니다.
DevOps가 일상적인 운영 작업을 자동화하고 개발 및 배포를 위한 환경을 표준화하는 데 중점을 두는 반면, MLOps는 더 실험적인 성격이 더 강하며 데이터 파이프라인을 관리하고 유지하는 방법을 찾습니다. ML 모델에 사용되는 데이터는 지속적으로 변화하기 때문에 모델 자체도 그에 따라 변화해야 하며, 따라서 지속적인 적응과 미세 조정이 필요합니다.
DevOps의 테스트, 배포 및 프로덕션은 MLOps와는 다르게 보입니다. 이러한 이유로 인해 ML 프로젝트에서 소프트 엔지니어링이 전문이 아닌 데이터 사이언티스트가 팀에 포함되는 경우가 많지만 탐색적 데이터 분석, 모델 개발, 실험 위주의 업무를 담당합니다. 보통 DevOps의 고려 대상은 아니지만 MLOps에 포함되는 작업으로는 다음과 같은 것들이 있습니다.
- 데이터 검증, 훈련된 모델 품질 평가 및 모델 검증에 대한 테스트
- 새로운 데이터를 수신할 때 자동으로 ML 모델을 재훈련하고 배포하기 위해 여러 단계의 파이프라인 구축
- 값이 예상치를 벗어나는 경우를 알리도록 데이터의 요약 통계를 추적하고 모델의 온라인 성능을 모니터링
마지막으로, MLOps의 지속적 통합 및 지속적 배포(CI/CD)에서 CI는 DevOps에서와 같이 코드와 구성 요소를 테스트하고 검증하는 것이 아니라 데이터, 데이터 스키마, 모델을 테스트하고 검증하는 것을 의미합니다. 또한 CD는 더 이상 단일 소프트웨어 패키지나 서비스가 아닌, 다른 서비스(모델 예측 서비스)를 자동으로 배포해야 하는 시스템(ML 훈련 파이프라인)이 핵심입니다.
MLOps 단계에 관한 Red Hat의 의견
ML 모델을 구축하고 운영할 수 있는 단 하나의 방법은 없지만, 데이터를 수집/준비하고, 모델을 개발하고, 모델을 AI 지원 지능형 애플리케이션으로 변환하고, 이러한 애플리케이션에서 수익을 창출해야 한다는 것만큼은 변함이 없습니다.
Red Hat® OpenShift®에는 데이터센터, 퍼블릭 클라우드 컴퓨팅, 엣지 컴퓨팅 전반에서 일관된 5단계를 통해 MLOps를 지원하는 핵심 기능이 포함되어 있습니다.
1단계: 데이터 수집/준비
ML 모델을 훈련하고 테스트하기 적합한 형식으로 정형 또는 비정형 데이터를 수집하고, 정리하고, 레이블을 설정합니다.
2단계: 모델 훈련
ML 모델은 Red Hat OpenShift 기반의 Jupyter Notebook으로 훈련됩니다.
3단계: 자동화
Red Hat OpenShift Pipelines 는 이벤트 기반의 지속적 통합 기능으로, ML 모델을 컨테이너 이미지로 패키징할 수 있도록 지원합니다.
4단계: 배포
Red Hat OpenShift GitOps 는 퍼블릭, 프라이빗, 하이브리드, 엣지 등 어디에서나 규모에 맞게 ML 모델의 배포를 자동화합니다.
5단계: 모니터링
에코시스템 파트너가 제공하는 툴을 사용하여 모델을 모니터링하고 필요에 따라 재훈련과 재배포를 통해 업데이트할 수 있습니다. 새로운 데이터가 수집되면 프로세스가 1단계로 돌아가고, 다섯 단계를 자동으로 계속해서 반복합니다.
MLOps 시작하기
조직 내에서 머신 러닝 통합을 탐색하는 단계에 있든, ML 파이프라인과 관련하여 일시적으로 작업을 해왔든, 워크플로우와 프로세스가 더 폭넓은 MLOps 범위에 어떻게 적합한지 이해하는 것이 도움이 될 수 있습니다. 머신 러닝 프로세스의 성숙도는 워크플로우 내 자동화 정도에 따라 일반적으로 3가지 레벨로 분류됩니다.
MLOps 레벨 0: 모든 것이 수동
머신 러닝을 이제 막 시작한 팀은 일반적으로 완전 수동 워크플로우로 작업합니다. 이 단계에서는 모델을 개발하는 데이터 사이언티스트와 모델을 제공하는 엔지니어가 개별적으로 작업하며, 프로세스의 모든 단계(데이터 준비, 모델 훈련, 자동화, 배포, 모니터링)가 자동화 없이 실행됩니다. 또한 지속적 통합(CI)도, 지속적 배포(CD)도 존재하지 않습니다. 새로운 모델 버전 관리가 드물게 배포되고, 새로운 모델이 배포되면 변경 사항에 적응하지 못할 확률이 높습니다.
MLOps 레벨 1: 자동화된 ML 파이프라인
모델이 새로운 요소에 능동적으로 적응해야 하는 경우에는 워크플로우에 자동화를 도입하는 것이 합리적입니다. 자동화된 파이프라인을 사용하면 새로운 데이터가 지속적 훈련(CT)을 위해 반복적으로 들어오기 때문에 모델이 예측 서비스와 가장 관련성이 높은 정보에 액세스할 수 있습니다.
MLOps 레벨 2: 자동화된 CI/CD 시스템
이 단계에서는 ML 모델이 빠르고 안정적으로 업데이트됩니다. ML 모델은 매시간 또는 매일 새로운 데이터로 재훈련되며 업데이트가 수천 개의 서버에 동시에 배포됩니다. 자동화된 CI/CD 시스템을 통해 데이터 사이언티스트와 엔지니어는 단일 협업 환경에서 조화롭게 작업할 수 있습니다.
구축과 구매 비교
리소스와 일정은 모두 MLOps 플랫폼을 구축하느냐 아니면 구매하느냐를 결정할 때 고려해야 할 요소입니다. 기능하는 ML 인프라를 구축하는 데 일 년 이상이 소요될 수 있고, 조직에 실질적인 가치를 창출하는 파이프라인을 구축하는 방법을 파악하는 데는 더 오랜 시간이 걸릴 수 있습니다. 인프라를 유지 관리하려면 라이프사이클 관리와 전담 팀도 필요합니다. 팀에 기술력이 없거나 기술을 익힐 여력이 없는 경우 엔드 투 엔드 MLOps 플랫폼에 투자하는 것이 최선의 해결책일 수 있습니다.
Red Hat의 지원 방식
Red Hat OpenShift의 AI 포트폴리오는 Red Hat OpenShift와 Red Hat OpenShift Data Science의 검증된 기능을 모두 제공합니다. 또한 규모에 따라 안전하고 일관되게 AI를 애플리케이션으로 통합하는 작업을 간소화하는 데 있어 데이터 사이언티스트와 애플리케이션 개발자가 협력할 수 있는 일관된 엔터프라이즈 수준의 단일 애플리케이션 플랫폼을 제공합니다.
Red Hat OpenShift AI에는 데이터센터, 퍼블릭 클라우드 컴퓨팅, 엣지 컴퓨팅 전반에서 일관된 방식으로 MLOps를 지원하는 핵심 기능이 포함되어 있습니다.
Kubeflow는 머신 러닝(ML) 워크로드를 개발하고, 관리하고, 실행하기 위한 쿠버네티스 네이티브 오픈소스 프레임워크입니다. OpenShift에서 Kubeflow를 실행하면 클라우드 컴퓨팅 기능을 활용하면서 프로젝트를 구성하여 머신 러닝 운영을 표준화하는 데 도움이 될 수 있습니다. Kubeflow의 주요 활용 사례로는 데이터 준비, 모델 훈련, 평가, 최적화, 배포 등이 있습니다.