솔루션 아키텍처 살펴보기
코드를 확인해야 하는 위치와 시기를 이해하기 위해 MLOps(기계 학습 작업) 워크플로에 대해 결정한 아키텍처를 검토해 보겠습니다.
참고 항목
다이어그램은 MLOps 아키텍처의 간소화된 표현입니다. 더 자세한 아키텍처를 보려면 MLOps(v2) 솔루션 가속기에서 다양한 사용 사례를 살펴봅니다.
MLOps 아키텍처의 주요 목표는 강력하고 재현 가능한 솔루션을 만드는 것입니다. 이를 위해 아키텍처에는 다음이 포함됩니다.
- 설치: 솔루션에 필요한 모든 Azure 리소스를 만듭니다.
- 모델 개발(내부 루프): 모델을 학습하고 평가하기 위해 데이터를 탐색하고 처리합니다.
- 연속 통합: 모델을 패키지하고 등록합니다.
- 모델 배포(외부 루프): 모델을 배포합니다.
- 지속적인 배포: 모델을 테스트하고 프로덕션 환경으로 승격합니다.
- 모니터링: 모델 및 엔드포인트 성능을 모니터링합니다.
모델을 개발에서 배포로 이동하려면 지속적인 통합이 필요합니다. 연속 통합 중에 모델을 패키지하고 등록합니다. 그러나 모델을 패키지하기 전에 모델을 학습시키는 데 사용되는 코드를 확인해야 합니다.
데이터 과학 팀과 함께 트렁크 기반 개발을 사용하기로 합의했습니다. 분기는 프로덕션 코드를 보호할 뿐만 아니라 프로덕션 코드와 병합하기 전에 제안된 변경 내용을 자동으로 확인할 수 있습니다.
데이터 과학자를 위한 워크플로를 살펴보겠습니다.
- 프로덕션 코드는 주 분기에 호스트됩니다.
- 데이터 과학자는 모델 개발을 위한 기능 분기를 만듭니다.
- 데이터 과학자는 기본 분기에 변경 내용을 푸시할 것을 제안하는 끌어오기 요청을 만듭니다.
- 끌어오기 요청이 만들어지면 코드를 확인하기 위해 GitHub Actions 워크플로가 트리거됩니다.
- 코드가 린팅 및 단위 테스트를 통과하면 수석 데이터 과학자가 제안된 변경 내용을 승인해야 합니다.
- 리드 데이터 과학자가 변경 내용을 승인하면 끌어오기 요청이 병합되고 주 분기가 그에 따라 업데이트됩니다.
기계 학습 엔지니어는 끌어오기 요청을 만들 때마다 Linter 및 단위 테스트를 실행하여 코드를 확인하는 GitHub Actions 워크플로를 만들어야 합니다.
팁
트렁크 기반 개발 및 로컬로 코드 확인을 포함하여 기계 학습 프로젝트에 대한 소스 제어를 사용하는 방법에 대해 자세히 알아봅니다.