솔루션 아키텍처 살펴보기
소규모 팀이 있는 소규모 프로젝트에서 작업하는 경우 하나의 Azure Machine Learning 작업 영역이 있는 것이 합리적일 수 있습니다. 하나의 작업 영역은 모델을 학습, 테스트, 배포하는 모든 작업에 사용할 수 있습니다. 그러나 Proseware에서는 실무자를 위해 웹 애플리케이션과 통합하려는 여러 모델을 빌드하고 유지 관리할 때 쉽게 스케일링할 수 있는 강력하고 미래 지향적인 솔루션을 원합니다.
개발부터 프로덕션까지 모델을 빠르고 안전하게 이동하기 위해 고급 MLOps(기계 학습 작업) 아키텍처에 동의했습니다.
참고
다이어그램은 MLOps 아키텍처의 간소화된 표현입니다. 더 자세한 아키텍처를 보려면 MLOps(v2) 솔루션 가속기에서 다양한 사용 사례를 살펴봅니다.
아키텍처에는 다음이 포함됩니다.
- 설치: 솔루션에 필요한 모든 Azure 리소스를 만듭니다.
- 모델 개발(내부 루프): 모델을 학습하고 평가하기 위해 데이터를 탐색하고 처리합니다.
- 연속 통합: 모델을 패키지하고 등록합니다.
- 모델 배포(외부 루프): 모델을 배포합니다.
- 지속적인 배포: 모델을 테스트하고 프로덕션 환경으로 승격합니다.
- 모니터링: 모델 및 엔드포인트 성능을 모니터링합니다.
대규모 기계 학습 모델을 사용하기 위해 Proseware는 여러 단계에 대해 별도의 환경을 사용하려고 합니다. 별도의 환경을 사용하면 리소스에 대한 액세스를 더 쉽게 제어할 수 있습니다. 그런 다음 각 환경을 별도의 Azure Machine Learning 작업 영역에 연결할 수 있습니다.
참고
이 모듈에서는 환경의 DevOps 해석을 참조합니다. 또한 Azure Machine Learning은 용어 환경을 사용하여 스크립트를 실행하는 데 필요한 Python 패키지 컬렉션을 설명합니다. 이러한 두 가지 환경 개념은 서로 독립적입니다. Azure Machine Learning 환경에 대해 자세히 알아봅니다.
배포하기 전에 모델을 테스트할 수 있도록 하기 위해 다음 세 가지 환경으로 작업하려고 합니다.
개발 환경은 내부 루프에 사용됩니다.
- 데이터 과학자는 모델을 학습시킵니다.
- 모델이 패키지되고 등록됩니다.
스테이징 환경은 외부 루프의 일부에 사용됩니다.
- 린팅 및 유닛 테스트를 사용하여 코드 및 모델을 테스트합니다.
- 모델을 배포하여 엔드포인트를 테스트합니다.
프로덕션 환경은 외부 루프의 다른 부분에 사용됩니다.
- 프로덕션 엔드포인트에 모델을 배포합니다. 프로덕션 엔드포인트는 웹 애플리케이션과 통합됩니다.
- 모델 및 엔드포인트 성능을 모니터링하여 필요할 때 재학습을 트리거합니다.
많은 기계 학습 작업을 자동화할 수 있고 자동화해야 하지만 제어된 승인을 원하는 지점도 계획해야 합니다. 모델을 학습하고 패키지한 경우 스테이징 환경으로 이동하기 전에 잠재 데이터 과학자에게 모델의 유효성을 검사하도록 알려야 합니다.
마찬가지로, 스테이징 환경에서 모델을 적극적으로 테스트한 후에는 소프트웨어 개발 팀의 누군가가 모델을 프로덕션에 배포하기 전에 모든 테스트가 성공했는지 확인하기 위해 제어된 승인을 추가하려고 합니다.
환경에서 작업할 때 제어된 승인을 통해 한 환경에서 다음 환경으로의 배포를 제어할 수 있습니다.