Machine Learning 작업 완성도 모델

Azure Machine Learning

이 완성도 모델의 목적은 MLOps(기계 학습 운영) 원칙 및 사례를 명확히 하는 데 도움이 되는 것입니다. 완성도 모델은 프로덕션 수준 기계 학습 애플리케이션 환경의 생성 및 운영에 대한 지속적인 개선을 보여 줍니다. 이는 기계 학습 프로덕션 환경 및 관련 프로세스의 완성도를 측정하는 데 필요한 점진적 요구 사항을 설정하기 위한 메트릭으로 사용할 수 있습니다.

완성도 모델

MLOps 완성도 모델은 성공적인 MLOps 환경을 실행하는 데 필요한 DevOps(개발 운영) 원칙 및 사례를 명확히 하는 데 도움이 됩니다. 이는 이러한 환경을 구현하려는 기존 조직의 시도에서 격차를 식별하기 위한 것입니다. 또한 완전히 완성된 환경의 요구 사항에 압도되지 않고 MLOps 기능을 증분 방식으로 늘리는 방법을 보여 주는 방법이기도 합니다. 다음을 위한 가이드로 사용합니다.

  • 새로운 참여 작업 범위를 예상합니다.

  • 현실적인 성공 기준을 설정합니다.

  • 참여가 끝나면 전달할 결과물을 식별합니다.

대부분의 완성도 모델과 마찬가지로 MLOps 완성도 모델은 사람/문화권, 프로세스/구조 및 개체/기술을 정성적으로 평가합니다. 완성도가 높아질수록 인시던트 또는 오류가 개발 및 프로덕션 프로세스의 품질 향상으로 이어질 확률이 높아질 수 있습니다.

MLOps 완성도 모델은 5가지 수준의 기술 기능을 포함합니다.

Level 설명 주요 항목 기술
0 No MLOps
  • 전체 기계 학습 모델 수명 주기를 관리하기 어려움
  • 팀이 서로 다르고 릴리스가 어려움
  • 대부분의 시스템은 배포 중/배포 후 피드백이 거의 없는 "블랙박스"로 존재함
  • 수동 빌드 및 배포
  • 모델 및 애플리케이션에 대한 수동 테스트
  • 모델 성능에 대한 중앙 집중식 추적 없음
  • 모델 학습이 수동임
1 DevOps는 있지만 MLOps 없음
  • 릴리스는 No MLOps보다 덜 어렵지만 모든 새 모델에 대해 데이터 팀에 의존하
  • 모델이 프로덕션에서 얼마나 잘 수행되는지에 대한 피드백이 여전히 제한적임
  • 결과를 추적/재현하기 어려움
  • 자동화된 빌드
  • 애플리케이션 코드에 대한 자동화된 테스트
2 자동화된 학습
  • 학습 환경이 완전 관리형이며 추적 가능함
  • 모델 재현이 쉬움
  • 릴리스는 수동이지만 마찰이 적음
  • 자동화된 모델 교육
  • 모델 학습 성능의 중앙 집중식 추적
  • 모델 관리
3 자동화된 모델 배포
  • 릴리스는 마찰이 적고 자동임
  • 배포에서 원래 데이터로의 전체 추적 가능성
  • 관리되는 전체 환경: 테스트 > 프로덕션 학습 >
  • 배포를 위한 모델 성능의 통합 A/B 테스트
  • 모든 코드에 대한 자동화된 테스트
  • 모델 학습 성능의 중앙 집중식 추적
4 전체 MLOps 자동화 작업
  • 전체 시스템 자동화 및 쉬운 모니터링
  • 프로덕션 시스템은 개선 방법에 대한 정보를 제공하고 있으며, 경우에 따라 새 모델을 사용하여 자동으로 개선됨
  • 가동 중지 시간 시스템에 접근
  • 자동화된 모델 학습 및 테스트
  • 배포된 모델의 자세한 중앙 집중식 메트릭

다음 표는 해당 프로세스 완성도 수준에 대한 자세한 특성을 식별합니다. 모델은 계속 진화됩니다. 이 버전은 2020년 1월에 마지막으로 업데이트되었습니다.

수준 0: No MLOps

사람 모델 만들기 모델 릴리스 애플리케이션 통합
  • 데이터 과학자: 대규모 팀과의 정기적인 통신이 아닌 사일로 처리됨
  • 데이터 엔지니어(있는 경우): 대규모 팀과의 정기적인 통신이 아닌 사일로 처리됨
  • 소프트웨어 엔지니어: 다른 팀 구성원으로부터 원격으로 모델을 수신하는 사일로 처리됨
  • 수동으로 수집된 데이터
  • 컴퓨팅이 관리되지 않을 가능성이 높음
  • 실험이 예측 가능하게 추적되지 않음
  • 최종 결과는 입력/출력을 사용하여 수동으로 전달되는 단일 모델 파일일 수 있습니다.
  • 수동 프로세스
  • 점수 매기기 스크립트는 버전 제어가 아닌 실험 후에 수동으로 만들 수 있습니다.
  • 데이터 과학자 또는 데이터 엔지니어가 단독으로 처리하는 릴리스
  • 구현하기 위해 데이터 과학자 전문 지식에 크게 의존
  • 매번 수동 릴리스

수준 1: DevOps NO MLOps

사람 모델 만들기 모델 릴리스 애플리케이션 통합
  • 데이터 과학자: 대규모 팀과의 정기적인 통신이 아닌 사일로 처리됨
  • 데이터 엔지니어(있는 경우): 대규모 팀과의 정기적인 통신이 아닌 사일로 처리됨
  • 소프트웨어 엔지니어: 다른 팀 구성원으로부터 원격으로 모델을 수신하는 사일로 처리됨
  • 데이터 파이프라인이 자동으로 데이터 수집
  • 컴퓨팅이 관리되거나 관리되지 않음
  • 실험이 예측 가능하게 추적되지 않음
  • 최종 결과는 입력/출력을 사용하여 수동으로 전달되는 단일 모델 파일일 수 있습니다.
  • 수동 프로세스
  • 실험 후 점수 매기기 스크립트를 수동으로 만들 수 있으며 버전이 제어될 가능성이 높습니다.
  • 소프트웨어 엔지니어에게 전달됨
  • 모델에 대한 기본 통합 테스트 존재
  • 데이터 과학자 전문 지식에 크게 의존하여 모델 구현
  • 자동화된 릴리스
  • 애플리케이션 코드에 단위 테스트 존재

수준 2: 자동화된 학습

사람 모델 만들기 모델 릴리스 애플리케이션 통합
  • 데이터 과학자: 데이터 엔지니어와 직접 협력하여 실험 코드를 반복 가능한 스크립트/작업으로 변환
  • 데이터 엔지니어: 데이터 과학자와 협력
  • 소프트웨어 엔지니어: 다른 팀 구성원으로부터 원격으로 모델을 수신하는 사일로 처리됨
  • 데이터 파이프라인이 자동으로 데이터 수집
  • 컴퓨팅 관리
  • 실험 결과 추적
  • 학습 코드와 결과 모델 모두 버전 제어됨
  • 수동 릴리스
  • 채점 스크립트는 테스트로 버전 제어됨
  • 소프트웨어 엔지니어링 팀에서 관리하는 릴리스
  • 모델에 대한 기본 통합 테스트 존재
  • 데이터 과학자 전문 지식에 크게 의존하여 모델 구현
  • 애플리케이션 코드에 단위 테스트 존재

수준 3: 자동화된 모델 배포

사람 모델 만들기 모델 릴리스 애플리케이션 통합
  • 데이터 과학자: 데이터 엔지니어와 직접 협력하여 실험 코드를 반복 가능한 스크립트/작업으로 변환
  • 데이터 엔지니어: 데이터 과학자 및 소프트웨어 엔지니어와 협력하여 입력/출력 관리
  • 소프트웨어 엔지니어: 데이터 엔지니어와 협력하여 애플리케이션 코드에 모델 통합 자동화
  • 데이터 파이프라인이 자동으로 데이터 수집
  • 컴퓨팅 관리
  • 실험 결과 추적
  • 학습 코드와 결과 모델 모두 버전 제어됨
  • 자동 릴리스
  • 채점 스크립트는 테스트로 버전 제어됨
  • CI/CD(연속 통합 및 지속적인 업데이트) 파이프라인으로 관리되는 릴리스
  • 각 모델 릴리스에 대한 단위 및 통합 테스트
  • 모델 구현을 위한 데이터 과학자 전문 지식에 대한 의존도가 낮음
  • 애플리케이션 코드에 단위/통합 테스트 존재

수준 4: 전체 MLOps 자동화 재학습

사람 모델 만들기 모델 릴리스 애플리케이션 통합
  • 데이터 과학자: 데이터 엔지니어와 직접 협력하여 실험 코드를 반복 가능한 스크립트/작업으로 변환 소프트웨어 엔지니어와 협력하여 데이터 엔지니어의 마커 식별
  • 데이터 엔지니어: 데이터 과학자 및 소프트웨어 엔지니어와 협력하여 입력/출력 관리
  • 소프트웨어 엔지니어: 데이터 엔지니어와 협력하여 애플리케이션 코드에 모델 통합 자동화 배포 후 메트릭 수집 구현
  • 데이터 파이프라인이 자동으로 데이터 수집
  • 프로덕션 메트릭에 따라 자동으로 트리거되는 재학습
  • 컴퓨팅 관리
  • 실험 결과 추적
  • 학습 코드와 결과 모델 모두 버전 제어됨
  • 자동 릴리스
  • 채점 스크립트는 테스트로 버전 제어됨
  • CI/CD(연속 통합 및 지속적인 업데이트) 파이프라인으로 관리되는 릴리스
  • 각 모델 릴리스에 대한 단위 및 통합 테스트
  • 모델 구현을 위한 데이터 과학자 전문 지식에 대한 의존도가 낮음
  • 애플리케이션 코드에 단위/통합 테스트 존재

다음 단계