반응형
[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의 핵심 기능]
- 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를 한번 접목해보고자 공부를 시작한다. 인프라 지식이 약하기도 해서 언젠가 협업시에 도움이 될 것 같다. 개인적으로 흥미가 가는 주제다.
반응형
'AI > MLOps' 카테고리의 다른 글
[Workflow] Workflow Management 이론 (0) | 2024.11.15 |
---|---|
[쿠버네티스] Orchestrator 실습 (0) | 2024.11.14 |
[쿠버네티스] Orchestarator 이론 (0) | 2024.11.11 |
[Docker] Docker 실습 - Container (0) | 2024.11.09 |
[Docker] Docker 설치 및 기본 명령어 (0) | 2024.11.08 |
댓글