반응형

머신 러닝 모델을 만드는 것은 Jupyter Notebook을 사용하여 만들 수는 있지만, 이것을 서비스 오픈을 하려고 하면 웹 또는 App 등을 통해 서로 인터페이스를 하여 활용이 되어야 한다. 그런데, 인터페이스를 할 때마다 웹 개발자와 머신러닝 개발자의 차이를 좁혀줄 수 있는 것이 MLOPS다. 그래서 이번 글은 MLOPS에 대해 기록한다.


목차

1. MLOPS란?
2. MLOPS 특징
3. MLOPS와 DEVOPS의 차이점
4. MLOPS의 조건

1. MLOPS란?

MLOPS는 기계학습(Machine Learning)과 운영(Operations)의 합성어로, 머신러닝의 기술과 운영을 통합하여 머신러닝 모델을 효율적으로 관리하고 개발하여 운영하는 것을 말한다. 따라서, 개발과 운영을 따로 하는게 아닌 개발과 운영을 동시에 할 수 있는 방향으로 가는 것을 지향한다. 다시 말해, 머신러닝 모델을 개발하고 배포를 하여 서비스를 제공하고 운영하는 모든 단계를 포함하는 원칙이라고 볼 수도 있다.

 

 

위와 같이, 머신러닝과 DevOps를 포함하면서도, 데이터 엔지니어링(DE) 영역도 포함이 될 수도 있다. 

 

2. MLOPS 특징

1) 자동화된 모델 빌드 및 학습

MLOps는 모델 개발 및 학습 과정을 자동화합니다. 이를 통해 모델을 일정하고 반복적으로 학습하고 개선할 수 있습니다.

2) 버전 관리

MLOps는 모델의 버전 관리를 지원합니다. 각 모델 버전은 변경 내용 및 학습 데이터와 함께 문서화되어 추적되며, 모델의 이전 상태로 롤백할 수 있습니다.

3) 코드 관리

MLOps는 모델 개발 코드와 설정을 관리하고 문서화합니다. 코드와 모델 사이의 의존성을 관리하여 재현성과 신뢰성을 확보합니다.

4) 자동화된 테스트 및 검증

MLOps는 모델의 성능 및 안정성을 테스트하고 검증하는 프로세스를 자동화합니다. 이를 통해 모델의 예측 정확성을 유지하고 문제를 빠르게 식별할 수 있습니다.

5) 모델 배포 및 관리

MLOps는 모델을 프로덕션 환경으로 배포하고 관리하는 방법을 제공합니다. 이를 통해 모델이 실제 환경에서 원활하게 작동하며 최신 데이터로 유지될 수 있습니다.

6) 감시 및 로깅

MLOps는 모델의 실시간 작동을 모니터링하고 로깅합니다. 이를 통해 문제 발생 시 신속하게 대응하고 모델 성능을 지속적으로 개선할 수 있습니다.

7) 보안 및 규정 준수

MLOps는 모델 및 데이터의 보안을 유지하고 규정 준수를 준수하는 데 도움을 줍니다. 민감한 정보를 보호하고 모델이 규정을 준수하도록 보장합니다.

8) 협업과 지식 공유

MLOps는 데이터 사이언티스트, 데이터 엔지니어, 운영팀 간의 협업을 강화하고 지식 공유를 촉진합니다.

 

즉, 위의 특징들을 요약하자면 빠른 머신러닝 개발과 배포, 모니터링을 통한 장애 복구, 머신러닝 모델 최적화 등의 효율성을 뽑아낼 수 있다.

 

3. MLOPS와 DEVOPS의 차이점

 MLOPS와 DEVOPS의 공통점은 어떤 대상을 개발과 운영을 분리하지 않고, 개발과 운영을 통합적으로 관리를 한다는 것이다. 즉, 개발과 운영의 커뮤니케이션의 진입 장벽을 낮추고, 프로세스와 업무의 효율성을 극대화하여 성공적으로 업무를 마치는 것에 초점을 갖추고 있다.

 

하지만 MLOPS와 DEVOPS의 큰 차이점은 개발을 하는 대상이 어떤 것이냐에 대한 차이다. MLOPS 같은 경우에는 머신러닝에 국한적으로 지정되어 있지만, DEVOPS의 경우에는 머신러닝 뿐만 아니라 모든 소프트웨어 개발에 대한 것이 포괄적으로 포함이 된다. 대소 비교를 했을 때, MLOPS보다 DEVOPS가 더 큰 개념이라고 볼 수 있다.

 

4. MLOPS의 조건

MLOPS에서 필요한 조건은 아래와 같다.

 

1) 지속적 통합(Continuous Integration, CI)

머신러닝 모델 개발의 코드들을 빌드 및 통합한다.

 

2) 지속적 배포/제공(Continuous Deployment/Delivery, CD)

머신러닝 모델을 자동으로 배포 및 제공한다.

 

3) 지속적 학습(Continuous Training, CT)

머신러닝 모델을 개발을 하여 운영을 하고 있으면, 새로운 학습 데이터를 넣을 경우 그 학습 데이터도 자동으로 다시 재학습하여 업데이트 될 수 있도록 한다. 

 


 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기