https://www.run.ai/guides/machine-learning-operations#Benefits-of-MLOps
머신러닝 운영(MLOps)은 새로운 머신러닝(ML) 및 딥러닝(DL) 모델을 생성하고 이를 프로덕션에 배포하는 반복 가능하고 자동화된 워크플로를 통해 실행하는 프랙티스이다.
MLOps 파이프라인은 데이터 과학 팀에게 모델 버전 관리, 지속적 통합 및 지속적 배포(CI/CD), 프로덕션 모델을 위한 모델 서비스 카탈로그, 인프라 관리, 실시간 모델 성능 모니터링, 보안 및 거버넌스를 포함한 다양한 서비스를 제공한다.
이 글은 AI 기술에 관한 광범위한 시리즈 가이드의 일부이다.
이 글에서 다룰 내용:
- MLOps의 주요 이점
- DevOps vs MLOps
- 조직에서 MLOps 구현하기
- MLOps로 성공하는 방법: 12가지 필수 모범 사례
MLOps의 주요 이점
MLOps는 ML 인프라의 매우 전문화된 인프라 요구 사항을 IT가 지원할 수 있게 해주는 중요한 연결 고리이다. 순환적이고 자동화된 MLOps 접근 방식은 다음과 같은 이점을 제공한다:
- 모델을 프로덕션으로 이동하는 시간과 복잡성을 줄인다.
- 종종 고립된 팀 간의 커뮤니케이션과 협업을 강화한다: 데이터 과학, 개발, 운영
- 일반적으로 R&D 프로세스와 인프라 간의 인터페이스를 간소화하고, 특히 GPU와 같은 전문 하드웨어 가속기의 사용을 운영화한다.
- 버전 관리, 추적 및 모니터링과 같은 장기적인 애플리케이션 건강에 중요한 모델 문제를 운영화한다.
- 개발에서 프로덕션까지 모든 단계에서 ML 인프라와 컴퓨팅 비용을 모니터링하고 이해하기 쉽게 만든다.
- ML 프로세스를 표준화하고 규제 및 거버넌스 목적을 위해 감사를 간으하게 만든다.
DevOps vs MLOps
MLOps는 DevOps에서 영감을 받았으며, 두 접근 방식은 본질적으로 유사하다. 그러나 MLOps가 DevOps와 크게 다른 몇가지 방법이 있다:
- MLOps는 실험적 성격을 띈다: 데이터 과학 팀의 대부분의 활동은 실험과 관련이 있다. 팀은 더 나은 성능을 달성하기 위해 모델의 긴으을 지속적으로 변경하며, 진화하는 코드베이스를 관리한다.
- 하이브리드 팀: 데이터 과학 팀은 개발자(머신러닝 엔지니어)와 데이터를 분석하고 모델과 알고리즘을 개발하는 데이터 과학자 또는 연구자로 구성된다. 후자는 소프트웨어 개발에 경험이 없을 수 있다.
- 지속적 테스트 (CT: Continuous testing): DevOps 파이프라인의 정기적인 테스트 단계 (단위 테스트, 기능 테스트, 통합 테스트 등) 외에도 MLOps 파이프라인은 모델 자체를 지속적으로 테스트해야 한다. 학습하고 알려진 데이터셋에 대해 성능을 검증한다.
- 재학습 자동화 (Automatic retraining): 대부분의 경우, 사전 학습된 모델은 프로덕션에서 그대로 사용할 수 없다. 모델은 지속적으로 재학습되고 배포되어야 한다. 이를 위해 데이터 과학자가 모델을 학습하고 검증하는 과정을 자동화해야 한다.
- 성능 저하 (Performance degradation): 일반 소프트웨어와 달리, 모델이 완벽하게 작동하더라도 시간이 지남에 따라 성능이 저하될 수 있다. 이는 모델이 소비하는 데이터의 예상치 못한 특성, 학습 및 추론 파이프라인 간의 차이, 각 피드백 루프와 함께 증가할 수 있는 알려지지 않은 편향으로 인해 발생할 수 있다.
- 데이터 모니터링: 모델을 소프트웨어 시스템으로만 모니터링하는 것으로는 충분하지 않다. MLOps 팀은 데이터와 예측도 모니터링하여 모델을 새로 고치거나 롤백해야 할 시점을 파악해야 한다.
조직에서 MLOps 구현하기
이 논의는 Google Cloud의 프레임워크를 기반으로 한다. 아래는 조직에서 MLOps를 구현하고 머신러닝이 완전히 수동적인 "MLOps 레벨 0"에서 완전히 자동화된 MLOps 파이프라인을 갖춘 "MLOps 레벨 2"로 이동하는 Google의 프로세스이다.
MLOps Level 0: Manual Process
이 성숙도 수준에서는 팀이 유용한 ML/DL 모델을 구축할 수 있지만, 이를 프로덕션에 배포하는 완전히 수동적인 프로세스를 가지고 있다. ML 파이프라인은 다음과 같다:
- 파이프라인의 모든 단계는 수동적이거나 Jupyter 노트북에서 실행되는 실험적 코드에 기반한다. 데이터 분석, 준비, 학습 및 검증을 포함한다.
- 데이터 과학자는 최종 예측 서비스를 배포하는 엔지니어와 별도로 작업한다. 데이터 과학 팀은 학습된 모델을 ML 엔지니어에게 제공하며, 이들은 이를 낮은 지연 시간의 API로 제공하는 책임을 진다. 실험 환경과 프로덕션 환경 간의 차이는 학습-서빙 편향을 초래할 수 있다.
- 모델은 자주 릴리즈되지 않는다. 데이터 과학 팀이 모델 작업을 완료했으며 이제 프로덕션에 배포할 수 있다고 가정한다.
- 모델이 정기적으로 변경될 계획이 없기 때문에 CI/CD가 없다. 따라서 이 성숙도 수준에서는 모델 코드의 자동 빌드(CI)나 예측 서비스를 프로덕션에 자동 배포(CD)하는 것을 고려하지 않는다.
- 모델 성능을 정기적으로 모니터링하지 않는다. 모델이 새로운 데이터로 일관된 성능을 제공할 것이라는 가정 하에 있다.
MLOps Level 1: ML Pipeline Automation
이 성숙도 수준에서는 모델이 CI/CD 파이프라인에서 관리되어야 하며, 새로운 데이터에 대해 지속적으로 학습/검증이 수행되어야 한다는 이해가 있다. ML 파이프라인은 이제 다음과 같이 발전한다:
- 전체 ML 프로세스의 오케스트레이션 덕분에 실험이 훨씬 더 빠르게 진행될 수 있다. 데이터 과학자는 가설을 생각하고 이를 빠르게 프로덕션에 배포할 수 있다.
- 모델은 실시간 모델 성능의 피드백을 기반으로 지속적으로 테스트되고 새로운 데이터로 재학습된다.
- 실험 환경과 프로덕션 환경에서 동일한 설정을 사용하여 학습-서빙 편향을 제거한다.
- 모델을 구축하고 학습하는데 사용되는 모든 구성 요소는 여러 파이프라인에서 재사용 가능하고 공유할 수 있다.
MLOps Level 2: Full CI/CD Pipeline Automation
MLOps 성숙도의 가장 높은 수준에서 새로운 실험은 엔지니어의 최소한의 개입으로 프로덕션에 원활하게 배포된다. 데이터 과학자는 쉽게 새로운 ML 파이프라인을 생성하고 이를 대상 환경에 자동으로 빌드, 테스트 및 배포할 수 있다. 이러한 유형의 설정은 다음 다이어그램에 설명되어 있다:
완전히 자동화된 CI/CD 파이프라인은 다음과 같이 작동한다:
- 팀은 새로운 모델과 실험을 제안하고, 그들의 노력을 설명하는 소스 코드를 생성한다.
- 소스 코드는 CI 엔진에 의해 자동으로 빌드되며, 자동화된 테스트를 실행한다. 나중에 배포할 수 있는 아티팩트를 생성한다.
- 파이프라인은 아티팩트를 대상 환경에 배포하며, 이제 완전히 기능하는 모델의 새 버전을 갖게 된다.
- 파이프라인은 트리거에 따라 자동으로 실행되며, 결과는 모델 레지스트리에 푸시된다.
- 학습된 모델은 배포되어 낮은 지연 시간으로 실시간 예측을 가능하게 한다. (실시간 예측 파이프라인)
- 파이프라인은 실시간 모델 성능에 대한 통계를 수집한다. 데이터 과학자는 이 데이터를 평가하고 모델 성능을 기반으로 새로운 실험 주기를 시작할 수 있다. (1단계로 돌아가기)
MLOps로 성공하는 방법: 12가지 필수 모범 사례
1. Automate Model Deployment (모델 배포 자동화)
모델 배포 자동화는 MLOps에 필수적이며, 학습된 머신러닝 모델을 프로덕션 환경에 통합하는 과정을 간소화한다. 이는 다음과 같은 이유로 중요하다.
- 일관성: 자동화된 배포 프로세스는 모델이 사전 정의된 표준 및 모범 사례를 따르도록 일관되게 배포되도록 하여 수동 배포에서 발생할 수 있는 오류와 불일치를 줄인다.
- 더 빠른 시장 출시: 자동화는 모델을 개발에서 프로덕션으로 배포하는데 걸리는 시간을 단축하여 비즈니스가 모델이 생성한 통찰력을 더 빨리 활용할 수 있도록 한다.
- 원활한 업데이트: 모델 배포 자동화는 더 빈번하고 원활한 업데이트를 가능하게 하여 프로덕션 모델이 항상 최신 학습 버전을 사용하도록 보장한다. 이는 동적 데이터나 빠르게 변화하는 비즈니스 요구를 처리할 때 특히 중요하다.
2. Keep the First Model Simple and Build the Right Infrastructure (첫번째 모델을 간단하게 유지하고 적절한 인프라 구축)
간단한 모델로 시작하고 인프라에 집중하는 것은 MLOps에서 성공하기 위한 중요한 접근 방식이다. 이 접근 방식은 여러가지 이점을 제공한다:
- 빠른 반복: 간단한 모델은 팀이 빠르게 반복할 수 있게 하여 프로젝트 초기 단계에서 잠재적인 문제와 개선 기회를 식별하는데 중요하다. 이를 통해 팀은 모델과 인프라를 더 효과적으로 개선할 수 있다.
- 쉬운 디버깅: 간단한 모델은 이해하고 디버깅하기 쉽다. 이는 문제의 원인이 모델인지 인프라인지 구분하기 어려운 경우가 많기 때문에 중요하다. 간단하게 시작하면 팀이 인프라의 문제를 더 쉽게 식별하고 수정할 수 있다.
- 확장성: 처음부터 견고하고 확장 가능한 인프라를 구축하면 프로젝트가 성장함에 따라 시스템이 더 복잡한 모델과 더 큰 데이터셋을 처리할 수 있도록 보장한다. 이 접근 방식은 나중에 인프라를 전면 개편할 필요가 없으므로 시간과 자원을 절약한다.
- 통합: 잘 설계된 인프라는 새로운 모델이나 구성 요소를 쉽게 통합할 수 있게 하여 데이터 과학자와 엔지니어 간의 원활한 협업을 간으하게 한다. 이는 새로운 기능과 개선 사항의 개발 및 배포를 가속화한다.
견고한 인프라를 구축하려면 다음 구성 요소를 고려한다:
- 데이터 수집: 학습 및 평가를 위해 데이터를 수집, 전처리 및 저장하는 신뢰할 수 있고 효율적인 파이프라인을 설정한다.
- 모델 학습: 모델을 쉽게 학습하고 실험과 결과를 추적할 수 있는 시스템을 개발한다.
- 모델 배포: 모델을 쉽게 업데이트, 롤백 또는 교체할 수 있도록 신뢰할 수 있는 배포 파이프라인을 만든다.
- 모니터링 및 로깅: 모델 성능, 리소스 사용량 및 발생할 수 있는 오류나 문제를 추적하기 위한 모니터링 및 로깅 솔루션을 구현한다.
- 보안 및 규정 준수: 인프라가 관련 규정을 준수하고 데이터 보안 및 개인 정보 보호를 위한 모범 사례를 따르도록 보장한다.
3. Enable Shadow Deployment (섀도우 배포 활성화)
shadow deployment는 MLOps에서 사용되는 기술로, 새로운 버전의 머신러닝 모델을 현재 프로덕션 모델과 함께 배포하여 라이브 시스템에 영향을 주지 않도록 한다. 새로운 모델은 프로덕션 모델과 동일한 입력 데이터를 처리하지만 시스템의 최종 출력이나 결정에 영향을 미치지 않는다.
MLOps에서 Shadow Deployment의 역할:
- 검증: Shadow Deployment는 팀이 라이브 시스템을 방해하지 않고 프로덕션과 유사한 환경에서 새로운 모델의 성능과 동작을 평가할 수 있게 한다.
- 위험 완화: 새로운 모델을 프로덕션 모델과 병행하여 실행함으로써 팀은 업데이트된 모델을 완전히 롤아웃하기 전에 잠재적인 문제를 식별하고 수정할 수 있어 예기치 않은 문제의 위험을 최소화할 수 있다.
- 성능 비교: Shadow Deployment는 새로운 모델의 성능을 현재 프로덕션 모델과 비교하여 새로운 버전이 완전히 배포되기 전에 실질적인 개선을 제공하는지 확인할 수 있게 한다.
이 프로세스가 작동할 수 있는 일반적인 단계는 다음과 같다:
1. 인프라: 여러 모델을 동시에 실행하고 서로 간섭하지 않고 동일한 입력 데이터를 처리할 수 잇는 인프라를 설정한다.
2. 데이터 라우팅: 입력 데이터를 프로덕션 모델과 Shadow 모델 모두에 라우팅하여 데이터를 독립적으로 처리할 수 있게 한다.
3. 모델 출력: 두 모델의 출력을 별도로 수집하고 저장하여 라이브 시스템에서 결정을 내리는 데는 프로덕션 모델의 출력만 사용되도록 한다.
4. 모니터링 및 평가: 두 모델의 성능을 모니터링하고 비교하여 섀도우 모델이 완전하 배포를 위한 원하는 기준을 충족하는지 평가한다.
4. Ensure Data Labeling is Strictly Controlled (데이터 라벨링을 엄격하게 관리)
데이터 라벨링은 지도 학습 머신러닝에 필수적이며, 학습 및 평가를 위한 기준을 제공한다. 데이터 라벨링에 대한 통제되고 일관된 프로세스는 고품질의 라벨링된 데이터를 보장하고 모델에 편향이나 오류가 도입될 위험을 줄인다. 다음은 고려해야 할 중요한 실천 방법(practice)이다.
- Develop clear labeling guidelines: 인간 주석자 간의 불인치와 오류를 최소화하기 위해 포괄적이고 명확한 라벨링지침을 설정한다.
- Train and assess annotators: 주석자가 라벨링 지침과 작업 요구 사항을 이해할 수 있도록 교육과 지원을 제공한다. 주기적으로 그들의 성과를 평가하고 피드백을 제공하여 고품질의 주석을 보장한다.
- Use multiple annotators: 동일하 데이터를 라벨링하기 위해 여러 주석자를 할당하고, 합의 또는 기타 기술을 사용하여 그들의 입력을 집계한다. 이는 개별 편향을 줄이고 라벨링된 데이터의 전반적인 품질을 향상시킬 수 있다.
- Monitor and audit the labeling process: 라벨링 프로세스를 정기적으로 모니터링하고 품질 감사를 수행하여 문제를 식별하고 해결한다. 피드백 루프를 사용하여 지침을 반복적으로 개선하고 주석자 성과를 향상시킨다.
5. Use Sanity Checks for External Data Sources (외부 데이터 소스에 대한 무결성 검사 수행)
데이터 품질은 ML 모델의 성능에 중요한 역할을 한다. 모든 외부 데이터 소스에 대한 무결성 검사를 수행하여 데이터 품질, 불일치 및 오류와 관련된 문제를 방지한다.
- Data validation (데이터 검증): 수신 데이터가 사전 정의된 데이터 형식, 유형 및 제약 조건을 준수하는지 확인하기 위해 데이터 검증 검사를 구현한다.
- Detect anomalies (이상 탐지): 데이터의 누락 값, 이상치 및 중복 레코드를 식별하고 처리하기 위한 전략을 개발한다. 이는 데이터 품질을 유지하고 모델 성능을 향상시키는 데 도움이 된다.
- Monitor data drift (데이터 드리프트 모니터링): 데이터 분포의 변화를 정기적으로 모니터링하여 모델 성능에 영향을 미칠 수 있는 변화를 감지한다. 데이터 드리프트를 감지하고 필요한 조치를 위한 경고를 자동으로 트리거하는 프로세스를 설정한다.
6. Write Reusable Scripts for Data Cleaning and Merging (데이터 클렌징 및 머징을 위한 재사용 가능한 스크립트 작성)
데이터 준비는 종종 여러 소스에서 데이터를 정리, 변환 및 병합하는데 많은 시간이 소요되는 과정이다. 이러한 작업을 위한 재사용 가능한 스크립트를 작성하면 효율성을 높이고 프로젝트 간의 일관성을 유지할 수 있다. 다음은 권장되는 실천 방법이다:
- 코드 모듈화(Modularize code): 데이터 준비 작업을 더 작고 독립적인 함수로 나누어 쉽게 재사용하고 결합할 수 있도록 한다. 이는 개발 속도를 높이고 디버깅을 단순화하며 코드 가독성을 향상시킨다.
- 데이터 작업 표준화(Standardize data operations): data cleansing, imputation, feature engineering 과 같은 일반적인 데이터 작업을 위한 표준화된 함수와 라이브러리를 만든다. 이는 재사용성을 촉진하고 중복을 줄이며 프로젝트 간의 알관된 데이터 처리를 보장한다.
- 데이터 준비 자동화(Automate data preparation): 데이터 준비 작업을 자동화하여 수동 개입을 최소화하고 오류 발생 가능성을 줄인다. 이는 효율성을 높이고 데이터 프로세스를 유지하고 업데이트하기 쉽게 만든다.
- 스크립트에 대한 버전 관리(Version ctonrol for scripts): 데이터 준비 스크립트의 변경 사항을 관리하기 위해 버전 관리 시스템을 사용하여 항상 최신의 정확한 버전이 사용되도록 한다. 이는 오래되거나 잘못된 스크립트를 사용하여 발생할 수 있는 불일치와 오류를 방지하는데 도움이 된다.
7. Enable Parallel Training Expreriments (병렬 학습 실험 활성화)
병렬 학습 실험은 여러 머신러닝 모델 학습 작업을 동시에 실행할 수 있게 한다. 이 접근 방식은 다양한 모델 아키텍처, 하이퍼파라미터 또는 데이터 전처리 기술을 동시에 탐색하여 모델 개발 및 최적화 과정을 가속화하는데 사용된다.
병렬 학습 실험은 조직이 더 빠르게 반복하고, 더 나은 모델 구성을 식별하며, 사용 가능한 컴퓨팅 리소스를 가장 효율적으로 활용할 수 있도록 도와준다. 병렬 학습 실험의 이점은 다음과 같다:
- Accelerated model development (모델 개발 가속화): 여러 실험을 동시에 실행하면 데이터 과학자와 엔지니어가 다양한 구성을 빠르게 테스트하고 가장 유망한 구성을 식별할 수 있어 고성능 모델을 개발하는데 필요한 전체 시간을 줄일 수 있다.
- Efficient resource utilization (효율적인 리소스 활용): 병렬 학습은 조직이 사용 가능한 컴퓨팅 리소스(GPU 또는 CPU 코어 등)를 더 잘 활용할 수 있게 하여 학습 작업을 이러한 리소스에 분산시킬 수 있다.
- Improved model performance (모델 성능 향상): 병렬로 더 넓은 범위의 모델 구성을 탐색함으로써 팀은 특정 요구와 요구 사항을 충족하는 고성능 모델을 찾을 가능성을 높일 수 있다.
- Experiment management (실험 관리): 여러 실험이 동시에 실행되면 다양한 실행 결과를 효과적으로 추적, 비교 및 분석할 수 잇는 도구와 프로세스를 사용하는 것이 필수적이다. 이는 데이터 기반 의사 결정과 모델 최적화를 촉진한다.
8. Evaluate Training Using Simple, Understandable Metrics (간단하고 이해하기 쉬운 지표로 학습 평가)
잘 정의되고 쉽게 측정할 수 있으며 이해하기 쉬운 지표는 머신러닝 모델의 성능을 추적하는데 중요하다. 이를 통해 팀은 모델의 진행 상황을 평가하고 개선 방법에 대한 정보에 입각한 결정을 내릴 수 있다. 효과적인 지표를 선택하고 사용하는데 대한 몇가지 권장 사항은 다음과 같다:
- Alignment with business objectives (비즈니스 목표와의 정렬): 지표는 프로젝트의 궁극적인 목표와 밀접하게 관련되어야 한다. 이러한 정렬은 지표의 개선이 조직에 실질적인 이익으로 이어지도록 보장한다.
- Interpretability (해석 가능성): 이해하고 전달하기 쉬운 지표를 선택한다. 이는 기술 및 비기술적 이해관계자가 모델의 성능과 비즈니스에 미치는 영향을 이해하는데 도움이 된다.
- Trade-offs (트레이드 오프): 경우에 따라 모델의 성능의 다양한 측면을 포착하기 위해 여러 지표가 필요할 수 있다. 모델을 최적화할 때 이러한 지표 간의 트레이드오프를 고려한다.
9. Automate Hyper-Parameter Optimization (하이퍼파라미터 최적화)
하이퍼파라미터 최적화(HPO)는 주어진 머신러닝 모델에 대한 최상의 하이퍼파라미터 세트를 찾는 과정이다. 하이퍼파라미터는 학습 중에 모델이 학습할 수 없는 외부 구성 값이지만 모델의 성능에 큰 영향을 미친다. 하이퍼파라미터의 예로는 신경망의 학습률, 배치 크기 및 정규화 강도, 또는 랜덤 포레스트의 깊이 및 트리 수가 있다.
HPO에는 여러가지 접근 방식이 있다:
- Grid search (그리드 검색): 사전 정의된 하이퍼파라미터 값 세트를 철저히 테스트하고 선택한 평가 지표를 기반으로 최상의 구성을 선택한다.
- Random search (랜덤 검색): 사전 정의된 검색 공간에서 하이퍼파라미터 값을 무작위로 샘플링한다. 이는 일반적으로 그리드 검색보다 효율적이다.
- Bayesian optimization (베이지안 최적화): 과제 평가를 추적하고 이 정보를 사용하여 검색 공간을 더 효율적으로 탐색하여 최적의 하이퍼파라미터를 찾기 위해 확률 모델을 사용한다.
- Genetic algorithm (유전 알고리즘): 시간이 지남에 따라 진화하는 후보 솔루션의 집합을 유지하여 하이퍼파라미터 공간을 검색한다.
- Gradient-based optimization (그래디언트 기반 최적화): 일부 모델의 경우, 손실 함수의 하이퍼파라미터에 대한 그래디언트를 활용하여 하이퍼파라미터를 최적화할 수 있다.
HPO를 MLOps 파이프라인에 통합하면 다음과 같은 중요한 이점이 있다:
- Improved model performance (모델 성능 향상): 하이퍼파라미터를 최적화하면 모델 성능이 크게 향상되어 조직이 더 높은 예측 정확도 또는 보지 못한 데이터에 대한 더 나은 일반화를 달성할 수 있다.
- Incresed efficiency (효율성 증가): 자동화된 HPO는 수동 하이퍼파라미터 튜닝에 필요한 시간과 노력을 줄여 리소스를 다른 작업에 할당하고 전체 개발 프로세스를 가속화할 수 있다.
- Consistency and reproducibility (일관성 및 재현성): HPO 프로세스를 자동화하고 잘 정의된 MLOps 파이프라인에 통합함으로써 조직은 일관되고 재현 가능한 결과를 보장하여 다양한 모델 및 구성의 성능을 추적하고 비교하기 쉽게 만든다.
- Continuous improvement (지속적인 개선): 새로운 데이터가 수집되거나 기본 문제 도메인이 진화함에 따라 자동화된 HPO 프로세스를 지속적 통합 및 배포(CI/CD) 파이프라인에 쉽게 통합하여 모델이 시간이 지남에 따라 적응하고 개선할 수 있도록 한다.
10. Continuously Monitor the Behaviour of Deployed Models (배포된 모델의 동작을 지속적으로 모니터링)
배포된 모델의 지속적인 모니터링은 MLOps의 중요한 측면으로, 머신러닝 모델이 프로덕션 환경에서 성능과 신뢰성을 유지하도록 보장한다. 지속적인 모니터링의 중요성은 다음과 같다:
- Detecting model drift (모델 드리프트 감지): 데이터 분포가 시간이 지남에 따라 변경됨에 따라 모델의 성능이 저하될 수 있다. 지속적인 모니터링은 이러한 변화를 조기에 감지하여 모델을 재학습하거나 업데이트하여 효과를 유지할 수 있도록 한다.
- Identifying issues (문제 식별): 지속적인 모니터링은 실시간으로 이상, 오류 또는 성능 문제를 감지하여 팀이 문제를 신속하게 해결하고 해결할 수 있도록 한다.
- Maintaining trust (신뢰 유지): 모델 성능을 지속적으로 추적함으로써 조지은 이해관계자가 모델의 결과와 결정을 신뢰할 수 있도록 보장하여 광범위한 채택에 필수적이다.
- Compliance and auditing (규정 준수 및 감사): 지속적인 모니터링은 모델 성능 및 사용에 대한 기록을 제공하여 조직이 규정을 준수하고 감사를 용이하게 한다.
MLOps에서의 지속적인 모니터링은 일반적으로 다음을 포함한다:
- 성능 지표: 모델의 효과를 평가하기 위해 정기적으로 주요 성능 지표(예: precision, recall, or F1 score)를 수집하고 분석한다.
- 데이터 품질: 모델 성능에 영향을 미칠 수 잇는 이상, 누락 값 또는 분포 변화를 감지하기 위해 입력 데이터를 모니터링한다.
- 리소스 사용량: 배포된 모델을 지원할 수 있도록 시스템 리소스(CPU, Memory 또는 Storage 등)의 사용량을 추적한다.
- 경고 및 알림: 사전 정의된 임계값이 초과될때 관련 이해관계자에게 잠재적인 문제나 개입 필요성을 알리는 자동 경고 및 알림을 설정한다.
11. Enforce Fairness and Privary (공정성과 개인 정보 보호 강화)
ML 모델에서 공정성과 개인 정보 보호를 보장하는 것은 의도하지 않은 편향, 차별 및 사용자 개인 정보 침해를 방지하는데 중요하다. MLOps 수명 주기에 공정성과 개인 정보 보호를 보다 효과적으로 통합하는 몇가지 방법은 다음과 같다:
- 공정성 평가: 적절한 지표를 사용하여 모델의 공정성을 평가하고, 다양한 인구 집단에 대한 성능을 분석하여 잠재적인 편향을 식별하고 완화한다.
- 개인 정보 보호 기술 사용: 차등 개인 정보 보호 및 연합 학습과 가은 기술을 구현하여 민감한 사용자 데이터를 보호하고 모델 학습 및 추론 중에 개인정보를 유지한다.
- 정책 정기 검토: 관련 법률, 규정 및 윤리적 지침을 최신 상태로 유지하여 공정성과 개인 정보 보호 요구 사항을 준수한다. 내부 정책과 관행을 주기적으로 검토하고 업데이트한다.
12. Improve Communication and Alignment Between Teams
데이터 과학자, 엔지니어 및 비즈니스 이해관계자와 같은 교차 기능 팀 간의 효과적인 협업과 커뮤니케이션은 성공적인 MLOps에 필수적이다. 이는 모든 사람이 같은 목표를 향해 일하고 있음을 보장한다.
- 명확한 목표 설정: ML 프로젝트의 문제 진술, 범위 및 원하는 결과를 명확하게 정의한다. 이러한 목표와 모든 변경 사항을 모든 팀원에게 정기적으로 전달한다.
- 문서 유지: 데이터 소스, 데이터 준비, 피처 엔지니어링, 모델 선택, 평가 치표 및 배포 전략을 포함하여 ML 프로젝트의 모든 단계를 문서화한다. 이는 지식 공유르 가능하게 하고 팀 협업을 개선하며 새로운 팀원을 온보딩하는 과정을 단순화한다.
- 정기 회의 개최: 팀원이 업데이트, 과제 및 통찰력을 공유할 수 있도록 정기적인 회의와 토론을 일정에 포함한다. 모든 사람의 기여가 인정되고 통합되도록 개방적인 커뮤니케이션과 피드백을 장려한다.
- 버전 관리 사용: 코드, 데이터 및 모델의 변경 사항을 추적하고 협업을 관리하며 단일 진실 소스를 유지하기 위해 Git과 같은 버전 관리 시스템을 사용한다.
MLOps에 대해 더 알아보기
Apache Airflow: 사용 사례, 아키텍처 및 모범 사례
Apache Airflow는 데이터 및 컴퓨팅 워크플로우를 작성, 스케줄링 모니터링하기 위한 오픈소스 플랫폼이다. Apache Airflow가 ETL, DevOps 및 머신러닝 작업을 위한 워크플로를 자동화하는데 어떻게 도움이 되는지 이해할 수 있다.
엣지 컴퓨팅은 데이터 저장 및 계산을 사용자에게 더 쉽게 접근할 수 있게 한다. 이는 노트북, 사물인터넷(IoT) 장치 또는 전용 엣지 서버와 같은 로컬 장치에서 작업을 실행하여 달성된다. 엣지 프로세스는 종종 클라우드 기반 작업의 성능을 저해하는 지연 시간 및 대역폭 문제의 영향을 받지 않는다.
Jupyter Notebook은 데이터 과학자와 머신러닝 전문가가 코드, 설명 텍스트 및 시각화르 ㄹ작성하고 발표하는데 사용되는 오픈소스 애플리케이션이다. JupyterHub는 분산 Jupyter Notebook 환경을 호스팅할 수 잇는 오픈 소스 도구이다.
MLflow: Basic & Quick Tutorial
MLflow는 머신러닝 워크플로를 관리하기 위한 오픈소스 플랫폼이다. 머신러닝 엔지니어링 팀과 데이터 과학자가 사용한다. MLflow에는 네가지 주요 구성요소가 있다: MLflow 추적, 프로젝트 및 모델을 이해하고, 머신러닝 모델을 학습하고 프로덕션에 배포
'엔지니어링(TA, AA, SA) > AI, ML' 카테고리의 다른 글
[ML] Machine Learning Infrastructure: 효과적인 파이프라인 구성요소 (0) | 2024.10.19 |
---|---|
[ML] Machine Learning System Design Interview(1) - 소개 및 개요 (0) | 2024.10.13 |