Azure Databricks를 사용한 데이터 과학 및 기계 학습

Azure Databricks
Azure Data Lake Storage
AKS(Azure Kubernetes Service)
Azure Machine Learning

솔루션 아이디어

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

이 아키텍처는 데이터 과학 및 기계 학습을 위해 Azure Databricks, Delta Lake, MLflow를 사용하여 작업을 개선하는 방법을 보여 줍니다. 기계 학습 모델을 개발, 교육 및 배포하여 전반적인 효율성과 고객 환경을 개선할 수 있습니다.

아키텍처

Architecture diagram showing how Azure Databricks works with data storage services to refine and analyze data and make it available for other services.

다이어그램에는 세 개의 회색 사각형이 있습니다. 하나는 Process라는 레이블이 지정되고, 다른 하나는 Serve로 레이블이 지정되고, 다른 하나는 Store라는 레이블이 지정됩니다. Process 및 Serve 사각형은 다이어그램의 위쪽에서 서로 옆에 있습니다. Serve 사각형에는 Machine Learning 및 Azure Kubernetes Service 아이콘이 있는 흰색 상자가 포함되어 있습니다. 또 다른 흰색 상자는 Process 및 Serve 사각형을 가로지르고 있습니다. Azure Databricks 및 MLflow에 대한 아이콘이 포함되어 있습니다. 화살표는 해당 상자에서 Serve 사각형의 흰색 상자를 가리킵니다. Process 사각형 아래에는 Store 사각형이 있습니다. 여기에는 Data Lake Storage, Delta Lake 아이콘이 있는 흰색 상자와 Bronze, Silver 및 Gold라는 세 개의 데이터베이스 테이블이 포함되어 있습니다. 세 줄은 Process 및 Store 사각형을 연결하며 줄마다 각 끝에 화살표가 있습니다.

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

솔루션은 데이터를 저장, 처리 및 제공합니다.

데이터 흐름

스토어

Data Lake Storage는 데이터를 Delta Lake 형식으로 저장합니다. Delta Lake는 데이터 레이크의 큐레이팅된 계층을 형성합니다. medallion 아키텍처는 데이터를 세 계층으로 구성합니다.

  • Bronze 테이블은 원시 데이터를 보유합니다.
  • Silver 테이블에는 정리된 필터링 데이터가 포함됩니다.
  • Gold 테이블은 분석 및 보고에 사용할 수 있는 집계된 데이터를 저장합니다.

프로세스

  • 다양한 언어, 프레임워크 및 라이브러리의 코드는 원시 데이터를 준비, 구체화 및 정리합니다(1). 코딩 가능성에는 Python, R, SQL, Spark, Pandas 및 Koalas가 포함됩니다.

  • Azure Databricks는 데이터 과학 워크로드를 실행합니다. 또한 이 플랫폼은 기계 학습 모델을 빌드하고 학습시킵니다(2). Azure Databricks는 미리 설치된 최적화 라이브러리를 사용합니다. 예를 들어 scikit-learn, TensorFlow, PyTorch 및 XGBoost가 있습니다.

  • MLflow 추적은 기계 학습 실험, 모델 실행 및 결과를 캡처합니다(3). 프로덕션에 가장 적합한 모델이 준비되면 Azure Databricks는 해당 모델을 MLflow 모델 리포지토리에 배포합니다. 이 중앙 집중식 레지스트리는 프로덕션 모델에 대한 정보를 저장합니다. 레지스트리를 사용하면 다른 구성 요소에도 모델을 제공할 수 있습니다.

    • Spark 및 Python 파이프라인은 모델을 수집할 수 있습니다. 이러한 파이프라인은 일괄 처리 워크로드 또는 스트리밍 ETL 프로세스를 처리합니다.
    • REST API는 여러 용도로 모델에 대한 액세스를 제공합니다. 예를 들어 모바일 및 웹 애플리케이션의 테스트 및 대화형 채점이 있습니다.

제공

Azure Databricks는 Machine Learning 및 AKS와 같은 다른 서비스에 모델을 배포할 수 있습니다(4).

구성 요소

  • Azure Databricks는 데이터 분석 플랫폼입니다. 완전 관리형 Spark 클러스터는 데이터 과학 워크로드를 실행합니다. 또한 Azure Databricks는 미리 설치된 최적화 라이브러리를 사용하여 기계 학습 모델을 빌드하고 학습시킵니다. Azure Databricks와 MLflow 통합은 실험을 추적하고, 리포지토리에 모델을 저장하고, 다른 서비스에서 모델을 사용할 수 있도록 하는 방법을 제공합니다. Azure Databricks는 확장성을 제공합니다.

    • 단일 노드 컴퓨팅 클러스터는 작은 데이터 세트 및 단일 모델 실행을 처리합니다.
    • 대규모 데이터 세트의 경우 다중 노드 컴퓨팅 클러스터 또는 GPU(그래픽 처리 장치) 클러스터를 사용할 수 있습니다. 이러한 클러스터는 병렬 모델 실행에 HorovodRunner 및 Hyperopt 등의 라이브러리와 프레임워크를 사용합니다.
  • Data Lake Storage는 고성능 분석 워크로드를 위한 확장성 있고 안전한 데이터 레이크입니다. 이 서비스는 수백 기가비트의 처리량을 유지하면서 여러 페타바이트의 정보를 관리합니다. 데이터에는 다음과 같은 특성이 있을 수 있습니다.

    • 정형, 반정형 또는 비정형이어야 합니다.
    • 로그, 파일 및 미디어와 같은 여러 가지 유형이 다른 원본에서 제공됩니다.
    • 일괄 처리 또는 스트리밍에서 정적이어야 합니다.
  • Delta Lake는 열린 파일 형식을 사용하는 스토리지 계층입니다. 이 계층은 Data Lake Storage 같은 클라우드 스토리지를 기반으로 실행됩니다. Delta Lake는 일괄 처리 및 스트리밍 데이터를 변환하고 정리하는 데 최적화되어 있습니다. 이 플랫폼은 다음과 같은 기능을 지원합니다.

    • 데이터 버전 관리 및 롤백.
    • 안정성을 위한 ACID(원자성, 일관성, 격리 및 내구성) 트랜잭션.
    • 데이터 준비, 모델 학습 및 모델 제공을 위한 일관된 표준.
    • 원본 데이터의 일관된 스냅샷에 대한 시간 이동. 데이터 과학자는 별도의 복사본을 만드는 대신 스냅샷에서 모델을 학습시킬 수 있습니다.
  • MLflow는 기계 학습 수명 주기를 위한 오픈 소스 플랫폼입니다. MLflow 구성 요소는 학습 및 실행 중에 기계 학습 모델을 모니터링합니다. 저장된 정보에는 코드, 데이터, 구성 정보 및 결과가 포함됩니다. 또한 MLflow는 모델을 저장하고 프로덕션 환경에 로드합니다. MLflow는 개방형 프레임워크를 사용하므로 다양한 서비스, 애플리케이션, 프레임워크 및 도구에서 모델을 사용할 수 있습니다.

  • Machine Learning 예측 분석 솔루션을 빌드, 배포 및 관리하는 데 도움이 되는 클라우드 기반 환경입니다. 이러한 모델을 사용하면 동작, 결과 및 추세를 예측할 수 있습니다.

  • AKS는 고가용성의 안전한 완전 관리형 Kubernetes 서비스입니다. AKS를 사용하면 컨테이너화된 애플리케이션을 쉽게 배포하고 관리할 수 있습니다.

시나리오 정보

조직에서 데이터 과학 및 기계 학습의 기능을 인식하면 효율성을 향상하고 고객 환경을 개선하며 변화를 예측할 수 있습니다. 중요 비즈니스용 사용 사례에서 이러한 목표를 달성하려면 다음을 위해 일관되고 신뢰할 수 있는 패턴이 필요합니다.

  • 실험 추적.
  • 결과 재현.
  • 프로덕션에 기계 학습 모델 배포.

이 문서에서는 일관되고 신뢰할 수 있는 기계 학습 프레임워크에 대한 솔루션을 간략하게 설명합니다. Azure Databricks는 아키텍처의 핵심을 형성합니다. 스토리지 계층 Delta Lake 및 기계 학습 플랫폼 MLflow도 중요한 역할을 합니다. 이러한 구성 요소는 Azure Data Lake Storage, Azure Machine Learning 및 AKS(Azure Kubernetes Service) 등의 다른 서비스와 원활하게 통합됩니다.

동시에 이러한 서비스는 다음과 같은 데이터 과학 및 기계 학습을 위한 솔루션을 제공합니다.

  • 단순: 개방형 데이터 레이크는 아키텍처를 간소화합니다. 데이터 레이크에는 큐레이팅된 계층인 Delta Lake가 포함되어 있습니다. 해당 계층은 오픈 소스 형식의 데이터에 대한 액세스를 제공합니다.

  • 개방성: 이 솔루션은 오픈 소스 코드, 개방형 표준 및 개방형 프레임워크를 지원합니다. 이 방식은 향후 업데이트의 필요성을 최소화합니다. Azure Databricks 및 Machine Learning은 기본적으로 MLflow 및 Delta Lake를 지원합니다. 이러한 구성 요소는 더불어 업계 최고 수준의 MLOps(Machine Learning Operations) 또는 기계 학습을 위한 DevOps를 제공합니다. 광범위한 배포 도구가 솔루션의 표준화된 모델 형식과 통합됩니다.

  • 협업: 데이터 과학 및 MLOps 팀은 이 솔루션과 함께 작동합니다. 이러한 팀은 MLflow 추적을 사용하여 실험을 기록하고 쿼리합니다. 또한 팀은 중앙 MLflow 모델 레지스트리에 모델을 배포합니다. 그런 다음, 데이터 엔지니어는 데이터 수집, ETL(추출, 변환, 로드) 프로세스 및 스트리밍 파이프라인에 배포된 모델을 사용합니다.

잠재적인 사용 사례

AGL이 에너지 예측을 위해 구축한 플랫폼은 이 솔루션에 영감을 주었습니다. 이 플랫폼은 수천 가지 병렬 모델에 대한 빠르고 비용 효율적인 학습, 배포 및 수명 주기 관리를 제공합니다.

에너지 공급자 외에도 이 솔루션은 다음과 같은 모든 조직에 도움이 될 수 있습니다.

  • 데이터 과학을 사용합니다.
  • 기계 학습 모델을 빌드하고 학습시킵니다.
  • 프로덕션 환경에서 기계 학습 모델을 실행합니다.

예를 들어 다음과 같은 조직이 있습니다.

  • 소매 및 전자 상거래.
  • 은행 및 금융 업무.
  • 의료 및 생명 과학.
  • 자동차 산업 및 제조.

다음 단계

  • AGL Energy는 수천 개의 병렬 모델을 위한 표준화된 플랫폼을 구축합니다. 이 플랫폼은 모델에 대한 빠르고 비용 효율적인 학습, 배포 및 수명 주기 관리를 제공합니다.
  • OGE(Open Grid Europe)는 AI 모델을 사용하여 가스 파이프라인을 모니터링합니다. OGE는 Azure Databricks 및 MLflow를 사용하여 모델을 개발합니다.
  • SAS(Scandinavian Airlines)는 공동 연구 단계에서 Azure Databricks를 사용합니다. 또한 이 항공사는 Machine Learning을 사용하여 예측 모델을 개발합니다. 이 모델은 회사의 데이터에서 패턴을 식별하여 일상적인 작업을 개선합니다.