본문 바로가기
AI/MLOps

[MLOps 파이프라인 구현] MLOps란?

by merona99 2024. 10. 30.
반응형

[MLOps 파이프라인 구현] MLOps란?

참고강의 : 10개 프로젝트로 한 번에 끝내는 MLOps 파이프라인 구현 초격차 패키지 Online(패스트캠퍼스)

 


[MLOps란 무엇인가?]

  • Machine Learning Operations
  • 기계 학습 모델을 구축하고, 배포하고, 관리하기 위한 프로세스를 통칭하는 용어(자동화에 기반)
  • 전통적인 소프트웨어 개발과는 다른 방식으로 진행되며, Machine Learning 시스템의 독특한 특징을 고려하여 구성

 

[ML LifeCycle 구성 요소]

  • Data Collection and Preparation
  • Feature Engineering
  • Model Selection and Model Learning
  • Model Evaluation and Model Tuning
  • Deployment and Monitoring
  • Re Evaluation and Model Update

MLOps 사이클(출처: databricks)

 

 

[MLOps의 핵심 기능]

  • MLOps의 핵심 기능들은 Model Life Cycle 주기 전반에 걸쳐 모델의 효율적인 관리와 빠른 개발, 배포, 유지 보수를 가능하게 함
  • 이를 통해 기업은 더 나은 모델을 더 빠르게 개발하여 비즈니스 가치를 높일 수 있음

 

 

[ML System vs ML LifeCycle]

ML System 비교 사항 MLOps
데이터 분석, 모델 훈련, 예측 생성 등을 
포함하는 시스템
정의 머신러닝 모델의 개발, 배포 및 운영
특정 머신러닝 모델의 구현과 기능 초점 모델의 전체 생명주기 관리 및 최적화
데이터 처리, 모델 훈련, 예측 및 추론,
사용자 인터페이스
주요 구성 요소 ML System의 구성 요소 + 모델 버전
관리, 자동화된 테스트 및 배포, 성능 모니터링
비즈니스 요구사항을 충족하는 데이터기반 예측 제공 목적 머신러닝 모델의 신속한 개발
머신러닝 모델과 관련된 작업을 포함 공통점 머신러닝을 비즈니스 프로세스의 통합하려는
목표 공유
구체적인 머신러닝 모델 작업에 초점.
한 번의 구축에 초점을 맞춤
차이점 지속적인 통합, 배포 및 모니터링에

 

• ML System보다는 더 많은 범위를 다루는 것이 MLOps

 

 

[여러 단계로 나눌 수 있는 MLOps 구현 수준]

1단계

  • MLOps를 사용하지 않고 검토하거나, 매우 기본적인 기능을 사용
  • 모델 학습과 배포를 수동으로 수행하고 모델 성능을 모니터링 하는 것에만 활용

2단계

  • MLOps의 기본적인 기능만 사용
  • CI/CD Pipeline을 구성하거나 모델 및 데이터 관리를 위해 몇 가지 도구를 도입

3단계(완전한 MLOps)

  • MLOps의 모든 기능을 사용
  • 완전히 자동화된 모델 관리, CI/CD Pipeline, 로깅, 모니터링, 데이터 관리 및 보안 시스템을 구축

 

[MLOps를 위한 도구]

도구 종류로 CI/CD, 모델 관리 및 배포, 데이터 관리, 로깅 및 모니터링, 보안이 있지만  MLOps 기능과 도구를 한 개의 service 형태로 제공하는 것들이 존재

  • Mlflow
  • Kuberflow
  • AWS sagemaker
  • GCP AI Platform

 

[MLOps 구축 요구사항]

Adaptability (적응성)

  • 새로운 데이터, 사용 사례, 기술 변화에 신속하게 대응할 수 있는 능력
  • 빠르게 변화하는 데이터 환경과 기술 트렌드에 효과적으로 대응하기 위해 필수적
  • 모델의 지속적인 학습 및 최적화
  • 데이터 파이프라인의 유연성 및 다양한 데이터 소스의 통합
  • 사용자 피드백과 시장 변화에 따른 빠른 적응

Maintainability (유지 보수성)

  • 시스템의 일관된 성능을 유지하고, 필요에 따라 쉽게 수정 및 업데이트할 수 있는 능력
  • 장기적인 안정성과 지속적인 성능을 보장하기 위해 필요
  • 코드의 가독성 및 모듈화
  • 문서화 및 표준화된 개발 프로세스
  • 자동화된 테스팅 및 오류 탐지 시스템

Scalability (확장성)

  • 시스템이 데이터의 양의 증가나 사용자 수의 증가에 따라 효율적으로 확장될 수 있는 능력
  • 사용량의 증가에 따라 시스템 성능을 유지하며 성장할 수 있도록 함
  • 클라우드 기반 인프라 및 서비스 사용
  • 동적 리소스 할당 및 관리
  • 분산 처리 및 데이터 스토리지 전략

Reliability (신뢰성)

  • 예측 가능하고 일관된 성능을 제공하며, 장애 발생 시 빠르게 복구할 수 있는 능력
  • 시스템의 안정성을 보장하고 사용자의 신뢰를 확보하기 위해 중요
  • 견고한 오류 처리 및 예외 처리
  • 고가용성 및 재해 복구 계획
  • 정기적인 백업 및 시스템 모니터링

 

✅ 직무에 따라 다르게 사용하는 MLOps

Backend Software Engineer
 
역할 : API 개발, 사용자 인터페이스, 시스템 통합 및 코드 최적화
• MLOps 사용 기술
  - API 개발 관리
  - 모델 Deployment : 머신러닝 모델을 기존 시스템과 통합
• 구현시 사용 기술
  - API 개발 도구
  - 프론트엔드 프레임워크

MLOps Engineer
역할 : 머신러닝 모델의 배포, 모니터링, 유지 보수 및 스케일링
• MLOps 사용 기술
  - 모델 배포 : 모델을 프로덕션 환경에 배포하는 프로세스 관리
  - CI/CD 파이프라인 구축 : 지속적 통합 및 배포 파이프라인 구축 및 관리
  - 시스템 모니터링 및 로깅 : 시스템 성능 및 모델 성능 모니터링, 로그 관리
• 구현시 사용 기술
  - 컨테이너화 및 오케스트레이션 (Docker, Kubernetes)
  - CI/CD 도구 (Jenkins, GitLab CI)
  - 모니터링 및 로깅 도구 (Prometheus, ELK Stack)

 

 

 


 

 

// 현업과 거리가 있는 주제이긴 하나 django로 제작중인 토이프로젝트의 추천모델에 mlops를 한번 접목해보고자 공부를 시작한다. 인프라 지식이 약하기도 해서 언젠가 협업시에 도움이 될 것 같다. 개인적으로 흥미가 가는 주제다.

 

반응형

댓글