다음을 통해 공유


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

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

Azure Machine Learning CLI 및 Python SDK v2는 Kubernetes 컴퓨팅 대상에 대한 지원을 제공합니다. 기존 AKS(Azure Kubernetes Service) 클러스터 또는 Azure Arc 지원 Kubernetes(Arc Kubernetes) 클러스터를 Kubernetes 컴퓨팅 대상으로 사용하도록 설정할 수 있습니다. Machine Learning의 컴퓨팅을 사용하여 모델을 학습하거나 배포합니다.

Azure Machine Learning이 Kubernetes에 연결되는 방식을 보여 주는 다이어그램

이 문서에서는 사용 시나리오, 권장 모범 사례 및 레거시 AksCompute 대상 비교 KubernetesCompute 를 포함하여 Machine Learning에서 Kubernetes 컴퓨팅 대상을 사용하는 방법을 설명합니다.

Kubernetes 컴퓨팅 대상의 작동 방식

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

Compute 위치 설명
AKS 클러스터 Azure 내에서 Azure에서 자체 관리형 AKS 클러스터를 사용하면 규정 준수 요구 사항 및 유연성을 충족하여 팀의 기계 학습 워크로드를 관리할 수 있는 보안 및 제어를 얻을 수 있습니다.
Arc Kubernetes 클러스터 Azure 외부 Arc Kubernetes 클러스터를 사용하면 온-프레미스 또는 다중 클라우드 인프라 또는 에지에서 모델을 학습하거나 배포할 수 있습니다.

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

이 프로세스의 주요 책임은 다음과 같습니다.

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

    • 아웃바운드 프록시 서버 연결 또는 Azure 방화벽, 유추 라우터(azureml-fe) 설정, SSL/TLS 종료 및 가상 네트워크 설정과 같은 네트워크 및 보안 옵션을 구성합니다.

    • 다양한 기계 학습 워크로드 시나리오에 대한 인스턴스 유형을 만들고 관리하고 효율적인 컴퓨팅 리소스 사용률을 얻습니다.

    • Kubernetes 클러스터와 관련된 워크로드 문제를 해결합니다.

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

Kubernetes 사용 시나리오

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

사용 패턴 데이터 위치 목표 및 요구 사항 시나리오 구성
클라우드에서 모델 학습, 온-프레미스에 모델 배포 클라우드 클라우드 컴퓨팅을 사용하여 탄력적 컴퓨팅 요구 사항 또는 GPU와 같은 특수 하드웨어를 지원합니다.

모델 배포는 보안, 규정 준수 또는 대기 시간 요구 사항을 위해 온-프레미스여야 합니다.
- 클라우드의 Azure 관리형 컴퓨팅
- 고객 관리 Kubernetes 온-프레미스
- 클라우드와 온-프레미스 간에 원활하게 전환하는 학습 및 모델 배포 단계를 포함하여 하이브리드 모드에서 완전히 자동화된 기계 학습 작업
- 반복 가능, 모든 자산이 제대로 추적되고, 필요에 따라 모델이 재학습되고, 재학습 후 배포가 자동으로 업데이트됨
온-프레미스 및 클라우드 모델을 학습하고 클라우드와 온-프레미스 모두에 배포 클라우드 온-프레미스 투자와 클라우드 확장성을 결합합니다.

단일 창 아래에 클라우드 및 온-프레미스 컴퓨팅을 제공합니다.

클라우드의 데이터에 대한 단일 진리 원본에 액세스하고 온-프레미스를 복제합니다(사용 시 또는 사전에 지연).

온-프레미스 리소스를 사용할 수 없거나(사용 중 또는 유지 관리 중) GPU(특정 하드웨어 요구 사항)를 충족하지 않는 경우 클라우드 컴퓨팅 기본 사용을 사용하도록 설정합니다.
- 클라우드의 Azure 관리형 컴퓨팅.
고객 관리형 Kubernetes 온-프레미스
- 클라우드와 온-프레미스 간에 원활하게 전환하는 학습 및 모델 배포 단계를 포함하여 하이브리드 모드에서 완전히 자동화된 기계 학습 작업
- 반복 가능, 모든 자산이 제대로 추적되고, 필요에 따라 모델이 재학습되고, 재학습 후 배포가 자동으로 업데이트됨
온-프레미스에서 모델 학습, 클라우드에서 모델 배포 온-프레미스 데이터 상주 요구 사항을 충족하도록 온-프레미스에 데이터를 저장합니다.

글로벌 서비스 액세스를 위해 클라우드에 모델을 배포하거나 규모 및 처리량에 대한 컴퓨팅 탄력성을 사용하도록 설정합니다.
- 클라우드의 Azure 관리형 컴퓨팅
- 고객 관리 Kubernetes 온-프레미스
- 클라우드와 온-프레미스 간에 원활하게 전환하는 학습 및 모델 배포 단계를 포함하여 하이브리드 모드에서 완전히 자동화된 기계 학습 작업
- 반복 가능, 모든 자산이 제대로 추적되고, 필요에 따라 모델이 재학습되고, 재학습 후 배포가 자동으로 업데이트됨
Azure에서 사용자 고유의 AKS 사용 클라우드 더 많은 보안 및 제어를 얻습니다.

데이터 반출을 방지하기 위해 모든 개인 IP 기계 학습을 설정합니다.
- Azure 가상 네트워크 뒤의 AKS 클러스터
- Azure Machine Learning 작업 영역 및 관련 리소스에 대해 동일한 가상 네트워크의 프라이빗 엔드포인트
완전 자동화된 기계 학습 작업
온-프레미스 전체 기계 학습 수명 주기 온-프레미스 기계 학습 모델, 코드 및 스크립트와 같은 중요한 데이터 또는 독점 IP를 보호합니다. - 아웃바운드 프록시 서버 온-프레미스 연결
- Azure 리소스에 대한 Azure ExpressRoute 및 Azure Arc 프라이빗 링크
- 고객 관리 Kubernetes 온-프레미스
- 완전히 자동화된 기계 학습 작업

Kubernetes 컴퓨팅 대상에 대한 제한 사항

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

  • Azure Machine Learning에서 미리 보기 기능의 가용성은 보장되지 않습니다.
  • 모델 카탈로그레지스트리의 모델(기본 모델 포함)은 Kubernetes 온라인 엔드포인트에서 지원되지 않습니다.
  • 클러스터 내에서 모델 유추 배포를 만드는 프로세스의 제한 시간은 20분입니다. 여기에는 이미지 다운로드, 모델 다운로드 및 사용자 스크립트 초기화가 포함됩니다.

이 섹션에서는 Kubernetes 컴퓨팅 작업에 권장되는 모범 사례를 요약합니다.

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

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

여러 Azure Machine Learning 작업 영역이 동일한 Kubernetes 클러스터를 공유합니다. Kubernetes 클러스터를 동일한 Machine Learning 작업 영역 또는 다른 작업 영역에 여러 번 연결할 수 있습니다. 이 프로세스는 단일 작업 영역 또는 여러 작업 영역에서 여러 컴퓨팅 대상을 만듭니다. 많은 고객이 Machine Learning 작업 영역을 중심으로 데이터 과학 프로젝트를 구성하기 때문에 이제 여러 데이터 과학 프로젝트가 동일한 Kubernetes 클러스터를 공유할 수 있습니다. 이 방법은 기계 학습 인프라 관리 오버헤드를 크게 줄이고 IT 비용 절감을 향상시킵니다.

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

KubernetesCompute 및 레거시 AksCompute 대상 비교

Azure Machine Learning CLI/Python SDK v1을 사용하면 레거시 AksCompute 대상을 사용하여 AKS에 모델을 배포할 수 있습니다. KubernetesCompute AksCompute 둘 다 AKS 통합을 지원하지만 지원 방법은 다릅니다. 다음 표에는 주요 차이점이 요약되어 있습니다.

기능 AksCompute(레거시) KubernetesCompute
CLI/SDK v1 사용 아니요
CLI/SDK v2 사용
학습 설정
실시간 유추 적용
일괄 처리 유추 적용
실시간 유추를 위한 새로운 기능에 액세스 새 기능 개발 없음 활성 로드맵 사용 가능

이러한 차이점과 CLI/SDK v2를 사용하기 위한 전반적인 Machine Learning 진화를 고려할 때 AKS 모델 배포에 Kubernetes 컴퓨팅 대상(KubernetesCompute)을 사용하는 것이 좋습니다.

자세한 내용은 다음 문서를 참조하세요.

기계 학습 예제

기계 학습 예제는 GitHub의 Azure Machine Learning(azureml-examples) 리포지토리에서 사용할 수 있습니다. 모든 예제에서 컴퓨팅 대상 이름을 Kubernetes 컴퓨팅 대상으로 바꾸고 샘플을 실행합니다.

다음은 몇 가지 옵션입니다.