솔루션 아키텍처 살펴보기

완료됨

코드를 확인해야 하는 위치와 시기를 이해하기 위해 MLOps(기계 학습 작업) 워크플로에 대해 결정한 아키텍처를 검토해 보겠습니다.

Diagram of machine learning operations architecture.

참고 항목

다이어그램은 MLOps 아키텍처의 간소화된 표현입니다. 더 자세한 아키텍처를 보려면 MLOps(v2) 솔루션 가속기에서 다양한 사용 사례를 살펴봅니다.

MLOps 아키텍처의 주요 목표는 강력하고 재현 가능한 솔루션을 만드는 것입니다. 이를 위해 아키텍처에는 다음이 포함됩니다.

  1. 설치: 솔루션에 필요한 모든 Azure 리소스를 만듭니다.
  2. 모델 개발(내부 루프): 모델을 학습하고 평가하기 위해 데이터를 탐색하고 처리합니다.
  3. 연속 통합: 모델을 패키지하고 등록합니다.
  4. 모델 배포(외부 루프): 모델을 배포합니다.
  5. 지속적인 배포: 모델을 테스트하고 프로덕션 환경으로 승격합니다.
  6. 모니터링: 모델 및 엔드포인트 성능을 모니터링합니다.

모델을 개발에서 배포로 이동하려면 지속적인 통합이 필요합니다. 연속 통합 중에 모델을 패키지하고 등록합니다. 그러나 모델을 패키지하기 전에 모델을 학습시키는 데 사용되는 코드를 확인해야 합니다.

데이터 과학 팀과 함께 트렁크 기반 개발을 사용하기로 합의했습니다. 분기는 프로덕션 코드를 보호할 뿐만 아니라 프로덕션 코드와 병합하기 전에 제안된 변경 내용을 자동으로 확인할 수 있습니다.

데이터 과학자를 위한 워크플로를 살펴보겠습니다.

Diagram of trunk-based development including automatic code verification when a pull request is created.

  1. 프로덕션 코드는 분기에 호스트됩니다.
  2. 데이터 과학자는 모델 개발을 위한 기능 분기를 만듭니다.
  3. 데이터 과학자는 기본 분기에 변경 내용을 푸시할 것을 제안하는 끌어오기 요청을 만듭니다.
  4. 끌어오기 요청이 만들어지면 코드를 확인하기 위해 GitHub Actions 워크플로가 트리거됩니다.
  5. 코드가 린팅단위 테스트를 통과하면 수석 데이터 과학자가 제안된 변경 내용을 승인해야 합니다.
  6. 리드 데이터 과학자가 변경 내용을 승인하면 끌어오기 요청이 병합되고 주 분기가 그에 따라 업데이트됩니다.

기계 학습 엔지니어는 끌어오기 요청을 만들 때마다 Linter 및 단위 테스트를 실행하여 코드를 확인하는 GitHub Actions 워크플로를 만들어야 합니다.