MLOps 스택: 코드로 모델 개발 프로세스
이 문서에서는 MLOps Stacks를 사용하여 소스 제어 리포지토리에서 개발 및 배포 프로세스를 코드로 구현하는 방법을 설명합니다. 또한 모델 개발 및 배포 프로세스의 모든 단계를 통합하는 단일 플랫폼인 Databricks Data Intelligence 플랫폼에서 모델 개발의 이점을 설명합니다.
MLOps 스택이란?
MLOps Stacks를 사용하면 전체 모델 개발 프로세스가 소스 제어 리포지토리에서 코드로 구현, 저장 및 추적됩니다. 이러한 방식으로 프로세스를 자동화하면 더 반복 가능하고 예측 가능하며 체계적인 배포가 가능하며 CI/CD 프로세스와 통합할 수 있습니다. 모델 개발 프로세스를 코드로 표시하면 모델을 배포하는 대신 코드를 배포할 수 있습니다. 코드를 배포하면 모델을 빌드하는 기능이 자동화되므로 필요할 때 모델을 훨씬 쉽게 다시 학습할 수 있습니다.
MLOps Stacks를 사용하여 프로젝트를 만들 때 기능 엔지니어링, 학습, 테스트 및 배포에 사용할 Notebook, 학습 및 테스트용 파이프라인, 각 단계에 사용할 작업 영역 및 코드의 자동화된 테스트 및 배포를 위해 GitHub Actions 또는 Azure DevOps를 사용하는 CI/CD 워크플로와 같은 ML 개발 및 배포 프로세스의 구성 요소를 정의합니다.
MLOps Stacks에서 만든 환경은 Databricks에서 권장하는 MLOps 워크플로를 구현합니다. 코드를 사용자 지정하여 조직의 프로세스 또는 요구 사항에 맞게 스택을 만들 수 있습니다.
MLOps 스택은 어떻게 작동하나요?
Databricks CLI를 사용하여 MLOps 스택을 만듭니다. 단계별 지침은 MLOps 스택에 대한 Databricks 자산 번들을 참조 하세요.
MLOps Stacks 프로젝트를 시작하면 소프트웨어에서 구성 세부 정보를 입력하는 단계를 수행한 다음 프로젝트를 구성하는 파일이 포함된 디렉터리를 만듭니다. 이 디렉터리 또는 스택은 Databricks에서 권장하는 프로덕션 MLOps 워크플로를 구현합니다. 다이어그램에 표시된 구성 요소가 생성되며 사용자 지정 코드를 추가하려면 파일만 편집하면 됩니다.
이 다이어그램에서
-
A: 데이터 과학자 또는 ML 엔지니어가 다음을 사용하여
databricks bundle init mlops-stacks
프로젝트를 초기화합니다. 프로젝트를 초기화할 때 ML 코드 구성 요소(일반적으로 데이터 과학자가 사용), CI/CD 구성 요소(일반적으로 ML 엔지니어가 사용) 또는 둘 다를 set 선택할 수 있습니다. - B: ML 엔지니어는 CI/CD에 대한 Databricks 서비스 주체 비밀을 set.
- C: 데이터 과학자는 Databricks 또는 로컬 시스템에서 모델을 개발합니다.
- D: 데이터 과학자들은 update ML 코드에 대한 풀 리퀘스트를 만듭니다.
- E: CI/CD 실행기는 Notebook을 실행하고, 작업을 만들고, 스테이징 및 프로덕션 작업 영역에서 다른 작업을 수행합니다.
조직은 기본 스택을 사용하거나 필요에 따라 구성 요소를 추가, remove또는 수정하여 조직의 관행에 맞게 사용자 지정할 수 있습니다. 자세한 내용은 GitHub 리포지토리 추가 정보를 참조하세요.
MLOps 스택은 다양한 ML 팀이 소프트웨어 엔지니어링 모범 사례를 따르고 프로덕션 등급 CI/CD를 유지하면서 프로젝트에서 독립적으로 작업할 수 있도록 모듈식 구조로 설계되었습니다. 프로덕션 엔지니어는 데이터 과학자가 ML 파이프라인 및 모델을 개발, 테스트 및 프로덕션에 배포할 수 있도록 하는 ML 인프라를 구성합니다.
다이어그램에 표시된 것처럼 기본 MLOps Stack에는 다음 세 가지 구성 요소가 포함됩니다.
- ML 코드입니다. MLOps 스택은 ML 프로젝트를 위한 학습, 일괄 추론 등을 포함하는 템플릿의 set를 생성합니다. 표준화된 템플릿을 사용하면 데이터 과학자가 신속하게 시작할 get 팀 간에 프로젝트 구조를 통합하고 테스트할 준비가 된 모듈화된 코드를 적용할 수 있습니다.
- ML 리소스를 코드로 사용합니다. MLOps 스택은 학습 및 일괄 처리 유추와 같은 작업에 대한 작업 영역 및 파이프라인과 같은 리소스를 정의합니다. 리소스는 ML 환경에 대한 테스트, 최적화 및 버전 제어를 용이하게 하기 위해 Databricks 자산 번들에 정의됩니다. 예를 들어 자동화된 모델 재학습을 위해 더 큰 인스턴스 유형을 사용해 볼 수 있으며 이후 참조를 위해 변경 내용이 자동으로 추적됩니다.
- CI/CD. GitHub Actions 또는 Azure DevOps를 사용하여 ML 코드 및 리소스를 테스트 및 배포하여 자동화를 통해 모든 프로덕션 변경이 수행되고 테스트된 코드만 prod에 배포되도록 할 수 있습니다.
MLOps 프로젝트 흐름
기본 MLOps Stacks 프로젝트에는 개발, 스테이징 및 프로덕션 Databricks 작업 영역에서 자동화된 모델 학습 및 일괄 처리 유추 작업을 테스트하고 배포하는 CI/CD 워크플로가 있는 ML 파이프라인이 포함되어 있습니다. MLOps 스택은 구성할 수 있으므로 조직의 프로세스에 맞게 프로젝트 구조를 수정할 수 있습니다.
다이어그램은 기본 MLOps Stack에 의해 구현되는 프로세스를 보여 줍니다. 개발 작업 영역에서 데이터 과학자는 ML 코드 및 PR(파일 끌어오기 요청)을 반복합니다. PR은 격리된 준비 Databricks 작업 영역에서 단위 테스트 및 통합 테스트를 트리거합니다. PR이 main에 병합될 때, 스테이징에서 실행되는 모델 학습 및 일괄 유추 작업이 즉시 최신 코드를 실행하는 update 프로세스를 시작합니다. PR을 기본으로 병합한 후 예약된 릴리스 프로세스의 일부로 새 릴리스 분기를 잘라내고 코드 변경 내용을 프로덕션에 배포할 수 있습니다.
MLOps Stacks 프로젝트 구조
MLOps Stack은 프로젝트의 엔드투엔드 정의 역할을 하는 원본 파일 컬렉션인 Databricks 자산 번들을 사용합니다. 이러한 원본 파일에는 테스트 및 배포 방법에 대한 정보가 포함됩니다. 파일을 번들로 수집하면 변경 내용을 쉽게 공동 버전화하고 소스 제어, 코드 검토, 테스트 및 CI/CD와 같은 소프트웨어 엔지니어링 모범 사례를 사용할 수 있습니다.
다이어그램은 기본 MLOps Stack에 대해 만든 파일을 보여 줍니다. 스택에 포함된 파일에 대한 자세한 내용은 GitHub 리포지토리 또는 MLOps 스택용 Databricks 자산 번들에 대한 설명서를 참조하세요.
MLOps 스택 구성 요소
"스택"은 개발 프로세스에 사용되는 도구의 set 나타냅니다. 기본 MLOps 스택은 통합 Databricks 플랫폼을 활용하며 다음 도구를 사용합니다.
구성 요소 | Databricks의 도구 |
---|---|
ML 모델 개발 코드 | Databricks Notebooks, MLflow |
기능 개발 및 관리 | 기능 엔지니어링 |
ML 모델 리포지토리 | 모델 Unity Catalog |
ML 모델 서비스 제공 | 모자이크 AI 모델 서비스 |
코드로서의 인프라 | Databricks 자산 번들 |
오케스트레이터 | Databricks 작업 |
CI/CD | GitHub Actions, Azure DevOps |
데이터 및 모델 성능 모니터링 | Lakehouse 모니터링 |
다음 단계
get 시작하려면 Databricks Asset Bundles for MLOps Stacks 또는 Databricks MLOps Stacks 리포지토리를 GitHub에서 참조하세요.