Azure Databricks를 사용하여 MLOps 오케스트레이션

Azure Databricks

솔루션 아이디어

이 문서는 솔루션 아이디어입니다. 잠재적인 사용 사례, 대체 서비스, 구현 고려 사항 또는 가격 책정 지침과 같은 추가 정보를 사용하여 콘텐츠를 확장하려면 GitHub 피드백을 제공하여 알려주세요.

이 문서에서는 Azure Databricks를 사용하는 MLOps(기계 학습 운영) 아키텍처와 프로세스를 설명합니다. 이 프로세스는 자동화 및 수동 프로세스를 포함하는 옵션을 사용하여 기계 학습 모델과 파이프라인을 개발에서 프로덕션으로 이동하는 표준화된 방법을 정의합니다.

아키텍처

Diagram that shows a solution for using Azure Databricks for MLOps.

이 아키텍처의 Visio 파일을 다운로드합니다.

워크플로

이 솔루션은 Azure Databricks를 사용하는 강력한 MLOps 프로세스를 제공합니다. 아키텍처의 모든 요소는 플러그형이므로 필요에 따라 아키텍처 전체에서 다른 Azure 서비스와 타사 서비스를 통합할 수 있습니다. 이 아키텍처와 설명은 eBook The Big Book of MLOps에서 가져왔습니다. 이 eBook에서는 여기에 설명된 아키텍처를 자세히 살펴봅니다.

  • 소스 제어: 이 프로젝트의 코드 리포지토리는 Notebook, 모듈, 파이프라인을 구성합니다. 데이터 과학자는 개발 분기를 만들어 업데이트와 새 모델을 테스트합니다. 코드는 Azure Databricks 작업 영역과 동기화하기 위한 Databricks Repos 통합을 사용하여 Git에서 지원하는 Notebook 또는 IDE에서 개발됩니다. 소스 제어는 개발에서 스테이징(테스트용)을 거쳐 프로덕션(배포용)에 이르기까지 기계 학습 파이프라인을 승격합니다.

  • 레이크하우스 - 프로덕션 데이터: 데이터 과학자는 프로덕션 데이터에 대한 읽기 전용 액세스 권한이 있는 개발 환경에서 작업합니다. (또는 데이터를 미러링하거나 수정할 수 있습니다.) 또한 개발과 실험을 위해 개발 스토리지 환경에 대한 읽기/쓰기 액세스 권한이 있습니다. 데이터는 Azure Data Lake StorageDelta Lake 형식으로 저장되는 레이크하우스 아키텍처를 권장합니다. 액세스 제어는 Microsoft Entra 자격 증명 통과 또는 테이블 액세스 제어를 사용하여 정의됩니다.

개발

개발 환경에서 데이터 과학자와 엔지니어는 기계 학습 파이프라인을 개발합니다.

  1. EDA(탐색적 데이터 분석): 데이터 과학자는 대화형 반복 프로세스에서 데이터를 탐색합니다. 이 임시 작업은 스테이징 또는 프로덕션에 배포되지 않을 수 있습니다. 도구에는 Databricks SQL, dbutils.data.summarize, AutoML이 포함될 수 있습니다.

  2. 모델 학습 및 기타 기계 학습 파이프라인: 기계 학습 파이프라인은 Notebook 및/또는 IDE에서 모듈식 코드로 개발됩니다. 예를 들어 모델 학습 파이프라인은 기능 저장소와 기타 레이크하우스 테이블에서 데이터를 읽습니다. MLflow 추적 서버에 모델 매개 변수와 메트릭 학습 및 튜닝. 기능 저장소 API는 최종 모델을 로그합니다. 이러한 로그는 모델, 해당 입력과 학습 코드를 연결합니다.

  3. 커밋 코드: 기계 학습 워크플로를 프로덕션으로 승격하기 위해 데이터 과학자는 기능화, 학습, 기타 파이프라인을 위한 코드를 소스 제어에 커밋합니다.

스테이징

스테이징 환경에서 CI 인프라는 프로덕션을 모방한 환경에서 기계 학습 파이프라인에 대한 변경 내용을 테스트합니다.

  1. 병합 요청: 소스 제어에서 프로젝트의 스테이징(기본) 분기에 대해 병합(또는 끌어오기) 요청이 제출되면 Azure DevOps와 같은 CI/CD(연속 통합 및 지속적인 업데이트) 도구가 테스트를 실행합니다.

  2. 단위 및 CI 테스트: 단위 테스트는 CI 인프라에서 실행되고 통합 테스트는 Azure Databricks에서 엔드투엔드 워크플로를 실행합니다. 테스트를 통과하면 코드 변경 내용이 병합됩니다.

  3. 릴리스 분기 빌드: 기계 학습 엔지니어가 업데이트된 기계 학습 파이프라인을 프로덕션에 배포할 준비가 되면 새 릴리스를 빌드할 수 있습니다. CI/CD 도구의 배포 파이프라인은 업데이트된 파이프라인을 새로운 워크플로로 다시 배포합니다.

생산

기계 학습 엔지니어는 기계 학습 파이프라인이 최종 애플리케이션을 직접 제공하는 프로덕션 환경을 관리합니다. 프로덕션 새로 고침 기능 테이블의 주요 파이프라인은 새 모델을 학습 및 배포하고, 추론 또는 서비스를 실행하고, 모델 성능을 모니터링합니다.

  1. 기능 테이블 새로 고침: 이 파이프라인은 데이터를 읽고, 기능을 계산하고, 기능 저장소 테이블에 씁니다. 스트리밍 모드에서 지속적으로 실행되거나 일정에 따라 실행되거나 트리거됩니다.

  2. 모델 학습: 프로덕션에서 모델 학습 또는 재학습 파이프라인은 최신 프로덕션 데이터에서 대한 새로운 모델을 학습하도록 트리거되거나 예약됩니다. 모델은 MLflow 모델 레지스트리에 등록됩니다.

  3. 지속적인 배포: 새 모델 버전을 등록하면 프로덕션에서 모델이 잘 수행되도록 테스트를 실행하는 CD 파이프라인이 트리거됩니다. 모델이 테스트를 통과하면 모델 스테이지 전환을 통해 모델 레지스트리에서 진행 상황이 추적됩니다. 레지스트리 웹후크는 자동화에 사용할 수 있습니다. 테스트에는 규정 준수 검사, 새 모델을 현재 프로덕션 모델과 비교하는 A/B 테스트, 인프라 테스트가 포함될 수 있습니다. 테스트 결과와 메트릭은 레이크하우스 테이블에 기록됩니다. 모델을 프로덕션으로 전환하기 전에 필요에 따라 수동 승인을 요구할 수 있습니다.

  4. 모델 배포: 모델이 프로덕션에 진입하면 채점 또는 서비스 제공을 위해 배포됩니다. 가장 일반적인 배포 모드는 다음과 같습니다.

    • 일괄 처리 또는 스트리밍 채점: 대기 시간이 몇 분 이상인 경우에는 일괄 처리와 스트리밍이 가장 비용 효율적인 옵션입니다. 채점 파이프라인은 기능 저장소에서 최신 데이터를 읽고, 모델 레지스트리에서 최신 프로덕션 모델 버전을 로드하고, Databricks 작업에서 추론을 수행합니다. 레이크하우스 테이블, JDBC(Java Database Connectivity) 연결, 플랫 파일, 메시지 큐 또는 기타 다운스트림 시스템에 예측을 게시할 수 있습니다.
    • 온라인 서비스(REST API): 대기 시간이 낮은 사용 사례의 경우 일반적으로 온라인 서비스 제공이 필요합니다. MLflow는 Azure Databricks의 MLflow 모델 서비스 제공, 클라우드 공급자 서비스 제공 시스템, 기타 시스템에 모델을 배포할 수 있습니다. 모든 경우에 서비스 제공 시스템은 모델 레지스트리의 최신 프로덕션 모델로 초기화됩니다. 각 요청에 대해 온라인 기능 저장소에서 기능을 페치하고 예측합니다.
  5. 모니터링: 연속적이거나 주기적인 워크플로는 드리프트, 성능, 기타 메트릭에 대한 입력 데이터와 모델 예측을 모니터링합니다. Delta Live Tables는 메트릭을 레이크하우스 테이블에 저장하여 모니터링 파이프라인의 자동화를 간소화할 수 있습니다. Databricks SQL, Power BI, 기타 도구는 해당 테이블에서 읽고 대시보드와 경고를 만들 수 있습니다.

  6. 재학습: 이 아키텍처는 수동 및 자동 재학습을 모두 지원합니다. 예약된 재학습 작업은 모델을 최신 상태로 유지하는 가장 쉬운 방법입니다.

구성 요소

  • 데이터 레이크하우스. 레이크하우스 아키텍처는 데이터 레이크와 데이터 웨어하우스의 최상의 요소를 통합하여 데이터 레이크에서 제공하는 저렴한 유연한 개체 저장소를 통해 데이터 웨어하우스에서 일반적으로 발견되는 데이터 관리와 성능을 제공합니다.
    • Delta Lake는 레이크하우스용 오픈 소스 데이터 형식으로 권장되는 선택입니다. Azure Databricks는 Data Lake Storage에 데이터를 저장하고 고성능 쿼리 엔진을 제공합니다.
  • MLflow는 엔드투엔드 기계 학습 수명 주기를 관리하기 위한 오픈 소스 프로젝트입니다. 기본 구성 요소는 다음과 같습니다.
    • 추적을 사용하면 실험을 추적하여 매개 변수, 메트릭, 모델 아티팩트를 기록하고 비교할 수 있습니다.
    • MLFlow 모델을 사용하면 기계 학습 라이브러리의 모델을 다양한 모델 제공 및 추론 플랫폼에 저장하고 배포할 수 있습니다.
    • 모델 레지스트리는 개발에서 프로덕션으로의 모델 수명 주기 단계 전환을 관리하기 위한 중앙 집중식 모델 저장소를 제공합니다.
    • 모델 서비스 제공을 사용하면 MLflow 모델을 REST 엔드포인트로 호스트할 수 있습니다.
  • Azure Databricks. Azure Databricks는 엔터프라이즈 보안 기능, 고가용성, 다른 Azure Databricks 작업 영역 기능과의 통합을 통해 관리형 MLflow 서비스를 제공합니다.
    • Databricks Runtime for Machine Learning은 AutoML, Feature Store 클라이언트와 같은 기계 학습용 Azure Databricks 도구뿐만 아니라 TensorFlow, PyTorch, XGBoost와 같이 널리 사용되는 기계 학습 라이브러리를 사전 설치하여 기계 학습에 최적화된 클러스터 만들기를 자동화합니다.
    • 기능 저장소는 기능의 중앙 리포지토리입니다. 기능 공유 및 검색을 가능하게 하며 모델 학습과 추론 간의 데이터 기울이기를 방지하는 데 도움이 됩니다.
    • Databricks SQL. Databricks SQL은 레이크하우스 데이터에 대한 SQL 쿼리와 시각화, 대시보드, 경고를 위한 간단한 환경을 제공합니다.
    • Databricks Repos는 Azure Databricks 작업 영역에서 Git 공급자와의 통합을 제공하여 노트북 또는 코드의 공동 개발과 IDE 통합을 간소화합니다.
    • 워크플로작업은 Azure Databricks 클러스터에서 비대화형 코드를 실행하는 방법을 제공합니다. 기계 학습의 경우 작업은 데이터 준비, 기능화, 학습, 추론, 모니터링을 위한 자동화를 제공합니다.

대안

이 솔루션을 Azure 인프라에 맞게 조정할 수 있습니다. 일반적인 사용자 지정에는 다음이 포함됩니다.

  • 일반적인 프로덕션 작업 영역을 공유하는 여러 개발 작업 영역.
  • 기존 인프라에 대해 하나 이상의 아키텍처 구성 요소를 교환합니다. 예를 들어 Azure Data Factory를 사용하여 Databricks 작업을 오케스트레이션할 수 있습니다.
  • Git과 Azure Databricks REST API를 통해 기존 CI/CD 도구와 통합.

시나리오 정보

MLOps는 기계 학습 및 AI 시스템의 실패 위험을 줄이고 협업과 도구의 효율성을 개선하는 데 도움이 됩니다. MLOps 소개 및 이 아키텍처에 대한 개요는 레이크하우스에서 MLOps 설계를 참조하세요.

이 아키텍처를 사용하면 다음을 수행할 수 있습니다.

  • 비즈니스 관련자를 기계 학습 및 데이터 과학 팀과 연결합니다. 이 아키텍처를 사용하면 데이터 과학자가 개발에 Notebook과 IDE를 사용할 수 있습니다. 이를 통해 비즈니스 관련자는 모두 동일한 레이크하우스 아키텍처 내에서 Databricks SQL의 메트릭과 대시보드를 볼 수 있습니다.
  • 기계 학습 인프라를 데이터 중심으로 만듭니다. 이 아키텍처는 다른 데이터와 마찬가지로 기계 학습 데이터(기능 엔지니어링, 학습, 추론, 모니터링의 데이터)를 처리합니다. 기계 학습 데이터 처리를 위해 프로덕션 파이프라인, 대시보드, 기타 일반 데이터 처리를 위한 도구를 다시 사용합니다.
  • 모듈과 파이프라인에서 MLOps를 구현합니다. 모든 소프트웨어 애플리케이션과 마찬가지로 이 아키텍처의 모듈화된 파이프라인과 코드를 통해 개별 구성 요소를 테스트하고 향후 리팩터링 비용을 줄일 수 있습니다.
  • 필요에 따라 MLOps 프로세스를 자동화합니다. 이 아키텍처에서는 단계를 자동화하여 생산성을 향상하고 인적 오류의 위험을 줄일 수 있지만 모든 단계를 자동화할 필요는 없습니다. Azure Databricks는 자동화를 위한 API 외에도 UI와 수동 프로세스를 허용합니다.

잠재적인 사용 사례

이 아키텍처는 모든 유형의 기계 학습, 딥 러닝, 고급 분석에 적용됩니다. 이 아키텍처에 사용되는 일반적인 기계 학습/AI 기술은 다음과 같습니다.

  • 선형 모델, 트리 기반 모델, 부스팅과 같은 고전적인 기계 학습.
  • TensorFlow 및 PyTorch와 같은 최신 딥 러닝.
  • 통계, Bayesian 메서드, 그래프 분석과 같은 사용자 지정 분석.

아키텍처는 작은 데이터(단일 머신)와 큰 데이터(분산 컴퓨팅과 GPU 가속)를 모두 지원합니다. 아키텍처의 각 단계에서 데이터와 문제 차원에 맞게 컴퓨팅 리소스와 라이브러리를 선택할 수 있습니다.

아키텍처는 모든 유형의 산업 및 비즈니스 사용 사례에 적용됩니다. 이 아키텍처와 유사한 아키텍처를 사용하는 Azure Databricks 고객은 다음과 같은 산업 분야의 소규모 및 대규모 조직을 포함합니다.

  • 소비재 및 소매 서비스
  • 금융 서비스
  • 의료 및 생명 과학
  • 정보 기술

예제는 Databricks 웹 사이트를 참조하세요.

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

보안 주체 작성자:

기타 기여자:

비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인하세요.

다음 단계