배포용 모델 패키지(미리 보기)

기계 학습 모델을 학습한 후에는 다른 사람이 예측을 사용할 수 있도록 배포해야 합니다. 그러나 모델을 배포하려면 가중치 이상 또는 모델 아티팩트가 필요합니다. 모델 패키지는 기계 학습 모델을 제공 플랫폼에 배포하는 데 필요한 모든 종속성을 수집할 수 있는 Azure Machine Learning의 기능입니다. 작업 영역 간에는 물론 Azure Machine Learning 외부에서도 패키지를 이동할 수 있습니다.

Important

이 기능은 현재 공개 미리 보기로 제공됩니다. 이 미리 보기 버전은 서비스 수준 계약 없이 제공되며, 프로덕션 워크로드에는 권장되지 않습니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다.

자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

모델 패키지란?

모델을 배포하기 전 모범 사례로서 모델을 성공적으로 실행하는 데 필요한 모든 종속성을 수집하고 해결해야 재현 가능하고 강력한 방식으로 모델을 배포할 수 있습니다.

Screenshot that shows the dependencies collected during a model package operation.

일반적으로 모델의 종속성은 다음과 같습니다.

  • 모델이 실행되는 기본 이미지 또는 환경입니다.
  • 모델이 제대로 작동하기 위해 의존하는 Python 패키지 및 종속성 목록입니다.
  • 모델이 유추를 생성하는 데 필요할 수 있는 추가 자산입니다. 이러한 자산에는 레이블의 맵과 전처리 매개 변수가 포함될 수 있습니다.
  • 유추 서버가 요청을 처리하는 데 필요한 소프트웨어. 예를 들어, 플라스크 서버 또는 TensorFlow 서비스 제공이 있습니다.
  • 유추 루틴(필요한 경우).

이러한 모든 요소를 수집한 후 서비스 인프라에 배포해야 합니다. 모든 종속성을 수집한 후 생성된 결과 자산을 모델 패키지라고 합니다.

패키지 모델의 이점

배포 전에 모델을 패키지하면 다음과 같은 장점이 있습니다.

  • 재현성: 모든 종속성은 배포 시간이 아닌 패키지 시간에 수집됩니다. 종속성이 해결되면 종속성이 이미 해결되었음을 보장하면서 필요한 만큼 패키지를 배포할 수 있습니다.
  • 빠른 충돌 해결: Azure Machine Learning은 모델을 패키지하는 동안 Python 패키지 누락과 같은 종속성과 관련된 잘못된 구성을 검색합니다. 이러한 문제를 발견하기 위해 모델을 배포할 필요는 없습니다.
  • 유추 서버와의 간편한 통합: 사용 중인 유추 서버에는 특정 소프트웨어 구성(예: Torch Serve 패키지)이 필요할 수 있으므로 이러한 소프트웨어는 모델 종속성과 충돌을 일으킬 수 있습니다. Azure Machine Learning의 모델 패키지는 유추 서버에 필요한 종속성을 삽입하여 모델을 배포하기 전에 충돌을 검색하는 데 도움을 줍니다.
  • 이식성: 레지스트리를 사용하여 Azure Machine Learning 모델 패키지를 한 작업 영역에서 다른 작업 영역으로 이동할 수 있습니다. Azure Machine Learning 외부에 배포할 수 있는 패키지를 생성할 수도 있습니다.
  • 개인 네트워크를 통한 MLflow 지원: MLflow 모델의 경우 Azure Machine Learning에서는 모델 실행에 필요한 Python 패키지를 동적으로 설치할 수 있도록 인터넷 연결이 필요합니다. MLflow 모델을 패키지하면 이러한 Python 패키지가 모델 패키지 작업 중에 확인되므로 MLflow 모델 패키지를 배포하는 데 인터넷 연결이 필요하지 않습니다.

배포하기 전에 MLflow 모델을 패키지하는 것이 적극 권장되며 아웃바운드 네트워킹 연결이 없는 엔드포인트의 경우에도 필요합니다. MLflow 모델은 모델 자체에 대한 종속성을 나타내므로 패키지의 동적 설치가 필요합니다. MLflow 모델이 패키지되면 이 동적 설치는 배포 시간이 아닌 패키지 시간에 수행됩니다.

모델 패키지 배포

온라인 엔드포인트에 대한 입력으로 모델 패키지를 제공할 수 있습니다. 모델 패키지를 사용하면 패키지 작업 중에 모든 종속성이 수집되므로 배포 시 오류 가능성을 줄여 MLOps 워크플로를 간소화할 수 있습니다. 온-프레미스나 클라우드 등 Azure Machine Learning 외부 어디에나 배포할 수 있도록 Docker 이미지를 생성하도록 모델 패키지를 구성할 수도 있습니다.

Screenshot that shows all the possible targets for a model package.

배포 전 패키지

모델 패키지를 사용하여 배포하는 가장 간단한 방법은 배포를 실행하기 전에 모델 패키지를 배포하도록 Azure Machine Learning에 지정하는 것입니다. Azure CLI, Azure Machine Learning SDK 또는 Azure Machine Learning 스튜디오를 사용하여 온라인 엔드포인트에 배포를 만드는 경우 다음과 같이 모델 패키지 사용을 지정할 수 있습니다.

배포를 만들 때 --with-package 플래그를 사용합니다.

az ml online-deployment create --with-package -f model-deployment.yml -e $ENDPOINT_NAME

Azure Machine Learning은 먼저 모델을 패키지한 다음 배포를 실행합니다.

참고 항목

패키지를 사용할 때 conda 또는 pip 종속성이 있는 기본 환경을 나타내는 경우 유추 서버(azureml-inference-server-http)의 종속성을 포함할 필요가 없습니다. 오히려 이러한 종속성은 자동으로 추가됩니다.

패키지된 모델 배포

온라인 엔드포인트에 직접 패키지된 모델을 배포할 수 있습니다. 이 방법은 결과의 재현성을 보장하며 모범 사례입니다. 온라인 엔드포인트에 모델 패키지 및 배포를 참조하세요.

Azure Machine Learning 외부에서 패키지를 배포하려면 Azure Machine Learning 외부에서 모델 패키지 및 배포를 참조하세요.

다음 단계