다음을 통해 공유


모델 배포 패턴

이 문서에서는 스테이징을 통해 프로덕션으로 ML 아티팩트를 이동하기 위한 두 가지 일반적인 패턴을 설명합니다. 모델 및 코드 변경의 비동기 특성은 ML 개발 프로세스가 따를 수 있는 여러 가지 가능한 패턴이 있음을 의미합니다.

모델은 코드로 생성되지만 결과 모델 아티팩트와 모델을 만든 코드는 비동기식으로 작동할 수 있습니다. 즉, 새 모델 버전 및 코드 변경이 동시에 발생하지 않을 수 있습니다. 예를 들어 다음과 같은 시나리오를 고려해야 합니다.

  • 사기 거래를 검색하기 위해 매주 모델을 재학습시키는 ML 파이프라인을 개발합니다. 코드는 자주 변경되지 않을 수 있지만 새 데이터를 통합하기 위해 매주 모델을 다시 학습시킬 수 있습니다.
  • 문서를 분류하는 대규모 심층 신경망을 만들 수 있습니다. 이 경우 모델 학습에는 컴퓨팅 비용이 많이 들고 시간이 많이 걸리며, 모델을 재학습시키는 경우는 자주 발생하지 않을 수 있습니다. 그러나 이 모델을 배포, 제공 및 모니터링하는 코드는 모델을 다시 학습시키지 않고도 업데이트할 수 있습니다.

배포 패턴

두 패턴은 프로덕션으로 승격되는 것이 모델 아티팩트인지 또는 모델 아티팩트를 생성하는 학습 코드인지에 따라 다릅니다.

대부분의 경우 Databricks는 "코드 배포" 방법을 권장합니다. 이 방법은 권장되는 MLOps 워크플로에 통합됩니다.

이 패턴에서 모델을 학습시키는 코드는 개발 환경에서 개발됩니다. 동일한 코드가 스테이징 및 프로덕션으로 차례로 이동합니다. 모델은 각 환경에서 학습됩니다. 처음에는 모델 개발의 일부로 개발 환경에서 학습되고, 통합 테스트의 일부로 스테이징(제한된 데이터 하위 집합)에서 학습되고, 프로덕션 환경(전체 프로덕션 데이터)에서 학습되어 최종 모델을 생성합니다.

장점:

  • 프로덕션 데이터에 대한 액세스가 제한된 조직에서 이 패턴을 사용하면 프로덕션 환경의 프로덕션 데이터에 대해 모델을 학습시킬 수 있습니다.
  • 학습 코드가 프로덕션에 대해 검토, 테스트 및 승인되므로 자동화된 모델 재학습이 더 안전해집니다.
  • 지원 코드는 모델 학습 코드와 동일한 패턴을 따릅니다. 둘 다 스테이징에서 통합 테스트를 거칩니다.

단점:

  • 데이터 과학자가 공동 작업자에게 코드를 전달하는 학습 곡선은 가파를 수 있습니다. 미리 정의된 프로젝트 템플릿 및 워크플로가 유용합니다.

또한 이 패턴에서 데이터 과학자는 ML 관련 문제를 식별하고 해결할 수 있는 지식이 있으므로 프로덕션 환경의 학습 결과를 검토할 수 있습니다.

전체 프로덕션 데이터 세트에 대한 스테이징에서 모델을 학습시켜야 하는 경우 코드를 스테이징에 배포하고, 모델을 학습시킨 다음, 모델을 프로덕션에 배포하여 하이브리드 접근 방식을 사용할 수 있습니다. 이 방법을 사용하면 프로덕션에서는 학습 비용이 절감되지만 스테이징에는 추가 작업 비용이 발생합니다.

모델 배포

이 패턴에서 모델 아티팩트는 개발 환경에서 코드를 학습하여 생성됩니다. 그런 다음 아티팩트가 프로덕션 환경에 배포되기 전에 스테이징 환경에서 테스트됩니다.

다음 중 하나 이상이 적용되는 경우 이 옵션을 고려합니다.

  • 모델 학습이 비용이 많이 들거나 재현하기 어렵습니다.
  • 모든 작업이 단일 Azure Databricks 작업 영역에서 수행됩니다.
  • 외부 리포지토리 또는 CI/CD 프로세스로 작업하지 않습니다.

장점:

  • 데이터 과학자 입장에서 더 간단한 핸드오프
  • 모델 학습 비용이 많이 드는 경우 모델을 한 번만 학습시켜야 합니다.

단점:

  • 개발 환경에서 프로덕션 데이터에 액세스할 수 없는 경우(보안상의 이유로) 이 아키텍처는 실행 가능하지 않을 수 있습니다.
  • 이 패턴에서는 자동화된 모델 재학습이 어렵습니다. 개발 환경에서 재학습을 자동화할 수 있지만 프로덕션 환경에서 모델을 배포하는 팀은 결과 모델을 프로덕션 준비 상태로 수락하지 않을 수 있습니다.
  • 기능 엔지니어링, 유추 및 모니터링에 사용되는 파이프라인과 같은 지원 코드는 프로덕션에 별도로 배포해야 합니다.

일반적으로 환경(개발, 스테이징 또는 프로덕션)은 Unity 카탈로그의 카탈로그에 해당합니다. 이 패턴을 구현하는 방법에 대한 자세한 내용은 업그레이드 가이드를 참조 하세요.

아래 다이어그램은 다양한 실행 환경에서 위의 배포 패턴에 대한 코드 수명 주기와 대조됩니다.

다이어그램에 표시된 환경은 단계가 실행되는 최종 환경입니다. 예를 들어 배포 모델 패턴에서 최종 단위 및 통합 테스트는 개발 환경에서 수행됩니다. 배포 코드 패턴에서는 개발 환경에서 단위 테스트 및 통합 테스트를 수행하고 스테이징 환경에서 최종 단위 및 통합 테스트를 수행합니다.

배포 패턴 수명 주기