Azure Databricks를 사용하여 Spark 모델의 확장 가능한 일괄 처리 점수 매기기 구현
이 참조 아키텍처는 Azure Databricks를 사용하여 일정에 따라 Apache Spark 분류 모델의 일괄 처리 채점을 수행하는 확장 가능한 솔루션을 빌드하는 방법을 보여 줍니다. Azure Databricks는 Azure에 최적화된 Apache Spark 기반 분석 플랫폼입니다.
Azure Databricks는 데이터를 많이 사용하는 애플리케이션을 개발하기 위한 세 가지 환경, 즉 Databricks SQL, Databricks 데이터 과학 & 엔지니어링, Databricks Machine Learning을 제공합니다. Databricks Machine Learning은 실험 추적, 모델 학습, 기능 개발 및 관리, 기능 및 모델 제공을 위해 관리되는 서비스를 통합하는 통합된 엔드투엔드 기계 학습 환경입니다. 이 참조 아키텍처를 다른 시나리오로 일반화할 수 있는 템플릿으로 사용할 수 있습니다.
Apache® 및 Apache Spark®는 미국 및/또는 기타 국가에서 Apache Software Foundation의 등록 상표 또는 상표입니다. 이러한 표시의 사용은 Apache Software Foundation에 의한 보증을 암시하지 않습니다.
아키텍처
이 아키텍처의 Visio 파일을 다운로드합니다.
워크플로
아키텍처는 순차적으로 실행된 Notebook 집합을 기반으로 Azure Databricks 내에 완전히 포함된 데이터 흐름을 정의합니다. 다음 구성 요소로 구성됩니다.
데이터 파일. 참조 구현에서는 정적 데이터 파일 5개에 포함된 시뮬레이션된 데이터 세트를 사용합니다.
수집. 데이터 수집 Notebook은 입력 데이터 파일을 Databrick 데이터 세트 컬렉션에 다운로드합니다. 실제 시나리오에서는 IoT 디바이스의 데이터가 Azure SQL 또는 Azure Blob Storage와 같은 Databricks에서 액세스 가능한 스토리지로 스트리밍됩니다. Databricks는 여러 데이터 원본을 지원합니다.
데이터 수집의 최근 향상된 기능에는 다양한 데이터베이스 및 SaaS 애플리케이션에서 실시간 데이터 복제가 포함되며, Lake House Federation같은 기능을 통해 가능합니다.
학습 파이프라인. 이 Notebook은 기능 엔지니어링 Notebook을 실행하여 수집된 데이터에서 분석 데이터 세트를 만듭니다. 그런 다음 파이프라인은 확장 가능한 기계 학습 라이브러리를
Databricks의 향상된 ML 기능에는 실험 추적 및 모델 학습이 포함되며, 이 파이프라인을 더욱 최적화할 수 있습니다.
점수 매기기 파이프라인. 이 Notebook은 기능 엔지니어링 Notebook을 실행하여 수집된 데이터에서 점수 매기기 데이터 세트를 만들고 점수 매기기 Notebook을 실행합니다. 점수 매기기 Notebook은 학습된 Spark MLlib 모델을 사용해 점수 매기기 데이터 세트에서 관찰된 내용에 대한 예측 정보를 생성합니다. 예측 정보는 Databricks 데이터 저장소의 새로운 데이터 세트인 결과 저장소에 저장됩니다.
점수 매기기 파이프라인은 일괄 처리 유추에 ai_query
함수를 사용하여 확장성 및 성능 최적화를 위한 프로비저닝을 통해 대규모 데이터 세트를 효율적으로 처리할 수 있습니다.
스케줄러. 예약된 Databricks 작업이 Spark 모델을 사용하여 일괄 처리 점수 매기기를 처리합니다. 이 작업은 점수 매기기 파이프라인 Notebook을 실행하며, Notebook 매개 변수를 통해 변수 인수를 전달하여 점수 매기기 데이터 세트 생성을 위한 세부 정보와 결과 데이터 세트를 저장할 위치를 지정합니다.
솔루션 세부 정보
해당 시나리오는 파이프라인 흐름으로 생성됩니다. 각 Notebook은 각 작업(수집, 기능 엔지니어링, 모델 빌드, 모델 점수 매기기)을 수행할 수 있도록 최적화되어 있습니다. 기능 엔지니어링 Notebook은 학습, 보정, 테스트 또는 채점 작업용으로 일반 데이터 세트를 생성하도록 설계되어 있습니다. 이 시나리오에서는 이러한 작업에 임시 분할 전략을 사용하므로 Notebook 매개 변수를 사용하여 날짜 범위 필터링을 설정합니다.
잠재적인 사용 사례
자산을 많이 사용하는 업계의 한 기업이 예기치 않은 기계 오류와 연관된 비용과 가동 중지 시간을 최소화하고자 합니다. 이 기업은 기계에서 수집된 IoT 데이터를 사용해 예측 유지 관리 모델을 만들 수 있습니다. 이 모델을 통해 구성 요소를 사전에 유지 관리하고 오류가 발생하기 전에 수리할 수 있습니다. 기계 구성 요소의 사용률을 최대화하면 비용을 제어하고 가동 중지 시간을 줄일 수 있습니다.
예측 유지 관리 모델은 기계에서 데이터를 수집하고 구성 요소 오류의 예제 기록을 보존합니다. 그리고 나면 이 모델을 사용하여 구성 요소의 현재 상태를 모니터링하고 지정된 구성 요소에서 조만간 오류가 발생할지 여부를 예측할 수 있습니다.
이 참조 아키텍처는 구성 요소 기계에 새 데이터가 있으면 트리거되는 워크로드용으로 설계되었습니다. 처리에는 다음 단계가 포함됩니다.
외부 데이터 저장소의 데이터를 Azure Databricks 데이터 저장소로 수집합니다.
데이터를 학습 데이터 세트로 변환한 다음 Spark MLlib 모델을 작성하여 기계 학습 모델을 학습시킵니다. MLlib는 Spark 데이터 확장성 기능을 활용할 수 있도록 최적화된 가장 일반적인 기계 학습 알고리즘과 유틸리티로 구성되어 있습니다.
데이터를 점수 매기기 데이터 세트로 변환하여 구성 요소 오류를 예측(분류)하기 위해 학습된 모델을 적용합니다. Spark MLLib 모델을 사용하여 데이터의 점수를 매깁니다.
사후 처리에 사용할 수 있도록 Databricks 데이터 저장소에 결과를 저장합니다.
대안
이 아키텍처는 Mosaic AI 모델 서비스 사용하여 Azure Databricks의 서버리스 컴퓨팅을 사용하여 일괄 처리 및 실시간 유추를 위한 모델을 배포할 수 있습니다. 리소스를 동적으로 크기 조정하기 위한 인터페이스를 제공하여 큰 데이터 세트를 처리하는 데 있어 성능과 비용 효율성을 모두 향상합니다.
Azure Databricks에서 Microsoft Fabric 사용하여 더 복잡한 예약된 파이프라인을 개발합니다.
권장 사항
Databricks는 학습된 모델을 로드 및 배포하여 새 데이터로 예측을 할 수 있도록 설정되어 있습니다. Databricks는 다른 이점도 제공합니다.
- Microsoft Entra 자격 증명을 사용하여 Single Sign-On을 지원합니다.
- 프로덕션 파이프라인에 대해 작업을 실행할 수 있는 작업 스케줄러
- 협업, 대시보드, REST API가 포함된 완벽한 대화형 Notebook.
- 무제한 클러스터 제공(어떤 크기로든 확장 가능)
- 고급 보안, 역할 기반 액세스 제어 및 감사 로그
Azure Databricks 서비스와 상호 작용하려는 경우 웹 브라우저나 명령줄 인터페이스(CLI)에서 작업 영역 인터페이스를 사용합니다.
이 아키텍처는 Notebook을 사용하여 작업을 순서대로 실행합니다. 각 Notebook은 중간 데이터 아티팩트(학습, 테스트, 점수 매기기 또는 결과 데이터 세트)를 입력 데이터와 같은 데이터 저장소에 저장합니다. 따라서 특정 사용 사례에 필요한 대로 Notebook을 쉽게 사용할 수 있습니다. 실제로는 Notebook이 스토리지를 직접 읽고 스토리지에 쓰기 저장할 수 있도록 데이터 원본을 Azure Databricks 인스턴스에 연결합니다.
Databricks 사용자 인터페이스, 데이터 저장소 또는 Databricks CLI를 통해 필요에 따라 작업 실행을 모니터링합니다. Databricks에서 제공되는 이벤트 로그 및 기타 메트릭을 사용하여 클러스터를 모니터링합니다.
고려 사항
이러한 고려 사항은 워크로드의 품질을 향상시키는 데 사용할 수 있는 일단의 지침 원칙인 Azure Well-Architected Framework의 핵심 요소를 구현합니다. 자세한 내용은 Microsoft Azure Well-Architected Framework를 참조하세요.
신뢰도
안정성을 통해 애플리케이션이 고객에 대한 약속을 충족할 수 있습니다. 자세한 내용은 안정성대한
이 아키텍처에서 데이터는 간단히 하기 위해 Databricks 스토리지 내에 직접 저장됩니다. 그러나 프로덕션 설정에서는 Azure Blob Storage
비용 최적화
비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 개선하는 방법을 모색하는 것입니다. 자세한 내용은 비용 최적화대한
Azure Databricks는 관련 비용이 부과되는 프리미엄 Spark 제품입니다. 또한 표준 및 프리미엄 Databricks 가격 책정 계층이 제공됩니다.
이 시나리오에서는 표준 가격 책정 계층을 사용해도 충분합니다. 그러나 특정 애플리케이션에 규모가 더 큰 워크로드를 처리하기 위해 자동으로 크기가 조정되는 클러스터나 대화형 Databricks 대시보드가 필요한 경우 프리미엄 티어을 선택하면 비용이 더 증가합니다.
성능 효율성
성능 효율성은 워크로드가 사용자가 효율적인 방식으로 요구 사항을 충족하는 기능입니다. 자세한 내용은 성능 효율성대한
Azure Databricks 클러스터는 기본적으로 자동 크기 조정이 가능하므로, Databricks는 작업 특성에 맞게 작업자를 계정에 동적으로 재할당합니다. 파이프라인의 특정 부분은 다른 부분보다 계산적으로 더 까다로울 수 있습니다. Databricks는 작업의 이러한 단계 중에 작업자를 더 추가하며 작업자가 더 이상 필요하지 않을 때는 제거합니다. 자동 스케일링 기능을 사용하면 클러스터 사용률을 더 쉽게 높일 수 있습니다. 워크로드와 일치하는 클러스터를 프로비저닝할 필요가 없기 때문입니다.
참가자
Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.
주요 작성자:
- 프레디 아얄라 | 클라우드 솔루션 설계자
- John Ehrlinger | 선임 응용 과학자
비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인하세요.