프로덕션 유추를 위한 엔드포인트

적용 대상:Azure CLI ml 확장 v2(현재)Python SDK azure-ai-ml v2(현재)

기계 학습 모델이나 파이프라인을 학습한 후에는 다른 사용자가 유추에 사용할 수 있도록 프로덕션에 배포해야 합니다. 유추는 새로운 입력 데이터를 기계 학습 모델이나 파이프라인에 적용하여 출력을 생성하는 프로세스입니다. 이러한 출력을 일반적으로 "예측"이라고 부르지만 유추를 사용하여 분류 및 클러스터링과 같은 다른 기계 학습 작업에 대한 출력을 생성할 수 있습니다. Azure Machine Learning에서는 엔드포인트 및 배포를 사용하여 유추를 수행합니다. 엔드포인트와 배포를 사용하면 프로덕션 워크로드의 인터페이스를 이를 제공하는 구현에서 분리할 수 있습니다.

직관

사진을 바탕으로 자동차의 형식과 색을 예측하는 애플리케이션을 작업 중이라고 가정해 보겠습니다. 이 애플리케이션의 경우 특정 자격 증명을 가진 사용자는 URL에 대한 HTTP 요청을 만들고 요청의 일부로 자동차 사진을 제공합니다. 그 대가로 사용자는 자동차의 형식과 색이 문자열 값으로 포함된 응답을 가져옵니다. 이 시나리오에서는 URL이 엔드포인트 역할을 합니다.

A diagram showing the concept of an endpoint.

또한 데이터 과학자인 Alice가 애플리케이션 구현 작업을 진행 중이라고 가정해 보겠습니다. Alice는 TensorFlow에 대해 많은 것을 알고 있으며 TensorFlow Hub의 RestNet 아키텍처와 함께 Keras 순차 분류자를 사용하여 모델을 구현하기로 결정했습니다. 모델을 테스트한 후 Alice는 결과에 만족하고 모델을 사용하여 자동차 예측 문제를 해결하기로 결정합니다. 이 모델은 크기가 크며 실행하려면 4개의 코어가 있는 8GB의 메모리가 필요합니다. 이 시나리오에서는 Alice의 모델과 모델을 실행하는 데 필요한 리소스(예: 코드, 컴퓨팅)가 엔드포인트 아래 배포를 구성합니다.

A diagram showing the concept of a deployment.

마지막으로, 몇 달 후에 조직에서 이상적인 조명 조건이 아닌 이미지에서는 애플리케이션의 성능이 저하된다는 사실을 발견했다고 가정해 보겠습니다. 또 다른 데이터 과학자인 Bob은 모델이 해당 요소에 대한 견고성을 빌드하는 데 도움이 되는 데이터 증대 기술에 대해 많은 것을 알고 있습니다. 그러나 Bob은 Torch를 사용하여 모델을 구현하는 것이 더 편하다고 느끼고 Torch를 사용하여 새 모델을 학습합니다. Bob은 조직에서 이전 모델을 사용 중지할 준비가 될 때까지 프로덕션에서 이 모델을 점진적으로 시도하려고 합니다. 또한 새 모델은 GPU에 배포했을 때 더 나은 성능을 보여 주므로 배포에는 GPU가 포함되어야 합니다. 이 시나리오에서는 모델을 실행하는 데 필요한 Bob의 모델과 리소스(예: 코드, 컴퓨팅)가 동일한 엔드포인트 아래에 또 다른 배포를 구성합니다.

A diagram showing the concept of an endpoint with multiple deployments.

엔드포인트 및 배포

엔드포인트는 모델을 요청하거나 호출하는 데 사용할 수 있는 안정적이고 내구성 있는 URL입니다. 엔드포인트에 필요한 입력을 제공하고 출력을 다시 가져옵니다. 엔드포인트는 다음을 제공합니다.

  • 안정적이고 내구성 있는 URL(예: endpoint-name.region.inference.ml.azure.com)
  • 인증 메커니즘, 및
  • 권한 부여 메커니즘.

배포는 실제 유추를 수행하는 모델이나 구성 요소를 호스팅하는 데 필요한 리소스 및 컴퓨팅 집합입니다. 단일 엔드포인트는 여러 배포를 포함할 수 있습니다. 이러한 배포는 독립적인 자산을 호스팅하고 자산의 요구 사항에 따라 다양한 리소스를 소비할 수 있습니다. 엔드포인트에는 요청을 엔드포인트의 특정 배포로 전달할 수 있는 라우팅 메커니즘이 있습니다.

제대로 작동하려면 각 엔드포인트에 배포가 하나 이상 있어야 합니다. 엔드포인트 및 배포는 Azure Portal에 표시되는 독립적인 Azure Resource Manager 리소스입니다.

온라인 및 일괄 처리 엔드포인트

Azure Machine Learning을 사용하면 온라인 엔드포인트일괄 처리 엔드포인트를 구현할 수 있습니다. 온라인 엔드포인트는 실시간 유추를 위해 설계되었습니다. 엔드포인트를 호출하면 결과가 엔드포인트의 응답으로 반환됩니다. 반면에 일괄 처리 엔드포인트는 장기 실행 일괄 처리 유추를 위해 설계되었습니다. 일괄 처리 엔드포인트를 호출할 때마다 실제 작업을 수행하는 일괄 작업이 생성됩니다.

사용 사례에 온라인 엔드포인트와 일괄 처리 엔드포인트를 사용해야 하는 경우

온라인 엔드포인트를 사용하여 대기 시간이 짧은 동기식 요청에서 실시간 유추를 위한 모델을 운용합니다. 다음과 같은 경우에 사용하는 것이 좋습니다.

  • 짧은 대기 시간 요구 사항이 있습니다.
  • 모델은 비교적 짧은 시간 내에 요청에 답변할 수 있습니다.
  • 모델의 입력이 요청의 HTTP 페이로드에 맞습니다.
  • 요청 수 측면에서 스케일 업해야 합니다.

장기 실행 비동기 유추를 위해 일괄 처리 엔드포인트를 사용하여 모델 또는 파이프라인을 운용할 수 있습니다. 다음과 같은 경우에 사용하는 것이 좋습니다.

  • 실행하는 데 더 오랜 시간이 필요한 비용이 많이 드는 모델이나 파이프라인이 있습니다.
  • 기계 학습 파이프라인을 운용하고 구성 요소를 재사용하려고 합니다.
  • 여러 파일에 분산되어 있는 대량의 데이터에 대해 유추를 수행해야 합니다.
  • 낮은 대기 시간 요구 사항이 없습니다.
  • 모델의 입력은 스토리지 계정 또는 Azure Machine Learning 데이터 자산에 저장됩니다.
  • 병렬 처리를 활용할 수 있습니다.

온라인 엔드포인트와 일괄 처리 엔드포인트 비교

온라인 엔드포인트와 일괄 처리 엔드포인트는 모두 엔드포인트와 배포 개념을 기반으로 하며, 이는 하나에서 다른 엔드포인트로 쉽게 전환하는 데 도움이 됩니다. 그러나 서로 이동할 때 고려해야 할 몇 가지 중요한 차이점이 있습니다. 이러한 차이점 중 일부는 작업의 특성으로 인해 발생합니다.

끝점

다음 표에는 온라인 및 일괄 처리 엔드포인트에서 사용할 수 있는 다양한 기능이 요약되어 있습니다.

기능 온라인 엔드포인트 일괄 처리 엔드포인트
안정적인 호출 URL
다중 배포 지원
배포 라우팅 트래픽 분할 기본값으로 전환
안전한 출시를 위한 트래픽 미러링 아니요
Swagger 지원 아니요
인증 키와 토큰 Microsoft Entra ID
개인 네트워크 지원
관리되는 네트워크 격리 (필요한 추가 구성 참조)
고객 관리형 키
비용 기준 없음 없음

배포

다음 표에는 배포 수준에서 온라인 및 일괄 처리 엔드포인트에 사용할 수 있는 다양한 기능이 요약되어 있습니다. 이러한 개념은 엔드포인트 아래의 각 배포에 적용됩니다.

기능 온라인 엔드포인트 일괄 처리 엔드포인트
배포 형식 모델 모델 및 파이프라인 구성 요소
MLflow 모델 배포
사용자 지정 모델 배포 예, 채점 스크립트 포함 예, 채점 스크립트 포함
모델 패키지 배포 1 예(미리 보기) 아니요
유추 서버 2 - Azure Machine Learning 유추 서버
- Triton
- 사용자 지정(BYOC 사용)
Batch 유추
사용된 컴퓨팅 리소스 인스턴스 또는 세분화된 리소스 클러스터 인스턴스
컴퓨팅 형식 관리 컴퓨팅 및 Kubernetes 관리 컴퓨팅 및 Kubernetes
우선 순위가 낮은 컴퓨팅
컴퓨팅을 0으로 크기 조정
자동 스케일링 컴퓨팅3 예, 리소스 로드 기준 예, 작업 수 기준
과잉 용량 관리 제한 대기 중
비용 기준4 배포별: 실행 중인 컴퓨팅 인스턴스 작업당: 작업에서 소비되는 컴퓨팅 인스턴스(클러스터의 최대 인스턴스 수로 제한됨)
배포의 로컬 테스트 아니요

1 아웃바운드 인터넷 연결 또는 프라이빗 네트워크 없이 엔드포인트에 MLflow 모델을 배포하려면 먼저 모델을 패키징해야 합니다.

2유추 서버는 요청을 받아 처리하고 응답을 만드는 제공 기술을 의미합니다. 유추 서버는 입력 형식과 예상 출력 형식도 지정합니다.

3자동 스케일링은 로드에 따라 배포에 할당된 리소스를 동적으로 스케일 업하거나 스케일 다운하는 기능입니다. 온라인 및 일괄 처리 배포는 자동 크기 조정을 위해 서로 다른 전략을 사용합니다. 온라인 배포는 리소스 사용률(예: CPU, 메모리, 요청 등)에 따라 스케일 업 및 스케일 다운되는 반면, 일괄 처리 엔드포인트는 만들어진 작업 수에 따라 스케일 업 또는 스케일 다운됩니다.

4 온라인 배포와 일괄 처리 배포 모두 소비된 리소스에 따라 요금이 청구됩니다. 온라인 배포에서는 배포 시 리소스가 프로비전됩니다. 그러나 일괄 처리 배포에서는 배포 시 외에 작업이 실행될 때 리소스가 소비되지 않습니다. 따라서 배포 자체와 관련된 비용은 없습니다. 대기 중인 작업은 리소스를 소비하지 않습니다.

개발자 인터페이스

엔드포인트는 조직이 Azure Machine Learning에서 프로덕션 수준 워크로드를 운용하는 데 도움을 주기 위해 설계되었습니다. 엔드포인트는 강력하고 확장 가능한 리소스이며 MLOps 워크플로를 구현하는 데 필요한 최고의 기능을 제공합니다.

여러 개발자 도구를 사용하여 배포 및 온라인 엔드포인트를 만들고 관리할 수 있습니다.

  • Azure CLI 및 Python SDK
  • Azure Resource Manager/REST API
  • Azure Machine Learning 스튜디오 웹 포털
  • Azure Portal(IT/관리자)
  • Azure CLI 인터페이스 및 REST/ARM 인터페이스를 사용하여 CI/CD MLOps 파이프라인 지원

다음 단계