Azure Machine Learning의 Kubernetes 컴퓨팅 대상 소개

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

Azure Machine Learning CLI/Python SDK v2에서 Azure Machine Learning은 새로운 컴퓨팅 대상인 Kubernetes 컴퓨팅 대상을 도입했습니다. 간단하게 기존 AKS(Azure Kubernetes Service) 클러스터 또는 Arc Kubernetes(Azure Arc 지원 Kubernetes) 클러스터를 Azure Machine Learning에서 Kubenetes 컴퓨팅 대상이 되도록 설정하고, 모델을 학습시키거나 배포하는 데 사용할 수 있습니다.

Diagram illustrating how Azure Machine Learning connects to Kubernetes.

이 문서에서는 다음에 대해 알아봅니다.

  • 작동 방식
  • 사용 시나리오
  • 권장 모범 사례
  • KubernetesCompute 및 레거시 AksCompute

작동 방식

Azure Machine Learning Kubernetes 컴퓨팅은 두 종류의 Kubernetes 클러스터를 지원합니다.

  • AKS 클러스터(Azure 내부). Azure에서 자체 관리형 AKS 클러스터를 사용하면 규정 준수 요구 사항을 충족하는 보안 및 제어 기능을 얻을 수 있을 뿐 아니라 팀의 ML 워크로드를 유연하게 관리할 수 있습니다.
  • Arc Kubernetes 클러스터(Azure 외부). Arc Kubernetes 클러스터를 사용하면 온-프레미스, 다중 클라우드 또는 에지에 있는 모든 인프라에서 모델을 학습시키거나 배포할 수 있습니다.

AKS 또는 Arc Kubernetes 클러스터에 간단한 클러스터 확장을 배포하면 Kubernetes 클러스터가 Azure Machine Learning에서 원활하게 지원되어 학습 또는 유추 워크로드를 실행할 수 있습니다. 다음과 같은 간단한 단계를 통해 Azure Machine Learning 워크로드에 대해 기존 Kubernetes 클러스터를 쉽게 사용하도록 설정하고 사용할 수 있습니다.

  1. Azure Kubernetes Service 클러스터 또는 Arc Kubernetes 클러스터를 준비합니다.
  2. Azure Machine Learning 확장을 배포합니다.
  3. Kubernetes 클러스터를 Azure Machine Learning 작업 영역에 연결합니다.
  4. CLI v2, SDK v2 및 Studio UI의 Kubernetes 컴퓨팅 대상을 사용합니다.

IT 운영 팀. IT 운영 팀은 AKS 또는 Arc Kubernetes 클러스터 준비, Azure Machine Learning 클러스터 확장 배포 및 Kubernetes 클러스터를 Azure Machine Learning 작업 영역에 연결하는 처음 세 단계를 담당합니다. IT 운영 팀은 이러한 필수 컴퓨팅 설정 단계 외에도 Azure CLI 또는 kubectl과 같은 익숙한 도구를 사용하여 데이터 과학 팀 대신 다음 작업을 처리합니다.

  • 아웃바운드 프록시 서버 연결 또는 Azure 방화벽 구성, 유추 라우터(azureml-fe) 설정, SSL/TLS 종료, 가상 머신 구성과 같은 네트워크 및 보안 구성을 수행합니다.
  • 다양한 ML 워크로드 시나리오에 대한 인스턴스 유형을 만들어 관리하고, 효율적인 컴퓨팅 리소스 사용률을 달성합니다.
  • Kubernetes 클러스터와 관련된 워크로드 문제를 해결합니다.

데이터 과학 팀. IT 운영 팀이 컴퓨팅 설정 및 컴퓨팅 대상 만들기를 완료하면 데이터 과학 팀은 Azure Machine Learning 작업 영역에서 사용 가능한 컴퓨팅 대상 및 인스턴스 형식 목록을 검색할 수 있습니다. 이러한 컴퓨팅 리소스는 학습 또는 유추 워크로드에 사용할 수 있습니다. 데이터 과학은 기본 도구 또는 API를 사용하여 컴퓨팅 대상 이름과 인스턴스 유형 이름을 지정합니다. 예를 들어 이러한 이름은 Azure Machine Learning CLI v2, Python SDK v2 또는 Studio UI일 수 있습니다.

Kubernetes 사용 시나리오

Arc Kubernetes 클러스터를 사용하면 Kubernetes를 사용하여 온-프레미스 및 다중 클라우드의 인프라에서 모델을 빌드, 학습 및 배포할 수 있습니다. 이렇게 하면 이전에는 클라우드 설정 환경에서 불가능했던 새로운 사용 패턴이 열립니다. 다음 표는 Azure Machine Learning Kubernetes 컴퓨팅에서 사용할 수 있는 새로운 사용 패턴에 대한 요약을 제공합니다.

사용 패턴 데이터 위치 동기 인프라 설정 및 Azure Machine Learning 구현
클라우드에서 모델 학습, 온-프레미스에 모델 배포 클라우드 클라우드 컴퓨팅을 활용합니다. 탄력적 컴퓨팅 요구 사항 또는 GPU와 같은 특수 하드웨어 때문입니다.
보안, 규정 준수 또는 대기 시간 요구 사항을 충족하기 위해 모델을 온-프레미스에 배포해야 합니다.
1. 클라우드의 Azure 관리형 컴퓨팅
2. 고객 관리형 Kubernetes 클러스터
3. 클라우드에서 온-프레미스로 그리고 그 반대로 원활하게 전환하는 학습 및 모델 배포 단계를 포함하여 하이브리드 모드에서 완전히 자동화된 MLOps
4. 반복 가능하며, 모든 자산이 올바르게 추적됩니다. 필요할 때 모델이 다시 학습되고, 다시 학습한 후 모델 배포가 자동으로 업데이트됩니다.
온-프레미스 및 클라우드 모델을 학습하고 클라우드와 온-프레미스 모두에 배포 클라우드 온-프레미스 투자와 클라우드 확장성을 결합하려는 조직. 단일 창에서 클라우드와 온-프레미스 컴퓨팅을 모두 활용합니다. 데이터에 대한 단일 진리 원본은 클라우드에 있으며 온-프레미스로 복제할 수 있습니다(즉, 사용 시 또는 사전에 지연). 클라우드 컴퓨팅 기본 사용은 온-프레미스 리소스를 사용할 수 없거나(사용 중, 유지 관리) 특정 하드웨어 요구 사항(GPU)이 없는 경우입니다. 1. 클라우드의 Azure 관리형 컴퓨팅
2. 고객 관리형 Kubernetes 클러스터
3. 클라우드에서 온-프레미스로 그리고 그 반대로 원활하게 전환하는 학습 및 모델 배포 단계를 포함하여 하이브리드 모드에서 완전히 자동화된 MLOps
4. 반복 가능하며, 모든 자산이 올바르게 추적됩니다. 필요할 때 모델이 다시 학습되고, 다시 학습한 후 모델 배포가 자동으로 업데이트됩니다.
온-프레미스에서 모델 학습, 클라우드에서 모델 배포 온-프레미스 데이터 상주 요구 사항으로 인해 데이터는 온-프레미스에 남아 있어야 합니다.
전역 서비스 액세스를 위해 또는 확장 및 처리량에 대한 컴퓨팅 탄력성을 위해 클라우드에 모델을 배포합니다.
1. 클라우드의 Azure 관리형 컴퓨팅
2. 고객 관리형 Kubernetes 클러스터
3. 클라우드에서 온-프레미스로 그리고 그 반대로 원활하게 전환하는 학습 및 모델 배포 단계를 포함하여 하이브리드 모드에서 완전히 자동화된 MLOps
4. 반복 가능하며, 모든 자산이 올바르게 추적됩니다. 필요할 때 모델이 다시 학습되고, 다시 학습한 후 모델 배포가 자동으로 업데이트됩니다.
Azure에서 사용자 고유의 AKS 사용 클라우드 더 많은 보안 및 컨트롤
데이터 반출을 방지하기 위한 모든 개인 IP 기계 학습
1. Azure 가상 네트워크 뒤에 있는 AKS 클러스터.
2. 동일한 가상 네트워크에서 Azure Machine Learning 작업 영역 및 관련 리소스에 대한 프라이빗 엔드포인트를 만듭니다.
3. 완전히 자동화된 MLOps
전체 ML 수명 주기가 온-프레미스 온-프레미스 ML 모델 및 코드/스크립트와 같은 중요한 데이터 또는 독점 IP를 보호합니다. 1. 온-프레미스에서 아웃바운드 프록시 서버 연결
2. Azure 리소스에 대한 Azure ExpressRoute 및 Azure Arc 프라이빗 링크
3. 온-프레미스의 고객 관리형 Kubernetes
4. 완전히 자동화된 MLOps

제한 사항

Azure Machine Learning 워크로드(학습 및 모델 유추)의 KubernetesCompute 대상에는 다음과 같은 제한 사항이 있습니다.

  • Azure Machine Learning에서 미리 보기 기능의 가용성은 보장되지 않습니다.
    • 식별된 제한 사항: 모델 카탈로그의 모델(기본 모델 포함)은 Kubernetes 온라인 엔드포인트에서 지원되지 않습니다.

IT 운영 팀과 데이터 과학 팀 간의 책임 분리. 이전 섹션에서 설명한 것처럼 ML 워크로드에 대한 자체 컴퓨팅 및 인프라를 관리하는 것은 복잡한 작업입니다. 데이터 과학 팀이 조직의 효율성을 위해 ML 모델에 집중할 수 있도록 IT 운영 팀에서 수행하는 것이 가장 좋습니다.

다양한 ML 워크로드 시나리오에 대한 인스턴스 유형 만들기 및 관리. 각 ML 워크로드는 CPU/GPU 및 메모리와 같은 다양한 양의 컴퓨팅 리소스를 사용합니다. Azure Machine Learning은 nodeSelector 및 리소스 요청/제한 속성을 사용하여 인스턴스 형식을 Kubernetes CRD(사용자 지정 리소스 정의)로 구현합니다. 신중하게 큐레이팅된 인스턴스 유형 목록을 사용하면 IT 운영 팀에서 특정 노드의 ML 워크로드를 대상으로 하고 컴퓨팅 리소스 사용률을 효율적으로 관리할 수 있습니다.

여러 Azure Machine Learning 작업 영역이 동일한 Kubernetes 클러스터를 공유합니다. Kubernetes 클러스터를 동일한 Azure Machine Learning 작업 영역 또는 다른 Azure Machine Learning 작업 영역에 여러 번 연결하여 하나의 작업 영역 또는 여러 작업 영역에서 여러 컴퓨팅 대상을 만들 수 있습니다. 많은 고객이 Azure Machine Learning 작업 영역을 중심으로 데이터 과학 프로젝트를 구성하므로 이제 여러 데이터 과학 프로젝트가 동일한 Kubernetes 클러스터를 공유할 수 있습니다. 이렇게 하면 ML 인프라 관리 오버헤드와 IT 비용이 크게 절감됩니다.

Kubernetes 네임스페이스를 사용하여 팀/프로젝트 워크로드 격리. Kubernetes 클러스터를 Azure Machine Learning 작업 영역에 연결할 때 컴퓨팅 대상에 대한 Kubernetes 네임스페이스를 지정할 수 있습니다. 컴퓨팅 대상에서 실행하는 모든 워크로드는 지정된 네임스페이스 아래에 배치됩니다.

KubernetesCompute 및 레거시 AksCompute

Azure Machine Learning CLI/Python SDK v1을 사용하면 AksCompute 대상을 사용하여 AKS에 모델을 배포할 수 있습니다. KubernetesCompute 대상과 AksCompute 대상 모두 AKS 통합을 지원하지만, 지원 방식은 서로 다릅니다. 다음 표에는 주요 차이점이 나와 있습니다.

Capabilities AksCompute(레거시)와 AKS 통합 KubernetesCompute와 AKS 통합
CLI/SDK v1 아니요
CLI/SDK v2 아니요
학습 아니요
실시간 유추
일괄 처리 유추 아니요
실시간 유추 새 기능 새 기능 개발 없음 활성 로드맵

이러한 주요 차이점과 SDK/CLI v2를 사용하기 위한 전반적인 Azure Machine Learning 발전으로 Azure Machine Learning은 모델 배포에 AKS를 사용하기로 결정한 경우 Kubernetes 컴퓨팅 대상을 사용하여 모델을 배포하는 것이 좋습니다.

다른 리소스

예제

모든 Azure Machine Learning 예는 https://github.com/Azure/azureml-examples.git에서 찾을 수 있습니다.

Azure Machine Learning 예의 경우 컴퓨팅 대상 이름을 Kubernetes 컴퓨팅 대상으로 업데이트하기만 하면 모든 작업이 완료됩니다.

다음 단계