Databricks는 기계 학습을 위한 CI/CD를 어떻게 지원하나요?
CI/CD(지속적인 통합 및 지속적인 업데이트)는 애플리케이션을 개발, 배포, 모니터링 및 유지 관리하기 위한 자동화된 프로세스를 의미합니다. 개발 팀은 코드 빌드, 테스트 및 배포를 자동화하여 많은 데이터 엔지니어링 및 데이터 과학 팀에서 여전히 널리 사용되는 수동 프로세스보다 릴리스를 더 빈번하고 안정적으로 제공할 수 있습니다. 기계 학습용 CI/CD는 MLOps, DataOps, ModelOps 및 DevOps의 기술을 함께 제공합니다.
이 문서에서는 Databricks가 기계 학습 솔루션용 CI/CD를 지원하는 방법을 설명합니다. 기계 학습 애플리케이션에서 CI/CD는 코드 자산뿐만 아니라 입력 데이터와 모델에서 생성된 결과를 포함하여 데이터 파이프라인에도 적용됩니다.
CI/CD가 필요한 기계 학습 요소
ML 개발의 과제 중 하나는 서로 다른 팀이 프로세스의 다른 부분을 소유하고 있다는 것입니다. 팀은 다른 도구에 의존할 수 있으며 릴리스 일정이 다를 수 있습니다. Azure Databricks는 팀의 효율성을 개선하고 데이터 및 ML 파이프라인의 일관성과 반복성을 보장하기 위해 통합된 도구를 갖춘 단일 통합 데이터 및 ML 플랫폼을 제공합니다.
일반적으로 기계 학습 작업의 경우 자동화된 CI/CD 워크플로에서 다음을 추적해야 합니다.
- 데이터 품질, 스키마 변경 및 배포 변경 내용을 포함한 학습 데이터입니다.
- 입력 데이터 파이프라인.
- 모델 학습, 유효성 검사 및 서비스 코드입니다.
- 모델 예측 및 성능.
CI/CD 프로세스에 Databricks 통합
MLOps, DataOps, ModelOps 및 DevOps는 개발 프로세스와 "작업"의 통합을 참조하여 프로세스와 인프라를 예측 가능하고 안정적으로 만듭니다. 이 문서 집합에서는 Databricks 플랫폼의 ML 워크플로에 작업("ops") 원칙을 통합하는 방법을 설명합니다.
Databricks는 "코드로 구성"을 빌드하는 도구를 포함하여 ML 수명 주기에 필요한 모든 구성 요소를 통합하여 재현성을 보장하고 클라우드 서비스 프로비저닝을 자동화하는 "코드로서의 인프라"를 보장합니다. 또한 문제가 발생할 때 이를 감지하고 해결하는 데 도움이 되는 로깅 및 경고 서비스가 포함되어 있습니다.
DataOps: 안정적이고 안전한 데이터
좋은 ML 모델은 신뢰할 수 있는 데이터 파이프라인 및 인프라에 따라 달라집니다. Databricks Data Intelligence Platform을 사용하면 데이터 수집에서 제공된 모델의 출력으로 전체 데이터 파이프라인이 단일 플랫폼에 있으며 생산성, 재현성, 공유 및 문제 해결을 용이하게 하는 동일한 도구 집합을 사용합니다.
Databricks의 DataOps 작업 및 도구
이 표에는 Databricks의 일반적인 DataOps 작업 및 도구가 나열되어 있습니다.
DataOps 작업 | Databricks의 도구 |
---|---|
데이터 수집 및 변환 | 자동 로더 및 Apache Spark |
버전 관리 및 계보를 포함한 데이터 변경 내용 추적 | Delta 테이블 |
데이터 처리 파이프라인 빌드, 관리 및 모니터링 | Delta Live Tables |
데이터 보안 및 거버넌스 보장 | Unity 카탈로그 |
예비 데이터 분석 및 대시보드 | Databricks SQL, 대시보드 및 Databricks Notebook |
일반 코딩 | Databricks SQL 및 Databricks Notebook |
데이터 파이프라인 예약 | Databricks 작업 |
일반 워크플로 자동화 | Databricks 작업 |
모델 학습을 위한 기능 만들기, 저장, 관리 및 검색 | Databricks 기능 저장소 |
데이터 모니터링 | Lakehouse 모니터링 |
ModelOps: 모델 개발 및 수명 주기
모델을 개발하려면 일련의 실험과 해당 실험의 조건 및 결과를 추적하고 비교하는 방법이 필요합니다. Databricks Data Intelligence 플랫폼에는 모델 개발 추적을 위한 MLflow와 모델 아티팩트 스테이징, 서비스 및 저장을 비롯한 모델 수명 주기를 관리하는 MLflow 모델 레지스트리가 포함되어 있습니다.
모델이 프로덕션에 릴리스되면 성능에 영향을 줄 수 있는 많은 것들이 변경될 수 있습니다. 모델의 예측 성능을 모니터링하는 것 외에도 입력 데이터를 모니터링하여 모델 재학습이 필요할 수 있는 품질 또는 통계 특성의 변화를 모니터링해야 합니다.
Databricks의 ModelOps 작업 및 도구
이 표에는 Databricks에서 제공하는 일반적인 ModelOps 작업 및 도구가 나열되어 있습니다.
ModelOps 작업 | Databricks의 도구 |
---|---|
모델 개발 추적 | MLflow 모델 추적 |
모델 수명 주기 관리 | Unity 카탈로그의 모델 |
모델 코드 버전 제어 및 공유 | Databricks Git 폴더 |
코드 없는 모델 개발 | 모자이크 AutoML |
모델 모니터링 | Lakehouse 모니터링 |
DevOps: 프로덕션 및 자동화
Databricks 플랫폼은 다음과 같이 프로덕션 환경에서 ML 모델을 지원합니다.
- 종단 간 데이터 및 모델 계보: 프로덕션의 모델부터 동일한 플랫폼의 원시 데이터 원본까지.
- 프로덕션 수준 모델 서비스: 비즈니스 요구 사항에 따라 자동으로 확장 또는 축소됩니다.
- 작업: 작업을 자동화하고 예약된 기계 학습 워크플로를 만듭니다.
- Git 폴더: 작업 영역에서 코드 버전 관리 및 공유는 팀이 소프트웨어 엔지니어링 모범 사례를 따르는 데도 도움이 됩니다.
- Databricks Terraform 공급자: ML 유추 작업, 엔드포인트 서비스 및 기능화 작업을 위해 클라우드 간에 배포 인프라를 자동화합니다.
모델 지원
프로덕션에 모델을 배포하기 위해 MLflow는 프로세스를 크게 간소화하여 대량의 데이터에 대한 일괄 처리 작업 또는 자동 크기 조정 클러스터의 REST 엔드포인트로 단일 클릭 배포를 제공합니다. 또한 Databricks 기능 저장소와 MLflow를 통합하면 학습 및 서비스를 위한 기능의 일관성이 보장됩니다. 또한 MLflow 모델은 짧은 대기 시간 온라인 서비스에 대해서도 기능 저장소에서 기능을 자동으로 조회할 수 있습니다.
Databricks 플랫폼은 다음과 같은 다양한 모델 배포 옵션을 지원합니다.
- 코드 및 컨테이너.
- 일괄 처리 서비스.
- 짧은 대기 시간 온라인 서비스.
- 온-디바이스 또는 에지 서비스.
- 예를 들어 다중 클라우드는 한 클라우드에서 모델을 학습시키고 다른 클라우드와 함께 배포합니다.
자세한 내용은 Mosaic AI 모델 서비스를 참조 하세요.
작업
Databricks 작업을 사용하면 ETL에서 ML까지 모든 유형의 워크로드를 자동화하고 예약할 수 있습니다. Databricks는 Airflow와 같은 인기 있는 타사 오케스트레이터와의 통합도 지원합니다.
Git 폴더
Databricks 플랫폼에는 팀이 UI를 통해 Git 작업을 수행하여 소프트웨어 엔지니어링 모범 사례를 따르는 데 도움이 되는 Git 지원이 작업 영역에 포함되어 있습니다. 관리자 및 DevOps 엔지니어는 API를 사용하여 선호하는 CI/CD 도구를 사용하여 자동화를 설정할 수 있습니다. Databricks는 프라이빗 네트워크를 포함한 모든 유형의 Git 배포를 지원합니다.
Databricks Git 폴더를 사용한 코드 개발 모범 사례에 대한 자세한 내용은 Git 통합 및 Databricks Git 폴더 및 CI/CD를 사용하는 CI/CD 워크플로를 참조하세요. 이러한 기술을 Databricks REST API와 함께 사용하면 GitHub Actions, Azure DevOps 파이프라인 또는 Jenkins 작업을 사용하여 자동화된 배포 프로세스를 빌드할 수 있습니다.
거버넌스 및 보안을 위한 Unity 카탈로그
Databricks 플랫폼에는 관리자가 Databricks 전체의 모든 데이터 및 AI 자산에 대해 세분화된 액세스 제어, 보안 정책 및 거버넌스를 설정할 수 있는 Unity 카탈로그가 포함되어 있습니다.