이 솔루션은 기계 학습 팀에서 Azure Databricks 및 Azure Kubernetes Service를 사용하여 직원 이탈 가능성을 예측하기 위해 기계 학습을 API로 개발하고 배포하는 방법을 보여 줍니다. API는 인적 자원 팀에서 사용하는 외부 애플리케이션과 통합하여 조직 내에서 지정된 직원의 이탈 가능성에 대한 추가 인사이트를 제공할 수 있습니다. 해당 정보는 인적 자원 팀에 이러한 직원의 잔류를 사전에 장려하는 기능을 제공하여 조직을 떠날 가능성이 높은 영향력이 있는 직원을 유지하는 데 사용할 수 있습니다.
Apache®, Apache Ignite, Ignite, 불꽃 로고는 미국이나 기타 국가에서 Apache Software Foundation의 등록 상표 또는 상표입니다. 이러한 표시의 사용은 Apache Software Foundation에 의한 보증을 암시하지 않습니다.
아키텍처
모든 아키텍처의 PowerPoint 파일을 다운로드합니다.
워크플로
이 솔루션 디자인은 높은 수준으로 기계 학습 수명 주기의 각 단계를 다룹니다.
데이터 준비에는 처리 및 분석을 위해 데이터를 소싱, 정리 및 변환하는 작업이 포함됩니다. 데이터는 데이터 레이크 또는 데이터 웨어하우스에 상주할 수 있으며 큐레이팅된 후 기능 저장소에 저장할 수 있습니다.
모델 개발에는 MLflow를 통한 실험 추적 및 모델 등록과 같은 모델 개발 프로세스의 핵심 구성 요소가 포함됩니다.
모델 배포에는 기계 학습 모델을 API 서비스로 컨테이너화하기 위한 CI/CD(연속 통합 및 지속적인 업데이트) 파이프라인 구현이 포함됩니다. 이러한 서비스는 최종 사용자가 사용할 수 있도록 Azure Kubernetes 클러스터에 배포됩니다.
모델 모니터링에는 Azure Monitor를 통해 로그 원격 분석을 수행하는 API 성능 및 모델 데이터 드리프트 모니터링이 포함됩니다.
기계 학습 팀에서 실시간 추론을 위해 기계 학습 모델을 API로 배포하면 개발자는 인적 자원 팀과 같은 외부 팀에서 사용하는 외부 애플리케이션과 API를 쉽게 통합할 수 있습니다. 원격 분석은 외부 팀에서 모델 서비스를 사용할 때 수집됩니다. 기계 학습 팀은 이러한 원격 분석을 통해 모델을 다시 배포해야 하는 시기를 결정할 수 있습니다. 팀에서는 이러한 접근 방식을 통해 독립적으로 작업할 수 있으며 외부 팀은 중앙 집중식 기계 학습 팀의 기술을 활용할 수 있습니다.
참고 항목
CI/CD 파이프라인을 구현할 때 Azure 파이프라인 및 GitHub Actions와 같은 다양한 도구를 사용할 수 있습니다.
분석에 대한 사용 사례의 특정 비즈니스 요구 사항에는 이러한 디자인에서 고려되지 않은 다양한 서비스 또는 기능이 필요할 수 있습니다.
구성 요소
다음 구성 요소는 이러한 디자인의 일부로 사용됩니다.
Azure Databricks: 사용하기 쉽고 협업을 용이하게 하며 Apache Spark를 기반으로 하는 빅 데이터에 대한 분석 서비스입니다. Azure Databricks는 데이터 과학 및 데이터 엔지니어링을 위해 설계되었습니다.
Azure Kubernetes Service: 운영 오버헤드를 Azure로 오프로드하여 Kubernetes의 간소화된 배포 및 관리를 제공하는 서비스입니다.
Azure Container Registry: 컨테이너 이미지 및 아티팩트를 관리하기 위한 프라이빗 레지스트리 서비스입니다. 이 서비스는 오픈 소스 Docker를 기반으로 합니다.
Azure Data Lake Storage: 대량의 구조화되지 않은 데이터에 최적화된 확장 가능한 스토리지를 제공하는 서비스입니다. Data Lake Storage Gen2는 파일 시스템 의미 체계, 파일 수준 보안 및 확장을 제공합니다.
Azure Monitor: 해당 워크로드에서 원격 분석을 수집, 분석 및 조치하기 위한 포괄적인 솔루션입니다.
MLflow: 기계 학습 수명 주기를 관리하기 위해 Databricks 내에 통합된 오픈 소스 솔루션입니다.
Azure API Management: API를 게시하고, 보호하고, 변환하고, 유지 관리하고, 모니터링하는 데 사용할 수 있는 완전 관리형 서비스입니다.
Azure Application Gateway: 웹 애플리케이션에 대한 트래픽을 관리할 수 있는 웹 트래픽에 대한 부하 분산 장치입니다.
Azure DevOps 또는 GitHub: 워크로드 개발 및 배포 파이프라인에 자동화 및 규정 준수를 적용하기 위한 DevOps 사례를 구현하기 위한 솔루션입니다.
시나리오 정보
코로나19 팬데믹 이후 직원 이탈 문제가 더욱 두드러졌습니다. 직원들이 자발적으로 한꺼번에 사직하는 이러한 추세는 대퇴사로 널리 알려져 있습니다. 인적 자원과 같은 고급 분석을 수행하는 전담 팀이 부족할 수 있는 조직의 특정 부서에 대해서도 문제가 확대될 수 있습니다.
이 예제 시나리오에서는 중앙 집중식 기계 학습의 운영 모델을 보여 줍니다. 조직 내 부서에서 외부 팀을 위한 기계 학습 모델을 빌드하고 배포하는 작업을 담당하는 중앙 팀으로 구성됩니다. 이러한 접근 방식은 부서가 너무 작아서 기계 학습 전용 팀을 유지 관리할 수 없는 경우 유용하며, 조직은 고급 분석을 모든 제품 및 프로세스에 주입하는 것을 목표로 합니다.
잠재적인 사용 사례
이 시나리오는 직원 이탈의 기계 학습 모델을 빌드하고 인적 자원 팀에서 사용하는 외부 애플리케이션과 통합하는 데 중점을 둡니다. 그러나 중앙 집중식 및 분산 팀에서 빌드한 많은 기계 학습 워크로드로 설계를 일반화할 수 있습니다.
이러한 일반화된 접근 방식은 다음에 가장 적합합니다.
데이터 엔지니어링 또는 기계 학습 애플리케이션용 Databricks에서 표준화된 기계 학습 팀
Kubernetes 워크로드를 배포 및 관리한 경험이 있는 기계 학습 팀과 기계 학습 워크로드를 운영하기 위해 이러한 기술을 적용하는 것을 선호합니다.
짧은 대기 시간 및 대화형 모델 예측(예: 실시간 추론)이 필요한 외부 애플리케이션과 기계 학습 워크로드를 통합합니다.
고려 사항
이러한 고려 사항은 워크로드의 품질을 향상시키는 데 사용할 수 있는 일단의 지침 원칙인 Azure Well-Architected Framework의 핵심 요소를 구현합니다. 자세한 내용은 Microsoft Azure Well-Architected Framework를 참조하세요.
이 솔루션을 구현하기 전에 고려할 수 있는 몇 가지 요인은 다음과 같습니다.
이 솔루션은 높은 수준의 사용자 지정이 필요하고 Kubernetes 워크로드를 배포 및 관리하는 데 광범위한 전문 지식을 갖춘 팀을 위해 설계되었습니다. 데이터 과학 팀에 이러한 전문 지식이 없는 경우 Azure Machine Learning과 같은 다른 서비스에 모델을 배포하는 것이 좋습니다.
Azure Machine Learning을 사용하는 MLOps(기계 학습 DevOps) 모범 사례는 기계 학습을 사용하여 엔터프라이즈에서 MLOps(ML 작업)를 채택하기 위한 모범 사례 및 권장 사항을 제공합니다.
Azure Well-Architected Framework에 정의된 권장 사항 및 지침에 따라 Azure 솔루션의 품질을 개선합니다.
CI/CD 파이프라인을 구현할 때 Azure Pipelines 및 GitHub Actions와 같이 이 예제에서 사용하는 도구와 다른 도구를 사용할 수 있습니다. CI/CD에 대한 자세한 내용은 마이크로 서비스 아키텍처용 CI/CD를 참조하세요.
분석 사용 사례에 대한 특정 비즈니스 요구 사항의 경우 이 설계에서 고려되지 않은 다른 서비스 또는 기능을 사용해야 할 수 있습니다.
비용 최적화
비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 높이는 것입니다. 자세한 내용은 비용 최적화를 위한 디자인 검토 검사 목록을 참조하세요.
이 솔루션에 배포된 모든 서비스는 소비 기반 가격 책정 모델을 사용합니다. Azure 가격 책정 계산기를 사용하여 특정 시나리오에 대한 비용을 예측할 수 있습니다. 다른 고려 사항은 Well-Architected Framework의 비용 최적화를 참조하세요.
시나리오 배포
이 시나리오의 개념 증명 구현은 Databricks 및 Kubernetes를 사용하여 인재 유지의 GitHub에서 제공됩니다.
모든 아키텍처의 PowerPoint 파일을 다운로드합니다.
이 개념 증명은 다음을 보여줍니다.
- Azure Databricks에서 직원 이탈에 대한 MLflow 모델을 학습시키는 방법
- 오픈 소스 도구를 사용하여 모델을 웹 서비스로 패키지하는 방법
- GitHub Actions를 사용하여 CI/CD를 통해 Kubernetes에 배포하는 방법
- Azure Monitor 및 Azure Log Analytics 작업 영역 내에서 API 성능을 모니터링하고 데이터 드리프트를 모델링하는 방법
참가자
Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.
보안 주체 작성자:
- Nicholas Moore | 클라우드 솔루션 설계자
다음 단계
제품 설명서:
- Azure Databricks란?
- MLflow 가이드
- Azure Kubernetes Service
- Azure의 프라이빗 Docker 컨테이너 레지스트리 소개
- API 관리 정보
- Azure Application Gateway란?
- Azure Data Lake Storage Gen2 소개
- Azure Monitor 개요
- Azure DevOps 설명서
- Azure 및 GitHub 통합
Microsoft Learn 모듈:
- Azure Databricks로 데이터 과학 수행
- Azure Databricks를 사용하여 기계 학습 솔루션 빌드 및 운영
- Azure의 Kubernetes 소개
- Kubernetes에서 애플리케이션 개발 및 배포
- GitHub Actions를 사용하여 워크플로 자동화
관련 참고 자료
또한 다음 아키텍처 센터 문서가 유용할 수 있습니다.